TheThingsNetwork / lorawan-stack

The Things Stack, an Open Source LoRaWAN Network Server
https://www.thethingsindustries.com/stack/
Apache License 2.0
980 stars 309 forks source link

Downlink path sorting algorithm #4838

Closed adriansmares closed 2 years ago

adriansmares commented 2 years ago

Summary

References https://github.com/TheThingsNetwork/lorawan-stack/pull/4812

The sorting algorithm used to select which downlink path is to be used to transmit a downlink should take into account more than just SNR, and invalid RSSI/SNR pairs should not be given any priority.

Why is this an experimental feature ?

The algorithm change sits at the core of the Network Server, and can affect all of the downlink flow: Join Accept, MAC commands, application data downlinks. As such, we should be able to toggle it on and off on demand.

Which feature flags are associated with this feature ?

When should this feature be dropped, or become baseline ?

On average, if this selection scheme is more efficient, we should see less downlinks being transmitted (since MAC commands actually reach the end devices, and acknowledgements are not required).

How do you propose to test this?

Enable it and compare the baseline downlinks sent with the number of downlinks scheduled afterwards. Under the assumption of steady downlink rate, any change may be assumed to be caused by the algorithm change proposed here.

Environment

v3.16.0

NicolasMrad commented 2 years ago

@michalborkowski96 please enable the experiment features in the issue on staging2