1 - End Device Activation
This book covers LoRaWAN® end-device activation in depth.
Todo
Add more details
Over-the-Air Activation (OTAA) Device Provisioning
Step 3C: Network Server Sends Join Accept
If the join was accepted, the network server prepares a Join Accept frame containing the fields required to generate the NwkSKey and AppSKey, the join server nonce (JoinNonce), and the join server network identifier (NetID). Additional fields are supplied by the network server and added to the Join Accept: the end device address (DevAddr), the downlink configuration settings (DLSettings), a desired delay between transmission and opening receive windows (RXDelay), and an optional list of network parameters (CFList). In the next step we describe what the end device must do with each field.
The MIC is calculated using the AppKey over the Mac Header (MHDR) and all the fields in the Join Accept frame.
The JoinNonce, NetID, DevAddr, DLSettings, RXDelay, CFList, and MIC are then encrypted using the AppKey as the secret. The output is transmitted as the Join Accept frame, to be handled as explained in the next step.
Note
The join server encrypts the Join Accept using the AES decrypt function in Electronic Code Book (ECB) mode. The end device must therefore run the AES encrypt function in ECB mode on Join Accept, and not the AES decrypt function. This means the end device only requires support for AES encrypt and not AES decrypt. Read more about this in Section 6.2.6, ‘Join-Accept frame’ (page 45) of the TS001-1.0.4 LoRaWAN® L2 1.0.4 Specification.
Warning
If the join was not accepted, then no response is returned to the end device.