| draft-ietf-schc-8824-update-09.txt | draft-ietf-schc-8824-update-10.txt | |||
|---|---|---|---|---|
| SCHC Working Group M. Tiloca | SCHC Working Group M. Tiloca | |||
| Internet-Draft RISE AB | Internet-Draft RISE AB | |||
| Obsoletes: 8824 (if approved) L. Toutain | Obsoletes: 8824 (if approved) L. Toutain | |||
| Intended status: Standards Track IMT Atlantique | Intended status: Standards Track IMT Atlantique | |||
| Expires: 7 January 2027 I. Martínez | Expires: 27 January 2027 I. Martínez | |||
| IRISA | IRISA | |||
| A. Minaburo | A. Minaburo | |||
| Consultant | Consultant | |||
| 6 July 2026 | 26 July 2026 | |||
| Static Context Header Compression (SCHC) for the Constrained Application | Static Context Header Compression (SCHC) for the Constrained Application | |||
| Protocol (CoAP) | Protocol (CoAP) | |||
| draft-ietf-schc-8824-update-09 | draft-ietf-schc-8824-update-10 | |||
| Abstract | Abstract | |||
| This document defines how to compress Constrained Application | This document defines how to compress Constrained Application | |||
| Protocol (CoAP) headers using the Static Context Header Compression | Protocol (CoAP) headers using the Static Context Header Compression | |||
| and fragmentation (SCHC) framework. SCHC defines a header | and fragmentation (SCHC) framework. SCHC defines a header | |||
| compression mechanism adapted for constrained devices, and it uses a | compression mechanism adapted for constrained devices, and it uses a | |||
| static description of the header to reduce the header's redundancy | static description of the header to reduce the header's redundancy | |||
| and size. While RFC 8724 describes the SCHC compression and | and size. While RFC 8724 describes the SCHC compression and | |||
| fragmentation framework and its application for IPv6 and UDP headers, | fragmentation framework and its application for IPv6 and UDP headers, | |||
| skipping to change at page 2, line 20 ¶ | skipping to change at page 2, line 20 ¶ | |||
| 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 7 January 2027. | This Internet-Draft will expire on 27 January 2027. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2026 IETF Trust and the persons identified as the | Copyright (c) 2026 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 (https://trustee.ietf.org/ | Provisions Relating to IETF Documents (https://trustee.ietf.org/ | |||
| license-info) in effect on the date of publication of this document. | license-info) in effect on the date of publication of this document. | |||
| Please review these documents carefully, as they describe your rights | Please review these documents carefully, as they describe your rights | |||
| and restrictions with respect to this document. Code Components | and restrictions with respect to this document. Code Components | |||
| extracted from this document must include Revised BSD License text as | extracted from this document must include Revised BSD License text as | |||
| described in Section 4.e of the Trust Legal Provisions and are | described in Section 4.e of the Trust Legal Provisions and are | |||
| provided without warranty as described in the Revised BSD License. | provided without warranty as described in the Revised BSD License. | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 4 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
| 1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 7 | 1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 7 | |||
| 2. SCHC Applicability to CoAP . . . . . . . . . . . . . . . . . 7 | 2. SCHC Applicability to CoAP . . . . . . . . . . . . . . . . . 8 | |||
| 3. CoAP Headers Compressed with SCHC . . . . . . . . . . . . . . 9 | 3. CoAP Headers Compressed with SCHC . . . . . . . . . . . . . . 11 | |||
| 3.1. Differences between CoAP and UDP/IP Compression . . . . . 10 | 3.1. Differences between CoAP and UDP/IP Compression . . . . . 12 | |||
| 4. Compression of CoAP Header Fields . . . . . . . . . . . . . . 12 | 4. Compression of CoAP Header Fields . . . . . . . . . . . . . . 14 | |||
| 4.1. CoAP Version Field . . . . . . . . . . . . . . . . . . . 13 | 4.1. CoAP Version Field . . . . . . . . . . . . . . . . . . . 15 | |||
| 4.2. CoAP Type Field . . . . . . . . . . . . . . . . . . . . . 13 | 4.2. CoAP Type Field . . . . . . . . . . . . . . . . . . . . . 15 | |||
| 4.3. CoAP Token Length (TKL) Field . . . . . . . . . . . . . . 13 | 4.3. CoAP Token Length (TKL) Field . . . . . . . . . . . . . . 15 | |||
| 4.4. CoAP Code Field . . . . . . . . . . . . . . . . . . . . . 14 | 4.4. CoAP Code Field . . . . . . . . . . . . . . . . . . . . . 16 | |||
| 4.5. CoAP Message ID Field . . . . . . . . . . . . . . . . . . 14 | 4.5. CoAP Message ID Field . . . . . . . . . . . . . . . . . . 16 | |||
| 4.6. CoAP Token Field . . . . . . . . . . . . . . . . . . . . 14 | 4.6. CoAP Token Field . . . . . . . . . . . . . . . . . . . . 16 | |||
| 5. Compression of CoAP Options . . . . . . . . . . . . . . . . . 15 | 5. Compression of CoAP Options . . . . . . . . . . . . . . . . . 17 | |||
| 5.1. Field Descriptors for CoAP Options . . . . . . . . . . . 15 | 5.1. Field Descriptors for CoAP Options . . . . . . . . . . . 17 | |||
| 5.1.1. Option Value . . . . . . . . . . . . . . . . . . . . 16 | 5.1.1. Option Value . . . . . . . . . . . . . . . . . . . . 18 | |||
| 5.2. CoAP Option Content-Format and Accept Fields . . . . . . 19 | 5.2. CoAP Option Content-Format and Accept Fields . . . . . . 20 | |||
| 5.3. CoAP Option Max-Age, Uri-Host, and Uri-Port Fields . . . 19 | 5.3. CoAP Option Max-Age, Uri-Host, and Uri-Port Fields . . . 21 | |||
| 5.4. CoAP Option Uri-Path and Uri-Query Fields . . . . . . . . 19 | 5.4. CoAP Option Uri-Path and Uri-Query Fields . . . . . . . . 21 | |||
| 5.5. CoAP Option Size1, Size2, Proxy-Uri, and Proxy-Scheme | 5.5. CoAP Option Size1, Size2, Proxy-Uri, and Proxy-Scheme | |||
| Fields . . . . . . . . . . . . . . . . . . . . . . . . . 21 | Fields . . . . . . . . . . . . . . . . . . . . . . . . . 22 | |||
| 5.6. CoAP Option Proxy-Cri and Proxy-Scheme-Number Fields . . 21 | 5.6. CoAP Option Proxy-Cri and Proxy-Scheme-Number Fields . . 23 | |||
| 5.7. CoAP Location-Path and Location-Query Fields . . . . . . 22 | 5.7. CoAP Location-Path and Location-Query Fields . . . . . . 23 | |||
| 5.8. CoAP Option ETag and If-Match Fields . . . . . . . . . . 22 | 5.8. CoAP Option ETag and If-Match Fields . . . . . . . . . . 23 | |||
| 5.9. CoAP Option If-None-Match . . . . . . . . . . . . . . . . 22 | 5.9. CoAP Option If-None-Match . . . . . . . . . . . . . . . . 24 | |||
| 5.10. CoAP Option Hop-Limit Field . . . . . . . . . . . . . . . 22 | 5.10. CoAP Option Hop-Limit Field . . . . . . . . . . . . . . . 24 | |||
| 5.11. CoAP Option Echo Field . . . . . . . . . . . . . . . . . 23 | 5.11. CoAP Option Echo Field . . . . . . . . . . . . . . . . . 24 | |||
| 5.12. CoAP Option Request-Tag Field . . . . . . . . . . . . . . 23 | 5.12. CoAP Option Request-Tag Field . . . . . . . . . . . . . . 25 | |||
| 5.13. CoAP Option EDHOC Field . . . . . . . . . . . . . . . . . 24 | 5.13. CoAP Option EDHOC Field . . . . . . . . . . . . . . . . . 25 | |||
| 6. Compression of CoAP Extensions . . . . . . . . . . . . . . . 24 | 6. Compression of CoAP Extensions . . . . . . . . . . . . . . . 25 | |||
| 6.1. Block-Wise Transfers . . . . . . . . . . . . . . . . . . 24 | 6.1. Block-Wise Transfers . . . . . . . . . . . . . . . . . . 25 | |||
| 6.2. Observe . . . . . . . . . . . . . . . . . . . . . . . . . 24 | 6.2. Observe . . . . . . . . . . . . . . . . . . . . . . . . . 26 | |||
| 6.3. No-Response . . . . . . . . . . . . . . . . . . . . . . . 25 | 6.3. No-Response . . . . . . . . . . . . . . . . . . . . . . . 26 | |||
| 6.4. OSCORE . . . . . . . . . . . . . . . . . . . . . . . . . 25 | 6.4. OSCORE . . . . . . . . . . . . . . . . . . . . . . . . . 26 | |||
| 7. Compression of the CoAP Payload Marker . . . . . . . . . . . 27 | 7. Compression of the CoAP Payload Marker . . . . . . . . . . . 29 | |||
| 8. Examples of CoAP Header Compression . . . . . . . . . . . . . 28 | 8. Examples of CoAP Header Compression . . . . . . . . . . . . . 29 | |||
| 8.1. Mandatory Header with CON Message . . . . . . . . . . . . 28 | 8.1. Mandatory Header with CON Message . . . . . . . . . . . . 29 | |||
| 8.2. OSCORE Compression . . . . . . . . . . . . . . . . . . . 30 | 8.2. OSCORE Compression . . . . . . . . . . . . . . . . . . . 31 | |||
| 8.3. Example OSCORE Compression . . . . . . . . . . . . . . . 34 | 8.3. Example OSCORE Compression . . . . . . . . . . . . . . . 35 | |||
| 9. CoAP Header Compression with Proxies . . . . . . . . . . . . 46 | 9. CoAP Header Compression with Proxies . . . . . . . . . . . . 47 | |||
| 9.1. Without End-to-End Security . . . . . . . . . . . . . . . 46 | 9.1. Without End-to-End Security . . . . . . . . . . . . . . . 48 | |||
| 9.2. With End-to-End Security . . . . . . . . . . . . . . . . 47 | 9.2. With End-to-End Security . . . . . . . . . . . . . . . . 48 | |||
| 10. Examples of CoAP Header Compression with Proxies . . . . . . 48 | 10. Examples of CoAP Header Compression with Proxies . . . . . . 50 | |||
| 10.1. Without End-to-End Security . . . . . . . . . . . . . . 51 | 10.1. Without End-to-End Security . . . . . . . . . . . . . . 52 | |||
| 10.2. With End-to-End Security . . . . . . . . . . . . . . . . 58 | 10.2. With End-to-End Security . . . . . . . . . . . . . . . . 59 | |||
| 11. CoAP Fields . . . . . . . . . . . . . . . . . . . . . . . . . 73 | 11. CoAP Fields . . . . . . . . . . . . . . . . . . . . . . . . . 74 | |||
| 12. Security Considerations . . . . . . . . . . . . . . . . . . . 75 | 12. Security Considerations . . . . . . . . . . . . . . . . . . . 76 | |||
| 12.1. YANG Module . . . . . . . . . . . . . . . . . . . . . . 77 | 13. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 78 | |||
| 13. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 77 | 13.1. Static Context Header Compression (SCHC) Parameters . . 78 | |||
| 13.1. IETF XML . . . . . . . . . . . . . . . . . . . . . . . . 77 | 13.2. SCHC Compression of CoAP Fields . . . . . . . . . . . . 78 | |||
| 13.2. YANG Module Names . . . . . . . . . . . . . . . . . . . 77 | 13.2.1. Intended Use . . . . . . . . . . . . . . . . . . . . 78 | |||
| 13.3. Static Context Header Compression (SCHC) Parameters . . 78 | 13.2.2. Structure of Entries . . . . . . . . . . . . . . . . 79 | |||
| 13.4. SCHC Compression of CoAP Fields . . . . . . . . . . . . 78 | 13.3. Expert Review Instructions . . . . . . . . . . . . . . . 80 | |||
| 13.4.1. Intended Use . . . . . . . . . . . . . . . . . . . . 78 | ||||
| 13.4.2. Structure of Entries . . . . . . . . . . . . . . . . 79 | ||||
| 13.5. Expert Review Instructions . . . . . . . . . . . . . . . 80 | ||||
| 14. References . . . . . . . . . . . . . . . . . . . . . . . . . 81 | 14. References . . . . . . . . . . . . . . . . . . . . . . . . . 81 | |||
| 14.1. Normative References . . . . . . . . . . . . . . . . . . 81 | 14.1. Normative References . . . . . . . . . . . . . . . . . . 81 | |||
| 14.2. Informative References . . . . . . . . . . . . . . . . . 83 | 14.2. Informative References . . . . . . . . . . . . . . . . . 83 | |||
| Appendix A. YANG Data Model . . . . . . . . . . . . . . . . . . 84 | Appendix A. Document Updates . . . . . . . . . . . . . . . . . . 84 | |||
| Appendix B. Document Updates . . . . . . . . . . . . . . . . . . 88 | A.1. Version -09 to -10 . . . . . . . . . . . . . . . . . . . 84 | |||
| B.1. Version -08 to -09 . . . . . . . . . . . . . . . . . . . 88 | A.2. Version -08 to -09 . . . . . . . . . . . . . . . . . . . 85 | |||
| B.2. Version -07 to -08 . . . . . . . . . . . . . . . . . . . 88 | A.3. Version -07 to -08 . . . . . . . . . . . . . . . . . . . 85 | |||
| B.3. Version -06 to -07 . . . . . . . . . . . . . . . . . . . 89 | A.4. Version -06 to -07 . . . . . . . . . . . . . . . . . . . 85 | |||
| B.4. Version -05 to -06 . . . . . . . . . . . . . . . . . . . 89 | A.5. Version -05 to -06 . . . . . . . . . . . . . . . . . . . 86 | |||
| B.5. Version -04 to -05 . . . . . . . . . . . . . . . . . . . 89 | A.6. Version -04 to -05 . . . . . . . . . . . . . . . . . . . 86 | |||
| B.6. Version -03 to -04 . . . . . . . . . . . . . . . . . . . 90 | A.7. Version -03 to -04 . . . . . . . . . . . . . . . . . . . 87 | |||
| B.7. Version -02 to -03 . . . . . . . . . . . . . . . . . . . 90 | A.8. Version -02 to -03 . . . . . . . . . . . . . . . . . . . 87 | |||
| B.8. Version -01 to -02 . . . . . . . . . . . . . . . . . . . 91 | A.9. Version -01 to -02 . . . . . . . . . . . . . . . . . . . 87 | |||
| B.9. Version -00 to -01 . . . . . . . . . . . . . . . . . . . 91 | A.10. Version -00 to -01 . . . . . . . . . . . . . . . . . . . 88 | |||
| Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 91 | Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 88 | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 91 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 88 | |||
| 1. Introduction | 1. Introduction | |||
| The Constrained Application Protocol (CoAP) [RFC7252] is a request/ | The Constrained Application Protocol (CoAP) [RFC7252] is a request/ | |||
| response protocol designed for microcontrollers with small RAM and | response protocol designed for microcontrollers with small RAM and | |||
| ROM, and optimized for services based on REST (Representational State | ROM, and optimized for services based on REST (Representational State | |||
| Transfer). Although constrained devices are a leading factor in the | Transfer). Although constrained devices are a leading factor in the | |||
| design of CoAP, a CoAP header's size is still too large for Low-Power | design of CoAP, a CoAP header's size is still too large for Low-Power | |||
| Wide-Area Networks (LPWANs). Applying the Static Context Header | Wide-Area Networks (LPWANs). Applying the Static Context Header | |||
| Compression and fragmentation (SCHC) framework to CoAP headers is | Compression and fragmentation (SCHC) framework to CoAP headers is | |||
| particularly important for improving performance or for enabling the | particularly important for improving performance or for enabling the | |||
| use of CoAP over LPWAN technologies. | use of CoAP over LPWAN technologies. | |||
| [RFC8724] defines the SCHC framework, which includes a header | [RFC8724] defines the SCHC framework, which includes a header | |||
| compression mechanism for LPWANs that is based on a static context. | compression mechanism for LPWANs that is based on a static SCHC | |||
| Section 5 of [RFC8724] explains where compression and decompression | Context. Section 5 of [RFC8724] explains where compression and | |||
| occur in the architecture. The SCHC compression scheme assumes as a | decompression occur in the architecture. The SCHC compression scheme | |||
| prerequisite that both endpoints know the static context before | assumes as a prerequisite that communicating SCHC Instances share the | |||
| transmission. The way the context is configured, provisioned, or | SCHC Context before message transmission. The way the SCHC Context | |||
| exchanged is out of the scope of this document. | is configured, provisioned, or exchanged is out of the scope of this | |||
| document. | ||||
| Since CoAP is an application-layer protocol, compressing CoAP headers | Since CoAP is an application-layer protocol, compressing CoAP headers | |||
| requires installing common Rules between the two SCHC instances. | requires installing on the communicating SCHC Instances a common SCHC | |||
| SCHC compression may apply at two different levels: at the IP and UDP | Context that contains the common SCHC Set of Rules (SoR). SCHC | |||
| compression may apply at two different levels: at the IP and UDP | ||||
| level in the LPWAN, as well as at the application level for CoAP. | level in the LPWAN, as well as at the application level for CoAP. | |||
| These two compression techniques may be independent. Both follow the | These two compression techniques may be independent; they are then | |||
| same principle as that described in [RFC8724]. As different entities | performed by distinct SCHC Instances, each operating with its own | |||
| manage the CoAP compression process at different levels, the SCHC | SCHC Context. Both follow the same principle as that described in | |||
| Rules driving the compression/decompression are also different. | [RFC8724]. As different entities manage the CoAP compression process | |||
| [RFC8724] describes how to use SCHC for IP and UDP headers. This | at different levels, the SCHC Rules driving the compression/ | |||
| document specifies how to apply SCHC compression to CoAP headers. | decompression are also different. [RFC8724] describes how to use | |||
| SCHC for IP and UDP headers. This document specifies how to apply | ||||
| SCHC compression to CoAP headers. | ||||
| SCHC compresses and decompresses headers based on common contexts | SCHC compresses and decompresses headers based on a common SCHC | |||
| between Devices. The SCHC context includes multiple Rules. Each | Context shared between SCHC Instances. The SCHC Context includes | |||
| Rule can match the header fields to specific values or ranges of | multiple Rules in its SCHC Set of Rules (SoR). Each Rule can match | |||
| values. If a Rule matches, then the Rule is selected. When | the header fields to specific values or ranges of values. If a Rule | |||
| performing compression, the matched header fields are replaced by the | matches, then the Rule is selected. When performing compression, the | |||
| RuleID and the Compression Residue that contains the residual bits of | matched header fields are replaced by the RuleID and the Compression | |||
| the compression. Thus, different Rules may correspond to different | Residue that contains the residual bits of the compression. Thus, | |||
| protocol headers in the packet that a Device expects to send or | different Rules may correspond to different protocol headers in the | |||
| receive. | packet that a Device expects to send or receive. | |||
| A Rule describes the packets' entire header with an ordered list of | A Rule describes the packets' entire header with an ordered list of | |||
| Field Descriptors (see Section 7 of [RFC8724]). In turn, each Field | Field Descriptors (see Section 7 of [RFC8724]). In turn, each Field | |||
| Descriptor contains the Field ID (FID), Field Length (FL), and Field | Descriptor contains the Field ID (FID), Field Length (FL), and Field | |||
| Position (FP), as well as a Direction Indicator (DI) (upstream, | Position (FP), as well as a Direction Indicator (DI) (upstream, | |||
| downstream, or bidirectional) and some associated Target Values | downstream, or bidirectional) and some associated Target Values | |||
| (TVs). The DI allows the compression to be based on the best TV for | (TVs). The DI allows the compression to be based on the best TV for | |||
| the Field Descriptor, when the TV to consider is different for the | the Field Descriptor, when the TV to consider is different for the | |||
| different transmission directions. Therefore, a field may be | different transmission directions. Therefore, a field may be | |||
| described several times in the same Rule. | described several times in the same Rule. | |||
| skipping to change at page 7, line 21 ¶ | skipping to change at page 7, line 21 ¶ | |||
| 1.1. Terminology | 1.1. Terminology | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
| "OPTIONAL" in this document are to be interpreted as described in | "OPTIONAL" in this document are to be interpreted as described in | |||
| BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all | BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all | |||
| capitals, as shown here. | capitals, as shown here. | |||
| Readers are expected to be familiar with the terms and concepts | Readers are expected to be familiar with the terms and concepts | |||
| related to the SCHC framework [RFC8724], CoAP [RFC7252], and the | related to the SCHC framework defined in [RFC8724]. | |||
| security protocols OSCORE [RFC8613] and Group Object Security for | ||||
| Constrained RESTful Environments (Group OSCORE) | This document uses the following terms that reflect the terminology | |||
| [I-D.ietf-core-oscore-groupcomm]. | introduced in [I-D.ietf-schc-architecture]. They all include the | |||
| word "SCHC" followed by a word that starts with an uppercase letter, | ||||
| in order to avoid ambiguities with similar terms pertaining to other | ||||
| protocols. | ||||
| * SCHC Endpoint: A logical entity that provides SCHC functionality | ||||
| by hosting the SCHC processing code, rather than a physical | ||||
| device. Multiple SCHC Endpoints can operate on the same physical | ||||
| equipment. | ||||
| * SCHC Instance: A logical component of a SCHC Endpoint that | ||||
| executes the actual SCHC operations, e.g., compressing and | ||||
| decompressing headers, or fragmenting and reassembling packets. | ||||
| Multiple SCHC Instances can coexist on the same SCHC Endpoint, but | ||||
| each SCHC Instance operates independently, with its own SCHC | ||||
| Context and configuration. | ||||
| * SCHC Set of Rules (SoR): The collection of Compression and | ||||
| Decompression (C/D), Fragmentation and Reassembly (F/R), and no- | ||||
| compression Rules available to a SCHC Instance. | ||||
| * SCHC Context: A SCHC SoR together with metadata, shared by two or | ||||
| more SCHC Instances. Metadata may, for example, refer to a data | ||||
| model or a parser compatible with the Rule format. | ||||
| * SCHC Session: A communication session between two or more SCHC | ||||
| Instances that share a common SCHC Context for SCHC operations. | ||||
| Readers are also expected to be familiar with the terms and concepts | ||||
| related to: | ||||
| * CoAP [RFC7252]. A notable term is "endpoint", i.e., "[a]n entity | ||||
| participating in the CoAP protocol". This is not to be confused | ||||
| with the term "SCHC Endpoint". | ||||
| * The security protocols OSCORE [RFC8613] and Group Object Security | ||||
| for Constrained RESTful Environments (Group OSCORE) | ||||
| [I-D.ietf-core-oscore-groupcomm]. A notable term is "OSCORE | ||||
| Security Context", denoting the set of information elements | ||||
| necessary to carry out the cryptographic operations in OSCORE. | ||||
| Although not used in this document, the equivalent term "Group | ||||
| OSCORE Security Context" applies to Group OSCORE and its | ||||
| cryptographic operations. These are not to be confused with the | ||||
| term "SCHC Context". | ||||
| Finally, building on the term "endpoint" from [RFC7252] listed above, | ||||
| this document uses the following terminology: | ||||
| * The terms "origin endpoint" and "application endpoint" | ||||
| interchangeably denote an origin CoAP client or an origin CoAP | ||||
| server. | ||||
| * The terms "sender endpoint" and "recipient endpoint" denote an | ||||
| endpoint that sends and receives a CoAP message, respectively. | ||||
| * The term "OSCORE endpoint" denotes an endpoint that processes a | ||||
| CoAP message using OSCORE or Group OSCORE. | ||||
| The terms "endpoint", "origin endpoint", "application endpoint", | ||||
| "sender endpoint", "recipient endpoint", and "OSCORE endpoint" only | ||||
| pertain to CoAP and (Group) OSCORE. That is, they do not denote a | ||||
| SCHC Endpoint. If any such endpoint is also a SCHC Endpoint, then | ||||
| the SCHC operations that it performs are executed by a SCHC Instance | ||||
| within that SCHC Endpoint. | ||||
| 2. SCHC Applicability to CoAP | 2. SCHC Applicability to CoAP | |||
| SCHC compression for CoAP headers MAY be done in conjunction with the | SCHC compression for CoAP headers MAY be done in conjunction with the | |||
| lower layers (IPv6/UDP) or independently. The SCHC adaptation layers | lower layers (IPv6/UDP) or independently. The SCHC adaptation layers | |||
| described in Section 5 of [RFC8724] may be used as shown in Figure 1, | described in Section 5 of [RFC8724] may be used as shown in Figure 1, | |||
| Figure 2, and Figure 3 below. | Figure 2, and Figure 3 below. | |||
| In the first example depicted in Figure 1, a Rule compresses the | In the first example depicted in Figure 1, a Rule compresses the | |||
| complete header stack from IPv6 to CoAP. In this case, the Device | complete header stack from IPv6 to CoAP. In this case, the Device | |||
| and the Network Gateway (NGW) perform SCHC Compression/Decompression | and the Network Gateway (NGW) each comprise a SCHC Endpoint with a | |||
| (SCHC C/D), see [RFC8724]). The application communicating with the | SCHC Instance. These SCHC Instances share a common SCHC Context and | |||
| Device does not implement SCHC C/D. | communicate using a SCHC Session. The application communicating with | |||
| the Device does not implement SCHC C/D and does not comprise a SCHC | ||||
| Endpoint. | ||||
| (Device) (NGW) (App) | (Device) (NGW) (App) | |||
| +--------+ +--------+ | +--------+ +--------+ | |||
| | CoAP | | CoAP | | | CoAP | | CoAP | | |||
| +--------+ +--------+ | +--------+ +--------+ | |||
| | UDP | | UDP | | | UDP | | UDP | | |||
| +--------+ +----------------+ +--------+ | +--------+ +----------------+ +--------+ | |||
| | IPv6 | | IPv6 | | IPv6 | | | IPv6 | | IPv6 | | IPv6 | | |||
| +--------+ +--------+-------+ +--------+ | +--------+ +--------+-------+ +--------+ | |||
| | SCHC | | SCHC | | | | | | SCHC | | SCHC | | | | | |||
| +--------+ +--------+ + + + | +--------+ +--------+ + + + | |||
| | LPWAN | | LPWAN | | | | | | LPWAN | | LPWAN | | | | | |||
| +--------+ +--------+-------+ +--------+ | +--------+ +--------+-------+ +--------+ | |||
| ((((LPWAN)))) ------ Internet ------- | ((((LPWAN)))) ------ Internet ------- | |||
| Figure 1: Compression/Decompression at the LPWAN Boundary. | Figure 1: Compression/Decompression at the LPWAN Boundary. | |||
| Figure 1 shows the use of SCHC header compression above Layer 2 in | Figure 1 shows the use of SCHC header compression above Layer 2 in | |||
| the Device and the NGW. The SCHC layer receives non-encrypted | the Device and the NGW. The SCHC Instance at the Device receives | |||
| packets and can apply compression Rules to all the headers in the | non-encrypted packets and applies a matching Rule from its SCHC | |||
| stack. On the other end, the NGW receives the SCHC packet and | Context to all the headers in the stack. On the other end, the NGW | |||
| reconstructs the headers using the Rule and the Compression Residue. | receives the SCHC packet, internally routes it to its correct SCHC | |||
| After the decompression, the NGW forwards the IPv6 packet toward the | Instance, and reconstructs the headers using a matching Rule and the | |||
| destination. The same process applies in the other direction when a | Compression Residue. After the decompression, the NGW forwards the | |||
| non-encrypted packet arrives at the NGW. Thanks to the IP forwarding | IPv6 packet toward the destination. The same process applies in the | |||
| based on the IPv6 prefix, the NGW identifies the Device and | other direction when a non-encrypted packet arrives at the NGW. | |||
| compresses headers using the Device's Rules. | Thanks to the IP forwarding based on the IPv6 prefix, the NGW | |||
| identifies the Device and compresses headers using a matching Rule | ||||
| from the SCHC Context of the appropriate SCHC Instance. | ||||
| In the second example depicted in Figure 2, SCHC compression is | In the second example depicted in Figure 2, SCHC compression is | |||
| applied in the CoAP layer, compressing the CoAP header independently | applied in the CoAP layer, compressing the CoAP header independently | |||
| of the other layers. The RuleID, Compression Residue, and CoAP | of the other layers. The RuleID, Compression Residue, and CoAP | |||
| payload are encrypted using a mechanism such as DTLS [RFC9147]. Only | payload are encrypted using a mechanism such as DTLS [RFC9147]. Only | |||
| the other end (App) can decipher the information. If needed, layers | the other end (App) can decrypt the incoming information and then | |||
| below use SCHC to compress the header as defined in [RFC8724] | perform SCHC decompression, using a matching Rule from the SCHC | |||
| (represented by dotted lines in the figure). | Context of the appropriate SCHC Instance. If needed, layers below | |||
| use separate SCHC Instances to compress and decompress the | ||||
| corresponding headers as defined in [RFC8724] (represented by dotted | ||||
| lines in the figure). | ||||
| This use case needs an end-to-end context initialization between the | This use case needs that an end-to-end SCHC Instance and SCHC Context | |||
| Device and the application. The context initialization is out of | therein are established between the Device and the application. The | |||
| scope for this document. | establishment of the SCHC Instance and SCHC Context is out of scope | |||
| for this document. | ||||
| (Device) (NGW) (App) | (Device) (NGW) (App) | |||
| +--------+ +--------+ | +--------+ +--------+ | |||
| | CoAP | | CoAP | | | CoAP | | CoAP | | |||
| +--------+ +--------+ | +--------+ +--------+ | |||
| | SCHC | | SCHC | | | SCHC | | SCHC | | |||
| +--------+ +--------+ | +--------+ +--------+ | |||
| | DTLS | | DTLS | | | DTLS | | DTLS | | |||
| +--------+ +--------+ | +--------+ +--------+ | |||
| skipping to change at page 9, line 6 ¶ | skipping to change at page 10, line 32 ¶ | |||
| .......... .................. .......... | .......... .................. .......... | |||
| . schc . . schc . . . . | . schc . . schc . . . . | |||
| .......... .......... . . . | .......... .......... . . . | |||
| . lpwan . . lpwan . . . . | . lpwan . . lpwan . . . . | |||
| .......... .................. .......... | .......... .................. .......... | |||
| ((((LPWAN)))) ------ Internet ------- | ((((LPWAN)))) ------ Internet ------- | |||
| Figure 2: Standalone CoAP End-to-End Compression/Decompression. | Figure 2: Standalone CoAP End-to-End Compression/Decompression. | |||
| The third example depicted in Figure 3 shows the use of the security | The third example depicted in Figure 3 shows the use of the security | |||
| protocol OSCORE [RFC8613]. In this case, SCHC needs two Rules to | protocol OSCORE [RFC8613]. In this case, the CoAP header is | |||
| compress the CoAP header. A first Rule focuses on the Inner header. | compressed by using in sequence two distinct SCHC Instances on the | |||
| The result of this first compression is encrypted using OSCORE. | same SCHC Endpoint, at the Device or at the application. That is, a | |||
| Then, a second Rule compresses the Outer header including the CoAP | matching Rule from the SCHC Context of a first SCHC Instance is used | |||
| option OSCORE. | to compress the Inner header. The result of this first compression | |||
| is encrypted using OSCORE. Then, a matching Rule from the SCHC | ||||
| Context of a second SCHC Instance is used to compress the Outer | ||||
| header including the CoAP option OSCORE. | ||||
| (Device) (NGW) (App) | (Device) (NGW) (App) | |||
| +--------+ +--------+ | +--------+ +--------+ | |||
| | CoAP | | CoAP | | | CoAP | | CoAP | | |||
| | Inner | | Inner | | | Inner | | Inner | | |||
| +--------+ +--------+ | +--------+ +--------+ | |||
| | SCHC | | SCHC | | | SCHC | | SCHC | | |||
| | Inner | | Inner | | | Inner | | Inner | | |||
| +--------+ +--------+ | +--------+ +--------+ | |||
| skipping to change at page 9, line 39 ¶ | skipping to change at page 11, line 32 ¶ | |||
| . ipv6 . . ipv6 . . ipv6 . | . ipv6 . . ipv6 . . ipv6 . | |||
| .......... .................. .......... | .......... .................. .......... | |||
| . schc . . schc . . . . | . schc . . schc . . . . | |||
| .......... .......... . . . | .......... .......... . . . | |||
| . lpwan . . lpwan . . . . | . lpwan . . lpwan . . . . | |||
| .......... .................. .......... | .......... .................. .......... | |||
| ((((LPWAN)))) ------ Internet ------- | ((((LPWAN)))) ------ Internet ------- | |||
| Figure 3: Compression/Decompression when Using OSCORE. | Figure 3: Compression/Decompression when Using OSCORE. | |||
| In the case of several SCHC instances as shown in Figure 2 and | In the case of several SCHC Instances as shown in Figure 2 and | |||
| Figure 3, the Rules may come from different provisioning domains. | Figure 3, each SCHC Instance operates independently with its own SCHC | |||
| Context. The SCHC Contexts can be independently provided and | ||||
| managed. | ||||
| This document focuses on CoAP compression, as represented by the | This document focuses on CoAP compression, as represented by the | |||
| dashed boxes in the previous figures. | dashed boxes in the previous figures. | |||
| 3. CoAP Headers Compressed with SCHC | 3. CoAP Headers Compressed with SCHC | |||
| The use of SCHC over the CoAP header relies on the same principles | The use of SCHC over the CoAP header relies on the same principles | |||
| and compression/decompression techniques used for IP and UDP headers, | and compression/decompression techniques used for IP and UDP headers, | |||
| as explained in [RFC8724]. For CoAP, the SCHC Rules description uses | as explained in [RFC8724]. For CoAP, the SCHC Rules description uses | |||
| the direction information to optimize the compression by reducing the | the direction information to optimize the compression by reducing the | |||
| skipping to change at page 11, line 12 ¶ | skipping to change at page 13, line 8 ¶ | |||
| SCHC does not need to send it. In IPv6 and UDP headers, the | SCHC does not need to send it. In IPv6 and UDP headers, the | |||
| fields have a fixed size, known by definition. | fields have a fixed size, known by definition. | |||
| On the other hand, some CoAP header fields have variable lengths | On the other hand, some CoAP header fields have variable lengths | |||
| and the Rule description makes it possible to specify it. For | and the Rule description makes it possible to specify it. For | |||
| example, the size of the Token field may vary from 0 to 65804 | example, the size of the Token field may vary from 0 to 65804 | |||
| bytes [RFC8974], and the CoAP options rely on the Type-Length- | bytes [RFC8974], and the CoAP options rely on the Type-Length- | |||
| Value encoding format to specify the size of the actual option | Value encoding format to specify the size of the actual option | |||
| value in bytes. | value in bytes. | |||
| Given a Rule description, the following defines how the FL is used | Given a Rule description and building on Section 7.4.2 of | |||
| within the Field Descriptor corresponding to a variable-length | [RFC8724], the following defines how the FL is used within the | |||
| field. | Field Descriptor corresponding to a variable-length field. | |||
| If the CDA in the Field Descriptor is set to "not-sent" or to | ||||
| "mapping-sent", then the FL is not set. In fact, the field length | ||||
| can always be determined based on what is specified in the TV of | ||||
| the Field Descriptor. | ||||
| Otherwise, the FL can specify an exact length in bits, if it is | ||||
| known in advance that the present header field is going to be used | ||||
| with such a length. More generally and building on Section 7.4.2 | ||||
| of [RFC8724], the following applies when doing SCHC compression of | ||||
| a variable-length field for which it is not possible to specify an | ||||
| exact, expected length in the FL of the corresponding Field | ||||
| Descriptor. | ||||
| If the field compression relies on the CDA "value-sent" or LSB, | If the field compression relies on the CDA "value-sent" or LSB, | |||
| then a function "var" can be used for the FL in the Field | then a function "var" can be used for the FL in the Field | |||
| Descriptor, with byte being the unit used for the residue value's | Descriptor, with byte being the unit used for the residue value's | |||
| size. In such case, the residue value's size prepended to the | size. In such case, the residue value's size prepended to the | |||
| residue value encodes the size of the residue value in bytes, and | residue value encodes the size of the residue value in bytes, and | |||
| the decompressor MUST interpret the residue value as consisting of | the decompressor MUST interpret the residue value as consisting of | |||
| exactly that number of bytes. | exactly that number of bytes. | |||
| Alternatively to "var", a function "var_X" can be used for the FL | Alternatively to "var", a function "var_X" can be used for the FL | |||
| skipping to change at page 12, line 19 ¶ | skipping to change at page 13, line 45 ¶ | |||
| example, if the function "var_bit" is used and the residue value's | example, if the function "var_bit" is used and the residue value's | |||
| size for the compressed field is 17 bits, that size is encoded as | size for the compressed field is 17 bits, that size is encoded as | |||
| 0b1111 00010001. | 0b1111 00010001. | |||
| As an alternative to the function "var" or to a function "var_X", | As an alternative to the function "var" or to a function "var_X", | |||
| if the length of the present field can be determined from the | if the length of the present field can be determined from the | |||
| value of a previous field in the CoAP header, then it is possible | value of a previous field in the CoAP header, then it is possible | |||
| to define a specific function for the FL in the Field Descriptor | to define a specific function for the FL in the Field Descriptor | |||
| of the present field, with that function returning the length of | of the present field, with that function returning the length of | |||
| the field in the unit specified with the function (e.g., see the | the field in the unit specified with the function (e.g., see the | |||
| "tkl" function defined in Section 4.6). This holds irrespective | "tkl" function defined in Section 4.6). | |||
| of the CDA used for compressing the field. | ||||
| Instead, if the field compression relies on the CDA "not-sent" or | ||||
| "mapping-sent", then the same as above applies, with the following | ||||
| differences: | ||||
| - The length of the present field is consistent: | ||||
| o With the length of the value that is specified in the TV of | ||||
| the Field Descriptor, if CDA is set to "not sent"; or | ||||
| o With the length of at least one of the values that are | ||||
| specified in the TV of the Field Descriptor, if CDA is set | ||||
| to "mapping-sent". | ||||
| - The function "var" (or any alternative function "var_X") used | ||||
| in the FL of the Field Descriptor still indicates that the | ||||
| length of the present field is variable. | ||||
| However, since the CDA in the Field Descriptor is such that | ||||
| SCHC does not send the residue value's size in the Compression | ||||
| Residue (see Section 7.4.2 of [RFC8724]), the unit associated | ||||
| with the function plays no role. | ||||
| * A field can appear several times in a CoAP header. This is | * A field can appear several times in a CoAP header. This is | |||
| typically the case for elements of a URI (i.e., path segments or | typically the case for elements of a URI (i.e., path segments or | |||
| query parameters). The SCHC specification [RFC8724] allows an FID | query parameters). The SCHC specification [RFC8724] allows an FID | |||
| to appear several times in the Rule and uses the Field Position | to appear several times in the Rule and uses the Field Position | |||
| (FP) to identify the correct instance, thus preventing MO's | (FP) to identify the correct occurrence of that field, thus | |||
| possible ambiguities. | preventing MO's possible ambiguities. | |||
| * Field Lengths defined in CoAP can be too large when it comes to | * Field Lengths defined in CoAP can be too large when it comes to | |||
| LPWAN traffic constraints. For instance, this is particularly | LPWAN traffic constraints. For instance, this is particularly | |||
| true for the Message ID field and the Token field. SCHC uses | true for the Message ID field and the Token field. SCHC uses | |||
| different MOs to perform the compression (see Section 7.4 of | different MOs to perform the compression (see Section 7.4 of | |||
| [RFC8724]). In this case, SCHC can apply the Most Significant | [RFC8724]). In this case, SCHC can apply the Most Significant | |||
| Bits (MSBs) MO to reduce the information carried on LPWANs. | Bits (MSBs) MO to reduce the information carried on LPWANs. | |||
| 4. Compression of CoAP Header Fields | 4. Compression of CoAP Header Fields | |||
| skipping to change at page 14, line 5 ¶ | skipping to change at page 16, line 5 ¶ | |||
| If the Token Length field value does not change over time, the SCHC | If the Token Length field value does not change over time, the SCHC | |||
| Rule describes the TV set to that value, the MO set to "equal", and | Rule describes the TV set to that value, the MO set to "equal", and | |||
| the CDA set to "not-sent", thereby eliding the field. | the CDA set to "not-sent", thereby eliding the field. | |||
| Otherwise, if the Token Length field value changes over time, the | Otherwise, if the Token Length field value changes over time, the | |||
| SCHC Rule does not set the TV, while setting the MO to "ignore" and | SCHC Rule does not set the TV, while setting the MO to "ignore" and | |||
| the CDA to "value-sent". The Rule may also use a "match-mapping" MO | the CDA to "value-sent". The Rule may also use a "match-mapping" MO | |||
| to compress the value. | to compress the value. | |||
| Consistent with the above, this section updates the ietf-schc module | ||||
| defined in [RFC9363]. In particular, the definition of the fid-coap- | ||||
| tkl "identity" statement is updated by replacing the argument of its | ||||
| "reference" substatement with the following string: "RFC 8974 | ||||
| Extended Tokens and Stateless Clients in the Constrained Application | ||||
| Protocol (CoAP)". | ||||
| 4.4. CoAP Code Field | 4.4. CoAP Code Field | |||
| The Code field takes value from the "Code" column of the "CoAP Codes" | The Code field takes value from the "Code" column of the "CoAP Codes" | |||
| IANA registry, encoded as specified in Section 3 of [RFC7252]. This | IANA registry, encoded as specified in Section 3 of [RFC7252]. This | |||
| field indicates the Method Code of a CoAP request or the Response | field indicates the Method Code of a CoAP request or the Response | |||
| Code of a CoAP Response, while the value 0.00 indicates an Empty | Code of a CoAP Response, while the value 0.00 indicates an Empty | |||
| message. The compression of the CoAP Code field follows the same | message. The compression of the CoAP Code field follows the same | |||
| principle as that of the CoAP Type field. | principle as that of the CoAP Type field. | |||
| If the Device plays a specific role, SCHC may split the code values | If the Device plays a specific role, SCHC may split the code values | |||
| skipping to change at page 15, line 15 ¶ | skipping to change at page 17, line 5 ¶ | |||
| Instead, SCHC MUST use the value of the Token Length field to define | Instead, SCHC MUST use the value of the Token Length field to define | |||
| the size of the Token field in the Compression Residue. To this end, | the size of the Token field in the Compression Residue. To this end, | |||
| SCHC designates a specific function, "tkl", that the Rule MUST use to | SCHC designates a specific function, "tkl", that the Rule MUST use to | |||
| complete the Field Descriptor. During the decompression, this | complete the Field Descriptor. During the decompression, this | |||
| function returns the length of the Token field in bytes, which is | function returns the length of the Token field in bytes, which is | |||
| specified by the Token Length field as per Section 2.1 of [RFC8974]. | specified by the Token Length field as per Section 2.1 of [RFC8974]. | |||
| This construct avoids ambiguity with the Token Length field and | This construct avoids ambiguity with the Token Length field and | |||
| results in a more efficient compression of the Token field. | results in a more efficient compression of the Token field. | |||
| Consistent with the above, this section updates the ietf-schc module | ||||
| defined in [RFC9363]. In particular, the definition of the fid-coap- | ||||
| token "identity" statement is updated by replacing the argument of | ||||
| its "reference" substatement with the following string: "RFC 8974 | ||||
| Extended Tokens and Stateless Clients in the Constrained Application | ||||
| Protocol (CoAP)". | ||||
| 5. Compression of CoAP Options | 5. Compression of CoAP Options | |||
| CoAP defines the use of options, which are placed after the mandatory | CoAP defines the use of options, which are placed after the mandatory | |||
| header and the Token field and are ordered by option number (see | header and the Token field and are ordered by option number (see | |||
| Section 3 of [RFC7252]). As per Section 3.1 of [RFC7252], each | Section 3 of [RFC7252]). As per Section 3.1 of [RFC7252], each | |||
| option instance in a message relies on a format consisting of an | occurrence of an option in a message relies on a format consisting of | |||
| Option Delta (D), an Option Length (L), and an Option Value (V). | an Option Delta (D), an Option Length (L), and an Option Value (V). | |||
| The Option Delta is used to express the option number of a CoAP | The Option Delta is used to express the option number of a CoAP | |||
| option within a CoAP message, as the difference between the Option | option within a CoAP message, as the difference between the Option | |||
| Number of that option and the Option Number of the previous option in | Number of that option and the Option Number of the previous option in | |||
| that message (or zero for the first option). In the byte- | that message (or zero for the first option). In the byte- | |||
| representation of CoAP options used on the wire, Option Delta is | representation of CoAP options used on the wire, Option Delta is | |||
| encoded either by a 4-bit "Option Delta" field or by that field | encoded either by a 4-bit "Option Delta" field or by that field | |||
| together with an additional 1- or 2-byte "Option Delta (Extended)" | together with an additional 1- or 2-byte "Option Delta (Extended)" | |||
| field. | field. | |||
| skipping to change at page 16, line 12 ¶ | skipping to change at page 17, line 41 ¶ | |||
| specified after the Field Descriptors related to the CoAP header | specified after the Field Descriptors related to the CoAP header | |||
| fields discussed in Section 4. | fields discussed in Section 4. | |||
| In particular, the Field Descriptors related to CoAP options MUST be | In particular, the Field Descriptors related to CoAP options MUST be | |||
| listed in the same order according to which the corresponding CoAP | listed in the same order according to which the corresponding CoAP | |||
| options appear in the CoAP message (i.e., ordered by option number). | options appear in the CoAP message (i.e., ordered by option number). | |||
| If a SCHC Rule is intended to compress a CoAP message where a | If a SCHC Rule is intended to compress a CoAP message where a | |||
| repeatable CoAP option is specified multiple times, then the SCHC | repeatable CoAP option is specified multiple times, then the SCHC | |||
| Rule generally includes different Field Descriptors that separately | Rule generally includes different Field Descriptors that separately | |||
| correspond to the different instances of that CoAP option. Those | correspond to the different occurrences of that CoAP option. Those | |||
| Field Descriptors MUST be listed in the same order of the | Field Descriptors MUST be listed in the same order of the | |||
| corresponding CoAP option instances in the CoAP message. In order to | corresponding CoAP option occurrences in the CoAP message. In order | |||
| optimize the compression, a single Field Descriptor MAY pertain to | to optimize the compression, a single Field Descriptor MAY pertain to | |||
| multiple adjacent instances of the same CoAP option that are treated | multiple adjacent occurrences of the same CoAP option that are | |||
| as grouped together (e.g., see Section 5.4). | treated as grouped together (e.g., see Section 5.4). | |||
| As further discussed in [I-D.ietf-schc-universal-option], the | As further discussed in [I-D.ietf-schc-universal-option], the | |||
| composition and use of Field Descriptors for compressing/ | composition and use of Field Descriptors for compressing/ | |||
| decompressing CoAP options can take a "syntactic" approach or a | decompressing CoAP options can take a "syntactic" approach or a | |||
| "semantic" approach. | "semantic" approach. | |||
| The syntactic approach operates faithfully to the byte-representation | The syntactic approach operates faithfully to the byte-representation | |||
| of CoAP options used on the wire. Consequently, it requires multiple | of CoAP options used on the wire. Consequently, it requires multiple | |||
| Field Descriptors for each given instance of CoAP option to be | Field Descriptors for each given occurrence of CoAP option to be | |||
| compressed/decompressed. That is, each of such Field Descriptors | compressed/decompressed. That is, each of such Field Descriptors | |||
| pertains to the compression/decompression of the Option Delta, the | pertains to the compression/decompression of the Option Delta, the | |||
| Option Length, or the Option Value of the CoAP option in question. | Option Length, or the Option Value of the CoAP option in question. | |||
| On the contrary, the typically used semantic approach abstracts away | On the contrary, the typically used semantic approach abstracts away | |||
| from the byte-representation of CoAP options (or, more generally, of | from the byte-representation of CoAP options (or, more generally, of | |||
| protocol header fields) and maps those into generic representations | protocol header fields) and maps those into generic representations | |||
| identified by the FIDs of the related Field Descriptors. The | identified by the FIDs of the related Field Descriptors. The | |||
| semantic approach effectively streamlines Field Descriptors related | semantic approach effectively streamlines Field Descriptors related | |||
| to CoAP options as required to specify only information about the | to CoAP options as required to specify only information about the | |||
| skipping to change at page 19, line 31 ¶ | skipping to change at page 21, line 20 ¶ | |||
| Otherwise, these options' values will be sent in the Compression | Otherwise, these options' values will be sent in the Compression | |||
| Residue, i.e., the SCHC Rule description does not set the TV, while | Residue, i.e., the SCHC Rule description does not set the TV, while | |||
| setting the MO to "ignore" and the CDA to "value-sent". | setting the MO to "ignore" and the CDA to "value-sent". | |||
| 5.4. CoAP Option Uri-Path and Uri-Query Fields | 5.4. CoAP Option Uri-Path and Uri-Query Fields | |||
| The Uri-Path and Uri-Query fields are repeatable options, i.e., the | The Uri-Path and Uri-Query fields are repeatable options, i.e., the | |||
| CoAP header may include them several times and with different values. | CoAP header may include them several times and with different values. | |||
| The SCHC Rule description uses the FP to distinguish the different | The SCHC Rule description uses the FP to distinguish the different | |||
| instances of such options. | occurrences of such options. | |||
| To compress these repeatable field values, SCHC can use a "match- | To compress these repeatable field values, SCHC can use a "match- | |||
| mapping" MO to reduce the size of variable paths or queries. When | mapping" MO to reduce the size of variable paths or queries. When | |||
| doing so, several elements can be regrouped into a single entry in | doing so, several elements can be regrouped into a single entry in | |||
| order to optimize the compression. The numbering of elements does | order to optimize the compression. The numbering of elements does | |||
| not change, and the first matching element sets the MO comparison. | not change, and the first matching element sets the MO comparison. | |||
| For example, as per the Rule descriptions shown in Table 1, SCHC can | For example, as per the Rule descriptions shown in Table 1, SCHC can | |||
| use a single bit in the Compression Residue to code the path segments | use a single bit in the Compression Residue to code the path segments | |||
| "/a/b" or the path segments "/c/d". If regrouping were not allowed, | "/a/b" or the path segments "/c/d". If regrouping were not allowed, | |||
| then 2 bits in the Compression Residue would be needed. At the same | then 2 bits in the Compression Residue would be needed. At the same | |||
| time, SCHC sends the third path element following "/a/b" or "/c/d" as | time, SCHC sends the third path element following "/a/b" or "/c/d" as | |||
| a variable-size field in the Compression Residue. | a variable-size field in the Compression Residue. | |||
| +============+=====+==+====+=========+===============+==============+ | +============+=====+==+====+=========+===============+==============+ | |||
| | FID | FL |FP| DI | TV | MO | CDA | | | FID | FL |FP| DI | TV | MO | CDA | | |||
| +============+=====+==+====+=========+===============+==============+ | +============+=====+==+====+=========+===============+==============+ | |||
| | CoAP. | |1 | Up | ["/a/ | match-mapping | mapping-sent | | | CoAP. | var |1 | Up | ["/a/ | match-mapping | mapping-sent | | |||
| | option(11) | | | | b", | | | | | option(11) | | | | b", | | | | |||
| | | | | | "/c/ | | | | | | | | | "/c/ | | | | |||
| | | | | | d"] | | | | | | | | | d"] | | | | |||
| +------------+-----+--+----+---------+---------------+--------------+ | +------------+-----+--+----+---------+---------------+--------------+ | |||
| | CoAP. | var |3 | Up | | ignore | value-sent | | | CoAP. | var |3 | Up | | ignore | value-sent | | |||
| | option(11) | | | | | | | | | option(11) | | | | | | | | |||
| +------------+-----+--+----+---------+---------------+--------------+ | +------------+-----+--+----+---------+---------------+--------------+ | |||
| Table 1: Complex Path Example. CoAP Option Numbers: 11 (Uri-Path). | Table 1: Complex Path Example. CoAP Option Numbers: 11 (Uri-Path). | |||
| skipping to change at page 21, line 8 ¶ | skipping to change at page 22, line 28 ¶ | |||
| For instance, for a CORECONF path /c/X6?k=eth0, the Rule description | For instance, for a CORECONF path /c/X6?k=eth0, the Rule description | |||
| can be as shown in Table 2. That is, SCHC compresses the first part | can be as shown in Table 2. That is, SCHC compresses the first part | |||
| of the URI path with a "not-sent" CDA. Also, SCHC will send the | of the URI path with a "not-sent" CDA. Also, SCHC will send the | |||
| second element of the URI path preceded by the length (i.e., 0b0010 | second element of the URI path preceded by the length (i.e., 0b0010 | |||
| "X6"), which is followed by the query parameter's value preceded by | "X6"), which is followed by the query parameter's value preceded by | |||
| the length (i.e., 0b0100 "eth0"). | the length (i.e., 0b0100 "eth0"). | |||
| +============+=====+====+====+======+=========+============+ | +============+=====+====+====+======+=========+============+ | |||
| | FID | FL | FP | DI | TV | MO | CDA | | | FID | FL | FP | DI | TV | MO | CDA | | |||
| +============+=====+====+====+======+=========+============+ | +============+=====+====+====+======+=========+============+ | |||
| | CoAP. | | 1 | Up | "c" | equal | not-sent | | | CoAP. | var | 1 | Up | "c" | equal | not-sent | | |||
| | option(11) | | | | | | | | | option(11) | | | | | | | | |||
| +------------+-----+----+----+------+---------+------------+ | +------------+-----+----+----+------+---------+------------+ | |||
| | CoAP. | var | 2 | Up | | ignore | value-sent | | | CoAP. | var | 2 | Up | | ignore | value-sent | | |||
| | option(11) | | | | | | | | | option(11) | | | | | | | | |||
| +------------+-----+----+----+------+---------+------------+ | +------------+-----+----+----+------+---------+------------+ | |||
| | CoAP. | var | 1 | Up | "k=" | MSB(16) | LSB | | | CoAP. | var | 1 | Up | "k=" | MSB(16) | LSB | | |||
| | option(15) | | | | | | | | | option(15) | | | | | | | | |||
| +------------+-----+----+----+------+---------+------------+ | +------------+-----+----+----+------+---------+------------+ | |||
| Table 2: CORECONF URI compression. CoAP Option Numbers: | Table 2: CORECONF URI compression. CoAP Option Numbers: | |||
| skipping to change at page 27, line 38 ¶ | skipping to change at page 29, line 10 ¶ | |||
| send the size of the residue resulting from the compression of the | send the size of the residue resulting from the compression of the | |||
| piv subfield, which is otherwise requested for variable-size fields | piv subfield, which is otherwise requested for variable-size fields | |||
| when the CDA specified in the Field Descriptor is "value-sent" or LSB | when the CDA specified in the Field Descriptor is "value-sent" or LSB | |||
| (see Section 7.4.2 of [RFC8724]). | (see Section 7.4.2 of [RFC8724]). | |||
| Instead, SCHC MUST use the value n from the first byte of the OSCORE | Instead, SCHC MUST use the value n from the first byte of the OSCORE | |||
| Option value to define the size of the piv subfield in the | Option value to define the size of the piv subfield in the | |||
| Compression Residue. To this end, SCHC designates a specific | Compression Residue. To this end, SCHC designates a specific | |||
| function, "osc.piv", that the Rule MUST use to complete the Field | function, "osc.piv", that the Rule MUST use to complete the Field | |||
| Descriptor. During the decompression, this function returns the | Descriptor. During the decompression, this function returns the | |||
| value n, hence the length of the piv subfield in bytes. | value n, hence the length of the piv subfield in bytes. If the value | |||
| n is not available (e.g., the present message includes the OSCORE | ||||
| Option with empty Option Value), then the "osc.piv" function returns | ||||
| the value 0. | ||||
| This construct avoids ambiguity with the value n from the first byte | This construct avoids ambiguity with the value n from the first byte | |||
| of the OSCORE Option value and results in a more efficient | of the OSCORE Option value and results in a more efficient | |||
| compression of the piv subfield. | compression of the piv subfield. | |||
| 7. Compression of the CoAP Payload Marker | 7. Compression of the CoAP Payload Marker | |||
| The following applies with respect to the 0xFF payload marker. A | The following applies with respect to the 0xFF payload marker. A | |||
| SCHC compression Rule for CoAP includes all the expected CoAP | SCHC compression Rule for CoAP includes all the expected CoAP | |||
| options, therefore the payload marker does not have to be specified | options, therefore the payload marker does not have to be specified | |||
| skipping to change at page 29, line 4 ¶ | skipping to change at page 30, line 4 ¶ | |||
| 8.1. Mandatory Header with CON Message | 8.1. Mandatory Header with CON Message | |||
| In this first scenario, the SCHC compressor on the NGW side receives | In this first scenario, the SCHC compressor on the NGW side receives | |||
| a POST message from an Internet client, which is immediately | a POST message from an Internet client, which is immediately | |||
| acknowledged by the Device. Table 3 describes the SCHC Rule | acknowledged by the Device. Table 3 describes the SCHC Rule | |||
| descriptions for this scenario. | descriptions for this scenario. | |||
| +----------+ | +----------+ | |||
| | RuleID 1 | | | RuleID 1 | | |||
| +----------+ | +----------+ | |||
| +============+==+====+====+==========+=========+==========+========+ | +============+=====+==+==+==========+=========+==========+========+ | |||
| | FID |FL| FP | DI | TV | MO | CDA | Sent | | | FID | FL |FP|DI| TV | MO | CDA | Sent | | |||
| | | | | | | | | [bits] | | | | | | | | | | [bits] | | |||
| +============+==+====+====+==========+=========+==========+========+ | +============+=====+==+==+==========+=========+==========+========+ | |||
| | CoAP. |2 | 1 | Bi | 1 | equal | not-sent | | | | CoAP. | 2 |1 |Bi| 1 | equal | not-sent | | | |||
| | Version | | | | | | | | | | Version | | | | | | | | | |||
| +------------+--+----+----+----------+---------+----------+--------+ | +------------+-----+--+--+----------+---------+----------+--------+ | |||
| | CoAP. |2 | 1 | Dw | CON | equal | not-sent | | | | CoAP. | 2 |1 |Dw| CON | equal | not-sent | | | |||
| | Type | | | | | | | | | | Type | | | | | | | | | |||
| +------------+--+----+----+----------+---------+----------+--------+ | +------------+-----+--+--+----------+---------+----------+--------+ | |||
| | CoAP. |2 | 1 | Up | [ACK, | match- | mapping- | T | | | CoAP. | 2 |1 |Up| [ACK, | match- | mapping- | T | | |||
| | Type | | | | RST] | mapping | sent | | | | Type | | | | RST] | mapping | sent | | | |||
| +------------+--+----+----+----------+---------+----------+--------+ | +------------+-----+--+--+----------+---------+----------+--------+ | |||
| | CoAP. | | 1 | Bi | 0b0000 | equal | not-sent | | | | CoAP. | var |1 |Bi| 0b0000 | equal | not-sent | | | |||
| | TKL | | | | | | | | | | TKL | | | | | | | | | |||
| +------------+--+----+----+----------+---------+----------+--------+ | +------------+-----+--+--+----------+---------+----------+--------+ | |||
| | CoAP. |8 | 1 | Bi | [0.00, | match- | mapping- | CC CCC | | | CoAP. | 8 |1 |Bi| [0.00, | match- | mapping- | CC CCC | | |||
| | Code | | | | ... | mapping | sent | | | | Code | | | | ... | mapping | sent | | | |||
| | | | | | 5.05] | | | | | | | | | | 5.05] | | | | | |||
| +------------+--+----+----+----------+---------+----------+--------+ | +------------+-----+--+--+----------+---------+----------+--------+ | |||
| | CoAP. |16| 1 | Bi | 0x0000 | MSB(7) | LSB | MID | | | CoAP. | 16 |1 |Bi| 0x0000 | MSB(7) | LSB | MID | | |||
| | MID | | | | | | | | | | MID | | | | | | | | | |||
| +------------+--+----+----+----------+---------+----------+--------+ | +------------+-----+--+--+----------+---------+----------+--------+ | |||
| | CoAP. | | 1 | Dw | "status" | equal | not-sent | | | | CoAP. | var |1 |Dw| "status" | equal | not-sent | | | |||
| | option(11) | | | | | | | | | | option(11) | | | | | | | | | |||
| +------------+--+----+----+----------+---------+----------+--------+ | +------------+-----+--+--+----------+---------+----------+--------+ | |||
| Table 3: CoAP Context to compress header without Token. CoAP | Table 3: CoAP Context to compress header without Token. CoAP | |||
| Option Numbers: 11 (Uri-Path). | Option Numbers: 11 (Uri-Path). | |||
| In this example, SCHC compression elides the Version and Token Length | In this example, SCHC compression elides the Version and Token Length | |||
| fields. The 25 Method and Response Codes defined in [RFC7252] have | fields. The 25 Method and Response Codes defined in [RFC7252] have | |||
| been shrunk to 5 bits using a "match-mapping" MO. The Uri-Path | been shrunk to 5 bits using a "match-mapping" MO. The Uri-Path | |||
| contains a single element with the TV set to "status" and the CDA set | contains a single element with the TV set to "status" and the CDA set | |||
| to "not-sent", thereby eliding the single occurrence of the Uri-Path | to "not-sent", thereby eliding the single occurrence of the Uri-Path | |||
| Option with value "status". | Option with value "status". | |||
| SCHC compression reduces the header, sending only a mapped Type (and | SCHC compression reduces the header, sending only a mapped Type (and | |||
| only for uplink messages), a mapped code, and the least significant | only for uplink messages), a mapped code, and the least significant | |||
| skipping to change at page 36, line 13 ¶ | skipping to change at page 37, line 13 ¶ | |||
| Figure 9: CoAP Content Response. | Figure 9: CoAP Content Response. | |||
| The SCHC Rules for the Inner Compression include all the fields that | The SCHC Rules for the Inner Compression include all the fields that | |||
| are present in a regular CoAP message. The methods described in | are present in a regular CoAP message. The methods described in | |||
| Section 4 apply to these fields. Table 4 provides an example. | Section 4 apply to these fields. Table 4 provides an example. | |||
| +----------+ | +----------+ | |||
| | RuleID 0 | | | RuleID 0 | | |||
| +----------+ | +----------+ | |||
| +============+==+==+==+===============+=========+==========+======+ | +============+===+==+==+===============+=========+==========+======+ | |||
| | FID |FL|FP|DI| TV | MO | CDA |Sent | | | FID |FL |FP|DI| TV | MO | CDA |Sent | | |||
| | | | | | | | |[bits]| | | | | | | | | |[bits]| | |||
| +============+==+==+==+===============+=========+==========+======+ | +============+===+==+==+===============+=========+==========+======+ | |||
| | CoAP. |8 |1 |Up| 1 | equal | not-sent | | | | CoAP. |8 |1 |Up| 1 | equal | not-sent | | | |||
| | Code | | | | | | | | | | Code | | | | | | | | | |||
| +------------+--+--+--+---------------+---------+----------+------+ | +------------+---+--+--+---------------+---------+----------+------+ | |||
| | CoAP. |8 |1 |Dw| [69, 132] | match- | mapping- |C | | | CoAP. |8 |1 |Dw| [69, 132] | match- | mapping- |C | | |||
| | Code | | | | | mapping | sent | | | | Code | | | | | mapping | sent | | | |||
| +------------+--+--+--+---------------+---------+----------+------+ | +------------+---+--+--+---------------+---------+----------+------+ | |||
| | CoAP. | |1 |Up| "temperature" | equal | not-sent | | | | CoAP. |var|1 |Up| "temperature" | equal | not-sent | | | |||
| | option(11) | | | | | | | | | | option(11) | | | | | | | | | |||
| +------------+--+--+--+---------------+---------+----------+------+ | +------------+---+--+--+---------------+---------+----------+------+ | |||
| Table 4: Inner SCHC Rule. CoAP Option Numbers: 11 (Uri-Path). | Table 4: Inner SCHC Rule. CoAP Option Numbers: 11 (Uri-Path). | |||
| Figure 10 shows the Plaintext obtained for the example GET request. | Figure 10 shows the Plaintext obtained for the example GET request. | |||
| The packet follows the process of Inner Compression and encryption | The packet follows the process of Inner Compression and encryption | |||
| until the payload. The Outer OSCORE message adds the result of the | until the payload. The Outer OSCORE message adds the result of the | |||
| Inner process. | Inner process. | |||
| +---------------------------------------------------+ | +---------------------------------------------------+ | |||
| | | | | | | |||
| | OSCORE Plaintext | | | OSCORE Plaintext | | |||
| | | | | | | |||
| skipping to change at page 40, line 32 ¶ | skipping to change at page 41, line 32 ¶ | |||
| +============+=========+==+==+==========+=========+======+========+ | +============+=========+==+==+==========+=========+======+========+ | |||
| | CoAP. | 2 |1 |Bi| 1 | equal | not- | | | | CoAP. | 2 |1 |Bi| 1 | equal | not- | | | |||
| | Version | | | | | | sent | | | | Version | | | | | | sent | | | |||
| +------------+---------+--+--+----------+---------+------+--------+ | +------------+---------+--+--+----------+---------+------+--------+ | |||
| | CoAP. | 2 |1 |Up| 0 | equal | not- | | | | CoAP. | 2 |1 |Up| 0 | equal | not- | | | |||
| | Type | | | | | | sent | | | | Type | | | | | | sent | | | |||
| +------------+---------+--+--+----------+---------+------+--------+ | +------------+---------+--+--+----------+---------+------+--------+ | |||
| | CoAP. | 2 |1 |Dw| 2 | equal | not- | | | | CoAP. | 2 |1 |Dw| 2 | equal | not- | | | |||
| | Type | | | | | | sent | | | | Type | | | | | | sent | | | |||
| +------------+---------+--+--+----------+---------+------+--------+ | +------------+---------+--+--+----------+---------+------+--------+ | |||
| | CoAP. | |1 |Bi| 0b0001 | equal | not- | | | | CoAP. | var |1 |Bi| 0b0001 | equal | not- | | | |||
| | TKL | | | | | | sent | | | | TKL | | | | | | sent | | | |||
| +------------+---------+--+--+----------+---------+------+--------+ | +------------+---------+--+--+----------+---------+------+--------+ | |||
| | CoAP. | 8 |1 |Up| 2 | equal | not- | | | | CoAP. | 8 |1 |Up| 2 | equal | not- | | | |||
| | Code | | | | | | sent | | | | Code | | | | | | sent | | | |||
| +------------+---------+--+--+----------+---------+------+--------+ | +------------+---------+--+--+----------+---------+------+--------+ | |||
| | CoAP. | 8 |1 |Dw| 68 | equal | not- | | | | CoAP. | 8 |1 |Dw| 68 | equal | not- | | | |||
| | Code | | | | | | sent | | | | Code | | | | | | sent | | | |||
| +------------+---------+--+--+----------+---------+------+--------+ | +------------+---------+--+--+----------+---------+------+--------+ | |||
| | CoAP. | 16 |1 |Bi| 0x0000 | MSB(12) | LSB | MMMM | | | CoAP. | 16 |1 |Bi| 0x0000 | MSB(12) | LSB | MMMM | | |||
| | MID | | | | | | | | | | MID | | | | | | | | | |||
| +------------+---------+--+--+----------+---------+------+--------+ | +------------+---------+--+--+----------+---------+------+--------+ | |||
| | CoAP. | tkl |1 |Bi| 0x80 | MSB(5) | LSB | TTT | | | CoAP. | tkl |1 |Bi| 0x80 | MSB(5) | LSB | TTT | | |||
| | Token | | | | | | | | | | Token | | | | | | | | | |||
| +------------+---------+--+--+----------+---------+------+--------+ | +------------+---------+--+--+----------+---------+------+--------+ | |||
| | CoAP. | |1 |Up| 0x09 | equal | not- | | | | CoAP. | 8 |1 |Up| 0x09 | equal | not- | | | |||
| | option(9). | | | | | | sent | | | | option(9). | | | | | | sent | | | |||
| | flags | | | | | | | | | | flags | | | | | | | | | |||
| +------------+---------+--+--+----------+---------+------+--------+ | +------------+---------+--+--+----------+---------+------+--------+ | |||
| | CoAP. | |1 |Dw| b'' | equal | not- | | | | CoAP. | 8 |1 |Dw| b'' | equal | not- | | | |||
| | option(9). | | | | | | sent | | | | option(9). | | | | | | sent | | | |||
| | flags | | | | | | | | | | flags | | | | | | | | | |||
| +------------+---------+--+--+----------+---------+------+--------+ | +------------+---------+--+--+----------+---------+------+--------+ | |||
| | CoAP. | osc.piv |1 |Up| 0x00 | MSB(4) | LSB | PPPP | | | CoAP. | osc.piv |1 |Up| 0x00 | MSB(4) | LSB | PPPP | | |||
| | option(9). | | | | | | | | | | option(9). | | | | | | | | | |||
| | piv | | | | | | | | | | piv | | | | | | | | | |||
| +------------+---------+--+--+----------+---------+------+--------+ | +------------+---------+--+--+----------+---------+------+--------+ | |||
| | CoAP. | |1 |Dw| b'' | equal | not- | | | | CoAP. | osc.piv |1 |Dw| b'' | equal | not- | | | |||
| | option(9). | | | | | | sent | | | | option(9). | | | | | | sent | | | |||
| | piv | | | | | | | | | | piv | | | | | | | | | |||
| +------------+---------+--+--+----------+---------+------+--------+ | +------------+---------+--+--+----------+---------+------+--------+ | |||
| | CoAP. | |1 |Bi| b'' | equal | not- | | | | CoAP. | var |1 |Bi| b'' | equal | not- | | | |||
| | option(9). | | | | | | sent | | | | option(9). | | | | | | sent | | | |||
| | kid_ctx | | | | | | | | | | kid_ctx | | | | | | | | | |||
| +------------+---------+--+--+----------+---------+------+--------+ | +------------+---------+--+--+----------+---------+------+--------+ | |||
| | CoAP. | var_bit |1 |Up| 0x636c69 | MSB(44) | LSB | KKKK | | | CoAP. | var_bit |1 |Up| 0x636c69 | MSB(44) | LSB | KKKK | | |||
| | option(9). | | | | 656e70 | | | | | | option(9). | | | | 656e70 | | | | | |||
| | kid | | | | | | | | | | kid | | | | | | | | | |||
| +------------+---------+--+--+----------+---------+------+--------+ | +------------+---------+--+--+----------+---------+------+--------+ | |||
| | CoAP. | |1 |Dw| b'' | equal | not- | | | | CoAP. | var |1 |Dw| b'' | equal | not- | | | |||
| | option(9). | | | | | | sent | | | | option(9). | | | | | | sent | | | |||
| | kid | | | | | | | | | | kid | | | | | | | | | |||
| +------------+---------+--+--+----------+---------+------+--------+ | +------------+---------+--+--+----------+---------+------+--------+ | |||
| Table 5: Outer SCHC Rule. CoAP Option Numbers: 9 (OSCORE). | Table 5: Outer SCHC Rule. CoAP Option Numbers: 9 (OSCORE). | |||
| Protected message: | Protected message: | |||
| ================== | ================== | |||
| 0x4102000182980904636c69656e74ffa2c54fe1b434297b62 | 0x4102000182980904636c69656e74ffa2c54fe1b434297b62 | |||
| (24 bytes) | (24 bytes) | |||
| skipping to change at page 45, line 26 ¶ | skipping to change at page 46, line 26 ¶ | |||
| +============+===+==+==+===============+=========+==========+======+ | +============+===+==+==+===============+=========+==========+======+ | |||
| | CoAP. |2 |1 |Bi| 1 | equal | not-sent | | | | CoAP. |2 |1 |Bi| 1 | equal | not-sent | | | |||
| | Version | | | | | | | | | | Version | | | | | | | | | |||
| +------------+---+--+--+---------------+---------+----------+------+ | +------------+---+--+--+---------------+---------+----------+------+ | |||
| | CoAP. |2 |1 |Up| 0 | equal | not-sent | | | | CoAP. |2 |1 |Up| 0 | equal | not-sent | | | |||
| | Type | | | | | | | | | | Type | | | | | | | | | |||
| +------------+---+--+--+---------------+---------+----------+------+ | +------------+---+--+--+---------------+---------+----------+------+ | |||
| | CoAP. |2 |1 |Dw| 2 | equal | not-sent | | | | CoAP. |2 |1 |Dw| 2 | equal | not-sent | | | |||
| | Type | | | | | | | | | | Type | | | | | | | | | |||
| +------------+---+--+--+---------------+---------+----------+------+ | +------------+---+--+--+---------------+---------+----------+------+ | |||
| | CoAP. | |1 |Bi| 0b0001 | equal | not-sent | | | | CoAP. |var|1 |Bi| 0b0001 | equal | not-sent | | | |||
| | TKL | | | | | | | | | | TKL | | | | | | | | | |||
| +------------+---+--+--+---------------+---------+----------+------+ | +------------+---+--+--+---------------+---------+----------+------+ | |||
| | CoAP. |8 |1 |Up| 2 | equal | not-sent | | | | CoAP. |8 |1 |Up| 2 | equal | not-sent | | | |||
| | Code | | | | | | | | | | Code | | | | | | | | | |||
| +------------+---+--+--+---------------+---------+----------+------+ | +------------+---+--+--+---------------+---------+----------+------+ | |||
| | CoAP. |8 |1 |Dw| [69, 132] | match- | mapping- |C | | | CoAP. |8 |1 |Dw| [69, 132] | match- | mapping- |C | | |||
| | Code | | | | | mapping | sent | | | | Code | | | | | mapping | sent | | | |||
| +------------+---+--+--+---------------+---------+----------+------+ | +------------+---+--+--+---------------+---------+----------+------+ | |||
| | CoAP. |16 |1 |Bi| 0x0000 | MSB(12) | LSB |MMMM | | | CoAP. |16 |1 |Bi| 0x0000 | MSB(12) | LSB |MMMM | | |||
| | MID | | | | | | | | | | MID | | | | | | | | | |||
| +------------+---+--+--+---------------+---------+----------+------+ | +------------+---+--+--+---------------+---------+----------+------+ | |||
| | CoAP. |tkl|1 |Bi| 0x80 | MSB(5) | LSB |TTT | | | CoAP. |tkl|1 |Bi| 0x80 | MSB(5) | LSB |TTT | | |||
| | Token | | | | | | | | | | Token | | | | | | | | | |||
| +------------+---+--+--+---------------+---------+----------+------+ | +------------+---+--+--+---------------+---------+----------+------+ | |||
| | CoAP. | |1 |Up| "temperature" | equal | not-sent | | | | CoAP. |var|1 |Up| "temperature" | equal | not-sent | | | |||
| | option(11) | | | | | | | | | | option(11) | | | | | | | | | |||
| +------------+---+--+--+---------------+---------+----------+------+ | +------------+---+--+--+---------------+---------+----------+------+ | |||
| Table 6: SCHC-CoAP Rule (No OSCORE). CoAP Option Numbers: 11 | Table 6: SCHC-CoAP Rule (No OSCORE). CoAP Option Numbers: 11 | |||
| (Uri-Path). | (Uri-Path). | |||
| The Rule in Table 6 yields the SCHC compression results shown in | The Rule in Table 6 yields the SCHC compression results shown in | |||
| Figure 16 for the request and in Figure 17 for the response. | Figure 16 for the request and in Figure 17 for the response. | |||
| Compressed message: | Compressed message: | |||
| skipping to change at page 46, line 39 ¶ | skipping to change at page 47, line 39 ¶ | |||
| Figure 17: CoAP Content Compressed without OSCORE. | Figure 17: CoAP Content Compressed without OSCORE. | |||
| As it can be seen, the difference between applying SCHC + OSCORE as | As it can be seen, the difference between applying SCHC + OSCORE as | |||
| compared to regular SCHC + CoAP is about 10 bytes. | compared to regular SCHC + CoAP is about 10 bytes. | |||
| 9. CoAP Header Compression with Proxies | 9. CoAP Header Compression with Proxies | |||
| This section defines how SCHC Compression/Decompression is performed | This section defines how SCHC Compression/Decompression is performed | |||
| when CoAP proxies are deployed. The following refers to the origin | when CoAP proxies are deployed. The following refers to the origin | |||
| client and origin server as application endpoints. | client and origin server as application endpoints. The origin | |||
| client, the proxy, and the origin server host one or more SCHC | ||||
| Endpoints each. | ||||
| For each communication leg on which SCHC is used, SCHC operations are | ||||
| performed according to SCHC Instances that share a common SCHC | ||||
| Context, consistent with a SCHC Session between those SCHC Instances. | ||||
| An entity that performs SCHC operations on multiple communication | ||||
| legs, such as a proxy, hosts different SCHC Instances for different | ||||
| legs and terminates the corresponding SCHC Session at itself; that | ||||
| is, incoming SCHC-compressed data is not relayed as such across | ||||
| communication legs. | ||||
| Note that SCHC Compression/Decompression of CoAP headers is not | Note that SCHC Compression/Decompression of CoAP headers is not | |||
| necessarily used between each pair of hops in the communication | necessarily used between each pair of hops in the communication | |||
| chain. For example, if a proxy is deployed between an origin client | chain. For example, if a proxy is deployed between an origin client | |||
| and an origin server, SCHC might be used on the communication leg | and an origin server, SCHC might be used on the communication leg | |||
| between the origin client and the proxy, but not on the communication | between the origin client and the proxy, but not on the communication | |||
| leg between the proxy and the origin server. | leg between the proxy and the origin server. | |||
| 9.1. Without End-to-End Security | 9.1. Without End-to-End Security | |||
| In the case that OSCORE is not used end-to-end between client and | In the case that OSCORE is not used end-to-end between client and | |||
| server, the SCHC processing occurs hop-by-hop, by relying on SCHC | server, the SCHC processing occurs hop-by-hop, by relying on SCHC | |||
| Rules that are consistently shared between two adjacent hops. | Rules that are consistently shared between two adjacent hops, i.e., | |||
| by relying on a SCHC Context shared by the SCHC Instances hosted at | ||||
| the two adjacent hops and taking part in the same SCHC Session. | ||||
| In particular, SCHC is used as defined below. | In particular, SCHC is used as defined below. | |||
| * The sender application endpoint compresses the CoAP message, by | * The sender application endpoint compresses the CoAP message, by | |||
| using the SCHC Rules that it shares with the next hop towards the | using the SCHC Rules that it shares with the next hop towards the | |||
| recipient application endpoint. The resulting, compressed message | recipient application endpoint. The resulting, compressed message | |||
| is sent to the next hop towards the recipient application | is sent to the next hop towards the recipient application | |||
| endpoint. | endpoint. | |||
| * Each proxy decompresses the incoming compressed message, by using | * Each proxy decompresses the incoming compressed message, by using | |||
| skipping to change at page 47, line 36 ¶ | skipping to change at page 49, line 8 ¶ | |||
| the previous hop towards the sender application endpoint. | the previous hop towards the sender application endpoint. | |||
| 9.2. With End-to-End Security | 9.2. With End-to-End Security | |||
| In the case that OSCORE is used end-to-end between client and server | In the case that OSCORE is used end-to-end between client and server | |||
| (see Section 8.2), the following applies. | (see Section 8.2), the following applies. | |||
| The SCHC processing occurs end-to-end as to the Inner SCHC | The SCHC processing occurs end-to-end as to the Inner SCHC | |||
| Compression/Decompression, by relying on Inner SCHC Rules that are | Compression/Decompression, by relying on Inner SCHC Rules that are | |||
| consistently shared between the two application endpoints acting as | consistently shared between the two application endpoints acting as | |||
| OSCORE endpoints and sharing the used OSCORE Security Context. | OSCORE endpoints and sharing the OSCORE Security Context used. The | |||
| Inner SCHC Rules belong to a SCHC Context shared end-to-end by the | ||||
| SCHC Instances hosted at the two application endpoints and taking | ||||
| part in the same SCHC Session. | ||||
| Instead, the SCHC processing occurs hop-by-hop as to the Outer SCHC | Instead, the SCHC processing occurs hop-by-hop as to the Outer SCHC | |||
| Compression/Decompression, by relying on Outer SCHC Rules that are | Compression/Decompression, by relying on Outer SCHC Rules that are | |||
| consistently shared between two adjacent hops. | consistently shared between two adjacent hops, i.e., by relying on a | |||
| per-leg SCHC Context shared by the SCHC Instances hosted at the two | ||||
| adjacent hops and taking part in a distinct SCHC Session. | ||||
| In particular, SCHC is used as defined below. | In particular, SCHC is used as defined below. | |||
| * The sender application endpoint performs the Inner SCHC | * The sender application endpoint performs the Inner SCHC | |||
| Compression on the original CoAP message, by using the Inner SCHC | Compression on the original CoAP message, by using the Inner SCHC | |||
| Rules that it shares with the recipient application endpoint. | Rules that it shares with the recipient application endpoint. | |||
| Following the AEAD Encryption of the compressed input obtained | Following the AEAD Encryption of the compressed input obtained | |||
| from the previous step, the sender application endpoint performs | from the previous step, the sender application endpoint performs | |||
| the Outer SCHC Compression on the resulting OSCORE-protected | the Outer SCHC Compression on the resulting OSCORE-protected | |||
| skipping to change at page 52, line 17 ¶ | skipping to change at page 53, line 17 ¶ | |||
| +============+===+==+==+===============+=========+==========+======+ | +============+===+==+==+===============+=========+==========+======+ | |||
| | CoAP. |2 |1 |Bi| 1 | equal | not-sent | | | | CoAP. |2 |1 |Bi| 1 | equal | not-sent | | | |||
| | Version | | | | | | | | | | Version | | | | | | | | | |||
| +------------+---+--+--+---------------+---------+----------+------+ | +------------+---+--+--+---------------+---------+----------+------+ | |||
| | CoAP. |2 |1 |Up| 0 | equal | not-sent | | | | CoAP. |2 |1 |Up| 0 | equal | not-sent | | | |||
| | Type | | | | | | | | | | Type | | | | | | | | | |||
| +------------+---+--+--+---------------+---------+----------+------+ | +------------+---+--+--+---------------+---------+----------+------+ | |||
| | CoAP. |2 |1 |Dw| [0, 2] | match- | mapping- |T | | | CoAP. |2 |1 |Dw| [0, 2] | match- | mapping- |T | | |||
| | Type | | | | | mapping | sent | | | | Type | | | | | mapping | sent | | | |||
| +------------+---+--+--+---------------+---------+----------+------+ | +------------+---+--+--+---------------+---------+----------+------+ | |||
| | CoAP. | |1 |Bi| 0b0001 | equal | not-sent | | | | CoAP. |var|1 |Bi| 0b0001 | equal | not-sent | | | |||
| | TKL | | | | | | | | | | TKL | | | | | | | | | |||
| +------------+---+--+--+---------------+---------+----------+------+ | +------------+---+--+--+---------------+---------+----------+------+ | |||
| | CoAP. |8 |1 |Up| [1, 2, | match- | mapping- |CC | | | CoAP. |8 |1 |Up| [1, 2, | match- | mapping- |CC | | |||
| | Code | | | | 3, 4] | mapping | sent | | | | Code | | | | 3, 4] | mapping | sent | | | |||
| +------------+---+--+--+---------------+---------+----------+------+ | +------------+---+--+--+---------------+---------+----------+------+ | |||
| | CoAP. |8 |1 |Dw| [65, 68, | match- | mapping- |CC | | | CoAP. |8 |1 |Dw| [65, 68, | match- | mapping- |CC | | |||
| | Code | | | | 69, 132] | mapping | sent | | | | Code | | | | 69, 132] | mapping | sent | | | |||
| +------------+---+--+--+---------------+---------+----------+------+ | +------------+---+--+--+---------------+---------+----------+------+ | |||
| | CoAP. |16 |1 |Bi| 0x0000 | MSB(12) | LSB |MMMM | | | CoAP. |16 |1 |Bi| 0x0000 | MSB(12) | LSB |MMMM | | |||
| | MID | | | | | | | | | | MID | | | | | | | | | |||
| +------------+---+--+--+---------------+---------+----------+------+ | +------------+---+--+--+---------------+---------+----------+------+ | |||
| | CoAP. |tkl|1 |Bi| 0x80 | MSB(5) | LSB |TTT | | | CoAP. |tkl|1 |Bi| 0x80 | MSB(5) | LSB |TTT | | |||
| | Token | | | | | | | | | | Token | | | | | | | | | |||
| +------------+---+--+--+---------------+---------+----------+------+ | +------------+---+--+--+---------------+---------+----------+------+ | |||
| | CoAP. |var|1 |Up| | ignore | value- | | | | CoAP. |var|1 |Up| | ignore | value- | | | |||
| | option(3) | | | | | | sent | | | | option(3) | | | | | | sent | | | |||
| +------------+---+--+--+---------------+---------+----------+------+ | +------------+---+--+--+---------------+---------+----------+------+ | |||
| | CoAP. | |1 |Up| "temperature" | equal | not-sent | | | | CoAP. |var|1 |Up| "temperature" | equal | not-sent | | | |||
| | option(11) | | | | | | | | | | option(11) | | | | | | | | | |||
| +------------+---+--+--+---------------+---------+----------+------+ | +------------+---+--+--+---------------+---------+----------+------+ | |||
| | CoAP. | |1 |Up| "coap" | equal | not-sent | | | | CoAP. |var|1 |Up| "coap" | equal | not-sent | | | |||
| | option(39) | | | | | | | | | | option(39) | | | | | | | | | |||
| +------------+---+--+--+---------------+---------+----------+------+ | +------------+---+--+--+---------------+---------+----------+------+ | |||
| Table 7: SCHC Rule between the Device and the Proxy. CoAP | Table 7: SCHC Rule between the Device and the Proxy. CoAP | |||
| Option Numbers: 3 (Uri-Host), 11 (Uri-Path), 39 (Proxy-Scheme). | Option Numbers: 3 (Uri-Host), 11 (Uri-Path), 39 (Proxy-Scheme). | |||
| Instead, the proxy and the Application Server share the SCHC Rule | Instead, the proxy and the Application Server share the SCHC Rule | |||
| shown in Table 8, with RuleID 1. | shown in Table 8, with RuleID 1. | |||
| +----------+ | +----------+ | |||
| skipping to change at page 53, line 17 ¶ | skipping to change at page 54, line 17 ¶ | |||
| +============+===+==+==+===============+=========+==========+======+ | +============+===+==+==+===============+=========+==========+======+ | |||
| | CoAP. |2 |1 |Bi| 1 | equal | not-sent | | | | CoAP. |2 |1 |Bi| 1 | equal | not-sent | | | |||
| | Version | | | | | | | | | | Version | | | | | | | | | |||
| +------------+---+--+--+---------------+---------+----------+------+ | +------------+---+--+--+---------------+---------+----------+------+ | |||
| | CoAP. |2 |1 |Up| 0 | equal | not-sent | | | | CoAP. |2 |1 |Up| 0 | equal | not-sent | | | |||
| | Type | | | | | | | | | | Type | | | | | | | | | |||
| +------------+---+--+--+---------------+---------+----------+------+ | +------------+---+--+--+---------------+---------+----------+------+ | |||
| | CoAP. |2 |1 |Dw| [0, 2] | match- | mapping- |T | | | CoAP. |2 |1 |Dw| [0, 2] | match- | mapping- |T | | |||
| | Type | | | | | mapping | sent | | | | Type | | | | | mapping | sent | | | |||
| +------------+---+--+--+---------------+---------+----------+------+ | +------------+---+--+--+---------------+---------+----------+------+ | |||
| | CoAP. | |1 |Bi| 0b0001 | equal | not-sent | | | | CoAP. |var|1 |Bi| 0b0001 | equal | not-sent | | | |||
| | TKL | | | | | | | | | | TKL | | | | | | | | | |||
| +------------+---+--+--+---------------+---------+----------+------+ | +------------+---+--+--+---------------+---------+----------+------+ | |||
| | CoAP. |8 |1 |Up| [1, 2, | match- | mapping- |CC | | | CoAP. |8 |1 |Up| [1, 2, | match- | mapping- |CC | | |||
| | Code | | | | 3, 4] | mapping | sent | | | | Code | | | | 3, 4] | mapping | sent | | | |||
| +------------+---+--+--+---------------+---------+----------+------+ | +------------+---+--+--+---------------+---------+----------+------+ | |||
| | CoAP. |8 |1 |Dw| [65, 68, | match- | mapping- |CC | | | CoAP. |8 |1 |Dw| [65, 68, | match- | mapping- |CC | | |||
| | Code | | | | 69, 132] | mapping | sent | | | | Code | | | | 69, 132] | mapping | sent | | | |||
| +------------+---+--+--+---------------+---------+----------+------+ | +------------+---+--+--+---------------+---------+----------+------+ | |||
| | CoAP. |16 |1 |Bi| 0x0000 | MSB(12) | LSB |MMMM | | | CoAP. |16 |1 |Bi| 0x0000 | MSB(12) | LSB |MMMM | | |||
| | MID | | | | | | | | | | MID | | | | | | | | | |||
| +------------+---+--+--+---------------+---------+----------+------+ | +------------+---+--+--+---------------+---------+----------+------+ | |||
| | CoAP. |tkl|1 |Bi| 0x70 | MSB(5) | LSB |TTT | | | CoAP. |tkl|1 |Bi| 0x70 | MSB(5) | LSB |TTT | | |||
| | Token | | | | | | | | | | Token | | | | | | | | | |||
| +------------+---+--+--+---------------+---------+----------+------+ | +------------+---+--+--+---------------+---------+----------+------+ | |||
| | CoAP. |var|1 |Up| | ignore | value- | | | | CoAP. |var|1 |Up| | ignore | value- | | | |||
| | option(3) | | | | | | sent | | | | option(3) | | | | | | sent | | | |||
| +------------+---+--+--+---------------+---------+----------+------+ | +------------+---+--+--+---------------+---------+----------+------+ | |||
| | CoAP. | |1 |Up| "temperature" | equal | not-sent | | | | CoAP. |var|1 |Up| "temperature" | equal | not-sent | | | |||
| | option(11) | | | | | | | | | | option(11) | | | | | | | | | |||
| +------------+---+--+--+---------------+---------+----------+------+ | +------------+---+--+--+---------------+---------+----------+------+ | |||
| Table 8: SCHC Rule between the Proxy and the Application Server. | Table 8: SCHC Rule between the Proxy and the Application Server. | |||
| CoAP Option Numbers: 3 (Uri-Host), 11 (Uri-Path). | CoAP Option Numbers: 3 (Uri-Host), 11 (Uri-Path). | |||
| First, the Device applies the Rule in Table 7 shared with the proxy | First, the Device applies the Rule in Table 7 shared with the proxy | |||
| to the CoAP request in Figure 18. The result is the compressed CoAP | to the CoAP request in Figure 18. The result is the compressed CoAP | |||
| request in Figure 20 that the Device sends to the proxy. | request in Figure 20 that the Device sends to the proxy. | |||
| skipping to change at page 58, line 26 ¶ | skipping to change at page 59, line 26 ¶ | |||
| The Device and the Application Server share the SCHC Rule shown in | The Device and the Application Server share the SCHC Rule shown in | |||
| Table 9, with RuleID 2. The Device and the Application Server use | Table 9, with RuleID 2. The Device and the Application Server use | |||
| this Rule to perform the Inner SCHC Compression/Decompression end-to- | this Rule to perform the Inner SCHC Compression/Decompression end-to- | |||
| end. | end. | |||
| +----------+ | +----------+ | |||
| | RuleID 2 | | | RuleID 2 | | |||
| +----------+ | +----------+ | |||
| +============+==+==+==+===============+=========+==========+======+ | +============+===+==+==+===============+=========+==========+======+ | |||
| | FID |FL|FP|DI| TV | MO | CDA |Sent | | | FID |FL |FP|DI| TV | MO | CDA |Sent | | |||
| | | | | | | | |[bits]| | | | | | | | | |[bits]| | |||
| +============+==+==+==+===============+=========+==========+======+ | +============+===+==+==+===============+=========+==========+======+ | |||
| | CoAP. |8 |1 |Up| [1, 2, | match- | mapping- |CC | | | CoAP. |8 |1 |Up| [1, 2, | match- | mapping- |CC | | |||
| | Code | | | | 3, 4] | mapping | sent | | | | Code | | | | 3, 4] | mapping | sent | | | |||
| +------------+--+--+--+---------------+---------+----------+------+ | +------------+---+--+--+---------------+---------+----------+------+ | |||
| | CoAP. |8 |1 |Dw| [65, 68, | match- | mapping- |CC | | | CoAP. |8 |1 |Dw| [65, 68, | match- | mapping- |CC | | |||
| | Code | | | | 69, 132] | mapping | sent | | | | Code | | | | 69, 132] | mapping | sent | | | |||
| +------------+--+--+--+---------------+---------+----------+------+ | +------------+---+--+--+---------------+---------+----------+------+ | |||
| | CoAP. | |1 |Up| "temperature" | equal | not-sent | | | | CoAP. |var|1 |Up| "temperature" | equal | not-sent | | | |||
| | option(11) | | | | | | | | | | option(11) | | | | | | | | | |||
| +------------+--+--+--+---------------+---------+----------+------+ | +------------+---+--+--+---------------+---------+----------+------+ | |||
| Table 9: Inner SCHC Rule between the Device and the Application | Table 9: Inner SCHC Rule between the Device and the Application | |||
| Server. CoAP Option Numbers: 11 (Uri-Path). | Server. CoAP Option Numbers: 11 (Uri-Path). | |||
| The Device and the proxy share the SCHC Rule shown in Table 10, with | The Device and the proxy share the SCHC Rule shown in Table 10, with | |||
| RuleID 3. The Device and the proxy use this Rule to perform the | RuleID 3. The Device and the proxy use this Rule to perform the | |||
| Outer SCHC Compression/Decompression hop-by-hop on their | Outer SCHC Compression/Decompression hop-by-hop on their | |||
| communication leg. | communication leg. | |||
| +----------+ | +----------+ | |||
| | RuleID 3 | | | RuleID 3 | | |||
| +----------+ | +----------+ | |||
| +============+=========+==+==+======+=========+==========+========+ | +============+=========+==+==+======+=========+==========+========+ | |||
| skipping to change at page 59, line 17 ¶ | skipping to change at page 60, line 17 ¶ | |||
| +============+=========+==+==+======+=========+==========+========+ | +============+=========+==+==+======+=========+==========+========+ | |||
| | CoAP. | 2 |1 |Bi|1 | equal | not-sent | | | | CoAP. | 2 |1 |Bi|1 | equal | not-sent | | | |||
| | Version | | | | | | | | | | Version | | | | | | | | | |||
| +------------+---------+--+--+------+---------+----------+--------+ | +------------+---------+--+--+------+---------+----------+--------+ | |||
| | CoAP. | 2 |1 |Up|0 | equal | not-sent | | | | CoAP. | 2 |1 |Up|0 | equal | not-sent | | | |||
| | Type | | | | | | | | | | Type | | | | | | | | | |||
| +------------+---------+--+--+------+---------+----------+--------+ | +------------+---------+--+--+------+---------+----------+--------+ | |||
| | CoAP. | 2 |1 |Dw|[0, 2]| match- | mapping- | T | | | CoAP. | 2 |1 |Dw|[0, 2]| match- | mapping- | T | | |||
| | Type | | | | | mapping | sent | | | | Type | | | | | mapping | sent | | | |||
| +------------+---------+--+--+------+---------+----------+--------+ | +------------+---------+--+--+------+---------+----------+--------+ | |||
| | CoAP. | |1 |Bi|0b0001| equal | not-sent | | | | CoAP. | var |1 |Bi|0b0001| equal | not-sent | | | |||
| | TKL | | | | | | | | | | TKL | | | | | | | | | |||
| +------------+---------+--+--+------+---------+----------+--------+ | +------------+---------+--+--+------+---------+----------+--------+ | |||
| | CoAP. | 8 |1 |Up|2 | equal | not-sent | | | | CoAP. | 8 |1 |Up|2 | equal | not-sent | | | |||
| | Code | | | | | | | | | | Code | | | | | | | | | |||
| +------------+---------+--+--+------+---------+----------+--------+ | +------------+---------+--+--+------+---------+----------+--------+ | |||
| | CoAP. | 8 |1 |Dw|68 | equal | not-sent | | | | CoAP. | 8 |1 |Dw|68 | equal | not-sent | | | |||
| | Code | | | | | | | | | | Code | | | | | | | | | |||
| +------------+---------+--+--+------+---------+----------+--------+ | +------------+---------+--+--+------+---------+----------+--------+ | |||
| | CoAP. | 16 |1 |Bi|0x0000| MSB(12) | LSB | MMMM | | | CoAP. | 16 |1 |Bi|0x0000| MSB(12) | LSB | MMMM | | |||
| | MID | | | | | | | | | | MID | | | | | | | | | |||
| +------------+---------+--+--+------+---------+----------+--------+ | +------------+---------+--+--+------+---------+----------+--------+ | |||
| | CoAP. | tkl |1 |Bi|0x80 | MSB(5) | LSB | TTT | | | CoAP. | tkl |1 |Bi|0x80 | MSB(5) | LSB | TTT | | |||
| | Token | | | | | | | | | | Token | | | | | | | | | |||
| +------------+---------+--+--+------+---------+----------+--------+ | +------------+---------+--+--+------+---------+----------+--------+ | |||
| | CoAP. | var |1 |Up| | ignore | value- | | | | CoAP. | var |1 |Up| | ignore | value- | | | |||
| | option(3) | | | | | | sent | | | | option(3) | | | | | | sent | | | |||
| +------------+---------+--+--+------+---------+----------+--------+ | +------------+---------+--+--+------+---------+----------+--------+ | |||
| | CoAP. | |1 |Up|0x09 | equal | not-sent | | | | CoAP. | 8 |1 |Up|0x09 | equal | not-sent | | | |||
| | option(9). | | | | | | | | | | option(9). | | | | | | | | | |||
| | flags | | | | | | | | | | flags | | | | | | | | | |||
| +------------+---------+--+--+------+---------+----------+--------+ | +------------+---------+--+--+------+---------+----------+--------+ | |||
| | CoAP. | |1 |Dw|b'' | equal | not-sent | | | | CoAP. | 8 |1 |Dw|b'' | equal | not-sent | | | |||
| | option(9). | | | | | | | | | | option(9). | | | | | | | | | |||
| | flags | | | | | | | | | | flags | | | | | | | | | |||
| +------------+---------+--+--+------+---------+----------+--------+ | +------------+---------+--+--+------+---------+----------+--------+ | |||
| | CoAP. | osc.piv |1 |Up|0x00 | MSB(4) | LSB | PPPP | | | CoAP. | osc.piv |1 |Up|0x00 | MSB(4) | LSB | PPPP | | |||
| | option(9). | | | | | | | | | | option(9). | | | | | | | | | |||
| | piv | | | | | | | | | | piv | | | | | | | | | |||
| +------------+---------+--+--+------+---------+----------+--------+ | +------------+---------+--+--+------+---------+----------+--------+ | |||
| | CoAP. | |1 |Dw|b'' | equal | not-sent | | | | CoAP. | osc.piv |1 |Dw|b'' | equal | not-sent | | | |||
| | option(9). | | | | | | | | | | option(9). | | | | | | | | | |||
| | piv | | | | | | | | | | piv | | | | | | | | | |||
| +------------+---------+--+--+------+---------+----------+--------+ | +------------+---------+--+--+------+---------+----------+--------+ | |||
| | CoAP. | |1 |Bi|b'' | equal | not-sent | | | | CoAP. | var |1 |Bi|b'' | equal | not-sent | | | |||
| | option(9). | | | | | | | | | | option(9). | | | | | | | | | |||
| | kid_ctx | | | | | | | | | | kid_ctx | | | | | | | | | |||
| +------------+---------+--+--+------+---------+----------+--------+ | +------------+---------+--+--+------+---------+----------+--------+ | |||
| | CoAP. | var_bit |1 |Up|0x0000| MSB(12) | LSB | KKKK | | | CoAP. | var_bit |1 |Up|0x0000| MSB(12) | LSB | KKKK | | |||
| | option(9). | | | | | | | | | | option(9). | | | | | | | | | |||
| | kid | | | | | | | | | | kid | | | | | | | | | |||
| +------------+---------+--+--+------+---------+----------+--------+ | +------------+---------+--+--+------+---------+----------+--------+ | |||
| | CoAP. | |1 |Dw|b'' | equal | not-sent | | | | CoAP. | var |1 |Dw|b'' | equal | not-sent | | | |||
| | option(9). | | | | | | | | | | option(9). | | | | | | | | | |||
| | kid | | | | | | | | | | kid | | | | | | | | | |||
| +------------+---------+--+--+------+---------+----------+--------+ | +------------+---------+--+--+------+---------+----------+--------+ | |||
| | CoAP. | |1 |Up|"coap"| equal | not-sent | | | | CoAP. | var |1 |Up|"coap"| equal | not-sent | | | |||
| | option(39) | | | | | | | | | | option(39) | | | | | | | | | |||
| +------------+---------+--+--+------+---------+----------+--------+ | +------------+---------+--+--+------+---------+----------+--------+ | |||
| Table 10: Outer SCHC Rule between the Device and the Proxy. | Table 10: Outer SCHC Rule between the Device and the Proxy. | |||
| CoAP Option Numbers: 3 (Uri-Host), 9 (OSCORE), 39 (Proxy- | CoAP Option Numbers: 3 (Uri-Host), 9 (OSCORE), 39 (Proxy- | |||
| Scheme). | Scheme). | |||
| The proxy and the Application Server share the SCHC Rule shown in | The proxy and the Application Server share the SCHC Rule shown in | |||
| Table 11, with RuleID 4. The proxy and the Application Server use | Table 11, with RuleID 4. The proxy and the Application Server use | |||
| this Rule to perform the Outer SCHC Compression/Decompression hop-by- | this Rule to perform the Outer SCHC Compression/Decompression hop-by- | |||
| skipping to change at page 60, line 45 ¶ | skipping to change at page 61, line 45 ¶ | |||
| +============+=========+==+==+======+=========+==========+========+ | +============+=========+==+==+======+=========+==========+========+ | |||
| | CoAP. | 2 |1 |Bi|1 | equal | not-sent | | | | CoAP. | 2 |1 |Bi|1 | equal | not-sent | | | |||
| | Version | | | | | | | | | | Version | | | | | | | | | |||
| +------------+---------+--+--+------+---------+----------+--------+ | +------------+---------+--+--+------+---------+----------+--------+ | |||
| | CoAP. | 2 |1 |Up|0 | equal | not-sent | | | | CoAP. | 2 |1 |Up|0 | equal | not-sent | | | |||
| | Type | | | | | | | | | | Type | | | | | | | | | |||
| +------------+---------+--+--+------+---------+----------+--------+ | +------------+---------+--+--+------+---------+----------+--------+ | |||
| | CoAP. | 2 |1 |Dw|[0, 2]| match- | mapping- | T | | | CoAP. | 2 |1 |Dw|[0, 2]| match- | mapping- | T | | |||
| | Type | | | | | mapping | sent | | | | Type | | | | | mapping | sent | | | |||
| +------------+---------+--+--+------+---------+----------+--------+ | +------------+---------+--+--+------+---------+----------+--------+ | |||
| | CoAP. | |1 |Bi|0b0001| equal | not-sent | | | | CoAP. | var |1 |Bi|0b0001| equal | not-sent | | | |||
| | TKL | | | | | | | | | | TKL | | | | | | | | | |||
| +------------+---------+--+--+------+---------+----------+--------+ | +------------+---------+--+--+------+---------+----------+--------+ | |||
| | CoAP. | 8 |1 |Up|2 | equal | not-sent | | | | CoAP. | 8 |1 |Up|2 | equal | not-sent | | | |||
| | Code | | | | | | | | | | Code | | | | | | | | | |||
| +------------+---------+--+--+------+---------+----------+--------+ | +------------+---------+--+--+------+---------+----------+--------+ | |||
| | CoAP. | 8 |1 |Dw|68 | equal | not-sent | | | | CoAP. | 8 |1 |Dw|68 | equal | not-sent | | | |||
| | Code | | | | | | | | | | Code | | | | | | | | | |||
| +------------+---------+--+--+------+---------+----------+--------+ | +------------+---------+--+--+------+---------+----------+--------+ | |||
| | CoAP. | 16 |1 |Bi|0x0000| MSB(12) | LSB | MMMM | | | CoAP. | 16 |1 |Bi|0x0000| MSB(12) | LSB | MMMM | | |||
| | MID | | | | | | | | | | MID | | | | | | | | | |||
| +------------+---------+--+--+------+---------+----------+--------+ | +------------+---------+--+--+------+---------+----------+--------+ | |||
| | CoAP. | tkl |1 |Bi|0x70 | MSB(5) | LSB | TTT | | | CoAP. | tkl |1 |Bi|0x70 | MSB(5) | LSB | TTT | | |||
| | Token | | | | | | | | | | Token | | | | | | | | | |||
| +------------+---------+--+--+------+---------+----------+--------+ | +------------+---------+--+--+------+---------+----------+--------+ | |||
| | CoAP. | var |1 |Up| | ignore | value- | | | | CoAP. | var |1 |Up| | ignore | value- | | | |||
| | option(3) | | | | | | sent | | | | option(3) | | | | | | sent | | | |||
| +------------+---------+--+--+------+---------+----------+--------+ | +------------+---------+--+--+------+---------+----------+--------+ | |||
| | CoAP. | |1 |Up|0x09 | equal | not-sent | | | | CoAP. | 8 |1 |Up|0x09 | equal | not-sent | | | |||
| | option(9). | | | | | | | | | | option(9). | | | | | | | | | |||
| | flags | | | | | | | | | | flags | | | | | | | | | |||
| +------------+---------+--+--+------+---------+----------+--------+ | +------------+---------+--+--+------+---------+----------+--------+ | |||
| | CoAP. | |1 |Dw|b'' | equal | not-sent | | | | CoAP. | 8 |1 |Dw|b'' | equal | not-sent | | | |||
| | option(9). | | | | | | | | | | option(9). | | | | | | | | | |||
| | flags | | | | | | | | | | flags | | | | | | | | | |||
| +------------+---------+--+--+------+---------+----------+--------+ | +------------+---------+--+--+------+---------+----------+--------+ | |||
| | CoAP. | osc.piv |1 |Up|0x00 | MSB(4) | LSB | PPPP | | | CoAP. | osc.piv |1 |Up|0x00 | MSB(4) | LSB | PPPP | | |||
| | option(9). | | | | | | | | | | option(9). | | | | | | | | | |||
| | piv | | | | | | | | | | piv | | | | | | | | | |||
| +------------+---------+--+--+------+---------+----------+--------+ | +------------+---------+--+--+------+---------+----------+--------+ | |||
| | CoAP. | |1 |Dw|b'' | equal | not-sent | | | | CoAP. | osc.piv |1 |Dw|b'' | equal | not-sent | | | |||
| | option(9). | | | | | | | | | | option(9). | | | | | | | | | |||
| | piv | | | | | | | | | | piv | | | | | | | | | |||
| +------------+---------+--+--+------+---------+----------+--------+ | +------------+---------+--+--+------+---------+----------+--------+ | |||
| | CoAP. | |1 |Bi|b'' | equal | not-sent | | | | CoAP. | var |1 |Bi|b'' | equal | not-sent | | | |||
| | option(9). | | | | | | | | | | option(9). | | | | | | | | | |||
| | kid_ctx | | | | | | | | | | kid_ctx | | | | | | | | | |||
| +------------+---------+--+--+------+---------+----------+--------+ | +------------+---------+--+--+------+---------+----------+--------+ | |||
| | CoAP. | var_bit |1 |Up|0x0000| MSB(12) | LSB | KKKK | | | CoAP. | var_bit |1 |Up|0x0000| MSB(12) | LSB | KKKK | | |||
| | option(9). | | | | | | | | | | option(9). | | | | | | | | | |||
| | kid | | | | | | | | | | kid | | | | | | | | | |||
| +------------+---------+--+--+------+---------+----------+--------+ | +------------+---------+--+--+------+---------+----------+--------+ | |||
| | CoAP. | |1 |Dw|b'' | equal | not-sent | | | | CoAP. | var |1 |Dw|b'' | equal | not-sent | | | |||
| | option(9). | | | | | | | | | | option(9). | | | | | | | | | |||
| | kid | | | | | | | | | | kid | | | | | | | | | |||
| +------------+---------+--+--+------+---------+----------+--------+ | +------------+---------+--+--+------+---------+----------+--------+ | |||
| Table 11: Outer SCHC Rule between the Proxy and the Application | Table 11: Outer SCHC Rule between the Proxy and the Application | |||
| Server. CoAP Option Numbers: 3 (Uri-Host), 9 (OSCORE). | Server. CoAP Option Numbers: 3 (Uri-Host), 9 (OSCORE). | |||
| When the Device applies the Rule in Table 9 shared with the | When the Device applies the Rule in Table 9 shared with the | |||
| Application Server to the CoAP request in Figure 18, this results in | Application Server to the CoAP request in Figure 18, this results in | |||
| the Compressed Plaintext shown in Figure 26. | the Compressed Plaintext shown in Figure 26. | |||
| skipping to change at page 76, line 51 ¶ | skipping to change at page 77, line 51 ¶ | |||
| field but rather the length of the Compression Residue that is being | field but rather the length of the Compression Residue that is being | |||
| transmitted. If a corrupted packet arrives at the decompressor with | transmitted. If a corrupted packet arrives at the decompressor with | |||
| a longer or shorter length than that of the original compressed | a longer or shorter length than that of the original compressed | |||
| representation, the SCHC decompression procedures will detect an | representation, the SCHC decompression procedures will detect an | |||
| error and drop the packet. | error and drop the packet. | |||
| SCHC header compression Rules MUST remain tightly coupled between the | SCHC header compression Rules MUST remain tightly coupled between the | |||
| compressor and the decompressor. If the compression Rules get out of | compressor and the decompressor. If the compression Rules get out of | |||
| sync, a Compression Residue might be decompressed differently at the | sync, a Compression Residue might be decompressed differently at the | |||
| receiver, thus yielding a result different than the initial message | receiver, thus yielding a result different than the initial message | |||
| submitted to compression procedures. Accordingly, any time the | submitted to compression procedures. Accordingly, any time the Rules | |||
| context Rules are updated on an OSCORE endpoint, that endpoint MUST | within the SCHC Context are updated on an OSCORE endpoint, that | |||
| trigger an update of the OSCORE key material, e.g., by running the | endpoint MUST trigger an update of the OSCORE key material, e.g., by | |||
| lightweight key update protocol KUDOS | running the lightweight key update protocol KUDOS | |||
| [I-D.ietf-core-oscore-key-update]. Similar procedures may be | [I-D.ietf-core-oscore-key-update]. Similar procedures may be | |||
| appropriate to signal Rule updates when other message-protection | appropriate to signal Rule updates when other message-protection | |||
| mechanisms are in use. | mechanisms are in use. | |||
| 12.1. YANG Module | ||||
| The YANG data model defined in Appendix A extends the ietf-schc | ||||
| module defined in [RFC9363]. | ||||
| Therefore, all the security considerations compiled in Section 8 of | ||||
| [RFC9363] also apply to the resulting extended YANG data model. | ||||
| 13. IANA Considerations | 13. IANA Considerations | |||
| This document has the following actions for IANA. | This document has the following actions for IANA. | |||
| Note to RFC Editor: Please replace all occurrences of "[RFC-XXXX]" | 13.1. Static Context Header Compression (SCHC) Parameters | |||
| with the RFC number of this specification and delete this paragraph. | ||||
| 13.1. IETF XML | ||||
| IANA is asked to register the following entry in the "IETF XML" | ||||
| registry [RFC3688]. | ||||
| * URI: urn:ietf:params:xml:ns:yang:ietf-schc-coap | ||||
| * Registrant Contact: The IESG. | ||||
| * XML: N/A; the requested URI is an XML namespace. | ||||
| 13.2. YANG Module Names | ||||
| IANA is asked to register the following entry in the "YANG Module | ||||
| Names" registry [RFC6020][RFC8407] within the "YANG Parameters" | ||||
| registry group. | ||||
| * Name: ietf-schc-coap | ||||
| * Namespace: urn:ietf:params:xml:ns:yang:ietf-schc-coap | ||||
| * Prefix: schc-coap | ||||
| * Reference: [RFC-XXXX] | ||||
| 13.3. Static Context Header Compression (SCHC) Parameters | ||||
| IANA is asked to establish the "Static Context Header Compression | IANA is asked to establish the "Static Context Header Compression | |||
| (SCHC) Parameters" registry group. | (SCHC) Parameters" registry group. | |||
| The registry group has been initially populated with the registry | The registry group has been initially populated with the registry | |||
| established as per Section 13.4. | established as per Section 13.2. | |||
| 13.4. SCHC Compression of CoAP Fields | 13.2. SCHC Compression of CoAP Fields | |||
| IANA is asked to establish the "SCHC Compression of CoAP Fields" | IANA is asked to establish the "SCHC Compression of CoAP Fields" | |||
| registry within the "Static Context Header Compression (SCHC) | registry within the "Static Context Header Compression (SCHC) | |||
| Parameters" registry group established as per Section 13.3. | Parameters" registry group established as per Section 13.1. | |||
| As registration policy, the registry uses "Specification Required" | As registration policy, the registry uses "Specification Required" | |||
| per Section 4.6 of [RFC8126]. Expert Review guidelines are provided | per Section 4.6 of [RFC8126]. Expert Review guidelines are provided | |||
| in Section 13.5. | in Section 13.3. | |||
| 13.4.1. Intended Use | 13.2.1. Intended Use | |||
| The objective of this registry is to collect a list of CoAP fields | The objective of this registry is to collect a list of CoAP fields | |||
| and subfields, for which it has been defined how to perform SCHC | and subfields, for which it has been defined how to perform SCHC | |||
| compression. | compression. | |||
| Such a definition does not necessarily have to be in the same | Such a definition does not necessarily have to be in the same | |||
| documentation that defines the CoAP fields and subfields in question. | documentation that defines the CoAP fields and subfields in question. | |||
| While that can be the case, it is also possible to provide that | While that can be the case, it is also possible to provide that | |||
| definition in a separate specification. | definition in a separate specification. | |||
| skipping to change at page 79, line 9 ¶ | skipping to change at page 79, line 19 ¶ | |||
| strongly encouraged to update its list of references. The update | strongly encouraged to update its list of references. The update | |||
| is intended to add references to the specification that provides | is intended to add references to the specification that provides | |||
| the new or updated SCHC compression of the CoAP field, as well as | the new or updated SCHC compression of the CoAP field, as well as | |||
| to any documentation that updates the definition of the CoAP field | to any documentation that updates the definition of the CoAP field | |||
| itself. | itself. | |||
| If the defined SCHC compression considers the CoAP field as composed | If the defined SCHC compression considers the CoAP field as composed | |||
| of subfields, it is strongly encouraged that the same as above is | of subfields, it is strongly encouraged that the same as above is | |||
| also performed for each subfield and the associated registry entry. | also performed for each subfield and the associated registry entry. | |||
| 13.4.2. Structure of Entries | 13.2.2. Structure of Entries | |||
| The columns of this registry are: | The columns of this registry are: | |||
| * Field: a unique identifier of the CoAP field or subfield | * Field: a unique identifier of the CoAP field or subfield | |||
| associated with this entry. This identifier is used as FID in a | associated with this entry. This identifier is used as FID in a | |||
| Field Descriptor of a SCHC compression Rule for compressing/ | Field Descriptor of a SCHC compression Rule for compressing/ | |||
| decompressing CoAP messages. | decompressing CoAP messages. | |||
| This identifier has two possible formats: | This identifier has two possible formats: | |||
| skipping to change at page 79, line 31 ¶ | skipping to change at page 79, line 41 ¶ | |||
| - "CoAP.X.Y", where X is the name of the CoAP field and Y is the | - "CoAP.X.Y", where X is the name of the CoAP field and Y is the | |||
| name of a subfield of X. | name of a subfield of X. | |||
| If the CoAP field in question is specifically a CoAP option, then | If the CoAP field in question is specifically a CoAP option, then | |||
| X has the format "option(N)", where N is the option number of the | X has the format "option(N)", where N is the option number of the | |||
| CoAP option. The value N is taken from the "Number" column of the | CoAP option. The value N is taken from the "Number" column of the | |||
| corresponding entry in the "CoAP Option Numbers" IANA registry | corresponding entry in the "CoAP Option Numbers" IANA registry | |||
| [CoAP.Option.Numbers]. | [CoAP.Option.Numbers]. | |||
| Within the YANG data model originally specified in Section 6 of | ||||
| [RFC9363], this identifier must have a corresponding item or set | ||||
| of items for the CoAP field or subfield associated with this | ||||
| entry. | ||||
| * Description: a short description of the CoAP field or subfield | * Description: a short description of the CoAP field or subfield | |||
| associated with this entry, together with public references to the | associated with this entry, together with public references to the | |||
| resources that define it. | resources that define it. | |||
| * Reference: public references to the resources that define how a | * Reference: public references to the resources that define how a | |||
| SCHC compression Rule works for the CoAP field or subfield | SCHC compression Rule works for the CoAP field or subfield | |||
| associated with this entry. | associated with this entry. | |||
| In order to make the registry easier to parse, its entries are | In order to make the registry easier to parse, its entries are | |||
| ordered based on the value of the "Field" column and according to the | ordered based on the value of the "Field" column and according to the | |||
| skipping to change at page 80, line 21 ¶ | skipping to change at page 80, line 24 ¶ | |||
| CoAP message. | CoAP message. | |||
| * Given an entry "CoAP.X" for the field X, any entry "CoAP.X.Y" for | * Given an entry "CoAP.X" for the field X, any entry "CoAP.X.Y" for | |||
| the subfield Y of X appears after the entry "CoAP.X" and before | the subfield Y of X appears after the entry "CoAP.X" and before | |||
| the entry for any other field. | the entry for any other field. | |||
| This registry has been initially populated with the values in | This registry has been initially populated with the values in | |||
| Table 12. The "Reference" column for all these entries refers to | Table 12. The "Reference" column for all these entries refers to | |||
| this document. | this document. | |||
| 13.5. Expert Review Instructions | 13.3. Expert Review Instructions | |||
| The IANA registry established in this document is defined as | The IANA registry established in this document is defined as | |||
| "Specification Required". This section gives some general guidelines | "Specification Required". This section gives some general guidelines | |||
| for what the experts should be looking for, but they are being | for what the experts should be looking for, but they are being | |||
| designated as experts for a reason so they should be given | designated as experts for a reason so they should be given | |||
| substantial latitude. | substantial latitude. | |||
| Expert reviewers should take into consideration the following points: | Expert reviewers should take into consideration the following points: | |||
| * Point squatting should be discouraged. Reviewers are encouraged | * Point squatting should be discouraged. Reviewers are encouraged | |||
| to get sufficient information for registration requests to ensure | to get sufficient information for registration requests to ensure | |||
| that the usage is not going to duplicate one that is already | that the usage is not going to duplicate one that is already | |||
| registered and that the point is likely to be used in deployments. | registered and that the point is likely to be used in deployments. | |||
| Specifically, for every CoAP field, only one corresponding | Specifically, for every CoAP field, only one corresponding | |||
| registry entry is allowed. Also, for every CoAP subfield, only | registry entry is allowed. Also, for every CoAP subfield, only | |||
| one corresponding registry entry is allowed. | one corresponding registry entry is allowed. | |||
| * For a new registry entry, it has to be clear where that entry has | * For a new registry entry, it has to be clear where that entry has | |||
| to be positioned within the registry, according to the criteria | to be positioned within the registry, according to the criteria | |||
| compiled in Section 13.4.2. | compiled in Section 13.2.2. | |||
| * Consistent with the "Specification Required" registration policy, | * Consistent with the "Specification Required" registration policy, | |||
| specifications should exist, but early assignment before a | specifications should exist, but early assignment before a | |||
| specification is available is considered to be permissible. When | specification is available is considered to be permissible. When | |||
| specifications are not provided, the description provided needs to | specifications are not provided, the description provided needs to | |||
| have sufficient information to identify what the point is being | have sufficient information to identify what the point is being | |||
| used for. | used for. | |||
| If the expert becomes aware of a definition for SCHC compression of | If the expert becomes aware of a definition for SCHC compression of | |||
| CoAP fields and subfields that is deployed and in use, the expert may | CoAP fields and subfields that is deployed and in use, the expert may | |||
| skipping to change at page 81, line 40 ¶ | skipping to change at page 81, line 40 ¶ | |||
| RESTful Environments (Group OSCORE)", Work in Progress, | RESTful Environments (Group OSCORE)", Work in Progress, | |||
| Internet-Draft, draft-ietf-core-oscore-groupcomm-28, 23 | Internet-Draft, draft-ietf-core-oscore-groupcomm-28, 23 | |||
| December 2025, <https://datatracker.ietf.org/doc/html/ | December 2025, <https://datatracker.ietf.org/doc/html/ | |||
| draft-ietf-core-oscore-groupcomm-28>. | draft-ietf-core-oscore-groupcomm-28>. | |||
| [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/rfc/rfc2119>. | <https://www.rfc-editor.org/rfc/rfc2119>. | |||
| [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, | ||||
| DOI 10.17487/RFC3688, January 2004, | ||||
| <https://www.rfc-editor.org/rfc/rfc3688>. | ||||
| [RFC5116] McGrew, D., "An Interface and Algorithms for Authenticated | [RFC5116] McGrew, D., "An Interface and Algorithms for Authenticated | |||
| Encryption", RFC 5116, DOI 10.17487/RFC5116, January 2008, | Encryption", RFC 5116, DOI 10.17487/RFC5116, January 2008, | |||
| <https://www.rfc-editor.org/rfc/rfc5116>. | <https://www.rfc-editor.org/rfc/rfc5116>. | |||
| [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for | ||||
| the Network Configuration Protocol (NETCONF)", RFC 6020, | ||||
| DOI 10.17487/RFC6020, October 2010, | ||||
| <https://www.rfc-editor.org/rfc/rfc6020>. | ||||
| [RFC7252] Shelby, Z., Hartke, K., and C. Bormann, "The Constrained | [RFC7252] Shelby, Z., Hartke, K., and C. Bormann, "The Constrained | |||
| Application Protocol (CoAP)", RFC 7252, | Application Protocol (CoAP)", RFC 7252, | |||
| DOI 10.17487/RFC7252, June 2014, | DOI 10.17487/RFC7252, June 2014, | |||
| <https://www.rfc-editor.org/rfc/rfc7252>. | <https://www.rfc-editor.org/rfc/rfc7252>. | |||
| [RFC7641] Hartke, K., "Observing Resources in the Constrained | [RFC7641] Hartke, K., "Observing Resources in the Constrained | |||
| Application Protocol (CoAP)", RFC 7641, | Application Protocol (CoAP)", RFC 7641, | |||
| DOI 10.17487/RFC7641, September 2015, | DOI 10.17487/RFC7641, September 2015, | |||
| <https://www.rfc-editor.org/rfc/rfc7641>. | <https://www.rfc-editor.org/rfc/rfc7641>. | |||
| skipping to change at page 82, line 40 ¶ | skipping to change at page 82, line 30 ¶ | |||
| [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
| 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | |||
| May 2017, <https://www.rfc-editor.org/rfc/rfc8174>. | May 2017, <https://www.rfc-editor.org/rfc/rfc8174>. | |||
| [RFC8323] Bormann, C., Lemay, S., Tschofenig, H., Hartke, K., | [RFC8323] Bormann, C., Lemay, S., Tschofenig, H., Hartke, K., | |||
| Silverajan, B., and B. Raymor, Ed., "CoAP (Constrained | Silverajan, B., and B. Raymor, Ed., "CoAP (Constrained | |||
| Application Protocol) over TCP, TLS, and WebSockets", | Application Protocol) over TCP, TLS, and WebSockets", | |||
| RFC 8323, DOI 10.17487/RFC8323, February 2018, | RFC 8323, DOI 10.17487/RFC8323, February 2018, | |||
| <https://www.rfc-editor.org/rfc/rfc8323>. | <https://www.rfc-editor.org/rfc/rfc8323>. | |||
| [RFC8407] Bierman, A., "Guidelines for Authors and Reviewers of | ||||
| Documents Containing YANG Data Models", RFC 8407, | ||||
| DOI 10.17487/RFC8407, October 2018, | ||||
| <https://www.rfc-editor.org/rfc/rfc8407>. | ||||
| [RFC8613] Selander, G., Mattsson, J., Palombini, F., and L. Seitz, | [RFC8613] Selander, G., Mattsson, J., Palombini, F., and L. Seitz, | |||
| "Object Security for Constrained RESTful Environments | "Object Security for Constrained RESTful Environments | |||
| (OSCORE)", RFC 8613, DOI 10.17487/RFC8613, July 2019, | (OSCORE)", RFC 8613, DOI 10.17487/RFC8613, July 2019, | |||
| <https://www.rfc-editor.org/rfc/rfc8613>. | <https://www.rfc-editor.org/rfc/rfc8613>. | |||
| [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/rfc/rfc8724>. | <https://www.rfc-editor.org/rfc/rfc8724>. | |||
| skipping to change at page 83, line 37 ¶ | skipping to change at page 83, line 21 ¶ | |||
| "Constrained Application Protocol (CoAP): Echo, Request- | "Constrained Application Protocol (CoAP): Echo, Request- | |||
| Tag, and Token Processing", RFC 9175, | Tag, and Token Processing", RFC 9175, | |||
| DOI 10.17487/RFC9175, February 2022, | DOI 10.17487/RFC9175, February 2022, | |||
| <https://www.rfc-editor.org/rfc/rfc9175>. | <https://www.rfc-editor.org/rfc/rfc9175>. | |||
| [RFC9177] Boucadair, M. and J. Shallow, "Constrained Application | [RFC9177] Boucadair, M. and J. Shallow, "Constrained Application | |||
| Protocol (CoAP) Block-Wise Transfer Options Supporting | Protocol (CoAP) Block-Wise Transfer Options Supporting | |||
| Robust Transmission", RFC 9177, DOI 10.17487/RFC9177, | Robust Transmission", RFC 9177, DOI 10.17487/RFC9177, | |||
| March 2022, <https://www.rfc-editor.org/rfc/rfc9177>. | March 2022, <https://www.rfc-editor.org/rfc/rfc9177>. | |||
| [RFC9363] Minaburo, A. and L. Toutain, "A YANG Data Model for Static | ||||
| Context Header Compression (SCHC)", RFC 9363, | ||||
| DOI 10.17487/RFC9363, March 2023, | ||||
| <https://www.rfc-editor.org/rfc/rfc9363>. | ||||
| [RFC9668] Palombini, F., Tiloca, M., Höglund, R., Hristozov, S., and | [RFC9668] Palombini, F., Tiloca, M., Höglund, R., Hristozov, S., and | |||
| G. Selander, "Using Ephemeral Diffie-Hellman Over COSE | G. Selander, "Using Ephemeral Diffie-Hellman Over COSE | |||
| (EDHOC) with the Constrained Application Protocol (CoAP) | (EDHOC) with the Constrained Application Protocol (CoAP) | |||
| and Object Security for Constrained RESTful Environments | and Object Security for Constrained RESTful Environments | |||
| (OSCORE)", RFC 9668, DOI 10.17487/RFC9668, November 2024, | (OSCORE)", RFC 9668, DOI 10.17487/RFC9668, November 2024, | |||
| <https://www.rfc-editor.org/rfc/rfc9668>. | <https://www.rfc-editor.org/rfc/rfc9668>. | |||
| 14.2. Informative References | 14.2. Informative References | |||
| [I-D.ietf-core-groupcomm-bis] | [I-D.ietf-core-groupcomm-bis] | |||
| Dijk, E. and M. Tiloca, "Group Communication for the | Dijk, E. and M. Tiloca, "Group Communication for the | |||
| Constrained Application Protocol (CoAP)", Work in | Constrained Application Protocol (CoAP)", Work in | |||
| Progress, Internet-Draft, draft-ietf-core-groupcomm-bis- | Progress, Internet-Draft, draft-ietf-core-groupcomm-bis- | |||
| 18, 10 February 2026, | 18, 10 February 2026, | |||
| <https://datatracker.ietf.org/doc/html/draft-ietf-core- | <https://datatracker.ietf.org/doc/html/draft-ietf-core- | |||
| groupcomm-bis-18>. | groupcomm-bis-18>. | |||
| [I-D.ietf-core-oscore-key-update] | [I-D.ietf-core-oscore-key-update] | |||
| Höglund, R. and M. Tiloca, "Key Update for OSCORE | Höglund, R. and M. Tiloca, "Key Update for OSCORE | |||
| (KUDOS)", Work in Progress, Internet-Draft, draft-ietf- | (KUDOS)", Work in Progress, Internet-Draft, draft-ietf- | |||
| core-oscore-key-update-13, 2 March 2026, | core-oscore-key-update-14, 6 July 2026, | |||
| <https://datatracker.ietf.org/doc/html/draft-ietf-core- | <https://datatracker.ietf.org/doc/html/draft-ietf-core- | |||
| oscore-key-update-13>. | oscore-key-update-14>. | |||
| [I-D.ietf-schc-architecture] | ||||
| Pelov, A., Thubert, P., Minaburo, A., Lampin, Q., and M. | ||||
| Dumay, "Static Context Header Compression (SCHC) | ||||
| Architecture", Work in Progress, Internet-Draft, draft- | ||||
| ietf-schc-architecture-06, 6 July 2026, | ||||
| <https://datatracker.ietf.org/doc/html/draft-ietf-schc- | ||||
| architecture-06>. | ||||
| [I-D.ietf-schc-universal-option] | [I-D.ietf-schc-universal-option] | |||
| Lampin, Q., Minaburo, A., Tiloca, M., and L. Toutain, | Lampin, Q., Minaburo, A., Tiloca, M., and L. Toutain, | |||
| "Options representation in SCHC YANG Data Models", Work in | "Options representation in SCHC YANG Data Models", Work in | |||
| Progress, Internet-Draft, draft-ietf-schc-universal- | Progress, Internet-Draft, draft-ietf-schc-universal- | |||
| option-01, 17 October 2025, | option-01, 17 October 2025, | |||
| <https://datatracker.ietf.org/doc/html/draft-ietf-schc- | <https://datatracker.ietf.org/doc/html/draft-ietf-schc- | |||
| universal-option-01>. | universal-option-01>. | |||
| [RFC8824] Minaburo, A., Toutain, L., and R. Andreasen, "Static | [RFC8824] Minaburo, A., Toutain, L., and R. Andreasen, "Static | |||
| skipping to change at page 84, line 44 ¶ | skipping to change at page 84, line 29 ¶ | |||
| [RFC9147] Rescorla, E., Tschofenig, H., and N. Modadugu, "The | [RFC9147] Rescorla, E., Tschofenig, H., and N. Modadugu, "The | |||
| Datagram Transport Layer Security (DTLS) Protocol Version | Datagram Transport Layer Security (DTLS) Protocol Version | |||
| 1.3", RFC 9147, DOI 10.17487/RFC9147, April 2022, | 1.3", RFC 9147, DOI 10.17487/RFC9147, April 2022, | |||
| <https://www.rfc-editor.org/rfc/rfc9147>. | <https://www.rfc-editor.org/rfc/rfc9147>. | |||
| [RFC9528] Selander, G., Preuß Mattsson, J., and F. Palombini, | [RFC9528] Selander, G., Preuß Mattsson, J., and F. Palombini, | |||
| "Ephemeral Diffie-Hellman Over COSE (EDHOC)", RFC 9528, | "Ephemeral Diffie-Hellman Over COSE (EDHOC)", RFC 9528, | |||
| DOI 10.17487/RFC9528, March 2024, | DOI 10.17487/RFC9528, March 2024, | |||
| <https://www.rfc-editor.org/rfc/rfc9528>. | <https://www.rfc-editor.org/rfc/rfc9528>. | |||
| Appendix A. YANG Data Model | Appendix A. Document Updates | |||
| This appendix defines the ietf-schc-coap module, which extends the | ||||
| ietf-schc module defined in [RFC9363] to include the new CoAP options | ||||
| as defined in the present document. | ||||
| Note to RFC Editor: In the YANG data model below, please replace all | ||||
| occurrences of "XXXX" with the RFC number of this specification and | ||||
| delete this paragraph. | ||||
| <CODE BEGINS> file "ietf-schc-coap@2026-06-30.yang" | ||||
| module ietf-schc-coap { | ||||
| yang-version 1.1; | ||||
| namespace "urn:ietf:params:xml:ns:yang:ietf-schc-coap"; | ||||
| prefix schc-coap; | ||||
| import ietf-schc { | ||||
| prefix schc; | ||||
| } | ||||
| organization | ||||
| "IETF SCHC (Static Context Header Compression) Working Group"; | ||||
| contact | ||||
| "WG Web: https://datatracker.ietf.org/wg/schc | ||||
| WG List: SCHC <mailto:schc@ietf.org> | ||||
| Editor: Marco Tiloca | ||||
| <mailto:marco.tiloca@ri.se>"; | ||||
| description | ||||
| "This module extends the ietf-schc module defined in RFC 9363 to | ||||
| include the new CoAP options as defined in RFC XXXX. | ||||
| Copyright (c) 2026 IETF Trust and the persons identified | ||||
| as authors of the code. All rights reserved. | ||||
| Redistribution and use in source and binary forms, with | ||||
| or without modification, is permitted pursuant to, and | ||||
| subject to the license terms contained in, the Revised | ||||
| BSD License set forth in Section 4.c of the IETF Trust's | ||||
| Legal Provisions Relating to IETF Documents | ||||
| (https://trustee.ietf.org/license-info). | ||||
| All revisions of IETF and IANA published modules can be found | ||||
| at the YANG Parameters registry group | ||||
| (https://www.iana.org/assignments/yang-parameters). | ||||
| This version of this YANG module is part of RFC XXXX; see | ||||
| the RFC itself for full legal notices."; | ||||
| revision 2026-06-30 { | ||||
| description | ||||
| "New CoAP extensions and extended OSCORE fields."; | ||||
| reference | ||||
| "RFC XXXX Static Context Header Compression (SCHC) for the | ||||
| Constrained Application Protocol (CoAP) (see | ||||
| Sections 5 and 6)"; | ||||
| } | ||||
| // Field ID | ||||
| identity fid-coap-option-proxy-cri { | ||||
| base "schc:fid-coap-option"; | ||||
| description | ||||
| "Proxy-Cri option."; | ||||
| reference | ||||
| "RFC 9988 Constrained Resource Identifiers"; | ||||
| } | ||||
| identity fid-coap-option-proxy-scheme-number { | ||||
| base "schc:fid-coap-option"; | ||||
| description | ||||
| "Proxy-Scheme-Number option."; | ||||
| reference | ||||
| "RFC 9988 Constrained Resource Identifiers"; | ||||
| } | ||||
| identity fid-coap-option-hop-limit { | ||||
| base "schc:fid-coap-option"; | ||||
| description | ||||
| "Hop Limit option to avoid infinite forwarding loops."; | ||||
| reference | ||||
| "RFC 8768 Constrained Application Protocol (CoAP) | ||||
| Hop-Limit Option"; | ||||
| } | ||||
| identity fid-coap-option-echo { | ||||
| base "schc:fid-coap-option"; | ||||
| description | ||||
| "Echo option."; | ||||
| reference | ||||
| "RFC 9175 Constrained Application Protocol (CoAP): | ||||
| Echo, Request-Tag, and Token Processing"; | ||||
| } | ||||
| identity fid-coap-option-request-tag { | ||||
| base "schc:fid-coap-option"; | ||||
| description | ||||
| "Request-Tag option."; | ||||
| reference | ||||
| "RFC 9175 Constrained Application Protocol (CoAP): | ||||
| Echo, Request-Tag, and Token Processing"; | ||||
| } | ||||
| identity fid-coap-option-q-block1 { | This section is to be removed before publishing as an RFC. | |||
| base "schc:fid-coap-option"; | ||||
| description | ||||
| "Q-Block1 option."; | ||||
| reference | ||||
| "RFC 9177 Constrained Application Protocol (CoAP) | ||||
| Block-Wise Transfer Options Supporting | ||||
| Robust Transmission"; | ||||
| } | ||||
| identity fid-coap-option-q-block2 { | A.1. Version -09 to -10 | |||
| base "schc:fid-coap-option"; | ||||
| description | ||||
| "Q-Block2 option."; | ||||
| reference | ||||
| "RFC 9177 Constrained Application Protocol (CoAP) | ||||
| Block-Wise Transfer Options Supporting | ||||
| Robust Transmission"; | ||||
| } | ||||
| identity fid-coap-option-edhoc { | * Terminology aligned with that in draft-ietf-schc-architecture. | |||
| base "schc:fid-coap-option"; | ||||
| description | ||||
| "EDHOC option."; | ||||
| reference | ||||
| "RFC 9668 Using Ephemeral Diffie-Hellman Over COSE (EDHOC) | ||||
| with the Constrained Application Protocol (CoAP) | ||||
| and Object Security for Constrained RESTful | ||||
| Environments (OSCORE)"; | ||||
| } | ||||
| // Function Length | * FL defined as non-empty. | |||
| identity fl-variable-bit { | * Fixed example rules to have FL not empty. | |||
| base "schc:fl-base-type"; | ||||
| description | ||||
| "Residue length in bits is sent as defined for CoAP."; | ||||
| reference | ||||
| "RFC XXXX Static Context Header Compression (SCHC) for the | ||||
| Constrained Application Protocol (CoAP) (see | ||||
| Section 3.1)"; | ||||
| } | ||||
| identity fl-oscore-piv-length { | * Clarified semantics of the osc.piv function. | |||
| base "schc:fl-base-type"; | ||||
| description | ||||
| "Size in bytes of the OSCORE Partial IV, equal to n."; | ||||
| reference | ||||
| "RFC XXXX Static Context Header Compression (SCHC) for the | ||||
| Constrained Application Protocol (CoAP) (see | ||||
| Section 6.4)"; | ||||
| } | ||||
| } | ||||
| <CODE ENDS> | ||||
| Figure 36: SCHC CoAP Extension YANG Data Model. | * Removed the YANG module ietf-schc-coap and text related to it. | |||
| Appendix B. Document Updates | * Removed text related to the YANG module ietf-schc defined in RFC | |||
| 9363. | ||||
| This section is to be removed before publishing as an RFC. | * Removed unnecessary references as not needed anymore: RFC 9363, | |||
| RFC 3688, RFC 6020, RFC8407. | ||||
| B.1. Version -08 to -09 | A.2. Version -08 to -09 | |||
| * Clarified overview of changes from RFC 8824 in Section 1, as to | * Clarified overview of changes from RFC 8824 in Section 1, as to | |||
| the CoAP options ETag, If-Match, and If-None-Match. | the CoAP options ETag, If-Match, and If-None-Match. | |||
| * Clarified use of functions "var" and "var_X" in the FL of the | * Clarified use of functions "var" and "var_X" in the FL of the | |||
| Field Descriptor. | Field Descriptor. | |||
| * Fixed occurrence of SCHC subfield name from kid_context to | * Fixed occurrence of SCHC subfield name from kid_context to | |||
| kid_ctx. | kid_ctx. | |||
| * A Field Descriptor can pertain to multiple adjacent instances of | * A Field Descriptor can pertain to multiple adjacent occurrences of | |||
| the same CoAP option grouped together. | the same CoAP option grouped together. | |||
| * Handling a variable number of path segments and query parameters | * Handling a variable number of path segments and query parameters | |||
| requires different SCHC Rules. | requires different SCHC Rules. | |||
| * Final text about updated reference in the YANG data model from RFC | * Final text about updated reference in the YANG data model from RFC | |||
| 9363. | 9363. | |||
| * YANG data model: | * YANG data model: | |||
| - Updated legal boilerplate and other metadata. | - Updated legal boilerplate and other metadata. | |||
| - Consistent use of placeholders for RFC numbers. | - Consistent use of placeholders for RFC numbers. | |||
| - Added the identity fl-variable-bit. | - Added the identity fl-variable-bit. | |||
| * Editorial fixes and improvements. | * Editorial fixes and improvements. | |||
| B.2. Version -07 to -08 | A.3. Version -07 to -08 | |||
| * Updated editor's notes about the YANG data model from [RFC9363]. | * Updated editor's notes about the YANG data model from RFC 9363. | |||
| * Shortened one too-long line in the YANG data model. | * Shortened one too-long line in the YANG data model. | |||
| * Editorial update of reference entries. | * Editorial update of reference entries. | |||
| B.3. Version -06 to -07 | A.4. Version -06 to -07 | |||
| * Removed content about the updates to the OSCORE Option expected | * Removed content about the updates to the OSCORE Option expected | |||
| from draft-ietf-core-oscore-key-update. | from draft-ietf-core-oscore-key-update. | |||
| * Requested creation of new IANA registry group. | * Requested creation of new IANA registry group. | |||
| * Explicit criteria for ordering entries in the new IANA registry. | * Explicit criteria for ordering entries in the new IANA registry. | |||
| * Editorial fixes in the initial list of CoAP fields to register. | * Editorial fixes in the initial list of CoAP fields to register. | |||
| B.4. Version -05 to -06 | A.5. Version -05 to -06 | |||
| * Generalized the Token Length field, the Token field, and the "tkl" | * Generalized the Token Length field, the Token field, and the "tkl" | |||
| function to comply with RFC 8974. | function to comply with RFC 8974. | |||
| * Clarified use of the FL for variable-length fields. | * Clarified use of the FL for variable-length fields. | |||
| * Explicit definition and use of "var" in the FL of a Field | * Explicit definition and use of "var" in the FL of a Field | |||
| Descriptor. | Descriptor. | |||
| * Consistent use of "var" in the examples of Rules. | * Consistent use of "var" in the examples of Rules. | |||
| * More robust reference to the YANG data model of RFC 9363. | * More robust reference to the YANG data model of RFC 9363. | |||
| * Editorial fixes in the examples. | * Editorial fixes in the examples. | |||
| * Minor clarifications and editorial improvements. | * Minor clarifications and editorial improvements. | |||
| B.5. Version -04 to -05 | A.6. Version -04 to -05 | |||
| * Compression of CoAP options: | * Compression of CoAP options: | |||
| - Clarified definition of Field Descriptors in SCHC Rules. | - Clarified definition of Field Descriptors in SCHC Rules. | |||
| - Description of Option Value as possibly composed of sub-fields. | - Description of Option Value as possibly composed of sub-fields. | |||
| - Both the syntactic approach and the semantics approach are | - Both the syntactic approach and the semantics approach are | |||
| possible (see draft-ietf-schc-universal-option). | possible (see draft-ietf-schc-universal-option). | |||
| skipping to change at page 90, line 14 ¶ | skipping to change at page 87, line 5 ¶ | |||
| * Clarified OSCORE compression when using the group mode of Group | * Clarified OSCORE compression when using the group mode of Group | |||
| OSCORE. | OSCORE. | |||
| * Updated YANG data model. | * Updated YANG data model. | |||
| * Updated author's contact information. | * Updated author's contact information. | |||
| * Fixes and editorial improvements. | * Fixes and editorial improvements. | |||
| B.6. Version -03 to -04 | A.7. Version -03 to -04 | |||
| * Clarified the rationale for using the "tkl" function. | * Clarified the rationale for using the "tkl" function. | |||
| * Added the "osc.piv" function to determine the length of the OSCORE | * Added the "osc.piv" function to determine the length of the OSCORE | |||
| piv field. | piv field. | |||
| * Consistent formulation of "tkl", "osc.x.m", and "osc.y.w". | * Consistent formulation of "tkl", "osc.x.m", and "osc.y.w". | |||
| * Explicitly stated that Field Descriptors have to be ordered in a | * Explicitly stated that Field Descriptors have to be ordered in a | |||
| determistic way. | determistic way. | |||
| skipping to change at page 90, line 38 ¶ | skipping to change at page 87, line 29 ¶ | |||
| * Fixed order of OSCORE-related Field Descriptors in example Rules. | * Fixed order of OSCORE-related Field Descriptors in example Rules. | |||
| * Use "bit" instead of "b" as symbol for bit (per ISO/IEC 80000-13). | * Use "bit" instead of "b" as symbol for bit (per ISO/IEC 80000-13). | |||
| * Made YANG extractable. | * Made YANG extractable. | |||
| * Updated references. | * Updated references. | |||
| * Fixes and editorial improvements. | * Fixes and editorial improvements. | |||
| B.7. Version -02 to -03 | A.8. Version -02 to -03 | |||
| * Consistent representation of "CoAP Version" 1 in example Rules. | * Consistent representation of "CoAP Version" 1 in example Rules. | |||
| * Split the compression of Token Length and Token into two sections. | * Split the compression of Token Length and Token into two sections. | |||
| * Disambiguated example of Rule on eliding a Uri-Path option. | * Disambiguated example of Rule on eliding a Uri-Path option. | |||
| * Fixed compression examples with OSCORE. | * Fixed compression examples with OSCORE. | |||
| * Inherited security considerations on the YANG module from RFC | * Inherited security considerations on the YANG module from RFC | |||
| 9363. | 9363. | |||
| * Fixes and editorial improvements. | * Fixes and editorial improvements. | |||
| B.8. Version -01 to -02 | A.9. Version -01 to -02 | |||
| * Added compression for the CoAP options Proxy-Cri and Proxy-Scheme- | * Added compression for the CoAP options Proxy-Cri and Proxy-Scheme- | |||
| Number. | Number. | |||
| * Defined new IANA registry "SCHC Compression of CoAP Fields". | * Defined new IANA registry "SCHC Compression of CoAP Fields". | |||
| * Updated the YANG data model. | * Updated the YANG data model. | |||
| * Fixes and editorial improvements. | * Fixes and editorial improvements. | |||
| B.9. Version -00 to -01 | A.10. Version -00 to -01 | |||
| * Fixed an example, as per the erratum with Errata ID 7623. | * Fixed an example, as per the erratum with Errata ID 7623. | |||
| * Clarified building of Field Descriptor for CoAP options. | * Clarified building of Field Descriptor for CoAP options. | |||
| * Clarified what SCHC compression considers for CoAP options. | * Clarified what SCHC compression considers for CoAP options. | |||
| * Revised SCHC compression of the ETag and If-Match CoAP option. | * Revised SCHC compression of the ETag and If-Match CoAP option. | |||
| * Revised SCHC compression of the If-None-Match CoAP option. | * Revised SCHC compression of the If-None-Match CoAP option. | |||
| * Added YANG data model for the YANG module. | * Added YANG data model for the YANG module. | |||
| * Added IANA considerations. | * Added IANA considerations. | |||
| * Fixes and editorial improvements. | * Fixes and editorial improvements. | |||
| Acknowledgments | Acknowledgments | |||
| The authors sincerely thank Christian Amsüss, Carles Gomez | The authors sincerely thank Christian Amsüss, Dhruv Dhody, Carles | |||
| Montenegro, Rikard Höglund, Quentin Lampin, Alexander Pelov, John | Gomez Montenegro, Rikard Höglund, Quentin Lampin, Alexander Pelov, | |||
| Preuß Mattsson, Göran Selander, Pascal Thubert, and Éric Vyncke for | John Preuß Mattsson, Göran Selander, Pascal Thubert, and Éric Vyncke | |||
| their comments and feedback. | for their comments and feedback. | |||
| This work was supported by the Sweden's Innovation Agency VINNOVA | This work was supported by the Sweden's Innovation Agency VINNOVA | |||
| within the EUREKA CELTIC-NEXT project CYPRESS; and by the H2020 | within the EUREKA CELTIC-NEXT project CYPRESS; and by the H2020 | |||
| projects SIFIS-Home (Grant agreement 952652) and ARCADIAN-IoT (Grant | projects SIFIS-Home (Grant agreement 952652) and ARCADIAN-IoT (Grant | |||
| agreement 101020259). | agreement 101020259). | |||
| Authors' Addresses | Authors' Addresses | |||
| Marco Tiloca | Marco Tiloca | |||
| RISE AB | RISE AB | |||
| End of changes. 108 change blocks. | ||||
| 496 lines changed or deleted | 396 lines changed or added | |||
This html diff was produced by rfcdiff 1.49. The latest version is available from https://github.com/ietf-tools/rfcdiff | ||||