We have our network server running in US915 sub-band 4. Everything works great, the modules join and communicate to the LNS with on their intended channels on an hourly basis with close to zero packet loss. The end devices follow the LoRaWAN 1.0.4 spec using an off the shelf stack.
The problem we are having is that in the event that the gateways are offline for an extended period of time, the modules revert to a mode where they start transmitting on all channel and as a consequence, we start incurring massive packet loss. I’m not 100% sure if this is the fault of our module, we are looking into that, but more importantly, what I would like to know is if there is any way to force the module to recover the correct channel mask without forcing a rejoin at the device itself.
I suspect that this may be possible via a customer ADR plugin, potentially looking at both the short term and long term packet loss and deciding whether or not to send a new channel mask. Is this possible? Is the channel mask sent as part of an ADR response or does this only happen on a JoinAccept? Are there any other mechanisms we could use to remotely get the devices to behave this way?
Has anyone experienced this before? I can potentially force an ADR command on at least some of the modules by changing the max/min rate in the service profile, but that’s just a stopgap measure and not a long term solution.
The behaviour of the device seems consistent with pages 19-20 of the LoRaWAN 1.0.4 spec, specifically “Furthermore, if at any point during the backoff the resulting configuration results in an invalid combination of TX power, data rate or channel mask, the end-device SHALL immediately re-enable all default channels and use the maximum TX power permissible for and available to this end-device.” and the following table.