<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.43 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-toutain-schc-rfc9363bis-00" category="std" consensus="true" submissionType="IETF" obsoletes="9363" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.35.0 -->
  <front>
    <title abbrev="SCHC YANG Data Model">A YANG Data Model for Static Context Header Compression (SCHC)</title>
    <seriesInfo name="Internet-Draft" value="draft-toutain-schc-rfc9363bis-00"/>
    <author initials="A." surname="Minaburo" fullname="Ana Minaburo">
      <organization>Acklio</organization>
      <address>
        <postal>
          <street>1137A avenue des Champs Blancs</street>
          <city>Cesson-Sevigne Cedex</city>
          <code>35510</code>
          <country>France</country>
        </postal>
        <email>ana@ackl.io</email>
      </address>
    </author>
    <author initials="L." surname="Toutain" fullname="Laurent Toutain">
      <organization>Institut MINES TELECOM; IMT Atlantique</organization>
      <address>
        <postal>
          <street>2 rue de la Chataigneraie CS 17607</street>
          <city>Cesson-Sevigne Cedex</city>
          <code>35576</code>
          <country>France</country>
        </postal>
        <email>Laurent.Toutain@imt-atlantique.fr</email>
      </address>
    </author>
    <date year="2026" month="October" day="30"/>
    <area>int</area>
    <workgroup>schc</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>
      <?line 74?>

<t>This document describes a YANG data model for the Static Context Header Compression (SCHC)
compression and fragmentation Rules.</t>
      <t>This document formalizes the description of the Rules for better
interoperability between SCHC instances either to exchange a set of Rules or to
modify the parameters of some Rules.</t>
      <t>This document updates the SCHC data model defined in RFC 9363 to take into
account the evolution of SCHC usages. It introduces a flexible way to describe
protocol options, such as the CoAP options, and includes the identifiers needed
for the compression of ICMPv6 and features for the management of the Rules.</t>
    </abstract>
  </front>
  <middle>
    <?line 88?>

<section anchor="Introduction">
      <name>Introduction</name>
      <t>SCHC is a compression and fragmentation mechanism for constrained networks
defined in <xref target="RFC8724"/>. It is initially based on a static context shared by
two entities at the boundary of the constrained network. <xref target="RFC8724"/> provides
an informal representation of the Rules used either for
compression/decompression (C/D) or fragmentation/reassembly (F/R), and
<xref target="RFC9363"/> a YANG data model dedicated to LPWAN environments, where the
Rules were most of the time installed directly in the SCHC end-points.</t>
      <t>This document defines an evolution of YANG data model <xref target="RFC7950"/> to represent compression,
fragmentation, and management Rules, which leads to common representation for
values for all the Rules' elements. The goal of this document is to update
the formal description of the Rules, to extend SCHC to new environments, and
to offer:</t>
      <ul spacing="normal">
        <li>
          <t>the same definition on both ends, even if the internal representation is
different,</t>
        </li>
        <li>
          <t>an update of the other end to set up some specific values (e.g., IPv6 prefix,
destination address, etc.), and</t>
        </li>
        <li>
          <t>the management of the Rules by the SCHC instances themselves, which create
and delete Rules using CORECONF
<xref target="I-D.toutain-schc-coreconf-management"/>.</t>
        </li>
      </ul>
      <t>This data model is a revision of the <tt>ietf-schc</tt> module of <xref target="RFC9363"/>, and
not an augmentation, since the new format of the entries introduced by
<xref target="I-D.ietf-schc-universal-option"/> changes the key of the compression Rule
entries. Since the key of a list cannot be changed in a published
module (<xref section="11" sectionFormat="of" target="RFC7950"/>), a new list is defined and the previous
one is deprecated.</t>
      <t>SCHC was originally designed around a shared context, fixed when the devices are deployed. This
revision introduces context evolution: the SCHC instances create and delete
Rules themselves, and fit the compression to the traffic they actually carry,
while a generic description of the protocol options extends the compression to
existing protocols. SCHC can then be used wherever header overhead matters,
from LPWANs to 5G and 6G cellular networks, industrial networks, and
deep-space links.</t>
    </section>
    <section anchor="requirements-language">
      <name>Requirements Language</name>
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED",
"MAY", and "OPTIONAL" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/>
when, and only when, they appear in all capitals, as shown here.</t>
    </section>
    <section anchor="Term">
      <name>Terminology</name>
      <t>This section defines the terminology and acronyms used in this document.
It extends the terminology of <xref target="RFC8376"/>.</t>
      <dl>
        <dt>Action:</dt>
        <dd>
          <t>Processing applied to a packet matching a compression Rule. By default, the
packet is compressed and forwarded.</t>
        </dd>
        <dt>App:</dt>
        <dd>
          <t>Low-Power WAN (LPWAN) Application, as defined by <xref target="RFC8376"/>. An application sending/receiving packets to/from the Dev.</t>
        </dd>
        <dt>Bi:</dt>
        <dd>
          <t>Bidirectional. Characterizes a Field Descriptor that applies to headers of packets traveling in either direction (Up and Dw; see this glossary).</t>
        </dd>
        <dt>CDA:</dt>
        <dd>
          <t>Compression/Decompression Action. Describes the pair of actions that are performed at the compressor to compress a header field and at the decompressor to recover the original value of the header field.</t>
        </dd>
        <dt>Context:</dt>
        <dd>
          <t>A set of Rules used to compress/decompress headers.</t>
        </dd>
        <dt>Dev:</dt>
        <dd>
          <t>Device, as defined by <xref target="RFC8376"/>.</t>
        </dd>
        <dt>DevIID:</dt>
        <dd>
          <t>Device Interface Identifier. The IID that identifies the Dev interface.</t>
        </dd>
        <dt>DI:</dt>
        <dd>
          <t>Direction Indicator. This field tells which direction of packet travel (Up, Dw, or Bi) a Field Descriptor applies to. This allows for asymmetric processing, using the same Rule.</t>
        </dd>
        <dt>Dw:</dt>
        <dd>
          <t>Downlink direction for compression/decompression, from SCHC C/D in the network to SCHC C/D in the Dev.</t>
        </dd>
        <dt>Entry Index:</dt>
        <dd>
          <t>Sequential position of an entry in a compression Rule, starting at 0. It is
the key of the list of entries, and follows the order of the fields in the
header.</t>
        </dd>
        <dt>FID:</dt>
        <dd>
          <t>Field Identifier or Field ID. This identifies the protocol and field a Field Descriptor applies to.</t>
        </dd>
        <dt>FL:</dt>
        <dd>
          <t>Field Length. This is the length of the original packet header field. It is expressed as a number of bits for header fields of fixed lengths or as a type (e.g., variable, token length, ...) for Field Lengths that are unknown at the time of Rule creation. The length of a header field is defined in the corresponding protocol specification (such as IPv6 or UDP).</t>
        </dd>
        <dt>FP:</dt>
        <dd>
          <t>Field Position. When a field is expected to appear multiple times in a header, the Field Position specifies the occurrence this Field Descriptor applies to
(for example, first Uri-Path option, second Uri-Path, etc. in a Constrained Application Protocol (CoAP) header), counting from 1. The value 0 is special and means "don't care" (see <xref section="7.2" sectionFormat="of" target="RFC8724"/>).</t>
        </dd>
        <dt>Guard Period:</dt>
        <dd>
          <t>Time during which a deleted Rule ID cannot be reused, so that a SCHC Packet
sent with the previous Rule cannot be decoded with a new one (see
<xref target="I-D.toutain-schc-coreconf-management"/>).</t>
        </dd>
        <dt>IID:</dt>
        <dd>
          <t>Interface Identifier. See the IPv6 addressing architecture <xref target="RFC7136"/>.</t>
        </dd>
        <dt>L2 Word:</dt>
        <dd>
          <t>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.
The L2 Word size is assumed to be constant over time for each device.</t>
        </dd>
        <dt>Management Rule:</dt>
        <dd>
          <t>Rule used to carry the management traffic between SCHC instances. Only the
management Rules can access the Set of Rules (see
<xref target="I-D.toutain-schc-coreconf-management"/>).</t>
        </dd>
        <dt>MO:</dt>
        <dd>
          <t>Matching Operator. An operator used to match a value contained in a header field with a value contained in a Rule.</t>
        </dd>
        <dt>RuleID:</dt>
        <dd>
          <t>Rule Identifier. An identifier for a Rule. SCHC C/D on both sides share the same RuleID for a given packet. A set of RuleIDs are used to support SCHC F/R functionality.</t>
        </dd>
        <dt>Rule Status:</dt>
        <dd>
          <t>State of a Rule in the management protocol: origin, valid, candidate,
invalid, or free (see <xref target="I-D.toutain-schc-coreconf-management"/>).</t>
        </dd>
        <dt>Space ID:</dt>
        <dd>
          <t>Identifier of a protocol option space, such as the CoAP options.</t>
        </dd>
        <dt>TV:</dt>
        <dd>
          <t>Target Value. A value contained in a Rule that will be matched with the value of a header field.</t>
        </dd>
        <dt>Universal Option:</dt>
        <dd>
          <t>Option referenced in a compression Rule by its Space ID and its option
number, instead of a dedicated FID.</t>
        </dd>
        <dt>Up:</dt>
        <dd>
          <t>Uplink direction for compression/decompression, from the Dev SCHC C/D to the network SCHC C/D.</t>
        </dd>
      </dl>
    </section>
    <section anchor="schc-rules">
      <name>SCHC Rules</name>
      <section anchor="rule-evolution">
        <name>Evolution of the SCHC Rules</name>
        <t><xref target="RFC8724"/> defines the Rules in an informal way, for compression and
fragmentation. SCHC compression is generic without
referring to a specific protocol. <xref target="RFC9363"/> introduces a YANG data model to
represent all these Rules, including the identifiers of the IPv6 <xref target="RFC8200"/>,
UDP <xref target="RFC0768"/>, and CoAP <xref target="RFC7252"/> fields defined in <xref target="RFC8724"/> and
<xref target="RFC8824"/>, with the CoAP options for no server response <xref target="RFC7967"/> and
Object Security for Constrained RESTful Environments (OSCORE) <xref target="RFC8613"/>.</t>
        <t>Since then, other documents have made the data model evolve, either by defining
their own data model, which augments the <tt>ietf-schc</tt> module, or by introducing
elements for a revision of this module:</t>
        <ul spacing="normal">
          <li>
            <t><xref target="RFC9441"/> introduces the Compound ACK, with a data model that augments the
fragmentation Rule, so that a single acknowledgment can cover several
windows. It is considered as an augmentation of the data model, and remains
valid with this revision (see <xref target="fragmentation-rule"/>);</t>
          </li>
          <li>
            <t><xref target="I-D.ietf-schc-8824-update"/> updates the compression of CoAP, and defines
the "var_bit" Field Length function;</t>
          </li>
          <li>
            <t><xref target="I-D.ietf-schc-universal-option"/> introduces a new format for the entries
of the Rules, which reference a protocol option by a Space ID and its option
number, instead of a specific Field ID per option. With <xref target="RFC8824"/> and
<xref target="I-D.ietf-schc-8824-update"/>, it splits the OSCORE option into subfields,
including the ones of its Key Update (KUDOS) extension
<xref target="I-D.ietf-core-oscore-key-update"/>;</t>
          </li>
          <li>
            <t><xref target="I-D.ietf-schc-icmpv6-compression"/> specifies the compression of ICMPv6
<xref target="RFC4443"/>, with new Field IDs, Field Length functions, Matching Operators,
Compression Decompression Actions, and an Action applied to the packets
matching a Rule;</t>
          </li>
          <li>
            <t><xref target="RFC9442"/> uses a new RCS algorithm for SCHC over Sigfox;</t>
          </li>
          <li>
            <t><xref target="I-D.toutain-schc-coreconf-management"/> introduces the management of the
Rules by the SCHC instances themselves, with management Rules, a status for
each Rule, and a Guard period.</t>
          </li>
        </ul>
        <t>This document gathers these elements in a revision of
the <tt>ietf-schc</tt> module, including the universal options, since they change the
key of the compression Rule entries.</t>
      </section>
      <section anchor="update-from-rfc9363">
        <name>Main Updates from RFC 9363</name>
        <t>The main updates of the YANG data model defined in <xref target="RFC9363"/> are:</t>
        <ul spacing="normal">
          <li>
            <t>Compression Rule entries: a new list of entries, keyed by an entry index,
replaces the previous one, which is deprecated (see <xref target="Introduction"/> and
<xref target="compression-rule"/>).</t>
          </li>
          <li>
            <t>Universal Options: an entry can reference a protocol option by a Space ID
and its option number, and the per-option CoAP Field IDs are deprecated (see
<xref target="convention-for-space-identifier"/>).</t>
          </li>
          <li>
            <t>New identifiers: Field IDs for ICMPv6 <xref target="I-D.ietf-schc-icmpv6-compression"/>
and for the OSCORE and KUDOS subfields (see
<xref target="convention-for-field-identifier"/>), Field Length functions (see
<xref target="convention-for-field-length"/>), Matching Operators (see
<xref target="convention-for-matching-operator"/>), and Compression Decompression Actions
(see <xref target="convention-for-compression-decompression-actions"/>).</t>
          </li>
          <li>
            <t>RCS algorithm: a new identity, <tt>rcs-frag-count</tt>, for the RCS of SCHC over
Sigfox <xref target="RFC9442"/> (see <xref target="last-fragment-format"/>).</t>
          </li>
          <li>
            <t>Action: a compression Rule can carry an Action, applied to the packets
matching it <xref target="I-D.ietf-schc-icmpv6-compression"/> (see
<xref target="convention-for-action"/>).</t>
          </li>
          <li>
            <t>Rule management: a new feature, a new Rule nature, a Guard period, and a
status for each Rule <xref target="I-D.toutain-schc-coreconf-management"/> (see
<xref target="management-rule"/> and <xref target="yang-tree"/>).</t>
          </li>
        </ul>
      </section>
      <section anchor="comp_types">
        <name>Compression Rules</name>
        <t>Compression is optional in the data model and depends on the presence of the <tt>compression</tt> feature.</t>
        <t><xref target="RFC8724"/> proposes an informal representation of the compression Rule.
A compression context for a device is composed of a set of Rules. Each Rule contains information to
describe a specific field in the header to be compressed.</t>
        <figure anchor="Fig-ctxt">
          <name>Compression Decompression Context</name>
          <artwork type="ascii-art"><![CDATA[
  +-----------------------------------------------------------------+
  |                      Rule N                                     |
 +-----------------------------------------------------------------+|
 |                    Rule i                                       ||
+-----------------------------------------------------------------+||
|  (FID)            Rule 1                                        |||
|+-------+--+--+--+------------+-----------------+---------------+|||
||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 N|FL|FP|DI|Target Value|Matching Operator|Comp/Decomp Act|||
|+-------+--+--+--+------------+-----------------+---------------+|/
|                                                                 |
\-----------------------------------------------------------------/
]]></artwork>
        </figure>
      </section>
      <section anchor="identifier-generation">
        <name>Identifier Generation</name>
        <t>Identifiers used in the SCHC YANG data model are from the identityref statement to ensure global uniqueness and easy augmentation if needed.  The principle to define a new type based on a group of identityref is the following:</t>
        <ul spacing="normal">
          <li>
            <t>Define a main identity ending with the keyword <tt>base-type</tt>.</t>
          </li>
          <li>
            <t>Derive all the identities used in the data model from this base type.</t>
          </li>
          <li>
            <t>Create a typedef from this base type.</t>
          </li>
        </ul>
        <t>The example below (<xref target="Fig-identityref"/>) shows how an identityref is created for Reassembly Check Sequence (RCS) algorithms used during SCHC fragmentation.</t>
        <figure anchor="Fig-identityref">
          <name>Principle to Define a Type Based on identityref</name>
          <artwork><![CDATA[
  identity rcs-algorithm-base-type {
    description
      "Identify which algorithm is used to compute RCS.
       The algorithm also defines the size of the RCS field.";
    reference
      "RFC 8724 SCHC: Generic Framework for Static Context Header
                Compression and Fragmentation";
  }

  identity rcs-crc32 {
    base rcs-algorithm-base-type;
    description
      "CRC32 defined as default RCS in RFC 8724.  This RCS is
       4 bytes long.";
    reference
      "RFC 8724 SCHC: Generic Framework for Static Context Header
                Compression and Fragmentation";
  }

  typedef rcs-algorithm-type {
    type identityref {
      base rcs-algorithm-base-type;
    }
    description
      "Define the type for RCS algorithm in Rules.";
  }
]]></artwork>
        </figure>
      </section>
      <section anchor="convention-for-field-identifier">
        <name>Convention for Field Identifier</name>
        <t>In the process of compression, the headers of the original packet are first parsed to create a list of fields. This list of fields is matched against the Rules to find the appropriate Rule and apply compression.  <xref target="RFC8724"/>  does not state how the Field ID value is constructed.
In examples, identification is done through a string indexed by the protocol name (e.g., IPv6.version, CoAP.version, etc.).</t>
        <t>The current YANG data model includes field definitions found in <xref target="RFC8724"/>
and <xref target="RFC8824"/>, with the following updates:</t>
        <ul spacing="normal">
          <li>
            <t>The per-option CoAP Field IDs are deprecated, since CoAP options are
represented as Universal Options <xref target="I-D.ietf-schc-universal-option"/> (see
<xref target="convention-for-space-identifier"/> and <xref target="compression-rule"/>).</t>
          </li>
          <li>
            <t>New sub-fields of the OSCORE option are defined, for the OSCORE flags
(<tt>fid-coap-option-oscore-flags-flagbits</tt>, <tt>fid-coap-option-oscore-flags-n</tt>)
and for KUDOS (<tt>fid-coap-option-kudos-x</tt>, <tt>fid-coap-option-kudos-x-flagbits</tt>,
<tt>fid-coap-option-kudos-x-m</tt>, <tt>fid-coap-option-kudos-nonce</tt>)
<xref target="I-D.ietf-schc-universal-option"/>.</t>
          </li>
          <li>
            <t>Field IDs are defined for ICMPv6, derived from <tt>fid-icmpv6-base-type</tt>
              <xref target="I-D.ietf-schc-icmpv6-compression"/>.</t>
          </li>
          <li>
            <t>Two Field IDs independent of any protocol are defined, <tt>fid-unused</tt> and
<tt>fid-payload</tt> <xref target="I-D.ietf-schc-icmpv6-compression"/>.</t>
          </li>
        </ul>
        <t>Using the YANG data model, each field MUST be identified through a global YANG identityref.</t>
        <t>A YANG Field ID for the protocol is always derived from the <tt>fid-base-type</tt>. Then, an identity
for each protocol is specified using the naming convention <tt>fid-&lt;&lt;protocol name&gt;&gt;-base-type</tt>.
All possible fields for this protocol MUST derive from the protocol identity. The naming
convention is <tt>fid-</tt> followed by the protocol name and the field name. If a field has
to be divided into subfields, the field identity serves as a base.</t>
        <t>The full <tt>field-id</tt> definition is found in <xref target="annexA"/>. A type is defined for the IPv6 protocol, and each
field is based on it. Note that the Diffserv bits derive from the Traffic Class identity.</t>
      </section>
      <section anchor="convention-for-space-identifier">
        <name>Convention for Space Identifier</name>
        <t>Some protocols, such as CoAP <xref target="RFC7252"/>, carry options identified by a number
