| rfc9363xml2.original.xml | rfc9363.xml | |||
|---|---|---|---|---|
| <?xml version="1.0" encoding="UTF-8"?> | <?xml version="1.0" encoding="UTF-8"?> | |||
| <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?> | <!DOCTYPE rfc [ | |||
| <!-- generated by https://github.com/cabo/kramdown-rfc2629 version 1.6.2 (Ruby | ||||
| 2.7.0) --> | ||||
| <!DOCTYPE rfc [ | ||||
| <!ENTITY nbsp " "> | <!ENTITY nbsp " "> | |||
| <!ENTITY zwsp "​"> | <!ENTITY zwsp "​"> | |||
| <!ENTITY nbhy "‑"> | <!ENTITY nbhy "‑"> | |||
| <!ENTITY wj "⁠"> | <!ENTITY wj "⁠"> | |||
| ]> | ]> | |||
| <?rfc strict="yes"?> | <!-- generated by https://github.com/cabo/kramdown-rfc2629 version 1.6.2 (Ruby 2 | |||
| <?rfc compact="yes"?> | .7.0) --> | |||
| <rfc ipr="trust200902" docName="draft-ietf-lpwan-schc-yang-data-model-21" catego | <rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft | |||
| ry="std" consensus="true" tocInclude="true" sortRefs="true" symRefs="true"> | -ietf-lpwan-schc-yang-data-model-21" number="9363" submissionType="IETF" categor | |||
| <front> | y="std" consensus="true" tocInclude="true" sortRefs="true" symRefs="true" update | |||
| <title abbrev="LPWAN SCHC YANG module">Data Model for Static Context Header | s="" obsoletes="" xml:lang="en" version="3"> | |||
| Compression (SCHC)</title> | ||||
| <!-- xml2rfc v2v3 conversion 3.15.0 --> | ||||
| <front> | ||||
| <title abbrev="LPWAN SCHC YANG Data Model">A YANG Data Model for Static Cont | ||||
| ext Header Compression (SCHC)</title> | ||||
| <seriesInfo name="RFC" value="9363"/> | ||||
| <author initials="A." surname="Minaburo" fullname="Ana Minaburo"> | <author initials="A." surname="Minaburo" fullname="Ana Minaburo"> | |||
| <organization>Acklio</organization> | <organization>Acklio</organization> | |||
| <address> | <address> | |||
| <postal> | <postal> | |||
| <street>1137A avenue des Champs Blancs</street> | <street>1137A avenue des Champs Blancs</street> | |||
| <city>35510 Cesson-Sevigne Cedex</city> | <city>Cesson-Sevigne Cedex</city> | |||
| <code>35510</code> | ||||
| <country>France</country> | <country>France</country> | |||
| </postal> | </postal> | |||
| <email>ana@ackl.io</email> | <email>ana@ackl.io</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <author initials="L." surname="Toutain" fullname="Laurent Toutain"> | <author initials="L." surname="Toutain" fullname="Laurent Toutain"> | |||
| <organization>Institut MINES TELECOM; IMT Atlantique</organization> | <organization abbrev="IMT Atlantique">Institut MINES TELECOM; IMT Atlantiq ue</organization> | |||
| <address> | <address> | |||
| <postal> | <postal> | |||
| <street>2 rue de la Chataigneraie</street> <street>CS 17607</street> | <street>2 rue de la Chataigneraie CS 17607</street> | |||
| <city>35576 Cesson-Sevigne Cedex</city> | <city>Cesson-Sevigne Cedex</city> | |||
| <code>35576</code> | ||||
| <country>France</country> | <country>France</country> | |||
| </postal> | </postal> | |||
| <email>Laurent.Toutain@imt-atlantique.fr</email> | <email>Laurent.Toutain@imt-atlantique.fr</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <date year="2023" month="February"/> | ||||
| <date year="2022" month="October" day="09"/> | <area>int</area> | |||
| <workgroup>lpwan</workgroup> | ||||
| <workgroup>lpwan Working Group</workgroup> | <keyword>Header Compression</keyword> | |||
| <keyword>Fragmentation</keyword> | ||||
| <keyword>SCHC Rule</keyword> | ||||
| <keyword>IPv6</keyword> | ||||
| <keyword>UDP</keyword> | ||||
| <keyword>CoAP</keyword> | ||||
| <keyword>OSCORE</keyword> | ||||
| <abstract> | <abstract> | |||
| <t>This document describes a YANG data model for the Static Context Header | ||||
| <t>This document describes a YANG data model for the SCHC (Static Context Header | Compression (SCHC) | |||
| Compression) | compression and fragmentation Rules.</t> | |||
| compression and fragmentation rules.</t> | <t>This document formalizes the description of the Rules for better intero | |||
| perability between SCHC instances either | ||||
| <t>This document formalizes the description of the rules for better interoperabi | to exchange a set of Rules or to modify the parameters of some Rules.</t> | |||
| lity between SCHC instances either | ||||
| to exchange a set of rules or to modify some rules parameters.</t> | ||||
| </abstract> | </abstract> | |||
| </front> | </front> | |||
| <middle> | <middle> | |||
| <section anchor="Introduction"> | ||||
| <section anchor="Introduction"><name>Introduction</name> | <name>Introduction</name> | |||
| <t>SCHC is a compression and fragmentation mechanism for constrained netwo | ||||
| <t>SCHC is a compression and fragmentation mechanism for constrained networks de | rks defined in <xref target="RFC8724"/>. | |||
| fined in <xref target="RFC8724"/>. | ||||
| It is based on a static context shared by two entities at the boundary of the co nstrained network. | It is based on a static context shared by two entities at the boundary of the co nstrained network. | |||
| <xref target="RFC8724"/> provides an informal representation of the rules used e | <xref target="RFC8724"/> provides an informal representation of the Rules used e | |||
| ither for compression/decompression (or C/D) | ither for compression/decompression (C/D) | |||
| or fragmentation/reassembly (or F/R). The goal of this document is to formalize | or fragmentation/reassembly (F/R). The goal of this document is to formalize the | |||
| the description of the rules to offer:</t> | description of the Rules to offer:</t> | |||
| <ul spacing="normal"> | ||||
| <t><list style="symbols"> | <li>the same definition on both ends, even if the internal representatio | |||
| <t>the same definition on both ends, even if the internal representation is di | n is different, and</li> | |||
| fferent;</t> | <li>an update of the other end to set up some specific values (e.g., IPv | |||
| <t>an update of the other end to set up some specific values (e.g. IPv6 prefix | 6 prefix, destination address, etc.).</li> | |||
| , destination address,...).</t> | </ul> | |||
| </list></t> | <t><xref target="I-D.ietf-lpwan-architecture"/> illustrates the exchange o | |||
| f Rules using the YANG data model.</t> | ||||
| <t><xref target="I-D.ietf-lpwan-architecture"/> illustrates the exchange of rule | <t>This document defines a YANG data model <xref target="RFC7950"/> to rep | |||
| s using the YANG data model.</t> | resent both compression and fragmentation Rules, which leads to common represent | |||
| ation for values for all the Rules' elements.</t> | ||||
| <t>This document defines a YANG module <xref target="RFC7950"/> to represent bot | </section> | |||
| h compression and fragmentation rules, which leads to common representation for | <section anchor="requirements-language"> | |||
| values for all the rules elements.</t> | <name>Requirements Language</name> | |||
| <t> | ||||
| </section> | The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQU | |||
| <section anchor="requirements-language"><name>Requirements Language</name> | IRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL | |||
| NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14> | ||||
| <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", | RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>", | |||
| "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", | "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to | |||
| "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP | be interpreted as | |||
| 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they | described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> | |||
| appear in all capitals, as shown here.</t> | when, and only when, they appear in all capitals, as shown here. | |||
| </t> | ||||
| </section> | </section> | |||
| <section anchor="Term"><name>Terminology</name> | <section anchor="Term"> | |||
| <name>Terminology</name> | ||||
| <t>This section defines the terminology and acronyms used in this document. | <t>This section defines the terminology and acronyms used in this document | |||
| . | ||||
| It extends the terminology of <xref target="RFC8376"/>.</t> | It extends the terminology of <xref target="RFC8376"/>.</t> | |||
| <dl newline="false" spacing="normal"> | ||||
| <t><list style="symbols"> | <dt>App:</dt> | |||
| <t>App: LPWAN Application, as defined by <xref target="RFC8376"/>. An applicat | <dd>Low-Power WAN (LPWAN) Application, as defined by <xref target="RFC837 | |||
| ion sending/receiving packets to/from the Dev.</t> | 6"/>. An application sending/receiving packets to/from the Dev.</dd> | |||
| <t>Bi: Bidirectional. Characterizes a Field Descriptor that applies to headers | <dt>Bi:</dt> | |||
| of packets traveling in either direction (Up and Dw, see this glossary).</t> | <dd>Bidirectional. Characterizes a Field Descriptor that applies to heade | |||
| <t>CDA: Compression/Decompression Action. Describes the pair of actions that a | rs of packets traveling in either direction (Up and Dw; see this glossary).</dd> | |||
| re performed at the compressor to compress a header field and at the decompresso | <dt>CDA:</dt> | |||
| r to recover the original value of the header field.</t> | <dd>Compression/Decompression Action. Describes the pair of actions that | |||
| <t>Context: A set of Rules used to compress/decompress headers.</t> | are performed at the compressor to compress a header field and at the decompress | |||
| <t>Dev: Device, as defined by <xref target="RFC8376"/>.</t> | or to recover the original value of the header field.</dd> | |||
| <t>DevIID: Device Interface Identifier. The IID that identifies the Dev interf | <dt>Context:</dt> | |||
| ace.</t> | <dd>A set of Rules used to compress/decompress headers.</dd> | |||
| <t>DI: Direction Indicator. This field tells which direction of packet travel | <dt>Dev:</dt> | |||
| (Up, Dw or Bi) a Field Description applies to. This allows for asymmetric proces | <dd>Device, as defined by <xref target="RFC8376"/>.</dd> | |||
| sing, using the same Rule.</t> | <dt>DevIID:</dt> | |||
| <t>Dw: Downlink direction for compression/decompression, from SCHC C/D in the | <dd>Device Interface Identifier. The IID that identifies the Dev interfac | |||
| network to SCHC C/D in the Dev.</t> | e.</dd> | |||
| <t>FID: Field Identifier. This identifies the protocol and field a Field Descr | <dt>DI:</dt> | |||
| iption applies to.</t> | <dd>Direction Indicator. This field tells which direction of packet trave | |||
| <t>FL: Field Length is the length of the original packet header field. It is e | l (Up, Dw, or Bi) a Field Descriptor applies to. This allows for asymmetric proc | |||
| xpressed as a number of bits for header fields of fixed lengths or as a type (e. | essing, using the same Rule.</dd> | |||
| g., variable, token length, ...) for field lengths that are unknown at the time | <dt>Dw:</dt> | |||
| of Rule creation. The length of a header field is defined in the corresponding p | <dd>Downlink direction for compression/decompression, from SCHC C/D in th | |||
| rotocol specification (such as IPv6 or UDP).</t> | e network to SCHC C/D in the Dev.</dd> | |||
| <t>FP: when a Field is expected to appear multiple times in a header, Field Po | <dt>FID:</dt> | |||
| sition specifies the occurrence this Field Description applies to | <dd>Field Identifier or Field ID. This identifies the protocol and field | |||
| (for example, first uri-path option, second uri-path, etc. in a CoAP header), co | a Field Descriptor applies to.</dd> | |||
| unting from 1. The value 0 is special and means "don't care", see <xref target=" | <dt>FL:</dt> | |||
| RFC8724"/> Section 7.2.</t> | <dd>Field Length. This is the length of the original packet header field. | |||
| <t>IID: Interface Identifier. See the IPv6 addressing architecture <xref targe | It is expressed as a number of bits for header fields of fixed lengths or as a | |||
| t="RFC7136"/>.</t> | type (e.g., variable, token length, ...) for Field Lengths that are unknown at t | |||
| <t>L2 Word: this is the minimum subdivision of payload data that the L2 will c | he time of Rule creation. The length of a header field is defined in the corresp | |||
| arry. In most L2 technologies, the L2 Word is an octet. | onding protocol specification (such as IPv6 or UDP).</dd> | |||
| <dt>FP:</dt> | ||||
| <dd>Field Position. When a field is expected to appear multiple times in | ||||
| a header, the Field Position specifies the occurrence this Field Descriptor appl | ||||
| ies to | ||||
| (for example, first Uri-Path option, second Uri-Path, etc. in a Constrained Appl | ||||
| ication Protocol (CoAP) header), counting from 1. The value 0 is special and mea | ||||
| ns "don't care" (see <xref target="RFC8724" sectionFormat="of" section="7.2"/>). | ||||
| </dd> | ||||
| <dt>IID:</dt> | ||||
| <dd>Interface Identifier. See the IPv6 addressing architecture <xref targ | ||||
| et="RFC7136"/>.</dd> | ||||
| <dt>L2 Word:</dt> | ||||
| <dd>This is the minimum subdivision of payload data that the Layer 2 (L2) | ||||
| will carry. In most L2 technologies, the L2 Word is an octet. | ||||
| In bit-oriented radio technologies, the L2 Word might be a single bit. | In bit-oriented radio technologies, the L2 Word might be a single bit. | |||
| The L2 Word size is assumed to be constant over time for each device.</t> | The L2 Word size is assumed to be constant over time for each device.</dd> | |||
| <t>MO: Matching Operator. An operator used to match a value contained in a hea | <dt>MO:</dt> | |||
| der field with a value contained in a Rule.</t> | <dd>Matching Operator. An operator used to match a value contained in a h | |||
| <t>Rule ID (Rule Identifier): An identifier for a Rule. SCHC C/D on both sides | eader field with a value contained in a Rule.</dd> | |||
| share the same Rule ID for a given packet. A set of Rule IDs are used to suppor | <dt>RuleID:</dt> | |||
| t SCHC F/R functionality.</t> | <dd>Rule Identifier. An identifier for a Rule. SCHC C/D on both sides sha | |||
| <t>TV: Target value. A value contained in a Rule that will be matched with the | re the same RuleID for a given packet. A set of RuleIDs are used to support SCHC | |||
| value of a header field.</t> | F/R functionality.</dd> | |||
| <t>Up: Uplink direction for compression/decompression, from the Dev SCHC C/D t | <dt>TV:</dt> | |||
| o the network SCHC C/D.</t> | <dd>Target Value. A value contained in a Rule that will be matched with t | |||
| </list></t> | he value of a header field.</dd> | |||
| <dt>Up:</dt> | ||||
| </section> | <dd>Uplink direction for compression/decompression, from the Dev SCHC C/D | |||
| <section anchor="schc-rules"><name>SCHC rules</name> | to the network SCHC C/D.</dd> | |||
| </dl> | ||||
| <t>SCHC compression is generic, the main mechanism does not refer | </section> | |||
| to a specific protocol. Any header field is abstracted through an Field Identifi | <section anchor="schc-rules"> | |||
| er (FID), a position (FP), a direction (DI), and a value that can be a numerical | <name>SCHC Rules</name> | |||
| value or a string. <xref target="RFC8724"/> and <xref target="RFC8824"/> specify | <t>SCHC compression is generic; the main mechanism does not refer | |||
| fields for IPv6 <xref target="RFC8200"/>, UDP<xref target="RFC0768"/>, CoAP <xr | to a specific protocol. Any header field is abstracted through a Field Identifie | |||
| ef target="RFC7252"/> including options defined for no server response <xref ta | r (FID), a position (FP), a direction (DI), and a value that can be a numerical | |||
| rget="RFC7967"/> and OSCORE <xref target="RFC8613"/>. For the latter <xref targe | value or a string. <xref target="RFC8724"/> and <xref target="RFC8824"/> specify | |||
| t="RFC8824"/> splits this field into sub-fields.</t> | fields for IPv6 <xref target="RFC8200"/>, UDP <xref target="RFC0768"/>, and CoA | |||
| P <xref target="RFC7252"/>, including options defined for no server response <x | ||||
| <t>SCHC fragmentation requires a set of common parameters that are included in a | ref target="RFC7967"/> and Object Security for Constrained RESTful Environments | |||
| rule. These parameters are defined in <xref target="RFC8724"/>.</t> | (OSCORE) <xref target="RFC8613"/>. For the latter, <xref target="RFC8824"/> spli | |||
| ts this field into subfields.</t> | ||||
| <t>The YANG data model enables the compression and the fragmentation selection u | <t>SCHC fragmentation requires a set of common parameters that are include | |||
| sing the feature statement.</t> | d in a Rule. These parameters are defined in <xref target="RFC8724"/>.</t> | |||
| <t>The YANG data model enables the compression and the fragmentation selec | ||||
| <section anchor="comp_types"><name>Compression Rules</name> | tion using the feature statement.</t> | |||
| <section anchor="comp_types"> | ||||
| <t><xref target="RFC8724"/> proposes an informal representation of the compressi | <name>Compression Rules</name> | |||
| on rule. | <t><xref target="RFC8724"/> proposes an informal representation of the c | |||
| A compression context for a device is composed of a set of rules. Each rule cont | ompression Rule. | |||
| ains information to | A compression context for a device is composed of a set of Rules. Each Rule cont | |||
| ains information to | ||||
| describe a specific field in the header to be compressed.</t> | describe a specific field in the header to be compressed.</t> | |||
| <figure anchor="Fig-ctxt"> | ||||
| <figure title="Compression Decompression Context" anchor="Fig-ctxt"><artwork><![ | <name>Compression Decompression Context</name> | |||
| CDATA[ | <artwork><![CDATA[ | |||
| +-----------------------------------------------------------------+ | +-----------------------------------------------------------------+ | |||
| | Rule N | | | Rule N | | |||
| +-----------------------------------------------------------------+| | +-----------------------------------------------------------------+| | |||
| | Rule i || | | Rule i || | |||
| +-----------------------------------------------------------------+|| | +-----------------------------------------------------------------+|| | |||
| | (FID) Rule 1 ||| | | (FID) Rule 1 ||| | |||
| |+-------+--+--+--+------------+-----------------+---------------+||| | |+-------+--+--+--+------------+-----------------+---------------+||| | |||
| ||Field 1|FL|FP|DI|Target Value|Matching Operator|Comp/Decomp Act|||| | ||Field 1|FL|FP|DI|Target Value|Matching Operator|Comp/Decomp Act|||| | |||
| |+-------+--+--+--+------------+-----------------+---------------+||| | |+-------+--+--+--+------------+-----------------+---------------+||| | |||
| ||Field 2|FL|FP|DI|Target Value|Matching Operator|Comp/Decomp Act|||| | ||Field 2|FL|FP|DI|Target Value|Matching Operator|Comp/Decomp Act|||| | |||
| |+-------+--+--+--+------------+-----------------+---------------+||| | |+-------+--+--+--+------------+-----------------+---------------+||| | |||
| ||... |..|..|..| ... | ... | ... |||| | ||... |..|..|..| ... | ... | ... |||| | |||
| |+-------+--+--+--+------------+-----------------+---------------+||/ | |+-------+--+--+--+------------+-----------------+---------------+||/ | |||
| ||Field N|FL|FP|DI|Target Value|Matching Operator|Comp/Decomp Act||| | ||Field N|FL|FP|DI|Target Value|Matching Operator|Comp/Decomp Act||| | |||
| |+-------+--+--+--+------------+-----------------+---------------+|/ | |+-------+--+--+--+------------+-----------------+---------------+|/ | |||
| | | | | | | |||
| \-----------------------------------------------------------------/ | \-----------------------------------------------------------------/ | |||
| ]]></artwork> | ||||
| ]]></artwork></figure> | </figure> | |||
| </section> | ||||
| </section> | <section anchor="identifier-generation"> | |||
| <section anchor="identifier-generation"><name>Identifier generation</name> | <name>Identifier Generation</name> | |||
| <t>Identifiers used in the SCHC YANG data model are from the identityref | ||||
| <t>Identifiers used in the SCHC YANG data model are from the identityref stateme | statement to ensure global uniqueness and easy augmentation if needed. The pri | |||
| nt to ensure global uniqueness and easy augmentation if needed. The principle t | nciple to define a new type based on a group of identityref is the following:</t | |||
| o define a new type based on a group of identityref is the following:</t> | > | |||
| <ul spacing="normal"> | ||||
| <t><list style="symbols"> | <li>Define a main identity ending with the keyword base-type.</li> | |||
| <t>define a main identity ending with the keyword base-type.</t> | <li>Derive all the identities used in the data model from this base ty | |||
| <t>derive all the identities used in the Data Model from this base type.</t> | pe.</li> | |||
| <t>create a typedef from this base type.</t> | <li>Create a typedef from this base type.</li> | |||
| </list></t> | </ul> | |||
| <t>The example below (<xref target="Fig-identityref"/>) shows how an ide | ||||
| <t>The example (<xref target="Fig-identityref"/>) shows how an identityref is cr | ntityref is created for Reassembly Check Sequence (RCS) algorithms used during S | |||
| eated for RCS (Reassembly Check Sequence) algorithms used during SCHC fragmentat | CHC fragmentation.</t> | |||
| ion.</t> | <figure anchor="Fig-identityref"> | |||
| <name>Principle to Define a Type Based on identityref</name> | ||||
| <figure title="Principle to define a type based on identityref." anchor="Fig-ide | <sourcecode type=""><![CDATA[ | |||
| ntityref"><artwork><![CDATA[ | ||||
| identity rcs-algorithm-base-type { | identity rcs-algorithm-base-type { | |||
| description | description | |||
| "Identify which algorithm is used to compute RCS. | "Identify which algorithm is used to compute RCS. | |||
| The algorithm also defines the size of the RCS field."; | The algorithm also defines the size of the RCS field."; | |||
| reference | reference | |||
| "RFC 8724 SCHC: Generic Framework for Static Context Header | "RFC 8724 SCHC: Generic Framework for Static Context Header | |||
| Compression and Fragmentation"; | Compression and Fragmentation"; | |||
| } | } | |||
| identity rcs-crc32 { | identity rcs-crc32 { | |||
| base rcs-algorithm-base-type; | base rcs-algorithm-base-type; | |||
| description | description | |||
| "CRC 32 defined as default RCS in RFC8724. This RCS is | "CRC32 defined as default RCS in RFC 8724. This RCS is | |||
| 4 bytes long."; | 4 bytes long."; | |||
| reference | reference | |||
| "RFC 8724 SCHC: Generic Framework for Static Context Header | "RFC 8724 SCHC: Generic Framework for Static Context Header | |||
| Compression and Fragmentation"; | Compression and Fragmentation"; | |||
| } | } | |||
| typedef rcs-algorithm-type { | typedef rcs-algorithm-type { | |||
| type identityref { | type identityref { | |||
| base rcs-algorithm-base-type; | base rcs-algorithm-base-type; | |||
| } | } | |||
| description | description | |||
| "Define the type for RCS algorithm in rules."; | "Define the type for RCS algorithm in Rules."; | |||
| } | } | |||
| ]]></artwork></figure> | ]]></sourcecode> | |||
| </figure> | ||||
| </section> | </section> | |||
| <section anchor="convention-for-field-identifier"><name>Convention for Field Ide | <section anchor="convention-for-field-identifier"> | |||
| ntifier</name> | <name>Convention for Field Identifier</name> | |||
| <t>In the process of compression, the headers of the original packet are | ||||
| <t>In the process of compression, the headers of the original packet are first p | first parsed to create a list of fields. This list of fields is matched against | |||
| arsed to create a list of fields. This list of fields is matched against the rul | the Rules to find the appropriate Rule and apply compression. <xref target="RF | |||
| es to find the appropriate rule and apply compression. <xref target="RFC8724"/> | C8724"/> does not state how the Field ID value is constructed. | |||
| does not state how the field ID value is constructed. | In examples, identification is done through a string indexed by the protocol nam | |||
| In examples, identification is done through a string indexed by the protocol nam | e (e.g., IPv6.version, CoAP.version, etc.).</t> | |||
| e (e.g. IPv6.version, CoAP.version,...).</t> | <t>The current YANG data model includes field definitions found in <xref | |||
| target="RFC8724"/> and <xref target="RFC8824"/>.</t> | ||||
| <t>The current YANG data model includes fields definitions found in <xref target | <t>Using the YANG data model, each field <bcp14>MUST</bcp14> be identifi | |||
| ="RFC8724"/>, <xref target="RFC8824"/>.</t> | ed through a global YANG identityref.</t> | |||
| <t>A YANG Field ID for the protocol is always derived from the fid-base-type. Th | ||||
| <t>Using the YANG data model, each field MUST be identified through a global YAN | en, an identity | |||
| G identityref.<br /> | ||||
| A YANG field ID for the protocol is always derived from the fid-base-type. Then | ||||
| an identity | ||||
| for each protocol is specified using the naming convention fid-<<protocol name>>-base-type. | for each protocol is specified using the naming convention fid-<<protocol name>>-base-type. | |||
| All possible fields for this protocol MUST derive from the protocol identity. Th e naming | All possible fields for this protocol <bcp14>MUST</bcp14> derive from the protoc ol identity. The naming | |||
| convention is "fid-" followed by the protocol name and the field name. If a fiel d has | convention is "fid-" followed by the protocol name and the field name. If a fiel d has | |||
| to be divided into sub-fields, the field identity serves as a base.</t> | to be divided into subfields, the field identity serves as a base.</t> | |||
| <t>The full field-id definition is found in <xref target="annexA"/>. A t | ||||
| <t>The full field-id definition is found in <xref target="annexA"/>. A type is d | ype is defined for the IPv6 protocol, and each | |||
| efined for IPv6 protocol, and each | field is based on it. Note that the Diffserv bits derive from the Traffic Class | |||
| field is based on it. Note that the DiffServ bits derive from the Traffic Class | identity.</t> | |||
| identity.</t> | </section> | |||
| <section anchor="convention-for-field-length"> | ||||
| </section> | <name>Convention for Field Length</name> | |||
| <section anchor="convention-for-field-length"><name>Convention for Field length< | <t>The Field Length is either an integer giving the size of a field in b | |||
| /name> | its or a specific function. <xref target="RFC8724"/> defines the | |||
| "var" function, which allows variable-length fields (whose length is expressed i | ||||
| <t>Field length is either an integer giving the size of a field in bits or a spe | n bytes), and <xref target="RFC8824"/> defines the "tkl" function for managing t | |||
| cific function. <xref target="RFC8724"/> defines the | he CoAP | |||
| "var" function which allows variable length fields (whose length is expressed in | Token Length field.</t> | |||
| bytes) and <xref target="RFC8824"/> defines the "tkl" function for managing the | <t>The naming convention is "fl-" followed by the function name.</t> | |||
| CoAP | <t>The Field Length function can be defined as an identityref, as descri | |||
| Token length field.</t> | bed in <xref target="annexA"/>. Therefore, the type for the Field Length is a un | |||
| ion between an integer giving the size of the length in bits and the identityref | ||||
| <t>The naming convention is "fl-" followed by the function name.</t> | .</t> | |||
| </section> | ||||
| <t>The field length function can be defined as an identityref as described in <x | <section anchor="convention-for-field-position"> | |||
| ref target="annexA"/>. Therefore, the type for field length is a union between a | <name>Convention for Field Position</name> | |||
| n integer giving the size of the length in bits and the identityref.</t> | <t>The Field Position is a positive integer that gives the occurrence ti | |||
| mes of a | ||||
| </section> | specific field from the header start. The default value is 1 and is incremented | |||
| <section anchor="convention-for-field-position"><name>Convention for Field posit | at each repetition. | |||
| ion</name> | Value 0 indicates that the position is not important and is not considered durin | |||
| g the Rule selection process.</t> | ||||
| <t>Field position is a positive integer which gives the occurrence times of a | <t>The Field Position is a positive integer. The type is uint8.</t> | |||
| specific field from the header start. The default value is 1, and incremented a | </section> | |||
| t each repetition. | <section anchor="convention-for-direction-indicator"> | |||
| Value 0 indicates that the position is not important and is not considered durin | <name>Convention for Direction Indicator</name> | |||
| g the rule selection process.</t> | <t>The Direction Indicator is used to tell if a field appears in both di | |||
| rections (Bi) or only uplink (Up) or Downlink (Dw). The naming convention is "di | ||||
| <t>Field position is a positive integer. The type is uint8.</t> | " followed by the Direction Indicator name.</t> | |||
| <t>The type is "di-type".</t> | ||||
| </section> | </section> | |||
| <section anchor="convention-for-direction-indicator"><name>Convention for Direct | <section anchor="target_value"> | |||
| ion Indicator</name> | <name>Convention for Target Value</name> | |||
| <t>The Target Value is a list of binary sequences of any length, aligned | ||||
| <t>The Direction Indicator (di) is used to tell if a field appears in both direc | to the left. In the Rule, the structure will be used as a list, with the index | |||
| tions (Bi) or only uplink (Up) or Downlink (Dw). The naming convention is "di" f | as a key. The highest index value is used to compute the size of the index sent | |||
| ollowed by the Direction Indicator name.</t> | in residue for the match-mapping Compression Decompression Action (CDA). The ind | |||
| ex can specify several values:</t> | ||||
| <t>The type is "di-type".</t> | <ul spacing="normal"> | |||
| <li>For equal and most significant bits (MSBs), the Target Value conta | ||||
| </section> | ins a single element. Therefore, the index is set to 0.</li> | |||
| <section anchor="target_value"><name>Convention for Target Value</name> | <li>For match-mapping, the Target Value can contain several elements. | |||
| Index values <bcp14>MUST</bcp14> start from 0 and <bcp14>MUST</bcp14> be contigu | ||||
| <t>The Target Value is a list of binary sequences of any length, aligned to the | ous.</li> | |||
| left. In the rule, the structure will be used as a list, with index as a key. Th | </ul> | |||
| e highest index value is used to compute the size of the index sent in residue f | <t>If the header field contains text, the binary sequence uses the same | |||
| or the match-mapping CDA (Compression Decompression Action). The index can speci | encoding.</t> | |||
| fy several values:</t> | </section> | |||
| <section anchor="convention-for-matching-operator"> | ||||
| <t><list style="symbols"> | <name>Convention for Matching Operator</name> | |||
| <t>For Equal and MSB, Target Value contains a single element. Therefore, the i | <t>The Matching Operator (MO) is a function applied between a field valu | |||
| ndex is set to 0.</t> | e provided by the parsed header and the Target Value. <xref target="RFC8724"/> d | |||
| <t>For match-mapping, Target Value can contain several elements. Index values | efines 4 MOs.</t> | |||
| MUST start from 0 and MUST be contiguous.</t> | <t>The naming convention is "mo-" followed by the MO name.</t> | |||
| </list></t> | <t>The type is "mo-type".</t> | |||
| <section anchor="matching-operator-arguments"> | ||||
| <t>If the header field contains text, the binary sequence uses the same encoding | <name>Matching Operator Arguments</name> | |||
| .</t> | <t>They are viewed as a list, built with a tv-struct (see <xref target | |||
| ="target_value"/>).</t> | ||||
| </section> | </section> | |||
| <section anchor="convention-for-matching-operator"><name>Convention for Matching | </section> | |||
| Operator</name> | <section anchor="convention-for-compression-decompression-actions"> | |||
| <name>Convention for Compression Decompression Actions</name> | ||||
| <t>Matching Operator (MO) is a function applied between a field value provided b | <t>The Compression Decompression Action (CDA) identifies the function to | |||
| y the parsed header and the target value. <xref target="RFC8724"/> defines 4 MO. | use for compression or decompression. | |||
| </t> | <xref target="RFC8724"/> defines 7 CDAs.</t> | |||
| <t>The naming convention is "cda-" followed by the CDA name.</t> | ||||
| <t>The naming convention is "mo-" followed by the MO name.</t> | <section anchor="compression-decompression-action-arguments"> | |||
| <name>Compression Decompression Action Arguments</name> | ||||
| <t>The type is "mo-type"</t> | <t>Currently no CDA requires arguments, but some CDAs may require one | |||
| or several arguments in the future. | ||||
| <section anchor="matching-operator-arguments"><name>Matching Operator arguments< | They are viewed as a list of target-value type.</t> | |||
| /name> | </section> | |||
| </section> | ||||
| <t>They are viewed as a list, built with a tv-struct (see <xref target="target_v | <section anchor="frag_types"> | |||
| alue"/>).</t> | <name>Fragmentation Rule</name> | |||
| <t>Fragmentation is optional in the data model and depends on the presen | ||||
| </section> | ce of the "fragmentation" feature.</t> | |||
| </section> | <t>Most of the fragmentation parameters are listed in <xref target="RFC8 | |||
| <section anchor="convention-for-compression-decompression-actions"><name>Convent | 724" sectionFormat="of" section="D"/>.</t> | |||
| ion for Compression Decompression Actions</name> | <t>Since fragmentation Rules work for a specific direction, they <bcp14> | |||
| MUST</bcp14> contain a mandatory Direction Indicator. | ||||
| <t>Compression Decompression Action (CDA) identifies the function to use for com | The type is the same as the one used in compression entries, but bidirectional < | |||
| pression or decompression. | bcp14>MUST NOT</bcp14> be used.</t> | |||
| <xref target="RFC8724"/> defines 6 CDA.</t> | <section anchor="fragmentation-mode"> | |||
| <name>Fragmentation Mode</name> | ||||
| <t>The naming convention is "cda-" followed by the CDA name.</t> | <t><xref target="RFC8724"/> defines 3 fragmentation modes:</t> | |||
| <ul spacing="normal"> | ||||
| <section anchor="compression-decompression-action-arguments"><name>Compression D | <li>No ACK: This mode is unidirectional; no acknowledgment is sent b | |||
| ecompression Action arguments</name> | ack.</li> | |||
| <li>ACK Always: Each fragmentation window must be explicitly acknowl | ||||
| <t>Currently no CDA requires arguments, but in the future some CDA may require o | edged before going to the next.</li> | |||
| ne or several arguments. | <li>ACK on Error: A window is acknowledged only when the receiver de | |||
| They are viewed as a list, of target-value type.</t> | tects some missing fragments.</li> | |||
| </ul> | ||||
| </section> | <t>The type is "fragmentation-mode-type". | |||
| </section> | ||||
| <section anchor="frag_types"><name>Fragmentation rule</name> | ||||
| <t>Fragmentation is optional in the data model and depends on the presence of th | ||||
| e "fragmentation" feature.</t> | ||||
| <t>Most of the fragmentation parameters are listed in Annex D of <xref target="R | ||||
| FC8724"/>.</t> | ||||
| <t>Since fragmentation rules work for a specific direction, they MUST contain a | ||||
| mandatory direction indicator. | ||||
| The type is the same as the one used in compression entries, but bidirectional M | ||||
| UST NOT be used.</t> | ||||
| <section anchor="fragmentation-mode"><name>Fragmentation mode</name> | ||||
| <t><xref target="RFC8724"/> defines 3 fragmentation modes:</t> | ||||
| <t><list style="symbols"> | ||||
| <t>No Ack: this mode is unidirectional, no acknowledgment is sent back.</t> | ||||
| <t>Ack Always: each fragmentation window must be explicitly acknowledged befor | ||||
| e going to the next.</t> | ||||
| <t>Ack on Error: A window is acknowledged only when the receiver detects some | ||||
| missing fragments.</t> | ||||
| </list></t> | ||||
| <t>The type is "fragmentation-mode-type". | ||||
| The naming convention is "fragmentation-mode-" followed by the fragmentation mod e name.</t> | The naming convention is "fragmentation-mode-" followed by the fragmentation mod e name.</t> | |||
| </section> | ||||
| </section> | <section anchor="fragmentation-header"> | |||
| <section anchor="fragmentation-header"><name>Fragmentation Header</name> | <name>Fragmentation Header</name> | |||
| <t>A data fragment header, starting with the RuleID, can be sent in th | ||||
| <t>A data fragment header, starting with the rule ID, can be sent in the fragmen | e fragmentation direction. | |||
| tation direction. | <xref target="RFC8724"/> indicates that the SCHC header may be composed of the f | |||
| <xref target="RFC8724"/> indicates that the SCHC header may be composed of (cf. | ollowing (cf. <xref target="Fig-frag-header-8724"/>):</t> | |||
| <xref target="Fig-frag-header-8724"/>):</t> | <ul spacing="normal"> | |||
| <li>a Datagram Tag (DTag) identifying the datagram being fragmented | ||||
| <t><list style="symbols"> | if the fragmentation applies concurrently on several datagrams. This field is op | |||
| <t>a Datagram Tag (Dtag) identifying the datagram being fragmented if the frag | tional, and its length is defined by the Rule.</li> | |||
| mentation applies concurrently on several datagrams. This field is optional and | <li>a Window (W) used in ACK-Always and ACK-on-Error modes. In ACK-A | |||
| its length is defined by the rule.</t> | lways, its size is 1. In ACK-on-Error, it depends on the Rule. This field is not | |||
| <t>a Window (W) used in Ack-Always and Ack-on-Error modes. In Ack-Always, its | needed in No-ACK mode.</li> | |||
| size is 1. In Ack-on-Error, it depends on the rule. This field is not needed in | <li>a Fragment Compressed Number (FCN) indicating the fragment/tile | |||
| No-Ack mode.</t> | position within the window. This field is mandatory on all modes defined in <xre | |||
| <t>a Fragment Compressed Number (FCN) indicating the fragment/tile position wi | f target="RFC8724"/>, and its size is defined by the Rule.</li> | |||
| thin the window. This field is mandatory on all modes defined in <xref target="R | </ul> | |||
| FC8724"/>, its size is defined by the rule.</t> | <figure anchor="Fig-frag-header-8724"> | |||
| </list></t> | <name>Data Fragment Header from RFC 8724</name> | |||
| <artwork><![CDATA[ | ||||
| <figure title="Data fragment header from RFC8724" anchor="Fig-frag-header-8724"> | ||||
| <artwork><![CDATA[ | ||||
| |-- SCHC Fragment Header ----| | |-- SCHC Fragment Header ----| | |||
| |-- T --|-M-|-- N --| | |-- T --|-M-|-- N --| | |||
| +-- ... -+- ... -+---+- ... -+--------...-------+~~~~~~~~~~~~~~~~~~~~ | +-- ... -+- ... -+---+- ... -+--------...-------+~~~~~~~~~~~~~~~~~~~~ | |||
| | RuleID | DTag | W | FCN | Fragment Payload | padding (as needed) | | RuleID | DTag | W | FCN | Fragment Payload | padding (as needed) | |||
| +-- ... -+- ... -+---+- ... -+--------...-------+~~~~~~~~~~~~~~~~~~~~ | +-- ... -+- ... -+---+- ... -+--------...-------+~~~~~~~~~~~~~~~~~~~~ | |||
| ]]></artwork> | ||||
| ]]></artwork></figure> | </figure> | |||
| </section> | ||||
| </section> | <section anchor="last-fragment-format"> | |||
| <section anchor="last-fragment-format"><name>Last fragment format</name> | <name>Last Fragment Format</name> | |||
| <t>The last fragment of a datagram is sent with a Reassembly Check Seq | ||||
| <t>The last fragment of a datagram is sent with an RCS (Reassembly Check Sequenc | uence (RCS) field to detect residual | |||
| e) field to detect residual | transmission errors and possible losses in the last window. <xref target="RFC872 | |||
| transmission error and possible losses in the last window. <xref target="RFC8724 | 4"/> defines a single algorithm based on Ethernet | |||
| "/> defines a single algorithm based on Ethernet | ||||
| CRC computation.</t> | CRC computation.</t> | |||
| <t>The naming convention is "rcs-" followed by the algorithm name.</t> | ||||
| <t>The naming convention is "rcs-" followed by the algorithm name.</t> | <t>For ACK-on-Error mode, the All-1 fragment may just contain the RCS | |||
| or can include a tile. The following parameters define the | ||||
| <t>For Ack-on-Error mode, the All-1 fragment may just contain the RCS or can inc | ||||
| lude a tile. The parameters define the | ||||
| behavior:</t> | behavior:</t> | |||
| <ul spacing="normal"> | ||||
| <t><list style="symbols"> | <li>all-1-data-no: The last fragment contains no data, just the RCS. | |||
| <t>all-1-data-no: the last fragment contains no data, just the RCS</t> | </li> | |||
| <t>all-1-data-yes: the last fragment includes a single tile and the RCS</t> | <li>all-1-data-yes: The last fragment includes a single tile and the | |||
| <t>all-1-data-sender-choice: the last fragment may or may not contain a single | RCS.</li> | |||
| tile. The receiver can detect if a tile is present.</t> | <li>all-1-data-sender-choice: The last fragment may or may not conta | |||
| </list></t> | in a single tile. The receiver can detect if a tile is present.</li> | |||
| </ul> | ||||
| <t>The naming convention is "all-1-data-" followed by the behavior identifier.</ | <t>The naming convention is "all-1-data-" followed by the behavior ide | |||
| t> | ntifier.</t> | |||
| </section> | ||||
| </section> | <section anchor="acknowledgment-behavior"> | |||
| <section anchor="acknowledgment-behavior"><name>Acknowledgment behavior</name> | <name>Acknowledgment Behavior</name> | |||
| <t>The acknowledgment fragment header goes in the opposite direction o | ||||
| <t>The acknowledgment fragment header goes in the opposite direction of data. <x | f data. <xref target="RFC8724"/> defines the header, which is composed of the fo | |||
| ref target="RFC8724"/> defines the header, composed of (see <xref target="Fig-fr | llowing (see <xref target="Fig-frag-ack"/>):</t> | |||
| ag-ack"/>):</t> | <ul spacing="normal"> | |||
| <li>a DTag (if present).</li> | ||||
| <t><list style="symbols"> | <li>a mandatory window, as in the data fragment.</li> | |||
| <t>a Dtag (if present).</t> | <li>a C bit giving the status of RCS validation. In case of failure | |||
| <t>a mandatory window as in the data fragment.</t> | , a bitmap follows, indicating the received tile.</li> | |||
| <t>a C bit giving the status of RCS validation. In case of failure, a bitmap | </ul> | |||
| follows, indicating the received tile.</t> | <figure anchor="Fig-frag-ack"> | |||
| </list></t> | <name>Acknowledgment Fragment Header for RFC 8724</name> | |||
| <artwork><![CDATA[ | ||||
| <figure title="Acknowledgment fragment header for RFC8724" anchor="Fig-frag-ack" | ||||
| ><artwork><![CDATA[ | ||||
| |--- SCHC ACK Header ----| | |--- SCHC ACK Header ----| | |||
| |-- T --|-M-| 1 | | |-- T --|-M-| 1 | | |||
| +-- ... -+- ... -+---+---+~~~~~~~~~~~~~~~~~~ | +-- ... -+- ... -+---+---+~~~~~~~~~~~~~~~~~~ | |||
| | RuleID | DTag | W |C=1| padding as needed (success) | | RuleID | DTag | W |C=1| padding as needed (success) | |||
| +-- ... -+- ... -+---+---+~~~~~~~~~~~~~~~~~~ | +-- ... -+- ... -+---+---+~~~~~~~~~~~~~~~~~~ | |||
| +-- ... -+- ... -+---+---+------ ... ------+~~~~~~~~~~~~~~~ | +-- ... -+- ... -+---+---+------ ... ------+~~~~~~~~~~~~~~~ | |||
| | RuleID | DTag | W |C=0|Compressed Bitmap| pad. as needed (failure) | | RuleID | DTag | W |C=0|Compressed Bitmap| pad. as needed (failure) | |||
| +-- ... -+- ... -+---+---+------ ... ------+~~~~~~~~~~~~~~~ | +-- ... -+- ... -+---+---+------ ... ------+~~~~~~~~~~~~~~~ | |||
| ]]></artwork> | ||||
| ]]></artwork></figure> | </figure> | |||
| <t>For ACK-on-Error, SCHC defines when an acknowledgment can be sent. | ||||
| <t>For Ack-on-Error, SCHC defines when an acknowledgment can be sent. This can b | This can be at any time defined by the Layer 2, at the end of a window (FCN all- | |||
| e at any time defined by the layer 2, at the end of a window (FCN all-0) | 0), | |||
| or as a response to receiving the last fragment (FCN all-1). The naming conventi on is "ack-behavior" followed by the algorithm name.</t> | or as a response to receiving the last fragment (FCN all-1). The naming conventi on is "ack-behavior" followed by the algorithm name.</t> | |||
| </section> | ||||
| </section> | <section anchor="timer-values"> | |||
| <section anchor="timer-values"><name>Timer values</name> | <name>Timer Values</name> | |||
| <t>The state machine requires some common values to handle fragmentati | ||||
| <t>The state machine requires some common values to handle fragmentation correct | on correctly.</t> | |||
| ly.</t> | <ul spacing="normal"> | |||
| <li>The Retransmission Timer gives the duration before sending an AC | ||||
| <t><list style="symbols"> | K request (cf. <xref target="RFC8724" sectionFormat="of" section="8.2.2.4"/ | |||
| <t>retransmission-timer gives the duration before sending an ack request (cf. | >). If specified, the value <bcp14>MUST</bcp14> be strictly positive.</li> | |||
| section 8.2.2.4. of <xref target="RFC8724"/>). If specified, value MUST be stric | <li>The Inactivity Timer gives the duration before aborting a fragm | |||
| tly positive.</t> | entation session (cf. <xref target="RFC8724" sectionFormat="of" section="8.2.2. | |||
| <t>inactivity-timer gives the duration before aborting a fragmentation sessio | 4"/>). The value 0 explicitly indicates that this timer is disabled.</li> | |||
| n (cf. section 8.2.2.4. of <xref target="RFC8724"/>). The value 0 explicitly ind | </ul> | |||
| icates that this timer is disabled.</t> | <t><xref target="RFC8724"/> does not specify any range for these timer | |||
| </list></t> | s. <xref target="RFC9011"/> recommends a duration of 12 hours. In fact, the valu | |||
| e range should be between milliseconds for real-time systems to several days for | ||||
| <t><xref target="RFC8724"/> do not specify any range for these timers. <xref tar | worse-than-best-effort systems. To allow a large range of applications, two par | |||
| get="RFC9011"/> recommends a duration of 12 hours. In fact, the value range shou | ameters must be specified:</t> | |||
| ld be between milliseconds for real time systems to several days. To allow a lar | <ul spacing="normal"> | |||
| ge range of applications, two parameters must be specified:</t> | <li>the duration of a tick. It is computed by this formula: 2<sup>ti | |||
| ck-duration</sup>/10<sup>6</sup>. When tick-duration is set to 0, the unit is th | ||||
| <t><list style="symbols"> | e microsecond. The default value of 20 leads to a unit of 1.048575 seconds. A va | |||
| <t>the duration of a tick. It is computed by this formula 2^tick-duration/10^6 | lue of 32 leads to a tick-duration of about 1 hour 11 minutes.</li> | |||
| . When tick-duration is set to 0, the unit is the microsecond. The default value | <li>the number of ticks in the predefined unit. With the default tic | |||
| of 20 leads to a unit of 1.048575 second. A value of 32 leads to a tick duratio | k-duration value of 20, the timers can cover a range between 1.0 second and 19 h | |||
| n of about 1 hour 11 minutes.</t> | ours, as recommended in <xref target="RFC9011"/>.</li> | |||
| <t>the number of ticks in the predefined unit. With the default tick-duration | </ul> | |||
| value of 20, the timers can cover a range between 1.0 sec and 19 hours covering | </section> | |||
| <xref target="RFC9011"/> recommendation.</t> | <section anchor="fragmentation-parameter"> | |||
| </list></t> | <name>Fragmentation Parameter</name> | |||
| <t>The SCHC fragmentation protocol specifies the number of attempts be | ||||
| </section> | fore aborting through the parameter:</t> | |||
| <section anchor="fragmentation-parameter"><name>Fragmentation Parameter</name> | <ul spacing="normal"> | |||
| <li>max-ack-requests (cf. <xref target="RFC8724" sectionFormat | ||||
| <t>The SCHC fragmentation protocol specifies the number of attempts before abort | ="of" section="8.2.2.4"/>)</li> | |||
| ing through the parameter:</t> | </ul> | |||
| </section> | ||||
| <t><list style="symbols"> | <section anchor="layer-2-parameters"> | |||
| <t>max-ack-requests (cf. section 8.2.2.4. of <xref target="RFC8724"/>).</t> | <name>Layer 2 Parameters</name> | |||
| </list></t> | <t>The data model includes two parameters needed for fragmentation:</t | |||
| > | ||||
| </section> | <ul spacing="normal"> | |||
| <section anchor="layer-2-parameters"><name>Layer 2 parameters</name> | <li>l2-word-size: <xref target="RFC8724"/> base fragmentation, in bi | |||
| ts, on a Layer 2 Word that can be of any length. The default value is 8 and corr | ||||
| <t>The data model includes two parameters needed for fragmentation:</t> | esponds | |||
| to the default value for the byte-aligned Layer 2. A value of 1 will indicate th | ||||
| <t><list style="symbols"> | at there is no alignment and no need for padding.</li> | |||
| <t>l2-word-size: <xref target="RFC8724"/> base fragmentation, in bits, on a l | <li>maximum-packet-size: defines the maximum size of an uncompressed | |||
| ayer 2 word which can be of any length. The default value is 8 and correspond | datagram. By default, the value is set to 1280 bytes.</li> | |||
| to the default value for byte aligned layer 2. A value of 1 will indicate that t | </ul> | |||
| here is no alignment and no need for padding.</t> | <t>They are defined as unsigned integers; see <xref target="annexA"/>. | |||
| <t>maximum-packet-size: defines the maximum size of an uncompressed datagram. | </t> | |||
| By default, the value is set to 1280 bytes.</t> | </section> | |||
| </list></t> | </section> | |||
| </section> | ||||
| <t>They are defined as unsigned integers, see <xref target="annexA"/>.</t> | <section anchor="rule-definition"> | |||
| <name>Rule Definition</name> | ||||
| </section> | <t>A Rule is identified by a unique Rule Identifier (RuleID) comprising bo | |||
| </section> | th a RuleID value and a RuleID length. | |||
| </section> | The YANG grouping rule-id-type defines the structure used to represent a RuleID. | |||
| <section anchor="rule-definition"><name>Rule definition</name> | A length of 0 is allowed to represent an implicit Rule.</t> | |||
| <t>Three natures of Rules are defined in <xref target="RFC8724"/>:</t> | ||||
| <t>A rule is identified by a unique rule identifier (rule ID) comprising both a | <ul spacing="normal"> | |||
| Rule ID value and a Rule ID length. | <li>Compression: A compression Rule is associated with the RuleID.</li> | |||
| The YANG grouping rule-id-type defines the structure used to represent a rule ID | <li>No-compression: This identifies the default Rule used to send a pack | |||
| . A length of 0 is allowed to represent an implicit rule.</t> | et integrally when no-compression Rule was found (see <xref target="RFC8724" sec | |||
| tionFormat="of" section="6"/>).</li> | ||||
| <t>Three natures of rules are defined in <xref target="RFC8724"/>:</t> | <li>Fragmentation: Fragmentation parameters are associated with the Rule | |||
| ID. Fragmentation is optional, and the feature "fragmentation" should be set.</l | ||||
| <t><list style="symbols"> | i> | |||
| <t>Compression: a compression rule is associated with the rule ID.</t> | </ul> | |||
| <t>No compression: this identifies the default rule used to send a packet inte | <t>The YANG data model respectively introduces these three identities :</t | |||
| grally when no compression rule was found (see <xref target="RFC8724"/> section | > | |||
| 6).</t> | <ul spacing="normal"> | |||
| <t>Fragmentation: fragmentation parameters are associated with the rule ID. Fr | <li>nature-compression</li> | |||
| agmentation is optional and feature "fragmentation" should be set.</t> | <li>nature-no-compression</li> | |||
| </list></t> | <li>nature-fragmentation</li> | |||
| </ul> | ||||
| <t>The YANG data model introduces respectively these three identities :</t> | <t>The naming convention is "nature-" followed by the nature identifier.</ | |||
| t> | ||||
| <t><list style="symbols"> | <t>To access a specific Rule, the RuleID length and value are used as a ke | |||
| <t>nature-compression</t> | y. The Rule is either | |||
| <t>nature-no-compression</t> | a compression or a fragmentation Rule.</t> | |||
| <t>nature-fragmentation</t> | <section anchor="compression-rule"> | |||
| </list></t> | <name>Compression Rule</name> | |||
| <t>A compression Rule is composed of entries describing its processing. | ||||
| <t>The naming convention is "nature-" followed by the nature identifier.</t> | An entry contains all the information defined in <xref target="Fig-ctxt"/> with | |||
| the types defined above.</t> | ||||
| <t>To access a specific rule, the rule ID length and value are used as a key. Th | <t>The compression Rule described <xref target="Fig-ctxt"/> is defined b | |||
| e rule is either | y compression-content. It defines a list of | |||
| a compression or a fragmentation rule.</t> | compression-rule-entry, indexed by their Field ID, position, and direction. The | |||
| compression-rule-entry | ||||
| <section anchor="compression-rule"><name>Compression rule</name> | element represents a line in <xref target="Fig-ctxt"/>. Their type reflects the | |||
| identifier types defined in | ||||
| <t>A compression rule is composed of entries describing its processing. An entry | <xref target="comp_types"/>.</t> | |||
| contains all the information defined in <xref target="Fig-ctxt"/> with the typ | ||||
| es defined above.</t> | ||||
| <t>The compression rule described <xref target="Fig-ctxt"/> is defined by compre | ||||
| ssion-content. It defines a list of | ||||
| compression-rule-entry, indexed by their field id, position and direction. The c | ||||
| ompression-rule-entry | ||||
| element represent a line of the table <xref target="Fig-ctxt"/>. Their type refl | ||||
| ects the identifier types defined in | ||||
| <xref target="comp_types"/></t> | ||||
| <t>Some checks are performed on the values:</t> | <t>Some checks are performed on the values:</t> | |||
| <ul spacing="normal"> | ||||
| <t><list style="symbols"> | <li>When MO is ignore, no Target Value is needed; for other MOs, there | |||
| <t>target value MUST be present for MO different from ignore.</t> | <bcp14>MUST</bcp14> be a Target Value present.</li> | |||
| <t>when MSB MO is specified, the matching-operator-value must be present</t> | <li>When MSB MO is specified, the matching-operator-value must be pres | |||
| </list></t> | ent.</li> | |||
| </ul> | ||||
| </section> | </section> | |||
| <section anchor="fragmentation-rule"><name>Fragmentation rule</name> | <section anchor="fragmentation-rule"> | |||
| <name>Fragmentation Rule</name> | ||||
| <t>A Fragmentation rule is composed of entries describing the protocol behavior. | <t>A fragmentation Rule is composed of entries describing the protocol b | |||
| Some on them are numerical entries, | ehavior. Some on them are numerical entries, | |||
| others are identifiers defined in <xref target="frag_types"/>.</t> | others are identifiers defined in <xref target="frag_types"/>.</t> | |||
| </section> | ||||
| </section> | <section anchor="yang-tree"> | |||
| <section anchor="yang-tree"><name>YANG Tree</name> | <name>YANG Tree</name> | |||
| <t>The YANG data model described in this document conforms to the | ||||
| <t>The YANG data model described in this document conforms to the | ||||
| Network Management Datastore Architecture defined in <xref target="RFC8342"/>.</ t> | Network Management Datastore Architecture defined in <xref target="RFC8342"/>.</ t> | |||
| <figure anchor="Fig-model-overview"> | ||||
| <figure title="Overview of SCHC data model" anchor="Fig-model-overview"><artwork | <name>Overview of the SCHC Data Model</name> | |||
| ><![CDATA[ | <sourcecode type="yangtree"><![CDATA[ | |||
| module: ietf-schc | module: ietf-schc | |||
| +--rw schc | +--rw schc | |||
| +--rw rule* [rule-id-value rule-id-length] | +--rw rule* [rule-id-value rule-id-length] | |||
| +--rw rule-id-value uint32 | +--rw rule-id-value uint32 | |||
| +--rw rule-id-length uint8 | +--rw rule-id-length uint8 | |||
| +--rw rule-nature nature-type | +--rw rule-nature nature-type | |||
| +--rw (nature)? | +--rw (nature)? | |||
| +--:(fragmentation) {fragmentation}? | +--:(fragmentation) {fragmentation}? | |||
| | +--rw fragmentation-mode | | +--rw fragmentation-mode | |||
| | | schc:fragmentation-mode-type | | | schc:fragmentation-mode-type | |||
| skipping to change at line 517 ¶ | skipping to change at line 470 ¶ | |||
| | +--rw index uint16 | | +--rw index uint16 | |||
| | +--rw value? binary | | +--rw value? binary | |||
| +--rw matching-operator schc:mo-type | +--rw matching-operator schc:mo-type | |||
| +--rw matching-operator-value* [index] | +--rw matching-operator-value* [index] | |||
| | +--rw index uint16 | | +--rw index uint16 | |||
| | +--rw value? binary | | +--rw value? binary | |||
| +--rw comp-decomp-action schc:cda-type | +--rw comp-decomp-action schc:cda-type | |||
| +--rw comp-decomp-action-value* [index] | +--rw comp-decomp-action-value* [index] | |||
| +--rw index uint16 | +--rw index uint16 | |||
| +--rw value? binary | +--rw value? binary | |||
| ]]></artwork></figure> | ]]></sourcecode> | |||
| </figure> | ||||
| </section> | </section> | |||
| </section> | </section> | |||
| <section anchor="annexA"><name>YANG Module</name> | <section anchor="annexA"> | |||
| <name>YANG Data Model</name> | ||||
| <figure anchor="Fig-schc"><artwork><![CDATA[ | <figure anchor="Fig-schc"> | |||
| <CODE BEGINS> file "ietf-schc@2022-10-09.yang" | <name>SCHC YANG Data Model</name> | |||
| <sourcecode type="yang" markers="true" name="ietf-schc@2023-01-28.yang"> | ||||
| <![CDATA[ | ||||
| module ietf-schc { | module ietf-schc { | |||
| yang-version 1.1; | yang-version 1.1; | |||
| namespace "urn:ietf:params:xml:ns:yang:ietf-schc"; | namespace "urn:ietf:params:xml:ns:yang:ietf-schc"; | |||
| prefix schc; | prefix schc; | |||
| organization | organization | |||
| "IETF IPv6 over Low Power Wide-Area Networks (lpwan) working | "IETF IPv6 over Low Power Wide-Area Networks (lpwan) Working | |||
| group"; | Group"; | |||
| contact | contact | |||
| "WG Web: <https://datatracker.ietf.org/wg/lpwan/about/> | "WG Web: <https://datatracker.ietf.org/wg/lpwan/about/> | |||
| WG List: <mailto:lp-wan@ietf.org> | WG List: <mailto:lp-wan@ietf.org> | |||
| Editor: Laurent Toutain | Editor: Laurent Toutain | |||
| <mailto:laurent.toutain@imt-atlantique.fr> | <mailto:laurent.toutain@imt-atlantique.fr> | |||
| Editor: Ana Minaburo | Editor: Ana Minaburo | |||
| <mailto:ana@ackl.io>"; | <mailto:ana@ackl.io>"; | |||
| description | description | |||
| " | "Copyright (c) 2023 IETF Trust and the persons identified as | |||
| Copyright (c) 2022 IETF Trust and the persons identified as | ||||
| authors of the code. All rights reserved. | authors of the code. All rights reserved. | |||
| Redistribution and use in source and binary forms, with or | Redistribution and use in source and binary forms, with or | |||
| without modification, is permitted pursuant to, and subject to | without modification, is permitted pursuant to, and subject to | |||
| the license terms contained in, the Revised BSD License set | the license terms contained in, the Revised BSD License set | |||
| forth in Section 4.c of the IETF Trust's Legal Provisions | forth in Section 4.c of the IETF Trust's Legal Provisions | |||
| Relating to IETF Documents | Relating to IETF Documents | |||
| (https://trustee.ietf.org/license-info). | (https://trustee.ietf.org/license-info). | |||
| This version of this YANG module is part of RFC 9363 | ||||
| This version of this YANG module is part of RFC XXXX | (https://www.rfc-editor.org/info/rfc9363); see the RFC itself | |||
| (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself | ||||
| for full legal notices. | for full legal notices. | |||
| The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL | The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL | |||
| NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED', | NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED', | |||
| 'MAY', and 'OPTIONAL' in this document are to be interpreted as | 'MAY', and 'OPTIONAL' in this document are to be interpreted as | |||
| described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, | described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, | |||
| they appear in all capitals, as shown here. | they appear in all capitals, as shown here. | |||
| *************************************************************** | *************************************************************** | |||
| Generic data model for the Static Context Header Compression | ||||
| Rule for SCHC, based on RFCs 8724 and 8824. Including | ||||
| compression, no-compression, and fragmentation Rules. | ||||
| Generic Data model for Static Context Header Compression Rule | This module is a YANG data model for SCHC Rules (RFCs 8724 and | |||
| for SCHC, based on RFC 8724 and RFC8824. Include compression, | 8824). RFC 8724 describes compression Rules in an abstract | |||
| no compression and fragmentation rules. | ||||
| This module is a YANG model for SCHC rules (RFC 8724 and | ||||
| RFC8824). RFC 8724 describes compression rules in a abstract | ||||
| way through a table. | way through a table. | |||
| |-----------------------------------------------------------------| | |-----------------------------------------------------------------| | |||
| | (FID) Rule 1 | | | (FID) Rule 1 | | |||
| |+-------+--+--+--+------------+-----------------+---------------+| | |+-------+--+--+--+------------+-----------------+---------------+| | |||
| ||Field 1|FL|FP|DI|Target Value|Matching Operator|Comp/Decomp Act|| | ||Field 1|FL|FP|DI|Target Value|Matching Operator|Comp/Decomp Act|| | |||
| |+-------+--+--+--+------------+-----------------+---------------+| | |+-------+--+--+--+------------+-----------------+---------------+| | |||
| ||Field 2|FL|FP|DI|Target Value|Matching Operator|Comp/Decomp Act|| | ||Field 2|FL|FP|DI|Target Value|Matching Operator|Comp/Decomp Act|| | |||
| |+-------+--+--+--+------------+-----------------+---------------+| | |+-------+--+--+--+------------+-----------------+---------------+| | |||
| ||... |..|..|..| ... | ... | ... || | ||... |..|..|..| ... | ... | ... || | |||
| |+-------+--+--+--+------------+-----------------+---------------+| | |+-------+--+--+--+------------+-----------------+---------------+| | |||
| ||Field N|FL|FP|DI|Target Value|Matching Operator|Comp/Decomp Act|| | ||Field N|FL|FP|DI|Target Value|Matching Operator|Comp/Decomp Act|| | |||
| skipping to change at line 584 ¶ | skipping to change at line 531 ¶ | |||
| |+-------+--+--+--+------------+-----------------+---------------+| | |+-------+--+--+--+------------+-----------------+---------------+| | |||
| ||Field 1|FL|FP|DI|Target Value|Matching Operator|Comp/Decomp Act|| | ||Field 1|FL|FP|DI|Target Value|Matching Operator|Comp/Decomp Act|| | |||
| |+-------+--+--+--+------------+-----------------+---------------+| | |+-------+--+--+--+------------+-----------------+---------------+| | |||
| ||Field 2|FL|FP|DI|Target Value|Matching Operator|Comp/Decomp Act|| | ||Field 2|FL|FP|DI|Target Value|Matching Operator|Comp/Decomp Act|| | |||
| |+-------+--+--+--+------------+-----------------+---------------+| | |+-------+--+--+--+------------+-----------------+---------------+| | |||
| ||... |..|..|..| ... | ... | ... || | ||... |..|..|..| ... | ... | ... || | |||
| |+-------+--+--+--+------------+-----------------+---------------+| | |+-------+--+--+--+------------+-----------------+---------------+| | |||
| ||Field N|FL|FP|DI|Target Value|Matching Operator|Comp/Decomp Act|| | ||Field N|FL|FP|DI|Target Value|Matching Operator|Comp/Decomp Act|| | |||
| |+-------+--+--+--+------------+-----------------+---------------+| | |+-------+--+--+--+------------+-----------------+---------------+| | |||
| |-----------------------------------------------------------------| | |-----------------------------------------------------------------| | |||
| This module specifies a global data model that can be used for | This module specifies a global data model that can be used for | |||
| rule exchanges or modification. It specifies both the data model | Rule exchanges or modification. It specifies both the data | |||
| format and the global identifiers used to describe some | model format and the global identifiers used to describe some | |||
| operations in fields. | operations in fields. | |||
| This data model applies to both compression and fragmentation."; | This data model applies to both compression and fragmentation."; | |||
| revision 2022-10-09 { | revision 2023-01-28 { | |||
| description | description | |||
| "Initial version from RFC XXXX."; | "Initial version from RFC 9363."; | |||
| reference | reference | |||
| "RFC XXX: Data Model for Static Context Header Compression | "RFC 9363 A YANG Data Model for Static Context Header | |||
| (SCHC)"; | Compression (SCHC)"; | |||
| } | } | |||
| feature compression { | feature compression { | |||
| description | description | |||
| "SCHC compression capabilities are taken into account."; | "SCHC compression capabilities are taken into account."; | |||
| } | } | |||
| feature fragmentation { | feature fragmentation { | |||
| description | description | |||
| "SCHC fragmentation capabilities are taken into account."; | "SCHC fragmentation capabilities are taken into account."; | |||
| skipping to change at line 646 ¶ | skipping to change at line 592 ¶ | |||
| base fid-ipv6-base-type; | base fid-ipv6-base-type; | |||
| description | description | |||
| "IPv6 Traffic Class field."; | "IPv6 Traffic Class field."; | |||
| reference | reference | |||
| "RFC 8200 Internet Protocol, Version 6 (IPv6) Specification"; | "RFC 8200 Internet Protocol, Version 6 (IPv6) Specification"; | |||
| } | } | |||
| identity fid-ipv6-trafficclass-ds { | identity fid-ipv6-trafficclass-ds { | |||
| base fid-ipv6-trafficclass; | base fid-ipv6-trafficclass; | |||
| description | description | |||
| "IPv6 Traffic Class field: DiffServ field."; | "IPv6 Traffic Class field: Diffserv field."; | |||
| reference | reference | |||
| "RFC 8200 Internet Protocol, Version 6 (IPv6) Specification, | "RFC 8200 Internet Protocol, Version 6 (IPv6) Specification, | |||
| RFC 3168 The Addition of Explicit Congestion Notification | RFC 3168 The Addition of Explicit Congestion Notification | |||
| (ECN) to IP"; | (ECN) to IP"; | |||
| } | } | |||
| identity fid-ipv6-trafficclass-ecn { | identity fid-ipv6-trafficclass-ecn { | |||
| base fid-ipv6-trafficclass; | base fid-ipv6-trafficclass; | |||
| description | description | |||
| "IPv6 Traffic Class field: ECN field."; | "IPv6 Traffic Class field: ECN field."; | |||
| skipping to change at line 849 ¶ | skipping to change at line 795 ¶ | |||
| } | } | |||
| identity fid-coap-token { | identity fid-coap-token { | |||
| base fid-coap-base-type; | base fid-coap-base-type; | |||
| description | description | |||
| "CoAP token."; | "CoAP token."; | |||
| reference | reference | |||
| "RFC 7252 The Constrained Application Protocol (CoAP)"; | "RFC 7252 The Constrained Application Protocol (CoAP)"; | |||
| } | } | |||
| identity fid-coap-option-if-match { | identity fid-coap-option { | |||
| base fid-coap-base-type; | base fid-coap-base-type; | |||
| description | description | |||
| "Generic CoAP option."; | ||||
| reference | ||||
| "RFC 7252 The Constrained Application Protocol (CoAP)"; | ||||
| } | ||||
| identity fid-coap-option-if-match { | ||||
| base fid-coap-option; | ||||
| description | ||||
| "CoAP option If-Match."; | "CoAP option If-Match."; | |||
| reference | reference | |||
| "RFC 7252 The Constrained Application Protocol (CoAP)"; | "RFC 7252 The Constrained Application Protocol (CoAP)"; | |||
| } | } | |||
| identity fid-coap-option-uri-host { | identity fid-coap-option-uri-host { | |||
| base fid-coap-base-type; | base fid-coap-option; | |||
| description | description | |||
| "CoAP option URI-Host."; | "CoAP option Uri-Host."; | |||
| reference | reference | |||
| "RFC 7252 The Constrained Application Protocol (CoAP)"; | "RFC 7252 The Constrained Application Protocol (CoAP)"; | |||
| } | } | |||
| identity fid-coap-option-etag { | identity fid-coap-option-etag { | |||
| base fid-coap-base-type; | base fid-coap-option; | |||
| description | description | |||
| "CoAP option Etag."; | "CoAP option ETag."; | |||
| reference | reference | |||
| "RFC 7252 The Constrained Application Protocol (CoAP)"; | "RFC 7252 The Constrained Application Protocol (CoAP)"; | |||
| } | } | |||
| identity fid-coap-option-if-none-match { | identity fid-coap-option-if-none-match { | |||
| base fid-coap-base-type; | base fid-coap-option; | |||
| description | description | |||
| "CoAP option if-none-match."; | "CoAP option if-none-match."; | |||
| reference | reference | |||
| "RFC 7252 The Constrained Application Protocol (CoAP)"; | "RFC 7252 The Constrained Application Protocol (CoAP)"; | |||
| } | } | |||
| identity fid-coap-option-observe { | identity fid-coap-option-observe { | |||
| base fid-coap-base-type; | base fid-coap-option; | |||
| description | description | |||
| "CoAP option Observe."; | "CoAP option Observe."; | |||
| reference | reference | |||
| "RFC 7252 The Constrained Application Protocol (CoAP)"; | "RFC 7252 The Constrained Application Protocol (CoAP)"; | |||
| } | } | |||
| identity fid-coap-option-uri-port { | identity fid-coap-option-uri-port { | |||
| base fid-coap-base-type; | base fid-coap-option; | |||
| description | description | |||
| "CoAP option Uri-Port."; | "CoAP option Uri-Port."; | |||
| reference | reference | |||
| "RFC 7252 The Constrained Application Protocol (CoAP)"; | "RFC 7252 The Constrained Application Protocol (CoAP)"; | |||
| } | } | |||
| identity fid-coap-option-location-path { | identity fid-coap-option-location-path { | |||
| base fid-coap-base-type; | base fid-coap-option; | |||
| description | description | |||
| "CoAP option Location-Path."; | "CoAP option Location-Path."; | |||
| reference | reference | |||
| "RFC 7252 The Constrained Application Protocol (CoAP)"; | "RFC 7252 The Constrained Application Protocol (CoAP)"; | |||
| } | } | |||
| identity fid-coap-option-uri-path { | identity fid-coap-option-uri-path { | |||
| base fid-coap-base-type; | base fid-coap-option; | |||
| description | description | |||
| "CoAP option Uri-Path."; | "CoAP option Uri-Path."; | |||
| reference | reference | |||
| "RFC 7252 The Constrained Application Protocol (CoAP)"; | "RFC 7252 The Constrained Application Protocol (CoAP)"; | |||
| } | } | |||
| identity fid-coap-option-content-format { | identity fid-coap-option-content-format { | |||
| base fid-coap-base-type; | base fid-coap-option; | |||
| description | description | |||
| "CoAP option Content Format."; | "CoAP option Content Format."; | |||
| reference | reference | |||
| "RFC 7252 The Constrained Application Protocol (CoAP)"; | "RFC 7252 The Constrained Application Protocol (CoAP)"; | |||
| } | } | |||
| identity fid-coap-option-max-age { | identity fid-coap-option-max-age { | |||
| base fid-coap-base-type; | base fid-coap-option; | |||
| description | description | |||
| "CoAP option Max-Age."; | "CoAP option Max-Age."; | |||
| reference | reference | |||
| "RFC 7252 The Constrained Application Protocol (CoAP)"; | "RFC 7252 The Constrained Application Protocol (CoAP)"; | |||
| } | } | |||
| identity fid-coap-option-uri-query { | identity fid-coap-option-uri-query { | |||
| base fid-coap-base-type; | base fid-coap-option; | |||
| description | description | |||
| "CoAP option Uri-Query."; | "CoAP option Uri-Query."; | |||
| reference | reference | |||
| "RFC 7252 The Constrained Application Protocol (CoAP)"; | "RFC 7252 The Constrained Application Protocol (CoAP)"; | |||
| } | } | |||
| identity fid-coap-option-accept { | identity fid-coap-option-accept { | |||
| base fid-coap-base-type; | base fid-coap-option; | |||
| description | description | |||
| "CoAP option Accept."; | "CoAP option Accept."; | |||
| reference | reference | |||
| "RFC 7252 The Constrained Application Protocol (CoAP)"; | "RFC 7252 The Constrained Application Protocol (CoAP)"; | |||
| } | } | |||
| identity fid-coap-option-location-query { | identity fid-coap-option-location-query { | |||
| base fid-coap-base-type; | base fid-coap-option; | |||
| description | description | |||
| "CoAP option Location-Query."; | "CoAP option Location-Query."; | |||
| reference | reference | |||
| "RFC 7252 The Constrained Application Protocol (CoAP)"; | "RFC 7252 The Constrained Application Protocol (CoAP)"; | |||
| } | } | |||
| identity fid-coap-option-block2 { | identity fid-coap-option-block2 { | |||
| base fid-coap-base-type; | base fid-coap-option; | |||
| description | description | |||
| "CoAP option Block2."; | "CoAP option Block2."; | |||
| reference | reference | |||
| "RFC 7959 Block-Wise Transfers in the Constrained | "RFC 7959 Block-Wise Transfers in the Constrained | |||
| Application Protocol (CoAP)"; | Application Protocol (CoAP)"; | |||
| } | } | |||
| identity fid-coap-option-block1 { | identity fid-coap-option-block1 { | |||
| base fid-coap-base-type; | base fid-coap-option; | |||
| description | description | |||
| "CoAP option Block1."; | "CoAP option Block1."; | |||
| reference | reference | |||
| "RFC 7959 Block-Wise Transfers in the Constrained | "RFC 7959 Block-Wise Transfers in the Constrained | |||
| Application Protocol (CoAP)"; | Application Protocol (CoAP)"; | |||
| } | } | |||
| identity fid-coap-option-size2 { | identity fid-coap-option-size2 { | |||
| base fid-coap-base-type; | base fid-coap-option; | |||
| description | description | |||
| "CoAP option size2."; | "CoAP option Size2."; | |||
| reference | reference | |||
| "RFC 7959 Block-Wise Transfers in the Constrained | "RFC 7959 Block-Wise Transfers in the Constrained | |||
| Application Protocol (CoAP)"; | Application Protocol (CoAP)"; | |||
| } | } | |||
| identity fid-coap-option-proxy-uri { | identity fid-coap-option-proxy-uri { | |||
| base fid-coap-base-type; | base fid-coap-option; | |||
| description | description | |||
| "CoAP option Proxy-Uri."; | "CoAP option Proxy-Uri."; | |||
| reference | reference | |||
| "RFC 7252 The Constrained Application Protocol (CoAP)"; | "RFC 7252 The Constrained Application Protocol (CoAP)"; | |||
| } | } | |||
| identity fid-coap-option-proxy-scheme { | identity fid-coap-option-proxy-scheme { | |||
| base fid-coap-base-type; | base fid-coap-option; | |||
| description | description | |||
| "CoAP option Proxy-scheme."; | "CoAP option Proxy-Scheme."; | |||
| reference | reference | |||
| "RFC 7252 The Constrained Application Protocol (CoAP)"; | "RFC 7252 The Constrained Application Protocol (CoAP)"; | |||
| } | } | |||
| identity fid-coap-option-size1 { | identity fid-coap-option-size1 { | |||
| base fid-coap-base-type; | base fid-coap-option; | |||
| description | description | |||
| "CoAP option Size1."; | "CoAP option Size1."; | |||
| reference | reference | |||
| "RFC 7252 The Constrained Application Protocol (CoAP)"; | "RFC 7252 The Constrained Application Protocol (CoAP)"; | |||
| } | } | |||
| identity fid-coap-option-no-response { | identity fid-coap-option-no-response { | |||
| base fid-coap-base-type; | base fid-coap-option; | |||
| description | description | |||
| "CoAP option No response."; | "CoAP option No response."; | |||
| reference | reference | |||
| "RFC 7967 Constrained Application Protocol (CoAP) | "RFC 7967 Constrained Application Protocol (CoAP) | |||
| Option for No Server Response"; | Option for No Server Response"; | |||
| } | } | |||
| identity fid-oscore-base-type { | identity fid-oscore-base-type { | |||
| base fid-coap-type; | base fid-coap-option; | |||
| description | description | |||
| "OSCORE options (RFC8613) split in sub options."; | "OSCORE options (RFC8613) split in suboptions."; | |||
| reference | reference | |||
| "RFC 8824 Static Context Header Compression (SCHC) for the | "RFC 8824 Static Context Header Compression (SCHC) for the | |||
| Constrained Application Protocol (CoAP)"; | Constrained Application Protocol (CoAP)"; | |||
| } | } | |||
| identity fid-coap-option-oscore-flags { | identity fid-coap-option-oscore-flags { | |||
| base fid-oscore-base-type; | base fid-coap-option; | |||
| description | description | |||
| "CoAP option oscore flags."; | "CoAP option OSCORE flags."; | |||
| reference | reference | |||
| "RFC 8824 Static Context Header Compression (SCHC) for the | "RFC 8824 Static Context Header Compression (SCHC) for the | |||
| Constrained Application Protocol (CoAP) (see | Constrained Application Protocol (CoAP) (see | |||
| section 6.4)"; | Section 6.4)"; | |||
| } | } | |||
| identity fid-coap-option-oscore-piv { | identity fid-coap-option-oscore-piv { | |||
| base fid-oscore-base-type; | base fid-coap-option; | |||
| description | description | |||
| "CoAP option oscore flags."; | "CoAP option OSCORE flags."; | |||
| reference | reference | |||
| "RFC 8824 Static Context Header Compression (SCHC) for the | "RFC 8824 Static Context Header Compression (SCHC) for the | |||
| Constrained Application Protocol (CoAP) (see | Constrained Application Protocol (CoAP) (see | |||
| section 6.4)"; | Section 6.4)"; | |||
| } | } | |||
| identity fid-coap-option-oscore-kid { | identity fid-coap-option-oscore-kid { | |||
| base fid-oscore-base-type; | base fid-coap-option; | |||
| description | description | |||
| "CoAP option oscore flags."; | "CoAP option OSCORE flags."; | |||
| reference | reference | |||
| "RFC 8824 Static Context Header Compression (SCHC) for the | "RFC 8824 Static Context Header Compression (SCHC) for the | |||
| Constrained Application Protocol (CoAP) (see | Constrained Application Protocol (CoAP) (see | |||
| section 6.4)"; | Section 6.4)"; | |||
| } | } | |||
| identity fid-coap-option-oscore-kidctx { | identity fid-coap-option-oscore-kidctx { | |||
| base fid-oscore-base-type; | base fid-coap-option; | |||
| description | description | |||
| "CoAP option oscore flags."; | "CoAP option OSCORE flags."; | |||
| reference | reference | |||
| "RFC 8824 Static Context Header Compression (SCHC) for the | "RFC 8824 Static Context Header Compression (SCHC) for the | |||
| Constrained Application Protocol (CoAP)(see | Constrained Application Protocol (CoAP)(see | |||
| section 6.4)"; | Section 6.4)"; | |||
| } | } | |||
| //---------------------------------- | //---------------------------------- | |||
| // Field Length type definition | // Field Length type definition | |||
| //---------------------------------- | //---------------------------------- | |||
| identity fl-base-type { | identity fl-base-type { | |||
| description | description | |||
| "Used to extend field length functions."; | "Used to extend Field Length functions."; | |||
| } | } | |||
| identity fl-variable { | identity fl-variable { | |||
| base fl-base-type; | base fl-base-type; | |||
| description | description | |||
| "Residue length in Byte is sent as defined for CoAP."; | "Residue length in bytes is sent as defined for CoAP."; | |||
| reference | reference | |||
| "RFC 8824 Static Context Header Compression (SCHC) for the | "RFC 8824 Static Context Header Compression (SCHC) for the | |||
| Constrained Application Protocol (CoAP) (see | Constrained Application Protocol (CoAP) (see | |||
| section 5.3)"; | Section 5.3)"; | |||
| } | } | |||
| identity fl-token-length { | identity fl-token-length { | |||
| base fl-base-type; | base fl-base-type; | |||
| description | description | |||
| "Residue length in Byte is sent as defined for CoAP."; | "Residue length in bytes is sent as defined for CoAP."; | |||
| reference | reference | |||
| "RFC 8824 Static Context Header Compression (SCHC) for the | "RFC 8824 Static Context Header Compression (SCHC) for the | |||
| Constrained Application Protocol (CoAP) (see | Constrained Application Protocol (CoAP) (see | |||
| section 4.5)"; | Section 4.5)"; | |||
| } | } | |||
| //--------------------------------- | //--------------------------------- | |||
| // Direction Indicator type | // Direction Indicator type | |||
| //--------------------------------- | //--------------------------------- | |||
| identity di-base-type { | identity di-base-type { | |||
| description | description | |||
| "Used to extend direction indicators."; | "Used to extend Direction Indicators."; | |||
| } | } | |||
| identity di-bidirectional { | identity di-bidirectional { | |||
| base di-base-type; | base di-base-type; | |||
| description | description | |||
| "Direction Indication of bidirectionality."; | "Direction Indicator of bidirectionality."; | |||
| reference | reference | |||
| "RFC 8724 SCHC: Generic Framework for Static Context | "RFC 8724 SCHC: Generic Framework for Static Context | |||
| Header Compression and Fragmentation (see | Header Compression and Fragmentation (see | |||
| section 7.1.)"; | Section 7.1)"; | |||
| } | } | |||
| identity di-up { | identity di-up { | |||
| base di-base-type; | base di-base-type; | |||
| description | description | |||
| "Direction Indication of uplink."; | "Direction Indicator of uplink."; | |||
| reference | reference | |||
| "RFC 8724 SCHC: Generic Framework for Static Context | "RFC 8724 SCHC: Generic Framework for Static Context | |||
| Header Compression and Fragmentation (see | Header Compression and Fragmentation (see | |||
| section 7.1)."; | Section 7.1)"; | |||
| } | } | |||
| identity di-down { | identity di-down { | |||
| base di-base-type; | base di-base-type; | |||
| description | description | |||
| "Direction Indication of downlink."; | "Direction Indicator of downlink."; | |||
| reference | reference | |||
| "RFC 8724 SCHC: Generic Framework for Static Context | "RFC 8724 SCHC: Generic Framework for Static Context | |||
| Header Compression and Fragmentation (see | Header Compression and Fragmentation (see | |||
| section 7.1)."; | Section 7.1)"; | |||
| } | } | |||
| //---------------------------------- | //---------------------------------- | |||
| // Matching Operator type definition | // Matching Operator type definition | |||
| //---------------------------------- | //---------------------------------- | |||
| identity mo-base-type { | identity mo-base-type { | |||
| description | description | |||
| "Matching Operator: used in the rule selection process | "Matching Operator: used in the Rule selection process | |||
| to check is a Target Value matches the field's value."; | to check if a Target Value matches the field's value."; | |||
| reference | reference | |||
| "RFC 8724 SCHC: Generic Framework for Static Context | "RFC 8724 SCHC: Generic Framework for Static Context | |||
| Header Compression and Fragmentation (see* | Header Compression and Fragmentation (see | |||
| section 7.2)."; | Section 7.2)"; | |||
| } | } | |||
| identity mo-equal { | identity mo-equal { | |||
| base mo-base-type; | base mo-base-type; | |||
| description | description | |||
| "equal MO."; | "equal MO."; | |||
| reference | reference | |||
| "RFC 8724 SCHC: Generic Framework for Static Context | "RFC 8724 SCHC: Generic Framework for Static Context | |||
| Header Compression and Fragmentation (see | Header Compression and Fragmentation (see | |||
| section 7.3)."; | Section 7.3)"; | |||
| } | } | |||
| identity mo-ignore { | identity mo-ignore { | |||
| base mo-base-type; | base mo-base-type; | |||
| description | description | |||
| "ignore MO."; | "ignore MO."; | |||
| reference | reference | |||
| "RFC 8724 SCHC: Generic Framework for Static Context | "RFC 8724 SCHC: Generic Framework for Static Context | |||
| Header Compression and Fragmentation (see | Header Compression and Fragmentation (see | |||
| section 7.3)."; | Section 7.3)"; | |||
| } | } | |||
| identity mo-msb { | identity mo-msb { | |||
| base mo-base-type; | base mo-base-type; | |||
| description | description | |||
| "MSB MO."; | "MSB MO."; | |||
| reference | reference | |||
| "RFC 8724 SCHC: Generic Framework for Static Context | "RFC 8724 SCHC: Generic Framework for Static Context | |||
| Header Compression and Fragmentation (see | Header Compression and Fragmentation (see | |||
| section 7.3)."; | Section 7.3)"; | |||
| } | } | |||
| identity mo-match-mapping { | identity mo-match-mapping { | |||
| base mo-base-type; | base mo-base-type; | |||
| description | description | |||
| "match-mapping MO."; | "match-mapping MO."; | |||
| reference | reference | |||
| "RFC 8724 SCHC: Generic Framework for Static Context | "RFC 8724 SCHC: Generic Framework for Static Context | |||
| Header Compression and Fragmentation (see | Header Compression and Fragmentation (see | |||
| section 7.3)."; | Section 7.3)"; | |||
| } | } | |||
| //------------------------------ | //------------------------------ | |||
| // CDA type definition | // CDA type definition | |||
| //------------------------------ | //------------------------------ | |||
| identity cda-base-type { | identity cda-base-type { | |||
| description | description | |||
| "Compression Decompression Actions. Specify the action to | "Compression Decompression Actions. Specify the action to | |||
| be applied to the field's value in a specific rule."; | be applied to the field's value in a specific Rule."; | |||
| reference | reference | |||
| "RFC 8724 SCHC: Generic Framework for Static Context | "RFC 8724 SCHC: Generic Framework for Static Context | |||
| Header Compression and Fragmentation (see | Header Compression and Fragmentation (see | |||
| section 7.2)."; | Section 7.2)"; | |||
| } | } | |||
| identity cda-not-sent { | identity cda-not-sent { | |||
| base cda-base-type; | base cda-base-type; | |||
| description | description | |||
| "not-sent CDA."; | "not-sent CDA."; | |||
| reference | reference | |||
| "RFC 8724 SCHC: Generic Framework for Static Context | "RFC 8724 SCHC: Generic Framework for Static Context | |||
| Header Compression and Fragmentation (see | Header Compression and Fragmentation (see | |||
| section 7.4)."; | Section 7.4)"; | |||
| } | } | |||
| identity cda-value-sent { | identity cda-value-sent { | |||
| base cda-base-type; | base cda-base-type; | |||
| description | description | |||
| "value-sent CDA."; | "value-sent CDA."; | |||
| reference | reference | |||
| "RFC 8724 SCHC: Generic Framework for Static Context | "RFC 8724 SCHC: Generic Framework for Static Context | |||
| Header Compression and Fragmentation (see | Header Compression and Fragmentation (see | |||
| section 7.4)."; | Section 7.4)"; | |||
| } | } | |||
| identity cda-lsb { | identity cda-lsb { | |||
| base cda-base-type; | base cda-base-type; | |||
| description | description | |||
| "LSB CDA."; | "Least Significant Bit (LSB) CDA."; | |||
| reference | reference | |||
| "RFC 8724 SCHC: Generic Framework for Static Context | "RFC 8724 SCHC: Generic Framework for Static Context | |||
| Header Compression and Fragmentation (see | Header Compression and Fragmentation (see | |||
| section 7.4)."; | Section 7.4)"; | |||
| } | } | |||
| identity cda-mapping-sent { | identity cda-mapping-sent { | |||
| base cda-base-type; | base cda-base-type; | |||
| description | description | |||
| "mapping-sent CDA."; | "mapping-sent CDA."; | |||
| reference | reference | |||
| "RFC 8724 SCHC: Generic Framework for Static Context | "RFC 8724 SCHC: Generic Framework for Static Context | |||
| Header Compression and Fragmentation (see | Header Compression and Fragmentation (see | |||
| section 7.4)."; | Section 7.4)"; | |||
| } | } | |||
| identity cda-compute { | identity cda-compute { | |||
| base cda-base-type; | base cda-base-type; | |||
| description | description | |||
| "compute-* CDA."; | "compute-* CDA."; | |||
| reference | reference | |||
| "RFC 8724 SCHC: Generic Framework for Static Context | "RFC 8724 SCHC: Generic Framework for Static Context | |||
| Header Compression and Fragmentation (see | Header Compression and Fragmentation (see | |||
| section 7.4)."; | Section 7.4)"; | |||
| } | } | |||
| identity cda-deviid { | identity cda-deviid { | |||
| base cda-base-type; | base cda-base-type; | |||
| description | description | |||
| "DevIID CDA."; | "DevIID CDA."; | |||
| reference | reference | |||
| "RFC 8724 SCHC: Generic Framework for Static Context | "RFC 8724 SCHC: Generic Framework for Static Context | |||
| Header Compression and Fragmentation (see | Header Compression and Fragmentation (see | |||
| section 7.4)."; | Section 7.4)"; | |||
| } | } | |||
| identity cda-appiid { | identity cda-appiid { | |||
| base cda-base-type; | base cda-base-type; | |||
| description | description | |||
| "AppIID CDA."; | "Application Interface Identifier (AppIID) CDA."; | |||
| reference | reference | |||
| "RFC 8724 SCHC: Generic Framework for Static Context | "RFC 8724 SCHC: Generic Framework for Static Context | |||
| Header Compression and Fragmentation (see | Header Compression and Fragmentation (see | |||
| section 7.4)."; | Section 7.4)"; | |||
| } | } | |||
| // -- type definition | // -- type definition | |||
| typedef fid-type { | typedef fid-type { | |||
| type identityref { | type identityref { | |||
| base fid-base-type; | base fid-base-type; | |||
| } | } | |||
| description | description | |||
| "Field ID generic type."; | "Field ID generic type."; | |||
| reference | reference | |||
| "RFC 8724 SCHC: Generic Framework for Static Context Header | "RFC 8724 SCHC: Generic Framework for Static Context Header | |||
| Compression and Fragmentation"; | Compression and Fragmentation"; | |||
| } | } | |||
| typedef fl-type { | typedef fl-type { | |||
| type union { | type identityref { | |||
| type uint64 { | base fl-base-type; | |||
| range 1..max; | ||||
| } | ||||
| type identityref { | ||||
| base fl-base-type; | ||||
| } | ||||
| } | } | |||
| description | description | |||
| "Field length either a positive integer expressing the size in | "Function used to indicate Field Length."; | |||
| bits or a function defined through an identityref."; | ||||
| reference | reference | |||
| "RFC 8724 SCHC: Generic Framework for Static Context Header | "RFC 8724 SCHC: Generic Framework for Static Context Header | |||
| Compression and Fragmentation"; | Compression and Fragmentation"; | |||
| } | } | |||
| typedef di-type { | typedef di-type { | |||
| type identityref { | type identityref { | |||
| base di-base-type; | base di-base-type; | |||
| } | } | |||
| description | description | |||
| "Direction in LPWAN network, up when emitted by the device, | "Direction in LPWAN network: up when emitted by the device, | |||
| down when received by the device, bi when emitted or | down when received by the device, or bi when emitted or | |||
| received by the device."; | received by the device."; | |||
| reference | reference | |||
| "RFC 8724 SCHC: Generic Framework for Static Context Header | "RFC 8724 SCHC: Generic Framework for Static Context Header | |||
| Compression and Fragmentation"; | Compression and Fragmentation"; | |||
| } | } | |||
| typedef mo-type { | typedef mo-type { | |||
| type identityref { | type identityref { | |||
| base mo-base-type; | base mo-base-type; | |||
| } | } | |||
| description | description | |||
| "Matching Operator (MO) to compare fields values with | "Matching Operator (MO) to compare field values with | |||
| target values."; | Target Values."; | |||
| reference | reference | |||
| "RFC 8724 SCHC: Generic Framework for Static Context Header | "RFC 8724 SCHC: Generic Framework for Static Context Header | |||
| Compression and Fragmentation"; | Compression and Fragmentation"; | |||
| } | } | |||
| typedef cda-type { | typedef cda-type { | |||
| type identityref { | type identityref { | |||
| base cda-base-type; | base cda-base-type; | |||
| } | } | |||
| description | description | |||
| "Compression Decompression Action to compression or | "Compression Decompression Action to compress or | |||
| decompress a field."; | decompress a field."; | |||
| reference | reference | |||
| "RFC 8724 SCHC: Generic Framework for Static Context Header | "RFC 8724 SCHC: Generic Framework for Static Context Header | |||
| Compression and Fragmentation"; | Compression and Fragmentation"; | |||
| } | } | |||
| // -- FRAGMENTATION TYPE | // -- FRAGMENTATION TYPE | |||
| // -- fragmentation modes | // -- fragmentation modes | |||
| identity fragmentation-mode-base-type { | identity fragmentation-mode-base-type { | |||
| skipping to change at line 1378 ¶ | skipping to change at line 1326 ¶ | |||
| reference | reference | |||
| "RFC 8724 SCHC: Generic Framework for Static Context Header | "RFC 8724 SCHC: Generic Framework for Static Context Header | |||
| Compression and Fragmentation"; | Compression and Fragmentation"; | |||
| } | } | |||
| typedef fragmentation-mode-type { | typedef fragmentation-mode-type { | |||
| type identityref { | type identityref { | |||
| base fragmentation-mode-base-type; | base fragmentation-mode-base-type; | |||
| } | } | |||
| description | description | |||
| "Define the type used for fragmentation mode in rules."; | "Define the type used for fragmentation mode in Rules."; | |||
| } | } | |||
| // -- Ack behavior | // -- Ack behavior | |||
| identity ack-behavior-base-type { | identity ack-behavior-base-type { | |||
| description | description | |||
| "Define when to send an Acknowledgment ."; | "Define when to send an Acknowledgment."; | |||
| reference | reference | |||
| "RFC 8724 SCHC: Generic Framework for Static Context Header | "RFC 8724 SCHC: Generic Framework for Static Context Header | |||
| Compression and Fragmentation"; | Compression and Fragmentation"; | |||
| } | } | |||
| identity ack-behavior-after-all-0 { | identity ack-behavior-after-all-0 { | |||
| base ack-behavior-base-type; | base ack-behavior-base-type; | |||
| description | description | |||
| "Fragmentation expects Ack after sending All-0 fragment."; | "Fragmentation expects ACK after sending All-0 fragment."; | |||
| } | } | |||
| identity ack-behavior-after-all-1 { | identity ack-behavior-after-all-1 { | |||
| base ack-behavior-base-type; | base ack-behavior-base-type; | |||
| description | description | |||
| "Fragmentation expects Ack after sending All-1 fragment."; | "Fragmentation expects ACK after sending All-1 fragment."; | |||
| } | } | |||
| identity ack-behavior-by-layer2 { | identity ack-behavior-by-layer2 { | |||
| base ack-behavior-base-type; | base ack-behavior-base-type; | |||
| description | description | |||
| "Layer 2 defines when to send an Ack."; | "Layer 2 defines when to send an ACK."; | |||
| } | } | |||
| typedef ack-behavior-type { | typedef ack-behavior-type { | |||
| type identityref { | type identityref { | |||
| base ack-behavior-base-type; | base ack-behavior-base-type; | |||
| } | } | |||
| description | description | |||
| "Define the type used for Ack behavior in rules."; | "Define the type used for ACK behavior in Rules."; | |||
| } | } | |||
| // -- All-1 with data types | // -- All-1 with data types | |||
| identity all-1-data-base-type { | identity all-1-data-base-type { | |||
| description | description | |||
| "Type to define when to send an Acknowledgment message."; | "Type to define when to send an Acknowledgment message."; | |||
| reference | reference | |||
| "RFC 8724 SCHC: Generic Framework for Static Context Header | "RFC 8724 SCHC: Generic Framework for Static Context Header | |||
| Compression and Fragmentation"; | Compression and Fragmentation"; | |||
| skipping to change at line 1450 ¶ | skipping to change at line 1398 ¶ | |||
| base all-1-data-base-type; | base all-1-data-base-type; | |||
| description | description | |||
| "Fragmentation process chooses to send tiles or not in All-1."; | "Fragmentation process chooses to send tiles or not in All-1."; | |||
| } | } | |||
| typedef all-1-data-type { | typedef all-1-data-type { | |||
| type identityref { | type identityref { | |||
| base all-1-data-base-type; | base all-1-data-base-type; | |||
| } | } | |||
| description | description | |||
| "Define the type used for All-1 format in rules."; | "Define the type used for All-1 format in Rules."; | |||
| } | } | |||
| // -- RCS algorithm types | // -- RCS algorithm types | |||
| identity rcs-algorithm-base-type { | identity rcs-algorithm-base-type { | |||
| description | description | |||
| "Identify which algorithm is used to compute RCS. | "Identify which algorithm is used to compute RCS. | |||
| The algorithm also defines the size of the RCS field."; | The algorithm also defines the size of the RCS field."; | |||
| reference | reference | |||
| "RFC 8724 SCHC: Generic Framework for Static Context Header | "RFC 8724 SCHC: Generic Framework for Static Context Header | |||
| Compression and Fragmentation"; | Compression and Fragmentation"; | |||
| } | } | |||
| identity rcs-crc32 { | identity rcs-crc32 { | |||
| base rcs-algorithm-base-type; | base rcs-algorithm-base-type; | |||
| description | description | |||
| "CRC 32 defined as default RCS in RFC8724. This RCS is | "CRC32 defined as default RCS in RFC 8724. This RCS is | |||
| 4 bytes long."; | 4 bytes long."; | |||
| reference | reference | |||
| "RFC 8724 SCHC: Generic Framework for Static Context Header | "RFC 8724 SCHC: Generic Framework for Static Context Header | |||
| Compression and Fragmentation"; | Compression and Fragmentation"; | |||
| } | } | |||
| typedef rcs-algorithm-type { | typedef rcs-algorithm-type { | |||
| type identityref { | type identityref { | |||
| base rcs-algorithm-base-type; | base rcs-algorithm-base-type; | |||
| } | } | |||
| description | description | |||
| "Define the type for RCS algorithm in rules."; | "Define the type for RCS algorithm in Rules."; | |||
| } | } | |||
| // -------- RULE ENTRY DEFINITION ------------ | // -------- RULE ENTRY DEFINITION ------------ | |||
| grouping tv-struct { | grouping tv-struct { | |||
| description | description | |||
| "Defines the target value element. If the header field | "Defines the Target Value element. If the header field | |||
| contains a text, the binary sequence uses the same encoding. | contains a text, the binary sequence uses the same encoding. | |||
| field-id allows the conversion to the appropriate type."; | field-id allows the conversion to the appropriate type."; | |||
| leaf index { | leaf index { | |||
| type uint16; | type uint16; | |||
| description | description | |||
| "Index gives the position in the matching-list. If only one | "Index gives the position in the matching list. If only one | |||
| element is present, index is 0. Otherwise, index is the | element is present, index is 0. Otherwise, index is the | |||
| the order in the matching list, starting at 0."; | order in the matching list, starting at 0."; | |||
| } | } | |||
| leaf value { | leaf value { | |||
| type binary; | type binary; | |||
| description | description | |||
| "Target Value content as an untyped binary value."; | "Target Value content as an untyped binary value."; | |||
| } | } | |||
| reference | reference | |||
| "RFC 8724 SCHC: Generic Framework for Static Context Header | "RFC 8724 SCHC: Generic Framework for Static Context Header | |||
| Compression and Fragmentation"; | Compression and Fragmentation"; | |||
| } | } | |||
| grouping compression-rule-entry { | grouping compression-rule-entry { | |||
| description | description | |||
| "These entries defines a compression entry (i.e. a line) | "These entries define a compression entry (i.e., a line), | |||
| as defined in RFC 8724. | as defined in RFC 8724. | |||
| +-------+--+--+--+------------+-----------------+---------------+ | +-------+--+--+--+------------+-----------------+---------------+ | |||
| |Field 1|FL|FP|DI|Target Value|Matching Operator|Comp/Decomp Act| | |Field 1|FL|FP|DI|Target Value|Matching Operator|Comp/Decomp Act| | |||
| +-------+--+--+--+------------+-----------------+---------------+ | +-------+--+--+--+------------+-----------------+---------------+ | |||
| An entry in a compression Rule is composed of 7 elements: | ||||
| An entry in a compression rule is composed of 7 elements: | - Field ID: the header field to be compressed | |||
| - Field ID: The header field to be compressed. | - Field Length : either a positive integer or a function | |||
| - Field Length : Either a positive integer of a function. | - Field Position: a positive (and possibly equal to 0) | |||
| - Field Position: A positive (and possibly equal to 0) | integer | |||
| integer. | - Direction Indicator: an indication in which direction the | |||
| - Direction Indicator: An indication in which direction | compression and decompression process is effective | |||
| compression and decompression process is effective. | - Target Value: a value against which the header field is | |||
| - Target value: A value against which the header Field is | compared | |||
| compared. | - Matching Operator: the comparison operation and optional | |||
| - Matching Operator: The comparison operation and optional | associate parameters | |||
| associate parameters. | - Comp./Decomp. Action: the compression or decompression | |||
| - Comp./Decomp. Action: The compression or decompression | action and optional parameters | |||
| action, and optional parameters. | ||||
| "; | "; | |||
| leaf field-id { | leaf field-id { | |||
| type schc:fid-type; | type schc:fid-type; | |||
| mandatory true; | mandatory true; | |||
| description | description | |||
| "Field ID, identify a field in the header with a YANG | "Field ID, identify a field in the header with a YANG | |||
| identity reference."; | identity reference."; | |||
| } | } | |||
| leaf field-length { | leaf field-length { | |||
| type union { | ||||
| type uint8; | ||||
| type schc:fl-type; | type schc:fl-type; | |||
| } | ||||
| mandatory true; | mandatory true; | |||
| description | description | |||
| "Field Length, expressed in number of bits if the length is | "Field Length, expressed in number of bits if the length is | |||
| known when the Rule is created or through a specific | known when the Rule is created or through a specific | |||
| function if the length is variable."; | function if the length is variable."; | |||
| } | } | |||
| leaf field-position { | leaf field-position { | |||
| type uint8; | type uint8; | |||
| mandatory true; | mandatory true; | |||
| description | description | |||
| "Field position in the header is an integer. Position 1 | "Field Position in the header is an integer. Position 1 | |||
| matches the first occurrence of a field in the header, | matches the first occurrence of a field in the header, | |||
| while incremented position values match subsequent | while incremented position values match subsequent | |||
| occurrences. | occurrences. | |||
| Position 0 means that this entry matches a field | Position 0 means that this entry matches a field | |||
| irrespective of its position of occurrence in the | irrespective of its position of occurrence in the | |||
| header. | header. | |||
| Be aware that the decompressed header may have | Be aware that the decompressed header may have | |||
| position-0 fields ordered differently than they | position-0 fields ordered differently than they | |||
| appeared in the original packet."; | appeared in the original packet."; | |||
| } | } | |||
| leaf direction-indicator { | leaf direction-indicator { | |||
| type schc:di-type; | type schc:di-type; | |||
| mandatory true; | mandatory true; | |||
| description | description | |||
| "Direction Indicator, indicate if this field must be | "Direction Indicator, indicate if this field must be | |||
| considered for rule selection or ignored based on the | considered for Rule selection or ignored based on the | |||
| direction (bi directionnal, only uplink, or only | direction (bidirectional, only uplink, or only | |||
| downlink)."; | downlink)."; | |||
| } | } | |||
| list target-value { | list target-value { | |||
| key "index"; | key "index"; | |||
| uses tv-struct; | uses tv-struct; | |||
| description | description | |||
| "A list of value to compare with the header field value. | "A list of values to compare with the header field value. | |||
| If target value is a singleton, position must be 0. | If Target Value is a singleton, position must be 0. | |||
| For use as a matching list for the mo-match-mapping matching | For use as a matching list for the mo-match-mapping Matching | |||
| operator, index should take consecutive values starting | Operator, index should take consecutive values starting | |||
| from 0."; | from 0."; | |||
| } | } | |||
| leaf matching-operator { | leaf matching-operator { | |||
| type schc:mo-type; | type schc:mo-type; | |||
| must "../target-value or derived-from-or-self(., | must "../target-value or derived-from-or-self(., | |||
| 'mo-ignore')" { | 'mo-ignore')" { | |||
| error-message | error-message | |||
| "mo-equal, mo-msb and mo-match-mapping need target-value"; | "mo-equal, mo-msb, and mo-match-mapping need target-value"; | |||
| description | description | |||
| "target-value is not required for mo-ignore."; | "target-value is not required for mo-ignore."; | |||
| } | } | |||
| must "not (derived-from-or-self(., 'mo-msb')) or | must "not (derived-from-or-self(., 'mo-msb')) or | |||
| ../matching-operator-value" { | ../matching-operator-value" { | |||
| error-message "mo-msb requires length value"; | error-message "mo-msb requires length value"; | |||
| } | } | |||
| mandatory true; | mandatory true; | |||
| description | description | |||
| "MO: Matching Operator."; | "MO: Matching Operator."; | |||
| reference | reference | |||
| "RFC 8724 SCHC: Generic Framework for Static Context Header | "RFC 8724 SCHC: Generic Framework for Static Context Header | |||
| Compression and Fragmentation (see Section 7.3)."; | Compression and Fragmentation (see Section 7.3)"; | |||
| } | } | |||
| list matching-operator-value { | list matching-operator-value { | |||
| key "index"; | key "index"; | |||
| uses tv-struct; | uses tv-struct; | |||
| description | description | |||
| "Matching Operator Arguments, based on TV structure to allow | "Matching Operator Arguments, based on TV structure to allow | |||
| several arguments. | several arguments. | |||
| In RFC 8724, only the MSB matching operator needs arguments | In RFC 8724, only the MSB Matching Operator needs arguments | |||
| (a single argument, which is the number of most significant | (a single argument, which is the number of most significant | |||
| bits to be matched)."; | bits to be matched)."; | |||
| } | } | |||
| leaf comp-decomp-action { | leaf comp-decomp-action { | |||
| type schc:cda-type; | type schc:cda-type; | |||
| must "../target-value or | must "../target-value or | |||
| derived-from-or-self(., 'cda-value-sent') or | derived-from-or-self(., 'cda-value-sent') or | |||
| derived-from-or-self(., 'cda-compute') or | derived-from-or-self(., 'cda-compute') or | |||
| derived-from-or-self(., 'cda-appiid') or | derived-from-or-self(., 'cda-appiid') or | |||
| derived-from-or-self(., 'cda-deviid')" { | derived-from-or-self(., 'cda-deviid')" { | |||
| error-message | error-message | |||
| "cda-not-sent, cda-lsb, cda-mapping-sent need | "cda-not-sent, cda-lsb, and cda-mapping-sent need | |||
| target-value"; | target-value"; | |||
| description | description | |||
| "target-value is not required for some CDA."; | "target-value is not required for some CDA."; | |||
| } | } | |||
| mandatory true; | mandatory true; | |||
| description | description | |||
| "CDA: Compression Decompression Action."; | "CDA: Compression Decompression Action."; | |||
| reference | reference | |||
| "RFC 8724 SCHC: Generic Framework for Static Context Header | "RFC 8724 SCHC: Generic Framework for Static Context Header | |||
| Compression and Fragmentation (see section 7.4)"; | Compression and Fragmentation (see Section 7.4)"; | |||
| } | } | |||
| list comp-decomp-action-value { | list comp-decomp-action-value { | |||
| key "index"; | key "index"; | |||
| uses tv-struct; | uses tv-struct; | |||
| description | description | |||
| "CDA arguments, based on a TV structure, in order to allow | "CDA arguments, based on a TV structure, in order to allow | |||
| for several arguments. The CDAs specified in RFC 8724 | for several arguments. The CDAs specified in RFC 8724 | |||
| require no argument."; | require no argument."; | |||
| } | } | |||
| } | } | |||
| // --Rule nature | // --Rule nature | |||
| identity nature-base-type { | identity nature-base-type { | |||
| description | description | |||
| "A rule, identified by its RuleID, are used for a single | "A Rule, identified by its RuleID, is used for a single | |||
| purpose. RFC 8724 defines 2 natures: | purpose. RFC 8724 defines 3 natures: | |||
| compression, no compression and fragmentation."; | compression, no-compression, and fragmentation."; | |||
| reference | reference | |||
| "RFC 8724 SCHC: Generic Framework for Static Context Header | "RFC 8724 SCHC: Generic Framework for Static Context Header | |||
| Compression and Fragmentation (see section 6)."; | Compression and Fragmentation (see Section 6)"; | |||
| } | } | |||
| identity nature-compression { | identity nature-compression { | |||
| base nature-base-type; | base nature-base-type; | |||
| description | description | |||
| "Identify a compression rule."; | "Identify a compression Rule."; | |||
| reference | reference | |||
| "RFC 8724 SCHC: Generic Framework for Static Context Header | "RFC 8724 SCHC: Generic Framework for Static Context Header | |||
| Compression and Fragmentation (see section 6)."; | Compression and Fragmentation (see Section 6)"; | |||
| } | } | |||
| identity nature-no-compression { | identity nature-no-compression { | |||
| base nature-base-type; | base nature-base-type; | |||
| description | description | |||
| "Identify a no compression rule."; | "Identify a no-compression Rule."; | |||
| reference | reference | |||
| "RFC 8724 SCHC: Generic Framework for Static Context Header | "RFC 8724 SCHC: Generic Framework for Static Context Header | |||
| Compression and Fragmentation (see section 6)."; | Compression and Fragmentation (see Section 6)"; | |||
| } | } | |||
| identity nature-fragmentation { | identity nature-fragmentation { | |||
| base nature-base-type; | base nature-base-type; | |||
| description | description | |||
| "Identify a fragmentation rule."; | "Identify a fragmentation Rule."; | |||
| reference | reference | |||
| "RFC 8724 SCHC: Generic Framework for Static Context Header | "RFC 8724 SCHC: Generic Framework for Static Context Header | |||
| Compression and Fragmentation (see section 6)."; | Compression and Fragmentation (see Section 6)"; | |||
| } | } | |||
| typedef nature-type { | typedef nature-type { | |||
| type identityref { | type identityref { | |||
| base nature-base-type; | base nature-base-type; | |||
| } | } | |||
| description | description | |||
| "defines the type to indicate the nature of the rule."; | "Defines the type to indicate the nature of the Rule."; | |||
| } | } | |||
| grouping compression-content { | grouping compression-content { | |||
| list entry { | list entry { | |||
| must "derived-from-or-self(../rule-nature, | must "derived-from-or-self(../rule-nature, | |||
| 'nature-compression')" { | 'nature-compression')" { | |||
| error-message "Rule nature must be compression"; | error-message "Rule nature must be compression"; | |||
| } | } | |||
| key "field-id field-position direction-indicator"; | key "field-id field-position direction-indicator"; | |||
| uses compression-rule-entry; | uses compression-rule-entry; | |||
| description | description | |||
| "A compression rule is a list of rule entries, each | "A compression Rule is a list of Rule entries, each | |||
| describing a header field. An entry is identified | describing a header field. An entry is identified | |||
| through a field-id, its position in the packet, and | through a field-id, its position in the packet, and | |||
| its direction."; | its direction."; | |||
| } | } | |||
| description | description | |||
| "Define a compression rule composed of a list of entries."; | "Define a compression Rule composed of a list of entries."; | |||
| reference | reference | |||
| "RFC 8724 SCHC: Generic Framework for Static Context Header | "RFC 8724 SCHC: Generic Framework for Static Context Header | |||
| Compression and Fragmentation"; | Compression and Fragmentation"; | |||
| } | } | |||
| grouping fragmentation-content { | grouping fragmentation-content { | |||
| description | description | |||
| "This grouping defines the fragmentation parameters for | "This grouping defines the fragmentation parameters for | |||
| all the modes (No-ACK, ACK-Always and ACK-on-Error) specified | all the modes (No ACK, ACK Always, and ACK on Error) specified | |||
| in RFC 8724."; | in RFC 8724."; | |||
| leaf fragmentation-mode { | leaf fragmentation-mode { | |||
| type schc:fragmentation-mode-type; | type schc:fragmentation-mode-type; | |||
| must "derived-from-or-self(../rule-nature, | must "derived-from-or-self(../rule-nature, | |||
| 'nature-fragmentation')" { | 'nature-fragmentation')" { | |||
| error-message "Rule nature must be fragmentation"; | error-message "Rule nature must be fragmentation"; | |||
| } | } | |||
| mandatory true; | mandatory true; | |||
| description | description | |||
| "Which fragmentation mode is used (No-Ack, ACK-Always, | "Which fragmentation mode is used (No ACK, ACK Always, or | |||
| ACK-on-Error)."; | ACK on Error)."; | |||
| } | } | |||
| leaf l2-word-size { | leaf l2-word-size { | |||
| type uint8; | type uint8; | |||
| default "8"; | default "8"; | |||
| description | description | |||
| "Size, in bits, of the layer 2 word."; | "Size, in bits, of the Layer 2 Word."; | |||
| } | } | |||
| leaf direction { | leaf direction { | |||
| type schc:di-type; | type schc:di-type; | |||
| must "derived-from-or-self(., 'di-up') or | must "derived-from-or-self(., 'di-up') or | |||
| derived-from-or-self(., 'di-down')" { | derived-from-or-self(., 'di-down')" { | |||
| error-message | error-message | |||
| "Direction for fragmentation rules are up or down."; | "Direction for fragmentation Rules are up or down."; | |||
| } | } | |||
| mandatory true; | mandatory true; | |||
| description | description | |||
| "MUST be up or down, bidirectional MUST NOT be used."; | "MUST be up or down, bidirectional MUST NOT be used."; | |||
| } | } | |||
| // SCHC Frag header format | // SCHC Frag header format | |||
| leaf dtag-size { | leaf dtag-size { | |||
| type uint8; | type uint8; | |||
| default "0"; | default "0"; | |||
| description | description | |||
| "Size, in bits, of the DTag field (T variable from | "Size, in bits, of the DTag field (T variable from | |||
| RFC8724)."; | RFC 8724)."; | |||
| } | } | |||
| leaf w-size { | leaf w-size { | |||
| when "derived-from-or-self(../fragmentation-mode, | when "derived-from-or-self(../fragmentation-mode, | |||
| 'fragmentation-mode-ack-on-error') | 'fragmentation-mode-ack-on-error') | |||
| or | or | |||
| derived-from-or-self(../fragmentation-mode, | derived-from-or-self(../fragmentation-mode, | |||
| 'fragmentation-mode-ack-always') "; | 'fragmentation-mode-ack-always') "; | |||
| type uint8; | type uint8; | |||
| description | description | |||
| "Size, in bits, of the window field (M variable from | "Size, in bits, of the window field (M variable from | |||
| RFC8724)."; | RFC 8724)."; | |||
| } | } | |||
| leaf fcn-size { | leaf fcn-size { | |||
| type uint8; | type uint8; | |||
| mandatory true; | mandatory true; | |||
| description | description | |||
| "Size, in bits, of the FCN field (N variable from RFC8724)."; | "Size, in bits, of the FCN field (N variable from | |||
| RFC 8724)."; | ||||
| } | } | |||
| leaf rcs-algorithm { | leaf rcs-algorithm { | |||
| type rcs-algorithm-type; | type rcs-algorithm-type; | |||
| default "schc:rcs-crc32"; | default "schc:rcs-crc32"; | |||
| description | description | |||
| "Algorithm used for RCS. The algorithm specifies the RCS | "Algorithm used for RCS. The algorithm specifies the RCS | |||
| size."; | size."; | |||
| } | } | |||
| // SCHC fragmentation protocol parameters | // SCHC fragmentation protocol parameters | |||
| leaf maximum-packet-size { | leaf maximum-packet-size { | |||
| type uint16; | type uint16; | |||
| default "1280"; | default "1280"; | |||
| description | description | |||
| "When decompression is done, packet size must not | "When decompression is done, packet size must not | |||
| strictly exceed this limit, expressed in bytes."; | strictly exceed this limit, expressed in bytes."; | |||
| } | } | |||
| leaf window-size { | leaf window-size { | |||
| type uint16; | type uint16; | |||
| description | description | |||
| "By default, if not specified 2^w-size - 1. Should not exceed | "By default, if not specified, the FCN value is 2^w-size - 1. | |||
| this value. Possible FCN values are between 0 and | This value should not be exceeded. Possible FCN values | |||
| window-size - 1."; | are between 0 and window-size - 1."; | |||
| } | } | |||
| leaf max-interleaved-frames { | leaf max-interleaved-frames { | |||
| type uint8; | type uint8; | |||
| default "1"; | default "1"; | |||
| description | description | |||
| "Maximum of simultaneously fragmented frames. Maximum value | "Maximum of simultaneously fragmented frames. Maximum value | |||
| is 2^dtag-size. All DTAG values can be used, but more than | is 2^dtag-size. All DTag values can be used, but more than | |||
| max-interleaved-frames MUST NOT be active at any time"; | max-interleaved-frames MUST NOT be active at any time."; | |||
| } | } | |||
| container inactivity-timer { | container inactivity-timer { | |||
| leaf ticks-duration { | leaf ticks-duration { | |||
| type uint8; | type uint8; | |||
| default "20"; | default "20"; | |||
| description | description | |||
| "Duration of one tick in micro-seconds: | "Duration of one tick in microseconds: | |||
| 2^ticks-duration/10^6 = 1.048s."; | 2^ticks-duration/10^6 = 1.048s."; | |||
| } | } | |||
| leaf ticks-numbers { | leaf ticks-numbers { | |||
| type uint16 { | type uint16 { | |||
| range "0..max"; | range "0..max"; | |||
| } | } | |||
| description | description | |||
| "Timer duration = ticks-numbers*2^ticks-duration / 10^6."; | "Timer duration = ticks-numbers*2^ticks-duration / 10^6."; | |||
| } | } | |||
| description | description | |||
| "Duration is seconds of the inactivity timer, 0 indicates | "Duration in seconds of the Inactivity Timer; 0 indicates | |||
| that the timer is disabled. | that the timer is disabled. | |||
| Allows a precision from micro-second to year by sending the | Allows a precision from microsecond to year by sending the | |||
| tick-duration value. For instance: | tick-duration value. For instance: | |||
| tick-duration / smallest value highest value | tick-duration: smallest value <-> highest value | |||
| v | ||||
| 20: 00y 000d 00h 00m 01s.048575<->00y 000d 19h 05m 18s.428159 | ||||
| 21: 00y 000d 00h 00m 02s.097151<->00y 001d 14h 10m 36s.856319 | ||||
| 22: 00y 000d 00h 00m 04s.194303<->00y 003d 04h 21m 13s.712639 | ||||
| 23: 00y 000d 00h 00m 08s.388607<->00y 006d 08h 42m 27s.425279 | ||||
| 24: 00y 000d 00h 00m 16s.777215<->00y 012d 17h 24m 54s.850559 | ||||
| 25: 00y 000d 00h 00m 33s.554431<->00y 025d 10h 49m 49s.701119 | ||||
| Note that the smallest value is also the incrementation step, | 20: 00y 000d 00h 00m 01s.048575<->00y 000d 19h 05m 18s.428159 | |||
| so the timer precision."; | 21: 00y 000d 00h 00m 02s.097151<->00y 001d 14h 10m 36s.856319 | |||
| 22: 00y 000d 00h 00m 04s.194303<->00y 003d 04h 21m 13s.712639 | ||||
| 23: 00y 000d 00h 00m 08s.388607<->00y 006d 08h 42m 27s.425279 | ||||
| 24: 00y 000d 00h 00m 16s.777215<->00y 012d 17h 24m 54s.850559 | ||||
| 25: 00y 000d 00h 00m 33s.554431<->00y 025d 10h 49m 49s.701119 | ||||
| Note that the smallest value is also the incrementation | ||||
| step."; | ||||
| } | } | |||
| container retransmission-timer { | container retransmission-timer { | |||
| leaf ticks-duration { | leaf ticks-duration { | |||
| type uint8; | type uint8; | |||
| default "20"; | default "20"; | |||
| description | description | |||
| "Duration of one tick in micro-seconds: | "Duration of one tick in microseconds: | |||
| 2^ticks-duration/10^6 = 1.048s."; | 2^ticks-duration/10^6 = 1.048s."; | |||
| } | } | |||
| leaf ticks-numbers { | leaf ticks-numbers { | |||
| type uint16 { | type uint16 { | |||
| range "1..max"; | range "1..max"; | |||
| } | } | |||
| description | description | |||
| "Timer duration = ticks-numbers*2^ticks-duration / 10^6."; | "Timer duration = ticks-numbers*2^ticks-duration / 10^6."; | |||
| } | } | |||
| when "derived-from-or-self(../fragmentation-mode, | when "derived-from-or-self(../fragmentation-mode, | |||
| 'fragmentation-mode-ack-on-error') | 'fragmentation-mode-ack-on-error') | |||
| or | or | |||
| derived-from-or-self(../fragmentation-mode, | derived-from-or-self(../fragmentation-mode, | |||
| 'fragmentation-mode-ack-always') "; | 'fragmentation-mode-ack-always') "; | |||
| description | description | |||
| "Duration in seconds of the retransmission timer. | "Duration in seconds of the Retransmission Timer. | |||
| See inactivity timer."; | See the Inactivity Timer."; | |||
| } | } | |||
| leaf max-ack-requests { | leaf max-ack-requests { | |||
| when "derived-from-or-self(../fragmentation-mode, | when "derived-from-or-self(../fragmentation-mode, | |||
| 'fragmentation-mode-ack-on-error') | 'fragmentation-mode-ack-on-error') | |||
| or | or | |||
| derived-from-or-self(../fragmentation-mode, | derived-from-or-self(../fragmentation-mode, | |||
| 'fragmentation-mode-ack-always') "; | 'fragmentation-mode-ack-always') "; | |||
| type uint8 { | type uint8 { | |||
| range "1..max"; | range "1..max"; | |||
| } | } | |||
| skipping to change at line 1876 ¶ | skipping to change at line 1824 ¶ | |||
| } | } | |||
| choice mode { | choice mode { | |||
| case no-ack; | case no-ack; | |||
| case ack-always; | case ack-always; | |||
| case ack-on-error { | case ack-on-error { | |||
| leaf tile-size { | leaf tile-size { | |||
| when "derived-from-or-self(../fragmentation-mode, | when "derived-from-or-self(../fragmentation-mode, | |||
| 'fragmentation-mode-ack-on-error')"; | 'fragmentation-mode-ack-on-error')"; | |||
| type uint8; | type uint8; | |||
| description | description | |||
| "Size, in bits, of tiles. If not specified or set to 0, | "Size, in bits, of tiles. If not specified or set to 0, | |||
| tiles fill the fragment."; | tiles fill the fragment."; | |||
| } | } | |||
| leaf tile-in-all-1 { | leaf tile-in-all-1 { | |||
| when "derived-from-or-self(../fragmentation-mode, | when "derived-from-or-self(../fragmentation-mode, | |||
| 'fragmentation-mode-ack-on-error')"; | 'fragmentation-mode-ack-on-error')"; | |||
| type schc:all-1-data-type; | type schc:all-1-data-type; | |||
| description | description | |||
| "Defines whether the sender and receiver expect a tile in | "Defines whether the sender and receiver expect a tile in | |||
| All-1 fragments or not, or if it is left to the sender's | All-1 fragments or not, or if it is left to the sender's | |||
| choice."; | choice."; | |||
| } | } | |||
| leaf ack-behavior { | leaf ack-behavior { | |||
| when "derived-from-or-self(../fragmentation-mode, | when "derived-from-or-self(../fragmentation-mode, | |||
| 'fragmentation-mode-ack-on-error')"; | 'fragmentation-mode-ack-on-error')"; | |||
| type schc:ack-behavior-type; | type schc:ack-behavior-type; | |||
| description | description | |||
| "Sender behavior to acknowledge, after All-0, All-1 or | "Sender behavior to acknowledge, after All-0 or All-1 or | |||
| when the LPWAN allows it."; | when the LPWAN allows it."; | |||
| } | } | |||
| } | } | |||
| description | description | |||
| "RFC 8724 defines 3 fragmentation modes."; | "RFC 8724 defines 3 fragmentation modes."; | |||
| } | } | |||
| reference | reference | |||
| "RFC 8724 SCHC: Generic Framework for Static Context Header | "RFC 8724 SCHC: Generic Framework for Static Context Header | |||
| Compression and Fragmentation"; | Compression and Fragmentation"; | |||
| } | } | |||
| // Define rule ID. Rule ID is composed of a RuleID value and a | // Define RuleID. RuleID is composed of a RuleID value and a | |||
| // Rule ID Length | // RuleID length | |||
| grouping rule-id-type { | grouping rule-id-type { | |||
| leaf rule-id-value { | leaf rule-id-value { | |||
| type uint32; | type uint32; | |||
| description | description | |||
| "Rule ID value, this value must be unique, considering its | "RuleID value. This value must be unique, considering its | |||
| length."; | length."; | |||
| } | } | |||
| leaf rule-id-length { | leaf rule-id-length { | |||
| type uint8 { | type uint8 { | |||
| range "0..32"; | range "0..32"; | |||
| } | } | |||
| description | description | |||
| "Rule ID length, in bits. The value 0 is for implicit | "RuleID length, in bits. The value 0 is for implicit | |||
| rules."; | Rules."; | |||
| } | } | |||
| description | description | |||
| "A rule ID is composed of a value and a length, expressed in | "A RuleID is composed of a value and a length, expressed in | |||
| bits."; | bits."; | |||
| reference | reference | |||
| "RFC 8724 SCHC: Generic Framework for Static Context Header | "RFC 8724 SCHC: Generic Framework for Static Context Header | |||
| Compression and Fragmentation"; | Compression and Fragmentation"; | |||
| } | } | |||
| // SCHC table for a specific device. | // SCHC table for a specific device. | |||
| container schc { | container schc { | |||
| list rule { | list rule { | |||
| key "rule-id-value rule-id-length"; | key "rule-id-value rule-id-length"; | |||
| uses rule-id-type; | uses rule-id-type; | |||
| leaf rule-nature { | leaf rule-nature { | |||
| type nature-type; | type nature-type; | |||
| mandatory true; | mandatory true; | |||
| description | description | |||
| "Specify the rule's nature."; | "Specify the Rule's nature."; | |||
| } | } | |||
| choice nature { | choice nature { | |||
| case fragmentation { | case fragmentation { | |||
| if-feature "fragmentation"; | if-feature "fragmentation"; | |||
| uses fragmentation-content; | uses fragmentation-content; | |||
| } | } | |||
| case compression { | case compression { | |||
| if-feature "compression"; | if-feature "compression"; | |||
| uses compression-content; | uses compression-content; | |||
| } | } | |||
| description | description | |||
| "A rule is for compression, for no-compression or for | "A Rule is for compression, for no-compression, or for | |||
| fragmentation."; | fragmentation."; | |||
| } | } | |||
| description | description | |||
| "Set of rules compression, no compression or fragmentation | "Set of compression, no-compression, or fragmentation | |||
| rules identified by their rule-id."; | Rules identified by their rule-id."; | |||
| } | } | |||
| description | description | |||
| "A SCHC set of rules is composed of a list of rules which are | "A SCHC set of Rules is composed of a list of Rules that are | |||
| used for compression, no-compression or fragmentation."; | used for compression, no-compression, or fragmentation."; | |||
| reference | reference | |||
| "RFC 8724 SCHC: Generic Framework for Static Context Header | "RFC 8724 SCHC: Generic Framework for Static Context Header | |||
| Compression and Fragmentation"; | Compression and Fragmentation"; | |||
| } | } | |||
| } | } | |||
| <CODE ENDS> | ]]></sourcecode> | |||
| ]]></artwork></figure> | </figure> | |||
| </section> | ||||
| </section> | <section anchor="iana-considerations"> | |||
| <section anchor="implementation-status"><name>Implementation Status</name> | <name>IANA Considerations</name> | |||
| <t>This document registers one URI and one YANG data model.</t> | ||||
| <!--NOTE TO RFC EDITOR: remove the entire section before | <section anchor="uri-registration"> | |||
| publication, as well as the reference to RFC 7942. --> | <name>URI Registration</name> | |||
| <t>IANA registered the following URI in the "IETF XML Registry" <xref ta | ||||
| <t>This section records the status of known implementations of the | rget="RFC3688"/>:</t> | |||
| protocol defined by this specification at the time of posting of | <dl newline="false" spacing="compact"> | |||
| this Internet-Draft, and is based on a proposal described in | <dt>URI:</dt> | |||
| <xref target="RFC7942"/>. The description of implementations in this section is | <dd>urn:ietf:params:xml:ns:yang:ietf-schc</dd> | |||
| intended to assist the IETF in its decision processes in | <dt>Registrant Contact:</dt> | |||
| progressing drafts to RFCs. Please note that the listing of any | <dd>The IESG.</dd> | |||
| individual implementation here does not imply endorsement by the | <dt>XML:</dt> | |||
| IETF. Furthermore, no effort has been spent to verify the | <dd>N/A; the requested URI is an XML namespace.</dd> | |||
| information presented here that was supplied by IETF contributors. | </dl> | |||
| This is not intended as, and must not be construed to be, a | </section> | |||
| catalog of available implementations or their features. Readers | <section anchor="yang-module-name-registration"> | |||
| are advised to note that other implementations may exist.</t> | <name>YANG Module Name Registration</name> | |||
| <t>IANA has registered the following YANG data model in the "YANG Module | ||||
| <t>According to <xref target="RFC7942"/>, "this will allow reviewers and working | Names" registry <xref target="RFC6020"/>.</t> | |||
| groups to assign due consideration to documents that have the | <dl newline="false" spacing="compact"> | |||
| benefit of running code, which may serve as evidence of valuable | <dt>name:</dt> | |||
| experimentation and feedback that have made the implemented | <dd>ietf-schc</dd> | |||
| protocols more mature. It is up to the individual working groups | <dt>namespace:</dt> | |||
| to use this information as they see fit".</t> | <dd>urn:ietf:params:xml:ns:yang:ietf-schc</dd> | |||
| <dt>prefix:</dt> | ||||
| <t><list style="symbols"> | <dd>schc</dd> | |||
| <t>Openschc is implementing the conversion between the local rule | <dt>reference:</dt> | |||
| representation and the representation conforming to the data model | <dd>RFC 9363</dd> | |||
| in JSON and CBOR (following -08 draft).</t> | </dl> | |||
| </list></t> | </section> | |||
| </section> | ||||
| </section> | <section anchor="security-considerations"> | |||
| <section anchor="iana-considerations"><name>IANA Considerations</name> | <name>Security Considerations</name> | |||
| <t>The YANG module specified in this document defines a schema for data th | ||||
| <t>This document registers one URI and one YANG modules.</t> | at is designed to be accessed via network management protocols such as NETCONF < | |||
| xref target="RFC6241"/> or RESTCONF <xref target="RFC8040"/>. The lowest NETCONF | ||||
| <section anchor="uri-registration"><name>Â URI Registration</name> | layer is the secure transport layer, and the mandatory-to-implement secure tran | |||
| sport is Secure Shell (SSH) <xref target="RFC6242"/>. The lowest RESTCONF layer | ||||
| <t>This document requests IANA to register the following URI in the "IETF XML R | is HTTPS, and the mandatory-to-implement secure transport is TLS | |||
| egistry" <xref target="RFC3688"/>:</t> | ||||
| <ul empty="true"><li> | ||||
| <t>URI:Â urn:ietf:params:xml:ns:yang:ietf-schc</t> | ||||
| </li></ul> | ||||
| <ul empty="true"><li> | ||||
| <t>Registrant Contact:Â The IESG.</t> | ||||
| </li></ul> | ||||
| <ul empty="true"><li> | ||||
| <t>XML:Â N/A; the requested URI is an XML namespace.</t> | ||||
| </li></ul> | ||||
| </section> | ||||
| <section anchor="yang-module-name-registration"><name>Â YANG Module Name Registr | ||||
| ation</name> | ||||
| <t>This document registers the following one YANG modules in the "YANG Module Na | ||||
| mes" registry <xref target="RFC6020"/>.</t> | ||||
| <ul empty="true"><li> | ||||
| <t>name: Â Â Â Â Â ietf-schc</t> | ||||
| </li></ul> | ||||
| <ul empty="true"><li> | ||||
| <t>namespace:Â Â Â urn:ietf:params:xml:ns:yang:ietf-schc</t> | ||||
| </li></ul> | ||||
| <ul empty="true"><li> | ||||
| <t>prefix: Â Â Â Â schc</t> | ||||
| </li></ul> | ||||
| <ul empty="true"><li> | ||||
| <t>reference:Â Â Â RFC XXXX Data Model for Static Context Header Compression ( | ||||
| SCHC)</t> | ||||
| </li></ul> | ||||
| </section> | ||||
| </section> | ||||
| <section anchor="security-considerations"><name>Security Considerations</name> | ||||
| <t>The YANG module specified in this document defines a schema for data that is | ||||
| designed to be accessed via network management protocols such as NETCONF <xref t | ||||
| arget="RFC6241"/> or RESTCONF <xref target="RFC8040"/>. The lowest NETCONF layer | ||||
| is the secure transport layer, and the mandatory-to-implement secure transport | ||||
| is Secure Shell (SSH) <xref target="RFC6242"/>. The lowest RESTCONF layer is HTT | ||||
| PS, and the mandatory-to-implement secure transport is TLS | ||||
| <xref target="RFC8446"/>.</t> | <xref target="RFC8446"/>.</t> | |||
| <t>The Network Configuration Access Control Model (NACM) <xref target="RFC8341"/ > provides the means to restrict access for particular NETCONF or RESTCONF users to a preconfigured subset of all available NETCONF or RESTCONF protocol operati ons and content.</t> | <t>The Network Configuration Access Control Model (NACM) <xref target="RFC8341"/ > provides the means to restrict access for particular NETCONF or RESTCONF users to a preconfigured subset of all available NETCONF or RESTCONF protocol operati ons and content.</t> | |||
| <t>There are a number of data nodes defined in this YANG module that are writabl | ||||
| e/creatable/deletable | ||||
| (i.e., config true, which is the default). These data nodes may be considered se | ||||
| nsitive or vulnerable | ||||
| in some network environments. Write operations (e.g., edit-config) to these data | ||||
| nodes without proper | ||||
| protection can have a negative effect on network operations. These are the subtr | ||||
| ees and data nodes and | ||||
| their sensitivity/vulnerability:</t> | ||||
| <dl newline="false"> | ||||
| <dt>/schc:</dt> | ||||
| <dd>All the data nodes may be modified. The Rule contains sensitive informatio | ||||
| n, such as the application IPv6 address where the device's data will be sent aft | ||||
| er decompression. An attacker may try to modify other devices' Rules by changing | ||||
| the application address and may block communication or allows traffic eavesdrop | ||||
| ping. Therefore, a device must be allowed to modify only its own rules on the re | ||||
| mote SCHC instance. The identity of the requester must be validated. This can be | ||||
| done through certificates or access lists. Modification may be allowed regardin | ||||
| g the Field Descriptor (i.e., IPv6 addresses field descriptors should not be mod | ||||
| ified, but UDP dev port could be changed).</dd> | ||||
| </dl> | ||||
| <t>Some of the readable data nodes in this YANG module may be considered sensiti | ||||
| ve or vulnerable in some network environments. It is thus important to control r | ||||
| ead access (e.g., via get, get-config, or notification) to these data nodes. The | ||||
| se are the subtrees and data nodes and their sensitivity/vulnerability: | ||||
| </t> | ||||
| <dl newline="false"> | ||||
| <dt>/schc:</dt> | ||||
| <dd>By reading a module, an attacker may learn the traffic generated by a devi | ||||
| ce and can also learn about application addresses or REST API.</dd> | ||||
| </dl> | ||||
| </section> | ||||
| </middle> | ||||
| <back> | ||||
| <t>This data model formalizes the rules elements described in <xref target="RFC8 | <displayreference target="I-D.ietf-lpwan-architecture" to="LPWAN-ARCH"/> | |||
| 724"/> for compression, and fragmentation. As explained in the architecture docu | ||||
| ment <xref target="I-D.ietf-lpwan-architecture"/>, a rule can be read, created, | ||||
| updated or deleted in response to a management request. These actions can be don | ||||
| e between two instances of SCHC or between a SCHC instance and a rule repository | ||||
| .</t> | ||||
| <figure><artwork><![CDATA[ | ||||
| create | ||||
| (-------) read +=======+ * | ||||
| ( rules )<------->|Rule |<--|--------> | ||||
| (-------) update |Manager| NETCONF, RESTCONF,... | ||||
| . read delete +=======+ request | ||||
| . | ||||
| +-------+ | ||||
| <===| R & D |<=== | ||||
| ===>| C & F |===> | ||||
| +-------+ | ||||
| ]]></artwork></figure> | ||||
| <t>The rule contains sensitive information such as the application IPv6 address | ||||
| where the device's data will be sent after decompression. A device may try to mo | ||||
| dify other devices' rules by changing the application address and may block comm | ||||
| unication or allows traffic eavesdropping. Therefore, a device must be allowed t | ||||
| o modify only its own rules on the remote SCHC instance. The identity of the req | ||||
| uester must be validated. This can be done through certificates or access lists. | ||||
| By reading a module, an attacker may know the traffic a device can generate and | ||||
| learn about application addresses or REST API.</t> | ||||
| <t>The full tree is sensitive, since it represents all the elements that can be | ||||
| managed. This module aims to be encapsulated into a YANG module including acces | ||||
| s controls and identities.</t> | ||||
| </section> | ||||
| <section anchor="annex-a-example"><name>Annex A : Example</name> | ||||
| <t>The informal rules given <xref target="Fig-example-rules"/> will represented | ||||
| in XML as shown in <xref target="Fig-XML-rules"/>.</t> | ||||
| <figure title="Rules example" anchor="Fig-example-rules"><artwork><![CDATA[ | <references> | |||
| <name>References</name> | ||||
| <references> | ||||
| <name>Normative References</name> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.0 | ||||
| 768.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2 | ||||
| 119.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.3 | ||||
| 688.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6 | ||||
| 020.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7 | ||||
| 136.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7 | ||||
| 252.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
| 174.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
| 200.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
| 342.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
| 613.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
| 724.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
| 824.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6 | ||||
| 241.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
| 040.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6 | ||||
| 242.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
| 446.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
| 341.xml"/> | ||||
| </references> | ||||
| <references> | ||||
| <name>Informative References</name> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7 | ||||
| 967.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7 | ||||
| 950.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8 | ||||
| 376.xml"/> | ||||
| <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9 | ||||
| 011.xml"/> | ||||
| <xi:include href="https://datatracker.ietf.org/doc/bibxml3/reference.I-D | ||||
| .ietf-lpwan-architecture.xml"/> | ||||
| </references> | ||||
| </references> | ||||
| <section anchor="annex-a-example"> | ||||
| <name>Example</name> | ||||
| <t>The informal Rules given <xref target="Fig-example-rules"/> are represe | ||||
| nted in XML, as shown in <xref target="Fig-XML-rules"/>.</t> | ||||
| <figure anchor="Fig-example-rules"> | ||||
| <name>Rules Example</name> | ||||
| <artwork><![CDATA[ | ||||
| /-------------------------\ | /-------------------------\ | |||
| |Rule 6/3 110 | | |Rule 6/3 110 | | |||
| |---------------+---+--+--+----------------+-------+----------------\ | |---------------+---+--+--+----------------+-------+----------------\ | |||
| |IPV6.VER | 4| 1|BI| 6|EQUAL |NOT-SENT | | |IPV6.VER | 4| 1|BI| 6|EQUAL |NOT-SENT | | |||
| |IPV6.TC | 8| 1|BI| 0|EQUAL |NOT-SENT | | |IPV6.TC | 8| 1|BI| 0|EQUAL |NOT-SENT | | |||
| |IPV6.FL | 20| 1|BI| 0|IGNORE |NOT-SENT | | |IPV6.FL | 20| 1|BI| 0|IGNORE |NOT-SENT | | |||
| |IPV6.LEN | 16| 1|BI| |IGNORE |COMPUTE-LENGTH | | |IPV6.LEN | 16| 1|BI| |IGNORE |COMPUTE-LENGTH | | |||
| |IPV6.NXT | 8| 1|BI| 58|EQUAL |NOT-SENT | | |IPV6.NXT | 8| 1|BI| 58|EQUAL |NOT-SENT | | |||
| |IPV6.HOP_LMT | 8| 1|BI| 255|IGNORE |NOT-SENT | | |IPV6.HOP_LMT | 8| 1|BI| 255|IGNORE |NOT-SENT | | |||
| |IPV6.DEV_PREFIX| 64| 1|BI|200104701f2101d2|EQUAL |NOT-SENT | | |IPV6.DEV_PREFIX| 64| 1|BI|200104701f2101d2|EQUAL |NOT-SENT | | |||
| skipping to change at line 2102 ¶ | skipping to change at line 2035 ¶ | |||
| \---------------+---+--+--+----------------+-------+----------------/ | \---------------+---+--+--+----------------+-------+----------------/ | |||
| /-------------------------\ | /-------------------------\ | |||
| |Rule 12/11 00001100 | | |Rule 12/11 00001100 | | |||
| !=========================+=========================================\ | !=========================+=========================================\ | |||
| !^ Fragmentation mode : NoAck header dtag 2 Window 0 FCN 3 UP ^! | !^ Fragmentation mode : NoAck header dtag 2 Window 0 FCN 3 UP ^! | |||
| !^ No Tile size specified ^! | !^ No Tile size specified ^! | |||
| !^ RCS Algorithm: RCS_CRC32 ^! | !^ RCS Algorithm: RCS_CRC32 ^! | |||
| \===================================================================/ | \===================================================================/ | |||
| /-------------------------\ | /-------------------------\ | |||
| |Rule 100/8 01100100 | | |Rule 100/8 01100100 | | |||
| | NO COMPRESSION RULE | | | NO-COMPRESSION RULE | | |||
| \-------------------------/ | \-------------------------/ | |||
| ]]></artwork> | ||||
| ]]></artwork></figure> | </figure> | |||
| <figure anchor="Fig-XML-rules"> | ||||
| <figure title="XML representation of the rules." anchor="Fig-XML-rules"><artwork | <name>XML Representation of the Rules</name> | |||
| ><![CDATA[ | <sourcecode type="xml"><![CDATA[ | |||
| <?xml version='1.0' encoding='UTF-8'?> | <?xml version='1.0' encoding='UTF-8'?> | |||
| <schc xmlns="urn:ietf:params:xml:ns:yang:ietf-schc"> | <schc xmlns="urn:ietf:params:xml:ns:yang:ietf-schc"> | |||
| <rule> | <rule> | |||
| <rule-id-value>6</rule-id-value> | <rule-id-value>6</rule-id-value> | |||
| <rule-id-length>3</rule-id-length> | <rule-id-length>3</rule-id-length> | |||
| <rule-nature>nature-compression</rule-nature> | <rule-nature>nature-compression</rule-nature> | |||
| <entry> | <entry> | |||
| <field-id>fid-ipv6-version</field-id> | <field-id>fid-ipv6-version</field-id> | |||
| <field-length>4</field-length> | <field-length>4</field-length> | |||
| <field-position>1</field-position> | <field-position>1</field-position> | |||
| skipping to change at line 2231 ¶ | skipping to change at line 2165 ¶ | |||
| </entry> | </entry> | |||
| </rule> | </rule> | |||
| <rule> | <rule> | |||
| <rule-id-value>12</rule-id-value> | <rule-id-value>12</rule-id-value> | |||
| <rule-id-length>11</rule-id-length> | <rule-id-length>11</rule-id-length> | |||
| <rule-nature>nature-fragmentation</rule-nature> | <rule-nature>nature-fragmentation</rule-nature> | |||
| <direction>di-up</direction> | <direction>di-up</direction> | |||
| <rcs-algorithm>rcs-crc32</rcs-algorithm> | <rcs-algorithm>rcs-crc32</rcs-algorithm> | |||
| <dtag-size>2</dtag-size> | <dtag-size>2</dtag-size> | |||
| <fcn-size>3</fcn-size> | <fcn-size>3</fcn-size> | |||
| <fragmentation-mode>fragmentation-mode-no-ack</fragmentation-mode> | <fragmentation-mode> | |||
| fragmentation-mode-no-ack | ||||
| </fragmentation-mode> | ||||
| </rule> | </rule> | |||
| <rule> | <rule> | |||
| <rule-id-value>100</rule-id-value> | <rule-id-value>100</rule-id-value> | |||
| <rule-id-length>8</rule-id-length> | <rule-id-length>8</rule-id-length> | |||
| <rule-nature>nature-no-compression</rule-nature> | <rule-nature>nature-no-compression</rule-nature> | |||
| </rule> | </rule> | |||
| </schc> | </schc> | |||
| ]]></sourcecode> | ||||
| ]]></artwork></figure> | </figure> | |||
| </section> | ||||
| </section> | <section anchor="acknowledgments" numbered="false"> | |||
| <section anchor="acknowledgements"><name>Acknowledgements</name> | <name>Acknowledgments</name> | |||
| <t>The authors would like to thank <contact fullname="Dominique Barthel"/> | ||||
| <t>The authors would like to thank Dominique Barthel, Carsten Bormann, Ivan Mart | , <contact fullname="Carsten Bormann"/>, <contact fullname="Ivan Martinez"/>, an | |||
| inez, Alexander Pelov for their careful reading and valuable inputs. A special t | d <contact fullname="Alexander Pelov"/> for their careful reading and valuable i | |||
| hanks for | nputs. A special thanks for | |||
| Joe Clarke, Carl Moberg, Tom Petch, Martin Thomson, | <contact fullname="Joe Clarke"/>, <contact fullname="Carl Moberg"/>, <contact fu | |||
| and Eric Vyncke for their explanations and wise advices when building the model. | llname="Tom Petch"/>, <contact fullname="Martin Thomson"/>, | |||
| </t> | and <contact fullname="Éric Vyncke"/> for their explanations and wise advice whe | |||
| n building the model.</t> | ||||
| </section> | </section> | |||
| </middle> | ||||
| <back> | ||||
| <references title='Normative References'> | ||||
| <reference anchor='RFC0768' target='https://www.rfc-editor.org/info/rfc768'> | ||||
| <front> | ||||
| <title>User Datagram Protocol</title> | ||||
| <author fullname='J. Postel' initials='J.' surname='Postel'><organization/></aut | ||||
| hor> | ||||
| <date month='August' year='1980'/> | ||||
| </front> | ||||
| <seriesInfo name='STD' value='6'/> | ||||
| <seriesInfo name='RFC' value='768'/> | ||||
| <seriesInfo name='DOI' value='10.17487/RFC0768'/> | ||||
| </reference> | ||||
| <reference anchor='RFC2119' target='https://www.rfc-editor.org/info/rfc2119'> | ||||
| <front> | ||||
| <title>Key words for use in RFCs to Indicate Requirement Levels</title> | ||||
| <author fullname='S. Bradner' initials='S.' surname='Bradner'><organization/></a | ||||
| uthor> | ||||
| <date month='March' year='1997'/> | ||||
| <abstract><t>In many standards track documents several words are used to signify | ||||
| the requirements in the specification. These words are often capitalized. This | ||||
| document defines these words as they should be interpreted in IETF documents. | ||||
| This document specifies an Internet Best Current Practices for the Internet Comm | ||||
| unity, and requests discussion and suggestions for improvements.</t></abstract> | ||||
| </front> | ||||
| <seriesInfo name='BCP' value='14'/> | ||||
| <seriesInfo name='RFC' value='2119'/> | ||||
| <seriesInfo name='DOI' value='10.17487/RFC2119'/> | ||||
| </reference> | ||||
| <reference anchor='RFC3688' target='https://www.rfc-editor.org/info/rfc3688'> | ||||
| <front> | ||||
| <title>The IETF XML Registry</title> | ||||
| <author fullname='M. Mealling' initials='M.' surname='Mealling'><organization/>< | ||||
| /author> | ||||
| <date month='January' year='2004'/> | ||||
| <abstract><t>This document describes an IANA maintained registry for IETF standa | ||||
| rds which use Extensible Markup Language (XML) related items such as Namespaces, | ||||
| Document Type Declarations (DTDs), Schemas, and Resource Description Framework | ||||
| (RDF) Schemas.</t></abstract> | ||||
| </front> | ||||
| <seriesInfo name='BCP' value='81'/> | ||||
| <seriesInfo name='RFC' value='3688'/> | ||||
| <seriesInfo name='DOI' value='10.17487/RFC3688'/> | ||||
| </reference> | ||||
| <reference anchor='RFC6020' target='https://www.rfc-editor.org/info/rfc6020'> | ||||
| <front> | ||||
| <title>YANG - A Data Modeling Language for the Network Configuration Protocol (N | ||||
| ETCONF)</title> | ||||
| <author fullname='M. Bjorklund' initials='M.' role='editor' surname='Bjorklund'> | ||||
| <organization/></author> | ||||
| <date month='October' year='2010'/> | ||||
| <abstract><t>YANG is a data modeling language used to model configuration and st | ||||
| ate data manipulated by the Network Configuration Protocol (NETCONF), NETCONF re | ||||
| mote procedure calls, and NETCONF notifications. [STANDARDS-TRACK]</t></abstract | ||||
| > | ||||
| </front> | ||||
| <seriesInfo name='RFC' value='6020'/> | ||||
| <seriesInfo name='DOI' value='10.17487/RFC6020'/> | ||||
| </reference> | ||||
| <reference anchor='RFC7136' target='https://www.rfc-editor.org/info/rfc7136'> | ||||
| <front> | ||||
| <title>Significance of IPv6 Interface Identifiers</title> | ||||
| <author fullname='B. Carpenter' initials='B.' surname='Carpenter'><organization/ | ||||
| ></author> | ||||
| <author fullname='S. Jiang' initials='S.' surname='Jiang'><organization/></autho | ||||
| r> | ||||
| <date month='February' year='2014'/> | ||||
| <abstract><t>The IPv6 addressing architecture includes a unicast interface ident | ||||
| ifier that is used in the creation of many IPv6 addresses. Interface identifiers | ||||
| are formed by a variety of methods. This document clarifies that the bits in a | ||||
| n interface identifier have no meaning and that the entire identifier should be | ||||
| treated as an opaque value. In particular, RFC 4291 defines a method by which t | ||||
| he Universal and Group bits of an IEEE link-layer address are mapped into an IPv | ||||
| 6 unicast interface identifier. This document clarifies that those two bits are | ||||
| significant only in the process of deriving interface identifiers from an IEEE | ||||
| link-layer address, and it updates RFC 4291 accordingly.</t></abstract> | ||||
| </front> | ||||
| <seriesInfo name='RFC' value='7136'/> | ||||
| <seriesInfo name='DOI' value='10.17487/RFC7136'/> | ||||
| </reference> | ||||
| <reference anchor='RFC7252' target='https://www.rfc-editor.org/info/rfc7252'> | ||||
| <front> | ||||
| <title>The Constrained Application Protocol (CoAP)</title> | ||||
| <author fullname='Z. Shelby' initials='Z.' surname='Shelby'><organization/></aut | ||||
| hor> | ||||
| <author fullname='K. Hartke' initials='K.' surname='Hartke'><organization/></aut | ||||
| hor> | ||||
| <author fullname='C. Bormann' initials='C.' surname='Bormann'><organization/></a | ||||
| uthor> | ||||
| <date month='June' year='2014'/> | ||||
| <abstract><t>The Constrained Application Protocol (CoAP) is a specialized web tr | ||||
| ansfer protocol for use with constrained nodes and constrained (e.g., low-power, | ||||
| lossy) networks. The nodes often have 8-bit microcontrollers with small amount | ||||
| s of ROM and RAM, while constrained networks such as IPv6 over Low-Power Wireles | ||||
| s Personal Area Networks (6LoWPANs) often have high packet error rates and a typ | ||||
| ical throughput of 10s of kbit/s. The protocol is designed for machine- to-mach | ||||
| ine (M2M) applications such as smart energy and building automation.</t><t>CoAP | ||||
| provides a request/response interaction model between application endpoints, sup | ||||
| ports built-in discovery of services and resources, and includes key concepts of | ||||
| the Web such as URIs and Internet media types. CoAP is designed to easily inte | ||||
| rface with HTTP for integration with the Web while meeting specialized requireme | ||||
| nts such as multicast support, very low overhead, and simplicity for constrained | ||||
| environments.</t></abstract> | ||||
| </front> | ||||
| <seriesInfo name='RFC' value='7252'/> | ||||
| <seriesInfo name='DOI' value='10.17487/RFC7252'/> | ||||
| </reference> | ||||
| <reference anchor='RFC8174' target='https://www.rfc-editor.org/info/rfc8174'> | ||||
| <front> | ||||
| <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title> | ||||
| <author fullname='B. Leiba' initials='B.' surname='Leiba'><organization/></autho | ||||
| r> | ||||
| <date month='May' year='2017'/> | ||||
| <abstract><t>RFC 2119 specifies common key words that may be used in protocol s | ||||
| pecifications. This document aims to reduce the ambiguity by clarifying that on | ||||
| ly UPPERCASE usage of the key words have the defined special meanings.</t></abs | ||||
| tract> | ||||
| </front> | ||||
| <seriesInfo name='BCP' value='14'/> | ||||
| <seriesInfo name='RFC' value='8174'/> | ||||
| <seriesInfo name='DOI' value='10.17487/RFC8174'/> | ||||
| </reference> | ||||
| <reference anchor='RFC8200' target='https://www.rfc-editor.org/info/rfc8200'> | ||||
| <front> | ||||
| <title>Internet Protocol, Version 6 (IPv6) Specification</title> | ||||
| <author fullname='S. Deering' initials='S.' surname='Deering'><organization/></a | ||||
| uthor> | ||||
| <author fullname='R. Hinden' initials='R.' surname='Hinden'><organization/></aut | ||||
| hor> | ||||
| <date month='July' year='2017'/> | ||||
| <abstract><t>This document specifies version 6 of the Internet Protocol (IPv6). | ||||
| It obsoletes RFC 2460.</t></abstract> | ||||
| </front> | ||||
| <seriesInfo name='STD' value='86'/> | ||||
| <seriesInfo name='RFC' value='8200'/> | ||||
| <seriesInfo name='DOI' value='10.17487/RFC8200'/> | ||||
| </reference> | ||||
| <reference anchor='RFC8342' target='https://www.rfc-editor.org/info/rfc8342'> | ||||
| <front> | ||||
| <title>Network Management Datastore Architecture (NMDA)</title> | ||||
| <author fullname='M. Bjorklund' initials='M.' surname='Bjorklund'><organization/ | ||||
| ></author> | ||||
| <author fullname='J. Schoenwaelder' initials='J.' surname='Schoenwaelder'><organ | ||||
| ization/></author> | ||||
| <author fullname='P. Shafer' initials='P.' surname='Shafer'><organization/></aut | ||||
| hor> | ||||
| <author fullname='K. Watsen' initials='K.' surname='Watsen'><organization/></aut | ||||
| hor> | ||||
| <author fullname='R. Wilton' initials='R.' surname='Wilton'><organization/></aut | ||||
| hor> | ||||
| <date month='March' year='2018'/> | ||||
| <abstract><t>Datastores are a fundamental concept binding the data models writte | ||||
| n in the YANG data modeling language to network management protocols such as the | ||||
| Network Configuration Protocol (NETCONF) and RESTCONF. This document defines an | ||||
| architectural framework for datastores based on the experience gained with the | ||||
| initial simpler model, addressing requirements that were not well supported in t | ||||
| he initial model. This document updates RFC 7950.</t></abstract> | ||||
| </front> | ||||
| <seriesInfo name='RFC' value='8342'/> | ||||
| <seriesInfo name='DOI' value='10.17487/RFC8342'/> | ||||
| </reference> | ||||
| <reference anchor='RFC8613' target='https://www.rfc-editor.org/info/rfc8613'> | ||||
| <front> | ||||
| <title>Object Security for Constrained RESTful Environments (OSCORE)</title> | ||||
| <author fullname='G. Selander' initials='G.' surname='Selander'><organization/>< | ||||
| /author> | ||||
| <author fullname='J. Mattsson' initials='J.' surname='Mattsson'><organization/>< | ||||
| /author> | ||||
| <author fullname='F. Palombini' initials='F.' surname='Palombini'><organization/ | ||||
| ></author> | ||||
| <author fullname='L. Seitz' initials='L.' surname='Seitz'><organization/></autho | ||||
| r> | ||||
| <date month='July' year='2019'/> | ||||
| <abstract><t>This document defines Object Security for Constrained RESTful Envir | ||||
| onments (OSCORE), a method for application-layer protection of the Constrained A | ||||
| pplication Protocol (CoAP), using CBOR Object Signing and Encryption (COSE). OS | ||||
| CORE provides end-to-end protection between endpoints communicating using CoAP o | ||||
| r CoAP-mappable HTTP. OSCORE is designed for constrained nodes and networks supp | ||||
| orting a range of proxy operations, including translation between different tran | ||||
| sport protocols.</t><t>Although an optional functionality of CoAP, OSCORE alters | ||||
| CoAP options processing and IANA registration. Therefore, this document update | ||||
| s RFC 7252.</t></abstract> | ||||
| </front> | ||||
| <seriesInfo name='RFC' value='8613'/> | ||||
| <seriesInfo name='DOI' value='10.17487/RFC8613'/> | ||||
| </reference> | ||||
| <reference anchor='RFC8724' target='https://www.rfc-editor.org/info/rfc8724'> | ||||
| <front> | ||||
| <title>SCHC: Generic Framework for Static Context Header Compression and Fragmen | ||||
| tation</title> | ||||
| <author fullname='A. Minaburo' initials='A.' surname='Minaburo'><organization/>< | ||||
| /author> | ||||
| <author fullname='L. Toutain' initials='L.' surname='Toutain'><organization/></a | ||||
| uthor> | ||||
| <author fullname='C. Gomez' initials='C.' surname='Gomez'><organization/></autho | ||||
| r> | ||||
| <author fullname='D. Barthel' initials='D.' surname='Barthel'><organization/></a | ||||
| uthor> | ||||
| <author fullname='JC. Zuniga' initials='JC.' surname='Zuniga'><organization/></a | ||||
| uthor> | ||||
| <date month='April' year='2020'/> | ||||
| <abstract><t>This document defines the Static Context Header Compression and fra | ||||
| gmentation (SCHC) framework, which provides both a header compression mechanism | ||||
| and an optional fragmentation mechanism. SCHC has been designed with Low-Power W | ||||
| ide Area Networks (LPWANs) in mind.</t><t>SCHC compression is based on a common | ||||
| static context stored both in the LPWAN device and in the network infrastructure | ||||
| side. This document defines a generic header compression mechanism and its appl | ||||
| ication to compress IPv6/UDP headers.</t><t>This document also specifies an opti | ||||
| onal fragmentation and reassembly mechanism. It can be used to support the IPv6 | ||||
| MTU requirement over the LPWAN technologies. Fragmentation is needed for IPv6 da | ||||
| tagrams that, after SCHC compression or when such compression was not possible, | ||||
| still exceed the Layer 2 maximum payload size.</t><t>The SCHC header compression | ||||
| and fragmentation mechanisms are independent of the specific LPWAN technology o | ||||
| ver which they are used. This document defines generic functionalities and offer | ||||
| s flexibility with regard to parameter settings and mechanism choices. This docu | ||||
| ment standardizes the exchange over the LPWAN between two SCHC entities. Setting | ||||
| s and choices specific to a technology or a product are expected to be grouped i | ||||
| nto profiles, which are specified in other documents. Data models for the contex | ||||
| t and profiles are out of scope.</t></abstract> | ||||
| </front> | ||||
| <seriesInfo name='RFC' value='8724'/> | ||||
| <seriesInfo name='DOI' value='10.17487/RFC8724'/> | ||||
| </reference> | ||||
| <reference anchor='RFC8824' target='https://www.rfc-editor.org/info/rfc8824'> | ||||
| <front> | ||||
| <title>Static Context Header Compression (SCHC) for the Constrained Application | ||||
| Protocol (CoAP)</title> | ||||
| <author fullname='A. Minaburo' initials='A.' surname='Minaburo'><organization/>< | ||||
| /author> | ||||
| <author fullname='L. Toutain' initials='L.' surname='Toutain'><organization/></a | ||||
| uthor> | ||||
| <author fullname='R. Andreasen' initials='R.' surname='Andreasen'><organization/ | ||||
| ></author> | ||||
| <date month='June' year='2021'/> | ||||
| <abstract><t>This document defines how to compress Constrained Application Proto | ||||
| col (CoAP) headers using the Static Context Header Compression and fragmentation | ||||
| (SCHC) framework. SCHC defines a header compression mechanism adapted for Const | ||||
| rained Devices. SCHC uses a static description of the header to reduce the heade | ||||
| r's redundancy and size. While RFC 8724 describes the SCHC compression and fragm | ||||
| entation framework, and its application for IPv6/UDP headers, this document appl | ||||
| ies SCHC to CoAP headers. The CoAP header structure differs from IPv6 and UDP, s | ||||
| ince CoAP uses a flexible header with a variable number of options, themselves o | ||||
| f variable length. The CoAP message format is asymmetric: the request messages h | ||||
| ave a header format different from the format in the response messages. This spe | ||||
| cification gives guidance on applying SCHC to flexible headers and how to levera | ||||
| ge the asymmetry for more efficient compression Rules.</t></abstract> | ||||
| </front> | ||||
| <seriesInfo name='RFC' value='8824'/> | ||||
| <seriesInfo name='DOI' value='10.17487/RFC8824'/> | ||||
| </reference> | ||||
| <reference anchor='RFC6241' target='https://www.rfc-editor.org/info/rfc6241'> | ||||
| <front> | ||||
| <title>Network Configuration Protocol (NETCONF)</title> | ||||
| <author fullname='R. Enns' initials='R.' role='editor' surname='Enns'><organizat | ||||
| ion/></author> | ||||
| <author fullname='M. Bjorklund' initials='M.' role='editor' surname='Bjorklund'> | ||||
| <organization/></author> | ||||
| <author fullname='J. Schoenwaelder' initials='J.' role='editor' surname='Schoenw | ||||
| aelder'><organization/></author> | ||||
| <author fullname='A. Bierman' initials='A.' role='editor' surname='Bierman'><org | ||||
| anization/></author> | ||||
| <date month='June' year='2011'/> | ||||
| <abstract><t>The Network Configuration Protocol (NETCONF) defined in this docume | ||||
| nt provides mechanisms to install, manipulate, and delete the configuration of n | ||||
| etwork devices. It uses an Extensible Markup Language (XML)-based data encoding | ||||
| for the configuration data as well as the protocol messages. The NETCONF proto | ||||
| col operations are realized as remote procedure calls (RPCs). This document obs | ||||
| oletes RFC 4741. [STANDARDS-TRACK]</t></abstract> | ||||
| </front> | ||||
| <seriesInfo name='RFC' value='6241'/> | ||||
| <seriesInfo name='DOI' value='10.17487/RFC6241'/> | ||||
| </reference> | ||||
| <reference anchor='RFC8040' target='https://www.rfc-editor.org/info/rfc8040'> | ||||
| <front> | ||||
| <title>RESTCONF Protocol</title> | ||||
| <author fullname='A. Bierman' initials='A.' surname='Bierman'><organization/></a | ||||
| uthor> | ||||
| <author fullname='M. Bjorklund' initials='M.' surname='Bjorklund'><organization/ | ||||
| ></author> | ||||
| <author fullname='K. Watsen' initials='K.' surname='Watsen'><organization/></aut | ||||
| hor> | ||||
| <date month='January' year='2017'/> | ||||
| <abstract><t>This document describes an HTTP-based protocol that provides a prog | ||||
| rammatic interface for accessing data defined in YANG, using the datastore conce | ||||
| pts defined in the Network Configuration Protocol (NETCONF).</t></abstract> | ||||
| </front> | ||||
| <seriesInfo name='RFC' value='8040'/> | ||||
| <seriesInfo name='DOI' value='10.17487/RFC8040'/> | ||||
| </reference> | ||||
| <reference anchor='RFC6242' target='https://www.rfc-editor.org/info/rfc6242'> | ||||
| <front> | ||||
| <title>Using the NETCONF Protocol over Secure Shell (SSH)</title> | ||||
| <author fullname='M. Wasserman' initials='M.' surname='Wasserman'><organization/ | ||||
| ></author> | ||||
| <date month='June' year='2011'/> | ||||
| <abstract><t>This document describes a method for invoking and running the Netwo | ||||
| rk Configuration Protocol (NETCONF) within a Secure Shell (SSH) session as an SS | ||||
| H subsystem. This document obsoletes RFC 4742. [STANDARDS-TRACK]</t></abstract | ||||
| > | ||||
| </front> | ||||
| <seriesInfo name='RFC' value='6242'/> | ||||
| <seriesInfo name='DOI' value='10.17487/RFC6242'/> | ||||
| </reference> | ||||
| <reference anchor='RFC8446' target='https://www.rfc-editor.org/info/rfc8446'> | ||||
| <front> | ||||
| <title>The Transport Layer Security (TLS) Protocol Version 1.3</title> | ||||
| <author fullname='E. Rescorla' initials='E.' surname='Rescorla'><organization/>< | ||||
| /author> | ||||
| <date month='August' year='2018'/> | ||||
| <abstract><t>This document specifies version 1.3 of the Transport Layer Security | ||||
| (TLS) protocol. TLS allows client/server applications to communicate over the | ||||
| Internet in a way that is designed to prevent eavesdropping, tampering, and mess | ||||
| age forgery.</t><t>This document updates RFCs 5705 and 6066, and obsoletes RFCs | ||||
| 5077, 5246, and 6961. This document also specifies new requirements for TLS 1.2 | ||||
| implementations.</t></abstract> | ||||
| </front> | ||||
| <seriesInfo name='RFC' value='8446'/> | ||||
| <seriesInfo name='DOI' value='10.17487/RFC8446'/> | ||||
| </reference> | ||||
| <reference anchor='RFC8341' target='https://www.rfc-editor.org/info/rfc8341'> | ||||
| <front> | ||||
| <title>Network Configuration Access Control Model</title> | ||||
| <author fullname='A. Bierman' initials='A.' surname='Bierman'><organization/></a | ||||
| uthor> | ||||
| <author fullname='M. Bjorklund' initials='M.' surname='Bjorklund'><organization/ | ||||
| ></author> | ||||
| <date month='March' year='2018'/> | ||||
| <abstract><t>The standardization of network configuration interfaces for use wit | ||||
| h the Network Configuration Protocol (NETCONF) or the RESTCONF protocol requires | ||||
| a structured and secure operating environment that promotes human usability and | ||||
| multi-vendor interoperability. There is a need for standard mechanisms to rest | ||||
| rict NETCONF or RESTCONF protocol access for particular users to a preconfigured | ||||
| subset of all available NETCONF or RESTCONF protocol operations and content. T | ||||
| his document defines such an access control model.</t><t>This document obsoletes | ||||
| RFC 6536.</t></abstract> | ||||
| </front> | ||||
| <seriesInfo name='STD' value='91'/> | ||||
| <seriesInfo name='RFC' value='8341'/> | ||||
| <seriesInfo name='DOI' value='10.17487/RFC8341'/> | ||||
| </reference> | ||||
| </references> | ||||
| <references title='Informative References'> | ||||
| <reference anchor='RFC7942' target='https://www.rfc-editor.org/info/rfc7942'> | ||||
| <front> | ||||
| <title>Improving Awareness of Running Code: The Implementation Status Section</t | ||||
| itle> | ||||
| <author fullname='Y. Sheffer' initials='Y.' surname='Sheffer'><organization/></a | ||||
| uthor> | ||||
| <author fullname='A. Farrel' initials='A.' surname='Farrel'><organization/></aut | ||||
| hor> | ||||
| <date month='July' year='2016'/> | ||||
| <abstract><t>This document describes a simple process that allows authors of Int | ||||
| ernet-Drafts to record the status of known implementations by including an Imple | ||||
| mentation Status section. This will allow reviewers and working groups to assig | ||||
| n due consideration to documents that have the benefit of running code, which ma | ||||
| y serve as evidence of valuable experimentation and feedback that have made the | ||||
| implemented protocols more mature.</t><t>This process is not mandatory. Authors | ||||
| of Internet-Drafts are encouraged to consider using the process for their docum | ||||
| ents, and working groups are invited to think about applying the process to all | ||||
| of their protocol specifications. This document obsoletes RFC 6982, advancing i | ||||
| t to a Best Current Practice.</t></abstract> | ||||
| </front> | ||||
| <seriesInfo name='BCP' value='205'/> | ||||
| <seriesInfo name='RFC' value='7942'/> | ||||
| <seriesInfo name='DOI' value='10.17487/RFC7942'/> | ||||
| </reference> | ||||
| <reference anchor='RFC7967' target='https://www.rfc-editor.org/info/rfc7967'> | ||||
| <front> | ||||
| <title>Constrained Application Protocol (CoAP) Option for No Server Response</ti | ||||
| tle> | ||||
| <author fullname='A. Bhattacharyya' initials='A.' surname='Bhattacharyya'><organ | ||||
| ization/></author> | ||||
| <author fullname='S. Bandyopadhyay' initials='S.' surname='Bandyopadhyay'><organ | ||||
| ization/></author> | ||||
| <author fullname='A. Pal' initials='A.' surname='Pal'><organization/></author> | ||||
| <author fullname='T. Bose' initials='T.' surname='Bose'><organization/></author> | ||||
| <date month='August' year='2016'/> | ||||
| <abstract><t>There can be machine-to-machine (M2M) scenarios where server respon | ||||
| ses to client requests are redundant. This kind of open-loop exchange (with no | ||||
| response path from the server to the client) may be desired to minimize resource | ||||
| consumption in constrained systems while updating many resources simultaneously | ||||
| or performing high-frequency updates. CoAP already provides Non-confirmable (NO | ||||
| N) messages that are not acknowledged by the recipient. However, the request/re | ||||
| sponse semantics still require the server to respond with a status code indicati | ||||
| ng "the result of the attempt to understand and satisfy the request&q | ||||
| uot;, per RFC 7252.</t><t>This specification introduces a CoAP option called 'No | ||||
| -Response'. Using this option, the client can explicitly express to the server i | ||||
| ts disinterest in all responses against the particular request. This option also | ||||
| provides granular control to enable expression of disinterest to a particular r | ||||
| esponse class or a combination of response classes. The server MAY decide to su | ||||
| ppress the response by not transmitting it back to the client according to the v | ||||
| alue of the No-Response option in the request. This option may be effective for | ||||
| both unicast and multicast requests. This document also discusses a few exampl | ||||
| es of applications that benefit from this option.</t></abstract> | ||||
| </front> | ||||
| <seriesInfo name='RFC' value='7967'/> | ||||
| <seriesInfo name='DOI' value='10.17487/RFC7967'/> | ||||
| </reference> | ||||
| <reference anchor='RFC7950' target='https://www.rfc-editor.org/info/rfc7950'> | ||||
| <front> | ||||
| <title>The YANG 1.1 Data Modeling Language</title> | ||||
| <author fullname='M. Bjorklund' initials='M.' role='editor' surname='Bjorklund'> | ||||
| <organization/></author> | ||||
| <date month='August' year='2016'/> | ||||
| <abstract><t>YANG is a data modeling language used to model configuration data, | ||||
| state data, Remote Procedure Calls, and notifications for network management pro | ||||
| tocols. This document describes the syntax and semantics of version 1.1 of the | ||||
| YANG language. YANG version 1.1 is a maintenance release of the YANG language, | ||||
| addressing ambiguities and defects in the original specification. There are a s | ||||
| mall number of backward incompatibilities from YANG version 1. This document al | ||||
| so specifies the YANG mappings to the Network Configuration Protocol (NETCONF).< | ||||
| /t></abstract> | ||||
| </front> | ||||
| <seriesInfo name='RFC' value='7950'/> | ||||
| <seriesInfo name='DOI' value='10.17487/RFC7950'/> | ||||
| </reference> | ||||
| <reference anchor='RFC8376' target='https://www.rfc-editor.org/info/rfc8376'> | ||||
| <front> | ||||
| <title>Low-Power Wide Area Network (LPWAN) Overview</title> | ||||
| <author fullname='S. Farrell' initials='S.' role='editor' surname='Farrell'><org | ||||
| anization/></author> | ||||
| <date month='May' year='2018'/> | ||||
| <abstract><t>Low-Power Wide Area Networks (LPWANs) are wireless technologies wit | ||||
| h characteristics such as large coverage areas, low bandwidth, possibly very sma | ||||
| ll packet and application-layer data sizes, and long battery life operation. Th | ||||
| is memo is an informational overview of the set of LPWAN technologies being cons | ||||
| idered in the IETF and of the gaps that exist between the needs of those technol | ||||
| ogies and the goal of running IP in LPWANs.</t></abstract> | ||||
| </front> | ||||
| <seriesInfo name='RFC' value='8376'/> | ||||
| <seriesInfo name='DOI' value='10.17487/RFC8376'/> | ||||
| </reference> | ||||
| <reference anchor='RFC9011' target='https://www.rfc-editor.org/info/rfc9011'> | ||||
| <front> | ||||
| <title>Static Context Header Compression and Fragmentation (SCHC) over LoRaWAN</ | ||||
| title> | ||||
| <author fullname='O. Gimenez' initials='O.' role='editor' surname='Gimenez'><org | ||||
| anization/></author> | ||||
| <author fullname='I. Petrov' initials='I.' role='editor' surname='Petrov'><organ | ||||
| ization/></author> | ||||
| <date month='April' year='2021'/> | ||||
| <abstract><t>The Static Context Header Compression and fragmentation (SCHC) spec | ||||
| ification (RFC 8724) describes generic header compression and fragmentation tech | ||||
| niques for Low-Power Wide Area Network (LPWAN) technologies. SCHC is a generic m | ||||
| echanism designed for great flexibility so that it can be adapted for any of the | ||||
| LPWAN technologies.</t><t>This document defines a profile of SCHC (RFC 8724) fo | ||||
| r use in LoRaWAN networks and provides elements such as efficient parameterizati | ||||
| on and modes of operation.</t></abstract> | ||||
| </front> | ||||
| <seriesInfo name='RFC' value='9011'/> | ||||
| <seriesInfo name='DOI' value='10.17487/RFC9011'/> | ||||
| </reference> | ||||
| <reference anchor='I-D.ietf-lpwan-architecture'> | ||||
| <front> | ||||
| <title>LPWAN Static Context Header Compression (SCHC) Architecture</title> | ||||
| <author fullname='Alexander Pelov' initials='A.' surname='Pelov'> | ||||
| <organization>Acklio</organization> | ||||
| </author> | ||||
| <author fullname='Pascal Thubert' initials='P.' surname='Thubert'> | ||||
| <organization>Cisco Systems</organization> | ||||
| </author> | ||||
| <author fullname='Ana Minaburo' initials='A.' surname='Minaburo'> | ||||
| <organization>Acklio</organization> | ||||
| </author> | ||||
| <date day='30' month='June' year='2022'/> | ||||
| <abstract> | ||||
| <t> This document defines the LPWAN SCHC architecture. | ||||
| </t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name='Internet-Draft' value='draft-ietf-lpwan-architecture-02'/> | ||||
| <format target='https://www.ietf.org/archive/id/draft-ietf-lpwan-architecture | ||||
| -02.txt' type='TXT'/> | ||||
| </reference> | ||||
| </references> | ||||
| </back> | </back> | |||
| <!-- ##markdown-source: | ||||
| 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 | ||||
| </rfc> | </rfc> | |||
| End of changes. 197 change blocks. | ||||
| 1776 lines changed or deleted | 855 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. | ||||