| < draft-ietf-lpwan-schc-over-lorawan-08.txt | draft-ietf-lpwan-schc-over-lorawan-09.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: January 13, 2021 Acklio | Expires: March 15, 2021 Acklio | |||
| July 12, 2020 | September 11, 2020 | |||
| Static Context Header Compression (SCHC) over LoRaWAN | Static Context Header Compression (SCHC) over LoRaWAN | |||
| draft-ietf-lpwan-schc-over-lorawan-08 | draft-ietf-lpwan-schc-over-lorawan-09 | |||
| 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 Low Power | |||
| (Low Power Wide Area Networks) technologies. SCHC is a generic | Wide Area Networks (LPWAN) technologies. SCHC is a generic mechanism | |||
| mechanism designed for great flexibility so that it can be adapted | designed for great flexibility so that it can be adapted for any of | |||
| for any of the LPWAN technologies. | 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 | |||
| networks, and provides elements such as efficient parameterization | networks, and provides elements such as efficient parameterization | |||
| and modes of operation. This is called a profile. | and modes of operation. This is called a profile. | |||
| Status of This Memo | Status of This Memo | |||
| This Internet-Draft is submitted in full conformance with the | This Internet-Draft is submitted in full conformance with the | |||
| provisions of BCP 78 and BCP 79. | provisions of BCP 78 and BCP 79. | |||
| 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 January 13, 2021. | This Internet-Draft will expire on March 15, 2021. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2020 IETF Trust and the persons identified as the | Copyright (c) 2020 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 18 ¶ | skipping to change at page 2, line 18 ¶ | |||
| described in the Simplified BSD License. | described in the Simplified BSD License. | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 | 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
| 3. Static Context Header Compression Overview . . . . . . . . . 4 | 3. Static Context Header Compression Overview . . . . . . . . . 4 | |||
| 4. LoRaWAN Architecture . . . . . . . . . . . . . . . . . . . . 5 | 4. LoRaWAN Architecture . . . . . . . . . . . . . . . . . . . . 5 | |||
| 4.1. Device classes (A, B, C) and interactions . . . . . . . . 6 | 4.1. Device classes (A, B, C) and interactions . . . . . . . . 6 | |||
| 4.2. Device addressing . . . . . . . . . . . . . . . . . . . . 7 | 4.2. Device addressing . . . . . . . . . . . . . . . . . . . . 7 | |||
| 4.3. General Frame Types . . . . . . . . . . . . . . . . . . . 7 | 4.3. General Frame Types . . . . . . . . . . . . . . . . . . . 8 | |||
| 4.4. LoRaWAN MAC Frames . . . . . . . . . . . . . . . . . . . 8 | 4.4. LoRaWAN MAC Frames . . . . . . . . . . . . . . . . . . . 8 | |||
| 4.5. LoRaWAN empty frame . . . . . . . . . . . . . . . . . . . 8 | 4.5. LoRaWAN FPort . . . . . . . . . . . . . . . . . . . . . . 8 | |||
| 4.6. Unicast and multicast technology . . . . . . . . . . . . 8 | 4.6. LoRaWAN empty frame . . . . . . . . . . . . . . . . . . . 9 | |||
| 5. SCHC-over-LoRaWAN . . . . . . . . . . . . . . . . . . . . . . 8 | 4.7. Unicast and multicast technology . . . . . . . . . . . . 9 | |||
| 5.1. LoRaWAN FPort . . . . . . . . . . . . . . . . . . . . . . 8 | 5. SCHC-over-LoRaWAN . . . . . . . . . . . . . . . . . . . . . . 9 | |||
| 5.2. Rule ID management . . . . . . . . . . . . . . . . . . . 9 | 5.1. LoRaWAN FPort and RuleID . . . . . . . . . . . . . . . . 9 | |||
| 5.3. IID computation . . . . . . . . . . . . . . . . . . . . . 10 | 5.2. Rule ID management . . . . . . . . . . . . . . . . . . . 10 | |||
| 5.3. Interface IDentifier (IID) computation . . . . . . . . . 11 | ||||
| 5.4. Padding . . . . . . . . . . . . . . . . . . . . . . . . . 11 | 5.4. Padding . . . . . . . . . . . . . . . . . . . . . . . . . 11 | |||
| 5.5. Decompression . . . . . . . . . . . . . . . . . . . . . . 11 | 5.5. Decompression . . . . . . . . . . . . . . . . . . . . . . 12 | |||
| 5.6. Fragmentation . . . . . . . . . . . . . . . . . . . . . . 11 | 5.6. Fragmentation . . . . . . . . . . . . . . . . . . . . . . 12 | |||
| 5.6.1. DTag . . . . . . . . . . . . . . . . . . . . . . . . 11 | 5.6.1. DTag . . . . . . . . . . . . . . . . . . . . . . . . 12 | |||
| 5.6.2. Uplink fragmentation: From device to SCHC gateway . . 12 | 5.6.2. Uplink fragmentation: From device to SCHC gateway . . 12 | |||
| 5.6.3. Downlink fragmentation: From SCHC gateway to device . 15 | 5.6.3. Downlink fragmentation: From SCHC gateway to device . 15 | |||
| 5.7. SCHC Fragment Format . . . . . . . . . . . . . . . . . . 18 | 5.7. SCHC Fragment Format . . . . . . . . . . . . . . . . . . 19 | |||
| 5.7.1. All-0 SCHC fragment . . . . . . . . . . . . . . . . . 18 | 5.7.1. All-0 SCHC fragment . . . . . . . . . . . . . . . . . 19 | |||
| 5.7.2. All-1 SCHC fragment . . . . . . . . . . . . . . . . . 18 | 5.7.2. All-1 SCHC fragment . . . . . . . . . . . . . . . . . 19 | |||
| 5.7.3. Delay after each message to respect local regulation 18 | 5.7.3. Delay after each message to respect local regulation 19 | |||
| 6. Security considerations . . . . . . . . . . . . . . . . . . . 18 | 6. Security considerations . . . . . . . . . . . . . . . . . . . 19 | |||
| 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 19 | ||||
| Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . 19 | Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . 19 | |||
| Contributors . . . . . . . . . . . . . . . . . . . . . . . . . . 19 | Contributors . . . . . . . . . . . . . . . . . . . . . . . . . . 20 | |||
| 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 19 | 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 20 | |||
| 9.1. Normative References . . . . . . . . . . . . . . . . . . 20 | 10.1. Normative References . . . . . . . . . . . . . . . . . . 20 | |||
| 9.2. Informative References . . . . . . . . . . . . . . . . . 21 | 10.2. Informative References . . . . . . . . . . . . . . . . . 21 | |||
| Appendix A. Examples . . . . . . . . . . . . . . . . . . . . . . 21 | Appendix A. Examples . . . . . . . . . . . . . . . . . . . . . . 21 | |||
| A.1. Uplink - Compression example - No fragmentation . . . . . 21 | A.1. Uplink - Compression example - No fragmentation . . . . . 21 | |||
| A.2. Uplink - Compression and fragmentation example . . . . . 22 | A.2. Uplink - Compression and fragmentation example . . . . . 22 | |||
| A.3. Downlink . . . . . . . . . . . . . . . . . . . . . . . . 24 | A.3. Downlink . . . . . . . . . . . . . . . . . . . . . . . . 24 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 25 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 26 | |||
| 1. Introduction | 1. Introduction | |||
| The Static Context Header Compression (SCHC) specification [RFC8724] | SCHC specification [RFC8724] describes generic header compression and | |||
| describes generic header compression and fragmentation techniques | fragmentation techniques that can be used on all LPWAN technologies | |||
| that can be used on all LPWAN (Low Power Wide Area Networks) | defined in [RFC8376]. Even though those technologies share a great | |||
| technologies defined in [RFC8376]. Even though those technologies | number of common features like star-oriented topologies, network | |||
| share a great number of common features like star-oriented | architecture, devices with mostly quite predictable communications, | |||
| topologies, network architecture, devices with mostly quite | etc; they do have some slight differences in respect to payload | |||
| predictable communications, etc; they do have some slight differences | sizes, reactiveness, etc. | |||
| in respect to payload sizes, reactiveness, etc. | ||||
| SCHC provides a generic framework that enables those devices to | SCHC provides a generic framework that enables those devices to | |||
| communicate with other Internet networks. However, for efficient | communicate with other Internet networks. However, for efficient | |||
| performance, some parameters and modes of operation need to be set | performance, some parameters and modes of operation need to be set | |||
| appropriately for each of the LPWAN technologies. | appropriately for each of the LPWAN technologies. | |||
| This document describes the efficient parameters and modes of | This document describes the efficient parameters and modes of | |||
| operation when SCHC is used over LoRaWAN networks. | operation when SCHC is used over LoRaWAN networks. | |||
| 2. Terminology | 2. Terminology | |||
| skipping to change at page 3, line 36 ¶ | skipping to change at page 3, line 35 ¶ | |||
| 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 BCP | "OPTIONAL" in this document are to be interpreted as described in BCP | |||
| 14 [RFC2119] [RFC8174] when, and only when, they appear in all | 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 acronyms used in this | This section defines the terminology and acronyms 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]. | |||
| o DevEUI: an IEEE EUI-64 identifier used to identify the device | o DevEUI: an IEEE EUI-64 identifier used to identify the device | |||
| during the procedure while joining the network (Join Procedure) | during the procedure while joining the network (Join Procedure). | |||
| It is assigned by the manufacturer or the device owner and | ||||
| provisioned on the Network Gateway. | ||||
| o DevAddr: a 32-bit non-unique identifier assigned to a device | o DevAddr: a 32-bit non-unique identifier assigned to a device | |||
| statically or dynamically after a Join Procedure (depending on the | either: | |||
| activation mode) | ||||
| o RCS: Reassembly Check Sequence. Used to verify the integrity of | * Statically: by the device manufacturer in _Activation by | |||
| the fragmentation-reassembly process | Personalization_ mode. | |||
| o OUI: Organisation Unique Identifier. IEEE assigned prefix for EUI | * Dynamically: after a Join Procedure by the Network Gateway in | |||
| _Over The Air Activation_ mode. | ||||
| o SCHC gateway: It corresponds to the LoRaWAN Application Server. It | o Downlink: LoRaWAN term for a message transmitted by the network | |||
| manages translation between IPv6 network and the Network Gateway | and received by the device. | |||
| (LoRaWAN Network Server) | ||||
| o OUI: Organisation Unique Identifier. IEEE assigned prefix for | ||||
| EUI. | ||||
| o RCS: Reassembly Check Sequence. Used to verify the integrity of | ||||
| the fragmentation-reassembly process. | ||||
| o SCHC gateway: It corresponds to the LoRaWAN Application Server. | ||||
| It manages translation between IPv6 network and the Network | ||||
| Gateway (LoRaWAN Network Server). | ||||
| o Uplink: LoRaWAN term for a message transmitted by the device and | ||||
| received by the network. | ||||
| 3. Static Context Header Compression Overview | 3. Static Context Header Compression Overview | |||
| This section contains a short overview of Static Context Header | This section contains a short overview of SCHC. For a detailed | |||
| Compression (SCHC). For a detailed description, refer to the full | description, refer to the full specification [RFC8724]. | |||
| specification [RFC8724]. | ||||
| It defines: | It defines: | |||
| 1. Compression mechanisms to avoid transporting information known by | 1. Compression mechanisms to avoid transporting information known by | |||
| both sender and receiver over the air. Known information are | both sender and receiver over the air. Known information are | |||
| part of the "context" | part of the "context". This component is called SCHC Compressor/ | |||
| Decompressor (SCHC C/D) | ||||
| 2. Fragmentation mechanisms to allow SCHC Packet transportation on | 2. Fragmentation mechanisms to allow SCHC Packet transportation on | |||
| small, and potentially variable, MTU | small, and potentially variable, MTU. This component called SCHC | |||
| Fragmentation/Reassembly (SCHC F/R) | ||||
| Context exchange or pre-provisioning is out of scope of this | Context exchange or pre-provisioning is out of scope of this | |||
| document. | document. | |||
| Device App | Device App | |||
| +----------------+ +----+ +----+ +----+ | +----------------+ +----+ +----+ +----+ | |||
| | App1 App2 App3 | |App1| |App2| |App3| | | App1 App2 App3 | |App1| |App2| |App3| | |||
| | | | | | | | | | | | | | | | | | | |||
| | UDP | |UDP | |UDP | |UDP | | | UDP | |UDP | |UDP | |UDP | | |||
| | IPv6 | |IPv6| |IPv6| |IPv6| | | IPv6 | |IPv6| |IPv6| |IPv6| | |||
| skipping to change at page 4, line 44 ¶ | skipping to change at page 5, line 10 ¶ | |||
| +---+ +----+ |F/R | |C/D | | +---+ +----+ |F/R | |C/D | | |||
| +----+ +----+ | +----+ +----+ | |||
| 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 [RFC8376] terminology. The device is sending | it is based on [RFC8376] terminology. The device is sending | |||
| applications flows using IPv6 or IPv6/UDP protocols. These flows | applications flows using IPv6 or IPv6/UDP protocols. These flows | |||
| might be compressed by a Static Context Header Compression | might be compressed by a Static Context Header Compression | |||
| Compressor/Decompressor (SCHC C/D) to reduce headers size and | Compressor/Decompressor (SCHC C/D) to reduce headers size and | |||
| fragmented (SCHC F/R). The resulting information is sent on a layer | fragmented by the SCHC Fragmentation/Reassembly (SCHC F/R). The | |||
| two (L2) frame to an LPWAN Radio Gateway (RGW) that forwards the | resulting information is sent on a layer two (L2) frame to an LPWAN | |||
| frame to a Network Gateway (NGW). The NGW sends the data to a SCHC | Radio Gateway (RGW) that forwards the frame to a Network Gateway | |||
| F/R for reassembly, if required, then to SCHC C/D for decompression. | (NGW). The NGW sends the data to a SCHC F/R for reassembly, if | |||
| The C/D shares the same rules with the device. The SCHC F/R and C/D | required, then to SCHC C/D for decompression. The SCHC C/D shares | |||
| can be located on the Network Gateway (NGW) or in another place as | the same rules with the device. The SCHC C/D and F/R can be located | |||
| long as a tunnel is established between the NGW and the SCHC F/R, | on the Network Gateway (NGW) or in another place as long as a | |||
| then SCHC F/R and SCHC C/D. The SCHC C/D in both sides MUST share | communication is established between the NGW and the SCHC F/R, then | |||
| the same set of rules. After decompression, the packet can be sent | SCHC F/R and C/D. The SCHC C/D and F/R in the device and the SCHC | |||
| on the Internet to one or several LPWAN Application Servers (App). | gateway MUST share the same set of rules. After decompression, the | |||
| packet can be sent on the Internet to one or several LPWAN | ||||
| Application Servers (App). | ||||
| The SCHC F/R and SCHC C/D process is bidirectional, so the same | The SCHC C/D and F/R process is bidirectional, so the same principles | |||
| principles can be applied in the other direction. | can be applied in the other direction. | |||
| In a LoRaWAN network, the RG is called a Gateway, the NGW is Network | In a LoRaWAN network, the RG is called a Gateway, the NGW is Network | |||
| Server, and the SCHC C/D and SCHC F/R are an Application Server. It | Server, and the SCHC C/D and F/R are an Application Server. It can | |||
| can be provided by the Network Gateway or any third party software. | be provided by the Network Gateway or any third party software. | |||
| Figure 1 can be mapped in LoRaWAN terminology to: | Figure 1 can be mapped in LoRaWAN terminology to: | |||
| End Device App | End Device App | |||
| +--------------+ +----+ +----+ +----+ | +--------------+ +----+ +----+ +----+ | |||
| |App1 App2 App3| |App1| |App2| |App3| | |App1 App2 App3| |App1| |App2| |App3| | |||
| | | | | | | | | | | | | | | | | | | |||
| | UDP | |UDP | |UDP | |UDP | | | UDP | |UDP | |UDP | |UDP | | |||
| | IPv6 | |IPv6| |IPv6| |IPv6| | | IPv6 | |IPv6| |IPv6| |IPv6| | |||
| | | | | | | | | | | | | | | | | | | |||
| |SCHC C/D & F/R| | | | | | | | |SCHC C/D & F/R| | | | | | | | |||
| skipping to change at page 5, line 50 ¶ | skipping to change at page 6, line 18 ¶ | |||
| 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. | |||
| o The Radio Gateway (RGW), which is the endpoint of the constrained | o The Radio Gateway (RGW), which is the endpoint of the constrained | |||
| link. This entity maps to the LoRaWAN Gateway. | link. This entity maps to the LoRaWAN Gateway. | |||
| o The Network Gateway (NGW) is the interconnection node between the | o The Network Gateway (NGW) is the interconnection node between the | |||
| Radio Gateway and the Internet. This entity maps to the LoRaWAN | Radio Gateway and the Internet. This entity maps to the LoRaWAN | |||
| Network Server. | Network Server. | |||
| o SCHC F/R and SCHC C/D are LoRaWAN Application Server; ie the | o SCHC C/D and F/R are LoRaWAN Application Server; ie the LoRaWAN | |||
| LoRaWAN application server will do the C/D and F/R. | application server will do the SCHC C/D and F/R. | |||
| () () () | +------+ | () () () | +------+ | |||
| () () () () / \ +---------+ | Join | | () () () () / \ +---------+ | Join | | |||
| () () () () () / \======| ^ |===|Server| +-----------+ | () () () () () / \======| ^ |===|Server| +-----------+ | |||
| () () () | | <--|--> | +------+ |Application| | () () () | | <--|--> | +------+ |Application| | |||
| () () () () / \==========| v |=============| Server | | () () () () / \==========| v |=============| Server | | |||
| () () () / \ +---------+ +-----------+ | () () () / \ +---------+ +-----------+ | |||
| End Devices Gateways Network Server | End Devices Gateways Network Server | |||
| Figure 3: LPWAN Architecture | Figure 3: LPWAN Architecture | |||
| SCHC C/D (Compressor/Decompressor) and SCHC F/R (Fragmentation/ | SCHC Compressor/Decompressor (SCHC C/D) and SCHC Fragmentation/ | |||
| Reassembly) are performed on the LoRaWAN end-device and the | Reassembly (SCHC F/R) are performed on the LoRaWAN end-device and the | |||
| Application Server (called SCHC gateway). While the point-to-point | Application Server (called SCHC gateway). While the point-to-point | |||
| link between the device and the Application Server constitutes single | link between the device and the Application Server constitutes single | |||
| IP hop, the ultimate end-point of the IP communication may be an | IP hop, the ultimate end-point of the IP communication may be an | |||
| Internet node beyond the Application Server. In other words, the | Internet node beyond the Application Server. In other words, the | |||
| LoRaWAN Application Server (SCHC gateway) acts as the first hop IP | LoRaWAN Application Server (SCHC gateway) acts as the first hop IP | |||
| router for the device. The Application Server and Network Server may | router for the device. The Application Server and Network Server may | |||
| be co-located, which effectively turns the Network/Application Server | be co-located, which effectively turns the Network/Application Server | |||
| into the first hop IP router. | into the first hop IP router. | |||
| 4.1. Device classes (A, B, C) and interactions | 4.1. Device classes (A, B, C) and interactions | |||
| skipping to change at page 6, line 39 ¶ | skipping to change at page 7, line 8 ¶ | |||
| All devices implement the Class A, some devices may implement Class B | All devices implement the Class A, some devices may implement Class B | |||
| or Class C. Class B and Class C are mutually exclusive. | or Class C. Class B and Class C are mutually exclusive. | |||
| o Class A: The Class A is the simplest class of devices. The device | o Class A: The Class A is the simplest class of devices. The device | |||
| is allowed to transmit at any time, randomly selecting a | is allowed to transmit at any time, randomly selecting a | |||
| communication channel. The Network Gateway may reply with a | communication channel. The Network Gateway may reply with a | |||
| downlink in one of the 2 receive windows immediately following the | downlink in one of the 2 receive windows immediately following the | |||
| uplinks. Therefore, the Network Gateway cannot initiate a | uplinks. Therefore, the Network Gateway cannot initiate a | |||
| downlink, it has to wait for the next uplink from the device to | downlink, it has to wait for the next uplink from the device to | |||
| get a downlink opportunity. The Class A is the lowest power | get a downlink opportunity. The Class A is the lowest power | |||
| device class. | consumption class. | |||
| o Class B: Class B devices implement all the functionalities of | o Class B: Class B devices implement all the functionalities of | |||
| Class A devices, but also schedule periodic listen windows. | Class A devices, but also schedule periodic listen windows. | |||
| Therefore, opposed to the Class A devices, Class B devices can | Therefore, opposed to the Class A devices, Class B devices can | |||
| receive downlinks that are initiated by the Network Gateway and | receive downlinks that are initiated by the Network Gateway and | |||
| not following an uplink. There is a trade-off between the | not following an uplink. There is a trade-off between the | |||
| periodicity of those scheduled Class B listen windows and the | periodicity of those scheduled Class B listen windows and the | |||
| power consumption of the device. The lower the downlink latency, | power consumption of the device. The lower the downlink latency, | |||
| the higher the power consumption. | the higher the power consumption. | |||
| skipping to change at page 7, line 39 ¶ | skipping to change at page 8, line 14 ¶ | |||
| +--------+ +---------+ +---------+ +----------+ | +--------+ +---------+ +---------+ +----------+ | |||
| | 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 | |||
| o LoRaWAN Confirmed message: The sender asks the receiver to | LoRaWAN implements the possibility to send confirmed or unconfirmed | |||
| acknowledge the message. | messages: | |||
| o LoRaWAN Unconfirmed message: The sender does not ask the receiver | o Confirmed message: The sender asks the receiver to acknowledge the | |||
| to acknowledge the message. | message. | |||
| o Unconfirmed message: The sender does not ask the receiver to | ||||
| acknowledge the message. | ||||
| As SCHC defines its own acknowledgment mechanisms, SCHC does not | As SCHC defines its own acknowledgment mechanisms, SCHC does not | |||
| require to use LoRaWAN Confirmed messages. | require to use LoRaWAN Confirmed messages. | |||
| 4.4. LoRaWAN MAC Frames | 4.4. LoRaWAN MAC Frames | |||
| In addition to regular data frames LoRaWAN implements JoinRequest and | ||||
| JoinAccept frame types, used by a device to join a network: | ||||
| o JoinRequest: This message is used by a device to join a network. | o JoinRequest: This message is used by a device to join a network. | |||
| It contains the device's unique identifier DevEUI and a random | It contains the device's unique identifier DevEUI and a random | |||
| nonce that will be used for session key derivation. | nonce that will be used for session key derivation. | |||
| o JoinAccept: To on-board a device, the Network Gateway responds to | o JoinAccept: To on-board a device, the Network Gateway responds to | |||
| the JoinRequest issued by a device with a JoinAccept message. | the JoinRequest issued by a device with a JoinAccept message. | |||
| That message is encrypted with the device's AppKey and contains | That message is encrypted with the device's AppKey and contains | |||
| (amongst other fields) the major network's settings and a random | (amongst other fields) the major network's settings and a random | |||
| nonce used to derive the session keys. | nonce used to derive the session keys. | |||
| o Data: MAC and application data. Application data are protected | o Data: MAC and application data. Application data are protected | |||
| with AES-128 encryption, MAC related data are AES-128 encrypted | with AES-128 encryption, MAC related data are AES-128 encrypted | |||
| with another key. | with another key. | |||
| 4.5. LoRaWAN empty frame | 4.5. LoRaWAN FPort | |||
| A LoRaWAN empty frame is a LoRaWAN message without FPort and | The LoRaWAN MAC layer features a frame port field in all frames. | |||
| FRMPayload. | 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. | ||||
| 4.6. Unicast and multicast technology | 4.6. LoRaWAN empty frame | |||
| A LoRaWAN empty frame is a LoRaWAN message without FPort (cf | ||||
| Section 5.1) and FRMPayload. | ||||
| 4.7. Unicast and multicast technology | ||||
| LoRaWAN technology supports unicast downlinks, but also multicast: a | LoRaWAN technology supports unicast downlinks, but also multicast: a | |||
| packet send over LoRaWAN radio link can be received by several | packet send over LoRaWAN radio link can be received by several | |||
| devices. It is useful to address many devices with same content, | devices. It is useful to address many devices with same content, | |||
| either a large binary file (firmware upgrade), or same command (e.g: | either a large binary file (firmware upgrade), or same command (e.g: | |||
| lighting control). As IPv6 is also a multicast technology this | lighting control). As IPv6 is also a multicast technology this | |||
| feature can be used to address a group of devices. | feature can be used to address a group of devices. | |||
| _Note 1_: IPv6 multicast addresses must be defined as per [RFC4291]. | _Note 1_: IPv6 multicast addresses must be defined as per [RFC4291]. | |||
| LoRaWAN multicast group definition in a Network Gateway and the | LoRaWAN multicast group definition in a Network Gateway and the | |||
| relation between those groups and IPv6 groupID are out of scope of | relation between those groups and IPv6 groupID are out of scope of | |||
| this document. | this document. | |||
| _Note 2_: LoRa Alliance defined [lora-alliance-remote-multicast-set] | _Note 2_: LoRa Alliance defined [lora-alliance-remote-multicast-set] | |||
| as RECOMMENDED way to setup multicast groups on devices and create a | as RECOMMENDED way to setup multicast groups on devices and create a | |||
| synchronized reception window. | synchronized reception window. | |||
| 5. SCHC-over-LoRaWAN | 5. SCHC-over-LoRaWAN | |||
| 5.1. LoRaWAN FPort | 5.1. LoRaWAN FPort and RuleID | |||
| The LoRaWAN MAC layer features a frame port field in all frames. | ||||
| 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. | ||||
| 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 retrieve their payload as it is used as a part | the LoRaWAN payload to retrieve their payload as it is used as a part | |||
| of the RuleID field. | of the RuleID field. | |||
| | FPort | LoRaWAN payload | | | FPort | LoRaWAN payload | | |||
| + ------------------------ + | + ------------------------ + | |||
| | SCHC packet | | | SCHC packet | | |||
| skipping to change at page 9, line 42 ¶ | skipping to change at page 10, line 22 ¶ | |||
| RuleID MUST be 8 bits, encoded in the LoRaWAN FPort as described in | RuleID MUST be 8 bits, 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 | |||
| can send non SCHC traffic by using FPort values different from the | can send non SCHC traffic by using FPort values different from the | |||
| ones used for SCHC. | ones used for SCHC. | |||
| In order to improve interoperability RECOMMENDED fragmentation RuleID | In order to improve interoperability RECOMMENDED fragmentation RuleID | |||
| values are: | 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) | (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 not in the | shared between uplink and downlink sessions. A RuleID not in the | |||
| set(s) of FPortUp or FPortDown means that the fragmentation is not | set(s) of FPortUp or FPortDown means that the fragmentation is not | |||
| used, thus, on reception, the SCHC Message MUST be sent to the C/D | used, thus, on reception, the SCHC Message MUST be sent to the SCHC | |||
| layer. | 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 | |||
| datagram (for example, SCHC ACKs). Similarly, the only downlink | datagram (for example, SCHC ACKs). Similarly, the only downlink | |||
| messages using the FPortUp port are the fragmentation SCHC control | messages using the FPortUp port are the fragmentation SCHC control | |||
| messages of an uplink fragmentation datagram. | messages of an uplink fragmentation datagram. | |||
| An application can have multiple fragmentation datagrams between a | An application can have multiple fragmentation datagrams between a | |||
| device and one or several SCHC gateways. A set of FPort values is | device and one or several SCHC gateways. A set of FPort values is | |||
| REQUIRED for each SCHC gateway instance the device is required to | REQUIRED for each SCHC gateway instance the device is required to | |||
| communicate with. The application can use additional uplinks or | communicate with. The application can use additional uplinks or | |||
| downlink fragmentation parameters but SHALL implement at least the | downlink fragmentation parameters but SHALL implement at least the | |||
| parameters defined in this document. | parameters defined in this document. | |||
| The mechanism for sharing those RuleID values is outside the scope of | The mechanism for sharing those RuleID values is outside the scope of | |||
| this document. | this document. | |||
| 5.3. IID computation | 5.3. Interface IDentifier (IID) computation | |||
| In order to mitigate risks described in [RFC8064] and [RFC8065] IID | In order to mitigate risks described in [RFC8064] and [RFC8065] IID | |||
| MUST be created regarding the following algorithm: | MUST be created regarding the following algorithm: | |||
| 1. key = LoRaWAN AppSKey | 1. key = LoRaWAN AppSKey | |||
| 2. cmac = aes128_cmac(key, DevEUI) | 2. cmac = aes128_cmac(key, DevEUI) | |||
| 3. IID = cmac[0..7] | 3. IID = cmac[0..7] | |||
| skipping to change at page 12, line 17 ¶ | skipping to change at page 12, line 46 ¶ | |||
| 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 Packet, as per Section 5.1. | retrieve the SCHC Packet, as per Section 5.1. | |||
| o SCHC header size is two bytes (the FPort byte + 1 additional | o SCHC header size is two bytes (the FPort byte + 1 additional | |||
| byte). | byte). | |||
| o RuleID: 8 bits stored in LoRaWAN FPort. | 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 = 63 | 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: Use recommended calculation algorithm in [RFC8724]. | o RCS: Use recommended calculation algorithm in [RFC8724]. | |||
| o MAX_ACK_REQUESTS: 8 | o MAX_ACK_REQUESTS: 8. | |||
| o Tile: size is 10 bytes | o Tile: size is 10 bytes. | |||
| o Retransmission timer: Set by the implementation depending on the | o Retransmission timer: Set by the implementation depending on the | |||
| application requirements. | application requirements. | |||
| o Inactivity timer: The SCHC gateway implements an "inactivity | o Inactivity timer: The SCHC gateway implements an "inactivity | |||
| timer". The default RECOMMENDED duration of this timer is 12 | timer". The default RECOMMENDED duration of this timer is 12 | |||
| hours; this value is mainly driven by application requirements and | hours; this value is mainly driven by application requirements and | |||
| MAY be changed by the application. | MAY be changed by the application. | |||
| o Penultimate tile MUST be equal to the regular size. | o Penultimate tile MUST be equal to the regular size. | |||
| skipping to change at page 15, line 24 ¶ | skipping to change at page 16, line 5 ¶ | |||
| * Unicast downlinks: ACK-Always. | * Unicast downlinks: ACK-Always. | |||
| * Multicast downlinks: No-ACK, reliability has to be ensured by | * Multicast downlinks: No-ACK, reliability has to be ensured by | |||
| the upper layer. This feature is OPTIONAL and may not be | the upper layer. This feature is OPTIONAL and may not be | |||
| implemented by SCHC gateway. | implemented by SCHC gateway. | |||
| o RuleID: 8 bits stored in LoRaWAN FPort. | o RuleID: 8 bits stored in LoRaWAN FPort. | |||
| o Window index (unicast only): encoded on W=1 bit, as per [RFC8724]. | o Window index (unicast only): encoded on W=1 bit, as per [RFC8724]. | |||
| 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. | |||
| o RCS: Use recommended calculation algorithm in [RFC8724]. | o RCS: Use recommended calculation algorithm in [RFC8724]. | |||
| o MAX_ACK_REQUESTS: 8 | o MAX_ACK_REQUESTS: 8. | |||
| o Retransmission timer: See Section 5.6.3.5 | o Retransmission timer: See Section 5.6.3.5. | |||
| o Inactivity timer: The default RECOMMENDED duration of this timer | o Inactivity timer: The default RECOMMENDED duration of this timer | |||
| is 12 hours; this value is mainly driven by application | is 12 hours; this value is mainly driven by application | |||
| requirements and MAY be changed by the application. | requirements and MAY be changed by the application. | |||
| As only 1 tile is used, its size can change for each downlink, and | As only 1 tile is used, its size can change for each downlink, and | |||
| will be maximum available MTU. | will be maximum available MTU. | |||
| Class A devices can only receive during an RX slot, following the | Class A devices can only receive during an RX slot, following the | |||
| transmission of an uplink. Therefore the SCHC gateway cannot | transmission of an uplink. Therefore the SCHC gateway cannot | |||
| initiate communication (ex: new SCHC session); in order to create a | initiate communication (ex: new SCHC session); in order to create a | |||
| downlink opportunity it is RECOMMENDED for Class A devices to send an | downlink opportunity it is RECOMMENDED for Class A devices to send an | |||
| uplink every 24 hours when no SCHC session is started, this is | uplink every 24 hours when no SCHC session is started, this is | |||
| application specific and can be disabled. RECOMMENDED uplink is a | application specific and can be disabled. RECOMMENDED uplink is a | |||
| LoRaWAN empty frame as defined Section 4.5. As this uplink is to | LoRaWAN empty frame as defined Section 4.6. As this uplink is to | |||
| open an RX window any applicative uplink MAY reset this counter. | open an RX window any applicative uplink MAY reset this counter. | |||
| _Note_: The Fpending bit included in LoRaWAN protocol SHOULD NOT be | _Note_: The Fpending bit included in LoRaWAN protocol SHOULD NOT be | |||
| used for SCHC-over-LoRaWAN protocol. It might be set by the Network | used for SCHC-over-LoRaWAN protocol. It might be set by the Network | |||
| Gateway for other purposes but not SCHC needs. | Gateway for other purposes but not SCHC needs. | |||
| 5.6.3.1. Regular fragments | 5.6.3.1. Regular fragments | |||
| | FPort | LoRaWAN payload | | | FPort | LoRaWAN payload | | |||
| + ------ + ------------------------------------ + | + ------ + ------------------------------------ + | |||
| skipping to change at page 17, line 23 ¶ | skipping to change at page 18, line 8 ¶ | |||
| transmission of an uplink. | transmission of an uplink. | |||
| The SCHC gateway implements an inactivity timer with a RECOMMENDED | The SCHC gateway implements an inactivity timer with a RECOMMENDED | |||
| duration of 36 hours. For devices with very low transmission rates | duration of 36 hours. For devices with very low transmission rates | |||
| (example 1 packet a day in normal operation), that duration may be | (example 1 packet a day in normal operation), that duration may be | |||
| extended: it is application specific. | extended: it is application specific. | |||
| RETRANSMISSION_TIMER is application specific and its RECOMMENDED | RETRANSMISSION_TIMER is application specific and its RECOMMENDED | |||
| value is INACTIVITY_TIMER/(MAX_ACK_REQUESTS + 1). | value is INACTIVITY_TIMER/(MAX_ACK_REQUESTS + 1). | |||
| *SCHC All-0 (FCN=0)* All fragment but the last have an FCN=0 (because | *SCHC All-0 (FCN=0)* All fragments but the last have an FCN=0 | |||
| window size is 1). Following it the device MUST transmit the SCHC | (because window size is 1). Following it the device MUST transmit | |||
| ACK message. It MUST transmit up to MAX_ACK_REQUESTS SCHC ACK | the SCHC ACK message. It MUST transmit up to MAX_ACK_REQUESTS SCHC | |||
| messages before aborting. In order to progress the fragmentation | ACK messages before aborting. In order to progress the fragmentation | |||
| datagram, the SCHC layer should immediately queue for transmission | datagram, the SCHC layer should immediately queue for transmission | |||
| those SCHC ACK if no SCHC downlink have been received during RX1 and | those SCHC ACK if no SCHC downlink have been received during RX1 and | |||
| RX2 window. LoRaWAN layer will respect the regulation if required. | RX2 window. LoRaWAN layer will respect the regulation if required. | |||
| _Note_: The ACK bitmap is 1 bit long and is always 1. | _Note_: The ACK bitmap is 1 bit long and is always 1. | |||
| *SCHC All-1 (FCN=1)* SCHC All-1 is the last fragment of a datagram, | *SCHC All-1 (FCN=1)* SCHC All-1 is the last fragment of a datagram, | |||
| the corresponding SCHC ACK message might be lost; therefore the SCHC | the corresponding SCHC ACK message might be lost; therefore the SCHC | |||
| gateway MUST request a retransmission of this ACK when the | gateway MUST request a retransmission of this ACK when the | |||
| retransmission timer expires. To open a downlink opportunity the | retransmission timer expires. To open a downlink opportunity the | |||
| device MUST transmit an uplink every | device MUST transmit an uplink every | |||
| RETRANSMISSION_TIMER/(MAX_ACK_REQUESTS * | RETRANSMISSION_TIMER/(MAX_ACK_REQUESTS * | |||
| SCHC_ACK_REQ_DN_OPPORTUNITY). The format of this uplink is | SCHC_ACK_REQ_DN_OPPORTUNITY). The format of this uplink is | |||
| 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.5) but it is application specific and will | 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. | 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 to | recommended value is 2, it MUST be greater than 1. This allows to | |||
| open downlink opportunity to other eventual downlink with higher | open downlink opportunity to other eventual downlink with higher | |||
| priority than SCHC ACK REQ message. | priority than SCHC ACK REQ message. | |||
| _Note_: The device MUST keep this SCHC ACK message in memory until it | _Note_: The device MUST keep this SCHC ACK message in memory until it | |||
| receives a downlink, on SCHC FPortDown different from an SCHC ACK | receives a downlink, on SCHC FPortDown different from an SCHC ACK | |||
| REQ: it indicates that the SCHC gateway has received the ACK message. | REQ: it indicates that the SCHC gateway has received the 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 value: | RECOMMENDED retransmission timer value: | |||
| o Class B: 3 times the ping slot periodicity. | o Class B: 3 times the ping slot periodicity. | |||
| o Class C: 30 seconds | o Class C: 30 seconds. | |||
| 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)*: | |||
| skipping to change at page 19, line 10 ¶ | skipping to change at page 19, line 44 ¶ | |||
| This document is only providing parameters that are expected to be | This document is only providing parameters that are expected to be | |||
| best suited for LoRaWAN networks for [RFC8724]. IID security is | best suited for LoRaWAN networks for [RFC8724]. IID security is | |||
| discussed in Section 5.3. As such, this document does not contribute | discussed in Section 5.3. As such, this document does not contribute | |||
| to any new security issues in addition to those identified in | to any new security issues in addition to those identified in | |||
| [RFC8724]. Moreover, SCHC data (LoRaWAN payload) are protected on | [RFC8724]. Moreover, SCHC data (LoRaWAN payload) are protected on | |||
| LoRaWAN level by an AES-128 encryption with key shared by device and | LoRaWAN level by an AES-128 encryption with key shared by device and | |||
| SCHC gateway. Those keys are renewed at each LoRaWAN session (ie: | SCHC gateway. Those keys are renewed at each LoRaWAN session (ie: | |||
| each join or rejoin to the LoRaWAN network) | each join or rejoin to the LoRaWAN network) | |||
| 7. IANA Considerations | ||||
| This document has no IANA actions. | ||||
| Acknowledgements | Acknowledgements | |||
| Thanks to all those listed in the Contributors section for the | Thanks to all those listed in the Contributors section for the | |||
| excellent text, insightful discussions, reviews and suggestions, and | excellent text, insightful discussions, reviews and suggestions, and | |||
| also to (in alphabetical order) Dominique Barthel, Arunprabhu | also to (in alphabetical order) Dominique Barthel, Arunprabhu | |||
| Kandasamy, Rodrigo Munoz, Alexander Pelov, Pascal Thubert, Laurent | Kandasamy, Rodrigo Munoz, Alexander Pelov, Pascal Thubert, Laurent | |||
| Toutain for useful design considerations, reviews and comments. | Toutain for useful design considerations, reviews and comments. | |||
| Contributors | Contributors | |||
| skipping to change at page 19, line 46 ¶ | skipping to change at page 20, line 35 ¶ | |||
| Email: marc.legourrierec@sagemcom.com | Email: marc.legourrierec@sagemcom.com | |||
| Nicolas Sornin | Nicolas Sornin | |||
| Semtech | Semtech | |||
| Email: nsornin@semtech.com | Email: nsornin@semtech.com | |||
| Alper Yegin | Alper Yegin | |||
| Actility | Actility | |||
| Email: alper.yegin@actility.com | Email: alper.yegin@actility.com | |||
| 9. References | 10. References | |||
| 9.1. Normative References | ||||
| 10.1. Normative References | ||||
| [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>. | |||
| [RFC3385] Sheinwald, D., Satran, J., Thaler, P., and V. Cavanna, | ||||
| "Internet Protocol Small Computer System Interface (iSCSI) | ||||
| Cyclic Redundancy Check (CRC)/Checksum Considerations", | ||||
| RFC 3385, DOI 10.17487/RFC3385, September 2002, | ||||
| <https://www.rfc-editor.org/info/rfc3385>. | ||||
| [RFC4291] Hinden, R. and S. Deering, "IP Version 6 Addressing | [RFC4291] Hinden, R. and S. Deering, "IP Version 6 Addressing | |||
| Architecture", RFC 4291, DOI 10.17487/RFC4291, February | Architecture", RFC 4291, DOI 10.17487/RFC4291, February | |||
| 2006, <https://www.rfc-editor.org/info/rfc4291>. | 2006, <https://www.rfc-editor.org/info/rfc4291>. | |||
| [RFC4493] Song, JH., Poovendran, R., Lee, J., and T. Iwata, "The | [RFC4493] Song, JH., Poovendran, R., Lee, J., and T. Iwata, "The | |||
| AES-CMAC Algorithm", RFC 4493, DOI 10.17487/RFC4493, June | AES-CMAC Algorithm", RFC 4493, DOI 10.17487/RFC4493, June | |||
| 2006, <https://www.rfc-editor.org/info/rfc4493>. | 2006, <https://www.rfc-editor.org/info/rfc4493>. | |||
| [RFC4944] Montenegro, G., Kushalnagar, N., Hui, J., and D. Culler, | ||||
| "Transmission of IPv6 Packets over IEEE 802.15.4 | ||||
| Networks", RFC 4944, DOI 10.17487/RFC4944, September 2007, | ||||
| <https://www.rfc-editor.org/info/rfc4944>. | ||||
| [RFC5795] Sandlund, K., Pelletier, G., and L-E. Jonsson, "The RObust | ||||
| Header Compression (ROHC) Framework", RFC 5795, | ||||
| DOI 10.17487/RFC5795, March 2010, | ||||
| <https://www.rfc-editor.org/info/rfc5795>. | ||||
| [RFC7136] Carpenter, B. and S. Jiang, "Significance of IPv6 | ||||
| Interface Identifiers", RFC 7136, DOI 10.17487/RFC7136, | ||||
| February 2014, <https://www.rfc-editor.org/info/rfc7136>. | ||||
| [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>. | |||
| [RFC8065] Thaler, D., "Privacy Considerations for IPv6 Adaptation- | [RFC8065] Thaler, D., "Privacy Considerations for IPv6 Adaptation- | |||
| Layer Mechanisms", RFC 8065, DOI 10.17487/RFC8065, | Layer Mechanisms", RFC 8065, DOI 10.17487/RFC8065, | |||
| February 2017, <https://www.rfc-editor.org/info/rfc8065>. | February 2017, <https://www.rfc-editor.org/info/rfc8065>. | |||
| [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
| skipping to change at page 21, line 15 ¶ | skipping to change at page 21, line 28 ¶ | |||
| [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>. | |||
| [RFC8724] Minaburo, A., Toutain, L., Gomez, C., Barthel, D., and JC. | [RFC8724] Minaburo, A., Toutain, L., Gomez, C., Barthel, D., and JC. | |||
| Zuniga, "SCHC: Generic Framework for Static Context Header | Zuniga, "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>. | |||
| 9.2. Informative References | 10.2. Informative References | |||
| [lora-alliance-remote-multicast-set] | [lora-alliance-remote-multicast-set] | |||
| Alliance, L., "LoRaWAN Remote Multicast Setup | Alliance, L., "LoRaWAN Remote Multicast Setup | |||
| Specification Version 1.0.0", <https://lora- | Specification Version 1.0.0", <https://lora- | |||
| alliance.org/sites/default/files/2018-09/ | alliance.org/sites/default/files/2018-09/ | |||
| remote_multicast_setup_v1.0.0.pdf>. | 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 | |||
| This example represents an applicative payload going through SCHC | This example represents an applicative payload going through SCHC | |||
| over LoRaWAN, no fragmentation required | over LoRaWAN, no fragmentation required | |||
| An applicative payload of 78 bytes is passed to SCHC compression | An applicative payload of 78 bytes is passed to SCHC compression | |||
| layer. Rule 1 is used by C/D layer, allowing to compress it to 40 | layer. Rule 1 is used by SCHC C/D layer, allowing to compress it to | |||
| bytes and 5 bits: 1 byte RuleID, 21 bits residue + 37 bytes payload. | 40 bytes and 5 bits: 1 byte RuleID, 21 bits residue + 37 bytes | |||
| payload. | ||||
| | RuleID | Compression residue | Payload | Padding=b'000 | | | RuleID | Compression residue | Payload | Padding=b'000 | | |||
| + ------ + ------------------- + --------- + ------------- + | + ------ + ------------------- + --------- + ------------- + | |||
| | 1 | 21 bits | 37 bytes | 3 bits | | | 1 | 21 bits | 37 bytes | 3 bits | | |||
| Figure 17: Uplink example: SCHC Message | Figure 17: Uplink example: SCHC Message | |||
| The current LoRaWAN MTU is 51 bytes, although 2 bytes FOpts are used | The current LoRaWAN MTU is 51 bytes, although 2 bytes FOpts are used | |||
| by LoRaWAN protocol: 49 bytes are available for SCHC payload; no need | by LoRaWAN protocol: 49 bytes are available for SCHC payload; no need | |||
| for fragmentation. The payload will be transmitted through FPort = | for fragmentation. The payload will be transmitted through FPort = | |||
| skipping to change at page 22, line 20 ¶ | skipping to change at page 22, line 31 ¶ | |||
| | XXXX | 2 bytes | 1 byte | 21 bits | 37 bytes | 3 bits | | | XXXX | 2 bytes | 1 byte | 21 bits | 37 bytes | 3 bits | | |||
| Figure 18: Uplink example: LoRaWAN packet | Figure 18: Uplink example: LoRaWAN packet | |||
| A.2. Uplink - Compression and fragmentation example | A.2. Uplink - Compression and fragmentation example | |||
| This example represents an applicative payload going through SCHC, | This example represents an applicative payload going through SCHC, | |||
| with fragmentation. | with fragmentation. | |||
| An applicative payload of 478 bytes is passed to SCHC compression | An applicative payload of 478 bytes is passed to SCHC compression | |||
| layer. Rule 1 is used by C/D layer, allowing to compress it to 282 | layer. Rule 1 is used by SCHC C/D layer, allowing to compress it to | |||
| bytes and 5 bits: 1 byte RuleID, 21 bits residue + 279 bytes payload. | 282 bytes and 5 bits: 1 byte 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 | | |||
| Figure 19: Uplink example: SCHC Message | Figure 19: Uplink example: SCHC Message | |||
| The current LoRaWAN MTU is 11 bytes, 0 bytes FOpts are used by | The current LoRaWAN MTU is 11 bytes, 0 bytes FOpts are used by | |||
| LoRaWAN protocol: 11 bytes are available for SCHC payload + 1 byte | LoRaWAN protocol: 11 bytes are available for SCHC payload + 1 byte | |||
| FPort field. SCHC header is 2 bytes (including FPort) so 1 tile is | FPort field. SCHC header is 2 bytes (including FPort) so 1 tile is | |||
| skipping to change at page 22, line 45 ¶ | skipping to change at page 23, line 8 ¶ | |||
| + -------------------------- + -------------------------- + | + -------------------------- + -------------------------- + | |||
| | | RuleID=20 | W | FCN | 1 tile | | | | RuleID=20 | W | FCN | 1 tile | | |||
| + -------------- + --------- + ----- + ------ + --------- + | + -------------- + --------- + ----- + ------ + --------- + | |||
| | XXXX | 1 byte | 0 0 | 62 | 10 bytes | | | XXXX | 1 byte | 0 0 | 62 | 10 bytes | | |||
| Figure 20: Uplink example: LoRaWAN packet 1 | Figure 20: Uplink example: LoRaWAN packet 1 | |||
| Content of the tile is: | Content of the tile is: | |||
| | RuleID | Compression residue | Payload | | | RuleID | Compression residue | Payload | | |||
| + ------ + ------------------- + ----------------- + | + ------ + ------------------- + ----------------- + | |||
| | 1 | 21 bits | 6 byte + 3 bits | | | 1 | 21 bits | 6 bytes + 3 bits | | |||
| Figure 21: Uplink example: LoRaWAN packet 1 - Tile content | Figure 21: Uplink example: LoRaWAN packet 1 - Tile content | |||
| Next transmission MTU is 11 bytes, although 2 bytes FOpts are used by | Next transmission MTU is 11 bytes, although 2 bytes FOpts are used by | |||
| LoRaWAN protocol: 9 bytes are available for SCHC payload + 1 byte | LoRaWAN protocol: 9 bytes are available for SCHC payload + 1 byte | |||
| FPort field, a tile does not fit inside so LoRaWAN stack will send | FPort field, a tile does not fit inside so LoRaWAN stack will send | |||
| only FOpts. | only FOpts. | |||
| Next transmission MTU is 242 bytes, 4 bytes FOpts. 23 tiles are | Next transmission MTU is 242 bytes, 4 bytes FOpts. 23 tiles are | |||
| transmitted: | transmitted: | |||
| skipping to change at page 24, line 8 ¶ | skipping to change at page 24, line 16 ¶ | |||
| + -------------- + --------- + ------------------- + | + -------------- + --------- + ------------------- + | |||
| | | 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 | | |||
| Figure 25: Uplink example: LoRaWAN packet 5 - SCHC ACK | Figure 25: Uplink example: LoRaWAN packet 5 - SCHC ACK | |||
| A.3. Downlink | A.3. Downlink | |||
| An applicative payload of 443 bytes is passed to SCHC compression | An applicative payload of 443 bytes is passed to SCHC compression | |||
| layer. Rule 1 is used by C/D layer, allowing to compress it to 130 | layer. Rule 1 is used by SCHC C/D layer, allowing to compress it to | |||
| bytes and 5 bits: 1 byte RuleID, 21 bits residue + 127 bytes payload. | 130 bytes and 5 bits: 1 byte RuleID, 21 bits residue + 127 bytes | |||
| payload. | ||||
| | RuleID | Compression residue | Payload | | | RuleID | Compression residue | Payload | | |||
| + ------ + ------------------- + --------- + | + ------ + ------------------- + --------- + | |||
| | 1 | 21 bits | 127 bytes | | | 1 | 21 bits | 127 bytes | | |||
| Figure 26: Downlink example: SCHC Message | Figure 26: Downlink example: SCHC Message | |||
| The current LoRaWAN MTU is 51 bytes, no FOpts are used by LoRaWAN | The current LoRaWAN MTU is 51 bytes, no FOpts are used by LoRaWAN | |||
| protocol: 51 bytes are available for SCHC payload + FPort field => it | protocol: 51 bytes are available for SCHC payload + FPort field => it | |||
| has to be fragmented. | has to be fragmented. | |||
| End of changes. 59 change blocks. | ||||
| 136 lines changed or deleted | 150 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/ | ||||