Contributed Code: Difference between revisions
(contributed code) |
Szymon.Szott (talk | contribs) (Add FTMRate) |
||
(46 intermediate revisions by 8 users not shown) | |||
Line 1: | Line 1: | ||
{{TOC}} | {{TOC}} | ||
There are several ways to contribute code to ns-3 | There are several ways to contribute code to ns-3. The options are outlined in our [https://www.nsnam.org/docs/contributing/html/index.html 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 [https://apps.nsnam.org 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 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 [https://apps.nsnam.org/ App Store]. View current [https://gitlab.com/nsnam/ns-3-dev/-/merge_requests Merge Requests] for the mainline ns-3-dev. See the [[Current_Development#Code_reviews | Current Development page]] and [https://groups.google.com/forum/?fromgroups#!forum/ns-3-reviews code review discussions] for a listing of older code that may still be of interest. | |||
== Contributed code not maintained by the project == | == Contributed code not maintained by the project == | ||
Line 21: | Line 17: | ||
|+ Contributions | |+ Contributions | ||
! Contribution !! Contributor !! Status !! Link | ! Contribution !! Contributor !! Status !! Link | ||
|- | |||
! FTM-based rate selection | |||
| [mailto:wojciech.ciezobka@agh.edu.pl W. Ciezobka], [mailto:maksymilian.wojnar@agh.edu.pl 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 || [https://github.com/ml4wifi-devs/ftmrate GitHub repo] | |||
|- | |||
! Monte Carlo Simulation library | |||
| [mailto:kamil-chelminiak@wp.pl Kamil Chełminiak] || Add-on to facilitate Monte Carlo simulations in ns-3.38 || [https://github.com/chelminiak/MonteCarloSimulator/ GitHub repo] | |||
|- | |||
! LoRa mesh module for ns-3.29 | |||
| [mailto:sanjaycharran@gmail.com Sanjay Charran] || Proof-of-concept mesh protocol for ns-3.29 || [https://github.com/sanjay-charran/lora-mesh/ GitHub repo] | |||
|- | |||
! DetNetWiFi: Determistic Wireless/Wired ns-3 framework | |||
| [mailto:sofia@fortiss.org Rute C. Sofia] and fortiss IIoT team || Developed and validated for ns-3.34; see status [https://git.fortiss.org/iiot_external/detnetwifi-ns3/-/blob/main/README.md here] || [https://git.fortiss.org/iiot_external/detnetwifi-ns3/ GitLab repo] | |||
|- | |||
! »Time-Aware Shaper (TAS)« from »Time-Sensitive Networking (TSN)« implemented in ns-3 | |||
| [mailto:dennis.krummacker@gmail.com Dennis Krummacker], [mailto:lwendlin@rhrk.uni-kl.de Luca Wendling ] || ns-3.31 Version || [https://github.com/DenKrysos/Time-Aware-Shaper-TAS-in-ns-3 GitHub Repository] | |||
|- | |||
! A framework for Radio Resource Management in WiFi Networks | |||
| Dr. Venkatesh Ramaiyan, Krishna Bharadwaj, S.Kalpalatha || ns-3.27 version || [https://github.com/ns3iit/rrimodule 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 || [https://github.com/dlinknctu/OpenNet GitHub site] | |||
|- | |||
! Tmix and DelayBox | |||
| Old Dominion || ns-3.13/3.14.1/3.21 versions || [http://code.google.com/p/tmix-ns3/ project website] | |||
|- | |- | ||
! Synchronized Network Emulation | ! Synchronized Network Emulation | ||
Line 30: | Line 51: | ||
|- | |- | ||
! Content Addressable Networks DHT | ! Content Addressable Networks DHT | ||
| Vijay K. Gurbani et al || announced [http://mailman.isi.edu/pipermail/ns-developers/2010-November/008460.html here] || [https://open-innovation.alcatel-lucent.com/svn/ns-3-can code repository] | | Vijay K. Gurbani et al. || announced [http://mailman.isi.edu/pipermail/ns-developers/2010-November/008460.html here] || [https://open-innovation.alcatel-lucent.com/svn/ns-3-can code repository] | ||
|- | |- | ||
! Pastry DHT Port | ! Pastry DHT Port | ||
Line 40: | Line 61: | ||
! Linux namespaces and ns-3 | ! Linux namespaces and ns-3 | ||
| Tom Goff || demo code || [http://www.nsnam.org/wiki/index.php/HOWTO_use_Linux_namespaces_with_ns-3 wiki page] | | Tom Goff || demo code || [http://www.nsnam.org/wiki/index.php/HOWTO_use_Linux_namespaces_with_ns-3 wiki page] | ||
|- | |||
! ndnSIM: Named Data Networking (NDN) module for ns-3 | |||
| Alexander Afanasyev et al. || released || [http://ndnsim.net ndnSIM homepage] | |||
|- | |||
! WiFi Dynamic Frequency Allocation feature | |||
| Raad Qandah || patch against ns-3.11 || [http://www.nsnam.org/contributed/Dynamic-Wifi-Frequency-Allocation-Feature.tar.gz Download tarball] | |||
|- | |||
! Fisheye State Routing with Node Degree Based Route Computation | |||
| [mailto:r311b712@ku.edu Ralph Baird] || zip archive (tested with ns-3.20) || [http://www.nsnam.org/contributed/fsr.zip Download zip archive] | |||
|- | |||
! CRE-NS3: Cognitive radio extension for ns-3 | |||
| Abdulla Al-Ali and Kaushik Chowdhury || GitHub code (tested with ns-3.17) || [http://www.devasque.com/crens3/ Web site] | |||
|- | |||
! Examples of using the [https://github.com/steinwurf/kodo Steinwurf C++ Kodo library] (network coding) [http://kodo-ns3-examples.readthedocs.org/en/latest/index.html with ns-3] | |||
| Nestor Hernandez || github (tracking ns-3-dev) || [http://kodo-ns3-examples.readthedocs.org/en/latest/# Project web site] | |||
|- | |||
! Multipath TCP from Morteza Kheirkhah | |||
| [mailto:M.Kheirkhah@sussex.ac.uk Morteza Kheirkhah] || GitHub code (tested with ns-3.19) || [https://github.com/mkheirkhah/mptcp GitHub repo] | |||
|- | |||
! Blackhole attack simulation in ns-3 using AODV | |||
| [mailto:tahiliani@nitk.ac.in Shalini Satre and Mohit P. Tahiliani] || Patches for ns-3.20 to ns-3.25 || [http://mohittahiliani.blogspot.in/2014/12/ns-3-blackhole-attack-simulation-in-ns-3.html Patch and sample program] | |||
|- | |||
! [[RadioWatcher]] (Provides real-time layer2 | |||
information from a Wifi device) | |||
| Fraunhofer FKIE ([mailto:christoph.fuchs@fkie.fraunhofer.de contact: Christoph Fuchs]) || tgz archive (tested with ns-3.23) || [http://www.nsnam.org/contributed/RadioWatcher.tgz Download archive] | |||
|- | |||
! Distance vector routing | |||
| [mailto:west@sd.keio.ac.jp Hiroaki Nishi] || Patches for ns-3.21 || [https://github.com/westlab/ns3dvrp GitHub repository] | |||
|- | |||
! OpenFlow 1.3 module | |||
| [mailto:luciano@lrc.ic.unicamp.br Luciano Jerez Chaves] || Patches for ns-3.24 || [http://www.lrc.ic.unicamp.br/ofswitch13/ website] | |||
|- | |||
! OpenFlow DCE SDN framework | |||
| [mailto:j.ivey@gatech.edu Jared Ivey] || DCE modifications || [https://github.com/jaredivey/dce-python-sdn GitHub repo] | |||
|- | |||
! Topology Generator | |||
| [mailto:jeffrey.young@inl.gov Jeffrey Young] || GitHub repository (tested with ns-3.25) || [https://github.com/idaholab/Topology_Generator GitHub repo] | |||
|- | |||
! Code Generator (command-line/XML topology generator) | |||
| [mailto:jeffrey.young@inl.gov Jeffrey Young] || GitHub repository (tested with ns-3.25) || [https://github.com/idaholab/Code_Generator GitHub repo] | |||
|- | |||
! Wormhole Attack Simulation using ns3 | |||
| Rahul Hada || GitHub repository (tested with ns-3.20) || [https://github.com/rahulhada/ns3-wormhole-attack GitHub repo] | |||
|- | |||
! Overlay ICN (O-ICN) simulator | |||
| [mailto:suvrat.a@tcs.com Suvrat Agrawal], and [mailto:s.samar@tcs.com Samar Shailendra] || Github repository; tested with ns3.24 || [https://github.com/TCS-Research/OICNSIM/ GitHub repo] | |||
|- | |||
! TCP Wave from TLCSat Group | |||
| [mailto:ahmed.said@uniroma2.it Ahmed Abdelsalam], and [mailto:roseti@ing.uniroma2.it Cesare Roseti] || Group Webpage /Github repository; tested with ns3.23 || [https://github.com/Ahmed1978/TCPWave GitHub repo]; [http://tlcsat.uniroma2.it/tcpwave TLCSat page] | |||
|} | |} | ||
Latest revision as of 09:20, 27 September 2023
Main Page - Roadmap - Summer Projects - Project Ideas - Developer FAQ - Tools - Related Projects
HOWTOs - Installation - Troubleshooting - User FAQ - 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)