Ns-3.6

From Nsnam
Revision as of 18:04, 8 September 2009 by Craigdo (Talk | contribs) (ns-3.6 Features Merged)

Jump to: navigation, search

Main Page - Current Development - Developer FAQ - Tools - Related Projects - Project Ideas - Summer Projects

Installation - Troubleshooting - User FAQ - HOWTOs - Samples - Models - Education - Contributed Code - Papers

This page summarizes the ongoing release planning for ns-3.6. The release manager is Craig Dowell.

The ns-3.6 Release Schedule

ns-3 releases are based on date-driven schedules as opposed to feature-driven schedules. We decide on a release date and then the release manager works backward to define windows during which time certain activites related to the release can happen. This has been done for ns-3.6 and the important milestones are:

  1. July 4 -- ns-3.5 posted;
  2. July 5 -- ns-3.6 Open phase begins;
  3. August 26 -- Recommended cutoff for new feature submission;
  4. September 2 -- Deadline for new feature submissions that require design review;
  5. September 9 -- Approved new feature ready-for-merge deadline;
  6. September 9 -- Late merge period begins (Merge Week Begins);
  7. September 16 -- Late merge period ends;
  8. September 16 -- Open phase ends;
  9. September 16 -- Maintenance phase begins;
  10. September 30 -- Maintenance phase ends;
  11. September 30 -- Code freeze phase begins;
  12. October 1 -- ns-3.6-RC1;
  13. October 5 -- ns-3.6-RC2;
  14. October 8 -- ns-3.6-RC3;
  15. October 12 -- ns-3.6-RC4;
  16. October 14 -- ns-3.6 posted;
  17. October 14 -- Code freeze phase ends;
  18. October 14 -- ns-3.7 Open phase begins.

As described in the Roadmap there are three broad sections in the release schedule. During the open phase, people wanting to include a new feature in ns-3.6 should contact craigdo and arrange to have their features merged into ns-3-dev. You will be expected to provide the following:

  • A mercurial patch or bundle against the current version of ns-3-dev that contains your proposed feature addition. You need to make sure that I can apply this patch and build and run (debug and optimized as appropriate) all unit and regression tests sucessfully on all of our target machines;
  • A summary of the additions you are proposing and an explanation of any changes to existing code that had to be done in order to support your feature (this will be used to genenerate release notes and will be provided to maintainers if a code review is indicated);
  • Some kind of unit or regression test that I can use to determine if your feature is actually working at each stage of the integration.

I will take a quick look at your proposed addition and determine if a code review is required. According to the book of instructions a code review requiring positive acknowledgement by maintainers is indicated if:

  • Your proposed feature does not work with all models or on all platforms;
  • Your feature changes pre-existing APIs;
  • Your feature crosses maintainer boundaries.

Just to be safe, I will probably run a feature submission by at least one maintainer according to the general area of applicability of the feature. For example, if you submit an entirely new device driver model, as a courtesy I will run this submission by the maintainers of the current devices. The maintainers won't have any responsibility to positively ack the submission, but I will take some time to allow a reasonable review.

I will coordinate new feature merges beginning at the start of the open phase (September 22, 2008). The absolute final deadline for feature inclusion in ns-3.6 is the start of the "Late merge period." This is the time during which I merge the code from all of those people who have waited until the last minute and work out any system integration issues that pop up. If you do wait until the last moment, you are not guaranteed to get your code into ns-3.6 even if it is perfect and completely reviewed. This is a first-in first-out process and will continue as long as resources allow; but don't expect any results. If you miss the start of the late merge period, or have a feature that is not design-reviewed by the start of the late merge period, well, sorry. You get to wait until the ns-3.7 open period to try again.

The end of the late merge period coincides with the beginning of the maintenance phase. No new features may be added, but the maintainers may check in fixes to bugs; and people with new features that have been accepted and previously merged may fix bugs in existing features. Please don't try to sneak in more new features or you may have your whole feature set removed at the release manager's discretion. You can ask me if you want to add small, self-contained features, but there are no guarantees that I will okay them.

On September 30th, we are going to enter the code freeze phase. This indicates that we are in the final stages of the release and our primary goal is stability. During the code freeze phase, only P1 bugfixes will be allowed to be checked in. I will begin my daily annoying emails listing all of the priority one bugs that are outstanding. Our goal will be to reduce the number of P1 bugs to zero before the release of ns-3.6.

I reserve the right to veto (and remove) any new feature addition if it begins to cause problems and looks like it threatens the stability of the release at any time in the release process.

Candidate Contributions for Inclusion in ns-3.6

Testing and Validation Framework

WiMAX

Multi-Channels in YANS Wifi Phy

802.11 10 MHz Channel

802.11 Mesh Model

NetAnim

Underwater Acoustic Network Device and Channel

Miscellaneous Wifi Enhancements

Patch to Pause and Resume an Interface

PacketBB (RFC 5444)

