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