LoRaWAN

An ns-3 module for simulation of LoRaWAN networks.
4.51/5 (210 reviews)
Categories: Sensor Networks

This is an ns-3 module that can be used to perform simulations of a LoRaWAN network. Aside from models representing the various components of the network and helpers to set them up, the module comes with a packet tracker that monitors network performance, and with facilities that print the network topology to file for easy debugging and simulation monitoring. Various examples ranging from simple to complex network configurations are also provided.

Features

Current features include:

  • Support for Class A devices
  • Network Server Implementation
    • ADR
    • Confirmed messages
    • Multi-GW support
  • Urban propagation models
  • Realistic GW chip model
  • Energy model integration

Credits

The module was developed by Davide Magrin and Martina Capuzzo of the Signet Lab at University of Padova's Department of Information Engineering, under the supervision of Lorenzo Vangelista, Marco Centenaro, Andrea Zanella and Michele Zorzi.

Relevant publications

The following publications discuss and use the lorawan ns-3 module:

  • D. Magrin, M. Centenaro and L. Vangelista, "Performance evaluation of LoRa networks in a smart city scenario," 2017 IEEE International Conference on Communications (ICC), Paris. DOI: 10.1109/ICC.2017.7996384.
  • M. Capuzzo, D. Magrin and A. Zanella, "Confirmed Traffic in LoRaWAN: Pitfalls and Countermeasures," 2018 17th Annual Mediterranean Ad Hoc Networking Workshop (Med-Hoc-Net), Capri. DOI: 10.23919/MedHocNet.2018.8407095.

0.3.2

Works with ns-3.42

Build History : LoRaWAN 0.3.2

Release Notes

<p>This release updates the supported ns-3 version to ns-3.43 and restores the online documentation links.</p> <h3>Selected changelog</h3> <ul> <li>Update supported ns-3 version to 3.42 in <a href="https://github.com/signetlabdei/lorawan/pull/169">#169</a></li> <li>Update CI pipeline and bump supported ns-3 version to ns-3.43 in <a href="https://github.com/signetlabdei/lorawan/pull/173">#173</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/signetlabdei/lorawan/compare/v0.3.1...v0.3.2">v0.3.1...v0.3.2</a></p>

0.3.1

Works with ns-3.41

Build History : LoRaWAN 0.3.1

Release Notes

<p>Overall, this release is an effort to bring the module up-to-speed with the evolution of ns-3 development.</p> <ul> <li>Updated compatibility of ns-3 up to version 3.41</li> <li>Added a full CI pipeline mirroring the one used for the ns-3 codebase</li> <li>Satisfied all quality checks brought by the new CI system</li> <li>Format all files to current ns-3 .clang-format rules in #138</li> <li>Remove emacs lines from all files in #142</li> <li>Fix spelling errors in #143</li> <li>Add examples-to-run.py to module's tests in #145</li> <li>Apply .clang-tidy linting rules to all files in #146</li> <li>Reproduce ns-3 per-commit CI pipelines (push, MR) in #141</li> <li>Improve installation guide (#149)</li> <li>Expose p2p connection of gateways and server (#150) in #151</li> <li>Complete the doxygen documentation in #156</li> </ul>

0.3.0

Works with ns-3.32

Latest Build :

Build History : LoRaWAN 0.3.0

Release Notes

<ul> <li>Various bug fixes</li> <li>Improved Network Server architecture</li> </ul>
Bakefile : Link


0.2.1

Works with ns-3.29

Build History : LoRaWAN 0.2.1

Release Notes

<p>Initial release for the App Store.</p>

### From the App Store Download the latest release from the app store, unzip into the ns-3/src folder (so as to have a folder named 'lorawan' containing the code), and compile. ### From GitHub To get the latest version of the code from Github, clone the repository in the ns-3/src folder: ``` cd ns-3 && git clone https://github.com/signetlabdei/lorawan src/lorawan ``` ### Troubleshooting and more Please refer to the repository's [README.md file](https://github.com/signetlabdei/lorawan/blob/develop/README.md).

You can report bugs and open pull requests at our [Github Page](https://github.com/signetlabdei/lorawan).

This ns-3 extension is one or more contributed modules.

Version 0.3.2

Released Oct. 13, 2024

Works with ns-3.42