-
-
Notifications
You must be signed in to change notification settings - Fork 207
Description
Hi
I have noticed an issue, when trying to update the datarate of an end-device, which is joined through a relay. The issue does not always occur, but happens very often (about 30% of the time). When it happens the issue consists of an EndDeviceConfReq being sent, but then no LinkADRReq in the following downlinks.
Background
- The ADR-algorithm I am using in the device profile for the end-device is setting the datarate to a fixed value, and by changing the ADR-algorithm I can set the datarate of the end-device to a desired value, this works as expected when the end-device is not using relay-mode. In the example below the ADR algorithm is trying to set the datarate to 0.
- In the device profile for the end-device, the check-box with "Only use Relay (end-device)" has been enabled, to force up- and downlinks to go through the relay.
Description of issue
The ADR-algorithm for the end-device has been set to using a fixed datarate of 0.
In the following picture:
[1] 6 uplinks are forwarded through the relay, the end-device is using a datarate of 4 (which is not desired)
[2] a downlink is sent to the end-device through the relay with an EndDeviceConfReq.
In the following picture the downlink from the previous picture is seen.
[1] An FOptsLen of 7
[2] An EndDeviceConfReq sent to the end-device
Expected behavior
Two things are not as expected.
- I would expect that a LinkADRReq would be sent to the end-device with a datarate of 0, but even though the end-device is transmitting uplinks through the relay, but no downlink is sent to the end-device with a LinkADRReq.
- I would expect that in the single downlink that was sent to the end-device, there would be space for a LinkADRReq which takes up 5 bytes, this would cause the total FOptsLen to be 12 (which is still less than the maximum allowed FOptsLen of 15).