RELEASE_NOTES
author Josh Pelkey <jpelkey@gatech.edu>
Wed, 11 Aug 2010 11:37:37 -0400
changeset 6553 fb5ad9c7755a
parent 6536 2666c1d862ef
child 6578 14019c625ab8
permissions -rw-r--r--
update release notes and fix doxygen warnings
     1 
     2 		ns-3 RELEASE NOTES
     3 
     4 This file contains ns-3 release notes (most recent releases first).  
     5 
     6 All of the ns-3 documentation is accessible from the ns-3 website: 
     7 http://www.nsnam.org including tutorials: http://www.nsnam.org/tutorials.html
     8 
     9 Consult the file CHANGES.html for more detailed information about changed
    10 API and behavior across ns-3 releases.
    11 
    12 Release 3.9
    13 ===========
    14 
    15 Availability
    16 ------------
    17 This release is not yet available.
    18 
    19 Supported platforms
    20 -------------------
    21 ns-3.9 has been tested on the following platforms:
    22 
    23 Not all ns-3 options are available on all platforms; consult the
    24 wiki for more information:
    25 http://www.nsnam.org/wiki/index.php/Installation
    26 
    27 New user-visible features
    28 -------------------------
    29 
    30    - A reorganisation of the construction of Wi-Fi transmit rates has
    31      been undertaken with the aim of simplifying the task of
    32      supporting further IEEE 802.11 PHYs. This work has been completed
    33      under the auspices of Bug 871. A consequence of this work is that
    34      WifiModes have a new (hopefully future-proof) naming, and
    35      simulations which specify rates by name will need updating. The
    36      list of new rate names is given in the error message produced
    37      when an attempt is made to use any invalid rate name (including
    38      those that were previously valid).
    39 
    40    - A new OFDM error rate model for WiFi (NistErrorRateModel); this model
    41      has been validated in clear-channel testbed tests.  For 802.11b, it
    42      uses the same underlying model as the YansErrorRateModel, but it differs
    43      from YansErrorRateModel for OFDM modes (802.11a/g).  The default
    44      YansWifiPhyHelper has been changed to use this model.
    45 
    46    - A brand new NS-2 mobility trace reader supports BonnMotion, SUMO, TraNS, 
    47      etc. traces.
    48 
    49    - An energy model for nodes and devices, including an energy source
    50      model and device energy models allowing energy-aware devices
    51      to notify the energy source about energy consumption.  
    52 
    53    - Rocketfuel topology dataset support for existing topology reader
    54      Rocketfuel project: 
    55      http://www.cs.washington.edu/research/networking/rocketfuel/
    56 
    57    - Underwater Acoustic Network (UAN) model, split in to three parts, the 
    58      channel, PHY, and MAC models to enable researchers to model a variety 
    59      of underwater network scenarios.
    60 
    61 Bugs fixed
    62 ----------
    63 The following lists many of the bugs that were fixed since ns-3.8, in
    64 many cases referencing the Bugzilla bug number
    65 
    66    - IPv4 global routing code; stub networks were assumed to be /24
    67      and added as /24 networks even if the mask is actually different
    68    - OLSR was generating messages on non-OLSR interfaces
    69    - ICMPv4 objects not properly registered; affected serialization code
    70    - bug 231 - SocketAddressTag needs to be removed from a packet before 
    71                forwarding the packet to the user
    72    - bug 385 - Add a generic "sequence number" class
    73    - bug 473 - [PATCH] Alternative ns-2 trace reader
    74    - bug 665 - Need Tutorial Sectino on Config Path and Tracing Use
    75    - bug 671 - add packet-info-tag.cc for IP_PKTINFO/IPV6_PKTINFO
    76    - bug 702 - Global routing doesn't respond to interface events
    77    - bug 799 - Interference helper is too slow
    78    - bug 800 - Erroneous packet sender while using aloha or cw mac in uan module
    79    - bug 802 - Minstrel algorithm causes segmentation fault
    80    - bug 826 - Using uint64_t instead of Time in DcfManager
    81    - bug 828 - PacketSocket::Close does not unregister protocol handler
    82    - bug 842 - ns-3-dev crashes using block acks
    83    - bug 843 - Most wifi examples change BeaconInterval to unrealistic values
    84    - bug 844 - YansWifiPhy::GetPowerDbm off-by-one problem when calculating Tx 
    85                power
    86    - bug 846 - packet.cc triggers deprecated warning
    87    - bug 853 - Rates for Wi-Fi control responses are incorrectly selected
    88    - bug 854 - Support DROP_QUEUE reason-code in Ipv4FlowProbe
    89    - bug 858 - support MSG_PEEK in IPv4/IPv6 raw socket
    90    - bug 861 - Forwarding drops (due to no route found) were not being logged 
    91                in IPv4 or IPv6 ascii traces
    92    - bug 869 - suggested test framework enhancements
    93    - bug 871 - naming for WifiPhyStandard
    94    - bug 873 - Queue occupancy counter not decremented in WifiMacQueue::Remove()
    95    - bug 874 - wrong modulation type is selected in the forwardBurst method
    96    - bug 875 - "frame includes FCS" flag should be set in Radiotap frame header
    97    - bug 879 - source address selection for AODV using DeferredRouteRequest
    98    - bug 881 - Reorganise to allow wider use of WifiInformationElement
    99    - bug 890 - several rate adaptation algorithms not tested by test.py
   100    - bug 900:  RawTextConfigLoad::Default does not load configurations
   101    - bug 901 - Optimize Mac48Address < != and ==
   102    - bug 902 - TCP: handle out-of-order packets during connection shutdown
   103    - bug 905 - WimaxNetDevice loses packet uid, tags, and memory optimization
   104    - bug 906 - NSC TCP socket fork did not copy txbuffersize over
   105    - bug 908 - test.py should exit if waf dies
   106    - bug 910 - Change Wi-Fi "AccessClass" to something closer to the standard
   107    - bug 911 - IPv4/v6 multicast forwarding not going to all output interfaces
   108    - bug 913 - Queue Enqueue/Drop trace sources behavior unintuitive
   109    - bug 916 - EnableAsciiAll ("prefix") does not work for YansWifiPhyHelper
   110    - bug 918 - samples/main-packet-header.cc is broken
   111    - bug 919 - minstrel does not pass valgrind tests
   112    - bug 921 - Inconsistent declaration of class/struct Object in object.h
   113    - bug 922 - Inconsistent declaration of class/struct in 
   114                wifi-remote-station-manager.h
   115    - bug 923 - Inconsistent declaration of class/struct in mac-low.h
   116    - bug 924 - Inconsistent declaration of class/struct in <xxx>-wifi-managers 
   117    - bug 925 - Various IPv6 cc files trigger deprecated warning
   118    - bug 926 - olsr handling of multicast packets 
   119    - bug 927 - SimpleOfdmWimaxChannel RxPower computation
   120    - bug 930 - examples/topology-read/topology-example-sim.cc uses variable 
   121                length array
   122    - bug 931 - Abnormal exit reports SIGSEGV on failure
   123    - bug 932 - Support IP_HDRINCL option for Ipv4RawSocket
   124    - bug 933 - Flushing ostream and files on abnormal program exit 
   125                (ASSERT, ABORT and FATAL_ERROR)
   126    - bug 936 - Waf build error for python bindings on "AccessClass"
   127    - bug 937 - bugs in ns-3 wimax
   128    - bug 940 - AODV fails to set up a correct path
   129    - bug 941 - Wifi Dcf attributes not reachable through configuration namespace
   130    - bug 943 - Add a SO_BROADCAST socket option
   131    - bug 944 - change default ErrorRateModel from YansErrorRateModel to 
   132                NistErrorRateModel
   133    - bug 946 - Rocketfuel topology dataset support for topology reader
   134    - bug 949 - Node::NonPromiscReceiveFromDevice reports a meaningless 
   135                destination address to user callbacks 
   136    - bug 950 - PointToPointNetDevice says promisc support is not implemented 
   137                but it is
   138    - bug 955 - Install NSC for NS3 in a Itanium Architecture (ia64) with Linux 2.6.16.6
   139    - bug 956 - Bindings failure in core (traced-value) with older gcc
   140    - bug 958 - WiFi uses wrong default values for MTU, FragmentationThreshold 
   141                and RtsCtsThreshold
   142    - bug 960 - V4Ping does not generate checksum
   143    - bug 961 - Problem with MPI activation 
   144    - bug 964 - AODV does not work with host addressed interfaces
   145    - bug 965 - Problem building /src/core/callback.cc
   146    - bug 966 - AODV originates new RREQ on each packet, when doesn't have 
   147                valid route
   148    - bug 969 - No SocketList is present in UdpL4Protocol class
   149    - bug 970 - move UAN over to new directory structure
   150    - bug 971 - fix AODV header Print functions 
   151    - bug 972 - [flow monitor] assertion fails in pv4-flow-probe.cc
   152 
   153 Known issues
   154 ------------
   155 
   156 Release 3.8
   157 ===========
   158 
   159 Availability
   160 ------------
   161 This release is immediately available from:
   162 http://www.nsnam.org/releases/ns-allinone-3.8.tar.bz2
   163 
   164 Supported platforms
   165 -------------------
   166 ns-3.8 has been tested on the following platforms:
   167   - linux x86 gcc 4.4.0, 4.3.2, 4.2, 4.1.1, 4.1 and 3.4.6 (debug and optimized)
   168   - linux x86_64 gcc 4.4.0, 4.3.2, 4.2.4, 4.2.3, 4.2.1, 4.1.3, 3.4.6 (debug and optimized)
   169   - MacOS X ppc gcc 4.0.x and 4.2.x (debug and optimized)
   170   - cygwin gcc 4.3.4 (debug and optimized)
   171 
   172 Not all ns-3 options are available on all platforms; consult the
   173 wiki for more information:
   174 http://www.nsnam.org/wiki/index.php/Installation
   175 
   176 New user-visible features
   177 -------------------------
   178   a) WiMAX net device: Allow to simulated IEEE 802.16 point to multi-point based networks 
   179 
   180   b) Distributed simulation for point-to-point networks using the Message 
   181      Passing Interface (MPI) standard.
   182     
   183   c) Matrix propagation loss model uses a two-dimensional matrix of path loss indexed 
   184      by source and destination nodes.
   185 
   186   d) Topology read system: Allows quick and easy creation of large topologies by reading 
   187      Inet or Orbis files
   188 
   189   e) Gauss-Markov mobility model: Adds 3-d adaptation of Gauss-Markov mobility model which 
   190      has both memory and variability
   191 
   192   f) Steady-state random waypoint mobility model: Based on random waypoint mobility (RWM) model for case when 
   193      speed, pause and position are uniformly distributed random variables. However, initial values of these 
   194      parameters are not from uniform distribution but from stationary distribution of RWM model.
   195 
   196   g) Two-ray ground propagation loss model: Calculates the crossover distance under which Friis is used. 
   197      The antenna height is set to the nodes z coordinate, but can be added to using the model parameter 
   198      SetHeightAboveZ, which will affect ALL stations
   199 
   200 
   201 API changes from ns-3.7
   202 -----------------------
   203 API changes for this release are documented in the file CHANGES.html. 
   204 
   205 Bugs fixed
   206 ----------
   207 The following lists many of the bugs that were fixed since ns-3.7, in
   208 many cases referencing the Bugzilla bug number
   209    - bug 155 - std::ostream & os" parameters not Python friendly
   210    - bug 184 - GtkConfigStore do not support ConfigureDefault
   211    - bug 407 - OLSR is missing HNA support
   212    - bug 414 - No ReceiveErrorModel in SimpleNetDevice
   213    - bug 602 - WifiRemoteStation lacks information about the access class of outgoing packets
   214    - bug 622 - [PATCH] Friendly names for pcap traces
   215    - bug 683 - Helper methods for pcap tracing with explicit filenames
   216    - bug 706 - Backoff counting when starting NS.
   217    - bug 720 - TapBridge creation fails from a script outside the ns3 tree
   218    - bug 731 - Send function in point-to-point-net-device fails to check the return value of the Dequeue function
   219    - bug 747 - Listening TCP socket closes on RST
   220    - bug 748 - Cloned TCP socket uses wrong source address
   221    - bug 772 - AODV is unable to correctly buffer packets waiting for route reply
   222    - bug 777 - AODV ignores specified outgoing interface in RouteOutput()
   223    - bug 778 - OLSR ignores specified outgoing interface in RouteOutput()
   224    - bug 787 - Addition of Two Ray Ground model to propagation loss model and tests
   225    - bug 788 - OLSR_NEIGH_HOLD_TIME should be 3 times OLSR_REFRESH_INTERVAL 
   226    - bug 789 - [PATCH] Globalrouting externalroutes to use the new GetRootExitDirections()
   227    - bug 794 - Ipv4Mask constructor for "/yy"-notation is wrong
   228    - bug 796 - TCP bug in ns-3-dev branch : Crash detected during retesting of Chord on ns-3-dev branch
   229    - bug 797 - Enhancements to src/core/random-variable.cc/h
   230    - bug 801 - ns-3.7 and SVN not coexisting nicely
   231    - bug 802 - Minstrel algorithm causes segmentation fault
   232    - bug 804 - null-pointer references in 3.7 internet stack
   233    - bug 806 - TCP doesn't work over a CSMA link
   234    - bug 807 - ns2-mobility-helper.cc: node id parsed wrong
   235    - bug 809 - Missing Python binding for Ipv4GlobalRouting::GetRoute
   236    - bug 810 - In TCP, Socket::GetSockName() does not return the local socket address
   237    - bug 812 - Assert when getting socket in RecvReply for AODV
   238    - bug 813 - Nqos AP sends packet to non associated STA
   239    - bug 814 - Function logging causing assert in wireless examples
   240    - bug 815 - waf shell file descriptor leak
   241    - bug 816 - tap-creator deadlock when python bindings enabled
   242    - bug 817 - Pareto rng constructors using scale and shape instead of mean and shape
   243    - bug 818 - TCP Socket implementation does not set ACK flag on retransmits
   244    - bug 819 - Build break when gtk not installed
   245    - bug 820 - Bad things happen in test.py when logging is enabled
   246    - bug 821 - AODV asserts with function logging enabled
   247    - bug 822 - Move Mtu attribute from NetDevice base class to subclasses
   248    - bug 825 - UDP-Client-server's packet loss counter not properly reset
   249    - bug 828 - PacketSocket::Close does not unregister protocol handler
   250    - bug 829 - TCP unbound memory problem (pending data)
   251    - bug 833 - OnOffApplication with PacketSocket: sniffs all traffic
   252    - bug 834 - Incorrect signature of Ipv4FlowProbe::DropLogger
   253    - bug 835 - Unlimited receive queues in sockets == evil
   254    - bug 836 - Delay is incremented over time with BsUplinkSchedulerSimple and BsUplinkSchedulerRtps
   255    - bug 838 - ns-3 can't compile on MacOS with 32bit processor
   256    - bug 839 - TestSuite wimax-ss-mac-layer crashes on Darwin 9.8.0 Power Macintosh
   257    - bug 840 - BS scheduler does not support fragmentation for UGS flows
   258    - bug 841 - Multicast transmission breaks with QoS Wifi
   259    - bug 844 - YansWifiPhy::GetPowerDbm off-by-one problem when calculating Tx power
   260    - bug 847 - Segfaults on BaseStationNetDevice with OnOffApplication and rtPS sched
   261    - bug 849 - stray patch files in lwip directory
   262    - bug 850 - Ipv4GlobalRouting::LookupGlobal bug
   263    - bug 855 - waf dies badly when switching from debug to optimized build or vice versa
   264    - bug 856 - initialize vbl
   265    - bug 857 - Link-Local Multicast handle in Ipv4 Output processing 
   266    - bug 859 - Output interface estimation for the source address bound socket in IPv4 Raw socket
   267    - bug 860 - waf sometimes dies while executing ns3header or gen_ns3_module_header tasks in case of 
   268                parallel jobs
   269    - bug 862 - NotifyInterfaceUp() Adds network route even when netmask is /32
   270    - bug 863 - Wrong Scalar arithmetics
   271    - bug 864 - Invalid return value in UdpSocketImpl::Send and Ipv4RawSocketImpl::Send
   272    - bug 865 - Ipv4RawSocketImpl::RecvFrom does not return from address all the time.
   273    - bug 866 - WiMAX mobility models not aggregated to Node
   274    - bug 867 - Minor bug in Ipv4L3Protocol::Send()
   275    - bug 868 - invalid packet size after Ipv4L3Protocol::Send
   276    - bug 872 - ns3::PcapFileWrapper::Write explodes stack
   277    - bug 873 - Queue occupancy counter not decremented in WifiMacQueue::Remove()
   278    - bug 876 - Tcp socket does not handle ShutdownRecv correctly
   279    - bug 877 - python bindings broken with multiple inheritance ?
   280    - bug 880 - Node sending a packet to itself via 127.0.0.1 aborts
   281    - bug 885 - Error in Ascii tracing in Python examples
   282    - bug 888 - Writing ascii trace to addtional tests fails
   283    - bug 891 - WiMAX device helper does not include propagation loss model by default 
   284    - bug 894 - ./waf --run error message upon segfault
   285    - bug 895 - SimpleOfdmWimaxPhy SNR computation
   286    - bug 899 - EmuNetDevice::SetPromiscReceiveCallback not implemented
   287 
   288 Known issues
   289 ------------
   290 ns-3 builds have been known to fail on the following platforms:
   291   - gcc 3.3 and earlier
   292   - optimized builds on gcc 3.4.4 and 3.4.5
   293   - optimized builds on linux x86 gcc 4.0.x
   294 
   295 
   296 Release 3.7
   297 ===========
   298 
   299 Availability
   300 ------------
   301 This release is immediately available from:
   302 http://www.nsnam.org/releases/ns-allinone-3.7.tar.bz2
   303 
   304 Supported platforms
   305 -------------------
   306 ns-3.7 has been tested on the following platforms:
   307   - linux x86 gcc 4.4.0, 4.3.2, 4.2, 4.1.1, 4.1 and 3.4.6 (debug and optimized)
   308   - linux x86_64 gcc 4.4.0, 4.3.2, 4.2.4, 4.2.3, 4.2.1, 4.1.3, 3.4.6 (debug and optimized)
   309   - MacOS X ppc gcc 4.0.x and 4.2.x (debug and optimized)
   310   - cygwin gcc 3.4.4 (debug only), gcc 4.3.2 (debug and optimized)
   311 
   312 Unofficially supported platform
   313 -------------------
   314 - mingw gcc 3.4.5 (debug only)
   315 
   316 Not all ns-3 options are available on all platforms; consult the
   317 wiki for more information:
   318 http://www.nsnam.org/wiki/index.php/Installation
   319 
   320 New user-visible features
   321 -------------------------
   322 
   323   a) Ad hoc On-Demand Distance Vector (AODV) routing model (RFC 3561)
   324 
   325   b) IPv6 extensions support to add IPv6 extensions and options.  Two 
   326      examples (fragmentation and loose routing) are available.
   327 
   328   c) NetAnim interface: Provides an interface to the Qt-based NetAnim 
   329      animator, which supports static, point-to-point topology-based 
   330      packet animations.
   331 
   332   d) New topology helpers have been introduced
   333      - PointToPointDumbbellHelper
   334      - PointToPointGridHelper
   335      - PointToPointStarHelper
   336      - CsmaStarHelper
   337 
   338   e) Equal-cost multipath for global routing: Enables quagga's equal 
   339      cost multipath for Ipv4GlobalRouting, and adds an attribute that
   340      can enable it with random packet distribution policy across 
   341      equal cost routes.
   342 
   343   f) Binding sockets to devices:  A method analogous to a SO_BINDTODEVICE
   344      socket option has been introduced to class Socket
   345 
   346   g) Object::DoStart: Users who need to complete their object setup at 
   347      the start of a simulation can override this virtual method, perform their 
   348      adhoc setup, and then, must chain up to their parent.
   349 
   350   h) Ipv4::IsDestinationAddress method added to support checks of whether a 
   351      destination address should be accepted as one of the host's own 
   352      addresses.  
   353 
   354   i) UniformDiscPositionAllocator added; distributes uniformly the nodes 
   355      within a disc of given radius. 
   356 
   357   j) ChannelNumber attribute added to YansWifiPhy. Now it is possible to 
   358      setup wifi channel using WifiPhyHelper::Set() method.
   359 
   360   k) WaypointMobilityModel provides a method to add mobility as a set of 
   361      (time, position) pairs
   362 
   363   l) 802.11p WiFi standards 
   364   
   365   m) UDP Client/Server application
   366 
   367   n) Support transactions in the SQLite output interface, making it usable for larger amounts of data
   368 
   369 API changes from ns-3.6
   370 -----------------------
   371 API changes for this release are documented in the file CHANGES.html. 
   372 
   373 Bugs fixed
   374 ----------
   375 The following lists many of the bugs that were fixed since ns-3.6, in
   376 many cases referencing the Bugzilla bug number
   377    - bug 752: Object::DoStart is not executed for objects created at t > 0
   378    - bug 767:  Incorrect modulation for 802.11a modes
   379    - bug 725: wifi fragmentation and RTS cannot be used at the same time
   380    - bug 782: CreateTap () requires IP address in modes other than 
   381      CONFIGURE_LOCAL.
   382    - bug 769: Queue::GetTotalReceived{Bytes,Packets}() broken
   383    - bug 738 ReceiveErrorModel called too late
   384    - Fix NSC improper response to FIN
   385    - Fixed bug in serialization of PbbAddressBlock.
   386    - Fix bug 780 (problem in RoutingTableComputation with asymetric links), 
   387      while adding debugging methods to OLSR.  
   388    - bug 759: Ipv6 uses wrong outgoing interface.
   389    - bug 770: IPv6 size calculation for unknown options is wrong.
   390    - bug 771: Radvd does not set ttl value.
   391    - Fix bug 606:  Arp depends on IP routing system
   392    - pad out CSMA payloads to 46 bytes if needed
   393    - Drop CSMA packets with CRC errors, rescan, dox tweaks
   394    - Add FCS capability to CSMA
   395    - Mesh:Dot11s: fixed airtime metric
   396    - Get emu working again:  Add Dix/Llc option, add and use contextual 
   397      realtime schedule ops, don't refcount realtime simulator impl
   398    - bug 695 - DcfManager::UpdateBackoff () uses slow HighPrecision::Div()
   399    - bug 674 - EIFS is not handled correctly in DcfManager::GetAccessGrantStart
   400    - bug 739 -  OLSR: Strange HTime value in HELLO messages 
   401    - bug 746 -  UDP source address is not set to bound address
   402    - bug 735 Update Olsr for local delivery
   403    - bug 740 OLSR MprCompute () works wrong: fixed
   404    - bug 729 Enable IPv6 over PPP.
   405    - bug 645: fixes for opening stats file with OMNeT++
   406    - bug 689: default energy detection and CCA thresholds are changed to be 
   407      more realistic.
   408    - bug 733: OLSR MPR Computation give incorrect result
   409    - Mesh: HWMP: fixed proactive routes
   410    - Mesh: fixed FLAME PATH_UPDATE procedure, fixed mesh.cc 
   411 
   412 Known issues
   413 ------------
   414 ns-3 builds have been known to fail on the following platforms:
   415   - gcc 3.3 and earlier
   416   - optimized builds on gcc 3.4.4 and 3.4.5
   417   - optimized builds on linux x86 gcc 4.0.x
   418 
   419 
   420 Release 3.6
   421 ===========
   422 
   423 Availability
   424 ------------
   425 This release is immediately available from:
   426 http://www.nsnam.org/releases/ns-allinone-3.6.tar.bz2
   427 
   428 Supported platforms
   429 -------------------
   430 ns-3.6 has been tested on the following platforms:
   431   - linux x86 gcc 4.4.1, 4.2, 4.1, and, 3.4.6.
   432   - linux x86_64 gcc 4.4.0, 4.3.2, 4.2.3, 4.2.1, 4.1.3, 3.4.6
   433   - MacOS X ppc and x86 (gcc 4.0.x and 4.2.x)
   434   - cygwin gcc 3.4.4 (debug only), gcc 4.3.2 (debug and optimized)
   435 
   436 Not all ns-3 options are available on all platforms; consult the
   437 wiki for more information:
   438 http://www.nsnam.org/wiki/index.php/Installation
   439 
   440 New user-visible features
   441 -------------------------
   442 
   443   a) 802.11 models:
   444      - Add an implementation of the minstrel rate control algorithm 
   445        (Duy Nguyen for gsoc)
   446      - AthstatsHelper: enables the wifi device to produce periodic 
   447        reports similar to the ones generated by madwifi's
   448        athstats tool (Nicola Baldo)
   449      - 10MHz and 5MHz channel width supported by 802.11a model 
   450        (Ramon Bauza and Kirill Andreev)
   451      - Channel switching support. YansWifiPhy can now switch among 
   452        different channels (Ramon Bauza and Pavel Boyko)
   453   
   454   b) IPv6 models:
   455     - IPv6 interface;
   456     - IPv6 layer;
   457     - IPv6 raw socket;
   458     - Static IPv6 routing;
   459     - ICMPv6 layer;
   460     - Some ICMPv6 error messages (destination unreachable, ...);
   461     - Neighbor Discovery Protocol (NS/NA, RS/RA, redirection);
   462     - Ping6 application (send Echo request);
   463     - Radvd application (send RA);
   464     - Examples (ping6, simple-routing-ping6, radvd, radvd-two-prefix,
   465       icmpv6-redirect).
   466 
   467   c) Wireless Mesh Networking models:
   468     - General multi-interface mesh stack infrastructure (devices/mesh module).
   469     - IEEE 802.11s (Draft 3.0) model including Peering Management Protocol and HWMP.
   470     - Forwarding Layer for Meshing (FLAME) protocol.
   471 
   472   d) Nix-vector routing:  
   473     - Ipv4NixVectorHelper
   474     - Examples (nix-simple, nms-p2p-nix)
   475 
   476   e) New Test Framework
   477     - Use test.py instead of ./waf check or ./waf --regression
   478     - Previous unit tests have been ported to new framework.
   479     - Examples are tested for run-ability.
   480 
   481   f) A new Flow Monitor module
   482    - To very easily measure flow metrics in a simulation
   483    - No need to use trace callbacks or parsing trace files
   484 
   485 API changes from ns-3.5
   486 -----------------------
   487 API changes for this release are documented in the file CHANGES.html. 
   488 
   489 Known issues
   490 ------------
   491 ns-3.6 build is known to fail on the following platforms:
   492   - gcc 3.3 and earlier
   493   - optimized builds on gcc 3.4.4 and 3.4.5
   494   - optimized builds on linux x86 gcc 4.0.x
   495 
   496 Release 3.5
   497 ===========
   498 
   499 Availability
   500 ------------
   501 This release is immediately available from:
   502 http://www.nsnam.org/releases/ns-allinone-3.5.tar.bz2
   503 
   504 Supported platforms
   505 -------------------
   506 ns-3.5 has been tested on the following platforms:
   507   - linux x86 gcc 4.2, 4.1, and, 3.4.6.
   508   - linux x86_64 gcc 4.4.0, 4.3.2, 4.2.3, 4.2.1, 4.1.3, 3.4.6
   509   - MacOS X ppc and x86 (gcc 4.0.x and 4.2.x)
   510   - cygwin gcc 3.4.4 (debug only), gcc 4.3.2 (debug and optimized)
   511   - mingw gcc 3.4.5 (debug only)
   512 
   513 Not all ns-3 options are available on all platforms; consult the
   514 wiki for more information:
   515 http://www.nsnam.org/wiki/index.php/Installation
   516 
   517 New user-visible features
   518 -------------------------
   519 
   520   a) 802.11 MAC:
   521      - EDCA multi-qos-class support (Mirko Banchi)
   522      - 802.11n initial support for A-MSDU frame aggregation (Mirko Banchi)
   523      - aarf-cd and cara rate control algorithms (Federico Maguolo)
   524   b) 802.11 PHY:
   525      - 802.11b PHY support (Gary Pei)
   526      - Nakagami propagation loss model (Timo Bingmann)
   527      - radiotap and prism headers for PCAP output (Nicola Baldo)
   528   c) RandomVariable:
   529      - GammaVariable and ErlangVariable (Timo Bingmann)
   530      - ZipfVariable (Francesco Malandrino)
   531   d) UdpEcho: allows setting the payload of echo packets
   532   e) Ipv4/Ipv4RoutingProtocol: allow fine-grained control over
   533      routing policy and arbitrary composition of routing protocols
   534  
   535 API changes from ns-3.4
   536 -----------------------
   537 API changes for this release are documented in the file CHANGES.html.  The
   538 internal API and composition of the IPv4 stack underwent significant
   539 refactoring in this release cycle.
   540 
   541 Known issues
   542 ------------
   543 ns-3 build is known to fail on the following platforms:
   544   - gcc 3.3 and earlier
   545   - optimized builds on gcc 3.4.4 and 3.4.5
   546   - optimized builds on linux x86 gcc 4.0.x
   547 
   548 Future releases
   549 ---------------
   550 Our next release, which is expected to happen in 2 to 4 months from now, will
   551 feature the merging of some of our projects currently in development including
   552 fuller IPv6 support, some smaller features such as a new Global ARP 
   553 package, and possibly a new Testing and Validation suite.
   554 
   555 Release 3.4
   556 ===========
   557 
   558 Availability
   559 ------------
   560 This release is immediately available from:
   561 http://www.nsnam.org/releases/ns-allinone-3.4.tar.bz2
   562 
   563 Supported platforms
   564 -------------------
   565 ns-3.4 has been tested on the following platforms:
   566   - linux x86 gcc 4.2, 4.1, and, 3.4.6.
   567   - linux x86_64 gcc 4.3.2, 4.2.3, 4.2.1, 4.1.3, 3.4.6
   568   - MacOS X ppc and x86
   569   - cygwin gcc 3.4.4 (debug only)
   570 
   571 Not all ns-3 options are available on all platforms; consult the
   572 wiki for more information:
   573 http://www.nsnam.org/wiki/index.php/Installation
   574 
   575 New user-visible features
   576 -------------------------
   577   a) Wifi models: Timo Bingman contributed a ThreeLogDistance and a Nakagami
   578      propagation loss model based on the ns-2 models. Fabian Mauchle contributed
   579      multicast support.
   580 
   581   b) Object Name Service:  A facility allowing ns-3 Objects to be assigned
   582      names has been added.
   583 
   584   c) Tap Bridge:  A second option for integrating ns-3 with real-world hosts
   585      has been added.  This allows for real hosts to talk over ns-3 net devices
   586      and simulated networks.
   587 
   588   d) A new build option (ns-3-allinone) has been provided to make it easier for
   589      users to download and bulid commonly used ns-3 configurations.
   590 
   591   e) The ns-3 calendar queue scheduler has been ported to ns-3.
   592 
   593   f) XML support has been added to the ConfigStore.
   594 
   595 API changes from ns-3.3
   596 -----------------------
   597 API changes for this release are documented in the file CHANGES.html
   598 
   599 Known issues
   600 ------------
   601 ns-3 build is known to fail on the following platforms:
   602   - gcc 3.3 and earlier
   603   - optimized builds on gcc 3.4.4 and 3.4.5
   604   - optimized builds on linux x86 gcc 4.0.x
   605   - optimized builds on Ubuntu 8.10 alpha 5 x86 gcc4.3.2
   606   - MinGW
   607 
   608 The IPv4 API defined in src/node/ipv4.h is expected to undergo major changes 
   609 in preparation of the merge of the IPv6 API and implementation.
   610 
   611 Future releases
   612 ---------------
   613 Our next release, which is expected to happen in 2 to 4 months from now, will
   614 feature the merging of some of our projects currently in development including
   615 fuller IPv6 support, and IPv4 and routing protocol refactoring, and some smaller
   616 features such as a new Global ARP package and possibly a new Testing and Validation
   617 suite,
   618 
   619 Release 3.3
   620 ===========
   621 
   622 Availability
   623 ------------
   624 This release is immediately available from:
   625 http://www.nsnam.org/releases/ns-3.3.tar.bz2
   626 
   627 Supported platforms
   628 -------------------
   629 ns-3.3 has been tested on the following platforms:
   630   - linux x86 gcc 4.2, 4.1, and, 3.4.6.
   631   - linux x86_64 gcc 4.3.2, 4.2.3, 4.2.1, 4.1.3, 3.4.6
   632   - MacOS X ppc and x86
   633   - cygwin gcc 3.4.4 (debug only)
   634 
   635 Not all ns-3 options are available on all platforms; consult the
   636 wiki for more information:
   637 http://www.nsnam.org/wiki/index.php/Installation
   638 
   639 New user-visible features
   640 -------------------------
   641   a) Emulated Net Device
   642      A new net device has been added as enabling technology for ns-3 emulation
   643      scenarios.  See src/devices/emu and examples/emu-udp-echo.cc for details.
   644 
   645   b) ICMP Support
   646      Support for several ICMP messages has been added to ns-3.  See 
   647      src/internet-stack/icmpv4.h for details.
   648 
   649   c) IPv6 Address Support
   650      New clases to support IPv6 addresses has been added to the system.  This
   651      is enabling technology for fuller IPv6 support scheduled for ns-3.4.
   652 
   653   d) A flow-id tag has been added to the contributed code section
   654 
   655   e) Star topologies can be created from the topology helper functions
   656 
   657   f) The global routing code has been made dynamic (not just limited to
   658      (pre-simulation computation) and supports stub network interfaces and 
   659      bridge net devices 
   660 
   661   g) A MatchContainer has been added to the configuration subsystem
   662 
   663 API changes from ns-3.2
   664 -----------------------
   665 API changes for this release are documented in the file CHANGES.html
   666 
   667 Known issues
   668 ------------
   669 ns-3 build is known to fail on the following platforms:
   670   - gcc 3.3 and earlier
   671   - optimized builds on gcc 3.4.4 and 3.4.5
   672   - optimized builds on linux x86 gcc 4.0.x
   673   - optimized builds on Ubuntu 8.10 alpha 5 x86 gcc4.3.2
   674   - MinGW
   675 
   676 The IPv4 API defined in src/node/ipv4.h is expected to undergo major changes 
   677 in preparation of the merge of the IPv6 API and implementation.
   678 
   679 Future releases
   680 ---------------
   681 Our next release, which is expected to happen in 2 to 4 months from now, will
   682 feature the merging of some of our projects currently in development including
   683 fuller IPv6 support, and IPv4 and routing protocol refactoring, and some smaller
   684 features such as an object naming facility and a new Global ARP package.
   685 
   686 Release 3.2
   687 ===========
   688 
   689 Availability
   690 ------------
   691 This release is immediately available from:
   692 http://www.nsnam.org/releases/ns-3.2.tar.bz2
   693 
   694 Supported platforms
   695 -------------------
   696 ns-3.2 has been tested on the following platforms:
   697   - linux x86 gcc 4.2, 4.1, and, 3.4.6.
   698   - linux x86_64 gcc 4.3.2, 4.2.3, 4.2.1, 4.1.3, 3.4.6
   699   - MacOS X ppc and x86
   700   - cygwin gcc 3.4.4 (debug only)
   701 
   702 Not all ns-3 options are available on all platforms; consult the
   703 wiki for more information:
   704 http://www.nsnam.org/wiki/index.php/Installation
   705 
   706 New user-visible features
   707 -------------------------
   708   a) Learning bridge (IEEE 802.1D)
   709     It is now possible to bridge together multiple layer 2 devices to
   710     create larger layer 2 networks. The Wifi and Csma models support
   711     this new mode of operation. (contributed by Gustavo Carneiro)
   712 
   713   b) Python bindings
   714     It is now possible to write simulation scripts in python using our 
   715     python bindings (contributed by Gustavo Carneiro).
   716 
   717   c) Real-time simulator
   718     It is now possible to run simulations synchronized on the real-world
   719     wall-clock time (contributed by Craig Dowell).
   720 
   721   d) Network Simulation Cradle
   722     It is now possible to use the Network Simulation Cradle 
   723     (http://www.wand.net.nz/~stj2/nsc/) in ns-3 and run simulations 
   724     using various versions of kernel TCP network stacks. (contributed
   725     by Florian Westphal as part of his Google Summer of Code work)
   726 
   727   e) A statistics framework
   728     Joseph Kopena contributed a statistics framework which can be used
   729     keep track of simulation data in persistent storage across multiple 
   730     runs (database and ascii file backends are available).
   731     More information on the wiki:
   732     http://www.nsnam.org/wiki/index.php/Statistical_Framework_for_Network_Simulation
   733 
   734 API changes from ns-3.1
   735 -----------------------
   736 API changes for this release are documented in the file CHANGES.html
   737 
   738 Known issues
   739 ------------
   740 ns-3 build is known to fail on the following platforms:
   741   - gcc 3.3 and earlier
   742   - optimized builds on gcc 3.4.4 and 3.4.5
   743   - optimized builds on linux x86 gcc 4.0.x
   744   - optimized builds on Ubuntu 8.10 alpha 5 x86 gcc4.3.2
   745   - MinGW
   746 
   747 The IPv4 API defined in src/node/ipv4.h is expected to undergo major changes 
   748 in preparation of the merge of the IPv6 API and implementation.
   749 
   750 Future releases
   751 ---------------
   752 Our next release, which is expected to happen in 2 to 4 months from now, will
   753 feature the merging of some of our projects currently in development: IPv6, 
   754 emulation, and synchronous posix sockets.
   755 
   756 Release 3.1 (2008/06/30)
   757 ========================
   758 
   759 The first ns-3 stable release
   760 -----------------------------
   761 
   762 This release is immediately available from:
   763 http://www.nsnam.org/releases/ns-3.1.tar.bz2
   764 
   765 We dedicate this initial ns-3 release to our late contributor and friend, 
   766 Federico Maguolo.
   767 
   768 What is ns-3 ?
   769 --------------
   770 
   771 ns-3 is a new discrete-event network simulator designed for supporting network
   772 research and education. ns-3 features a solid, well documented C++ core and 
   773 models for TCP/IP (IPv4), several link types including WiFi, and mobility 
   774 models.
   775 
   776 ns-3 is an open source project released under the GNU GPLv2 license which 
   777 allows anyone to use ns-3 without having to pay any license fee or royalties. 
   778 ns-3 is actively seeking new contributors to extend the range of supported 
   779 models and/or to maintain existing models.
   780 
   781 Where to get more information about ns-3
   782 ----------------------------------------
   783 
   784 All the ns-3 documentation, is accessible from the ns-3 website: 
   785 http://www.nsnam.org
   786 
   787 Including, tutorials:
   788 http://www.nsnam.org/tutorials.html
   789 
   790 Supported platforms
   791 -------------------
   792 
   793 ns-3 is regularly tested on the following platforms:
   794   - linux x86 gcc 4.2, 4.1, and, 3.4.6.
   795   - linux x86_64 gcc 4.1.3, 4.2.1, 3.4.6
   796   - MacOS X ppc and x86
   797   - cygwin gcc 3.4.4 (debug only)
   798 
   799 Known issues
   800 ------------
   801 
   802 ns-3 is known to fail on the following platforms:
   803   - gcc 3.3 and earlier
   804   - optimized builds on gcc 3.4.4 and 3.4.5
   805   - optimized builds on linux x86 gcc 4.0.x
   806 
   807 The IPv4 API defined in src/node/ipv4.h is expected to undergo major changes 
   808 in preparation of the merge of the IPv6 API and implementation.
   809 
   810 Future releases
   811 ---------------
   812 
   813 Our next release, which is expected to happen in 2 to 4 months from now, will
   814 feature the merging of some of our projects currently in development: python 
   815 scripting, IPv6, emulation, a statistics framework and synchronous posix 
   816 sockets.
   817 
   818 Release 3.0.13 (2008/06/02)
   819 ===========================
   820 - point to point links generate ppp pcap traces
   821 - point to point links support asymmetrical data rates.
   822 - generate doxygen documentation for all attributes and trace sources
   823 - add ConfigStore and GtkConfigStore to contrib module
   824 - socket API now support tx and rx buffers: implemented for UDP and TCP
   825 - ARP cache now supports per-entry pending queues
   826 - lots of bugfixes and implementation and API cleanups
   827 
   828 Warning: among API changes in this release, Application::Start and 
   829 Application::Stop now interprets the time argument as a relative
   830 instead of absolute simulation time, to align with how Simulator::Schedule
   831 behaves.  Any code that calls these APIs in the middle of the simulation 
   832 will need to be adapted.  
   833 
   834 The API of Simulator::StopAt (time) has also changed.  Now it is 
   835 called Simulator::Stop (time), and takes a relative time, instead of 
   836 absolute.
   837 
   838 Release 3.0.12 (2008/04/07)
   839 ===========================
   840     - Add Attribute support to the TypeId metadata system and add
   841 attribute support to all in-tree models
   842     - Add a mid-level helper API to build simulation topologies 
   843 and perform simple ascii and pcap link-level tracing.
   844     - Large amount of structural changes to accomodate the needs
   845 of the upcoming python bindings
   846     - new rate control algorithm (RRAA) and a jakes propagation model
   847 in the 802.11 model (Federico Maguolo).
   848     - regression test framework added
   849     - TCP delayed acknowledgements and multitasking server
   850 
   851 Release 3.0.11 (2008/02/15)
   852 ===========================
   853     - Initial port of GTNetS TCP implementation (initial version 
   854 that does not support multitasking or delayed acknowledgments yet, 
   855 but supports a reliable stream service)
   856     - Changes to the ns-3 object model to create a TypeId-based 
   857 metadata system
   858     - lots of bug fixes throughout the system
   859     - tutorial updates
   860 
   861 Release 3.0.10 (2008/01/15)
   862 ===========================
   863    - Add tutorial document content;
   864    - Valgrind option for "waf" tool;
   865    - Doxygen organization changes.
   866 
   867 Release 3.0.9 (2007/12/15)
   868 ==========================
   869    - A 802.11 model ported from Yans. This model supports:
   870        * a rather extensive PHY model
   871        * log-distance and friis propagation model
   872        * a simple set of rate control algorithms (ARF, Ideal, 
   873          AARF, constant-rate)
   874        * adhoc and infrastructure mode (beacon+assoc)
   875    - Use smart pointer for Packet in the APIs
   876    - A new contrib directory with helper classes: 
   877      EventGarbageCollector, Gnuplot
   878    - Tracing support for Applications
   879    - many bugs fixed
   880 
   881 Release 3.0.8 (2007/11/15)
   882 ==========================
   883    - A simple error model
   884    - Source files for ns-3 tutorial
   885 
   886 Release 3.0.7 (2007/10/15)
   887 ==========================
   888   - OLSR routing protocol
   889   - A timer class
   890   - Additional mobility models (random waypoint, random 2D walk)
   891   - A mobility visualization tool 
   892 
   893 Release 3.0.6 (2007/09/15)
   894 ==========================
   895   - Static multicast IPv4 routing
   896   - Logging overhaul (NS_LOG macros)
   897   - Refactoring of tracing subsystem
   898   - Tutorial document started
   899  
   900 Release 3.0.5 (2007/08/15)
   901 ==========================
   902 
   903   - Refactoring to support win32-based unix environments (Cygwin, mingw)
   904   - "Packet socket" for allowing applications to access NetDevices directly
   905   - Generalized, polymorphic Address class
   906   - Add CSMA NetDevice model (from Emmanuelle Laprise)
   907   - Modularize IPv4 routing support (from Gustavo Carneiro)
   908   - Add mobility framework and basic mobility models 
   909   - Global unicast centralized routing 
   910 
   911 Release 3.0.4 (2007/07/15)
   912 ==========================
   913 
   914   - Enable waf as the default build system.
   915   - Per-packet metadata:  a system to track which headers and trailers 
   916     are added to a packet
   917   - Simplifications to point-to-point devices and channel
   918 
   919 Release 3.0.3 (2007/06/15)
   920 ==========================
   921 
   922   - Enable Waf for release tarballs: users can now build ns-3
   923     with the "waf" tool. See doc/build-waf.txt.
   924   - Add support for variable time precision: it is now possible
   925     to run a simulation with an accuracy which is higher or lower
   926     than a nanosecond: seconds, milliseconds, microseconds, 
   927     femtoseconds and picoseconds are supported.
   928   - Optimize and rework the COM framework, solidify the component 
   929     manager
   930   - Many small API cleanups
   931 
   932 Release 3.0.2 (2007/05/18)
   933 ==========================
   934 
   935   - Implement a new memory management infrastructure based
   936     on reference counting and smart pointers (the latter being
   937     optional)
   938 
   939   - Implement a COM-like framework with support for QueryInterface
   940     to provide object extensibility
   941 
   942   - Add support for a BSD-style socket API for user applications
   943 
   944 Release 3.0.1 (2007/03/31)
   945 ==========================
   946 
   947   - First public release; not yet pre-alpha.
   948 
   949   - Simple UDP-based simulation script (examples/simple-p2p.cc)