<?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 RFC7252 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7252.xml">
<!ENTITY RFC7950 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7950.xml">
<!ENTITY RFC9254 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.9254.xml">
<!ENTITY RFC9595 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.9595.xml">
<!ENTITY RFC2119 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC8174 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8174.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-core-sid SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-core-sid.xml">
<!ENTITY RFC8949 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8949.xml">
<!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 RFC9371 SYSTEM "https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.9371.xml">
]>


<rfc ipr="trust200902" docName="draft-toutain-core-private-sid-translation-00" category="std" consensus="true" submissionType="IETF">

  <front>
    <title abbrev="private-sid-translation">Private SID Translation for CORECONF</title>

    <author fullname="Laurent Toutain">
      <organization>IMT Atlantique</organization>
      <address>
        <email>laurent.toutain@imt-atlantique.fr</email>
      </address>
    </author>

    <date year="2026" month="June" day="01"/>

    <area>ART</area>
    <workgroup>Constrained RESTful Environments (CoRE)</workgroup>
    <keyword>CORECONF</keyword> <keyword>CoMI</keyword> <keyword>YANG</keyword> <keyword>SID</keyword> <keyword>constrained devices</keyword>

    <abstract>


<t>This document describes a mechanism for translating privately assigned YANG SID
values to globally allocated SIDs, enabling constrained devices to use compact
local identifiers while remaining interoperable with standard CORECONF
implementations.</t>



    </abstract>


  </front>

  <middle>


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

<t>YANG SID identifiers <xref target="I-D.ietf-core-sid"/> are designed to be globally unique,
ensuring that any node from any YANG Data Model can be unambiguously identified
without conflict across implementations and deployments. SIDs are compact
integers, far smaller than their ASCII path equivalents, and their delta
encoding in CBOR maps <xref target="RFC9254"/> further reduces the on-wire size.</t>

<t>However, on very constrained networks — such as LPWANs operating under strict
duty cycles or satellite links with tight bandwidth budgets — even a few extra
bytes per message can have a significant impact on energy consumption and
transmission cost. In these environments, the globally allocated SID values,
which may require two or more bytes in CBOR encoding, can still be considered
too large.</t>

<t>This document defines a mechanism for using small negative integers as private
SID aliases. Negative SIDs have no meaning in the global allocation scheme and
encode in a single byte in CBOR for values in the range -1 to -24. A device
can therefore maintain a local translation table mapping each official SID to a
private negative alias, use the compact alias in all on-air exchanges, and
perform the substitution to the canonical SID when interoperability with
standard CORECONF implementations is required.</t>

<t>For reason of simplicity this translation is purely arithmetic and applied to the whole module.</t>

<t>This approach is intended for closed deployments where both endpoints share the
same translation table and full CORECONF interoperability is not a requirement.</t>

<section anchor="requirements-language" title="Requirements Language">


<t>The key words “MUST”, “MUST NOT”, “REQUIRED”, “SHALL”, “SHALL NOT”,
“SHOULD”, “SHOULD NOT”, “RECOMMENDED”, “NOT RECOMMENDED”, “MAY”, and
“OPTIONAL” in this document are to be interpreted as described in
BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they appear in
all capitals, as shown here.</t>

</section>
</section>
<section anchor="private-sid-computation" title="Private SID Computation">

<t>Each YANG Data Model is assigned a contiguous range of globally allocated SIDs.
The private SID translator uses that allocation to derive a compact negative
alias for every node in the model according to the following formula:</t>

<figure><artwork><![CDATA[
privateSID = (offset - 1) - (current_sid - entry_point)
]]></artwork></figure>

<t>where:</t>

<t><list style="symbols">
  <t><spanx style="verb">entry_point</spanx> is the lowest SID in the official range allocated to the model,
found in the <spanx style="verb">entry-point</spanx> field of the <spanx style="verb">assignment-range</spanx> list in the <spanx style="verb">.sid</spanx>
file (<xref target="RFC9595"/>).</t>
  <t><spanx style="verb">current_sid</spanx> is the globally allocated SID of the node to be translated.</t>
  <t><spanx style="verb">offset</spanx> is a non-positive integer that shifts the private range to avoid
overlapping with other translated models (e.g., 0 for the first model).</t>
</list></t>

<t>With <spanx style="verb">offset = 0</spanx>, the node whose <spanx style="verb">current_sid</spanx> equals <spanx style="verb">entry_point</spanx> maps to -1,
the next node maps to -2, and so on. The resulting private SIDs form a dense
sequence of negative integers starting from -1, each encoding in a single
byte in CBOR for values in the range -1 to -24 <xref target="RFC8949"/>.</t>

<t>The inverse translation is:</t>

<figure><artwork><![CDATA[
current_sid = entry_point - (privateSID - offset + 1)
]]></artwork></figure>

<t>Both endpoints MUST be configured with identical values of <spanx style="verb">entry_point</spanx> and
<spanx style="verb">offset</spanx> for the translation to be consistent. The translation table is
therefore fully determined by these two parameters together with the official
SID range of the model.</t>

<section anchor="offset" title="Offset">

<t>The <spanx style="verb">offset</spanx> parameter allows multiple YANG Data Models to be translated
into non-overlapping regions of the private SID space.</t>

<t>The first module SHOULD use <spanx style="verb">offset = 0</spanx>, so that its first node maps to
private SID -1 and the translated range starts at the most compact encoding
possible.</t>

<t>When a second module must also be translated, its <spanx style="verb">offset</spanx> MUST be set so
that its range does not overlap with the first module. If the first module
covers N SIDs (i.e., its official SID range has N entries), then the second
module MUST use:</t>

<figure><artwork><![CDATA[
offset = -N
]]></artwork></figure>

<t>More generally, each additional module uses an offset equal to the negative
of the cumulative number of SIDs already allocated to previously translated
modules. This ensures that all private SIDs remain distinct and that each
endpoint can unambiguously determine which module a received private SID
belongs to.</t>

</section>
</section>
<section anchor="processing-and-interoperability" title="Processing and Interoperability">

<t>Private SID translation is a wire-encoding optimization applied exclusively
when transmitting or receiving datastore elements over a constrained link.
It MUST NOT be used as an internal representation for data processing.</t>

<t>Any validation, comparison, augmentation, or other processing of YANG
data MUST be performed using the official SID values. An implementation
MUST translate incoming private SIDs back to their official counterparts
before passing data to any processing layer, and MUST translate outgoing
data to private SIDs only at the point of serialization.</t>

<t>If a YANG Data Model has not been configured for private SID translation,
its SIDs are transmitted as-is, using their official values. Translation
is therefore purely opt-in per model: untranslated models and translated
models can coexist within the same message, each identified by whether
the SID falls in the negative (private) or positive (official) range.</t>

</section>
<section anchor="use-cases" title="Use Cases">

<section anchor="schc-management" title="SCHC Management">

<t>SCHC <xref target="RFC8724"/> compresses IPv6, UDP, and CoAP headers by applying rules stored
in a Static Context shared between two entities. When the Static Context needs
to be updated, management messages must be exchanged between these two entities.</t>

<t>In this deployment, the only YANG Data Model in use is the SCHC Rule Data Model
<xref target="RFC9363"/>. Both endpoints are pre-configured with the same private SID
translation table covering exactly that model, and no other YANG module is
expected to be exchanged over the link. There is therefore no risk of SID
collision with another data model, and full CORECONF interoperability with
third-party implementations is not required.</t>

<t>The SCHC SID allocation <xref target="RFC9363"/> has already been manually designed to
optimize delta encoding: nodes are ordered so that consecutive siblings stay
within a delta range of 23, which allows each CBOR map key to be encoded in a
single byte.</t>

<t>However, SCHC rules make extensive use of identityref leaves (field-id,
direction-indicator, matching-operator, comp-decomp-action) to allow easy
extensibility. Unlike map keys, identityref values are encoded as absolute SIDs,
not as deltas. Even though the SCHC SIDs are relatively small (around 2550-2950),
each identityref value still requires 3 bytes of CBOR encoding. A typical rule
entry contains four such identityrefs, contributing 12 bytes per field entry
in overhead.</t>

<t>Private SID translation addresses both costs: delta keys become small negative
integers (one byte each), and identityref values mapped into the -1 to -24 range
also encode in a single byte, reducing the per-entry identityref overhead from
12 bytes to 4.</t>

