Many users of ns-3 focus on using existing models to conduct simulations. However, when the existing models lack a specific feature or when a new un-implemented model is needed, some ns-3 users turn to modify more or less heavily the existing models and, sometimes, even implement brand new models from scratch.

The considerable time investment of these heavy users in ns-3 typically leads them to interact closely with the community of those who contribute to the development and maintainance of the ns-3 releases. Some of them eventually contribute back their own modifications or new models to the ns-3 community because they see value in being integrated within the ns-3 development process:

  • More testing and validation performed by other users
  • Contributions from other users to further improve their new models or modifications
  • Less work to track API changes in ns-3 because the ns-3 developers who change APIs are responsible for updating all models integrated within the ns-3 releases
  • More visibility and exposure for their research results

The following sections attempt to answer common questions to help these new developers understand how ns-3 releases are managed:

  • Release Process: The process and the timeline we follow to put together every new release.
  • Roadmap: Long term development goals and directions.
  • Maintainers: Who is responsible for the maintenance, evolution, and development of which models.
  • Contributing Code: How to contribute modifications or new models to an ns-3 release.
  • Tools: What tools are available to develop ns-3, and to communicate with other maintainers and developers.