<?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 RFC8824 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8824.xml">
<!ENTITY I-D.lampin-lpwan-schc-considerations SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.lampin-lpwan-schc-considerations.xml">
<!ENTITY I-D.ietf-schc-8824-update SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-schc-8824-update.xml">
<!ENTITY I-D.ietf-lpwan-architecture SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-lpwan-architecture.xml">
<!ENTITY SELF "[RFC-XXXX]">
]>


<rfc ipr="trust200902" docName="draft-ietf-schc-universal-option-01" category="std" submissionType="IETF">

  <front>
    <title abbrev="SCHC for CoAP">Options representation in SCHC YANG Data Models</title>

    <author initials="Q." surname="Lampin" fullname="Quentin Lampin">
      <organization>Orange</organization>
      <address>
        <email>quentin.lampin@orange.com</email>
      </address>
    </author>
    <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="M." surname="Tiloca" fullname="Marco Tiloca">
      <organization>RISE AB</organization>
      <address>
        <postal>
          <street>Isafjordsgatan 22</street>
          <city>Kista</city>
          <code>SE-16440</code>
          <country>Sweden</country>
        </postal>
        <email>marco.tiloca@ri.se</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>

    <date year="2025" month="October" day="17"/>

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

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

  <middle>


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

<t>This document aims to be included in a revision of <xref target="RFC9363"/> to replace the definition
of identifiers for CoAP options.</t>

<t>Static Context Header Compression (SCHC) provides an essential mechanism for efficient communication in constrained networks by compressing protocol headers using predefined Rules. Originally developed for Low Power Wide Area Networks (LPWANs), SCHC has proven effective in scenarios with limited bandwidth, power constraints, and predictable traffic patterns.</t>

<t>The YANG Data Model defined in <xref target="RFC9363"/> was designed primarily for LPWAN technologies, focusing on highly constrained devices such as sensors and actuators that generate predictable traffic patterns, which allowed for static compression rules. This model also incorporates CoAP parameters defined in <xref target="RFC8824"/>, representing CoAP options as specific Field Identifiers (FIDs) within SCHC Rules.</t>

<t>While this approach works well in controlled LPWAN environments, it presents interoperability challenges when SCHC is applied to more dynamic networks or when protocols evolve to incorporate new options. The primary issue arises from the disconnection between protocol option identifiers and SCHC Field Identifiers (FIDs), making it difficult to efficiently handle newly defined or private options without disrupting existing implementations.</t>

<t>This document proposes a more flexible approach to representing protocol options in SCHC YANG Data Models. By preserving original protocol option identifiers within SCHC Rules, we aim to:</t>

<t><list style="symbols">
  <t>Improve interoperability between SCHC implementations</t>
  <t>Enable more graceful handling of protocol evolution</t>
  <t>Simplify Rule management between SCHC endpoints</t>
  <t>Support compression of newly defined or private options without requiring updates to the SCHC implementation</t>
</list></t>

<t>The following sections examine the current challenges in detail, explore potential solutions including both semantic and syntactic compression approaches, and propose extensions to the YANG Data Model that preserve protocol option identifiers while maintaining efficient compression capabilities.</t>

</section>
<section anchor="current-challenges" title="Current Challenges">

<t>The fundamental challenge in SCHC compression for protocols with options stems from how options are represented in the SCHC Data Model. Unlike the relatively static headers of IPv6 or UDP, CoAP includes a flexible options mechanism that allows for protocol extension through new options.</t>

<section anchor="option-representation-problem" title="Option Representation Problem">

<t>In the current SCHC Data Model defined in <xref target="RFC9363"/>, CoAP options are represented as predefined Field Identifiers (FIDs) that are included in SCHC Rules. Each option is essentially abstracted away from its original protocol identifier and assigned a new SCHC-specific identifier. While this approach works adequately in static LPWAN environments where the set of options is known in advance and rarely changes, it creates significant challenges in more dynamic networks or when protocols evolve.</t>

<t>The core problem is that the mapping between protocol option identifiers (as defined in the protocol specification) and SCHC FIDs is not standardized or predictable. When a new CoAP option is defined after a SCHC implementation is deployed, there is no straightforward mechanism for the implementation to assign an appropriate FID to this option or to communicate this assignment to other SCHC implementations.</t>

</section>
<section anchor="rule-management-challenges" title="Rule Management Challenges">

<t>This limitation becomes particularly problematic in scenarios involving rule management between two SCHC endpoints. The following scenario (cf. <xref target="fig-rule-mngt"/>) illustrates this issue:</t>

<figure title="Rule Management between two SCHC end-points" anchor="fig-rule-mngt"><artwork type="aasvg" align="center"><![CDATA[
              rule mngt
             +----------+
             |          |
             v          v
A <-------> S1 <~~~~~~> S2 <-----> B
]]></artwork></figure>

<t>In this scenario:</t>

<t><list style="symbols">
  <t>Device A generates CoAP packets that may include various options, including newly defined ones.</t>
  <t>SCHC nodes S1 and S2 compress and decompress the traffic using Rules they share.</t>
  <t>When A uses a newly defined or private option, S1 can parse this option (as the CoAP header structure remains consistent) and could potentially derive a new Rule to optimize compression.</t>
  <t>However, S1 faces a critical problem: how to identify this new option in the Rule and communicate this identifier to S2 in a way that S2 can understand which option is involved and correctly reconstruct the header.</t>
</list></t>

<t>For example, suppose a Rule defines just a CoAP header, and S1 derives a more specific Rule including a URI-path. The entry shown in <xref target="fig-entry-uri-path"/> can be added to the derived Rule, and <xref target="RFC9363"/> defines appropriate identityref values (respectively fid:coap-option-uri-path, di:up, mo:equal and cda:not-sent)  that can be used to communicate this Rule description to S2.</t>

<figure title="New entry added by management" anchor="fig-entry-uri-path"><artwork type="aasvg" align="center"><![CDATA[
+--------------+-----+---+----+-------+-------+---------+
|    FID       | FL  | FP| DI |  TV   |   MO  |   CDA   |
+==============+=====+===+====+=======+=======+=========+
| ...          | ... |...|... | ...   | ...   | ...     |
|CoAP.Uri-path | len | 1 | up | value | equal | not-sent|
+--------------+-----+---+----+-------+-------+---------+
]]></artwork></figure>

<t>However, when A uses a recently defined option or a private option that was not known when the SCHC implementation was created, S1 cannot represent this option using existing FIDs. While S1 can still parse the CoAP header and identify the new option, it has no predefined FID to use in the Rule, as shown in <xref target="fig-new-fid"/>:</t>

<figure title="New entry added by management" anchor="fig-new-fid"><artwork type="aasvg" align="center"><![CDATA[
+---------------+-----+---+----+-------+-------+---------+
|     FID       | FL  | FP| DI |  TV   |   MO  |   CDA   |
+===============+=====+===+====+=======+=======+=========+
| ...           | ... |...|... | ...   | ...   | ...     |
|CoAP.new-option| len | 1 | up | value | equal | not-sent|
+---------------+-----+---+----+-------+-------+---------+
]]></artwork></figure>

</section>
<section anchor="interoperability-consequences" title="Interoperability Consequences">

<t>This disconnect between protocol option identifiers and SCHC FIDs creates several interoperability issues:</t>

<t><list style="symbols">
  <t>Limited Protocol Evolution Support: New protocol options cannot be efficiently compressed without updates to the SCHC implementation.</t>
  <t>Incompatible Rule Exchanges: Different SCHC implementations may assign different FIDs to the same new option, making Rule exchange between them problematic.</t>
  <t>Implementation Complexity: SCHC implementations must maintain complex mappings between protocol options and FIDs, and these mappings may differ between implementations.</t>
  <t>Deployment Barriers: Deploying SCHC in environments with evolving protocols becomes difficult and requires frequent updates to SCHC implementations.</t>
</list></t>

<t>The fundamental issue is that the protocol option space and the SCHC FID space are disconnected, with no standardized or dynamic mapping between them. This disconnect seriously limits SCHC’s applicability in dynamic environments and its ability to adapt to protocol evolution.</t>

<t>In the following sections, we will explore two approaches to address this challenge. The first approach, termed ‘syntactic,’ aims to closely align with CoAP’s native representation of options by defining three distinct fields: option delta type, option length, and option value. 
The second approach, called ‘semantic,’ abstracts away from the byte-level representation and introduces a generic option framework that eliminates the need for mapping between option values and Field IDs. This semantic approach focuses on the logical meaning rather than the protocol-specific encoding.</t>

</section>
</section>
<section anchor="syntactic-compression" title="Syntactic compression">

<section anchor="overview-of-the-approach" title="Overview of the Approach">

<t>SCHC compression typically uses a semantic approach where protocol fields are abstracted into generic representations with Field IDs (FIDs) that don’t directly correlate to the protocol’s encoding format. While effective for static fields, this creates challenges for dynamic protocol options as previously discussed.</t>

<t>Syntactic compression, as proposed in <xref target="I-D.lampin-lpwan-schc-considerations"/>, takes a fundamentally different approach by aligning compression more closely with the protocol’s wire format. Instead of abstracting away from the protocol’s representation, syntactic compression preserves the original structure of protocol headers, including how options are encoded.</t>

</section>
<section anchor="coap-option-encoding-background" title="CoAP Option Encoding Background">
<t>To understand syntactic compression for CoAP options, it’s important to recall how CoAP encodes options in messages:</t>

<t><list style="symbols">
  <t>Each CoAP option on the wire consists of three components:  <list style="symbols">
      <t>Option Delta: The difference between the option number of the present option and the option number of the previous option (if any).</t>
      <t>Option Length: The length of the option value in bytes.</t>
      <t>Option Value: The actual option content.</t>
    </list></t>
  <t>This encoding allows CoAP to efficiently represent options while maintaining extensibility.</t>
</list></t>

</section>
<section anchor="syntactic-representation-of-options" title="Syntactic Representation of Options">

<t>In the syntactic approach, instead of representing a CoAP option as a single abstract Field ID, each option is decomposed into its three constituent parts as shown in <xref target="fig-synt-not-sent"/>, where “x” in the Field Length of CoAP.value entry indicates the expected value:</t>

<figure title="representation of an elided option with syntactic representation" anchor="fig-synt-not-sent"><artwork type="aasvg" align="center"><![CDATA[
+------------+-----+---+----+-------+-------+---------+
|     FID    | FL  | FP| DI |  TV   |   MO  |   CDA   |
+============+=====+===+====+=======+=======+=========+
|CoAP.option | 16  | 1 | up | opt or| equal | not-sent|
|            |     |   |    | delta |       |         |
|CoAP.length | 16  | 1 | up | value | equal | not-sent|
|CoAP.value  | x   | 1 | up | value | equal | not-sent|
+------------+-----+---+----+-------+-------+---------+
]]></artwork></figure>

<t>In this representation:</t>

<t><list style="symbols">
  <t>‘CoAP.option’ can represent either the absolute CoAP option number or the delta value as encoded in the CoAP message. While this choice affects how the parser is implemented, it has minimal impact on the overall performance of the compression approach being examined in this document.</t>
  <t>“CoAP.length” represents the option length field.</t>
  <t>“CoAP.value” contains the actual option value, noted “x”.</t>
</list></t>

<t>This approach means that option identifiers remain in the CoAP numbering space rather than being converted to SCHC FIDs. This critical difference allows any option—existing, newly defined, or private—to be processed without requiring updates to the SCHC implementation’s FID mapping.</t>

<t>The syntactic approach offers several advantages. It provides robust support for protocol evolution, allowing new or private options to be compressed without requiring changes to SCHC implementations. It enhances interoperability since option identifiers remain in the protocol’s numbering space, enabling different SCHC implementations to exchange rules for any option. Additionally, it simplifies implementation by eliminating the need for complex mappings between protocol option identifiers and SCHC FIDs.</t>

<t>However, this approach also comes with notable disadvantages. It increases the number of entries required to describe each option by a factor of three, resulting in larger Rule representations. Furthermore, the syntactic approach may yield less efficient compression in certain scenarios, particularly when options must be sent rather than elided.</t>

<t>For instance, in a semantic approach, only the value and potentially the length is sent as residue (cf. <xref target="fig-sem-value-sent"/>):</t>

<figure title="representation of an option sent with semantic representation" anchor="fig-sem-value-sent"><artwork type="aasvg" align="center"><![CDATA[
+---------------+---+---+--+-----+------+----------+
|      FID      |FL |FP |DI| TV  |  MO  |   CDA    |
+===============+===+===+==+=====+======+==========+
|CoAP.new-option|var| 1 |up|value|equal |value-sent|
+---------------+---+---+--+-----+------+----------+
]]></artwork></figure>

<t>The equivalent syntactic representation requires three entries, as shown in (cf. <xref target="fig-snyt-value-sent"/>):</t>

<figure title="representation of an option sent with syntactic representation" anchor="fig-snyt-value-sent"><artwork type="aasvg" align="center"><![CDATA[
+------------+---+--+--+-------------+------+----------+
|    FID     |FL |FP|DI|     TV      |  MO  |   CDA    |
+============+===+==+==+=============+======+==========+
|CoAP.option |16 |1 |up|opt or delta |equal |not-sent  |
|CoAP.length |16 |1 |up|             |ignore|value-sent|
|CoAP.value  |var|1 |up|             |ignore|value-sent|
+------------+---+--+--+-------------+------+----------+
]]></artwork></figure>

<t>In this case, both the option number and length (which may be encoded in just 4 bits in the CoAP message) are treated as 16-bit fields that must be sent as residue. Additionally, the option length is effectively sent twice: once in the CoAP.length field and again as part of the value’s residue.</t>

<t>For example, a 4-byte option value would be encoded as follows in the syntactic approach:</t>

<t><list style="symbols">
  <t>0 bytes for the option number</t>
  <t>2 bytes for the length field</t>
  <t>0.5 bytes for the header of the value (in SCHC compressed format)</t>
  <t>4 bytes for the actual value</t>
</list></t>

<t>This totals 6.5 bytes, compared to a more efficient representation in the semantic approach with 4.5 bytes.</t>

<t>One potential optimization would be to define a new length function that links the length of the value to the content of the CoAP.length field, avoiding the duplicate transmission of length information. However, this would add complexity to the compression mechanism.</t>

<t>Extending the Data Model to support the syntactic approach essentially involves creating three new Field Identifiers (FIDs) that correspond to the components of the option structure.</t>

</section>
<section anchor="conclusion" title="Conclusion">

<t>While syntactic compression offers a more generic approach that can handle protocol evolution without requiring implementation updates, it may lead to suboptimal compression efficiency and larger Rule representations. The tradeoff between flexibility and efficiency must be carefully considered based on the specific deployment scenario and requirements.</t>

<t>The syntactic approach demonstrates that staying too close to the byte-level representation of a protocol can compromise compression efficiency. This insight leads us to consider a hybrid approach that preserves the protocol’s option identifiers while maintaining the efficiency of semantic compression, as discussed in the next section.</t>

</section>
</section>
<section anchor="semantic-compression" title="Semantic compression">

<section anchor="the-proposed-approach" title="The Proposed Approach">

<t>Having examined the syntactic approach, which closely follows the byte-level representation of CoAP options, we now explore an alternative solution that maintains the efficiency of semantic compression while addressing the interoperability challenges. This approach preserves protocol option identifiers directly within SCHC Rules, eliminating the need for mapping between protocol-specific option numbers and SCHC Field Identifiers (FIDs).</t>

<t>The core idea is to incorporate the original protocol identifiers into the compression Rules. Since multiple protocols may reuse the same option identifier for different purposes (for example, option 8 refers to Location-Path in CoAP but Timestamp in TCP), this approach associates each option value with its protocol namespace to avoid ambiguity.</t>

</section>
<section anchor="technical-solution" title="Technical Solution">

<t>The solution involves defining within SCHC an identity that references the protocol (creating a “protocol space”), followed by the specific option identifier used by that protocol. This preserves the protocol’s native numbering scheme while allowing SCHC to differentiate between options from different protocols that might share the same option identifier.</t>

<t>Using this approach, a Rule that includes various CoAP options would directly reference the CoAP option numbers rather than abstract FIDs. For instance, the representation of a URI with two path elements (option 11) and two query elements (option 15) might look like (cf. <xref target="fig-proto-id"/>):</t>

<figure title="Rule including options ID." anchor="fig-proto-id"><artwork type="aasvg" align="center"><![CDATA[
+---------------+---+--+--+-----+------+----------+
|      FID      |FL |FP|DI| TV  |  MO  |   CDA    |
+===============+===+==+==+=====+======+==========+
|CoAP.option(11)|len|1 |up|value|equal |not-sent  |
|CoAP.option(11)|len|2 |up|     |ignore|value-sent|
|CoAP.option(15)|len|1 |up|value|equal |not-sent  |
|CoAP.option(15)|len|2 |up|value|equal |not-sent  |
+---------------+---+--+--+-----+------+----------+
]]></artwork></figure>

<t>In this example, option identifiers 11 (URI-Path) and 15 (URI-Query) are directly specified, along with their position and direction, providing clear identification of which CoAP options are being compressed without requiring predefined FIDs for each option type.</t>

</section>
</section>
<section anchor="data-model-implementation-challenges" title="Data Model Implementation Challenges">

<t>While this approach offers clear advantages for interoperability and protocol evolution, implementing it within the current YANG Data Model defined in <xref target="RFC9363"/> presents challenges. The current model defines Rule entries with a key composed of field-id, field-position, and direction-indicator, as shown in <xref target="fig-yang-rule-entry"/>:</t>

<figure title="Rule entry defined by [RFC 9363]." anchor="fig-yang-rule-entry"><artwork align="center"><![CDATA[
           +--:(compression) {compression}?
              +--rw entry* [field-id field-position direction-indicator]
                 +--rw field-id                    schc:fid-type
                 +--rw field-length                schc:fl-type
                 +--rw field-position              uint8
                 +--rw direction-indicator         schc:di-type
                 .
                 .
                 .
]]></artwork></figure>

<t>The example shown in <xref target="fig-proto-id"/> is not valid under this model because the combination of FID, position, and direction is repeated multiple times, which violates the key constraints. We cannot simply include the option value as part of the key in the existing structure.</t>

<t>Furthermore, it’s not possible to augment the model defined in RFC 9363 to add a new leaf to the key of the list. Adding option identifiers to all entries would also be inefficient, as many fields (such as IPv6 or UDP fields) don’t require this additional context.</t>

<section anchor="proposed-yang-data-model-extension" title="Proposed YANG Data Model Extension">

<t>A more effective solution is to augment the current compression data model with a new list specifically designed for entries describing protocol options:</t>

<figure title="Augmentation of SCHC Data Model to include options ID." anchor="fig-augmentation-id"><artwork align="center"><![CDATA[
  +--rw schc-opt:entry-option-space* \
          [space-id option-id field-position direction-indicator]
    +--rw schc-opt:space-id                    space-type
    +--rw schc-opt:option-id                   uint32
    +--rw schc-opt:field-length                schc:fl-type
    +--rw schc-opt:field-position              uint8
    +--rw schc-opt:direction-indicator         schc:di-type
    .
    .
    .
]]></artwork></figure>

<t>In this augmented model:</t>

<t><list style="symbols">
  <t>The space-id defines the protocol namespace (e.g., CoAP, TCP), with values provided by the SCHC Working Group</t>
  <t>The option-id contains the actual option identifier as defined in the protocol’s IANA registry</t>
  <t>The remaining elements (field-length, field-position, etc.) function as they do in the standard entry structure, but they will be diffently identified.</t>
</list></t>

<t>This approach maintains the semantic efficiency of SCHC while eliminating the need for protocol-to-FID mappings.</t>

</section>
<section anchor="implications-for-residue-serialization" title="Implications for Residue Serialization">

<t>This design has implications for how residues are serialized. To ensure consistent interpretation, both SCHC endpoints must process entries in the same order. Therefore:</t>

<t><list style="symbols">
  <t>Fields from the standard “entry” list MUST be serialized before those defined in the new “entry-option-space” list</t>
</list></t>

<t>*This constraint should be documented in <xref target="I-D.ietf-lpwan-architecture"/> to ensure interoperability</t>

<t>This approach preserves the guideline from <xref target="RFC8724"/> that Field Descriptors (entries) should be listed in the order they appear in the packet header.</t>

</section>
<section anchor="advantages-of-this-approach" title="Advantages of this Approach">

<t>The proposed approach offers several significant benefits compared to both the current SCHC model and the syntactic approach:</t>

