3 - Receiving Messages

Messages sent from a network server to an end device are referred to as downlinks. These are sent to the end device via a single gateway. If there are multiple gateways near a device, the network server will select the most suitable gateway to broadcast from. This means the end device does not need to consider de-duping.

Devices operating in Class A mode only receive downlinks during the receive windows opened following an uplink, as described in the section Opening Receive Windows of the Sending Messages Book.

Devices that support Class B mode as well as Class A can receive additional downlinks in receive windows opened at fixed time slots. Read more about Class B mode in the Class B Book.

Devices that support Class C mode as well as Class A can receive additional downlinks at any time. Read more in the Class C: Continuously Listening for Downlinks book.

Todo

Fix link

In this book, you learn how to receive and handle downlink packets using the LoRaWAN® 1.0.4 specification.

Processing the Downlink Packet

Verify the Message Integrity Code (MIC)

The end device must calculate the Message Integrity Code (MIC) of the message and verify that the calculated MIC matches the value sent down in the MIC field in the downlink. If the two MIC values do not match, the end device must ignore this message.

Calculate the MIC over the Mac Header (MHDR), Frame Header (FHDR), Frame Port (FPort), and Frame Payload (FRMPayload) using the NwkSKey following the instructions at line 801 in Section 4.4, ‘Message Integrity Code’ (page 25) of the TS001-1.0.4 LoRaWAN® L2 1.0.4 Specification.

Note

The NwkSKey is derived during the activation process, as explained in the End Device Activation Book.

Figure 1 highlights the fields that are used in the MIC calculation.

MIC-Fields-Message

Figure 1: Fields used to calculate the MIC