| < draft-ietf-lpwan-schc-over-lorawan-03.txt | draft-ietf-lpwan-schc-over-lorawan-04.txt > | |||
|---|---|---|---|---|
| lpwan Working Group O. Gimenez, Ed. | lpwan Working Group O. Gimenez, Ed. | |||
| Internet-Draft Semtech | Internet-Draft Semtech | |||
| Intended status: Informational I. Petrov, Ed. | Intended status: Informational I. Petrov, Ed. | |||
| Expires: April 11, 2020 Acklio | Expires: May 7, 2020 Acklio | |||
| J. Catalano | November 04, 2019 | |||
| Kerlink | ||||
| October 09, 2019 | ||||
| Static Context Header Compression (SCHC) over LoRaWAN | Static Context Header Compression (SCHC) over LoRaWAN | |||
| draft-ietf-lpwan-schc-over-lorawan-03 | draft-ietf-lpwan-schc-over-lorawan-04 | |||
| Abstract | Abstract | |||
| The Static Context Header Compression (SCHC) specification describes | The Static Context Header Compression (SCHC) specification describes | |||
| generic header compression and fragmentation techniques for LPWAN | generic header compression and fragmentation techniques for LPWAN | |||
| (Low Power Wide Area Networks) technologies. SCHC is a generic | (Low Power Wide Area Networks) technologies. SCHC is a generic | |||
| mechanism designed for great flexibility so that it can be adapted | mechanism designed for great flexibility so that it can be adapted | |||
| for any of the LPWAN technologies. | for any of the LPWAN technologies. | |||
| This document provides the adaptation of SCHC for use in LoRaWAN | This document provides the adaptation of SCHC for use in LoRaWAN | |||
| skipping to change at page 1, line 41 ¶ | skipping to change at page 1, line 39 ¶ | |||
| Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
| Task Force (IETF). Note that other groups may also distribute | Task Force (IETF). Note that other groups may also distribute | |||
| working documents as Internet-Drafts. The list of current Internet- | working documents as Internet-Drafts. The list of current Internet- | |||
| Drafts is at https://datatracker.ietf.org/drafts/current/. | Drafts is at https://datatracker.ietf.org/drafts/current/. | |||
| Internet-Drafts are draft documents valid for a maximum of six months | Internet-Drafts are draft documents valid for a maximum of six months | |||
| and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
| time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
| material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
| This Internet-Draft will expire on April 11, 2020. | This Internet-Draft will expire on May 7, 2020. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2019 IETF Trust and the persons identified as the | Copyright (c) 2019 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
| (https://trustee.ietf.org/license-info) in effect on the date of | (https://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | publication of this document. Please review these documents | |||
| skipping to change at page 2, line 22 ¶ | skipping to change at page 2, line 20 ¶ | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
| 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 | 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 3. Static Context Header Compression Overview . . . . . . . . . 3 | 3. Static Context Header Compression Overview . . . . . . . . . 3 | |||
| 4. LoRaWAN Architecture . . . . . . . . . . . . . . . . . . . . 5 | 4. LoRaWAN Architecture . . . . . . . . . . . . . . . . . . . . 5 | |||
| 4.1. End-Device classes (A, B, C) and interactions . . . . . . 6 | 4.1. End-Device classes (A, B, C) and interactions . . . . . . 6 | |||
| 4.2. End-Device addressing . . . . . . . . . . . . . . . . . . 7 | 4.2. End-Device addressing . . . . . . . . . . . . . . . . . . 7 | |||
| 4.3. General Message Types . . . . . . . . . . . . . . . . . . 7 | 4.3. General Message Types . . . . . . . . . . . . . . . . . . 7 | |||
| 4.4. LoRaWAN MAC Frames . . . . . . . . . . . . . . . . . . . 8 | 4.4. LoRaWAN MAC Frames . . . . . . . . . . . . . . . . . . . 8 | |||
| 4.5. Unicast and multicast technology . . . . . . . . . . . . 8 | ||||
| 5. SCHC-over-LoRaWAN . . . . . . . . . . . . . . . . . . . . . . 8 | 5. SCHC-over-LoRaWAN . . . . . . . . . . . . . . . . . . . . . . 8 | |||
| 5.1. LoRaWAN FPort . . . . . . . . . . . . . . . . . . . . . . 8 | 5.1. LoRaWAN FPort . . . . . . . . . . . . . . . . . . . . . . 8 | |||
| 5.2. Rule ID management . . . . . . . . . . . . . . . . . . . 9 | 5.2. Rule ID management . . . . . . . . . . . . . . . . . . . 9 | |||
| 5.3. IID computation . . . . . . . . . . . . . . . . . . . . . 9 | 5.3. IID computation . . . . . . . . . . . . . . . . . . . . . 10 | |||
| 5.4. Padding . . . . . . . . . . . . . . . . . . . . . . . . . 10 | 5.4. Padding . . . . . . . . . . . . . . . . . . . . . . . . . 10 | |||
| 5.5. Compression . . . . . . . . . . . . . . . . . . . . . . . 10 | 5.5. Compression . . . . . . . . . . . . . . . . . . . . . . . 10 | |||
| 5.6. Fragmentation . . . . . . . . . . . . . . . . . . . . . . 10 | 5.6. Fragmentation . . . . . . . . . . . . . . . . . . . . . . 10 | |||
| 5.6.1. DTag . . . . . . . . . . . . . . . . . . . . . . . . 10 | 5.6.1. DTag . . . . . . . . . . . . . . . . . . . . . . . . 11 | |||
| 5.6.2. Uplink fragmentation: From device to SCHC gateway . . 10 | 5.6.2. Uplink fragmentation: From device to SCHC gateway . . 11 | |||
| 5.6.3. Downlink fragmentation: From SCHC gateway to a device 13 | 5.6.3. Downlink fragmentation: From SCHC gateway to a device 13 | |||
| 6. Security considerations . . . . . . . . . . . . . . . . . . . 16 | 6. Security considerations . . . . . . . . . . . . . . . . . . . 17 | |||
| Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . 17 | Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . 17 | |||
| Contributors . . . . . . . . . . . . . . . . . . . . . . . . . . 17 | Contributors . . . . . . . . . . . . . . . . . . . . . . . . . . 17 | |||
| 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 17 | 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 18 | |||
| 9.1. Normative References . . . . . . . . . . . . . . . . . . 17 | 9.1. Normative References . . . . . . . . . . . . . . . . . . 18 | |||
| 9.2. Informative References . . . . . . . . . . . . . . . . . 18 | 9.2. Informative References . . . . . . . . . . . . . . . . . 19 | |||
| Appendix A. Examples . . . . . . . . . . . . . . . . . . . . . . 18 | Appendix A. Examples . . . . . . . . . . . . . . . . . . . . . . 19 | |||
| A.1. Uplink - Compression example - No fragmentation . . . . . 18 | A.1. Uplink - Compression example - No fragmentation . . . . . 19 | |||
| A.2. Uplink - Compression and fragmentation example . . . . . 19 | A.2. Uplink - Compression and fragmentation example . . . . . 20 | |||
| A.3. Downlink . . . . . . . . . . . . . . . . . . . . . . . . 20 | A.3. Downlink . . . . . . . . . . . . . . . . . . . . . . . . 22 | |||
| Appendix B. Note . . . . . . . . . . . . . . . . . . . . . . . . 22 | Appendix B. Note . . . . . . . . . . . . . . . . . . . . . . . . 23 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 22 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 23 | |||
| 1. Introduction | 1. Introduction | |||
| The Static Context Header Compression (SCHC) specification | The Static Context Header Compression (SCHC) specification | |||
| [I-D.ietf-lpwan-ipv6-static-context-hc] describes generic header | [I-D.ietf-lpwan-ipv6-static-context-hc] describes generic header | |||
| compression and fragmentation techniques that can be used on all | compression and fragmentation techniques that can be used on all | |||
| LPWAN (Low Power Wide Area Networks) technologies defined in | LPWAN (Low Power Wide Area Networks) technologies defined in | |||
| [RFC8376]. Even though those technologies share a great number of | [RFC8376]. Even though those technologies share a great number of | |||
| common features like star-oriented topologies, network architecture, | common features like star-oriented topologies, network architecture, | |||
| devices with mostly quite predictable communications, etc; they do | devices with mostly quite predictable communications, etc; they do | |||
| skipping to change at page 8, line 19 ¶ | skipping to change at page 8, line 19 ¶ | |||
| and a random nonce that will be used for session key derivation. | and a random nonce that will be used for session key derivation. | |||
| o JoinAccept: To on-board an end-device, the Network Server responds | o JoinAccept: To on-board an end-device, the Network Server responds | |||
| to the JoinRequest end-device's message with a JoinAccept message. | to the JoinRequest end-device's message with a JoinAccept message. | |||
| That message is encrypted with the end-device's AppKey and | That message is encrypted with the end-device's AppKey and | |||
| contains (amongst other fields) the major network's settings and a | contains (amongst other fields) the major network's settings and a | |||
| network random nonce used to derive the session keys. | network random nonce used to derive the session keys. | |||
| o Data | o Data | |||
| 4.5. Unicast and multicast technology | ||||
| LoRaWAN technology supports unicast downlinks, but also multicast: a | ||||
| packet send over LoRaWAN radio link can be received by several | ||||
| devices. It is useful to address many end-devices with same content, | ||||
| either a large binary file (firmware upgrade), or same command (e.g: | ||||
| lighting control). As IPv6 is also a multicast technology this | ||||
| feature MAY be used to address a group of devices. | ||||
| _Note 1_: IPv6 multicast addresses must be defined as per [RFC4291]. | ||||
| LoRaWAN multicast group definition in a network server and the | ||||
| relation between those groups and IPv6 groupID are out of scope of | ||||
| this document. | ||||
| _Note 2_: LoRa Alliance defined [lora-alliance-remote-multicast-set] | ||||
| as RECOMMENDED way to setup multicast groups on devices and create a | ||||
| synchronized reception window. | ||||
| 5. SCHC-over-LoRaWAN | 5. SCHC-over-LoRaWAN | |||
| 5.1. LoRaWAN FPort | 5.1. LoRaWAN FPort | |||
| The LoRaWAN MAC layer features a frame port field in all frames. | The LoRaWAN MAC layer features a frame port field in all frames. | |||
| This field (FPort) is 8-bit long and the values from 1 to 223 can be | This field (FPort) is 8 bits long and the values from 1 to 223 can be | |||
| used. It allows LoRaWAN networks and applications to identify data. | used. It allows LoRaWAN networks and applications to identify data. | |||
| The FPort field is part of the SCHC Packet or the SCHC Fragment, as | The FPort field is part of the SCHC Packet or the SCHC Fragment, as | |||
| shown in Figure 5. The SCHC C/D and the SCHC F/R SHALL concatenate | shown in Figure 5. The SCHC C/D and the SCHC F/R SHALL concatenate | |||
| the FPort field with the LoRaWAN payload to retrieve their payload as | the FPort field with the LoRaWAN payload to retrieve their payload as | |||
| it is used as a part of the ruleId field. | it is used as a part of the ruleId field. | |||
| | FPort | LoRaWAN payload | | | FPort | LoRaWAN payload | | |||
| + ------------------------ + | + ------------------------ + | |||
| | SCHC payload | | | SCHC payload | | |||
| skipping to change at page 9, line 7 ¶ | skipping to change at page 9, line 27 ¶ | |||
| data downlink and its associated SCHC control uplinks, named | data downlink and its associated SCHC control uplinks, named | |||
| FPortDown in this document. | FPortDown in this document. | |||
| FPorts can use arbitrary values inside the allowed FPort range and | FPorts can use arbitrary values inside the allowed FPort range and | |||
| MUST be shared by the end-device, the Network Server and SCHC gateway | MUST be shared by the end-device, the Network Server and SCHC gateway | |||
| prior to the communication. The uplink and downlink fragmentation | prior to the communication. The uplink and downlink fragmentation | |||
| FPorts MUST be different. | FPorts MUST be different. | |||
| 5.2. Rule ID management | 5.2. Rule ID management | |||
| RuleID minimum length MUST be 8 bits, and RECOMMENDED length is 8 | RuleID MUST be 8 bits, encoded in the LoRaWAN FPort as described in | |||
| bits. RuleID MSB is encoded in the LoRaWAN FPort as described in | ||||
| Section 5.1. LoRaWAN supports up to 223 application FPorts in the | Section 5.1. LoRaWAN supports up to 223 application FPorts in the | |||
| range [1;223] as defined in section 4.3.2 of [lora-alliance-spec], it | range [1;223] as defined in section 4.3.2 of [lora-alliance-spec], it | |||
| implies that RuleID MSB SHOULD be inside this range. An application | implies that RuleID MSB SHOULD be inside this range. An application | |||
| MAY reserve some FPort values for other needs as long as they don't | MAY reserve some FPort values for other needs as long as they don't | |||
| conflict with FPorts used for SCHC C/D and SCHC F/R. | conflict with FPorts used for SCHC C/D and SCHC F/R. | |||
| A RuleID SHOULD be reserved to tag packets for which SCHC compression | In order to improve interoperability RECOMMENDED fragmentation RuleID | |||
| was not possible (no matching Rule was found). RuleIDs FPortUp and | values are: | |||
| FPortDown are reserved for fragmentation, in order to improve | ||||
| interoperability RECOMMENDED values are: | ||||
| o RuleID = 20 (8-bit) for uplink fragmentation, named FPortUp | o RuleID = 20 (8-bit) for uplink fragmentation, named FPortUp | |||
| o RuleID = 21 (8-bit) for downlink fragmentation, named FPortDown | o RuleID = 21 (8-bit) for downlink fragmentation, named FPortDown | |||
| o RuleID = 22 (8-bit) for which SCHC compression was not possible | o RuleID = 22 (8-bit) for which SCHC compression was not possible | |||
| (no matching rule was found) | ||||
| The remaining RuleIDs are available for compression. RuleIDs are | The remaining RuleIDs are available for compression. RuleIDs are | |||
| shared between uplink and downlink sessions. A RuleID different from | shared between uplink and downlink sessions. A RuleID different from | |||
| FPortUp or FPortDown means that the fragmentation is not used, thus | FPortUp or FPortDown means that the fragmentation is not used, thus | |||
| the packet SHOULD be sent to C/D layer. | the packet SHOULD be sent to C/D layer. | |||
| The only uplink messages using the FPortDown port are the | The only uplink messages using the FPortDown port are the | |||
| fragmentation SCHC control messages of a downlink fragmentation | fragmentation SCHC control messages of a downlink fragmentation | |||
| session (ex ACKs). Similarly, the only downlink messages using the | session (ex ACKs). Similarly, the only downlink messages using the | |||
| FPortUp port are the fragmentation SCHC control messages of an uplink | FPortUp port are the fragmentation SCHC control messages of an uplink | |||
| skipping to change at page 10, line 14 ¶ | skipping to change at page 10, line 33 ¶ | |||
| 5.4. Padding | 5.4. Padding | |||
| All padding bits MUST be 0. | All padding bits MUST be 0. | |||
| 5.5. Compression | 5.5. Compression | |||
| SCHC C/D MUST concatenate FPort and LoRaWAN payload to retrieve the | SCHC C/D MUST concatenate FPort and LoRaWAN payload to retrieve the | |||
| SCHC packet as per Section 5.1. | SCHC packet as per Section 5.1. | |||
| SCHC C/D RuleID size SHOULD be 8 bits to fit the LoRaWAN FPort field. | ||||
| RuleIDs matching FPortUp and FPortDown are reserved for SCHC | RuleIDs matching FPortUp and FPortDown are reserved for SCHC | |||
| Fragmentation. | Fragmentation. | |||
| 5.6. Fragmentation | 5.6. Fragmentation | |||
| The L2 word size used by LoRaWAN is 1 byte (8 bits). The SCHC | The L2 word size used by LoRaWAN is 1 byte (8 bits). The SCHC | |||
| fragmentation over LoRaWAN uses the ACK-on-Error for uplink | fragmentation over LoRaWAN uses the ACK-on-Error for uplink | |||
| fragmentation and Ack-Always for downlink fragmentation. A LoRaWAN | fragmentation and Ack-Always for downlink fragmentation. A LoRaWAN | |||
| end-device cannot support simultaneous interleaved fragmentation | end-device cannot support simultaneous interleaved fragmentation | |||
| sessions in the same direction (uplink or downlink). This means that | sessions in the same direction (uplink or downlink). This means that | |||
| skipping to change at page 10, line 48 ¶ | skipping to change at page 11, line 21 ¶ | |||
| sessions with one or more SCHC gateway(s) thanks to distinct sets of | sessions with one or more SCHC gateway(s) thanks to distinct sets of | |||
| FPorts, cf Section 5.2 | FPorts, cf Section 5.2 | |||
| 5.6.2. Uplink fragmentation: From device to SCHC gateway | 5.6.2. Uplink fragmentation: From device to SCHC gateway | |||
| In that case the device is the fragmentation transmitter, and the | In that case the device is the fragmentation transmitter, and the | |||
| SCHC gateway the fragmentation receiver. A single fragmentation rule | SCHC gateway the fragmentation receiver. A single fragmentation rule | |||
| is defined. SCHC F/R MUST concatenate FPort and LoRaWAN payload to | is defined. SCHC F/R MUST concatenate FPort and LoRaWAN payload to | |||
| retrieve the SCHC fragment as per Section 5.1. | retrieve the SCHC fragment as per Section 5.1. | |||
| o Minimum SCHC header is two bytes (the FPort byte + 1 additional | o SCHC header size is two bytes (the FPort byte + 1 additional | |||
| byte) and the RECOMMENDED header size is two bytes. | byte). | |||
| o RuleID: Recommended size is 8 bits in SCHC header. | o RuleID: 8 bits stored in LoRaWAN FPort. | |||
| o SCHC fragmentation reliability mode: "ACK-on-Error" | o SCHC fragmentation reliability mode: "ACK-on-Error" | |||
| o DTag: Size is 0 bit, not used | o DTag: Size is 0 bit, not used | |||
| o FCN: The FCN field is encoded on N = 6 bits, so WINDOW_SIZE = 64 | o FCN: The FCN field is encoded on N = 6 bits, so WINDOW_SIZE = 63 | |||
| tiles are allowed in a window | tiles are allowed in a window | |||
| o Window index: encoded on W = 2 bits. So 4 windows are available. | o Window index: encoded on W = 2 bits. So 4 windows are available. | |||
| o RCS calculation algorithm: CRC32 using 0xEDB88320 (i.e. the | o RCS calculation algorithm: CRC32 using 0xEDB88320 (i.e. the | |||
| reverse representation of the polynomial used e.g. in the Ethernet | reverse representation of the polynomial used e.g. in the Ethernet | |||
| standard [RFC3385]) as suggested in | standard [RFC3385]) as suggested in | |||
| [I-D.ietf-lpwan-ipv6-static-context-hc]. | [I-D.ietf-lpwan-ipv6-static-context-hc]. | |||
| o MAX_ACK_REQUESTS: 8 | o MAX_ACK_REQUESTS: 8 | |||
| o Tile: size is 5 bytes | o Tile: size is 10 bytes | |||
| o Retransmission and inactivity timers: LoRaWAN end-devices do not | o Retransmission and inactivity timers: LoRaWAN end-devices do not | |||
| implement a "retransmission timer". At the end of a window or a | implement a "retransmission timer". At the end of a window or a | |||
| fragmentation session, corresponding ACK(s) is (are) transmitted | fragmentation session, corresponding ACK(s) is (are) transmitted | |||
| by the network gateway (LoRaWAN application server) in the RX1 or | by the network gateway (LoRaWAN application server) in the RX1 or | |||
| RX2 receive slot of end-device. If this ACK is not received by | RX2 receive slot of end-device. If this ACK is not received by | |||
| the end-device at the end of its RX windows, it sends an all-0 (or | the end-device at the end of its RX windows, it sends an all-0 (or | |||
| an all-1) fragment with no payload to request an SCHC ACK | an all-1) fragment with no payload to request an SCHC ACK | |||
| retransmission. The periodicity between retransmission of the | retransmission. The periodicity between retransmission of the | |||
| all-0/all-1 fragments is device/application specific and MAY be | all-0/all-1 fragments is device/application specific and MAY be | |||
| different for each device (not specified). The SCHC gateway | different for each device (not specified). The SCHC gateway | |||
| implements an "inactivity timer". The default RECOMMENDED | implements an "inactivity timer". The default RECOMMENDED | |||
| duration of this timer is 12 hours. This value is mainly driven | duration of this timer is 12 hours. This value is mainly driven | |||
| by application requirements and MAY be changed by the application. | by application requirements and MAY be changed by the application. | |||
| o Last tile: The last tile can be carried in the All-1 fragment. | o Last tile: The last tile can be carried in the All-1 fragment. | |||
| With this set of parameters, the SCHC fragment header is 16 bits, | With this set of parameters, the SCHC fragment header is 16 bits, | |||
| including FPort; payload overhead will be 8 bits as FPort is already | including FPort; payload overhead will be 8 bits as FPort is already | |||
| a part of LoRaWAN payload. MTU is: _4 windows * 64 tiles * 5 bytes | a part of LoRaWAN payload. MTU is: _4 windows * 63 tiles * 10 bytes | |||
| per tile = 1280 bytes_ | per tile = 2520 bytes_ | |||
| 5.6.2.1. Regular fragments | 5.6.2.1. Regular fragments | |||
| | 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 6: All fragments except the last one. SCHC header size is 16 | Figure 6: All fragments except the last one. SCHC header size is 16 | |||
| bits, including LoRaWAN FPort. | bits, including LoRaWAN FPort. | |||
| 5.6.2.2. Last fragment (All-1) | 5.6.2.2. Last fragment (All-1) | |||
| skipping to change at page 13, line 22 ¶ | skipping to change at page 13, line 33 ¶ | |||
| Figure 10: SCHC ACK REQ format. | Figure 10: SCHC ACK REQ format. | |||
| 5.6.3. Downlink fragmentation: From SCHC gateway to a device | 5.6.3. Downlink fragmentation: From SCHC gateway to a device | |||
| In that case the device is the fragmentation receiver, and the SCHC | In that case the device is the fragmentation receiver, and the SCHC | |||
| gateway the fragmentation transmitter. The following fields are | gateway the fragmentation transmitter. The following fields are | |||
| common to all devices. SCHC F/R MUST concatenate FPort and LoRaWAN | common to all devices. SCHC F/R MUST concatenate FPort and LoRaWAN | |||
| payload to retrieve the SCHC fragment as described in Section 5.1. | payload to retrieve the SCHC fragment as described in Section 5.1. | |||
| o SCHC fragmentation reliability mode: ACK-Always. | o SCHC fragmentation reliability mode: | |||
| o RuleID: Recommended size is 8 bits in SCHC header. | * Unicast downlinks: ACK-Always. | |||
| o Window index: encoded on W=1 bit, as per | * Multicast downlinks: No-ACK, reliability has be be ensured by | |||
| the upper layer. This feature is OPTIONAL and may not be | ||||
| implemented by SCHC gateway. | ||||
| o RuleID: 8 bits stored in LoRaWAN FPort. | ||||
| o Window index (unicast only): encoded on W=1 bit, as per | ||||
| [I-D.ietf-lpwan-ipv6-static-context-hc]. | [I-D.ietf-lpwan-ipv6-static-context-hc]. | |||
| o DTag: Size is 0 bit, not used | o DTag: Size is 0 bit, not used | |||
| o FCN: The FCN field is encoded on N=1 bit, so WINDOW_SIZE = 1 tile | o FCN: The FCN field is encoded on N=1 bit, so WINDOW_SIZE = 1 tile | |||
| (FCN=All-1 is reserved for SCHC). | (FCN=All-1 is reserved for SCHC). | |||
| o RCS calculation algorithm: CRC32 using 0xEDB88320 (i.e. the | o RCS calculation algorithm: CRC32 using 0xEDB88320 (i.e. the | |||
| reverse representation of the polynomial used e.g. in the Ethernet | reverse representation of the polynomial used e.g. in the Ethernet | |||
| standard [RFC3385]), as per | standard [RFC3385]), as per | |||
| skipping to change at page 17, line 20 ¶ | skipping to change at page 17, line 35 ¶ | |||
| excellent text, insightful discussions, reviews and suggestions. | excellent text, insightful discussions, reviews and suggestions. | |||
| Contributors | Contributors | |||
| Contributors ordered by family name. | Contributors ordered by family name. | |||
| o ins: V. Audebert name: Vincent AUDEBERT org: EDF R&D street: 7 bd | o ins: V. Audebert name: Vincent AUDEBERT org: EDF R&D street: 7 bd | |||
| Gaspard Monge city: 91120 PALAISEAU country: FRANCE email: | Gaspard Monge city: 91120 PALAISEAU country: FRANCE email: | |||
| vincent.audebert@edf.fr | vincent.audebert@edf.fr | |||
| o ins: J. Catalano name: Julien Catalano org: Kerlink street: 1 rue | ||||
| Jacqueline Auriol city: 35235 Thorigne-Fouillard country: France | ||||
| email: j.catalano@kerlink.fr | ||||
| o ins: M. Coracin name: Michael Coracin org: Semtech street: 14 | o ins: M. Coracin name: Michael Coracin org: Semtech street: 14 | |||
| Chemin des Clos city: Meylan country: France email: | Chemin des Clos city: Meylan country: France email: | |||
| mcoracin@semtech.com | mcoracin@semtech.com | |||
| o ins: M. Le Gourrierec name: Marc Le Gourrierec org: SagemCom | o ins: M. Le Gourrierec name: Marc Le Gourrierec org: SagemCom | |||
| street: 250 Route de l'Empereur city: 92500 Rueil Malmaison | street: 250 Route de l'Empereur city: 92500 Rueil Malmaison | |||
| country: FRANCE email: marc.legourrierec@sagemcom.com | country: FRANCE email: marc.legourrierec@sagemcom.com | |||
| o ins: N. Sornin name: Nicolas Sornin org: Semtech street: 14 | o ins: N. Sornin name: Nicolas Sornin org: Semtech street: 14 | |||
| Chemin des Clos city: Meylan country: France email: | Chemin des Clos city: Meylan country: France email: | |||
| skipping to change at page 18, line 37 ¶ | skipping to change at page 19, line 11 ¶ | |||
| [RFC8376] Farrell, S., Ed., "Low-Power Wide Area Network (LPWAN) | [RFC8376] Farrell, S., Ed., "Low-Power Wide Area Network (LPWAN) | |||
| Overview", RFC 8376, DOI 10.17487/RFC8376, May 2018, | Overview", RFC 8376, DOI 10.17487/RFC8376, May 2018, | |||
| <https://www.rfc-editor.org/info/rfc8376>. | <https://www.rfc-editor.org/info/rfc8376>. | |||
| 9.2. Informative References | 9.2. Informative References | |||
| [I-D.ietf-lpwan-ipv6-static-context-hc] | [I-D.ietf-lpwan-ipv6-static-context-hc] | |||
| Minaburo, A., Toutain, L., Gomez, C., Barthel, D., and J. | Minaburo, A., Toutain, L., Gomez, C., Barthel, D., and J. | |||
| Zuniga, "Static Context Header Compression (SCHC) and | Zuniga, "Static Context Header Compression (SCHC) and | |||
| fragmentation for LPWAN, application to UDP/IPv6", draft- | fragmentation for LPWAN, application to UDP/IPv6", draft- | |||
| ietf-lpwan-ipv6-static-context-hc-21 (work in progress), | ietf-lpwan-ipv6-static-context-hc-22 (work in progress), | |||
| July 2019. | October 2019. | |||
| [lora-alliance-remote-multicast-set] | ||||
| Alliance, L., "LoRaWAN Remote Multicast Setup | ||||
| Specification Version 1.0.0", <https://lora- | ||||
| alliance.org/sites/default/files/2018-09/ | ||||
| remote_multicast_setup_v1.0.0.pdf>. | ||||
| [lora-alliance-spec] | [lora-alliance-spec] | |||
| Alliance, L., "LoRaWAN Specification Version V1.0.3", | Alliance, L., "LoRaWAN Specification Version V1.0.3", | |||
| <https://lora-alliance.org/sites/default/files/2018-07/ | <https://lora-alliance.org/sites/default/files/2018-07/ | |||
| lorawan1.0.3.pdf>. | lorawan1.0.3.pdf>. | |||
| Appendix A. Examples | Appendix A. Examples | |||
| A.1. Uplink - Compression example - No fragmentation | A.1. Uplink - Compression example - No fragmentation | |||
| skipping to change at page 19, line 39 ¶ | skipping to change at page 20, line 39 ¶ | |||
| with fragmentation. | with fragmentation. | |||
| An applicative payload of 478 bytes is passed to SCHC compression layer | An applicative payload of 478 bytes is passed to SCHC compression layer | |||
| using rule 1, allowing to compress it to 282 bytes and 5 bits: 1 byte | using rule 1, allowing to compress it to 282 bytes and 5 bits: 1 byte | |||
| ruleID, 21 bits residue + 279 bytes payload. | ruleID, 21 bits residue + 279 bytes payload. | |||
| | RuleID | Compression residue | Payload | | | RuleID | Compression residue | Payload | | |||
| + ------ + ------------------- + --------- + | + ------ + ------------------- + --------- + | |||
| | 1 | 21 bits | 279 bytes | | | 1 | 21 bits | 279 bytes | | |||
| The current LoRaWAN MTU is 11 bytes, although 2 bytes FOpts are used by | The current LoRaWAN MTU is 11 bytes, 0 bytes FOpts are used by LoRaWAN | |||
| LoRaWAN protocol: 9 bytes are available for SCHC payload + 1 byte FPort | protocol: 11 bytes are available for SCHC payload + 1 byte FPort field. | |||
| field. SCHC header is 2 bytes (including FPort) so 1 tile is sent in | SCHC header is 2 bytes (including FPort) so 1 tile is sent in first | |||
| first fragment. | fragment. | |||
| | LoRaWAN Header | LoRaWAN payload (6 bytes) | | | LoRaWAN Header | LoRaWAN payload (11 bytes) | | |||
| + ------------------------------------- + ------------------------- + | + -------------------------- + -------------------------- + | |||
| | | FOpts | RuleID=20 | W | FCN | 1 tile | | | | RuleID=20 | W | FCN | 1 tile | | |||
| + -------------- + ------- + ---------- + ----- + ------ + -------- + | + -------------- + --------- + ----- + ------ + --------- + | |||
| | XXXX | 2 bytes | 1 byte | 0 0 | 62 | 5 bytes | | | XXXX | 1 byte | 0 0 | 62 | 10 bytes | | |||
| Content of the tile is: | Content of the tile is: | |||
| | RuleID | Compression residue | Payload | | | RuleID | Compression residue | Payload | | |||
| + ------ + ------------------- + ----------------- + | + ------ + ------------------- + ----------------- + | |||
| | 1 | 21 bits | 1 byte + 3 bits | | | 1 | 21 bits | 6 byte + 3 bits | | |||
| Next transmission MTU is 242 bytes, no FOpts. 48 tiles are transmitted: | Next transmission MTU is 11 bytes, although 2 bytes FOpts are used by | |||
| LoRaWAN protocol: 9 bytes are available for SCHC payload + 1 byte FPort | ||||
| field, a tile does not fit inside so LoRaWAN stack will send only FOpts. | ||||
| | LoRaWAN Header | LoRaWAN payload (241 bytes) | | Next transmission MTU is 242 bytes, 4 bytes FOpts. 23 tiles are transmitted: | |||
| + -------------- + -----------+ --------------------------- + | ||||
| | | RuleID=20 | W | FCN | 48 tiles | | ||||
| + -------------- + ---------- + ----- + ------ + ---------- + | ||||
| | XXXX | 1 byte | 0 0 | 61 | 240 bytes | | ||||
| Next transmission MTU is 242 bytes, no FOpts. All 8 remaining tiles are | | LoRaWAN Header | LoRaWAN payload (231 bytes) | | |||
| + --------------------------------------+ --------------------------- + | ||||
| | | FOpts | RuleID=20 | W | FCN | 23 tiles | | ||||
| + -------------- + ------- + ---------- + ----- + ----- + ----------- + | ||||
| | XXXX | 4 bytes | 1 byte | 0 0 | 61 | 230 bytes | | ||||
| Next transmission MTU is 242 bytes, no FOpts. All 5 remaining tiles are | ||||
| transmitted, the last tile is only 2 bytes + 5 bits. Padding is added for | transmitted, the last tile is only 2 bytes + 5 bits. Padding is added for | |||
| the remaining 3 bits. | the remaining 3 bits. | |||
| | LoRaWAN Header | LoRaWAN payload (39 bytes) | | | LoRaWAN Header | LoRaWAN payload (44 bytes) | | |||
| + ---- + -----------+ ----------------------------------------------- + | + ---- + -----------+ ----------------------------------------------- + | |||
| | | RuleID=20 | W | FCN | 8 tiles | Padding=b'000 | | | | RuleID=20 | W | FCN | 5 tiles | Padding=b'000 | | |||
| + ---- + ---------- + -- + ------ + ----------------- + ------------- + | + ---- + ---------- + ----- + ----- + ----------------- + ------------- + | |||
| | XXXX | 1 byte | 00 | 13 | 37 bytes + 5 bits | 3 bits | | | XXXX | 1 byte | 0 0 | 38 | 42 bytes + 5 bits | 3 bits | | |||
| All packets have been received by the SCHC gateway, computed RCS is | All packets have been received by the SCHC gateway, computed RCS is | |||
| correct so the following ACK is sent to the device: | correct so the following ACK is sent to the device: | |||
| | LoRaWAN Header | LoRaWAN payload | | | LoRaWAN Header | LoRaWAN payload | | |||
| + -------------- + --------- + ------------------- + | + -------------- + --------- + ------------------- + | |||
| | | RuleID=20 | W | C | Padding | | | | RuleID=20 | W | C | Padding | | |||
| + -------------- + --------- + ----- + - + ------- + | + -------------- + --------- + ----- + - + ------- + | |||
| | XXXX | 1 byte | 0 0 | 1 | 5 bits | | | XXXX | 1 byte | 0 0 | 1 | 5 bits | | |||
| skipping to change at page 22, line 33 ¶ | skipping to change at page 24, line 4 ¶ | |||
| Authors' Addresses | Authors' Addresses | |||
| Olivier Gimenez (editor) | Olivier Gimenez (editor) | |||
| 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-Sevigne Cedex | |||
| France | France | |||
| Email: ivaylo@ackl.io | Email: ivaylo@ackl.io | |||
| Julien Catalano | ||||
| Kerlink | ||||
| 1 rue Jacqueline Auriol | ||||
| 35235 Thorigne-Fouillard | ||||
| France | ||||
| Email: j.catalano@kerlink.fr | ||||
| End of changes. 35 change blocks. | ||||
| 61 lines changed or deleted | 95 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/ | ||||