<t><list style="symbols">
  <t>It maintains the efficiency of semantic compression while eliminating the mapping problem between protocol options and SCHC FIDs</t>
  <t>It enables straightforward handling of newly defined or private options without requiring updates to SCHC implementations</t>
  <t>It allows for cleaner Rule exchange between SCHC endpoints, improving interoperability in heterogeneous environments</t>
</list></t>

<t>This approach represents a balanced solution that addresses the interoperability challenges while preserving the compression efficiency that makes SCHC valuable in constrained environments.</t>

</section>
<section anchor="impact-on-current-standards" title="Impact on Current Standards">

<section anchor="compatibility-with-existing-standards" title="Compatibility with Existing Standards">

<t>The proposed extension to preserve protocol option identifiers in SCHC Rules has important implications for existing standards. Both <xref target="RFC9363"/> and <xref target="I-D.ietf-schc-8824-update"/> define specific Field Identifiers (FIDs) for CoAP options. These predefined FIDs and the proposed approach represent two different methods for identifying the same protocol elements, which creates potential compatibility issues.</t>

</section>
<section anchor="deprecation-of-predefined-coap-option-fids" title="Deprecation of Predefined CoAP Option FIDs">

<t>To maintain consistency and avoid confusion between the two approaches, the predefined CoAP option identifiers in the current standards should be deprecated in favor of the more flexible option identifier approach proposed in this document. This deprecation should be handled carefully to ensure backward compatibility with existing implementations while enabling a clear migration path to the new approach.</t>

</section>
<section anchor="entry-order-requirements" title="Entry Order Requirements">

<t>The proposed approach also highlights a constraint that was not explicitly included in the current Data Model. YANG does not impose a specific position for elements in a list, which has no impact on the compression process itself. However, the order becomes critical for the serialization of residues.
When transmitting Rules from one endpoint to another, the order of Field Descriptors must be preserved to ensure consistent handling of residues. This requirement should be explicitly documented in <xref target="I-D.ietf-lpwan-architecture"/> to clarify that:</t>

<t><list style="symbols">
  <t>The order of entries should not be changed when transmitted between endpoints
This ordering preserves the guidance in <xref target="RFC8724"/> that Field Descriptors (entries) should be listed in the order they appear in the packet header</t>
  <t>This ordering requirement becomes particularly important with the introduction of the new “entry-option-space” list, as both types of entries (standard and option-space) must be processed in a consistent sequence across all implementations.</t>
</list></t>

<t>The statement “ordered-by user;” MUST be included in a revision of <xref target="RFC9363"/>.</t>

</section>
</section>
</section>


  </middle>

  <back>

    <references title='Normative References'>

&RFC8724;
&RFC9363;


    </references>

    <references title='Informative References'>

&RFC8824;
&I-D.lampin-lpwan-schc-considerations;
&I-D.ietf-schc-8824-update;
&I-D.ietf-lpwan-architecture;
<reference anchor="GPC-SPE-207" target="https://globalplatform.org/specs-library/amendment-m-remote-application-mgmt-over-coap/">
  <front>
    <title>Remote Application Management over CoAP – Amendment M v1.0</title>
    <author >
      <organization>GlobalPlatform</organization>
    </author>
    <date year="n.d."/>
  </front>
</reference>


    </references>


<section anchor="yang-data-model" title="YANG Data Model">

<t>This appendix defines the work in progress YANG Data Model to extend the Data Model defined in <xref target="RFC9363"/>.</t>

