RELEASE-NOTES
changeset 0 2b3e5ec03512
--- /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 <Jeff_Wilson@baylor.edu>.
+
+- 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