<?xml version="1.0" encoding="utf-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc2629 version 1.3.14 -->

<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY RFC8724 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8724.xml">
<!ENTITY RFC9363 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.9363.xml">
<!ENTITY RFC9254 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.9254.xml">
<!ENTITY I-D.ietf-core-comi SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-core-comi.xml">
<!ENTITY I-D.ietf-lpwan-architecture SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-lpwan-architecture.xml">
<!ENTITY I-D.toutain-schc-universal-option SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.toutain-schc-universal-option.xml">
<!ENTITY I-D.toutain-schc-sid-allocation SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.toutain-schc-sid-allocation.xml">
<!ENTITY SELF "[RFC-XXXX]">
]>


<rfc ipr="trust200902" docName="draft-toutain-schc-coreconf-management-01" category="std" submissionType="IETF">

  <front>
    <title abbrev="SCHC for CoAP">CORECONF Rule management for SCHC</title>

    <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="J.A." surname="Fernandez" fullname="Javier A. Fernandez">
      <organization>IMT Atlantique</organization>
      <address>
        <postal>
          <street>CS 17607, 2 rue de la Chataigneraie</street>
          <city>Cesson-Sevigne Cedex</city>
          <code>35510</code>
          <country>France</country>
        </postal>
        <email>javier-alejandro.fernandez@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="October" day="18"/>

    <area>Internet</area>
    <workgroup>SCHC Working Group</workgroup>
    <keyword>Internet-Draft</keyword>

    <abstract>


<t>This document describes how CORECONF can be applied to SCHC for context and rule set management between endpoints.</t>



    </abstract>


  </front>

  <middle>


<section anchor="intro" title="Introduction">

<t><xref target="RFC9363"/> defines the YANG Data Model for a SCHC context (a.k.a Set of Rules, or SoR). <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 how CORECONF can be used to manage SCHC contexts and rule sets within a SCHC instance. It also specifies SCHC compression rules tailored for the CORECONF-based management traffic itself. These “management compression rules” improve efficiency for control and configuration exchanges, distinct from the compression applied to regular application data.</t>

</section>
<section anchor="applicability-statement" title="Applicability statement">

<section anchor="architecture" title="Architecture">

<t>SCHC instance management allows the two endpoints to modify the common SoR, by:</t>

<t><list style="symbols">
  <t>Modifying rules values (such as TV, MO or CDA) in existing rules.</t>
  <t>Adding a new rule.</t>
  <t>Removing an existing rule.</t>
  <t>Triggering Remote Procedural Calls (RPC) within the endpoints.</t>
</list></t>

<t>A new type of traffic is defined called management traffic, which deals exclusively with message exchanges concerning context and rule management.</t>

<t>The rule management uses the CORECONF network management interface <xref target="I-D.ietf-core-comi"/>, which is based on CoAP. In this context, management traffic refers to the CORECONF messages exchanged between the endpoints to configure or modify rule sets. The management traffic is transported as SCHC-compressed packets, tagged with specific Rule IDs. These rules are identified as Management Rules (or M Rules) in Figure <xref target="Fig-SCHCManagement"/>. M Rules can be either Compression Rules or No-Compression Rules. Only M Rules are permitted to modify the SoR.</t>

