I assume that the NS or AS decides which gateway it will use for a downlink based on the same information that’s reported in the rxInfo array? If so, would it be possible to “mark” that gateway (i.e. a Boolean prop set to true in that gateway’s object in the array)? I think this would be useful for troubleshooting downlink issues.
I don’t think this is possible. The decision which gateway to use happens after forwarding the FRMPayload to LoRa App Server. Also it could consider multiple gateways to fallback in case of an error. For debugging however you can see under the device --> Live LoRaWAN frames the downlink + GW meta-data.
I see. I’m curious, where is that decision made (App Server or Network Server)? And isn’t it based on the most recently received messages?
It is the NS who makes this decision. Currently this is based on SNR and RSSI, but in the future duty-cycle status of the gateway could also be considered.
I think this would be useful for troubleshooting downlink issues.
One thing that is really nice about the MQTT-centric architecture is that it’s entirely possible to take a peak at the raw gateway traffic side of things. While sorting out how things work, it’s been really useful to have a task that logs all the MQTT traffic in the system, both application level and raw traffic at gateway level. This has really helped with the ability to go back and retrospectively understand things which happened which seemed odd at first look but are actually in accordance to design.
If you have a small test network you can probably correlate this by eye; with more going on it was necessary to match up the raw and application traffic by fingerprinting the frequency and per-gateway (subjective) time combinations and knowing the receive window timings.