rfc9011v3.txt | rfc9011.txt | |||
---|---|---|---|---|
skipping to change at line 111 ¶ | skipping to change at line 111 ¶ | |||
some slight differences with respect to payload sizes, reactiveness, | some slight differences with respect to payload sizes, reactiveness, | |||
etc. | etc. | |||
SCHC provides a generic framework that enables those devices to | SCHC provides a generic framework that enables those devices to | |||
communicate on IP networks. However, for efficient performance, some | communicate on IP networks. However, for efficient performance, some | |||
parameters and modes of operation need to be set appropriately for | parameters and modes of operation need to be set appropriately for | |||
each of the LPWAN technologies. | each of the LPWAN technologies. | |||
This document describes the parameters and modes of operation when | This document describes the parameters and modes of operation when | |||
SCHC is used over LoRaWAN networks. The LoRaWAN protocol is | SCHC is used over LoRaWAN networks. The LoRaWAN protocol is | |||
specified by the LoRa Alliance in [LORA-SPEC]. | specified by the LoRa Alliance in [LORAWAN-SPEC]. | |||
2. Terminology | 2. Terminology | |||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
"OPTIONAL" in this document are to be interpreted as described in | "OPTIONAL" in this document are to be interpreted as described in | |||
BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all | BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all | |||
capitals, as shown here. | capitals, as shown here. | |||
This section defines the terminology and abbreviations used in this | This section defines the terminology and abbreviations used in this | |||
document. For all other definitions, please look up the SCHC | document. For all other definitions, please look up the SCHC | |||
specification [RFC8724]. | specification [RFC8724]. | |||
| Note: The SCHC acronym is pronounced like "sheek" in English | ||||
| (or "chic" in French). Therefore, this document writes "a SCHC | ||||
| Packet" instead of "an SCHC Packet". | ||||
AppKey: Application Key. An AES-128 root key specific to each | AppKey: Application Key. An AES-128 root key specific to each | |||
device. | device. | |||
AppSKey: Application Session Key. An AES-128 key derived from the | AppSKey: Application Session Key. An AES-128 key derived from the | |||
AppKey for each new session. It is used to encrypt the payload | AppKey for each new session. It is used to encrypt the payload | |||
field of a LoRaWAN applicative frame. | field of a LoRaWAN applicative frame. | |||
DevAddr: A 32-bit non-unique identifier assigned to a device either: | DevAddr: A 32-bit non-unique identifier assigned to a device either: | |||
Statically: by the device manufacturer in "Activation-by- | Statically: by the device manufacturer in "Activation-by- | |||
skipping to change at line 230 ¶ | skipping to change at line 234 ¶ | |||
+~ |RGW| === |NGW | == |SCHC| == |SCHC|...... Internet .... | +~ |RGW| === |NGW | == |SCHC| == |SCHC|...... Internet .... | |||
+---+ +----+ |F/R | |C/D | | +---+ +----+ |F/R | |C/D | | |||
+----+ +----+ | +----+ +----+ | |||
|<- - - - LoRaWAN - - ->| | |<- - - - LoRaWAN - - ->| | |||
Figure 1: Architecture | Figure 1: Architecture | |||
Figure 1 represents the architecture for compression/decompression; | Figure 1 represents the architecture for compression/decompression; | |||
it is based on the terminology from [RFC8376]. The device is sending | it is based on the terminology from [RFC8376]. The device is sending | |||
application flows using IPv6 or IPv6/UDP protocols. These flows | application flows using IPv6 or IPv6/UDP protocols. These flows | |||
might be compressed by an SCHC C/D to reduce header size, and | might be compressed by a SCHC C/D to reduce header size, and | |||
fragmented by the SCHC F/R. The resulting information is sent on a | fragmented by the SCHC F/R. The resulting information is sent on a | |||
Layer 2 (L2) frame to an LPWAN Radio Gateway (RGW) that forwards the | Layer 2 (L2) frame to an LPWAN Radio Gateway (RGW) that forwards the | |||
frame to a Network Gateway (NGW). The NGW sends the data to an SCHC | frame to a Network Gateway (NGW). The NGW sends the data to a SCHC | |||
F/R for reassembly, if required, then to an SCHC C/D for | F/R for reassembly, if required, then to a SCHC C/D for | |||
decompression. The SCHC C/D shares the same rules with the device. | decompression. The SCHC C/D shares the same rules with the device. | |||
The SCHC C/D and SCHC F/R can be located on the NGW or in another | The SCHC C/D and SCHC F/R can be located on the NGW or in another | |||
place as long as a communication is established between the NGW and | place as long as a communication is established between the NGW and | |||
the SCHC F/R, then SCHC F/R and SCHC C/D. The SCHC C/D and SCHC F/R | the SCHC F/R, then SCHC F/R and SCHC C/D. The SCHC C/D and SCHC F/R | |||
in the device and the SCHC gateway MUST share the same set of rules. | in the device and the SCHC gateway MUST share the same set of rules. | |||
After decompression, the packet can be sent on the Internet to one or | After decompression, the packet can be sent on the Internet to one or | |||
several LPWAN Application Servers (App). | several LPWAN Application Servers (App). | |||
The SCHC C/D and SCHC F/R process is bidirectional, so the same | The SCHC C/D and SCHC F/R process is bidirectional, so the same | |||
principles can be applied to the other direction. | principles can be applied to the other direction. | |||
skipping to change at line 272 ¶ | skipping to change at line 276 ¶ | |||
+~ |Gateway| == |Network| == |Application|..... Internet .... | +~ |Gateway| == |Network| == |Application|..... Internet .... | |||
+-------+ |server | |server | | +-------+ |server | |server | | |||
+-------+ | F/R - C/D | | +-------+ | F/R - C/D | | |||
+-----------+ | +-----------+ | |||
|<- - - - - LoRaWAN - - - ->| | |<- - - - - LoRaWAN - - - ->| | |||
Figure 2: SCHC Architecture Mapped to LoRaWAN | Figure 2: SCHC Architecture Mapped to LoRaWAN | |||
4. LoRaWAN Architecture | 4. LoRaWAN Architecture | |||
An overview of the LoRaWAN protocol and architecture [LORA-SPEC] is | An overview of the LoRaWAN protocol and architecture [LORAWAN-SPEC] | |||
described in [RFC8376]. The mapping between the LPWAN architecture | is described in [RFC8376]. The mapping between the LPWAN | |||
entities as described in [RFC8724] and the ones in [LORA-SPEC] is as | architecture entities as described in [RFC8724] and the ones in | |||
follows: | [LORAWAN-SPEC] is as follows: | |||
* Devices are LoRaWAN End Devices (e.g., sensors, actuators, etc.). | * Devices are LoRaWAN End Devices (e.g., sensors, actuators, etc.). | |||
There can be a very high density of devices per radio gateway | There can be a very high density of devices per radio gateway | |||
(LoRaWAN gateway). This entity maps to the LoRaWAN end device. | (LoRaWAN gateway). This entity maps to the LoRaWAN end device. | |||
* The RGW is the endpoint of the constrained link. This entity maps | * The RGW is the endpoint of the constrained link. This entity maps | |||
to the LoRaWAN Gateway. | to the LoRaWAN Gateway. | |||
* The NGW is the interconnection node between the Radio Gateway and | * The NGW is the interconnection node between the Radio Gateway and | |||
the SCHC gateway (LoRaWAN Application Server). This entity maps | the SCHC gateway (LoRaWAN Application Server). This entity maps | |||
skipping to change at line 361 ¶ | skipping to change at line 365 ¶ | |||
Class C: Class C devices implement all the functionalities of Class | Class C: Class C devices implement all the functionalities of Class | |||
A devices but keep their receiver open whenever they are not | A devices but keep their receiver open whenever they are not | |||
transmitting. Class C devices can receive downlinks at any time | transmitting. Class C devices can receive downlinks at any time | |||
at the expense of a higher power consumption. Battery-powered | at the expense of a higher power consumption. Battery-powered | |||
devices can only operate in Class C for a limited amount of time | devices can only operate in Class C for a limited amount of time | |||
(for example, for a firmware upgrade over-the-air). Most of the | (for example, for a firmware upgrade over-the-air). Most of the | |||
Class C devices are grid powered (for example, Smart Plugs). | Class C devices are grid powered (for example, Smart Plugs). | |||
4.2. Device Addressing | 4.2. Device Addressing | |||
LoRaWAN end devices use a 32-bit network address (devAddr) to | LoRaWAN end devices use a 32-bit network address (DevAddr) to | |||
communicate with the Network Gateway over the air; this address might | communicate with the Network Gateway over the air; this address might | |||
not be unique in a LoRaWAN network. Devices using the same devAddr | not be unique in a LoRaWAN network. Devices using the same DevAddr | |||
are distinguished by the Network Gateway based on the cryptographic | are distinguished by the Network Gateway based on the cryptographic | |||
signature appended to every LoRaWAN frame. | signature appended to every LoRaWAN frame. | |||
To communicate with the SCHC gateway, the Network Gateway MUST | To communicate with the SCHC gateway, the Network Gateway MUST | |||
identify the devices by a unique 64-bit device identifier called the | identify the devices by a unique 64-bit device identifier called the | |||
"DevEUI". | "DevEUI". | |||
The DevEUI is assigned to the device during the manufacturing process | The DevEUI is assigned to the device during the manufacturing process | |||
by the device's manufacturer. It is built like an Ethernet MAC | by the device's manufacturer. It is built like an Ethernet MAC | |||
address by concatenating the manufacturer's IEEE OUI field with a | address by concatenating the manufacturer's IEEE OUI field with a | |||
vendor unique number. For example, a 24-bit OUI is concatenated with | vendor unique number. For example, a 24-bit OUI is concatenated with | |||
a 40-bit serial number. The Network Gateway translates the devAddr | a 40-bit serial number. The Network Gateway translates the DevAddr | |||
into a DevEUI in the uplink direction and reciprocally on the | into a DevEUI in the uplink direction and reciprocally on the | |||
downlink direction. | downlink direction. | |||
+--------+ +---------+ +---------+ +----------+ | +--------+ +---------+ +---------+ +----------+ | |||
| Device | <=====> | Network | <====> | SCHC | <======> | Internet | | | Device | <=====> | Network | <====> | SCHC | <======> | Internet | | |||
| | devAddr | Gateway | DevEUI | Gateway | IPv6/UDP | | | | | DevAddr | Gateway | DevEUI | Gateway | IPv6/UDP | | | |||
+--------+ +---------+ +---------+ +----------+ | +--------+ +---------+ +---------+ +----------+ | |||
Figure 4: LoRaWAN Addresses | Figure 4: LoRaWAN Addresses | |||
4.3. General Frame Types | 4.3. General Frame Types | |||
LoRaWAN implements the possibility to send confirmed or unconfirmed | LoRaWAN implements the possibility to send confirmed or unconfirmed | |||
frames: | frames: | |||
Confirmed frame: The sender asks the receiver to acknowledge the | Confirmed frame: The sender asks the receiver to acknowledge the | |||
frame. | frame. | |||
Unconfirmed frame: The sender does not ask the receiver to | Unconfirmed frame: The sender does not ask the receiver to | |||
acknowledge the frame. | acknowledge the frame. | |||
As SCHC defines its own acknowledgment mechanisms, SCHC does not | As SCHC defines its own acknowledgment mechanisms, SCHC does not | |||
require the use of LoRaWAN Confirmed frames (FType = 0b100 as per | require the use of LoRaWAN Confirmed frames (FType = 0b100 as per | |||
[LORA-SPEC]). | [LORAWAN-SPEC]). | |||
4.4. LoRaWAN MAC Frames | 4.4. LoRaWAN MAC Frames | |||
In addition to regular data frames, LoRaWAN implements JoinRequest | In addition to regular data frames, LoRaWAN implements JoinRequest | |||
and JoinAccept frame types, which are used by a device to join a | and JoinAccept frame types, which are used by a device to join a | |||
network: | network: | |||
JoinRequest: This frame is used by a device to join a network. It | JoinRequest: This frame is used by a device to join a network. It | |||
contains the device's unique identifier DevEUI and a random nonce | contains the device's unique identifier DevEUI and a random nonce | |||
that will be used for session key derivation. | that will be used for session key derivation. | |||
skipping to change at line 446 ¶ | skipping to change at line 450 ¶ | |||
several devices. It is useful to address many devices with the same | several devices. It is useful to address many devices with the same | |||
content: either a large binary file (firmware upgrade) or the same | content: either a large binary file (firmware upgrade) or the same | |||
command (e.g., lighting control). As IPv6 is also a multicast | command (e.g., lighting control). As IPv6 is also a multicast | |||
technology, this feature can be used to address a group of devices. | technology, this feature can be used to address a group of devices. | |||
| Note 1: IPv6 multicast addresses must be defined as per | | Note 1: IPv6 multicast addresses must be defined as per | |||
| [RFC4291]. The LoRaWAN multicast group definition in a Network | | [RFC4291]. The LoRaWAN multicast group definition in a Network | |||
| Gateway and the relation between those groups and IPv6 groupID | | Gateway and the relation between those groups and IPv6 groupID | |||
| are out of scope of this document. | | are out of scope of this document. | |||
| Note 2: The LoRa Alliance defined [LORA-REMOTE-MULTICAST-SET] | | Note 2: The LoRa Alliance defined | |||
| as the RECOMMENDED way to set up multicast groups on devices | | [LORAWAN-REMOTE-MULTICAST-SET] as the RECOMMENDED way to set up | |||
| and create a synchronized reception window. | | multicast groups on devices and create a synchronized reception | |||
| window. | ||||
5. SCHC over LoRaWAN | 5. SCHC over LoRaWAN | |||
5.1. LoRaWAN FPort and RuleID | 5.1. LoRaWAN FPort and RuleID | |||
The FPort field is part of the SCHC Message, as shown in Figure 5. | The FPort field is part of the SCHC Message, as shown in Figure 5. | |||
The SCHC C/D and the SCHC F/R SHALL concatenate the FPort field with | The SCHC C/D and the SCHC F/R SHALL concatenate the FPort field with | |||
the LoRaWAN payload to recompose the SCHC Message. | the LoRaWAN payload to recompose the SCHC Message. | |||
| FPort | LoRaWAN payload | | | FPort | LoRaWAN payload | | |||
skipping to change at line 477 ¶ | skipping to change at line 482 ¶ | |||
A fragmented datagram with application payload transferred from | A fragmented datagram with application payload transferred from | |||
device to Network Gateway is called an "uplink-fragmented datagram". | device to Network Gateway is called an "uplink-fragmented datagram". | |||
It uses an FPort for data uplink and its associated SCHC control | It uses an FPort for data uplink and its associated SCHC control | |||
downlinks, named "FPortUp" in this document. The other way, a | downlinks, named "FPortUp" in this document. The other way, a | |||
fragmented datagram with application payload transferred from Network | fragmented datagram with application payload transferred from Network | |||
Gateway to device is called a "downlink-fragmented datagram". It | Gateway to device is called a "downlink-fragmented datagram". It | |||
uses another FPort for data downlink and its associated SCHC control | uses another FPort for data downlink and its associated SCHC control | |||
uplinks, named "FPortDown" in this document. | uplinks, named "FPortDown" in this document. | |||
All RuleIDs can use arbitrary values inside the FPort range allowed | All RuleIDs can use arbitrary values inside the FPort range allowed | |||
by the LoRaWAN specification [LORA-SPEC] and MUST be shared by the | by the LoRaWAN specification [LORAWAN-SPEC] and MUST be shared by the | |||
device and SCHC gateway prior to the communication with the selected | device and SCHC gateway prior to the communication with the selected | |||
rule. The uplink and downlink fragmentation FPorts MUST be | rule. The uplink and downlink fragmentation FPorts MUST be | |||
different. | different. | |||
5.2. RuleID Management | 5.2. RuleID Management | |||
The RuleID MUST be 8 bits and encoded in the LoRaWAN FPort as | The RuleID MUST be 8 bits and encoded in the LoRaWAN FPort as | |||
described in Section 5.1. LoRaWAN supports up to 223 application | described in Section 5.1. LoRaWAN supports up to 223 application | |||
FPorts in the range [1..223] as defined in Section 4.3.2 of | FPorts in the range [1..223] as defined in Section 4.3.2 of | |||
[LORA-SPEC]; it implies that the RuleID MSB SHOULD be inside this | [LORAWAN-SPEC]; it implies that the RuleID MSB SHOULD be inside this | |||
range. An application can send non-SCHC traffic by using FPort | range. An application can send non-SCHC traffic by using FPort | |||
values different from the ones used for SCHC. | values different from the ones used for SCHC. | |||
In order to improve interoperability, RECOMMENDED fragmentation | In order to improve interoperability, RECOMMENDED fragmentation | |||
RuleID values are: | RuleID values are: | |||
* RuleID = 20 (8-bit) for uplink fragmentation, named FPortUp. | * RuleID = 20 (8-bit) for uplink fragmentation, named FPortUp. | |||
* RuleID = 21 (8-bit) for downlink fragmentation, named FPortDown. | * RuleID = 21 (8-bit) for downlink fragmentation, named FPortDown. | |||
skipping to change at line 670 ¶ | skipping to change at line 675 ¶ | |||
Header is 16 bits, including FPort; payload overhead will be 8 | Header is 16 bits, including FPort; payload overhead will be 8 | |||
bits as FPort is already a part of LoRaWAN payload. MTU is: 4 | bits as FPort is already a part of LoRaWAN payload. MTU is: 4 | |||
windows * 63 tiles * 10 bytes per tile = 2520 bytes. | windows * 63 tiles * 10 bytes per tile = 2520 bytes. | |||
In addition to the per-rule context parameters specified in | In addition to the per-rule context parameters specified in | |||
[RFC8724], for uplink rules, an additional context parameter is | [RFC8724], for uplink rules, an additional context parameter is | |||
added: whether or not to ack after each window. For battery powered | added: whether or not to ack after each window. For battery powered | |||
devices, it is RECOMMENDED to use the ACK mechanism at the end of | devices, it is RECOMMENDED to use the ACK mechanism at the end of | |||
each window instead of waiting until the end of all windows: | each window instead of waiting until the end of all windows: | |||
* The SCHC receiver SHOULD send an SCHC ACK after every window even | * The SCHC receiver SHOULD send a SCHC ACK after every window even | |||
if there is no missing tile. | if there is no missing tile. | |||
* The SCHC sender SHOULD wait for the SCHC ACK from the SCHC | * The SCHC sender SHOULD wait for the SCHC ACK from the SCHC | |||
receiver before sending tiles from the next window. If the SCHC | receiver before sending tiles from the next window. If the SCHC | |||
ACK is not received, it SHOULD send an SCHC ACK REQ up to | ACK is not received, it SHOULD send a SCHC ACK REQ up to | |||
MAX_ACK_REQUESTS times, as described previously. | MAX_ACK_REQUESTS times, as described previously. | |||
This will avoid useless uplinks if the device has lost network | This will avoid useless uplinks if the device has lost network | |||
coverage. | coverage. | |||
For non-battery powered devices, the SCHC receiver MAY also choose to | For non-battery powered devices, the SCHC receiver MAY also choose to | |||
send an SCHC ACK only at the end of all windows. This will reduce | send a SCHC ACK only at the end of all windows. This will reduce | |||
downlink load on the LoRaWAN network by reducing the number of | downlink load on the LoRaWAN network by reducing the number of | |||
downlinks. | downlinks. | |||
SCHC implementations MUST be compatible with both behaviors, and this | SCHC implementations MUST be compatible with both behaviors, and this | |||
selection is part of the rule context. | selection is part of the rule context. | |||
5.6.2.1. Regular Fragments | 5.6.2.1. Regular Fragments | |||
Figure 7 is an example of a regular frament for all fragments except | Figure 7 is an example of a regular fragment for all fragments except | |||
the last one. SCHC Header Size is 16 Bits, including the LoRaWAN | the last one. SCHC Header Size is 16 Bits, including the LoRaWAN | |||
FPort. | FPort. | |||
| FPort | LoRaWAN payload | | | FPort | LoRaWAN payload | | |||
+ ------ + ------------------------- + | + ------ + ------------------------- + | |||
| RuleID | W | FCN | Payload | | | RuleID | W | FCN | Payload | | |||
+ ------ + ------ + ------ + ------- + | + ------ + ------ + ------ + ------- + | |||
| 8 bits | 2 bits | 6 bits | | | | 8 bits | 2 bits | 6 bits | | | |||
Figure 7: All Fragments Except the Last One. | Figure 7: All Fragments Except the Last One. | |||
skipping to change at line 826 ¶ | skipping to change at line 831 ¶ | |||
uplink is sent only to open an RX window, any LoRaWAN uplink frame | uplink is sent only to open an RX window, any LoRaWAN uplink frame | |||
from the device MAY reset this counter. | from the device MAY reset this counter. | |||
| Note: The FPending bit included in the LoRaWAN protocol SHOULD | | Note: The FPending bit included in the LoRaWAN protocol SHOULD | |||
| NOT be used for the SCHC-over-LoRaWAN protocol. It might be | | NOT be used for the SCHC-over-LoRaWAN protocol. It might be | |||
| set by the Network Gateway for other purposes but not SCHC | | set by the Network Gateway for other purposes but not SCHC | |||
| needs. | | needs. | |||
5.6.3.1. Regular Fragments | 5.6.3.1. Regular Fragments | |||
Figure 14 is an example of a regular frament for all fragments except | Figure 14 is an example of a regular fragment for all fragments | |||
the last one. SCHC Header Size is 10 Bits, including the LoRaWAN | except the last one. SCHC Header Size is 10 Bits, including the | |||
FPort. | LoRaWAN FPort. | |||
| FPort | LoRaWAN payload | | | FPort | LoRaWAN payload | | |||
+ ------ + ------------------------------------ + | + ------ + ------------------------------------ + | |||
| RuleID | W | FCN = b'0 | Payload | | | RuleID | W | FCN = b'0 | Payload | | |||
+ ------ + ----- + --------- + ---------------- + | + ------ + ----- + --------- + ---------------- + | |||
| 8 bits | 1 bit | 1 bit | X bytes + 6 bits | | | 8 bits | 1 bit | 1 bit | X bytes + 6 bits | | |||
Figure 14: All Fragments but the Last One. | Figure 14: All Fragments but the Last One. | |||
5.6.3.2. Last Fragment (All-1) | 5.6.3.2. Last Fragment (All-1) | |||
skipping to change at line 929 ¶ | skipping to change at line 934 ¶ | |||
application specific. It is RECOMMENDED for a device to send an | application specific. It is RECOMMENDED for a device to send an | |||
empty frame (see Section 4.6), but it is application specific and | empty frame (see Section 4.6), but it is application specific and | |||
will be used by the NGW to transmit a potential SCHC ACK REQ. | will be used by the NGW to transmit a potential SCHC ACK REQ. | |||
SCHC_ACK_REQ_DN_OPPORTUNITY is application specific and its | SCHC_ACK_REQ_DN_OPPORTUNITY is application specific and its | |||
recommended value is 2. It MUST be greater than 1. This allows the | recommended value is 2. It MUST be greater than 1. This allows the | |||
opening of a downlink opportunity to any downlink with higher | opening of a downlink opportunity to any downlink with higher | |||
priority than the SCHC ACK REQ message. | priority than the SCHC ACK REQ message. | |||
| Note: The device MUST keep this SCHC ACK message in memory | | Note: The device MUST keep this SCHC ACK message in memory | |||
| until it receives a downlink SCHC Fragmentation Message (with | | until it receives a downlink SCHC Fragmentation Message (with | |||
| FPort == FPortDown) that is not an SCHC ACK REQ; this indicates | | FPort == FPortDown) that is not a SCHC ACK REQ; this indicates | |||
| that the SCHC gateway has received the SCHC ACK message. | | that the SCHC gateway has received the SCHC ACK message. | |||
5.6.3.6. Class B or Class C Devices | 5.6.3.6. Class B or Class C Devices | |||
Class B devices can receive in scheduled RX slots or in RX slots | Class B devices can receive in scheduled RX slots or in RX slots | |||
following the transmission of an uplink. Class C devices are almost | following the transmission of an uplink. Class C devices are almost | |||
in constant reception. | in constant reception. | |||
RECOMMENDED retransmission timer values are: | RECOMMENDED retransmission timer values are: | |||
skipping to change at line 953 ¶ | skipping to change at line 958 ¶ | |||
The RECOMMENDED inactivity timer value is 12 hours for both Class B | The RECOMMENDED inactivity timer value is 12 hours for both Class B | |||
and Class C devices. | and Class C devices. | |||
5.7. SCHC Fragment Format | 5.7. SCHC Fragment Format | |||
5.7.1. All-0 SCHC Fragment | 5.7.1. All-0 SCHC Fragment | |||
*Uplink Fragmentation (Ack-on-Error)*: | *Uplink Fragmentation (Ack-on-Error)*: | |||
All-0 is distinguishable from an SCHC ACK REQ, as [RFC8724] states | All-0 is distinguishable from a SCHC ACK REQ, as [RFC8724] states | |||
"This condition is also met if the SCHC Fragment Header is a multiple | "This condition is also met if the SCHC Fragment Header is a multiple | |||
of L2 Words", the following condition being met: SCHC header is 2 | of L2 Words", the following condition being met: SCHC header is 2 | |||
bytes. | bytes. | |||
*Downlink fragmentation (ACK-Always)*: | *Downlink fragmentation (ACK-Always)*: | |||
As per [RFC8724], SCHC All-1 MUST contain the last tile, and | As per [RFC8724], SCHC All-1 MUST contain the last tile, and | |||
implementations must ensure that SCHC All-0 message Payload will be | implementations MUST ensure that SCHC All-0 message Payload will be | |||
at least the size of an L2 Word. | at least the size of an L2 Word. | |||
5.7.2. All-1 SCHC Fragment | 5.7.2. All-1 SCHC Fragment | |||
All-1 is distinguishable from an SCHC Sender-Abort, as [RFC8724] | All-1 is distinguishable from a SCHC Sender-Abort, as [RFC8724] | |||
states "This condition is met if the RCS is present and is at least | states "This condition is met if the RCS is present and is at least | |||
the size of an L2 Word", the following condition being met: RCS is 4 | the size of an L2 Word", the following condition being met: RCS is 4 | |||
bytes. | bytes. | |||
5.7.3. Delay after Each LoRaWAN Frame to Respect Local Regulation | 5.7.3. Delay after Each LoRaWAN Frame to Respect Local Regulation | |||
This profile does not define a delay to be added after each LoRaWAN | This profile does not define a delay to be added after each LoRaWAN | |||
frame; local regulation compliance is expected to be enforced by the | frame; local regulation compliance is expected to be enforced by the | |||
LoRaWAN stack. | LoRaWAN stack. | |||
skipping to change at line 997 ¶ | skipping to change at line 1002 ¶ | |||
network). | network). | |||
7. IANA Considerations | 7. IANA Considerations | |||
This document has no IANA actions. | This document has no IANA actions. | |||
8. References | 8. References | |||
8.1. Normative References | 8.1. Normative References | |||
[LORA-SPEC] | [LORAWAN-SPEC] | |||
LoRa Alliance, "LoRaWAN 1.0.4 Specification Package", | LoRa Alliance, "LoRaWAN 1.0.4 Specification Package", | |||
<https://lora-alliance.org/resource_hub/lorawan-104- | <https://lora-alliance.org/resource_hub/lorawan-104- | |||
specification-package/>. | specification-package/>. | |||
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
<https://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
[RFC4291] Hinden, R. and S. Deering, "IP Version 6 Addressing | [RFC4291] Hinden, R. and S. Deering, "IP Version 6 Addressing | |||
skipping to change at line 1027 ¶ | skipping to change at line 1032 ¶ | |||
May 2017, <https://www.rfc-editor.org/info/rfc8174>. | May 2017, <https://www.rfc-editor.org/info/rfc8174>. | |||
[RFC8724] Minaburo, A., Toutain, L., Gomez, C., Barthel, D., and JC. | [RFC8724] Minaburo, A., Toutain, L., Gomez, C., Barthel, D., and JC. | |||
Zúñiga, "SCHC: Generic Framework for Static Context Header | Zúñiga, "SCHC: Generic Framework for Static Context Header | |||
Compression and Fragmentation", RFC 8724, | Compression and Fragmentation", RFC 8724, | |||
DOI 10.17487/RFC8724, April 2020, | DOI 10.17487/RFC8724, April 2020, | |||
<https://www.rfc-editor.org/info/rfc8724>. | <https://www.rfc-editor.org/info/rfc8724>. | |||
8.2. Informative References | 8.2. Informative References | |||
[LORA-REMOTE-MULTICAST-SET] | [LORAWAN-REMOTE-MULTICAST-SET] | |||
LoRa Alliance, "LoRaWAN Remote Multicast Setup | LoRa Alliance, "LoRaWAN Remote Multicast Setup | |||
Specification v1.0.0", <https://lora- | Specification v1.0.0", <https://lora- | |||
alliance.org/resource_hub/lorawan-remote-multicast-setup- | alliance.org/resource_hub/lorawan-remote-multicast-setup- | |||
specification-v1-0-0/>. | specification-v1-0-0/>. | |||
[RFC8064] Gont, F., Cooper, A., Thaler, D., and W. Liu, | [RFC8064] Gont, F., Cooper, A., Thaler, D., and W. Liu, | |||
"Recommendation on Stable IPv6 Interface Identifiers", | "Recommendation on Stable IPv6 Interface Identifiers", | |||
RFC 8064, DOI 10.17487/RFC8064, February 2017, | RFC 8064, DOI 10.17487/RFC8064, February 2017, | |||
<https://www.rfc-editor.org/info/rfc8064>. | <https://www.rfc-editor.org/info/rfc8064>. | |||
skipping to change at line 1202 ¶ | skipping to change at line 1207 ¶ | |||
Figure 29: Downlink Example: LoRaWAN Packet 1 - SCHC Fragment 1 | Figure 29: Downlink Example: LoRaWAN Packet 1 - SCHC Fragment 1 | |||
The tile content is described in Figure 30 | The tile content is described in Figure 30 | |||
| RuleID | Compression residue | Payload | | | RuleID | Compression residue | Payload | | |||
+ ------ + ------------------- + ------------------ + | + ------ + ------------------- + ------------------ + | |||
| 1 | 21 bits | 48 bytes and 1 bit | | | 1 | 21 bits | 48 bytes and 1 bit | | |||
Figure 30: Downlink Example: First Tile Content | Figure 30: Downlink Example: First Tile Content | |||
The receiver answers with an SCHC ACK: | The receiver answers with a SCHC ACK: | |||
| LoRaWAN Header | LoRaWAN payload | | | LoRaWAN Header | LoRaWAN payload | | |||
+ ---- + --------- + -------------------------------- + | + ---- + --------- + -------------------------------- + | |||
| | RuleID=21 | W = 0 | C = 1 | Padding=b'000000 | | | | RuleID=21 | W = 0 | C = 1 | Padding=b'000000 | | |||
+ ---- + --------- + ----- + ----- + ---------------- + | + ---- + --------- + ----- + ----- + ---------------- + | |||
| XXXX | 1 byte | 1 bit | 1 bit | 6 bits | | | XXXX | 1 byte | 1 bit | 1 bit | 6 bits | | |||
Figure 31: Downlink Example: LoRaWAN Packet 2 - SCHC ACK | Figure 31: Downlink Example: LoRaWAN Packet 2 - SCHC ACK | |||
The second downlink is sent, two FOpts: | The second downlink is sent, two FOpts: | |||
| LoRaWAN Header | LoRaWAN payload (49 bytes) | | | LoRaWAN Header | LoRaWAN payload (49 bytes) | | |||
+ --------------------------- + ------------------------------------- + | + --------------------------- + ------------------------------------- + | |||
| | FOpts | RuleID=21 | W = 1 | FCN = 0 | 1 tile | | | | FOpts | RuleID=21 | W = 1 | FCN = 0 | 1 tile | | |||
+ ---- + ------- + ---------- + ----- + ------- + ------------------- + | + ---- + ------- + ---------- + ----- + ------- + ------------------- + | |||
| XXXX | 2 bytes | 1 byte | 1 bit | 1 bit | 48 bytes and 6 bits | | | XXXX | 2 bytes | 1 byte | 1 bit | 1 bit | 48 bytes and 6 bits | | |||
Figure 32: Downlink Example: LoRaWAN Packet 3 - SCHC Fragment 2 | Figure 32: Downlink Example: LoRaWAN Packet 3 - SCHC Fragment 2 | |||
The receiver answers with an SCHC ACK: | The receiver answers with a SCHC ACK: | |||
| LoRaWAN Header | LoRaWAN payload | | | LoRaWAN Header | LoRaWAN payload | | |||
+ ---- + --------- + -------------------------------- + | + ---- + --------- + -------------------------------- + | |||
| | RuleID=21 | W = 1 | C = 1 | Padding=b'000000 | | | | RuleID=21 | W = 1 | C = 1 | Padding=b'000000 | | |||
+ ---- + --------- + ----- + ----- + ---------------- + | + ---- + --------- + ----- + ----- + ---------------- + | |||
| XXXX | 1 byte | 1 bit | 1 bit | 6 bits | | | XXXX | 1 byte | 1 bit | 1 bit | 6 bits | | |||
Figure 33: Downlink Example: LoRaWAN Packet 4 - SCHC ACK | Figure 33: Downlink Example: LoRaWAN Packet 4 - SCHC ACK | |||
The last downlink is sent, no FOpts: | The last downlink is sent, no FOpts: | |||
| LoRaWAN Header | LoRaWAN payload (37 bytes) | | | LoRaWAN Header | LoRaWAN payload (37 bytes) | | |||
+ ---- + ------- + -------------------------------------------------- + | + ---- + ------- + -------------------------------------------------- + | |||
| | RuleID | W | FCN | RCS | 1 tile | Padding | | | | RuleID | W | FCN | RCS | 1 tile | Padding | | |||
| | 21 | 0 | 1 | | | b'00000 | | | | 21 | 0 | 1 | | | b'00000 | | |||
+ ---- + ------- + ----- + ----- + ------- + -------------- + ------- + | + ---- + ------- + ----- + ----- + ------- + -------------- + ------- + | |||
| XXXX | 1 byte | 1 bit | 1 bit | 4 bytes | 31 bytes+1 bit | 5 bits | | | XXXX | 1 byte | 1 bit | 1 bit | 4 bytes | 31 bytes+1 bit | 5 bits | | |||
Figure 34: Downlink Example: LoRaWAN Packet 5 - All-1 SCHC Message | Figure 34: Downlink Example: LoRaWAN Packet 5 - All-1 SCHC Message | |||
The receiver answers to the sender with an SCHC ACK: | The receiver answers to the sender with a SCHC ACK: | |||
| LoRaWAN Header | LoRaWAN payload | | | LoRaWAN Header | LoRaWAN payload | | |||
+ ---- + --------- + -------------------------------- + | + ---- + --------- + -------------------------------- + | |||
| | RuleID=21 | W = 0 | C = 1 | Padding=b'000000 | | | | RuleID=21 | W = 0 | C = 1 | Padding=b'000000 | | |||
+ ---- + --------- + ----- + ----- + ---------------- + | + ---- + --------- + ----- + ----- + ---------------- + | |||
| XXXX | 1 byte | 1 bit | 1 bit | 6 bits | | | XXXX | 1 byte | 1 bit | 1 bit | 6 bits | | |||
Figure 35: Downlink Example: LoRaWAN Packet 6 - SCHC ACK | Figure 35: Downlink Example: LoRaWAN Packet 6 - SCHC ACK | |||
Acknowledgements | Acknowledgements | |||
skipping to change at line 1311 ¶ | skipping to change at line 1316 ¶ | |||
Semtech | Semtech | |||
14 Chemin des Clos | 14 Chemin des Clos | |||
Meylan | Meylan | |||
France | France | |||
Email: ogimenez@semtech.com | Email: ogimenez@semtech.com | |||
Ivaylo Petrov (editor) | Ivaylo Petrov (editor) | |||
Acklio | Acklio | |||
1137A Avenue des Champs Blancs | 1137A Avenue des Champs Blancs | |||
35510 Cesson-Sevigne Cedex | 35510 Cesson-Sévigné Cedex | |||
France | France | |||
Email: ivaylo@ackl.io | Email: ivaylo@ackl.io | |||
End of changes. 28 change blocks. | ||||
35 lines changed or deleted | 40 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |