Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

adrAckReq response from server has empty fOpts #389

Closed
rayman18 opened this issue Apr 10, 2019 · 6 comments
Closed

adrAckReq response from server has empty fOpts #389

rayman18 opened this issue Apr 10, 2019 · 6 comments

Comments

@rayman18
Copy link

Is this a bug or a feature request?

Bug

What did you expect?

The adrAckReq response from server should have LinkADRReq info inside fOpts with dataRate and txPower info.

What happened?

The server answers but dowlink has field fOpts:null
No ADR info in downlink.

What version are your using?

2.6.1

How can your issue be reproduced?

After the node counter AdrAckCounter reach EU868_ADR_ACK_LIMIT(64) the node sends adrAckReq:true
Then the server sends downlink but without ADR info

Could you share your log output?

Attached uplink and downlink frames log

gateway-undefined.txt

@brocaar
Copy link
Owner

brocaar commented Apr 11, 2019

The ADRACKReq must trigger a downlink, even when there is no payload or mac-commands to send to confirm the network is still able to receive the device-data. I don't believe it must send a LinkADRReq mac-command.

image

The network is required to respond with a downlink frame .... any received downlink frame following an uplink frame resets the ADR_ACK_CNT.

@brocaar brocaar closed this as completed Apr 11, 2019
@rayman18
Copy link
Author

rayman18 commented Apr 11, 2019

@brocaar

The network is required to respond with a downlink frame .... any received downlink frame following an uplink frame resets the ADR_ACK_CNT.

The node reset the ADR_ACK_CNT, but the problem is the following code in the node:

image

When the ADR_ACK_CNT reaches the EU868_ADR_ACK_LIMIT(64), the txPower is set to EU868_MAX_TX_POWER(0).

Then ADRACKReq is sent to server and server respond with a downlink frame, but without LinkADRReq mac-command.
This way the node remains using EU868_MAX_TX_POWER(0) forever.

All this behaviour refers to unconfirmed uplinks.

So the objective of ADR scheme is being enabled to increase the battery life of the end-device and maximize the network capacity. But in this case, the battery life is not optimized.

@brocaar
Copy link
Owner

brocaar commented Apr 11, 2019

When the ADR_ACK_CNT reaches the EU868_ADR_ACK_LIMIT(64), the txPower is set to EU868_MAX_TX_POWER(0).

Why is the device doing this? I'm not aware that this is in line with the LoRaWAN specifications. If you believe it is, could you refer to the section describing this?

@rayman18
Copy link
Author

When the ADR_ACK_CNT reaches the EU868_ADR_ACK_LIMIT(64), the txPower is set to EU868_MAX_TX_POWER(0).

Why is the device doing this? I'm not aware that this is in line with the LoRaWAN specifications. If you believe it is, could you refer to the section describing this?

It´s on Semtech LoRaMac-node implementation:

https://github.com/Lora-net/LoRaMac-node/blob/83b6086f33aaef251820b91e4ac2b35c9c7b4a91/src/mac/region/RegionEU868.c#L504

@brocaar
Copy link
Owner

brocaar commented Apr 11, 2019

I have created this issue: Lora-net/LoRaMac-node#723

@rayman18
Copy link
Author

rayman18 commented Apr 15, 2019

I have created this issue: Lora-net/LoRaMac-node#723

From their answer:

In case the network server receives the uplink and then the end-device receives a downlink. Then the network server ADR algorithm will anyway send a LinkAdrReq mac command as it will notice that something changed. (may take a few uplinks depending on the ADR algorithm being used)

@brocaar what do you think about this?
I´m using LoRaWAN Specification v1.0.2

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants