<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.6.27 (Ruby 3.2.1) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-core-comi-12" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.16.0 -->
  <front>
    <title abbrev="CORECONF">CoAP Management Interface (CORECONF)</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-core-comi-12"/>
    <author initials="M. V." 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@trilliant.com</email>
      </address>
    </author>
    <author initials="P." surname="van der Stok" fullname="Peter van der Stok" role="editor">
      <organization abbrev="consultant">consultant</organization>
      <address>
        <phone>+31-492474673 (Netherlands), +33-966015248 (France)</phone>
        <email>stokcons@bbhmail.nl</email>
        <uri>www.vanderstok.org</uri>
      </address>
    </author>
    <author initials="A. P." surname="Pelov" fullname="Alexander Pelov">
      <organization>Acklio</organization>
      <address>
        <postal>
          <street>2bis rue de la Chataigneraie</street>
          <city>Cesson-Sevigne</city>
          <code>35510</code>
          <country>France</country>
        </postal>
        <email>a@ackl.io</email>
      </address>
    </author>
    <author initials="A." surname="Bierman" fullname="Andy Bierman">
      <organization>YumaWorks</organization>
      <address>
        <postal>
          <street>685 Cochran St.</street>
          <street>Suite #160</street>
          <city>Simi Valley</city>
          <region>CA</region>
          <code>93065</code>
          <country>USA</country>
        </postal>
        <email>andy@yumaworks.com</email>
      </address>
    </author>
    <author initials="C." surname="Bormann" fullname="Carsten Bormann" role="editor">
      <organization>Universität Bremen TZI</organization>
      <address>
        <postal>
          <street>Postfach 330440</street>
          <city>Bremen</city>
          <code>D-28359</code>
          <country>Germany</country>
        </postal>
        <phone>+49-421-218-63921</phone>
        <email>cabo@tzi.org</email>
      </address>
    </author>
    <date year="2023" month="March" day="13"/>
    <area>Applications</area>
    <workgroup>CoRE</workgroup>
    <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>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-core-comi/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        core Working Group mailing list (<eref target="mailto:core@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/core/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/core/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/core-wg/comi"/>.</t>
    </note>
  </front>
  <middle>
    <section anchor="introduction">
      <name>Introduction</name>
      <t>The Constrained Application Protocol (CoAP) <xref target="RFC7252"/> is designed for
Machine to Machine (M2M) applications such as smart energy, smart city, and building control.
Constrained devices need to be managed in an automatic fashion to handle
the large quantities of devices that are expected in
future installations. Messages between devices need to be as small and
infrequent as possible. The implementation
complexity and runtime resources need to be as small as possible.</t>
      <t>This draft describes the CoAP Management Interface (CORECONF) which uses CoAP methods
to access structured data defined in YANG <xref target="RFC7950"/>. This draft is
complementary to <xref target="RFC8040"/> which describes a REST-like interface
called RESTCONF, which uses HTTP methods to access structured data
defined in YANG.</t>
      <t>The use of standardized data models specified in a standardized language, such
as YANG, promotes interoperability between devices and applications from
different manufacturers.</t>
      <t>CORECONF and RESTCONF are intended to work in a stateless client-server fashion.
They use a single round-trip to complete a single editing transaction, where
NETCONF needs multiple round trips.</t>
      <t>To promote small messages, CORECONF uses a YANG to CBOR mapping
<xref target="RFC9254"/> and numeric identifiers <xref target="I-D.ietf-core-sid"/>
to minimize CBOR payloads and URI length.</t>
      <section anchor="terminology">
        <name>Terminology</name>
        <t>The following terms are defined in the YANG data modeling language <xref target="RFC7950"/>: action, anydata, anyxml, client, container, data model, data node, identity, instance identifier, leaf, leaf-list, list, module, RPC, schema node, server, submodule.</t>
        <t>The following terms are defined in <xref target="RFC6241"/>: configuration data, datastore, state data.</t>
        <t>The following term is defined in <xref target="I-D.ietf-core-sid"/>: YANG schema item identifier (YANG SID, often shortened to simply SID).</t>
        <t>The following terms are defined in the CoAP protocol <xref target="RFC7252"/>: Confirmable Message, Content-Format, Endpoint.</t>
        <t>The following terms are defined in this document:</t>
        <dl>
          <dt>data node resource:</dt>
          <dd>
            <t>a CoAP resource that models a YANG data node.</t>
          </dd>
          <dt>datastore resource:</dt>
          <dd>
            <t>a CoAP resource that models a YANG datastore.</t>
          </dd>
          <dt>event stream resource:</dt>
          <dd>
            <t>a CoAP resource used by clients to observe YANG notifications.</t>
          </dd>
          <dt>notification instance:</dt>
          <dd>
            <t>An instance of a schema node of type notification, specified in a YANG module
implemented by the server. The instance is generated in the server at the occurrence
of the corresponding event and reported by an event stream resource.</t>
          </dd>
          <dt>list instance identifier:</dt>
          <dd>
            <t>Handle used to identify a YANG data node that is an instance of a YANG "list",
specified with the values of the key leaves of the list.</t>
          </dd>
          <dt>single instance identifier:</dt>
          <dd>
            <t>Handle used to identify a specific data node which can be instantiated only
once. This includes data nodes defined at the root of a YANG module and
data nodes defined within a container. This excludes data nodes defined
within a list or any children of these data nodes.</t>
          </dd>
          <dt>instance-identifier:</dt>
          <dd>
            <t>List instance identifier or single instance identifier.</t>
          </dd>
          <dt>instance-value:</dt>
          <dd>
            <t>The value assigned to a data node instance. Instance-values are serialized into
the payload according to the rules defined in <xref section="4" sectionFormat="of" target="RFC9254"/>.</t>
          </dd>
        </dl>
        <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      </section>
    </section>
    <section anchor="comi-architecture">
      <name>CORECONF Architecture</name>
      <t>This section describes the CORECONF architecture to use CoAP for reading and
modifying the content of datastore(s) used for the management of the instrumented
node.</t>
      <figure anchor="archit">
        <name>Abstract CORECONF architecture</name>
        <artset>
          <artwork type="svg" align="left"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="384" width="536" viewBox="0 0 536 384" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px">
              <path d="M 8,32 L 8,64" fill="none" stroke="black"/>
              <path d="M 8,112 L 8,144" fill="none" stroke="black"/>
              <path d="M 8,192 L 8,272" fill="none" stroke="black"/>
              <path d="M 80,144 L 80,184" fill="none" stroke="black"/>
              <path d="M 128,192 L 128,272" fill="none" stroke="black"/>
              <path d="M 256,64 L 256,104" fill="none" stroke="black"/>
              <path d="M 320,192 L 320,368" fill="none" stroke="black"/>
              <path d="M 336,256 L 336,288" fill="none" stroke="black"/>
              <path d="M 336,320 L 336,352" fill="none" stroke="black"/>
              <path d="M 440,144 L 440,184" fill="none" stroke="black"/>
              <path d="M 512,256 L 512,288" fill="none" stroke="black"/>
              <path d="M 512,320 L 512,352" fill="none" stroke="black"/>
              <path d="M 528,32 L 528,64" fill="none" stroke="black"/>
              <path d="M 528,112 L 528,144" fill="none" stroke="black"/>
              <path d="M 528,192 L 528,368" fill="none" stroke="black"/>
              <path d="M 8,32 L 528,32" fill="none" stroke="black"/>
              <path d="M 8,64 L 528,64" fill="none" stroke="black"/>
              <path d="M 8,112 L 528,112" fill="none" stroke="black"/>
              <path d="M 8,144 L 528,144" fill="none" stroke="black"/>
              <path d="M 8,192 L 128,192" fill="none" stroke="black"/>
              <path d="M 320,192 L 528,192" fill="none" stroke="black"/>
              <path d="M 128,208 L 152,208" fill="none" stroke="black"/>
              <path d="M 296,208 L 312,208" fill="none" stroke="black"/>
              <path d="M 136,224 L 152,224" fill="none" stroke="black"/>
              <path d="M 296,224 L 320,224" fill="none" stroke="black"/>
              <path d="M 136,254 L 168,254" fill="none" stroke="black"/>
              <path d="M 136,258 L 168,258" fill="none" stroke="black"/>
              <path d="M 288,254 L 312,254" fill="none" stroke="black"/>
              <path d="M 288,258 L 312,258" fill="none" stroke="black"/>
              <path d="M 336,256 L 512,256" fill="none" stroke="black"/>
              <path d="M 8,272 L 128,272" fill="none" stroke="black"/>
              <path d="M 336,288 L 512,288" fill="none" stroke="black"/>
              <path d="M 336,320 L 512,320" fill="none" stroke="black"/>
              <path d="M 336,352 L 512,352" fill="none" stroke="black"/>
              <path d="M 320,368 L 528,368" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="448,184 436,178.4 436,189.6 " fill="black" transform="rotate(90,440,184)"/>
              <polygon class="arrowhead" points="320,256 308,250.4 308,261.6 " fill="black" transform="rotate(0,312,256)"/>
              <polygon class="arrowhead" points="320,208 308,202.4 308,213.6 " fill="black" transform="rotate(0,312,208)"/>
              <polygon class="arrowhead" points="304,224 292,218.4 292,229.6 " fill="black" transform="rotate(180,296,224)"/>
              <polygon class="arrowhead" points="264,104 252,98.4 252,109.6 " fill="black" transform="rotate(90,256,104)"/>
              <polygon class="arrowhead" points="160,208 148,202.4 148,213.6 " fill="black" transform="rotate(0,152,208)"/>
              <polygon class="arrowhead" points="144,256 132,250.4 132,261.6 " fill="black" transform="rotate(180,136,256)"/>
              <polygon class="arrowhead" points="144,224 132,218.4 132,229.6 " fill="black" transform="rotate(180,136,224)"/>
              <polygon class="arrowhead" points="88,184 76,178.4 76,189.6 " fill="black" transform="rotate(90,80,184)"/>
              <g class="text">
                <text x="160" y="52">SMIv2</text>
                <text x="240" y="52">specification</text>
                <text x="340" y="52">(optional)</text>
                <text x="400" y="52">(2)</text>
                <text x="196" y="132">YANG</text>
                <text x="272" y="132">specification</text>
                <text x="352" y="132">(1)</text>
                <text x="36" y="180">Client</text>
                <text x="348" y="180">Server</text>
                <text x="88" y="212">Request</text>
                <text x="180" y="212">CoAP</text>
                <text x="244" y="212">request(3)</text>
                <text x="380" y="212">Indication</text>
                <text x="88" y="228">Confirm</text>
                <text x="180" y="228">CoAP</text>
                <text x="248" y="228">response(3)</text>
                <text x="372" y="228">Response</text>
                <text x="488" y="228">(4)</text>
                <text x="212" y="260">Security</text>
                <text x="264" y="260">(7)</text>
                <text x="396" y="276">Datastore(s)</text>
                <text x="488" y="276">(5)</text>
                <text x="368" y="340">Event</text>
                <text x="432" y="340">stream(s)</text>
                <text x="488" y="340">(6)</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art" align="left"><![CDATA[
+----------------------------------------------------------------+
|                SMIv2 specification (optional) (2)              |
+------------------------------+---------------------------------+
                               |
                               v
+----------------------------------------------------------------+
|                     YANG specification  (1)                    |
+--------+--------------------------------------------+----------+
         |                                            |
 Client  v                              Server        v
+--------------+                       +-------------------------+
|      Request +--> CoAP request(3) -->|  Indication             |
|      Confirm |<-- CoAP response(3)<--+  Response         (4)   |
|              |                       |                         |
|              |<==== Security (7) ===>| +---------------------+ |
+--------------+                       | | Datastore(s)    (5) | |
                                       | +---------------------+ |
                                       |                         |
                                       | +---------------------+ |
                                       | | Event stream(s) (6) | |
                                       | +---------------------+ |
                                       +-------------------------+
]]></artwork>
        </artset>
      </figure>
      <t><xref target="archit"/> is a high-level representation of the main elements of the CORECONF management
architecture. The different numbered components of <xref target="archit"/> are discussed according to the component number.</t>
      <dl>
        <dt>(1) YANG specification:</dt>
        <dd>
          <t>contains a set of named and versioned modules.</t>
        </dd>
        <dt>(2) SMIv2 specification:</dt>
        <dd>
          <t>Optional part that consists of a named module which, specifies a set of variables and "conceptual tables". There
is an algorithm to translate SMIv2 specifications to YANG specifications.</t>
        </dd>
        <dt>(3) CoAP request/response messages:</dt>
        <dd>
          <t>The CORECONF client sends request messages to and receives response messages
