Comments (7)
How are you computing the downlink packet error rate? If you compute it as the
number of correctly received DL packets divided by the number of confirmed UL
packets, yes, it is expected that it should be low, when the number of devices
requesting an ACK is high or there are few GWs.
If, on the other hand, you are computing the downlink packet error rate as the
number of correctly received DL packets divided by the number of sent DL
packets, I would not expect this to be lower than the UL packet success rate.
Can you confirm you are using the former method of computation?
As for how the GW decides which packets to reply to, this is done in the
NetworkScheduler::OnReceiveWindowOpportunity
function: when a receive window
is opened, the NS will call the NetworkStatus::GetBestGatewayForDevice
,
which in turn will go over the list of GWs that can reach the ED the receive
window is for, and ask each one whether it is available for transmission using
the GatewayStatus::IsAvailableForTransmission
method. In turn, this method
will check whether the GW is already booked for a transmission, whether it is
currently transmitting and whether it would be able to transmit now according to
its duty cycle.
So, in short, you could say the NS will always try to serve EDs according to a
first come first serve policy.
If you have any further questions don't hesitate to ask!
from lorawan.
Hello,
Thanks for responding to the query.
I have created a downlink packet tracker m_packetTrackerDownlink in lora-packet-tracker.h/cc to record only downlink packets.
All methods to calculate downlink PER are using this tracker.
from the two cases mentioned above, I am using the 2nd one, (DL received messages/DL sent messages). The packet error is very low in this case
from lorawan.
Ok, great! Can I close this?
from lorawan.
your explanation answers my first asked question.
I have another query,
as I am using the 2nd method to calculate DL PER (DL received messages/DL sent messages). and I am getting much lower PER than UL PER. Is this because of higher number of downlink packets?
from lorawan.
Sorry, I see I mixed up the language.
The # of DL received messages / # of DL sent messages is a DL packet success rate. I expect this to be quite high for all sizes of networks. Is this what you are observing?
The # of DL received messages / # of confirmed UL sent messages, instead, is what we could call a successful confirmation rate. I expect this to be high (i.e., close to 1) for very small networks, and that it should go much, much lower as the network size increases and the GW can not keep up with the high amount of ACK requests.
Is this coherent with what you are observing?
from lorawan.
Yes, This is what exactly happening with network as well. Thanks for your time and efforts to explain me my query. Sorry for the confusion.
Please close the issue.
from lorawan.
Great to see everything is working as expected - keep asking if you have any other questions!
from lorawan.
Related Issues (20)
- Are the max packet sizes correct? HOT 1
- How does lorawan-energy-model-example.cc suppose to work ?
- Simulation with LoRa (without LoRaWAN stack)
- LoRa Mesh module contribution?
- Lack of maintenance + alternatives
- lorawan: Ongoing changes to the module
- Issue with LoraFrameHeader while Handling the address part in LoRaWAN MAC Layer for Multiple End Devices
- test.py failing with "Packet changed contents when going through the channel" HOT 3
- m_receiveCallback in Receive function in lora-net-device HOT 4
- Performance metrics HOT 2
- Questions about complete network example HOT 3
- lorawan module paccket indicated as lost and received successfully at the same time HOT 2
- Unable to read LoraFrameHeader for uplink messages (using gw mac) HOT 2
- Broken documentation HOT 2
- How to run a simple scenario in aloha , slotted aloha and tdma? HOT 1
- How to integrate a new model HOT 2
- Transmission disappearing when sent before second Rx window HOT 2
- onoffhelper HOT 2
- How to use NetAnim while simulating lora? HOT 2
- rs-example code HOT 6
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from lorawan.