| 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/ | ||||