<?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-rfc2629 version 1.6.6 (Ruby 3.1.1) -->
<?rfc strict="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-core-yang-cbor-19" category="std" consensus="true" submissionType="IETF" tocDepth="4" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.12.3 -->
  <front>
    <title>CBOR Encoding of Data Modeled with YANG</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-core-yang-cbor-19"/>
    <author initials="M." surname="Veillette" fullname="Michel Veillette" role="editor">
      <organization>Trilliant Networks Inc.</organization>
      <address>
        <postal>
          <street>610 Rue du Luxembourg</street>
          <city>Granby</city>
          <region>Quebec</region>
          <code>J2J 2V2</code>
          <country>Canada</country>
        </postal>
        <email>michel.veillette@trilliantinc.com</email>
      </address>
    </author>
    <author initials="I." surname="Petrov" fullname="Ivaylo Petrov" role="editor">
      <organization>Google Switzerland GmbH</organization>
      <address>
        <postal>
          <street>Brandschenkestrasse 110</street>
          <city>Zurich</city>
          <code>8002</code>
          <country>Switzerland</country>
        </postal>
        <email>ivaylopetrov@google.com</email>
      </address>
    </author>
    <author initials="A." surname="Pelov" fullname="Alexander Pelov">
      <organization>Acklio</organization>
      <address>
        <postal>
          <street>1137A avenue des Champs Blancs</street>
          <city>Cesson-Sevigne</city>
          <code>35510</code>
          <country>France</country>
        </postal>
        <email>a@ackl.io</email>
      </address>
    </author>
    <author initials="C." surname="Bormann" fullname="Carsten Bormann">
      <organization>Universität Bremen TZI</organization>
      <address>
        <postal>
          <street>Postfach 330440</street>
          <city>D-28359 Bremen</city>
          <country>Germany</country>
        </postal>
        <phone>+49-421-218-63921</phone>
        <email>cabo@tzi.org</email>
      </address>
    </author>
    <author initials="M." surname="Richardson" fullname="Michael Richardson">
      <organization>Sandelman Software Works</organization>
      <address>
        <postal>
          <country>Canada</country>
        </postal>
        <email>mcr+ietf@sandelman.ca</email>
      </address>
    </author>
    <date year="2022" month="March" day="20"/>
    <area>Applications and Real-Time Area (art)</area>
    <workgroup>Internet Engineering Task Force</workgroup>
    <keyword>CBOR</keyword>
    <abstract>
      <t>Based on the Concise Binary Object Representation (CBOR, RFC 8949),
this document defines encoding rules for representing configuration
data, state data, parameters and results of Remote Procedure Call (RPC)
operations or actions, and notifications, defined using YANG (RFC 7950).</t>
    </abstract>
  </front>
  <middle>
    <section anchor="introduction">
      <name>Introduction</name>
      <t>The specification of the YANG 1.1 data modeling language <xref target="RFC7950"/> defines an XML encoding for data instances, i.e., contents of configuration datastores, state data, RPC inputs and outputs, action inputs and outputs, and event notifications.</t>
      <t>An additional set of encoding rules has been defined in <xref target="RFC7951"/> based on
the JavaScript Object Notation (JSON) Data Interchange Format <xref target="RFC8259"/>.</t>
      <t>The aim of this document is to define a set of encoding rules for the Concise Binary Object Representation (CBOR) <xref target="RFC8949"/>, collectively called <em>YANG-CBOR</em>. The resulting encoding is more compact compared to XML and JSON and more suitable for Constrained Nodes and/or Constrained Networks as defined by <xref target="RFC7228"/>.</t>
    </section>
    <section anchor="terminology-and-notation">
      <name>Terminology and Notation</name>
      <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 BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <t>The following terms are defined in <xref target="RFC7950"/>:</t>
      <ul spacing="normal">
        <li>action</li>
        <li>anydata</li>
        <li>anyxml</li>
        <li>data node</li>
        <li>data tree</li>
        <li>datastore</li>
        <li>feature</li>
        <li>identity</li>
        <li>module</li>
        <li>notification</li>
        <li>RPC</li>
        <li>schema node</li>
        <li>submodule</li>
      </ul>
      <t>The following term is defined in <xref target="RFC8040"/>:</t>
      <ul spacing="normal">
        <li>yang-data extension</li>
      </ul>
      <t>The following term is defined in <xref target="RFC8791"/>:</t>
      <ul spacing="normal">
        <li>YANG data structure</li>
      </ul>
      <t>This specification also makes use of the following terminology:</t>
      <ul spacing="normal">
        <li>YANG Schema Item iDentifier (YANG SID or simply SID): 63-bit unsigned integer used to identify different YANG items.</li>
        <li>delta: Difference between the current YANG SID and a reference YANG SID. A reference YANG SID is defined for each context for which deltas are used.</li>
        <li>absolute SID: YANG SID not encoded as a delta.  This is usually
called out explicitly only in positions where normally a delta would
be found.</li>
        <li>representation tree: a YANG data tree, possibly enclosed by a
representation of a schema node such as a YANG data structure, a notification, an RPC, or
an action.</li>
        <li>representation node: a node in a representation tree, i.e., a data
tree node, or a representation of a schema node such as a YANG data structure, a
notification, an RPC, or an action.</li>
        <li>item: A schema node, an identity, a module, or a feature defined using the YANG modeling language.</li>
        <li>list entry: the data associated with a single entry of a list (see
<xref section="7.8" sectionFormat="of" target="RFC7950"/>).</li>
        <li>parent (of a representation node): the schema node of the closest
enclosing representation node in which a given representation node
is defined.</li>
      </ul>
    </section>
    <section anchor="properties-of-cbor-encoding">
      <name>Properties of the CBOR Encoding</name>
      <t>This document defines CBOR encoding rules for YANG data trees and their subtrees.</t>
      <t>A YANG data tree can be enclosed by a representation of a schema node such as a YANG data structure, a notification, an RPC, or an action; this is called a representation tree.  The data tree nodes and the enclosing schema node representation, if any, are collectively called the representation nodes.</t>
      <t>A representation node such as container, list entry, YANG data structure, notification, RPC input, RPC output, action input, or action output is serialized using a CBOR map in which each schema node defined within is encoded using a key and a value.
This specification supports two types of CBOR keys; YANG Schema Item iDentifier (YANG SID) as defined in <xref target="sid"/> and names as defined in <xref target="name"/>. Each of these key types is encoded using a specific CBOR type which allows their interpretation during the deserialization process. Protocols or mechanisms implementing this specification can mandate the use of a specific key type or allow the generator to choose freely per key.</t>
      <t>In order to minimize the size of the encoded data, the
mapping avoids any unnecessary meta-information beyond that directly
provided by the CBOR basic generic data model (<xref section="2" sectionFormat="of" target="RFC8949"/>). For instance, CBOR tags are used solely in the case of an absolute SID, anyxml data nodes, or the union datatype, to distinguish explicitly the use of different YANG datatypes encoded using the same CBOR major type.</t>
      <t>Unless specified otherwise by the protocol or mechanism implementing this specification, the indefinite length encoding as defined in <xref section="3.2" sectionFormat="of" target="RFC8949"/> <bcp14>SHALL</bcp14> be supported by the CBOR decoders employed with YANG-CBOR.
(This enables an implementation to begin emitting an array or map
before the number of entries in that structure is known, possibly also
avoiding excessive locking or race conditions.
On the other hand, it deprives the receiver of the encoded data from
advance announcement about some size information, so a generator
should choose indefinite length encoding only when these benefits do
accrue.)</t>
      <t>Data nodes implemented using a CBOR array, map, byte string, or text string can be instantiated but empty. In this case, they are encoded with a length of zero.</t>
      <t>When representation nodes are serialized using the rules defined by this specification as part of an application payload, the payload <bcp14>SHOULD</bcp14> include information that would allow a stateless way to identify each node, such as the SID number associated with the node, SID delta from another SID in the application payload, the namespace qualified name, or the instance-identifier.</t>
      <t>Examples in <xref target="instance-encoding"/> include a root CBOR map with a single entry having a key set to either a namespace qualified name or a SID. This root CBOR map is provided only as a typical usage example and is not part of the present encoding rules. Only the value within this CBOR map is compulsory.</t>
      <section anchor="cbor-diagnostic-notation">
        <name>CBOR diagnostic notation</name>
        <t>Within this document, CBOR binary contents are represented using an equivalent textual form called CBOR diagnostic notation as defined in <xref section="8" sectionFormat="of" target="RFC8949"/>. This notation is used strictly for documentation purposes and is never used in the data serialization. <xref target="diagnostic-notation-summary"/> below provides a summary of this notation.</t>
        <table anchor="diagnostic-notation-summary">
          <name>CBOR diagnostic notation summary</name>
          <thead>
            <tr>
              <th align="left">CBOR content</th>
              <th align="left">CBOR type</th>
              <th align="left">Diagnostic notation</th>
              <th align="left">Example</th>
              <th align="left">CBOR encoding</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">Unsigned integer</td>
              <td align="left">0</td>
              <td align="left">Decimal digits</td>
              <td align="left">123</td>
              <td align="left">18 7B</td>
            </tr>
            <tr>
              <td align="left">Negative integer</td>
              <td align="left">1</td>
              <td align="left">Decimal digits prefixed by a minus sign</td>
              <td align="left">-123</td>
              <td align="left">38 7A</td>
            </tr>
            <tr>
              <td align="left">Byte string</td>
              <td align="left">2</td>
              <td align="left">Hexadecimal value enclosed between single quotes and prefixed by an 'h'</td>
              <td align="left">h'F15C'</td>
              <td align="left">42 F15C</td>
            </tr>
            <tr>
              <td align="left">Text string</td>
              <td align="left">3</td>
              <td align="left">String of Unicode characters enclosed between double quotes</td>
              <td align="left">"txt"</td>
              <td align="left">63 747874</td>
            </tr>
            <tr>
              <td align="left">Array</td>
              <td align="left">4</td>
              <td align="left">Comma-separated list of values within square brackets</td>
              <td align="left">[ 1, 2 ]</td>
              <td align="left">82 01 02</td>
            </tr>
            <tr>
              <td align="left">Map</td>
              <td align="left">5</td>
              <td align="left">Comma-separated list of key : value pairs within curly braces</td>
              <td align="left">{ 1: 123, 2: 456 }</td>
              <td align="left">A2 01187B 021901C8</td>
            </tr>
            <tr>
              <td align="left">Boolean</td>
              <td align="left">7/20</td>
              <td align="left">false</td>
              <td align="left">false</td>
              <td align="left">F4</td>
            </tr>
            <tr>
              <td align="left"> </td>
              <td align="left">7/21</td>
              <td align="left">true</td>
              <td align="left">true</td>
              <td align="left">F5</td>
            </tr>
            <tr>
              <td align="left">Null</td>
              <td align="left">7/22</td>
              <td align="left">null</td>
              <td align="left">null</td>
              <td align="left">F6</td>
            </tr>
            <tr>
              <td align="left">Not assigned</td>
              <td align="left">7/23</td>
              <td align="left">undefined</td>
              <td align="left">undefined</td>
              <td align="left">F7</td>
            </tr>
          </tbody>
        </table>
        <t>Note: CBOR binary contents shown in this specification are annotated with comments. These comments are delimited by slashes ("/") as defined in <xref target="RFC8610"/> Appendix G.6.</t>
      </section>
      <section anchor="sid">
        <name>YANG Schema Item iDentifier</name>
        <t>Some of the items defined in YANG <xref target="RFC7950"/> require the use of a unique identifier.  In both Network Configuration Protocol (NETCONF) <xref target="RFC6241"/> and RESTCONF <xref target="RFC8040"/>, these identifiers are implemented using text strings.  To allow the implementation of data models defined in YANG in constrained devices and constrained networks, a more compact method to identify YANG items is required. This compact identifier, called YANG Schema Item iDentifier, is an unsigned integer limited to 63 bits of range (i.e., 0..9223372036854775807 or 0..0x7fffffffffffffff). The following items are identified using YANG SIDs (often shortened to SIDs):</t>
        <ul spacing="normal">
          <li>identities</li>
          <li>data nodes</li>
          <li>RPCs and associated input(s) and output(s)</li>
          <li>actions and associated input(s) and output(s)</li>
          <li>YANG data structures</li>
          <li>notifications and associated information</li>
          <li>YANG modules and features</li>
        </ul>
        <t>Note that any structuring of modules into submodules is transparent to YANG-CBOR:
