[Ns-developers] ns-3 modularity
Tom Henderson
tomh at tomh.org
Fri Oct 8 16:28:50 PDT 2010
We started to discuss the need for a more modular system at our
developers meeting in Malaga, and since then, Mathieu and I have
discussed the need to start to address this soon rather than increase
the pain later. Longer term, we would like to move to a system that
relies more on separate modules for simulation models, including a
package management system for managing (fetching, building,
managing dependencies) models and libraries maintained by others.
The first step in this process, we believe, is to start to take
our existing monolithic library and split it into modules. For
instance, find some piece of our existing system and build it as a
separate library. Even taking an initial step such as with a device
with few external dependencies (e.g. src/devices/uan) will immediately
present some issues such as with bindings, the test framework, etc.
that we will need to address. Eventually we'll have to move to modules
with more dependencies (e.g. WiFi) and the simulation core itself.
Once we have a modular system, or in parallel, we can start to look
at how to manage simulation modules from a package management system
perspective, especially to consider modules that might start to be
maintained by an external research group. Here, we plan to study
and adapt the workflows and possibly code of existing systems (e.g.
jhbuild and Debian package system); if people have other suggestions
that might fit, please let us know.
We previously started a page [1] to track the proposed design and
schedule for changes (hopefully this is something that we can address
the remainder of the year and start to put into place after the next
release), and we plan to discuss issues as they arise on ns-developers.
If other developers want to pitch in, please let us know.
There will be a bit of inconvenience once we start to transition but it
seems to be unavoidable for the future maintainability and we should
start to see improvements along the way (e.g. shorter build times for
typical usage).
- Tom
[1] http://www.nsnam.org/wiki/index.php/App_Store_Technical_Requirements
More information about the Ns-developers
mailing list