Difference between revisions of "Current Development"

From Nsnam
Jump to: navigation, search
(LTE)
(update current development)
Line 3: Line 3:
 
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.
 
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.10 due in early 2011.  The release page should list code that is under active review for merging.
+
Much of the current activity is centered around the current release, which is now ns-3.10 due in early 2011.  The release page should list code that is under active review for merging[[Ns-3.10 | ns-3.10 release page]]
 
+
'''[[Ns-3.10 | ns-3.10 release page]]'''
+
  
 
If you are new to ns-3 and want to contribute, please read these guidelines:  [http://www.nsnam.org/contributing.html Contributing to ns-3] and review the information on this page below.
 
If you are new to ns-3 and want to contribute, please read these guidelines:  [http://www.nsnam.org/contributing.html Contributing to ns-3] and review the information on this page below.
Line 15: Line 13:
 
= Reviews requested for ns-3 merge =
 
= Reviews requested for ns-3 merge =
  
The ns-3.10 page has the most recent list of things under review for merge.
+
The [[Ns-3.10 | ns-3.10 release page]]  has the most recent list of things under review for merge.
 
+
== 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 [[App_Store_Technical_Requirements | 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).
+
 
+
== 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 project =
  
== NSF Frameworks for ns-3 ==
+
A multi-year project funded by NSF to improve usability of ns-3.  Please see [[NSF_Frameworks]] page.
  
Please see [[NSF_Frameworks]] page.
+
= Publicly announced development projects =
  
 
== ns-3 core ==
 
== ns-3 core ==
Line 119: Line 31:
 
=== Synchronized emulation ===
 
=== Synchronized emulation ===
  
* ''code location'': None posted yet
+
* ''code location'': http://www.comsys.rwth-aachen.de/projects/slicetime/
* ''background'':  http://mailman.isi.edu/pipermail/ns-developers/2009-July/006198.html
+
* ''background'':  http://mailman.isi.edu/pipermail/ns-developers/2010-November/008488.html
* ''status'':  contact Elias Weingartner
+
* ''status'':  announced in Nov. 2010
  
 
=== Linux namespaces and ns-3 ===
 
=== Linux namespaces and ns-3 ===
Line 128: Line 40:
 
* ''code location'':  See the below wiki page.
 
* ''code location'':  See the below wiki page.
 
* ''background'':  http://www.nsnam.org/wiki/index.php/HOWTO_use_Linux_namespaces_with_ns-3
 
* ''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 [http://cs.itd.nrl.navy.mil/work/core/index.php CORE network emulator].  Some form of this will likely be merged with ns-3 in the future.   
+
* ''status'':  Working on integration of this capability with the [http://cs.itd.nrl.navy.mil/work/core/index.php CORE network emulator].  Some form of this will likely be merged with ns-3 and CORE in the future.   
  
 
== Device and channel models ==
 
== Device and channel models ==
Line 182: Line 94:
 
* ''code location'': http://codereview.appspot.com/1055041/show
 
* ''code location'': http://codereview.appspot.com/1055041/show
 
* ''status'': Public review.
 
* ''status'': Public review.
 +
 +
=== Vehicular Ad Hoc Networks (VANET) ===
 +
 +
* ''summary'': Michele Weigle's group is working on VANET and has posted a patch for review in the past, but has taken it off the table for ns-3 merge consideration until more work is done.
 +
* ''code location'': None publicly posted at this time.
  
 
=== ns-3, 802.15.4 + 6LoWPAN ===
 
=== ns-3, 802.15.4 + 6LoWPAN ===
Line 216: Line 133:
 
* ''code location'':  http://code.nsnam.org/salumu/ns-3-mih/
 
* ''code location'':  http://code.nsnam.org/salumu/ns-3-mih/
 
* ''status'': Dormant-- no merge plans announced.
 
* ''status'': Dormant-- no merge plans announced.
 +
 +
== MPLS ==
 +
 +
* ''Submitted by'': Andrey Churin
 +
* ''code location'': http://code.google.com/p/ns-3-shop/
 +
* ''reviewer(s)'':  None
 +
* ''status'':  Project has moved to Google hosting. 
  
 
== Network layer ==
 
== Network layer ==
Line 225: Line 149:
 
* ''code location'': hg clone https://svnet.u-strasbg.fr/hg/ns-3-ipv6-2nd/
 
* ''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
 
* ''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
 +
 +
=== 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
 +
 +
=== DSR routing ===
 +
 +
* ''Submitted by:'' Yufei Cheng
 +
* ''status:'' Announced here:  http://mailman.isi.edu/pipermail/ns-developers/2010-December/008496.html
 +
 +
=== DSDV routing ===
 +
 +
* ''Submitted by:'' Hemanth Narra
 +
* ''code location:'' http://codereview.appspot.com/1668042/show
 +
* ''status:'' Announced here:  http://mailman.isi.edu/pipermail/ns-developers/2010-December/008496.html
 +
 +
== Transport layer ==
 +
 +
=== 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
  
 
== Application layer ==
 
== Application layer ==
  
== Chord/DHash DHT ==
+
=== Chord/DHash DHT ===
  
* ''code location'': http://code.nsnam.org/gillh/ns-3-chord
+
* ''Submitted by'': Harjot Gill
* ''reviewers'': (none yet)
+
* ''code location:'' http://codereview.appspot.com/180107/show
* ''background'': http://mailman.isi.edu/pipermail/ns-developers/2009-December/007222.html
+
* ''reviewers:'' Mathieu Lacage, Tom Henderson
 +
* ''background:'' http://mailman.isi.edu/pipermail/ns-developers/2009-December/007222.html
 +
* ''status:'' Dormant for a while
  
 
=== Synchronous posix/sockets API ===
 
=== Synchronous posix/sockets API ===
Line 255: Line 208:
 
* ''background'':  http://mailman.isi.edu/pipermail/ns-developers/2009-June/006144.html
 
* ''background'':  http://mailman.isi.edu/pipermail/ns-developers/2009-June/006144.html
  
== Visualization for ns-3 ==
+
== Visualization ==
  
 
Jeremy Norman and the iNSpect team have posted some plans for a visualization library 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-March/003777.html
 
* http://mailman.isi.edu/pipermail/ns-developers/2008-November/004914.html
 
* http://mailman.isi.edu/pipermail/ns-developers/2008-November/004914.html
 
Gustavo Carneiro is working on a NS-3 Python visualization tool called [[PyViz|NS-3 PyViz]].
 
  
 
George Riley has made a [[NetAnim | prototype animator]] for PointToPoint links.
 
George Riley has made a [[NetAnim | prototype animator]] for PointToPoint links.
Line 269: Line 220:
 
Hagen Paul Pfeifer is working on a MANET visualizer http://nv.dev.jauu.net/
 
Hagen Paul Pfeifer is working on a MANET visualizer http://nv.dev.jauu.net/
  
== Graphical simulation builder ==
+
=== Graphical simulation builder ===
  
 
Pierre Weiss and Sebastien Vincent have written an [[Ns3Generator| ns-3 scenario generator]] in Qt.   
 
Pierre Weiss and Sebastien Vincent have written an [[Ns3Generator| ns-3 scenario generator]] in Qt.   
 
* http://mailman.isi.edu/pipermail/ns-developers/2010-May/007998.html
 
* http://mailman.isi.edu/pipermail/ns-developers/2010-May/007998.html
 
* Mercurial download:  http://svnet.u-strasbg.fr/hg/ns-3-generator/
 
* Mercurial download:  http://svnet.u-strasbg.fr/hg/ns-3-generator/
 +
 +
=== NetExplorer ===
 +
 +
[http://code.google.com/p/ns-3-shop/wiki/NetExplorer | NetExplorer] is Gnome/Gtk network animation tool for NS-3.
  
 
== Miscellaneous ==  
 
== Miscellaneous ==  
Line 289: Line 244:
 
* ''status'':  dormant since 2008 Google Summer of Code
 
* ''status'':  dormant since 2008 Google Summer of Code
  
 +
=== 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.
  
 
=== Simulation Configuration and State Detection ===
 
=== Simulation Configuration and State Detection ===
Line 296: Line 257:
 
[[SimulationConfiguration | Simulation Configuration]]
 
[[SimulationConfiguration | Simulation Configuration]]
  
=== Delay Box for ns-3 ===
+
= Build system and project infrastructure =
  
Matt Crinklaw is working on a port of ns-2 DelayBox to ns-3.
+
== Modular build and package management ==
* ''summary'':  http://www.isi.edu/nsnam/ns/doc/node247.html (from ns-2 documentation)
+
 
* ''code location'':  http://freehg.org/u/mlaw
+
This issue is being tracked (requirements and wish list) on [[App_Store_Technical_Requirements | this page]]
* ''status''No status update recently.  Dormant.
+
 
 +
== State of Doxygen ==
 +
 
 +
Need to bring Doxygen into compliance (no errors, no warnings for missing documentation).
 +
 
 +
== 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 ==
 +
 
 +
StatusINRIA is organizing some updates to the website.
  
 
= Suggested projects =
 
= Suggested projects =
Line 315: Line 300:
 
There is no [http://en.wikipedia.org/wiki/Path_MTU_discovery 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 [http://yans.inria.fr/yans/ yans simulator] that may be of use; contact Mathieu Lacage for more information.   
 
There is no [http://en.wikipedia.org/wiki/Path_MTU_discovery 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 [http://yans.inria.fr/yans/ yans simulator] that may be of use; contact Mathieu Lacage for more information.   
  
== Removing traffic generation from applications class ==
+
== Create non-IP stack for ns-3 ==
 +
 
 +
All ns-3 simulations are IP based but there is no template for how to do this for non-IP-based stacks.  One issue that should be addressed in the long term is that applications that generate traffic are strongly coupled to the sockets interface. It would be nice to decouple the traffic generation aspects of these applications from the sockets-related code.
  
 
#* ''summary'': Proposed decoupling to generalize applications
 
#* ''summary'': Proposed decoupling to generalize applications

Revision as of 23:15, 8 December 2010

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

Installation - Troubleshooting - User FAQ - HOWTOs - 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.10 due in early 2011. The release page should list code that is under active review for merging: ns-3.10 release page

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: ns-3 developers sometimes hang out on IRC at #ns-3 at irc.freenode.net.

We conduct many of our reviews at http://codereview.appspot.com.

Contents

Reviews requested for ns-3 merge

The ns-3.10 release page has the most recent list of things under review for merge.

NSF Frameworks for ns-3 project

A multi-year project funded by NSF to improve usability of ns-3. Please see NSF_Frameworks page.

Publicly announced development projects

ns-3 core

Multi-threaded simulation implementation for multicore

Synchronized emulation

Linux namespaces and ns-3

Device and channel models

Miscellaneous wifi enhancements

Patch to pause and resume an interface

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; Tommaso Pecorella announced his lab's next steps here

Wireless Interference (Jamming) Model

Vehicular Ad Hoc Networks (VANET)

  • summary: Michele Weigle's group is working on VANET and has posted a patch for review in the past, but has taken it off the table for ns-3 merge consideration until more work is done.
  • code location: None publicly posted at this time.

ns-3, 802.15.4 + 6LoWPAN

  • status: Tommaso Pecorella announced his plans here

LTE

Several developers expressed their interest in enhancing the LTE code developed within the GSoC 2010:

  • Nicola Baldo and Marco Miozzo (CTTC) announced to be working on the following:
    • adding UL link adaptation
    • modeling inter-cell interference
    • reworking the RRM/scheduling API
  • Leo Razoumov announced possible interest in the following contributions:
    • MIMO
    • PHY model abstractions
    • scheduling models
    • mobility and traffic models
  • Giuseppe Piro and his group (DEE, Politecnico di Bari) announced the intent to continue with the development of the LTE module, focusing mainly on the following MAC layer aspects:
    • RRM
    • scheduling
    • AMC
  • Marco Mezzavilla and his group (DEI, University of Padova) announced interest in working on the following:
    • MAC layer
    • mobility
    • traffic modelization
    • MIMO

Link layer

802.21 media independent handover

MPLS

Network layer

IPv6 for ns-3

API and functionality for marking TOS bytes in packets

DSR routing

DSDV routing

Transport layer

TCP Vegas

Application layer

Chord/DHash DHT

Synchronous posix/sockets API

real-world application integration

ns-3-simu sockopt patches

Visualization

Jeremy Norman and the iNSpect team have posted some plans for a visualization library for ns-3:

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.

NetExplorer

| NetExplorer is Gnome/Gtk network animation tool for NS-3.

Miscellaneous

L2 Ethernet switch module

Parallel simulations (2008)

Delay Box for ns-3

Matt Crinklaw is working on a port of ns-2 DelayBox to ns-3.

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.

Simulation Configuration

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

Need to bring Doxygen into compliance (no errors, no warnings for missing documentation).

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: INRIA is organizing some updates to the website.

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.

Project ideas here

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.

Create non-IP stack for ns-3

All ns-3 simulations are IP based but there is no template for how to do this for non-IP-based stacks. One issue that should be addressed in the long term is that applications that generate traffic are strongly coupled to the sockets interface. It would be nice to decouple the traffic generation aspects of these applications from the sockets-related code.