<t>Note that if the Data Model is augmented, the additional nodes can either be
covered by a separate private SID zone defined with <spanx style="verb">offset</spanx> or left with their official SIDs.</t>

<t>An illustration of this translation applied to an IPv6/UDP/CoAP compression
rule is provided in <xref target="sec-example-schc"/>.</t>

</section>
<section anchor="pen" title="PEN">

<t>Private Enterprise Numbers (PENs) <xref target="RFC9371"/> are IANA-assigned identifiers used by
organizations to define their own private SID ranges, following the formula
described in <xref target="RFC9595"/>. Since PENs can reach values up to 2^32, the resulting
SID values can be very large and require up to 9 bytes of CBOR encoding.</t>

<t>Even if delta encoding is used to limit the impact of large SID values,
the base SID still appears in full at least once per message. The cost
may therefore be significant for short messages such as FETCH or iPATCH
requests.</t>

</section>
<section anchor="other-sdos" title="Other SDOs">

<t>SID ranges are allocated globally by IANA following <xref target="RFC9595"/>. The IETF
receives the first million values (1 to 999,999). Within this range, most
IETF YANG Data Models are assigned SIDs in the low thousands, requiring at
most 3 bytes of CBOR encoding per absolute value, and benefiting from
single-byte delta keys within a well-ordered model.</t>

<t>Other Standards Development Organizations (SDOs) such as ETSI, 3GPP, or
oneM2M receive ranges starting in the millions. Their SID values immediately
require 5 bytes of CBOR encoding for absolute references, and even delta keys
spanning tens of thousands of positions may cost 3 to 5 bytes. This
represents a significant overhead for any deployment over constrained
networks — precisely the environments where those SDOs are often active
(e.g., NB-IoT, LoRaWAN, or Zigbee-based management).</t>

<t>Private SID translation levels this asymmetry: regardless of where a SID
range falls in the global allocation, the entire model can be remapped to
a dense set of small negative integers, giving any SDO the same on-wire
efficiency that the IETF enjoys by virtue of its early allocation.</t>

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

<t>The ordering of nodes within the official SID range directly determines which
private SIDs they receive. Since the formula maps the node at <spanx style="verb">entry_point</spanx> to
<spanx style="verb">offset - 1</spanx> (e.g., -1 when offset=0), <spanx style="verb">entry_point+1</spanx> to <spanx style="verb">offset - 2</spanx> (e.g., -2), and so on,
nodes that appear most frequently in on-wire messages SHOULD be allocated
the lowest offsets from <spanx style="verb">entry_point</spanx> so that they receive the smallest private
SIDs and benefit from single-byte CBOR encoding (values -1 to -24).</t>

<t>For a YANG Data Model containing identityref leaves, the values of those
identities are the elements that appear most often in serialized instances.
The SID allocation SHOULD therefore place the most-used identity values
at the beginning of the range, ahead of structural nodes and less-frequent
identities.</t>

<section anchor="sec-example-schc" title="Example: SCHC Rule Data Model">

<t>In the SCHC Rule Data Model <xref target="RFC9363"/>, every compression rule entry
contains at least one Matching Operator (MO), one Compression/Decompression
Action (CDA), and a Field Length function. These three categories of
identityref appear in every field descriptor of every rule and are therefore
the most bandwidth-sensitive values.</t>

<t>The allocation for the SCHC Rule Data Model uses <spanx style="verb">entry_point</spanx> = 2551 and
<spanx style="verb">offset</spanx> = 0. The first 24 entries (private SIDs -1 to -24) cover MO, CDA,
Direction Indicator, and Field Length identities, all encoding in a single CBOR
byte. Field Identifiers (FID) start at rank 24 (private SID -25) and require
two bytes, which remains acceptable since a FID appears once per field
descriptor whereas MO, CDA, and FL appear in every entry.</t>

