Release 3.7
Availability
This release is immediately available from here.
Supported platforms
ns-3.7 has been tested on the following platforms:
- linux x86 gcc 4.4.0, 4.3.2, 4.2, 4.1.1, 4.1 and 3.4.6 (debug and optimized)
- 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)
- MacOS X ppc gcc 4.0.x and 4.2.x (debug and optimized)
- cygwin gcc 3.4.4 (debug only), gcc 4.3.2 (debug and optimized)
Unofficially supported platform
mingw gcc 3.4.5 (debug only)
Not all ns-3 options are available on all platforms; consult the Installation page for more information.
New user-visible features
- Ad hoc On-Demand Distance Vector (AODV) routing model (RFC 3561)
- IPv6 extensions support to add IPv6 extensions and options. Two examples (fragmentation and loose routing) are available.
- NetAnim interface: Provides an interface to the Qt-based NetAnim animator, which supports static, point-to-point topology-based packet animations.
- New topology helpers have been introduced – PointToPointDumbbellHelper – PointToPointGridHelper – PointToPointStarHelper – CsmaStarHelper
- Equal-cost multipath for global routing: Enables quagga’s equal cost multipath for Ipv4GlobalRouting, and adds an attribute that can enable it with random packet distribution policy across equal cost routes.
- Binding sockets to devices: A method analogous to a SO_BINDTODEVICE socket option has been introduced to class Socket
- Object::DoStart: Users who need to complete their object setup at the start of a simulation can override this virtual method, perform their adhoc setup, and then, must chain up to their parent.
- Ipv4::IsDestinationAddress method added to support checks of whether a destination address should be accepted as one of the host’s own addresses.
- UniformDiscPositionAllocator added; distributes uniformly the nodes within a disc of given radius.
- ChannelNumber attribute added to YansWifiPhy. Now it is possible to setup wifi channel using WifiPhyHelper::Set() method.
- WaypointMobilityModel provides a method to add mobility as a set of (time, position) pairs
- 802.11p WiFi standards
- UDP Client/Server application
- Support transactions in the SQLite output interface, making it usable for larger amounts of data
Bugs fixed
The following lists many of the bugs that were fixed since ns-3.6, in many cases referencing the Bugzilla bug number:
- bug 752: Object::DoStart is not executed for objects created at t > 0
- bug 767: Incorrect modulation for 802.11a modes
- bug 725: wifi fragmentation and RTS cannot be used at the same time
- bug 782: CreateTap () requires IP address in modes other than CONFIGURE_LOCAL.
- bug 769: Queue::GetTotalReceived{Bytes,Packets}() broken
- bug 738 ReceiveErrorModel called too late
- Fix NSC improper response to FIN
- Fixed bug in serialization of PbbAddressBlock.
- Fix bug 780 (problem in RoutingTableComputation with asymetric links), while adding debugging methods to OLSR.
- bug 759: Ipv6 uses wrong outgoing interface.
- bug 770: IPv6 size calculation for unknown options is wrong.
- bug 771: Radvd does not set ttl value.
- Fix bug 606: Arp depends on IP routing system
- pad out CSMA payloads to 46 bytes if needed
- Drop CSMA packets with CRC errors, rescan, dox tweaks
- Add FCS capability to CSMA
- Mesh:Dot11s: fixed airtime metric
- Get emu working again: Add Dix/Llc option, add and use contextual realtime schedule ops, don’t refcount realtime simulator impl
- bug 695 – DcfManager::UpdateBackoff () uses slow HighPrecision::Div()
- bug 674 – EIFS is not handled correctly in DcfManager::GetAccessGrantStart
- bug 739 – OLSR: Strange HTime value in HELLO messages
- bug 746 – UDP source address is not set to bound address
- bug 735 Update Olsr for local delivery
- bug 740 OLSR MprCompute () works wrong: fixed
- bug 729 Enable IPv6 over PPP.
- bug 645: fixes for opening stats file with OMNeT++
- bug 689: default energy detection and CCA thresholds are changed to be more realistic.
- bug 733: OLSR MPR Computation give incorrect result
- Mesh: HWMP: fixed proactive routes
- Mesh: fixed FLAME PATH_UPDATE procedure, fixed mesh.cc
Known issues
ns-3 builds have been 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