Skip to content
An ns-3 module for simulation of LoRaWAN networks.
Branch: master
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github Move contributing and code of conduct to .github folder Oct 3, 2017
doc Initial commit Sep 30, 2017
examples Update path loss Nov 20, 2018
helper Apply style checks and namespace lorawan Nov 6, 2018
model Apply style checks and namespace lorawan Nov 6, 2018
test Apply style checks and namespace lorawan Nov 6, 2018
.gitignore Initial commit Sep 30, 2017
.travis.yml Compile using ns-3-dev on TravisCI Nov 20, 2018
LICENSE Create LICENSE Oct 2, 2017
NS3-VERSION Add version numbers Nov 6, 2018
VERSION Add version numbers Nov 6, 2018
wscript Switch to better packet tracking system, fix bugs Sep 6, 2018

LoRaWAN ns-3 module

Gitter chat Build Status

This is an ns-3 module that can be used to perform simulations of a LoRaWAN network.

Getting started


To run simulations using this module, you will need to install ns-3, and clone this repository inside the src directory:

git clone ns-3
git clone ns-3/src/lorawan

If you are interested in having the latest features (and more bug-prone code), you can check out the develop branch:

cd ns-3/src/lorawan
git checkout develop


If you are interested in only compiling the lorawan module and its dependencies, copy the .ns3rc file from ns-3/utils to ns-3, where ns-3 is your ns-3 installation folder, and only enable the desired module by making sure the file contains the following line:

modules_enabled = ['lorawan']

To compile, move to the ns-3-dev folder, configure and then build ns-3:

./waf configure --enable-tests --enable-examples
./waf build

Finally, make sure tests run smoothly with:

./ -s lorawan

If the script returns that the lorawan test suite passed, you are good to go. Otherwise, if tests fail or crash, consider filing an issue.

Usage examples

The module includes the following examples:

  • simple-lorawan-network-example
  • complete-lorawan-network-example
  • network-server-example

Examples can be run via the ./waf --run example-name command.


Refer to the contribution guidelines for information about how to contribute to this module.


For a complete description of the module, refer to doc/lorawan.rst.

Getting help

To discuss and get help on how to use this module, you can write to us on our gitter chat.


  • Davide Magrin
  • Martina Capuzzo
  • Stefano Romagnolo
  • Michele Luvisotto


This software is licensed under the terms of the GNU GPLv2 (the same license that is used by ns-3). See the file for more details.

Acknowledgments and relevant publications

The initial version of this code was developed as part of a master's thesis at the University of Padova, under the supervision of Prof. Lorenzo Vangelista, Prof. Michele Zorzi and with the help of Marco Centenaro.


You can’t perform that action at this time.