<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.31 (Ruby 3.4.8) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-bormann-cbor-yang-standin-03" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title>Stand-in Tags for YANG-CBOR</title>
    <seriesInfo name="Internet-Draft" value="draft-bormann-cbor-yang-standin-03"/>
    <author initials="C." surname="Bormann" fullname="Carsten Bormann">
      <organization>Universität Bremen TZI</organization>
      <address>
        <postal>
          <street>Postfach 330440</street>
          <city>Bremen</city>
          <code>D-28359</code>
          <country>Germany</country>
        </postal>
        <phone>+49-421-218-63921</phone>
        <email>cabo@tzi.org</email>
      </address>
    </author>
    <author initials="M." surname="Matejka" fullname="Maria Matejka">
      <organization>CZ.NIC</organization>
      <address>
        <postal>
          <street>Milesovska 1136/5</street>
          <city>Praha</city>
          <code>13000</code>
          <country>Czechia</country>
        </postal>
        <email>maria.matejka@nic.cz</email>
        <email>mq@jmq.cz</email>
      </address>
    </author>
    <date year="2026" month="March" day="02"/>
    <area>Applications and Real-Time</area>
    <workgroup>CBOR (Concise Binary Object Representation) Maint. and Ext.</workgroup>
    <keyword>efficient YANG</keyword>
    <abstract>
      <?line 68?>

<t>YANG (RFC 7950) is a data modeling language used to model
configuration data, state data, parameters and results of Remote
Procedure Call (RPC) operations or actions, and notifications.</t>
      <t>YANG-CBOR (RFC 9254) defines encoding rules for YANG in the Concise Binary
Object Representation (CBOR) (RFC 8949).
While the overall structure of YANG-CBOR is encoded in an efficient,
binary format, YANG itself has its roots in XML and therefore
traditionally encodes some information such as date/times and IP
addresses/prefixes in a verbose text form.</t>
      <t>This document defines how to use existing CBOR tags for this kind of
information in YANG-CBOR as a "stand-in" for the text-based
information that would be found in the original form of YANG-CBOR.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-bormann-cbor-yang-standin/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        CBOR (Concise Binary Object Representation) Maintenance and Extensions Working Group mailing list (<eref target="mailto:cbor@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/cbor/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/cbor/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/cabo/yang-standin"/>.</t>
    </note>
  </front>
  <middle>
    <?line 86?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>(see abstract)</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The terminology of <xref target="RFC9254"/> applies.</t>
      <t>The present document focuses on a "basic" processing model where the original
source of YANG-modeled data serves as the encoder, and where the decoder is
part of the ultimate destination of those data.
<cref anchor="TODO">TODO:</cref> More elaborate processing models are possible and desirable; several
of the terms defined below are defined here only so they can be used
to discuss processing models of this kind.</t>
      <dl>
        <dt>Legacy representation:</dt>
        <dd>
          <t>The (often text-based) representation for a YANG data item as used
in YANG-XML, YANG-JSON, and (unchanged) YANG-CBOR.</t>
        </dd>
        <dt>Stand-in tag:</dt>
        <dd>
          <t>A CBOR tag that can supply the information that is equivalent to a
legacy representation in a more efficient format (e.g., using binary
data).</t>
        </dd>
        <dt>Encoder:</dt>
        <dd>
          <t>The party which generates (sends) CBOR data described by YANG.</t>
        </dd>
        <dt>Intermediate Encoder:</dt>
        <dd>
          <t>An encoder which isn't the original author of the data, converting it
from legacy representation.</t>
        </dd>
        <dt>Aggressive Intermediate Encoder:</dt>
        <dd>
          <t>An intermediate encoder that might choose to discard some
information of a legacy representation in order to be able to use a
stand-in tag.
Such a choice may be based on knowledge of the Decoder's handling of
such information (e.g, to accommodate intolerant decoders), or it
may be a general characteristic of the service provided by the
intermediate encoder (e.g., in order to serve as a legacy-eschewing
encoder).</t>
        </dd>
        <dt>Legacy-Eschewing Encoder:</dt>
        <dd>
          <t>An encoder that does not generate legacy representations in places
where a stand-in tag might instead be used.
An intermediate encoder may need to be aggressive to achieve this.</t>
        </dd>
        <dt>Decoder:</dt>
        <dd>
          <t>The party which receives and parses CBOR data described by YANG.</t>
        </dd>
        <dt>Intolerant Decoder:</dt>
        <dd>
          <t>A decoder that does not accept legacy representations in places
where a stand-in tag might instead be used.
Such a decoder is designed to interoperate only with a
legacy-eschewing encoder.</t>
        </dd>
        <dt>Intermediate Decoder:</dt>
        <dd>
          <t>A decoder which isn't the final recipient of the data, converting it
to legacy representation.</t>
        </dd>
        <dt>Data Transfer:</dt>
        <dd>
          <t>A series of actions, generally beginning by data origination, encoding,
continuing by optional intermediate transcoding, sending and receiving,
and finally decoding and consuming.</t>
        </dd>
        <dt>Round Trip:</dt>
        <dd>
          <t>Part of a data transfer between an encoder generating CBOR data with
stand-in tags and a decoder parsing the data.</t>
        </dd>
        <dt>Legacy Round Trip:</dt>
        <dd>
          <t>A Round Trip where the encoder is an intermediate encoder or the decoder is
an intermediate decoder and any of these converts from or to the
legacy representation.</t>
        </dd>
        <dt>Unambiguous Round Trip:</dt>
        <dd>
          <t>A Legacy Round Trip that provides exactly the same legacy representation
(not just semantically equivalent).
The stand-in tag is also said to "unambiguously stand in" for the
legacy representation.</t>
        </dd>
      </dl>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in <xref target="BCP14"/> (<xref target="RFC2119"/>) (<xref target="RFC8174"/>) when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

</section>
    <section anchor="stand-in-tags">
      <name>Stand-In Tags</name>
      <t>As a complement to the representations defined in <xref target="RFC9254"/>, the
present document defines efficient representations of certain types of
YANG-modeled data, based on both existing and newly registered "stand-in" tags that are
designed to represent the underlying data.
Whenever a stand-in tag is defined for a specific type, the representation
as specified in this document may be used.
Otherwise, the encoding is as specified in <xref target="RFC9254"/>.</t>
      <t>This section defines several standard stand-in tags for general use,
in many cases based on the type definitions of <xref target="RFC9911"/>.</t>
      <t>(<cref anchor="TODO_1">TODO:</cref>
The detailed conditions under which certain transformations can be
applied to YANG-CBOR data representations after these have been
generated are TBD; several processing models are conceivable for this.
These processing models are out of scope of the present document; work has
started in <xref target="I-D.marenamat-netmod-core-yang-transcoding"/>.
One such condition might be:
Where information starts out in a legacy representation, these tags
are only used when an Unambiguous Round Trip can be achieved.)</t>
      <section anchor="t-1-100">
        <name><tt>ietf-yang-types</tt>: Tag 1 (Date/Time) and Tag 100 (Date)</name>
        <t><xref section="3" sectionFormat="of" target="RFC9911"/> defines the following types in <tt>ietf-yang-types</tt>:</t>
        <table anchor="tab-legacy-ts">
          <name>Legacy date and date/time representation in ietf-yang-types</name>
          <thead>
            <tr>
              <th align="left">YANG type</th>
              <th align="left">base type</th>
              <th align="left">specification</th>
              <th align="left">stand-in</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">date-and-time</td>
              <td align="left">string</td>
              <td align="left">
                <xref target="RFC6021"/></td>
              <td align="left">tag 1</td>
            </tr>
            <tr>
              <td align="left">date</td>
              <td align="left">string</td>
              <td align="left">
                <xref target="RFC9911"/></td>
              <td align="left">(none)</td>
            </tr>
            <tr>
              <td align="left">date-no-zone</td>
              <td align="left">string</td>
              <td align="left">
                <xref target="RFC9911"/></td>
              <td align="left">tag 100</td>
            </tr>
          </tbody>
        </table>
        <t>Tag 1 (Section <xref target="RFC8949" section="3.4.2" sectionFormat="bare"/> of RFC 8949 <xref target="STD94"/>) can unambiguously stand in for all <tt>date-and-time</tt> values that:</t>
        <ul spacing="normal">
          <li>
            <t>do not specify a time zone (note that <xref target="RFC9911"/>
recommends using "<tt>Z</tt>", but allows using the legacy "<tt>-00:00</tt>" format,
for time-zone-free date-times)</t>
          </li>
          <li>
            <t>are not an inserted leap second (23:59:60 or 23:59:61)</t>
          </li>
          <li>
            <t>do not have trailing zeroes in the fractional part of the seconds.</t>
          </li>
          <li>
            <t>do not have fractional parts of the seconds with a precision that
cannot be represented in floating-point tag content in a tag 1.</t>
          </li>
        </ul>
        <t>All other <tt>date-and-time</tt> values stay in legacy representation.
(<cref anchor="TODO_2">TODO:</cref> explore the use of tag 1001 for some of these cases.)</t>
        <t>Tag 1 uses an integer tag content for all <tt>date-and-time</tt> values
without fractional seconds and a floating-point tag content for values
that have fractional seconds given.</t>
        <t>Tag 100 <xref target="RFC8943"/> can unambiguously stand in for all <tt>date-no-zone</tt> values.</t>
      </section>
      <section anchor="hex-tags">
        <name><tt>ietf-yang-types</tt>: Tags 37 (UUID), CPA113 (hex-string), and CPA114 (dotted-quad)</name>
        <t><xref section="3" sectionFormat="of" target="RFC9911"/> defines the following types in <tt>ietf-yang-types</tt>:</t>
        <table anchor="tab-hex">
          <name>Legacy UUID and colon-separated hexadecimal representations in ietf-yang-types</name>
          <thead>
            <tr>
              <th align="left">YANG type</th>
              <th align="left">base type</th>
              <th align="left">specification</th>
              <th align="left">stand-in</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">uuid</td>
              <td align="left">string</td>
              <td align="left">
                <xref target="RFC9911"/></td>
              <td align="left">tag 37</td>
            </tr>
            <tr>
              <td align="left">hex-string</td>
              <td align="left">string</td>
              <td align="left">
                <xref target="RFC9911"/></td>
              <td align="left">tag CPA113</td>
            </tr>
            <tr>
              <td align="left">mac-address</td>
              <td align="left">string</td>
              <td align="left">
                <xref target="RFC6021"/></td>
              <td align="left">tag CPA113</td>
            </tr>
            <tr>
              <td align="left">phys-address</td>
              <td align="left">string</td>
              <td align="left">
                <xref target="RFC6021"/></td>
              <td align="left">tag CPA113</td>
            </tr>
          </tbody>
        </table>
        <t>These types are hexadecimal representations of byte strings, adorned
in various ways.</t>
        <t><tt>uuid</tt> stands for a 16-byte byte string (<xref section="4" sectionFormat="of" target="RFC9562"/>),
represented in hexadecimal with ASCII minus/hyphen characters added in
specific positions.
Tag 37 (see also Section 7 of <xref target="I-D.bormann-cbor-notable-tags"/>) can be used as a binary
stand-in for this adorned hexadecimal representation.
According to the description of <tt>uuid</tt> in <xref section="3" sectionFormat="of" target="RFC9911"/>,
"the canonical representation uses lowercase characters".
For consistency with this specification, an intermediate decoder of a
tag 37 stand-in <bcp14>MUST</bcp14> use lowercase characters in the uuid hex string
generated (<cref anchor="TODO_3">TODO:</cref> align with processing model).</t>
        <t><tt>hex-string</tt>, and the similar, but more specific types <tt>mac-address</tt>
and <tt>phys-address</tt>, stand for byte strings in various lengths (exactly
6 bytes for <tt>mac-address</tt>, variable-length for the others),
represented in hexadecimal with ASCII colon characters added between
the representations of each of the bytes.
This specification defines tag number CPA113 <xref target="iana-113"/> to be an additional
"Expected Later Encoding" tag (similar to tag 23, see Section <xref target="RFC8949" section="3.4.5.2" sectionFormat="bare"/> of RFC 8949 <xref target="STD94"/>), except that the expected encoding of CPA113
includes colons and uses lowercase hex digits.</t>
        <t>The following example implementation of the transformation in a
decoder shows the use of lowercase hex characters (<tt>%02x</tt> as opposed
to <tt>%02X</tt>) and the insertion of colon characters between the
hex-represented bytes:</t>
        <sourcecode type="ruby"><![CDATA[
def tag_cpa113_to_legacy(s)
  s.bytes.map{|x| "%02x" % x}.join(":")
end
]]></sourcecode>
        <t>Note: <xref section="2.4" sectionFormat="of" target="RFC9542"/> defines tag number 48 for MAC
addresses.
This could be used in place of tag CPA113, but only for MAC addresses,
not for other byte strings of a similar form.
This specification therefore requests IANA to assign a new CBOR tag that can be
used as a stand-in for all instances of colon-separated text strings
of hexadecimally represented bytes, as shown in <xref target="tab-hex"/>.</t>
        <t>Note: Related stand-in semantics have not been defined so far for tag 21 or 22
that were defined alongside tag 23: YANG has a base type "binary" that is
encoded in base64 classic in YANG-XML and YANG-JSON, but already
encoded in a binary byte string in YANG-CBOR.
Use cases that might
actually use base type "string" for base64-encoded data in YANG have
not been considered.  However, tag 21 or 22 could be used as stand-in
tags if that is useful for some specific YANG model not considered
here.</t>
        <t><cref anchor="cpa">RFC-Editor: This document uses the CPA (code point allocation)
  convention described in [I-D.bormann-cbor-draft-numbers].  For
  each usage of the term "CPA", please remove the prefix "CPA"
  from the indicated value and replace the residue with the value
  assigned by IANA; perform an analogous substitution for all other
  occurrences of the prefix "CPA" in the document.  Finally,
  please remove this note.</cref></t>
        <table anchor="tab-dotquad">
          <name>Legacy dotted-quad representation in ietf-yang-types</name>
          <thead>
            <tr>
              <th align="left">YANG type</th>
              <th align="left">base type</th>
              <th align="left">specification</th>
              <th align="left">stand-in</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">dotted-quad</td>
              <td align="left">string</td>
              <td align="left">
                <xref target="RFC6991"/></td>
              <td align="left">tag CPA114</td>
            </tr>
          </tbody>
        </table>
        <t><tt>dotted-quad</tt> stands for an unsigned 32-bit integer (<xref section="3" sectionFormat="of" target="RFC9911"/>), represented as a text string in decimal values
for 4 byte values in network byte order, separated by ASCII dot characters.
Tag CPA114 can be used as a binary stand-in for this adorned bytewise decimal representation.</t>
        <t>IANA is requested to assign CPA114 as the CBOR tag to indicate a value
that is represented by a dotted-quad in YANG.
The tag content is an unsigned integer of a size not greater
than 4 bytes (0..0xFFFFFFFF, uint32).
It is expected that when the data is being displayed e.g. to human
operator, the data will be shown as a string of 4 decimal numbers
giving the number as four bytes in network byte order, separated by
ASCII dot characters.</t>
        <t><cref anchor="cpa_1">RFC-Editor: This document uses the CPA (code point allocation)
  convention described in [I-D.bormann-cbor-draft-numbers].  For
  each usage of the term "CPA", please remove the prefix "CPA"
  from the indicated value and replace the residue with the value
  assigned by IANA; perform an analogous substitution for all other
  occurrences of the prefix "CPA" in the document.  Finally,
  please remove this note.</cref></t>
        <t><cref anchor="TODO_4">TODO:</cref>
Better formulation of the dotted-quad expected later encoding.<br/>
PROPOSED: RFC 9911 is clear that dotted-quad stands for an unsigned
integer that fits into 32 bits; we should not replace that with a byte
string.<br/>
RESOLVED: Should we fix the 4-byte length or make it more generic with arbitrary length
  byte strings? (For usage as IPv4 similar identifier -- see ietf-ospf.yang --
  the 4-byte length is sufficient and brings less complexity)</t>
      </section>
      <section anchor="inet-types">
        <name><tt>ietf-inet-types</tt>: Tags 54 and 52 (IP addresses and prefixes)</name>
        <t><xref section="4" sectionFormat="of" target="RFC9911"/> defines in <tt>ietf-inet-types</tt>:</t>
        <table anchor="tab-legacy-yt">
          <name>Legacy representations in ietf-yang-types</name>
          <thead>
            <tr>
              <th align="left">YANG type</th>
              <th align="left">base type</th>
              <th align="left">specification</th>
              <th align="left">stand-in</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">ip-address</td>
              <td align="left">union</td>
              <td align="left">
                <xref target="RFC6021"/></td>
              <td align="left">(see union)</td>
            </tr>
            <tr>
              <td align="left">ipv6-address</td>
              <td align="left">string</td>
              <td align="left">
                <xref target="RFC6021"/></td>
              <td align="left">tag 54</td>
            </tr>
            <tr>
              <td align="left">ipv4-address</td>
              <td align="left">string</td>
              <td align="left">
                <xref target="RFC6021"/></td>
              <td align="left">tag 52</td>
            </tr>
            <tr>
              <td align="left">ip-address-no-zone</td>
              <td align="left">union</td>
              <td align="left">RFC 6991</td>
              <td align="left">(see union)</td>
            </tr>
            <tr>
              <td align="left">ipv6-address-no-zone</td>
              <td align="left">ipv6-address</td>
              <td align="left">RFC 6991</td>
              <td align="left">tag 54</td>
            </tr>
            <tr>
              <td align="left">ipv4-address-no-zone</td>
              <td align="left">ipv4-address</td>
              <td align="left">RFC 6991</td>
              <td align="left">tag 52</td>
            </tr>
            <tr>
              <td align="left">ip-address-link-local</td>
              <td align="left">union</td>
              <td align="left">
                <xref target="RFC9911"/></td>
              <td align="left">(see union)</td>
            </tr>
            <tr>
              <td align="left">ipv6-address-link-local</td>
              <td align="left">ipv6-address</td>
              <td align="left">
                <xref target="RFC9911"/></td>
              <td align="left">tag 54</td>
            </tr>
            <tr>
              <td align="left">ipv4-address-link-local</td>
              <td align="left">ipv4-address</td>
              <td align="left">
                <xref target="RFC9911"/></td>
              <td align="left">tag 52</td>
            </tr>
            <tr>
              <td align="left">ip-prefix</td>
              <td align="left">union</td>
              <td align="left">
                <xref target="RFC6021"/></td>
              <td align="left">(see union)</td>
            </tr>
            <tr>
              <td align="left">ipv6-prefix</td>
              <td align="left">string</td>
              <td align="left">
                <xref target="RFC6021"/></td>
              <td align="left">tag 54</td>
            </tr>
            <tr>
              <td align="left">ipv4-prefix</td>
              <td align="left">string</td>
              <td align="left">
                <xref target="RFC6021"/></td>
              <td align="left">tag 52</td>
            </tr>
            <tr>
              <td align="left">ip-address-and-prefix</td>
              <td align="left">union</td>
              <td align="left">
                <xref target="RFC9911"/></td>
              <td align="left">(see union)</td>
            </tr>
            <tr>
              <td align="left">ipv6-address-and-prefix</td>
              <td align="left">string</td>
              <td align="left">
                <xref target="RFC9911"/></td>
              <td align="left">tag 54</td>
            </tr>
            <tr>
              <td align="left">ipv4-address-and-prefix</td>
              <td align="left">string</td>
              <td align="left">
                <xref target="RFC9911"/></td>
              <td align="left">tag 52</td>
            </tr>
          </tbody>
        </table>
        <t>(<cref anchor="TODO_5">TODO:</cref> align this and next paragraph with processing model.)
An intermediate encoder <bcp14>MAY</bcp14> normalize IPv6 addresses and prefixes that do not comply with <xref target="RFC5952"/>
but can be converted into the stand-in representation.
For example, IPv6 address written as 2001:db8:: is the same as 2001:0db8::0:0 and both would
be converted to <tt>54(h'20010db8000000000000000000000000')</tt>; only the
first one complies with <xref target="RFC5952"/>. The encoder <bcp14>MAY</bcp14> refuse to convert the
latter one.</t>
        <t>If the schema specifies
<tt>ip-prefix</tt>, an intermediate encoder <bcp14>MAY</bcp14> normalize prefixes with non-zero bits after the prefix end.
For example, if the legacy representation of <tt>ipv6-prefix</tt> is 2001:db8:1::/40, the encoder
may either refuse it as malformed or convert it to 2001:db8::/40 and represent
as <tt>54([40, h'20010db8'])</tt>.</t>
        <t>The encoder implementation should be clear about which normalizations are employed and how.</t>
        <t>Adapted examples from <xref target="RFC9164"/>:</t>
        <t>Stand-in representation of IPv6 address 2001:db8:1234:deed:beef:cafe:face:feed
is <tt>54(h'20010db81234deedbeefcafefacefeed')</tt>.</t>
        <t>CBOR encoding of stand-in (19 bytes):</t>
        <sourcecode type="cbor-pretty"><![CDATA[
D8 36                                  # tag(54)
   50                                  # bytes(16)
      20010DB81234DEEDBEEFCAFEFACEFEED
]]></sourcecode>
        <t>CBOR encoding of legacy representation (40 bytes):</t>
        <sourcecode type="cbor-pretty"><![CDATA[
78 26                                   # text(38)
   323030313A6462383A313233343A646565643A
   626565663A636166653A666163653A66656564
   # "2001:db8:1234:deed:beef:cafe:face:feed"
]]></sourcecode>
        <t>Stand-in representation of IPv6 prefix 2001:db8:1234::/48 is
<tt>54([48, h'20010db81234'])</tt>.</t>
        <t>CBOR encoding of stand-in (12 bytes):</t>
        <sourcecode type="cbor-pretty"><![CDATA[
D8 36                 # tag(54)
   82                 # array(2)
      18 30           # unsigned(48)
      46              # bytes(6)
         20010DB81234 # " \u0001\r\xB8\u00124"
]]></sourcecode>
        <t>CBOR encoding of legacy representation (19 bytes):</t>
        <sourcecode type="cbor-pretty"><![CDATA[
72                                      # text(18)
   323030313A6462383A313233343A3A2F3438 # "2001:db8:1234::/48"
]]></sourcecode>
        <t>Stand-in representation of IPv6 link-local address fe80::0202:02ff:ffff:fe03:0303/64%eth0 is
<tt>54([h'fe8000000000020202fffffffe030303', 64, 'eth0'])</tt>.</t>
        <t>CBOR encoding of stand-in (27 bytes):</t>
        <sourcecode type="cbor-pretty"><![CDATA[
D8 36                                   # tag(54)
   83                                   # array(3)
      50                                # bytes(16)
         FE8000000000020202FFFFFFFE030303
      18 40                             # unsigned(64)
      44                                # bytes(4)
         65746830                       # "eth0"
]]></sourcecode>
        <t>CBOR encoding of legacy representation (40 bytes):</t>
        <sourcecode type="cbor-pretty"><![CDATA[
78 26                                   # text(38)
   666538303A3A303230323A303266663A666666
   663A666530333A303330332F36342565746830
   # "fe80::0202:02ff:ffff:fe03:0303/64%eth0"
]]></sourcecode>
        <t>Stand-in representation of IPv4 address 192.0.2.1 is <tt>52(h'c0000201')</tt>.</t>
        <t>CBOR encoding of stand-in (7 bytes):</t>
        <sourcecode type="cbor-pretty"><![CDATA[
D8 34          # tag(52)
   68          # bytes(4)
      C0000201
]]></sourcecode>
        <t>CBOR encoding of legacy representation (10 bytes):</t>
        <sourcecode type="cbor-pretty"><![CDATA[
69                    # text(9)
   3139322e302e322e31 # "192.0.2.1"
]]></sourcecode>
        <t>Stand-in representation of IPv4 prefix 192.0.2.0/24 is <tt>52([24, h'c0000200'])</tt>.</t>
        <t>CBOR encoding of stand-in (10 bytes):</t>
        <sourcecode type="cbor-pretty"><![CDATA[
D8 34             # tag(52)
   82             # array(2)
      18 18       # unsigned(24)
      48          # bytes(4)
         C0000200
]]></sourcecode>
        <t>CBOR encoding of legacy representation (13 bytes):</t>
        <sourcecode type="cbor-pretty"><![CDATA[
6C                          # text(12)
   3139322e302e322e302f3234 # "192.0.2.0/24"
]]></sourcecode>
        <t>Stand-in representation of IPv4 address combined with prefix 192.0.2.1/24 is <tt>52([h'c0000201', 24])</tt>.</t>
        <t>CBOR encoding of stand-in (10 bytes):</t>
        <sourcecode type="cbor-pretty"><![CDATA[
D8 34             # tag(52)
   82             # array(2)
      48          # bytes(4)
         C0000201
      18 18       # unsigned(24)
]]></sourcecode>
        <t>CBOR encoding of legacy representation (13 bytes):</t>
        <sourcecode type="cbor-pretty"><![CDATA[
6C                          # text(12)
   3139322e302e322e312f3234 # "192.0.2.1/24"
]]></sourcecode>
        <t>TO DO: Check how the unions in <xref target="RFC9911"/> interact
with this.  E.g., the union ip-address needs to be parsed to decide
between tag 54 and tag 52.</t>
      </section>
      <section anchor="union-handling">
        <name>Union handling</name>
        <t>When the schema specifies a union data type for a node, there are
additional requirements on the encoder and decoder. The encoder <bcp14>MUST</bcp14>
be fully aware of data semantics and use the appropriate data type
and encoding. The decoder <bcp14>MUST</bcp14> use the data type information for further
processing, in a similar way as specified in <xref section="6.10" sectionFormat="of" target="RFC7951"/>.</t>
        <t>(<cref anchor="TODO_6">TODO:</cref> Align the rest of the section with processing models.)
An encoder which is fully aware of data semantics <bcp14>MUST</bcp14> use the appropriate
data type, even though it isn't formally specified by the schema.</t>
        <t>If an intermediate encoder doesn't fully understand the data semantics,
it needs to find out which type the data actually is to choose the right stand-in.
If more types are possible, it <bcp14>MAY</bcp14> choose any of these which allow for an Unambiguous Round Trip,
otherwise it <bcp14>SHOULD</bcp14> keep the legacy representation.</t>
        <t>If a decoder receives data for a union-typed node, it <bcp14>MUST</bcp14> accept any data type
of the union, even though it may violate additional constraints outside the schema.</t>
      </section>
    </section>
    <section anchor="using-stand-in-tags">
      <name>Using Stand-In Tags</name>
      <section anchor="the-standin-file">
        <name>The Standin File</name>
        <t>Encoder and decoder need some agreement over whether, where and how
stand-in tags are used.
This agreement is embodied in a "standin file", which has
approximately the data content of <xref target="standin-file"/> (representation TBD):</t>
        <table anchor="standin-file">
          <name>Information Content of Standin File     (*) insert identityrefs from YANG module here</name>
          <thead>
            <tr>
              <th align="left">YANG typename</th>
              <th align="left">Tag number(s)</th>
              <th align="left">Description  (*)</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">ietf-yang-types:date-and-time</td>
              <td align="left">1</td>
              <td align="left">
                <xref target="t-1-100"/> of RFCthis</td>
            </tr>
            <tr>
              <td align="left">ietf-yang-types:date-no-zone</td>
              <td align="left">100</td>
              <td align="left">
                <xref target="t-1-100"/> of RFCthis</td>
            </tr>
            <tr>
              <td align="left">ietf-yang-types:uuid</td>
              <td align="left">37</td>
              <td align="left">
                <xref target="hex-tags"/> of RFCthis</td>
            </tr>
            <tr>
              <td align="left">ietf-yang-types:hex-string</td>
              <td align="left">CPA113</td>
              <td align="left">
                <xref target="hex-tags"/> of RFCthis</td>
            </tr>
            <tr>
              <td align="left">ietf-yang-types:mac-address</td>
              <td align="left">CPA113</td>
              <td align="left">
                <xref target="hex-tags"/> of RFCthis</td>
            </tr>
            <tr>
              <td align="left">ietf-yang-types:phys-address</td>
              <td align="left">CPA113</td>
              <td align="left">
                <xref target="hex-tags"/> of RFCthis</td>
            </tr>
            <tr>
              <td align="left">ietf-yang-types:dotted-quad</td>
              <td align="left">CPA114</td>
              <td align="left">
                <xref target="hex-tags"/> of RFCthis</td>
            </tr>
            <tr>
              <td align="left">ietf-inet-types:ip-address</td>
              <td align="left">54, 52 (see union)</td>
              <td align="left">
                <xref target="inet-types"/> of RFCthis</td>
            </tr>
            <tr>
              <td align="left">ietf-inet-types:ipv6-address</td>
              <td align="left">54</td>
              <td align="left">
                <xref target="inet-types"/> of RFCthis</td>
            </tr>
            <tr>
              <td align="left">ietf-inet-types:ipv4-address</td>
              <td align="left">52</td>
              <td align="left">
                <xref target="inet-types"/> of RFCthis</td>
            </tr>
            <tr>
              <td align="left">ietf-inet-types:ip-address-no-zone</td>
              <td align="left">54, 52 (see union)</td>
              <td align="left">
                <xref target="inet-types"/> of RFCthis</td>
            </tr>
            <tr>
              <td align="left">ietf-inet-types:ipv6-address-no-zone</td>
              <td align="left">54</td>
              <td align="left">
                <xref target="inet-types"/> of RFCthis</td>
            </tr>
            <tr>
              <td align="left">ietf-inet-types:ipv4-address-no-zone</td>
              <td align="left">52</td>
              <td align="left">
                <xref target="inet-types"/> of RFCthis</td>
            </tr>
            <tr>
              <td align="left">ietf-inet-types:ip-address-link-local</td>
              <td align="left">54, 52 (see union)</td>
              <td align="left">
                <xref target="inet-types"/> of RFCthis</td>
            </tr>
            <tr>
              <td align="left">ietf-inet-types:ipv6-address-link-local</td>
              <td align="left">54</td>
              <td align="left">
                <xref target="inet-types"/> of RFCthis</td>
            </tr>
            <tr>
              <td align="left">ietf-inet-types:ipv4-address-link-local</td>
              <td align="left">52</td>
              <td align="left">
                <xref target="inet-types"/> of RFCthis</td>
            </tr>
            <tr>
              <td align="left">ietf-inet-types:ip-prefix</td>
              <td align="left">54, 52 (see union)</td>
              <td align="left">
                <xref target="inet-types"/> of RFCthis</td>
            </tr>
            <tr>
              <td align="left">ietf-inet-types:ipv6-prefix</td>
              <td align="left">54</td>
              <td align="left">
                <xref target="inet-types"/> of RFCthis</td>
            </tr>
            <tr>
              <td align="left">ietf-inet-types:ipv4-prefix</td>
              <td align="left">52</td>
              <td align="left">
                <xref target="inet-types"/> of RFCthis</td>
            </tr>
            <tr>
              <td align="left">ietf-inet-types:ip-address-and-prefix</td>
              <td align="left">54, 52 (see union)</td>
              <td align="left">
                <xref target="inet-types"/> of RFCthis</td>
            </tr>
            <tr>
              <td align="left">ietf-inet-types:ipv6-address-and-prefix</td>
              <td align="left">54</td>
              <td align="left">
                <xref target="inet-types"/> of RFCthis</td>
            </tr>
            <tr>
              <td align="left">ietf-inet-types:ipv4-address-and-prefix</td>
              <td align="left">52</td>
              <td align="left">
                <xref target="inet-types"/> of RFCthis</td>
            </tr>
          </tbody>
        </table>
        <t>The YANG typename is a name composed of a module name and the name of
a type defined there, separated by a colon; names of built-in types do not
contain a module name or a colon.
The tag number is the number of the CBOR Tag used for representing
certain instances of this type.
The description is a YANG identity (identified by a SID for an
identityref (<xref section="6.10.1" sectionFormat="of" target="RFC9254"/>), or, for experimental
use, a name for an identityref (<xref section="6.10.2" sectionFormat="of" target="RFC9254"/>))
defined in a YANG model; the
description of the identity either points to a section of the defining
document that defines its usage or contains this information outright.</t>
        <t>(Note that there is currently no way to assign a SID to a typename;
this could be added to the definition of a ".sid" file in <xref target="RFC9595"/>.)</t>
        <t>Standin Files <bcp14>SHOULD</bcp14> generally be defined in a document such as the
present one; they <bcp14>SHOULD NOT</bcp14> be liberally made up for specific applications
(unless there are overriding concerns motivating choosing ultimate
efficiency over interoperability).</t>
      </section>
      <section anchor="defining-stand-in-usage-in-schema">
        <name>Defining Stand-In Usage in Schema</name>
        <t>Requiring modifications to a YANG model in order to use it with
stand-in tags would pose significant deployment hurdles to using
stand-in tags.</t>
        <t>A YANG model may want to restrict the information content of the
YANG-modeled data it describes in such a
way that stand-in tags can always be used, e.g., by using date-no-zone
in place of date where that is applicable, or by excluding features of
a YANG data type that cannot be represented in a stand-in-tag.</t>
        <t>ISSUE: Should this document define such restricted types, e.g.:</t>
        <sourcecode type="yang"><![CDATA[
  typedef efficient-date-and-time {
    type date-and-time {
      pattern '.*Z'
    }
    description
      "The efficient-date-and-time type is a profile of the
       date-and-time type that is intended to always enable using a
       stand-in tag as per ((this document)), e.g., by not expressing
       a time-zone-offset.
       Not all restrictions that make this possible are expressed in
       the above YANG string pattern.";
  }
]]></sourcecode>
        <t>(This particular example is additionally problematic since the usual
way to indicate the absence of time zone information in ISO 8601
date-times is using <tt>Z</tt> as the time zone indicated as specified in
<xref section="3" sectionFormat="of" target="RFC9911"/>, not <tt>-00:00</tt> as was
previously required by <xref section="3" sectionFormat="of" target="RFC6991"/> but not allowed by ISO 8601;
see <xref target="RFC9557"/> for references to versions of ISO 8601 and additional discussion of this.)
<cref anchor="no8601reference">Note that this paragraph does not reference ISO
8601 because that is complicated and best done by consulting <xref target="RFC9557"/>.</cref></t>
      </section>
      <section anchor="original-stand-ins">
        <name>Original stand-ins</name>
        <t>The simplest situation is when no intermediate encoders and decoders are
involved in the data transfer, therefore the round trip is not legacy.
In this case, no conversions are involved and data is validated using the
schema extension from the previous section.</t>
      </section>
      <section anchor="legacy-round-trip">
        <name>Legacy Round Trip</name>
        <t>Producing a stand-in <bcp14>MUST</bcp14> be triggered by schema usage. Intermediate encoders
<bcp14>MUST NOT</bcp14> encode stand-ins when no schema is available.</t>
        <t>It's generally not recommended to do a legacy round trip where both the encoder
and decoder are converting from and to the legacy representation.</t>
      </section>
    </section>
    <section anchor="negotiation">
      <name>Negotiation</name>
      <t>(<cref anchor="TODO_7">TODO:</cref> Align with processing models.)</t>
      <t>Introducing stand-in tags in YANG-CBOR requires some form of consent
between the producer and the consumer of YANG-CBOR information:</t>
      <ul spacing="normal">
        <li>
          <t>A producer that creates YANG-CBOR containing stand-in tags needs to
know whether the consumer supports stand-in tags, and, possibly,
which specific stand-in tags it supports.  We speak about the
<em>capability</em> of a consumer to consume stand-in tags.
A producer <bcp14>MUST NOT</bcp14> employ stand-in tags unless it knows about the
capabilities of the consumer.
A consumer <bcp14>SHOULD</bcp14> indicate its capabilities for consuming stand-in tags.</t>
        </li>
        <li>
          <t>A consumer may not want to implement certain legacy text-based
representations where more efficient (and easy to implement)
stand-in tags are available, i.e., it may use an intolerant decoder.
This places a <em>requirement</em> on the
producer to use a legacy-eschewing encoder (which therefore needs to
have the <em>capability</em> to produce YANG-CBOR
where those stand-in tags are used, in place of legacy
representations).
Where the consumer employs an intolerant decoder, stand-in tags are
<em>required</em> by the consumer: for interoperating with a producer's
encoder, this <bcp14>MUST</bcp14> be legacy-eschewing, i.e. it <bcp14>MUST NOT</bcp14> employ
legacy representations.
A consumer that has requirements for only receiving stand-in tags in
place of legacy representations, <bcp14>MUST</bcp14> indicate this to the producer.</t>
        </li>
      </ul>
      <t>ISSUE: Where do we put those two aspects of negotiation?</t>
      <ul spacing="normal">
        <li>
          <t>NETCONF negotiation</t>
        </li>
        <li>
          <t>yang-library</t>
        </li>
        <li>
          <t>media-type parameters</t>
        </li>
        <li>
          <t>?</t>
        </li>
      </ul>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>TODO Security</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="iana-113">
        <name>New CBOR Tags</name>
        <t>In the registry "<xref section="CBOR Tags" relative="#cbor-tags" sectionFormat="bare" target="IANA.cbor-tags"/>" <xref target="IANA.cbor-tags"/>,
IANA is requested to assign the tag in <xref target="tab-new-tags"/>.</t>
        <table anchor="tab-new-tags">
          <name>New CBOR Tag Defined by this Specification</name>
          <thead>
            <tr>
              <th align="left">Tag</th>
              <th align="left">Data Item</th>
              <th align="left">Semantics</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">CPA113</td>
              <td align="left">byte string</td>
              <td align="left">Expected Later Encoding: colon-separated hexadecimal representation of a byte string</td>
              <td align="left">draft-bormann-yang-standin, <xref target="hex-tags"/></td>
            </tr>
            <tr>
              <td align="left">CPA114</td>
              <td align="left">unsigned integer</td>
              <td align="left">Expected Later Encoding: dot-separated decimal representation of network-byte-order ordered bytes of the integer.</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">draft-bormann-yang-standin, <xref target="hex-tags"/></td>
              <td align="left"> </td>
              <td align="left"> </td>
              <td align="left"> </td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="stand-in-tags-1">
        <name>stand-in tags?</name>
        <t>ISSUE: Do we want to have a separate registry for stand-in files?</t>
      </section>
      <section anchor="media-type-parameters">
        <name>media-type parameters</name>
        <t>ISSUE: Should the use of stand-in tags be mentioned in the various
YANG-CBOR-based media types (as a media type parameter)?</t>
        <t>Compare how application/yang-data+cbor can use parameters id=name/id=sid to
indicate another encoding decision.</t>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC7951">
          <front>
            <title>JSON Encoding of Data Modeled with YANG</title>
            <author fullname="L. Lhotka" initials="L." surname="Lhotka"/>
            <date month="August" year="2016"/>
            <abstract>
              <t>This document defines encoding rules for representing configuration data, state data, parameters of Remote Procedure Call (RPC) operations or actions, and notifications defined using YANG as JavaScript Object Notation (JSON) text.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7951"/>
          <seriesInfo name="DOI" value="10.17487/RFC7951"/>
        </reference>
        <reference anchor="RFC9254">
          <front>
            <title>Encoding of Data Modeled with YANG in the Concise Binary Object Representation (CBOR)</title>
            <author fullname="M. Veillette" initials="M." role="editor" surname="Veillette"/>
            <author fullname="I. Petrov" initials="I." role="editor" surname="Petrov"/>
            <author fullname="A. Pelov" initials="A." surname="Pelov"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="M. Richardson" initials="M." surname="Richardson"/>
            <date month="July" year="2022"/>
            <abstract>
              <t>YANG (RFC 7950) is a data modeling language used to model configuration data, state data, parameters and results of Remote Procedure Call (RPC) operations or actions, and notifications.</t>
              <t>This document defines encoding rules for YANG in the Concise Binary Object Representation (CBOR) (RFC 8949).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9254"/>
          <seriesInfo name="DOI" value="10.17487/RFC9254"/>
        </reference>
        <reference anchor="RFC9595">
          <front>
            <title>YANG Schema Item iDentifier (YANG SID)</title>
            <author fullname="M. Veillette" initials="M." role="editor" surname="Veillette"/>
            <author fullname="A. Pelov" initials="A." role="editor" surname="Pelov"/>
            <author fullname="I. Petrov" initials="I." role="editor" surname="Petrov"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="M. Richardson" initials="M." surname="Richardson"/>
            <date month="July" year="2024"/>
            <abstract>
              <t>YANG Schema Item iDentifiers (YANG SIDs) are globally unique 63-bit unsigned integers used to identify YANG items. SIDs provide a more compact method for identifying those YANG items that can be used efficiently, notably in constrained environments (RFC 7228). This document defines the semantics, registration processes, and assignment processes for YANG SIDs for IETF-managed YANG modules. To enable the implementation of these processes, this document also defines a file format used to persist and publish assigned YANG SIDs.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9595"/>
          <seriesInfo name="DOI" value="10.17487/RFC9595"/>
        </reference>
        <reference anchor="RFC9164">
          <front>
            <title>Concise Binary Object Representation (CBOR) Tags for IPv4 and IPv6 Addresses and Prefixes</title>
            <author fullname="M. Richardson" initials="M." surname="Richardson"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="December" year="2021"/>
            <abstract>
              <t>This specification defines two Concise Binary Object Representation (CBOR) tags for use with IPv6 and IPv4 addresses and prefixes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9164"/>
          <seriesInfo name="DOI" value="10.17487/RFC9164"/>
        </reference>
        <reference anchor="RFC9911">
          <front>
            <title>Common YANG Data Types</title>
            <author fullname="J. Schönwälder" initials="J." role="editor" surname="Schönwälder"/>
            <date month="December" year="2025"/>
            <abstract>
              <t>This document defines a collection of common data types to be used with the YANG data modeling language. It includes several new type definitions and obsoletes RFC 6991.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9911"/>
          <seriesInfo name="DOI" value="10.17487/RFC9911"/>
        </reference>
        <reference anchor="RFC5952">
          <front>
            <title>A Recommendation for IPv6 Address Text Representation</title>
            <author fullname="S. Kawamura" initials="S." surname="Kawamura"/>
            <author fullname="M. Kawashima" initials="M." surname="Kawashima"/>
            <date month="August" year="2010"/>
            <abstract>
              <t>As IPv6 deployment increases, there will be a dramatic increase in the need to use IPv6 addresses in text. While the IPv6 address architecture in Section 2.2 of RFC 4291 describes a flexible model for text representation of an IPv6 address, this flexibility has been causing problems for operators, system engineers, and users. This document defines a canonical textual representation format. It does not define a format for internal storage, such as within an application or database. It is expected that the canonical format will be followed by humans and systems when representing IPv6 addresses as text, but all implementations must accept and be able to handle any legitimate RFC 4291 format. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5952"/>
          <seriesInfo name="DOI" value="10.17487/RFC5952"/>
        </reference>
        <reference anchor="RFC8943">
          <front>
            <title>Concise Binary Object Representation (CBOR) Tags for Date</title>
            <author fullname="M. Jones" initials="M." surname="Jones"/>
            <author fullname="A. Nadalin" initials="A." surname="Nadalin"/>
            <author fullname="J. Richter" initials="J." surname="Richter"/>
            <date month="November" year="2020"/>
            <abstract>
              <t>The Concise Binary Object Representation (CBOR), as specified in RFC 7049, is a data format whose design goals include the possibility of extremely small code size, fairly small message size, and extensibility without the need for version negotiation.</t>
              <t>In CBOR, one point of extensibility is the definition of CBOR tags. RFC 7049 defines two tags for time: CBOR tag 0 (date/time string as per RFC 3339) and tag 1 (POSIX "seconds since the epoch"). Since then, additional requirements have become known. This specification defines a CBOR tag for a date text string (as per RFC 3339) for applications needing a textual date representation within the Gregorian calendar without a time. It also defines a CBOR tag for days since the date 1970-01-01 in the Gregorian calendar for applications needing a numeric date representation without a time. This specification is the reference document for IANA registration of the CBOR tags defined.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8943"/>
          <seriesInfo name="DOI" value="10.17487/RFC8943"/>
        </reference>
        <referencegroup anchor="STD94" target="https://www.rfc-editor.org/info/std94">
          <reference anchor="RFC8949" target="https://www.rfc-editor.org/info/rfc8949">
            <front>
              <title>Concise Binary Object Representation (CBOR)</title>
              <author fullname="C. Bormann" initials="C." surname="Bormann"/>
              <author fullname="P. Hoffman" initials="P." surname="Hoffman"/>
              <date month="December" year="2020"/>
              <abstract>
                <t>The Concise Binary Object Representation (CBOR) is a data format whose design goals include the possibility of extremely small code size, fairly small message size, and extensibility without the need for version negotiation. These design goals make it different from earlier binary serializations such as ASN.1 and MessagePack.</t>
                <t>This document obsoletes RFC 7049, providing editorial improvements, new details, and errata fixes while keeping full compatibility with the interchange format of RFC 7049. It does not create a new version of the format.</t>
              </abstract>
            </front>
            <seriesInfo name="STD" value="94"/>
            <seriesInfo name="RFC" value="8949"/>
            <seriesInfo name="DOI" value="10.17487/RFC8949"/>
          </reference>
        </referencegroup>
        <reference anchor="RFC9562">
          <front>
            <title>Universally Unique IDentifiers (UUIDs)</title>
            <author fullname="K. Davis" initials="K." surname="Davis"/>
            <author fullname="B. Peabody" initials="B." surname="Peabody"/>
            <author fullname="P. Leach" initials="P." surname="Leach"/>
            <date month="May" year="2024"/>
            <abstract>
              <t>This specification defines UUIDs (Universally Unique IDentifiers) --
also known as GUIDs (Globally Unique IDentifiers) -- and a Uniform
Resource Name namespace for UUIDs. A UUID is 128 bits long and is
intended to guarantee uniqueness across space and time. UUIDs were
originally used in the Apollo Network Computing System (NCS), later
in the Open Software Foundation's (OSF's) Distributed Computing
Environment (DCE), and then in Microsoft Windows platforms.</t>
              <t>This specification is derived from the OSF DCE specification with the