SIDs are not allocated for the names of submodules, and any
items within a submodule are effectively allocated SIDs as part of
processing the module that includes them.</t>
        <t>To minimize their size, SIDs used as keys in CBOR maps are encoded
using deltas, i.e., signed (negative or unsigned) integers that are
added to the reference SID applying to the map.
The reference SID of an outermost map is zero, unless a different
reference SID is unambiguously conferred from the environment in which
the outermost map is used.
The reference SID of a map that is most directly embedded in a map entry
with a name-based key is zero.
For all other maps, the reference SID is the SID computed for the map
entry it is most directly embedded in.
(The embedding may be indirect if an array intervenes, e.g., in a YANG list.)
Where absolute SIDs are desired in map key positions (where a bare
integer implies a delta), they need to be identified as absolute SID values by using CBOR tag number 47 (as defined in <xref target="container-with-sid"/>).</t>
        <t>Thus, conversion from SIDs to deltas and back to SIDs is a stateless
process solely based on the data serialized or deserialized combined
with, potentially, an outermost reference SID unambiguously conferred
by the environment.</t>
        <t>Mechanisms and processes used to assign SIDs to YANG items and to guarantee their uniqueness are outside the scope of the present specification.
If SIDs are to be used, the present specification is used in conjunction with a specification defining this management.
A related document, <xref target="I-D.ietf-core-sid"/>, is intended to serve as the definitive way to assign SID values for YANG modules managed by the IETF, and recommends itself for YANG modules managed by non-IETF entities, as well.
The present specification has been designed to allow different methods of assignment to be used within separate domains.</t>
        <t>To provide implementations with a way to internally indicate the
absence of a SID, the SID value 0 is reserved and will not be
allocated; it is not used in interchange.</t>
      </section>
      <section anchor="name">
        <name>Name</name>
        <t>This specification also supports the encoding of YANG item identifiers as text strings, similar to those used by the JSON Encoding of Data Modeled with YANG <xref target="RFC7951"/>. This approach can be used to avoid the management overhead associated with SID allocation. The main drawback is the significant increase in size of the encoded data.</t>
        <t>YANG item identifiers implemented using names <bcp14>MUST</bcp14> be in one of the following forms:</t>
        <ul spacing="normal">
          <li>simple -- the identifier of the YANG item (i.e., schema node or identity).</li>
          <li>namespace qualified -- the identifier of the YANG item is prefixed with the name of the module in which this item is defined, separated by the colon character (":").</li>
        </ul>
        <t>The name of a module determines the namespace of all YANG items defined in that module. If an item is defined in a submodule, then the namespace qualified name uses the name of the main module to which the submodule belongs.</t>
        <t>ABNF syntax <xref target="RFC5234"/> of a name is shown in <xref target="namesyntax"/>, where the production for "identifier" is defined in <xref section="14" sectionFormat="of" target="RFC7950"/>.</t>
        <figure anchor="namesyntax">
          <name>ABNF Production for a simple or namespace qualified name</name>
          <artwork type="abnf" align="center"><![CDATA[
name = [identifier ":"] identifier
]]></artwork>
        </figure>
        <t>A namespace qualified name <bcp14>MUST</bcp14> be used for all members of a top-level CBOR map and then also whenever the namespaces of the representation node and its parent node are different. In all other cases, the simple form of the name <bcp14>MUST</bcp14> be used.</t>
        <t>Definition example:</t>
        <sourcecode type="yang"><![CDATA[
module example-foomod {
  container top {
    leaf foo {
      type uint8;
    }
  }
}

module example-barmod {
  import example-foomod {
    prefix "foomod";
  }
  augment "/foomod:top" {
    leaf bar {
      type boolean;
    }
  }
}
]]></sourcecode>
        <t>A valid CBOR encoding of the 'top' container is as follows.</t>
        <t>CBOR diagnostic notation:</t>
        <sourcecode type="cbor-diag"><![CDATA[
{
  "example-foomod:top": {
    "foo": 54,
    "example-barmod:bar": true
  }
}
]]></sourcecode>
        <t>Both the 'top' container and the 'bar' leaf defined in a different YANG module as its parent container are encoded as namespace qualified names. The 'foo' leaf defined in the same YANG module as its parent container is encoded as simple name.</t>
      </section>
    </section>
    <section anchor="instance-encoding">
      <name>Encoding of Representation Nodes</name>
      <t>Representation nodes defined using the YANG modeling language are encoded using CBOR <xref target="RFC8949"/> based on the rules defined in this section. We assume that the reader is
already familiar with both YANG <xref target="RFC7950"/> and CBOR <xref target="RFC8949"/>.</t>
      <section anchor="the-leaf">
        <name>The 'leaf'</name>
        <t>A 'leaf' <bcp14>MUST</bcp14> be encoded accordingly to its datatype using one of the encoding rules specified in <xref target="data-types-mapping"/>.</t>
        <t>The following examples show the encoding of a 'hostname' leaf using a SID or a name.</t>
        <t>Definition example adapted from <xref target="RFC6991"/> and <xref target="RFC7317"/>:</t>
        <sourcecode type="yang"><![CDATA[
typedef domain-name {
  type string {
    pattern
      '((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*'
    + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)'
    + '|\.';
    length "1..253";
  }
}

leaf hostname {
  type inet:domain-name;
}
]]></sourcecode>
        <section anchor="using-sids-in-keys">
          <name>Using SIDs in keys</name>
          <t>As with all examples below, the delta in the outermost map assumes a reference YANG SID (current schema node) of 0.</t>
          <t>CBOR diagnostic notation:</t>
          <sourcecode type="cbor-diag"><![CDATA[
{
  1752 : "myhost.example.com"     / hostname (SID 1752) /
}
]]></sourcecode>
          <t>CBOR encoding:</t>
          <sourcecode type="cbor-pretty"><![CDATA[
A1                                         # map(1)
   19 06D8                                 # unsigned(1752)
   72                                      # text(18)
      6D79686F73742E6578616D706C652E636F6D # "myhost.example.com"
]]></sourcecode>
        </section>
        <section anchor="using-names-in-keys">
          <name>Using names in keys</name>
          <t>CBOR diagnostic notation:</t>
          <sourcecode type="cbor-diag"><![CDATA[
{
  "ietf-system:hostname" : "myhost.example.com"
}
]]></sourcecode>
          <t>CBOR encoding:</t>
          <sourcecode type="cbor-pretty"><![CDATA[
A1                                         # map(1)
   74                                      # text(20)
      696574662D73797374656D3A686F73746E616D65
   72                                      # text(18)
      6D79686F73742E6578616D706C652E636F6D
]]></sourcecode>
        </section>
      </section>
      <section anchor="container">
        <name>The 'container' and other nodes from the data tree</name>
        <t>Instances of containers, YANG data structures, notification contents, RPC inputs, RPC outputs, action inputs, and action outputs <bcp14>MUST</bcp14> be encoded using a CBOR map data item (major type 5).
The same encoding is also used for the list entries in a list (<xref target="list"/>).
A map consists of pairs of data items, with each pair consisting of a key and a value. Each key within the CBOR map is set to a schema node identifier, each value is set to the value of this representation node according to the instance datatype.</t>
        <t>This specification supports two types of CBOR map keys; SID as defined in <xref target="sid"/> and names as defined in <xref target="name"/>.</t>
        <t>The following examples show the encoding of a 'system-state' container representation instance using SIDs or names.</t>
        <t>Definition example adapted from <xref target="RFC6991"/> and <xref target="RFC7317"/>:</t>
        <sourcecode type="yang"><![CDATA[
typedef date-and-time {
  type string {
    pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?'
          + '(Z|[\+\-]\d{2}:\d{2})';
  }
}

container system-state {

  container clock {
    leaf current-datetime {
      type date-and-time;
    }

    leaf boot-datetime {
      type date-and-time;
    }
  }
}
]]></sourcecode>
        <section anchor="container-with-sid">
          <name>Using SIDs in keys</name>
          <t>In the context of containers and other nodes from the data tree, CBOR map keys within inner CBOR maps can be encoded using deltas (bare integers) or absolute SIDs (tagged with tag number 47).</t>
          <t>Delta values are computed as follows:</t>
          <ul spacing="normal">
            <li>In the case of a 'container', deltas are equal to the SID of the current representation node minus the SID of the parent 'container'.</li>
            <li>In the case of a 'list', deltas are equal to the SID of the current representation node minus the SID of the parent 'list'.</li>
            <li>In the case of an 'RPC input' or 'RPC output', deltas are equal to the SID of the current representation node minus the SID of the 'RPC'.</li>
            <li>In the case of an 'action input' or 'action output', deltas are equal to the SID of the current representation node minus the SID of the 'action'.</li>
            <li>In the case of a 'notification content', deltas are equal to the SID of the current representation node minus the SID of the 'notification'.</li>
          </ul>
          <t>CBOR diagnostic notation:</t>
          <sourcecode type="cbor-diag"><![CDATA[
{
  1720 : {                              / system-state (SID 1720) /
    1 : {                               / clock  (SID 1721) /
      2 : "2015-10-02T14:47:24Z-05:00", / current-datetime(SID 1723)/
      1 : "2015-09-15T09:12:58Z-05:00"  / boot-datetime (SID 1722) /
    }
  }
}
]]></sourcecode>
          <t>CBOR encoding:</t>
          <figure anchor="Fig-system-clock">
            <name>System state clock encoding</name>
            <sourcecode type="cbor-pretty"><![CDATA[
A1                                      # map(1)
   19 06B8                              # unsigned(1720)
   A1                                   # map(1)
      01                                # unsigned(1)
      A2                                # map(2)
         02                             # unsigned(2)
         78 1A                          # text(26)
            323031352D31302D30325431343A34373A32345A2D30353A3030
         01                             # unsigned(1)
         78 1A                          # text(26)
            323031352D30392D31355430393A31323A35385A2D30353A3030
]]></sourcecode>
          </figure>
        </section>
        <section anchor="container-with-name">
          <name>Using names in keys</name>
          <t>CBOR map keys implemented using names <bcp14>MUST</bcp14> be encoded using a CBOR