in an option space specific to the protocol. Instead of defining a Field ID for
each option, a compression Rule entry can reference an option by a Space ID,
which identifies the option space, and by the option number in this space,
carried in the <tt>universal-value</tt> leaf <xref target="I-D.ietf-schc-universal-option"/>. New
options can then be compressed without any update of the YANG data model.</t>
        <t>A Space ID is derived from the <tt>space-id-base-type</tt> identity. The naming
convention is <tt>space-id-</tt> followed by the protocol name. The current YANG data
model defines <tt>space-id-coap</tt> for the CoAP options; other protocols that define
options can add their own identity the same way. The <tt>space-id-type</tt> typedef is
defined from <tt>space-id-base-type</tt>, following the principle shown in
<xref target="Fig-identityref"/>.</t>
        <t><tt>fid-base-type</tt> and <tt>space-id-base-type</tt> derive from a common ancestor,
<tt>space-field-id-base-type</tt>. A compression Rule entry contains either a
<tt>field-id</tt> or a <tt>space-id</tt> with its associated <tt>universal-value</tt> (see
<xref target="compression-rule"/>).</t>
        <t>This document deprecates some CoAP Field IDs originally defined in <xref target="RFC9363"/>
(from <tt>fid-coap-option-if-match</tt> to <tt>fid-coap-option-no-response</tt>), which are
replaced by Universal Options using <tt>space-id-coap</tt> and the option number.</t>
      </section>
      <section anchor="convention-for-field-length">
        <name>Convention for Field Length</name>
        <t>The Field Length is either an integer giving the size of a field in bits or a
specific function. <xref target="RFC8724"/> defines the "var" function, which allows
variable-length fields (whose length is expressed in bytes), and <xref target="RFC8824"/>
defines the "tkl" function for managing the CoAP Token Length field.</t>
        <t><xref target="I-D.ietf-schc-universal-option"/> and <xref target="I-D.ietf-schc-icmpv6-compression"/>
define the <tt>fl-length-bytes</tt>, <tt>fl-length-bits</tt>, <tt>fl-variable-bits</tt>, and
<tt>fl-remaining</tt> functions. <tt>fl-variable-bits</tt> corresponds to the "var_bit"
function of <xref target="I-D.ietf-schc-8824-update"/>.</t>
        <t>A Field Length function can take a numerical argument, carried in the
<tt>field-length-value</tt> leaf of the Rule entry. For <tt>fl-length-bytes</tt> and
<tt>fl-length-bits</tt>, this argument is the entry index of the entry giving the
length. The other functions do not use it.</t>
        <t>The naming convention is <tt>fl-</tt> followed by the function name.</t>
        <t>The Field Length function can be defined as an identityref, as described in
<xref target="annexA"/>. Therefore, the type for the Field Length is a union between an
integer giving the size of the length in bits and the identityref.</t>
      </section>
      <section anchor="convention-for-field-position">
        <name>Convention for Field Position</name>
        <t>The Field Position is a positive integer that gives the occurrence times of a
specific field from the header start.  The default value is 1 and is incremented at each repetition.
Value 0 indicates that the position is not important and is not considered during the Rule selection process.</t>
        <t>The Field Position is a positive integer. The type is uint8.</t>
      </section>
      <section anchor="convention-for-direction-indicator">
        <name>Convention for Direction Indicator</name>
        <t>The Direction Indicator is used to tell if a field appears in both directions (Bi) or only uplink (Up) or Downlink (Dw). The naming convention is "di" followed by the Direction Indicator name.</t>
        <t>The type is <tt>di-type</tt>.</t>
      </section>
      <section anchor="target_value">
        <name>Convention for Target Value</name>
        <t>The Target Value is a list of binary sequences of any length, aligned to the left. In the Rule, the structure will be used as a list, with the index as a key. The highest index value is used to compute the size of the index sent in residue for the match-mapping Compression Decompression Action (CDA). The index can specify several values:</t>
        <ul spacing="normal">
          <li>
            <t>For equal and most significant bits (MSBs), the Target Value contains a single element. Therefore, the index is set to 0.</t>
          </li>
          <li>
            <t>For match-mapping, the Target Value can contain several elements. Index values MUST start from 0 and MUST be contiguous.</t>
          </li>
        </ul>
        <t>If the header field contains text, the binary sequence uses the same encoding.</t>
      </section>
      <section anchor="convention-for-matching-operator">
        <name>Convention for Matching Operator</name>
        <t>The Matching Operator (MO) is a function applied between a field value provided
by the parsed header and the Target Value. <xref target="RFC8724"/> defines 4 MOs.
<xref target="I-D.ietf-schc-icmpv6-compression"/> defines <tt>mo-rule-match</tt> and
<tt>mo-rev-rule-match</tt>.</t>
        <t>The naming convention is <tt>mo-</tt> followed by the MO name.</t>
        <t>The type is <tt>mo-type</tt>.</t>
        <section anchor="matching-operator-arguments">
          <name>Matching Operator Arguments</name>
          <t>They are viewed as a list, built with a <tt>tv-struct</tt> (see <xref target="target_value"/>).</t>
        </section>
      </section>
      <section anchor="convention-for-compression-decompression-actions">
        <name>Convention for Compression Decompression Actions</name>
        <t>The Compression Decompression Action (CDA) identifies the function to use for
compression or decompression. <xref target="RFC8724"/> defines 7 CDAs.
<xref target="I-D.ietf-schc-icmpv6-compression"/> defines <tt>cda-compress-sent</tt> and
<tt>cda-rev-compress-sent</tt>.</t>
        <t>The naming convention is <tt>cda-</tt> followed by the CDA name.</t>
        <section anchor="compression-decompression-action-arguments">
          <name>Compression Decompression Action Arguments</name>
          <t>Currently no CDA requires arguments, but some CDAs may require one or several arguments in the future.
They are viewed as a list of <tt>target-value</tt> type.</t>
        </section>
      </section>
      <section anchor="convention-for-action">
        <name>Convention for Action</name>
        <t>When a compression Rule is selected, <xref target="RFC8724"/> compresses the packet and
sends the resulting SCHC Packet to the lower layer. An Action, introduced by
<xref target="I-D.ietf-schc-icmpv6-compression"/>, changes this behavior: the Rule is still
selected through its entries, but the packet is handed over to the process
named by the Action. The Action applies to the Rule as a whole, and not to a
single entry.</t>
        <t>The naming convention is <tt>action-</tt> followed by the Action name. The type is
<tt>action-type</tt>. The default Action is <tt>action-forward</tt>: the packet is
compressed and sent to the lower layer, as specified in <xref target="RFC8724"/>, so a Rule
without an Action behaves as in <xref target="RFC8724"/>.
<xref target="I-D.ietf-schc-icmpv6-compression"/> defines <tt>action-proxy-ping</tt>.</t>
        <section anchor="action-arguments">
          <name>Action Arguments</name>
          <t>The Action is carried in the <tt>action</tt> leaf of the compression Rule, and its
arguments in the <tt>action-value</tt> list of the same Rule. The arguments are viewed
as a list, built with a <tt>tv-struct</tt> (see <xref target="target_value"/>). <tt>action-forward</tt>
takes no argument.</t>
        </section>
      </section>
      <section anchor="frag_types">
        <name>Fragmentation Rule</name>
        <t>Fragmentation is optional in the data model and depends on the presence of the <tt>fragmentation</tt> feature.</t>
        <t>The SCHC Compound ACK <xref target="RFC9441"/> augments this data model with the
<tt>ietf-schc-compound-ack</tt> module, to acknowledge several windows in a single
SCHC ACK message in the ACK-on-Error mode. This augmentation remains valid
for the data model defined in this document, since the fragmentation part of
the module.</t>
        <t>Most of the fragmentation parameters are listed in <xref section="D" sectionFormat="of" target="RFC8724"/>.</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 MUST NOT be used.</t>
        <section anchor="fragmentation-mode">
          <name>Fragmentation Mode</name>
          <t><xref target="RFC8724"/> defines 3 fragmentation modes:</t>
          <ul spacing="normal">
            <li>
              <t>No ACK: This mode is unidirectional; no acknowledgment is sent back.</t>
            </li>
            <li>
              <t>ACK Always: Each fragmentation window must be explicitly acknowledged before going to the next.</t>
            </li>
            <li>
              <t>ACK on Error: A window is acknowledged only when the receiver detects some missing fragments.</t>
            </li>
          </ul>
          <t>The type is <tt>fragmentation-mode-type</tt>.
The naming convention is <tt>fragmentation-mode-</tt> followed by the fragmentation mode name.</t>
        </section>
        <section anchor="fragmentation-header">
          <name>Fragmentation Header</name>
          <t>A data fragment header, starting with the RuleID, can be sent in the fragmentation direction.
<xref target="RFC8724"/> indicates that the SCHC header may be composed of the following (cf. <xref target="Fig-frag-header-8724"/>):</t>
          <ul spacing="normal">
            <li>
              <t>a Datagram Tag (DTag) identifying the datagram being fragmented if the fragmentation applies concurrently on several datagrams. This field is optional, and its length is defined by the Rule.</t>
            </li>
            <li>
              <t>a Window (W) used in ACK-Always and ACK-on-Error modes. In ACK-Always, its size is 1. In ACK-on-Error, it depends on the Rule. This field is not needed in No-ACK mode.</t>
            </li>
            <li>
              <t>a Fragment Compressed Number (FCN) indicating the fragment/tile position within the window. This field is mandatory on all modes defined in <xref target="RFC8724"/>, and its size is defined by the Rule.</t>
            </li>
          </ul>
          <figure anchor="Fig-frag-header-8724">
            <name>Data Fragment Header from RFC 8724</name>
            <artwork type="ascii-art"><![CDATA[
|-- SCHC Fragment Header ----|
         |-- T --|-M-|-- N --|
+-- ... -+- ... -+---+- ... -+--------...-------+~~~~~~~~~~~~~~~~~~~~
| RuleID | DTag  | W |  FCN  | Fragment Payload | padding (as needed)
+-- ... -+- ... -+---+- ... -+--------...-------+~~~~~~~~~~~~~~~~~~~~
]]></artwork>
          </figure>
        </section>
        <section anchor="last-fragment-format">
          <name>Last Fragment Format</name>
          <t>The last fragment of a datagram (the All-1 fragment) is sent with a
Reassembly Check Sequence (RCS) field to detect residual transmission errors
and possible losses in the last window. <xref target="RFC8724"/> recommends that the sender
computes the RCS on the full SCHC Packet, and that the receiver compares it
with the RCS computed after reassembly. A Profile specifies how the integrity
is checked.</t>
          <t>The algorithm is given by the <tt>rcs-algorithm</tt> leaf, of type
<tt>rcs-algorithm-type</tt>, and also defines the size of the RCS field.
<xref target="RFC8724"/> recommends the CRC32 of the Ethernet standard as the default
algorithm, identified by <tt>rcs-crc32</tt> (32 bits), which is the default value of
the leaf. The naming convention is <tt>rcs-</tt> followed by the algorithm name. New
algorithms are defined by deriving new identities from
<tt>rcs-algorithm-base-type</tt> (see <xref target="Fig-identityref"/>).</t>
          <t>A Profile can use another kind of RCS. For instance, SCHC over Sigfox
<xref target="RFC9442"/> uses an RCS which carries the number of fragments in the last
window, including the All-1 fragment, instead of a check computed on the SCHC
Packet. This RCS is identified by <tt>rcs-frag-count</tt>. Its size depends on the
header format (3 to 5 bits) and is the same as the size of the FCN field, set
by the <tt>fcn-size</tt> leaf of the Rule.</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
behavior:</t>
          <ul spacing="normal">
            <li>
              <t><tt>all-1-data-no</tt>: The last fragment contains no data, just the RCS.</t>
            </li>
            <li>
              <t><tt>all-1-data-yes</tt>: The last fragment includes a single tile and the RCS.</t>
            </li>
            <li>
              <t><tt>all-1-data-sender-choice</tt>: The last fragment may or may not contain a single tile. The receiver can detect if a tile is present.</t>
            </li>
          </ul>
          <t>The naming convention is <tt>all-1-data-</tt> followed by the behavior identifier.</t>
        </section>
        <section anchor="acknowledgment-behavior">
          <name>Acknowledgment Behavior</name>
          <t>The acknowledgment fragment header goes in the opposite direction of data. <xref target="RFC8724"/> defines the header, which is composed of the following (see <xref target="Fig-frag-ack"/>):</t>
          <ul spacing="normal">
            <li>
              <t>a DTag (if present).</t>
            </li>
            <li>
              <t>a mandatory window, as in the data fragment.</t>
            </li>
            <li>
              <t>a C bit giving the status of RCS validation.  In case of failure, a bitmap follows, indicating the received tile.</t>
            </li>
          </ul>
          <figure anchor="Fig-frag-ack">
            <name>Acknowledgment Fragment Header for RFC 8724</name>
            <artwork type="ascii-art"><![CDATA[
|--- SCHC ACK Header ----|
         |-- T --|-M-| 1 |
+-- ... -+- ... -+---+---+~~~~~~~~~~~~~~~~~~
| RuleID |  DTag | W |C=1| padding as needed                (success)
+-- ... -+- ... -+---+---+~~~~~~~~~~~~~~~~~~

+-- ... -+- ... -+---+---+------ ... ------+~~~~~~~~~~~~~~~
| RuleID |  DTag | W |C=0|Compressed Bitmap| pad. as needed (failure)
+-- ... -+- ... -+---+---+------ ... ------+~~~~~~~~~~~~~~~
]]></artwork>
          </figure>
          <t>For ACK-on-Error, SCHC defines when an acknowledgment can be sent. This can be at any time defined by the Layer 2, at the end of a window (FCN all-0),
or as a response to receiving the last fragment (FCN all-1). The naming convention is <tt>ack-behavior</tt> followed by the algorithm name.</t>
          <t>The SCHC Compound ACK <xref target="RFC9441"/> allows the bitmaps of several windows in a
single SCHC ACK message (<tt>bitmap-format</tt> leaf). Only the last bitmap can be
compressed, and the <tt>last-bitmap-compression</tt> leaf disables its compression.
These leaves are defined by the module of <xref target="RFC9441"/>, which augments this
data model (see <xref target="fragmentation-rule"/>).</t>
        </section>
        <section anchor="timer-values">
          <name>Timer Values</name>
          <t>The state machine requires some common values to handle fragmentation correctly.</t>
          <ul spacing="normal">
            <li>
              <t>The Retransmission Timer gives the duration before sending an ACK request (cf. <xref section="8.2.2.4" sectionFormat="of" target="RFC8724"/>). If specified, the value MUST be strictly positive.</t>
            </li>
            <li>
              <t>The Inactivity Timer gives  the duration before aborting a fragmentation session (cf.  <xref section="8.2.2.4" sectionFormat="of" target="RFC8724"/>). The value 0 explicitly indicates that this timer is disabled.</t>
            </li>
          </ul>
          <t><xref target="RFC8724"/> does not specify any range for these timers. <xref target="RFC9011"/> recommends a duration of 12 hours. In fact, the value range should be between milliseconds for real-time systems to several days for worse-than-best-effort systems. To allow a large range of applications, two parameters must be specified:</t>
          <ul spacing="normal">
            <li>
              <t>the duration of a tick. It is computed by this formula: 2<sup>tick-duration</sup>/10<sup>6</sup>. When tick-duration is set to 0, the unit is the microsecond. The default value of 20 leads to a unit of 1.048575 seconds. A value of 32 leads to a tick-duration of about 1 hour 11 minutes.</t>
            </li>
            <li>
              <t>the number of ticks in the predefined unit. With the default tick-duration value of 20, the timers can cover a range between 1.0 second and 19 hours, as recommended in <xref target="RFC9011"/>.</t>
            </li>
          </ul>
        </section>
        <section anchor="fragmentation-parameter">
          <name>Fragmentation Parameter</name>
          <t>The SCHC fragmentation protocol specifies the number of attempts before aborting through the parameter:</t>
          <ul spacing="normal">
            <li>
              <t><tt>max-ack-requests</tt>  (cf. <xref section="8.2.2.4" sectionFormat="of" target="RFC8724"/>)</t>
            </li>
          </ul>
        </section>
        <section anchor="layer-2-parameters">
          <name>Layer 2 Parameters</name>
          <t>The data model includes two parameters needed for fragmentation:</t>
          <ul spacing="normal">
            <li>
              <t><tt>l2-word-size</tt>: <xref target="RFC8724"/> base fragmentation, in bits, on a Layer 2 Word that can be of any length. The default value is 8 and corresponds
to the default value for the byte-aligned Layer 2. A value of 1 will indicate that there is no alignment and no need for padding.</t>
            </li>
            <li>
              <t><tt>maximum-packet-size</tt>: defines the maximum size of an uncompressed datagram. By default, the value is set to 1280 bytes.</t>
            </li>
          </ul>
          <t>They are defined as unsigned integers; see <xref target="annexA"/>.</t>
        </section>
      </section>
    </section>
    <section anchor="rule-definition">
      <name>Rule Definition</name>
      <t>A Rule is identified by a unique Rule Identifier (RuleID) comprising both a RuleID value and a RuleID length.
The YANG grouping <tt>rule-id-type</tt> defines the structure used to represent a RuleID. A length of 0 is allowed to represent an implicit Rule.</t>
      <t>Three natures of Rules are defined in <xref target="RFC8724"/>:</t>
      <ul spacing="normal">
        <li>
          <t>Compression: A compression Rule is associated with the RuleID.</t>
        </li>
        <li>
          <t>No-compression: This identifies the default Rule used to send a packet integrally when no-compression Rule was found (see <xref section="6" sectionFormat="of" target="RFC8724"/>).</t>
        </li>
        <li>
          <t>Fragmentation: Fragmentation parameters are associated with the RuleID. Fragmentation is optional, and the feature <tt>fragmentation</tt> should be set.</t>
        </li>
      </ul>
      <t><xref target="I-D.toutain-schc-coreconf-management"/> defines a fourth nature:</t>
      <ul spacing="normal">
        <li>
          <t>Management: A management Rule carries the management traffic between SCHC
instances. It uses the compression Rule structure, and only the
<tt>entry-universal</tt> list. Management is optional, and the feature
<tt>management</tt> should be set.</t>
        </li>
      </ul>
      <t>The naming convention is <tt>nature-</tt> followed by the nature identifier.</t>
      <section anchor="compression-rule">
        <name>Compression Rule</name>
        <t>A compression Rule is composed of entries describing its processing. An entry
contains all the information defined in <xref target="Fig-ctxt"/> with the types defined
above.</t>
        <t>One main change in this data model is the deprecation of the
<tt>compression-content</tt> grouping, used by the <tt>compression</tt> case, in favor of
the <tt>compression-content-universal</tt> grouping, used by the
<tt>compression-universal</tt> case. <xref target="I-D.ietf-schc-universal-option"/> explains this
change.</t>
        <t>Universal Option gives more flexibility in the management of the options.
Defining a new SCHC Field ID identityref for each option requires the SCHC
data model to be updated each time a protocol defines a new option as a Field ID. With
Universal Options, only a Space ID identity is defined in the SCHC data model,
and the entry carries the option number used by the protocol (see
<xref target="convention-for-space-identifier"/>). Any new option defined by a protocol can
then be added to a Rule without updating the data model.</t>
        <t>To avoid long keys to access a specific entry, the <tt>entry-index</tt> leaf is the