kind permission of the OSF (now known as "The Open Group"). Information from earlier versions of the OSF DCE specification have
been incorporated into this document. This document obsoletes RFC
4122.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9562"/>
          <seriesInfo name="DOI" value="10.17487/RFC9562"/>
        </reference>
        <reference anchor="IANA.cbor-tags" target="https://www.iana.org/assignments/cbor-tags">
          <front>
            <title>Concise Binary Object Representation (CBOR) Tags</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
        <referencegroup anchor="BCP14" target="https://www.rfc-editor.org/info/bcp14">
          <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119">
            <front>
              <title>Key words for use in RFCs to Indicate Requirement Levels</title>
              <author fullname="S. Bradner" initials="S." surname="Bradner"/>
              <date month="March" year="1997"/>
              <abstract>
                <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
              </abstract>
            </front>
            <seriesInfo name="BCP" value="14"/>
            <seriesInfo name="RFC" value="2119"/>
            <seriesInfo name="DOI" value="10.17487/RFC2119"/>
          </reference>
          <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174">
            <front>
              <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
              <author fullname="B. Leiba" initials="B." surname="Leiba"/>
              <date month="May" year="2017"/>
              <abstract>
                <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
              </abstract>
            </front>
            <seriesInfo name="BCP" value="14"/>
            <seriesInfo name="RFC" value="8174"/>
            <seriesInfo name="DOI" value="10.17487/RFC8174"/>
          </reference>
        </referencegroup>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC6991">
          <front>
            <title>Common YANG Data Types</title>
            <author fullname="J. Schoenwaelder" initials="J." role="editor" surname="Schoenwaelder"/>
            <date month="July" year="2013"/>
            <abstract>
              <t>This document introduces a collection of common data types to be used with the YANG data modeling language. This document obsoletes RFC 6021.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6991"/>
          <seriesInfo name="DOI" value="10.17487/RFC6991"/>
          <annotation>This specification is obsoleted by <xref target="RFC9911"/>.</annotation>
        </reference>
        <reference anchor="RFC6021">
          <front>
            <title>Common YANG Data Types</title>
            <author fullname="J. Schoenwaelder" initials="J." role="editor" surname="Schoenwaelder"/>
            <date month="October" year="2010"/>
            <abstract>
              <t>This document introduces a collection of common data types to be used with the YANG data modeling language. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6021"/>
          <seriesInfo name="DOI" value="10.17487/RFC6021"/>
          <annotation>This specification is obsoleted by <xref target="RFC6991"/>, which is obsoleted by <xref target="RFC9911"/>.</annotation>
        </reference>
        <reference anchor="RFC9557">
          <front>
            <title>Date and Time on the Internet: Timestamps with Additional Information</title>
            <author fullname="U. Sharma" initials="U." surname="Sharma"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="April" year="2024"/>
            <abstract>
              <t>This document defines an extension to the timestamp format defined in RFC 3339 for representing additional information, including a time zone.</t>
              <t>It updates RFC 3339 in the specific interpretation of the local offset Z, which is no longer understood to "imply that UTC is the preferred reference point for the specified time".</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9557"/>
          <seriesInfo name="DOI" value="10.17487/RFC9557"/>
        </reference>
        <reference anchor="RFC9542">
          <front>
            <title>IANA Considerations and IETF Protocol and Documentation Usage for IEEE 802 Parameters</title>
            <author fullname="D. Eastlake 3rd" initials="D." surname="Eastlake 3rd"/>
            <author fullname="J. Abley" initials="J." surname="Abley"/>
            <author fullname="Y. Li" initials="Y." surname="Li"/>
            <date month="April" year="2024"/>
            <abstract>
              <t>Some IETF protocols make use of Ethernet frame formats and IEEE 802 parameters. This document discusses several aspects of such parameters and their use in IETF protocols, specifies IANA considerations for assignment of points under the IANA Organizationally Unique Identifier (OUI), and provides some values for use in documentation. This document obsoletes RFC 7042.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="141"/>
          <seriesInfo name="RFC" value="9542"/>
          <seriesInfo name="DOI" value="10.17487/RFC9542"/>
        </reference>
        <reference anchor="I-D.bormann-cbor-notable-tags">
          <front>
            <title>Notable CBOR Tags</title>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <date day="25" month="February" year="2026"/>
            <abstract>
              <t>   The Concise Binary Object Representation (CBOR, RFC 8949) is a data
   format whose design goals include the possibility of extremely small
   code size, fairly small message size, and extensibility without the
   need for version negotiation.

   In CBOR, one point of extensibility is the definition of CBOR tags.
   RFC 8949's original edition, RFC 7049, defined a basic set of 16 tags
   as well as a registry that can be used to contribute additional tag
   definitions [IANA.cbor-tags].  Since RFC 7049 was published, at the
   time of writing some 250 definitions of tags and ranges of tags have
   been added to that registry.

   The present document provides a roadmap to a large subset of these
   tag definitions.  Where applicable, it points to an IETF standards or
   standard development document that specifies the tag.  Where no such
   document exists, the intention is to collect specification
   information from the sources of the registrations.  After some more
   development, the present document is intended to be useful as a
   reference document for the IANA registrations of the CBOR tags the
   definitions of which have been collected.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-bormann-cbor-notable-tags-16"/>
        </reference>
        <reference anchor="I-D.marenamat-netmod-core-yang-transcoding">
          <front>
            <title>Transcoding Data Modeled with YANG</title>
            <author fullname="Maria Matějka" initials="M." surname="Matějka">
              <organization>CZ.NIC</organization>
            </author>
            <date day="2" month="March" year="2026"/>
            <abstract>
              <t>   YANG (RFC 7950) is a standardized data modeling language.  The data
   may be encoded in XML (RFC 7950), JSON (RFC 7951), plain CBOR (RFC
   9254) or CBOR with standins (draft-bormann-cbor-yang-standin).

   This document specifies how to convert data modeled by YANG encoded
   in one of the formats into another format.  Use cases include e.g.
   local transcoding between Netconf and Restconf for tool
   compatibility, or reverse proxying while composing multiple backends.

   This document also defines a data annotation for additional value
   type specification.  That data annotation behavior updates RFC 7950,
   RFC 7951 and RFC 9254.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-marenamat-netmod-core-yang-transcoding-00"/>
        </reference>
      </references>
    </references>
    <?line 707?>