text string data item (major type 3). A namespace-qualified name <bcp14>MUST</bcp14>
be used each time the namespace of a representation node and its parent
differ. In all other cases, the simple form of the name <bcp14>MUST</bcp14> be
used. Names and namespaces are defined in <xref section="4" sectionFormat="of" target="RFC7951"/>.</t>
          <t>The following example shows the encoding of a 'system' container representation node instance using names.</t>
          <t>CBOR diagnostic notation:</t>
          <sourcecode type="cbor-diag"><![CDATA[
{
  "ietf-system:system-state" : {
    "clock" : {
      "current-datetime" : "2015-10-02T14:47:24Z-05:00",
      "boot-datetime" : "2015-09-15T09:12:58Z-05:00"
    }
  }
}
]]></sourcecode>
          <t>CBOR encoding:</t>
          <sourcecode type="cbor-pretty"><![CDATA[
A1                                      # map(1)
   78 18                                # text(24)
      696574662D73797374656D3A73797374656D2D7374617465
   A1                                   # map(1)
      65                                # text(5)
         636C6F636B                     # "clock"
      A2                                # map(2)
         70                             # text(16)
            63757272656E742D6461746574696D65
         78 1A                          # text(26)
            323031352D31302D30325431343A34373A32345A2D30353A3030
         6D                             # text(13)
            626F6F742D6461746574696D65
         78 1A                          # text(26)
            323031352D30392D31355430393A31323A35385A2D30353A3030
]]></sourcecode>
        </section>
      </section>
      <section anchor="leaf-list">
        <name>The 'leaf-list'</name>
        <t>A leaf-list <bcp14>MUST</bcp14> be encoded using a CBOR array data item (major type 4). Each entry of this array <bcp14>MUST</bcp14> be encoded accordingly to its datatype using one of the encoding rules specified in <xref target="data-types-mapping"/>.</t>
        <t>The following example shows the encoding of the 'search' leaf-list representation node instance containing two entries, "ietf.org" and "ieee.org".</t>
        <t>Definition example adapted from <xref target="RFC6991"/> and <xref target="RFC7317"/>:</t>
        <sourcecode type="yang"><![CDATA[
typedef domain-name {
  type string {
    pattern
      '((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*'
    + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)'
    + '|\.';
    length "1..253";
  }
}

leaf-list search {
  type domain-name;
  ordered-by user;
}
]]></sourcecode>
        <section anchor="using-sids-in-keys-1">
          <name>Using SIDs in keys</name>
          <t>CBOR diagnostic notation:</t>
          <sourcecode type="cbor-diag"><![CDATA[
{
  1746 : [ "ietf.org", "ieee.org" ]     / search (SID 1746) /
}
]]></sourcecode>
          <t>CBOR encoding:</t>
          <sourcecode type="cbor-pretty"><![CDATA[
A1                        # map(1)
   19 06D2                # unsigned(1746)
   82                     # array(2)
      68                  # text(8)
         696574662E6F7267 # "ietf.org"
      68                  # text(8)
         696565652E6F7267 # "ieee.org"
]]></sourcecode>
        </section>
        <section anchor="using-names-in-keys-1">
          <name>Using names in keys</name>
          <t>CBOR diagnostic notation:</t>
          <sourcecode type="cbor-diag"><![CDATA[
{
  "ietf-system:search" : [ "ietf.org", "ieee.org" ]
}
]]></sourcecode>
          <t>CBOR encoding:</t>
          <sourcecode type="cbor-pretty"><![CDATA[
A1                                         # map(1)
   72                                      # text(18)
      696574662D73797374656D3A736561726368 # "ietf-system:search"
   82                                      # array(2)
      68                                   # text(8)
         696574662E6F7267                  # "ietf.org"
      68                                   # text(8)
         696565652E6F7267                  # "ieee.org"
]]></sourcecode>
        </section>
      </section>
      <section anchor="list">
        <name>The 'list' and 'list' entries</name>
        <t>A list or a subset of a list <bcp14>MUST</bcp14> be encoded using a CBOR array data item (major type 4). Each list entry within this CBOR array is encoded using a CBOR map data item (major type 5) based on the encoding rules of a collection as defined in <xref target="container"/>.</t>
        <t>It is important to note that this encoding rule also applies to a 'list' representation node instance that has a single entry.</t>
        <t>The following examples show the encoding of a 'server' list using SIDs or names.</t>
        <t>Definition example simplified from <xref target="RFC7317"/>:</t>
        <sourcecode type="yang"><![CDATA[
list server {
  key name;

  leaf name {
    type string;
  }
  choice transport {
    case udp {
      container udp {
        leaf address {
          type host;
          mandatory true;
        }
        leaf port {
          type port-number;
        }
      }
    }
  }
  leaf association-type {
    type enumeration {
      enum server;
      enum peer;
      enum pool;
    }
    default server;
  }
  leaf iburst {
    type boolean;
    default false;
  }
  leaf prefer {
    type boolean;
    default false;
  }
}
]]></sourcecode>
        <section anchor="list-with-sid">
          <name>Using SIDs in keys</name>
          <t>The encoding rules of each 'list' entry are defined in <xref target="container-with-sid"/>.</t>
          <t>CBOR diagnostic notation:</t>
          <sourcecode type="cbor-diag"><![CDATA[
{
  1756 : [                      / server (SID 1756) /
    {
      3 : "NRC TIC server",     / name (SID 1759) /
      5 : {                     / udp (SID 1761) /
        1 : "tic.nrc.ca",       / address (SID 1762) /
        2 : 123                 / port (SID 1763) /
      },
      1 : 0,                    / association-type (SID 1757) /
      2 : false,                / iburst (SID 1758) /
      4 : true                  / prefer (SID 1760) /
    },
    {
      3 : "NRC TAC server",     / name (SID 1759) /
      5 : {                     / udp (SID 1761) /
        1 : "tac.nrc.ca"        / address (SID 1762) /
      }
    }
  ]
}
]]></sourcecode>
          <t>CBOR encoding:</t>
          <sourcecode type="cbor-pretty"><![CDATA[
A1                                      # map(1)
   19 06DC                              # unsigned(1756)
   82                                   # array(2)
      A5                                # map(5)
         03                             # unsigned(3)
         6E                             # text(14)
            4E52432054494320736572766572 # "NRC TIC server"
         05                             # unsigned(5)
         A2                             # map(2)
            01                          # unsigned(1)
            6A                          # text(10)
               7469632E6E72632E6361     # "tic.nrc.ca"
            02                          # unsigned(2)
            18 7B                       # unsigned(123)
         01                             # unsigned(1)
         00                             # unsigned(0)
         02                             # unsigned(2)
         F4                             # primitive(20)
         04                             # unsigned(4)
         F5                             # primitive(21)
      A2                                # map(2)
         03                             # unsigned(3)
         6E                             # text(14)
            4E52432054414320736572766572 # "NRC TAC server"
         05                             # unsigned(5)
         A1                             # map(1)
            01                          # unsigned(1)
            6A                          # text(10)
               7461632E6E72632E6361     # "tac.nrc.ca"
]]></sourcecode>
        </section>
        <section anchor="using-names-in-keys-2">
          <name>Using names in keys</name>
          <t>The encoding rules of each 'list' entry are defined in <xref target="container-with-name"/>.</t>
          <t>CBOR diagnostic notation:</t>
          <sourcecode type="cbor-diag"><![CDATA[
{
  "ietf-system:server" : [
    {
      "name" : "NRC TIC server",
      "udp" : {
        "address" : "tic.nrc.ca",
        "port" : 123
      },
      "association-type" : 0,
      "iburst" : false,
      "prefer" : true
    },
    {
      "name" : "NRC TAC server",
      "udp" : {
        "address" : "tac.nrc.ca"
      }
    }
  ]
}
]]></sourcecode>
          <t>CBOR encoding:</t>
          <sourcecode type="cbor-pretty"><![CDATA[
A1                                      # map(1)
   72                                   # text(18)
      696574662D73797374656D3A736572766572
   82                                   # array(2)
      A5                                # map(5)
         64                             # text(4)
            6E616D65                    # "name"
         6E                             # text(14)
            4E52432054494320736572766572
         63                             # text(3)
            756470                      # "udp"
         A2                             # map(2)
            67                          # text(7)
               61646472657373           # "address"
            6A                          # text(10)
               7469632E6E72632E6361     # "tic.nrc.ca"
            64                          # text(4)
               706F7274                 # "port"
            18 7B                       # unsigned(123)
         70                             # text(16)
            6173736F63696174696F6E2D74797065
         00                             # unsigned(0)
         66                             # text(6)
            696275727374                # "iburst"
         F4                             # primitive(20)
         66                             # text(6)
            707265666572                # "prefer"
         F5                             # primitive(21)
      A2                                # map(2)
         64                             # text(4)
            6E616D65                    # "name"
         6E                             # text(14)
            4E52432054414320736572766572
         63                             # text(3)
            756470                      # "udp"
         A1                             # map(1)
            67                          # text(7)
               61646472657373           # "address"
            6A                          # text(10)
               7461632E6E72632E6361     # "tac.nrc.ca"
]]></sourcecode>
        </section>
      </section>
      <section anchor="the-anydata">
        <name>The 'anydata'</name>
        <t>An anydata serves as a container for an arbitrary set of representation nodes that otherwise appear as normal YANG-modeled data. An anydata representation node instance is encoded using the same rules as a container, i.e., CBOR map. The requirement that anydata content can be modeled by YANG implies the following:</t>
        <ul spacing="normal">
          <li>CBOR map keys of any inner representation nodes <bcp14>MUST</bcp14> be set to valid deltas or names.</li>
          <li>CBOR arrays <bcp14>MUST</bcp14> contain either unique scalar values (as a leaf-list, see <xref target="leaf-list"/>), or maps (as a list, see <xref target="list"/>).</li>
          <li>CBOR map values <bcp14>MUST</bcp14> follow the encoding rules of one of the datatypes listed in <xref target="instance-encoding"/>.</li>
        </ul>
        <t>The following example shows a possible use of an anydata. In this example, an anydata is used to define a representation node containing a notification event; this representation node can be part of a YANG list to create an event logger.</t>
        <t>Definition example:</t>
        <sourcecode type="yang"><![CDATA[
module event-log {
  ...
  anydata last-event;                # SID 60123
}
]]></sourcecode>
        <t>This example also assumes the assistance of the following notification.</t>
        <sourcecode type="yang"><![CDATA[
module example-port {
  ...

  notification example-port-fault {  # SID 60200
    leaf port-name {                 # SID 60201
      type string;
    }
    leaf port-fault {                # SID 60202
      type string;
    }
  }
}
]]></sourcecode>
        <section anchor="using-sids-in-keys-2">
          <name>Using SIDs in keys</name>
          <t>CBOR diagnostic notation:</t>
          <sourcecode type="cbor-diag"><![CDATA[
{
  60123 : {                   / last-event (SID 60123) /
    77 : {                    / example-port-fault (SID 60200) /
      1 : "0/4/21",           / port-name (SID 60201) /
      2 : "Open pin 2"        / port-fault (SID 60202) /
    }
  }
}
]]></sourcecode>
          <t>CBOR encoding:</t>
          <sourcecode type="cbor-pretty"><![CDATA[
A1                               # map(1)
   19 EADB                       # unsigned(60123)
   A1                            # map(1)
      18 4D                      # unsigned(77)
      A2                         # map(2)
         01                      # unsigned(1)
         66                      # text(6)
            302F342F3231         # "0/4/21"
         02                      # unsigned(2)
         6A                      # text(10)
            4F70656E2070696E2032 # "Open pin 2"
]]></sourcecode>
          <t>In some implementations, it might be simpler to use the absolute SID encoding (tag number 47) for the anydata root element.