from the CORECONF server.</t>
        </dd>
        <dt>(4) Request, Indication, Response, Confirm:</dt>
        <dd>
          <t>Processes performed by the CORECONF clients and servers.</t>
        </dd>
        <dt>(5) Datastore:</dt>
        <dd>
          <t>A resource used to access configuration data, state data, RPCs, and actions. A CORECONF server may support a single unified datastore or multiple datastores as those defined by Network Management Datastore Architecture (NMDA) <xref target="RFC8342"/>.</t>
        </dd>
        <dt>(6) Event stream:</dt>
        <dd>
          <t>A resource used to get real-time notifications. A CORECONF server may support multiple Event streams serving different purposes such as normal monitoring, diagnostic, syslog, security monitoring.</t>
        </dd>
        <dt>(7) Security:</dt>
        <dd>
          <t>The server <bcp14>MUST</bcp14> prevent unauthorized users from reading or writing any CORECONF
resources. CORECONF relies on security protocols such as DTLS <xref target="RFC6347"/><xref target="RFC9147"/> or OSCORE <xref target="RFC8613"/> to secure CoAP communications.</t>
        </dd>
      </dl>
      <section anchor="major-differences">
        <name>Major differences between RESTCONF and CORECONF</name>
        <t>CORECONF is a RESTful protocol for small devices where saving bytes to
transport a message is very important. Contrary to RESTCONF, many design
decisions are motivated by the
saving of bytes. Consequently, CORECONF is not a RESTCONF over CoAP protocol,
but differs more significantly from RESTCONF.</t>
        <section anchor="major-differences-coap">
          <name>Differences due to CoAP and its efficient usage</name>
          <ul spacing="normal">
            <li>CORECONF uses CoAP/UDP as transport protocol and CBOR as payload format
<xref target="RFC9254"/>. RESTCONF uses HTTP/TCP as transport
protocol and JSON or XML as payload formats.</li>
            <li>CORECONF uses the methods FETCH and iPATCH to access multiple data nodes.
RESTCONF uses instead the HTTP method PATCH and the HTTP method GET with the "fields" Query parameter.</li>
            <li>RESTCONF uses the HTTP methods HEAD, and OPTIONS, which are not supported by CoAP.</li>
            <li>CORECONF does not support "insert" query parameter (first, last, before, after)
and the "point" query parameter which are supported by RESTCONF.</li>
            <li>CORECONF does not support the "start-time" and "stop-time" query parameters
to retrieve past notifications.</li>
          </ul>
        </section>
        <section anchor="major-differences-cbor">
          <name>Differences due to the use of CBOR</name>
          <ul spacing="normal">
            <li>CORECONF encodes YANG identifier strings as numbers, where RESTCONF does not.</li>
            <li>CORECONF also differs in the handling of default values, only 'report-all' and 'trim' options are supported.</li>
          </ul>
        </section>
      </section>
      <section anchor="id-compression">
        <name>Compression of YANG identifiers</name>
        <t>In the YANG specification, items are identified with a name string. In order
to significantly reduce the size of identifiers used in CORECONF, numeric
 identifiers called YANG Schema Item iDentifier (YANG SID or simply SID) are used instead.</t>
        <t>When used in a URI, SIDs are encoded using base64 encoding of the SID bytes. The base64 encoding is using the URL and Filename safe
alphabet as defined by <xref section="5" sectionFormat="of" target="RFC4648"/>, without padding. The last 6 bits encoded is always aligned
with the least significant 6 bits of the SID represented using an unsigned integer.
'A' characters (which are essentially leading zeros) at the start of the resulting string are removed. See <xref target="Fig-sid-encoding"/> for complete illustration.
(Note that the last paragraph of <xref section="3.2" sectionFormat="of" target="RFC9254"/> ensures that SID values being
interchanged never can be zero, so at least one base64 "digit" will
always remain.)</t>
        <figure anchor="Fig-sid-encoding">
          <artwork align="left"><![CDATA[
SID in base64 = URLsafeChar[SID >> 60 & 0x3F] |
                URLsafeChar[SID >> 54 & 0x3F] |
                URLsafeChar[SID >> 48 & 0x3F] |
                URLsafeChar[SID >> 42 & 0x3F] |
                URLsafeChar[SID >> 36 & 0x3F] |
                URLsafeChar[SID >> 30 & 0x3F] |
                URLsafeChar[SID >> 24 & 0x3F] |
                URLsafeChar[SID >> 18 & 0x3F] |
                URLsafeChar[SID >> 12 & 0x3F] |
                URLsafeChar[SID >> 6 & 0x3F]  |
                URLsafeChar[SID & 0x3F]
]]></artwork>
        </figure>
        <t>For example, SID 1721 is encoded as follows.</t>
        <artwork align="left"><![CDATA[
URLsafeChar[1721 >> 60 & 0x3F] = URLsafeChar[0] = 'A'
URLsafeChar[1721 >> 54 & 0x3F] = URLsafeChar[0] = 'A'
URLsafeChar[1721 >> 48 & 0x3F] = URLsafeChar[0] = 'A'
URLsafeChar[1721 >> 42 & 0x3F] = URLsafeChar[0] = 'A'
URLsafeChar[1721 >> 36 & 0x3F] = URLsafeChar[0] = 'A'
URLsafeChar[1721 >> 30 & 0x3F] = URLsafeChar[0] = 'A'
URLsafeChar[1721 >> 24 & 0x3F] = URLsafeChar[0] = 'A'
URLsafeChar[1721 >> 18 & 0x3F] = URLsafeChar[0] = 'A'
URLsafeChar[1721 >> 12 & 0x3F] = URLsafeChar[0] = 'A'
URLsafeChar[1721 >> 6 & 0x3F]  = URLsafeChar[26] = 'a'
URLsafeChar[1721 & 0x3F]       = URLsafeChar[57] = '5'
]]></artwork>
        <t>The resulting base64 representation of SID 1721 is the two-character string "a5".</t>
      </section>
      <section anchor="instance-identifier">
        <name>Instance-identifier</name>
        <t>Instance-identifiers are used to uniquely identify data node instances within a datastore. This YANG built-in type is defined in <xref section="9.13" sectionFormat="of" target="RFC7950"/>. An instance-identifier is composed of the data node identifier (i.e. a SID) and, for data nodes within list(s), the keys used to index within these list(s).</t>
        <t>When part of a payload, instance-identifiers are encoded in CBOR
based on the rules defined in <xref section="6.13.1" sectionFormat="of" target="RFC9254"/>.
When a (single) instance identifier is part of a URI, the SID is
appended as another URI Path component to the URI of the targeted
datastore; any keys (further elements of the array specified in
<xref section="6.13.1" sectionFormat="of" target="RFC9254"/>) are represented using a query
parameter as defined in <xref target="query"/>.
<cref anchor="simpler">It would be even simpler to just put the entire 6.13.1
encoding of an instance identifier, base64url-encoded, into a path
component of the URI.  This would allow FETCH and GET
implementations to share almost all of the code.  It also would
get rid of the <xref target="id-compression"/> innovation.  It would make less
obvious which SID is being addressed by a GET during debugging,
just as with a FETCH.</cref></t>
      </section>
      <section anchor="media-type">
        <name>Media-Types</name>
        <t>CORECONF uses Media-Types based on the YANG to CBOR mapping specified
in <xref target="RFC9254"/>.</t>
        <t>The following Media-Type is used as defined in <xref target="I-D.ietf-core-sid"/>.</t>
        <ul spacing="normal">
          <li>application/yang-data+cbor; id=sid</li>
        </ul>
        <t>The following new Media-Types based on CBOR sequences <xref target="RFC8742"/> are defined in this document:</t>
        <dl>
          <dt>application/yang-identifiers+cbor:</dt>
          <dd>
            <t>This Media-Type represents a CBOR YANG document containing a list of instance-identifiers used to target specific data node instances within a datastore.</t>
          </dd>
          <dt/>
          <dd>
            <t>FORMAT: CBOR sequence of instance-identifiers</t>
          </dd>
          <dt/>
          <dd>
            <t>The message payload of Media-Type 'application/yang-identifiers+cbor' is encoded using a CBOR sequence.
Each item of this CBOR sequence contains an instance-identifier encoded as defined in <xref section="6.13.1" sectionFormat="of" target="RFC9254"/>.</t>
          </dd>
          <dt>application/yang-instances+cbor:</dt>
          <dd>
            <t>This Media-Type represents a CBOR YANG document containing a list of data node instances.
Each data node instance is identified by its associated instance-identifier.</t>
          </dd>
          <dt/>
          <dd>
            <t>FORMAT: CBOR sequence of CBOR maps of instance-identifier, instance-value</t>
          </dd>
          <dt/>
          <dd>
            <t>The message payload of Media-Type 'application/yang-instances+cbor' is encoded using a CBOR sequence.
Each item within this CBOR sequence contains a CBOR map carrying an instance-identifier and associated instance-value.
Instance-identifiers are encoded using the rules defined in <xref section="6.13.1" sectionFormat="of" target="RFC9254"/>, instance-values are encoded using the rules defined in <xref section="4" sectionFormat="of" target="RFC9254"/>.</t>
          </dd>
          <dt/>
          <dd>
            <t>When present in an iPATCH request payload, this Media-Type carry a list of data node instances to be replaced, created, or deleted.
For each data node instance D, for which the instance-identifier is the same as a data node instance I, in the targeted datastore resource: the value of D replaces the value of I.  When the value of D is null, the data node instance I is removed.  When the targeted datastore resource does not contain a data node instance with the same instance-identifier as D, a new instance is created with the same instance-identifier and value as D.</t>
          </dd>
        </dl>
        <t>The different Media-Type usages are summarized in the table below:</t>
        <table align="left">
          <thead>
            <tr>
              <th align="left">Method</th>
              <th align="left">Resource</th>
              <th align="left">Media-Type</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">GET response</td>
              <td align="left">data node</td>
              <td align="left">application/yang-data+cbor; id=sid</td>
            </tr>
            <tr>
              <td align="left">PUT request</td>
              <td align="left">data node</td>
              <td align="left">application/yang-data+cbor; id=sid</td>
            </tr>
            <tr>
              <td align="left">POST request</td>
              <td align="left">data node</td>
              <td align="left">application/yang-data+cbor; id=sid</td>
            </tr>
            <tr>
              <td align="left">DELETE</td>
              <td align="left">data node</td>
              <td align="left">n/a</td>
            </tr>
            <tr>
              <td align="left">GET response</td>
              <td align="left">datastore</td>
              <td align="left">application/yang-data+cbor; id=sid</td>
            </tr>
            <tr>
              <td align="left">PUT request</td>
              <td align="left">datastore</td>
              <td align="left">application/yang-data+cbor; id=sid</td>
            </tr>
            <tr>
              <td align="left">POST request</td>
              <td align="left">datastore</td>
              <td align="left">application/yang-data+cbor; id=sid</td>
            </tr>
            <tr>
              <td align="left">FETCH request</td>
              <td align="left">datastore</td>
              <td align="left">application/yang-identifiers+cbor</td>
            </tr>
            <tr>
              <td align="left">FETCH response</td>
              <td align="left">datastore</td>
              <td align="left">application/yang-instances+cbor</td>
            </tr>
            <tr>
              <td align="left">iPATCH request</td>
              <td align="left">datastore</td>
              <td align="left">application/yang-instances+cbor</td>
            </tr>
            <tr>
              <td align="left">GET response</td>
              <td align="left">event stream</td>
              <td align="left">application/yang-instances+cbor</td>
            </tr>
            <tr>
              <td align="left">POST request</td>
              <td align="left">rpc, action</td>
              <td align="left">application/yang-data+cbor; id=sid</td>
            </tr>
            <tr>
              <td align="left">POST response</td>
              <td align="left">rpc, action</td>
              <td align="left">application/yang-data+cbor; id=sid</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="unified-datastore">
        <name>Unified datastore</name>
        <t>CORECONF supports a simple datastore model consisting of a single unified datastore. This datastore provides access to both configuration and operational data. Configuration updates performed on this datastore are reflected immediately or with a minimal delay as operational data.</t>
        <t>Alternatively, CORECONF servers <bcp14>MAY</bcp14> implement a more complex datastore model such as the Network Management Datastore Architecture (NMDA) as defined by <xref target="RFC8342"/>. Each datastore supported is implemented as a datastore resource.</t>
        <t>Characteristics of the unified datastore are summarized in the table below:</t>
        <table align="left">
          <thead>
            <tr>
              <th align="left">Name</th>
              <th align="left">Value</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">Name</td>
              <td align="left">unified</td>
            </tr>
            <tr>
              <td align="left">YANG modules</td>
              <td align="left">all modules</td>
            </tr>
            <tr>
              <td align="left">YANG nodes</td>
              <td align="left">all data nodes ("config true" and "config false")</td>
            </tr>
            <tr>
              <td align="left">Access</td>
              <td align="left">read-write</td>
            </tr>
            <tr>
              <td align="left">How applied</td>
              <td align="left">changes applied in place immediately or with a minimal delay</td>
            </tr>
            <tr>
              <td align="left">Protocols</td>
              <td align="left">CORECONF</td>
            </tr>
            <tr>
              <td align="left">Defined in</td>
              <td align="left">"ietf-coreconf"</td>
            </tr>
          </tbody>
        </table>
      </section>
    </section>
    <section anchor="example-syntax">
      <name>Example syntax</name>
      <t>CBOR is used to encode CORECONF request and response payloads. The CBOR syntax