ns-3.6 Features Merged

   33   a) Add an implementation of the minstrel rate control algorithm 
   34      (Duy Nguyen for gsoc)
   35   
   36   b) IPv6 models:
   37     - IPv6 interface;
   38     - IPv6 layer;
   39     - IPv6 raw socket;
   40     - Static IPv6 routing;
   41     - ICMPv6 layer;
   42     - Some ICMPv6 error messages (destination unreachable, ...);
   43     - Neighbor Discovery Protocol (NS/NA, RS/RA, redirection);
   44     - Ping6 application (send Echo request);
   45     - Radvd application (send RA);
   46     - Examples (ping6, simple-routing-ping6, radvd, radvd-two-prefix,
   47       icmpv6-redirect).
   48 
   49   c) added AthstatsHelper, which enables the wifi device to produce
   50      periodic reports similar to the ones generated by madwifi's
   51      athstats tool (Nicola Baldo)

The ns-3.6 Bug List

The following is the list of all open bugs against ns-3 on September 18. We need to review and prioritize these bugs. Maintenance phase has started and we need a priority list.

ns-3

  • 555 nor P1 All ns-bugs@isi.edu NEW DCF immediate access bug
  • 341 nor P2 All craigdo@ee.washington.edu NEW Get unexpected dropped packets when using SetSendCallback with heavy traffic
  • 419 nor P2 All craigdo@ee.washington.edu NEW *Helper::SetAttribute* methods sometimes painful to use
  • 409 nor P2 Linu mathieu.lacage@sophia.inria.fr NEW Routing messages can exceed MTU, and fragmentation not supported
  • 407 nor P2 Linu tomh@tomh.org NEW OLSR is missing HNA support
  • 424 nor P2 All tomh@tomh.org NEW TCP FIN notification callback needed
  • 426 nor P2 All tomh@tomh.org NEW TCP: close does not send RST
  • 521 nor P2 All tomh@tomh.org NEW Ipv4 global routing inefficient
  • 32 enh P3 Linu mathieu.lacage@sophia.inria.fr NEW Add a Simulation::CancelByClassPointer (T *classInstance) method
  • 33 enh P3 All mathieu.lacage@sophia.inria.fr NEW Add a Simulator::DisableSchedule method
  • 41 nor P3 Wind mathieu.lacage@sophia.inria.fr NEW Statically linked simple-p2p and simple-p2p.exe assert
  • 111 nor P3 All mathieu.lacage@sophia.inria.fr NEW Ptr<Packet> is slower than raw Packet
  • 127 nor P3 All mathieu.lacage@sophia.inria.fr NEW Add trace callback type information for Python bindings
  • 155 min P3 All mathieu.lacage@sophia.inria.fr NEW "std::ostream & os" parameters not Python friendly
  • 184 nor P3 All mathieu.lacage@sophia.inria.fr NEW GtkConfigStore do not support ConfigureDefault
  • 231 nor P3 All mathieu.lacage@sophia.inria.fr NEW Problems Using Tags in UDP Implies Problems Elsewhere
  • 366 nor P3 All mathieu.lacage@sophia.inria.fr NEW Packet is not thread-safe
  • 397 enh P3 All mathieu.lacage@sophia.inria.fr NEW Custom WifiModes apparently not possible in infrastructure mode
  • 471 nor P3 All mathieu.lacage@sophia.inria.fr NEW [PATCH] access point address manager
  • 141 nor P3 All ns-bugs@isi.edu NEW udp tx buffer is not fixed size
  • 187 nor P3 All ns-bugs@isi.edu NEW Need 'perfect' ARP
  • 190 nor P3 All ns-bugs@isi.edu NEW Reminder: NS_LOG_APPEND_CONTEXT
  • 265 min P3 All ns-bugs@isi.edu NEW more STL like methods for ns3 containers.
  • 385 enh P3 All ns-bugs@isi.edu NEW Add a generic "sequence number" class
  • 414 nor P3 All ns-bugs@isi.edu NEW No ReceiveErrorModel in many devices
  • 476 nor P3 All ns-bugs@isi.edu NEW make sure RNG seeds and run number show up on ConfigStore output
  • 321 nor P3 Wind sam.jansen@gmail.com NEW can't checkout nsc repo
  • 437 nor P3 Linu sam.jansen@gmail.com NEW NSC does not work when SELinux is in enforcing mode
  • 272 nor P3 All tomh@tomh.org NEW InternetStackHelper::Install does not mention the fact that it aggregates PacketSocketFactory
  • 388 nor P3 All tomh@tomh.org NEW document how to apply fuzz to models
  • 575 nor P5 Linu amine.ismail@sophia.inria.fr NEW some of the TLVs carrying wimax PDUs are not correctly decoded by wireshark
  • 662 nor P5 Linu amine.ismail@sophia.inria.fr NEW the GetRequestedBandwidth() function doesn't return the correct value of BandwidthRequested
  • 622 nor P5 All craigdo@ee.washington.edu NEW [PATCH] Friendly names for pcap traces
  • 631 nor P5 Linu gjcarneiro@gmail.com NEW RealtimeSimulatorImpl not compatible with python bindings
  • 473 nor P5 All mathieu.lacage@sophia.inria.fr NEW [PATCH] Alternative ns-2 trace reader
  • 492 enh P5 All mathieu.lacage@sophia.inria.fr NEW It would be useful to have a pre-simulate state (and post)
  • 668 nor P5 All mk.banchi@gmail.com NEW not clear which values are to be used for QosTag::m_tid
  • 445 nor P5 All ns-bugs@isi.edu NEW Is the class name Scalar in nstime.h appropriate?
  • 454 nor P5 All ns-bugs@isi.edu NEW Where is tcp-echo.cc?
  • 462 nor P5 Linu ns-bugs@isi.edu NEW Ascii trace doesn't show tcp header at nsc using
  • 574 nor P5 All ns-bugs@isi.edu NEW changeset 1db0749fa7c6 works around a real problem
  • 582 nor P5 All ns-bugs@isi.edu NEW tags are not serialized and deserialized from Packet::Serialize and Packet::Deserialize
  • 602 nor P5 All ns-bugs@isi.edu NEW WifiRemoteStation lacks information about the access class of outgoing packets
  • 603 nor P5 All ns-bugs@isi.edu NEW Simulator::Next is useless
  • 606 nor P5 All ns-bugs@isi.edu NEW arp does an ip route lookup
  • 612 nor P5 All ns-bugs@isi.edu NEW example scripts
  • 615 nor P5 All ns-bugs@isi.edu NEW TCP does not respond with RST to non-listening port
  • 619 enh P5 All ns-bugs@isi.edu NEW Add a --build=target option to waf to build and link only the required dependencies for running target
  • 624 nor P5 All ns-bugs@isi.edu NEW Unable to modify packet tag in RouteInput ()
  • 635 enh P5 All ns-bugs@isi.edu NEW Added a "WillDrop" method to Queue class to tell in advance if a packet will be dropped
  • 636 nor P5 All ns-bugs@isi.edu NEW src/core should not depend on src/simulator
  • 643 nor P5 All ns-bugs@isi.edu NEW Interference Helper may not calculate noise interference properly
  • 647 nor P5 All ns-bugs@isi.edu NEW Ns-3 implementation of TCP fails to produce limited-queue CW sawtooth
  • 648 nor P5 All ns-bugs@isi.edu NEW Missing Doxygen for Several Helpers
  • 651 nor P5 All ns-bugs@isi.edu NEW Ipv4StaticRouting doesn't work stand-alone: can't deliver local packets
  • 652 nor P5 All ns-bugs@isi.edu NEW no public API for IPv4 neighbor table
  • 653 nor P5 All ns-bugs@isi.edu NEW NetDevice link change callback proposal
  • 663 nor P5 All ns-bugs@isi.edu NEW RST from remote TCP crashes ns-3 TCP
  • 664 nor P5 All ns-bugs@isi.edu NEW memory fault/dangling pointer problems in tcp-socket-impl.cc, with suggested fixes
  • 665 nor P5 All ns-bugs@isi.edu NEW Need Tutorial Sectino on Config Path and Tracing Use
  • 666 tri P5 All ns-bugs@isi.edu NEW wifi rates off by factor of 1000000 in ascii output
  • 667 enh P5 All ns-bugs@isi.edu NEW patches to enable ECMP in global routing
  • 669 nor P5 All ns-bugs@isi.edu NEW main-packet-printer broken
  • 671 nor P5 All ns-bugs@isi.edu NEW RecvIfIndex tag in sockets
  • 672 enh P5 All ns-bugs@isi.edu NEW UniformDiscPositionAllocator
  • 513 nor P5 All sam.jansen@gmail.com NEW NSC stack loses packet tags
  • 645 nor P5 All tjkopena@cs.drexel.edu NEW [patch] fixes for opening stats file with OMNeT++
  • 670 cri P1 All amine.ismail@sophia.inria.fr ASSI wimax-simple crashs
  • 381 min P3 All ns-bugs@isi.edu REOP Wifi crashes on shutdown
  • 559 nor P5 All ns-bugs@isi.edu REOP TcpSocketImpl doesn’t free endpoint quickly enough after being closed

NSC

  • 321 nor P3 Wind sam.jansen@gmail.com NEW can't checkout nsc repo
  • 437 nor P3 Linu sam.jansen@gmail.com NEW NSC does not work when SELinux is in enforcing mode
  • 462 nor P5 Linu ns-bugs@isi.edu NEW Ascii trace doesn't show tcp header at nsc using

Open Blockers

The following bugs must be addressed before ns-3.6 ships.

TBD

High Priority Non-blockers

The following bugs would be nice-to-have before ns-3.6 ships. If all of the blockers are fixed, we will begin to address these bugs.

TBD