<t>The management traffic uses its own IPv6 stack, distinct from regular application traffic. See Section <xref target="sec-protocols"/> for more details.</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 title="Inband Management" anchor="Fig-SCHCManagement"><artwork type="aasvg"><![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></figure>

</section>
<section anchor="coap-profile" title="CoAP Profile">

<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" title="Rule modification">

<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 title="Modifying a rule" anchor="Fig-Rule-mod"><artwork type="aasvg"><![CDATA[
              A                         X  B
 X valid      |     modify Rule x    ------| X valid
 X candidate  |=====================/=====>| X candidate
              |        /------------       |
           ---|<======/====================|----
            | |      /                     |  |
     Guard  | |<-----                      |  | Guard
            v |                            |  v
           ---|                            |----   
 X valid      |                            | X valid

]]></artwork></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" title="Rule creation">

<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 title="Modifying a rule" anchor="Fig-Rule-creation"><artwork type="aasvg"><![CDATA[
              A                            B
 X created    |       
 X candidate  |===========================>| X valid
              |         X==================|
              |                            |   
   X valid    |<---------------------------|   
              |               X            | 
              |                            | 

]]></artwork></figure>

</section>
<section anchor="rule-deletion" title="Rule deletion">

<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" title="Management messages">

<section anchor="yang-data-model" title="YANG Data Model">
<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="management-rule-nature" title="Management Rule Nature">
<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-period" title="Guard Period">
<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" title="YANG tree representation">
<t>The YANG tree represents the Rule structure as defined in RFC 9363 with the two updates described above:</t>

<figure title="Updated YANG Data Model for CORECONF" anchor="Fig-tree"><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" title="Set of Rules Editing">
<t>For clarity reasons, this document will use YANG Identifiers in quotes instead of SID values.
Each entry in the YANG tree has a corresponding 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 corresponding to a field 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, <spanx style="verb">["target-value/value", 5, 3, "fid-ipv6-version", 1, "di-bidirectional", 0]</spanx> is used to access the first value (0) of TV for the IPv6 Version of Rule 5/3.</t>

</section>
<section anchor="management-errors" title="Management Errors">

<t>There are different levels of error detection:</t>

<t><list style="symbols">
  <t>CORECONF Errors: these errors are directly generated at the CORECONF-managed context level. For instance, retrieving a value with a wrong key.</t>
  <t>YANG validation errors: the data model does not conform with constraints such as “must” or “mandatory”. This check is optional, since it may require a lot of resources on a device.</t>
  <t>SCHC errors: errors on the Data Model that cannot be detected at the YANG level. For example, the rule numbering does not correspond to a binary tree.</t>
</list></t>

</section>
<section anchor="coap-methods" title="CoAP Methods">

<section anchor="fetch" title="FETCH">

<t>As mentioned in <xref target="I-D.ietf-core-comi"/>, FETCH requests are used 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>

<figure><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></figure>

</section>
<section anchor="ipatch" title="iPATCH">

<t>Several payload formats can be used in a CoAP iPATCH request to modify SCHC rule parameters. For example, when a field entry in Rule 7/8 is configured as ignore/value-sent and no target value has been defined, the following iPATCH request payload sets a new Target Value (TV) and updates the corresponding Matching Operator (MO) and Compression/Decompression Action (CDA):</t>

<figure><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></figure>

<t>It is possible to represent each field update as a separate entry in the payload, as shown above.
However, when the modifications apply to elements of the same subtree, it is RECOMMENDED to group them within a single structure inside the iPATCH request payload, as shown below:</t>

<figure><artwork><![CDATA[
  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"
    }
}
]]></artwork></figure>

<t>Both payload formats are valid encodings for a CoAP iPATCH request. The interpretation and application of the modifications are implementation-specific.</t>

<t>The same approach applies to rule updates and YANG leaf-list objects, where multiple related modifications may be grouped within a single iPATCH request.</t>

<section anchor="adding-an-element" title="Adding an element">

<t>If the target object, field, or entry does not exist in the SCHC context, it is added.
It supports two main cases:</t>

<t><list style="symbols">
  <t>Adding a new key-value pair to an existing object.</t>
  <t>Adding a new object to an existing list.</t>
</list></t>

<t>When adding a new element to a YANG leaf-list in the SCHC context, the model requires that each list index be strictly incremental. CORECONF does not enforce this automatically; it relies on the client or system to provide correctly ordered indices.</t>

<t>Example: Add TV into fid-ipv6-payload-length/1/di-bidirectional in Rule 0/3</t>

<figure><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></figure>

</section>
<section anchor="modify-an-element" title="Modify an element">