key of the <tt>entry-universal</tt> list, instead of the tuple: Field ID,  Field Position
and Direction Indicator. It also guarantees the order of the entries
inside a Rule, an order reinforced by the "ordered-by user" statement of the
list. Each entry of <tt>entry-universal</tt> represents a line in <xref target="Fig-ctxt"/>, and
contains either a <tt>field-id</tt> or a <tt>space-id</tt> with its <tt>universal-value</tt>.</t>
        <t>The Field Length also includes a parameter, the <tt>field-length-value</tt> leaf,
used by the new functions <tt>fl-length-bytes</tt> and <tt>fl-length-bits</tt>, which
generalize functions such as <tt>fl-token-length</tt> (see
<xref target="convention-for-field-length"/>).</t>
        <t>This change also deprecates the per-option CoAP Field IDs, since a CoAP option
can be represented as a Universal Option with the tuple (<tt>space-id-coap</tt>,
option number). Only the Field IDs describing the sub-fields of a single CoAP
option, for OSCORE and KUDOS, remain current: they describe the parts of the
option rather than stand for an arbitrary one, and use <tt>fid-coap-option</tt> as
their base.</t>
        <t>A deprecated definition is still valid: following <xref section="7.21.2" sectionFormat="of" target="RFC7950"/>, it may still be implemented, to keep interoperability with existing
implementations. The Rules defined with the data model of <xref target="RFC9363"/> therefore
remain valid.</t>
        <t>However, the deprecated per-option CoAP Field IDs MUST NOT be used in the
<tt>entry-universal</tt> list: a CoAP option is then represented by <tt>space-id-coap</tt>
and its option number. They remain usable only in the deprecated <tt>entry</tt> list.</t>
        <t>The identities defined by this revision of the data model (Field IDs, Field
Length functions, Matching Operators, and Compression Decompression Actions)
MUST NOT be used in the deprecated <tt>entry</tt> list, which is only kept for the
Rules defined with <xref target="RFC9363"/>.</t>
        <t>Some checks are performed on the values, both in <tt>entry-universal</tt> and in the
deprecated <tt>entry</tt> list:</t>
        <ul spacing="normal">
          <li>
            <t>When MO is ignore, no Target Value is needed; for other MOs, there MUST be a
Target Value present.</t>
          </li>
          <li>
            <t>When MSB MO is specified, the <tt>matching-operator-value</tt> must be present.</t>
          </li>
          <li>
            <t>When the CDA is not-sent, LSB, or mapping-sent, there MUST be a Target Value
present; it is not needed for value-sent, compute, DevIID, AppIID,
compress-sent, and rev-compress-sent.</t>
          </li>
          <li>
            <t>The <tt>entry-universal</tt> list is only used in Rules whose nature is
<tt>nature-compression</tt> or <tt>nature-management</tt>; the deprecated <tt>entry</tt> list is
only used in Rules whose nature is <tt>nature-compression</tt>.</t>
          </li>
        </ul>
        <t>The following checks only apply to the <tt>entry-universal</tt> list:</t>
        <ul spacing="normal">
          <li>
            <t>When the Field Length is <tt>fl-length-bytes</tt> or <tt>fl-length-bits</tt>, the
<tt>field-length-value</tt> leaf MUST be present.</t>
          </li>
          <li>
            <t>The deprecated per-option CoAP Field IDs MUST NOT be used as <tt>field-id</tt>.</t>
          </li>
        </ul>
      </section>
      <section anchor="fragmentation-rule">
        <name>Fragmentation Rule</name>
        <t>A fragmentation Rule is composed of entries describing the protocol behavior.
Some of them are numerical entries, others are identifiers defined in
<xref target="frag_types"/>.</t>
        <t>The fragmentation Rule is kept unchanged from <xref target="RFC9363"/>. The SCHC Compound
ACK <xref target="RFC9441"/> augments it to allow several bitmaps in a SCHC ACK message.</t>
      </section>
      <section anchor="management-rule">
        <name>Management Rule</name>
        <t>Management Rules are defined in <xref target="I-D.toutain-schc-coreconf-management"/>. They
allow a SCHC instance to modify the Set of Rules they belong to, except the
origin Rules, which include the management Rules themselves (see below). A
management Rule uses the compression Rule structure, with the <tt>entry-universal</tt>
list, and the <tt>nature-management</tt> nature.</t>
        <t><xref target="I-D.toutain-schc-coreconf-management"/> also introduces a Guard period,
during which a deleted Rule ID MUST NOT be reused. This information is global
to all the Rules: the <tt>guard-period</tt> container is carried in the <tt>context</tt>
container, and not in a Rule. It uses the same coding as the fragmentation
timers, with <tt>ticks-duration</tt> and <tt>ticks-numbers</tt> (see <xref target="timer-values"/>).</t>
        <t><xref target="I-D.toutain-schc-coreconf-management"/> also introduces a Rule status, to
indicate whether a Rule can be used or not. The <tt>rule-status</tt> leaf is only
present when the <tt>management</tt> feature is activated. Its type is
<tt>status-type</tt>, and its values are:</t>
        <ul spacing="normal">
          <li>
            <t><tt>status-origin</tt>: the Rule belongs to the initial Set of Rules, provisioned
before the start of the SCHC instance. It cannot be modified or deleted by
management, and it is the only kind of Rule kept when the context is reset.
This is the default value: a provisioned Rule without <tt>rule-status</tt> is an
origin Rule, while a Rule created by management always carries its status.</t>
          </li>
          <li>
            <t><tt>status-valid</tt>: the Rule belongs to the Set of Rules and can be used. Only
the Rules with this status, or with <tt>status-origin</tt>, which is derived from
it, can be used for compression, decompression, fragmentation, and
reassembly.</t>
          </li>
          <li>
            <t><tt>status-candidate</tt>: the Rule has been created by management, but the other
end has not validated it yet. It cannot be used.</t>
          </li>
          <li>
            <t><tt>status-invalid</tt>: the Rule has been deleted by management, and the Guard
period is running. It cannot be used, and its Rule ID cannot be reused.</t>
          </li>
          <li>
            <t><tt>status-free</tt>: the Rule ID can be used to create a new Rule. A Rule with
this status is processed as if it did not exist in the Set of Rules.</t>
          </li>
        </ul>
        <t>Management Rules are origin Rules: their status is always <tt>status-origin</tt>.</t>
        <t>The naming convention is <tt>status-</tt> followed by the status name.</t>
        <t>The value of <tt>rule-status</tt> is a local view of the state of the management
protocol machine of the node for this Rule. It is managed locally by the node,
and any value sent by the other end is overwritten. In particular,
<tt>status-origin</tt> is only set by provisioning, never by management. The
procedures, including the reset of the context, are described in
<xref target="I-D.toutain-schc-coreconf-management"/>.</t>
      </section>
      <section anchor="yang-tree">
        <name>YANG Tree</name>
        <t>The YANG data model described in this document conforms to the
