How is the channel for a downlink/join accept determined?

Does the gateway keep track of the channel on which the join request is received, to send the join-accept? Or does it broadcast to all channels? Or is it left to the implementation of the gateway?

The Network Server tells the gateway of its choice (as more than one may have heard the join request) to answer.

The channel for the downlink is always based on the uplink channel, and defined in the LoRaWAN specifications (the “regional parameters”), for both RX1 and RX2. This way devices also know on which channel they should listen during RX1, and on which channel for RX2 if nothing was received during RX1.

The network also decides if RX1 or RX2 is used. It keeps track of which gateway had the best reception of the uplink, and which gateway(s) are allowed to transmit given any regional regulations (such as maximum duty cycle), to allow it to choose the best gateway for a downlink.

Gateways are just dumb forwarders, they don’t decide on anything on their own.

1 Like

Thank you. This makes sense.

Does this mean that the initial channel for RX1 is predetermined for the join-request (regional specs) and always the same? And gateways always receive uplink frames on all channels and transmits downlink frames on specific channel (as instructed by NS)?

No, because the specs say a node should fairly use all channels available in its current configuration.

Gateways monitor as many channels as they can; in typical hardware configurations that’s 8 normal ones and a few goofy and rarely used extras in between. But in a few regions, there are fewer channels authorized than that.

But a given uplink is only on a single channel, unless the node is so close the the gateway that it overloads the front end and splatters into other channels where it may falsely appear, either correctly or with data errors.

Yes

1 Like

Thanks!