<t>If the target object, field, or entry does exist in the SCHC context, it is updated.</t>

<t>Examples:</t>

<t><list style="symbols">
  <t>The Entry fid-ipv6-version/1/di-bidirectional is in Rule 6/3.</t>
</list></t>

<figure><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></figure>

<t><list style="symbols">
  <t>The Entry fid-ipv6-version/1/di-bidirectional is in not in Rule 7/8 but Rule 7/8 exist.</t>
</list></t>

<figure><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></figure>

<t><list style="symbols">
  <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>
</list></t>

<figure><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></figure>

</section>
<section anchor="delete-an-element" title="Delete an element">

<t>If the specified value in the request is “null”, it deletes an object, field, or entry from the SCHC context</t>

<t>Example:</t>

<t><list style="symbols">
  <t>Delete Rule 7/8</t>
</list></t>

<figure><artwork><![CDATA[
  REQ: iPATCH /c
       (Content-Format: application/yang-identifiers+cbor-seq)
  {
    ["rule", 7, 8]: null
  }
  
  RES: 2.04 Changed
]]></artwork></figure>

<t>When deleting objects in the SCHC context via iPATCH, the operation is restricted to prevent removal of required structural elements. Deleting the top-level object (<spanx style="verb">ietf-schc:schc</spanx>) does not remove it entirely; instead, the object is reset to a minimal representation:</t>

<figure><artwork><![CDATA[
{"ietf-schc:schc": {"rule": []}}
]]></artwork></figure>

<t>This ensures the SCHC context remains structurally valid. Updates to existing objects are generally allowed, but deletion of protected keys is forbidden.</t>

<t>Example: Delete rule-id-value of Rule 0/3</t>

<figure><artwork><![CDATA[
  REQ: iPATCH /c
       (Content-Format: application/yang-identifiers+cbor-seq)
  {
    ["rule-id-value", 0, 3]: null
  }
  
  RES: 4.00 Bad Request
]]></artwork></figure>

</section>
</section>
<section anchor="sec-post-method" title="POST">

<t>As described in <xref target="I-D.ietf-core-comi"/>, the POST CoAP method is used to trigger Remote Procedure Calls (RPC) and other actions within a SCHC endpoint. Thus, a POST message can be sent to invoke a specific RPC on the remote endpoint. Details of the supported RPCs and their behavior are defined in Section <xref target="sec-rpcs"/>.</t>

<t>RPCs and actions are defined in a YANG Data Model with optional associated inputs and outputs, 
The request payload contains the RPC input map, if any. The response payload contains the corresponding output map, if any.</t>

</section>
<section anchor="optimizations" title="Optimizations">

<t>Two optimizations are possible: first, deriving rules to avoid sending the full object; second, using universal option indexing for fine-grained field updates.</t>

<section anchor="derive-from-existing-rule-optimization" title="Derive-from-existing-rule optimization">

<t>When sending SCHC rules in iPATCH messages, the naive approach is to include the full rule object in the payload, even if only a few fields need to be updated. This can be inefficient, especially in constrained environments. To reduce the amount of data transmitted, an optimization consists in deriving a new rule from an existing one and specifying only the fields that are changing.</t>

<t>Therefore, for adding new rules, the RECOMMENDED method is to use the <spanx style="verb">duplicate-rule</spanx> RPC, defined in Section <xref target="sec-duplicate-rule-rpc"/>, which implements this derivation mechanism efficiently.</t>

</section>
<section anchor="universal-options-optimization" title="Universal-options optimization">

<t>The data model for universal options <xref target="I-D.toutain-schc-universal-option"/> augments SCHC compression rules with a structured format for protocol options. Each entry is indexed by:</t>

<t><list style="symbols">
  <t>a space-id, referring to the protocol containing the option (e.g., CoAP, QUIC, TCP),</t>
  <t>the option itself, and</t>
  <t>the position of the field within the protocol header.</t>
</list></t>

<figure><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></figure>

<t>In the CORECONF representation, even though the structural names may resemble each other, the SID values differ.
Each entry key consists of four elements, enabling precise referencing of individual protocol fields and allowing efficient selective field-level updates without touching the rest of the rule.</t>

<figure><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></figure>

</section>
</section>
</section>
<section anchor="sec-rpcs" title="RPC statements">

<t>A YANG “RPC” is an operation that may be invoked within a SCHC endpoint and triggers a specified behavior. Within the context of rule management, RPCs are used to perform actions on the set of rules and may also be used for other operations, such as rebooting the remote device endpoint.</t>

<t>Each RPC resource has specific inputs and outputs, and may be invoked remotely via a POST CoAP message, as described in Section <xref target="sec-post-method"/>.</t>

<section anchor="sec-duplicate-rule-rpc" title="Duplicate Rule">

<t>To add a new rule, instead of using the iPATCH method with a full rule definition (especially when the new rule is similar to an existing one), the RECOMMENDED approach is to use the <spanx style="verb">duplicate-rule</spanx> RPC. This operation copies an existing rule (“from”) into a new rule (“to”), and can optionally include an iPATCH sequence specifying modifications to apply to the duplicated rule. The output returns a status string conveying the result of the operation.</t>

<t>Represented as a tree:</t>

<figure><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></figure>

<t>This mechanism reduces management overhead and addresses the isue of adapting to variable application traffic. For example, a SCHC instance may begin with a generic rule with low compression rate, but progressively make rule duplications to make more specialized rules that better match the observed traffic patterns, acheiving higher compression rates and thus adapting the rule set dynamically to the session characteristics.</t>

<t>To maintain consistent rule indexing and enable efficient rule matching, newly created rules SHOULD follow a binary tree structure. For instance, a rule identified as 8/4 may be duplicated as either 8/5 or 18/5, thereby extending the rule identifier by one bit.</t>

<t>Example:</t>

<t><list style="symbols">
  <t>Representation with identifiers for clarity. Delta-encoded SIDs are used in a real request.</t>
</list></t>

<figure><artwork><![CDATA[
REQ:  POST </c>
      (Content-Format: application/yang-instances+cbor-seq)

{
  "/ietf-schc:duplicate-rule":
  {
    "input/from/rule-id-value": 8,
    "input/from/rule-id-length": 4,
    "input/to/rule-id-value": 7,
    "input/to/rule-id-length": 4,
    "input/ipatch-sequence":
      [
        "/ietf-schc:schc/rule/entry/target-value/value", 8, 5,
        "fid-coap-mid", 1, "di-bidirectional", 0,
      ]: "FAA="
  }
}

RES:  2.04 Changed
      (Content-Format: application/yang-instances+cbor-seq)

{
  "/ietf-schc:duplicate-rule":
  {
    "output/status": "success",
  }
}
]]></artwork></figure>

<section anchor="error-handling" title="Error Handling">

<t>The <spanx style="verb">duplicate-rule</spanx> operation SHALL be atomic. If an error occurs during either stage of the process (rule duplication or subsequent modification through the iPATCH sequence) the SCHC endpoint MUST revert any partial changes to restore the previous state.
The RPC output MUST indicate the failure, for example with an error status such as <spanx style="verb">Bad Request</spanx>, to signal that the duplication did not take place as requested.
The precise error code and diagnostic message are implementation-dependent but SHOULD provide enough context for the management entity to identify the cause of failure.</t>

</section>
</section>
</section>
</section>
<section anchor="sec-protocols" title="Protocol Stack">

<t>The management inside the instance has its own IPv6 stack, independent of the application traffic. IPv6/UDP/CoAP is used 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, the Core, is assigned the address fe80::2/64.</t>

<t>Both endpoints implement CoAP client and server capabilities, that is, both endpoints are capable of sending requests and processing responses. The server uses port 5683 and the client 3865.</t>

<section anchor="management-compression-rules-m-rules" title="Management Compression Rules (M Rules)">

<t>To enable CORECONF-based context and rule management over SCHC, a set of dedicated management rules, identified as M rules, is defined. These rules are used exclusively for management traffic, that is, packets exchanged between SCHC endpoints for the purpose of managing rules, not for application data transfer.</t>

<t>This specification introduces four rules, allowing bidirectional operation and fine control over management capabilities.
Each rule defines the compression behavior for management messages in its direction, distinguishing between requests and responses.</t>

<t><list style="symbols">
  <t>M1: Handles packets containing a payload (e.g., CoAP requests or Content responses) in one direction (Uplink).</t>
  <t>M2: Handles packets without a payload (e.g., CoAP responses) in the same direction (Uplink).</t>
  <t>M3: Mirrors M1 in the opposite direction (Downlink), for payload-bearing management messages.</t>
  <t>M4: Mirrors M2 in the opposite direction (Downlink), for payloadless messages.</t>
</list></t>

<t>Implementations MAY choose to support only a subset of these rules, depending on their operational or security requirements. For instance, an implementation may include only M3 and M4 to permit management operations exclusively from one endpoint, effectively preventing unsolicited management requests in the other direction. In this sense, the absence of certain M rules in the SoR implicitly acts as a policy mechanism or safeguard for rule management operations.</t>

<t>M rules are protected elements within the SoR. They define the operation of the management channel itself and therefore MUST NOT be modified, duplicated, or deleted through CORECONF operations. Any attempt to apply a modification or duplication request to an M rule MUST result in an Unauthorized error response. This restriction ensures the integrity and stability of the SCHC management process.</t>

<figure title="Management Rule 1" anchor="Fig-M1"><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|[2, 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    |
 |                   |  |  |  |/yang-ident|             |            |
 |                   |  |  |  |fiers+cbor-|             |            |
 |                   |  |  |  |seq        |             |            |
 +===================+==+==+==+===========+=============+============+
]]></artwork></figure>

<figure title="Management Rule 2" anchor="Fig-M2"><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, 129,|match-mapping|mapping-sent|
 |                   |  |  |  | 132, 160]    |             |            |
 |CoAP MID           |16|1 |Bi|0             |MSB(9)       |LSB         |
 +===================+==+==+==+==============+=============+============+
]]></artwork></figure>

<figure title="Management Rule 3" anchor="Fig-M3"><artwork><![CDATA[
 +-------------------------------------------------------------------+
 |RuleID M3                                                          |
 +-------------------+--+--+--+-----------+-------------+------------+
 |        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 |Up|2          |equal        |not-sent    |
 |CoAP Type          |2 |1 |Dw|0          |equal        |not-sent    |
 |CoAP TKL           |4 |1 |Bi|0          |equal        |not-sent    |
 |CoAP Code          |8 |1 |Dw|[2, 5, 7]  |match-mapping|mapping-sent|
 |CoAP Code          |8 |1 |Up|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    |
 |                   |  |  |  |/yang-ident|             |            |
 |                   |  |  |  |fiers+cbor-|             |            |
 |                   |  |  |  |seq        |             |            |
 +===================+==+==+==+===========+=============+============+
]]></artwork></figure>

<figure title="Management Rule 4" anchor="Fig-M4"><artwork><![CDATA[
 +----------------------------------------------------------------------+
 |RuleID M4                                                             |
 +-------------------+--+--+--+--------------+-------------+------------+
 |        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 |Up|2             |equal        |not-sent    |
 |CoAP TKL           |4 |1 |Bi|0             |equal        |not-sent    |
 |CoAP Code          |8 |1 |Up|[68, 128, 129,|match-mapping|mapping-sent|
 |                   |  |  |  | 132, 160]    |             |            |
 |CoAP MID           |16|1 |Bi|0             |MSB(9)       |LSB         |
 +===================+==+==+==+==============+=============+============+
]]></artwork></figure>

