LoRaWAN102-20161012 1398 1 PDF
LoRaWAN102-20161012 1398 1 PDF
2 LoRaWAN Specification
3 Copyright © 2016 LoRa Alliance, Inc. All rights reserved.
45
©2016 LoRa™ Alliance Page 1 of 70 The authors reserve the right to change
specifications without notice.
LoRaWAN Specification
1
2
3 LoRaWAN™ Specification
4
5 Authors:
6 N. Sornin (Semtech), M. Luis (Semtech), T. Eirich (IBM), T. Kramp (IBM),
7 O.Hersent (Actility)
8
9 Version: V1.0.2
10 Date: 2016 July
11 Status: Final
12
13
14
15
16
17
©2016 LoRa™ Alliance Page 2 of 70 The authors reserve the right to change
specifications without notice.
LoRaWAN Specification
1 Contents
2 1 Introduction .................................................................................................................. 6
3 1.1 LoRaWAN Classes .................................................................................................. 6
4 1.2 Conventions ............................................................................................................. 7
5 2 Introduction on LoRaWAN options ............................................................................... 8
6 2.1 LoRaWAN Classes .................................................................................................. 8
7 2.2 Specification scope .................................................................................................. 9
8 Class A – All end-devices ................................................................................................... 10
9 3 Physical Message Formats ........................................................................................ 11
10 3.1 Uplink Messages .................................................................................................... 11
11 3.2 Downlink Messages ............................................................................................... 11
12 3.3 Receive Windows................................................................................................... 11
13 3.3.1 First receive window channel, data rate, and start ............................................ 12
14 3.3.2 Second receive window channel, data rate, and start ....................................... 12
15 3.3.3 Receive window duration .................................................................................. 12
16 3.3.4 Receiver activity during the receive windows .................................................... 12
17 3.3.5 Network sending a message to an end-device ................................................. 12
18 3.3.6 Important notice on receive windows ................................................................ 13
19 3.3.7 Receiving or transmitting other protocols .......................................................... 13
20 4 MAC Message Formats ............................................................................................. 14
21 4.1 MAC Layer (PHYPayload) ...................................................................................... 14
22 4.2 MAC Header (MHDR field) ..................................................................................... 14
23 4.2.1 Message type (MType bit field)......................................................................... 15
24 4.2.2 Major version of data message (Major bit field) ................................................ 15
25 4.3 MAC Payload of Data Messages (MACPayload) .................................................... 16
26 4.3.1 Frame header (FHDR)...................................................................................... 16
27 4.3.2 Port field (FPort) ............................................................................................... 19
28 4.3.3 MAC Frame Payload Encryption (FRMPayload) ............................................... 20
29 4.4 Message Integrity Code (MIC)................................................................................ 20
30 5 MAC Commands........................................................................................................ 21
31 5.1 Link Check commands (LinkCheckReq, LinkCheckAns) ........................................ 22
32 5.2 Link ADR commands (LinkADRReq, LinkADRAns) ................................................ 22
33 5.3 End-Device Transmit Duty Cycle (DutyCycleReq, DutyCycleAns).......................... 25
34 5.4 Receive Windows Parameters (RXParamSetupReq, RXParamSetupAns) ............ 25
35 5.5 End-Device Status (DevStatusReq, DevStatusAns) ............................................... 26
36 5.6 Creation / Modification of a Channel (NewChannelReq, NewChannelAns,
37 DlChannelReq, DlChannelAns) .............................................................................. 26
38 5.7 Setting delay between TX and RX (RXTimingSetupReq, RXTimingSetupAns) ...... 29
39 5.8 End-device transmission parameters (TxParamSetupReq, TxParamSetupAns) .... 29
40 6 End-Device Activation ................................................................................................ 31
41 6.1 Data Stored in the End-device after Activation ....................................................... 31
42 6.1.1 End-device address (DevAddr) ......................................................................... 31
43 6.1.2 Application identifier (AppEUI) .......................................................................... 31
44 6.1.3 Network session key (NwkSKey) ...................................................................... 31
45 6.1.4 Application session key (AppSKey) .................................................................. 31
46 6.2 Over-the-Air Activation ........................................................................................... 32
47 6.2.1 End-device identifier (DevEUI) ......................................................................... 32
48 6.2.2 Application key (AppKey) ................................................................................. 32
49 6.2.3 Join procedure.................................................................................................. 32
50 6.2.4 Join-request message ...................................................................................... 32
©2016 LoRa™ Alliance Page 3 of 70 The authors reserve the right to change
specifications without notice.
LoRaWAN Specification
7 Tables
8 Table 1: MAC message types ............................................................................................. 15
9 Table 2: Major list ................................................................................................................ 15
10 Table 3: FPort list ................................................................................................................ 20
11 Table 4: MAC commands .................................................................................................... 22
12 Table 5: Channel state table ............................................................................................... 23
13 Table 6: LinkADRAns status bits signification ..................................................................... 24
14 Table 7: RX2SetupAns status bits signification ................................................................... 26
15 Table 8: Battery level decoding ........................................................................................... 26
16 Table 9: NewChannelAns status bits signification ............................................................... 28
17 Table 10: DlChannelAns status bits signification ................................................................. 29
18 Table 11: Del mapping table ............................................................................................... 29
19 Table 11: Beacon timing ..................................................................................................... 44
20
21 Figures
22 Figure 1: LoRaWAN Classes ................................................................................................ 8
23 Figure 2: Uplink PHY structure ............................................................................................ 11
24 Figure 3: Downlink PHY structure ....................................................................................... 11
25 Figure 4: End-device receive slot timing. ............................................................................. 12
26 Figure 5: Radio PHY structure (CRC* is only available on uplink messages) ...................... 14
27 Figure 6: PHY payload structure ......................................................................................... 14
28 Figure 7: MAC payload structure ......................................................................................... 14
29 Figure 8: Frame header structure ........................................................................................ 14
30 Figure 9: LoRa message format elements........................................................................... 14
31 Figure 10: Beacon reception slot and ping slots .................................................................. 40
32 Figure 11 : beacon-less temporary operation ...................................................................... 43
33 Figure 12: Beacon timing .................................................................................................... 44
34 Figure 13: Class C end-device reception slot timing. ........................................................... 57
35 Figure 14: Uplink timing diagram for confirmed data messages .......................................... 60
36 Figure 15: Downlink timing diagram for confirmed data messages ...................................... 61
37 Figure 16: Downlink timing diagram for frame-pending messages, example 1 .................... 61
38 Figure 17: Downlink timing diagram for frame-pending messages, example 2 .................... 62
39 Figure 18: Downlink timing diagram for frame-pending messages, example 3 .................... 62
40
©2016 LoRa™ Alliance Page 5 of 70 The authors reserve the right to change
specifications without notice.
LoRaWAN Specification
1 1 Introduction
2 This document describes the LoRaWAN™ network protocol which is optimized for battery-
3 powered end-devices that may be either mobile or mounted at a fixed location.
4 LoRaWAN networks typically are laid out in a star-of-stars topology in which gateways1
5 relay messages between end-devices2 and a central network server at the backend.
6 Gateways are connected to the network server via standard IP connections while end-
7 devices use single-hop LoRa™ or FSK communication to one or many gateways.3 All
8 communication is generally bi-directional, although uplink communication from an end-
9 device to the network server is expected to be the predominant traffic.
10 Communication between end-devices and gateways is spread out on different frequency
11 channels and data rates. The selection of the data rate is a trade-off between
12 communication range and message duration, communications with different data rates do
13 not interfere with each other. LoRa data rates range from 0.3 kbps to 50 kbps. To maximize
14 both battery life of the end-devices and overall network capacity, the LoRa network
15 infrastructure can manage the data rate and RF output for each end-device individually by
16 means of an adaptive data rate (ADR) scheme.
17 End-devices may transmit on any channel available at any time, using any available data
18 rate, as long as the following rules are respected:
19 The end-device changes channel in a pseudo-random fashion for every
20 transmission. The resulting frequency diversity makes the system more robust to
21 interferences.
22 The end-device respects the maximum transmit duty cycle relative to the sub-band
23 used and local regulations.
24 The end-device respects the maximum transmit duration (or dwell time) relative to
25 the sub-band used and local regulations.
26 While this document specifies the protocol details, various operational parameters that are
27 based on the regional regulations, such as maximum transmit duty-cycle and dwell time per
28 sub-band, are described in a separate document (LoRaWAN Regional Parameters
29 [PARAMS]). This document separation allows addition of new regional parameters without
30 having to modify the base protocol specification.
1
Gateways are also known as concentrators or base stations.
2
End-devices are also known as motes.
3
Support for intermediate elements – repeaters – is not described in the document, however payload
restrictions for encapsulation overhead are included in this specification. A repeater is defined as
using LoRaWAN as its backhaul mechanism.
©2016 LoRa™ Alliance Page 6 of 70 The authors reserve the right to change
specifications without notice.
LoRaWAN Specification
1 1.2 Conventions
2 MAC commands are written LinkCheckReq, bits and bit fields are written FRMPayload,
3 constants are written RECEIVE_DELAY1, variables are written N.
4 In this document,
5 The octet order for all multi-octet fields is little endian and
6 EUI are 8 bytes multi-octet fields and are transmitted as little endian.
7 By default, RFU bits are set to zero
©2016 LoRa™ Alliance Page 7 of 70 The authors reserve the right to change
specifications without notice.
LoRaWAN Specification
Application Application
©2016 LoRa™ Alliance Page 8 of 70 The authors reserve the right to change
specifications without notice.
LoRaWAN Specification
©2016 LoRa™ Alliance Page 9 of 70 The authors reserve the right to change
specifications without notice.
LoRaWAN Specification
©2016 LoRa™ Alliance Page 10 of 70 The authors reserve the right to change
specifications without notice.
LoRaWAN Specification
1
See the LoRa radio transceiver datasheet for a description of LoRa radio packet implicit/explicit
modes.
2
This specification does not describe the transmission of multicast messages from a network server
to many end-devices.
3
No payload integrity check is done at this level to keep messages as short as possible with minimum
impact on any duty-cycle limitations of the ISM bands used.
©2016 LoRa™ Alliance Page 11 of 70 The authors reserve the right to change
specifications without notice.
LoRaWAN Specification
1
2 Figure 4: End-device receive slot timing.
1
RECEIVE_DELAY1 and RECEIVE_DELAY2 are described in Chapter 6.
©2016 LoRa™ Alliance Page 12 of 70 The authors reserve the right to change
specifications without notice.
LoRaWAN Specification
©2016 LoRa™ Alliance Page 13 of 70 The authors reserve the right to change
specifications without notice.
LoRaWAN Specification
8 PHYPayload:
MHDR MACPayload MIC
9 or
MHDR Join-Request MIC
10 or
MHDR Join-Response MIC
11 Figure 6: PHY payload structure
12 MACPayload:
FHDR FPort FRMPayload
13 Figure 7: MAC payload structure
14 FHDR:
DevAddr FCtrl FCnt FOpts
15 Figure 8: Frame header structure
1
Maximum payload size is detailed in the Chapter 6.
©2016 LoRa™ Alliance Page 14 of 70 The authors reserve the right to change
specifications without notice.
LoRaWAN Specification
1 The MAC header specifies the message type (MType) and according to which major version
2 (Major) of the frame format of the LoRaWAN layer specification the frame has been
3 encoded.
1
A detailed timing diagram of the acknowledge mechanism is given in Section 18.
©2016 LoRa™ Alliance Page 15 of 70 The authors reserve the right to change
specifications without notice.
LoRaWAN Specification
10 For downlink frames the FCtrl content of the frame header is:
Bit# 7 6 5 4 [3..0]
FCtrl bits ADR RFU ACK FPending FOptsLen
11 For uplink frames the FCtrl content of the frame header is:
Bit# 7 6 5 4 [3..0]
FCtrl bits ADR ADRACKReq ACK RFU FOptsLen
12 4.3.1.1 Adaptive data rate control in frame header (ADR, ADRACKReq in FCtrl)
13 LoRa network allows the end-devices to individually use any of the possible data rates. This
14 feature is used by the LoRaWAN to adapt and optimize the data rate of static end-devices.
15 This is referred to as Adaptive Data Rate (ADR) and when this is enabled the network will be
16 optimized to use the fastest data rate possible.
17 Adaptive Data Rate control may not be possible when the radio channel attenuation
18 changes fast and constantly. When the network is unable to control the data rate of a device
19 , the device‘s application layer should control it. It is recommended to use a variety of
20 different data rates in this case. The application layer should always try to minimize the
21 aggregated air time used given the network conditions.
22 If the ADR bit is set, the network will control the data rate of the end-device through the
23 appropriate MAC commands. If the ADR bit is not set, the network will not attempt to control
24 the data rate of the end-device regardless of the received signal quality. The ADR bit may
25 be set and unset by the end-device or the Network on demand. However, whenever
26 possible, the ADR scheme should be enabled to increase the battery life of the end-device
27 and maximize the network capacity.
28 Note: Even mobile end-devices are actually immobile most of the time.
29 So depending on its state of mobility, an end-device can request the
30 network to optimize its data rate using ADR.
31 If an end-device whose data rate is optimized by the network to use a data rate higher than
32 its lowest available data rate, it periodically needs to validate that the network still receives
33 the uplink frames. Each time the uplink frame counter is incremented (for each new uplink,
34 repeated transmissions do not increase the counter), the device increments an
35 ADR_ACK_CNT counter. After ADR_ACK_LIMIT uplinks (ADR_ACK_CNT >=
36 ADR_ACK_LIMIT) without any downlink response, it sets the ADR acknowledgment request
37 bit (ADRACKReq). The network is required to respond with a downlink frame within the
38 next ADR_ACK_DELAY frames, any received downlink frame following an uplink frame
©2016 LoRa™ Alliance Page 16 of 70 The authors reserve the right to change
specifications without notice.
LoRaWAN Specification
1 resets the ADR_ACK_CNT counter. The downlink ACK bit does not need to be set as any
2 response during the receive slot of the end-device indicates that the gateway has still
3 received the uplinks from this device. If no reply is received within the next
4 ADR_ACK_DELAY uplinks (i.e., after a total of ADR_ACK_LIMIT + ADR_ACK_DELAY), the
5 end-device may try to regain connectivity by switching to the next lower data rate that
6 provides a longer radio range. The end-device will further lower its data rate step by step
7 every time ADR_ACK_DELAY is reached. The ADRACKReq shall not be set if the device
8 uses its lowest available data rate because in that case no action can be taken to improve
9 the link range.
10 Note: Not requesting an immediate response to an ADR
11 acknowledgement request provides flexibility to the network to
12 optimally schedule its downlinks.
13
14 Note: In uplink transmissions the ADRACKReq bit is set if
15 ADR_ACK_CNT >= ADR_ACK_LIMIT and the current data-rate is
16 greater than the device defined minimum data rate, it is cleared in
17 other conditions.
1
Actual value for MAX_FCNT_GAP, RECEIVE_DELAY1 and RECEIVE_DELAY2 can be found at
Error! Reference source not found. for EU863-870 or Error! Reference source not found. for
US902-928.
©2016 LoRa™ Alliance Page 18 of 70 The authors reserve the right to change
specifications without notice.
LoRaWAN Specification
1 Note: Since the FCnt field carries only the least-significant 16 bits of
2 the 32-bits frame counter, the server must infer the 16 most-significant
3 bits of the frame counter from the observation of the traffic.
©2016 LoRa™ Alliance Page 19 of 70 The authors reserve the right to change
specifications without notice.
LoRaWAN Specification
14 The direction field (Dir) is 0 for uplink frames and 1 for downlink frames.
15 The blocks Ai are encrypted to get a sequence S of blocks Si:
16
17 Si = aes128_encrypt(K, Ai) for i = 1..k
18 S = S1 | S2 | .. | Sk
19 Encryption and decryption of the payload is done by truncating
20
21 (pld | pad16) xor S
22 to the first len(pld) octets.
©2016 LoRa™ Alliance Page 20 of 70 The authors reserve the right to change
specifications without notice.
LoRaWAN Specification
1
2 The direction field (Dir) is 0 for uplink frames and 1 for downlink frames.
©2016 LoRa™ Alliance Page 21 of 70 The authors reserve the right to change
specifications without notice.
LoRaWAN Specification
1 5 MAC Commands
2 For network administration, a set of MAC commands may be exchanged exclusively
3 between the network server and the MAC layer on an end-device. MAC layer commands
4 are never visible to the application or the application server or the application running on the
5 end-device.
6 A single data frame can contain any sequence of MAC commands, either piggybacked in the
7 FOpts field or, when sent as a separate data frame, in the FRMPayload field with the FPort
8 field being set to 0. Piggybacked MAC commands are always sent without encryption and
9 must not exceed 15 octets. MAC commands sent as FRMPayload are always encrypted
10 and must not exceed the maximum FRMPayload length.
11 Note: MAC commands whose content shall not be disclosed to an
12 eavesdropper must be sent in the FRMPayload of a separate data
13 message.
14 A MAC command consists of a command identifier (CID) of 1 octet followed by a possibly
15 empty command-specific sequence of octets.
16
CID Command Transmitted by Short Description
End- Gateway
device
0x02 LinkCheckReq x Used by an end-device to validate its
connectivity to a network.
0x02 LinkCheckAns x Answer to LinkCheckReq command.
Contains the received signal power
estimation indicating to the end-device the
quality of reception (link margin).
0x03 LinkADRReq x Requests the end-device to change data
rate, transmit power, repetition rate or
channel.
0x03 LinkADRAns x Acknowledges the LinkRateReq.
0x04 DutyCycleReq x Sets the maximum aggregated transmit
duty-cycle of a device
0x04 DutyCycleAns x Acknowledges a DutyCycleReq command
0x05 RXParamSetupReq x Sets the reception slots parameters
0x05 RXParamSetupAns x Acknowledges a RXSetupReq command
0x06 DevStatusReq x Requests the status of the end-device
0x06 DevStatusAns x Returns the status of the end-device, namely
its battery level and its demodulation margin
0x07 NewChannelReq x Creates or modifies the definition of a radio
channel
0x07 NewChannelAns x Acknowledges a NewChannelReq command
0x08 RXTimingSetupReq x Sets the timing of the of the reception slots
0x08 RXTimingSetupAns x Acknowledges RXTimingSetupReq
command
0x09 TxParamSetupReq x Used by the network server to set the
maximum allowed dwell time and Max EIRP
of end-device, based on local regulations
0x09 TxParamSetupAns x Acknowledges TxParamSetupReq command
0x0A DlChannelReq x Modifies the definition of a downlink RX1
radio channel by shifting the downlink
frequency from the uplink frequencies (i.e.
creating an asymmetric channel)
0x0A DlChannelAns x Acknowledges DlChannelReq command
©2016 LoRa™ Alliance Page 22 of 70 The authors reserve the right to change
specifications without notice.
LoRaWAN Specification
2 Note: The length of a MAC command is not explicitly given and must
3 be implicitly known by the MAC implementation. Therefore unknown
4 MAC commands cannot be skipped and the first unknown MAC
5 command terminates the processing of the MAC command sequence.
6 It is therefore advisable to order MAC commands according to the
7 version of the LoRaWAN specification which has introduced a MAC
8 command for the first time. This way all MAC commands up to the
9 version of the LoRaWAN specification implemented can be processed
10 even in the presence of MAC commands specified only in a version of
11 the LoRaWAN specification newer than that implemented.
12
13 Note: Any values adjusted by the network server (e.g., RX2, new or
14 adjusted channels definitions) remain only valid until the next join of
15 the end-device. Therefore after each successful join procedure the
16 end-device uses the default parameters again and it is up to the
17 network server to re-adjust the values again as needed.
©2016 LoRa™ Alliance Page 23 of 70 The authors reserve the right to change
specifications without notice.
LoRaWAN Specification
13 A bit in the ChMask field set to 1 means that the corresponding channel can be used for
14 uplink transmissions if this channel allows the data rate currently used by the end-device. A
15 bit set to 0 means the corresponding channels should be avoided.
16
Bits 7 [6:4] [3:0]
1 reflecting the acceptance or rejection of this atomic channel mask setting. The device will
2 only process the DataRate, TXPower and NbTrans from the last message in the contiguous
3 block, as these settings govern the end-device global state for these values. The end-
4 device will provide consistent ACK status in each LinkAdrAns message reflecting the
5 acceptance or rejection of these final settings.
6
7 The channel frequencies are region-specific and they are defined in Chapter 6. An end-
8 device answers to a LinkADRReq with a LinkADRAns command.
9
Size (bytes) 1
LinkADRAns Payload Status
10
11
Bits [7:3] 2 1 0
Status bits RFU Power ACK Data rate ACK Channel mask
ACK
12
13 The LinkADRAns Status bits have the following meaning:
14
Bit = 0 Bit = 1
Channel mask ACK The channel mask sent The channel mask sent was
enables a yet undefined successfully interpreted. All
channel or the channel mask currently defined channel
required all channels to be states were set according to
disabled. The command was the mask.
discarded and the end-
device state was not
changed.
Data rate ACK The data rate requested is The data rate was
unknown to the end-device successfully set.
or is not possible given the
channel mask provided (not
supported by any of the
enabled channels). The
command was discarded and
the end-device state was not
changed.
Power ACK The requested power level is The power level was
not implemented in the successfully set.
device. The command was
discarded and the end-
device state was not
changed.
15 Table 6: LinkADRAns status bits signification
16 If any of those three bits equals 0, the command did not succeed and the node has kept the
17 previous state.
©2016 LoRa™ Alliance Page 25 of 70 The authors reserve the right to change
specifications without notice.
LoRaWAN Specification
11 The valid range for MaxDutyCycle is [0 : 15]. A value of 0 corresponds to ―no duty cycle
12 limitation‖ except the one set by the regional regulation.
13 An end-device answers to a DutyCycleReq with a DutyCycleAns command. The
14 DutyCycleAns MAC reply does not contain any payload.
Size (bytes) 1
RXParamSetupAns Payload Status
1
2 The status (Status) bits have the following meaning.
Bits 7:3 2 1 0
Status RFU RX1DRoffset RX2 Data rate Channel ACK
bits ACK ACK
3
Bit = 0 Bit = 1
Channel ACK The frequency requested is RX2 slot channel was
not usable by the end- successfully set
device.
RX2 Data rate ACK The data rate requested is RX2 slot data rate was
unknown to the end-device. successfully set
RX1DRoffset ACK the uplink/downlink data rate RX1DRoffset was
offset for RX1 slot is not in successfully set
the allowed range
4 Table 7: RX2SetupAns status bits signification
5 If either of the 3 bits is equal to 0, the command did not succeed and the previous
6 parameters are kept.
7
14 The margin (Margin) is the demodulation signal-to-noise ratio in dB rounded to the nearest
15 integer value for the last successfully received DevStatusReq command. It is a signed
16 integer of 6 bits with a minimum value of -32 and a maximum value of 31.
Bits 7:6 5:0
Status RFU Margin
©2016 LoRa™ Alliance Page 27 of 70 The authors reserve the right to change
specifications without notice.
LoRaWAN Specification
1 The NewChannelReq command can be used to either modify the parameters of an existing
2 bidirectional channel or to create a new one. The command sets the center frequency of the
3 new channel and the range of uplink data rates usable on this channel:
Size (bytes) 1 3 1
NewChannelReq Payload ChIndex Freq DrRange
4
5 The channel index (ChIndex) is the index of the channel being created or modified.
6 Depending on the region and frequency band used, the LoRaWAN specification imposes
7 default channels which must be common to all devices and cannot be modified by the
8 NewChannelReq command (cf. Chapter 6). If the number of default channels is N, the
9 default channels go from 0 to N-1, and the acceptable range for ChIndex is N to 15. A
10 device must be able to handle at least 16 different channel definitions. In certain region the
11 device may have to store more than 16 channel definitions.
12
13 The frequency (Freq) field is a 24 bits unsigned integer. The actual channel frequency in Hz
14 is 100 x Freq whereby values representing frequencies below 100 MHz are reserved for
15 future use. This allows setting the frequency of a channel anywhere between 100 MHz to
16 1.67 GHz in 100 Hz steps. A Freq value of 0 disables the channel. The end-device has to
17 check that the frequency is actually allowed by its radio hardware and return an error
18 otherwise.
19
20 The data-rate range (DrRange) field specifies the uplink data-rate range allowed for this
21 channel. The field is split in two 4-bit indexes:
Bits 7:4 3:0
DrRange MaxDR MinDR
22
23 Following the convention defined in Section 5.2 the minimum data rate (MinDR) subfield
24 designate the lowest uplink data rate allowed on this channel. For example 0 designates
25 DR0 / 125 kHz. Similarly, the maximum data rate (MaxDR) designates the highest uplink
26 data rate. For example, DrRange = 0x77 means that only 50 kbps GFSK is allowed on a
27 channel and DrRange = 0x50 means that DR0 / 125 kHz to DR5 / 125 kHz are supported.
28 The newly defined or modified channel is enabled and can immediately be used for
29 communication. The RX1 downlink frequency is set equal to the uplink frequency.
30 The end-device acknowledges the reception of a NewChannelReq by sending back a
31 NewChannelAns command. The payload of this message contains the following
32 information:
Size (bytes) 1
NewChannelAns Payload Status
33
34 The status (Status) bits have the following meaning:
Bits 7:2 1 0
Status RFU Data rate Channel
range ok frequency ok
35
Bit = 0 Bit = 1
Data rate range ok The designated data rate The data rate range is
range exceeds the ones compatible with the
currently defined for this end- possibilities of the end-
device device
©2016 LoRa™ Alliance Page 28 of 70 The authors reserve the right to change
specifications without notice.
LoRaWAN Specification
Channel frequency ok The device cannot use this The device is able to use this
frequency frequency.
1 Table 9: NewChannelAns status bits signification
2 If either of those 2 bits equals 0, the command did not succeed and the new channel has not
3 been created.
4
5 The DlChannelReq command allows the network to associate a different downlink
6 frequency to the RX1 slot. This command is applicable for all the geographic regions
7 supporting the NewChannelReq command (for example EU and China, but not for US or
8 Australia as described in the LoRaWAN Regional Parameters document [PARAMS]).
9 The command sets the center frequency used for the downlink RX1 slot, as follows:
10
Size (bytes) 1 3
DlChannelReq Payload ChIndex Freq
11
12 The channel index (ChIndex) is the index of the channel whose downlink frequency is
13 modified
14 The frequency (Freq) field is a 24 bits unsigned integer. The actual downlink frequency in Hz
15 is 100 x Freq whereby values representing frequencies below 100 MHz are reserved for
16 future use. The end-device has to check that the frequency is actually allowed by its radio
17 hardware and return an error otherwise.
18 The end-device acknowledges the reception of a DlChannelReq by sending back a
19 DlChannelAns command. The DlChannelAns command shall be added in the FOpt field of
20 all uplinks until a downlink packet is received by the end-device. This guarantees that even
21 in presence of uplink packet loss, the network is always aware of the downlink frequencies
22 used by the end-device.
23 The payload of this message contains the following information:
Size (bytes) 1
DlChannelAns Payload Status
24
25 The status (Status) bits have the following meaning:
Bits 7:2 1 0
Status RFU Uplink frequency Channel
exists frequency ok
26
27
Bit = 0 Bit = 1
Channel frequency ok The device cannot use this The device is able to use
frequency this frequency.
©2016 LoRa™ Alliance Page 29 of 70 The authors reserve the right to change
specifications without notice.
LoRaWAN Specification
13
14 An end device answers RXTimingSetupReq with RXTimingSetupAns with no payload.
15 The RXTimingSetupAns command should be added in the FOpt field of all uplinks until a
16 class A downlink is received by the end-device. This guarantees that even in presence of
17 uplink packet loss, the network is always aware of the downlink parameters used by the end-
18 device.
19
©2016 LoRa™ Alliance Page 30 of 70 The authors reserve the right to change
specifications without notice.
LoRaWAN Specification
1
2 Bits [0…3] of TxParamSetupReq command are used to encode the Max EIRP value, as per
3 the following table. The EIRP values in this table are chosen in a way that covers a wide
4 range of max EIRP limits imposed by the different regional regulations.
5
Coded Value 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
6 The maximum EIRP corresponds to an upper bound on the device‘s radio transmit power.
7 The device is not required to transmit at that power , but shall never radiate more that this
8 specified EIRP.
9 Bits 4 and 5 define the maximum Uplink and downlink dwell time respectively, which is
10 encoded as per the following table:
11
12 When this MAC command is implemented (region specific), the end-device acknowledges
13 the TxParamSetupReq command by sending a TxParamSetupAns command. This
14 TxParamSetupAns command doesn‘t contain any payload.
15 When this MAC command is used in a region where it is not required, the device does not
16 process it and shall not transmit an acknowledgement.
17
18
19
©2016 LoRa™ Alliance Page 31 of 70 The authors reserve the right to change
specifications without notice.
LoRaWAN Specification
1 6 End-Device Activation
2 To participate in a LoRaWAN network, each end-device has to be personalized and
3 activated.
4 Activation of an end-device can be achieved in two ways, either via Over-The-Air
5 Activation (OTAA) when an end-device is deployed or reset, or via Activation By
6 Personalization (ABP) in which the two steps of end-device personalization and activation
7 are done as one step.
©2016 LoRa™ Alliance Page 32 of 70 The authors reserve the right to change
specifications without notice.
LoRaWAN Specification
33 The join-request message contains the AppEUI and DevEUI of the end-device followed by a
34 nonce of 2 octets (DevNonce).
1. Since all end-devices end up with unrelated application keys specific for each end-device,
extracting the AppKey from an end-device only compromises this one end-device.
©2016 LoRa™ Alliance Page 33 of 70 The authors reserve the right to change
specifications without notice.
LoRaWAN Specification
1 DevNonce is a random value.1 For each end-device, the network server keeps track of a
2 certain number of DevNonce values used by the end-device in the past, and ignores join
3 requests with any of these DevNonce values from that end-device.
4 Note: This mechanism prevents replay attacks by sending previously
5 recorded join-request messages with the intention of disconnecting the
6 respective end-device from the network. Any time the network server
7 processes a Join-Request and generates a Join-accept frame, it shall
8 maintain both the old security context (keys and counters, if any) and
9 the new one until it receives the first successful uplink frame using the
10 new context, after which the old context can be safely removed. This
11 provides defense against an adversary replaying an earlier Join-
12 request using a DevNonce that falls outside the finite list of values
13 tracked by the network server.
14 The message integrity code (MIC) value (see Chapter 4 for MAC message description) for a
15 join-request message is calculated as follows:2
16
17 cmac = aes128_cmac(AppKey, MHDR | AppEUI | DevEUI | DevNonce)
18 MIC = cmac[0..3]
19 The join-request message is not encrypted.
20 The join-request message can be transmitted using any data rate and following a random
21 frequency hopping sequence across the specified join channels. It is recommended to use a
22 plurality of data rates. The intervals between transmissions of Join-Requests shall respect
23 the condition described in chapter 7.
1
The DevNonce can be extracted by issuing a sequence of RSSI measurements under the
assumption that the quality of randomness fulfills the criteria of true randomness
2
[RFC4493]
©2016 LoRa™ Alliance Page 34 of 70 The authors reserve the right to change
specifications without notice.
LoRaWAN Specification
1 The AppNonce is a random value or some form of unique ID provided by the network server
2 and used by the end-device to derive the two session keys NwkSKey and AppSKey as
3 follows:1
4 NwkSKey = aes128_encrypt(AppKey, 0x01 | AppNonce | NetID | DevNonce | pad16)
5 AppSKey = aes128_encrypt(AppKey, 0x02 | AppNonce | NetID | DevNonce | pad16)
6 The MIC value for a join-accept message is calculated as follows:2
7 cmac = aes128_cmac(AppKey,
8 MHDR | AppNonce | NetID | DevAddr | DLSettings | RxDelay | CFList)
9 MIC = cmac[0..3]
10 The join-accept message itself is encrypted with the AppKey as follows:
11 aes128_decrypt(AppKey, AppNonce | NetID | DevAddr | DLSettings | RxDelay | CFList |
12 MIC)
13 Note: The network server uses an AES decrypt operation in ECB
14 mode to encrypt the join-accept message so that the end-device can
15 use an AES encrypt operation to decrypt the message. This way an
16 end-device only has to implement AES encrypt but not AES decrypt.
17
18 Note: Establishing these two session keys allows for a federated
19 network server infrastructure in which network operators are not able
20 to eavesdrop on application data. In such a setting, the application
21 provider must support the network operator in the process of an end-
22 device actually joining the network and establishing the NwkSKey for
23 the end-device. At the same time the application provider commits to
24 the network operator that it will take the charges for any traffic incurred
25 by the end-device and retains full control over the AppSKey used for
26 protecting its application data.
27 The format of the NetID is as follows: The seven LSB of the NetID are called NwkID and
28 match the seven MSB of the short address of an end-device as described before.
29 Neighboring or overlapping networks must have different NwkIDs. The remaining 17 MSB
30 can be freely chosen by the network operator.
31 The DLsettings field contains the downlink configuration:
32
Bits 7 6:4 3:0
DLsettings RFU RX1DRoffset RX2 Data rate
33
34 The RX1DRoffset field sets the offset between the uplink data rate and the downlink data
35 rate used to communicate with the end-device on the first reception slot (RX1). By default
36 this offset is 0.. The offset is used to take into account maximum power density constraints
37 for base stations in some regions and to balance the uplink and downlink radio link margins.
38 The actual relationship between the uplink and downlink data rate is region specific and
39 detailed in the LoRaWAN Regional Parameters document [PARAMS].
40 The delay RxDelay follows the same convention as the Delay field in the
41 RXTimingSetupReq command.
1
The pad16 function appends zero octets so that the length of the data is a multiple of 16.
2
[RFC4493]
©2016 LoRa™ Alliance Page 35 of 70 The authors reserve the right to change
specifications without notice.
LoRaWAN Specification
©2016 LoRa™ Alliance Page 36 of 70 The authors reserve the right to change
specifications without notice.
LoRaWAN Specification
1 7 Retransmissions back-off
2
3 Uplink frames that:
4 Require an acknowledgement or an anwser by the network or an application
5 server, and are retransmitted by the device if the acknowledgement or answer is not
6 received.
7 and
8 can be triggered by an external event causing synchronization across a large
9 (>100) number of devices (power outage, radio jamming, network outage,
10 earthquake…)
11 can trigger a catastrophic, self-persisting, radio network overload situation.
12
13 Note: An example of such uplink frame is typically the JoinRequest if
14 the implementation of a group of end-devices decides to reset the
15 MAC layer in the case of a network outage.
16 The whole group of end-device will start broadcasting JoinRequest
17 uplinks and will only stops when receiving a JoinResponse from the
18 network.
19
20
21 For those frame retransmissions, the interval between the end of the RX2 slot and the next
22 uplink retransmission shall be random and follow a different sequence for every device (For
23 example using a pseudo-random generator seeded with the device‘s address) .The
24 transmission duty-cycle of such message shall respect the local regulation and the following
25 limits, whichever is more constraining:
26
Aggregated during the first T0<t<T0+1 Transmit time < 36Sec
hour following power-up or
reset
Aggregated during the next T0+1<t<T0+11 Transmit time < 36Sec
10 hours
After the first 11 hours , T0+11+N<t<T0+35+N Transmit time < 8.7Sec per
aggregated over 24h 24h
N>=0
27
©2016 LoRa™ Alliance Page 37 of 70 The authors reserve the right to change
specifications without notice.
LoRaWAN Specification
1 CLASS B – BEACON
2
3 Class B must be considered as experimental in this version of the specification
©2016 LoRa™ Alliance Page 38 of 70 The authors reserve the right to change
specifications without notice.
LoRaWAN Specification
1 8 Introduction to Class B
2 This section describes the LoRaWAN Class B layer which is optimized for battery-powered
3 end-devices that may be either mobile or mounted at a fixed location.
4 End-devices should implement Class B operation when there is a requirement to open
5 receive windows at fixed time intervals for the purpose of enabling server initiated downlink
6 messages.
7 LoRaWAN Class B option adds a synchronized reception window on the end-device.
8 One of the limitations of LoRaWAN Class A is the Aloha method of sending data from the
9 end-device; it does not allow for a known reaction time when the customer application or the
10 server wants to address the end-device. The purpose of Class B is to have an end-device
11 available for reception on a predictable time, in addition to the reception windows that
12 follows the random uplink transmission from the end-device of Class A. Class B is achieved
13 by having the gateway sending a beacon on a regular basis to synchronize the all the end-
14 devices in the network so that the end-device can opening a short extra reception window
15 (called ―ping slot‖) at a predictable time during a periodic time slot.
16 Note: The decision to switch from Class A to Class B comes from the
17 application layer of the end-device. If this class A to Class B switch
18 needs to be controlled from the network side, the customer application
19 must use one of the end-device‘s Class A uplinks to send back a
20 downlink to the application layer, and it needs the application layer on
21 the end-device to recognize this request – this process is not managed
22 at the LoRaWAN level.
©2016 LoRa™ Alliance Page 39 of 70 The authors reserve the right to change
specifications without notice.
LoRaWAN Specification
©2016 LoRa™ Alliance Page 40 of 70 The authors reserve the right to change
specifications without notice.
LoRaWAN Specification
1 The following diagram illustrates the concept of beacon reception slots and ping slots.
Network beacon Network beacon
transmission transmission
ping
gateway
End-device
End-device
End-device
response
RX windows
2
3 Figure 10: Beacon reception slot and ping slots
4 In this example, given the beacon period is 128 s, the end-device also opens a ping
5 reception slot every 32 s. Most of the time this ping slot is not used by the server and
6 therefore the end-device reception window is closed as soon as the radio transceiver has
7 assessed that no preamble is present on the radio channel. If a preamble is detected the
8 radio transceiver will stay on until the downlink frame is demodulated. The MAC layer will
9 then process the frame, check that its address field matches the end-device address and
10 that the Message Integrity Check is valid before forwarding it to the application layer.
©2016 LoRa™ Alliance Page 41 of 70 The authors reserve the right to change
specifications without notice.
LoRaWAN Specification
©2016 LoRa™ Alliance Page 42 of 70 The authors reserve the right to change
specifications without notice.
LoRaWAN Specification
©2016 LoRa™ Alliance Page 43 of 70 The authors reserve the right to change
specifications without notice.
LoRaWAN Specification
End-device
©2016 LoRa™ Alliance Page 44 of 70 The authors reserve the right to change
specifications without notice.
LoRaWAN Specification
2 13.1 Definitions
3 To operate successfully in Class B the end-device must open reception slots at precise
4 instants relative to the infrastructure beacon. This section defines the required timing.
5 The interval between the start of two successive beacons is called the beacon period. The
6 beacon frame transmission is aligned with the beginning of the BEACON_RESERVED
7 interval. Each beacon is preceded by a guard time interval where no ping slot can be placed.
8 The length of the guard interval corresponds to the time on air of the longest allowed frame.
9 This is to insure that a downlink initiated during a ping slot just before the guard time will
10 always have time to complete without colliding with the beacon transmission. The usable
11 time interval for ping slot therefore spans from the end of the beacon reserved time interval
12 to the beginning of the next beacon guard interval.
13
14 Figure 12: Beacon timing
Beacon_period 128 s
Beacon_reserved 2.120 s
Beacon_guard 3.000 s
Beacon-window 122.880 s
15 Table 12: Beacon timing
16 The beacon frame time on air is actually much shorter than the beacon reserved time
17 interval to allow appending network management broadcast frames in the future.
18 The beacon window interval is divided into 212 = 4096 ping slots of 30 ms each numbered
19 from 0 to 4095.
20 An end-device using the slot number N must turn on its receiver exactly Ton seconds after
21 the start of the beacon where:
22 Ton = beacon_reserved + N * 30 ms
23 N is called the slot index.
24 The latest ping slot starts at beacon_reserved + 4095 * 30 ms = 124 970 ms after the
25 beacon start or 3030 ms before the beginning of the next beacon.
©2016 LoRa™ Alliance Page 45 of 70 The authors reserve the right to change
specifications without notice.
LoRaWAN Specification
©2016 LoRa™ Alliance Page 46 of 70 The authors reserve the right to change
specifications without notice.
LoRaWAN Specification
5 14.1 PingSlotInfoReq
6 With the PingSlotInfoReq command an end-device informs the server of its unicast ping
7 slot periodicity and expected data rate. This command must only be used to inform the
8 server of the parameters of a UNICAST ping slot. A multicast slot is entirely defined by the
9 application and should not use this command.
10
Size (bytes) 1
PingSlotInfoReq Payload Periodicity & data rate
11
Bit# 7 [6:4] [3:0]
©2016 LoRa™ Alliance Page 47 of 70 The authors reserve the right to change
specifications without notice.
LoRaWAN Specification
1 The server needs to be aware of the end-device ping slot periodicity or expected data rate
2 else Class B downlinks will not happen successfully. For that purpose the PingSlotInfoReq
3 MAC command must be acknowledged with a PingSlotInfoAns before the device can
4 switch from class A to Class B. To change its ping slot scheduling or data rate a device
5 should first revert to Class A , send the new parameters through a PingSlotInfoReq
6 command and get an acknowledge from the server through a PinSlotInfoAns . It can then
7 switch back to Class B with the new parameters.
8 This command can be concatenated with any other MAC command in the FHDRFOpt field
9 as described in the Class A specification frame format.
10 14.2 BeaconFreqReq
11 This command is sent by the server to the end-device to modify the frequency on which this
12 end-device expects the beacon.
13
Octets 3
PingSlotChannelReqPay Frequency
load
14
15 The Frequency coding is identical to the NewChannelReq MAC command defined in the
16 Class A.
17 Frequency is a 24bits unsigned integer. The actual beacon channel frequency in Hz is 100
18 x frequ. This allows defining the beacon channel anywhere between 100 MHz to 1.67 GHz
19 by 100 Hz step. The end-device has to check that the frequency is actually allowed by its
20 radio hardware and return an error otherwise.
21 A valid non-zero Frequency will force the device to listen to the beacon on a fixed frequency
22 channel even if the default behavior specifies a frequency hopping beacon (i.e US ISM
23 band).
24 A value of 0 instructs the end-device to use the default beacon frequency plan as defined in
25 the ―Beacon physical layer‖ section. Where applicable the device resumes frequency
26 hopping beacon search.
27 14.3 PingSlotChannelReq
28 This command is sent by the server to the end-device to modify the frequency on which this
29 end-device expects the downlink pings.
30
Octets 3 1
PingSlotChannelReq Frequency DrRange
Payload
31
32 The Frequency coding is identical to the NewChannelReq MAC command defined in the
33 Class A.
34 Frequency is a 24bits unsigned integer. The actual ping channel frequency in Hz is 100 x
35 frequ. This allows defining the ping channel anywhere between 100MHz to 1.67GHz by
36 100Hz step. The end-device has to check that the frequency is actually allowed by its radio
37 hardware and return an error otherwise.
38 A value of 0 instructs the end-device to use the default frequency plan.
©2016 LoRa™ Alliance Page 48 of 70 The authors reserve the right to change
specifications without notice.
LoRaWAN Specification
1 DrRange is the data rate range allowed on this channel. This byte is split in two 4-bit
2 indexes.
3
Bits 7:4 3:0
DrRange Max data rate Min data rate
4
5 Following the convention defined in the LoRaWAN Regional Parameters document
6 [PARAMS], the ―Min data rate‖ subfield designates the lowest data rate allowed on this
7 channel. For example 0 designates DR0 / 125 kHz in the EU physical layer. Similarly ―Max
8 data rate‖ designates the highest data rate. For example in the EU spec, DrRange = 0x77
9 means that only 50 kbps GFSK is allowed on a channel and DrRange = 0x50 means that
10 DR0 / 125 kHz to DR5 / 125 kHz are supported.
11 Upon reception of this command the end-device answers with a PingSlotFreqAns
12 message. The MAC payload of this message contains the following information:
13
Size (bytes) 1
pingSlotFreqAns Payload Status
14 The Status bits have the following meaning:
Bits 7:2 1 0
RFU Data rate range Channel
Status
ok frequency ok
15
Bit = 0 Bit = 1
Data rate range ok The designated data rate The data rate range is
range exceeds the ones compatible with the
currently defined for this end possibilities of the end device
device, the previous range is
kept
Channel frequency ok The device cannot use this The device is able to use this
frequency, the previous ping frequency.
frequency is kept
16 14.4 BeaconTimingReq
17 This command is sent by the end-device to request the next beacon timing and channel.
18 This MAC command has no payload. The BeaconTimingReq & BeaconTimingAns
19 mechanism is only meant to accelerate the initial beacon search to lower the end-device
20 energy requirement.
21 The network may answer only a limited number of requests per a given time period. An end-
22 device must not expect that BeaconTimingReq is answered immediately with a
23 BeaconTimingAns. Class A end-devices wanting to switch to Class B should not transmit
24 more than one BeaconTimingReq per hour.
25 End-devices requiring a fast beacon lock must implement an autonomous beacon finding
26 algorithm.
©2016 LoRa™ Alliance Page 49 of 70 The authors reserve the right to change
specifications without notice.
LoRaWAN Specification
1 14.5 BeaconTimingAns
2 This command is sent by the network to answer a BeaconInfoReq request.
Size (bytes) 2 1
BeaconInfoReqPayload Delay Channel
3 The ―Delay‖ field is a 16bits unsigned integer. If the remaining time between the end of the
4 current downlink frame and the start of the next beacon frame is noted RTime then:
5 30 ms x (Delay+1) > RTime >= 30 ms x Delay
6 In networks where the beacon uses alternatively several channels, the ―Channel‖ field is the
7 index of the beaconing channel on which the next beacon will be broadcasted. For networks
8 where the beacon broadcast frequency is fixed then this field content is 0.
9
©2016 LoRa™ Alliance Page 50 of 70 The authors reserve the right to change
specifications without notice.
LoRaWAN Specification
9 The beacon Preamble begins with (a longer than default) 10 unmodulated symbols. This
10 allows end-devices to implement a low power duty-cycled beacon search.
11 The beacon frame length is tightly coupled to the operation of the radio Physical layer.
12 Therefore the actual frame length might change from one region implementation to another.
13 The changing fields are highlighted in Bold in the following sections.
©2016 LoRa™ Alliance Page 51 of 70 The authors reserve the right to change
specifications without notice.
LoRaWAN Specification
25 The CRC-16 of the NetID+Time fields is 0xC87E but only the 8LSBs are used in that case
26
27 The seven LSB of the NetID are called NwkID and match the seven MSB of the short
28 address of an end-device. Neighboring or overlapping networks must have different
29 NwkIDs.
©2016 LoRa™ Alliance Page 52 of 70 The authors reserve the right to change
specifications without notice.
LoRaWAN Specification
1 The gateway specific part provides additional information regarding the gateway sending a
2 beacon and therefore may differ for each gateway. The RFU field when applicable (region
3 specific) should be equal to 0. The optional part is protected by a CRC-16 computed on the
4 GwSpecific+RFU fields. The CRC-16 definition is the same as for the mandatory part.
5 For example: This is a valid US900 beacon:
Field NetID Time CRC InfoDesc lat long RFU CRC
Value Hex CCBBAA CC020000 C87E 0 002001 038100 00 D450
6 Over the air the bytes are sent in the following order:
7 AA BB CC | 00 00 02 CC | 7E C8 | 00 | 01 20 00 | 00 81 03 |00 | 50 D4
8 Listening and synchronizing to the network common part is sufficient to operate a stationary
9 end-device in Class B mode. A mobile end-device should also demodulate the gateway
10 specific part of the beacon to be able to signal to the network server whenever he is moving
11 from one cell to another.
12 Note: As mentioned before, all gateways send their beacon at exactly
13 the same point in time (i.e., time-synchronously) so that for network
14 common part there are no visible on-air collisions for a listening end-
15 device even if the end-device simultaneously receives beacons from
16 several gateways. With respect to the gateway specific part, collision
17 occurs but an end-device within the proximity of more than one
18 gateway will still be able to decode the strongest beacon with high
19 probability.
25 For a single omnidirectional antenna gateway the InfoDesc value is 0 when broadcasting
26 GPS coordinates. For a site featuring 3 sectored antennas for example, the first antenna
27 broadcasts the beacon with InfoDesc equals 0, the second antenna with InfoDesc field
28 equals 1, etc …
©2016 LoRa™ Alliance Page 53 of 70 The authors reserve the right to change
specifications without notice.
LoRaWAN Specification
4 The latitude and longitude fields (Lat and Lng, respectively) encode the geographical
5 location of the gateway as follows:
6 The north-south latitude is encoded using a signed 24 bit word where -223
7 corresponds to 90° south (the South Pole) and 223 corresponds to 90° north (the
8 North Pole). The equator corresponds to 0.
9 The east-west longitude is encoded using a signed 24 bit word where -
10 223corresponds to 180° west and 223 corresponds to 180° east. The Greenwich
11 meridian corresponds to 0.
©2016 LoRa™ Alliance Page 54 of 70 The authors reserve the right to change
specifications without notice.
LoRaWAN Specification
1 Systematic periodic uplink: simplest method that doesn‘t require demodulation of the
2 ―gateway specific‖ field of the beacon. Only applicable to slowly moving or stationery
3 end-devices. There are no requirements on those periodic uplinks.
4 Uplink on cell change: The end-device demodulates the ―gateway specific‖ field of
5 the beacon, detects that the ID of the gateway broadcasting the beacon it
6 demodulates has changed, and sends an uplink. In that case the device should
7 respect a pseudo random delay in the [0:120] seconds range between the beacon
8 demodulation and the uplink transmission. This is required to insure that the uplinks
9 of multiple Class B devices entering or leaving a cell during the same beacon period
10 will not systematically occur at the same time immediately after the beacon
11 broadcast.
12 Failure to report cell change will result in Class B downlink being temporary not operational.
13 The network server may have to wait for the next end-device uplink to transmit downlink
14 traffic.
15
16
©2016 LoRa™ Alliance Page 55 of 70 The authors reserve the right to change
specifications without notice.
LoRaWAN Specification
[ ( )]
8 Whereby Beacon_Time is the 32 bit Time field of the current beacon period
9 Beacon_period is the length of the beacon period (defined as 128sec in the
10 specification)
11 Floor designates rounding to the immediately lower integer value
12 DevAddr is the 32 bits network address of the device
13 Class B downlinks therefore hop across 8 channels in the ISM band and all Class B end-
14 devices are equally spread amongst the 8 downlink channels.
15 If the ―PingSlotChannelReq” command with a valid non-zero argument is used to set the
16 Class B downlink frequency then all subsequent ping slots should be opened on this single
17 frequency independently of the last beacon frequency.
18 If the ―PingSlotChannelReq” command with a zero argument is sent, the end-device
19 should resume the default frequency plan, id Class B ping slots hoping across 8 channels.
20 The underlying idea is to allow network operators to configure end-devices to use a single
21 proprietary dedicated frequency band for the Class B downlinks if available, and to keep as
22 much frequency diversity as possible when the ISM band is used.
23
©2016 LoRa™ Alliance Page 56 of 70 The authors reserve the right to change
specifications without notice.
LoRaWAN Specification
©2016 LoRa™ Alliance Page 57 of 70 The authors reserve the right to change
specifications without notice.
LoRaWAN Specification
23
24
25 Figure 13: Class C end-device reception slot timing.
©2016 LoRa™ Alliance Page 58 of 70 The authors reserve the right to change
specifications without notice.
LoRaWAN Specification
1 The ACK and ADRACKReq bits must be zero. The MType field must carry the value
2 for Unconfirmed Data Down.
3 The FPending bit indicates there is more multicast data to be sent. Given that a
4 Class C device keeps its receiver active most of the time, the FPending bit does not
5 trigger any specific behavior of the end-device.
©2016 LoRa™ Alliance Page 59 of 70 The authors reserve the right to change
specifications without notice.
LoRaWAN Specification
1 SUPPORT INFORMATION
2 This sub-section is only a recommendation.
3
©2016 LoRa™ Alliance Page 60 of 70 The authors reserve the right to change
specifications without notice.
LoRaWAN Specification
ok
End-point Confirmed Data0 ko Confirmed Data0 Confirmed Data1
ok
{Cu} {Cu} {Cu+1}
(diag 1)
8
9 Figure 14: Uplink timing diagram for confirmed data messages
10 The end-device first transmits a confirmed data frame containing the Data0 payload at an
11 arbitrary instant and on an arbitrary channel. The frame counter Cu is simply derived by
12 adding 1 to the previous uplink frame counter. The network receives the frame and
13 generates a downlink frame with the ACK bit set exactly RECEIVE_DELAY1 seconds later,
14 using the first receive window of the end-device. This downlink frame uses the same data
15 rate and the same channel as the Data0 uplink. The downlink frame counter Cd is also
16 derived by adding 1 to the last downlink towards that specific end-device. If there is no
17 downlink payload pending the network shall generate a frame without a payload. In this
18 example the frame carrying the ACK bit is not received.
19 If an end-device does not receive a frame with the ACK bit set in one of the two receive
20 windows immediately following the uplink transmission it may resend the same frame with
21 the same payload and frame counter again at least ACK_TIMEOUT seconds after the
22 second reception window. This resend must be done on another channel and must obey the
23 duty cycle limitation as any other normal transmission. If this time the end-device receives
24 the ACK downlink during its first receive window, as soon as the ACK frame is demodulated,
25 the end-device is free to transmit a new frame on a new channel.
26 The third ACK frame in this example also carries an application payload. A downlink frame
27 can carry any combination of ACK, MAC control commands and payload.
©2016 LoRa™ Alliance Page 61 of 70 The authors reserve the right to change
specifications without notice.
LoRaWAN Specification
Receive slots
ok
End-point Unconfirmed data ACK
{Cu} {Cu+1}
1
2 Figure 15: Downlink timing diagram for confirmed data messages
Receive slots
Confirmed ok Confirmed ok
gateway ok
Data0+F_P Data1
{cd} {cd+1}
26
27 Figure 16: Downlink timing diagram for frame-pending messages, example 1
©2016 LoRa™ Alliance Page 62 of 70 The authors reserve the right to change
specifications without notice.
LoRaWAN Specification
1 In this example the network has two confirmed data frames to transmit to the end-device.
2 The frame exchange is initiated by the end-device via a normal ―unconfirmed‖ uplink
3 message on channel A. The network uses the first receive window to transmit the Data0 with
4 the bit FPending set as a confirmed data message. The device acknowledges the reception
5 of the frame by transmitting back an empty frame with the ACK bit set on a new channel B.
6 RECEIVE_DELAY1 seconds later, the network transmits the second frame Data1 on
7 channel B, again using a confirmed data message but with the FPending bit cleared. The
8 end-device acknowledges on channel C.
ok ok
gateway Data0+F_P Data1+F_P ok
{cd} {cd}
9
10 Figure 17: Downlink timing diagram for frame-pending messages, example 2
11 In this example, the downlink frames are ―unconfirmed‖ frames, the end-device does not
12 need to send back and acknowledge. Receiving the Data0 unconfirmed frame with the
13 FPending bit set the end-device sends an empty data frame. This first uplink is not received
14 by the network. If no downlink is received during the two receive windows, the network has
15 to wait for the next spontaneous uplink of the end-device to retry the transfer. The end-
16 device can speed up the procedure by sending a new empty data frame.
17 Note: An acknowledgement is never sent twice.
18 The FPending bit, the ACK bit, and payload data can all be present in the same downlink.
19 For example, the following frame exchange is perfectly valid.
20
Receiving a frame without the ACK bit set , server
retransmits Data1
Confirmed
End-point ACK void ACK
Data uplink
{cu} {cu+1} {cu+2} {cu+3}
(diag 2)
21
22 Figure 18: Downlink timing diagram for frame-pending messages, example 3
23 The end-device sends a ―confirmed data‖ uplink. The network can answer with a confirmed
24 downlink containing Data + ACK + ―Frame pending‖ then the exchange continues as
25 previously described.
©2016 LoRa™ Alliance Page 63 of 70 The authors reserve the right to change
specifications without notice.
LoRaWAN Specification
1 transmission happens on a new frequency channel, but can also happen at a different data
2 rate (preferable lower) than the previous one. It is strongly recommended to adopt the
3 following re-transmission strategy.
4 The first transmission of the ―confirmed‖ frame happens with a data rate DR.
5
Transmission nb Data Rate
1 (first) DR
2 DR
3 max(DR-1,0)
4 max(DR-1,0)
5 max(DR-2,0)
6 max(DR-2,0)
7 max(DR-3,0)
8 max(DR-3,0)
6 The Data Rate max(a,b) stands for maximum of a and b values.
7 If after a recommended 8 transmissions, the frame has not been acknowledged the MAC
8 layer should return an error code to the application layer.
9 Note: For each re-transmission, the frequency channel is selected
10 randomly as for normal transmissions.
11 Any further transmission uses the last data rate used.
12 For example if an end-device sends a ―confirmed‖ frame first using DR5 and has to
13 retransmit 3 times (twice at DR5 then twice at DR4), the next frame transmitted will use DR4
14 Other example, if an end-device sends a ―confirmed‖ frame first using DR5 and does not
15 receive an acknowledge after 8 transmissions (2 at DR5, 2 at DR4, … , 2 at DR2), and the
16 application of this end-device re-initiates a ―confirmed‖ transmission a little later, the first two
17 transmission will be tentatively at DR2, then switch to DR1, then to DR0.
©2016 LoRa™ Alliance Page 64 of 70 The authors reserve the right to change
specifications without notice.
LoRaWAN Specification
©2016 LoRa™ Alliance Page 65 of 70 The authors reserve the right to change
specifications without notice.
LoRaWAN Specification
©2016 LoRa™ Alliance Page 66 of 70 The authors reserve the right to change
specifications without notice.
LoRaWAN Specification
1 21 Revisions
©2016 LoRa™ Alliance Page 67 of 70 The authors reserve the right to change
specifications without notice.
LoRaWAN Specification
1 22 Glossary
2
3 ADR Adaptive Data Rate
4 AES Advanced Encryption Standard
5 AFA Adaptive Frequency Agility
6 AR Acknowledgement Request
7 CBC Cipher Block Chaining
8 CMAC Cipher-based Message Authentication Code
9 CR Coding Rate
10 CRC Cyclic Redundancy Check
11 DR Data Rate
12 ECB Electronic Code Book
13 ETSI European Telecommunications Standards Institute
14 EIRP Equivalent Isotropically Radiated Power
15 FSK Frequency Shift Keying modulation technique
16 GPRS General Packet Radio Service
17 HAL Hardware Abstraction Layer
18 IP Internet Protocol
19 LBT Listen Before Talk
20 LoRa™ Long Range modulation technique
21 LoRaWAN™ Long Range Network protocol
22 MAC Medium Access Control
23 MIC Message Integrity Code
24 RF Radio Frequency
25 RFU Reserved for Future Usage
26 Rx Receiver
27 RSSI Received Signal Strength Indicator
28 SF Spreading Factor
29 SNR Signal Noise Ratio
30 SPI Serial Peripheral Interface
31 SSL Secure Socket Layer
32 Tx Transmitter
33 USB Universal Serial Bus
34
©2016 LoRa™ Alliance Page 68 of 70 The authors reserve the right to change
specifications without notice.
LoRaWAN Specification
1 23 Bibliography
2 23.1 References
3 [IEEE802154]: IEEE Standard for Local and Metropolitan Area Networks—Part 15.4: Low-
4 Rate Wireless Personal Area Networks (LR-WPANs), IEEE Std 802.15.4TM-2011 (Revision
5 of IEEE Std 802.15.4-2006), September 2011.
6 [RFC4493]: The AES-CMAC Algorithm, June 2006.
7 [PARAMS]: LoRaWAN Regional Parameters, the LoRa Alliance, October 2016 (and future
8 versions).
©2016 LoRa™ Alliance Page 69 of 70 The authors reserve the right to change
specifications without notice.
LoRaWAN Specification
©2016 LoRa™ Alliance Page 70 of 70 The authors reserve the right to change
specifications without notice.