ns-3 RELEASE NOTES This file contains ns-3 release notes (most recent releases first). Release 3.2 (pending) ===================== New functionality added ----------------------- - Add learning bridge (IEEE 802.1D) implementation: BridgeNetDevice; - Python bindings added - Kernel thread support (class SystemThread) added; - Kernel mutual exclusion support (class SystemMutex) added; - Kernel critical section RAII support (class CriticalSection) added; - Kernel system condition support (class SystemCondition) added; - Move required methods in helper classes to constructors; - Change obsolete references to Parameter to Attribute in helpers; - Split simulator into interface and implementation pieces, make implementation a replaceable component via the "SimulatorImplementationType" global value. Hint: try ./waf --run "udp-echo --PrintGlobals" - Added multithreaded and real-time simulator implementation; - implement Packet::PeekHeader and Packet::PeekTrailer to avoid evil workarounds when receiving tcp packets. Bugs fixed ---------- - add optional support for TCP and UDP checksum (bug 236) - close socket upon PacketSink::StopApplication (bug 243) - fix build failure with gcc 4.3.x (bug 245) API changes from 3.1 to 3.2 --------------------------- - several helper APIs related to attribute setting (changeset d5f8e5fae1c6, bug 234); old variants are currently deprecated API and will be removed in a future release - remove references to Parameter in helper APIs (changeset 3cdd9d60f7c7, bug 232); old variants are currently deprecated API and will be removed in a future release - New NetDevice APIs: SendFrom, SetPromiscRxCallback, SupportsPromiscuous. These are pure virtual methods, so they need to be implemented by NetDevice subclasses; In order to support the learning bridge, some API changes in Node and NetDevice were made. In NetDevice, devices may optionally implement the virtual methods SendFrom, SupportsPromiscuous, and SetPromiscReceiveCallback. If these new methods are not implemented, the code still compiles and works, except if they are used in a BridgeNetDevice. In Node, the signature for protocol handler callbacks (used in AddProtocolHandler) has changed. Now it looks like: void ReceiveFromDevice (Ptr device, Ptr packet, uint16_t protocol, Address const &source, Address const &destination, PacketType packetType); The extra parameters 'destination' and 'packetType' are present for all protocol handlers, but only have valid values for promiscuous protocol handlers. Protocol handlers are non-promiscuous by default, so no action is needed to adapt existing code besides updating the callback signature. Release 3.1 (2008/06/30) ======================== The first ns-3 stable release ----------------------------- This release is immediately available from: http://www.nsnam.org/releases/ns-3.1.tar.bz2 We dedicate this initial ns-3 release to our late contributor and friend, Federico Maguolo. What is ns-3 ? -------------- ns-3 is a new discrete-event network simulator designed for supporting network research and education. ns-3 features a solid, well documented C++ core and models for TCP/IP (IPv4), several link types including WiFi, and mobility models. ns-3 is an open source project released under the GNU GPLv2 license which allows anyone to use ns-3 without having to pay any license fee or royalties. ns-3 is actively seeking new contributors to extend the range of supported models and/or to maintain existing models. Where to get more information about ns-3 ---------------------------------------- All the ns-3 documentation, is accessible from the ns-3 website: http://www.nsnam.org Including, tutorials: http://www.nsnam.org/tutorials.html Supported platforms ------------------- ns-3 is regularly tested on the following platforms: - linux x86 gcc 4.2, 4.1, and, 3.4.6. - linux x86_64 gcc 4.1.3, 4.2.1, 3.4.6 - MacOS X ppc and x86 - cygwin gcc 3.4.4 (debug only) Known issues ------------ ns-3 is known to fail on the following platforms: - gcc 3.3 and earlier - optimized builds on gcc 3.4.4 and 3.4.5 - optimized builds on linux x86 gcc 4.0.x The IPv4 API defined in src/node/ipv4.h is expected to undergo major changes in preparation of the merge of the IPv6 API and implementation. Future releases --------------- Our next release, which is expected to happen in 2 to 4 months from now, will feature the merging of some of our projects currently in development: python scripting, IPv6, emulation, a statistics framework and synchronous posix sockets. Release 3.0.13 (2008/06/02) =========================== - point to point links generate ppp pcap traces - point to point links support asymmetrical data rates. - generate doxygen documentation for all attributes and trace sources - add ConfigStore and GtkConfigStore to contrib module - socket API now support tx and rx buffers: implemented for UDP and TCP - ARP cache now supports per-entry pending queues - lots of bugfixes and implementation and API cleanups Warning: among API changes in this release, Application::Start and Application::Stop now interprets the time argument as a relative instead of absolute simulation time, to align with how Simulator::Schedule behaves. Any code that calls these APIs in the middle of the simulation will need to be adapted. The API of Simulator::StopAt (time) has also changed. Now it is called Simulator::Stop (time), and takes a relative time, instead of absolute. Release 3.0.12 (2008/04/07) =========================== - Add Attribute support to the TypeId metadata system and add attribute support to all in-tree models - Add a mid-level helper API to build simulation topologies and perform simple ascii and pcap link-level tracing. - Large amount of structural changes to accomodate the needs of the upcoming python bindings - new rate control algorithm (RRAA) and a jakes propagation model in the 802.11 model (Federico Maguolo). - regression test framework added - TCP delayed acknowledgements and multitasking server Release 3.0.11 (2008/02/15) =========================== - Initial port of GTNetS TCP implementation (initial version that does not support multitasking or delayed acknowledgments yet, but supports a reliable stream service) - Changes to the ns-3 object model to create a TypeId-based metadata system - lots of bug fixes throughout the system - tutorial updates Release 3.0.10 (2008/01/15) =========================== - Add tutorial document content; - Valgrind option for "waf" tool; - Doxygen organization changes. Release 3.0.9 (2007/12/15) ========================== - A 802.11 model ported from Yans. This model supports: * a rather extensive PHY model * log-distance and friis propagation model * a simple set of rate control algorithms (ARF, Ideal, AARF, constant-rate) * adhoc and infrastructure mode (beacon+assoc) - Use smart pointer for Packet in the APIs - A new contrib directory with helper classes: EventGarbageCollector, Gnuplot - Tracing support for Applications - many bugs fixed Release 3.0.8 (2007/11/15) ========================== - A simple error model - Source files for ns-3 tutorial Release 3.0.7 (2007/10/15) ========================== - OLSR routing protocol - A timer class - Additional mobility models (random waypoint, random 2D walk) - A mobility visualization tool Release 3.0.6 (2007/09/15) ========================== - Static multicast IPv4 routing - Logging overhaul (NS_LOG macros) - Refactoring of tracing subsystem - Tutorial document started Release 3.0.5 (2007/08/15) ========================== - Refactoring to support win32-based unix environments (Cygwin, mingw) - "Packet socket" for allowing applications to access NetDevices directly - Generalized, polymorphic Address class - Add CSMA NetDevice model (from Emmanuelle Laprise) - Modularize IPv4 routing support (from Gustavo Carneiro) - Add mobility framework and basic mobility models - Global unicast centralized routing Release 3.0.4 (2007/07/15) ========================== - Enable waf as the default build system. - Per-packet metadata: a system to track which headers and trailers are added to a packet - Simplifications to point-to-point devices and channel Release 3.0.3 (2007/06/15) ========================== - Enable Waf for release tarballs: users can now build ns-3 with the "waf" tool. See doc/build-waf.txt. - Add support for variable time precision: it is now possible to run a simulation with an accuracy which is higher or lower than a nanosecond: seconds, milliseconds, microseconds, femtoseconds and picoseconds are supported. - Optimize and rework the COM framework, solidify the component manager - Many small API cleanups Release 3.0.2 (2007/05/18) ========================== - Implement a new memory management infrastructure based on reference counting and smart pointers (the latter being optional) - Implement a COM-like framework with support for QueryInterface to provide object extensibility - Add support for a BSD-style socket API for user applications Release 3.0.1 (2007/03/31) ========================== - First public release; not yet pre-alpha. - Simple UDP-based simulation script (examples/simple-p2p.cc)