Roadmap: Difference between revisions

From Nsnam
Jump to navigation Jump to search
(remove outdated text about August release)
(new roadmap page proposal)
Line 1: Line 1:
{{TOC}}
{{TOC}}


This page supplements [http://www.nsnam.org/roadmap.html the main project roadmap page] with more detail.  If you want to participate in any early stages of the below development activities, please email the contacts listed below.  Otherwise, later stages of the development will be posted to ns-developers mailing list for review and comment.
This page is a brief summary of current development activities for ns-3.  If you want to participate in any stages of the below development activities, please email the contacts listed below, or the ns-developers list.


__FORCETOC__
__FORCETOC__
== Release process ==
Detailed steps for doing the source code release are found in the [http://code.nsnam.org/ns-3-dev/file/1e8249c58fda/doc/release_steps.txt doc/release_steps.txt] file in the ns-3-dev repository.  There are a few deadlines and steps for incorporating code into a scheduled ns-3 release:
* '''(15 days prior)''' deadline for posting any patches or private repos that are solicited for review/comment, for possible check in to the upcoming release.  These are for patches or repos that can be considered as extensions to the simulator.  Post a summary to the list, allow 7 days (minimum) for comments, and if all comments and issues can be resolved in that time window, it can go into the next release; otherwise it slides until when things are resolved.
* '''(7 days prior)''' deadline for being in a "ready-to-merge" state, which means that there is agreement that comments from the previous stage have been resolved and that the change can go in.  Perhaps a "last-call" announcement by the release manager on the list will help.
* '''(3 days prior)''' deadline for merging any extensions or new modules that change the API, or any miscellaneous changes by maintainers.  Exceptions: critical bug fixes, doxygen and documentation, and coding style alignment nits.
Finally, it is good practice to announce among the active committers when you are doing a major merge, to avoid bad merge collisions.
== Release schedule ==
ns-3 is still in a pre-alpha state, with monthly development releases.  Releases are occurring on the 15th of each month, and are source releases only.
=== October 15, 2007 (ns-3.0.7) ===
The following are planned to be merged:
* [http://code.nsnam.org/gjc/ns-3-olsr/ ns-3-olsr]
* [http://code.nsnam.org/mathieu/ns-3-timer/ timer implementation]
=== November 15, 2007 (ns-3.0.8) ===
(TBD)


== Code proposals under review ==
== Code proposals under review ==
This section is intended to summarize code proposals under active discussion on the mailing list.


# '''OLSR'''
# '''OLSR'''
Line 11: Line 37:
#* ''ns-developers post'': http://mailman.isi.edu/pipermail/ns-developers/2007-July/003190.html
#* ''ns-developers post'': http://mailman.isi.edu/pipermail/ns-developers/2007-July/003190.html
#* ''code location'': http://code.nsnam.org/gjc/ns-3-olsr/
#* ''code location'': http://code.nsnam.org/gjc/ns-3-olsr/
#* ''status'':  Planned for checkin this month
#* ''status'':  Planned for merge in October.  Blocked by resolution of timer issue below.
#:
#:
#:
#:
# '''A Timer Class'''
# '''Timer and Event Collector'''
#* ''summary'': This is a simple timer class
#* ''summary'': Wrappers around the scheduler API to cover the use case of a single piece of code scheduling multiple concurrent events, with parameters; and to provide a Timer class
#* ''ns-developers post'': http://mailman.isi.edu/pipermail/ns-developers/2007-July/003168.html
#* ''ns-developers post'': http://mailman.isi.edu/pipermail/ns-developers/2007-September/003344.html
#* ''code location'': http://code.nsnam.org/gjc/ns-3-olsr/file/519cabaa269a/src/simulator/timer.h; http://code.nsnam.org/gjc/ns-3-olsr/file/519cabaa269a/src/simulator/timer.cc
#* ''code locations'': http://code.nsnam.org/mathieu/ns-3-timer/; http://code.nsnam.org/gjc/ns-3-olsr/file/519cabaa269a/src/simulator/timer.h; http://code.nsnam.org/gjc/ns-3-olsr/file/519cabaa269a/src/simulator/timer.cc
#* ''status'':  Has been replaced by SingleEvent below?
#* ''status'':  Planned for resolution and merge in October.
#:
#:
# '''Single Event and Event Collector'''
#* ''summary'': Proposed for better event tracking
#* ''ns-developers post'': http://mailman.isi.edu/pipermail/ns-developers/2007-July/003206.html
#* ''code location'': http://code.nsnam.org/gjc/ns-3-olsr-support/
#* ''status'':  Under review
#* ''additional-discussion'':  http://mailman.isi.edu/pipermail/ns-developers/2007-July/003230.html
#:
#:
# '''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'':  Under review
#:
#:
# '''Python bindings'''
#* ''summary'': Python bindings written in Python
#* ''ns-developers post'':  http://mailman.isi.edu/pipermail/ns-developers/2007-June/003039.html
#* ''code location'': http://code.nsnam.org/gjc/ns-3-pybindgen/
#* ''status'':  proof-of-concept, needs further review and discussion
#:
#:
# '''Python bindings (SWIG)'''
#* ''summary'': Python and Tcl bindings written with SWIG
#* ''ns-developers post'':  http://mailman.isi.edu/pipermail/ns-developers/2007-August/003256.html
#* ''code location'': http://code.nsnam.org/craigdo/ns-3-swig
#* ''status'':  proof-of-concept, needs further review and discussion
#:
#:
#:
#:


== Future releases ==
== Future releases ==
The following are additional things that various developers are working on, plan to work on, or have brought to a prototype state.  (Please keep this brief and add pointers to other pages if there is a lengthy description).
=== 802.11 MAC and PHY code ported from ns-3-yans ===
Mathieu Lacage (mathieu.lacage@sophia.inria.fr) is leading this port from [http://code.nsnam.org/mathieu/ns-3-yans ns-3-yans].
=== TCP ===
Raj Bhattacharjea (raj.b@gatech.edu) is working on a port of the [http://www.ece.gatech.edu/research/labs/MANIACS/GTNetS/ GTNetS] TCP module to ns-3.


=== Python bindings ===
=== Python bindings ===
Line 61: Line 68:
The following options are being considered:
The following options are being considered:
* SWIG: functionally similar to boost::python but supports more languages; also may be difficult to extend:  http://code.nsnam.org/craigdo/ns-3-swig/
* SWIG: functionally similar to boost::python but supports more languages; also may be difficult to extend:  http://code.nsnam.org/craigdo/ns-3-swig/
** ''ns-developers post'':  http://mailman.isi.edu/pipermail/ns-developers/2007-August/003256.html
* Gustavo's Python bindings prototype:  http://code.nsnam.org/gjc/ns-3-pybindgen/
* Gustavo's Python bindings prototype:  http://code.nsnam.org/gjc/ns-3-pybindgen/
Here are more details from [http://gjcarneiro.blogspot.com/2007/05/python-bindings-generator.html Gustavo's blog]
** Here are more details from [http://gjcarneiro.blogspot.com/2007/05/python-bindings-generator.html Gustavo's blog]
** ''ns-developers post'':  http://mailman.isi.edu/pipermail/ns-developers/2007-June/003039.html


=== Statistics ===
=== Statistics ===
Line 84: Line 93:


Once this initial discussion has take place, we should be able to design an API for these features and implement it for a specific ns-3 release. If you believe that you can contribute useful input to this discussion, do not hesitate to join ns-developers to talk about it.  
Once this initial discussion has take place, we should be able to design an API for these features and implement it for a specific ns-3 release. If you believe that you can contribute useful input to this discussion, do not hesitate to join ns-developers to talk about it.  
=== 802.11 MAC and PHY code ported from ns-3-yans ===
Mathieu Lacage (mathieu.lacage@sophia.inria.fr) is leading this port from [http://code.nsnam.org/mathieu/ns-3-yans ns-3-yans].
=== TCP ===
Raj Bhattacharjea (raj.b@gatech.edu) is working on a port of the [http://www.ece.gatech.edu/research/labs/MANIACS/GTNetS/ GTNetS] TCP module to ns-3.


=== Traffic generation applications ===
=== Traffic generation applications ===
Line 104: Line 105:


Wireless routing protocol infrastructure for mobile wireless networks.  Contact:  Mathieu Lacage (mathieu.lacage@sophia.inria.fr)
Wireless routing protocol infrastructure for mobile wireless networks.  Contact:  Mathieu Lacage (mathieu.lacage@sophia.inria.fr)
=== 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.
#:

Revision as of 21:52, 30 September 2007

Main Page - Roadmap - Summer Projects - Project Ideas - Developer FAQ - Tools - Related Projects

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

This page is a brief summary of current development activities for ns-3. If you want to participate in any stages of the below development activities, please email the contacts listed below, or the ns-developers list.


Release process

Detailed steps for doing the source code release are found in the doc/release_steps.txt file in the ns-3-dev repository. There are a few deadlines and steps for incorporating code into a scheduled ns-3 release:

  • (15 days prior) deadline for posting any patches or private repos that are solicited for review/comment, for possible check in to the upcoming release. These are for patches or repos that can be considered as extensions to the simulator. Post a summary to the list, allow 7 days (minimum) for comments, and if all comments and issues can be resolved in that time window, it can go into the next release; otherwise it slides until when things are resolved.
  • (7 days prior) deadline for being in a "ready-to-merge" state, which means that there is agreement that comments from the previous stage have been resolved and that the change can go in. Perhaps a "last-call" announcement by the release manager on the list will help.
  • (3 days prior) deadline for merging any extensions or new modules that change the API, or any miscellaneous changes by maintainers. Exceptions: critical bug fixes, doxygen and documentation, and coding style alignment nits.

Finally, it is good practice to announce among the active committers when you are doing a major merge, to avoid bad merge collisions.

Release schedule

ns-3 is still in a pre-alpha state, with monthly development releases. Releases are occurring on the 15th of each month, and are source releases only.

October 15, 2007 (ns-3.0.7)

The following are planned to be merged:

November 15, 2007 (ns-3.0.8)

(TBD)

Code proposals under review

This section is intended to summarize code proposals under active discussion on the mailing list.

  1. OLSR
  2. Timer and Event Collector

Future releases

The following are additional things that various developers are working on, plan to work on, or have brought to a prototype state. (Please keep this brief and add pointers to other pages if there is a lengthy description).

802.11 MAC and PHY code ported from ns-3-yans

Mathieu Lacage (mathieu.lacage@sophia.inria.fr) is leading this port from ns-3-yans.

TCP

Raj Bhattacharjea (raj.b@gatech.edu) is working on a port of the GTNetS TCP module to ns-3.

Python bindings

Gustavo Carneiro (gjcarneiro@gmail.com) and Craig Dowell (craigdo@ee.washington.edu) are working on the architecture and implementation for adding Python bindings to ns-3.

The goal is to allow full or nearly-full access to the C++ APIs from Python, and to allow components to be created in Python as well. Initially, we will try to wrap the higher-level C++ API.

The following options are being considered:

Statistics

George Riley(riley@ece.gatech.edu) and Mathieu Lacage (mathieu.lacage@sophia.inria.fr) are the contacts for this development.

One of the important design goals of the ns-3 tracing framework was to allow users to hook their own online statistic analysis code into trace hooks to avoid having to spew gigabytes of trace files only to post-process them later.

We thus need a framework to make it easy and safe for users to calculate basic network-specific values in the system such as:

  • RTT
  • Throughput
  • inter-arrival time
  • ...

Furthermore, it should be trivial to efficiently calculate basic statistical properties on these collected measurements:

  • Average with standard deviation. Arbitrary confidence interval ?
  • Cumulative distribution of a variable. i.e., the EDCF.
  • ...

A serious Statistics project should thus first refine the list of variables we want to measure. It should also attempt to define as precisely as possible the type of statistical tools which should be made available for these variable measurements or other types of measurements.

Once this initial discussion has take place, we should be able to design an API for these features and implement it for a specific ns-3 release. If you believe that you can contribute useful input to this discussion, do not hesitate to join ns-developers to talk about it.

Traffic generation applications

George Riley (riley@ece.gatech.edu) is overseeing the porting of application models from GTNetS to ns-3.

802.11 PHY cleanup

Mathieu Lacage (mathieu.lacage@sophia.inria.fr) is working on 802.11 PHY cleanup to simplify addition of other 802.11 PHY models.

Wireless routing protocol infrastructure

Wireless routing protocol infrastructure for mobile wireless networks. Contact: Mathieu Lacage (mathieu.lacage@sophia.inria.fr)

Removing traffic generation from applications class