Contributed Code
Main Page - Current Development - Developer FAQ - Tools - Related Projects - Project Ideas - Summer Projects
Installation - Troubleshooting - User FAQ - HOWTOs - Samples - Models - Education - Contributed Code - Papers
There are several ways to contribute code to ns-3. The options are outlined in our contributing guide.
- Contribute to the main tree through our code contribution process (outlined in the above linked documentation)
- Maintaining your own ns-3 extension as a contributed module in our ns-3 App Store
- Archive some software either at your own website or a public Git repository, and link to it from this page
Contributed code under review for the main tree
Contributed code for the main tree will be accepted if it is considered to be of general interest. Many new contributions for less common (or more niche) use cases are recommended for the ns-3 App Store. View current Merge Requests for the mainline ns-3-dev. See the Current Development page and code review discussions for a listing of older code that may still be of interest.
Contributed code not maintained by the project
Not all code will end up being merged-- some is being maintained by third party sites or maintainers. This section can be used to list this other code. Note also that if you want the ns-3 project to maintain a tarball of your scripts or models for long-term archiving, we can list it here.
Contribution | Contributor | Status | Link |
---|---|---|---|
FTM-based rate selection | W. Ciezobka, M. Wojnar, K. Kosek-Szott, S. Szott, K. Rusek | Distance-based rate selection manager using machine learning, example of combining ns-3, ns3-ai, and the Google JAX framework | GitHub repo |
Monte Carlo Simulation library | Kamil Chełminiak | Add-on to facilitate Monte Carlo simulations in ns-3.38 | GitHub repo |
LoRa mesh module for ns-3.29 | Sanjay Charran | Proof-of-concept mesh protocol for ns-3.29 | GitHub repo |
DetNetWiFi: Determistic Wireless/Wired ns-3 framework | Rute C. Sofia and fortiss IIoT team | Developed and validated for ns-3.34; see status here | GitLab repo |
»Time-Aware Shaper (TAS)« from »Time-Sensitive Networking (TSN)« implemented in ns-3 | Dennis Krummacker, Luca Wendling | ns-3.31 Version | GitHub Repository |
A framework for Radio Resource Management in WiFi Networks | Dr. Venkatesh Ramaiyan, Krishna Bharadwaj, S.Kalpalatha | ns-3.27 version | GitHub site |
OpenNet: An emulator for Software-Defined Wireless Local Area Network and Software-Defined LTE Backhaul Network | Min-Cheng Chan, Ting-Hsuan Hsieh | ns-3.22 version | GitHub site |
Tmix and DelayBox | Old Dominion | ns-3.13/3.14.1/3.21 versions | project website |
Synchronized Network Emulation | RWTH Aachen | ns-3.7 version | project website |
NEMO/MIP simulator | Hajime Tazaki | announced here | code repository |
Content Addressable Networks DHT | Vijay K. Gurbani et al. | announced here | code repository |
Pastry DHT Port | Charilaos Papadopoulos | early beta | Personal Website |
Access point address manager | Francesco Malandrino | details | Download ap-address-manager.cc/h |
Linux namespaces and ns-3 | Tom Goff | demo code | wiki page |
ndnSIM: Named Data Networking (NDN) module for ns-3 | Alexander Afanasyev et al. | released | ndnSIM homepage |
WiFi Dynamic Frequency Allocation feature | Raad Qandah | patch against ns-3.11 | Download tarball |
Fisheye State Routing with Node Degree Based Route Computation | Ralph Baird | zip archive (tested with ns-3.20) | Download zip archive |
CRE-NS3: Cognitive radio extension for ns-3 | Abdulla Al-Ali and Kaushik Chowdhury | GitHub code (tested with ns-3.17) | Web site |
Examples of using the Steinwurf C++ Kodo library (network coding) with ns-3 | Nestor Hernandez | github (tracking ns-3-dev) | Project web site |
Multipath TCP from Morteza Kheirkhah | Morteza Kheirkhah | GitHub code (tested with ns-3.19) | GitHub repo |
Blackhole attack simulation in ns-3 using AODV | Shalini Satre and Mohit P. Tahiliani | Patches for ns-3.20 to ns-3.25 | Patch and sample program |
RadioWatcher (Provides real-time layer2
information from a Wifi device) |
Fraunhofer FKIE (contact: Christoph Fuchs) | tgz archive (tested with ns-3.23) | Download archive |
Distance vector routing | Hiroaki Nishi | Patches for ns-3.21 | GitHub repository |
OpenFlow 1.3 module | Luciano Jerez Chaves | Patches for ns-3.24 | website |
OpenFlow DCE SDN framework | Jared Ivey | DCE modifications | GitHub repo |
Topology Generator | Jeffrey Young | GitHub repository (tested with ns-3.25) | GitHub repo |
Code Generator (command-line/XML topology generator) | Jeffrey Young | GitHub repository (tested with ns-3.25) | GitHub repo |
Wormhole Attack Simulation using ns3 | Rahul Hada | GitHub repository (tested with ns-3.20) | GitHub repo |
Overlay ICN (O-ICN) simulator | Suvrat Agrawal, and Samar Shailendra | Github repository; tested with ns3.24 | GitHub repo |
TCP Wave from TLCSat Group | Ahmed Abdelsalam, and Cesare Roseti | Group Webpage /Github repository; tested with ns3.23 | GitHub repo; TLCSat page |
Archived repositories
These ns-3 repositories may be of interest to future users; many of them are prototypes that were never merged to the main tree and have been abandoned.
- SWIG bindings for ns-3 (Craig Dowell)
- nam (ns-2 network animator) for ns-3 (Mathieu Lacage)
- yans port to ns-3 (Mathieu Lacage)
- ns-3 netlink sockets (Liu Jian)
- quagga porting (Liu Jian)
- ns-3 parallelized branch (Hagen Paul Pfeifer)
- MPI infrastructure (Hagen Paul Pfeifer)
- worker parallelization (Hagen Paul Pfeifer)
- toy http model (Raj Bhattacharjea)
- experimental wifi scanning (Gustavo Carneiro)