This is an ns-3 module that can be used to perform simulations of a LoRaWAN network.
To run simulations using this module, you will need to install ns-3, and clone
this repository inside the src directory. Required dependencies include
mercurial and a build environment.
On Ubuntu, run the following to install all the required packets:
sudo apt install git mercurial build-essentialOn macOS, you can install the command line tools with:
xcode-select --installwhile Mercurial and git can be installed via Homebrew:
brew install mercurial gitAssuming you have mercurial installed, the procedure to get both ns-3 and the
lorawan module is the following:
hg clone http://code.nsnam.org/ns-3-dev
cd ns-3-dev/src
git clone git@github.com:DvdMgr/lorawanIf you are interested in only compiling the lorawan module and its
dependencies, copy the .ns3rc file from ns-3-dev/utils to ns-3-dev, 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 buildFinally, make sure tests run smoothly with:
./test.py -s lorawanIf the script returns that the lorawan test suite passed, you are good to go. Otherwise, if tests fail or crash, consider filing an issue.
The module includes the following examples:
simple-lorawan-network-examplecomplete-lorawan-network-examplenetwork-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.
- ns-3 tutorial
- ns-3 manual
- The LoRaWAN specification can be requested at the LoRa Alliance website
To discuss and get help on how to use this module, you can write to us on our gitter chat.
- Davide Magrin
- Stefano Romagnolo
- Michele Luvisotto
- Martina Capuzzo
This software is licensed under the terms of the GNU GPLv2 (the same license that is used by ns-3). See the LICENSE.md file for more details.
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.
Publications:
- 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, 2017. Available: http://ieeexplore.ieee.org/document/7996384/
- Network level performances of a LoRa system (Master thesis). Available: http://tesi.cab.unipd.it/53740/1/dissertation.pdf