Ns-3.3
Main Page - Roadmap - Summer Projects - Project Ideas - Developer FAQ - Tools - Related Projects
HOWTOs - Installation - Troubleshooting - User FAQ - Samples - Models - Education - Contributed Code - Papers
The Release
This page summarizes the ongoing release planning for the third stable release of ns-3.
- ns-3-dev is currently in the code-freeze phase of the ns-3.3 release. Only bugfixes for P1 bugs reported in the tracker are allowed, and checkins must be coordinated with the release manager;
- The third release candidate for ns-3.3 (ns-3.3-RC3) was posted on December 9th, 2008;
- The next release candidate for ns-3.3 (ns-3.3-RC4) is scheduled for Friday, December 12th, 2008;
- ns-3.3 is scheduled for release in December 17, 2008.
The Hot List
ns-3.3 is currently in the code-freeze phase of the release. The release is scheduled for December 17, 2008. By definition, we require that all priority one bugs must be resolved prior to that date. We want some stability prior to release, so the reality is that all P1 bugs must be resolved prior to ns-3.3-RC4, which is scheduled (see below) for December 12th, 2008. As I type this, it is December 13th, and we are one day past due on our final RC. Time's up and we have two P1 bugs left.
Bhattacharjea:
250 Tcp breaks if you set the delackcount > 2-- Fixed341 Get unexpected dropped packets when using SetSendCallback with heavy traffic-- Priority Reduced358 calling listen on non-closed TCP sockets sends resets, should fail and do nothing-- Fixed365 TcpSocketImpl::Recv returns 0 without setting m_errno-- Fixed392 Example star.cc confuses TCP-- Fixed410 Doxygen is not picking up class OnOffHelper-- Fixed411 OnOffApplication::OnTime does not work-- Fixed417 stack explosion when sending to loopback device-- Fixed- 418 RttEstimator::RetransmitTimeout can return a negative value
423 TCP copy constructor wrong-- Fixed
Carniero:
289 CommandLine::AddValue is not wrapped-- Fixed325 regression code should be moved into regression/wscript-- Fixed348 regression tests do not work in private or disconnected networks-- Fixed387 Build fails with junk subdirectories in "scratch" directory-- Fixed413 python bindings not portable to OS X-- Fixed
Dowell:
66 improve granularity of GlobalRouteManager::PopulateRoutes-- Fixed114 global routing doesn't handle multi-hop layer-2 subnets-- Fixed187 Need 'perfect' ARP-- Priority Reduced215 Node names patch-- Priority Reduced230 Simulator::Now() Updating and Simulator::Stop()-- Fixed241 Trace sources not clearly documented, trace sinks not clearly documented-- Superceded263 XxxAddress::ConvertFrom are prone to subtle bugs-- Won't Fix383 Please make _all_ header structures public-- Fixed391 Example csma-star kills global routing-- Fixed401 add InternetStackHelper::EnableAscii ()-- Fixed404 ErrorModel attribute name is not consistent across devices-- Fixed414 No ReceiveErrorModel in many devices-- Priority Reduced416 pcap traces not always closing cleanly at simulation end-- Invalid419 *Helper::SetAttribute* methods sometimes painful to use-- Priority Reduced422 Emulation Needs a Manual Chapter-- Fixed429 wifi-wired-bridging fails regression tests on Cygwin and OSX Intel-- Fixed431 wifi wired-bridging.cc memory leak reported in valgrind-- Fixed439 second.cc and third.cc don't set CSMA data rate and delay-- Fixed442 The device trace sources in the system are not very well documented-- Fixed444 Inernet-stack trace sources not well documented-- Fixed
Henderson:
188 global routing does not handle ip aliasing-- Priority Reduced400 Wifi Muti-Hop Network not forwaring packets (atleast ARP)-- Fixed403 Ipv4AddressHelper cannot assign /32 addresses-- Fixed406 GlobalRouteManager behaviour after Ipv4 interface SetDown and SetUp procedure<- Fixed407 OLSR may select wrong interface in MID context-- Priority Reduced415 OLSR's broken dynamic behaviour?<-- Fixed433 DataRate: kBps and kB/s have wrong multipliers.-- Fixed
Lacage:
218 wifi PHY base class must be virtualized and subclass renamed-- Fixed257 log time printer, can we optionally support output of time in seconds?-- Fixed395 log distance propagation loss model complex to use.-- Fixed396 Weird WiFi error state with STA slowing approaching the wifi range of an AP-- Fixed397 Custom WifiModes apparently not possible in infrastructure mode-- Priority Reduced398 NqstaWifiMac does not filter received frames by BSSID-- Fixed405 wifi log messages improvements-- Fixed408 No duplicate filtering for managament frames-- Fixed409 Simulation fails depending on number of wireless nodes-- Priority Reduced412 Extend number of template parameters in xxxCallback classes-- Priority Reduced435 yans wifi helper file names not consistent-- Fixed436 class MatchContainer lacks Doxygen-- Fixed440 Tutorial example third.cc no longer compiles, tutorial obsolete-- Fixed
Westphal:
320 getsockname returns a port number in network byte order-- Fixed356 tcp-nsc-lfn fails with --valgrind selected-- Fixed428 segfault in tcp-nsc-lfn-- Priority Reduced/Renamed
Unassigned/All:
430 Doxygen warnings creeping back into system-- Fixed441 double Time::GetSeconds() precision or roundingissue-- Fixed
The Release Manager
Craig Dowell (craigdo at ee.washington.edu) is the release manager for ns-3.3 and is the contact for any release issues.
The ns-3.3 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.3 and the important milestones are:
- September 22 -- ns-3.2 posted;
- September 22 -- ns-3.3 Open phase begins;
- October 20 -- Recommended cutoff for new feature submission;
- October 27 -- Deadline for new feature submissions that require design review;
- November 3 -- Approved new feature ready-for-merge deadline;
- November 3 -- Late merge period begins (Merge Week Begins);
- November 10 -- Late merge period ends;
- November 10 -- Open phase ends;
- November 10 -- Maintenance phase begins;
- December 1 -- Maintenance phase ends;
- December 1 -- Code freeze phase begins;
- December 2 -- ns-3.3-RC1;
- December 5 -- ns-3.3-RC2;
- December 9 -- ns-3.3-RC3;
- December 12 -- ns-3.3-RC4;
- December 17 -- ns-3.3 posted;
- December 17 -- Code freeze phase ends;
- December 17 -- ns-3.4 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.3 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.3 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 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.4 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 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 December 1st, 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.3.
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.
Candidates for Merge into ns-3.3
As you can see in the Roadmap, we have identified several candidates for inclusion in ns-3.3. As time passes, I will add more status regarding the progress of these new features.
- IPv6 Address Support -- Merged
- Emulation Mode Support -- Merged
- ICMP Support -- Merged
Build System Refactoring-- Dropped from ns-3.3IPv4/Routing Refactoring + Basic IPv6 Support-- Dropped from ns-3-3Random Number Generator and RandomVariable Changes-- Dropped from ns-3.3
IPv6 Address Support
Status as of November 7, 2008
IPv6 Address Support merged into ns-3-dev.
Emulation Mode Support
Status as of November 5, 2008
Emulation Mode Support merged into ns-3-dev.
ICMP Support
Status as of October 29, 2008
ICMP Support merged into ns-3-dev.
Craigdo 22:15, 13 December 2008 (UTC)