CBOR diagnostic notation:</t>
          <sourcecode type="cbor-diag"><![CDATA[
{
  60123 : {                   / last-event (SID 60123) /
    47(60200) : {             / event-port-fault (SID 60200) /
      1 : "0/4/21",           / port-name (SID 60201) /
      2 : "Open pin 2"        / port-fault (SID 60202) /
    }
  }
}
]]></sourcecode>
        </section>
        <section anchor="using-names-in-keys-3">
          <name>Using names in keys</name>
          <t>CBOR diagnostic notation:</t>
          <sourcecode type="cbor-diag"><![CDATA[
{
  "event-log:last-event" : {
    "example-port:example-port-fault" : {
      "port-name" : "0/4/21",
      "port-fault" : "Open pin 2"
    }
  }
}
]]></sourcecode>
          <t>CBOR encoding:</t>
          <sourcecode type="cbor-pretty"><![CDATA[
A1                                      # map(1)
   74                                   # text(20)
      6576656E742D6C6F673A6C6173742D6576656E74
   A1                                   # map(1)
      78 1F                             # text(31)
         6578616D706C652D706F72743A
         6578616D706C652D706F72742D6661756C74
      A2                                # map(2)
         69                             # text(9)
            706F72742D6E616D65          # "port-name"
         66                             # text(6)
            302F342F3231                # "0/4/21"
         6A                             # text(10)
            706F72742D6661756C74        # "port-fault"
         6A                             # text(10)
            4F70656E2070696E2032        # "Open pin 2"
]]></sourcecode>
        </section>
      </section>
      <section anchor="the-anyxml">
        <name>The 'anyxml'</name>
        <t>An anyxml representation node is used to serialize an arbitrary CBOR content, i.e., its value can be any CBOR binary object.
(The "xml" in the name is a misnomer that only applied to YANG-XML <xref target="RFC7950"/>.)
An anyxml value <bcp14>MAY</bcp14> contain CBOR data items tagged with one of the tags listed in <xref target="tag-registry"/>. The tags listed in <xref target="tag-registry"/> <bcp14>SHALL</bcp14> be supported.</t>
        <t>The following example shows a valid CBOR encoded anyxml representation node instance consisting of a CBOR array containing the CBOR simple values 'true', 'null' and 'true'.</t>
        <t>Definition example from <xref target="RFC7951"/>:</t>
        <sourcecode type="yang"><![CDATA[
module bar-module {
  ...
  anyxml bar;      # SID 60000
}
]]></sourcecode>
        <section anchor="using-sids-in-keys-3">
          <name>Using SIDs in keys</name>
          <t>CBOR diagnostic notation:</t>
          <sourcecode type="cbor-diag"><![CDATA[
{
  60000 : [true, null, true]   / bar (SID 60000) /
}
]]></sourcecode>
          <t>CBOR encoding:</t>
          <sourcecode type="cbor-pretty"><![CDATA[
A1         # map(1)
   19 EA60 # unsigned(60000)
   83      # array(3)
      F5   # primitive(21)
      F6   # primitive(22)
      F5   # primitive(21)
]]></sourcecode>
        </section>
        <section anchor="using-names-in-keys-4">
          <name>Using names in keys</name>
          <t>CBOR diagnostic notation:</t>
          <sourcecode type="cbor-diag"><![CDATA[
{
  "bar-module:bar" : [true, null, true]   / bar (SID 60000) /
}
]]></sourcecode>
          <t>CBOR encoding:</t>
          <sourcecode type="cbor-pretty"><![CDATA[
A1                                 # map(1)
   6E                              # text(14)
      6261722D6D6F64756C653A626172 # "bar-module:bar"
   83                              # array(3)
      F5                           # primitive(21)
      F6                           # primitive(22)
      F5                           # primitive(21)
]]></sourcecode>
        </section>
      </section>
    </section>
    <section anchor="encoding-of-yang-data-extension">
      <name>Encoding of 'yang-data' extension</name>
      <t>The yang-data extension <xref target="RFC8040"/> is used to define data structures in YANG
that are not intended to be implemented as part of a datastore.</t>
      <t>The yang-data extension will specify a container that <bcp14>MUST</bcp14> be encoded using the encoding rules of nodes of data trees as defined in <xref target="container"/>.</t>
      <t>Just like YANG containers, the yang-data extension can be encoded using either SIDs or names.</t>
      <t>Definition example from <xref target="I-D.ietf-core-comi"/> Appendix A:</t>
      <sourcecode type="yang"><![CDATA[
module ietf-coreconf {
  ...

  import ietf-restconf {
    prefix rc;
  }

  rc:yang-data yang-errors {
    container error {
      leaf error-tag {
        type identityref {
          base error-tag;
        }
      }
      leaf error-app-tag {
        type identityref {
          base error-app-tag;
        }
      }
      leaf error-data-node {
        type instance-identifier;
      }
      leaf error-message {
        type string;
      }
    }
  }
}
]]></sourcecode>
      <section anchor="using-sids-in-keys-4">
        <name>Using SIDs in keys</name>
        <t>The yang-data extensions encoded using SIDs are carried in a CBOR map containing a single item pair. The key of this item is set to the SID assigned to the yang-data extension container; the value is set to the CBOR encoding of this container as defined in <xref target="container"/>.</t>
        <t>This example shows a serialization example of the yang-errors yang-data extension as defined in <xref target="I-D.ietf-core-comi"/> using SIDs as defined in <xref target="sid"/>.</t>
        <t>CBOR diagnostic notation:</t>
        <sourcecode type="cbor-diag"><![CDATA[
{
  1024 : {                      / error  (SID 1024) /
    4 : 1011,                   / error-tag (SID 1028) /
                                / = invalid-value (SID 1011) /
    1 : 1018,                   / error-app-tag (SID 1025) /
                                / = not-in-range (SID 1018) /
    2 : 1740,                   / error-data-node (SID 1026) /
                                / = timezone-utc-offset (SID 1740) /
    3 : "Maximum exceeded"      / error-message (SID 1027) /
      }
}
]]></sourcecode>
        <t>CBOR encoding:</t>
        <sourcecode type="cbor-pretty"><![CDATA[
A1                                      # map(1)
   19 0400                              # unsigned(1024)
   A4                                   # map(4)
      04                                # unsigned(4)
      19 03F3                           # unsigned(1011)
      01                                # unsigned(1)
      19 03FA                           # unsigned(1018)
      02                                # unsigned(2)
      19 06CC                           # unsigned(1740)
      03                                # unsigned(3)
      70                                # text(16)
         4D6178696D756D206578636565646564 # "Maximum exceeded"
]]></sourcecode>
      </section>
      <section anchor="using-names-in-keys-5">
        <name>Using names in keys</name>
        <t>The yang-data extensions encoded using names are carried in a CBOR map containing a single item pair. The key of this item is set to the namespace qualified name of the yang-data extension container; the value is set to the CBOR encoding of this container as defined in <xref target="container"/>.</t>
        <t>This example shows a serialization example of the yang-errors yang-data extension as defined in <xref target="I-D.ietf-core-comi"/> using names as defined <xref target="name"/>.</t>
        <t>CBOR diagnostic notation:</t>
        <sourcecode type="cbor-diag"><![CDATA[
{
  "ietf-coreconf:error" : {
    "error-tag" : "invalid-value",
    "error-app-tag" : "not-in-range",
    "error-data-node" : "timezone-utc-offset",
    "error-message" : "Maximum exceeded"
  }
}
]]></sourcecode>
        <t>CBOR encoding:</t>
        <sourcecode type="cbor-pretty"><![CDATA[
A1                                           # map(1)
   73                                        # text(19)
      696574662D636F7265636F6E663A6572726F72 # "ietf-coreconf:error"
   A4                                        # map(4)
      69                                     # text(9)
         6572726F722D746167                  # "error-tag"
      6D                                     # text(13)
         696E76616C69642D76616C7565          # "invalid-value"
      6D                                     # text(13)
         6572726F722D6170702D746167          # "error-app-tag"
      6C                                     # text(12)
         6E6F742D696E2D72616E6765            # "not-in-range"
      6F                                     # text(15)
         6572726F722D646174612D6E6F6465      # "error-data-node"
      73                                     # text(19)
         74696D657A6F6E652D7574632D6F6666736574
                                             # "timezone-utc-offset"
      6D                                     # text(13)
         6572726F722D6D657373616765          # "error-message"
      70                                     # text(16)
         4D6178696D756D206578636565646564    # "Maximum exceeded"
]]></sourcecode>
      </section>
    </section>
    <section anchor="data-types-mapping">
      <name>Representing YANG Data Types in CBOR</name>
      <t>The CBOR encoding of an instance of a leaf or leaf-list representation node
depends on the built-in type of that representation node. The following
sub-section defines the CBOR encoding of each built-in type supported
by YANG as listed in <xref section="4.2.4" sectionFormat="of" target="RFC7950"/>. Each subsection shows an example value assigned to a representation node instance of the discussed built-in type.</t>
      <section anchor="the-unsigned-integer-types">
        <name>The unsigned integer Types</name>
        <t>Leafs of type uint8, uint16, uint32 and uint64 <bcp14>MUST</bcp14> be encoded using a CBOR
unsigned integer data item (major type 0).</t>
        <t>The following example shows the encoding of an 'mtu' leaf representation node instance set to 1280 bytes.</t>
        <t>Definition example from <xref target="RFC8344"/>:</t>
        <sourcecode type="yang"><![CDATA[
leaf mtu {
  type uint16 {
    range "68..max";
  }
}
]]></sourcecode>
        <t>CBOR diagnostic notation: 1280</t>
        <t>CBOR encoding: 19 0500</t>
      </section>
      <section anchor="the-integer-types">
        <name>The integer Types</name>
        <t>Leafs of type int8, int16, int32 and int64 <bcp14>MUST</bcp14> be encoded using either CBOR
