GithubHelp home page GithubHelp logo

signetlabdei / lorawan Goto Github PK

View Code? Open in Web Editor NEW
179.0 20.0 129.0 891 KB

An ns-3 module for simulation of LoRaWAN networks

License: GNU General Public License v2.0

C++ 94.53% CMake 0.45% Jupyter Notebook 4.91% Python 0.11%
network-simulator network-visualization network-analysis simulation lora-alliance lorawan lora

lorawan's Introduction

LoRaWAN ns-3 module

CI codecov

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

Module Documentation.

Doxygen API Documentation.

Getting started

Prerequisites

To run simulations using this module, you first need to install ns-3. If you are on Ubuntu/Debian/Mint, you can install the minimal required packages as follows:

sudo apt install g++ python3 cmake ninja-build git ccache

Otherwise please directly refer to the prerequisites section of the ns-3 installation page.

Note: While the ccache package is not strictly required, it is highly recommended. It can significantly enhance future compilation times by saving tens of minutes, albeit with a higher disk space cost of approximately 5GB. This disk space usage can be eventually reduced through a setting.

Then, you need to:

  1. Clone the ns-3 codebase,
  2. Clone this repository inside the src directory therein, and
  3. Checkout the latest ns-3 version supported by this module.

You can use the following all-in-one command:

git clone https://gitlab.com/nsnam/ns-3-dev.git && cd ns-3-dev &&
git clone https://github.com/signetlabdei/lorawan src/lorawan &&
tag=$(< src/lorawan/NS3-VERSION) && tag=${tag#release } && git checkout $tag -b $tag

Compilation

Ns-3 adopts a development-oriented philosophy. Before you can run anything, you'll need to compile the ns-3 code. You have two options:

  1. Compile ns-3 as a whole: Make all simulation modules available by configuring and building as follows (ensure you are in the ns-3-dev folder!):

    ./ns3 configure --enable-tests --enable-examples &&
    ./ns3 build
  2. Focus exclusively on the lorawan module: To expedite the compilation process, as it can take more than 30/40 minutes on slow hardware, change the configuration as follows:

    ./ns3 clean &&
    ./ns3 configure --enable-tests --enable-examples --enable-modules lorawan &&
    ./ns3 build

    The first line ensures you start from a clean build state.

Finally, ensure tests run smoothly with:

./test.py

If the script reports that all tests passed or that just three-gpp-propagation-loss-model failed1, you are good to go.

If other 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
  • adr-example
  • aloha-throughput
  • frame-counter-update
  • lora-energy-model-example
  • parallel-reception-example

Examples can be run via the ./ns3 run example-name command (refer to ./ns3 run --help for more options).

Contributing

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

Documentation

For a description of the foundational models of this module, refer to doc/lorawan.rst.

Other useful documentation sources:

Getting help

To discuss and get help on how to use this module, you can open an issue here.

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.

Footnotes

  1. This is due to a bug in the current ns-3 version when restricting compilation to the lorawan module and its dependencies. If you need to use the three-gpp-propagation-loss-model, you can solve this by compiling ns-3 as a whole or with the --enable-modules "lorawan;applications" option to reduce compilation time.

lorawan's People

Contributors

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

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

lorawan's Issues

Packet error rate

Hello,
Is there already a class defined to calculate packet error rate?
I am hoping to calculate packet error rate at each gateway.
Is it possible to get number of packet received and number of packet lost at each gateway in case of multiple gateways?

Packet Size of Reply Packet

Hello,

When I set MType :: Confirmed Data,
I want to send packets to end devices with a particular packet size.

It would be helpful for me if you suggest how can I achieve this.

Thanks and Regards

Changing bandwidth

Hi!

I am simulating the simple-network-example.cc, but I can't figure out how to change the bandwidth for the simulation. Right now it is using the bandwidth of 125000 Hz, but I want to change that to 250000 Hz.
Do you have any suggestions how to do this ?

./waf build error

Actual Behavior

Build failed
-> task in 'ns3-lora' failed (exit status 1):
{task 139909161464208: cxx rx-timing-setup-ans.cc -> rx-timing-setup-ans.cc.1.o}
['/usr/bin/g++', '-O0', '-ggdb', '-g3', '-Wall', '-Werror', '-std=c++11', '-Wno-error=deprecated-declarations', '-fstrict-aliasing', '-Wstrict-aliasing', '-finstrument-functions', '-fPIC', '-pthread', '-I.', '-I..', '-DNS3_BUILD_PROFILE_DEBUG', '-DNS3_ASSERT_ENABLE', '-DNS3_LOG_ENABLE', '-DHAVE_SYS_IOCTL_H=1', '-DHAVE_IF_NETS_H=1', '-DHAVE_NET_ETHERNET_H=1', '-DHAVE_PACKET_H=1', '-DHAVE_IF_TUN_H=1', '-DHAVE_GSL=1', '-DHAVE_SQLITE3=1', '../src/lora/model/commands/rx-timing-setup-ans.cc', '-c', '-o', '/home/nagib/opt/ns-allinone-3.28.1/ns-3.28.1/build/src/lora/model/commands/rx-timing-setup-ans.cc.1.o']
-> task in 'ns3-lora' failed (exit status 1):
{task 139909161464336: cxx link-check-ans.cc -> link-check-ans.cc.1.o}
['/usr/bin/g++', '-O0', '-ggdb', '-g3', '-Wall', '-Werror', '-std=c++11', '-Wno-error=deprecated-declarations', '-fstrict-aliasing', '-Wstrict-aliasing', '-finstrument-functions', '-fPIC', '-pthread', '-I.', '-I..', '-DNS3_BUILD_PROFILE_DEBUG', '-DNS3_ASSERT_ENABLE', '-DNS3_LOG_ENABLE', '-DHAVE_SYS_IOCTL_H=1', '-DHAVE_IF_NETS_H=1', '-DHAVE_NET_ETHERNET_H=1', '-DHAVE_PACKET_H=1', '-DHAVE_IF_TUN_H=1', '-DHAVE_GSL=1', '-DHAVE_SQLITE3=1', '../src/lora/model/commands/link-check-ans.cc', '-c', '-o', '/home/nagib/opt/ns-allinone-3.28.1/ns-3.28.1/build/src/lora/model/commands/link-check-ans.cc.1.o']
-> task in 'ns3-lora' failed (exit status 1):
{task 139909161464400: cxx link-adr-req.cc -> link-adr-req.cc.1.o}
['/usr/bin/g++', '-O0', '-ggdb', '-g3', '-Wall', '-Werror', '-std=c++11', '-Wno-error=deprecated-declarations', '-fstrict-aliasing', '-Wstrict-aliasing', '-finstrument-functions', '-fPIC', '-pthread', '-I.', '-I..', '-DNS3_BUILD_PROFILE_DEBUG', '-DNS3_ASSERT_ENABLE', '-DNS3_LOG_ENABLE', '-DHAVE_SYS_IOCTL_H=1', '-DHAVE_IF_NETS_H=1', '-DHAVE_NET_ETHERNET_H=1', '-DHAVE_PACKET_H=1', '-DHAVE_IF_TUN_H=1', '-DHAVE_GSL=1', '-DHAVE_SQLITE3=1', '../src/lora/model/commands/link-adr-req.cc', '-c', '-o', '/home/nagib/opt/ns-allinone-3.28.1/ns-3.28.1/build/src/lora/model/commands/link-adr-req.cc.1.o']
-> task in 'ns3-lora' failed (exit status 1):
{task 139909161464080: cxx new-channel-ans.cc -> new-channel-ans.cc.1.o}
['/usr/bin/g++', '-O0', '-ggdb', '-g3', '-Wall', '-Werror', '-std=c++11', '-Wno-error=deprecated-declarations', '-fstrict-aliasing', '-Wstrict-aliasing', '-finstrument-functions', '-fPIC', '-pthread', '-I.', '-I..', '-DNS3_BUILD_PROFILE_DEBUG', '-DNS3_ASSERT_ENABLE', '-DNS3_LOG_ENABLE', '-DHAVE_SYS_IOCTL_H=1', '-DHAVE_IF_NETS_H=1', '-DHAVE_NET_ETHERNET_H=1', '-DHAVE_PACKET_H=1', '-DHAVE_IF_TUN_H=1', '-DHAVE_GSL=1', '-DHAVE_SQLITE3=1', '../src/lora/model/commands/new-channel-ans.cc', '-c', '-o', '/home/nagib/opt/ns-allinone-3.28.1/ns-3.28.1/build/src/lora/model/commands/new-channel-ans.cc.1.o']
-> task in 'ns3-lora' failed (exit status 1):
{task 139909161464848: cxx rx-param-setup-req.cc -> rx-param-setup-req.cc.1.o}
['/usr/bin/g++', '-O0', '-ggdb', '-g3', '-Wall', '-Werror', '-std=c++11', '-Wno-error=deprecated-declarations', '-fstrict-aliasing', '-Wstrict-aliasing', '-finstrument-functions', '-fPIC', '-pthread', '-I.', '-I..', '-DNS3_BUILD_PROFILE_DEBUG', '-DNS3_ASSERT_ENABLE', '-DNS3_LOG_ENABLE', '-DHAVE_SYS_IOCTL_H=1', '-DHAVE_IF_NETS_H=1', '-DHAVE_NET_ETHERNET_H=1', '-DHAVE_PACKET_H=1', '-DHAVE_IF_TUN_H=1', '-DHAVE_GSL=1', '-DHAVE_SQLITE3=1', '../src/lora/model/commands/rx-param-setup-req.cc', '-c', '-o', '/home/nagib/opt/ns-allinone-3.28.1/ns-3.28.1/build/src/lora/model/commands/rx-param-setup-req.cc.1.o']
-> task in 'ns3-lora' failed (exit status 1):
{task 139909161463952: cxx rx-param-setup-ans.cc -> rx-param-setup-ans.cc.1.o}
['/usr/bin/g++', '-O0', '-ggdb', '-g3', '-Wall', '-Werror', '-std=c++11', '-Wno-error=deprecated-declarations', '-fstrict-aliasing', '-Wstrict-aliasing', '-finstrument-functions', '-fPIC', '-pthread', '-I.', '-I..', '-DNS3_BUILD_PROFILE_DEBUG', '-DNS3_ASSERT_ENABLE', '-DNS3_LOG_ENABLE', '-DHAVE_SYS_IOCTL_H=1', '-DHAVE_IF_NETS_H=1', '-DHAVE_NET_ETHERNET_H=1', '-DHAVE_PACKET_H=1', '-DHAVE_IF_TUN_H=1', '-DHAVE_GSL=1', '-DHAVE_SQLITE3=1', '../src/lora/model/commands/rx-param-setup-ans.cc', '-c', '-o', '/home/nagib/opt/ns-allinone-3.28.1/ns-3.28.1/build/src/lora/model/commands/rx-param-setup-ans.cc.1.o']
-> task in 'ns3-lora' failed (exit status 1):
{task 139909161464976: cxx new-channel-req.cc -> new-channel-req.cc.1.o}
['/usr/bin/g++', '-O0', '-ggdb', '-g3', '-Wall', '-Werror', '-std=c++11', '-Wno-error=deprecated-declarations', '-fstrict-aliasing', '-Wstrict-aliasing', '-finstrument-functions', '-fPIC', '-pthread', '-I.', '-I..', '-DNS3_BUILD_PROFILE_DEBUG', '-DNS3_ASSERT_ENABLE', '-DNS3_LOG_ENABLE', '-DHAVE_SYS_IOCTL_H=1', '-DHAVE_IF_NETS_H=1', '-DHAVE_NET_ETHERNET_H=1', '-DHAVE_PACKET_H=1', '-DHAVE_IF_TUN_H=1', '-DHAVE_GSL=1', '-DHAVE_SQLITE3=1', '../src/lora/model/commands/new-channel-req.cc', '-c', '-o', '/home/nagib/opt/ns-allinone-3.28.1/ns-3.28.1/build/src/lora/model/commands/new-channel-req.cc.1.o']
-> task in 'ns3-lora' failed (exit status 1):
{task 139909161465104: cxx rx-timing-setup-req.cc -> rx-timing-setup-req.cc.1.o}
['/usr/bin/g++', '-O0', '-ggdb', '-g3', '-Wall', '-Werror', '-std=c++11', '-Wno-error=deprecated-declarations', '-fstrict-aliasing', '-Wstrict-aliasing', '-finstrument-functions', '-fPIC', '-pthread', '-I.', '-I..', '-DNS3_BUILD_PROFILE_DEBUG', '-DNS3_ASSERT_ENABLE', '-DNS3_LOG_ENABLE', '-DHAVE_SYS_IOCTL_H=1', '-DHAVE_IF_NETS_H=1', '-DHAVE_NET_ETHERNET_H=1', '-DHAVE_PACKET_H=1', '-DHAVE_IF_TUN_H=1', '-DHAVE_GSL=1', '-DHAVE_SQLITE3=1', '../src/lora/model/commands/rx-timing-setup-req.cc', '-c', '-o', '/home/nagib/opt/ns-allinone-3.28.1/ns-3.28.1/build/src/lora/model/commands/rx-timing-setup-req.cc.1.o']

Specifications

  • ns-3 version: 3.28.1
  • lorawan module version:
  • Platform: Ubuntu 16.04
  • Compiler:

Add channel configurations for US / Australia / China

This is a low hanging fruit: since we already have a system in LoraHelper to set up channels, it should be enough to modify some of the code and create methods for new regions. If anyone is interested in developing this, we can use this issue to keep track of the task.

Not able to complie

Expected Behavior

Complitation should success

Actual Behavior

Build fails

Steps to Reproduce the Problem

  1. As mentioned, all the dependencies are installed and extracted the code
  2. Build the code using "./test.py -s lorawan"

Specifications

  • ns-3 version: Release 3-dev
  • lorawan module version:
  • Platform: Ubuntu
  • Compiler:gcc

Please let me know if I missed anything or requires to update.

./waf build error

Expected Behavior

lorawan modules should get configured

Actual Behavior

In file included from ./ns3/lora-phy.h:30:0,
from ./ns3/end-device-lora-phy.h:32,
from ../src/lorawan/examples/simple-network-example.cc:6:
./ns3/lora-channel.h:84:23: error: conflicting return type specified for ‘virtual std::size_t ns3::lorawan::LoraChannel::GetNDevices() const’
virtual std::size_t GetNDevices (void) const;
^
In file included from ./ns3/lora-channel.h:30:0,
from ./ns3/lora-phy.h:30,
from ./ns3/end-device-lora-phy.h:32,
from ../src/lorawan/examples/simple-network-example.cc:6:
./ns3/channel.h:68:20: error: overriding ‘virtual uint32_t ns3::Channel::GetNDevices() const’
virtual uint32_t GetNDevices (void) const = 0;
^
In file included from ./ns3/end-device-lora-phy.h:26:0,
from ../src/lorawan/examples/simple-network-example.cc:6:
./ns3/object.h: In instantiation of ‘ns3::Ptr ns3::CreateObject(T1, T2) [with T = ns3::lorawan::LoraChannel; T1 = ns3::Ptrns3::LogDistancePropagationLossModel; T2 = ns3::Ptrns3::PropagationDelayModel]’:
../src/lorawan/examples/simple-network-example.cc:66:68: required from here
./ns3/object.h:557:28: error: invalid new-expression of abstract class type ‘ns3::lorawan::LoraChannel’
return CompleteConstruct (new T (a1,a2));
^
In file included from ./ns3/lora-phy.h:30:0,
from ./ns3/end-device-lora-phy.h:32,
from ../src/lorawan/examples/simple-network-example.cc:6:
./ns3/lora-channel.h:73:7: note: because the following virtual functions are pure within ‘ns3::lorawan::LoraChannel’:
class LoraChannel : public Channel
^
In file included from ./ns3/lora-channel.h:30:0,
from ./ns3/lora-phy.h:30,
from ./ns3/end-device-lora-phy.h:32,
from ../src/lorawan/examples/simple-network-example.cc:6:
./ns3/channel.h:75:26: note: virtual ns3::Ptrns3::NetDevice ns3::Channel::GetDevice(uint32_t) const
virtual Ptr GetDevice (uint32_t i) const = 0;

Steps to Reproduce the Problem

  1. clone this repository inside the src directory
    2../waf configure --enable-tests --enable-examples
    3../waf build
    build_error

Specifications

  • ns-3 version: 3.28
  • lorawan module version: branch develop
  • Platform:Ubuntu 16.04
  • Compiler:2.7.12 Python

ACK bit set wrongly at EndDeviceLorawanMac?

Expected Behavior

In void EndDeviceLorawanMac::ApplyNecessaryOptions (LoraFrameHeader& frameHeader),
the frameHeader ACK bit should only be set if the end device has just received a confirmed downlink message.

Actual Behavior

The ack bit is set based on Uplink message type. Ack = 1 if mType = CONFIRMED_DATA_UP.

Steps to Reproduce the Problem

N/A

Specifications

N/A

Add support for join procedure

As of now, devices are made known to the Network Server during the configuration phase. This is fine for simulations that focus on the long-term performance of a network, but as of now the module doesn't take into account that devices may have issues joining the network, and the effects of downlink packets on interference are ignored.

Instead, devices should be able to perform a join procedure as specified by the standard to join the network if needed. This would enable a broader range of interesting simulations that, possibly, also take into account security aspects.

Setting different data rate for different set of end device

I am trying to configure different end devices with different values of spreading factors but it seems like SF can be configured using datarate. I am quite new with NS-3
Can you give a simple illustration of how to use the SetDataRate method for it?

Thanks

Usage Examples in README.MD do not work

Expected Behavior

./waf --run simple-lorawan-network-example and ./waf --run complete-lorawan-network-example should run the tests to completion

Actual Behavior

waf cannot find the programs
when waf builds the example programs they are actually created with the names simple-network-example and complete-network-example

Steps to Reproduce the Problem

  1. run either one of the two commands:
    • ./waf --run simple-lorawan-network-example
    • ./waf --run complete-lorawan-network-example

Fix

Change the README.MD example names to simple-network-example and complete-network-example or change lorawan/examples/wscript lines 5 and 11.

Rough Number of Nodes that can be simulated

Hello,

I am concerned to know the maximum number of nodes that can be simulated with this module.
I am trying to simulate around 30k of nodes.
Is it possible to simulate these number of nodes?

Can't use EnablePacketTracking(filename) to tracking

Expected Behavior

Performance file in complete-network-example.cc have data

Actual Behavior

That file is empty

Steps to Reproduce the Problem

1.run complete-network-example.cc
2. Open performance file
3. This is empty

Specifications

  • ns-3 version: 3.28
  • lorawan module version: v0.2.0
  • Platform: ubuntu
  • Compiler: cc

./waf build error

Expected Behavior

lorawan modules should get configured

Actual Behavior

Build failed
-> task in 'ns3-lorawan' failed with exit status 1 (run with -v to display more information)
-> task in 'ns3-lorawan' failed with exit status 1 (run with -v to display more information)
-> task in 'ns3-lorawan' failed with exit status 1 (run with -v to display more information)
-> task in 'ns3-lorawan' failed with exit status 1 (run with -v to display more information)

Steps to Reproduce the Problem

1.install ns-3, and clone this repository inside the src directory
2../waf configure --enable-tests --enable-examples
3../waf build

Specifications

  • ns-3 version:3.28
  • lorawan module version:
  • Platform: Ubuntu 16.04
  • Compiler:2.7.12 Python

Identify ED in downlink packets

Hello,

First I was wondering how to identify recipient node in each downlink packet.

And second how to identify reply packet and request packet pair.

Thanks

Tests, tests, tests!

Tests are a vital component of the module, and a great way to get started if you want to understand what's going on under the hood.

As of now, we have tests for the PHY layer model implementation, but more is needed for the MAC layer and for Network Server functionality.

If you want to contribute towards this, you are welcome! Please feel free to use this issue to ask questions on how to get started - I will be happy to assist you.

Capturing Downlink packets

Hello All,

I want to capture downlink packets during a simulation.
Is there a way to do so?

I am using Complete-network-example.cc for my simulation with modifications.

Thanks

Add join procedure

The module is currently lacking the logic required to correctly handle a new node's join procedure in a network.

Decide on architecture for Network Server application

The SimpleNetworkServer implementation needs to be adapted if we want to support a broader range of functionalities by the Network Server. We need to discuss and identify a good structure for this implementation.

Send a packet to the ED at any time.

Hello, I want to ask a question, is there any way to make the LoRa NS send a packet to the ED at any time(maybe I can increase the receiving window of the ED just like LoRa class C)? Can you give me some hints to modify the code? Thank you very much.

LoRaWAN build error

Expected Behavior

Build completed successfully

Actual Behavior

An error occuring during build process as shown in the screenshot attached.

Steps to Reproduce the Problem

  1. While building the LoRa wan module receiving error is this a version problem?
  2. In which version this LoRaWAN module works well?
    I am a beginner in NS3 please help

Specifications

  • ns-3 version:3.27
  • lorawan module version:
  • Platform:Ns3 Ubuntu 18.04
  • Compiler:
    Screenshot from 2019-11-26 11-38-49

Conditional Sending of packets

Hello
I am wondering how can I modify behavior of nodes to send packet.
My goal is to send next transmission only if the previous transmission is received by gateways.

I tried using m_macPacketTracker first, but somehow it is not working for me.
Please suggest me this is possible and what code should I modify in order to achieve this.

Thanks and Regards

Packet Error rate at End Device level.

Hello Group,

I am new to this LoRaWAN simulator tool/Module. Please guide me on how can I approach to create a method for calculation of packet error rate at end device level.

Bandwidth?

I wonder why I got the same signal power if I change the bandwidth? Should it not be a different signal power if I change the bandwidth from 125000 to 500000 ?
If you know the answer or if I have missed changing something let me know, because I just have changed the bandwidth in the LoRaWAN-mac-helper.cc

Add complete Network Server implementation

The currently available SimpleNetworkServer doesn't consider MAC commands when crafting responses, and was designed with a somewhat arbitrary architecture.

A more complete NetworkServer application would be able to leverage LoRaWAN MAC commands to configure the network (via Adaptive Data Rate, for instance), and support join procedures.

Is there a way to make a .pcap file?

Expected Behavior

want to make a .pcap file

Actual Behavior

I know that ns-3 supports to make .pcap file and I just don't know where to put
pointToPoint.EnablePcapAll (“filename”);
this code.

Specifications

  • ns-3 version: 3.29
  • lorawan module version: 0.2.0
  • Platform: Kali linux
  • Compiler: cc 10.0.0

-

I haven't find the .ns3rc file in /utils

Retransmission Issue

I'm trying to use this module (example. complete-lorawan-network) to see the log of retransmission, however I cannot see any retransmission log. The result only shows about sending the new packets.

Does the retransmission code work? Can you provide any example?

Thank you.

Update module documentation

As of now, we have a lorawan.rst file that describes some of the functionalities of the module, but this is not enough. I've identified the following tasks to improve the documentation of the module:

  • Add a compiled documentation page, possibly hosted through Github Pages for immediate access by users.
  • Add documentation on how the Network Server works
  • Add description of tests, underlying models and validation
  • Add a page describing how the simulator was validated by comparison with a mathematical model

Features of Ns 3 lorawan over others

Hello..I am new to Ns 3 and inet.
I am currently deciding which to choose over other meaning how is Ns3 better than flora (by features) and vice versa..Also which is easy to learn quickly.

Would really appreciate if someone could guide me..I am not focusing on machine learning, but just resource allocation problems..Have a nice day

SetPacketSizeRandomVariable() method in Periodic helper class

Hello,

I have a doubt on method called SetPacketSizeRandomVariable() from PeriodicSender helper.
when we a SetPacketSizeRandomVariable(), it will always generate a packet size of basepacket + m_pktSizeRV or it will randomly produce packets like sometimes it produces packets of basepacket size and sometime basepacket + m_pktSizeRV .

Thanks

./waf build error

Expected Behavior

lorawan modules should get configured

Actual Behavior

Could not find a task generator for the name 'ns3-lorawan-master'
screenshot 2018-04-24 15 05 43

Specifications

  • ns-3 version: 3.28
  • lorawan module version:
  • Platform: Linux Mint 18.3
  • Compiler: Python 3.6.5, gcc 7.2.0

terminated with signal SIGSEGV.

Hello,

I am running complete-network-example file.
If I try to give value of nDevices more than 200, it gives error terminated with signal SIGSEGV.

for 200 nDevices it runs perfectly fine.

When running under gdb , i got below comment. I could not understand what does it mean.
Program received signal SIGSEGV, Segmentation fault.
0x00007ffff491af24 in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6

I checked if there are any null pointers, I could not find any.

Any help will be appreciated.

Thanks!

Gateway rules while transmitting downlink packet

Hello Again,

This not an issue but a query.
I am capturing downlink packets and calculating its packet error rate at both end device and gateway level.
I see the downlink packet error rate is much higher as compared to uplink which is an expected behaviour. I am curious to know how gateway is deciding which packets to drop and which packets to pass. what are the rules for downlink packet transmission.

I am using adr branch. I checked network-controller-components.cc/h and network-scheduler.cc already to search for the rules, still not close to what I was searching.

Is there a particular class or classes I should look for?

Thanks and Regards

Multihop and Class C

Not a defect/problem/strange behaviour per se, but I'd like to contribute multi-hop capability to the module.

SNIR Calculation

Expected Behavior

Hello

  1. I want to calculate SNIR and SNR in the network. I am making some modifications to the complete-network-example. I can see in the results that SNIR is always inf db as interference power is 0. But on the contrary the Result matrix shows PHY interfered = 6. Please help me understand this phenomenon.

  2. I am using the below code to get SF of 1st receive window

Ptr edMac1 = endDevices.Get (0)->GetDevice(0)->GetObject ()->GetMac ();
Ptr edLoraMac1 = edMac1->GetObject ();
LoraDeviceAddress Address = edLoraMac1->GetDeviceAddress();
Ptr edStatus = CreateObject (Address, edLoraMac1);
edStatus->SetFirstReceiveWindowSpreadingFactor (9);
NS_LOG_INFO ("GetFirstReceiveWindowSpreadingFactor: " << edMac1->GetFirstReceiveWindowSpreadingFactor());

The SF is not displayed. Also the function GetSfFromDataRate() cannot display SF for my code.

  1. In the example : Complete-network-example, performance and building files are empty. Nothing is being recorded in these files.

  2. If I change number of Gateways in complete-network-example to 3 and Enddevices to 200.
    Total Phy number is 600. I expected it to be 200 only. Please help me understand this as well

Steps to Reproduce the Problem

  1. run complete-network-example.cc

Specifications

  • ns-3 version: 3.28
  • lorawan module version: v0.2.0
  • Platform: ubuntu
  • Compiler: cc

Have no access right

Expected Behavior

clone successed

Actual Behavior

After I input git clone [email protected]:DvdMgr/lorawan
the terminal shows:
Permission denied( publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights and the repository exists.

Steps to Reproduce the Problem

Specifications

  • ns-3 version:
  • lorawan module version:
  • Platform:
  • Compiler:

Add Energy Model

Adding an Energy Model representing SX1272 chips would allow us to make considerations on the network's life length.

This model was already completed at the University of Padova by Stefano Romagnolo, I'm currently working on an integration with the current version of the module.

A refactor of the PHY layer will probably be necessary. This will come with API-breaking changes.

Running two files in example

Hello ,

I am want to run two file one after other automatically.
For example,
first I run simple-network-example, process it and generate few results.
second using those results I will run other file network-server-example.
third again I want to run simple-network-example with feedback data.
This I want to do in one go. Is there any way?

Thanks

Example program not found

Expected Behavior

Running example program

Actual Behavior

Error message:
program 'complete-lorawan-network-example' not found; available programs are: ....
All three examples are not found

Steps to Reproduce the Problem

  1. Following all the Getting Started on https://github.com/signetlabdei/lorawan
  2. No configure error
  3. No build error
  4. Passed test
  5. Executing ./waf --run program-name

Specifications

  • ns-3 version: 3.29
  • lorawan module version: 0.2.0
  • Platform: macOS Mojave
  • Compiler: cc 10.0.0

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.