= Release Notes for ION 4.1.0 =
May 31, 2021
%%%%%%%%%%%
= GENERAL =
%%%%%%%%%%%
The ION (interplanetary overlay network) software is a suite of communication
protocol implementations designed to support mission operation communications
across an end-to-end interplanetary network, which might include on-board
(flight) subnets, in-situ planetary or lunar networks, proximity links, deep
space links, and terrestrial internets. Included in the ION software
distribution are the following packages:
- ici (interplanetary communication infrastructure), a set of libraries
that provide flight-software-compatible support for functions on which
the other packages rely, such as dynamic memory management, non-volatile
storage management, and inter-task communication via shared memory.
The ici libraries are designed to make the porting of IPN software to
multiple operating systems - Linux, VxWorks, Solaris, etc. - as easy as
possible. Ici now includes zco (zero-copy object), a library that
minimizes the copying of application data as it is encapsulated in
multiple layers of protocol structure while traversing the protocol
stack.
- bp (bundle protocol), an implementation of the Delay-Tolerant
Networking (DTN) architecture's Bundle Protocol.
- ltp (licklider transmission protocol), a DTN convergence layer protocol
for reliable transmission over links characterized by long or highly
variable delay.
- dgr (datagram retransmission), an alternative implementation of ltp
that is designed for use over the Internet protocol stack. dgr
implements congestion control and is designed for relatively high
performance.
- bssp (bundle streaming service protocol), a DTN convergence layer protocol
for reliable transmission of streaming data.
- ams - an implementation of the CCSDS Asynchronous Message Service.
- cfdp - a class-1 (Unacknowledged) implementation of the CCSDS File
Delivery Protocol.
- bss - a Bundle Streaming Service (BSS) for disruption-tolerant reliable
data streaming. BSS supports real-time streaming applications by
passing the bundle payloads to the associated application for immediate
display of the most recent data while storing all bundle payloads
received into a database for user-directed playback.
- dtpc (delay-tolerant payload conditioning), an application framework
providing TCP-like support for end-to-end retransmission and data delivery
in transmission order without duplication or omission.
Features included:
- cgr - Contract graph routing: a method of dynamic routing designed for
space based applications of ION, but still usable for terrestrial
applications. It computes routes using scheduled communication and deals
with time-varying network topology.
- brs - Bundle relay service: provides interconnectivity between networks
that do not allow servers (those behind NAT for example). For more
information, check man brsscla and man brsccla.
%%%%%%%%%%%%%%%%%%%%%%%%%%
= NOTES ON RELEASE 4.1.0 =
%%%%%%%%%%%%%%%%%%%%%%%%%%
ION 4.1.0 is the first release in which the BPv7 implementation is
conformant to the BPv7 protocol specification that will shortly be
published by IETF as a standards-track RFC.
The accompanying BPsec implementation is similarly conformant to
the BPSec specification that will also soon be a standard-track RFC.
NOTE, though, that the TCP convergence-layer protocol implementation
in ION 4.1.0 still conforms to the original TCPCL specification (RFC
7242), NOT to the upcoming TCPCL standards-track RFC; that upgrade
will be supported in a future release.
Another key change in this release is that Aggregate Custody Signaling
is no longer enabled by default. (Due to some new features in ACS
configuration, when ACS is enabled the bpv6 bpclock daemon will no
longer run successfully unless the ACS database is initialized.
Since not all ION bpv6 users currently initialize ACS in node startup,
disabling ACS by default seems to be the best way forward.) If you
DO want ACS for your bpv6 environment, include the "enable-acs" switch
when you generate the Makefile, e.g.:
./configure --enable-acs
Additionally, three new features are included in ION version 4.1.0
(along with various bug fixes).
First, an option is provided that will enable ION to run at much higher
speeds over those portions of a bundle's end-to-end path that are
supported by TCP/IP at the convergence layer. To enable this option,
include the "--enable-high-speed" switch when generating the bpv7 Makefile.
Also, it is now possible for ION's LTP implementation to utilize multiple
different underlying link service protocols on input as well as on
output. The latter have always been configured by means of the "LSO
command" associated with the "span" for LTP segment transmission to a
remote LTP engine. The former may now be configured by means of "LSI
commands" associated with multiple LTP segment reception "seats" at
the local LTP engine. See the ltprc(5) man page for more information.
Finally, a mechanism has been introduced that will automatically
synchronize a contact plan among all nodes that are cited in the
contacts listed in that contact plan. This synchronization requires
that the nodes be configured for bundle multicast; it is controlled
by means of the new "!" command as processed by ionadmin. See the
cpsync test case (in ion-open-source/tests) for an example.