of the YANG payloads is specified in <xref target="RFC9254"/>, based on <xref target="RFC8949"/>
and <xref target="RFC8742"/>.
The payload examples are
notated in Diagnostic notation (defined in <xref section="8" sectionFormat="of" target="RFC8949"/>) that
can be automatically converted to CBOR.</t>
      <t>SIDs in URIs are represented as a base64 number, SIDs in the payload are
shown as decimal numbers.</t>
    </section>
    <section anchor="coap-interface">
      <name>CoAP Interface</name>
      <t>This document specifies a Management Interface. CoAP endpoints that
implement the CORECONF management protocol, support
at least one discoverable management resource of resource type (rt): core.c.ds.
The path of the discoverable management resource is left to implementers to
select (see <xref target="discovery"/>).</t>
      <t>The mapping of YANG data node instances to CORECONF resources is as follows.
Every data node of the YANG modules loaded in the CORECONF server represents
a sub-resource of the datastore resource (e.g. <tt>/c/YANGSID</tt>).
When multiple instances of a list exist, instance selection is possible
as described in <xref target="query"/>, <xref target="get-example"/>, and <xref target="fetch"/>.</t>
      <t>CORECONF also supports event stream resources used to observe notification instances.
Event stream resources can be discovered using resource type (rt): core.c.ev.</t>
      <t>The description of the CORECONF management interface is shown in the table below:</t>
      <table align="left">
        <thead>
          <tr>
            <th align="left">CoAP resource</th>
            <th align="left">Example path</th>
            <th align="left">rt</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">Datastore resource</td>
            <td align="left">/c</td>
            <td align="left">core.c.ds</td>
          </tr>
          <tr>
            <td align="left">Data node resource</td>
            <td align="left">/c/YANGSID</td>
            <td align="left">core.c.dn</td>
          </tr>
          <tr>
            <td align="left">Default event steam resource</td>
            <td align="left">/s</td>
            <td align="left">core.c.ev</td>
          </tr>
        </tbody>
      </table>
      <t>The path values in the table are example ones. On discovery, the server makes
the actual path values known for these resources.</t>
      <t>The methods used by CORECONF are:</t>
      <table align="left">
        <thead>
          <tr>
            <th align="left">Operation</th>
            <th align="left">Description</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">GET</td>
            <td align="left">Retrieve the datastore resource or a data node resource</td>
          </tr>
          <tr>
            <td align="left">FETCH</td>
            <td align="left">Retrieve specific data nodes within a datastore resource</td>
          </tr>
          <tr>
            <td align="left">POST</td>
            <td align="left">Create a datastore resource or a data node resource, invoke an RPC or action</td>
          </tr>
          <tr>
            <td align="left">PUT</td>
            <td align="left">Create or replace a datastore resource or a data node resource</td>
          </tr>
          <tr>
            <td align="left">iPATCH</td>
            <td align="left">Idempotently create, replace, and delete data node resource(s) within a datastore resource</td>
          </tr>
          <tr>
            <td align="left">DELETE</td>
            <td align="left">Delete a datastore resource or a data node resource</td>
          </tr>
        </tbody>
      </table>
      <t>There is at most one instance of the query parameter for instance
identifier keys <xref target="query"/> for YANG list element
selection for the GET, PUT, POST, and DELETE methods. Having multiple instances
of that query parameter shall be treated as an error.</t>
      <table align="left">
        <thead>
          <tr>
            <th align="left">Query parameter</th>
            <th align="left">Description</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">k</td>
            <td align="left">Select an instance within YANG list(s)</td>
          </tr>
        </tbody>
      </table>
      <t>This parameter is not used for FETCH and iPATCH, because their request payloads
support list instance selection.</t>
      <section anchor="query">
        <name>Using a query parameter for instance identifier keys</name>
        <t>A query parameter in a URI that does not contain an equals sign
specifies a specific instance of a data node.
The SID in the URI path is followed by a question mark and the query
parameter, which is built from the values of the key leaves that specify
an instance. Lists can have multiple keys, and lists can be part
of lists. The order of key value generation is given recursively by:</t>
        <ul spacing="normal">
          <li>For a given list, if a parent data node is a list, generate the keys for the parent list first.</li>
          <li>For a given list, generate key values in the order specified in the YANG module.</li>
        </ul>
        <t>Key values are first encoded as a CBOR sequence <xref target="RFC8742"/>, taking the
items defined as array elements for the "following" elements as per
the rules of encoding the instance identifier <xref section="6.13.1" sectionFormat="of" target="RFC9254"/>.
<cref anchor="simpler_1">It would be even simpler to just put the entire 6.13.1
encoding of an instance identifier, base64url-encoded, into a path
component of the URI.  This would allow FETCH and GET
implementations to share almost all of the code.  It also would
get rid of the <xref target="id-compression"/> innovation.  It would make less
obvious which SID is being addressed by a GET during debugging,
just as with a FETCH.</cref>
The CBOR sequence is then base64-encoded, using the URL and Filename
safe alphabet as defined by <xref section="5" sectionFormat="of" target="RFC4648"/>, without padding
(base64url encoding).
The encoder <bcp14>MUST</bcp14> ensure, and the decoder <bcp14>MUST</bcp14> check, that any unused
bits in the last character of that encoding are zero, as per the
third sentence of the paragraph after Table 1 in <xref section="4" sectionFormat="of" target="RFC4648"/>.</t>
      </section>
      <section anchor="data-retrieval">
        <name>Data Retrieval</name>
        <t>One or more data nodes can be retrieved by the client.
The operation is mapped to the GET method defined in
<xref section="5.8.1" sectionFormat="of" target="RFC7252"/> and to the FETCH method defined in <xref section="2" sectionFormat="of" target="RFC8132"/>.</t>
        <t>There are two additional query parameters for the GET and FETCH methods.</t>
        <table align="left">
          <thead>
            <tr>
              <th align="left">query parameters</th>
              <th align="left">Description</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">c</td>
              <td align="left">Control selection of configuration and non-configuration data nodes (GET and FETCH)</td>
            </tr>
            <tr>
              <td align="left">d</td>
              <td align="left">Control retrieval of default values.</td>
            </tr>
          </tbody>
        </table>
        <section anchor="content">
          <name>Using the 'c' query parameter</name>
          <t>The 'c' (content) option controls how descendant nodes of the
requested data nodes will be processed in the reply.</t>
          <t>The allowed values are:</t>
          <table align="left">
            <thead>
              <tr>
                <th align="left">Value</th>
                <th align="left">Description</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">c</td>
                <td align="left">Return only configuration descendant data nodes</td>
              </tr>
              <tr>
                <td align="left">n</td>
                <td align="left">Return only non-configuration descendant data nodes</td>
              </tr>
              <tr>
                <td align="left">a</td>
                <td align="left">Return all descendant data nodes</td>
              </tr>
            </tbody>
          </table>
          <t>This option is only allowed for GET and FETCH methods on datastore and
data node resources.  A 4.02 (Bad Option) error is returned if used for other
methods or resource types.</t>
          <t>If this query parameter is not present, the default value is "a" (the quotes
are added for readability, but they are not part of the payload).</t>
        </section>
        <section anchor="dquery">
          <name>Using the 'd' query parameter</name>
          <t>The 'd' (with-defaults) option controls how the default values of the
descendant nodes of the requested data nodes will be processed.</t>
          <t>The allowed values are:</t>
          <table align="left">
            <thead>
              <tr>
                <th align="left">Value</th>
                <th align="left">Description</th>
              </tr>
            </thead>
            <tbody>
              <tr>
                <td align="left">a</td>
                <td align="left">All data nodes are reported. Defined as 'report-all' in <xref section="3.1" sectionFormat="of" target="RFC6243"/>.</td>
              </tr>
              <tr>
                <td align="left">t</td>
                <td align="left">Data nodes set to the YANG default are not reported. Defined as 'trim' in <xref section="3.2" sectionFormat="of" target="RFC6243"/>.</td>
              </tr>
            </tbody>
          </table>
          <t>If the target of a GET or FETCH method is a data node that represents a leaf
that has a default value, and the leaf has not been given a value by any
client yet, the server <bcp14>MUST</bcp14> return the default value of the leaf.</t>
          <t>If the target of a GET method is a data node that represents a
container or list that has child resources with default values,
and these have not been given a value yet,</t>
          <ul empty="true">
            <li>
              <t>The server <bcp14>MUST NOT</bcp14> return the child resource if d=t</t>
            </li>
          </ul>
          <ul empty="true">
            <li>
              <t>The server <bcp14>MUST</bcp14> return the child resource if d=a.</t>
            </li>
          </ul>
          <t>If this query parameter is not present, the default value is "t" (the quotes are
added for readability, but they are not part of the payload).</t>
        </section>
        <section anchor="get-operation">
          <name>GET</name>
          <t>A request to read the value of a data node instance is sent with a
CoAP GET message. The URI is set to the data node resource requested,
the query parameter for instance identifier keys <xref target="query"/> is added if any of the parents of the requested data node
is a list node.</t>
          <artwork align="left"><![CDATA[
FORMAT:
  GET <data node resource> [Uri-Query option]

  2.05 Content (Content-Format: application/yang-data+cbor; id=sid)
  CBOR map of SID, instance-value
]]></artwork>
          <t>The returned payload contains the CBOR encoding of the requested instance-value.</t>
          <section anchor="get-example">
            <name>GET Examples</name>
            <t>Using, for example, the current-datetime leaf from module ietf-system <xref target="RFC7317"/>, a request is sent to
retrieve the value of 'system-state/clock/current-datetime'.
The SID of 'system-state/clock/current-datetime' is 1723, encoded in base64 according to <xref target="id-compression"/>,
yields a7. The response to the request returns the CBOR map with the key set to the SID of the requested
data node (i.e. 1723) and the value encoded using a 'text string' as defined in <xref section="4" sectionFormat="of" target="RFC9254"/>. The datastore resource path /c is an example location discovered with a request similar to <xref target="discovery-ex-ds"/>.</t>
            <artwork align="left"><![CDATA[
REQ: GET </c/a7>

RES: 2.05 Content
     (Content-Format: application/yang-data+cbor; id=sid)
{
  1723 : "2014-10-26T12:16:31Z"
}
]]></artwork>
            <t>The next example represents the retrieval of a YANG container. In this
case, the CORECONF client performs a GET request on the clock container
(SID = 1721; base64: a5). The container returned is encoded using a
CBOR map as specified by <xref section="4.2" sectionFormat="of" target="RFC9254"/>.</t>
            <figure anchor="Fig-get-system-current-datetime">
              <artwork align="left"><![CDATA[
REQ: GET </c/a5>

RES: 2.05 Content
     (Content-Format: application/yang-data+cbor; id=sid)
{
  1721 : {
    2 : "2014-10-26T12:16:51Z",    / current-datetime (SID 1723) /
    1 : "2014-10-21T03:00:00Z"     / boot-datetime (SID 1722) /
  }
}
]]></artwork>
            </figure>
            <t>This example shows the retrieval of the /interfaces/interface YANG list
accessed using SID 1533 (base64: X9). The return payload is encoded
employing a CBOR array as specified by <xref section="4.4.1" sectionFormat="of" target="RFC9254"/>
containing 2 list entries.</t>
            <artwork align="left"><![CDATA[
REQ: GET </c/X9>

RES: 2.05 Content
     (Content-Format: application/yang-data+cbor; id=sid)
{
  1533 : [
    {
      4 : "eth0",                 / name  (SID 1537) /
      1 : "Ethernet adaptor",     / description (SID 1534) /
      5 : 1880,                   / type, (SID 1538) identity /
                                  / ethernetCsmacd (SID 1880) /
      2 : true                    / enabled (SID 1535) /
    },
    {
      4 : "eth1",                 / name (SID 1537) /
      1 : "Ethernet adaptor",     / description (SID 1534) /
      5 : 1880,                   / type, (SID 1538) identity /
                                  / ethernetCsmacd (SID 1880) /
      2 : false                   / enabled (SID 1535) /
    }
  ]
}
]]></artwork>
            <t>To retrieve a specific entry within the /interfaces/interface YANG list,
the CORECONF client adds the key of the targeted instance in its CoAP request
using the query parameter for instance identifier keys <xref target="query"/>. The return payload containing the instance requested
is encoded using a CBOR array as specified by <xref section="4.4.1" sectionFormat="of" target="RFC9254"/> containing the requested entry.</t>
            <artwork align="left"><![CDATA[
REQ: GET </c/X9?ZGV0aDA>        [1533, "eth0"]

RES: 2.05 Content
     (Content-Format: application/yang-data+cbor; id=sid)
{
  1533 : [
    {
      4 : "eth0",                 / name  (SID 1537) /
      1 : "Ethernet adaptor",     / description (SID 1534) /
      5 : 1880,                   / type, (SID 1538) identity /
                                  / ethernetCsmacd (SID 1880) /
      2 : true                    / enabled (SID 1535) /
    }
  ]
}
]]></artwork>
            <t>It is equally possible to select a leaf of a specific entry of a list.
The example below requests the description leaf (SID 1534, base64: X-)
within the interface list corresponding to the interface name "eth0".
The returned value is encoded in CBOR based on the rules
specified by <xref section="6.4" sectionFormat="of" target="RFC9254"/>.</t>
            <artwork align="left"><![CDATA[
REQ: GET </c/X-?ZGV0aDA>        [1534, "eth0"]

RES: 2.05 Content
     (Content-Format: application/yang-data+cbor; id=sid)
{
  1534 : "Ethernet adaptor"
}
]]></artwork>
          </section>
        </section>
        <section anchor="fetch">
          <name>FETCH</name>
          <t>The FETCH is used to retrieve multiple instance-values.
The FETCH request payload contains the list of instance-identifiers of the data node instances requested.</t>
          <t>The return response payload contains a list of data node instance-values in the same order as requested.
A CBOR null is returned for each data node requested by the client, not supported by the server or not currently instantiated.</t>
          <t>For compactness, indexes of the list instance identifiers returned by the FETCH response <bcp14>SHOULD</bcp14> be elided, only the SID is provided.
This approach may also help reducing implementation complexity since the format of each entry within the CBOR sequence of the FETCH response is identical to the format of the corresponding GET response.</t>
          <artwork align="left"><![CDATA[
FORMAT:
  FETCH <datastore resource>
        (Content-Format: application/yang-identifiers+cbor)
  CBOR sequence of instance-identifiers

  2.05 Content (Content-Format: application/yang-instances+cbor)
  CBOR sequence of CBOR maps of SID, instance-value
]]></artwork>
          <section anchor="fetch-example">
            <name>FETCH examples</name>
            <t>This example uses the current-datetime leaf from module ietf-system <xref target="RFC7317"/>
and the interface list from module ietf-interfaces <xref target="RFC8343"/>.
In this example the value of current-datetime (SID 1723) and the interface
list (SID 1533) instance identified with name="eth0" are queried.</t>
            <artwork align="left"><![CDATA[
REQ: FETCH </c>
     (Content-Format: application/yang-identifiers+cbor)
1723,            / current-datetime (SID 1723) /
[1533, "eth0"]   / interface (SID 1533) with name = "eth0" /

RES: 2.05 Content (Content-Format: application/yang-instances+cbor)

{
  1723 : "2014-10-26T12:16:31Z" / current-datetime (SID 1723) /
},
{
  1533 : {
     4 : "eth0",              / name (SID 1537) /
     1 : "Ethernet adaptor",  / description (SID 1534) /
     5 : 1880,                / type (SID 1538), identity /
                              / ethernetCsmacd (SID 1880) /
     2 : true,                / enabled (SID 1535) /
    11 : 3             / oper-status (SID 1544), value is testing /
  }
}

]]></artwork>
          </section>
        </section>
      </section>
      <section anchor="data-editing">
        <name>Data Editing</name>
        <t>CORECONF allows datastore contents to be created, modified and deleted using
CoAP methods.</t>
        <section anchor="DataOrdering">
          <name>Data Ordering</name>
          <t>A CORECONF server <bcp14>MUST</bcp14> preserve the relative order of all user-ordered list
and leaf-list entries that are received in a single edit request.
As per <xref target="RFC9254"/>, these YANG data node types are encoded as CBOR
arrays, so messages will preserve their order.</t>
        </section>
        <section anchor="post-operation">
          <name>POST</name>
          <t>The CoAP POST operation is used in CORECONF for the creation of data node resources and the
invocation of "ACTION" and "RPC" resources.
Refer to <xref target="rpc"/> for details on "ACTION" and "RPC" resources.</t>
          <t>A request to create a data node instance is sent with a CoAP POST message.
The URI specifies the data node resource of the instance to be created. In the case
of a list instance, keys <bcp14>MUST</bcp14> be present in the payload.</t>
          <artwork align="left"><![CDATA[
FORMAT:
  POST <data node resource>
       (Content-Format: application/yang-data+cbor; id=sid)
  CBOR map of SID, instance-value

  2.01 Created
]]></artwork>
          <t>If the data node instance already exists, then the POST request <bcp14>MUST</bcp14> fail and
a "4.09 Conflict" response code <bcp14>MUST</bcp14> be returned</t>
          <section anchor="post-example">
            <name>Post example</name>
            <t>The example uses the interface list from module ietf-interfaces <xref target="RFC8343"/>.
This example creates a new list instance within the interface list (SID =
1533), while assuming the datastore resource is hosted on the CoAP server with DNS name
example.com and with path /ds. The path /ds is an example location that is assumed
to have been discovered using request similar to <xref target="discovery-ex-ds"/>.</t>
            <artwork align="left"><![CDATA[
REQ: POST <coap://example.com/ds/X9>
     (Content-Format: application/yang-data+cbor; id=sid)
{
  1533 : [
    {
      4 : "eth5",              / name (SID 1537) /
      1 : "Ethernet adaptor",  / description (SID 1534) /
      5 : 1880,                / type (SID 1538), identity /
                               / ethernetCsmacd (SID 1880) /
      2 : true                 / enabled (SID 1535) /
    }
  ]
}

RES: 2.01 Created
]]></artwork>
          </section>
        </section>
        <section anchor="put-operation">
          <name>PUT</name>
          <t>A data node resource instance is created or replaced with the PUT method.
A request to set the value of a data node instance is sent with a
CoAP PUT message.</t>
          <artwork align="left"><![CDATA[
FORMAT:
  PUT <data node resource> [Uri-Query option]
      (Content-Format: application/yang-data+cbor; id=sid)
  CBOR map of SID, instance-value

  2.01 Created
]]></artwork>
          <section anchor="put-example">
            <name>PUT example</name>
            <t>The example uses the interface list from module ietf-interfaces <xref target="RFC8343"/>.
This example updates the instance of the list interface (SID = 1533) with key
name="eth0". The example location /c is an example location that is discovered
using a request similar to <xref target="discovery-ex-ds"/>.</t>
            <artwork align="left"><![CDATA[
REQ: PUT </c/X9?ZGV0aDA>       [1533, "eth0"]
     (Content-Format: application/yang-data+cbor; id=sid)
{
  1533 : [
    {
      4 : "eth0",              / name (SID 1537) /
      1 : "Ethernet adaptor",  / description (SID 1534) /
      5 : 1880,                / type (SID 1538), identity /
                               / ethernetCsmacd (SID 1880) /
      2 : true                 / enabled (SID 1535) /
    }
  ]
}

RES:  2.04 Changed
]]></artwork>
          </section>
        </section>
        <section anchor="ipatch-operation">
          <name>iPATCH</name>
          <t>One or multiple data node instances are replaced with the idempotent
CoAP iPATCH method <xref target="RFC8132"/>.</t>
          <t>There are no query parameters for the iPATCH method.</t>
          <t>The processing of the iPATCH command is specified by Media-Type 'application/yang-instances+cbor'.
In summary, if the CBOR patch payload contains a data node instance that is not present
in the target, this instance is added. If the target contains the specified instance,
the content of this instance is replaced with the value of the payload.
A null value indicates the removal of an existing data node instance.</t>
          <artwork align="left"><![CDATA[
FORMAT:
  iPATCH <datastore resource>
         (Content-Format: application/yang-instances+cbor)
  CBOR sequence of CBOR maps of instance-identifier, instance-value

  2.04 Changed
]]></artwork>
          <section anchor="ipatch-example">
            <name>iPATCH example</name>
            <t>In this example, a CORECONF client requests the following operations:</t>
            <ul spacing="normal">
              <li>Set "/system/ntp/enabled" (SID 1755) to true.</li>
              <li>Remove the server "tac.nrc.ca" from the "/system/ntp/server" (SID 1756) list.</li>
              <li>Add/set the server "NTP Pool server 2" to the list "/system/ntp/server" (SID 1756).</li>
            </ul>
            <artwork align="left"><![CDATA[
REQ: iPATCH </c>
     (Content-Format: application/yang-instances+cbor)
{
  1755 : true                   / enabled (SID 1755) /
},
{
  [1756, "tac.nrc.ca"] : null   / server (SID 1756) /
},
{
  1756 : {                      / server (SID 1756) /
    3 : "tic.nrc.ca",           / name (SID 1759) /
    4 : true,                   / prefer (SID 1760) /
    5 : {                       / udp (SID 1761) /
      1 : "132.246.11.231"      / address (SID 1762) /
    }
  }
}

RES: 2.04 Changed
]]></artwork>
          </section>
        </section>
        <section anchor="delete-operation">
          <name>DELETE</name>
          <t>A data node resource is deleted with the DELETE method.</t>
          <artwork align="left"><![CDATA[
FORMAT:
  Delete <data node resource> [Uri-Query option]

  2.02 Deleted
]]></artwork>
          <section anchor="delete-example">
            <name>DELETE example</name>
            <t>This example uses the interface list from module ietf-interfaces <xref target="RFC8343"/>.
This example deletes an instance of the interface list (SID = 1533):</t>
            <artwork align="left"><![CDATA[
REQ:   DELETE </c/X9?ZGV0aDA>        [1533, "eth0"]

RES:   2.02 Deleted
]]></artwork>
          </section>
        </section>
      </section>
      <section anchor="datastore-access">
        <name>Full datastore access</name>
        <t>The methods GET, PUT, POST, and DELETE can be used to request, replace, create,
and delete a whole datastore respectively.</t>
        <artwork align="left"><![CDATA[
FORMAT:
  GET <datastore resource>

  2.05 Content (Content-Format: application/yang-data+cbor; id=sid)
  CBOR map of SID, instance-value
]]></artwork>
        <artwork align="left"><![CDATA[
FORMAT:
  PUT <datastore resource>
      (Content-Format: application/yang-data+cbor; id=sid)
  CBOR map of SID, instance-value

  2.04 Changed
]]></artwork>
        <artwork align="left"><![CDATA[
FORMAT:
  POST <datastore resource>
       (Content-Format: application/yang-data+cbor; id=sid)
  CBOR map of SID, instance-value

  2.01 Created
]]></artwork>
        <artwork align="left"><![CDATA[
FORMAT:
  DELETE <datastore resource>

  2.02 Deleted
]]></artwork>
        <t>The content of the CBOR map represents the complete datastore of the server
at the GET indication of after a successful processing of a PUT or POST request.</t>
        <section anchor="datastore-example">
          <name>Full datastore examples</name>
          <t>The example uses the interface list from module ietf-interfaces <xref target="RFC8343"/> and
the clock container from module ietf-system <xref target="RFC7317"/>.
We assume that the datastore contains two modules ietf-system (SID 1700) and
ietf-interfaces (SID 1500); they contain the 'interface' list (SID 1533) with
one instance and the 'clock' container (SID 1721). After invocation of GET, a
CBOR map with data nodes from these two modules is returned:</t>
          <artwork align="left"><![CDATA[
REQ:  GET </c>

RES: 2.05 Content
     (Content-Format: application/yang-data+cbor; id=sid)
{
  1721 : {                      / Clock (SID 1721) /
    2: "2016-10-26T12:16:31Z",  / current-datetime (SID 1723) /
    1: "2014-10-05T09:00:00Z"   / boot-datetime (SID 1722) /
  },
  1533 : [
    {                           / interface (SID 1533) /
       4 : "eth0",              / name (SID 1537) /
       1 : "Ethernet adaptor",  / description (SID 1534) /
       5 : 1880,                / type (SID 1538), identity: /
                                / ethernetCsmacd (SID 1880) /
       2 : true,                / enabled (SID 1535) /
      11 : 3             / oper-status (SID 1544), value is testing /
    }
  ]
}
]]></artwork>
        </section>
      </section>
      <section anchor="event-stream">
        <name>Event stream</name>
        <t>Event notification is an essential function for the management of servers.
CORECONF allows notifications specified in YANG <xref target="RFC5277"/> to be reported to a list
of clients. The path for the default event stream can be discovered as
described in <xref target="coap-interface"/>. The server <bcp14>MAY</bcp14> support additional event
stream resources to address different notification needs.</t>
        <t>Reception of notification instances is enabled with the CoAP Observe
<xref target="RFC7641"/> function. Clients subscribe to the notifications by sending a
GET request with an "Observe" option to the stream resource.</t>
        <t>Each response payload carries one or multiple notifications. The number of
notifications reported, and the conditions used to remove notifications
from the reported list are left to implementers.
When multiple notifications are reported, they <bcp14>MUST</bcp14> be ordered starting from
the newest notification at index zero. Note that this could lead to
notifications being sent multiple times, which increases the probability for
the client to receive them, but it might potentially lead to messages that
exceed the MTU of a single CoAP packet. If such cases could arise, implementers
should make sure appropriate fragmentation is available - for example the one
described in <xref target="block"/>.</t>
        <t>The format of notifications is a CBOR sequence, where each item in
the sequence is a single notification as described in <xref section="4.2.1" sectionFormat="of" target="RFC9254"/>.
(Accordingly, a notification without any content is an empty CBOR
sequence, i.e., zero bytes.)</t>
        <artwork align="left"><![CDATA[
FORMAT:
  GET <stream-resource> Observe(0)

  2.05 Content (Content-Format: application/yang-instances+cbor)
  CBOR sequence of CBOR maps of instance-identifier, instance-value
]]></artwork>
        <t>The sequence of data node instances may contain identical items which have
been generated at different times.</t>
        <t>An example implementation is:</t>
        <ul empty="true">
          <li>
            <t>Every time an event is generated, the generated notification instance is
appended to the chosen stream(s). After an aggregation period, which may be
limited by the maximum number of notifications supported,
the content of the instance is sent to all clients observing the modified stream.</t>
          </li>
        </ul>
        <section anchor="event-stream-example">
          <name>Notify Examples</name>
          <t>Let suppose the server generates the example-port-fault event as defined below.</t>
          <artwork align="left"><![CDATA[
module example-port {
  ...
  notification example-port-fault {   // SID 60010
    description
      "Event generated if a hardware fault is detected";
    leaf port-name {                  // SID 60011
      type string;
    }
    leaf port-fault {                 // SID 60012
      type string;
    }
  }
}
]]></artwork>
          <t>In this example the default event stream resource path /s is an example
location discovered with a request similar to <xref target="discovery-ex-es"/>. By executing a
GET with Observe 0 on the default event stream resource the client receives the
following response:</t>
          <artwork align="left"><![CDATA[
REQ:  GET </s> Observe(0)

RES:  2.05 Content (Content-Format: application/yang-instances+cbor)
      Observe(12)

{
  60010 : {             / example-port-fault (SID 60010) /
    1 : "0/4/21",       / port-name (SID 60011) /
    2 : "Open pin 2"    / port-fault (SID 60012) /
  }
},
{
  60010 : {             / example-port-fault (SID 60010) /
    1 : "1/4/21",       / port-name (SID 60011) /
    2 : "Open pin 5"    / port-fault (SID 60012) /
  }
}

]]></artwork>
          <t>In the example, the request returns a success response with the contents
of the last two generated events. Consecutively the server will regularly
notify the client when a new event is generated.</t>
        </section>
        <section anchor="the-f-query-parameter">
          <name>The 'f' query parameter</name>
          <t>The 'f' (filter) option is used to indicate which subset of all possible notifications is of interest.  If not present, all notifications supported by the event stream are reported.</t>
          <t>When not supported by a CORECONF server, this option shall be ignored, all events notifications are reported independently of the presence and content of the 'f' (filter) option.</t>
          <t>When present, this option contains a comma-separated list of notification SIDs. For example, the following request returns notifications 60010 and 60020.</t>
          <artwork align="left"><![CDATA[
REQ:  GET </s?f=60010,60020> Observe(0)
]]></artwork>
        </section>
      </section>
      <section anchor="rpc">
        <name>RPC statements</name>
        <t>The YANG "action" and "RPC" statements specify the execution of a Remote
Procedure Call (RPC) in the server.  It is invoked using a POST method to
an "Action" or "RPC" resource instance.</t>
        <t>The request payload contains the values assigned to the input container when specified.
The response payload contains the values of the output container when specified.
Both the input and output containers are encoded in CBOR using the rules defined in
<xref section="4.2.1" sectionFormat="of" target="RFC9254"/>.</t>
        <t>The returned success response code is 2.05 Content.</t>
        <artwork align="left"><![CDATA[
FORMAT:
  POST <data node resource> [Uri-Query option]
       (Content-Format: application/yang-data+cbor; id=sid)
  CBOR map of SID, instance-value

  2.05 Content (Content-Format: application/yang-data+cbor; id=sid)
  CBOR map of SID, instance-value

]]></artwork>
        <section anchor="rpc-example">
          <name>RPC Example</name>
          <t>The example is based on the YANG action "reset" as defined in <xref section="7.15.3" sectionFormat="of" target="RFC7950"/>
and annotated below with SIDs.</t>
          <artwork align="left"><![CDATA[
module example-server-farm {
  yang-version 1.1;
  namespace "urn:example:server-farm";
  prefix "sfarm";

  import ietf-yang-types {
    prefix "yang";
  }

  list server {                        // SID 60000
    key name;
    leaf name {                        // SID 60001
      type string;
    }
    action reset {                     // SID 60002
      input {
        leaf reset-at {                // SID 60003
          type yang:date-and-time;
          mandatory true;
         }
       }
       output {
         leaf reset-finished-at {      // SID 60004
           type yang:date-and-time;
           mandatory true;
         }
       }
     }
   }
 }
]]></artwork>
          <t>This example invokes the 'reset' action  (SID 60002, base64: Opq),
of the server instance with name equal to "myserver".</t>
          <artwork align="left"><![CDATA[
REQ:  POST </c/Opq?aG15c2VydmVy>     [60002, "myserver"]
      (Content-Format: application/yang-data+cbor; id=sid)
{
  60002 : {
    1 : "2016-02-08T14:10:08Z09:00" / reset-at (SID 60003) /
  }
}

RES:  2.05 Content
      (Content-Format: application/yang-data+cbor; id=sid)
{
  60002 : {
    2 : "2016-02-08T14:10:08Z09:18" / reset-finished-at (SID 60004)/
  }
}
]]></artwork>
        </section>
      </section>
    </section>
    <section anchor="block">
      <name>Use of Block-wise Transfers</name>
      <t>The CoAP protocol provides reliability by acknowledging the UDP datagrams.
However, when large pieces of data need to be transported, datagrams get
fragmented, thus creating constraints on the resources in the client, server
and intermediate routers. The block option <xref target="RFC7959"/> allows the transport
of the total payload in individual blocks of which the
size can be adapted to the underlying transport sizes such as: (UDP datagram
size ~64KiB, IPv6 MTU of 1280, IEEE 802.15.4 payload of 60-80 bytes). Each
block is individually acknowledged to guarantee reliability.</t>
      <t>Notice that the Block mechanism splits the data at fixed positions,
such that individual data fields may become fragmented. Therefore, assembly
of multiple blocks may be required to process complete data fields.</t>
      <t>Beware of race conditions. In case blocks are filled one at a time, care should
be taken that the whole and consistent data representation is sent in multiple blocks sequentially
without interruption. On the server, values might change, lists might get re-ordered,
extended or reduced. When these actions happen during the serialization of
the contents of the resource, the transported results do not correspond with
a state having occurred in the server; or worse the returned values are inconsistent.
For example: array length does not correspond with the actual number of items.
It may be advisable to use Indefinite-length CBOR arrays and maps,
which are foreseen for data streaming purposes.
(Note that the outer structure of yang-identifiers and yang-instances
is a CBOR sequence, which already behaves similar to an
indefinite-length encoded array.)</t>
    </section>
    <section anchor="discovery">
      <name>Application Discovery</name>
      <t>Two application discovery mechanisms are supported by CORECONF, the YANG library
data model as defined by <xref target="I-D.ietf-core-yang-library"/> and
the CORE resource discovery <xref target="RFC6690"/>.
Implementers may choose to implement one or the other or both.</t>
      <section anchor="yang-library">
        <name>YANG library</name>
        <t>The YANG library data model <xref target="I-D.ietf-core-yang-library"/> provides a high-level description of the resources available. The YANG library contains the
list of modules, features, and deviations supported by the CORECONF server.
From this information, CORECONF clients can infer the list of data nodes supported
and the interaction model to be used to access them. This module also contains
the list of datastores implemented.</t>
        <t>As described in <xref target="RFC6690"/>, the location of the YANG library can be found by
sending a GET request to
"/.well-known/core" including a resource type (RT) parameter with the value
"core.c.yl". Upon success, the return payload will contain the root resource
of the YANG library module.</t>
        <t>The following example assumes that the SID of the YANG library is 2351 (<tt>kv</tt> after
encoding as specified in <xref target="id-compression"/>) and that the server uses /c as
datastore resource path.</t>
        <artwork align="left"><![CDATA[
REQ: GET </.well-known/core?rt=core.c.yl>

RES: 2.05 Content (Content-Format: application/link-format)
</c/kv>;rt="core.c.yl"
]]></artwork>
      </section>
      <section anchor="resource-discovery">
        <name>Resource Discovery</name>
        <t>As some CoAP interfaces and services might not support the YANG library
interface and still be interested to discover resources that are available,
implementations <bcp14>MAY</bcp14> choose to support discovery of all available
resources using "/.well-known/core" as defined by <xref target="RFC6690"/>.</t>
        <section anchor="datastore-resource-discovery">
          <name>Datastore Resource Discovery</name>
          <t>The presence and location of (path to) each datastore implemented by the CORECONF server
can be discovered by sending a GET request to "/.well-known/core" including a
resource type (RT) parameter with the value "core.c.ds".</t>
          <t>Upon success, the return payload contains the list of datastore resources.</t>
          <t>Each datastore returned is further qualified using the "ds" Link-Format attribute.
This attribute is set to the SID assigned to the datastore identity.
When a unified datastore is implemented, the ds attribute is set to 1029 as
specified in <xref target="ietf-coreconf-sid"/>.
For other examples of datastores, see the Network Management Datastore Architecture (NMDA) <xref target="RFC7950"/>.</t>
          <artwork align="left"><![CDATA[
link-extension    = ( "ds" "=" sid ) )
                    ; SID assigned to the datastore identity
sid               = 1*DIGIT
]]></artwork>
          <t>The following example assumes that the server uses /c as datastore resource
path.</t>
          <figure anchor="discovery-ex-ds">
            <artwork align="left"><![CDATA[
REQ: GET </.well-known/core?rt=core.c.ds>

RES: 2.05 Content (Content-Format: application/link-format)
</c>; rt="core.c.ds";ds=1029
]]></artwork>
          </figure>
        </section>
        <section anchor="data-node-resource-discovery">
          <name>Data node Resource Discovery</name>
          <t>If implemented, the presence and location of (path to) each data node
implemented by the CORECONF server are discovered by sending a GET request to
"/.well-known/core" including a resource type (RT) parameter with the value
"core.c.dn".</t>
          <t>Upon success, the return payload contains the SID assigned to each data node
and their location.</t>
          <t>The example below shows the discovery of the presence and location of
data nodes. Data nodes '/ietf-system:system-state/clock/boot-datetime' (SID 1722)
and '/ietf-system:system-state/clock/current-datetime' (SID 1723) are returned.
The example assumes that the server uses /c as datastore resource path.</t>
          <artwork align="left"><![CDATA[
REQ: GET </.well-known/core?rt=core.c.dn>

RES: 2.05 Content (Content-Format: application/link-format)
</c/a6>;rt="core.c.dn",
</c/a7>;rt="core.c.dn"
]]></artwork>
          <t>Without additional filtering, the list of data nodes may become prohibitively
long. If this is the case implementations <bcp14>SHOULD</bcp14> support a way to obtain all
links using multiple GET requests (for example through some form of
pagination).</t>
        </section>
        <section anchor="event-stream-resource-discovery">
          <name>Event stream Resource Discovery</name>
          <t>The presence and location of (path to) each event stream implemented by the CORECONF server are
discovered by sending a GET request to "/.well-known/core" including a resource type (RT)
parameter with the value "core.c.es".</t>
          <t>Upon success, the return payload contains the list of event stream resources.</t>
          <t>The following example assumes that the server uses /s as the default event stream
resource.</t>
          <figure anchor="discovery-ex-es">
            <artwork align="left"><![CDATA[
REQ: GET </.well-known/core?rt=core.c.es>

RES: 2.05 Content (Content-Format: application/link-format)
</s>;rt="core.c.es"
]]></artwork>
          </figure>
        </section>
      </section>
    </section>
    <section anchor="error-handling">
      <name>Error Handling</name>
      <t>In case a request is received which cannot be processed properly, the CORECONF server <bcp14>MUST</bcp14> return an error response. This error response <bcp14>MUST</bcp14> contain a CoAP 4.xx or 5.xx response code.</t>
      <t>Errors returned by a CORECONF server can be broken into two categories, those associated with the CoAP protocol itself and those generated during the validation of the YANG data model constraints as described in <xref section="8" sectionFormat="of" target="RFC7950"/>.</t>
      <t>The following list of common CoAP errors should be implemented by CORECONF servers. This list is not exhaustive, other errors defined by CoAP and associated RFCs may be applicable.</t>
      <ul spacing="normal">
        <li>Error 4.01 (Unauthorized) is returned by the CORECONF server when the CORECONF client is not authorized to perform the requested action on the targeted resource (i.e. data node, datastore, rpc, action or event stream).</li>
        <li>Error 4.02 (Bad Option) is returned by the CORECONF server when one or more CoAP options are unknown or malformed.</li>
        <li>Error 4.04 (Not Found) is returned by the CORECONF server when the CORECONF client is requesting a non-instantiated resource (i.e. data node, datastore, rpc, action or event stream).</li>
        <li>Error 4.05 (Method Not Allowed) is returned by the CORECONF server when the CORECONF client is requesting a method not supported on the targeted resource. (e.g. GET on an rpc, PUT or POST on a data node with "config" set to false).</li>
        <li>Error 4.08 (Request Entity Incomplete) is returned by the CORECONF server if one or multiple blocks of a block transfer request is missing, see <xref target="RFC7959"/> for more details.</li>
        <li>Error 4.13 (Request Entity Too Large) may be returned by the CORECONF server during a block transfer request, see <xref target="RFC7959"/> for more details.</li>
        <li>Error 4.15 (Unsupported Content-Format) is returned by the CORECONF server when the Content-Format used in the request does not match those specified in <xref target="media-type"/>.</li>
      </ul>
      <t>The CORECONF server <bcp14>MUST</bcp14> also enforce the different constraints associated with the YANG data models implemented. These constraints are described in <xref section="8" sectionFormat="of" target="RFC7950"/>. These errors are reported using the CoAP error code 4.00 (Bad Request) and may have the following error container as payload. The YANG definition and associated .sid file are available in <xref target="ietf-coreconf-yang"/> and <xref target="ietf-coreconf-sid"/>. The error container is encoded using the encoding rules of a YANG data template as defined in <xref section="5" sectionFormat="of" target="RFC9254"/>.</t>
      <artwork align="left"><![CDATA[
+--rw error!
   +--rw error-tag             identityref
   +--rw error-app-tag?        identityref
   +--rw error-data-node?      instance-identifier
   +--rw error-message?        string
]]></artwork>
      <t>The following 'error-tag' and 'error-app-tag' are defined by the ietf-coreconf YANG module, these tags are implemented as YANG identity and can be extended as needed.</t>
      <ul spacing="normal">
        <li>
          <t>error-tag 'operation-failed' is returned by the CORECONF server when the operation request cannot be processed successfully.  </t>
          <ul spacing="normal">
            <li>error-app-tag 'malformed-message' is returned by the CORECONF server when the payload received from the CORECONF client does not contain a well-formed CBOR content as defined in <xref target="RFC8949"/> or does not comply with the CBOR structure defined within this document.</li>
            <li>error-app-tag 'data-not-unique' is returned by the CORECONF server when the validation of the 'unique' constraint of a list or leaf-list fails.</li>
            <li>error-app-tag 'too-many-elements' is returned by the CORECONF server when the validation of the 'max-elements' constraint of a list or leaf-list fails.</li>
            <li>error-app-tag 'too-few-elements' is returned by the CORECONF server when the validation of the 'min-elements' constraint of a list or leaf-list fails.</li>
            <li>error-app-tag 'must-violation' is returned by the CORECONF server when the restrictions imposed by a 'must' statement are violated.</li>
            <li>error-app-tag 'duplicate' is returned by the CORECONF server when a client tries to create a duplicate list or leaf-list entry.</li>
          </ul>
        </li>
        <li>
          <t>error-tag 'invalid-value' is returned by the CORECONF server when the CORECONF client tries to update or create a leaf with a value encoded using an invalid CBOR datatype or if the 'range', 'length', 'pattern' or 'require-instance' constrain is not fulfilled.  </t>
          <ul spacing="normal">
            <li>error-app-tag 'invalid-datatype' is returned by the CORECONF server when CBOR encoding does not follow the rules set by the YANG Build-In type or when the value is incompatible with it (e.g. a value greater than 127 for an int8, undefined enumeration).</li>
            <li>error-app-tag 'not-in-range' is returned by the CORECONF server when the validation of the 'range' property fails.</li>
            <li>error-app-tag 'invalid-length' is returned by the CORECONF server when the validation of the 'length' property fails.</li>
            <li>error-app-tag 'pattern-test-failed' is returned by the CORECONF server when the validation of the 'pattern' property fails.</li>
          </ul>
        </li>
        <li>
          <t>error-tag 'missing-element' is returned by the CORECONF server when the operation requested by a CORECONF client fails to comply with the 'mandatory' constraint defined. The 'mandatory' constraint is enforced for leafs and choices, unless the node or any of its ancestors have a 'when' condition or 'if-feature' expression that evaluates to 'false'.  </t>
          <ul spacing="normal">
            <li>error-app-tag 'missing-key' is returned by the CORECONF server to further qualify a missing-element error. This error is returned when the CORECONF client  tries to create or list instance, without all the 'key' specified or when the CORECONF client  tries to delete a leaf listed as a 'key'.</li>
            <li>error-app-tag 'missing-input-parameter' is returned by the CORECONF server when the input parameters of an RPC or action are incomplete.</li>
          </ul>
        </li>
        <li>error-tag 'unknown-element' is returned by the CORECONF server when the CORECONF client  tries to access a data node of a YANG module not supported, of a data node associated with an 'if-feature' expression evaluated to 'false' or to a 'when' condition evaluated to 'false'.</li>
        <li>error-tag 'bad-element' is returned by the CORECONF server when the CORECONF client  tries to create data nodes for more than one case in a choice.</li>
        <li>
          <t>error-tag 'data-missing' is returned by the CORECONF server when a data node required to accept the request is not present.  </t>
          <ul spacing="normal">
            <li>error-app-tag 'instance-required' is returned by the CORECONF server when a leaf of type 'instance-identifier' or 'leafref' marked with require-instance set to 'true' refers to an instance that does not exist.</li>
            <li>error-app-tag 'missing-choice' is returned by the CORECONF server when no nodes exist in a mandatory choice.</li>
          </ul>
        </li>
        <li>error-tag 'error' is returned by the CORECONF server when an unspecified error has occurred.</li>
      </ul>
      <t>For example, the CORECONF server might return the following error.</t>
      <artwork align="left"><![CDATA[
RES:  4.00 Bad Request
     (Content-Format: application/yang-data+cbor; id=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 value exceeded" / error-message (SID 1027) /
  }
}
]]></artwork>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>For secure network management, it is important to restrict access to configuration variables
only to authorized parties. CORECONF re-uses the security mechanisms already available to CoAP,
this includes DTLS <xref target="RFC6347"/><xref target="RFC9147"/> and OSCORE <xref target="RFC8613"/> for protected access to
resources, as well as suitable authentication and authorization mechanisms, for
example those defined in ACE OAuth <xref target="RFC9200"/>.</t>
      <t>All the security considerations of <xref target="RFC7252"/>, <xref target="RFC7959"/>, <xref target="RFC8132"/> and
<xref target="RFC7641"/> apply to this document as well. The use of NoSec (<xref section="9" sectionFormat="of" target="RFC7252"/>), when OSCORE
is not used, is <bcp14>NOT RECOMMENDED</bcp14>.</t>
      <t>In addition, mechanisms for authentication and authorization may need to be
selected if not provided with the CoAP security mode.</t>
      <t>As <xref target="RFC9254"/> and <xref target="RFC4648"/> are used for payload and SID
encoding, the security considerations of those documents also need to be
well-understood.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="resource-type-rt-link-target-attribute-values-registry">
        <name>Resource Type (rt=) Link Target Attribute Values Registry</name>
        <t>This document adds the following resource type to the "Resource Type (rt=) Link Target Attribute Values", within the "Constrained RESTful Environments (CoRE) Parameters" registry.</t>
        <table align="left">
          <thead>
            <tr>
              <th align="left">Value</th>
              <th align="left">Description</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">core.c.ds</td>
              <td align="left">YANG datastore</td>
              <td align="left">RFC XXXX</td>
            </tr>
            <tr>
              <td align="left">core.c.dn</td>
              <td align="left">YANG data node</td>
              <td align="left">RFC XXXX</td>
            </tr>
            <tr>
              <td align="left">core.c.yl</td>
              <td align="left">YANG module library</td>
              <td align="left">RFC XXXX</td>
            </tr>
            <tr>
              <td align="left">core.c.es</td>
              <td align="left">YANG event stream</td>
              <td align="left">RFC XXXX</td>
            </tr>
          </tbody>
        </table>
        <t>// RFC Ed.: replace RFC XXXX with this RFC number and remove this note.</t>
      </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.</t>
        <table align="left">
          <thead>
            <tr>
              <th align="left">Media 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-identifiers+cbor</td>
              <td align="left"> </td>
              <td align="left">TBD2</td>
              <td align="left">RFC XXXX</td>
            </tr>
            <tr>
              <td align="left">application/yang-instances+cbor</td>
              <td align="left"> </td>
              <td align="left">TBD3</td>
              <td align="left">RFC XXXX</td>
            </tr>
          </tbody>
        </table>
        <t>// RFC Ed.: replace TBD1, TBD2 and TBD3 with assigned IDs and remove this note.
// RFC Ed.: replace RFC XXXX with this RFC number and remove this note.</t>
      </section>
      <section anchor="media-types-registry">
        <name>Media Types Registry</name>
        <t>This document adds the following media types 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-identifiers+cbor</td>
              <td align="left">application/</td>
              <td align="left">RFC XXXX</td>
            </tr>
            <tr>
              <td align="left"> </td>
              <td align="left">yang-identifiers+cbor</td>
              <td align="left"> </td>
            </tr>
            <tr>
              <td align="left">yang-instances+cbor</td>
              <td align="left">application/</td>
              <td align="left">RFC XXXX</td>
            </tr>
            <tr>
              <td align="left"> </td>
              <td align="left">yang-instances+cbor</td>
              <td align="left"> </td>
            </tr>
          </tbody>
        </table>
        <t>Each of these media types share the following information:</t>
        <ul spacing="normal">
          <li>Subtype name: &lt;as listed in table&gt;</li>
          <li>Required parameters: N/A</li>
          <li>Optional parameters: N/A</li>
          <li>Encoding considerations: binary</li>
          <li>Security considerations: See the Security Considerations section of RFC XXXX</li>
          <li>Interoperability considerations: N/A</li>
          <li>Published specification: RFC XXXX</li>
          <li>Applications that use this media type: CORECONF</li>
          <li>Fragment identifier considerations: N/A</li>
          <li>Additional information:</li>
        </ul>
        <artwork><![CDATA[
*  Deprecated alias names for this type: N/A

*  Magic number(s): N/A

*  File extension(s): N/A

*  Macintosh file type code(s): N/A
]]></artwork>
        <ul spacing="normal">
          <li>Person &amp; email address to contact for further information: iesg&amp;ietf.org</li>
          <li>Intended usage: COMMON</li>
          <li>Restrictions on usage: N/A</li>
          <li>Author: Michel Veillette</li>
          <li>Change Controller: IESG</li>
          <li>Provisional registration?  No</li>
        </ul>
        <t>// RFC Ed.: replace RFC XXXX with this RFC number and remove this note.</t>
      </section>
      <section anchor="yang-namespace-registration">
        <name>YANG Namespace Registration</name>
        <t>This document registers the following XML namespace URN in the "IETF XML
Registry", following the format defined in <xref target="RFC3688"/>:</t>
        <t>URI: please assign urn:ietf:params:xml:ns:yang:ietf-coreconf</t>
        <t>Registrant Contact: The IESG.</t>
        <t>XML: N/A, the requested URI is an XML namespace.</t>
        <t>Reference:    RFC XXXX</t>
        <t>// RFC Ed.: please replace XXXX with RFC number and remove this note</t>
      </section>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="RFC3688">
          <front>
            <title>The IETF XML Registry</title>
            <author fullname="M. Mealling" initials="M." surname="Mealling">
              <organization/>
            </author>
            <date month="January" year="2004"/>
            <abstract>
              <t>This document describes an IANA maintained registry for IETF standards which use Extensible Markup Language (XML) related items such as Namespaces, Document Type Declarations (DTDs), Schemas, and Resource Description Framework (RDF) Schemas.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="81"/>
          <seriesInfo name="RFC" value="3688"/>
          <seriesInfo name="DOI" value="10.17487/RFC3688"/>
        </reference>
        <reference anchor="RFC4648">
          <front>
            <title>The Base16, Base32, and Base64 Data Encodings</title>
            <author fullname="S. Josefsson" initials="S." surname="Josefsson">
              <organization/>
            </author>
            <date month="October" year="2006"/>
            <abstract>
              <t>This document describes the commonly used base 64, base 32, and base 16 encoding schemes.  It also discusses the use of line-feeds in encoded data, use of padding in encoded data, use of non-alphabet characters in encoded data, use of different encoding alphabets, and canonical encodings.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4648"/>
          <seriesInfo name="DOI" value="10.17487/RFC4648"/>
        </reference>
        <reference anchor="RFC5277">
          <front>
            <title>NETCONF Event Notifications</title>
            <author fullname="S. Chisholm" initials="S." surname="Chisholm">
              <organization/>
            </author>
            <author fullname="H. Trevino" initials="H." surname="Trevino">
              <organization/>
            </author>
            <date month="July" year="2008"/>
            <abstract>
              <t>This document defines mechanisms that provide an asynchronous message notification delivery service for the Network Configuration protocol (NETCONF).  This is an optional capability built on top of the base NETCONF definition.  This document defines the capabilities and operations necessary to support this service.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5277"/>
          <seriesInfo name="DOI" value="10.17487/RFC5277"/>
        </reference>
        <reference anchor="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="RFC6243">
          <front>
            <title>With-defaults Capability for NETCONF</title>
            <author fullname="A. Bierman" initials="A." surname="Bierman">
              <organization/>
            </author>
            <author fullname="B. Lengyel" initials="B." surname="Lengyel">
              <organization/>
            </author>
            <date month="June" year="2011"/>
            <abstract>
              <t>The Network Configuration Protocol (NETCONF) defines ways to read and edit configuration data from a NETCONF server.  In some cases, part of this data may not be set by the NETCONF client, but rather a default value known to the server is used instead.  In many situations the NETCONF client has a priori knowledge about default data, so the NETCONF server does not need to save it in a NETCONF configuration datastore or send it to the client in a retrieval operation reply.  In other situations the NETCONF client will need this data from the server.  Not all server implementations treat this default data the same way.  This document defines a capability-based extension to the NETCONF protocol that allows the NETCONF client to identify how defaults are processed by the server, and also defines new mechanisms for client control of server processing of default data.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6243"/>
          <seriesInfo name="DOI" value="10.17487/RFC6243"/>
        </reference>
        <reference anchor="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="RFC8742">
          <front>
            <title>Concise Binary Object Representation (CBOR) Sequences</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann">
              <organization/>
            </author>
            <date month="February" year="2020"/>
            <abstract>
              <t>This document describes the Concise Binary Object Representation (CBOR) Sequence format and associated media type "application/cbor-seq".  A CBOR Sequence consists of any number of encoded CBOR data items, simply concatenated in sequence.</t>
              <t>Structured syntax suffixes for media types allow other media types to build on them and make it explicit that they are built on an existing media type as their foundation.  This specification defines and registers "+cbor-seq" as a structured syntax suffix for CBOR Sequences.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8742"/>
          <seriesInfo name="DOI" value="10.17487/RFC8742"/>
        </reference>
        <reference anchor="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="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="RFC7959">
          <front>
            <title>Block-Wise Transfers in the Constrained Application Protocol (CoAP)</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann">
              <organization/>
            </author>
            <author fullname="Z. Shelby" initials="Z." role="editor" surname="Shelby">
              <organization/>
            </author>
            <date month="August" year="2016"/>
            <abstract>
              <t>The Constrained Application Protocol (CoAP) is a RESTful transfer protocol for constrained nodes and networks.  Basic CoAP messages work well for small payloads from sensors and actuators; however, applications will need to transfer larger payloads occasionally -- for instance, for firmware updates.  In contrast to HTTP, where TCP does the grunt work of segmenting and resequencing, CoAP is based on datagram transports such as UDP or Datagram Transport Layer Security (DTLS).  These transports only offer fragmentation, which is even more problematic in constrained nodes and networks, limiting the maximum size of resource representations that can practically be transferred.</t>
              <t>Instead of relying on IP fragmentation, this specification extends basic CoAP with a pair of "Block" options for transferring multiple blocks of information from a resource representation in multiple request-response pairs.  In many important cases, the Block options enable a server to be truly stateless: the server can handle each block transfer separately, with no need for a connection setup or other server-side memory of previous block transfers.  Essentially, the Block options provide a minimal way to transfer larger representations in a block-wise fashion.</t>
              <t>A CoAP implementation that does not support these options generally is limited in the size of the representations that can be exchanged, so there is an expectation that the Block options will be widely used in CoAP implementations.  Therefore, this specification updates RFC 7252.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7959"/>
          <seriesInfo name="DOI" value="10.17487/RFC7959"/>
        </reference>
        <reference anchor="RFC7641">
          <front>
            <title>Observing Resources in the Constrained Application Protocol (CoAP)</title>
            <author fullname="K. Hartke" initials="K." surname="Hartke">
              <organization/>
            </author>
            <date month="September" year="2015"/>
            <abstract>
              <t>The Constrained Application Protocol (CoAP) is a RESTful application protocol for constrained nodes and networks.  The state of a resource on a CoAP server can change over time.  This document specifies a simple protocol extension for CoAP that enables CoAP clients to "observe" resources, i.e., to retrieve a representation of a resource and keep this representation updated by the server over a period of time.  The protocol follows a best-effort approach for sending new representations to clients and provides eventual consistency between the state observed by each client and the actual resource state at the server.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7641"/>
          <seriesInfo name="DOI" value="10.17487/RFC7641"/>
        </reference>
        <reference anchor="RFC8132">
          <front>
            <title>PATCH and FETCH Methods for the Constrained Application Protocol (CoAP)</title>
            <author fullname="P. van der Stok" initials="P." surname="van der Stok">
              <organization/>
            </author>
            <author fullname="C. Bormann" initials="C." surname="Bormann">
              <organization/>
            </author>
            <author fullname="A. Sehgal" initials="A." surname="Sehgal">
              <organization/>
            </author>
            <date month="April" year="2017"/>
            <abstract>
              <t>The methods defined in RFC 7252 for the Constrained Application Protocol (CoAP) only allow access to a complete resource, not to parts of a resource.  In case of resources with larger or complex data, or in situations where resource continuity is required, replacing or requesting the whole resource is undesirable.  Several applications using CoAP need to access parts of the resources.</t>
              <t>This specification defines the new CoAP methods, FETCH, PATCH, and iPATCH, which are used to access and update parts of a resource.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8132"/>
          <seriesInfo name="DOI" value="10.17487/RFC8132"/>
        </reference>
        <reference anchor="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="RFC9254">
          <front>
            <title>Encoding of Data Modeled with YANG in the Concise Binary Object Representation (CBOR)</title>
            <author fullname="M. Veillette" initials="M." role="editor" surname="Veillette">
              <organization/>
            </author>
            <author fullname="I. Petrov" initials="I." role="editor" surname="Petrov">
              <organization/>
            </author>
            <author fullname="A. Pelov" initials="A." surname="Pelov">
              <organization/>
            </author>
            <author fullname="C. Bormann" initials="C." surname="Bormann">
              <organization/>
            </author>
            <author fullname="M. Richardson" initials="M." surname="Richardson">
              <organization/>
            </author>
            <date month="July" year="2022"/>
            <abstract>
              <t>YANG (RFC 7950) is a data modeling language used to model configuration data, state data, parameters and results of Remote Procedure Call (RPC) operations or actions, and notifications.</t>
              <t>This document defines encoding rules for YANG in the Concise Binary Object Representation (CBOR) (RFC 8949).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9254"/>
          <seriesInfo name="DOI" value="10.17487/RFC9254"/>
        </reference>
        <reference anchor="I-D.ietf-core-sid">
          <front>
            <title>YANG Schema Item iDentifier (YANG SID)</title>
            <author fullname="Michel Veillette" initials="M." surname="Veillette">
              <organization>Trilliant Networks Inc.</organization>
            </author>
            <author fullname="Alexander Pelov" initials="A." surname="Pelov">
              <organization>Acklio</organization>
            </author>
            <author fullname="Ivaylo Petrov" initials="I." surname="Petrov">
              <organization>Google Switzerland GmbH</organization>
            </author>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <author fullname="Michael Richardson" initials="M." surname="Richardson">
              <organization>Sandelman Software Works</organization>
            </author>
            <date day="1" month="March" year="2023"/>
            <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.


   // The present version (-20) is intended to address all IESG
   // feedback.  It has significantly progressed from -16, which was the
   // original submission to the IESG.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-sid-20"/>
        </reference>
        <reference anchor="I-D.ietf-core-yang-library">
          <front>
            <title>Constrained YANG Module Library</title>
            <author fullname="Michel Veillette" initials="M." surname="Veillette">
              <organization>Trilliant Networks Inc.</organization>
            </author>
            <author fullname="Ivaylo Petrov" initials="I." surname="Petrov">
              <organization>Acklio</organization>
            </author>
            <date day="11" month="January" year="2021"/>
            <abstract>
              <t>   This document describes a constrained version of the YANG library
   that provides information about the YANG modules, datastores, and
   datastore schemas used by a constrained network management server
   (e.g., a CORECONF server).

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-yang-library-03"/>
        </reference>
        <reference anchor="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">
          <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="RFC6347">
          <front>
            <title>Datagram Transport Layer Security Version 1.2</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla">
              <organization/>
            </author>
            <author fullname="N. Modadugu" initials="N." surname="Modadugu">
              <organization/>
            </author>
            <date month="January" year="2012"/>
            <abstract>
              <t>This document specifies version 1.2 of the Datagram Transport Layer Security (DTLS) protocol.  The DTLS protocol provides communications privacy for datagram protocols.  The protocol allows client/server applications to communicate in a way that is designed to prevent eavesdropping, tampering, or message forgery.  The DTLS protocol is based on the Transport Layer Security (TLS) protocol and provides equivalent security guarantees.  Datagram semantics of the underlying transport are preserved by the DTLS protocol.  This document updates DTLS 1.0 to work with TLS version 1.2.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6347"/>
          <seriesInfo name="DOI" value="10.17487/RFC6347"/>
        </reference>
        <reference anchor="RFC6690">
          <front>
            <title>Constrained RESTful Environments (CoRE) Link Format</title>
            <author fullname="Z. Shelby" initials="Z." surname="Shelby">
              <organization/>
            </author>
            <date month="August" year="2012"/>
            <abstract>
              <t>This specification defines Web Linking using a link format for use by constrained web servers to describe hosted resources, their attributes, and other relationships between links.  Based on the HTTP Link Header field defined in RFC 5988, the Constrained RESTful Environments (CoRE) Link Format is carried as a payload and is assigned an Internet media type.  "RESTful" refers to the Representational State Transfer (REST) architecture.  A well-known URI is defined as a default entry point for requesting the links hosted by a server.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6690"/>
          <seriesInfo name="DOI" value="10.17487/RFC6690"/>
        </reference>
        <reference anchor="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="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="RFC8342">
          <front>
            <title>Network Management Datastore Architecture (NMDA)</title>
            <author fullname="M. Bjorklund" initials="M." surname="Bjorklund">
              <organization/>
            </author>
            <author fullname="J. Schoenwaelder" initials="J." surname="Schoenwaelder">
              <organization/>
            </author>
            <author fullname="P. Shafer" initials="P." surname="Shafer">
              <organization/>
            </author>
            <author fullname="K. Watsen" initials="K." surname="Watsen">
              <organization/>
            </author>
            <author fullname="R. Wilton" initials="R." surname="Wilton">
              <organization/>
            </author>
            <date month="March" year="2018"/>
            <abstract>
              <t>Datastores are a fundamental concept binding the data models written in the YANG data modeling language to network management protocols such as the Network Configuration Protocol (NETCONF) and RESTCONF. This document defines an architectural framework for datastores based on the experience gained with the initial simpler model, addressing requirements that were not well supported in the initial model.  This document updates RFC 7950.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8342"/>
          <seriesInfo name="DOI" value="10.17487/RFC8342"/>
        </reference>
        <reference anchor="RFC8613">
          <front>
            <title>Object Security for Constrained RESTful Environments (OSCORE)</title>
            <author fullname="G. Selander" initials="G." surname="Selander">
              <organization/>
            </author>
            <author fullname="J. Mattsson" initials="J." surname="Mattsson">
              <organization/>
            </author>
            <author fullname="F. Palombini" initials="F." surname="Palombini">
              <organization/>
            </author>
            <author fullname="L. Seitz" initials="L." surname="Seitz">
              <organization/>
            </author>
            <date month="July" year="2019"/>
            <abstract>
              <t>This document defines Object Security for Constrained RESTful Environments (OSCORE), a method for application-layer protection of the Constrained Application Protocol (CoAP), using CBOR Object Signing and Encryption (COSE).  OSCORE provides end-to-end protection between endpoints communicating using CoAP or CoAP-mappable HTTP. OSCORE is designed for constrained nodes and networks supporting a range of proxy operations, including translation between different transport protocols.</t>
              <t>Although an optional functionality of CoAP, OSCORE alters CoAP options processing and IANA registration.  Therefore, this document updates RFC 7252.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8613"/>
          <seriesInfo name="DOI" value="10.17487/RFC8613"/>
        </reference>
        <reference anchor="RFC9147">
          <front>
            <title>The Datagram Transport Layer Security (DTLS) Protocol Version 1.3</title>
            <author fullname="E. Rescorla" initials="E." surname="Rescorla">
              <organization/>
            </author>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig">
              <organization/>
            </author>
            <author fullname="N. Modadugu" initials="N." surname="Modadugu">
              <organization/>
            </author>
            <date month="April" year="2022"/>
            <abstract>
              <t>This document specifies version 1.3 of the Datagram Transport Layer Security (DTLS) protocol. DTLS 1.3 allows client/server applications to communicate over the Internet in a way that is designed to prevent eavesdropping, tampering, and message forgery.</t>
              <t>The DTLS 1.3 protocol is based on the Transport Layer Security (TLS) 1.3 protocol and provides equivalent security guarantees with the exception of order protection / non-replayability.  Datagram semantics of the underlying transport are preserved by the DTLS protocol.</t>
              <t>This document obsoletes RFC 6347.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9147"/>
          <seriesInfo name="DOI" value="10.17487/RFC9147"/>
        </reference>
        <reference anchor="RFC9200">
          <front>
            <title>Authentication and Authorization for Constrained Environments Using the OAuth 2.0 Framework (ACE-OAuth)</title>
            <author fullname="L. Seitz" initials="L." surname="Seitz">
              <organization/>
            </author>
            <author fullname="G. Selander" initials="G." surname="Selander">
              <organization/>
            </author>
            <author fullname="E. Wahlstroem" initials="E." surname="Wahlstroem">
              <organization/>
            </author>
            <author fullname="S. Erdtman" initials="S." surname="Erdtman">
              <organization/>
            </author>
            <author fullname="H. Tschofenig" initials="H." surname="Tschofenig">
              <organization/>
            </author>
            <date month="August" year="2022"/>
            <abstract>
              <t>This specification defines a framework for authentication and authorization in Internet of Things (IoT) environments called ACE-OAuth. The framework is based on a set of building blocks including OAuth 2.0 and the Constrained Application Protocol (CoAP), thus transforming a well-known and widely used authorization solution into a form suitable for IoT devices.  Existing specifications are used where possible, but extensions are added and profiles are defined to better serve the IoT use cases.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9200"/>
          <seriesInfo name="DOI" value="10.17487/RFC9200"/>
        </reference>
      </references>
    </references>
    <section anchor="ietf-coreconf-yang">
      <name>ietf-coreconf YANG module</name>
      <sourcecode markers="true" name="ietf-coreconf@2023-03-13.yang"><![CDATA[
module ietf-coreconf {
  yang-version 1.1;

  namespace "urn:ietf:params:xml:ns:yang:ietf-coreconf";
  prefix coreconf;

  import ietf-datastores {
    prefix ds;
  }

  import ietf-restconf {
    prefix rc;
    description
      "This import statement is required to access
       the yang-data extension defined in RFC 8040.";
    reference "RFC 8040: RESTCONF Protocol";
  }

  organization
    "IETF Core Working Group";

  contact
    "Michel Veillette
     <mailto:michel.veillette@trilliantinc.com>

     Alexander Pelov
     <mailto:alexander@ackl.io>

     Peter van der Stok
     <mailto:consultancy@vanderstok.org>

     Andy Bierman
     <mailto:andy@yumaworks.com>";

  description
    "This module contains the different definitions required
     by the CORECONF protocol.

     Copyright (c) 2019 IETF Trust and the persons identified as
     authors of the code.  All rights reserved.

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

     This version of this YANG module is part of RFC XXXX;
     see the RFC itself for full legal notices.";

  revision 2023-03-13 {
     description
      "Initial revision.";
    reference
      "[I-D.ietf-core-comi] CoAP Management Interface";
  }

  identity unified {
    base ds:datastore;
    description
      "Identifier of the unified configuration and operational
       state datastore.";
  }

  identity error-tag {
    description
      "Base identity for error-tag.";
  }

  identity operation-failed {
    base error-tag;
    description
      "Returned by the CORECONF server when the operation request
       can't be processed successfully.";
  }

  identity invalid-value {
    base error-tag;
    description
      "Returned by the CORECONF server when the CORECONF client tries
       to update or create a leaf with a value encoded using an
       invalid CBOR datatype or if the 'range', 'length',
       'pattern' or 'require-instance' constrain is not
       fulfilled.";
  }

  identity missing-element {
    base error-tag;
    description
      "Returned by the CORECONF server when the operation requested
       by a CORECONF client fails to comply with the 'mandatory'
       constraint defined. The 'mandatory' constraint is
       enforced for leafs and choices, unless the node or any of
       its ancestors have a 'when' condition or 'if-feature'
       expression that evaluates to 'false'.";
  }

  identity unknown-element {
    base error-tag;
    description
      "Returned by the CORECONF server when the CORECONF client tries
       to access a data node of a YANG module not supported, of a
       data node associated with an 'if-feature' expression
       evaluated to 'false' or to a 'when' condition evaluated
       to 'false'.";
  }

  identity bad-element {
    base error-tag;
    description
      "Returned by the CORECONF server when the CORECONF client tries
       to create data nodes for more than one case in a choice.";
  }

  identity data-missing {
    base error-tag;
    description
      "Returned by the CORECONF server when a data node required to
       accept the request is not present.";
  }

  identity error {
    base error-tag;
    description
      "Returned by the CORECONF server when an unspecified error has
      occurred.";
  }

  identity error-app-tag {
    description
      "Base identity for error-app-tag.";
  }

  identity malformed-message {
    base error-app-tag;
    description
      "Returned by the CORECONF server when the payload received
       from the CORECONF client don't contain a well-formed CBOR
       content as defined in [RFC8949] or don't
       comply with the CBOR structure defined within this
       document.";
  }

  identity data-not-unique {
    base error-app-tag;
    description
      "Returned by the CORECONF server when the validation of the
       'unique' constraint of a list or leaf-list fails.";
  }

  identity too-many-elements {
    base error-app-tag;
    description
      "Returned by the CORECONF server when the validation of the
       'max-elements' constraint of a list or leaf-list fails.";
  }

  identity too-few-elements {
    base error-app-tag;
    description
      "Returned by the CORECONF server when the validation of the
       'min-elements' constraint of a list or leaf-list fails.";
  }

  identity must-violation {
    base error-app-tag;
    description
      "Returned by the CORECONF server when the restrictions
       imposed by a 'must' statement are violated.";
  }

  identity duplicate {
    base error-app-tag;
    description
      "Returned by the CORECONF server when a client tries to create
       a duplicate list or leaf-list entry.";
  }

  identity invalid-datatype {
    base error-app-tag;
    description
      "Returned by the CORECONF server when CBOR encoding is
       incorect or when the value encoded is incompatible with
       the YANG Built-In type. (e.g. value greater than 127
       for an int8, undefined enumeration).";
  }

  identity not-in-range {
    base error-app-tag;
    description
      "Returned by the CORECONF server when the validation of the
       'range' property fails.";
  }

  identity invalid-length {
    base error-app-tag;
    description
      "Returned by the CORECONF server when the validation of the
       'length' property fails.";
  }

  identity pattern-test-failed {
    base error-app-tag;
    description
      "Returned by the CORECONF server when the validation of the
       'pattern' property fails.";
  }

  identity missing-key {
    base error-app-tag;
    description
      "Returned by the CORECONF server to further qualify a
       missing-element error. This error is returned when the
       CORECONF client tries to create or list instance, without all
       the 'key' specified or when the CORECONF client tries to
       delete a leaf listed as a 'key'.";
  }

  identity missing-input-parameter {
    base error-app-tag;
    description
      "Returned by the CORECONF server when the input parameters
       of a RPC or action are incomplete.";
  }

  identity instance-required {
    base error-app-tag;
    description
      "Returned by the CORECONF server when a leaf of type
       'instance-identifier' or 'leafref' marked with
       require-instance set to 'true' refers to an instance
       that does not exist.";
  }

  identity missing-choice {
    base error-app-tag;
    description
      "Returned by the CORECONF server when no nodes exist in a
       mandatory choice.";
  }

  rc:yang-data coreconf-error {
    container error {
      description
        "Optional payload of a 4.00 Bad Request CoAP error.";

      leaf error-tag {
        type identityref {
          base error-tag;
        }
        mandatory true;
        description
          "The enumerated error-tag.";
      }

      leaf error-app-tag {
        type identityref {
          base error-app-tag;
        }
        description
          "The application-specific error-tag.";
      }

      leaf error-data-node {
        type instance-identifier;
        description
          "When the error reported is caused by a specific data node,
           this leaf identifies the data node in error.";
      }

      leaf error-message {
        type string;
        description
          "A message describing the error.";
      }
    }
  }
}
]]></sourcecode>
    </section>
    <section anchor="ietf-coreconf-sid">
      <name>ietf-coreconf .sid file</name>
      <artwork align="left"><![CDATA[
{
  "assignment-ranges": [
    {
      "entry-point": 1000,
      "size": 100
    }
  ],
  "module-name": "ietf-coreconf",
  "module-revision": "2023-03-13",
  "items": [
    {
      "namespace": "module",
      "identifier": "ietf-coreconf",
      "sid": 1000
    },
    {
      "namespace": "identity",
      "identifier": "bad-element",
      "sid": 1001
    },
    {
      "namespace": "identity",
      "identifier": "data-missing",
      "sid": 1002
    },
    {
      "namespace": "identity",
      "identifier": "data-not-unique",
      "sid": 1003
    },
    {
      "namespace": "identity",
      "identifier": "duplicate",
      "sid": 1004
    },
    {
      "namespace": "identity",
      "identifier": "error",
      "sid": 1005
    },
    {
      "namespace": "identity",
      "identifier": "error-app-tag",
      "sid": 1006
    },
    {
      "namespace": "identity",
      "identifier": "error-tag",
      "sid": 1007
    },
    {
      "namespace": "identity",
      "identifier": "instance-required",
      "sid": 1008
    },
    {
      "namespace": "identity",
      "identifier": "invalid-datatype",
      "sid": 1009
    },
    {
      "namespace": "identity",
      "identifier": "invalid-length",
      "sid": 1010
    },
    {
      "namespace": "identity",
      "identifier": "invalid-value",
      "sid": 1011
    },
    {
      "namespace": "identity",
      "identifier": "malformed-message",
      "sid": 1012
    },
    {
      "namespace": "identity",
      "identifier": "missing-choice",
      "sid": 1013
    },
    {
      "namespace": "identity",
      "identifier": "missing-element",
      "sid": 1014
    },
    {
      "namespace": "identity",
      "identifier": "missing-input-parameter",
      "sid": 1015
    },
    {
      "namespace": "identity",
      "identifier": "missing-key",
      "sid": 1016
    },
    {
      "namespace": "identity",
      "identifier": "must-violation",
      "sid": 1017
    },
    {
      "namespace": "identity",
      "identifier": "not-in-range",
      "sid": 1018
    },
    {
      "namespace": "identity",
      "identifier": "operation-failed",
      "sid": 1019
    },
    {
      "namespace": "identity",
      "identifier": "pattern-test-failed",
      "sid": 1020
    },
    {
      "namespace": "identity",
      "identifier": "too-few-elements",
      "sid": 1021
    },
    {
      "namespace": "identity",
      "identifier": "too-many-elements",
      "sid": 1022
    },
    {
      "namespace": "identity",
      "identifier": "unified",
      "sid": 1029
    },
    {
      "namespace": "identity",
      "identifier": "unknown-element",
      "sid": 1023
    },
    {
      "namespace": "data",
      "identifier": "/ietf-coreconf:error",
      "sid": 1024
    },
    {
      "namespace": "data",
      "identifier": "/ietf-coreconf:error/error-app-tag",
      "sid": 1025
    },
    {
      "namespace": "data",
      "identifier": "/ietf-coreconf:error/error-data-node",
      "sid": 1026
    },
    {
      "namespace": "data",
      "identifier": "/ietf-coreconf:error/error-message",
      "sid": 1027
    },
    {
      "namespace": "data",
      "identifier": "/ietf-coreconf:error/error-tag",
      "sid": 1028
    }
  ]
}
]]></artwork>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>We are very grateful to <contact fullname="Bert Greevenbosch"/> who was one of the original authors
of the CORECONF specification.</t>
      <t><contact fullname="Mehmet Ersue"/> and <contact fullname="Bert Wijnen"/> explained the encoding aspects of PDUs transported
