<?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.29 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-toutain-schc-coreconf-management-00" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.28.1 -->
  <?v3xml2rfc silence="Found SVG with width or height specified"?>
  <front>
    <title abbrev="SCHC for CoAP">CORECONF Rule management for SCHC</title>
    <seriesInfo name="Internet-Draft" value="draft-toutain-schc-coreconf-management-00"/>
    <author initials="A." surname="Minaburo" fullname="Ana Minaburo">
      <organization>Consultant</organization>
      <address>
        <postal>
          <street>Rue de Rennes</street>
          <city>Cesson-Sevigne</city>
          <code>35510</code>
          <country>France</country>
        </postal>
        <email>anaminaburo@gmail.com</email>
      </address>
    </author>
    <author initials="L." surname="Toutain" fullname="Laurent Toutain">
      <organization>IMT Atlantique</organization>
      <address>
        <postal>
          <street>CS 17607, 2 rue de la Chataigneraie</street>
          <city>Cesson-Sevigne Cedex</city>
          <code>35576</code>
          <country>France</country>
        </postal>
        <email>Laurent.Toutain@imt-atlantique.fr</email>
      </address>
    </author>
    <author initials="C." surname="Banier" fullname="Corentin Banier">
      <organization>IMT Atlantique</organization>
      <address>
        <postal>
          <street>CS 17607, 2 rue de la Chataigneraie</street>
          <city>Cesson-Sevigne Cedex</city>
          <code>35576</code>
          <country>France</country>
        </postal>
        <email>corentin.banier@imt-atlantique.fr</email>
      </address>
    </author>
    <author initials="M." surname="Dumay" fullname="Marion Dumay">
      <organization>Orange</organization>
      <address>
        <email>marion.dumay@orange.com</email>
      </address>
    </author>
    <date year="2025" month="May" day="24"/>
    <area>Internet</area>
    <workgroup>SCHC Working Group</workgroup>
    <keyword>Internet-Draft</keyword>
    <abstract>
      <?line 60?>

<t>This document describes how CORECONF management can be applied to SCHC Context.</t>
    </abstract>
  </front>
  <middle>
    <?line 65?>

<section anchor="introductionintro">
      <name>Introduction{#intro}</name>
      <t><xref target="RFC9363"/> defines the YANG Data Model for a SCHC context (a.k.a Set of Rules). <xref target="I-D.ietf-lpwan-architecture"/> proposes the architecture for rule management. Some rules must be clearly dedicated to the modification of the context.</t>
      <t><xref target="RFC9254"/> defines a way to serialize data issued from a YANG DM into a CBOR representation and <xref target="I-D.ietf-core-comi"/> defines the CoAP interface.</t>
      <t>This document describes in which condition management can be done, how to manage rules inside an SCHC instance using CORECONF and proposes some compression rules for the protocol headers.</t>
    </section>
    <section anchor="applicability-statement">
      <name>Applicability statement</name>
      <section anchor="architecture">
        <name>Architecture</name>
        <t>SCHC instance management allows the two end-points to modify the common SoR, by:</t>
        <ul spacing="normal">
          <li>
            <t>modifying rules values (such as TV, MO or CDA) in existing rules,</t>
          </li>
          <li>
            <t>adding a new rule,</t>
          </li>
          <li>
            <t>removing an existing rule.</t>
          </li>
        </ul>
        <t>The rule management uses the CORECONF interface <xref target="I-D.ietf-core-comi"/> based on CoAP. The management traffic is carried as SCHC compressed packets tagged to some specific rule IDs. They are identified as M rules in Figure <xref target="Fig-SCHCManagement"/>.  Management Rules (or M rules) can be either Compression rules or No compression rules. Only M rules can modify the SoR.</t>
        <t>Management procedures uses their own IPv6 stack, independent of the rest of the system.</t>
        <t>SCHC Packets using M Rules MUST be encrypted either by the underlying layer (for instance in a QUIC stream dedicated to management inside a QUIC connection) or directly using OSCORE or DTLS.</t>
        <figure anchor="Fig-SCHCManagement">
          <name>Inband Management</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="224" width="520" viewBox="0 0 520 224" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 8,32 L 8,144" fill="none" stroke="black"/>
                <path d="M 8,192 L 8,208" fill="none" stroke="black"/>
                <path d="M 152,32 L 152,144" fill="none" stroke="black"/>
                <path d="M 296,32 L 296,144" fill="none" stroke="black"/>
                <path d="M 328,160 L 328,192" fill="none" stroke="black"/>
                <path d="M 360,160 L 360,192" fill="none" stroke="black"/>
                <path d="M 440,32 L 440,144" fill="none" stroke="black"/>
                <path d="M 440,192 L 440,208" fill="none" stroke="black"/>
                <path d="M 8,32 L 152,32" fill="none" stroke="black"/>
                <path d="M 296,32 L 440,32" fill="none" stroke="black"/>
                <path d="M 8,144 L 56,144" fill="none" stroke="black"/>
                <path d="M 120,144 L 192,144" fill="none" stroke="black"/>
                <path d="M 256,144 L 344,144" fill="none" stroke="black"/>
                <path d="M 408,144 L 440,144" fill="none" stroke="black"/>
                <path d="M 328,160 L 360,160" fill="none" stroke="black"/>
                <path d="M 208,176 L 320,176" fill="none" stroke="black"/>
                <path d="M 328,192 L 360,192" fill="none" stroke="black"/>
                <path d="M 116,72 L 140,72" fill="none" stroke="black"/>
                <path d="M 404,72 L 428,72" fill="none" stroke="black"/>
                <path d="M 116,104 L 140,104" fill="none" stroke="black"/>
                <path d="M 404,104 L 428,104" fill="none" stroke="black"/>
                <path d="M 396,168 L 420,168" fill="none" stroke="black"/>
                <path d="M 396,200 L 420,200" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="328,176 316,170.4 316,181.6" fill="black" transform="rotate(0,320,176)"/>
                <g class="text">
                  <text x="72" y="52">^</text>
                  <text x="360" y="52">^</text>
                  <text x="40" y="68">C/D</text>
                  <text x="76" y="68">!M</text>
                  <text x="364" y="68">!M</text>
                  <text x="108" y="84">+-[]&gt;[SoR]</text>
                  <text x="224" y="84">...</text>
                  <text x="396" y="84">+-[]&gt;[SoR]</text>
                  <text x="72" y="100">!</text>
                  <text x="112" y="100">[</text>
                  <text x="144" y="100">]</text>
                  <text x="360" y="100">!</text>
                  <text x="400" y="100">[</text>
                  <text x="432" y="100">]</text>
                  <text x="72" y="116">!</text>
                  <text x="360" y="116">!</text>
                  <text x="72" y="132">F/R</text>
                  <text x="360" y="132">F/R</text>
                  <text x="88" y="148">ins_id1</text>
                  <text x="224" y="148">ins_idi</text>
                  <text x="376" y="148">ins_idn</text>
                  <text x="8" y="164">.</text>
                  <text x="176" y="164">C/D</text>
                  <text x="208" y="164">!</text>
                  <text x="248" y="164">M</text>
                  <text x="440" y="164">.</text>
                  <text x="8" y="180">.</text>
                  <text x="344" y="180">Mng</text>
                  <text x="396" y="180">&lt;=&gt;[SoR]</text>
                  <text x="440" y="180">.</text>
                  <text x="208" y="196">F/R</text>
                  <text x="392" y="196">[</text>
                  <text x="424" y="196">]</text>
                  <text x="84" y="212">..................</text>
                  <text x="216" y="212">Discriminator</text>
                  <text x="356" y="212">....................</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
+-----------------+                 +-----------------+
|       ^         |                 |       ^         |
|  C/D  !M    ___ |                 |       !M    ___ |
|       +-[]>[SoR]|       ...       |       +-[]>[SoR]|
|       !    [___]|                 |       !    [___]|
|       !         |                 |       !         |
|      F/R        |                 |      F/R        |
+------ins_id1----+-----ins_idi-----+------ins_idn----+         
.                   C/D  !    M         +---+    ___  .
.                        +------------->|Mng|<=>[SoR] .    
.                       F/R             +---+   [___] .
+.................. Discriminator ....................+
]]></artwork>
          </artset>
        </figure>
      </section>
      <section anchor="coap-profile">
        <name>CoAP Profile</name>
        <t>Management requests MUST be protected against packet loss. It is RECOMMENDED to use CONfirmable requests and no Token. If the management request is too large regarding the MTU, SCHC Fragmentation SHOULD be used instead of the Block option. As shown in figure <xref target="Fig-SCHCManagement"/> fragmentation can be common to Management rules and other rules.</t>
      </section>
      <section anchor="rule-modification">
        <name>Rule modification</name>
        <t>SCHC imposes that both ends share exactly the same SoR, therefore, a new or modified rule cannot be used while it remains in candidate status until the other end has validated the modification.