</section>
</section>
<section anchor="oscore" title="OSCORE">

<section anchor="compression-rules" title="Compression Rules">

</section>
</section>
<section anchor="dtls" title="DTLS">

<section anchor="compression-rules-1" title="Compression Rules">

</section>
</section>
<section anchor="example-coreconf-usage-in-python" title="Example CORECONF usage in Python">

<section anchor="deletion-cases" title="Deletion cases">

<t><list style="symbols">
  <t>Delete root element:  <vspace blankLines='1'/>
    <figure><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></figure>
  </t>
  <t>Delete a specific rule:  <vspace blankLines='1'/>
    <figure><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></figure>
  </t>
  <t>Delete a specific protocol field entry:  <vspace blankLines='1'/>
    <figure><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></figure>
  </t>
  <t>Delete a specific key:  <vspace blankLines='1'/>
    <figure><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></figure>
  </t>
  <t>Delete a list element:  <vspace blankLines='1'/>
    <figure><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></figure>
  </t>
  <t>Delete a multiple list elements:  <vspace blankLines='1'/>
    <figure><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></figure>
  </t>
  <t>Delete an unknown entry:  <vspace blankLines='1'/>
    <figure><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></figure>
  </t>
  <t>Delete a protected key:  <vspace blankLines='1'/>
    <figure><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></figure>
  </t>
</list></t>

</section>
<section anchor="update-cases" title="Update cases">

<t><list style="symbols">
  <t>Update protected key:  <vspace blankLines='1'/>
    <figure><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></figure>
  </t>
  <t>Update a specific key:  <vspace blankLines='1'/>
    <figure><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></figure>
  </t>
</list></t>

</section>
<section anchor="addition-cases" title="Addition cases">

<t><list style="symbols">
  <t>Add a new entry:  <vspace blankLines='1'/>
    <figure><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></figure>
  </t>
  <t>Add a list element (auto-indexed)  <vspace blankLines='1'/>
    <figure><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></figure>
  </t>
  <t>Add a list element (explicit index):  <vspace blankLines='1'/>
    <figure><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></figure>
  </t>
  <t>Add a new key–value pair element:  <vspace blankLines='1'/>
    <figure><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></figure>
  </t>
  <t>Add a new rule:  <vspace blankLines='1'/>
    <figure><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></figure>
  </t>
  <t>Add an entry into an unknown rule:  <vspace blankLines='1'/>
    <figure><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></figure>
  </t>
</list></t>

</section>
</section>


  </middle>

  <back>

    <references title='Normative References'>

&RFC8724;
&RFC9363;
&RFC9254;
&I-D.ietf-core-comi;
&I-D.ietf-lpwan-architecture;
&I-D.toutain-schc-universal-option;
&I-D.toutain-schc-sid-allocation;


    </references>



<section anchor="yang-dm" title="YANG DM">

<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 anchor="acknowledgments" title="Acknowledgments">