<figure sourcecode-name="ietf-schc-opt@2024-12-19.yang" sourcecode-markers="true"><artwork type="yang"><![CDATA[
<CODE BEGINS> file "ietf-schc-opt@2024-12-19.yang"
module ietf-schc-opt {
  yang-version 1.1;
  namespace "urn:ietf:params:xml:ns:yang:ietf-schc-opt";
  prefix schc-opt;

  import ietf-schc {
      prefix schc;
  }

  organization
    "IETF IPv6 over Low Power Wide-Area Networks (lpwan) working group";
  contact
    "WG Web:   <https://datatracker.ietf.org/wg/lpwan/about/>
     WG List:  <mailto:p-wan@ietf.org>
     Editor:   Laurent Toutain
       <mailto:laurent.toutain@imt-atlantique.fr>
     Editor:   Ana Minaburo
       <mailto:ana@ackl.io>";
  description
     "
     Copyright (c) 2021 IETF Trust and the persons identified as
     authors of the code.  All rights reserved.

     Redistribution and use in source and binary forms, with or
     without modification, is permitted pursuant to, and subject to
     the license terms contained in, the Simplified BSD License set
     forth in Section 4.c of the IETF Trust's Legal Provisions
     Relating to IETF Documents
     (https://trustee.ietf.org/license-info).

     This version of this YANG module is part of RFC XXXX
     (https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself
     for full legal notices.

     The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL
     NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED',
     'MAY', and 'OPTIONAL' in this document are to be interpreted as
     described in BCP 14 (RFC 2119) (RFC 8174) when, and only when,
     they appear in all capitals, as shown here.

     *************************************************************************

     This module extends the ietf-schc module to include the compound-ack
     behavior for Ack On Error as defined in RFC YYYY.
     It introduces a new leaf for Ack on Error defining the format of the
     SCHC Ack and add the possibility to send several bitmaps in a single
     answer.";

  revision 2024-12-19 {
    description
      "Initial version for RFC YYYY ";
    reference
      "RFC YYYY: OAM";
  }


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

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

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


 augment "/schc:schc/schc:rule/schc:nature/schc:compression" {
  list entry-option-space {
    key "space-id option-id field-position direction-indicator";
    leaf space-id {
      type space-type;
      mandatory true;
      description
        "";
    }
    leaf option-id {
      type uint32;
    }
    leaf field-length {
      type schc:fl-type;

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

  }
}
<CODE ENDS>
]]></artwork></figure>

</section>
<section anchor="examples" title="Examples">

<t>This appendix provides practical examples that compare different approaches to representing protocol options in SCHC. The purpose of these examples is to demonstrate the operational implications of each approach in terms of Rule size, compression efficiency, and query performance.</t>

<section anchor="test-scenario-and-methodology" title="Test Scenario and Methodology">

<t>To provide a consistent basis for comparison, we use a common CoAP message containing various standard options along with one non-standard option (SCP82-Param). This example was chosen to illustrate how each approach handles both well-known and recently defined options.</t>

<t>The following CoAP message serves as our reference example:</t>

<figure title="Example of a CoAP packet with options." anchor="fig-coap-example"><artwork align="center"><![CDATA[
0000  40 01 00 01 BD 01 61 63 63 65 6C 65 72 6F 6D 65  @.....accelerome
0010  74 65 72 73 07 6D 61 78 69 6D 75 6D 4A 64 61 74  ters.maximumJdat
0020  65 3D 74 6F 64 61 79 0A 75 6E 69 74 3D 6D 2F 73  e=today.unit=m/s
0030  5E 32 21 3C D1 E4 02 E3 05 F8 54 4C 56           ^2!<......TLV

CON  0x0001 GET   
> Uri-path : b'accelerometers'
> Uri-path : b'maximum'
> Uri-query : b'date=today'
> Uri-query : b'unit=m/s^2'
> Accept : 60
> No-Response : 2
> SCP82-Param : b'TLV'
]]></artwork></figure>

<t>For each approach, we will evaluate three key metrics:</t>

<t><list style="symbols">
  <t>Rule Size: The size of the CBOR-serialized compression rule in bytes</t>
  <t>Query Size: The size of the CORECONF query payload needed to access specific values in the rule</t>
  <t>Compressed Packet Size: The size of the resulting SCHC-compressed packet in bytes</t>
</list></t>

<t>In all examples, our compression rule will send residues for the Uri-Path, Uri-Query, and SCP82-Param options, while eliding the rest. This allows us to compare how different approaches handle both sent and not-sent options.</t>

</section>
<section anchor="approaches-compared" title="Approaches Compared">

<t>We evaluate the following approaches to option representation:</t>

<t><list style="symbols">
  <t>Semantic Compression with RFC 9363: The current approach using predefined Field IDs for known options</t>
  <t>Universal Options: Our proposed approach preserving protocol option identifiers
Merged Data Model: A combined approach that integrates both methods into a single data model</t>
  <t>Ordered SID Allocation: An optimized version with carefully arranged SID values</t>
  <t>Syntactic Compression: The approach using delta-type, length, and value fields</t>
</list></t>

<t>Each approach represents a different balance between compatibility, flexibility, and efficiency. The examples will demonstrate these trade-offs quantitatively.
Let’s examine each approach in detail:</t>

</section>
</section>
<section anchor="semantic-compression-1" title="Semantic compression">

<t>Semantic compression is the approach currently defined in <xref target="RFC8724"/>, where each protocol field is assigned an abstract Field Identifier (FID) that represents its semantic meaning rather than its wire format. This section examines how this approach handles our example CoAP message.</t>

<section anchor="rule-definition" title="Rule Definition">

<t>Using RFC 8724’s informal notation, a rule matching our sample packet would be structured as follows:</t>

<figure title="Target rule." anchor="fig-rule-test"><artwork align="center"><![CDATA[
+===================================================================+
|RuleID 1/8                                                         |
+==========+===+==+==+======+===============+===============+=======+
|  Field   | FL|FP|DI|  TV  |       MO      |      CDA      |  Sent |
|          |   |  |  |      |               |               | [bits]|
+==========+===+==+==+======+===============+===============+=======+
|CoAP      |2  |1 |Bi|01    | equal         | not-sent      |       |
|version   |   |  |  |      |               |               |       |
+----------+---+--+--+------+---------------+---------------+=======+
|CoAP Type |2  |1 |Dw|CON   | equal         | not-sent      |       |
+----------+---+--+--+------+---------------+---------------+=======+
|CoAP TKL  |4  |1 |Bi|0     | equal         | not-sent      |       |
+----------+---+--+--+------+---------------+---------------+=======+
|CoAP Code |8  |1 |DW|0.01  | equal         | not-sent      |       |
+----------+---+--+--+------+---------------+---------------+=======+
|CoAP MID  |16 |1 |Bi|0000  | MSB(7)        | LSB           |MID    |
+----------+---+--+--+------+---------------+---------------+=======+
|CoAP Uri- |var|1 |Dw|      | ignore        | value-sent    | size+ |
|Path      |   |  |  |      |               |               | value |
+----------+---+--+--+------+---------------+---------------+=======+
|CoAP Uri- |var|2 |Dw|      | ignore        | value-sent    | size+ |
|Path      |   |  |  |      |               |               | value |
+----------+---+--+--+------+---------------+---------------+=======+
|CoAP Uri- |var|1 |Dw|      | ignore        | value-sent    | size+ |
|Query     |   |  |  |      |               |               | value |
+----------+---+--+--+------+---------------+---------------+=======+
|CoAP Uri- |var|2 |Dw|      | ignore        | value-sent    | size+ |
|Query     |   |  |  |      |               |               | value |
+----------+---+--+--+------+---------------+---------------+=======+
|CoAP      |8  |1 |Dw| 60   | equal         | not-sent      |       |
|Accept    |   |  |  |      |               |               |       |
+----------+---+--+--+------+---------------+---------------+=======+
|CoAP  No- |8  |1 |Dw| 2    | equal         | not-sent      |       |
|Response  |   |  |  |      |               |               |       |
+----------+---+--+--+------+---------------+---------------+=======+
|CoAP  SCP |var|1 |Dw|      | ignore        | value-sent    | size+ |
|82-Param  |   |  |  |      |               |               | value |
+----------+---+--+--+------+---------------+---------------+=======+

]]></artwork></figure>

</section>
<section anchor="implementation-with-rfc-9363" title="Implementation with RFC 9363">

<t>When implementing this rule using the RFC 9363 Data Model, we encounter a fundamental limitation: there is no identity reference (identityref) defined for the CoAP SCP82-Param option in the current standard. This illustrates the core problem addressed in this document – the inability to represent new or protocol-specific options without updating the SCHC implementation.
For the purpose of this comparison, we’ll assume that a theoretical extension to RFC 9363 has been created that defines identityrefs for the options in <xref target="GPC-SPE-207"/>, with corresponding SID ranges: RFC 9363 SIDs starting at 5000 and <xref target="GPC-SPE-207"/> SIDs starting at 10000.</t>

<section anchor="cbor-serialization" title="CBOR Serialization">

<t>With these assumptions, the rule can be serialized in CBOR format. The resulting message is 357 bytes long <xref target="fig-cbor-serial"/>.</t>

<figure title="CBOR serialisation." anchor="fig-cbor-serial"><artwork align="center"><![CDATA[
b'a11913e7a10181a4048ca7061913bf070208010519139b091913db011913970d81a20100024101a7
061913be070208010519139a091913db011913970d81a20100024100a7061913bc070408010519139b
091913db011913970d81a20100024100a70619139f070808010519139a091913db011913970d81a201
00024101a8061913a2071008010519139a091913de0a81a20100024107011913950d81a20100024100
a6061913b907d82d1913d508010519139b091913dc01191398a6061913b907d82d1913d50802051913
9b091913dc01191398a6061913bb07d82d1913d508010519139b091913dc01191398a6061913bb07d8
2d1913d508020519139b091913dc01191398a7061913a4070808010519139b091913db011913970d81
a2010002413ca7061913ae070808010519139b091913db011913970d81a20100024102a60619271107
d82d1913d508010519139b091913dc0119139818220818210818231913e0'
]]></artwork></figure>

<t>The diagnostic representation provides insight into the structure of this serialized rule:</t>

<figure title="CBOR diagnostic notation." anchor="fig-cbor-diag"><artwork type="~" align="center"><![CDATA[
Deltas in entry part:
- 6: field-id
- 7: field-length
- 8: field-position
- 5: direction-indicator
- 9: matching-operator
- 1: comp-decomp-action
- 10: matching-operator-value
- 13: target-value

Deltas in the rule part:
- 33: rule-id-length
- 34: rule-id-value
- 35: rule-nature

{5095: {1: [{4: [
  {6: 5055, 7: 2, 8: 1, 5: 5019, 9: 5083, 1: 5015, 13: [{1: 0, 2: h'01'}]}, 
  {6: 5054, 7: 2, 8: 1, 5: 5018, 9: 5083, 1: 5015, 13: [{1: 0, 2: h'00'}]}, 
  {6: 5052, 7: 4, 8: 1, 5: 5019, 9: 5083, 1: 5015, 13: [{1: 0, 2: h'00'}]}, 
  {6: 5023, 7: 8, 8: 1, 5: 5018, 9: 5083, 1: 5015, 13: [{1: 0, 2: h'01'}]}, 
  {6: 5026, 7: 16, 8: 1, 5: 5018, 9: 5086, 
                10: [{1: 0, 2: h'07'}], 1: 5013, 13: [{1: 0, 2: h'00'}]}, 
  {6: 5049, 7: 45(5077), 8: 1, 5: 5019, 9: 5084, 1: 5016}, 
  {6: 5049, 7: 45(5077), 8: 2, 5: 5019, 9: 5084, 1: 5016}, 
  {6: 5051, 7: 45(5077), 8: 1, 5: 5019, 9: 5084, 1: 5016}, 
  {6: 5051, 7: 45(5077), 8: 2, 5: 5019, 9: 5084, 1: 5016}, 
  {6: 5028, 7: 8, 8: 1, 5: 5019, 9: 5083, 1: 5015, 13: [{1: 0, 2: h'3C'}]}, 
  {6: 5038, 7: 8, 8: 1, 5: 5019, 9: 5083, 1: 5015, 13: [{1: 0, 2: h'02'}]}, 
  {6: 10001, 7: 45(5077), 8: 1, 5: 5019, 9: 5084, 1: 5016}], 
34: 8, 33: 8, 35: 5088}]}}
]]></artwork></figure>

<t>Note that the encoding of rule-id-value, rule-id-length, and rule-nature is not optimal because the delta values are higher than 23, requiring 2 bytes each in the CBOR encoding.</t>

</section>
<section anchor="coreconf-query-example" title="CORECONF Query Example">

<t>To access the target value of the Accept option in this rule, a CORECONF query would be structured as follows. The size of the CoAP payload for this query is 14 bytes:</t>

<figure title="CORECONF query to Accept TV." anchor="fig-query"><artwork align="center"><![CDATA[
REQ: FETCH </c>
        (Content-Format: application/yang-identifiers+cbor-seq)
   [5115,     / .../target-value/value 
    1,        / rule-id-value
    8,        / rule-id-length
    5028,     / fid-coap-option-accept
    1,        / field-position
    5019,     / direction-indicator
    0]        / target-value/index
]]></artwork></figure>

</section>
<section anchor="compressed-packet" title="Compressed Packet">

<t>When applied to our sample CoAP message, the semantic compression approach produces a SCHC packet of 389 bits (49 bytes with byte alignment):</t>

<figure title="SCHC compressed packet." anchor="fig-residue"><artwork align="center"><![CDATA[
0800f30b1b1b2b632b937b6b2ba32b939bb6b0bc34b6bab6d3230ba329eba37b230bcd3ab734ba1eb697b9af191aa262b0/389
]]></artwork></figure>

</section>
<section anchor="analysis" title="Analysis">

<t>The semantic compression approach demonstrates both significant strengths and notable limitations. On the positive side, it achieves an efficient compressed packet size of only 49 bytes, making it suitable for constrained networks where bandwidth is at a premium. The query size is also relatively small at 14 bytes, which enables efficient rule management operations. Additionally, the semantic representation of fields provides clarity by abstracting protocol details into meaningful identifiers.</t>

<t>However, this approach faces important limitations that impact its flexibility. Most critically, it cannot handle new options without predefined Field Identifiers, which creates a dependency on standards updates. When new protocol options emerge, the approach requires formal extension of the standard to define appropriate identifiers, creating potential delays and compatibility issues. While the rule serialization size is moderate at 357 bytes, this still represents significant overhead in highly constrained environments. These limitations illustrate why semantic compression works well in static, predictable environments but presents challenges for protocol evolution and interoperability in more dynamic contexts where protocols frequently evolve.</t>

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

<t>The Universal Options approach preserves protocol option identifiers directly within SCHC Rules, eliminating the need for predefined Field Identifiers for each option type. This section examines how this approach handles our example CoAP message.</t>

<section anchor="implementation-approach" title="Implementation Approach">

<t>In this approach, we assign SIDs starting from 7000 to the YANG Data Model augmentation defined in this document. All CoAP options are represented by a combination of a space ID (indicating the protocol namespace, in this case CoAP) and the option identifier as used in the CoAP protocol. This allows the SCP82-Param option to be processed like any other option, regardless of whether it was defined when the SCHC implementation was created.</t>

</section>
<section anchor="cbor-serialization-1" title="CBOR Serialization">

<t>The CBOR serialization of the rule using the Universal Options approach is 481 bytes long:</t>

<figure title="CBOR serialisation." anchor="fig-cbor-serial2"><artwork align="center"><![CDATA[
b'a11913e7a10181a4048ca7061913bf070208010519139b091913db011913970d81a20100024101a7
061913be070208010519139a091913db011913970d81a20100024100a7061913bc070408010519139b
091913db011913970d81a20100024100a70619139f070808010519139a091913db011913970d81a201
00024101a8061913a2071008010519139a091913de0a81a20100024107011913950d81a20100024100
a719077c191b5a19077b0b190775d82d1913d51907760119077419139b1907771913dc190770191398
a719077c191b5a19077b0b190775d82d1913d51907760219077419139b1907771913dc190770191398
a719077c191b5a19077b0f190775d82d1913d51907760119077419139b1907771913dc190770191398
a719077c191b5a19077b0f190775d82d1913d51907760219077419139b1907771913dc190770191398
a819077c191b5a19077b11190775081907760119077419139b1907771913db19077019139719077d81
a2010002413ca819077c191b5a19077b190102190775d82d1913d51907760119077419139b19077719
13db19077019139719077d81a20100024102a719077c191b5a19077b190807190775d82d1913d51907
760119077419139b1907771913dc19077019139818220818210818231913e0'
]]></artwork></figure>

<t>The diagnostic representation of the CBOR message is the following:</t>

<figure title="CBOR serialisation."><artwork align="center"><![CDATA[
Deltas in entry part:
- 6: field-id                     **1916: space-id  
- 7: field-length                 **1915: option-id 
- 8: field-position               **1909: field-length
- 5: direction-indicator          **1910: field-position
- 9: matching-operator            **1908: direction-indicator
- 1: comp-decomp-action           **1911: matching-operator  
- 10: matching-operator-value     **1917: target-value
- 13: target-value                

Deltas in the rule part:
* 33: rule-id-length
* 34: rule-id-value
* 35: rule-nature

{5095: {1: [{4: [
  {6: 5055, 7: 2, 8: 1, 5: 5019, 9: 5083, 1: 5015, 13: [{1: 0, 2: h'01'}]}, 
  {6: 5054, 7: 2, 8: 1, 5: 5018, 9: 5083, 1: 5015, 13: [{1: 0, 2: h'00'}]}, 
  {6: 5052, 7: 4, 8: 1, 5: 5019, 9: 5083, 1: 5015, 13: [{1: 0, 2: h'00'}]}, 
  {6: 5023, 7: 8, 8: 1, 5: 5018, 9: 5083, 1: 5015, 13: [{1: 0, 2: h'01'}]}, 
  {6: 5026, 7: 16, 8: 1, 5: 5018, 9: 5086, 
                    10: [{1: 0, 2: h'07'}], 1: 5013, 13: [{1: 0, 2: h'00'}]}, 
  {1916: 7002, 1915: 11, 1909: 45(5077), 1910: 1, 1908: 5019, 1911: 5084, 1904: 5016}, 
  {1916: 7002, 1915: 11, 1909: 45(5077), 1910: 2, 1908: 5019, 1911: 5084, 1904: 5016}, 
  {1916: 7002, 1915: 15, 1909: 45(5077), 1910: 1, 1908: 5019, 1911: 5084, 1904: 5016}, 
  {1916: 7002, 1915: 15, 1909: 45(5077), 1910: 2, 1908: 5019, 1911: 5084, 1904: 5016}, 
  {1916: 7002, 1915: 17, 1909: 8, 1910: 1, 1908: 5019, 1911: 5083, 1904: 5015, 
                                                1917: [{1: 0, 2: h'3C'}]}, 
  {1916: 7002, 1915: 258, 1909: 45(5077), 1910: 1, 1908: 5019, 1911: 5083, 1904: 5015, 
                                                1917: [{1: 0, 2: h'02'}]},
  {1916: 7002, 1915: 2055, 1909: 45(5077), 1910: 1, 1908: 5019, 1911: 5084, 1904: 5016}], 
34: 8, 33: 8, 35: 5088}]}}
]]></artwork></figure>

<t>It’s important to note that in the CoAP options part, the delta values are very large and require 3 bytes each for CBOR encoding. This is because we’ve used a separate range of SIDs for the augmentation, following the standard allocation procedure where each YANG Data Model has its own SID range.</t>

</section>
<section anchor="coreconf-query-example-1" title="CORECONF Query Example">

<t>A CORECONF query to access the target value of the Accept option in this approach would be structured as follows. The size of the CoAP payload is 15 bytes:</t>

<figure title="CORECONF query to Accept TV." anchor="fig-query2"><artwork align="center"><![CDATA[
REQ: FETCH </c>
        (Content-Format: application/yang-identifiers+cbor-seq)
   [7019,     / .../target-value/value 
    1,        / rule-id-value
    8,        / rule-id-length
    7002,     / space-id-value
    17,       / option-id
    1,        / field-position
    5019,     / direction-indicator
    0]        / target-value/index
]]></artwork></figure>

</section>
<section anchor="compressed-packet-1" title="Compressed Packet">

<t>When applied to our sample CoAP message, the Universal Options approach produces a SCHC packet with the same size as the semantic approach: 49 bytes with byte alignment.</t>

</section>
<section anchor="analysis-1" title="Analysis">

<t>The Universal Options approach demonstrates several important characteristics when compared to the semantic approach.</t>

<t>The primary advantage of this approach is its flexibility and future-proofing. By preserving the protocol’s native option identifiers, it can handle any option—including newly defined or private options—without requiring updates to the SCHC implementation. This is particularly evident in how it handles the SCP82-Param option (2055) without requiring predefined Field Identifiers.
The compressed packet size remains efficient at 49 bytes, identical to the semantic approach, demonstrating that flexibility doesn’t come at the cost of compression efficiency at the packet level.</t>

<t>However, there are trade-offs. The CBOR serialization of the rule is significantly larger at 481 bytes compared to 357 bytes for the semantic approach. This increased size is primarily due to the additional information needed to represent both protocol space identifiers and option values, along with less efficient delta encoding due to SID allocation in separate ranges.
The query size is also slightly larger (15 bytes vs. 14 bytes), though this difference is minimal.</t>

<t>Overall, the Universal Options approach provides significantly improved flexibility and interoperability at the cost of larger rule serialization size. This trade-off may be acceptable in many applications, particularly where protocol evolution and interoperability are more critical than rule storage efficiency.</t>

</section>
</section>
<section anchor="merged-data-model-approach" title="Merged Data Model Approach">
<t>The Merged approach combines elements from both the semantic compression and Universal Options approaches into a single, unified YANG Data Model. This section examines how this integrated approach handles our example CoAP message.</t>

<section anchor="implementation-approach-1" title="Implementation Approach">

<t>Instead of maintaining two separate Data Models (RFC 9363 and Universal Options), this approach merges them into a single model, which we’ll refer to as “9363bis.” The SID allocation process remains unchanged, with SIDs allocated automatically based on alphabetical ordering of nodes in the YANG model.
The key advantage of this approach is that it provides a unified framework that can represent both predefined fields using semantic compression and protocol-specific options using the Universal Options approach.</t>

</section>
<section anchor="cbor-serialization-2" title="CBOR Serialization">

<t>The CBOR serialization of the rule using the Merged approach is 400 bytes in size:</t>

<figure title="CBOR serialisation." anchor="fig-cbor-serial3"><artwork align="center"><![CDATA[
b'a11913e9a10181a4048ca7171913bf1818021819011619139b181a1913db12191397181e81a20100
024101a7171913be1818021819011619139a181a1913db12191397181e81a20100024100a7171913bc
1818041819011619139b181a1913db12191397181e81a20100024100a71719139f1818081819011619
139a181a1913db12191397181e81a20100024101a8171913a21818101819011619139a181a1913de18
1b81a2010002410712191395181e81a20100024100a70e1913e60d0b07d82d1913d508010619139b09
1913dc02191398a70e1913e60d0b07d82d1913d508020619139b091913dc02191398a70e1913e60d0f
07d82d1913d508010619139b091913dc02191398a70e1913e60d0f07d82d1913d508020619139b0919
13dc02191398a80e1913e60d11070808010619139b091913db021913970f81a2010002413ca80e1913
e60d19010207d82d1913d508010619139b091913db021913970f81a20100024102a70e1913e60d1908
0707d82d1913d508010619139b091913dc0219139818330818320818341913e0'
]]></artwork></figure>

<t>The diagnostic representation reveals the structure of this serialized rule:</t>

<figure title="CBOR serialisation." anchor="fig-cbor-diag3"><artwork align="center"><![CDATA[
Deltas in entry part:
- 23: field-id                     -14: space-id  
* 24: field-length                 -11: option-id 
* 25: field-position               -7: field-length
- 22: direction-indicator          -8: field-position
* 26: matching-operator            -6: direction-indicator
- 18: comp-decomp-action           -9: matching-operator  
* 27: matching-operator-value      -15: target-value
* 30: target-value                 

Deltas in the rule part:
* 50: rule-id-length
* 51: rule-id-value
* 52: rule-nature

{5097: {1: [{4: [
  {23: 5055, 24: 2, 25: 1, 22: 5019, 26: 5083, 18: 5015, 30: [{1: 0, 2: h'01'}]}, 
  {23: 5054, 24: 2, 25: 1, 22: 5018, 26: 5083, 18: 5015, 30: [{1: 0, 2: h'00'}]}, 
  {23: 5052, 24: 4, 25: 1, 22: 5019, 26: 5083, 18: 5015, 30: [{1: 0, 2: h'00'}]}, 
  {23: 5023, 24: 8, 25: 1, 22: 5018, 26: 5083, 18: 5015, 30: [{1: 0, 2: h'01'}]}, 
  {23: 5026, 24: 16, 25: 1, 22: 5018, 26: 5086, 
                       27: [{1: 0, 2: h'07'}], 18: 5013, 30: [{1: 0, 2: h'00'}]}, 
  {14: 5094, 13: 11, 7: 45(5077), 8: 1, 6: 5019, 9: 5084, 2: 5016}, 
  {14: 5094, 13: 11, 7: 45(5077), 8: 2, 6: 5019, 9: 5084, 2: 5016}, 
  {14: 5094, 13: 15, 7: 45(5077), 8: 1, 6: 5019, 9: 5084, 2: 5016}, 
  {14: 5094, 13: 15, 7: 45(5077), 8: 2, 6: 5019, 9: 5084, 2: 5016}, 
  {14: 5094, 13: 17, 7: 8, 8: 1, 6: 5019, 9: 5083, 2: 5015, 
                                                      15: [{1: 0, 2: h'3C'}]}, 
  {14: 5094, 13: 258, 7: 45(5077), 8: 1, 6: 5019, 9: 5083, 2: 5015, 
                                                      15: [{1: 0, 2: h'02'}]}, 
  {14: 5094, 13: 2055, 7: 45(5077), 8: 1, 6: 5019, 9: 5084, 2: 5016}], 
51: 8, 50: 8, 52: 5088}]}}
]]></artwork></figure>

<t>It can be observed that some delta values are higher than 23, requiring 2 bytes for their encoding in CBOR. This is a result of the automatic SID allocation based on alphabetical ordering, which doesn’t optimize for efficient deltas.</t>

</section>
<section anchor="coreconf-query-and-compressed-packet" title="CORECONF Query and Compressed Packet">

<t>The CORECONF query and compressed packet sizes remain consistent with previous approaches. The query size is 15 bytes (similar to the Universal Options approach), and the compressed packet size remains at 49 bytes.</t>

</section>
<section anchor="analysis-2" title="Analysis">

<t>The Merged Data Model approach offers an interesting middle ground between the semantic and Universal Options approaches. By combining both approaches in a single model, it provides the benefits of compatibility with existing semantic compression while adding the flexibility to handle new or protocol-specific options.</t>

<t>The CBOR serialization size (400 bytes) falls between the semantic approach (357 bytes) and the Universal Options approach (481 bytes), reflecting its hybrid nature. This represents a reasonable compromise that balances compatibility, flexibility, and efficiency.</t>

<t>A key advantage of this approach is its unified framework, which eliminates the need to choose between different compression approaches. Implementations can leverage semantic compression for well-known fields while still maintaining the ability to handle any new protocol options through the Universal Options mechanism.</t>

<t>However, the automatic SID allocation based on alphabetical ordering leads to some inefficiency in delta encoding. As shown in the diagnostic representation, some delta values require 2 bytes for encoding, which increases the serialization size. This suggests that further optimization of SID allocation could improve efficiency, which is explored in the next approach.</t>

<t>Overall, the Merged approach offers a pragmatic solution that balances the strengths of both semantic and Universal Options approaches while mitigating some of their respective limitations. It provides a path forward that maintains backward compatibility while enabling future extensibility.</t>

</section>
</section>
<section anchor="ordered-sid-allocation-approach" title="Ordered SID Allocation Approach">
<t>The Ordered approach represents a further optimization of the Merged approach through strategic manual allocation of SIDs. While it uses the exact same YANG Data Model as the Merged approach, it differs in how SIDs are assigned to the nodes in the model.</t>

<section anchor="implementation-approach-2" title="Implementation Approach">
<t>In standard YANG Data Models, SIDs are typically allocated automatically based on alphabetical ordering of nodes or through sequential assignment. This automatic allocation, while convenient, often produces suboptimal delta values when serializing CBOR-encoded rules.
The Ordered approach intervenes in this process by manually editing the SID file to optimize delta values specifically for CBOR encoding efficiency. By carefully arranging SIDs to ensure that frequently used nodes have closely related values, this approach minimizes the number of bytes required to encode the deltas between adjacent SIDs in the CBOR representation.</t>

</section>
<section anchor="cbor-serialization-3" title="CBOR Serialization">

<t>The CBOR serialization of the rule using the Ordered approach is 376 bytes in size:</t>

<figure title="CBOR serialisation." anchor="fig-cbor-serial4"><artwork align="center"><![CDATA[
b'a119139fa11781a4178ca71719142228022701161913fe2619143e121913fa2281a20100024101a7
1719142128022701161913fd2619143e121913fa2281a20100024100a71719141f28042701161913fe
2619143e121913fa2281a20100024100a71719140228082701161913fd2619143e121913fa2281a201
00024101a81719140528102701161913fd261914412581a20100024107121913f82281a20100024100
a70e1914490d0b07d82d1914380801061913fe0919143f021913fba70e1914490d0b07d82d19143808
02061913fe0919143f021913fba70e1914490d0f07d82d1914380801061913fe0919143f021913fba7
0e1914490d0f07d82d1914380802061913fe0919143f021913fba80e1914490d1107080801061913fe
0919143e021913fa0f81a2010002413ca80e1914490d19010207d82d1914380801061913fe0919143e
021913fa0f81a20100024102a70e1914490d19080707d82d1914380801061913fe0919143f021913fb
2a0829082b191443
]]></artwork></figure>

<t>The diagnostic representation shows how this approach affects the delta values:</t>

<figure title="CBOR serialisation." anchor="fig-cbor-diag4"><artwork align="center"><![CDATA[
Deltas in entry part:
- 23: field-id                     -14: space-id  
* -9: field-length                 -11: option-id 
* -8: field-position               -7: field-length
- 22: direction-indicator          -8: field-position
* -7: matching-operator            -6: direction-indicator
- 18: comp-decomp-action           -9: matching-operator  
* -6: matching-operator-value      -15: target-value
* -3: target-value                 

Deltas in the rule part:
* -11: rule-id-length
* -10: rule-id-value
* -12: rule-nature

{5023: {23: [{23: [
  {23: 5154, -9: 2, -8: 1, 22: 5118, -7: 5182, 18: 5114, -3: [{1: 0, 2: h'01'}]}, 
  {23: 5153, -9: 2, -8: 1, 22: 5117, -7: 5182, 18: 5114, -3: [{1: 0, 2: h'00'}]}, 
  {23: 5151, -9: 4, -8: 1, 22: 5118, -7: 5182, 18: 5114, -3: [{1: 0, 2: h'00'}]}, 
  {23: 5122, -9: 8, -8: 1, 22: 5117, -7: 5182, 18: 5114, -3: [{1: 0, 2: h'01'}]}, 
  {23: 5125, -9: 16, -8: 1, 22: 5117, -7: 5185, 
                       -6: [{1: 0, 2: h'07'}], 18: 5112, -3: [{1: 0, 2: h'00'}]}, 
  {14: 5193, 13: 11, 7: 45(5176), 8: 1, 6: 5118, 9: 5183, 2: 5115}, 
  {14: 5193, 13: 11, 7: 45(5176), 8: 2, 6: 5118, 9: 5183, 2: 5115}, 
  {14: 5193, 13: 15, 7: 45(5176), 8: 1, 6: 5118, 9: 5183, 2: 5115}, 
  {14: 5193, 13: 15, 7: 45(5176), 8: 2, 6: 5118, 9: 5183, 2: 5115}, 
  {14: 5193, 13: 17, 7: 8, 8: 1, 6: 5118, 9: 5182, 2: 5114, 
                                                         15: [{1: 0, 2: h'3C'}]}, 
  {14: 5193, 13: 258, 7: 45(5176), 8: 1, 6: 5118, 9: 5182, 2: 5114, 
                                                         15: [{1: 0, 2: h'02'}]}, 
  {14: 5193, 13: 2055, 7: 45(5176), 8: 1, 6: 5118, 9: 5183, 2: 5115}],
-11: 8, -10: 8, -12: 5187}]}}
]]></artwork></figure>

<t>The key innovation in this approach is visible in the diagnostic representation: by carefully arranging SIDs, many of the delta values are now negative numbers with small absolute values. In CBOR, small integers (both positive and negative) can be encoded in a single byte, leading to significant space savings compared to the larger deltas in the Merged approach.</t>

</section>
<section anchor="sid-allocation-strategy" title="SID Allocation Strategy">

<t>The SID allocation file was manually edited to optimize delta values, as shown in the excerpt below:</t>

<figure title="CBOR serialisation." anchor="fig-sid-assignation"><artwork align="center"><![CDATA[
5023;data;/ietf-schc:schc
...
5030;data;/ietf-schc:schc/rule/window-size
5031;data;/ietf-schc:schc/rule/w-size
5032;data;/ietf-schc:schc/rule/tile-size
5033;data;/ietf-schc:schc/rule/tile-in-all-1
5034;data;/ietf-schc:schc/rule/rule-nature
5035;data;/ietf-schc:schc/rule/rule-id-value
5036;data;/ietf-schc:schc/rule/rule-id-length
5037;data;/ietf-schc:schc/rule/retransmission-timer/ticks-numbers
5038;data;/ietf-schc:schc/rule/retransmission-timer/ticks-duration
5039;data;/ietf-schc:schc/rule/retransmission-timer
5040;data;/ietf-schc:schc/rule/rcs-algorithm
5041;data;/ietf-schc:schc/rule/maximum-packet-size
5042;data;/ietf-schc:schc/rule/max-interleaved-frames
5043;data;/ietf-schc:schc/rule/dtag-size
5044;data;/ietf-schc:schc/rule/direction
5045;data;/ietf-schc:schc/rule/ack-behavior
5046;data;/ietf-schc:schc/rule
5047;data;/ietf-schc:schc/rule/fcn-size
5048;data;/ietf-schc:schc/rule/fragmentation-mode
5049;data;/ietf-schc:schc/rule/inactivity-timer
5050;data;/ietf-schc:schc/rule/inactivity-timer/ticks-duration
5051;data;/ietf-schc:schc/rule/inactivity-timer/ticks-numbers
5052;data;/ietf-schc:schc/rule/l2-word-size
5053;data;/ietf-schc:schc/rule/max-ack-requests
...
5060;data;/ietf-schc:schc/rule/entry/field-length
5061;data;/ietf-schc:schc/rule/entry/field-position
5062;data;/ietf-schc:schc/rule/entry/matching-operator
5063;data;/ietf-schc:schc/rule/entry/matching-operator-value
5064;data;/ietf-schc:schc/rule/entry/matching-operator-value/index
5065;data;/ietf-schc:schc/rule/entry/matching-operator-value/value
5066;data;/ietf-schc:schc/rule/entry/target-value
5067;data;/ietf-schc:schc/rule/entry/target-value/index
5068;data;/ietf-schc:schc/rule/entry/target-value/value
5069;data;/ietf-schc:schc/rule/entry
5070;data;/ietf-schc:schc/rule/entry-option-space
5071;data;/ietf-schc:schc/rule/entry-option-space/comp-decomp-action
5072;data;/ietf-schc:schc/rule/entry-option-space/comp-decomp-action-value
5073;data;/ietf-schc:schc/rule/entry-option-space/comp-decomp-action-value/index
5074;data;/ietf-schc:schc/rule/entry-option-space/comp-decomp-action-value/value
5075;data;/ietf-schc:schc/rule/entry-option-space/direction-indicator
5076;data;/ietf-schc:schc/rule/entry-option-space/field-length
5077;data;/ietf-schc:schc/rule/entry-option-space/field-position
5078;data;/ietf-schc:schc/rule/entry-option-space/matching-operator
5079;data;/ietf-schc:schc/rule/entry-option-space/matching-operator-value
5080;data;/ietf-schc:schc/rule/entry-option-space/matching-operator-value/index
5081;data;/ietf-schc:schc/rule/entry-option-space/matching-operator-value/value
5082;data;/ietf-schc:schc/rule/entry-option-space/option-id
5083;data;/ietf-schc:schc/rule/entry-option-space/space-id
5084;data;/ietf-schc:schc/rule/entry-option-space/target-value
5085;data;/ietf-schc:schc/rule/entry-option-space/target-value/index
5086;data;/ietf-schc:schc/rule/entry-option-space/target-value/value
5087;data;/ietf-schc:schc/rule/entry/comp-decomp-action
5088;data;/ietf-schc:schc/rule/entry/comp-decomp-action-value
5089;data;/ietf-schc:schc/rule/entry/comp-decomp-action-value/index
5090;data;/ietf-schc:schc/rule/entry/comp-decomp-action-value/value
5091;data;/ietf-schc:schc/rule/entry/direction-indicator
5092;data;/ietf-schc:schc/rule/entry/field-id
]]></artwork></figure>

<t>The allocation strategy focuses on several key principles:</t>

<t><list style="symbols">
  <t>Grouping related nodes with consecutive SIDs to minimize delta values</t>
  <t>Positioning frequently used nodes strategically to ensure small deltas</t>
  <t>Using both positive and negative deltas to maximize single-byte encoding opportunities</t>
  <t>Arranging rule-related fields to minimize the encoding size of rule metadata</t>
</list></t>

</section>
<section anchor="coreconf-query-and-compressed-packet-1" title="CORECONF Query and Compressed Packet">
<t>As with previous approaches, the CORECONF query size (15 bytes) and compressed packet size (49 bytes) remain consistent. The optimization affects only the rule serialization size, not the operational efficiency of queries or the compression ratio of actual packets.</t>

</section>
<section anchor="analysis-3" title="Analysis">

<t>The Ordered SID Allocation approach demonstrates the significant impact that strategic SID assignment can have on rule serialization efficiency. By reducing the CBOR serialization size from 400 bytes in the Merged approach to 376 bytes, it achieves a 6% reduction in size while maintaining identical functionality and compatibility.</t>

<t>This approach is particularly noteworthy because it achieves this efficiency gain without any changes to the YANG Data Model itself—only the SID allocation is modified. This makes it a non-invasive optimization that can be applied to existing models without affecting their structure or semantics.</t>

<t>The resulting serialization size (376 bytes) is only slightly larger than the original semantic approach (357 bytes), while maintaining all the flexibility benefits of the Universal Options approach. This represents an excellent compromise that nearly eliminates the size penalty of the more flexible approach.</t>

<t>The Ordered approach demonstrates that thoughtful SID allocation can significantly improve encoding efficiency for CBOR-serialized SCHC Rules. This optimization technique could be valuable in constrained environments where rule transmission and storage efficiency are critical concerns.</t>

</section>
</section>
</section>
<section anchor="syntatic-compression" title="Syntatic compression">

<t>The syntactic approach processes all options uniformly by decomposing each CoAP option into its constituent components. Rather than treating an entire option as a single field, this approach treats the delta type, length, and value components that make up a CoAP option as separate fields. While the core compression algorithm remains unchanged, the parsing phase must be modified to accommodate this decomposed representation of the header. From a Data Model perspective, three new Field Identifiers (FIDs) need to be defined. The specific SID values assigned have minimal impact since they function purely as identifiers without CORECONF delta encoding considerations.</t>

<section anchor="rule-specification" title="Rule specification">

<t>As shown in the transition from <xref target="fig-rule-test"/> to <xref target="fig-rule-test2"/>, the Field Position (FP) parameter plays a crucial role in maintaining the proper ordering of these option components.</t>

<figure title="Target rule." anchor="fig-rule-test2"><artwork align="center"><![CDATA[
+===================================================================+
|RuleID 9/8                                                         |
+==========+===+==+==+======+===============+===============+=======+
|  Field   | FL|FP|DI|  TV  |       MO      |      CDA      |  Sent |
|          |   |  |  |      |               |               | [bits]|
+==========+===+==+==+======+===============+===============+=======+
|CoAP      |2  |1 |Bi|01    | equal         | not-sent      |       |
|version   |   |  |  |      |               |               |       |
+----------+---+--+--+------+---------------+---------------+=======+
|CoAP Type |2  |1 |Dw|CON   | equal         | not-sent      |       |
+----------+---+--+--+------+---------------+---------------+=======+
|CoAP TKL  |4  |1 |Bi|0     | equal         | not-sent      |       |
+----------+---+--+--+------+---------------+---------------+=======+
|CoAP Code |8  |1 |DW|0.01  | equal         | not-sent      |       |
+----------+---+--+--+------+---------------+---------------+=======+
|CoAP MID  |16 |1 |Bi|0000  | MSB(7)        | LSB           |MID    |
+----------+---+--+--+------+---------------+---------------+=======+
|CoAP      |16 |1 |Dw|11    | equal         | not-sent      |       |
|DeltaT    |   |  |  |      |               |               |       |
+----------+---+--+--+------+---------------+---------------+-------+ 
|CoAP      |8  |1 |Dw|      | ignore        | value-sent    | size  |
|Length    |   |  |  |      |               |               |       |
+----------+---+--+--+------+---------------+---------------+-------+
|CoAP      |var|1 |Dw|      | ignore        | value_sent    | size+ |
|Value     |   |  |  |      |               |               | value |
+----------+---+--+--+------+---------------+---------------+-------+ 
|CoAP      |16 |2 |Dw|0     | equal         | not-sent      |       |
|DeltaT    |   |  |  |      |               |               |       |
+----------+---+--+--+------+---------------+---------------+-------+ 
|CoAP      |4  |2 |Dw|      | ignore        | value-sent    | size  |
|Length    |   |  |  |      |               |               |       |
+----------+---+--+--+------+---------------+---------------+-------+
|CoAP      |var|2 |Dw|      | ignore        | value_sent    | size+ |
|Value     |   |  |  |      |               |               | value |
+----------+---+--+--+------+---------------+---------------+-------+ 
|CoAP      |16 |3 |Dw|4     | equal         | not-sent      |       |
|DeltaT    |   |  |  |      |               |               |       |
+----------+---+--+--+------+---------------+---------------+-------+ 
|CoAP      |4  |3 |Dw|      | ignore        | value-sent    | size  |
|Length    |   |  |  |      |               |               |       |
+----------+---+--+--+------+---------------+---------------+-------+
|CoAP      |var|3 |Dw|      | ignore        | value_sent    | size+ |
|Value     |   |  |  |      |               |               | value |
+----------+---+--+--+------+---------------+---------------+-------+ 
|CoAP      |16 |4 |Dw|0     | equal         | not-sent      |       |
|DeltaT    |   |  |  |      |               |               |       |
+----------+---+--+--+------+---------------+---------------+-------+ 
|CoAP      |4  |4 |Dw|      | ignore        | value-sent    | size  |
|Length    |   |  |  |      |               |               |       |
+----------+---+--+--+------+---------------+---------------+-------+
|CoAP      |var|4 |Dw|      | ignore        | value-sent    | size+ |
|Value     |   |  |  |      |               |               | value |
+----------+---+--+--+------+---------------+---------------+-------+ 
|CoAP      |16 |5 |Dw| 2    | equal         | not-sent      |       |
|DeltaT    |   |  |  |      |               |               |       |
+----------+---+--+--+------+---------------+---------------+-------+ 
|CoAP      |4  |5 |Dw| 1    | equal         | not-sent      |       |
|Length    |   |  |  |      |               |               |       |
+----------+---+--+--+------+---------------+---------------+-------+
|CoAP      |var|5 |Dw| 60   | equal         | not-sent      |       |
|Value     |   |  |  |      |               |               |       |
+----------+---+--+--+------+---------------+---------------+-------+ 
|CoAP      |16 |6 |Dw| 241  | equal         | not-sent      |       |
|DeltaT    |   |  |  |      |               |               |       |
+----------+---+--+--+------+---------------+---------------+-------+ 
|CoAP      |4  |6 |Dw| 1    | equal         | not-sent      |       |
|Length    |   |  |  |      |               |               |       |
+----------+---+--+--+------+---------------+---------------+-------+
|CoAP      |var|6 |Dw| 2    | equal         | not-sent      |       |
|Value     |   |  |  |      |               |               |       |
+----------+---+--+--+------+---------------+---------------+-------+ 
|CoAP      |16 |7 |Dw|1797  | equal         | not-sent      |       |
|DeltaT    |   |  |  |      |               |               |       |
+----------+---+--+--+------+---------------+---------------+-------+ 
|CoAP      |4  |7 |Dw|      | ignore        | value-sent    | size  |
|Length    |   |  |  |      |               |               |       |
+----------+---+--+--+------+---------------+---------------+-------+
|CoAP      |var|7 |Dw|      | ignore        | value-sent    | size+ |
|Value     |   |  |  |      |               |               | value |
+----------+---+--+--+------+---------------+---------------+-------+ 
]]></artwork></figure>

<t>A notable limitation of this approach concerns the SCHC Field Length of the ‘CoAP Length’ fields, which restricts the rule’s applicability. For example, the first Uri-path option requires 8 bits, instead of 4, for its Field Length because the value ‘accelerometers’ is 14 bytes long, necessitating the escape value 0xD to encode the length on an additional byte. Consequently, if shorter values need to be handled, separate rules would be required.</t>

</section>
<section anchor="compressed-packet-2" title="Compressed packet">

<t>The compression residue with the rule ID is 409 bit-long or 52 byte-long with the alignment (see <xref target="fig-residue2"/>).</t>

<figure title="SCHC compressed packet." anchor="fig-residue2"><artwork align="center"><![CDATA[
090087730b1b1b2b632b937b6b2ba32b939bbb6b0bc34b6bab6d53230ba329eba37b230bcd
53ab734ba1eb697b9af191aa262b00
]]></artwork></figure>

<t>The increased size of the syntactic approach is primarily due to redundant transmission of option lengths. The length information must be sent twice: first to reconstruct the ‘CoAP Length’ field in the option header, and again to specify the size of the ‘CoAP Value’ residue. This duplication contributes significantly to the lower compression efficiency compared to other approaches.</t>

</section>
<section anchor="coreconf-query-example-2" title="CORECONF Query Example">

<t>A CORECONF query to access the target value of the Accept with is in fith position. The size of the CoAP payload is also 14 bytes:</t>

<figure title="CORECONF query to Accept TV." anchor="fig-query3"><artwork align="center"><![CDATA[
REQ: FETCH </c>
        (Content-Format: application/yang-identifiers+cbor-seq)
   [5115,     / .../target-value/value 
    9,        / rule-id-value
    8,        / rule-id-length
    8003,     / fid-coap-value (from another YANG DM)
    5,        / field-position
    5019,     / direction-indicator
    0]        / target-value/index
]]></artwork></figure>

</section>
<section anchor="cbor-serialization-4" title="CBOR Serialization">

<t>The serialization uses the manually assigned sid to minize the representation. The result is 718 byte-long.</t>

<figure><artwork><![CDATA[
Deltas in entry part:
- 23: field-id                     -14: space-id  
* -9: field-length                 -11: option-id 
* -8: field-position               -7: field-length
- 22: direction-indicator          -8: field-position
* -7: matching-operator            -6: direction-indicator
- 18: comp-decomp-action           -9: matching-operator  
* -6: matching-operator-value      -15: target-value
* -3: target-value                 

Deltas in the rule part:
* -11: rule-id-length
* -10: rule-id-value
* -12: rule-nature

{5023: {23: [
  {23: [{23: 5154, -9: 2, -8: 1, 22: 5118, -7: 5182, 18: 5114, -3: [{1: 0, 2: h'01'}]}, 
  {23: 5153, -9: 2, -8: 1, 22: 5117, -7: 5182, 18: 5114, -3: [{1: 0, 2: h'00'}]}, 
  {23: 5151, -9: 4, -8: 1, 22: 5118, -7: 5182, 18: 5114, -3: [{1: 0, 2: h'00'}]}, 
  {23: 5122, -9: 8, -8: 1, 22: 5117, -7: 5182, 18: 5114, -3: [{1: 0, 2: h'01'}]}, 
  {23: 5125, -9: 16, -8: 1, 22: 5117, -7: 5185, -6: [{1: 0, 2: h'07'}], 
                                                    18: 5112, -3: [{1: 0, 2: h'00'}]}, 
  {23: 8001, -9: 4, -8: 1, 22: 5118, -7: 5182, 18: 5114, -3: [{1: 0, 2: h'0B'}]}, 
  {23: 8002, -9: 12, -8: 1, 22: 5118, -7: 5183, 18: 5115}, 
  {23: 8003, -9: 45(5176), -8: 1, 22: 5118, -7: 5183, 18: 5115}, 
  {23: 8001, -9: 4, -8: 2, 22: 5118, -7: 5182, 18: 5114, -3: [{1: 0, 2: h'00'}]}, 
  {23: 8002, -9: 4, -8: 2, 22: 5118, -7: 5183, 18: 5115}, 
  {23: 8003, -9: 45(5176), -8: 2, 22: 5118, -7: 5183, 18: 5115}, 
  {23: 8001, -9: 4, -8: 3, 22: 5118, -7: 5182, 18: 5114, -3: [{1: 0, 2: h'04'}]}, 
  {23: 8002, -9: 4, -8: 3, 22: 5118, -7: 5183, 18: 5115}, 
  {23: 8003, -9: 45(5176), -8: 3, 22: 5118, -7: 5183, 18: 5115}, 
  {23: 8001, -9: 4, -8: 4, 22: 5118, -7: 5182, 18: 5114, -3: [{1: 0, 2: h'00'}]}, 
  {23: 8002, -9: 4, -8: 4, 22: 5118, -7: 5183, 18: 5115}, 
  {23: 8003, -9: 45(5176), -8: 4, 22: 5118, -7: 5183, 18: 5115}, 
  {23: 8001, -9: 4, -8: 5, 22: 5118, -7: 5182, 18: 5114, -3: [{1: 0, 2: h'02'}]}, 
  {23: 8002, -9: 4, -8: 5, 22: 5118, -7: 5182, 18: 5114, -3: [{1: 0, 2: h'01'}]}, 
  {23: 8003, -9: 8, -8: 5, 22: 5118, -7: 5182, 18: 5114, -3: [{1: 0, 2: h'3C'}]}, 
  {23: 8001, -9: 4, -8: 6, 22: 5118, -7: 5182, 18: 5114, -3: [{1: 0, 2: h'F1'}]}, 
  {23: 8002, -9: 4, -8: 6, 22: 5118, -7: 5182, 18: 5114, -3: [{1: 0, 2: h'01'}]}, 
  {23: 8003, -9: 8, -8: 6, 22: 5118, -7: 5182, 18: 5114, -3: [{1: 0, 2: h'02'}]}, 
  {23: 8001, -9: 8, -8: 7, 22: 5118, -7: 5182, 18: 5114, -3: [{1: 0, 2: h'0705'}]}, 
  {23: 8002, -9: 4, -8: 7, 22: 5118, -7: 5183, 18: 5115}, 
  {23: 8003, -9: 8, -8: 7, 22: 5118, -7: 5183, 18: 5115}], -11: 9, -10: 8, -12: 5187}]}}
]]></artwork></figure>

<!--
# flatten RFC9363 

with Corentin proposal to flatten the rule entries
-->

</section>
</section>
<section anchor="summary" title="Summary">

<figure><artwork><![CDATA[
  +--------+---------+----------+--------+---------+------------+---------+
  |        | RFC9363 | Univ Opt | merged | ordered |  Syntactic | Revised |
  +--------+---------+==========+========+=========+------------+---------+
  |CORECONF|    357  |     481  |    400 |     376 |        718 |         |       
  +--------+---------+----------+--------+---------+------------+---------+
  |Query   |     14  |      15  |     15 |      15 |         14 |         |
  +--------+---------+----------+--------+---------+------------+---------+
  |SCHC pkt|     49  |      49  |     49 |      49 |         52 |         |
  +--------+---------+----------+--------+---------+------------+---------+

]]></artwork></figure>

</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:
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
DXbckN5WjvWLyWqGNTzzUqxfHHLquR97R9NdhAB+bgyclIjKMM1C1wpYGdNR
2KOUaosRKTlWuC3GcQVxdQ5vVbiGieVw75e2NTxl+j7BhOObOALmJBFjI7a5
6pzdVbVWJVmX+INrcaKdVk6/JaOvSdSFTsdhyjcp80W8haBDqeZsruh105qp
CiWlc9rMRsBOks5nVE6Y5ZWEzkQqkuIUgeGkUyQVmleUL/WyJzFXkH3j3Beb
62K4AXmEMZpPugkya0mm07AYyUJNXUfzquuD7dg6Ku1dqJYLfV+5Hc/k3/Lp
65bdpZukvIBPbcyryojlagEpXxd9gxVE58sMbcaG30gFmGQOD/huYUxIF7Ri
uFJlyTss0humTfUMeX3g8jo4EnWIHg6P16VjMGi5Vize6wvsQwe3jkJdXUJq
xugAY3uRsw1AoxNL8uT1OQdzHBOK7s1xgJdbYSBSkHkFAjQ/NJJFoQgASQkT
W/vaXvhrQqk4dqgYM0p7g735dAjyXU7m5rQPH3CihYcdvOMKGzOGtJwI6Hl9
iEsXgEwFNLrgusywreAAhkmniU6z98NxF5Q274XC5VQnWYjLIX92GXzaq4RP
fr9KWP1+lfC21yX+fpVwNSy/XyVcDQt3LbAAvbR33QEUPvRWP/xn7AD9r1p1
q6sMts2NoTSl5ybk7J89JW9GW96B+v8q7kD93sR+/bPuQK1eJKQ7vkx4V97w
q6W7rlKPuB/51053W8zofxrdHdGUujLYb4Lujn5zdLfFjP6n0V33t8fvur85
utt9Rr96uus97kL4XzPdyZR2FVl/xXQnMzpu7Tajj6K7X3CRkO6Ohe66O+lb
v2q6O/7N0d3x45jDr5nu+qzP9k/6vxm66//mztndZ/SrO2e9KzmNCVoHVrzl
8u/4xbqIitOKCzPLRS6038eWfmarrCywOBL2Ccf8bF/cHbpqARZZSSOdw4dQ
7We6pKy+xPFZYoqfshl9GqVZrr5LowZVARCzt7k3cUDXpOKtaqb4abdOnjR0
FHkQurcQ8zLsY4nbWZgmZJPP9t1reelWsbqKQ3RZEVLEIh9m42Che2i9Py9k
NEvKIDnT3CrI2GlTnWGIiQSLANBT9Dek6A8Qj4jjPeHqG5O6U6oY3YC2QL9O
qeY6BmfFmImaVw2bkcZ3tprC6+QAvDznAp904WyDCisD9npc+qJhCy1T6Q5d
cl0dZGGoXR/cbefDh0PxQbROWq1Bv7/+RtrClbS9yjtpa711t9K2qq6k7Tz+
TlpEWKG+tb6Gs+zNrKp8jVEO8YQutHDdqnhpLNMtU4cUShJScetja28esZ38
LhqHQ9kB1Ds7dJfjfNVe054rGY7deuyyDCjKAZNlyOl1b93h3tYl7ravaUWc
zpOlqftMt12m0WiZl+pT6xSb5C5MV1U8d/Nx+ApCp8ANE/Inv+qCyJeKLgOS
TJwVF6tff5kFlQD/FV3UffIxN1oMWq2j0kXd3PkBuTeDmFeEw11eHPJ9Ff/9
11kcfeR1FrU1pSH84BdTWMWkbRmXNJC/DpKTELlCCQplo2qQVPrtgeWYzd9z
0n/PSV+bk64zqH/8PSf9n5WTvir3/FH5xlsmrCOAwIc/Go1PS10KGttrCOjI
9Nnz2wqh2NTnnXvwJ9T5aLqwE1rT5W7z2akHfz5Hu8+nu2E+VV3uNp+devDn
0/3061PV5W7z2akHfz693efT2TCfR3TZLnV55LG23bt0yyhUTvx45y6flaHs
fGSXGyf+iC7Ly9P2uuzv3mW/1dsw9apON9HwGnjcpj/VWXY4WVcrovbVvzQa
tc/UdBbkWJjuzbMzup6lViMN5izB4qARFawD4YuvqtLvGlEFJU1MAGk0vqYA
3eUc7yNjeVSpL8o2pS/KhqXqb73HNce49WAgfaDwbYzcho9zzhB44OBF+sTx
wqRHQ6PwNkI9+2EFXBWRdPbZOri02kAAYkS6gIpFZfkjZjPwMwx8NxNBGd6a
7PSnT4021mt1/+2uGandMw97zjMLEbzrgPep4eK7+d7lgqwTA5f9CJ/sMwtK
r/OLwcUb4zNQ/LCC7SycXHME+2fq588C/9kH0CKXMSe/hxOdKbbMb5I042hi
Ch7G6PB3kkBCt/dg2Y5sSdlTQI0jSei4C0Fb38/Upa23cnpNJozvL1++fPX9
KZkVREm4+O7Nxb+eqrOL528vzxovL/7tLW7Sv4C+o87+/PrNxdVVs/b/AVLp
A3l+KgEA

-->

</rfc>

