Processing LinkADRReq MAC Command

Apply Changes

The changes to be applied in the LinkADRReq command vary depending on whether the end device is implementing ADR or not.

When ADR Is Being Implemented

If the end device is implementing ADR, then either none or all of the changes requested must be applied.

If any of the validations described in the section Convert and Validate LinkADRReq failed, then none of the updates shall be made. Next, the LinkADRAns will be sent with all status bits set to 0, as described in section Respond with LinkADRAns.

If all the validations described in the section Convert and Validate LinkADRReq passed, then all the requests must be processed:

Next, the LinkADRAns will be sent with all status bits set to 1, as described in section Respond with LinkADRAns.

Because the broadcast settings have been updated, the end device must also now begin to operate the ADR backoff procedure, described in the section ADR Backoff. This increases the chance of the end device reconnecting to the network in the event of a change to the surrounding gateways or device position.

When ADR Is Not Being Implemented

If the end device is not implementing ADR and all of the validation described in the section Convert and Validate LinkADRReq has passed, the end device must now enable all the channels identified as REQUESTED_CHANNELS.

When ADR is not being implemented, REQUESTED_DATA_RATE and REQUESTED_TX_POWER are both considered the same as the existing values, so no updates are required.

Next, the LinkADRAns must be sent with the ChannelMaskACK bit set to 1, and all other status bits set to 0, as described in section Respond with LinkADRAns.

Because the channel list has been updated, the end device must also now begin to operate the ADR backoff procedure, described in the section ADR Backoff. This increases the chance of the end device reconnecting to the network in the event of a change to the surrounding gateways or device position.