<figure title="Private SID allocation for the SCHC Rule Data Model" anchor="fig-schc-allocation"><artwork align="left"><![CDATA[
 SID  Private  Identity
----  -------  ------------------------------
2551       -1  mo-equal
2552       -2  mo-ignore
2553       -3  mo-match-mapping
2554       -4  mo-msb
2555       -5  cda-not-sent
2556       -6  cda-value-sent
2557       -7  cda-mapping-sent
2558       -8  cda-lsb
2559       -9  cda-compute
2560      -10  cda-deviid
2561      -11  cda-appiid
2562      -12  di-bidirectional
2563      -13  di-down
2564      -14  di-up
2565      -15  fl-length-bits
2566      -16  fl-length-bytes
2567      -17  fl-token-length
2568      -18  fl-variable
2569      -19  fl-variable-bits
2570      -20  (reserved)
2571      -21  space-id-coap
2572      -22  (reserved)
2573      -23  (reserved)
2574      -24  (reserved)        ← last single-byte encoding
----  -------  ------------------------------
2575      -25  fid-ipv6-version
2576      -26  fid-ipv6-trafficclass
2577      -27  fid-ipv6-trafficclass-ds
2578      -28  fid-ipv6-trafficclass-ecn
2579      -29  fid-ipv6-flowlabel
2580      -30  fid-ipv6-payload-length
2581      -31  fid-ipv6-nextheader
2582      -32  fid-ipv6-hoplimit
2583      -33  fid-ipv6-deviid
2584      -34  fid-ipv6-devprefix
2585      -35  fid-ipv6-appiid
2586      -36  fid-ipv6-appprefix
2590      -40  fid-udp-dev-port
2591      -41  fid-udp-app-port
2592      -42  fid-udp-length
2593      -43  fid-udp-checksum
 ...      ...  ...
]]></artwork></figure>

<t>The following figure shows an IPv6/UDP/CoAP compression rule with private SID
translation applied. All delta keys in CBOR maps become negative because the
private SID delta equals the negative of the official delta:
<spanx style="verb">p(child) - p(parent) = -(child - parent)</spanx>. Identityref values (field-id,
direction-indicator, matching-operator, comp-decomp-action) are also replaced
by their private SID aliases. Target values are encoded as h’hex’.</t>

<t>The following example shows the translation from a SCHC rule into the private SID address space. The start of the rule in JSON is given for clarity. The full Set or Rules contains 5 compression rules. The file before translation is 3994 byte long and after translation 3057, so a compression rate of 23 %.</t>

