Difference between revisions of "Current Development"

From Nsnam
Jump to: navigation, search
m (Nix-vector routing)
(CSMA model)
 
(216 intermediate revisions by 15 users not shown)
Line 1: Line 1:
 
{{TOC}}
 
{{TOC}}
  
On this page, we will try to maintain pointers to current ns-3 development work, and post some suggested project ideas.
+
On this page, we will try to summarize current ns-3 development work.  If you are interested in collaborating on one of these projects, or reviewing work by others, please do not hesitate to contact the individuals identified, or the [mailto:tomh@tomh.org page maintainer].
  
If you are interested in collaborating on one of these projects, please do not hesitate to contact the individuals identified.
+
There are a few other places to look for current activity on ns-3 development:
 +
* the current release page will list code under consideration for merging, and bugs being worked.  The next release, [[Ns-3.30 | ns-3.30 release]], is not yet scheduled.
 +
* we should have entries for all of our known bugs in the [http://www.nsnam.org/bugzilla Bugzilla] bug tracker.
 +
* [[Related_Projects | Related projects]] list some active and past projects that are associated with ns-3.
 +
* We maintain a suggested [[Project_Ideas | project ideas]] page for people interested in trying to start something new, or finish off some existing work.
 +
* We conduct [https://groups.google.com/forum/?fromgroups#!forum/ns-3-reviews code review discussions] on the Google Group 'ns-3-reviews'
  
For newcomers:  [http://www.nsnam.org/contributing.html Contributing to ns-3]
+
= How to get involved =
  
'''Note:''' Several ns-3 developers hang out on IRC at #ns-3 at irc.freenode.netA typically active time is around 1500 to 1900 UTC, Mondays through Fridays.
+
ns-3 always can use more time and assistance from contributors of all skill levelsOne of the best ways to learn a tool is to try to get involved in its development processes, even if it is as simple as pointing out stale information or documentation on our web pages.  Ideas on how to get started are on our [[Project_Ideas | project ideas]] page.
  
== Developer home pages ==
+
If you are new to ns-3 and want to contribute code, please read these guidelines:  [http://www.nsnam.org/developers/contributing-code/ Contributing to ns-3] and review the information on this page below.   
  
Here are some developer pages, to see what people are currently working on:
+
'''Note:''' ns-3 developers sometimes hang out on IRC at #ns-3 at irc.freenode.net.   [http://colabti.org/irclogger/irclogger_logs/ns-3 IRC logs]
* [http://www.nsnam.org/wiki/index.php?title=User:Rajb245 Raj B.]
+
* [http://www.nsnam.org/wiki/index.php?title=User:Tomh Tomh]
+
* [http://www.nsnam.org/wiki/index.php?title=User:craigdo craigdo]
+
  
== Code contributions under review for main tree ==
+
Also, please check out the [[Nsnam:Current events | Current events]] page to learn of upcoming events for ns-3.
  
This section is devoted to code that is being reviewed or considered for merge to ns-3-dev.  Some small patches are not included here and can be found in the tracker instead, often with the keyword
+
= Code reviews =
[http://www.nsnam.org/bugzilla/buglist.cgi?quicksearch=%5bPATCH%5d PATCH]
+
  
We conduct many of our reviews at http://codereview.appspot.comThe [[Reviews]] page links to some of this code that is currently under review (also summarized below).
+
All new code (other than maintenance code committed directly by a module's maintainer) goes through a public code review.  The process is described [http://www.nsnam.org/developers/contributing-code/code-reviews/ here]This page is devoted to listing code reviews that have been publicly announced.
  
=== WiMAX ===
+
Currently open code reviews should be also tagged in our bug tracker:  https://www.nsnam.org/bugzilla/buglist.cgi?query_format=advanced&resolution=---&short_desc=code%20review&short_desc_type=allwordssubstr
  
* ''code location'':  http://code.nsnam.org/fmoatamr/ns-3-wimax-release/
+
Some older code reviews can be found here (some of these have been included in ns-3, some are still pending):
* ''reviewers'': Ismael Amine, Faker Moatamri, Mathieu Lacage
+
* ''status'': http://mailman.isi.edu/pipermail/ns-developers/2009-August/006329.html
+
  
=== Multi-channels in yans wifi phy ===
+
* '''Mobility service interface (revised)'''
 +
** Code review:  https://codereview.appspot.com/265730044/
 +
** Wiki page:  https://www.nsnam.org/wiki/RoutesMobilityModel
 +
** Repo:  https://bitbucket.org/TiagoCerqueira/routesmobilitymodel/overview
  
* ''code location'':  http://codereview.appspot.com/91057/show
+
* '''LR-WPAN Contiki MAC''' (and updated energy model code)
* ''reviewers'': Nicola Baldo, Mathieu
+
** Code reviewhttps://codereview.appspot.com/254120043/
* ''status'': merged July 16; more work needed on channel switching implementation
+
  
=== 802.11 10 MHz channel ===
+
* '''Lr-Wpan Energy Model'''
 +
** Code review:  <s>https://codereview.appspot.com/249560043/</s> See above contiki mac review
  
* ''code location'': patch at:  http://mailman.isi.edu/pipermail/ns-developers/2009-July/006214.html
+
* '''SiFT'''
* ''reviewer(s)'':  TBD
+
** Code reviewhttps://codereview.appspot.com/246310044/
* ''status''review requested on July 9
+
* ''background'': http://mailman.isi.edu/pipermail/ns-developers/2009-July/006214.html
+
  
=== 802.11 mesh model review ===
+
* '''Collector classes for Data collection framework'''
 +
** Code review:  http://codereview.appspot.com/245260043
  
* ''code location'': several places listed in http://mailman.isi.edu/pipermail/ns-developers/2009-July/006204.html
+
* '''Ipv6 for LTE module'''
* ''reviewer(s)'':  Mathieu, Faker
+
** Announce: http://mailman.isi.edu/pipermail/ns-developers/2015-April/012680.html
* ''status''main 802.11s module is the main thing left to merge (http://codereview.appspot.com/88094/show)
+
** Code reviewhttps://codereview.appspot.com/234000043/
* ''background'':  http://mailman.isi.edu/pipermail/ns-developers/2009-July/006204.html
+
  
=== NetAnim ===
+
* '''Propagation loss model for Teraherz channels'''
 +
** Code review:  https://codereview.appspot.com/197290043/
  
* ''code location'': http://code.nsnam.org/riley/NetAnim/
+
* '''Obstacle shadowing model'''
* ''reviewer(s)'':  TBD
+
** Announce: http://mailman.isi.edu/pipermail/ns-developers/2015-February/012536.html
* ''status'':  suggested for ns-3.6
+
** Code reviewhttps://codereview.appspot.com/201200043
* ''background''http://www.nsnam.org/wiki/index.php/NetAnim
+
  
=== underwater acoustic network device ===
+
* ''' 802.15.4e TSCH model'''
 +
** Announce: http://mailman.isi.edu/pipermail/ns-developers/2015-January/012459.html
 +
** Code review:  https://codereview.appspot.com/194960043/ and https://codereview.appspot.com/192220043/
  
* ''code location'': http://codereview.appspot.com/87043
+
* ''' WifiMac Weighted Fair Queue '''
* ''reviewer(s)'':  Craig Dowell
+
** Announce: https://groups.google.com/forum/#!topic/ns-3-reviews/7LYDuv1d8ss
* ''status'': reviewed again [http://groups.google.com/group/ns-3-reviews/browse_thread/thread/5709ced56894aa8e here] on July 10
+
** Code review: https://codereview.appspot.com/180690043/
* ''background'': http://mailman.isi.edu/pipermail/ns-developers/2009-June/006148.html
+
  
=== ns-3-simu sockopt patches ===
+
* '''CSMA backoff improvements'''
 +
** Announce: http://mailman.isi.edu/pipermail/ns-developers/2014-July/012113.html
 +
** Code review: https://codereview.appspot.com/109450044/
  
* ''code location'': Four patches listed in http://mailman.isi.edu/pipermail/ns-developers/2009-June/006144.html
+
* '''LEAR extension for DSR'''
* ''reviewer(s)'':  TBD
+
** Announce:  http://mailman.isi.edu/pipermail/ns-developers/2014-April/011933.html
* ''status'': review requested on June 22
+
** <s>Code review:  https://codereview.appspot.com/85630046/</s>
* ''background'':  http://mailman.isi.edu/pipermail/ns-developers/2009-June/006144.html
+
** Note:  new code review issue posted 8 May:  https://codereview.appspot.com/96130043/
 +
 
 +
* '''TCP CUBIC'''
 +
** Announce: http://mailman.isi.edu/pipermail/ns-developers/2014-April/011939.html
 +
** Code review:  https://codereview.appspot.com/87740043
 +
 
 +
* '''Next steps with Object Stop/Start'''
 +
** Announce:  http://mailman.isi.edu/pipermail/ns-developers/2014-February/011764.html
 +
** Code review:  http://codereview.appspot.com/66990047
 +
 
 +
* '''NetSh (simulation helper)'''
 +
** Announcehttp://mailman.isi.edu/pipermail/ns-developers/2014-February/011742.html
 +
** Code review:  none yet.
 +
 +
* '''WDM module'''
 +
** Announce: http://mailman.isi.edu/pipermail/ns-developers/2014-February/011758.html
 +
** Code review:  none yet.
 +
 
 +
* '''DAMA environment'''
 +
** Announce:  http://mailman.isi.edu/pipermail/ns-developers/2014-January/011715.html
 +
 
 +
* '''Energy model access via Config system'''
 +
** Announce (January 3, 2014): http://mailman.isi.edu/pipermail/ns-developers/2014-January/011660.html
 +
** Code review:  https://codereview.appspot.com/39820045
 +
 
 +
* '''DTN Bundle Protocol'''
 +
** Announce (December 23, 2013):  http://mailman.isi.edu/pipermail/ns-developers/2013-December/011616.html
 +
** Code review:  https://codereview.appspot.com/38130049/
 +
 
 +
* '''PGBR routing protocol and extension of topology-read module'''
 +
** Announce (Oct 21, 2013): http://mailman.isi.edu/pipermail/ns-developers/2013-October/011455.html
 +
** Code review:  https://codereview.appspot.com/15530043/
 +
** Status:  Needs reviews
 +
 
 +
* '''UAN WOSS'''
 +
** Announce (Oct 14, 2013): http://mailman.isi.edu/pipermail/ns-developers/2013-October/011446.html
 +
** Code review:  https://codereview.appspot.com/14677043/
 +
** Status:  Needs reviews
 +
 
 +
* '''Epidemic routing'''
 +
** Announce (Sept 24, 2013): http://mailman.isi.edu/pipermail/ns-developers/2013-September/011426.html
 +
** Code review:  https://codereview.appspot.com/13831049/
 +
** Status:  Author responding to latest review comments.
 +
 
 +
Some older code reviews can be found here:  http://www.nsnam.org/wiki/Ns-3.18#additional_new_feature_reviews
 +
 
 +
Also:
 +
* '''TDMA'''
 +
** Code review: https://codereview.appspot.com/4747046/
 +
* '''Simple wireless'''
 +
** Code review:  https://codereview.appspot.com/1587041/show
 +
* '''Ipv4 Route Output refactoring'''
 +
** Code review: https://codereview.appspot.com/5661044/
 +
** Bug tracker issue:  https://www.nsnam.org/bugzilla/show_bug.cgi?id=1111
 +
 
 +
= Roadmap =
 +
 
 +
See the [[ns-3.30]] page for the current release planning and roadmap.
 +
 
 +
= Current development for main trunk of ns-3 =
 +
 
 +
This section is intended to list items that people are working on, to avoid duplicated efforts and to promote collaboration.
 +
 
 +
== Wi-Fi 802.11ax support ==
 +
 
 +
Sebastien Deronne has been adding 11ax rates and support for information elements (HeOperation, HeCapabilities).  He recently added a 'HeConfiguration' object to store 11ax configuration items.  He is next planning to refactor the WifiPreamble class to more cleanly add support for HE-SIG-A fields.
 +
 
 +
A team at UW is working on spatial reuse features (Non-SRG OBSS_PD level) and next plans to work on MU-OFDMA aspects.  The UW team is collaborating with Stefano Avallone who is working on MU-OFDMA and plans to publicly develop on his 'wifi-next' branch: https://github.com/stavallo/ns-3-dev-git/tree/wifi-next 
 +
 
 +
Development is planned based  on the spec framework https://mentor.ieee.org/802.11/dcn/15/11-15-0132-17-00ax-spec-framework.docx).
 +
 
 +
Others are welcome to list their work in progress here regarding 802.11ax, to reduce duplicated effort and encourage collaboration.  Contact one of the above maintainers if interested.
 +
 
 +
== WiFi models ==
 +
 
 +
Wi-Fi maintainer [mailto:sebastien.deronne@gmail.com Sebastien Deronne] and others are currently working on the following list of extensions to ns-3 WiFi models:
 +
* WiFi channel scanning (Tom Henderson and Muhammad Iqbal)
 +
* Minstrel-Blues rate control (Matias Richart)
 +
* 802.11ad support (Hany Assasa and Sébastien Deronne)
 +
* 802.11ah support (Le Tian and Sébastien Deronne)
 +
* 802.11ax features (see above)
 +
* Rohan Patidar and Tom Henderson are preparing for code review a new OFDM error model based on link-to-system mapping and fast fading channels (see WNS3 2017 paper on this topic for more information)
 +
 
 +
The following additional work is recommended (contributions from others are recommended); contact Sebastien to coordinate:
 +
* 802.11n/ac beamforming support
 +
* 802.11ac MU-MIMO support
 +
* 802.11 HCF/HCCA
 +
* Any other 802.11n/ac missing feature
 +
 
 +
== AQM and ECN ==
 +
 
 +
Last updated:  Dec. 2017
 +
 
 +
Stefano Avallone is working on:
 +
 
 +
- introduce other qdiscs: fifo, prio and token bucket (Surya’s GSoC). Finish off HHF (the other qdisc Surya worked on).
 +
 
 +
- merge a few pending code reviews which implement other qdiscs (REM, BLUE, PI, PI2) and add ECN support to CoDel and PIE.
 +
 
 +
- help Pasquale and Tommaso to merge the netmap netdevice (SOCIS)
 +
 
 +
- if time permits, implement the Diffserv to IEEE 802.11 mapping as defined by draft-ietf-tsvwg-ieee-802-11-09
 +
 
 +
== CSMA model ==
 +
 
 +
This was a feature goal for ns-3.23 release, but has slipped (further input wanted).
 +
 
 +
There has been discussion in the June 2014 timeframe about improving this model:
 +
* https://mailman.isi.edu/pipermail/ns-developers/2014-June/011864.html
 +
* https://mailman.isi.edu/pipermail/ns-developers/2014-June/011931.html
 +
 
 +
Some previous code reviews:
 +
 
 +
* https://codereview.appspot.com/109450044/
 +
* https://codereview.appspot.com/187880044/
 +
 
 +
Latest patch:
 +
* https://www.nsnam.org/bugzilla/show_bug.cgi?id=2354
 +
 
 +
These improvements have been recommended:
 +
# Implement backoff counter decrement as a function of line state (''see this [https://codereview.appspot.com/109450044/ initial code review]'')
 +
# Divide CSMA implementation between CSMA/CD & CSMA/CA (which are totally different)
 +
# Implement a distance system (not the same propagation delay for every nodes); see Vedran Miletić's work [https://codereview.appspot.com/5314055/#ps3002 code review issue]
 +
# Audit the ns-3 examples to find instances where CSMA is being used with inappropriate link delay (where multiple access may perform very suboptimally)
 +
 
 +
= Past development efforts =
 +
<pre style="color: red">
 +
Most of these activities are now dormant or concluded and some of the information is stale. 
 +
We are keeping here as a placeholder until this section can be cleaned up.
 +
</pre>
 +
 
 +
== 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.11 merge?
 +
 
 +
=== 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'':  [[HOWTO use Linux namespaces with ns-3]]
 +
* ''status'':  A version of this was merged to the latest [http://cs.itd.nrl.navy.mil/work/core/ CORE network emulator] release.
 +
 
 +
== Device and channel models ==
 +
=== Optical network: WDM, PON and RoF ===
 +
See [[Optical network models]].
  
 
=== Miscellaneous wifi enhancements ===
 
=== Miscellaneous wifi enhancements ===
Line 81: Line 232:
 
* ''code location'': http://codereview.appspot.com/62054
 
* ''code location'': http://codereview.appspot.com/62054
 
* ''reviewer(s)'':  TBD
 
* ''reviewer(s)'':  TBD
* ''status'':
+
* ''status'': reimplemented in a more general way, see [[Object Start Stop Specification]]
  
=== PacketBB (RFC 5444) ===
+
=== Wireless Interference (Jamming) Model ===
  
* ''code location'': http://code.nsnam.org/twambold/ns-3-dev-packetbb
+
* ''summary'': [http://www.ee.washington.edu/research/nsl/faculty/radha/ 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.
* ''reviewer(s)'':  Tom Henderson
+
* ''wiki page'': [[NS-3 wireless jamming model]]
* ''status'': Initial request for review.
+
* ''code location'': http://codereview.appspot.com/1055041/show
* ''background'': http://mailman.isi.edu/pipermail/ns-developers/2009-August/006328.html
+
* ''status'': Public review.
  
== Public development projects ==
+
=== Vehicular Ad Hoc Networks (VANET) ===
  
This section describes projects that are being worked on and have been publicly announced.
+
* ''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.
Please add your project to the below so interested contributors can coordinate with you.
+
* ''code location'': None publicly posted at this time.
  
=== Google Summer of Code projects ===
+
=== Wireless Sensor Networks (i.e., 802.15.4 + 6LoWPAN + RPL) ===
  
These projects each have their own separate wiki pages:
+
Tommaso Pecorella announced his plans [http://mailman.isi.edu/pipermail/ns-developers/2010-August/008304.html here]
  
==== Network Address Translation ====
+
Current status is:
* [http://www.nsnam.org/wiki/index.php/GSOC2009NetworkAddressTranslation project page]
+
* RPL implementation (storing, multicast): 5th refactoring going on. Moving responsibility to ParentSet and MeasureCollectors for metrics other than HC.
==== Minstrel Rate Adaptation ====
+
** RPL is based on [http://tools.ietf.org/wg/roll/ ROLL RFCs and drafts]
* [http://www.nsnam.org/wiki/index.php/GSOC2009Minstrel Minstrel Rate Adaptation project page]
+
** Objective functions implemented are of0 and minrank-hysteresis-of
==== Uplink Scheduler for WIMAX ====
+
* 6LoWPAN has been merged in ns-3-dev and will be included in ns-3.19.
* [http://www.nsnam.org/wiki/index.php/GSOC2009WimaxUplinkScheduler project page]
+
* 802.15.4 will rely on the lr-wpan module (currently being implemented by Boeing).
 +
** A patch to the lr-wpan code to enable its use with 6LoWPAN (and the full IPv6 stack) has been created. The patch adds a number of functionalities to the module and will be either included in lr-wpan or provided as a separate patch.
  
=== 802.11 model extensions ===
+
A wiki page will be created before 3.19 release to explain in detail the current implemented functionalities, the models limitations, the work status and provide a guide to setup a simple simulation.
  
There are several efforts ongoing to extend the ns-3 Wifi model.
+
Boeing is working on lr-wpan (IEEE 802.15.4-2006) support; details [[lr-wpan | here]].
  
==== Harmonization with ns-2 802.11 Ext models ====
+
=== LTE ===
* ''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 ====
+
In addition to the LENA project above, several developers expressed their interest in enhancing the LTE code initially developed within the GSoC 2010:
  
* ''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:
+
* Leo Razoumov [http://mailman.isi.edu/pipermail/ns-developers/2010-November/008467.html announced] possible interest in the following contributions:
** Frame Aggregation
+
** Block ACK
+
** HCF (EDCA and support for HCCA)
+
** TXOP
+
** HT terminal (also with protection modes)
+
 
** MIMO
 
** MIMO
Also interested to verify the 11n terminal throughput when are associated terminal of a/b/g standards.
+
** PHY model abstractions
* Already finished features (in ns-3.5):
+
** scheduling models
** HCF, TXOP, Frame Aggregation
+
** mobility and traffic models
* ''code location'': http://code.nsnam.org/mirko/ns-3-80211n
+
* Giuseppe Piro and his group (DEE, Politecnico di Bari) [http://mailman.isi.edu/pipermail/ns-developers/2010-November/008469.html announced] the intent to continue with the development of the LTE module, focusing mainly on the following MAC layer aspects:
* ''status'':  see http://mailman.isi.edu/pipermail/ns-developers/2009-July/006216.html
+
** RRM
 +
** scheduling
 +
** AMC
 +
* Marco Mezzavilla and his group (DEI, University of Padova) [http://mailman.isi.edu/pipermail/ns-developers/2010-November/008483.html announced] interest in working on the following, and have posted a repository in February 2011 [http://mailman.isi.edu/pipermail/ns-developers/2011-February/008653.html details here]:
 +
** MAC layer
 +
** mobility
 +
** traffic modelization
 +
** MIMO
 +
* Sandra Frei [http://mailman.isi.edu/pipermail/ns-developers/2011-July/009195.html announced] that a group is working on Evolved Packet System (EPS) support
 +
** GTPv1-U (for the user plane)
 +
** GTPv2-C (for the control plane)
 +
** Diameter: Supported use cases: default- and dedicated bearer establishment
 +
** NAS (ESM, EMM) A combined initial attach with a default bearer establishment. Dedicated bearer establishment
 +
** X2AP HO without SGW relocation. Endmarker messages are not supported
 +
** PMIPv6: PBU/PBA, LMA, MAG
  
==== 802.11s ====
+
== Link layer ==
  
* ''summary'':  Wireless Software Research & Development Group of Institute of Information Transmission Problems of the Russian Academy of Sciences is aiming to make a complete model of IEEE802.11s D3.0 Draft Standard.
+
=== 802.21 media independent handover ===
* ''ns-developers post'': http://mailman.isi.edu/pipermail/ns-developers/2008-November/004931.html
+
* ''code location'':  http://forge.wenos.ru/hgprojects/ns3dev/
+
* ''status'':  under review-- see above
+
  
=== IPv6 for ns-3 ===
+
* ''wiki page'': [[NS-3 MIH implementation]]
 +
* ''code location'':  http://code.nsnam.org/salumu/ns-3-mih/
 +
* ''status'': Dormant-- no merge plans announced.
  
* ''summary'': Ipv6 support for ns-3
+
== MPLS ==
* ''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.6 will continue to add features, including Ipv6Interface class.  Here is a tentative roadmap: http://mailman.isi.edu/pipermail/ns-developers/2009-July/006211.html
+
  
=== Flow monitor module ===
+
* ''Submitted by'': Andrey Churin
 +
* ''code location'': http://code.google.com/p/ns-3-shop/
 +
* ''reviewer(s)'':  None
 +
* ''status'':  Project has moved to Google hosting. 
  
* ''ns-developers post'': http://mailman.isi.edu/pipermail/ns-developers/2009-May/005875.html
+
== Network layer ==
* ''code location'': http://code.nsnam.org/gjc/ns-3-flowmon/
+
* ''status'': Candidate for ns-3.6 merge
+
  
=== Spectrum modeling support ===
+
=== API and functionality for marking TOS bytes in packets ===
  
* ''ns-developers post'': http://mailman.isi.edu/pipermail/ns-developers/2009-April/005759.html
+
* ''Submitted by:'' Antti Makela
* ''code location'': http://code.nsnam.org/nbaldo/ns-3-dev-spectrum
+
* ''code location:'' http://www.nsnam.org/bugzilla/show_bug.cgi?id=897
* ''status'': Seeking feedback; possible merge candidate for ns-3.6.
+
* ''reviewer(s):'' None
 +
* ''status:'' Need to consider whether this fits into the Linux netfilter support that is planned
  
=== Multi-threaded simulation implementation for multicore ===
+
=== DSR routing ===
  
* ''ns-developers post'':  http://mailman.isi.edu/pipermail/ns-developers/2009-July/006197.html
+
* ''Submitted by:'' Yufei Cheng
* ''code location'':  http://code.nsnam.org/guillaume/ns-3-multithreading/
+
* ''status:'' Announced here:  http://mailman.isi.edu/pipermail/ns-developers/2010-December/008496.html
* ''status'': recently announced; still under development
+
  
=== MPI-based distributed simulation ===
+
=== DSDV routing ===
  
* ''code location''http://codereview.appspot.com/109068/show
+
* ''Submitted by:'' Hemanth Narra
* ''status'': under development for ns-3.6
+
* ''code location:'' http://codereview.appspot.com/1668042/show
 +
* ''status:'' Announced here: http://mailman.isi.edu/pipermail/ns-developers/2010-December/008496.html
  
=== Synchronized emulation ===
+
== Transport layer ==
  
* ''code location'': None posted yet
+
=== TCP Vegas ===
* ''background'':  http://mailman.isi.edu/pipermail/ns-developers/2009-July/006198.html
+
  
=== Nix-vector routing ===
+
* ''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
  
* ''review location'':  http://codereview.appspot.com/117046/show
+
=== Multipath TCP for ns-3.29 and ns-3.8 ===
* ''code location'':  http://code.nsnam.org/jpelkey3/ns-3-nix-vector-routing
+
* ''status'': under development for ns-3.6
+
  
=== WiMAX module ===
+
An ns-3 implementation for [https://datatracker.ietf.org/doc/rfc6824// MPTCP] (Multipath TCP). This implementation is compatible with the current ns-3 release ns-3.29.
  
* ''ns-developers post'': http://mailman.isi.edu/pipermail/ns-developers/2008-September/004789.html
+
* ''Submitted by:'' Kashif Nadeem
* ''code location'':  http://code.nsnam.org/iamine/ns-3-wimax
+
* ''code location:'' https://github.com/Kashif-Nadeem/ns-3-dev-git
* ''status'':  Recently reviewed here:  http://mailman.isi.edu/pipermail/ns-developers/2009-July/006208.html  This code has not yet been proposed for merging to the main tree.
+
* ''MPTCP patch here'' https://codereview.appspot.com/369810043/
  
=== Underwater acoustic model ===
 
  
* ''ns-developers post'': http://mailman.isi.edu/pipermail/ns-developers/2008-October/004826.html
+
NS-3 module for [http://datatracker.ietf.org/wg/mptcp/charter/ MPTCP] (Multipath TCP). The current release is compatible with 3.8 version of NS-3.
* ''code location'':  http://code.nsnam.org/ltracy/ns-3-dev-uan
+
A check of the compatibility with the latest version is needed.
* ''status'': Under review (see above).  http://mailman.isi.edu/pipermail/ns-developers/2009-June/006148.html
+
  
=== Verification, Validation and Testing ===
+
* ''Submitted by:''  Bachir CHIHANI
 +
* ''code location:'' http://code.google.com/p/mptcp-ns3/
  
''Verification'' is the process of making sure that a given computer program you have built implements your conceptual model correctly.  ''Validation'' means the ability to determine that a given model has some connection to some reality -- that a model is an accurate representation of a real system.  ''Testing'' means the ability to exercise a given model to determine that it behaves as expected given various good (and perhaps bad) inputs (and does not change unexpectedly over time).  Note the perhaps subtle differences.
+
== Application layer ==
  
* ''summary'': Add support for model verification, validation and testing.
+
=== Chord/DHash DHT ===
* ''wiki pages'':  See [[VerificationValidationAndTesting]]
+
* ''status'':  Prototyping done, requirements discussion ongoing:  http://mailman.isi.edu/pipermail/ns-developers/2009-July/006212.html
+
  
=== Visualization for ns-3 ===
+
* ''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
 +
 
 +
=== 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'': [[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
 +
 
 +
=== Pastry ===
 +
 
 +
* ''Summary:'' An implementation of [http://www.freepastry.org/ Pastry] within ns-3. Including some experimental key-based routing API.
 +
* ''Developers:'' Robert Nitsch and Dominic Scheurer ([https://www.tu-darmstadt.de/ Technische Universität Darmstadt]).
 +
* ''Code location:'' https://bitbucket.org/r_nitsch/ns-3-pastry/ (old repository: <nowiki>https://bitbucket.org/r_nitsch/libpastry/</nowiki>)
 +
* ''Doxygen documentation:'' http://libpastry.robertnitsch.de
 +
* ''Status:''
 +
** 2012-01-22: Re-integrated the code into ns-3 source tree (ns-3.13).
 +
** Mostly finished.
 +
** Node arrival process needs some tweaking.
 +
** Review needed. (We're going to request one as soon as we're ready.)
 +
 
 +
== 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 Python visualization tool (http://code.nsnam.org/gjc/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 217: Line 402:
 
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/
  
=== Synchronous posix/sockets API ===
+
=== Graphical simulation builder ===
  
* ''summary'': An ns-3 "process" environment
+
Pierre Weiss and Sebastien Vincent have written an [[Ns3Generator| ns-3 scenario generator]] in Qt. 
* ''ns-developers post'': http://mailman.isi.edu/pipermail/ns-developers/2008-April/003912.html
+
* http://mailman.isi.edu/pipermail/ns-developers/2010-May/007998.html
* ''code location'': http://code.nsnam.org/mathieu/ns-3-simu
+
* Mercurial download: http://svnet.u-strasbg.fr/hg/ns-3-generator/
* ''status'':  still in development
+
  
=== real-world application integration ===
+
=== NetExplorer ===
  
* ''summary'': port of quagga routing to ns-3
+
[http://code.google.com/p/ns-3-shop/wiki/NetExplorer | NetExplorer] is Gnome/Gtk network animation tool for NS-3.  
* ''wiki page'': http://www.nsnam.org/wiki/index.php/Real_World_Application_Integration
+
 
* ''code location'': http://code.nsnam.org/lj/quagga-porting/
+
== Miscellaneous ==
* ''status'':  Was developed by Liu Jian, Google Summer of Code.  Portions of this code are planned for a future release (ns-3.6 or later) when ns-3-simu is merged.
+
  
 
=== L2 Ethernet switch module ===
 
=== L2 Ethernet switch module ===
Line 239: Line 422:
  
 
* ''summary'': ns-3 extensions for parallelization
 
* ''summary'': ns-3 extensions for parallelization
* ''wiki page'': http://www.nsnam.org/wiki/index.php/Parallel_Simulations
+
* ''wiki page'': [[Parallel Simulations]]
 
* ''code location'': http://code.nsnam.org/pfeifer/ns-3-para/
 
* ''code location'': http://code.nsnam.org/pfeifer/ns-3-para/
 
* ''status'':  dormant since 2008 Google Summer of Code
 
* ''status'':  dormant since 2008 Google Summer of Code
Line 250: Line 433:
 
* ''status'':  No status update recently.  Dormant.
 
* ''status'':  No status update recently.  Dormant.
  
=== 802.21 media independent handover ===
+
=== Simulation Configuration and State Detection ===
  
* ''wiki page'': http://www.nsnam.org/wiki/index.php/NS-3_MIH_implementation
+
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 topologiesCraig Dowell is thinking about how to address this problem.
* ''code location'': http://code.nsnam.org/salumu/ns-3-mih/
+
* ''status'': Dormant-- no merge plans announced.
+
  
== Suggested Projects ==
+
[[SimulationConfiguration | Simulation Configuration]]
  
=== 2009 Google Summer of Code Project Ideas ===
+
= Build system and project infrastructure =
  
We have posted some project ideas for [http://code.google.com/soc/2009/ Google Summer of Code].  However, these ideas are not limited to the Google program.
+
== Modular build and package management ==
  
'''[[GSOC2009Projects | Project ideas here]]'''
+
This issue is being tracked (requirements and wish list) on [[App_Store_Technical_Requirements | this page]]
  
=== Ns3 Wireless PHY ===
+
== State of Doxygen ==
  
This project aims at building a high-quality set of PHY-level models for wireless networks: [[Ns3WirelessPhy]]
+
Need to bring Doxygen into compliance (no errors, no warnings for missing documentation).
  
Mathieu Lacage is coordinating this work and has a workshop session at [http://www.wns3.org wns3] in March 2009.
+
== Buildbots ==
  
=== Traffic generation applications ===
+
* 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. 
  
George Riley (riley@ece.gatech.edu) is overseeing the porting of application models from [http://www.ece.gatech.edu/research/labs/MANIACS/GTNetS/ GTNetS] to ns-3.
+
== Code contribution guidance ==
+
 
=== Removing traffic generation from applications class ===
+
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.
  
#* ''summary'': Proposed decoupling to generalize applications
+
== Website ==
#* ''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.
+
#:
+
  
----
+
Status: INRIA is organizing some updates to the website.
[[User:Craigdo|Craigdo]] 23:57, 27 March 2009 (UTC)
+

Latest revision as of 18:50, 30 September 2020

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 summarize current ns-3 development work. If you are interested in collaborating on one of these projects, or reviewing work by others, please do not hesitate to contact the individuals identified, or the page maintainer.

There are a few other places to look for current activity on ns-3 development:

  • the current release page will list code under consideration for merging, and bugs being worked. The next release, ns-3.30 release, is not yet scheduled.
  • we should have entries for all of our known bugs in the Bugzilla bug tracker.
  • Related projects list some active and past projects that are associated with ns-3.
  • We maintain a suggested project ideas page for people interested in trying to start something new, or finish off some existing work.
  • We conduct code review discussions on the Google Group 'ns-3-reviews'

How to get involved

ns-3 always can use more time and assistance from contributors of all skill levels. One of the best ways to learn a tool is to try to get involved in its development processes, even if it is as simple as pointing out stale information or documentation on our web pages. Ideas on how to get started are on our project ideas page.

If you are new to ns-3 and want to contribute code, 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. IRC logs

Also, please check out the Current events page to learn of upcoming events for ns-3.

Code reviews

All new code (other than maintenance code committed directly by a module's maintainer) goes through a public code review. The process is described here. This page is devoted to listing code reviews that have been publicly announced.

Currently open code reviews should be also tagged in our bug tracker: https://www.nsnam.org/bugzilla/buglist.cgi?query_format=advanced&resolution=---&short_desc=code%20review&short_desc_type=allwordssubstr

Some older code reviews can be found here (some of these have been included in ns-3, some are still pending):

Some older code reviews can be found here: http://www.nsnam.org/wiki/Ns-3.18#additional_new_feature_reviews

Also:

Roadmap

See the ns-3.30 page for the current release planning and roadmap.

Current development for main trunk of ns-3

This section is intended to list items that people are working on, to avoid duplicated efforts and to promote collaboration.

Wi-Fi 802.11ax support

Sebastien Deronne has been adding 11ax rates and support for information elements (HeOperation, HeCapabilities). He recently added a 'HeConfiguration' object to store 11ax configuration items. He is next planning to refactor the WifiPreamble class to more cleanly add support for HE-SIG-A fields.

A team at UW is working on spatial reuse features (Non-SRG OBSS_PD level) and next plans to work on MU-OFDMA aspects. The UW team is collaborating with Stefano Avallone who is working on MU-OFDMA and plans to publicly develop on his 'wifi-next' branch: https://github.com/stavallo/ns-3-dev-git/tree/wifi-next

Development is planned based on the spec framework https://mentor.ieee.org/802.11/dcn/15/11-15-0132-17-00ax-spec-framework.docx).

Others are welcome to list their work in progress here regarding 802.11ax, to reduce duplicated effort and encourage collaboration. Contact one of the above maintainers if interested.

WiFi models

Wi-Fi maintainer Sebastien Deronne and others are currently working on the following list of extensions to ns-3 WiFi models:

  • WiFi channel scanning (Tom Henderson and Muhammad Iqbal)
  • Minstrel-Blues rate control (Matias Richart)
  • 802.11ad support (Hany Assasa and Sébastien Deronne)
  • 802.11ah support (Le Tian and Sébastien Deronne)
  • 802.11ax features (see above)
  • Rohan Patidar and Tom Henderson are preparing for code review a new OFDM error model based on link-to-system mapping and fast fading channels (see WNS3 2017 paper on this topic for more information)

The following additional work is recommended (contributions from others are recommended); contact Sebastien to coordinate:

  • 802.11n/ac beamforming support
  • 802.11ac MU-MIMO support
  • 802.11 HCF/HCCA
  • Any other 802.11n/ac missing feature

AQM and ECN

Last updated: Dec. 2017

Stefano Avallone is working on:

- introduce other qdiscs: fifo, prio and token bucket (Surya’s GSoC). Finish off HHF (the other qdisc Surya worked on).

- merge a few pending code reviews which implement other qdiscs (REM, BLUE, PI, PI2) and add ECN support to CoDel and PIE.

- help Pasquale and Tommaso to merge the netmap netdevice (SOCIS)

- if time permits, implement the Diffserv to IEEE 802.11 mapping as defined by draft-ietf-tsvwg-ieee-802-11-09

CSMA model

This was a feature goal for ns-3.23 release, but has slipped (further input wanted).

There has been discussion in the June 2014 timeframe about improving this model:

Some previous code reviews:

Latest patch:

These improvements have been recommended:

  1. Implement backoff counter decrement as a function of line state (see this initial code review)
  2. Divide CSMA implementation between CSMA/CD & CSMA/CA (which are totally different)
  3. Implement a distance system (not the same propagation delay for every nodes); see Vedran Miletić's work code review issue
  4. Audit the ns-3 examples to find instances where CSMA is being used with inappropriate link delay (where multiple access may perform very suboptimally)

Past development efforts

Most of these activities are now dormant or concluded and some of the information is stale.   
We are keeping here as a placeholder until this section can be cleaned up.

ns-3 core

Multi-threaded simulation implementation for multicore

Linux namespaces and ns-3

Device and channel models

Optical network: WDM, PON and RoF

See Optical network models.

Miscellaneous wifi enhancements

Patch to pause and resume an interface

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.

Wireless Sensor Networks (i.e., 802.15.4 + 6LoWPAN + RPL)

Tommaso Pecorella announced his plans here

Current status is:

  • RPL implementation (storing, multicast): 5th refactoring going on. Moving responsibility to ParentSet and MeasureCollectors for metrics other than HC.
    • RPL is based on ROLL RFCs and drafts
    • Objective functions implemented are of0 and minrank-hysteresis-of
  • 6LoWPAN has been merged in ns-3-dev and will be included in ns-3.19.
  • 802.15.4 will rely on the lr-wpan module (currently being implemented by Boeing).
    • A patch to the lr-wpan code to enable its use with 6LoWPAN (and the full IPv6 stack) has been created. The patch adds a number of functionalities to the module and will be either included in lr-wpan or provided as a separate patch.

A wiki page will be created before 3.19 release to explain in detail the current implemented functionalities, the models limitations, the work status and provide a guide to setup a simple simulation.

Boeing is working on lr-wpan (IEEE 802.15.4-2006) support; details here.

LTE

In addition to the LENA project above, several developers expressed their interest in enhancing the LTE code initially developed within the GSoC 2010:

  • 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, and have posted a repository in February 2011 details here:
    • MAC layer
    • mobility
    • traffic modelization
    • MIMO
  • Sandra Frei announced that a group is working on Evolved Packet System (EPS) support
    • GTPv1-U (for the user plane)
    • GTPv2-C (for the control plane)
    • Diameter: Supported use cases: default- and dedicated bearer establishment
    • NAS (ESM, EMM) A combined initial attach with a default bearer establishment. Dedicated bearer establishment
    • X2AP HO without SGW relocation. Endmarker messages are not supported
    • PMIPv6: PBU/PBA, LMA, MAG

Link layer

802.21 media independent handover

MPLS

Network layer

API and functionality for marking TOS bytes in packets

DSR routing

DSDV routing

Transport layer

TCP Vegas

Multipath TCP for ns-3.29 and ns-3.8

An ns-3 implementation for MPTCP (Multipath TCP). This implementation is compatible with the current ns-3 release ns-3.29.


NS-3 module for MPTCP (Multipath TCP). The current release is compatible with 3.8 version of NS-3. A check of the compatibility with the latest version is needed.

Application layer

Chord/DHash DHT

Synchronous posix/sockets API

real-world application integration

ns-3-simu sockopt patches

Pastry

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.