Git Product home page Git Product logo

lorawan's Introduction

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.

API documentation.

Module Documentation.

Getting started

Prerequisites

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

git clone https://github.com/nsnam/ns-3-dev-git ns-3
git clone https://github.com/signetlabdei/lorawan 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

Compilation

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 folder, configure and then build ns-3:

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

Finally, make sure tests run smoothly with:

./test.py -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-network-example
  • complete-network-example
  • network-server-example

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

Contributing

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

Documentation

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.

Authors

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

License

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.

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.

Publications:

  • D. Magrin, M. Capuzzo and A. Zanella, "A Thorough Study of LoRaWAN Performance Under Different Parameter Settings," in IEEE Internet of Things Journal. 2019. Link.
  • 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, 2018. Link.
  • 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. Link.
  • Network level performances of a LoRa system (Master thesis). Link.

lorawan's People

Contributors

dvdmgr avatar peggyopal avatar martcp avatar qiuyukang avatar non-det-alle avatar gdelazzari avatar yoniwt avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.