unsigned integer (major type 0) or CBOR negative integer (major type 1), depending
on the actual value.</t>
        <t>The following example shows the encoding of a 'timezone-utc-offset' leaf representation node instance set to -300 minutes.</t>
        <t>Definition example from <xref target="RFC7317"/>:</t>
        <sourcecode type="yang"><![CDATA[
leaf timezone-utc-offset {
  type int16 {
    range "-1500 .. 1500";
  }
}
]]></sourcecode>
        <t>CBOR diagnostic notation: -300</t>
        <t>CBOR encoding: 39 012B</t>
      </section>
      <section anchor="the-decimal64-type">
        <name>The 'decimal64' Type</name>
        <t>Leafs of type decimal64 <bcp14>MUST</bcp14> be encoded using a decimal fraction as defined in <xref section="3.4.4" sectionFormat="of" target="RFC8949"/>.</t>
        <t>The following example shows the encoding of a 'my-decimal' leaf representation node instance set to 2.57.</t>
        <t>Definition example from <xref target="RFC7317"/>:</t>
        <sourcecode type="yang"><![CDATA[
leaf my-decimal {
  type decimal64 {
    fraction-digits 2;
    range "1 .. 3.14 | 10 | 20..max";
  }
}
]]></sourcecode>
        <t>CBOR diagnostic notation: 4([-2, 257])</t>
        <t>CBOR encoding: C4 82 21 19 0101</t>
      </section>
      <section anchor="the-string-type">
        <name>The 'string' Type</name>
        <t>Leafs of type string <bcp14>MUST</bcp14> be encoded using a CBOR text string data item (major
type 3).</t>
        <t>The following example shows the encoding of a 'name' leaf representation node instance set to "eth0".</t>
        <t>Definition example from <xref target="RFC8343"/>:</t>
        <sourcecode type="yang"><![CDATA[
leaf name {
  type string;
}
]]></sourcecode>
        <t>CBOR diagnostic notation: "eth0"</t>
        <t>CBOR encoding: 64 65746830</t>
      </section>
      <section anchor="the-boolean-type">
        <name>The 'boolean' Type</name>
        <t>Leafs of type boolean <bcp14>MUST</bcp14> be encoded using a CBOR simple value 'true' (major type 7, additional information 21) or 'false' (major type 7, additional information 20).</t>
        <t>The following example shows the encoding of an 'enabled' leaf representation node instance set to 'true'.</t>
        <t>Definition example from <xref target="RFC7317"/>:</t>
        <sourcecode type="yang"><![CDATA[
leaf enabled {
  type boolean;
}
]]></sourcecode>
        <t>CBOR diagnostic notation: true</t>
        <t>CBOR encoding: F5</t>
      </section>
      <section anchor="enumeration">
        <name>The 'enumeration' Type</name>
        <t>Leafs of type enumeration <bcp14>MUST</bcp14> be encoded using a CBOR unsigned
integer (major type 0) or CBOR negative integer (major type 1),
depending on the actual value, or exceptionally as a tagged text string (see below).
Enumeration values are either
explicitly assigned using the YANG statement 'value' or automatically
assigned based on the algorithm defined in <xref section="9.6.4.2" sectionFormat="of" target="RFC7950"/>.</t>
        <t>The following example shows the encoding of an 'oper-status' leaf representation node instance set to 'testing'.</t>
        <t>Definition example from <xref target="RFC7317"/>:</t>
        <sourcecode type="yang"><![CDATA[
leaf oper-status {
  type enumeration {
    enum up { value 1; }
    enum down { value 2; }
    enum testing { value 3; }
    enum unknown { value 4; }
    enum dormant { value 5; }
    enum not-present { value 6; }
    enum lower-layer-down { value 7; }
  }
}
]]></sourcecode>
        <t>CBOR diagnostic notation: 3</t>
        <t>CBOR encoding: 03</t>
        <t>Values of 'enumeration' types defined in a 'union' type <bcp14>MUST</bcp14> be encoded using a
CBOR text string data item (major type 3) and <bcp14>MUST</bcp14> contain one of the names
assigned by 'enum' statements in YANG (see also <xref target="union"/>).
The encoding <bcp14>MUST</bcp14> be enclosed by the
enumeration CBOR tag as specified in <xref target="tag-registry"/>.</t>
        <t>Definition example from <xref target="RFC7950"/>:</t>
        <sourcecode type="yang"><![CDATA[
type union {
  type int32;
  type enumeration {
    enum unbounded;
  }
}
]]></sourcecode>
        <t>CBOR diagnostic notation: 44("unbounded")</t>
        <t>CBOR encoding: D8 2C 69 756E626F756E646564</t>
      </section>
      <section anchor="bits">
        <name>The 'bits' Type</name>
        <t>Keeping in mind that bit positions are either explicitly assigned using the
YANG statement 'position' or automatically assigned based on the algorithm
defined in <xref section="9.7.4.2" sectionFormat="of" target="RFC7950"/>, each element of type bits could be seen
as a set of bit positions (or offsets from position 0), that have a value of
either 1, which represents the bit being set or 0, which represents that the bit
is not set.</t>
        <t>Leafs of type bits <bcp14>MUST</bcp14> be encoded either using a CBOR array or byte string
(major type 2), or exceptionally as a tagged text string (see below). In case CBOR array representation is used, each element is
either a positive integer (major type 0 with value 0 being
disallowed) that can be used to calculate the offset of the next byte string, or a byte
string (major type 2) that carries the information whether certain bits are set
or not. The initial offset value is 0 and each unsigned integer modifies the
offset value of the next byte string by the integer value multiplied by 8. For
example, if the bit offset is 0 and there is an integer with value 5, the first
byte of the byte string that follows will represent bit positions 40 to 47 both
ends included. If the byte string has a second byte, it will carry information
about bits 48 to 55 and so on. Within each byte, bits are assigned from least
to most significant. After the byte string, the offset is modified by the number
of bytes in the byte string multiplied by 8.
Bytes with no bits set (zero bytes) at the end of the byte string are never generated:
If they would occur at the end of the array, the zero bytes are simply omitted;
if they occur at the end of a byte string preceding an integer, the
zero bytes are removed and the integer adjusted upwards by the number
of zero bytes removed.
An example follows.</t>
        <t>The following example shows the encoding of an 'alarm-state' leaf representation node
instance with the 'critical' (position 3), 'warning' (position 8) and
'indeterminate' (position 128) flags set.</t>
        <sourcecode type="yang"><![CDATA[
typedef alarm-state {
  type bits {
    bit unknown;
    bit under-repair;
    bit critical;
    bit major;
    bit minor;
    bit warning {
      position 8;
    }
    bit indeterminate {
      position 128;
    }
  }
}

leaf alarm-state {
  type alarm-state;
}
]]></sourcecode>
        <t>CBOR diagnostic notation: [h'0401', 14, h'01']</t>
        <t>CBOR encoding: 83 42 0401 0E 41 01</t>
        <t>In a number of cases the array would only need to have one element -- a byte string with a few bytes inside.
For this case, it is <bcp14>REQUIRED</bcp14> to omit the array element and have only the byte array that would have been inside.
To illustrate this, let us consider the same example YANG definition, but this time encoding only 'under-repair' and 'critical' flags.
The result would be</t>
        <t>CBOR diagnostic notation: h'06'</t>
        <t>CBOR encoding: 41 06</t>
        <t>Elements in the array <bcp14>MUST</bcp14> be either byte strings that do not end in
a zero byte, or positive unsigned
integers, where byte strings and integers <bcp14>MUST</bcp14> alternate, i.e., adjacent byte
strings or adjacent integers are an error. An array with a single byte string
<bcp14>MUST</bcp14> instead be encoded as just that byte string. An array with a single
positive integer is an error.
Note that a recipient can handle trailing zero bytes in the byte strings using the normal
rules without any issue, so an implementation <bcp14>MAY</bcp14> silently accept them.</t>
        <t>Values of 'bits' types defined in a 'union' type <bcp14>MUST</bcp14> be encoded using a
CBOR text string data item (major type 3) and <bcp14>MUST</bcp14> contain a space-separated
sequence of names of 'bits' that are set (see also <xref target="union"/>).
The encoding <bcp14>MUST</bcp14> be enclosed by the
bits CBOR tag as specified in <xref target="tag-registry"/>.</t>
        <t>The following example shows the encoding of an 'alarm-state' leaf representation node
instance defined using a union type with the 'under-repair' and 'critical'
flags set.</t>
        <t>Definition example:</t>
        <sourcecode type="yang"><![CDATA[
leaf alarm-state-2 {
  type union {
    type alarm-state;
    type bits {
      bit extra-flag;
    }
  }
}
]]></sourcecode>
        <t>CBOR diagnostic notation: 43("under-repair critical")</t>
        <t>CBOR encoding: D8 2B 75 756E6465722D72657061697220637269746963616C</t>
      </section>
      <section anchor="the-binary-type">
        <name>The 'binary' Type</name>
        <t>Leafs of type binary <bcp14>MUST</bcp14> be encoded using a CBOR byte string data item (major
type 2).</t>
        <t>The following example shows the encoding of an 'aes128-key' leaf representation node
instance set to 0x1f1ce6a3f42660d888d92a4d8030476e.</t>
        <t>Definition example:</t>
        <sourcecode type="yang"><![CDATA[
leaf aes128-key {
  type binary {
    length 16;
  }
}
]]></sourcecode>
        <t>CBOR diagnostic notation: h'1F1CE6A3F42660D888D92A4D8030476E'</t>
        <t>CBOR encoding: 50 1F1CE6A3F42660D888D92A4D8030476E</t>
      </section>
      <section anchor="the-leafref-type">
        <name>The 'leafref' Type</name>
        <t>Leafs of type leafref <bcp14>MUST</bcp14> be encoded using the rules of the representation node referenced
by the 'path' YANG statement.</t>
        <t>The following example shows the encoding of an 'interface-state-ref' leaf representation node instance set to "eth1".</t>
        <t>Definition example from <xref target="RFC8343"/>:</t>
        <sourcecode type="yang"><![CDATA[
typedef interface-state-ref {
  type leafref {
    path "/interfaces-state/interface/name";
  }
}

container interfaces-state {
  list interface {
    key "name";
    leaf name {
      type string;
    }
    leaf-list higher-layer-if {
      type interface-state-ref;
    }
  }
}
]]></sourcecode>
        <t>CBOR diagnostic notation: "eth1"</t>
        <t>CBOR encoding: 64 65746831</t>
      </section>
      <section anchor="identityref">
        <name>The 'identityref' Type</name>
        <t>This specification supports two approaches for encoding identityref:
as a YANG Schema Item iDentifier as defined in <xref target="sid"/>, or as a name
as defined in <xref section="6.8" sectionFormat="of" target="RFC7951"/>.
See <xref target="union"/> for an exceptional case when this representation needs to be tagged.</t>
        <section anchor="identityref-with-sid">
          <name>SIDs as identityref</name>
          <t>When representation nodes of type identityref are implemented using SIDs, they <bcp14>MUST</bcp14> be encoded using a CBOR unsigned integer data item (major type 0). (Note that, as they are not used in the position of CBOR map keys, no delta mechanism is employed for SIDs used for identityref.)</t>
          <t>The following example shows the encoding of a 'type' leaf representation node instance set to the value 'iana-if-type:ethernetCsmacd' (SID 1880).</t>
          <t>Definition example from <xref target="RFC7317"/>:</t>
          <sourcecode type="yang"><![CDATA[
identity interface-type {
}

identity iana-interface-type {
  base interface-type;
}

identity ethernetCsmacd {
  base iana-interface-type;
}

leaf type {
  type identityref {
    base interface-type;
  }
}
]]></sourcecode>
          <t>CBOR diagnostic notation: 1880</t>
          <t>CBOR encoding: 19 0758</t>
        </section>
        <section anchor="name-as-identityref">
          <name>Name as identityref</name>
          <t>Alternatively, an identityref <bcp14>MAY</bcp14> be encoded using a name as defined in <xref target="name"/>.  When names are used, identityref <bcp14>MUST</bcp14> be encoded using a CBOR text string data item (major type 3). If the identity is defined in different module than the leaf node containing the identityref data node, the namespace qualified form <bcp14>MUST</bcp14> be used. Otherwise, both the simple and namespace qualified forms are permitted. Names and namespaces are defined in <xref target="name"/>.</t>
          <t>The following example shows the encoding of the identity 'iana-if-type:ethernetCsmacd' using its namespace qualified name. This example is described in <xref target="identityref-with-sid"/>.</t>
          <t>CBOR diagnostic notation: "iana-if-type:ethernetCsmacd"</t>
          <t>CBOR encoding: 78 1b 69616E612D69662D747970653A65746865726E657443736D616364</t>
        </section>
      </section>
      <section anchor="the-empty-type">
        <name>The 'empty' Type</name>
        <t>Leafs of type empty <bcp14>MUST</bcp14> be encoded using the CBOR null value (major type
7, additional information 22).</t>
        <t>The following example shows the encoding of an 'is-router' leaf representation node instance when present.</t>
        <t>Definition example from <xref target="RFC8344"/>:</t>
        <sourcecode type="yang"><![CDATA[
leaf is-router {
  type empty;
}
]]></sourcecode>
        <t>CBOR diagnostic notation: null</t>
        <t>CBOR encoding: F6</t>
      </section>
      <section anchor="union">
        <name>The 'union' Type</name>
        <t>Leafs of type union <bcp14>MUST</bcp14> be encoded using the rules associated with one of the types listed.