A candidate rule cannot be used, either in C/D or F/R. A SCHC PDU MUST NOT be generated with a candidate rule ID and received PDUs containing a candidate rule ID must be dropped.</t>
        <figure anchor="Fig-Rule-mod">
          <name>Modifying a rule</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="224" width="448" viewBox="0 0 448 224" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 96,104 L 96,152" fill="none" stroke="black"/>
                <path d="M 112,48 L 112,176" fill="none" stroke="black"/>
                <path d="M 344,48 L 344,176" fill="none" stroke="black"/>
                <path d="M 368,104 L 368,152" fill="none" stroke="black"/>
                <path d="M 296,48 L 336,48" fill="none" stroke="black"/>
                <path d="M 120,62 L 280,62" fill="none" stroke="black"/>
                <path d="M 120,66 L 280,66" fill="none" stroke="black"/>
                <path d="M 296,62 L 336,62" fill="none" stroke="black"/>
                <path d="M 296,66 L 336,66" fill="none" stroke="black"/>
                <path d="M 192,80 L 280,80" fill="none" stroke="black"/>
                <path d="M 88,96 L 104,96" fill="none" stroke="black"/>
                <path d="M 120,94 L 168,94" fill="none" stroke="black"/>
                <path d="M 120,98 L 168,98" fill="none" stroke="black"/>
                <path d="M 184,94 L 336,94" fill="none" stroke="black"/>
                <path d="M 184,98 L 336,98" fill="none" stroke="black"/>
                <path d="M 352,96 L 376,96" fill="none" stroke="black"/>
                <path d="M 120,128 L 160,128" fill="none" stroke="black"/>
                <path d="M 88,160 L 104,160" fill="none" stroke="black"/>
                <path d="M 352,160 L 376,160" fill="none" stroke="black"/>
                <path d="M 164,120 L 184,80" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="376,152 364,146.4 364,157.6" fill="black" transform="rotate(90,368,152)"/>
                <polygon class="arrowhead" points="344,64 332,58.4 332,69.6" fill="black" transform="rotate(0,336,64)"/>
                <polygon class="arrowhead" points="128,128 116,122.4 116,133.6" fill="black" transform="rotate(180,120,128)"/>
                <polygon class="arrowhead" points="128,96 116,90.4 116,101.6" fill="black" transform="rotate(180,120,96)"/>
                <polygon class="arrowhead" points="104,152 92,146.4 92,157.6" fill="black" transform="rotate(90,96,152)"/>
                <g class="text">
                  <text x="112" y="36">A</text>
                  <text x="320" y="36">X</text>
                  <text x="344" y="36">B</text>
                  <text x="8" y="52">X</text>
                  <text x="40" y="52">valid</text>
                  <text x="180" y="52">modify</text>
                  <text x="228" y="52">Rule</text>
                  <text x="256" y="52">x</text>
                  <text x="360" y="52">X</text>
                  <text x="392" y="52">valid</text>
                  <text x="8" y="68">X</text>
                  <text x="56" y="68">candidate</text>
                  <text x="288" y="68">/</text>
                  <text x="360" y="68">X</text>
                  <text x="408" y="68">candidate</text>
                  <text x="56" y="132">Guard</text>
                  <text x="400" y="132">Guard</text>
                  <text x="8" y="180">X</text>
                  <text x="40" y="180">valid</text>
                  <text x="360" y="180">X</text>
                  <text x="392" y="180">valid</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
              A                         X  B
 X valid      |     modify Rule x    ------| X valid
 X candidate  |=====================/=====>| X candidate
              |        /------------       |
           ---|<======/====================|----
            | |      /                     |  |
     Guard  | |<-----                      |  | Guard
            v |                            |  v
           ---|                            |----   
 X valid      |                            | X valid

]]></artwork>
          </artset>
        </figure>
        <t><xref target="Fig-Rule-mod"/> illustrates a Rule modification. The left-hand side entity A wants to make rule x evolve.  It send an acknowledged CoAP message to the other end. 
Host A change the status of the rule to "candidate", indicating that the rule can no longer be used for SCHC procedures. The receiving entity B, acknowledges the message
and continues to maintain the "candidate" status for a Guard period. At the reception of the acknowledgement, A set also a Guard period before rule x becomes valid again.</t>
        <t>The Guard period is used to avoid SCHC message with a rule ID to appear at the other end after a rule modification. The Guard period appears only once during the rule management and is depends on the out-of-sequence messages expected between both ends.</t>
      </section>
      <section anchor="rule-creation">
        <name>Rule creation</name>
        <t>Rule creation do not require a Guard period, and acknowledgement is RECOMMENDED. Figure <xref target="Fig-Rule-creation"/> gives an example, where the Acknowledgment is lost.
Entity A sends a management message to create a new rule. Since its a new rule, the Guard period is not set and the new rule becomes immediately valid on B. 
The Acknowledgement does not reach A, so the rule stays in the candidate state, but the reception of a SCHC PDU carrying the RulE ID X, informs that the
message has been correctly received by B. So X becomes valid in A.</t>
        <figure anchor="Fig-Rule-creation">
          <name>Modifying a rule</name>
          <artset>
            <artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="192" width="416" viewBox="0 0 416 192" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round">
                <path d="M 112,48 L 112,144" fill="none" stroke="black"/>
                <path d="M 344,64 L 344,144" fill="none" stroke="black"/>
                <path d="M 120,62 L 336,62" fill="none" stroke="black"/>
                <path d="M 120,66 L 336,66" fill="none" stroke="black"/>
                <path d="M 200,78 L 336,78" fill="none" stroke="black"/>
                <path d="M 200,82 L 336,82" fill="none" stroke="black"/>
                <path d="M 120,112 L 336,112" fill="none" stroke="black"/>
                <polygon class="arrowhead" points="344,64 332,58.4 332,69.6" fill="black" transform="rotate(0,336,64)"/>
                <polygon class="arrowhead" points="128,112 116,106.4 116,117.6" fill="black" transform="rotate(180,120,112)"/>
                <g class="text">
                  <text x="112" y="36">A</text>
                  <text x="344" y="36">B</text>
                  <text x="8" y="52">X</text>
                  <text x="48" y="52">created</text>
                  <text x="8" y="68">X</text>
                  <text x="56" y="68">candidate</text>
                  <text x="360" y="68">X</text>
                  <text x="392" y="68">valid</text>
                  <text x="192" y="84">X</text>
                  <text x="24" y="116">X</text>
                  <text x="56" y="116">valid</text>
                  <text x="240" y="132">X</text>
                </g>
              </svg>
            </artwork>
            <artwork type="ascii-art"><![CDATA[
              A                            B
 X created    |       
 X candidate  |===========================>| X valid
              |         X==================|
              |                            |   
   X valid    |<---------------------------|   
              |               X            | 
              |                            | 

]]></artwork>
          </artset>
        </figure>
      </section>
      <section anchor="rule-deletion">
        <name>Rule deletion</name>
        <t>After the rule deletion, a Guard period is established. During that period, a rule with the same ID cannot be created, and SCHC PDU corrying the Rule ID are dropped.</t>
      </section>
    </section>
    <section anchor="management-messages">
      <name>Management messages</name>
      <section anchor="yang-data-model">
        <name>YANG Data Model</name>
        <t>CORECONF proposes an interface to manage data structured with a YANG Data Model. RFC 9363 defines a YANG Data Model for SCHC Rules. 
SCHC Instance Management MUST use FETCH to read a rule and iPATCH to create, modify or delete a rule.
In order to accomplish management, the YANG Data Model has been updated.</t>
        <section anchor="nature-management">
          <name>Nature Management</name>
          <t>M Rules have to be marked in a way that allows quickly identifying which rules in a SoR are responsible for management. 
Therefore, a new "nature-management" type has been defined. This nature is actually a specialization of "nature-compression" for management purposes and compression needs to be available and activated to do management.</t>
        </section>
        <section anchor="guard">
          <name>Guard</name>
          <t>To determine if a rule is considered available or not during the Guard period, a rule needs to have a status which determines if it can be used. Basically, an available rule MUST associate the key "rule-status" with the value "status-active".
Conversely, during the Guard period, "rule-status" MUST be set to "status-candidate".</t>
        </section>
        <section anchor="yang-tree-representation">
          <name>YANG tree representation</name>
          <t>The YANG tree represents the Rule structure as defined in RFC 9363 with the two updates described above:</t>
          <figure anchor="Fig-tree">
            <name>Updated YANG Data Model for CORECONF</name>
            <artwork><![CDATA[
module: ietf-schc
  +--rw schc
     +--rw rule* [rule-id-value rule-id-length]
        +--rw rule-id-value                   uint32
        +--rw rule-id-length                  uint8
        +--rw rule-status                     status-type
        +--rw rule-nature                     nature-type
        +--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
           +--:(compression) {compression or management}?
              +--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
]]></artwork>
          </figure>
        </section>
      </section>
      <section anchor="set-of-rules-editing">
        <name>Set of Rules Editing</name>
        <t>For clarity reasons, this document will use YANG Identifiers in quotes instead of the SID values.
In the YANG tree, all the lines of the tree have a SID number. Each level of the hierarchy is accessible through one or several keys. For example, to access the hierarchy under "rule", "rule-id-value" and "rule-id-length" must be specified. To access the hierarchy describing an entry in a compression rule, "rule-id-value" and "rule-id-length" must be followed by "field-id", "field-position" and "direction-indicator". Since the TV, MO-value and CDA-value are stored as lists, "index" must be added to access a specific element.</t>
        <t>Therefore, to access a specific element in a hierarchy, the SID of this element has to be specified, followed by the keys needed to access it.</t>
        <t>For example, <tt>["target-value/value", 5, 3, "fid-ipv6-version", 1, "di-bidirectional", 0]</tt> is used to access the first value (0) of TV for the IPv6 Version of Rule 5/3.</t>
      </section>
      <section anchor="errors-in-management">
        <name>Errors in Management</name>
        <t>There is different level of error detection:</t>
        <ul spacing="normal">
          <li>
            <t>CORECONF Errors: these errors are directly generated at the CORECONF level. For instance, retrieving a value with a wrong key.</t>
          </li>
          <li>
            <t>YANG validation errors: the data model is not conforming with the constraints such as "must" or "mandatory". This check is optional, since it may require a lot of resources on a device.</t>
          </li>
          <li>
            <t>SCHC errors: Errors on the Data Model that cannot be detected at the YANG level, for example, the rule numbering does not respect a binary tree.</t>
          </li>
        </ul>
      </section>
      <section anchor="methods">
        <name>Methods</name>
        <section anchor="fetch">
          <name>FETCH</name>
          <t>As mentioned in <xref target="I-D.ietf-core-comi"/>, FETCH request helps to retrieve at least one instance-value.</t>
          <t>Example : Fetching TV, MO and CDA of the Entry fid-ipv6-version/1/bidirectional from Rule 6/3.</t>
          <artwork><![CDATA[
REQ: FETCH /c
     (Content-Format: application/yang-identifiers+cbor-seq)
["target-value",       6, 3, "fid-ipv6-version", 1, "di-bidirectional"],
["matching-operator",  6, 3, "fid-ipv6-version", 1, "di-bidirectional"],
["comp-decomp-action", 6, 3, "fid-ipv6-version", 1, "di-bidirectional"]

RES: 2.05 Content
     (Content-Format: application/yang-instances+cbor-seq)
{
  {"target-value"       : [{"index" : 0, "value" : h"06"}]},
  {"matching-operator"  : "mo-equal"},
  {"comp-decomp-action" : "cda-not-sent"}
}
]]></artwork>
        </section>
        <section anchor="ipatch">
          <name>iPATCH</name>
          <t>To write an iPATCH request, several methods could be used. For instance, in a Rule 7/8, an entry for a field was set to ignore/value-sent and the target-value was not set, the following command specify a new TV and change the MO and CDA. It is possible to set up individually each field, as given in the following example:</t>
          <ul spacing="normal">
            <li>
              <t>Specified all conserned fields :</t>
            </li>
          </ul>
          <artwork><![CDATA[
  iPATCH /c 
  {
    ["target-value", 7, 8, field, 1, "di-bidirectional"] : [{delta_TV: 0, delta_value: value}],
    ["matching-operator", 7, 8, field, 1, "bi-directional"] : "mo-equal",
    ["comp-decomp-action", 7, 8, field, 1, "bi-directional"] : "cda-not-sent"
  }
]]></artwork>
          <t>But if the changes concerns the same subtree, it is RECOMMENDED to regroup the changes in a unique fetch, as given in the following example:</t>
          <t>~~~
  iPATCH /c 
  {
    ["entry", 7, 8, field, 1, "di-bidirectional"] : { 
        delta_target-value       : [{delta_index : 0, delta_value : value}],
        delta_matching-operator  : "mo-equal",
        delta_comp-decomp-action : "cda-not-sent"
    }
}
~~~</t>
          <!--LT: I don't understand-->
<t>The same principle is applied to rules and "leaf-list".</t>
          <section anchor="add">
            <name>Add</name>
            <t>If the target object doesn't exist in the context, then it is appended. 
It supports three main cases:
* Adding a new key-value pair to an existing object
* Adding a new object to an existing list</t>
            <t>One important specification is that for every leaf-list, the YANG Data Model describes that every index should be incremental. In CORECONF, we trust the user/system.</t>
            <t>Example:
- Add TV into fid-ipv6-payload-length/1/di-bidirectional in Rule 0/3</t>
            <artwork><![CDATA[
  REQ: iPATCH /c
      (Content-Format: application/yang-identifiers+cbor-seq)
  {
    ["target-value", 0, 3, "fid-ipv6-payload-length", 1, "di-bidirectional"] : [
        {delta_index : 0, delta_value : h"50"},
        {delta_index : 1, delta_value : h"55"}
    ]
  }
  
  RES: 2.04 Changed
]]></artwork>
          </section>
          <section anchor="update">
            <name>Update</name>
            <t>A request can be considered as an update if the target associated with the various keys is present in the context. Otherwise, it could be consider as an add or an error.</t>
            <t>Example : 
- The Entry fid-ipv6-version/1/di-bidirectional is in Rule 6/3.</t>
            <artwork><![CDATA[
  REQ: iPATCH /c
      (Content-Format: application/yang-identifiers+cbor-seq)
  {
    ["entry", 6, 3, "fid-ipv6-version", 1, "di-bidirectional"] : {
        {"delta_target-value": []},
        {"delta_matching-operator": "mo-ignore"},
        {"delta_comp-decomp-action": "cda-value-sent"}
    }
  }
  
  RES: 2.04 Changed
]]></artwork>
            <ul spacing="normal">
              <li>
                <t>The Entry fid-ipv6-version/1/di-bidirectional is in not in Rule 7/8 but Rule 7/8 exist.</t>
              </li>
            </ul>
            <artwork><![CDATA[
  REQ: iPATCH /c
       (Content-Format: application/yang-identifiers+cbor-seq)
  {
    ["entry", 7, 8, "fid-ipv6-version", 1, "di-bidirectional"] : {
        {"delta_target-value"       : []},
        {"delta_matching-operator"  : "mo-ignore"},
        {"delta_comp-decomp-action" : "cda-value-sent"}
    }
  }
  
  RES: 2.04 Changed
]]></artwork>
            <ul spacing="normal">
              <li>
                <t>The Entry fid-ipv6-version/1/di-bidirectional is not in Rule 5/8, and Rule 5/8 does not exist. Therefore, Rule 5/8 cannot be added in order to include the Entry fid-ipv6-version/1/di-bidirectional because other fields, which are not keys, cannot be deducted at every depth of the context.</t>
              </li>
            </ul>
            <artwork><![CDATA[
  REQ: iPATCH /c
       (Content-Format: application/yang-identifiers+cbor-seq)
  {
    ["entry", 5, 8, "fid-ipv6-version", 1, "di-bidirectional"] : {
        {"delta_target-value"       : []},
        {"delta_matching-operator"  : "mo-ignore"},
        {"delta_comp-decomp-action" : "cda-value-sent"}
    }
  }
  
  RES: 4.04 Not Found
]]></artwork>
          </section>
          <section anchor="delete">
            <name>Delete</name>
            <t>To remove an object we use "null" value.</t>
            <t>Example:
- Delete Rule 7/8</t>
            <artwork><![CDATA[
  REQ: iPATCH /c
       (Content-Format: application/yang-identifiers+cbor-seq)
  {
    ["rule", 7, 8]: null
  }
  
  RES: 2.04 Changed
]]></artwork>
            <t>For deletion, we limit the actions and consider a minimal CORECONF representation as 
<tt>{"ietf-schc:schc" : {"rule" : []}}</tt>. 
Therefore, a request trying to delete "ietf-schc:schc" will set the CORECONF representation to the minimal one.
Additionally, while updates are authorized, deleting a protected key is forbidden.</t>
            <t>Example:
- Delete rule-id-value of Rule 0/3</t>
            <artwork><![CDATA[
  REQ: iPATCH /c
       (Content-Format: application/yang-identifiers+cbor-seq)
  {
    ["rule-id-value", 0, 3]: null
  }
  
  RES: 4.00 Bad Request
]]></artwork>
          </section>
        </section>
        <section anchor="optimization">
          <name>Optimization</name>
          <t>This process imposes to send the full rule in the value part, so an optimization can be done by deriving an existing rule and modify some parameters.</t>
          <t><xref target="I-D.toutain-schc-universal-option"/> augments the data model for universal options. This add to compression rules a new entry format where a field is indexed with:
* a space-id, a YANG identifier referring to the protocol containing options (CoAP, QUIC, TCP,...)
* the option used in the protocol
* the position</t>
          <artwork><![CDATA[
  +--rw schc-opt:entry-option-space* \
      [space-id option-value field-position direction-indicator]
     +--rw schc-opt:space-id                    space-type
     +--rw schc-opt:option-value                uint32
     +--rw schc-opt:field-length                union
     +--rw schc-opt:field-position              uint8
     +--rw schc-opt:direction-indicator         schc:di-type
     +--rw schc-opt:target-value* [index]
     |  +--rw schc-opt:index    uint16
     |  +--rw schc-opt:value?   binary
     +--rw schc-opt:matching-operator           schc:mo-type
     +--rw schc-opt:matching-operator-value* [index]
     |  +--rw schc-opt:index    uint16
     |  +--rw schc-opt:value?   binary
     +--rw schc-opt:comp-decomp-action          schc:cda-type
     +--rw schc-opt:comp-decomp-action-value* [index]
        +--rw schc-opt:index    uint16
        +--rw schc-opt:value?   binary
]]></artwork>
          <t>In the CORECONF representation, even if the name are similar in the structure, the SID values are different. The key for an entry contains 4 elements.</t>
          <artwork><![CDATA[
REQ: FETCH </c>
        (Content-Format: application/yang-identifiers+cbor-seq)
   ["schc-opt:matching-operator", 8, 3, "schc-opt:space-id-coap", 11, 1, "di-up"]
]]></artwork>
        </section>
      </section>
      <section anchor="rpc">
        <name>RPC</name>
        <t>Represented as a tree:</t>
        <artwork><![CDATA[
  rpcs:
    +---x duplicate-rule
       +---w input
       |  +---w from
       |  |  +---w rule-id-value?    uint32
       |  |  +---w rule-id-length?   uint8
       |  +---w to
       |  |  +---w rule-id-value?    uint32
       |  |  +---w rule-id-length?   uint8
       |  +---w ipatch-sequence?   binary
       +--ro output
          +--ro status?   string

]]></artwork>
        <t>After duplication, the new rule stays in a candidate state until the new values are set.</t>
      </section>
    </section>
    <section anchor="protocol-stack">
      <name>Protocol Stack</name>
      <t>The management inside the instance has its own IPv6 stack totally independent of the rest of the system. The goal is to implement IPv6/UDP/CoAP to allow the implementation of the CORECONF interface. No other kind of traffic is allowed.</t>
      <t>The end-point acting as a Device has the IPv6 address fe80::1/64 and the other end fe80::2/64.</t>
      <t>Both implements CoAP client and server capabilities. The server uses port 5683 and the client 3865.</t>
      <section anchor="compression-rules">
        <name>Compression Rules</name>
        <t>Two rules are required for management functionality. The first rule (RuleID M1) defines packets containing application payloads that include a CoAP Content-Format field. Depending on the direction (Up or Down), this rule manages Confirmable FETCH/iPATCH requests or Non-Confirmable Content responses accordingly. Therefore, the second rule (RuleID M2) is used to compress packets which do not include application payload, basically response packets in downlink.</t>
        <figure anchor="Fig-M1">
          <name>Management Rule 1</name>
          <artwork><![CDATA[
 +-------------------------------------------------------------------+
 |RuleID M1                                                          |
 +-------------------+--+--+--+-----------+-------------+------------+
 |        FID        |FL|FP|DI|  TV       |     MO      |    CDA     |
 +-------------------+--+--+--+-----------+-------------+------------+
 |IPv6 Version       |4 |1 |Bi|6          |equal        |not-sent    |
 |IPv6 Traffic Class |8 |1 |Bi|1          |equal        |not-sent    |
 |IPv6 Flow Label    |20|1 |Bi|144470     |equal        |not-sent    |
 |IPv6 Length        |16|1 |Bi|           |ignore       |compute-*   |
 |IPv6 Next Header   |8 |1 |Bi|17         |equal        |not-sent    |
 |IPv6 Hop Limit     |8 |1 |Bi|64         |equal        |not-sent    |
 |IPv6 DevPrefix     |64|1 |Bi|fe80::/64  |equal        |not-sent    |
 |IPv6 DevIID        |64|1 |Bi|::2        |equal        |not-sent    |
 |IPv6 AppPrefix     |64|1 |Bi|fe80::/64  |equal        |not-sent    |
 |IPv6 AppIID        |64|1 |Bi|::1        |equal        |not-sent    |
 +===================+==+==+==+===========+=============+============+
 |UDP DevPort        |16|1 |Bi|3865       |equal        |not-sent    |
 |UDP AppPort        |16|1 |Bi|5683       |equal        |not-sent    |
 |UDP Length         |16|1 |Bi|           |ignore       |compute-*   |
 |UDP Checksum       |16|1 |Bi|           |ignore       |compute-*   |
 +===================+==+==+==+===========+=============+============+
 |CoAP Version       |2 |1 |Bi|1          |equal        |not-sent    |
 |CoAP Type          |2 |1 |Dw|2          |equal        |not-sent    |
 |CoAP Type          |2 |1 |Up|0          |equal        |not-sent    |
 |CoAP TKL           |4 |1 |Bi|0          |equal        |not-sent    |
 |CoAP Code          |8 |1 |Up|[5, 7]     |match-mapping|mapping-sent|
 |CoAP Code          |8 |1 |Dw|69         |equal        |not-sent    |
 |CoAP MID           |16|1 |Bi|0          |MSB(9)       |LSB         |
 |CoAP Uri-Path      |8 |1 |Bi|c          |equal        |not-sent    |
 |CoAP Content-Format|8 |1 |Bi|application|equal        |not-sent    |
 |                   |8 |1 |Bi|/yang-ident|             |            |
 |                   |8 |1 |Bi|fiers+cbor-|             |            |
 |                   |8 |1 |Bi|seq        |             |            |
 +===================+==+==+==+===========+=============+============+
]]></artwork>
        </figure>
        <figure anchor="Fig-Management-Rule2">
          <name>Management Rule 2</name>
          <artwork><![CDATA[
 +----------------------------------------------------------------------+
 |RuleID M2                                                             |
 +-------------------+--+--+--+--------------+-------------+------------+
 |        FID        |FL|FP|DI|      TV      |     MO      |    CDA     |
 +-------------------+--+--+--+--------------+-------------+------------+
 |IPv6 Version       |4 |1 |Bi|6             |equal        |not-sent    |
 |IPv6 Traffic Class |8 |1 |Bi|1             |equal        |not-sent    |
 |IPv6 Flow Label    |20|1 |Bi|144470        |equal        |not-sent    |
 |IPv6 Length        |16|1 |Bi|              |ignore       |compute-*   |
 |IPv6 Next Header   |8 |1 |Bi|17            |equal        |not-sent    |
 |IPv6 Hop Limit     |8 |1 |Bi|64            |equal        |not-sent    |
 |IPv6 DevPrefix     |64|1 |Bi|fe80::/64     |equal        |not-sent    |
 |IPv6 DevIID        |64|1 |Bi|::2           |equal        |not-sent    |
 |IPv6 AppPrefix     |64|1 |Bi|fe80::/64     |equal        |not-sent    |
 |IPv6 AppIID        |64|1 |Bi|::1           |equal        |not-sent    |
 +===================+==+==+==+==============+=============+============+
 |UDP DevPort        |16|1 |Bi|3865          |equal        |not-sent    |
 |UDP AppPort        |16|1 |Bi|5683          |equal        |not-sent    |
 |UDP Length         |16|1 |Bi|              |ignore       |compute-*   |
 |UDP Checksum       |16|1 |Bi|              |ignore       |compute-*   |
 +===================+==+==+==+==============+=============+============+
 |CoAP Version       |2 |1 |Bi|1             |equal        |not-sent    |
 |CoAP Type          |2 |1 |Dw|2             |equal        |not-sent    |
 |CoAP TKL           |4 |1 |Bi|0             |equal        |not-sent    |
 |CoAP Code          |8 |1 |Dw|[68, 128, 132]|match-mapping|mapping-sent|
 |CoAP MID           |16|1 |Bi|0             |MSB(9)       |LSB         |
 +===================+==+==+==+==============+=============+============+
]]></artwork>
        </figure>
      </section>
    </section>
    <section anchor="oscore">
      <name>OSCORE</name>
      <section anchor="compression-rules-1">
        <name>Compression Rules</name>
      </section>
    </section>
    <section anchor="dtls">
      <name>DTLS</name>
      <section anchor="compression-rules-2">
        <name>Compression Rules</name>
      </section>
    </section>
    <section anchor="example-coreconf-usage-in-python">
      <name>Example CORECONF usage in Python</name>
      <section anchor="deletion-cases">
        <name>Deletion cases</name>
        <ul spacing="normal">
          <li>
            <t>Delete root element:  </t>
            <artwork><![CDATA[
YANG REQ: iPATCH /c
{
  ('/ietf-schc:schc'): None
} 
  
CORECONF REQ: iPATCH /c
{
  (5100): None
}
  
REQ: iPATCH /c
    (Content-Format: application/yang-identifiers+cbor-seq)
a1811913ecf6

RES: 2.04 Changed
]]></artwork>
          </li>
          <li>
            <t>Delete a specific rule:  </t>
            <artwork><![CDATA[
YANG REQ: iPATCH /c
{
  ('/ietf-schc:schc/rule', 0, 3): None
} 
  
CORECONF REQ: iPATCH /c
{
  (5101, 0, 3): None
}
  
REQ: iPATCH /c
    (Content-Format: application/yang-identifiers+cbor-seq)
a1831913ed0003f6
  
RES: 2.04 Changed
]]></artwork>
          </li>
          <li>
            <t>Delete a specific entry:  </t>
            <artwork><![CDATA[
YANG REQ: iPATCH /c
{
  ('/ietf-schc:schc/rule/entry', 0, 3, 'fid-ipv6-version', 1, 'di-bidirectional'): None
} 
  
CORECONF REQ: iPATCH /c
{
  (5105, 0, 3, 5068, 1, 5018): None
}
  
REQ: iPATCH /c
    (Content-Format: application/yang-identifiers+cbor-seq)
a1861913f100031913cc0119139af6
  
RES: 2.04 Changed
]]></artwork>
          </li>
          <li>
            <t>Delete a basic key:  </t>
            <artwork><![CDATA[
YANG REQ: iPATCH /c
{
  ('/ietf-schc:schc/rule/rule-status', 0, 3): None
} 
  
CORECONF REQ: iPATCH /c
{
  (5137, 0, 3): None
}
  
REQ: iPATCH /c
    (Content-Format: application/yang-identifiers+cbor-seq)
a1831914110003f6

RES: 2.04 Changed
]]></artwork>
          </li>
          <li>
            <t>Delete a leaf-list single:  </t>
            <artwork><![CDATA[
YANG REQ: iPATCH /c
{
  ('/ietf-schc:schc/rule/entry/target-value/value', 0, 3, 'fid-ipv6-version', 1, 'di-bidirectional', 0): None
} 
  
CORECONF REQ: iPATCH /c
{
  (5120, 0, 3, 5068, 1, 5018, 0): None
}
  
REQ: iPATCH /c
    (Content-Format: application/yang-identifiers+cbor-seq)
a18719140000031913cc0119139a00f6
  
RES: 2.04 Changed
]]></artwork>
          </li>
          <li>
            <t>Delete a leaf-list several:  </t>
            <artwork><![CDATA[
YANG REQ: iPATCH /c
{
  ('/ietf-schc:schc/rule/entry/target-value/value', 0, 3, 'fid-ipv6-trafficclass', 1, 'di-bidirectional', 1): None
} 
  
CORECONF REQ: iPATCH /c
{
  (5120, 0, 3, 5065, 1, 5018, 1): None
}
  
REQ: iPATCH /c
    (Content-Format: application/yang-identifiers+cbor-seq)
a18719140000031913c90119139a01f6

RES: 2.04 Changed
]]></artwork>
          </li>
          <li>
            <t>Delete an unknown entry:  </t>
            <artwork><![CDATA[
YANG REQ: iPATCH /c
{
  ('/ietf-schc:schc/rule/entry', 2, 3, 'fid-ipv6-version', 1, 'di-bidirectional'): None
} 
  
CORECONF REQ: iPATCH /c
{
  (5105, 2, 3, 5068, 1, 5018): None
}
  
REQ: iPATCH /c
    (Content-Format: application/yang-identifiers+cbor-seq)
a1861913f102031913cc0119139af6

RES: 4.00 Bad Request
]]></artwork>
          </li>
          <li>
            <t>Delete a protected key:  </t>
            <artwork><![CDATA[
YANG REQ: iPATCH /c
{
  ('/ietf-schc:schc/rule/rule-id-value', 0, 3): None
} 
  
CORECONF REQ: iPATCH /c
{
  (5135, 0, 3): None
}
  
REQ: iPATCH /c
    (Content-Format: application/yang-identifiers+cbor-seq)
a18319140f0003f6

RES: 4.00 Bad Request
]]></artwork>
          </li>
        </ul>
      </section>
      <section anchor="update-cases">
        <name>Update cases</name>
        <ul spacing="normal">
          <li>
            <t>Update protected key:  </t>
            <artwork><![CDATA[
YANG REQ: iPATCH /c
{
  ('/ietf-schc:schc/rule/rule-id-value', 0, 3): 5
} 
  
CORECONF REQ: iPATCH /c
{
  (5135, 0, 3): 5
}
  
REQ: iPATCH /c
    (Content-Format: application/yang-identifiers+cbor-seq)
a18319140f000305

RES: 2.04 Changed
]]></artwork>
          </li>
          <li>
            <t>Update basic key:  </t>
            <artwork><![CDATA[
YANG REQ: iPATCH /c
{
  ('/ietf-schc:schc/rule/rule-status', 0, 3): 'status-candidate'
} 
  
CORECONF REQ: iPATCH /c
{
  (5137, 0, 3): 5096
}
  
REQ: iPATCH /c
    (Content-Format: application/yang-identifiers+cbor-seq)
a18319141100031913e8

RES: 2.04 Changed
]]></artwork>
          </li>
        </ul>
      </section>
      <section anchor="addition-cases">
        <name>Addition cases</name>
        <ul spacing="normal">
          <li>
            <t>Add a new entry:  </t>
            <artwork><![CDATA[
YANG REQ: iPATCH /c
{
  ('/ietf-schc:schc/rule/entry', 0, 3, 'fid-ipv6-appprefix', 1, 'di-bidirectional'): {
      'field-length': 64, 
      'target-value': [{'index': 0, 'value': '/oAAAAAAAAA='}], 
      'matching-operator': 'ietf-schc:mo-equal', 
      'comp-decomp-action': 'ietf-schc:cda-not-sent'
  }
} 
  
CORECONF REQ: iPATCH /c
{
  (5105, 0, 3, 5057, 1, 5018): {
      7: 64, 
      13: [{1: 0, 2: b'\xfe\x80\x00\x00\x00\x00\x00\x00'}], 
      9: 5083, 
      1: 5015
  }
}
  
REQ: iPATCH /c
    (Content-Format: application/yang-identifiers+cbor-seq)
a1861913f100031913c10119139aa40718400d81a201000248fe80000000000000091913db01191397
  
RES: 2.04 Changed
]]></artwork>
          </li>
          <li>
            <t>Add leaf-list incremental:  </t>
            <artwork><![CDATA[
YANG REQ: iPATCH /c
{
  ('/ietf-schc:schc/rule/entry/target-value', 0, 3, 'fid-ipv6-flowlabel', 1, 'di-bidirectional'): {
      'index': 4, 'value': 'vLw='
  }
} 
  
CORECONF REQ: iPATCH /c
{
  (5118, 0, 3, 5061, 1, 5018): {
      1: 4, 2: b'\xbc\xbc'
  }
}
  
REQ: iPATCH /c
    (Content-Format: application/yang-identifiers+cbor-seq)
a1861913fe00031913c50119139aa201040242bcbc

RES: 2.04 Changed
]]></artwork>
          </li>
          <li>
            <t>Add leaf-list non-incremental:  </t>
            <artwork><![CDATA[
YANG REQ: iPATCH /c
{
  ('/ietf-schc:schc/rule/entry/target-value', 0, 3, 'fid-ipv6-flowlabel', 1, 'di-bidirectional'): {
      'index': 7, 'value': 'vLw='
  }
} 
  
CORECONF REQ: iPATCH /c
{
  (5118, 0, 3, 5061, 1, 5018): {
      1: 7, 2: b'\xbc\xbc'
  }
}
  
REQ: iPATCH /c
    (Content-Format: application/yang-identifiers+cbor-seq)
a1861913fe00031913c50119139aa201070242bcbc

RES: 2.04 Changed
]]></artwork>
          </li>
          <li>
            <t>Add new key:value:  </t>
            <artwork><![CDATA[
YANG REQ: iPATCH /c
{
  ('/ietf-schc:schc/rule/entry/target-value', 0, 3, 'fid-ipv6-payload-length', 1, 'di-bidirectional'): [
      {'index': 0, 'value': 'UA=='}, 
      {'index': 1, 'value': 'VQ=='}
  ]
} 
  
CORECONF REQ: iPATCH /c
{
  (5118, 0, 3, 5064, 1, 5018): [
      {1: 0, 2: b'\x50'}, {1: 1, 2: b'\x55'}
  ]
}
  
REQ: iPATCH /c
    (Content-Format: application/yang-identifiers+cbor-seq)
a1861913fe00031913c80119139a82a20100024150a20101024155

RES: 2.04 Changed
]]></artwork>
          </li>
          <li>
            <t>Add new rule:  </t>
            <artwork><![CDATA[
YANG REQ: iPATCH /c
{
  ('/ietf-schc:schc/rule', 5, 3): {
      'rule-status': 'ietf-schc:status-active', 
      'rule-id-value': 10, 
      'rule-id-length': 5, 
      'rule-nature': 'ietf-schc:nature-compression'
  }
} 
  
CORECONF REQ: iPATCH /c
{
  (5101, 5, 3): {36: 5094, 34: 10, 33: 5, 35: 5088}
}
  
REQ: iPATCH /c
    (Content-Format: application/yang-identifiers+cbor-seq)
a1831913ed0503a418241913e618220a18210518231913e0

RES: 2.04 Changed
]]></artwork>
          </li>
          <li>
            <t>Add entry into unknown rule:  </t>
            <artwork><![CDATA[
YANG REQ: iPATCH /c
{
  ('/ietf-schc:schc/rule/entry', 250, 8, 'fid-ipv6-payload-length', 1, 'di-bidirectional'): {
      'field-length': 16, 
      'matching-operator': 'ietf-schc:mo-ignore', 
      'comp-decomp-action': 'ietf-schc:cda-value-sent'
  }
} 
  
CORECONF REQ: iPATCH /c
{
  (5105, 250, 8, 5064, 1, 5018): {7: 16, 9: 5084, 1: 5016}
}
  
REQ: iPATCH /c
    (Content-Format: application/yang-identifiers+cbor-seq)
a1861913f118fa081913c80119139aa30710091913dc01191398

RES: 4.00 Bad Request
]]></artwork>
          </li>
        </ul>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-normative-references">
      <name>Normative References</name>
      <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="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>
      <reference anchor="RFC9254">
        <front>
          <title>Encoding of Data Modeled with YANG in the Concise Binary Object Representation (CBOR)</title>
          <author fullname="M. Veillette" initials="M." role="editor" surname="Veillette"/>
          <author fullname="I. Petrov" initials="I." role="editor" surname="Petrov"/>
          <author fullname="A. Pelov" initials="A." surname="Pelov"/>
          <author fullname="C. Bormann" initials="C." surname="Bormann"/>
          <author fullname="M. Richardson" initials="M." surname="Richardson"/>
          <date month="July" year="2022"/>
          <abstract>
            <t>YANG (RFC 7950) is a data modeling language used to model configuration data, state data, parameters and results of Remote Procedure Call (RPC) operations or actions, and notifications.</t>
            <t>This document defines encoding rules for YANG in the Concise Binary Object Representation (CBOR) (RFC 8949).</t>
          </abstract>
        </front>
        <seriesInfo name="RFC" value="9254"/>
        <seriesInfo name="DOI" value="10.17487/RFC9254"/>
      </reference>
      <reference anchor="I-D.ietf-core-comi">
        <front>
          <title>CoAP Management Interface (CORECONF)</title>
          <author fullname="Michel Veillette" initials="M." surname="Veillette">
            <organization>Trilliant Networks Inc.</organization>
          </author>
          <author fullname="Peter Van der Stok" initials="P." surname="Van der Stok">
            <organization>consultant</organization>
          </author>
          <author fullname="Alexander Pelov" initials="A." surname="Pelov">
            <organization>IMT Atlantique</organization>
          </author>
          <author fullname="Andy Bierman" initials="A." surname="Bierman">
            <organization>YumaWorks</organization>
          </author>
          <author fullname="Carsten Bormann" initials="C." surname="Bormann">
            <organization>Universität Bremen TZI</organization>
          </author>
          <date day="6" month="May" year="2025"/>
          <abstract>
            <t>   This document describes a network management interface for
   constrained devices and networks, called CoAP Management Interface
   (CORECONF).  The Constrained Application Protocol (CoAP) is used to
   access datastore and data node resources specified in YANG, or SMIv2
   converted to YANG.  CORECONF uses the YANG to CBOR mapping and
   converts YANG identifier strings to numeric identifiers for payload
   size reduction.  CORECONF extends the set of YANG based protocols,
   NETCONF and RESTCONF, with the capability to manage constrained
   devices and networks.

            </t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-ietf-core-comi-20"/>
      </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-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>
          <date day="14" month="April" year="2025"/>
          <abstract>
            <t>   The idea of keeping option identifiers in SCHC Rules simplifies the
   interoperability and the evolution of SCHC compression, when the
   protocol introduces new options, that can be unknown from the current
   SCHC implementation.  This document discuss the augmentation of the
   current YANG Data Model, in order to add in the Rule options
   identifiers used by the protocol.

            </t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-toutain-schc-universal-option-01"/>
      </reference>
      <reference anchor="I-D.toutain-schc-sid-allocation">
        <front>
          <title>SCHC Sid Allocation</title>
          <author fullname="Ana Minaburo" initials="A." surname="Minaburo">
            <organization>Consultant</organization>
          </author>
          <author fullname="Laurent Toutain" initials="L." surname="Toutain">
            <organization>Institut MINES TELECOM; IMT Atlantique</organization>
          </author>
          <date day="7" month="July" year="2023"/>
          <abstract>
            <t>   YANG SID (Schema Item iDentifier) is a method to identify YANG items
   in constrained environments.  The YANG Data Model for SCHC needs to
   use smaller values and reduce the distance between two sections to
   minimize deltas' size and assure header compression performance.
   Keeping compact values for SCHC can be done when data and identity
   are differentiated.

            </t>
          </abstract>
        </front>
        <seriesInfo name="Internet-Draft" value="draft-toutain-schc-sid-allocation-01"/>
      </reference>
    </references>
    <?line 928?>

<section anchor="yang-dm">
      <name>YANG DM</name>
      <t>rpc duplicate-rule {
        input {
          container from {
            uses ietf-schc:rule-id-type;
          }
          container to {
            uses ietf-schc:rule-id-type;
          }
        }
        output {
          leaf status {
            type string;
          }
        }
      }</t>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>The authors sincerely thank</t>
      <t>This work was supported by the Sweden's Innovation Agency VINNOVA within the EUREKA CELTIC-NEXT project CYPRESS.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
YHvvnycgJKct538Bz3/2WQ9+AAA=

-->

</rfc>
