Skip to content

nasa-jpl/ion-core

Repository files navigation

ION-Core for Windows and Linux

WSL2 Networking Issue

WLS2 is known to have issues with VPN connection. One approach is to downgrade to WSL1:

In Windows Powershell get your name/version:

wsl -l -v

Set it to version 1:

wsl --set-version Ubuntu-22.04 1

Alternative approach is to use the WSL vpnkit to provide VPN connection:

https://github.com/sakai135/wsl-vpnkit

To build:

Be sure you have the tools installed:

sudo apt update
sudo apt install make gcc

Get the ion sources:

wget https://sourceforge.net/projects/ion-dtn/files/ion-open-source-4.1.2.tar.gz/download
tar -zxvf download

Get the ION-Core repo:

git clone https://github.com/nasa-jpl/ion-core.git
cd ion-core
git checkout tags/4.1.2
./scripts/extract.sh ../ion-open-source-4.1.2
make
make install

Man Page Installation

./scripts/make-man-pages.sh ../ion-open-source-4.1.2/

Creating "host.rc" files for a two-node configuration

./scripts/host.sh <IP-this-host> <IP-the-other-host>

For example:

./scripts/host.sh 192.168.254.192 192.168.254.194

Makes the config file host192.rc

ionstart -i host192.rc

Now we can use it to launch host with IP of 192.168.254.192 and run bping, bpsource, bprecvfile etc. For the other host, do the same with reversed order of IP addresses.

tuning ionconfig

If you encounter ION error related to exhaustion of working memory or heap space, you can increase the preallocated memory by modifying the host.ionconfig file which is currently as follows:

configFlags 1
heapWords 15000000
sdrWmSize 15000000
wmSize 15000000

The configFlags of 1 creates a Simple Data Recorder (SDR) instance in DRAM that. The SDR is the primary program and data storage for ION. The 'heap' space, where user data are buffered, is set to 15 mega words, each WORD is 64 bits (or 8 bytes) for 64-bit platform. the sdrWmSize specifies the SDR's working memory space measured in bytes; the wmSize specifies the general ION working memory in bytes.

These values can be adjust to allocate sufficient storage to ION while imposing a limit on the total resource ION is allowed to consume in the host.

Read the man page man ionconfig for detailed explanation of the configuration parameters.

Contributing Code

  • Please see the file developer_notes.txt for more information.