When used in a union, the following YANG datatypes are enclosed by a CBOR tag to avoid confusion
between different YANG datatypes encoded using the same CBOR major type.</t>
        <ul spacing="normal">
          <li>bits</li>
          <li>enumeration</li>
          <li>identityref</li>
          <li>instance-identifier</li>
        </ul>
        <t>See <xref target="tag-registry"/> for the assigned value of these CBOR tags.</t>
        <t>As mentioned in <xref target="enumeration"/> and in <xref target="bits"/>, 'enumeration' and 'bits' are encoded as a CBOR text string data item (major type 3) when defined within a 'union' type.
(This adds considerable complexity, but is necessary because of an
idiosyncrasy of the YANG data model for unions; the workaround allows
compatibility to be maintained with the encoding of overlapping unions
in XML and JSON.
See also <xref section="9.12" sectionFormat="of" target="RFC7950"/>.)</t>
        <t>The following example shows the encoding of an 'ip-address' leaf representation node instance when set to "2001:db8:a0b:12f0::1".</t>
        <t>Definition example (adapted from <xref target="RFC6991"/>):</t>
        <sourcecode type="yang"><![CDATA[
typedef ipv4-address {
  type string {
    pattern
      '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}'
    +  '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'
    + '(%[\p{N}\p{L}]+)?';
  }
}

typedef ipv6-address {
  type string {
    pattern '((:|[0-9a-fA-F]{0,4}):)([0-9a-fA-F]{0,4}:){0,5}'
          + '((([0-9a-fA-F]{0,4}:)?(:|[0-9a-fA-F]{0,4}))|'
          + '(((25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])\.){3}'
          + '(25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])))'
          + '(%[\p{N}\p{L}]+)?';
    pattern '(([^:]+:){6}(([^:]+:[^:]+)|(.*\..*)))|'
          + '((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?)'
          + '(%.+)?';
  }
}

typedef ip-address {
  type union {
    type ipv4-address;
    type ipv6-address;
  }
}

leaf address {
  type ip-address;
}
]]></sourcecode>
        <t>CBOR diagnostic notation: "2001:db8:a0b:12f0::1"</t>
        <t>CBOR encoding: 74 323030313A6462383A6130623A313266303A3A31</t>
      </section>
      <section anchor="instance-id">
        <name>The 'instance-identifier' Type</name>
        <t>This specification supports two approaches for encoding an instance-identifier, one based on YANG Schema Item iDentifier as defined in <xref target="sid"/> and one based on names as defined in <xref target="name"/>.
See <xref target="union"/> for an exceptional case when this representation needs to be tagged.</t>
        <section anchor="instance-identifier-with-sid">
          <name>SIDs as instance-identifier</name>
          <t>SIDs uniquely identify a schema node. In the case of a single instance schema node, i.e., a schema node defined at the root of a YANG module or submodule or schema nodes defined within a container, the SID is sufficient to identify this instance (representation node).
