= 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.