<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:
H4sIAMyT82gAA+1963bbyPHndzxFh/4gaUxQpO5mxjOhdYn1/1u2YsnO5Dja
GRBokohAgAFAyYqkPXmH/br7cnmSrUt3owGCEiXLTnaPeRKPCPS1urrqV9XV
Rdd1nYuuWHecPMwj2RW7797v7757eyDeTyMpxl7sDeVYxrkYJKk42X2963j9
fiqhDn6hp7tJ79gJEj/2xtBAkHqD3M2Tae6FsZv5I9/1k1T6STxwi+bcdscJ
J2lX5Ok0y9fa7RftNce5WP88jtbSgd91hMjCSMa+xD9dcZBM40CcfPyjuAzz
EfwTwL/Q90iGw1Euson0w0EoA8fxUul1xWGcyzSWuXM5VCP9c5Keh/FQ/DFN
phPn/LIo4+7hkB3fy7siywMnm/bHYZaFSZxfTWBGh/unB47jJwFU74ppPnB3
oJtpPkpSHBx+XMGT78WeOApjrz9NE/VKwDCh2m4SZ9Mo9+LcPM/yVEro8/1U
ikCK9zKOZWbe+mF+BdVkliWxeyIvwmEsi5dJAL2tb2522tazaZynUOcg9YBu
5rkce2HUFUD6sRrZH4b4qOUn48rw33jTFNf6lFevPIPDo1PRyyOYQfj3qZyZ
xe6J6GxvtbebYk2kPKPIE7sjD1qCoadeKO+cG3wN5OfZGW5vLTpDNfqWGv0f
wnHuembArUFame1/eRehTEWvJQ6AD7w4kP/4j5jx4mv6N5qB60XybzD8NGkN
9ETunfxugrQKY/HKi6GN/4iJL77Uvhp9q0+jv3e2R14K21nsTcfeVXmq76D9
4Uz7YyrfCrD8HxIqQtvFceIkHXt5eEFy6f3B7s722ob688X61rr+c22Tnh66
e61QgsTAAcM/47D0NJpcerHrpf4ozKWfA/vq1yX5OY2hvzTzIjeZ5DCu2kJZ
GAAjRAmIMSoSxoNiqA5SCxYCKp7svznoisYnGKX7C3zOGo7juq7w+rC8np87
zukozATI8ynJ/UBmfhr2ZSZGyWWhHnwvFn0pvMkkArEr8qTQByDqc/k5B4kT
AHuAFslkbmuSvswvpYyFjINJEsZ51nJ4COMwCCLpOM9QNKdJMPVxKuL6WYhf
bx3n+lqR+fYWxjUIQV6KfCTFX3pv/yj2gP3EEfBSRKPweEB6MMte67wFz2Ao
yYCUW9ZEBXKSvF9pievrO9YEOpukySTJVG/2O+oqLavKFjQ6lvQ0E2NQb0go
P5JeGl3BsIMQlohJhq2NQa8MQl41HBo+U4Nu6RkDN1kz9sSld4XVM5mGXhT+
A3Ygzh101hTaHaTJGMowTY4E0C6Br7uv3r0XqZykMoMhcm+4QNbMDY9WqIv6
HZuR6cDzZethDDLNeKpMntKaZCUOyUizg0BSCxfGWY5bvyUOgZWiLDFKPtOt
jHE2qKcVrWEzRDCHgBaFRq4G4/Y9HIbFg8DqA6C6CPNMRoOWOB0BXcS//vm/
rTIzHfzrn/9HhPAsuZBCYvUQAMqV4fk0iWhGCHXC4TRlIsvP/gjlB7BbEGYg
s/ycl4gXuujC2kqpHE4jL+VHijVwiVu4N3r8sB9GsKNBJgMz4XDhFbyzWNNx
SnS0Z49y4pIXN79Mio1IC4X8eKVHN4aeYYs0RR+Eh/MD7i94iziKSX7hRVP4
z3I29UfCy8Tpx6Y4eocba3evtwKdw/xp1qpCC9roBYikYJ1jeUlP8eF7OU4u
6HGlCr48TcPhEJgdHmG5XIrjNPFlADSOxC7MBkbw/nh3RbMQDt6WLj3qCtEc
7TC99plic1gyaKOWQZrichTC1AIJLIhrGU0zkKiwkQmHjmHtkK3NIuPi+6CE
cagzctASEbiJZPUpbpasxLgwblig9NwuZHbinL2rhwzTY7aHJcQtDBsJKRNm
emDNug2RSsAQmRZOZhxqopmZaWDEeInYWFHzv0Q2UOxkdjlttdqdmOGfcTZJ
UpSOHu9yV+8QeDTx/HNooQn7fIgDoBVQQsFne+VwL9N7mfkTrAERBqj90DrA
Vo+KrkkLiGUY5RH/TQx7wGO/voY/XBxDUeP2tqWLavkmYRASbaBiI/N7aPVt
4s48b4l3MXCPbgXHN5HpOMyVSrC2H+w7xSc15CJWAeklkstYHB5fbKEk8M+r
QqZOkqgmQE1J6EQqJXudSd8F2ZYnfhJloAIGtHopwjsUrLiPSKAc8zLACJDJ
9USOPpycEj1iP72a4GQUZfo8GTDfJOg/rBJ5V/B8Gds3wonk/p8+HO4SyPTG
ZT1Z4n4AOlIXBlaLeQIrSPAgBEMzB/Ly2N6dIP/ii73TNycw/v8JH+F52cXQ
ee5WP89F9VNTxrlR7/6HKXUzU6+mDNbbXd0T4ndH+P3XX3+9o55VxvT33P10
9tMnYIkz/aTValXqWWVMvd/hP5+grbM7+ivKlOvdMz+rjK53sPr+3np2Gb0O
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
w9VRtzd8tAfnL1Hny5do01qizr9hiV6YJeo8YNPEYhrj77jHTyvk176RkF/7
twr5tRoh78xLbVi3O0oJHZ9EzuvLul8k6Te/raRvDyqSfg7tEPlyFs0C96rv
34KQm4+m4uY3ImF78x5UrKj1DfDFUvUXrZcejTY22y+2vhHaIOC8cycR1e9A
lK2vnskv81WhMsxqQm6tO+Rokc55yc63ttQVWxvN4vdOlmzluYQ/crJEuSCW
KO//kn68tJr09Ofl0u2Z3cJMliYsX0xH/9DJkl1nNsdXuZL9cydLVO324UpB
q+TNbVspFITZrtCis47z79DM17qiv/TXzwP518877b9+btf+v0yIF8iiO+t2
g/iks1mM/2srIo0BOloReRvt7c4OwINgp+OttbHE2sYOuj9LnxdYOuirWtt3
AzvD5zaUE8v4UxyuysG48uS4rmYXDKLkMkK//GK7QLP1hs3WF28uXz6KvwiA
a9DRqeevDnWmOKnv4/+XvhUvSMMLm4YXcP03YP3X+n7fv0dD1K2w/MzXDzlb
zMrTg/enW+Ttb7nI2/9pi7z9oEVWPx70r3/+L+vng76a+VyzxuXfqLljoa2f
qKnXUh96L0E7WRK4KNexy338E5ajUmdfwBIbNktYgyupkM02jgifdYpnm3bv
34pJdjST7KwZXdDZbNPfHfr7PtzYK+XP+3Iv6iYjO2sD2yCyhAgUjvToHnYJ
S5RhOpC5XffWwJ/Nmbexh8mpyt3xM9fKcPA4GNIpJrm+RRgWmGZ9g0e5vk7D
Wd8k5LDzVSWGdgZvtte9jc4OrDZ+34K/1trweg0QE/zLpdqLsEFsflqQb1Fr
/8ETcEbhPthsU6anR8iK+fi3s/Uw9MonjA+Gr8VvmDwawOrpV0XN9TbPghEn
viKgufUtMGZnZ+C1d8ryxFsHlKlRpHaC7NxrxruuK/qef07nXfxrA0cO1kon
fiVvo7Wc/JsBxXehM4Dgb/Vg7gb7leD0NcXKaHGA2Yd/bxW8rW0POPsLWyv+
Ujmq7Pbwx/N0/qlyP9igSrV4d7u3jkPk6/m4+yIZqATrz8T1M6/87Na57k5j
/iFoGah0TpzgIONfr8bfT8HsNvG5yjVzmaTn4hJTvZpfnVA/hX5yKYFVljJx
GMeJyjLfG8rYvxIfD9++ffexZ6eO2P/wfv+/e2J3/83p4a77dv+XU/TU0O8M
7P7lGJjkpOX8XwJClHGirQAA

-->

</rfc>