(Note that no delta mechanism is employed for SIDs used for identityref, see <xref target="identityref-with-sid"/>.)
<!-- Is this clear enough? -->
          </t>
          <t>In the case of a representation node that is an entry of a YANG list, a SID is combined with the list key(s) to identify each instance within the YANG list(s).</t>
          <t>Instance identifiers of single instance schema nodes <bcp14>MUST</bcp14> be encoded using a CBOR unsigned integer data item (major type 0) and set to the targeted schema node SID.</t>
          <t>Instance identifiers of representation node entries of a YANG list <bcp14>MUST</bcp14> be encoded using a CBOR array data item (major type 4) containing the following entries:</t>
          <ul spacing="normal">
            <li>The first entry <bcp14>MUST</bcp14> be encoded as a CBOR unsigned integer data item (major type 0) and set to the targeted schema node SID.</li>
            <li>The following entries <bcp14>MUST</bcp14> contain the value of each key required to identify the instance of the targeted schema node. These keys <bcp14>MUST</bcp14> be ordered as defined in the 'key' YANG statement, starting from the top level list, and followed by each of the subordinate list(s).</li>
          </ul>
          <t>Examples within this section assume the definition of a schema node of type 'instance-identifier':</t>
          <t>Definition example from <xref target="RFC7950"/>:</t>
          <sourcecode type="yang"><![CDATA[
container system {
  ...
  leaf reporting-entity {
    type instance-identifier;
  }
]]></sourcecode>
          <t><strong>First example:</strong></t>
          <t>The following example shows the encoding of the 'reporting-entity' value referencing data node instance "/system/contact" (SID 1741).</t>
          <t>Definition example from <xref target="RFC7317"/>:</t>
          <sourcecode type="yang"><![CDATA[
container system {

  leaf contact {
    type string;
  }

  leaf hostname {
    type inet:domain-name;
  }
}
]]></sourcecode>
          <t>CBOR diagnostic notation: 1741</t>
          <t>CBOR encoding: 19 06CD</t>
          <t><strong>Second example:</strong></t>
          <t>This example aims to show how a representation node entry of a YANG list is identified.
It uses a somewhat arbitrarily modified YANG module version from <xref target="RFC7317"/> by
adding <tt>country</tt> to the leafs and keys of <tt>authorized-key</tt>.</t>
          <t>The following example shows the encoding of the 'reporting-entity' value referencing list instance "/system/authentication/user/authorized-key/key-data" (which is assumed to have SID 1734) for username "bob" and authorized-key with name "admin" and country "france".</t>
          <sourcecode type="yang"><![CDATA[
list user {
  key name;

  leaf name {
    type string;
  }

  leaf password {
    type ianach:crypt-hash;
  }

  list authorized-key {
    key "name country";

    leaf country {
      type string;
    }

    leaf name {
      type string;
    }

    leaf algorithm {
      type string;
    }

    leaf key-data {
      type binary;
    }
  }
}
]]></sourcecode>
          <t>CBOR diagnostic notation: [1734, "bob", "admin", "france"]</t>
          <t>CBOR encoding:</t>
          <sourcecode type="cbor-pretty"><![CDATA[
84                 # array(4)
   19 06C6         # unsigned(1734)
   63              # text(3)
      626F62       # "bob"
   65              # text(5)
      61646D696E   # "admin"
   66              # text(6)
      6672616E6365 # "france"
]]></sourcecode>
          <t><strong>Third example:</strong></t>
          <t>The following example shows the encoding of the 'reporting-entity' value referencing the list instance "/system/authentication/user" (SID 1730) corresponding to username "jack".</t>
          <t>CBOR diagnostic notation: [1730, "jack"]</t>
          <t>CBOR encoding:</t>
          <sourcecode type="cbor-pretty"><![CDATA[
82             # array(2)
   19 06C2     # unsigned(1730)
   64          # text(4)
      6A61636B # "jack"
]]></sourcecode>
        </section>
        <section anchor="names-as-instance-identifier">
          <name>Names as instance-identifier</name>
          <t>An "instance-identifier" value is encoded as a text string that is
analogous to the lexical representation in XML encoding; see <xref section="9.13.2" sectionFormat="of" target="RFC7950"/>. However, the encoding of namespaces in instance-identifier values follows the rules stated in <xref target="name"/>, namely:</t>
          <ul spacing="normal">
            <li>The leftmost (top-level) data node name is always in the namespace qualified form.</li>
            <li>Any subsequent data node name is in the namespace qualified form if the node is defined in a module other than its parent node, and the simple form is used otherwise. This rule also holds for node names appearing in predicates.</li>
          </ul>
          <t>For example,</t>
          <t>/ietf-interfaces:interfaces/interface[name='eth0']/ietf-ip:ipv4/ip</t>
          <t>is a valid instance-identifier value because the data nodes "interfaces", "interface", and "name" are defined in the module "ietf-interfaces", whereas "ipv4" and "ip" are defined in "ietf-ip".</t>
          <t>The resulting xpath <bcp14>MUST</bcp14> be encoded using a CBOR text string data item (major type 3).</t>
          <t><strong>First example:</strong></t>
          <t>This example is described in <xref target="instance-identifier-with-sid"/>.</t>
          <t>CBOR diagnostic notation: "/ietf-system:system/contact"</t>
          <t>CBOR encoding:</t>
          <sourcecode type="cbor-pretty"><![CDATA[
78 1c 2F696574662D73797374656D3A73797374656D2F636F6E74616374
]]></sourcecode>
          <t><strong>Second example:</strong></t>
          <t>This example is described in <xref target="instance-identifier-with-sid"/>.</t>
          <t>CBOR diagnostic notation (the line break is inserted for exposition only):</t>
          <!-- http://cbor.me/?diag=%22/ietf-system:system/authentication/user[name=%27bob%27]/authorized-key[name=%27admin%27][country=%27france%27]/key-data%22 -->

<sourcecode type="cbor-diag"><![CDATA[
"/ietf-system:system/authentication/user[name='bob']/
authorized-key[name='admin'][country='france']/key-data"
]]></sourcecode>
          <t>CBOR encoding:</t>
          <!-- http://cbor.me/?bytes=78.6B(2F696574662D73797374656D3A73797374656D2F61757468656E7469636174696F6E2F757365725B6E616D653D27626F62275D2F617574686F72697A65642D6B65795B6E616D653D2761646D696E275D5B636F756E7472793D276672616E6365275D2F6B65792D64617461) -->

<sourcecode type="cbor-pretty"><![CDATA[
78 6B
   2F696574662D73797374656D3A73797374656D2F61757468656E74696361
   74696F6E2F757365725B6E616D653D27626F62275D2F617574686F72697A
   65642D6B65795B6E616D653D2761646D696E275D5B636F756E7472793D27
   6672616E6365275D2F6B65792D64617461
]]></sourcecode>
          <t><strong>Third example:</strong></t>
          <t>This example is described in <xref target="instance-identifier-with-sid"/>.</t>
          <t>CBOR diagnostic notation:</t>
          <sourcecode type="cbor-diag"><![CDATA[
"/ietf-system:system/authentication/user[name='jack']"
]]></sourcecode>
          <t>CBOR encoding:</t>
          <sourcecode type="cbor-pretty"><![CDATA[
78 34                                   # text(52)
   2F696574662D73797374656D3A73797374656D2F61757468656E74696361
   74696F6E2F757365725B6E616D653D276A61636B275D
]]></sourcecode>
        </section>
      </section>
    </section>
    <section anchor="content-type">
      <name>Content-Types</name>
      <t>This specification defines the media-type
<tt>application/yang-data+cbor</tt>, which can be used without parameters or
with the <tt>id</tt> parameter set to either <tt>name</tt> or <tt>sid</tt>.</t>
      <t>This media-type represents a YANG-CBOR document containing a representation tree.
If the media-type parameter <tt>id</tt> is present,
depending on its value,
each representation node is identified by its associated namespace qualified
name as defined in <xref target="name"/> (<tt>id=name</tt>), or by its associated YANG SID
(represented, e.g., in CBOR map keys as a SID delta or via tag number 47) as defined in <xref target="sid"/>
(<tt>id=sid</tt>), respectively.
If no <tt>id</tt> parameter is given, both forms may be present.</t>
      <t>The format of an <tt>application/yang-data+cbor</tt> representation is that
of a CBOR map, mapping names and/or SIDs (as defined above) into
instance values (using the rules defined in <xref target="instance-encoding"/>).</t>
      <t>It is not foreseen at this point that the valid set of values for the
<tt>id</tt> parameter will extend beyond <tt>name</tt>, <tt>sid</tt>, or being unset; if
that does happen, any new value is foreseen to be of the form
<tt>[a-z][a-z0-9]*(-[a-z0-9]+)*</tt>.</t>
      <t>In summary, this document defines three content-types, which are
intended for use by different classes of applications:</t>
      <ul spacing="normal">
        <li>
          <tt>application/yang-data+cbor; id=sid</tt> -- for use by applications that
need to be frugal with encoding space and text string processing
(e.g., applications running on constrained nodes <xref target="RFC7228"/>, or
applications with particular performance requirements);</li>
        <li>
          <tt>application/yang-data+cbor; id=name</tt> -- for use by applications that
do not want to engage in SID management, and that have ample
resources to manage text-string based item identifiers (e.g.,
applications that directly want to substitute
<tt>application/yang.data+json</tt> with a more efficient representation
without any other changes);</li>
        <li>
          <tt>application/yang-data+cbor</tt> -- for use by more complex applications
that can benefit from the increased efficiency of SID identifiers
but also need to integrate databases of YANG modules before SID
mappings are defined for them.</li>
      </ul>
      <t>All three content-types are based on the same representation
mechanisms, parts of which are simply not used in the first and second
case.</t>
      <t>How the use of one of these content types is selected in a transfer
protocol is outside the scope of this specification.
The last paragraph of <xref section="5.2" sectionFormat="of" target="RFC8040"/> discusses how to
indicate and request the usage of specific content-types in RESTCONF.
Similar mechanisms are available in CoAP <xref target="RFC7252"/> using the
Content-Format and Accept Options; <xref target="I-D.ietf-core-comi"/> demonstrates specifics on
how Content-Format may be used to indicate the <tt>id=sid</tt> case.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>The security considerations of <xref target="RFC8949"/> and <xref target="RFC7950"/> apply.</t>
      <t>This document defines an alternative encoding for data modeled in the YANG data modeling language. As such, this encoding does not contribute any new security issues in addition to those identified for the specific protocol or context for which it is used.</t>
      <t>To minimize security risks, software on the receiving side <bcp14>SHOULD</bcp14> reject all messages that do not comply to the rules of this document and reply with an appropriate error message to the sender.</t>
      <t>For instance, when the 'id' parameter to the media type is used, it is
important to properly reject identifiers of the other type, to avoid
scenarios where different implementations interpret a given content in
different ways.</t>
      <t>When SIDs are in use, the interpretation of encoded data not only
relies on having the right YANG modules, but also on having the right
SID mapping information.  Management and evolution of that mapping
information therefore requires the same care as the management and
evolution of the YANG modules themselves.  The procedures in
<xref target="I-D.ietf-core-sid"/> are being defined with this in mind.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="media-types-registry">
        <name>Media-Types Registry</name>
        <t>This document adds the following Media-Type to the "Media Types" registry.</t>
        <table align="left">
          <thead>
            <tr>
              <th align="left">Name</th>
              <th align="left">Template</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">yang-data+cbor</td>
              <td align="left">application/yang-data+cbor</td>
              <td align="left">RFC XXXX</td>
            </tr>
          </tbody>
        </table>
        <t>// RFC Ed.: please replace RFC XXXX with this RFC number and remove this note.</t>
        <dl spacing="compact">
          <dt>Type name:</dt>
          <dd>
            <t>application</t>
          </dd>
          <dt>Subtype name:</dt>
          <dd>
            <t>yang-data+cbor</t>
          </dd>
          <dt>Required parameters:</dt>
          <dd>
            <t>N/A</t>
          </dd>
          <dt>Optional parameters:</dt>
          <dd>
            <t>id (see <xref target="content-type"/> of RFC XXXX)</t>
          </dd>
          <dt>Encoding considerations:</dt>
          <dd>
            <t>binary (CBOR)</t>
          </dd>
          <dt>Security considerations:</dt>
          <dd>
            <t>see <xref target="security-considerations"/> of RFC XXXX</t>
          </dd>
          <dt>Published specification:</dt>
          <dd>
            <t>RFC XXXX</t>
          </dd>
          <dt>Person &amp; email address to contact for further information:</dt>
          <dd>
            <t>CORE WG mailing list (core@ietf.org),
or IETF Applications and Real-Time Area (art@ietf.org)</t>
          </dd>
          <dt>Intended usage:</dt>
          <dd>
            <t>COMMON</t>
          </dd>
          <dt>Restrictions on usage:</dt>
          <dd>
            <t>none</t>
          </dd>
          <dt>Author/Change controller:</dt>
          <dd>
            <t>IETF</t>
          </dd>
        </dl>
      </section>
      <section anchor="coap-content-formats-registry">
        <name>CoAP Content-Formats Registry</name>
        <t>This document adds the following Content-Format to the "CoAP Content-Formats",
within the "Constrained RESTful Environments (CoRE) Parameters"
registry, where TBD3 comes from the "Expert Review" 0-255 range and
TBD1 and TBD2 come from the "IETF Review" 256-9999 range.</t>
        <table align="left">
          <thead>
            <tr>
              <th align="left">Content Type</th>
              <th align="left">Content Coding</th>
              <th align="left">ID</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">application/yang-data+cbor</td>
              <td align="left">-</td>
              <td align="left">TBD1</td>
              <td align="left">RFC XXXX</td>
            </tr>
            <tr>
              <td align="left">application/yang-data+cbor; id=name</td>
              <td align="left">-</td>
              <td align="left">TBD2</td>
              <td align="left">RFC XXXX</td>
            </tr>
            <tr>
              <td align="left">application/yang-data+cbor; id=sid</td>
              <td align="left">-</td>
              <td align="left">TBD3</td>
              <td align="left">RFC XXXX</td>
            </tr>
          </tbody>
        </table>
        <t>// RFC Ed.: please replace TBDx with assigned IDs, remove the
requested ranges, and remove this note.<br/>
// RFC Ed.: please replace RFC XXXX with this RFC number and remove this note.</t>
      </section>
      <section anchor="tag-registry">
        <name>CBOR Tags Registry</name>
        <t>In the registry "<xref section="CBOR Tags" relative="#cbor-tags" sectionFormat="bare" target="IANA.cbor-tags"/>" <xref target="IANA.cbor-tags"/>,
as per <xref section="9.2" sectionFormat="of" target="RFC8949"/>, IANA has allocated the CBOR tags in
<xref target="tab-tag-values"/> for the YANG datatypes listed.</t>
        <table anchor="tab-tag-values">
          <name>CBOR tags 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">43</td>
              <td align="left">text string</td>
              <td align="left">YANG bits datatype; see <xref target="bits"/></td>
              <td align="left">RFC XXXX</td>
            </tr>
            <tr>
              <td align="left">44</td>
              <td align="left">text string</td>
              <td align="left">YANG enumeration datatype; see <xref target="enumeration"/>.</td>
              <td align="left">RFC XXXX</td>
            </tr>
            <tr>
              <td align="left">45</td>
              <td align="left">unsigned integer or text string</td>
              <td align="left">YANG identityref datatype; see <xref target="identityref"/>.</td>
              <td align="left">RFC XXXX</td>
            </tr>
            <tr>
              <td align="left">46</td>
              <td align="left">unsigned integer or text string or array</td>
              <td align="left">YANG instance-identifier datatype; see <xref target="instance-id"/>.</td>
              <td align="left">RFC XXXX</td>
            </tr>
            <tr>
              <td align="left">47</td>
              <td align="left">unsigned integer</td>
              <td align="left">YANG Schema Item iDentifier (SID); see <xref target="sid"/>.</td>
              <td align="left">RFC XXXX</td>
            </tr>
          </tbody>
        </table>
        <t>// RFC Ed.: please replace RFC XXXX with RFC number and remove this note</t>
      </section>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="RFC7950" target="https://www.rfc-editor.org/info/rfc7950">
          <front>
            <title>The YANG 1.1 Data Modeling Language</title>
            <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund">
              <organization/>
            </author>
            <date month="August" year="2016"/>
            <abstract>
              <t>YANG is a data modeling language used to model configuration data, state data, Remote Procedure Calls, and notifications for network management protocols.  This document describes the syntax and semantics of version 1.1 of the YANG language.  YANG version 1.1 is a maintenance release of the YANG language, addressing ambiguities and defects in the original specification.  There are a small number of backward incompatibilities from YANG version 1.  This document also specifies the YANG mappings to the Network Configuration Protocol (NETCONF).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7950"/>
          <seriesInfo name="DOI" value="10.17487/RFC7950"/>
        </reference>
        <reference anchor="RFC7951" target="https://www.rfc-editor.org/info/rfc7951">
          <front>
            <title>JSON Encoding of Data Modeled with YANG</title>
            <author fullname="L. Lhotka" initials="L." surname="Lhotka">
              <organization/>
            </author>
            <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="RFC8040" target="https://www.rfc-editor.org/info/rfc8040">
          <front>
            <title>RESTCONF Protocol</title>
            <author fullname="A. Bierman" initials="A." surname="Bierman">
              <organization/>
            </author>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund">
              <organization/>
            </author>
            <author fullname="K. Watsen" initials="K." surname="Watsen">
              <organization/>
            </author>
            <date month="January" year="2017"/>
            <abstract>
              <t>This document describes an HTTP-based protocol that provides a programmatic interface for accessing data defined in YANG, using the datastore concepts defined in the Network Configuration Protocol (NETCONF).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8040"/>
          <seriesInfo name="DOI" value="10.17487/RFC8040"/>
        </reference>
        <reference anchor="RFC8259" target="https://www.rfc-editor.org/info/rfc8259">
          <front>
            <title>The JavaScript Object Notation (JSON) Data Interchange Format</title>
            <author fullname="T. Bray" initials="T." role="editor" surname="Bray">
              <organization/>
            </author>
            <date month="December" year="2017"/>
            <abstract>
              <t>JavaScript Object Notation (JSON) is a lightweight, text-based, language-independent data interchange format.  It was derived from the ECMAScript Programming Language Standard.  JSON defines a small set of formatting rules for the portable representation of structured data.</t>
              <t>This document removes inconsistencies with other specifications of JSON, repairs specification errors, and offers experience-based interoperability guidance.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="90"/>
          <seriesInfo name="RFC" value="8259"/>
          <seriesInfo name="DOI" value="10.17487/RFC8259"/>
        </reference>
        <reference anchor="RFC8791" target="https://www.rfc-editor.org/info/rfc8791">
          <front>
            <title>YANG Data Structure Extensions</title>
            <author fullname="A. Bierman" initials="A." surname="Bierman">
              <organization/>
            </author>
            <author fullname="M. Björklund" initials="M." surname="Björklund">
              <organization/>
            </author>
            <author fullname="K. Watsen" initials="K." surname="Watsen">
              <organization/>
            </author>
            <date month="June" year="2020"/>
            <abstract>
              <t>This document describes YANG mechanisms for defining abstract data structures with YANG.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8791"/>
          <seriesInfo name="DOI" value="10.17487/RFC8791"/>
        </reference>
        <reference anchor="RFC5234" target="https://www.rfc-editor.org/info/rfc5234">
          <front>
            <title>Augmented BNF for Syntax Specifications: ABNF</title>
            <author fullname="D. Crocker" initials="D." role="editor" surname="Crocker">
              <organization/>
            </author>
            <author fullname="P. Overell" initials="P." surname="Overell">
              <organization/>
            </author>
            <date month="January" year="2008"/>
            <abstract>
              <t>Internet technical specifications often need to define a formal syntax.  Over the years, a modified version of Backus-Naur Form (BNF), called Augmented BNF (ABNF), has been popular among many Internet specifications.  The current specification documents ABNF. It balances compactness and simplicity with reasonable representational power.  The differences between standard BNF and ABNF involve naming rules, repetition, alternatives, order-independence, and value ranges.  This specification also supplies additional rule definitions and encoding for a core lexical analyzer of the type common to several Internet specifications.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="68"/>
          <seriesInfo name="RFC" value="5234"/>
          <seriesInfo name="DOI" value="10.17487/RFC5234"/>
        </reference>
        <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">
              <organization/>
            </author>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman">
              <organization/>
            </author>
            <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>
        <reference anchor="RFC8610" target="https://www.rfc-editor.org/info/rfc8610">
          <front>
            <title>Concise Data Definition Language (CDDL): A Notational Convention to Express Concise Binary Object Representation (CBOR) and JSON Data Structures</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz">
              <organization/>
            </author>
            <author fullname="C. Vigano" initials="C." surname="Vigano">
              <organization/>
            </author>
            <author fullname="C. Bormann" initials="C." surname="Bormann">
              <organization/>
            </author>
            <date month="June" year="2019"/>
            <abstract>
              <t>This document proposes a notational convention to express Concise Binary Object Representation (CBOR) data structures (RFC 7049).  Its main goal is to provide an easy and unambiguous way to express structures for protocol messages and data formats that use CBOR or JSON.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8610"/>
          <seriesInfo name="DOI" value="10.17487/RFC8610"/>
        </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>
            <date/>
          </front>
        </reference>
        <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">
              <organization/>
            </author>
            <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">
              <organization/>
            </author>
            <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>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="I-D.ietf-core-sid" target="https://www.ietf.org/archive/id/draft-ietf-core-sid-18.txt">
          <front>
            <title>YANG Schema Item iDentifier (YANG SID)</title>
            <author fullname="Michel Veillette">
              <organization>Trilliant Networks Inc.</organization>
            </author>
            <author fullname="Alexander Pelov">
              <organization>Acklio</organization>
            </author>
            <author fullname="Ivaylo Petrov">
              <organization>Google Switzerland GmbH</organization>
            </author>
            <author fullname="Carsten Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <author fullname="Michael Richardson">
              <organization>Sandelman Software Works</organization>
            </author>
            <date day="18" month="November" year="2021"/>
            <abstract>
              <t>   YANG Schema Item iDentifiers (YANG SID) are globally unique 63-bit
   unsigned integers used to identify YANG items, as a more compact
   method to identify YANG items that can be used for efficiency and in
   constrained environments (RFC 7228).  This document defines the
   semantics, the registration, and assignment processes of 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="Internet-Draft" value="draft-ietf-core-sid-18"/>
        </reference>
        <reference anchor="RFC7252" target="https://www.rfc-editor.org/info/rfc7252">
          <front>
            <title>The Constrained Application Protocol (CoAP)</title>
            <author fullname="Z. Shelby" initials="Z." surname="Shelby">
              <organization/>
            </author>
            <author fullname="K. Hartke" initials="K." surname="Hartke">
              <organization/>
            </author>
            <author fullname="C. Bormann" initials="C." surname="Bormann">
              <organization/>
            </author>
            <date month="June" year="2014"/>
            <abstract>
              <t>The Constrained Application Protocol (CoAP) is a specialized web transfer protocol for use with constrained nodes and constrained (e.g., low-power, lossy) networks.  The nodes often have 8-bit microcontrollers with small amounts of ROM and RAM, while constrained networks such as IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs) often have high packet error rates and a typical throughput of 10s of kbit/s.  The protocol is designed for machine- to-machine (M2M) applications such as smart energy and building automation.</t>
              <t>CoAP provides a request/response interaction model between application endpoints, supports built-in discovery of services and resources, and includes key concepts of the Web such as URIs and Internet media types.  CoAP is designed to easily interface with HTTP for integration with the Web while meeting specialized requirements such as multicast support, very low overhead, and simplicity for constrained environments.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7252"/>
          <seriesInfo name="DOI" value="10.17487/RFC7252"/>
        </reference>
        <reference anchor="I-D.ietf-core-comi" target="https://www.ietf.org/archive/id/draft-ietf-core-comi-11.txt">
          <front>
            <title>CoAP Management Interface (CORECONF)</title>
            <author fullname="Michel Veillette">
              <organization>Trilliant Networks Inc.</organization>
            </author>
            <author fullname="Peter van der Stok">
              <organization>consultant</organization>
            </author>
            <author fullname="Alexander Pelov">
              <organization>Acklio</organization>
            </author>
            <author fullname="Andy Bierman">
              <organization>YumaWorks</organization>
            </author>
            <author fullname="Ivaylo Petrov">
              <organization>Acklio</organization>
            </author>
            <date day="17" month="January" year="2021"/>
            <abstract>
              <t>   This document describes a network management interface for
   constrained devices and networks, called CoAP Management Interface
   (CORECONF).  The Constrained Application Protocol (CoAP) is used to
   access datastore and data node resources specified in YANG, or SMIv2
   converted to YANG.  CORECONF uses the YANG to CBOR mapping and
   converts YANG identifier strings to numeric identifiers for payload
   size reduction.  CORECONF extends the set of YANG based protocols,
   NETCONF and RESTCONF, with the capability to manage constrained
   devices and networks.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-comi-11"/>
        </reference>
        <reference anchor="RFC6241" target="https://www.rfc-editor.org/info/rfc6241">
          <front>
            <title>Network Configuration Protocol (NETCONF)</title>
            <author fullname="R. Enns" initials="R." role="editor" surname="Enns">
              <organization/>
            </author>
            <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund">
              <organization/>
            </author>
            <author fullname="J. Schoenwaelder" initials="J." role="editor" surname="Schoenwaelder">
              <organization/>
            </author>
            <author fullname="A. Bierman" initials="A." role="editor" surname="Bierman">
              <organization/>
            </author>
            <date month="June" year="2011"/>
            <abstract>
              <t>The Network Configuration Protocol (NETCONF) defined in this document provides mechanisms to install, manipulate, and delete the configuration of network devices.  It uses an Extensible Markup Language (XML)-based data encoding for the configuration data as well as the protocol messages.  The NETCONF protocol operations are realized as remote procedure calls (RPCs).  This document obsoletes RFC 4741.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6241"/>
          <seriesInfo name="DOI" value="10.17487/RFC6241"/>
        </reference>
        <reference anchor="RFC6991" target="https://www.rfc-editor.org/info/rfc6991">
          <front>
            <title>Common YANG Data Types</title>
            <author fullname="J. Schoenwaelder" initials="J." role="editor" surname="Schoenwaelder">
              <organization/>
            </author>
            <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"/>
        </reference>
        <reference anchor="RFC7228" target="https://www.rfc-editor.org/info/rfc7228">
          <front>
            <title>Terminology for Constrained-Node Networks</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann">
              <organization/>
            </author>
            <author fullname="M. Ersue" initials="M." surname="Ersue">
              <organization/>
            </author>
            <author fullname="A. Keranen" initials="A." surname="Keranen">
              <organization/>
            </author>
            <date month="May" year="2014"/>
            <abstract>
              <t>The Internet Protocol Suite is increasingly used on small devices with severe constraints on power, memory, and processing resources, creating constrained-node networks.  This document provides a number of basic terms that have been useful in the standardization work for constrained-node networks.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7228"/>
          <seriesInfo name="DOI" value="10.17487/RFC7228"/>
        </reference>
        <reference anchor="RFC7317" target="https://www.rfc-editor.org/info/rfc7317">
          <front>
            <title>A YANG Data Model for System Management</title>
            <author fullname="A. Bierman" initials="A." surname="Bierman">
              <organization/>
            </author>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund">
              <organization/>
            </author>
            <date month="August" year="2014"/>
            <abstract>
              <t>This document defines a YANG data model for the configuration and identification of some common system properties within a device containing a Network Configuration Protocol (NETCONF) server.  This document also includes data node definitions for system identification, time-of-day management, user management, DNS resolver configuration, and some protocol operations for system management.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7317"/>
          <seriesInfo name="DOI" value="10.17487/RFC7317"/>
        </reference>
        <reference anchor="RFC8343" target="https://www.rfc-editor.org/info/rfc8343">
          <front>
            <title>A YANG Data Model for Interface Management</title>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund">
              <organization/>
            </author>
            <date month="March" year="2018"/>
            <abstract>
              <t>This document defines a YANG data model for the management of network interfaces.  It is expected that interface-type-specific data models augment the generic interfaces data model defined in this document. The data model includes definitions for configuration and system state (status information and counters for the collection of statistics).</t>
              <t>The YANG data model in this document conforms to the Network Management Datastore Architecture (NMDA) defined in RFC 8342.</t>
              <t>This document obsoletes RFC 7223.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8343"/>
          <seriesInfo name="DOI" value="10.17487/RFC8343"/>
        </reference>
        <reference anchor="RFC8344" target="https://www.rfc-editor.org/info/rfc8344">
          <front>
            <title>A YANG Data Model for IP Management</title>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund">
              <organization/>
            </author>
            <date month="March" year="2018"/>
            <abstract>
              <t>This document defines a YANG data model for management of IP implementations.  The data model includes configuration and system state.</t>
              <t>The YANG data model in this document conforms to the Network Management Datastore Architecture defined in RFC 8342.</t>
              <t>This document obsoletes RFC 7277.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8344"/>
          <seriesInfo name="DOI" value="10.17487/RFC8344"/>
        </reference>
      </references>
    </references>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>This document has been largely inspired by the extensive works done by <contact fullname="Andy Bierman"/> and <contact fullname="Peter van der Stok"/> on <xref target="I-D.ietf-core-comi"/>. <xref target="RFC7951"/> has also been a critical input to this work. The authors would like to thank the authors and contributors to these two drafts.</t>
      <t>The authors would also like to acknowledge the review, feedback, and comments from <contact fullname="Ladislav Lhotka"/> and <contact fullname="Jürgen Schönwälder"/>.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
zQQBAA==

-->

</rfc>
