Release Notes for DTN2 ---------------------- 2.3.0 (December 2006) --------------------- - Rewritten and documented TCP convergence layer, with support for bidirectional communication over a single socket. - Default port used by TCP & UDP convergence layers is now 4556, newly registered with IANA. - Improvements to the Bluetooth convergence layer (by Jeff Wilson) to use the same common stream based convergence layer base class as is used by TCP. - Refactored bundle protocol handling code into separate block processing modules allowing for easier integration of security and other extension blocks. - Integrated full support for extension blocks. - External router interface (by MITRE) using XML to communicate between the router and the daemon. - Initial support for a neighborhood discovery mechanism (by Jeff Wilson) using either UDP multicast/broadcast or Bluetooth's builtin service discovery protocols. - Major enhancements to the Prophet router implementation (by Jeff Wilson). - Added dtntunnel and dtncat applications. Reworked and enhanced the dtnping application. - Modified the core for 64-bit compatibility. - Various stability and performance improvements. - Resurrection of the dtnsim simulator (by Seguti Gutierrez-Nolasco) for simple bundle transmission. - Switched most of the code from the Intel Open Source License to the Apache License. 2.2.0 (March 2006) ------------------ - Various changes for conformance with version 4 of the bundle protocol as specified in the Bundle Protocol Internet Draft, as released on November 2005. - Initial implementation of custody transfer, including flexible per-route timing specifications for retransmissions. - Initial implementation of a Bluetooth convergence layer from Jeff Wilson . - Added support for the ARM architecture, gcc 4.0, and BerkeleyDB 4.4. - Added support for a file system based persistent storage implementation as an alternative to Berkeley DB. - Many minor changes to improve stability and robustness of the code, largely due to an improved testing infrastructure including several tcl based system tests. - Miscellaneous other improvements including: a persistent ForwardingLog for each bundle to maintain the history of where (and when) the bundle was sent to peers, restored support for reactive fragmentation, a NullConvergenceLayer and other testing hooks, and some scalability improvements. 2.1.99 (December 2005) ---------------------- - Widespread changes for conformance to the latest version of the bundle protocol specification document including replacing the region/admin syntax and BundleTuple class with a new EndpointID class that is a standard URI, and replacing fixed-length values in the protocol with SDNVs. ** NOTE: Due to time constraints, this task was not completed, so this release does not include the full bundle spec support, though the next one will. - Completed implementation of expiration timers for both bundles and application registrations, as specified by the protocol document and architecture specification. - Removed the use of AddressFamily classes from the configuration of the Interface and Link classes, moving the address specification into the convergence layer specifically. - Faster and more robust configure scripts, including support for configuring a build directory that's different from the source directory. Improved build system so make -j works to build in parallel. Add support for the gcc-4.0 series of compilers. - Other minor cleanup of Bundle class field names and associated types to match the protocol document more clearly. - Rework some of the RPC API to have the daemon construct an appropriate endpoint id (in a scheme-specific manner). - Significant rework of the control flow of Bundles through the system, including the state machine for Links, a reduction in the number of BundleList queues around the code, and an overall simplification of the control flow. - Update the TCP and UDP convergence layers: removed fixed-width length fields from TCP; added pipelining so multiple bundles can be "in-flight" on a single TCP connection; removed all the framing overhead from UDP by simply sending a bundle per UDP datagram. - Support added for Cygwin as well as Apple OS X. 2.1.1 (March 2005) ------------------ - Patch to configure script to fix build problems on Apple OS X due to a conflict with a system include file (demmer). - Bug fix in oasys/io/NetUtils.cc so getaddrinfo works properly on OS X (or generally any IPv6 enabled system). - Minor updates to the manual and tutorials (jra). 2.1.0 (March 2005) ------------------ - Major restructuring of the configuration and build process to use autoconf to generate configure specifications - Additional ports to solaris, cygwin, MacOS X, and FreeBSD, as well as linux on ARM (sharp zaurus) both cross-compiled and native. - Major change to the BundleRouter interface to remove the "delayed effect" problems of the action list interface. Now all operations are immediately enacted by a BundleActions class. - Simplify the syntax for the link and interface commands to no longer require a full bundle tuple, but instead just the admin portion. This avoids the confusion in that the region portion was always ignored. - Reorganization of the test directories in both oasys and DTN2, including the introduction of a unit testing framework in oasys and the conversion of some tests to the new framework. - Added framework for link-specific option parsing for the convergence layers. - New version of the TCP convergence layer protocol, to be formally specified further in an internet draft. Addition of an idle time negotiation to close idle connections. Initial work on a feature for receiver-initiated connection to be used to traverse NAT routers. - New version of the UDP convergence layer protocol that tightens up the protocoll and makes more sense divergent from the tcp one. - Change the bundling protocol implementation to use NTP timestamps as mandated by the bundling protocol internet draft. - Initial work on integrating the dtnsim simulation environment with the core of the daemon. - Many other miscellaneous small changes and bug fixes. 2.0.2 (December 2004) --------------------- - (very minor) change to enable Berkeley DB 4.3 usage 2.0.1 (December 2004): --------------------- - First public release of the DTN2 code: stable design and overall code structure, though still numerous features left to be implemented. - Features include: - conformance to the IETF draft Bundle Protocol specification version 3 - functional implementation of a TCP convergence layer and address capabilities amenable to internet-connected hosts - static bundle router implementation - proactive and reactive fragmentation - flexible storage framework adaptable to Berkeley DB, mysql, or postgresql underlying implementations