Current Development
Main Page - Roadmap - Summer Projects - Project Ideas - Developer FAQ - Tools - Related Projects
HOWTOs - Installation - Troubleshooting - User FAQ - Samples - Models - Education - Contributed Code - Papers
On this page, we will try to maintain pointers to current ns-3 development work, and post some suggested project ideas. If you are interested in collaborating on one of these projects, please do not hesitate to contact the individuals identified.
Much of the current activity is centered around the current release, which is now ns-3.9 due in August. The release page should list code that is under active review for merging.
If you are new to ns-3 and want to contribute, please read these guidelines: Contributing to ns-3 and review the information on this page below.
Note: Several ns-3 developers hang out on IRC at #ns-3 at irc.freenode.net. A typically active time is around 1500 to 1900 UTC, Mondays through Fridays.
We conduct many of our reviews at http://codereview.appspot.com.
Reviews requested for ns-3 merge
The following are the list of active reviews for merge to ns-3-dev. The next window for merging will be August/Sept 2010.
GSOC
We have several Google Summer of Code projects under current review:
- LTE: http://codereview.appspot.com/1869054/show
- Underwater Networking: http://codereview.appspot.com/1743057
- Click routing: http://codereview.appspot.com/1690056
- OpenFlow integration: http://codereview.appspot.com/1872049/show
TCP refactoring
- code location: http://codereview.appspot.com/1702042/show
- reviewer(s): Tom Henderson, Josh Pelkey
- status: candidate for early merge to ns-3 after the ns-3.9 release
Vehicular Ad Hoc Networks (VANET)
- code location: http://codereview.appspot.com/179068
- reviewer(s): Mathieu Lacage
- status: waiting for more reviews
MPLS
- Submitted by: Andrey Churin
- code location: http://code.google.com/p/ns3-mpls/
- alternate code location: http://codereview.appspot.com/850045/show (Andrey recommends to look at the repo instead)
- reviewer(s): None
- status: Requested review on 11 April.
Chord/DHash DHT
- Submitted by: Harjot Gill
- code location: http://codereview.appspot.com/180107/show
- reviewers: Mathieu Lacage, Tom Henderson
- background: http://mailman.isi.edu/pipermail/ns-developers/2009-December/007222.html
- status: Dormant for a while
TCP Vegas
- Submitted by: Juan Pablo Poujade
- code location: http://mailman.isi.edu/pipermail/ns-developers/2010-February/007419.html
- reviewers: none officially
- status: Waiting for guidance on how TCP congestion control variants will be implemented in general
API and functionality for marking TOS bytes in packets
- Submitted by: Antti Makela
- code location: http://www.nsnam.org/bugzilla/show_bug.cgi?id=897
- reviewer(s): None
- status: Need to consider whether this fits into the Linux netfilter support that is planned
Build system and project infrastructure
Modular build and package management
This issue is being tracked (requirements and wish list) on this page
State of Doxygen
Plan to file a P1 blocker on thie release to bring Doxygen into compliance (no errors, no warnings for missing documentation).
Deprecate waf regression
Plan to file a P1 blocker on a future release to migrate waf regression tests to the test.py framework.
Buildbots
Status: Josh Pelkey is going to debug current buildbots
- investigate hooking code coverage (lcov) into the report
- investigate how the whole buildbot farm may be made available to a maintainer to test out a non-ns-3-dev repo.
Code contribution guidance
Tom took action item to simplify and clarify the project code contribution guidelines (for people wishing to contribute new code to ns-3).
Samples directory
Consider cleanup and move of samples/ directory to examples/?
Documentation
Considering to refactor documentation to split the existing manual into a model library and a software core reference manual, to add a lighter-weight tutorial, and to add a "cookbook" of howtos for common ns-3 tasks.
Website
Status: We are looking for a nicely themed static front page for the project, similar to other open source projects (e.g. http://www.pfsense.org). It should be easily maintainable (editable) via mercurial or a simple open-source content management system. Some people have suggested migration of content to Trac wiki, but no action taken on this.
Other ongoing development projects
Google Summer of Code 2010
Please see GSOC2010AcceptedProjects page. GSOC 2010 has completed and we will now be aiming to merge all project code during ns-3.10 open development phase.
NSF Frameworks for ns-3
Please see NSF_Frameworks page.
ns-3 core
Multi-threaded simulation implementation for multicore
- ns-developers post: http://mailman.isi.edu/pipermail/ns-developers/2009-July/006197.html
- code location: http://code.nsnam.org/guillaume/ns-3-multithreading/
- status: ns-3.10 merge?
Synchronized emulation
- code location: None posted yet
- background: http://mailman.isi.edu/pipermail/ns-developers/2009-July/006198.html
- status: contact Elias Weingartner
Linux namespaces and ns-3
- summary: Tom Goff has contributed code and documentation about how to use ns-3 with Linux namespaces.
- code location: See the below wiki page.
- background: http://www.nsnam.org/wiki/index.php/HOWTO_use_Linux_namespaces_with_ns-3
- status: Craig Dowell is presently working on integration of this capability with the CORE network emulator. Some form of this will likely be merged with ns-3 in the future.
Device and channel models
Miscellaneous wifi enhancements
- code location: http://codereview.appspot.com/65051
- reviewer(s): Mathieu Lacage
- status: Some of these pieces made it into ns-3.5-- others are pending
- background: http://groups.google.com/group/ns-3-reviews/browse_thread/thread/f0b36d7373421a7d#
Patch to pause and resume an interface
- code location: http://codereview.appspot.com/62054
- reviewer(s): TBD
- status:
802.11 model extensions
There are several efforts ongoing to extend the ns-3 Wifi model.
Harmonization with ns-2 802.11 Ext models
- summary: ns-2.33 added a new 802.11 model with much more detailed channel modeling. An effort has been started to port over reusable components from that implementation to ns-3's wifi model, while reusing already implemented basic components. The goal is a harmonization of the 802.11 models of ns-2 and ns-3. Leading aim is to support research on vehicular networks. Planned near-term features:
- Equalizing PHY models including capture effects, user-definable coding rates (e.g. 5.9 GHz from 802.11p)
- EDCA QoS extensions of 802.11e
- Already finished features:
- Nakagami/Rayleigh propagation loss model
- ns-developers post: http://mailman.isi.edu/pipermail/ns-developers/2008-November/004936.html
- code location: http://idlebox.net/2008/ns-3-wifi/code/ns-3-wifiex/
- status: under current active development. Time frame till this is completed: 4-5 month.
802.11n
- summary: University of Florence (LART lab) has begun work on an 802.11n model for ns3. The main goal is to simulate the frame aggregation feature. In the future, they aim to implement the High Throughput terminal behaviour with MIMO technology. They plan to add, to ns-3's 802.11 model, the following 802.11n features:
- Frame Aggregation
- Block ACK
- HCF (EDCA and support for HCCA)
- TXOP
- HT terminal (also with protection modes)
- MIMO
Also interested to verify the 11n terminal throughput when are associated terminal of a/b/g standards.
- Already finished features (in ns-3.5):
- HCF, TXOP, Frame Aggregation
- Merged for ns-3.8:
- Block ACK
- code location: http://code.nsnam.org/mirko/ns-3-80211n
- status: Frame aggregation and block ack merged already; others TBD
Wireless Interference (Jamming) Model
- summary: Network Security Lab (NSL), University of Washington, Seattle has begun work on a wireless interference (jamming) model for ns3. The goal is to to enable researchers to use ns3 to study jamming and its mitigation methods.
- wiki page: http://www.nsnam.org/wiki/index.php/NS-3_wireless_jamming_model
- code location: http://codereview.appspot.com/1055041/show
- status: Public review.
ns-3, 802.15.4 + 6LoWPAN
- status: Tommaso Pecorella announced his plans here
802.11n
- status: Tommaso Pecorella announced his plans here
Link layer
802.21 media independent handover
- wiki page: http://www.nsnam.org/wiki/index.php/NS-3_MIH_implementation
- code location: http://code.nsnam.org/salumu/ns-3-mih/
- status: Dormant-- no merge plans announced.
Network layer
IPv6 for ns-3
- summary: Ipv6 support for ns-3
- ns-developers post: http://mailman.isi.edu/pipermail/ns-developers/2008-June/004283.html
- code location: hg clone https://svnet.u-strasbg.fr/hg/ns-3-ipv6-2nd/
- status: ns-3.3 contains the first merge (Ipv6Address) of this code. ns-3.7 and ns-3.8 will continue to add features. Here is a tentative roadmap: http://mailman.isi.edu/pipermail/ns-developers/2009-July/006211.html
Application layer
Chord/DHash DHT
- code location: http://code.nsnam.org/gillh/ns-3-chord
- reviewers: (none yet)
- background: http://mailman.isi.edu/pipermail/ns-developers/2009-December/007222.html
Synchronous posix/sockets API
- summary: An ns-3 "process" environment
- ns-developers post: http://mailman.isi.edu/pipermail/ns-developers/2008-April/003912.html
- code location: http://code.nsnam.org/mathieu/ns-3-simu
- status: still in development
real-world application integration
- summary: port of quagga routing to ns-3
- wiki page: http://www.nsnam.org/wiki/index.php/Real_World_Application_Integration
- code location: http://code.nsnam.org/lj/quagga-porting/
- status: Was developed by Liu Jian, Google Summer of Code. Portions of this code are planned for a future release (ns-3.8 or later) when ns-3-simu is merged.
ns-3-simu sockopt patches
- code location: Four patches listed in http://mailman.isi.edu/pipermail/ns-developers/2009-June/006144.html
- reviewer(s): TBD
- status: review requested on June 22
- background: http://mailman.isi.edu/pipermail/ns-developers/2009-June/006144.html
Visualization for ns-3
Jeremy Norman and the iNSpect team have posted some plans for a visualization library for ns-3:
- http://mailman.isi.edu/pipermail/ns-developers/2008-March/003777.html
- http://mailman.isi.edu/pipermail/ns-developers/2008-November/004914.html
Gustavo Carneiro is working on a NS-3 Python visualization tool called NS-3 PyViz.
George Riley has made a prototype animator for PointToPoint links.
Joe Kopena is working on what he calls a "decorator" http://code.nsnam.org/tjkopena/
Hagen Paul Pfeifer is working on a MANET visualizer http://nv.dev.jauu.net/
Graphical simulation builder
Pierre Weiss and Sebastien Vincent have written an ns-3 scenario generator in Qt.
- http://mailman.isi.edu/pipermail/ns-developers/2010-May/007998.html
- Mercurial download: http://svnet.u-strasbg.fr/hg/ns-3-generator/
Miscellaneous
L2 Ethernet switch module
- ns-developers post: http://groups.google.com/group/ns-3-users/browse_thread/thread/0091ac611dde1928#
- status: No code yet, starting development.
Parallel simulations (2008)
- summary: ns-3 extensions for parallelization
- wiki page: http://www.nsnam.org/wiki/index.php/Parallel_Simulations
- code location: http://code.nsnam.org/pfeifer/ns-3-para/
- status: dormant since 2008 Google Summer of Code
Simulation Configuration and State Detection
In order to configure simulations across multiple, probably virtualized, machines a large amount of configuration must be performed in order to construct the component systems. The oppportunity for human error to creep in during this process renders it essentially manually unworkable for all but the simplest topologies. Craig Dowell is thinking about how to address this problem.
Delay Box for ns-3
Matt Crinklaw is working on a port of ns-2 DelayBox to ns-3.
- summary: http://www.isi.edu/nsnam/ns/doc/node247.html (from ns-2 documentation)
- code location: http://freehg.org/u/mlaw
- status: No status update recently. Dormant.
Suggested projects
2010 Google Summer of Code Project Ideas
We have posted some project ideas for Google Summer of Code. However, these ideas are not limited to the Google program.
Path MTU discovery and fragmentation for IPv4 stacks
There is no path MTU discovery implemented for IPv4. This, combined with lack of fragmentation, makes guessing the end-to-end MTU imperative for ns-3 simulations. We would welcome a contribution that introduced path MTU discovery and IPv4 fragmentation to ns-3. Note that there is fragmentation support in the yans simulator that may be of use; contact Mathieu Lacage for more information.
Removing traffic generation from applications class
- summary: Proposed decoupling to generalize applications
- ns-developers post: http://mailman.isi.edu/pipermail/ns-developers/2007-July/003136.html
- code location: http://code.nsnam.org/laprisee/ns-3-mp/
- status: Was under discussion in the summer.