Closed rvolosatovs closed 3 years ago
Note, that in most cases a MAC command rejection indicate misconfiguration of the device(e.g. using PHY 1.0.2-b instead of PHY 1.0.2-a)
Partially implemented in https://github.com/TheThingsNetwork/lorawan-stack/pull/2401
This must be fixed before we make the next release, such that we can enable Sentry
Setting prio/high
, since this affects customers
Summary
Network Server should handle MAC command rejections.
Why do we need this?
To avoid endlessly rescheduling the same MAC commands over and over again
What is already there? What do you see now?
After receiving a rejection, Network Server just retries
What is missing? What do you want to see?
Record MAC command failures and avoid rescheduling MAC commands we know are going to fail. This data is to be stored per-MAC state.
LinkADRReq
rejections ~(this is partially implemented)~ (#3319)NewChannelReq
rejections:DLChannelReq
rejectionsHow do you propose to implement this?
Record the rejections in MAC state and handle accordingly when scheduling. E.g. for
LinkADR
, ifTxPowerIndex
value isNACK
ed, record that and never attempt to send that value again. Probably it's best to have a field per-rejection in MAC state. ForTxPowerIndex
that would berepeated uint32 RejectedTxPowerIndexes
.Can you do this yourself and submit a Pull Request?
yes