<figure title="IPv6/UDP/CoAP rule with private SID translation" anchor="fig-schc-rule-private"><artwork align="left"><![CDATA[
{
  "ietf-schc:schc": {
    "rule": [
      {
        "entry": [
          {
            "entry-index": 0,
            "field-id": "ietf-schc:fid-ipv6-version",
            "field-length": 4,
            "field-position": 1,
            "direction-indicator": "ietf-schc:di-bidirectional",
            "matching-operator": "ietf-schc:mo-equal",
            "comp-decomp-action": "ietf-schc:cda-not-sent",
            "target-value": [
              {
                "index": 0,
                "value": "Bg=="
              }
            ]
          },
          {
            "entry-index": 1,
            "field-id": "ietf-schc:fid-ipv6-trafficclass",
            "field-length": 8,
            "field-position": 1,
            "direction-indicator": "ietf-schc:di-bidirectional",
            "matching-operator": "ietf-schc:mo-ignore",
            "comp-decomp-action": "ietf-schc:cda-value-sent",
            "target-value": [
              {
                "index": 0,
                "value": "AA=="
              }
            ]
          },
          {
            "entry-index": 2,
            "field-id": "ietf-schc:fid-ipv6-flowlabel",
            "field-length": 20,
            "field-position": 1,
            "direction-indicator": "ietf-schc:di-bidirectional",
            "matching-operator": "ietf-schc:mo-ignore",
            "comp-decomp-action": "ietf-schc:cda-value-sent",
            "target-value": [
              {
                "index": 0,
                "value": "AA=="
              }
            ]
          },

{2700: {23: [
  {23: [
    {1: 0,  2: 2575, 5: 4,  8: 1, 7: 2562, 12: 2551, 16: 2555,
                              9: [{1: 0, 2: h'06'}]},
    {1: 1,  2: 2576, 5: 8,  8: 1, 7: 2562, 12: 2552, 16: 2556,
                              9: [{1: 0, 2: h'00'}]},
    {1: 2,  2: 2579, 5: 20, 8: 1, 7: 2562, 12: 2552, 16: 2556,
                              9: [{1: 0, 2: h'00'}]},
    {1: 3,  2: 2580, 5: 16, 8: 1, 7: 2562, 12: 2552, 16: 2559},
    {1: 4,  2: 2581, 5: 8,  8: 1, 7: 2562, 12: 2551, 16: 2555,
                              9: [{1: 0, 2: h'11'}]},
    {1: 5,  2: 2582, 5: 8,  8: 1, 7: 2562, 12: 2552, 16: 2555,
                              9: [{1: 0, 2: h'ff'}]},
    {1: 6,  2: 2584, 5: 64, 8: 1, 7: 2562, 12: 2551, 16: 2555,
                              9: [{1: 0, 2: h'2001066073015c4c'}]},
    {1: 7,  2: 2583, 5: 64, 8: 1, 7: 2562, 12: 2551, 16: 2555,
                              9: [{1: 0, 2: h'0000000000000005'}]},
    {1: 8,  2: 2586, 5: 64, 8: 1, 7: 2562, 12: 2552, 16: 2556},
    {1: 9,  2: 2585, 5: 64, 8: 1, 7: 2562, 12: 2552, 16: 2556},
    {1: 10, 2: 2590, 5: 16, 8: 1, 7: 2562, 12: 2551, 16: 2555,
                              9: [{1: 0, 2: h'1633'}]},
    {1: 11, 2: 2591, 5: 16, 8: 1, 7: 2562, 12: 2552, 16: 2556},
    {1: 12, 2: 2592, 5: 16, 8: 1, 7: 2562, 12: 2552, 16: 2559,
                              9: [{1: 0, 2: h'00'}]},
    {1: 13, 2: 2593, 5: 16, 8: 1, 7: 2562, 12: 2552, 16: 2559,
                              9: [{1: 0, 2: h'00'}]},
    {1: 14, 2: 2600, 5: 2,  8: 1, 7: 2562, 12: 2551, 16: 2555,
                              9: [{1: 0, 2: h'01'}]},
    {1: 15, 2: 2601, 5: 2,  8: 1, 7: 2562, 12: 2551, 16: 2555,
                              9: [{1: 0, 2: h'01'}]},
    {1: 16, 2: 2602, 5: 4,  8: 1, 7: 2562, 12: 2552, 16: 2556,
                              9: [{1: 0, 2: h'00'}]},
    {1: 17, 2: 2603, 5: 8,  8: 1, 7: 2562, 12: 2553, 16: 2557,
                              9: [{1: 0, 2: h'05'},
                                  {1: 1, 2: h'07'},
                                  {1: 2, 2: h'45'}]},
    {1: 18, 2: 2606, 5: 16, 8: 1, 7: 2562, 12: 2552, 16: 2556,
                              9: [{1: 0, 2: h'00'}]},
    {1: 19, 2: 2607, 5: CBORTag(45, 2566), 6: 16,
             8: 1, 7: 2562, 12: 2552, 16: 2556},
    {1: 20, 3: 2571, 4: 11, 5: CBORTag(45, 2568),
             8: 1, 7: 2563, 12: 2553, 16: 2557,
                              9: [{1: 0, 2: h'63'},
                                  {1: 1, 2: h'73'}]},
    {1: 21, 3: 2571, 4: 12, 5: CBORTag(45, 2568),
             8: 1, 7: 2563, 12: 2553, 16: 2557,
                              9: [{1: 0, 2: h'8d'},
                                  {1: 1, 2: h'8e'}]},
    {1: 22, 3: 2571, 4: 12, 5: CBORTag(45, 2568),
             8: 1, 7: 2564, 12: 2551, 16: 2555,
                              9: [{1: 0, 2: h'8e'}]},
    {1: 23, 3: 2571, 4: 15, 5: CBORTag(45, 2568),
             8: 1, 7: 2563, 12: 2551, 16: 2555,
                              9: [{1: 0, 2: h'643d30'}]},
    {1: 24, 3: 2571, 4: 17, 5: CBORTag(45, 2568),
             8: 1, 7: 2563, 12: 2551, 16: 2555,
                              9: [{1: 0, 2: h'8e'}]}],
  2: 0, 1: 5, 3: 2655},

{-151: {-23: [
  {-23: [
    {-1: 0,  -2: -25, -5: 4,  -8: 1, -7: -12, -12: -1, -16: -5,
                               -9: [{-1: 0, -2: h'06'}]},
    {-1: 1,  -2: -26, -5: 8,  -8: 1, -7: -12, -12: -2, -16: -6,
                               -9: [{-1: 0, -2: h'00'}]},
    {-1: 2,  -2: -29, -5: 20, -8: 1, -7: -12, -12: -2, -16: -6,
                               -9: [{-1: 0, -2: h'00'}]},
    {-1: 3,  -2: -30, -5: 16, -8: 1, -7: -12, -12: -2, -16: -9},
    {-1: 4,  -2: -31, -5: 8,  -8: 1, -7: -12, -12: -1, -16: -5,
                               -9: [{-1: 0, -2: h'11'}]},
    {-1: 5,  -2: -32, -5: 8,  -8: 1, -7: -12, -12: -2, -16: -5,
                               -9: [{-1: 0, -2: h'ff'}]},
    {-1: 6,  -2: -34, -5: 64, -8: 1, -7: -12, -12: -1, -16: -5,
                               -9: [{-1: 0, -2: h'2001066073015c4c'}]},
    {-1: 7,  -2: -33, -5: 64, -8: 1, -7: -12, -12: -1, -16: -5,
                               -9: [{-1: 0, -2: h'0000000000000005'}]},
    {-1: 8,  -2: -36, -5: 64, -8: 1, -7: -12, -12: -2, -16: -6},
    {-1: 9,  -2: -35, -5: 64, -8: 1, -7: -12, -12: -2, -16: -6},
    {-1: 10, -2: -40, -5: 16, -8: 1, -7: -12, -12: -1, -16: -5,
                               -9: [{-1: 0, -2: h'1633'}]},
    {-1: 11, -2: -41, -5: 16, -8: 1, -7: -12, -12: -2, -16: -6},
    {-1: 12, -2: -42, -5: 16, -8: 1, -7: -12, -12: -2, -16: -9,
                               -9: [{-1: 0, -2: h'00'}]},
    {-1: 13, -2: -43, -5: 16, -8: 1, -7: -12, -12: -2, -16: -9,
                               -9: [{-1: 0, -2: h'00'}]},
    {-1: 14, -2: -50, -5: 2,  -8: 1, -7: -12, -12: -1, -16: -5,
                               -9: [{-1: 0, -2: h'01'}]},
    {-1: 15, -2: -51, -5: 2,  -8: 1, -7: -12, -12: -1, -16: -5,
                               -9: [{-1: 0, -2: h'01'}]},
    {-1: 16, -2: -52, -5: 4,  -8: 1, -7: -12, -12: -2, -16: -6,
                               -9: [{-1: 0, -2: h'00'}]},
    {-1: 17, -2: -53, -5: 8,  -8: 1, -7: -12, -12: -3, -16: -7,
                               -9: [{-1: 0, -2: h'05'},
                                    {-1: 1, -2: h'07'},
                                    {-1: 2, -2: h'45'}]},
    {-1: 18, -2: -56, -5: 16, -8: 1, -7: -12, -12: -2, -16: -6,
                               -9: [{-1: 0, -2: h'00'}]},
    {-1: 19, -2: -57, -5: CBORTag(45, -16), -6: 16,
              -8: 1, -7: -12, -12: -2, -16: -6},
    {-1: 20, -3: -21, -4: 11, -5: CBORTag(45, -18),
              -8: 1, -7: -13, -12: -3, -16: -7,
                               -9: [{-1: 0, -2: h'63'},
                                    {-1: 1, -2: h'73'}]},
    {-1: 21, -3: -21, -4: 12, -5: CBORTag(45, -18),
              -8: 1, -7: -13, -12: -3, -16: -7,
                               -9: [{-1: 0, -2: h'8d'},
                                    {-1: 1, -2: h'8e'}]},
    {-1: 22, -3: -21, -4: 12, -5: CBORTag(45, -18),
              -8: 1, -7: -14, -12: -1, -16: -5,
                               -9: [{-1: 0, -2: h'8e'}]},
    {-1: 23, -3: -21, -4: 15, -5: CBORTag(45, -18),
              -8: 1, -7: -13, -12: -1, -16: -5,
                               -9: [{-1: 0, -2: h'643d30'}]},
    {-1: 24, -3: -21, -4: 17, -5: CBORTag(45, -18),
              -8: 1, -7: -13, -12: -1, -16: -5,
                               -9: [{-1: 0, -2: h'8e'}]}],
  -2: 0, -1: 5, -3: -105},

]]></artwork></figure>

</section>
</section>
<section anchor="schc-considerations" title="SCHC Considerations">

<t>When SCHC <xref target="RFC8724"/> is used to compress CORECONF messages that carry
private SIDs, the compression rules themselves need to account for the
translation mapping. This document defines a new Compression/Decompression
Action (CDA) to support this use case.</t>

<section anchor="sid-translation-cda" title="sid-translation CDA">

<t>The <spanx style="verb">sid-translation</spanx> CDA is applied to fields that carry SID values
(map keys and identityref values) in a CORECONF CBOR message. It replaces
the SID value in the field with its private alias, or restores the original
SID upon decompression, according to the translation parameters configured
in the rule.</t>

<t>The CDA takes the following Function Arguments, which MAY be repeated to
cover multiple YANG Data Models translated in the same session:</t>

<t><list style="hanging">
  <t hangText='&lt;spanx style=&quot;verb&quot;&gt;sid-file&lt;/spanx&gt;:'>
  A reference to an augmented SID file for a given YANG Data Model.
The augmented SID file extends the standard SID allocation file with
two additional pieces of information:

      <list style="symbols">
        <t><spanx style="strong">Leaf types</spanx>: for each node in the model, the SID file records
whether the corresponding YANG leaf carries an <spanx style="verb">identityref</spanx> value.
This allows the CDA to identify which fields in the CBOR encoding
contain SID values that require translation, in addition to the map
keys that always carry SID deltas.</t>
        <t><spanx style="strong"></spanx><spanx style="verb">entry_point</spanx> and <spanx style="strong"></spanx><spanx style="verb">sid_range</spanx>: the lowest SID value allocated
to the model and the number of consecutive SIDs in its range.  These
two values, already present in any standard SID file, are used as the
translation parameters defined in this document.</t>
      </list>
  </t>
  <t hangText='&lt;spanx style=&quot;verb&quot;&gt;offset&lt;/spanx&gt;:'>
  The offset parameter for that model’s private SID translation, as
defined in this document.  Combined with the <spanx style="verb">entry_point</spanx> and
<spanx style="verb">sid_range</spanx> values extracted from the <spanx style="verb">sid-file</spanx>, it fully determines
the bijective mapping between official and private SIDs.</t>
</list></t>

<t>Each (<spanx style="verb">sid-file</spanx>, <spanx style="verb">offset</spanx>) pair describes the translation for one YANG
Data Model. When multiple models are translated in the same session, one
pair per model is included in the Function Arguments list, ordered by
ascending <spanx style="verb">entry_point</spanx>.</t>

<t>During compression, the residue sent for a field carrying an official SID
that falls within a configured range is the corresponding private SID.
For SID values outside all configured ranges, the official SID is sent
unchanged. During decompression, the inverse formula is applied to recover
the official SID.</t>

<t>The following example shows a SCHC rule entry that applies <spanx style="verb">sid-translation</spanx>
to the CORECONF payload field, using the SCHC Rule Data Model SID file
(<spanx style="verb">file.sid</spanx>, offset=0):</t>

<figure title="SCHC rule entry for CORECONF SID translation" anchor="fig-sid-translation-rule"><artwork align="left"><![CDATA[
/--------+-----+----+----+----+--------+------------------------\
|  FID   | FL  | FP | DI | TV |   MO   |          CDA           |
+========+=====+====+====+====+========+========================+
| CoAP   | var |  1 | bi |    | ignore | sid-translation        |
| Payload|     |    |    |    |        | (file.sid, 0)          |
\--------+-----+----+----+----+--------+------------------------/
]]></artwork></figure>

</section>
</section>
<section anchor="security-considerations" title="Security Considerations">

<t>TODO</t>

</section>
<section anchor="iana-considerations" title="IANA Considerations">

<t>This document requests that IANA update the “YANG Schema Item iDentifier
(SID)” registry established by <xref target="RFC9595"/> to define the semantics of
negative SID values.</t>

<t>Specifically, this document requests the reservation of the range -1 to
-1000 for use as private SIDs, as defined in this document. These values
MUST NOT be used as globally allocated SIDs. They are intended exclusively
for local, bilateral use between two endpoints that have agreed on a
private SID translation configuration, as described in <xref target="processing-and-interoperability"/>.</t>

<t>The following table summarizes the requested addition to the SID registry:</t>

<texttable title="Addition to the YANG SID Registry">
      <ttcol align='right'>Range</ttcol>
      <ttcol align='left'>Registration Procedure</ttcol>
      <ttcol align='left'>Description</ttcol>
      <ttcol align='left'>Reference</ttcol>
      <c>-1 to -1000</c>
      <c>Reserved</c>
      <c>Private SID (local use only)</c>
      <c>This document</c>
</texttable>

</section>


  </middle>

  <back>

    <references title='Normative References'>

&RFC7252;
&RFC7950;
&RFC9254;
&RFC9595;
&RFC2119;
&RFC8174;
&I-D.ietf-core-comi;
&I-D.ietf-core-sid;


    </references>

    <references title='Informative References'>

&RFC8949;
&RFC8724;
&RFC9363;
&RFC9371;


    </references>


<section numbered="false" anchor="acknowledgments" title="Acknowledgments">

<t>This work is supported by the SCHC Chair from IMT Atlantique and Afnic.</t>

</section>


  </back>

<!-- ##markdown-source:
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
rwsaShpps3aaI8DtawWBJGZ/P+rENW/1wwM/9YVTbIfNlQvfFffeQwJ4AA73
gpJomKf1SeTS3lLn3tclpcMHIw908Std5UAb7kpjhkmZ8Xql9qVciAida4n/
qug8nL0p1NyKYXc0It9cT9XV9xhuuxAMkXaALnTdrrmgeW1DIJ7gSNk6CcdY
8AUf1ngt6rOgnzZbdD5FEFB7Awvf0RkmVVT3WbekdKdfx17qMF2JoAgVq3mD
7DDhI74ZuWH49dHkOMJ7BJT2x4F2L6RafNyucbCNb9LiY3/2WKlz7wefe9MX
iTRNj8ODLp25cuxBVpUYoNBxkPZoOrRoHK8DAHSKAIjCV350pZ5iy7uVzjV2
5jhd05Wj3bzVV9G4MB7YKOruCeU7AswJrwSt6loQIbQtsV5f7wdnejtX+Gw+
wmOMgth+g//QDY6d+mjfvo4sX5jt89/Xn62Pxpf235/EB0mHX6T8gCdZ8PMC
Po5O4OP6X+FDytNzarV/6BTqvw/i+5f67/v6s/XR+NL++x5woLgXodwGOcLq
w8c0ZqgfJO+rgi/tGM7i8EFeMHkZzw8bPvjLtqFmR/Z23Fn86YmUfNEK9Vv/
owOSGx3ttwXJ/R8xPDrUh0gfXBHuJV6L9q/Pj87p9nU8Hb/W2Iizzfl7Fmbq
wJcSkWRu8Y3teDV0AHGqWsj4yBzKEtuA6c4WXTtY4CxgGLx/vrjh+yucs/jN
SxlAkRf4fxkI6SRd6lxXXR92u1qqkI5b0/V35X0okz1T+a1zmUXjmksBWViv
py/TVs6V2TqDCT7hR/XpPx3ib7p57b5bbrHnijyBvXfZvRIOsaHbrzsg4egm
8Agmote8R8rctUSM4bvQ5zkmVHhUQNzjsa0ttf5btq60eOj6u49rZlAflKsW
iyCPf1GG7sQEJEQreKPD0FomwEp9kJfED6N/l9zE2NJtfVFFqn2kj9k5au2o
J/Qzob1WeFf39j/s36OV9zZsbkZDok87kuQgXD7ytIaQe6hkm28zp1uM0mS1
g7azIbMf0C5o7T9oEcz+XxE0aVao3YAL3XqHanwQvk2zu0RFlJYUMBRHpCp6
uQWOuVB8LgXgoZ0gV8lZsL3JVBcFbjDooHir+b8FoYjpYJbGYVf8L1Sz0Ck5
ZgAA

-->

</rfc>

