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 "&#160;"> <!ENTITY nbsp "&#160;">
<!ENTITY zwsp "&#8203;"> <!ENTITY zwsp "&#8203;">
<!ENTITY nbhy "&#8209;"> <!ENTITY nbhy "&#8209;">
<!ENTITY wj "&#8288;"> <!ENTITY wj "&#8288;">
]> ]>
<?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&nbsp;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-&lt;&lt;protocol name&gt;&gt;-base-type. for each protocol is specified using the naming convention fid-&lt;&lt;protocol name&gt;&gt;-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.&nbsp;<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.&nbsp;<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.&nbsp;<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 &quot;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.