under SNMP.
<contact fullname="Koen Zandberg"/>'s implementation input motivated massively simplifying
(and fixing) the URI construction for GET/PUT/POST requests.</t>
      <t>The draft has further benefited from comments (alphabetical order) by
<contact fullname="Rodney Cummings"/>,
<contact fullname="Dee Denteneer"/>,
<contact fullname="Esko Dijk"/>,
<contact fullname="Klaus Hartke"/>,
<contact fullname="Michael van Hartskamp"/>,
<contact fullname="Tanguy Ropitault"/>,
<contact fullname="Jürgen Schönwälder"/>,
<contact fullname="Anuj Sehgal"/>,
<contact fullname="Zach Shelby"/>,
<contact fullname="Hannes Tschofenig"/>,
<contact fullname="Michael Verschoor"/>,
and
<contact fullname="Thomas Watteyne"/>.</t>
    </section>
    <section anchor="contributors" numbered="false" toc="include" removeInRFC="false">
      <name>Contributors</name>
      <contact initials="I. I." surname="Petrov" fullname="Ivaylo Petrov">
        <organization>Acklio</organization>
        <address>
          <postal>
            <street>1137A avenue des Champs Blancs</street>
            <city>Cesson-Sevigne</city>
            <code>35510</code>
            <country>France</country>
          </postal>
          <email>ivaylo@ackl.io</email>
        </address>
      </contact>
    </section>
  </back>
  <!-- ##markdown-source:
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
VyYBAA==

-->

</rfc>