Network Management Datastore Architecture defined in <xref target="RFC8342"/>.</t>
        <figure anchor="Fig-model-overview">
          <name>Overview of the SCHC Data Model</name>
          <sourcecode type="yangtree"><![CDATA[
module: ietf-schc
  +--rw context {management}?
  |  +--rw guard-period
  |     +--rw ticks-duration?   uint8
  |     +--rw ticks-numbers?    uint16
  +--rw schc
     +--rw rule* [rule-id-value rule-id-length]
        +--rw rule-id-value                   uint32
        +--rw rule-id-length                  uint8
        +--rw rule-nature                     nature-type
        +--rw rule-status?                    status-type
        |       {management}?
        +--rw (nature)?
           +--:(fragmentation) {fragmentation}?
           |  +--rw fragmentation-mode
           |  |       schc:fragmentation-mode-type
           |  +--rw l2-word-size?             uint8
           |  +--rw direction                 schc:di-type
           |  +--rw dtag-size?                uint8
           |  +--rw w-size?                   uint8
           |  +--rw fcn-size                  uint8
           |  +--rw rcs-algorithm?            rcs-algorithm-type
           |  +--rw maximum-packet-size?      uint16
           |  +--rw window-size?              uint16
           |  +--rw max-interleaved-frames?   uint8
           |  +--rw inactivity-timer
           |  |  +--rw ticks-duration?   uint8
           |  |  +--rw ticks-numbers?    uint16
           |  +--rw retransmission-timer
           |  |  +--rw ticks-duration?   uint8
           |  |  +--rw ticks-numbers?    uint16
           |  +--rw max-ack-requests?         uint8
           |  +--rw (mode)?
           |     +--:(no-ack)
           |     +--:(ack-always)
           |     +--:(ack-on-error)
           |        +--rw tile-size?          uint8
           |        +--rw tile-in-all-1?      schc:all-1-data-type
           |        +--rw ack-behavior?       schc:ack-behavior-type
           x--:(compression) {compression}?
           |  x--rw entry*
           |          [field-id field-position direction-indicator]
           |     +--rw field-id                    schc:fid-type
           |     +--rw field-length                union
           |     +--rw field-position              uint8
           |     +--rw direction-indicator         schc:di-type
           |     +--rw target-value* [index]
           |     |  +--rw index    uint16
           |     |  +--rw value?   binary
           |     +--rw matching-operator           schc:mo-type
           |     +--rw matching-operator-value* [index]
           |     |  +--rw index    uint16
           |     |  +--rw value?   binary
           |     +--rw comp-decomp-action          schc:cda-type
           |     +--rw comp-decomp-action-value* [index]
           |        +--rw index    uint16
           |        +--rw value?   binary
           +--:(compression-universal) {compression or management}?
              +--rw entry-universal* [entry-index]
              |  +--rw entry-index                 uint16
              |  +--rw (field-or-space)
              |  |  +--:(regular-field)
              |  |  |  +--rw field-id              schc:fid-type
              |  |  +--:(universal-option)
              |  |     +--rw space-id              schc:space-id-type
              |  |     +--rw universal-value       uint64
              |  +--rw field-length                union
              |  +--rw field-length-value?         uint16
              |  +--rw field-position              uint8
              |  +--rw direction-indicator         schc:di-type
              |  +--rw target-value* [index]
              |  |  +--rw index    uint16
              |  |  +--rw value?   binary
              |  +--rw matching-operator           schc:mo-type
              |  +--rw matching-operator-value* [index]
              |  |  +--rw index    uint16
              |  |  +--rw value?   binary
              |  +--rw comp-decomp-action          schc:cda-type
              |  +--rw comp-decomp-action-value* [index]
              |     +--rw index    uint16
              |     +--rw value?   binary
              +--rw action?                   action-type
              +--rw action-value* [index]
                 +--rw index    uint16
                 +--rw value?   binary
]]></sourcecode>
        </figure>
      </section>
    </section>
    <section anchor="annexA">
      <name>YANG Data Model</name>
      <figure anchor="Fig-schc">
        <name>SCHC YANG Data Model</name>
        <sourcecode type="yang" name="ietf-schc@2026-10-27.yang" markers="true"><![CDATA[
module ietf-schc {
  yang-version 1.1;
  namespace "urn:ietf:params:xml:ns:yang:ietf-schc";
  prefix schc;

  organization
    "IETF IPv6 over Low Power Wide-Area Networks (lpwan) Working
     Group";
  contact
    "WG Web:   <https://datatracker.ietf.org/wg/lpwan/about/>
     WG List:  <mailto:lp-wan@ietf.org>
     Editor:   Laurent Toutain
       <mailto:laurent.toutain@imt-atlantique.fr>
     Editor:   Ana Minaburo
       <mailto:ana@ackl.io>";
  description
    "Copyright (c) 2023 IETF Trust and the persons identified as
     authors of the code.  All rights reserved.
     Redistribution and use in source and binary forms, with or
     without modification, is permitted pursuant to, and subject to
     the license terms contained in, the Revised BSD License set
     forth in Section 4.c of the IETF Trust's Legal Provisions
     Relating to IETF Documents
     (https://trustee.ietf.org/license-info).
     This version of this YANG module is part of RFC 9363
     (https://www.rfc-editor.org/info/rfc9363); see the RFC itself
     for full legal notices.
     The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL
     NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED',
     'MAY', and 'OPTIONAL' in this document are to be interpreted as
     described in BCP 14 (RFC 2119) (RFC 8174) when, and only when,
     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.

     This module is a YANG data model for SCHC Rules (RFCs 8724 and
     8824).  RFC 8724 describes compression Rules in an abstract
     way through a table.
 |-----------------------------------------------------------------|
 |  (FID)            Rule 1                                        |
 |+-------+--+--+--+------------+-----------------+---------------+|
 ||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 N|FL|FP|DI|Target Value|Matching Operator|Comp/Decomp Act||
 |+-------+--+--+--+------------+-----------------+---------------+|
 |-----------------------------------------------------------------|
     This module specifies a global data model that can be used for
     Rule exchanges or modification.  It specifies both the data
     model format and the global identifiers used to describe some
     operations in fields.
     This data model applies to both compression and fragmentation.";

  revision 2026-10-27 {
    description
      "This revision updates the data model of RFC 9363:
       - Compression Rule entries: the 'entry-universal' list, keyed
         by 'entry-index', replaces the 'entry' list. An entry
         contains either a 'field-id' or a 'space-id' with its
         'universal-value', and a 'field-length-value' leaf. The
         'entry' list, the 'compression-content' and
         'compression-rule-entry' groupings, and the 'compression'
         case are deprecated.
       - Universal Options: new 'space-field-id-base-type',
         'space-id-base-type' and 'space-id-coap' identities, and
         'space-field-id-type' and 'space-id-type' typedefs. The
         per-option CoAP Field IDs and 'fid-oscore-base-type' are
         deprecated.
       - New Field IDs: OSCORE and KUDOS sub-fields, ICMPv6 fields,
         'fid-unused' and 'fid-payload'.
       - New Field Length functions: 'fl-length-bytes',
         'fl-length-bits', 'fl-variable-bits' and 'fl-remaining'.
       - New Matching Operators 'mo-rule-match' and
         'mo-rev-rule-match', and Compression Decompression Actions
         'cda-compress-sent' and 'cda-rev-compress-sent'.
       - Action: 'action' leaf and 'action-value' list in the
         compression Rule, 'action-type' typedef and
         'action-base-type', 'action-forward' and
         'action-proxy-ping' identities.
       - Rule management: 'management' feature, 'nature-management'
         nature, 'context' container with the 'guard-period' timer,
         and 'rule-status' leaf with the 'status-type' typedef and
         its identities.
       - Constraints in 'entry-universal': 'field-length-value' is
         required by 'fl-length-bytes' and 'fl-length-bits', and the
         per-option CoAP Field IDs are rejected. The Target Value is
         no longer required for 'cda-compress-sent' and
         'cda-rev-compress-sent'.
       - New RCS algorithm: 'rcs-frag-count' identity, for the RCS
         of SCHC over Sigfox (RFC 9442).";
    reference
      "RFC XXXX A YANG Data Model for Static Context Header
                Compression (SCHC)";
  }

  revision 2023-03-01 {
    description
      "Initial version from RFC 9363.";
    reference
      "RFC 9363 A YANG Data Model for Static Context Header
                Compression (SCHC)";
  }


  feature compression {
    description
      "SCHC compression capabilities are taken into account.";
  }

  feature fragmentation {
    description
      "SCHC fragmentation capabilities are taken into account.";
  }

  feature management {
    description
      "SCHC compression capabilities for rule management.";
  }

  // -------------------------
  //  Field ID type definition
  //--------------------------
  // generic value TV definition

  identity space-field-id-base-type {
    description
      "Field ID base type for all fields.";
  }

  identity fid-base-type {
    base space-field-id-base-type;
    description
      "Field ID base type for all fields.";
  }

 identity fid-unused {
    base fid-base-type;
    description
      "Padding field in any protocol.";
  }

  identity fid-payload {
    base fid-base-type;
    description
      "Payload field in any protocol. This field contains the
       remaining
       bytes after the header fields.";
  }

  identity fid-ipv6-base-type {
    base fid-base-type;
    description
      "Field ID base type for IPv6 headers described in RFC 8200.";
    reference
      "RFC 8200 Internet Protocol, Version 6 (IPv6) Specification";
  }

  identity fid-ipv6-version {
    base fid-ipv6-base-type;
    description
      "IPv6 version field.";
    reference
      "RFC 8200 Internet Protocol, Version 6 (IPv6) Specification";
  }

  identity fid-ipv6-trafficclass {
    base fid-ipv6-base-type;
    description
      "IPv6 Traffic Class field.";
    reference
      "RFC 8200 Internet Protocol, Version 6 (IPv6) Specification";
  }

  identity fid-ipv6-trafficclass-ds {
    base fid-ipv6-trafficclass;
    description
      "IPv6 Traffic Class field: Diffserv field.";
    reference
      "RFC 8200 Internet Protocol, Version 6 (IPv6) Specification,
       RFC 3168 The Addition of Explicit Congestion Notification
                (ECN) to IP";
  }

  identity fid-ipv6-trafficclass-ecn {
    base fid-ipv6-trafficclass;
    description
      "IPv6 Traffic Class field: ECN field.";
    reference
      "RFC 8200 Internet Protocol, Version 6 (IPv6) Specification,
       RFC 3168 The Addition of Explicit Congestion Notification
                (ECN) to IP";
  }

  identity fid-ipv6-flowlabel {
    base fid-ipv6-base-type;
    description
      "IPv6 Flow Label field.";
    reference
      "RFC 8200 Internet Protocol, Version 6 (IPv6) Specification";
  }

  identity fid-ipv6-payload-length {
    base fid-ipv6-base-type;
    description
      "IPv6 Payload Length field.";
    reference
      "RFC 8200 Internet Protocol, Version 6 (IPv6) Specification";
  }

  identity fid-ipv6-nextheader {
    base fid-ipv6-base-type;
    description
      "IPv6 Next Header field.";
    reference
      "RFC 8200 Internet Protocol, Version 6 (IPv6) Specification";
  }

  identity fid-ipv6-hoplimit {
    base fid-ipv6-base-type;
    description
      "IPv6 Next Header field.";
    reference
      "RFC 8200 Internet Protocol, Version 6 (IPv6) Specification";
  }

  identity fid-ipv6-devprefix {
    base fid-ipv6-base-type;
    description
      "Corresponds to either the source address or the destination
       address prefix of RFC 8200 depending on whether it is an
       uplink or a downlink message.";
    reference
      "RFC 8200 Internet Protocol, Version 6 (IPv6) Specification";
  }

  identity fid-ipv6-deviid {
    base fid-ipv6-base-type;
    description
      "Corresponds to either the source address or the destination
       address IID of RFC 8200 depending on whether it is an uplink
       or a downlink message.";
    reference
      "RFC 8200 Internet Protocol, Version 6 (IPv6) Specification";
  }

  identity fid-ipv6-appprefix {
    base fid-ipv6-base-type;
    description
      "Corresponds to either the source address or the destination
       address prefix of RFC 8200 depending on whether it is an
       uplink or a downlink message.";
    reference
      "RFC 8200 Internet Protocol, Version 6 (IPv6) Specification";
  }

  identity fid-ipv6-appiid {
    base fid-ipv6-base-type;
    description
      "Corresponds to either the source address or the destination
       address IID of RFC 8200 depending on whether it is an uplink
       or a downlink message.";
    reference
      "RFC 8200 Internet Protocol, Version 6 (IPv6) Specification";
  }

  identity fid-udp-base-type {
    base fid-base-type;
    description
      "Field ID base type for UDP headers described in RFC 768.";
    reference
      "RFC 768 User Datagram Protocol";
  }

  identity fid-udp-dev-port {
    base fid-udp-base-type;
    description
      "UDP source or destination port, if uplink or downlink
       communication, respectively.";
    reference
      "RFC 768 User Datagram Protocol";
  }

  identity fid-udp-app-port {
    base fid-udp-base-type;
    description
      "UDP destination or source port, if uplink or downlink
       communication, respectively.";
    reference
      "RFC 768 User Datagram Protocol";
  }

  identity fid-udp-length {
    base fid-udp-base-type;
    description
      "UDP length.";
    reference
      "RFC 768 User Datagram Protocol";
  }

  identity fid-udp-checksum {
    base fid-udp-base-type;
    description
      "UDP length.";
    reference
      "RFC 768 User Datagram Protocol";
  }

  identity fid-coap-base-type {
    base fid-base-type;
    description
      "Field ID base type for UDP headers described.";
    reference
      "RFC 7252 The Constrained Application Protocol (CoAP)";
  }

  identity fid-coap-version {
    base fid-coap-base-type;
    description
      "CoAP version.";
    reference
      "RFC 7252 The Constrained Application Protocol (CoAP)";
  }

  identity fid-coap-type {
    base fid-coap-base-type;
    description
      "CoAP type.";
    reference
      "RFC 7252 The Constrained Application Protocol (CoAP)";
  }

  identity fid-coap-tkl {
    base fid-coap-base-type;
    description
      "CoAP token length.";
    reference
      "RFC 7252 The Constrained Application Protocol (CoAP)";
  }

  identity fid-coap-code {
    base fid-coap-base-type;
    description
      "CoAP code.";
    reference
      "RFC 7252 The Constrained Application Protocol (CoAP)";
  }

  identity fid-coap-code-class {
    base fid-coap-code;
    description
      "CoAP code class.";
    reference
      "RFC 7252 The Constrained Application Protocol (CoAP)";
  }

  identity fid-coap-code-detail {
    base fid-coap-code;
    description
      "CoAP code detail.";
    reference
      "RFC 7252 The Constrained Application Protocol (CoAP)";
  }

  identity fid-coap-mid {
    base fid-coap-base-type;
    description
      "CoAP message ID.";
    reference
      "RFC 7252 The Constrained Application Protocol (CoAP)";
  }

  identity fid-coap-token {
    base fid-coap-base-type;
    description
      "CoAP token.";
    reference
      "RFC 7252 The Constrained Application Protocol (CoAP)";
  }

  identity fid-coap-option {
    base fid-coap-base-type;
    description
      "Generic CoAP option.";
    reference
      "RFC 7252 The Constrained Application Protocol (CoAP)";
  }

  identity fid-coap-option-if-match {
    base fid-coap-option;
    status deprecated;
    description
      "CoAP option If-Match. Deprecated in favor of Universal
       Options (space-id-coap / universal-value = 1).";
    reference
      "RFC 7252 The Constrained Application Protocol (CoAP)";
  }

  identity fid-coap-option-uri-host {
    base fid-coap-option;
    status deprecated;
    description
      "CoAP option Uri-Host. Deprecated in favor of Universal
       Options (space-id-coap / universal-value = 3).";
    reference
      "RFC 7252 The Constrained Application Protocol (CoAP)";
  }

  identity fid-coap-option-etag {
    base fid-coap-option;
    status deprecated;
    description
      "CoAP option ETag. Deprecated in favor of Universal Options
       (space-id-coap / universal-value = 4).";
    reference
      "RFC 7252 The Constrained Application Protocol (CoAP)";
  }

  identity fid-coap-option-if-none-match {
    base fid-coap-option;
    status deprecated;
    description
      "CoAP option if-none-match. Deprecated in favor of Universal
       Options (space-id-coap / universal-value = 5).";
    reference
      "RFC 7252 The Constrained Application Protocol (CoAP)";
  }

  identity fid-coap-option-observe {
    base fid-coap-option;
    status deprecated;
    description
      "CoAP option Observe. Deprecated in favor of Universal
       Options (space-id-coap / universal-value = 6).";
    reference
      "RFC 7641 Observing Resources in the Constrained Application
                Protocol (CoAP)";
  }

  identity fid-coap-option-uri-port {
    base fid-coap-option;
    status deprecated;
    description
      "CoAP option Uri-Port. Deprecated in favor of Universal
       Options (space-id-coap / universal-value = 7).";
    reference
      "RFC 7252 The Constrained Application Protocol (CoAP)";
  }

  identity fid-coap-option-location-path {
    base fid-coap-option;
    status deprecated;
    description
      "CoAP option Location-Path. Deprecated in favor of Universal
       Options (space-id-coap / universal-value = 8).";
    reference
      "RFC 7252 The Constrained Application Protocol (CoAP)";
  }

  identity fid-coap-option-uri-path {
    base fid-coap-option;
    status deprecated;
    description
      "CoAP option Uri-Path. Deprecated in favor of Universal
       Options (space-id-coap / universal-value = 11).";
    reference
      "RFC 7252 The Constrained Application Protocol (CoAP)";
  }

  identity fid-coap-option-content-format {
    base fid-coap-option;
    status deprecated;
    description
      "CoAP option Content Format. Deprecated in favor of Universal
       Options (space-id-coap / universal-value = 12).";
    reference
      "RFC 7252 The Constrained Application Protocol (CoAP)";
  }

  identity fid-coap-option-max-age {
    base fid-coap-option;
    status deprecated;
    description
      "CoAP option Max-Age. Deprecated in favor of Universal
       Options (space-id-coap / universal-value = 14).";
    reference
      "RFC 7252 The Constrained Application Protocol (CoAP)";
  }

  identity fid-coap-option-uri-query {
    base fid-coap-option;
    status deprecated;
    description
      "CoAP option Uri-Query. Deprecated in favor of Universal
       Options (space-id-coap / universal-value = 15).";
    reference
      "RFC 7252 The Constrained Application Protocol (CoAP)";
  }

  identity fid-coap-option-accept {
    base fid-coap-option;
    status deprecated;
    description
      "CoAP option Accept. Deprecated in favor of Universal
       Options (space-id-coap / universal-value = 17).";
    reference
      "RFC 7252 The Constrained Application Protocol (CoAP)";
  }

  identity fid-coap-option-location-query {
    base fid-coap-option;
    status deprecated;
    description
      "CoAP option Location-Query. Deprecated in favor of Universal
       Options (space-id-coap / universal-value = 20).";
    reference
      "RFC 7252 The Constrained Application Protocol (CoAP)";
  }

  identity fid-coap-option-block2 {
    base fid-coap-option;
    status deprecated;
    description
      "CoAP option Block2. Deprecated in favor of Universal
       Options (space-id-coap / universal-value = 23).";
    reference
      "RFC 7959 Block-Wise Transfers in the Constrained Application
                Protocol (CoAP)";
  }

  identity fid-coap-option-block1 {
    base fid-coap-option;
    status deprecated;
    description
      "CoAP option Block1. Deprecated in favor of Universal
       Options (space-id-coap / universal-value = 27).";
    reference
      "RFC 7959 Block-Wise Transfers in the Constrained Application
                Protocol (CoAP)";
  }

  identity fid-coap-option-size2 {
    base fid-coap-option;
    status deprecated;
    description
      "CoAP option Size2. Deprecated in favor of Universal
       Options (space-id-coap / universal-value = 28).";
    reference
      "RFC 7959 Block-Wise Transfers in the Constrained Application
                Protocol (CoAP)";
  }

  identity fid-coap-option-proxy-uri {
    base fid-coap-option;
    status deprecated;
    description
      "CoAP option Proxy-Uri. Deprecated in favor of Universal
       Options (space-id-coap / universal-value = 35).";
    reference
      "RFC 7252 The Constrained Application Protocol (CoAP)";
  }

  identity fid-coap-option-proxy-scheme {
    base fid-coap-option;
    status deprecated;
    description
      "CoAP option Proxy-Scheme. Deprecated in favor of Universal
       Options (space-id-coap / universal-value = 39).";
    reference
      "RFC 7252 The Constrained Application Protocol (CoAP)";
  }

  identity fid-coap-option-size1 {
    base fid-coap-option;
    status deprecated;
    description
      "CoAP option Size1. Deprecated in favor of Universal
       Options (space-id-coap / universal-value = 60).";
    reference
      "RFC 7252 The Constrained Application Protocol (CoAP)";
  }

  identity fid-coap-option-no-response {
    base fid-coap-option;
    status deprecated;
    description
      "CoAP option No response. Deprecated in favor of Universal
       Options (space-id-coap / universal-value = 258).";
    reference
      "RFC 7967 Constrained Application Protocol (CoAP) Option for
                No Server Response";
  }

  identity fid-oscore-base-type {
    base fid-coap-option;
    status deprecated;
    description
      "OSCORE options (RFC8613) split in suboptions. Deprecated: this
       identity is not used as a base, the OSCORE suboption Field IDs
       derive from fid-coap-option.";
    reference
      "RFC 8824 Static Context Header Compression (SCHC) for the
                Constrained Application Protocol (CoAP)";
  }

  identity fid-coap-option-oscore-flags {
    base fid-coap-option;
    description
      "CoAP option OSCORE flags.";
    reference
      "RFC 8824 Static Context Header Compression (SCHC) for the
                Constrained Application Protocol (CoAP) (see
                Section 6.4)";
  }

   identity fid-coap-option-oscore-flags-flagbits {
    base fid-coap-option-oscore-flags;
    description
      "First 5 bits of the OSCORE flags field forming flags
       subfield.";
    reference
      "RFC 8824 Static Context Header Compression (SCHC) for the
                Constrained Application Protocol (CoAP) (see
                Section 6.4)";
  }

  identity fid-coap-option-oscore-flags-n {
    base fid-coap-option-oscore-flags;
    description
      "last 3 bits of the OSCORE flags field giving the length
      of Partial IV.";
    reference
      "RFC 8824 Static Context Header Compression (SCHC) for the
                Constrained Application Protocol (CoAP) (see
                Section 6.4)";
  }


  identity fid-coap-option-oscore-piv {
    base fid-coap-option;
    description
      "CoAP option OSCORE Partial IV.";
    reference
      "RFC 8824 Static Context Header Compression (SCHC) for the
                Constrained Application Protocol (CoAP) (see
                Section 6.4)";
  }

  identity fid-coap-option-oscore-kid {
    base fid-coap-option;
    description
      "CoAP option OSCORE Key ID.";
    reference
      "RFC 8824 Static Context Header Compression (SCHC) for the
                Constrained Application Protocol (CoAP) (see
                Section 6.4)";
  }

  identity fid-coap-option-oscore-kidctx {
    base fid-coap-option;
    description
      "CoAP option OSCORE Key ID Context.";
    reference
      "RFC 8824 Static Context Header Compression (SCHC) for the
                Constrained Application Protocol (CoAP)(see
                Section 6.4)";
  }

  identity fid-coap-option-kudos-x {
    base fid-coap-option;
    description
      "x field contained in the kudos option defined in
      draft-ietf-core-oscore-key-update.";
    reference
      "draft-ietf-core-oscore-key-update";
  }

  identity fid-coap-option-kudos-x-flagbits {
    base fid-coap-option-kudos-x;
    description
      "4 first bits of the x field in the kudos option defined in
      draft-ietf-core-oscore-key-update.";
    reference
      "draft-ietf-core-oscore-key-update";
  }

  identity fid-coap-option-kudos-x-m {
    base fid-coap-option-kudos-x;
    description
      "4 last bits of the x field in the kudos option defined in
      draft-ietf-core-oscore-key-update.";
    reference
      "draft-ietf-core-oscore-key-update";
  }

  identity fid-coap-option-kudos-nonce {
    base fid-coap-option;
    description
      "CoAP option kudos carrying the nonce.";
    reference
      "draft-ietf-core-oscore-key-update";
  }


 identity fid-icmpv6-base-type {
   base schc:fid-base-type;
   description
     "Field IP base type for ICMPv6 headers described in RFC 4443";
   reference
     "RFC 4443   Internet Control Message Protocol (ICMPv6)
                 for the Internet Protocol Version 6 (IPv6)
                 Specification";
 }

  identity fid-icmpv6-type {
    base fid-icmpv6-base-type;
    description
      "ICMPv6 code field present in all ICMPv6 messages.";
 }

 identity fid-icmpv6-code {
   base fid-icmpv6-base-type;
   description
     "ICMPv6 code field present in all ICMPv6 messages.";
 }

 identity fid-icmpv6-checksum {
   base fid-icmpv6-base-type;
   description
     "ICMPv6 checksum field present in all ICMPv6 messages.";
 }

 identity fid-icmpv6-mtu {
   base fid-icmpv6-base-type;
   description
     "ICMPv6 MTU, present in Packet Too Big message.";
 }

 identity fid-icmpv6-pointer {
   base fid-icmpv6-base-type;
   description
     "ICMPv6 Pointer, present in Parameter Problem message.";
 }

 identity fid-icmpv6-identifier {
   base fid-icmpv6-base-type;
   description
     "ICMPv6 identifier field, present in Echo Request/Reply
     message.";
 }

 identity fid-icmpv6-sequence {
   base fid-icmpv6-base-type;
   description
     "ICMPv6 sequence number field, present in Echo Request/Reply
      message.";
 }

 identity fid-icmpv6-payload {
   base fid-icmpv6-base-type;
   description
     "ICMPv6 payload following ICMPv6 header.
      If payload is empty, this field exists with a length of 0.";
 }

  //----------------------------------
  // Universal Option space IDs
  //----------------------------------

  identity space-id-base-type {
    base schc:space-field-id-base-type;
    description
      "Base identity for a Universal Option space. Several
       protocols define options (e.g. CoAP); each such protocol
       is identified by an identity derived from this base type.";
  }

  identity space-id-coap {
    base space-id-base-type;
    description
      "Space ID identifying the CoAP option space.";
    reference
      "RFC 7252 The Constrained Application Protocol (CoAP)";
  }

  //----------------------------------
  // Field Length type definition
  //----------------------------------

  identity fl-base-type {
    description
      "Used to extend Field Length functions.";
  }

  identity fl-variable {
    base fl-base-type;
    description
      "Residue length in bytes is sent as defined for CoAP.";
    reference
      "RFC 8824 Static Context Header Compression (SCHC) for the
                Constrained Application Protocol (CoAP) (see
                Section 5.3)";
  }

 identity fl-variable-bits {
    base fl-base-type;
    description
      "Residue length in bits is sent as defined for CoAP.";
    reference
      "NOT YET DEFINED IN RFCs. This function is a generalization of
       fl-variable to support bit-level length definition.";
  }


  identity fl-token-length {
    base fl-base-type;
    description
      "Residue length in bytes is sent as defined for CoAP.";
    reference
      "RFC 8824 Static Context Header Compression (SCHC) for the
                Constrained Application Protocol (CoAP) (see
                Section 4.5)";
  }

  identity fl-length-bytes {
    base fl-base-type;

    description "This function return the length a field
    by its index in bytes. This is a generalation of
    fl-token-length.";
  }

  identity fl-length-bits {
    base fl-base-type;

    description "This function return the length in bits of a field
    by its index in bits. ";
  }

  identity fl-remaining {
    base fl-base-type;

    description
      "Field length is not explicitly carried in the Compression
       Residue.
      This function is used for a field that extends to the end of
      the
      SCHC packet, such as a trailing payload.";
}

  //---------------------------------
  // Direction Indicator type
  //---------------------------------

  identity di-base-type {
    description
      "Used to extend Direction Indicators.";
  }

  identity di-bidirectional {
    base di-base-type;
    description
      "Direction Indicator of bidirectionality.";
    reference
      "RFC 8724 SCHC: Generic Framework for Static Context
                Header Compression and Fragmentation (see
                Section 7.1)";
  }

  identity di-up {
    base di-base-type;
    description
      "Direction Indicator of uplink.";
    reference
      "RFC 8724 SCHC: Generic Framework for Static Context
                Header Compression and Fragmentation (see
                Section 7.1)";
  }

  identity di-down {
    base di-base-type;
    description
      "Direction Indicator of downlink.";
    reference
      "RFC 8724 SCHC: Generic Framework for Static Context
                Header Compression and Fragmentation (see
                Section 7.1)";
  }

  //----------------------------------
  // Matching Operator type definition
  //----------------------------------

  identity mo-base-type {
    description
      "Matching Operator: used in the Rule selection process
       to check if a Target Value matches the field's value.";
    reference
      "RFC 8724 SCHC: Generic Framework for Static Context
                Header Compression and Fragmentation (see
                Section 7.2)";
  }

  identity mo-equal {
    base mo-base-type;
    description
      "equal MO.";
    reference
      "RFC 8724 SCHC: Generic Framework for Static Context
                Header Compression and Fragmentation (see
                Section 7.3)";
  }


  identity mo-ignore {
    base mo-base-type;
    description
      "ignore MO.";
    reference
      "RFC 8724 SCHC: Generic Framework for Static Context
                Header Compression and Fragmentation (see
                Section 7.3)";
  }

  identity mo-msb {
    base mo-base-type;
    description
      "MSB MO.";
    reference
      "RFC 8724 SCHC: Generic Framework for Static Context
                Header Compression and Fragmentation (see
                Section 7.3)";
  }

  identity mo-match-mapping {
    base mo-base-type;
    description
      "match-mapping MO.";
    reference
      "RFC 8724 SCHC: Generic Framework for Static Context
                Header Compression and Fragmentation (see
                Section 7.3)";
  }

  identity mo-rule-match {
    base schc:mo-base-type;
    description
      "Macthing operator return true, if the TV matches a rule
        keeping UP and DOWN direction.";
 }

 identity mo-rev-rule-match {
   base schc:mo-base-type;
   description
     "Macthing operator return true, if the TV matches a rule
      reversing UP and DOWN direction.";
 }
  //------------------------------
  // CDA type definition
  //------------------------------

  identity cda-base-type {
    description
      "Compression Decompression Actions. Specify the action to
       be applied to the field's value in a specific Rule.";
    reference
      "RFC 8724 SCHC: Generic Framework for Static Context
                Header Compression and Fragmentation (see
                Section 7.2)";
  }

  identity cda-not-sent {
    base cda-base-type;
    description
      "not-sent CDA.";
    reference
      "RFC 8724 SCHC: Generic Framework for Static Context
                Header Compression and Fragmentation (see
                Section 7.4)";
  }

  identity cda-value-sent {
    base cda-base-type;
    description
      "value-sent CDA.";
    reference
      "RFC 8724 SCHC: Generic Framework for Static Context
                Header Compression and Fragmentation (see
                Section 7.4)";
  }

  identity cda-lsb {
    base cda-base-type;
    description
      "Least Significant Bit (LSB) CDA.";
    reference
      "RFC 8724 SCHC: Generic Framework for Static Context
                Header Compression and Fragmentation (see
                Section 7.4)";
  }

  identity cda-mapping-sent {
    base cda-base-type;
    description
      "mapping-sent CDA.";
    reference
      "RFC 8724 SCHC: Generic Framework for Static Context
                Header Compression and Fragmentation (see
                Section 7.4)";
  }

  identity cda-compute {
    base cda-base-type;
    description
      "compute-* CDA.";
    reference
      "RFC 8724 SCHC: Generic Framework for Static Context
                Header Compression and Fragmentation (see
                Section 7.4)";
  }

  identity cda-deviid {
    base cda-base-type;
    description
      "DevIID CDA.";
    reference
      "RFC 8724 SCHC: Generic Framework for Static Context
                Header Compression and Fragmentation (see
                Section 7.4)";
  }

  identity cda-appiid {
    base cda-base-type;
    description
      "Application Interface Identifier (AppIID) CDA.";
    reference
      "RFC 8724 SCHC: Generic Framework for Static Context
                Header Compression and Fragmentation (see
                Section 7.4)";
  }

 identity cda-compress-sent {
   base schc:cda-base-type;
   description
     "Send a compressed version of TV keeping UP and
      DOWN direction.";
 }

 identity cda-rev-compress-sent {
   base schc:cda-base-type;
   description
     "Send a compressed version of TV reversing UP and
      DOWN direction.";
 }

  // -- type definition

  typedef space-field-id-type {
    type identityref {
      base space-field-id-base-type;
    }
    description
      "Field ID generic type.";
    reference
      "RFC 8724 SCHC: Generic Framework for Static Context Header
                Compression and Fragmentation";
  }

  typedef fid-type {
    type identityref {
      base fid-base-type;
    }
    description
      "Field ID type for regular protocol fields (IPv6, UDP, CoAP,
       etc.).
       Used in the regular-field case of compression-rule-entry.";
  }

  typedef space-id-type {
    type identityref {
      base space-id-base-type;
    }
    description
      "Space ID type for universal option spaces (CoAP options,
       etc.).
       Used in the universal-option case of compression-rule-entry.";
  }

  typedef fl-type {
    type identityref {
      base fl-base-type;
    }
    description
      "Function used to indicate Field Length.";
    reference
      "RFC 8724 SCHC: Generic Framework for Static Context Header
                Compression and Fragmentation";
  }

  typedef di-type {
    type identityref {
      base di-base-type;
    }
    description
      "Direction in LPWAN network: up when emitted by the device,
       down when received by the device, or bi when emitted or
       received by the device.";
    reference
      "RFC 8724 SCHC: Generic Framework for Static Context Header
                Compression and Fragmentation";
  }

  typedef mo-type {
    type identityref {
      base mo-base-type;
    }
    description
      "Matching Operator (MO) to compare field values with
       Target Values.";
    reference
      "RFC 8724 SCHC: Generic Framework for Static Context Header
                Compression and Fragmentation";
  }

  typedef cda-type {
    type identityref {
      base cda-base-type;
    }
    description
      "Compression Decompression Action to compress or
       decompress a field.";
    reference
      "RFC 8724 SCHC: Generic Framework for Static Context Header
                Compression and Fragmentation";
  }

  // -- FRAGMENTATION TYPE
  // -- fragmentation modes

  identity fragmentation-mode-base-type {
    description
      "Define the fragmentation mode.";
    reference
      "RFC 8724 SCHC: Generic Framework for Static Context Header
                Compression and Fragmentation";
  }

  identity fragmentation-mode-no-ack {
    base fragmentation-mode-base-type;
    description
      "No-ACK mode.";
    reference
      "RFC 8724 SCHC: Generic Framework for Static Context Header
                Compression and Fragmentation";
  }

  identity fragmentation-mode-ack-always {
    base fragmentation-mode-base-type;
    description
      "ACK-Always mode.";
    reference
      "RFC 8724 SCHC: Generic Framework for Static Context Header
                Compression and Fragmentation";
  }

  identity fragmentation-mode-ack-on-error {
    base fragmentation-mode-base-type;
    description
      "ACK-on-Error mode.";
    reference
      "RFC 8724 SCHC: Generic Framework for Static Context Header
                Compression and Fragmentation";
  }

  typedef fragmentation-mode-type {
    type identityref {
      base fragmentation-mode-base-type;
    }
    description
      "Define the type used for fragmentation mode in Rules.";
  }

  // -- Ack behavior

  identity ack-behavior-base-type {
    description
      "Define when to send an Acknowledgment.";
    reference
      "RFC 8724 SCHC: Generic Framework for Static Context Header
                Compression and Fragmentation";
  }

  identity ack-behavior-after-all-0 {
    base ack-behavior-base-type;
    description
      "Fragmentation expects ACK after sending All-0 fragment.";
  }

  identity ack-behavior-after-all-1 {
    base ack-behavior-base-type;
    description
      "Fragmentation expects ACK after sending All-1 fragment.";
  }

  identity ack-behavior-by-layer2 {
    base ack-behavior-base-type;
    description
      "Layer 2 defines when to send an ACK.";
  }

  typedef ack-behavior-type {
    type identityref {
      base ack-behavior-base-type;
    }
    description
      "Define the type used for ACK behavior in Rules.";
  }

  // -- All-1 with data types

  identity all-1-data-base-type {
    description
      "Type to define when to send an Acknowledgment message.";
    reference
      "RFC 8724 SCHC: Generic Framework for Static Context Header
                Compression and Fragmentation";
  }

  identity all-1-data-no {
    base all-1-data-base-type;
    description
      "All-1 contains no tiles.";
  }

  identity all-1-data-yes {
    base all-1-data-base-type;
    description
      "All-1 MUST contain a tile.";
  }

  identity all-1-data-sender-choice {
    base all-1-data-base-type;
    description
      "Fragmentation process chooses to send tiles or not in All-1.";
  }

  typedef all-1-data-type {
    type identityref {
      base all-1-data-base-type;
    }
    description
      "Define the type used for All-1 format in Rules.";
  }

  // -- RCS algorithm types

  identity rcs-algorithm-base-type {
    description
      "Identify which algorithm is used to compute RCS.
       The algorithm also defines the size of the RCS field.";
    reference
      "RFC 8724 SCHC: Generic Framework for Static Context Header
                Compression and Fragmentation";
  }

  identity rcs-crc32 {
    base rcs-algorithm-base-type;
    description
      "CRC32 defined as default RCS in RFC 8724.  This RCS is
       4 bytes long.";
    reference
      "RFC 8724 SCHC: Generic Framework for Static Context Header
                Compression and Fragmentation";
  }

  identity rcs-frag-count {
    base rcs-algorithm-base-type;
    description
      "The RCS carries the number of fragments in the last window,
       including the All-1 fragment, instead of a check computed on
       the SCHC Packet.  The RCS has the same size as the FCN field
       (fcn-size).";
    reference
      "RFC 9442 SCHC over Sigfox LPWAN";
  }

  typedef rcs-algorithm-type {
    type identityref {
      base rcs-algorithm-base-type;
    }
    description
      "Define the type for RCS algorithm in Rules.";
  }

  // --------  RULE ENTRY DEFINITION ------------

  grouping tv-struct {
    description
      "Defines the Target Value element.  If the header field
       contains a text, the binary sequence uses the same encoding.
       field-id allows the conversion to the appropriate type.";
    leaf index {
      type uint16;
      description
        "Index gives the position in the matching list.  If only one
         element is present, index is 0.  Otherwise, index is the
         order in the matching list, starting at 0.";
    }
    leaf value {
      type binary;
      description
        "Target Value content as an untyped binary value.";
    }
    reference
      "RFC 8724 SCHC: Generic Framework for Static Context Header
                Compression and Fragmentation";
  }

  grouping compression-rule-entry {
    status deprecated;
    description
      "These entries define a compression entry (i.e., a line),
       as defined in RFC 8724.
 +-------+--+--+--+------------+-----------------+---------------+
 |Field 1|FL|FP|DI|Target Value|Matching Operator|Comp/Decomp Act|
 +-------+--+--+--+------------+-----------------+---------------+
       An entry in a compression Rule is composed of 7 elements:
       - Field ID: the header field to be compressed
       - Field Length : either a positive integer or a function
       - Field Position: a positive (and possibly equal to 0)
         integer
       - Direction Indicator: an indication in which direction the
         compression and decompression process is effective
       - Target Value: a value against which the header field is
         compared
       - Matching Operator: the comparison operation and optional
         associate parameters
       - Comp./Decomp. Action: the compression or decompression
         action and optional parameters

       Deprecated in favor of 'compression-rule-entry-universal',
       which
       adds support for Universal Options.";
    reference
      "RFC 9363 A YANG Data Model for Static Context Header
                Compression (SCHC)";
    leaf field-id {
      type schc:fid-type;
      mandatory true;
      description
        "Field ID, identify a field in the header with a YANG
         identity reference.";
    }
    leaf field-length {
      type union {
      type uint8;
      type schc:fl-type;
        }
      mandatory true;
      description
        "Field Length, expressed in number of bits if the length is
         known when the Rule is created or through a specific
         function if the length is variable.";
    }
    leaf field-position {
      type uint8;
      mandatory true;
      description
        "Field Position in the header is an integer.  Position 1
         matches the first occurrence of a field in the header,
         while incremented position values match subsequent
         occurrences.
         Position 0 means that this entry matches a field
         irrespective of its position of occurrence in the
         header.
         Be aware that the decompressed header may have
         position-0 fields ordered differently than they
         appeared in the original packet.";
    }
    leaf direction-indicator {
      type schc:di-type;
      mandatory true;
      description
        "Direction Indicator, indicate if this field must be
         considered for Rule selection or ignored based on the
         direction (bidirectional, only uplink, or only
         downlink).";
    }
    list target-value {
      key "index";
      uses tv-struct;
      description
        "A list of values to compare with the header field value.
         If Target Value is a singleton, position must be 0.
         For use as a matching list for the mo-match-mapping Matching
         Operator, index should take consecutive values starting
         from 0.";
    }
    leaf matching-operator {
      type schc:mo-type;
      must "../target-value or derived-from-or-self(.,
                                                   'mo-ignore')" {
        error-message
          "mo-equal, mo-msb, and mo-match-mapping need target-value";
        description
          "target-value is not required for mo-ignore.";
      }
      must "not (derived-from-or-self(., 'mo-msb')) or
            ../matching-operator-value" {
        error-message "mo-msb requires length value";
      }
      mandatory true;
      description
        "MO: Matching Operator.";
      reference
        "RFC 8724 SCHC: Generic Framework for Static Context Header
                  Compression and Fragmentation (see Section 7.3)";
    }
    list matching-operator-value {
      key "index";
      uses tv-struct;
      description
        "Matching Operator Arguments, based on TV structure to allow
         several arguments.
         In RFC 8724, only the MSB Matching Operator needs arguments
         (a single argument, which is the number of most significant
         bits to be matched).";
    }
    leaf comp-decomp-action {
      type schc:cda-type;
      must "../target-value or
                derived-from-or-self(., 'cda-value-sent') or
                derived-from-or-self(., 'cda-compute') or
                derived-from-or-self(., 'cda-appiid') or
                derived-from-or-self(., 'cda-deviid') or
                derived-from-or-self(., 'cda-compress-sent') or
                derived-from-or-self(., 'cda-rev-compress-sent')" {
        error-message
          "cda-not-sent, cda-lsb, and cda-mapping-sent need
           target-value";
        description
          "target-value is not required for some CDA.";
      }
      mandatory true;
      description
        "CDA: Compression Decompression Action.";
      reference
        "RFC 8724 SCHC: Generic Framework for Static Context Header
                  Compression and Fragmentation (see Section 7.4)";
    }
    list comp-decomp-action-value {
      key "index";
      uses tv-struct;
      description
        "CDA arguments, based on a TV structure, in order to allow
         for several arguments.  The CDAs specified in RFC 8724
         require no argument.";
    }
  }

  grouping compression-rule-entry-universal {
    description
      "These entries define a compression entry (i.e., a line),
       as defined in RFC 8724. The format has been generalized
       to include universal options.

       An entry in a compression Rule is composed of 7 elements:
       - entry-index: position in the rule.
       - space field ID: the identityref of a specific field or
         space ID followed by an universal value.
       - universal-value: the value associated to the space field ID
       to identify
         a specific field in the space. For regular fields, this
         value is 0 and the space field ID is the field ID. For
         universal options, the space field ID identifies the type
         of option and the universal value identifies the specific
         option.
       - Field Length : either a positive integer or a function
       - Field Position: a positive (and possibly equal to 0)
         integer
       - Direction Indicator: an indication in which direction the
         compression and decompression process is effective
       - Target Value: a value against which the header field is
         compared
       - Matching Operator: the comparison operation and optional
         associate parameters
       - Comp./Decomp. Action: the compression or decompression
         action and optional parameters
      ";

    leaf entry-index {
      type uint16;

      description
        "Sequential position of the entry in the user-ordered Rule
         list,
         starting at 0.";
    }

    choice field-or-space {
      mandatory true;
      description
        "Distinguishes a regular protocol field from a universal
         option.
         Exactly one case must be present:
         - regular-field: a standard protocol field identified by a
         field ID
           (e.g., fid-ipv6-version, fid-udp-dev-port).
         - universal-option: a generic option identified by a space
         ID
           (e.g., space-id-coap) plus a numeric option value (e.g.,
           the
           CoAP option number).";

      case regular-field {
        description
          "The entry refers to a regular protocol field.
           No universal-value is needed.";
        leaf field-id {
          type schc:fid-type;
          must "not(
          derived-from-or-self(.,'fid-coap-option-if-match') or
          derived-from-or-self(.,'fid-coap-option-uri-host') or
          derived-from-or-self(.,'fid-coap-option-etag') or
          derived-from-or-self(.,'fid-coap-option-if-none-match') or
          derived-from-or-self(.,'fid-coap-option-observe') or
          derived-from-or-self(.,'fid-coap-option-uri-port') or
          derived-from-or-self(.,'fid-coap-option-location-path') or
          derived-from-or-self(.,'fid-coap-option-uri-path') or
          derived-from-or-self(.,'fid-coap-option-content-format') or
          derived-from-or-self(.,'fid-coap-option-max-age') or
          derived-from-or-self(.,'fid-coap-option-uri-query') or
          derived-from-or-self(.,'fid-coap-option-accept') or
          derived-from-or-self(.,'fid-coap-option-location-query') or
          derived-from-or-self(.,'fid-coap-option-block2') or
          derived-from-or-self(.,'fid-coap-option-block1') or
          derived-from-or-self(.,'fid-coap-option-size2') or
          derived-from-or-self(.,'fid-coap-option-proxy-uri') or
          derived-from-or-self(.,'fid-coap-option-proxy-scheme') or
          derived-from-or-self(.,'fid-coap-option-size1') or
          derived-from-or-self(.,'fid-coap-option-no-response'))" {
            error-message
              "Deprecated per-option CoAP Field IDs must not be used
               in entry-universal; use space-id-coap and the option
               number.";
          }
          mandatory true;
          description
            "Field ID of a regular protocol field.";
        }
      }

      case universal-option {
        description
          "The entry refers to a universal option within a given
           space.
           Both space-id and universal-value are required.";
        leaf space-id {
          type schc:space-id-type;
          mandatory true;
          description
            "Space ID identifying the protocol option space
             (e.g., space-id-coap for CoAP options).";
        }
        leaf universal-value {
          type uint64;
          mandatory true;
          description
            "Numeric value identifying the specific option within the
             space
             (e.g., the CoAP option number).";
        }
      } // case universal-option
    } // choice field-or-space

    leaf field-length {
      type union {
      type uint8;
      type schc:fl-type;
        }
      must "not(derived-from-or-self(., 'fl-length-bytes') or
                 derived-from-or-self(., 'fl-length-bits')) or
            ../field-length-value" {
        error-message
          "fl-length-bytes and fl-length-bits need
           field-length-value";
      }
      mandatory true;
      description
        "Field Length, expressed in number of bits if the length is
         known when the Rule is created or through a specific
         function if the length is variable.";
    }
    leaf field-length-value {
      type uint16;

      description
      "Argument used by Field Length functions. For
      fl-length-bytes and fl-length-bits, this value is the
      entry-index of the Rule entry whose numerical field value
      specifies the length.";
      }
    leaf field-position {
      type uint8;
      mandatory true;
      description
        "Field Position in the header is an integer.  Position 1
         matches the first occurrence of a field in the header,
         while incremented position values match subsequent
         occurrences.
         Position 0 means that this entry matches a field
         irrespective of its position of occurrence in the
         header.
         Be aware that the decompressed header may have
         position-0 fields ordered differently than they
         appeared in the original packet.";
    }
    leaf direction-indicator {
      type schc:di-type;
      mandatory true;
      description
        "Direction Indicator, indicate if this field must be
         considered for Rule selection or ignored based on the
         direction (bidirectional, only uplink, or only
         downlink).";
    }
    list target-value {
      key "index";
      uses tv-struct;
      description
        "A list of values to compare with the header field value.
         If Target Value is a singleton, position must be 0.
         For use as a matching list for the mo-match-mapping Matching
         Operator, index should take consecutive values starting
         from 0.";
    }
    leaf matching-operator {
      type schc:mo-type;
      must "../target-value or derived-from-or-self(.,
                                                   'mo-ignore')" {
        error-message
          "mo-equal, mo-msb, and mo-match-mapping need target-value";
        description
          "target-value is not required for mo-ignore.";
      }
      must "not (derived-from-or-self(., 'mo-msb')) or
            ../matching-operator-value" {
        error-message "mo-msb requires length value";
      }
      mandatory true;
      description
        "MO: Matching Operator.";
      reference
        "RFC 8724 SCHC: Generic Framework for Static Context Header
                  Compression and Fragmentation (see Section 7.3)";
    }
    list matching-operator-value {
      key "index";
      uses tv-struct;
      description
        "Matching Operator Arguments, based on TV structure to allow
         several arguments.
         In RFC 8724, only the MSB Matching Operator needs arguments
         (a single argument, which is the number of most significant
         bits to be matched).";
    }
    leaf comp-decomp-action {
      type schc:cda-type;
      must "../target-value or
                derived-from-or-self(., 'cda-value-sent') or
                derived-from-or-self(., 'cda-compute') or
                derived-from-or-self(., 'cda-appiid') or
                derived-from-or-self(., 'cda-deviid') or
                derived-from-or-self(., 'cda-compress-sent') or
                derived-from-or-self(., 'cda-rev-compress-sent')" {
        error-message
          "cda-not-sent, cda-lsb, and cda-mapping-sent need
           target-value";
        description
          "target-value is not required for some CDA.";
      }
      mandatory true;
      description
        "CDA: Compression Decompression Action.";
      reference
        "RFC 8724 SCHC: Generic Framework for Static Context Header
                  Compression and Fragmentation (see Section 7.4)";
    }
    list comp-decomp-action-value {
      key "index";
      uses tv-struct;
      description
        "CDA arguments, based on a TV structure, in order to allow
         for several arguments.  The CDAs specified in RFC 8724
         require no argument.";
    }
  }


  // --Rule nature

  identity nature-base-type {
    description
      "A Rule, identified by its RuleID, is used for a single
       purpose.  RFC 8724 defines 3 natures:
       compression, no-compression, and fragmentation.";
    reference
      "RFC 8724 SCHC: Generic Framework for Static Context Header
                Compression and Fragmentation (see Section 6)";
  }

  identity nature-compression {
    base nature-base-type;
    description
      "Identify a compression Rule.";
    reference
      "RFC 8724 SCHC: Generic Framework for Static Context Header
                Compression and Fragmentation (see Section 6)";
  }

  identity nature-no-compression {
    base nature-base-type;
    description
      "Identify a no-compression Rule.";
    reference
      "RFC 8724 SCHC: Generic Framework for Static Context Header
                Compression and Fragmentation (see Section 6)";
  }

  identity nature-fragmentation {
    base nature-base-type;
    description
      "Identify a fragmentation Rule.";
    reference
      "RFC 8724 SCHC: Generic Framework for Static Context Header
                Compression and Fragmentation (see Section 6)";
  }

  typedef nature-type {
    type identityref {
      base nature-base-type;
    }
    description
      "Defines the type to indicate the nature of the Rule.";
  }

  identity nature-management {
    base nature-base-type;
    description
      "Identify a management Rule. Management Rules use the
       compression Rule structure to operate on the SCHC Context.
       Management Rules are origin Rules: their status is always
       'status-origin'.";
  /* Reference to be added when the Rule Management specification
     is available. */
  }

  identity status-base-type {
    description
      "Base identity for the status of a Rule.";
  }

  identity status-valid {
    base status-base-type;
    description
      "The Rule belongs to the Set of Rules and can be used. Only
       the Rules with this status, or with a status derived from
       it, can be used for compression, decompression,
       fragmentation, and reassembly.";
  }

  identity status-origin {
    base status-valid;
    description
      "The Rule belongs to the initial Set of Rules, provisioned
       before the start of the SCHC instance. It is valid, and it
       cannot be modified or deleted by management. The management
       Rules are origin Rules. When the context is reset, only the
       origin Rules are kept. This status is only set by
       provisioning, never by management.";
  }

  identity status-candidate {
    base status-base-type;
    description
      "The Rule has been created by management and the other end
       has not validated it yet. It cannot be used for compression,
       decompression, fragmentation or reassembly, a SCHC packet
       MUST NOT be generated with its RuleID, and a received
       packet carrying its RuleID is dropped.";
  }

  identity status-invalid {
    base status-base-type;
    description
      "The Rule has been deleted by management and the guard period
       is running. It cannot be used, no Rule with the same RuleID
       can be created, and the SCHC packets carrying its RuleID are
       dropped. When the guard period has elapsed, the RuleID
       becomes free.";
  }

  identity status-free {
    base status-base-type;
    description
      "The RuleID can be used to create a new Rule. When the guard
       period of a deleted Rule has elapsed, the Rule is either kept
       in the Set of Rules with this status, or removed from it. A
       RuleID absent from the Set of Rules is also free. A Rule with
       this status is processed as if it did not exist in the Set
       of Rules.";
  }

  typedef status-type {
    type identityref {
      base status-base-type;
    }
    description
      "Defines the type to indicate the status of a Rule.";
  }

  identity action-base-type {
    description
      "Action applied to a packet matching a compression Rule, once
       compression has been performed (or before decompression is
       performed in the other direction). The default behavior of
       RFC 8724 is to hand the SCHC Packet over to the lower layer;
       other actions allow an intermediate entity, typically the
       SCHC gateway, to process the packet locally instead.";
    reference
      "draft-ietf-schc-icmpv6-compression Static Context Header
                Compression (SCHC) for the Internet Control Message
                Protocol (ICMPv6) (see Section 7)";
  }

  identity action-forward {
    base action-base-type;
    description
      "The packet is handed over to the lower layer. This is the
       default behavior specified in RFC 8724.";
    reference
      "RFC 8724 SCHC: Generic Framework for Static Context Header
                Compression and Fragmentation";
  }

  identity action-proxy-ping {
    base action-base-type;
    description
      "The packet is not handed over to the lower layer but
       processed locally by a ping proxy, which answers the ICMPv6
       Echo Request on behalf of the Device.";
    reference
      "draft-ietf-schc-icmpv6-compression Static Context Header
                Compression (SCHC) for the Internet Control Message
                Protocol (ICMPv6) (see Section 7)";
  }

  typedef action-type {
    type identityref {
      base action-base-type;
    }
    description
      "Defines the type to indicate the action associated with a
       compression Rule.";
  }

  grouping compression-content {
    status deprecated;
    list entry {
      must "derived-from-or-self(../rule-nature,
                                        'nature-compression')" {
        error-message "Rule nature must be compression";
      }
      key "field-id field-position direction-indicator";
      status deprecated;

      uses compression-rule-entry {
        status deprecated;
      }
      description
        "A compression Rule is a list of Rule entries, each
         describing a header field.  An entry is identified
         through a field-id, its position in the packet, and
         its direction.";
    }

    description
      "Define a compression Rule composed of a list of entries.
       Deprecated in favor of 'compression-content-universal', which
       adds support for Universal Options.";
    reference
      "RFC 9363 A YANG Data Model for Static Context Header
                Compression (SCHC)";
  }

  grouping compression-content-universal {
    list entry-universal {
      must "derived-from-or-self(../rule-nature,
                                  'nature-compression') or
            derived-from-or-self(../rule-nature,
                                  'nature-management')" {
        error-message
          "Rule nature must be compression or management";
      }
      key "entry-index";
      ordered-by user;

      uses compression-rule-entry-universal;
      description
        "A compression Rule is a list of Rule entries, each
         describing a header field or Universal Option. An entry
         is identified by its entry-index.";
    }

    leaf action {
      type action-type;
      default "schc:action-forward";
      description
        "Action to be applied to a packet matching this Rule, after
         compression or before decompression. When absent, the
         packet is sent to the lower layer as specified in
         RFC 8724.";
    }

    list action-value {
      key "index";
      uses tv-struct;
      description
        "Parameters associated with the action, based on a TV
         structure, in order to allow for several arguments.
         'action-forward' requires no argument.";
    }

    description
      "Define a compression Rule composed of a list of entries,
       using the Universal-Option-aware
       'compression-rule-entry-universal'.";
    reference
      "RFC 8724 SCHC: Generic Framework for Static Context Header
                Compression and Fragmentation";
  }

  grouping fragmentation-content {
    description
      "This grouping defines the fragmentation parameters for
       all the modes (No ACK, ACK Always, and ACK on Error) specified
       in RFC 8724.";
    leaf fragmentation-mode {
      type schc:fragmentation-mode-type;
      must "derived-from-or-self(../rule-nature,
                                        'nature-fragmentation')" {
        error-message "Rule nature must be fragmentation";
      }
      mandatory true;
      description
        "Which fragmentation mode is used (No ACK, ACK Always, or
         ACK on Error).";
    }
    leaf l2-word-size {
      type uint8;
      default "8";
      description
        "Size, in bits, of the Layer 2 Word.";
    }
    leaf direction {
      type schc:di-type;
      must "derived-from-or-self(., 'di-up') or
            derived-from-or-self(., 'di-down')" {
        error-message
          "Direction for fragmentation Rules are up or down.";
      }
      mandatory true;
      description
        "MUST be up or down, bidirectional MUST NOT be used.";
    }
    // SCHC Frag header format
    leaf dtag-size {
      type uint8;
      default "0";
      description
        "Size, in bits, of the DTag field (T variable from
         RFC 8724).";
    }
    leaf w-size {
      when "derived-from-or-self(../fragmentation-mode,
                                'fragmentation-mode-ack-on-error')
            or
            derived-from-or-self(../fragmentation-mode,
                                'fragmentation-mode-ack-always') ";
      type uint8;
      description
        "Size, in bits, of the window field (M variable from
         RFC 8724).";
    }
    leaf fcn-size {
      type uint8;
      mandatory true;
      description
        "Size, in bits, of the FCN field (N variable from
         RFC 8724).";
    }
    leaf rcs-algorithm {
      type rcs-algorithm-type;
      default "schc:rcs-crc32";
      description
        "Algorithm used for RCS.  The algorithm specifies the RCS
         size.";
    }
    // SCHC fragmentation protocol parameters
    leaf maximum-packet-size {
      type uint16;
      default "1280";
      description
        "When decompression is done, packet size must not
         strictly exceed this limit, expressed in bytes.";
    }
    leaf window-size {
      type uint16;
      description
        "By default, if not specified, the FCN value is 2^w-size - 1.
         This value should not be exceeded.  Possible FCN values
         are between 0 and window-size - 1.";
    }
    leaf max-interleaved-frames {
      type uint8;
      default "1";
      description
        "Maximum of simultaneously fragmented frames.  Maximum value
         is 2^dtag-size.  All DTag values can be used, but more than
         max-interleaved-frames MUST NOT be active at any time.";
    }
    container inactivity-timer {
      leaf ticks-duration {
        type uint8;
        default "20";
        description
          "Duration of one tick in microseconds:
              2^ticks-duration/10^6 = 1.048s.";
      }
      leaf ticks-numbers {
        type uint16 {
          range "0..max";
        }
        description
          "Timer duration = ticks-numbers*2^ticks-duration / 10^6.";
      }

      description
        "Duration in seconds of the Inactivity Timer; 0 indicates
         that the timer is disabled.

         Allows a precision from microsecond to year by sending the
         tick-duration value. For instance:

        tick-duration: smallest value   <-> highest value

        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.";
    }
    container retransmission-timer {
      leaf ticks-duration {
        type uint8;
        default "20";
        description
          "Duration of one tick in microseconds:
              2^ticks-duration/10^6 = 1.048s.";
      }
      leaf ticks-numbers {
        type uint16 {
          range "1..max";
        }
        description
          "Timer duration = ticks-numbers*2^ticks-duration / 10^6.";
      }
      when "derived-from-or-self(../fragmentation-mode,
                                'fragmentation-mode-ack-on-error')
            or
            derived-from-or-self(../fragmentation-mode,
                                'fragmentation-mode-ack-always') ";
      description
        "Duration in seconds of the Retransmission Timer.
         See the Inactivity Timer.";
    }
    leaf max-ack-requests {
      when "derived-from-or-self(../fragmentation-mode,
                                'fragmentation-mode-ack-on-error')
            or
            derived-from-or-self(../fragmentation-mode,
                                'fragmentation-mode-ack-always') ";
      type uint8 {
        range "1..max";
      }
      description
        "The maximum number of retries for a specific SCHC ACK.";
    }
    choice mode {
      case no-ack;
      case ack-always;
      case ack-on-error {
        leaf tile-size {
          when "derived-from-or-self(../fragmentation-mode,
                             'fragmentation-mode-ack-on-error')";
          type uint8;
          description
            "Size, in bits, of tiles.  If not specified or set to 0,
             tiles fill the fragment.";
        }
        leaf tile-in-all-1 {
          when "derived-from-or-self(../fragmentation-mode,
                             'fragmentation-mode-ack-on-error')";
          type schc:all-1-data-type;
          description
            "Defines whether the sender and receiver expect a tile in
             All-1 fragments or not, or if it is left to the sender's
             choice.";
        }
        leaf ack-behavior {
          when "derived-from-or-self(../fragmentation-mode,
                             'fragmentation-mode-ack-on-error')";
          type schc:ack-behavior-type;
          description
            "Sender behavior to acknowledge, after All-0 or All-1 or
             when the LPWAN allows it.";
        }
      }
      description
        "RFC 8724 defines 3 fragmentation modes.";
    }
    reference
      "RFC 8724 SCHC: Generic Framework for Static Context Header
                Compression and Fragmentation";
  }


  grouping management-content {
    description
      "This group contains parameters to control management
       procedure.";

    container guard-period {
      description
        "Duration of the Guard period, during which a deleted RuleID
         MUST NOT be reused. It applies to all the Rules.";
      leaf ticks-duration {
        type uint8;
        default "20";
        description
          "Duration of one tick in microseconds:
              2^ticks-duration/10^6 = 1.048s.";
      }
      leaf ticks-numbers {
        type uint16 {
          range "0..max";
        }
        description
          "Timer duration = ticks-numbers*2^ticks-duration / 10^6.";
      }
    }
  }


  // Define RuleID.  RuleID is composed of a RuleID value and a
  // RuleID length

  grouping rule-id-type {
    leaf rule-id-value {
      type uint32;
      description
        "RuleID value.  This value must be unique, considering its
         length.";
    }
    leaf rule-id-length {
      type uint8 {
        range "0..32";
      }
      description
        "RuleID length, in bits.  The value 0 is for implicit
         Rules.";
    }
    description
      "A RuleID is composed of a value and a length, expressed in
       bits.";
    reference
      "RFC 8724 SCHC: Generic Framework for Static Context Header
                Compression and Fragmentation";
  }

  // SCHC table for a specific device.

  container context {
    if-feature "management";
    uses management-content;
    description
      "Management-related parameters that apply to the whole SCHC
       context rather than to a single Rule.";
  }

  container schc {
    list rule {
      key "rule-id-value rule-id-length";
      uses rule-id-type;
      leaf rule-nature {
        type nature-type;
        mandatory true;
        description
          "Specify the Rule's nature.";
      }
      leaf rule-status {
        if-feature "management";
        type status-type;
        default "status-origin";
        description
          "Status of the Rule. A Rule with the value
           'status-candidate' has been created by management and is
           not usable until the other end has validated it. A Rule
           with the value 'status-invalid' has been deleted and
           stays in this status during the guard period. A Rule
           without this leaf, such as a provisioned Rule, is
           considered 'status-origin'; a Rule created by management
           always carries its status.
           The value is a local view of the state of the management
           protocol machine of the node. It is managed locally by
           the node, and any value sent by the other end is
           overwritten.";
      }
      choice nature {
        case fragmentation {
          if-feature "fragmentation";
          uses fragmentation-content;
        }
        case compression {
          if-feature "compression";
          status deprecated;
          uses compression-content {
            status deprecated;
          }
        }
        case compression-universal {
          if-feature "compression or management";
          uses compression-content-universal;
        }
        description
          "A Rule is for compression, no-compression, fragmentation,
          or management.";
      }
      description
        "Set of compression, no-compression, or fragmentation
         Rules identified by their rule-id.";
    }
    description
      "A SCHC set of Rules is composed of a list of Rules used for
   compression, no-compression, fragmentation, or management.";
    reference
      "RFC 8724 SCHC: Generic Framework for Static Context Header
                Compression and Fragmentation";
  }
}
]]></sourcecode>
      </figure>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document registers one URI and one YANG data model.</t>
      <section anchor="uri-registration">
        <name>URI Registration</name>
        <t>IANA registered the following URI in the "IETF XML Registry" <xref target="RFC3688"/>:</t>
        <dl>
          <dt>URI:</dt>
          <dd>
            <t>urn:ietf:params:xml:ns:yang:ietf-schc</t>
          </dd>
          <dt>Registrant Contact:</dt>
          <dd>
            <t>The IESG.</t>
          </dd>
          <dt>XML:</dt>
          <dd>
            <t>N/A; the requested URI is an XML namespace.</t>
          </dd>
        </dl>
      </section>
      <section anchor="yang-module-name-registration">
        <name>YANG Module Name Registration</name>
        <t>IANA has registered the following YANG data model in the "YANG Module Names" registry <xref target="RFC6020"/>.</t>
        <dl>
          <dt>name:</dt>
          <dd>
            <t>ietf-schc</t>
          </dd>
          <dt>namespace:</dt>
          <dd>
            <t>urn:ietf:params:xml:ns:yang:ietf-schc</t>
          </dd>
          <dt>prefix:</dt>
          <dd>
            <t>schc</t>
          </dd>
          <dt>reference:</dt>
          <dd>
            <t>RFC 9363</t>
          </dd>
        </dl>
      </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 target="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 HTTPS, and the mandatory-to-implement secure transport is TLS
