diff -r 000000000000 -r 2b3e5ec03512 RELEASE-NOTES --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/RELEASE-NOTES Thu Apr 21 14:57:45 2011 +0100 @@ -0,0 +1,370 @@ +Release Notes for DTN2 +---------------------- + +2.7.0 (February 2010) +----------------- + +- Additions and updates to the DTN2 documentation (Please + see DTN2/doc/manual/index.html). Documentation and examples provided + for configuration file and command line options, arguments and syntax + for routing protocols and algorithms, storage back ends, CLAs, link, + interface, discovery, logging and debug parameters. + +- Additions and updates to the tcl commands for link, storage, bundle, route, + discovery, and interface to provide detail on available options + and arguments and syntax when help is requested. + +- Various other minor updates and bugfixes including Ubuntu 9.10 + (karmic) compatibility and compensate for lack of "hyper" type in xdr. + +- Change of build to stop creation of oasys-->../oasys symlinks which + lead to recursion within oasys (i.e. /oasys/include/oasys/include/oasy..n + & oasys/share/oasys/share/oa..n). + +- Provide more searches and feedback during build. + +- Support for 64-bit creation time, sequence number, and expiration time. + +- Addition of dtnsource and dtnsink stress-test programs. + +- A NORM convergence layer (experimental) requires the NORM protocol + implementation from NRL see the installation doc + +- A LTP convergence layer requires the LTPlib protocol implementation + from Trinity College Dublin see the installation doc + +- Added code to check if TCP Convergence Layer needs to send/receive ACKS. + Fix of issue related to sending bundles that are larger than the link + MTU from ION to DTN2 + +- servlib/bundling/BundleDaemon.cc::event_handlers_completed: Correct sanity checking. + +- Fix PrOPHET problems: dtnping does not reply & dtnd segfaults after a while + +- DTNPerf 2.6 release. + +2.6.0 (July 2008) +----------------- + +- Updated the source control system to mercurial, splitting the oasys + library into a fully separate package and changing the configuration, + build, and packaging accordingly. + +- Added a session layer with a publish / subscribe based interface and + multicast capabilities as well as the ability to order bundles by + sequence identifier and express that prior transmissions should be + proactively deleted in-network. + +- Updated DTLSR to support the session layer and route advertisements + as well as miscellaneous other bug fixes. + +- Restructured the core forwarding path and the router <-> convergence + layer interface, getting rid of the BUSY state management and + (hopefully) improving stability and scalability. + +- Changed the contract between the core forwarding logic and the + router implementation to give the router better control over when + bundles are deleted from the system. + +- Changed the Bundle class internals to make all member variables + private, adding accessor functions for manipulation and state + retrieval and improve efficiency in internal storage. + +- Added additional API function accesses through the SWIG interface and + parse status reports that are returned to the app. Also removed the + limitation on the size of bundles that can be returned in memory. + +- Added a fix so that bundles aren't delivered twice to the same + registration and changes to the core forwarding path to support + modified topologies. + +- Incorporated patches from BBN to fix bugs during shutdown, more + efficient comparisons, memory leak and dangling pointer fixes, and + modified handling of duplicate bundles. + +- Fixed a bunch of bugs in the dtntunnel application. + +- Incorporated various updates to the prophet implementation from Jeff + Wilson. + +- Various other minor updates and bugfixes including Mac OS X 10.5 + (Leopard) compatibility. + + +2.5.0 (October 2007) +------------------- +- Integrated support for the Bundle Security Protocol blocks, + contributed by SPARTA. + +- Using SWIG, added bindings to export a version of the application + interface to different scripting languages, currently supporting + Tcl, Python, and Perl. + +- Implemented a polling feature in the API so applications can use + select() to wait for bundle arrivals on the IPC handle. + +- Added a dtnhttpproxy application to route http requests over a DTN + network. + +- Add a feature to the routing table to allow routes to point to + alternate endpoint id instead of only a next hop link. + +- Fixed the compilation errors in the 2.4.0 release when trying to + build external components. Changed the default configuration for + these components to be enabled by default to avoid this oversight in + the future. + +- Fixed the rpm specification file so the rpm builds work again. + +- Minor miscelleneous other bug fixes and features. + +2.4.0 (July 2007) +----------------- + +- BBN updated the protocol implementation to conform to BP spec + version 10, implementing bundle protocol version 5, converting most + fixed-length fields to SDNVs and several other changes. + +- BBN added support for external convergence layers and data stores, + matching the DTN reference architecture specification, as well as + support for deleting links. + +- BBN added support for the metadata extension block and improved + fragmentation handling. + +- Added a new router implementation called DTLSR (Delay Tolerant Link + State Routing) intended for environments where the inter-node + relationships are fairly stable, but links may go up and down. + +- Added support for forwarding a bundle with a wildcard destination to + multiple next-hops, which can be used to implement simple or + constrained flooding even with the static router. + +- Significantly improved the DTN simulator environment including + adding support for bandwidth and storage limits on nodes, a + structured output format for better post-processing of simulation + results, and an internal restructuring making the simulation + environment match the real-world environment much more closely. + +- Reworked the internal class used to represent bundle payloads so + that the router can now support fully in-memory bundles which can + safely contain binary data in all cases. + +- Jeff Wilson did a complete rewrite of the Prophet router + implementation. + +- Changed the API to include bundle creation timestamp when receiving + a bundle so that it's available to applications that may need it. + +- Added support for neighbor discovery that uses multicast dns (aka + Apple's Bonjour protocol). Reworked the internal structure of the + neighbor discovery subsystem. + +- Made optimizations to the table based routers (including the default + static router) to be more efficient when links are coming up and + down. + +- Updated the dtntunnel application to support tunnelling protocols + where the server side is the first to send data. Reworked command + line arguments to be more intuitive (and similar to ssh tunnels). + +- Added a dtntraceroute application that sends a single bundle, with a + bunch of status report flags turned on and prints out the times + embedded in the status reports that come back. + +- Modified the build environment to enable liboasys and libdtnapi to + be built as shared libraries, and thereby used via SWIG export to + other programming languages. + +- Resurrected the Cygwin build though it's not yet back to full + functionality. + +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