<section numbered="false" anchor="list-of-tables">
      <name>List of Tables</name>
      <dl spacing="compact" indent="11">
        <dt><xref target="tab-legacy-ts"/>:</dt>
        <dd>
          <t><xref format="title" target="tab-legacy-ts"/></t>
        </dd>
        <dt><xref target="tab-hex"/>:</dt>
        <dd>
          <t><xref format="title" target="tab-hex"/></t>
        </dd>
        <dt><xref target="tab-dotquad"/>:</dt>
        <dd>
          <t><xref format="title" target="tab-dotquad"/></t>
        </dd>
        <dt><xref target="tab-legacy-yt"/>:</dt>
        <dd>
          <t><xref format="title" target="tab-legacy-yt"/></t>
        </dd>
        <dt><xref target="standin-file"/>:</dt>
        <dd>
          <t><xref format="title" target="standin-file"/></t>
        </dd>
        <dt><xref target="tab-new-tags"/>:</dt>
        <dd>
          <t><xref format="title" target="tab-new-tags"/></t>
        </dd>
      </dl>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>TODO acknowledge.</t>
    </section>
  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA8096XobR3L/5yk60LcR4AUgXIRIyGuZIqld5pNERaTi2Fqv
OAAawFjADDwHSZjSPk3eJC+WurqnZ3CQkuUk9GcKmKO6u+6qri42Gg3vaqC6
njeORqG/0AM1jv1J2hhG8cIPw8YIPjRWfjhtJKkfjoOwMfdTnaReGqRzeLpy
jpcbQagu/GmiJlGsfjx89dfG0bOzNxVvDM8OPC9JY+0vBur05OK5N4Jr0yhe
DVSSjr1RFCY6TLJkoNI4057nw6MA9nC5nAfwaAD3FYyg3mh/3rgIFrriXUfx
h2kcZUt4DsdR1aMoHAWJVs+C0I9X6mz4ix6l8Moy1gA9JTA19dIPwrRJ0E5u
0mbF+6BXAGs88FRD6ckkGAXwMM3fu9JhBlNX6osH0qEfjrQZDdaIS6kAxHS1
RMT9AKsIwqn6Kw6A1xd+MIfriPHvA51OmlE8xevTIJ1lQ7zjD6NHLi0qgK4s
nUUxTrShmH5HfpzAcOoZUxDuKAWQBuptGFzpOAnS//6vVD2L9QIeuvjplB5A
Cul0oF5HSTrxRzPV7bZ6vRbdGwUpEItf4AvRGMY5bnT2u3sHciULUyTpXzUO
uqKLy1kUwnN/7h00ep12o9Peb/S7B5023dS8WlzS9+lvAa7VWcNLPw58+J3q
Xz74+QqOfmq+Oj0qTPhlMNdJdJV88FW73e0/2nOm/Dr2Z74z43a31WoV53v0
mx7NAt+ZEn1sADFgBs0Fz+D7MBg1R7+ZW79+/8viV/zuhYjjFNCKr715fvT4
YK89UESiX5Io5IsHnb2eXETaysW9gz2QgGAsX9t9eIaELVjKpYO2gYUckzRG
WRwDj/FdeL0zUMHyqt/wx2PgvqSR6hu5uX/Q64Igw+Th+/nF8YHANkP34dUs
o7FPD18dNmncFOQXZDUIJ6VF9WEmgpbCfBINwjumG8BnA/UdfVTqYhYkKlnq
UTARCVZwIRom0VyneqyGK/VO1vdzU4ZodTYOMQmAl794BJz4z3V1PQuAoe+a
wsHe3mNA6M04nZgLPUDTwh8ZBCO2GsfNgmYMo9QfzjUjT8k374FSz45ed9p7
ZjHAq/I28BUoBsBvI9TpIho3RlGsG/KUHybAqaAUUBnaL57XaDSUPwSW90ep
56F+UlWYoQJ2a9VwZT4S21cAT89Rp8wBXuZPtcoSWG0a8R1UtpNgmsWMMnyl
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
e4jv4CutLT8Pa5dPOOWAKRbiUIW6g1aORYTltTepsstFKyAu4wJkGZ9AgeOG
nhvAQuddNu5GMwjWbYFH4l1aKb1cz7luJp2lE00sjMIGbjGS15bXRRh7qbHK
voD1YOLuj5biNcxFO/J/iQSw5GgPBo96LadiBew1VrXogBIyggVw6YBSMFe0
+1hVElusBFRulJMXoBn/gieBJTRItXc4TE66hz/XLiWBZysOi2k78VSRA8gJ
9oe4+cdFJwZzpnQEy+3h7QjDCBwdAgTc8Rz7S0o0Mp6k5BBEXg7vffo0cM4G
rKOtwMw5yjrd3mCs9Xgw1HoyGPkTPZiAKzWYaHTBkxKP4uP4ND6Mz+Kj+ORD
Wj+FdW4i1IpZtX3AcUpNsoE0aSy4S1fe8b7q9tWdPw9Qi1X3euSZ7rXu8wIN
WW33jTNLyzh+Rss4Pjk5fnZy8vzo8PnJ88Ojk+fwnfOKa8vYzIpVYI6ta3q8
rzr3WBMuCrRmtbtPU+x2ui34r9097Pf6ne5+9xA+d7rdbo+u7MF/8Amf7Hfo
Wx+ud/vtfr+/B5/68Kkrn+hZj0ao3I/aFV79XSwkcluECZKyj3k2lo19Vzbw
vsjHLv7ofC5/FNhhv7Phvh/H/qraMcRvA5hW4QETalZ7++ahXr8MhXnIslCJ
ixC96u8ZqOn23+O/3zzbx8/tTq/yeay0Szwer69tFyu172al7mHnOfy7v84b
SMd78oHj+hmtMtH7LTB8nVYHfk0mg8kEf+lWd4BTedTv/Umns5blk9lDfMH+
dPC/Cf/oFs3+YV31e3X1EF+7m4c6j3+3jilxVfdebzCfdQ2H3K2a1hUT/Dw/
KeNCMlEnjIuci3u7B3D4ut+zfN2776R6zpz6e497/f3utvGAfZAyn8nrX19t
kvqDaSJnw+8O/U+f4E6f1CH88JOsHOFel57o4v8gDf1ur7Nnlitq837sfC9x
6VkZaR90mq1mp0kJscu9DhjXEVO8facRvYO/ewX8IBuz7uvv76DykQz+mfpq
Bw37BzsodsDKqd096HY6utuC//HfNuLbouaeKBVLZF5rPer0DFLfdXpogwSz
99AduxZUwm0ZvSXbs8nutPftTSubnVw2d9EnJ1HrM0nU3UGioztFq93ZTCmQ
hK7YPRfxnykFELsMaUNPgsQCIdsuIR3xqKtO7/+SkPekU/tuuv9/IGR7nZDt
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
AAA=

-->

</rfc>