<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 operations and content.</t>
      <t>There are a number of data nodes defined in this YANG module that are writable/creatable/deletable
(i.e., config true, which is the default). These data nodes may be considered sensitive 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 subtrees and data nodes and
their sensitivity/vulnerability:</t>
      <dl>
        <dt>/schc:</dt>
        <dd>
          <t>All the data nodes may be modified. The Rule contains sensitive information, such as the application IPv6 address where the device's data will be sent after decompression. An attacker may try to modify other devices' Rules by changing the application address and may block communication or allows traffic eavesdropping. Therefore, a device must be allowed to modify only its own rules on the remote SCHC instance. The identity of the requester must be validated. This can be done through certificates or access lists. Modification may be allowed regarding the Field Descriptor (i.e., IPv6 addresses field descriptors should not be modified, but UDP dev port could be changed).</t>
        </dd>
      </dl>
      <t>Some of the readable data nodes in this YANG module may be considered sensitive or vulnerable in some network environments. It is thus important to control read access (e.g., via get, get-config, or notification) to these data nodes. These are the subtrees and data nodes and their sensitivity/vulnerability:</t>
      <dl>
        <dt>/schc:</dt>
        <dd>
          <t>By reading a module, an attacker may learn the traffic generated by a device and can also learn about application addresses or REST API.</t>
        </dd>
      </dl>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC0768">
          <front>
            <title>User Datagram Protocol</title>
            <author fullname="J. Postel" initials="J." surname="Postel"/>
            <date month="August" year="1980"/>
          </front>
          <seriesInfo name="STD" value="6"/>
          <seriesInfo name="RFC" value="768"/>
          <seriesInfo name="DOI" value="10.17487/RFC768"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <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 Community, 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">
          <front>
            <title>The IETF XML Registry</title>
            <author fullname="M. Mealling" initials="M." surname="Mealling"/>
            <date month="January" year="2004"/>
            <abstract>
              <t>This document describes an IANA maintained registry for IETF standards 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">
          <front>
            <title>YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)</title>
            <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund"/>
            <date month="October" year="2010"/>
            <abstract>
              <t>YANG is a data modeling language used to model configuration and state data manipulated by the Network Configuration Protocol (NETCONF), NETCONF remote 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="RFC6241">
          <front>
            <title>Network Configuration Protocol (NETCONF)</title>
            <author fullname="R. Enns" initials="R." role="editor" surname="Enns"/>
            <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund"/>
            <author fullname="J. Schoenwaelder" initials="J." role="editor" surname="Schoenwaelder"/>
            <author fullname="A. Bierman" initials="A." role="editor" surname="Bierman"/>
            <date month="June" year="2011"/>
            <abstract>
              <t>The Network Configuration Protocol (NETCONF) defined in this document provides mechanisms to install, manipulate, and delete the configuration of network devices. It uses an Extensible Markup Language (XML)-based data encoding for the configuration data as well as the protocol messages. The NETCONF protocol operations are realized as remote procedure calls (RPCs). This document obsoletes RFC 4741. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6241"/>
          <seriesInfo name="DOI" value="10.17487/RFC6241"/>
        </reference>
        <reference anchor="RFC6242">
          <front>
            <title>Using the NETCONF Protocol over Secure Shell (SSH)</title>
            <author fullname="M. Wasserman" initials="M." surname="Wasserman"/>
            <date month="June" year="2011"/>
            <abstract>
              <t>This document describes a method for invoking and running the Network Configuration Protocol (NETCONF) within a Secure Shell (SSH) session as an SSH 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="RFC7136">
          <front>
            <title>Significance of IPv6 Interface Identifiers</title>
            <author fullname="B. Carpenter" initials="B." surname="Carpenter"/>
            <author fullname="S. Jiang" initials="S." surname="Jiang"/>
            <date month="February" year="2014"/>
            <abstract>
              <t>The IPv6 addressing architecture includes a unicast interface identifier 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 an 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 the Universal and Group bits of an IEEE link-layer address are mapped into an IPv6 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">
          <front>
            <title>The Constrained Application Protocol (CoAP)</title>
            <author fullname="Z. Shelby" initials="Z." surname="Shelby"/>
            <author fullname="K. Hartke" initials="K." surname="Hartke"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="June" year="2014"/>
            <abstract>
              <t>The Constrained Application Protocol (CoAP) is a specialized web transfer protocol for use with constrained nodes and constrained (e.g., low-power, lossy) networks. The nodes often have 8-bit microcontrollers with small amounts of ROM and RAM, while constrained networks such as IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs) often have high packet error rates and a typical throughput of 10s of kbit/s. The protocol is designed for machine- to-machine (M2M) applications such as smart energy and building automation.</t>
              <t>CoAP provides a request/response interaction model between application endpoints, supports 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 interface with HTTP for integration with the Web while meeting specialized requirements 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="RFC7950">
          <front>
            <title>The YANG 1.1 Data Modeling Language</title>
            <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund"/>
            <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 protocols. 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 small number of backward incompatibilities from YANG version 1. This document also 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="RFC8040">
          <front>
            <title>RESTCONF Protocol</title>
            <author fullname="A. Bierman" initials="A." surname="Bierman"/>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <author fullname="K. Watsen" initials="K." surname="Watsen"/>
            <date month="January" year="2017"/>
            <abstract>
              <t>This document describes an HTTP-based protocol that provides a programmatic interface for accessing data defined in YANG, using the datastore concepts 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="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="RFC8200">
          <front>
            <title>Internet Protocol, Version 6 (IPv6) Specification</title>
            <author fullname="S. Deering" initials="S." surname="Deering"/>
            <author fullname="R. Hinden" initials="R." surname="Hinden"/>
            <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="RFC8341">
          <front>
            <title>Network Configuration Access Control Model</title>
            <author fullname="A. Bierman" initials="A." surname="Bierman"/>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <date month="March" year="2018"/>
            <abstract>
              <t>The standardization of network configuration interfaces for use with 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 restrict NETCONF or RESTCONF protocol access for particular users to a preconfigured subset of all available NETCONF or RESTCONF protocol operations and content. This 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>
        <reference anchor="RFC8342">
          <front>
            <title>Network Management Datastore Architecture (NMDA)</title>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund"/>
            <author fullname="J. Schoenwaelder" initials="J." surname="Schoenwaelder"/>
            <author fullname="P. Shafer" initials="P." surname="Shafer"/>
            <author fullname="K. Watsen" initials="K." surname="Watsen"/>
            <author fullname="R. Wilton" initials="R." surname="Wilton"/>
            <date month="March" year="2018"/>
            <abstract>
              <t>Datastores are a fundamental concept binding the data models written 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 the 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="RFC8446">
          <front>
            <title>The Transport Layer Security (TLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla"/>
            <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 message 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="RFC8613">
          <front>
            <title>Object Security for Constrained RESTful Environments (OSCORE)</title>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <author fullname="J. Mattsson" initials="J." surname="Mattsson"/>
            <author fullname="F. Palombini" initials="F." surname="Palombini"/>
            <author fullname="L. Seitz" initials="L." surname="Seitz"/>
            <date month="July" year="2019"/>
            <abstract>
              <t>This document defines Object Security for Constrained RESTful Environments (OSCORE), a method for application-layer protection of the Constrained Application Protocol (CoAP), using CBOR Object Signing and Encryption (COSE). OSCORE provides end-to-end protection between endpoints communicating using CoAP or CoAP-mappable HTTP. OSCORE is designed for constrained nodes and networks supporting a range of proxy operations, including translation between different transport protocols.</t>
              <t>Although an optional functionality of CoAP, OSCORE alters CoAP options processing and IANA registration. Therefore, this document updates RFC 7252.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8613"/>
          <seriesInfo name="DOI" value="10.17487/RFC8613"/>
        </reference>
        <reference anchor="RFC8724">
          <front>
            <title>SCHC: Generic Framework for Static Context Header Compression and Fragmentation</title>
            <author fullname="A. Minaburo" initials="A." surname="Minaburo"/>
            <author fullname="L. Toutain" initials="L." surname="Toutain"/>
            <author fullname="C. Gomez" initials="C." surname="Gomez"/>
            <author fullname="D. Barthel" initials="D." surname="Barthel"/>
            <author fullname="JC. Zuniga" initials="JC." surname="Zuniga"/>
            <date month="April" year="2020"/>
            <abstract>
              <t>This document defines the Static Context Header Compression and fragmentation (SCHC) framework, which provides both a header compression mechanism and an optional fragmentation mechanism. SCHC has been designed with Low-Power Wide 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 application to compress IPv6/UDP headers.</t>
              <t>This document also specifies an optional fragmentation and reassembly mechanism. It can be used to support the IPv6 MTU requirement over the LPWAN technologies. Fragmentation is needed for IPv6 datagrams 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 over which they are used. This document defines generic functionalities and offers flexibility with regard to parameter settings and mechanism choices. This document standardizes the exchange over the LPWAN between two SCHC entities. Settings and choices specific to a technology or a product are expected to be grouped into profiles, which are specified in other documents. Data models for the context 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">
          <front>
            <title>Static Context Header Compression (SCHC) for the Constrained Application Protocol (CoAP)</title>
            <author fullname="A. Minaburo" initials="A." surname="Minaburo"/>
            <author fullname="L. Toutain" initials="L." surname="Toutain"/>
            <author fullname="R. Andreasen" initials="R." surname="Andreasen"/>
            <date month="June" year="2021"/>
            <abstract>
              <t>This document defines how to compress Constrained Application Protocol (CoAP) headers using the Static Context Header Compression and fragmentation (SCHC) framework. SCHC defines a header compression mechanism adapted for Constrained Devices. SCHC uses a static description of the header to reduce the header's redundancy and size. While RFC 8724 describes the SCHC compression and fragmentation framework, and its application for IPv6/UDP headers, this document applies SCHC to CoAP headers. The CoAP header structure differs from IPv6 and UDP, since CoAP uses a flexible header with a variable number of options, themselves of variable length. The CoAP message format is asymmetric: the request messages have a header format different from the format in the response messages. This specification gives guidance on applying SCHC to flexible headers and how to leverage 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="I-D.ietf-schc-universal-option">
          <front>
            <title>Options representation in SCHC YANG Data Models</title>
            <author fullname="Quentin Lampin" initials="Q." surname="Lampin">
              <organization>Orange</organization>
            </author>
            <author fullname="Ana Minaburo" initials="A." surname="Minaburo">
              <organization>Consultant</organization>
            </author>
            <author fullname="Marco Tiloca" initials="M." surname="Tiloca">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Laurent Toutain" initials="L." surname="Toutain">
              <organization>IMT Atlantique</organization>
            </author>
            <author fullname="Samar Sirohi" initials="S." surname="Sirohi">
              <organization>Institut MINES TELECOM; IMT Atlantique</organization>
            </author>
            <date day="22" month="October" year="2026"/>
            <abstract>
              <t>   Keeping option identifiers in SCHC Rules simplifies interoperability
   and the evolution of SCHC compression when a protocol introduces
   options that the current SCHC implementation does not know.  This
   document explains why the Field Identifiers (FIDs) defined for CoAP
   options in RFC 9363 do not scale: a FID must be allocated,
   standardized and implemented for each option a protocol defines,
   before any Rule can describe that option.  It presents an evolution
   of the compression Rule defined in RFC 9363, in which an entry refers
   to an option by the pair (option space, option number), called a
   Universal Option, and in which entries are indexed, ordered and can
   reference one another.  It also presents a data model dedicated to
   CoAP, which processes options directly from the option number carried
   in the message, instead of mapping each option to a FID of its own.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-schc-universal-option-02"/>
        </reference>
        <reference anchor="I-D.ietf-schc-icmpv6-compression">
          <front>
            <title>Static Context Header Compression (SCHC) for the Internet Control Message Protocol (ICMPv6)</title>
            <author fullname="Dominique Barthel" initials="D." surname="Barthel">
         </author>
            <author fullname="Laurent Toutain" initials="L." surname="Toutain">
              <organization>IMT Atlantique</organization>
            </author>
            <author fullname="Marion Dumay" initials="M." surname="Dumay">
              <organization>Orange</organization>
            </author>
            <date day="22" month="October" year="2026"/>
            <abstract>
              <t>   This document describes how the ICMPv6 protocol can be integrated
   into the SCHC architecture.  It extends the YANG Data Model with new
   field IDs specific to ICMPv6 headers.

   To enhance the compression of ICMPv6 error messages, the document
   also introduces two new Matching Operators and two new Compression
   Decompression Actions to manipulate the ICMPv6 payload.

   Finally, for constrained networks such as LPWAN, it introduces a
   proxy behavior, where a SCHC Core end-point may anticipate the device
   reaction to incorrect messages.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-schc-icmpv6-compression-03"/>
        </reference>
        <reference anchor="I-D.ietf-schc-8824-update">
          <front>
            <title>Static Context Header Compression (SCHC) for the Constrained Application Protocol (CoAP)</title>
            <author fullname="Marco Tiloca" initials="M." surname="Tiloca">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Laurent Toutain" initials="L." surname="Toutain">
              <organization>IMT Atlantique</organization>
            </author>
            <author fullname="Iván Martínez" initials="I." surname="Martínez">
              <organization>IRISA</organization>
            </author>
            <author fullname="Ana Minaburo" initials="A." surname="Minaburo">
              <organization>Consultant</organization>
            </author>
            <date day="26" month="July" year="2026"/>
            <abstract>
              <t>   This document defines how to compress Constrained Application
   Protocol (CoAP) headers using the Static Context Header Compression
   and fragmentation (SCHC) framework.  SCHC defines a header
   compression mechanism adapted for constrained devices, and it uses a
   static description of the header to reduce the header's redundancy
   and size.  While RFC 8724 describes the SCHC compression and
   fragmentation framework and its application for IPv6 and UDP headers,
   this document applies SCHC to CoAP headers.  The CoAP header
   structure differs from that of IPv6 and UDP headers, since CoAP uses
   a flexible header with a variable number of options that are in turn
   of variable length.  The CoAP message format is asymmetric, i.e.,
   request messages have a header format different from that of response
   messages.  This specification gives guidance on applying SCHC to
   flexible headers and on leveraging the message format asymmetry for
   defining more efficient compression Rules.  This document replaces
   and obsoletes RFC 8824.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-schc-8824-update-10"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC9441">
          <front>
            <title>Static Context Header Compression (SCHC) Compound Acknowledgement (ACK)</title>
            <author fullname="J. Zúñiga" initials="J." surname="Zúñiga"/>
            <author fullname="C. Gomez" initials="C." surname="Gomez"/>
            <author fullname="S. Aguilar" initials="S." surname="Aguilar"/>
            <author fullname="L. Toutain" initials="L." surname="Toutain"/>
            <author fullname="S. Céspedes" initials="S." surname="Céspedes"/>
            <author fullname="D. Wistuba" initials="D." surname="Wistuba"/>
            <date month="July" year="2023"/>
            <abstract>
              <t>This document updates the Static Context Header Compression (SCHC) and fragmentation protocol (RFC 8724) and the corresponding YANG module (RFC 9363). It defines a SCHC Compound Acknowledgement (ACK) message format and procedure, which are intended to reduce the number of response transmissions (i.e., SCHC ACKs) in the ACK-on-Error Mode, by accumulating bitmaps of several windows in a single SCHC message (i.e., the SCHC Compound ACK).</t>
              <t>Both the message format and procedure are generic, so they can be used, for instance, by any of the four Low-Power Wide Area Network (LPWAN) technologies defined in RFC 8376, which are Sigfox, Long Range Wide Area Network (LoRaWAN), Narrowband Internet of Things (NB-IoT), and IEEE 802.15.4w.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9441"/>
          <seriesInfo name="DOI" value="10.17487/RFC9441"/>
        </reference>
        <reference anchor="RFC9442">
          <front>
            <title>Static Context Header Compression (SCHC) over Sigfox Low-Power Wide Area Network (LPWAN)</title>
            <author fullname="J. Zúñiga" initials="J." surname="Zúñiga"/>
            <author fullname="C. Gomez" initials="C." surname="Gomez"/>
            <author fullname="S. Aguilar" initials="S." surname="Aguilar"/>
            <author fullname="L. Toutain" initials="L." surname="Toutain"/>
            <author fullname="S. Céspedes" initials="S." surname="Céspedes"/>
            <author fullname="D. Wistuba" initials="D." surname="Wistuba"/>
            <author fullname="J. Boite" initials="J." surname="Boite"/>
            <date month="July" year="2023"/>
            <abstract>
              <t>The Static Context Header Compression (SCHC) and fragmentation specification (RFC 8724) describes a generic framework for application header compression and fragmentation modes designed for Low-Power Wide Area Network (LPWAN) technologies. This document defines a profile of SCHC over Sigfox LPWAN and provides optimal parameter values and modes of operation.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9442"/>
          <seriesInfo name="DOI" value="10.17487/RFC9442"/>
        </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"/>
        </reference>
        <reference anchor="I-D.toutain-schc-coreconf-management">
          <front>
            <title>CORECONF Rule management for SCHC</title>
            <author fullname="Ana Minaburo" initials="A." surname="Minaburo">
              <organization>Consultant</organization>
            </author>
            <author fullname="Laurent Toutain" initials="L." surname="Toutain">
              <organization>IMT Atlantique</organization>
            </author>
            <author fullname="Javier Alejandro FERNANDEZ" initials="J. A." surname="FERNANDEZ">
              <organization>IMT Atlantique</organization>
            </author>
            <author fullname="Corentin Banier" initials="C." surname="Banier">
              <organization>IMT Atlantique</organization>
            </author>
            <author fullname="Marion Dumay" initials="M." surname="Dumay">
              <organization>Orange</organization>
            </author>
            <date day="19" month="October" year="2025"/>
            <abstract>
              <t>   This document describes how CORECONF can be applied to SCHC for
   context and rule set management between endpoints.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-toutain-schc-coreconf-management-01"/>
        </reference>
        <reference anchor="I-D.ietf-core-oscore-key-update">
          <front>
            <title>Key Update for OSCORE (KUDOS)</title>
            <author fullname="Rikard Höglund" initials="R." surname="Höglund">
              <organization>RISE AB</organization>
            </author>
            <author fullname="Marco Tiloca" initials="M." surname="Tiloca">
              <organization>RISE AB</organization>
            </author>
            <date day="6" month="July" year="2026"/>
            <abstract>
              <t>   Communications with the Constrained Application Protocol (CoAP) can
   be protected end-to-end at the application-layer by using the
   security protocol Object Security for Constrained RESTful
   Environments (OSCORE).  Under some circumstances, two CoAP endpoints
   need to update their OSCORE keying material before communications can
   securely continue, e.g., due to approaching key usage limits.  This
   document defines Key Update for OSCORE (KUDOS), a lightweight key
   update procedure that two CoAP endpoints can use to update their
   OSCORE keying material by establishing a new OSCORE Security Context.
   Accordingly, this document updates the use of the OSCORE flag bits in
   the CoAP OSCORE Option as well as the protection of CoAP response
   messages with OSCORE.  Also, it deprecates the key update procedure
   specified in Appendix B.2 of RFC 8613.  Therefore, this document
   updates RFC 8613.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-oscore-key-update-14"/>
        </reference>
        <reference anchor="RFC4443">
          <front>
            <title>Internet Control Message Protocol (ICMPv6) for the Internet Protocol Version 6 (IPv6) Specification</title>
            <author fullname="A. Conta" initials="A." surname="Conta"/>
            <author fullname="S. Deering" initials="S." surname="Deering"/>
            <author fullname="M. Gupta" initials="M." role="editor" surname="Gupta"/>
            <date month="March" year="2006"/>
            <abstract>
              <t>This document describes the format of a set of control messages used in ICMPv6 (Internet Control Message Protocol). ICMPv6 is the Internet Control Message Protocol for Internet Protocol version 6 (IPv6). [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="89"/>
          <seriesInfo name="RFC" value="4443"/>
          <seriesInfo name="DOI" value="10.17487/RFC4443"/>
        </reference>
        <reference anchor="RFC7967">
          <front>
            <title>Constrained Application Protocol (CoAP) Option for No Server Response</title>
            <author fullname="A. Bhattacharyya" initials="A." surname="Bhattacharyya"/>
            <author fullname="S. Bandyopadhyay" initials="S." surname="Bandyopadhyay"/>
            <author fullname="A. Pal" initials="A." surname="Pal"/>
            <author fullname="T. Bose" initials="T." surname="Bose"/>
            <date month="August" year="2016"/>
            <abstract>
              <t>There can be machine-to-machine (M2M) scenarios where server responses 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 (NON) messages that are not acknowledged by the recipient. However, the request/response semantics still require the server to respond with a status code indicating "the result of the attempt to understand and satisfy the request", 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 its disinterest in all responses against the particular request. This option also provides granular control to enable expression of disinterest to a particular response class or a combination of response classes. The server MAY decide to suppress the response by not transmitting it back to the client according to the value 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 examples 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="RFC8376">
          <front>
            <title>Low-Power Wide Area Network (LPWAN) Overview</title>
            <author fullname="S. Farrell" initials="S." role="editor" surname="Farrell"/>
            <date month="May" year="2018"/>
            <abstract>
              <t>Low-Power Wide Area Networks (LPWANs) are wireless technologies with characteristics such as large coverage areas, low bandwidth, possibly very small packet and application-layer data sizes, and long battery life operation. This memo is an informational overview of the set of LPWAN technologies being considered in the IETF and of the gaps that exist between the needs of those technologies 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">
          <front>
            <title>Static Context Header Compression and Fragmentation (SCHC) over LoRaWAN</title>
            <author fullname="O. Gimenez" initials="O." role="editor" surname="Gimenez"/>
            <author fullname="I. Petrov" initials="I." role="editor" surname="Petrov"/>
            <date month="April" year="2021"/>
            <abstract>
              <t>The Static Context Header Compression and fragmentation (SCHC) specification (RFC 8724) describes generic header compression and fragmentation techniques for Low-Power Wide Area Network (LPWAN) technologies. SCHC is a generic mechanism 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) for use in LoRaWAN networks and provides elements such as efficient parameterization and modes of operation.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9011"/>
          <seriesInfo name="DOI" value="10.17487/RFC9011"/>
        </reference>
        <reference anchor="RFC9363">
          <front>
            <title>A YANG Data Model for Static Context Header Compression (SCHC)</title>
            <author fullname="A. Minaburo" initials="A." surname="Minaburo"/>
            <author fullname="L. Toutain" initials="L." surname="Toutain"/>
            <date month="March" year="2023"/>
            <abstract>
              <t>This document describes a YANG data model for the Static Context Header Compression (SCHC) compression and fragmentation Rules.</t>
              <t>This document formalizes the description of the Rules for better interoperability between SCHC instances either to exchange a set of Rules or to modify the parameters of some Rules.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9363"/>
          <seriesInfo name="DOI" value="10.17487/RFC9363"/>
        </reference>
      </references>
    </references>
    <?line 3218?>

<section anchor="annex-a-example">
      <name>Example</name>
      <t>The informal Rules given <xref target="Fig-example-rules"/> are represented in XML, as shown in <xref target="Fig-XML-rules"/>.</t>
      <figure anchor="Fig-example-rules">
        <name>Rules Example</name>
        <artwork type="ascii-art"><![CDATA[
/-------------------------\
|Rule 6/3            110  |
|---------------+---+--+--+----------------+-------+----------------\
|IPV6.VER       |  4| 1|BI|               6|EQUAL  |NOT-SENT        |
|IPV6.TC        |  8| 1|BI|               0|EQUAL  |NOT-SENT        |
|IPV6.FL        | 20| 1|BI|               0|IGNORE |NOT-SENT        |
|IPV6.LEN       | 16| 1|BI|                |IGNORE |COMPUTE-LENGTH  |
|IPV6.NXT       |  8| 1|BI|              58|EQUAL  |NOT-SENT        |
|IPV6.HOP_LMT   |  8| 1|BI|             255|IGNORE |NOT-SENT        |
|IPV6.DEV_PREFIX| 64| 1|BI|200104701f2101d2|EQUAL  |NOT-SENT        |
|IPV6.DEV_IID   | 64| 1|BI|0000000000000003|EQUAL  |NOT-SENT        |
|IPV6.APP_PREFIX| 64| 1|BI|                |IGNORE |VALUE-SENT      |
|IPV6.APP_IID   | 64| 1|BI|                |IGNORE |VALUE-SENT      |
\---------------+---+--+--+----------------+-------+----------------/
/-------------------------\
|Rule 12/11     00001100  |
!=========================+=========================================\
!^ Fragmentation mode : NoAck   header dtag 2 Window  0 FCN  3  UP ^!
!^ No Tile size specified                                          ^!
!^ RCS Algorithm: RCS_CRC32                                        ^!
\===================================================================/
/-------------------------\
|Rule 100/8     01100100  |
| NO-COMPRESSION RULE     |
\-------------------------/
]]></artwork>
      </figure>
      <figure anchor="Fig-XML-rules">
        <name>XML Representation of the Rules</name>
        <sourcecode type="xml"><![CDATA[
<?xml version='1.0' encoding='UTF-8'?>
  <schc xmlns="urn:ietf:params:xml:ns:yang:ietf-schc">
  <rule>
    <rule-id-value>6</rule-id-value>
    <rule-id-length>3</rule-id-length>
    <rule-nature>nature-compression</rule-nature>
    <entry-universal>
      <entry-index>0</entry-index>
      <field-id>fid-ipv6-version</field-id>
      <field-length>4</field-length>
      <field-position>1</field-position>
      <direction-indicator>di-bidirectional</direction-indicator>
      <matching-operator>mo-equal</matching-operator>
      <comp-decomp-action>cda-not-sent</comp-decomp-action>
      <target-value>
        <index>0</index>
        <value>AAY=</value>
      </target-value>
    </entry-universal>
    <entry-universal>
      <entry-index>1</entry-index>
      <field-id>fid-ipv6-trafficclass</field-id>
      <field-length>8</field-length>
      <field-position>1</field-position>
      <direction-indicator>di-bidirectional</direction-indicator>
      <matching-operator>mo-equal</matching-operator>
      <comp-decomp-action>cda-not-sent</comp-decomp-action>
      <target-value>
        <index>0</index>
        <value>AA==</value>
      </target-value>
    </entry-universal>
    <entry-universal>
      <entry-index>2</entry-index>
      <field-id>fid-ipv6-flowlabel</field-id>
      <field-length>20</field-length>
      <field-position>1</field-position>
      <direction-indicator>di-bidirectional</direction-indicator>
      <matching-operator>mo-ignore</matching-operator>
      <comp-decomp-action>cda-not-sent</comp-decomp-action>
      <target-value>
        <index>0</index>
        <value>AA==</value>
      </target-value>
    </entry-universal>
    <entry-universal>
      <entry-index>3</entry-index>
      <field-id>fid-ipv6-payload-length</field-id>
      <field-length>16</field-length>
      <field-position>1</field-position>
      <direction-indicator>di-bidirectional</direction-indicator>
      <matching-operator>mo-ignore</matching-operator>
      <comp-decomp-action>cda-compute</comp-decomp-action>
    </entry-universal>
    <entry-universal>
      <entry-index>4</entry-index>
      <field-id>fid-ipv6-nextheader</field-id>
      <field-length>8</field-length>
      <field-position>1</field-position>
      <direction-indicator>di-bidirectional</direction-indicator>
      <matching-operator>mo-equal</matching-operator>
      <comp-decomp-action>cda-not-sent</comp-decomp-action>
      <target-value>
        <index>0</index>
        <value>ADo=</value>
      </target-value>
    </entry-universal>
    <entry-universal>
      <entry-index>5</entry-index>
      <field-id>fid-ipv6-hoplimit</field-id>
      <field-length>8</field-length>
      <field-position>1</field-position>
      <direction-indicator>di-bidirectional</direction-indicator>
      <matching-operator>mo-ignore</matching-operator>
      <comp-decomp-action>cda-not-sent</comp-decomp-action>
      <target-value>
        <index>0</index>
        <value>AP8=</value>
      </target-value>
    </entry-universal>
    <entry-universal>
      <entry-index>6</entry-index>
      <field-id>fid-ipv6-devprefix</field-id>
      <field-length>64</field-length>
      <field-position>1</field-position>
      <direction-indicator>di-bidirectional</direction-indicator>
      <matching-operator>mo-equal</matching-operator>
      <comp-decomp-action>cda-not-sent</comp-decomp-action>
      <target-value>
        <index>0</index>
        <value>IAEEcB8hAdI=</value>
      </target-value>
    </entry-universal>
    <entry-universal>
      <entry-index>7</entry-index>
      <field-id>fid-ipv6-deviid</field-id>
      <field-length>64</field-length>
      <field-position>1</field-position>
      <direction-indicator>di-bidirectional</direction-indicator>
      <matching-operator>mo-equal</matching-operator>
      <comp-decomp-action>cda-not-sent</comp-decomp-action>
      <target-value>
        <index>0</index>
        <value>AAAAAAAAAAM=</value>
      </target-value>
    </entry-universal>
    <entry-universal>
      <entry-index>8</entry-index>
      <field-id>fid-ipv6-appprefix</field-id>
      <field-length>64</field-length>
      <field-position>1</field-position>
      <direction-indicator>di-bidirectional</direction-indicator>
      <matching-operator>mo-ignore</matching-operator>
      <comp-decomp-action>cda-value-sent</comp-decomp-action>
    </entry-universal>
    <entry-universal>
      <entry-index>9</entry-index>
      <field-id>fid-ipv6-appiid</field-id>
      <field-length>64</field-length>
      <field-position>1</field-position>
      <direction-indicator>di-bidirectional</direction-indicator>
      <matching-operator>mo-ignore</matching-operator>
      <comp-decomp-action>cda-value-sent</comp-decomp-action>
    </entry-universal>
  </rule>
  <rule>
    <rule-id-value>12</rule-id-value>
    <rule-id-length>11</rule-id-length>
    <rule-nature>nature-fragmentation</rule-nature>
    <direction>di-up</direction>
    <rcs-algorithm>rcs-crc32</rcs-algorithm>
    <dtag-size>2</dtag-size>
    <fcn-size>3</fcn-size>
    <fragmentation-mode
      >fragmentation-mode-no-ack</fragmentation-mode>
  </rule>
  <rule>
    <rule-id-value>100</rule-id-value>
    <rule-id-length>8</rule-id-length>
    <rule-nature>nature-no-compression</rule-nature>
  </rule>
 </schc>
]]></sourcecode>
      </figure>
    </section>
    <section numbered="false" anchor="changes">
      <name>Changes from RFC 9363</name>
      <ul spacing="normal">
        <li>
          <t>Header: the document obsoletes RFC 9363, in the <tt>schc</tt> working group.</t>
        </li>
        <li>
          <t>Abstract: the document is presented as an update of the SCHC data model
(protocol options, ICMPv6, Rule management).</t>
        </li>
        <li>
          <t>Introduction: RFC 9363 is presented as a data model dedicated to LPWAN
environments, where the Rules were mostly installed directly in the SCHC
end-points. The goal becomes to update the formal description of the Rules
and to extend SCHC to new environments.</t>
        </li>
        <li>
          <t>Introduction: the data model also represents the management Rules.</t>
        </li>
        <li>
          <t>Introduction: new closing paragraph. The revision introduces context
evolution, the SCHC instances creating and deleting Rules to fit the
compression to the traffic, and describes the protocol options generically;
SCHC can then be used beyond LPWANs, including 5G and 6G cellular networks.</t>
        </li>
        <li>
          <t>Introduction: third goal, the management of the Rules by the SCHC instances
themselves (creation and deletion with CORECONF).</t>
        </li>
        <li>
          <t>Introduction: why this document is a revision and not an augmentation of
RFC 9363 (new key of the compression entries). The universal options are a
new format of the entries, not an augmentation.</t>
        </li>
        <li>
          <t>Terminology: new terms Action, Entry Index, Guard Period, Management Rule,
Rule Status, Space ID, and Universal Option.</t>
        </li>
        <li>
          <t>SCHC Rules: fields are also specified by the Universal Option and ICMPv6
compression documents.</t>
        </li>
        <li>
          <t>SCHC Rules: the management can also be selected with a feature statement.</t>
        </li>
        <li>
          <t>SCHC Rules: fields for the OSCORE Key Update (KUDOS).</t>
        </li>
        <li>
          <t>SCHC Rules: the introduction, moved to a new subsection "Evolution of the
SCHC Rules", is rewritten as a history of the data model:
the informal Rules of RFC 8724, the YANG data model of RFC 9363, then the
documents that augment the module (Compound ACK, whose augmentation remains
valid with this revision) or introduce elements for this revision (CoAP
update, universal options, ICMPv6, SCHC over Sigfox, Rule management).</t>
        </li>
        <li>
          <t>New section "Convention for Space Identifier": options referenced by a
Space ID and their option number (<tt>space-id-base-type</tt>, <tt>space-id-coap</tt>,
<tt>space-id-type</tt>, common ancestor <tt>space-field-id-base-type</tt>), and
deprecation of the per-option CoAP Field IDs of RFC 9363.</t>
        </li>
        <li>
          <t>Convention for Field Length: new functions <tt>fl-length-bytes</tt>,
<tt>fl-length-bits</tt>, <tt>fl-variable-bits</tt>, and <tt>fl-remaining</tt>; a Field Length
function can take a numerical argument, carried in the <tt>field-length-value</tt>
leaf.</t>
        </li>
        <li>
          <t>Convention for Matching Operator: new MOs <tt>mo-rule-match</tt> and
<tt>mo-rev-rule-match</tt>.</t>
        </li>
        <li>
          <t>Convention for Compression Decompression Actions: new CDAs
<tt>cda-compress-sent</tt> and <tt>cda-rev-compress-sent</tt>.</t>
        </li>
        <li>
          <t>New section "Convention for Action": <tt>action-forward</tt> is the default
Action, carried in the <tt>action</tt> leaf, with its arguments in <tt>action-value</tt>.</t>
        </li>
        <li>
          <t>Conventions for Field Length, Matching Operator, CDA, and Action: the new
identities are listed, and their behavior is described in the documents
that define them.</t>
        </li>
        <li>
          <t>New section "Main Updates from RFC 9363": main updates of the YANG data
model, with the sections describing them and references to the ICMPv6
compression and CORECONF management documents.</t>
        </li>
        <li>
          <t>YANG module: <tt>fid-oscore-base-type</tt>, not used as a base, is deprecated.</t>
        </li>
        <li>
          <t>Compression Rule: the <tt>compression-content</tt> grouping is deprecated in favor
of <tt>compression-content-universal</tt> (Universal Options, <tt>entry-index</tt> key,
<tt>field-length-value</tt>).</t>
        </li>
        <li>
          <t>Compression Rule: the checks also cover the CDA Target Value, already
checked by the module of RFC 9363, and the nature of the Rules using
<tt>entry-universal</tt> (compression or management). In <tt>entry-universal</tt>, the
<tt>field-length-value</tt> is checked for <tt>fl-length-bytes</tt> and <tt>fl-length-bits</tt>,
and the per-option CoAP Field IDs are rejected. The CDA check no longer
requires a Target Value for <tt>cda-compress-sent</tt> and
<tt>cda-rev-compress-sent</tt>.</t>
        </li>
        <li>
          <t>Compression Rule: the identities defined by this revision MUST NOT be used
in the deprecated <tt>entry</tt> list.</t>
        </li>
        <li>
          <t>Fragmentation Rule (Rule Definition): unchanged from RFC 9363, augmented by
RFC 9441 to allow several bitmaps in a SCHC ACK message.</t>
        </li>
        <li>
          <t>Acknowledgment Behavior: reference to the Compound ACK of RFC 9441, its
<tt>bitmap-format</tt> leaf and its <tt>last-bitmap-compression</tt> leaf, which disables
the compression of the last bitmap.</t>
        </li>
        <li>
          <t>New section "Management Rule": management Rules, defined in
draft-toutain-schc-coreconf-management, modify the Set of Rules, except the
management Rules themselves; the Guard period, global to all the Rules and
coded as the fragmentation timers; the <tt>rule-status</tt> leaf, present with the
<tt>management</tt> feature, with the values <tt>status-valid</tt>, <tt>status-candidate</tt>,
<tt>status-invalid</tt>, and <tt>status-free</tt>; its value is a local view of the
management protocol machine, and any value sent by the other end is
overwritten. A Rule with <tt>status-free</tt> is processed as if it did not
exist in the Set of Rules. Only the Rules with <tt>status-valid</tt> can be used for
compression and fragmentation. Management Rules are always valid.</t>
        </li>
        <li>
          <t>YANG Data Model: the module of RFC 9363 is replaced by the revision
<tt>ietf-schc@2026-10-27</tt>.</t>
        </li>
        <li>
          <t>YANG Data Model: the working revisions of the module are merged into a
single revision, 2026-10-27, followed by the 2023-03-01 revision of
RFC 9363. The module passes <tt>pyang --ietf</tt> (canonical order of the
statements, description of <tt>guard-period</tt>).</t>
        </li>
        <li>
          <t>Rule status: new <tt>status-origin</tt>, derived from <tt>status-valid</tt>, for the Rules
of the initial Set of Rules, which cannot be modified or deleted and are the
only ones kept by a reset of the context. It is the default value of
<tt>rule-status</tt>, and the status of the management Rules.</t>
        </li>
        <li>
          <t>YANG Data Model: the <tt>duplicate-rule</tt> RPC is removed; it is defined in
draft-toutain-schc-coreconf-management.</t>
        </li>
        <li>
          <t>YANG Data Model: <tt>action-base-type</tt> and <tt>action-proxy-ping</tt> reference
Section 7 of draft-ietf-schc-icmpv6-compression instead of
draft-barthel-lpwan-oam-schc.</t>
        </li>
        <li>
          <t>Example: the compression Rule uses the <tt>entry-universal</tt> list, with an
<tt>entry-index</tt> per entry; the line breaks inside the <tt>fragmentation-mode</tt>
value, which made the RFC 9363 example invalid, are moved inside the start
tag.</t>
        </li>
        <li>
          <t>Compression Rule: the deprecation of the per-option CoAP Field IDs (OSCORE
and KUDOS sub-fields remain current) and the validity of the deprecated
definitions (RFC 7950, Section 7.21.2); the per-option CoAP Field IDs MUST
NOT be used in <tt>entry-universal</tt>.</t>
        </li>
        <li>
          <t>Rule Definition: fourth nature, <tt>nature-management</tt>, for the management
Rules.</t>
        </li>
        <li>
          <t>YANG Tree: updated to the new module (<tt>context</tt> container, <tt>rule-status</tt>,
<tt>compression-universal</tt> case with <tt>entry-universal</tt>, and <tt>action</tt>).</t>
        </li>
        <li>
          <t>Fragmentation Rule: the <tt>ietf-schc-compound-ack</tt> module of RFC 9441
augments this data model to acknowledge several windows in a single ACK,
and remains valid for this revision.</t>
        </li>
        <li>
          <t>Convention for Field Identifier: deprecated CoAP Field IDs, new OSCORE and
KUDOS sub-fields, ICMPv6 Field IDs, and the protocol-independent
<tt>fid-unused</tt> and <tt>fid-payload</tt>.</t>
        </li>
        <li>
          <t>Editorial: the identifiers of the YANG data model are written in courier in
the text.</t>
        </li>
        <li>
          <t>References: RFC 7950 (YANG 1.1) becomes normative, since the deprecation
rules of its Section 11 are applied.</t>
        </li>
      </ul>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The authors would like to thank <contact fullname="Dominique Barthel"/>, <contact fullname="Carsten Bormann"/>, <contact fullname="Ivan Martinez"/>, and <contact fullname="Alexander Pelov"/> for their careful reading and valuable inputs. A special thanks for
<contact fullname="Joe Clarke"/>, <contact fullname="Carl Moberg"/>, <contact fullname="Tom Petch"/>, <contact fullname="Martin Thomson"/>,
and <contact fullname="Éric Vyncke"/> for their explanations and wise advice when building the model.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA+x961obSZLofz1FLf0DmJEEAozd2N0zGHA33xjMGty9853d
HQqpBLUuVWmrSmDWeJ7lPMt5shPXvFSVhADjts+xpqcblSozIyMjIyMi49Lp
dFplXCbRVrCwHfx9+/CXYDcsw+AgG0RJMMzy4LgMy7gf7GRpGX0og1+jcBDl
8HU0zqOiiLM0WDre+XVneaEVnp3l0SV0hN+rfS20Blk/DUcw0CAPh2WnzCZl
GKedon/R7+TD/o/rm+tncdFZXW1lZ0WWRGVUbAX4tNUPy+g8y6+3gqIctOJx
vhWU+aQo11ZXf1xdaxWTs1FMoJTXY+h/f+/kVaufpUWUFpOC3o1aANd6K8yj
EOCL03KhdZXl78/zbDKGBwjDQut9dA0PB1utoNMwTXz6Kg/PR1GKGOEHNNO3
kyTCL/tHl5v433e7R/ifnWyb/vvmeOfN271WOCkvshw7bwXwiVOAbLsbHMRp
eDbJM3rI+NlOQ/9xlp/j8vTfJ3G2QE+KMo+iEh72eutPt4PwMkonUTCIimDn
IhyNi+BlEqb9gl/uxyWgbmEH5pGlnePoMj5Po2AnGkQf5AVYIHhh/cmT3qo+
maQlInwBppz2I34ajcI42QrCNPxrCMB048ybzetucMKL6kzmdTjJAWPeLzyf
/bQAypuUwcH+4d5xcLL3em/nzcHzYP/gJNguAf4y/u9JVJnvWpDTRIMkxKlC
lzCXPIxhPsdB7+nm6tM7z/np5hxzlml0ZRp/jUdlJzRAdod5K83yEdDFZQRL
HLx9tbP6dPOZ/LnW6/0of65vPtOnm6trq/rn2kbP/rkmfz7trW/qn2tPzNMf
n2izZ6sb5s/e0w39E7aF/rlu+oU/tYdnGxva77PN3rr++XTN9PCM/9zv7Hbj
qBzyHp2kMLm8CJNONkb6r78R90fjy81O326a+jvYd2cyHsCW3mrF6bCCtR83
DMTw55rXPhlfhWknzPsXcRn1S1gQ/dnjJf0sj2D3DzsjINTzCPer1w3+3skK
+g9seQMMDbqxsbFuEL351CDvqWLsx9WeARB401ar1el0gvAMKDTsl63WyUVc
BMDqJjgu7sh+Hp/BvgyZIQ6QIY4Mcy0vorkZbMvBK+zBQTB0uRFxoaJbBYDw
m8T/AxDgWAwPLV+QDekRtSNgzqKyjHJYFPh3NoZddRYnsI3w+VUUpczsYKeX
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
J5IAAHgzTUEMBAIA

-->

</rfc>
