# 22 Revisions
# 22.1 Revision 1.0
- Approved version of LoRaWAN1.0
# 22.2 Revision 1.0.1
- Clarified the RX window start time definition
- Corrected the maximum payload size for DR2 in the NA section
- Corrected the typo on the downlink data rate range in 7.2.2
- Introduced a requirement for using coding rate 4/5 in 7.2.2 to guarantee a maximum time on air < 400mSec
- Corrected the Join-accept MIC calculation in 6.2.5
- Clarified the NbRep field and renamed it to NbTrans in 5.2
- Removed the possibility to not encrypt the Applicative payload in the MAC layer, removed the paragraph 4.3.3.2. If further security is required by the application, the payload will be encrypted, using any method, at the application layer then re-encrypted at the MAC layer using the specified default LoRaWAN encryption
- Corrected FHDR field size typo
- Corrected the channels impacted by ChMask when chMaskCntl equals 6 or 7 in 7.2.5
- Clarified 6.2.5 sentence describing the RX1 slot data rate offset in the JoinResp message
- Removed the second half of the DRoffset table in 7.2.7 , as DR>4 will never be used for uplinks by definition
- Removed explicit duty cycle limitation implementation in the EU868Mhz ISM band (chapter7.1)
- Made the RXtimingSetupAns and RXParamSetupAns sticky MAC commands to avoid end-device’s hidden state problem. (in 5.4 and 5.7)
- Added a frequency plan for the Chinese 470-510MHz metering band
- Added a frequency plan for the Australian 915-928MHz ISM band
# 22.3 Revision 1.0.2
- Extracted section 7 “Physical layer” that will now be a separated document“LoRaWAN regional physical layers definition”
- corrected the ADR_backoff sequence description (ADR_ACK_LIMT was written instead of ADR_ACK_DELAY) paragraph 4.3.1.1
- Corrected a formatting issue in the title of section 18.2 (previously section 19.2 in the 1.0.1 version)
- Added the DlChannelRec MAC command, this command is used to modify the frequency at which an end-device expects a downlink.
- Added the Tx ParamSetupRec MAC command. This command enables to remotelymodify the maximum TX dwell time and the maximum radio transmit power of a device in certain regions
- Added the ability for the end-device to process several ADRreq commands in a single block in 5.2
- Clarified AppKey definitionIntroduced the ResetInd / ResetConf MAC commands
- Split Data rate and txpower table in 7.1.3 for clarity
- Added DeviceTimeReq/Ans MAC command to class A
- Changed Class B time origin to GPS epoch, added BeaconTimingAns description
- Aligned all beacons of class B to the same time slot. Class B beacon is now common to all networks.
- Separated AppKey and NwkKey to independently derive AppSKeys and NetSKeys.
- Separated NetSKeyUp and NetSKeyDnw for roaming
# 22.4 Revision 1.1
This section provides an overview of the main changes happening between LoRaWAN1.1 and LoRaWAN1.0.2.
# 22.4.1 Clarifications
- Grammatical
- Normative text used consistently
- ADR behavior,
- Introduced the concept of ADR command block processing
- TXPower handling
- Default channel re-enabling
- ADR Backoff behavior
- Default TXPower definition
- FCnt shall never be reused with the same session keys
- MAC Commands are discarded if present in both FOpts and Payload
- Retransmission backoff clarification
# 22.4.2 Functional modifications
- FCnt changes
- All counters are 32bits wide, 16bits not supported any more
- Separation of FCntDown into AFCntDown and NFCntDown
- Remove state synchronization requirement from NS/AS
- Remove requirement to discard frames if FCnt gap is greater than MAX_FCNT_GAP
- Unnecessary with 32bit counters
- End-device Frame counters are reset upon the successful processing of a Join-Accep
- ABP device must never reset frame counters
- Retransmission (transmission without incrementing the FCnt)
- Downlink frames are never retransmitted
- Subsequent receptions of a frame with the same FCnt are ignored
- Uplink retransmissions are controlled by NbTrans (this includes both confirmed and unconfirmed frames)
- A retransmission may not occur until both RX1 and RX2 receive windows have expired
- Class B/C devices cease retransmitting a frame upon the reception of a frame in the RX1 window
- Class A device cease retransmitting a frame upon the reception of a frame in either the RX1 or RX2 window
- Key changes
- Added one new root key (separation of cipher function)
- NwkKey and AppKey
- Added new session keys
- NwkSEncKey encrypts payloads where Fport = 0 (MAC command payload)
- AppSKey encrypts payloads where Fport != 0 (Application payloads)
- NwkSIntKey is used to MIC downlink frames
- For downlinks with the ACK bit set, the 2 LSBs of the AFCntUp of the confirmed uplink which generated the ACK are added to the MIC calculation
- SNwkSIntKey and FNwkSIntKey are used to MIC uplink frames
- Each is used to calculate 2 separate 16 bit MICs which are combined to a single 32 bit MIC
- The SNwkSIntKey portion is considered "private" and not shared with a roaming fNs
- The FNwkSIntKey portion is considered "public" and may be shared with a roaming fNs
- The private MIC portion now uses the TxDr, TxCh
- For uplinks with the ACK bit set, the 2 LSBs of the FCntDown of the confirmed downlink which generated the ACK are added to the private MIC calculation
- Keys fully defined later (section 6)
- Associated MIC and Encrypt changes using new keys
- Added one new root key (separation of cipher function)
- MAC Commands introduced
- TxParamSetupReq/Ans
- DlChannelReq/Ans
- ResetInd/Conf
- ADRParamSetupReq/Ans
- DeviceTimeReq/Ans
- ForceRejoinReq
- RejoinParamSetupReq/Ans
- For the linkADRReq command
- Value of 0xF is to be ignored for DR or TXPower
- Value of 0 is to be ignored for NbTrans
- Activation
- JoinEUI replaces AppEUI (clarification)
- EUI's fully defined
- Root keys defined
- NwkKey
- AppKey
- Additional session keys added (split MIC/Encrypt keys)
- SNwkSIntKeyUp and FNwkSIntKeyUp (split-MIC uplink)
- NwkSIntKeyDown (MIC downlink)
- NwkSEncKey (Encrypt up/down)
- JSIntKey (Rejoin-Request and related Join-Accept)
- JSencKey (Join-Accepts in response to Rejoin-Request)
- Session context defined
- OTAA
- JoinAccept MIC modified to prevent replay attack
- Session key derivation defined
- ReJoin-Request messages defined (one new LoRaWAN Message type [MType]
- 0 - Handover roaming assist
- 1 - Backend state recovery assist
- 2 - Rekey session keys
- All Nonces are now counters (not random any more)
- NetId clarified (association with Home Network)
- OptNeg bit defined in Join-Accept to identify 1.0 or 1.1+ operational version of network backend
- 1.0 operation reversion by a 1.1 device defined
- ABP
- Additional Session key requirement described
- Class B
- Network now controls the device’s DR
- Beacon definition moved to Regional document
- Clarifications
- Deprecated the BeaconTimingReq/Ans (replaced by the standard MAC command DeviceTimeReq/Ans)
- Class C
- Clarify requirement for a DL timeout
- Add Class C MAC Commands
- DeviceModeInd/Conf
# 22.4.3 Examples
- Removed aggressive data-rate backoff example during retransmissionLoRaWAN 1.1 Specificati