<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.30 (Ruby 3.4.8) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-core-uri-path-abbrev-03" category="std" consensus="true" submissionType="IETF" updates="7252" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title abbrev="Uri-Path-Abbrev">URI-Path abbreviation in CoAP</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-core-uri-path-abbrev-03"/>
    <author initials="C." surname="Amsüss" fullname="Christian Amsüss">
      <organization/>
      <address>
        <postal>
          <country>Austria</country>
        </postal>
        <email>christian@amsuess.com</email>
      </address>
    </author>
    <author initials="M." surname="Richardson" fullname="Michael Richardson">
      <organization>Sandelman Software Works</organization>
      <address>
        <email>mcr+ietf@sandelman.ca</email>
      </address>
    </author>
    <date year="2026" month="March" day="02"/>
    <workgroup>CoRE</workgroup>
    <keyword>coap</keyword>
    <abstract>
      <?line 51?>

<t>Applications built on CoAP face a conflict between the technical need for short message sizes
and the interoperability requirement of following BCP190
and thus using (relatively verbose) well-known URI paths.
This document introduces a CoAP option that allows expressing well-known URI paths in as little as two bytes.</t>
      <t>Negotiating the use of this option between client and server revealed a subtle flaw in RFC7252.
This document updates RFC7252 to rectify it, thus making the extension point of critical options more useful.</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-uri-path-abbrev/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Constrained RESTful Environments 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/uri-path-abbrev"/>.</t>
    </note>
  </front>
  <middle>
    <?line 61?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>When building application components on CoAP (<xref target="RFC7252"/>),
sending small messages is a general goal in the ecosystem
(i.e., constrained environments, where data rates are limited and large packets can lead to packet loss, see <xref target="RFC7228"/>).
While CoAP can operate with a wide range of URIs,
short path names are therefore favored.</t>
      <t>Those short path names need to be discovered, and <xref target="RFC7252"/> and <xref target="RFC6690"/> provide mechanisms for that.
Applications that can not discover such paths because they precede a discovery step,
such as the discovery itself, setting up a security context (<xref target="RFC9528"/>) or establishing an initial identity (<xref target="RFC9148"/>)
can not rely on discovered short paths,
and need to use well-known paths.
The best practice established in <xref target="BCP190"/>
requires applications to use the prefix ".well-known" for their paths,
making the combined size of the URI path options easily longer than the rest of the CoAP message.</t>
      <t>This document establishes a CoAP option that allows abbreviating the path component of the request URI by encoding
the path component as a single number.
A registry is established to maintain the mapping between numbers and URI paths.</t>
      <section anchor="motivating-example">
        <name>Motivating example</name>
        <t>The design criteria for EDHOC <xref target="RFC9528"/> described in <xref section="2.11" sectionFormat="of" target="I-D.ietf-lake-reqs-04"/>
give a frame fragmentation limit of 47 bytes for a CoAP message payload for 6TiSCH and 51 bytes for some parameters (and implementations) of LoRaWAN,
and imply high performance penalties of a CoAP message not fitting in a single frame.
An EDHOC message 1 on its own carries a minimum of 37 bytes.
The 18 bytes of an encoded "/.well-known/edhoc" URI path push the CoAP message size over either limit,
whereas an equivalent Uri-Path-Abbrev option lets the message stay well below these limits.</t>
      </section>
      <section anchor="update-to-rfc7252">
        <name>Update to RFC7252</name>
        <t>The use of a critical CoAP option that is not understood by the server has a CoAP response error code (4.02 Bad Option) assigned,
which generally enables clients to retry without using the critical option.
This mechanism is useful for the abbreviation mechanism of this document.</t>
        <t>That mechanism got conflated into the mechanism of <em>rejecting</em> a request established in <xref section="1.2" sectionFormat="of" target="RFC7252"/> for handling unprocessable non-confirmable messages,
which makes detection of missing option support less reliable.</t>
        <t><xref target="update7252"/> of this document updates <xref section="5.4.1" sectionFormat="of" target="RFC7252"/> to alter the behavior of servers when they receive an unsupported critical option in a non-confirmable message.</t>
      </section>
      <section anchor="conventions-and-definitions">
        <name>Conventions and Definitions</name>
        <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
        <?line -18?>

<t>This document assumes basic familiarity with CoAP (<xref target="RFC7252"/>),
in particular its Uri-* options.</t>
        <t>The term "expand" is used to refer to the process of translating a Uri-Path-Abbrev option into an equivalent
sequence of Uri-Path options.
The term "abbreviate" is used to refer to the reverse process of translating a sequence of one or more Uri-Path
options into a single Uri-Path-Abbrev option.</t>
      </section>
    </section>
    <section anchor="the-uri-path-abbrev-option">
      <name>The Uri-Path-Abbrev option</name>
      <t>The Uri-Path-Abbrev option (short for "URI path, abbreviated") expresses a request's URI path in a more compact form.</t>
      <t>The Uri-Path-Abbrev value represents a particular URI path,
and is thus equivalent to any number of Uri-Path options.
Those paths are typically in a "/.well-known" location as described in <xref target="RFC8615"/>.
The numeric option values are coordinated by IANA in the Uri-Path-Abbrev registry established in this document in <xref target="iana-reg"/>.</t>
      <table anchor="option-table">
        <name>Uri-Path-Abbrev Option Summary (C = Critical, U = Unsafe, N = NoCacheKey, R = Repeatable)</name>
        <thead>
          <tr>
            <th align="left">No.</th>
            <th align="left">C</th>
            <th align="left">U</th>
            <th align="left">N</th>
            <th align="left">R</th>
            <th align="left">Name</th>
            <th align="left">Format</th>
            <th align="left">Len.</th>
            <th align="left">Default</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">CPA13</td>
            <td align="left">x</td>
            <td align="left"> </td>
            <td align="left"> </td>
            <td align="left"> </td>
            <td align="left">Uri-Path-Abbrev</td>
            <td align="left">uint</td>
            <td align="left">0-4</td>
            <td align="left">(none)</td>
          </tr>
        </tbody>
      </table>
      <t><cref anchor="cpa">RFC-Editor: This document uses the CPA (code point allocation)
  convention described in <xref target="I-D.bormann-cbor-draft-numbers"/>.  For
  each usage of the term "CPA", please remove the prefix "CPA"
  from the indicated value and replace the residue with the value
  assigned by IANA; perform an analogous substitution for all other
  occurrences of the prefix "CPA" in the document.  Finally,
  please remove this note.
  There is one occurrence of the value 13 encoded in <tt>a1270d</tt>,
  which, if the number were to change, would need updating.</cref></t>
      <t>The option is critical, safe-to-forward, part of the cache key, non-repeatable
and used in CoAP requests.
<xref target="option-table"/> summarizes these, extending Table 4 of <xref target="RFC7252"/>).
Its OSCORE treatment is as Class E (<xref target="RFC8613"/>).</t>
      <t>The option has an integer value
from the registry established in <xref target="iana-reg"/>.</t>
      <t>Apart from the format and repeatability,
the option's properties only deviate from the Uri-Path (for which it stands in)
in that this option is safe to forward.
This has consequences for its interactions with the Proxy-URI option,
but these consequences are generally desirable:
It allows the option to be used with CoAP proxies that do not implement the option.</t>
      <section anchor="server-processing">
        <name>Server processing</name>
        <t>A CoAP server receiving this option processes it like the equivalent sequence of Uri-Path options.</t>
        <t>A server that supports a specific Uri-Path-Abbrev value
<bcp14>MUST</bcp14> also support the equivalent request where the URI path is composed of Uri-Path options.</t>
        <t>A server receiving the option with an unknown value <bcp14>MUST</bcp14> treat it as an unprocessable critical option,
returning a 4.02 Bad Option response,
and <bcp14>MUST NOT</bcp14> return a 4.04 Not Found response,
because the equivalent path may be present on the server.</t>
        <t>Since CoAP clients that use the option are usually aware of the possibility of failure,
there is no need to provide a diagnostic payload in the error (as is generally recommended in <xref section="5.4.1" sectionFormat="of" target="RFC7252"/>).
A machine-readable (and, albeit beyond the scope of this document, actionable) response is described in <xref section="3.1.1" sectionFormat="of" target="RFC9290"/>:
the server can set Content-Format 257 in the response and send the payload <tt>a1270d</tt>,
which is the CBOR encoding for the CoAP problem detail "Unprocessed CoAP option" with the value CPA13.</t>
      </section>
      <section anchor="client-processing">
        <name>Client processing</name>
        <t>A CoAP client can use the option instead of one or more Uri-Path option(s) if there is a suitable Uri-Path-Abbrev value
that can express the requested URI path.</t>
        <t>The option <bcp14>SHOULD</bcp14> only be sent when it is known that the CoAP server has support for the concrete value.
This knowledge is typically not learned/discovered, but follows from other specifications mandating support for it.</t>
        <t>A client can also send a value if it is merely likely that the server supports it.
(The decision threshold varies by application, but generally it's closer to 95% than a mere more-likely-than-not).
This is called "tentative use" of the option.</t>
        <t>In that case, the client needs to reliably detect failure of the option processing,
and needs to fall back to repeating the request with the Uri-Path spelled out (using Uri-Path options),
to operate reliably.</t>
        <t>The client can expect that a server which does not support the Uri-Path-Abbrev option
responds with 4.02 Bad Option.
Diverging behavior has been allowed until the changes in <xref target="update7252"/> have been made.
To account for older servers, the full set of reactions to expect is:</t>
        <ol spacing="normal" type="1"><li>
            <t>A 4.02 Bad Option response.</t>
          </li>
          <li>
            <t>A 5.02 Bad Gateway response caused by a proxy that received a RST message or lack of response.</t>
          </li>
          <li>
            <t>A RST message caused by handling of a Non-confirmable request message.</t>
          </li>
          <li>
            <t>Not receiving a response to a Non-confirmable request message.</t>
          </li>
        </ol>
        <t>Some of the complexity of detecting lack of server-side support (items 3 and 4) can be avoided
by not using the option with Non-confirmable requests in tentative use.
Clients that know that the server supports <em>any</em> Uri-Path-Abbrev value can trust the server to reliably produce 4.02 Bad Option for other cases.</t>
        <t>As CoAP multicast requests generally do not result in errors being returned,
tentative use is not available for multicast requests.</t>
        <t>A generic client implementation <bcp14>SHOULD NOT</bcp14> use this option
without explicit instructions from a higher layer or the known specification of the numeric value,
because conditions for tentative use are generally not met in this case.</t>
      </section>
      <section anchor="proxy-processing">
        <name>Proxy processing</name>
        <t>A proxy <bcp14>MAY</bcp14> expand into Uri-Path options, or abbreviate to a Uri-Path-Abbrev option, before consulting its cache.</t>
        <t>It <bcp14>MAY</bcp14> expand a Uri-Path-Abbrev option before forwarding,
in particular if it has reason to assume that the option is not understood by the receiver.
Like a generic client, it <bcp14>SHOULD NOT</bcp14> abbreviate without good reason;
and if it does, it <bcp14>MUST</bcp14> be able to fall back to the expanded form upon failure, as to not introduce unexpected errors to the client.</t>
        <t>A proxy that knows the Uri-Path-Abbrev option but not the concrete value at hand
<bcp14>SHOULD</bcp14> forward a request unmodified,
which is the behavior it would apply if it did not know the option.
A valid exception where the proxy can reject the request instead is when the proxy is tasked with enforcing access control
(see <xref target="seccons"/>).</t>
        <t>When cross-proxying to protocols that cannot transport this option
(such as HTTP),
the proxy needs to expand the path always.
<!-- No need to state anything about the inverse direction, as the 2nd paragraph applies. -->
        </t>
      </section>
      <section anchor="interactions">
        <name>Interaction with other options</name>
        <t>The option is mutually exclusive with the Uri-Path option.
Receiving both options in a single request, a server <bcp14>MUST</bcp14> treat the Uri-Path-Abbrev option as a critical request option that could not be processed.</t>
        <t>The Uri-Path-Abbrev option <bcp14>MUST NOT</bcp14> be used in combination with the Proxy-Uri option (or the similar Proxy-CRI option (of <xref target="I-D.ietf-core-href"/>)) by clients.
Proxies that understand Uri-Path-Abbrev and convert Uri-* options into Proxy-Uri <bcp14>MUST</bcp14> expand any Uri-Path-Abbrev option if they know the value.</t>
        <t>In theory, when there is a chain of proxies, an proxy that is unaware of the safe-to-forward Uri-Path-Abbrev could combine the Proxy-Scheme and the Uri-* options
(but, being unaware of its existence, not Uri-Path-Abbrev)
into a single Proxy-URI/-CRI option.
Servers that support both Uri-Path-Abbrev and Proxy-URI/-CRI <bcp14>SHOULD</bcp14> decompose the Proxy-* option into Uri-* options before further processing,
which entails an error response if both Uri-Path and Uri-Path-Abbrev are present.
(This is not a strict requirement, as there are no known implementations of proxies that actually compose a Proxy-URI/-CRI from individual options,
nor is there a reason known why they should).</t>
      </section>
      <section anchor="choice-of-the-option-number">
        <name>Choice of the option number</name>
        <t><cref anchor="removeme">RFC-Editor: Please remove this section during publication.
    It is valuable only to the working group and designated experts who manage the limited resource of option numbers,
    and stays available for future documents that may want to apply similar rationale throughout the draft versions.</cref></t>
        <t>The option's desired properties (critical, safe-to-forward, part of the cache key) limit the available number space
to patterns ending with 0bXXX01 where XXX is not 111.
All options encodable with a short (1+0-byte) delta, i.e. &lt;= 12, are already assigned.
Usually, we'd then look at other options this is typically combined with,
and if there are none (as is the case here),
go for a large value in the next more efficient (1+1-byte) space
so that the small-but-quite-not-1+0-byte numbers stay usable as 1+0-byte options when combined in their "favorite pairings".
(This was done with the EDHOC option <xref target="RFC9528"/> which is usually paired with the OSCORE option <xref target="RFC8613"/>).</t>
        <t>However, in this case, there is an extra concern:
The option number should also be smaller than Uri-Query,
so that processing the options in a linear fashion
can happen as it would happen with Uri-Path:
the path gets processed first, setting up a state machine to process the query.
As Uri-Query has option number 15, the value 13 is the only good choice for the Uri-Path-Abbrev option.</t>
      </section>
    </section>
    <section anchor="initial">
      <name>Initial Uri-Path-Abbrev values</name>
      <t>This document registers values for the following well-known URIs:</t>
      <ul spacing="normal">
        <li>
          <t><tt>/.well-known/core</tt></t>
        </li>
        <li>
          <t><tt>/.well-known/rd</tt> (see <xref target="RFC9175"/>)</t>
        </li>
        <li>
          <t><tt>/.well-known/edhoc</tt> (see <xref target="RFC9528"/>)</t>
        </li>
        <li>
          <t>For EST (<xref target="RFC9148"/>):
          </t>
          <ul spacing="normal">
            <li>
              <t><tt>/.well-known/est/crts</tt></t>
            </li>
            <li>
              <t><tt>/.well-known/est/sen</tt></t>
            </li>
            <li>
              <t><tt>/.well-known/est/sren</tt></t>
            </li>
            <li>
              <t><tt>/.well-known/est/skg</tt></t>
            </li>
            <li>
              <t><tt>/.well-known/est/skc</tt></t>
            </li>
            <li>
              <t><tt>/.well-known/est/att</tt></t>
            </li>
          </ul>
          <t>
EST does allow using other paths, such as different root resources or arbitrary labels;
for those, no abbreviations are supported in this document.</t>
        </li>
        <li>
          <t>For <xref target="I-D.ietf-anima-constrained-voucher"/>:
          </t>
          <ul spacing="normal">
            <li>
              <t><tt>/.well-known/brski/es</tt></t>
            </li>
            <li>
              <t><tt>/.well-known/brski/rv</tt></t>
            </li>
            <li>
              <t><tt>/.well-known/brski/vs</tt></t>
            </li>
          </ul>
        </li>
      </ul>
      <t>Note that the <tt>core</tt> and <tt>rd</tt> paths are commonly used together with Uri-Query options.</t>
    </section>
    <section anchor="implementation-status">
      <name>Implementation Status</name>
      <t>This section records the status of known implementations of the
protocol defined by this specification at the time of posting of
this Internet-Draft, and is based on a proposal described in
<xref target="RFC7942"/>.  The description of implementations in this section is
intended to assist the IETF in its decision processes in
progressing drafts to RFCs.  Please note that the listing of any
individual implementation here does not imply endorsement by the
IETF.  Furthermore, no effort has been spent to verify the
information presented here that was supplied by IETF contributors.
This is not intended as, and must not be construed to be, a
catalog of available implementations or their features.  Readers
are advised to note that other implementations may exist.</t>
      <t>According to <xref target="RFC7942"/>, "this will allow reviewers and working
groups to assign due consideration to documents that have the
benefit of running code, which may serve as evidence of valuable
experimentation and feedback that have made the implemented
protocols more mature.  It is up to the individual working groups
to use this information as they see fit".
<?line -20?>
      </t>
      <ul spacing="normal">
        <li>
          <t>aiocoap <eref target="https://christian.amsuess.com/tools/aiocoap/">https://christian.amsuess.com/tools/aiocoap/</eref>  </t>
          <t>
A general-purpose implementation of CoAP for unconstrained sytems,
published under MIT License.  </t>
          <t>
In its current main branch,
the implementation covers the server side of this specification,
applying expansion automatically before looking up which resource to serve.
For client, all it provides is the option field where to place a number if the application decides it is suitable,
relying on the client application to perform the fallback.  </t>
          <t>
It implements version ietf-core-uri-path-abbrev-01.
Implementation experience:
generally straightforward.  </t>
          <t>
The biggest trouble during implementation was that originally,
it was attempted to give the server application access to information on whether or not Uri-Path-Abbrev was uses.
This was resolved by just not exposing the information --
after all, that is probably good layering practice anyway.  </t>
          <t>
Contact information: Christian Amsüss (author), updated 2025-09-26</t>
        </li>
        <li>
          <t>libcoap (preliminary)  </t>
          <t>
A report on a yet unpublished implementation and related tests of ietf-core-uri-path-abbrev-01 in libcoap
has been submitted at <eref target="https://github.com/core-wg/uri-path-abbrev/issues/25">https://github.com/core-wg/uri-path-abbrev/issues/25</eref> on 2025-10-01.</t>
        </li>
      </ul>
    </section>
    <section anchor="seccons">
      <name>Security Considerations</name>
      <t>Having alternative expressions for information that is input to policy decisions
can be problematic when the mechanism performing the check has a different interpretation of the presented data than the mechanism at time of use.
That concern is not new to this document:
Both the Proxy-Uri of <xref target="RFC7252"/> and the Proxy-Cri option of <xref target="I-D.ietf-core-href"/> have the same properties in that regard.
The appropriate behavior is for policy checkers to reject any request that contains critical options that are not understood;
the application protected by the checker may provide the checker with an allow-list of options that it will treat as unchecked input.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <section anchor="iana-option">
        <name>CoAP option: Uri-Path-Abbrev</name>
        <t>IANA is requested to enter one option into the CoAP Option Numbers registry in the CoRE Parameters registry group:</t>
        <ul spacing="normal">
          <li>
            <t>Number: CPA13</t>
          </li>
          <li>
            <t>Name: Uri-Path-Abbrev</t>
          </li>
          <li>
            <t>Reference: this document</t>
          </li>
        </ul>
      </section>
      <section anchor="iana-reg">
        <name>Uri-Path-Abbrev registry</name>
        <t>IANA is requested to establish a new registry in the CoRE parameters registry group.
The value of the first Uri-Path-Abbrev option in a CoAP request corresponds to a URI path entry in this registry.</t>
        <t>The policy for adding any value is IETF Review (as described in <xref target="RFC8126"/>).
Change control for the registry follows this document's publication stream.
Initial values for the registry are given in <xref target="initial-table"/>.</t>
        <t>The required fields for each registration are:</t>
        <ul spacing="normal">
          <li>
            <t>Option value.  </t>
            <t>
A non-negative integer (uint) that can be expressed in 32 bits,
unique within this registry.  </t>
            <t>
All positive values whose most significant bit of the most significant non-zero byte is '1'
are reserved.  </t>
            <t>
The Python invocation
<tt>python3 -c 'print("reserved" if (250).bit_length() % 8 == 0 else "unreserved")'</tt>
can be used to quickly test this property for any positive number (250 in this example).</t>
          </li>
          <li>
            <t>Expanded path.  </t>
            <t>
This text is the URI path (starting with <tt>/</tt>) that the option
is expanded to.</t>
          </li>
          <li>
            <t>Reference.  </t>
            <t>
A document that requested the allocation.</t>
          </li>
        </ul>
        <t>Reviewer instructions:</t>
        <t>The reviewer is instructed to be frugal with the 128 values that correspond to a single-byte option value,
focusing on applications that are expected to be useful in different constrained ecosystems.</t>
        <t>The expanded path is expected to be a well-known path (<xref target="RFC8615"/>) at the time of writing,
but it is up to the reviewers to exceptionally also admit paths that are not well-known.</t>
        <table anchor="initial-table">
          <name>Initial values for the Uri-Path-Abbrev registry</name>
          <thead>
            <tr>
              <th align="left">Option value</th>
              <th align="left">Expanded path</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">0</td>
              <td align="left">/.well-known/core</td>
              <td align="left">
                <xref target="initial"/> of this document</td>
            </tr>
            <tr>
              <td align="left">1</td>
              <td align="left">/.well-known/rd</td>
              <td align="left">
                <xref target="initial"/> of this document, and <xref target="RFC9176"/></td>
            </tr>
            <tr>
              <td align="left">2</td>
              <td align="left">/.well-known/edhoc</td>
              <td align="left">
                <xref target="initial"/> of this document, and <xref target="RFC9528"/></td>
            </tr>
            <tr>
              <td align="left">301</td>
              <td align="left">/.well-known/est/crts</td>
              <td align="left">
                <xref target="initial"/> of this document, and <xref target="RFC9148"/></td>
            </tr>
            <tr>
              <td align="left">302</td>
              <td align="left">/.well-known/est/sen</td>
              <td align="left">
                <xref target="initial"/> of this document, and <xref target="RFC9148"/></td>
            </tr>
            <tr>
              <td align="left">303</td>
              <td align="left">/.well-known/est/sren</td>
              <td align="left">
                <xref target="initial"/> of this document, and <xref target="RFC9148"/></td>
            </tr>
            <tr>
              <td align="left">304</td>
              <td align="left">/.well-known/est/skg</td>
              <td align="left">
                <xref target="initial"/> of this document, and <xref target="RFC9148"/></td>
            </tr>
            <tr>
              <td align="left">305</td>
              <td align="left">/.well-known/est/skc</td>
              <td align="left">
                <xref target="initial"/> of this document, and <xref target="RFC9148"/></td>
            </tr>
            <tr>
              <td align="left">306</td>
              <td align="left">/.well-known/est/att</td>
              <td align="left">
                <xref target="initial"/> of this document, and <xref target="RFC9148"/></td>
            </tr>
            <tr>
              <td align="left">401</td>
              <td align="left">/.well-known/brski/es</td>
              <td align="left">
                <xref target="initial"/> of this document, and <xref target="I-D.ietf-anima-constrained-voucher"/></td>
            </tr>
            <tr>
              <td align="left">402</td>
              <td align="left">/.well-known/brski/rv</td>
              <td align="left">
                <xref target="initial"/> of this document, and <xref target="I-D.ietf-anima-constrained-voucher"/></td>
            </tr>
            <tr>
              <td align="left">403</td>
              <td align="left">/.well-known/brski/vs</td>
              <td align="left">
                <xref target="initial"/> of this document, and <xref target="I-D.ietf-anima-constrained-voucher"/></td>
            </tr>
          </tbody>
        </table>
        <!-- We could also say in prose to take them from there and list the numbers there, but it is useful for later registrant to have a ready-made template in the document that sets things up. -->

</section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC7252">
          <front>
            <title>The Constrained Application Protocol (CoAP)</title>
            <author fullname="Z. Shelby" initials="Z." surname="Shelby"/>
            <author fullname="K. Hartke" initials="K." surname="Hartke"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <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="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC7228">
          <front>
            <title>Terminology for Constrained-Node Networks</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="M. Ersue" initials="M." surname="Ersue"/>
            <author fullname="A. Keranen" initials="A." surname="Keranen"/>
            <date month="May" year="2014"/>
            <abstract>
              <t>The Internet Protocol Suite is increasingly used on small devices with severe constraints on power, memory, and processing resources, creating constrained-node networks. This document provides a number of basic terms that have been useful in the standardization work for constrained-node networks.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7228"/>
          <seriesInfo name="DOI" value="10.17487/RFC7228"/>
        </reference>
        <reference anchor="RFC6690">
          <front>
            <title>Constrained RESTful Environments (CoRE) Link Format</title>
            <author fullname="Z. Shelby" initials="Z." surname="Shelby"/>
            <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="RFC9528">
          <front>
            <title>Ephemeral Diffie-Hellman Over COSE (EDHOC)</title>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <author fullname="J. Preuß Mattsson" initials="J." surname="Preuß Mattsson"/>
            <author fullname="F. Palombini" initials="F." surname="Palombini"/>
            <date month="March" year="2024"/>
            <abstract>
              <t>This document specifies Ephemeral Diffie-Hellman Over COSE (EDHOC), a very compact and lightweight authenticated Diffie-Hellman key exchange with ephemeral keys. EDHOC provides mutual authentication, forward secrecy, and identity protection. EDHOC is intended for usage in constrained scenarios, and a main use case is to establish an Object Security for Constrained RESTful Environments (OSCORE) security context. By reusing CBOR Object Signing and Encryption (COSE) for cryptography, Concise Binary Object Representation (CBOR) for encoding, and Constrained Application Protocol (CoAP) for transport, the additional code size can be kept very low.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9528"/>
          <seriesInfo name="DOI" value="10.17487/RFC9528"/>
        </reference>
        <reference anchor="RFC9148">
          <front>
            <title>EST-coaps: Enrollment over Secure Transport with the Secure Constrained Application Protocol</title>
            <author fullname="P. van der Stok" initials="P." surname="van der Stok"/>
            <author fullname="P. Kampanakis" initials="P." surname="Kampanakis"/>
            <author fullname="M. Richardson" initials="M." surname="Richardson"/>
            <author fullname="S. Raza" initials="S." surname="Raza"/>
            <date month="April" year="2022"/>
            <abstract>
              <t>Enrollment over Secure Transport (EST) is used as a certificate provisioning protocol over HTTPS. Low-resource devices often use the lightweight Constrained Application Protocol (CoAP) for message exchanges. This document defines how to transport EST payloads over secure CoAP (EST-coaps), which allows constrained devices to use existing EST functionality for provisioning certificates.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9148"/>
          <seriesInfo name="DOI" value="10.17487/RFC9148"/>
        </reference>
        <referencegroup anchor="BCP190" target="https://www.rfc-editor.org/info/bcp190">
          <reference anchor="RFC8820" target="https://www.rfc-editor.org/info/rfc8820">
            <front>
              <title>URI Design and Ownership</title>
              <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
              <date month="June" year="2020"/>
              <abstract>
                <t>Section 1.1.1 of RFC 3986 defines URI syntax as "a federated and extensible naming system wherein each scheme's specification may further restrict the syntax and semantics of identifiers using that scheme." In other words, the structure of a URI is defined by its scheme. While it is common for schemes to further delegate their substructure to the URI's owner, publishing independent standards that mandate particular forms of substructure in URIs is often problematic.</t>
                <t>This document provides guidance on the specification of URI substructure in standards.</t>
                <t>This document obsoletes RFC 7320 and updates RFC 3986.</t>
              </abstract>
            </front>
            <seriesInfo name="BCP" value="190"/>
            <seriesInfo name="RFC" value="8820"/>
            <seriesInfo name="DOI" value="10.17487/RFC8820"/>
          </reference>
        </referencegroup>
        <reference anchor="I-D.ietf-lake-reqs-04">
          <front>
            <title>Requirements for a Lightweight AKE for OSCORE</title>
            <author fullname="Mališa Vučinić" initials="M." surname="Vučinić">
              <organization>Inria</organization>
            </author>
            <author fullname="Göran Selander" initials="G." surname="Selander">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="John Preuß Mattsson" initials="J. P." surname="Mattsson">
              <organization>Ericsson AB</organization>
            </author>
            <author fullname="Dan Garcia-Carillo" initials="D." surname="Garcia-Carillo">
              <organization>Odin Solutions S.L.</organization>
            </author>
            <date day="8" month="June" year="2020"/>
            <abstract>
              <t>   This document compiles the requirements for a lightweight
   authenticated key exchange protocol for OSCORE.  This draft has
   completed a working group last call (WGLC) in the LAKE working group.
   Post-WGLC, the requirements are considered sufficiently stable for
   the working group to proceed with its work.  It is not currently
   planned to publish this draft as an RFC.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-lake-reqs-04"/>
        </reference>
        <reference anchor="RFC8615">
          <front>
            <title>Well-Known Uniform Resource Identifiers (URIs)</title>
            <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
            <date month="May" year="2019"/>
            <abstract>
              <t>This memo defines a path prefix for "well-known locations", "/.well-known/", in selected Uniform Resource Identifier (URI) schemes.</t>
              <t>In doing so, it obsoletes RFC 5785 and updates the URI schemes defined in RFC 7230 to reserve that space. It also updates RFC 7595 to track URI schemes that support well-known URIs in their registry.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8615"/>
          <seriesInfo name="DOI" value="10.17487/RFC8615"/>
        </reference>
        <reference anchor="I-D.bormann-cbor-draft-numbers">
          <front>
            <title>Managing CBOR codepoints in Internet-Drafts</title>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <date day="12" month="January" year="2026"/>
            <abstract>
              <t>   CBOR-based protocols often make use of numbers allocated in a
   registry.  During development of the protocols, those numbers may not
   yet be available.  This impedes the generation of data models and
   examples that actually can be used by tools.

   This short draft proposes a common way to handle these situations,
   without any changes to existing tools.  Also, in conjunction with the
   application-oriented EDN literal e'', a further reduction in
   editorial processing of CBOR examples around the time of approval can
   be achieved.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-bormann-cbor-draft-numbers-07"/>
        </reference>
        <reference anchor="RFC8613">
          <front>
            <title>Object Security for Constrained RESTful Environments (OSCORE)</title>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <author fullname="J. Mattsson" initials="J." surname="Mattsson"/>
            <author fullname="F. Palombini" initials="F." surname="Palombini"/>
            <author fullname="L. Seitz" initials="L." surname="Seitz"/>
            <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="RFC9290">
          <front>
            <title>Concise Problem Details for Constrained Application Protocol (CoAP) APIs</title>
            <author fullname="T. Fossati" initials="T." surname="Fossati"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="October" year="2022"/>
            <abstract>
              <t>This document defines a concise "problem detail" as a way to carry machine-readable details of errors in a Representational State Transfer (REST) response to avoid the need to define new error response formats for REST APIs for constrained environments. The format is inspired by, but intended to be more concise than, the problem details for HTTP APIs defined in RFC 7807.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9290"/>
          <seriesInfo name="DOI" value="10.17487/RFC9290"/>
        </reference>
        <reference anchor="I-D.ietf-core-href">
          <front>
            <title>Constrained Resource Identifiers</title>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <date day="21" month="November" year="2025"/>
            <abstract>
              <t>   The Constrained Resource Identifier (CRI) is a complement to the
   Uniform Resource Identifier (URI) that represents the URI components
   in Concise Binary Object Representation (CBOR) rather than as a
   sequence of characters.  This approach simplifies parsing,
   comparison, and reference resolution in environments with severe
   limitations on processing power, code size, and memory size.

   This RFC updates RFC 7595 by adding a column on the "URI Schemes"
   registry.


   // (This "cref" paragraph will be removed by the RFC editor:) After
   // approval of -28 and nit fixes in -29, the present revision -30
   // contains two more small fixes for nits that were uncovered in the
   // RPC intake process.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-href-30"/>
        </reference>
        <reference anchor="RFC9175">
          <front>
            <title>Constrained Application Protocol (CoAP): Echo, Request-Tag, and Token Processing</title>
            <author fullname="C. Amsüss" initials="C." surname="Amsüss"/>
            <author fullname="J. Preuß Mattsson" initials="J." surname="Preuß Mattsson"/>
            <author fullname="G. Selander" initials="G." surname="Selander"/>
            <date month="February" year="2022"/>
            <abstract>
              <t>This document specifies enhancements to the Constrained Application Protocol (CoAP) that mitigate security issues in particular use cases. The Echo option enables a CoAP server to verify the freshness of a request or to force a client to demonstrate reachability at its claimed network address. The Request-Tag option allows the CoAP server to match block-wise message fragments belonging to the same request. This document updates RFC 7252 with respect to the following: processing requirements for client Tokens, forbidding non-secure reuse of Tokens to ensure response-to-request binding when CoAP is used with a security protocol, and amplification mitigation (where the use of the Echo option is now recommended).</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9175"/>
          <seriesInfo name="DOI" value="10.17487/RFC9175"/>
        </reference>
        <reference anchor="I-D.ietf-anima-constrained-voucher">
          <front>
            <title>Constrained Bootstrapping Remote Secure Key Infrastructure (cBRSKI)</title>
            <author fullname="Michael Richardson" initials="M." surname="Richardson">
              <organization>Sandelman Software Works</organization>
            </author>
            <author fullname="Peter Van der Stok" initials="P." surname="Van der Stok">
              <organization>vanderstok consultancy</organization>
            </author>
            <author fullname="Panos Kampanakis" initials="P." surname="Kampanakis">
              <organization>Cisco Systems</organization>
            </author>
            <author fullname="Esko Dijk" initials="E." surname="Dijk">
              <organization>IoTconsultancy.nl</organization>
            </author>
            <date day="27" month="February" year="2026"/>
            <abstract>
              <t>   This document defines the Constrained Bootstrapping Remote Secure Key
   Infrastructure (cBRSKI) protocol, which provides a solution for
   secure zero-touch onboarding of resource-constrained (IoT) devices
   into the network of a domain owner.  This protocol is designed for
   constrained networks, which may have limited data throughput or may
   experience frequent packet loss. cBRSKI is a variant of the BRSKI
   protocol, which uses an artifact signed by the device manufacturer
   called the "voucher" which enables a new device and the owner's
   network to mutually authenticate.  While the BRSKI voucher data is
   encoded in JSON, cBRSKI uses a compact CBOR-encoded voucher.  The
   BRSKI voucher data definition is extended with new data types that
   allow for smaller voucher sizes.  The Enrollment over Secure
   Transport (EST) protocol, used in BRSKI, is replaced with EST-over-
   CoAPS; and HTTPS used in BRSKI is replaced with DTLS-secured CoAP
   (CoAPS).  This document Updates RFC 8995 and RFC 9148.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-anima-constrained-voucher-30"/>
        </reference>
        <reference anchor="RFC7942">
          <front>
            <title>Improving Awareness of Running Code: The Implementation Status Section</title>
            <author fullname="Y. Sheffer" initials="Y." surname="Sheffer"/>
            <author fullname="A. Farrel" initials="A." surname="Farrel"/>
            <date month="July" year="2016"/>
            <abstract>
              <t>This document describes a simple process that allows authors of Internet-Drafts to record the status of known implementations by including an Implementation Status section. This will allow reviewers and working groups to assign due consideration to documents that have the benefit of running code, which may serve as evidence of valuable experimentation and feedback that have made the implemented protocols more mature.</t>
              <t>This process is not mandatory. Authors of Internet-Drafts are encouraged to consider using the process for their documents, and working groups are invited to think about applying the process to all of their protocol specifications. This document obsoletes RFC 6982, advancing it to a Best Current Practice.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="205"/>
          <seriesInfo name="RFC" value="7942"/>
          <seriesInfo name="DOI" value="10.17487/RFC7942"/>
        </reference>
        <reference anchor="RFC8126">
          <front>
            <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
            <author fullname="M. Cotton" initials="M." surname="Cotton"/>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <author fullname="T. Narten" initials="T." surname="Narten"/>
            <date month="June" year="2017"/>
            <abstract>
              <t>Many protocols make use of points of extensibility that use constants to identify various protocol parameters. To ensure that the values in these fields do not have conflicting uses and to promote interoperability, their allocations are often coordinated by a central record keeper. For IETF protocols, that role is filled by the Internet Assigned Numbers Authority (IANA).</t>
              <t>To make assignments in a given registry prudently, guidance describing the conditions under which new values should be assigned, as well as when and how modifications to existing values can be made, is needed. This document defines a framework for the documentation of these guidelines by specification authors, in order to assure that the provided guidance for the IANA Considerations is clear and addresses the various issues that are likely in the operation of a registry.</t>
              <t>This is the third edition of this document; it obsoletes RFC 5226.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="26"/>
          <seriesInfo name="RFC" value="8126"/>
          <seriesInfo name="DOI" value="10.17487/RFC8126"/>
        </reference>
        <reference anchor="RFC9176">
          <front>
            <title>Constrained RESTful Environments (CoRE) Resource Directory</title>
            <author fullname="C. Amsüss" initials="C." role="editor" surname="Amsüss"/>
            <author fullname="Z. Shelby" initials="Z." surname="Shelby"/>
            <author fullname="M. Koster" initials="M." surname="Koster"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <author fullname="P. van der Stok" initials="P." surname="van der Stok"/>
            <date month="April" year="2022"/>
            <abstract>
              <t>In many Internet of Things (IoT) applications, direct discovery of resources is not practical due to sleeping nodes or networks where multicast traffic is inefficient. These problems can be solved by employing an entity called a Resource Directory (RD), which contains information about resources held on other servers, allowing lookups to be performed for those resources. The input to an RD is composed of links, and the output is composed of links constructed from the information stored in the RD. This document specifies the web interfaces that an RD supports for web servers to discover the RD and to register, maintain, look up, and remove information on resources. Furthermore, new target attributes useful in conjunction with an RD are defined.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9176"/>
          <seriesInfo name="DOI" value="10.17487/RFC9176"/>
        </reference>
        <reference anchor="RFC9457">
          <front>
            <title>Problem Details for HTTP APIs</title>
            <author fullname="M. Nottingham" initials="M." surname="Nottingham"/>
            <author fullname="E. Wilde" initials="E." surname="Wilde"/>
            <author fullname="S. Dalal" initials="S." surname="Dalal"/>
            <date month="July" year="2023"/>
            <abstract>
              <t>This document defines a "problem detail" to carry machine-readable details of errors in HTTP response content to avoid the need to define new error response formats for HTTP APIs.</t>
              <t>This document obsoletes RFC 7807.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9457"/>
          <seriesInfo name="DOI" value="10.17487/RFC9457"/>
        </reference>
        <reference anchor="I-D.ietf-core-corr-clar-03">
          <front>
            <title>Constrained Application Protocol (CoAP): Corrections and Clarifications</title>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <date day="22" month="December" year="2025"/>
            <abstract>
              <t>   RFC 7252 defines the Constrained Application Protocol (CoAP), along
   with a number of additional specifications, including RFC 7641, RFC
   7959, RFC 8132, and RFC 8323.  RFC 6690 defines the link format that
   is used in CoAP self-description documents.

   Some parts of the specification may be unclear or even contain errors
   that may lead to misinterpretations that may impair interoperability
   between different implementations.  The present document provides
   corrections, additions, and clarifications to the RFCs cited; this
   document thus updates these RFCs.  In addition, other clarifications
   related to the use of CoAP in other specifications, including RFC
   7390 and RFC 8075, are also provided.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-core-corr-clar-03"/>
        </reference>
        <reference anchor="RFC8790">
          <front>
            <title>FETCH and PATCH with Sensor Measurement Lists (SenML)</title>
            <author fullname="A. Keränen" initials="A." surname="Keränen"/>
            <author fullname="M. Mohajer" initials="M." surname="Mohajer"/>
            <date month="June" year="2020"/>
            <abstract>
              <t>The Sensor Measurement Lists (SenML) media type and data model can be used to send collections of resources, such as batches of sensor data or configuration parameters. The Constrained Application Protocol (CoAP) FETCH, PATCH, and iPATCH methods enable accessing and updating parts of a resource or multiple resources with one request. This document defines new media types for the CoAP FETCH, PATCH, and iPATCH methods for resources represented using the SenML data model.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8790"/>
          <seriesInfo name="DOI" value="10.17487/RFC8790"/>
        </reference>
      </references>
    </references>
    <?line 443?>

<section anchor="update7252">
      <name>RFC7252-5.4.1: Critical Options and Error Messages</name>
      <t><xref section="1.2" sectionFormat="of" target="RFC7252"/> introduces the concept of <em>rejecting</em> a
message, by sending back a RST (Reset) message or by silently
ignoring the rejected message.
This can deal with messages for which a node does not have (e.g., no
longer has) the necessary context to process it, such as a response to
a message that was sent immediately before a node rebooted.</t>
      <t>The concept of rejecting a message is a quite powerful way to limit
the complexity of dealing with a variety of error conditions.
However, it seems <xref section="5.4.1" sectionFormat="of" target="RFC7252"/> overuses this instrument
for the case of non-confirmable messages.</t>
      <t><xref section="5.4.1" sectionFormat="of" target="RFC7252"/> describes Critical Options, which, if not
implemented/understood by a node, may require the return of server
errors.
For Confirmable messages containing requests, unrecognized critical
options in requests are handled by a 4.02 (Bad Option) response, while
those in Confirmable messages with responses and Acknowledgements are
rejected.</t>
      <blockquote>
        <ul spacing="normal">
          <li>
            <t>Unrecognized options of class "critical" that occur in a
Confirmable request <bcp14>MUST</bcp14> cause the return of a 4.02 (Bad Option)
response.  This response <bcp14>SHOULD</bcp14> include a diagnostic payload
describing the unrecognized option(s) (see Section 5.5.2).</t>
          </li>
          <li>
            <t>Unrecognized options of class "critical" that occur in a
Confirmable response, or piggybacked in an Acknowledgement, <bcp14>MUST</bcp14>
cause the response to be rejected (Section 4.2).</t>
          </li>
        </ul>
      </blockquote>
      <t>The 4.02 error response enables clients to perform discovery of
whether a critical option is recognized by a server, but surprisingly
only for Confirmable messages.</t>
      <t>For unknown reasons, <xref section="5.4.1" sectionFormat="of" target="RFC7252"/> then goes on to handle
all Non-confirmable messages with unrecognized critical options by
rejecting them:</t>
      <blockquote>
        <ul spacing="normal">
          <li>
            <t>Unrecognized options of class "critical" that occur in a
Non-confirmable message <bcp14>MUST</bcp14> cause the message to be rejected
(Section 4.3).</t>
          </li>
        </ul>
      </blockquote>
      <t>This deprives the sender of a Non-confirmable request of the
information what caused the rejection.
However, using Non-confirmable messages does not automatically mean
that the recipient does not have the context needed to process the
message.</t>
      <t>This unexplained inconsistency has been present in <xref target="RFC7252"/> since its
initial publication, apparently without causing much trouble.
Recently, this document has been describing a situation where discovery of
Option support is more central to at least one use case; not being
able to properly perform this discovery for Non-confirmable messages now
emerges as an actual defect.</t>
      <t>This defect can be remedied by applying this change:</t>
      <dl>
        <dt>INCORRECT:</dt>
        <dd>
          <blockquote>
            <ul spacing="normal">
              <li>
                <t>Unrecognized options of class "critical" that occur in a Non-
confirmable message <bcp14>MUST</bcp14> cause the message to be rejected
(Section 4.3).</t>
              </li>
            </ul>
          </blockquote>
        </dd>
        <dt>CORRECTED:</dt>
        <dd>
          <blockquote>
            <ul spacing="normal">
              <li>
                <t>Unrecognized options of class "critical" that occur in a
Non-confirmable request <bcp14>SHOULD</bcp14> cause the return of a 4.02 (Bad Option)
response.  This response <bcp14>SHOULD</bcp14> include a diagnostic payload
describing the unrecognized option(s) (see Section 5.5.2).</t>
              </li>
              <li>
                <t>Unrecognized options of class "critical" that occur in a
Non-confirmable response, or piggybacked in an Acknowledgement, <bcp14>MUST</bcp14>
cause the response to be rejected (Section 4.3).</t>
              </li>
            </ul>
          </blockquote>
        </dd>
      </dl>
      <t>(This replacement text could be integrated in a less redundant way;
the present proposal primarily aims at clarity.)</t>
      <t>Of course, existing implementations will not immediately change their
behavior, so an implementation of a discovery process in this document
will still need to deal with uncertainty for the foreseeable future,
but the likelihood will reduce over time.
Client implementations that are not updated and actually rely on not
receiving an error response in this case will simply reject the
message, causing little downside.</t>
      <t>Note that the <bcp14>SHOULD</bcp14> about diagnostic payloads is repeated here; such
a mandate usually needs to provide more information about when this
interoperability requirement does not need to be met.
<xref target="RFC9457"/> now in many cases provides a better way to respond than a
diagnostic payload; for conciseness, this observation is not included
in the normative replacement text proposed above.</t>
      <t>[ The following section to be removed by the RFC editor. ]</t>
      <t>This technical change was originally developed as <xref section="2.2" sectionFormat="of" target="I-D.ietf-core-corr-clar-03"/>,
and moved into this document for publication,
so that it can be used for simplifications in describing tentative use,
where the text would otherwise have had to reaffirm the original behavior.</t>
    </section>
    <section anchor="further-development">
      <name>Further development</name>
      <t>Several possible further directions are anticipated in this document,
but not specified at this point in time;
they are left for further documents that update and thus compatibly extend this document.</t>
      <t>In any case, server implementations that treat unknown option values or repeated Uri-Path-Abbrev options
like any other critical unprocessable option (i.e., by responding with 4.02 Bad Option)
support the transition to such an extension.
<!-- It'd be great to state "this is already required in 7252", but it only implies that and doesn't make it explicit. -->
      </t>
      <ul spacing="normal">
        <li>
          <t>Some values of the option might admit repetition of the option.
A document that updates this document and the Uri-Path-Abbrev registry will need to specify
how later occurrences of the option
extend the series of equivalent Uri-Path options from the first value,
or defer some of that decision to that first value's entry.</t>
        </li>
        <li>
          <t>The mechanism of expanding one option into another option
might be expressed using the terminology of SCHC.  </t>
          <t>
Such a generalization is not aimed for in this document;
authors of any future document providing such a framework
are encouraged to provide an equivalent but machine-readable explanation of the mechanism specified here.</t>
        </li>
        <li>
          <t>The registry for Uri-Path-Abbrev values is set up such that first values can not have the most significant bit of the first byte set.  </t>
          <t>
This allows future documents to reuse the option for any CBOR expressions,
e.g. the path component of a CRI <xref target="I-D.ietf-core-href"/>.
Note that those CBOR structures can only use the major types 4 to 7 for the top-level item,
but that includes all containers (arrays, maps and tags).  </t>
          <t>
Senders and recipients of this option do not need to concern themselves with that extension mechanism
unless they implement it:
As the first value is compared to known registry entries,
any CBOR item contained in it will simply not match any known value.
Should the working group decide not to use that extension point,
the registry's policy can be relaxed to also allow values with that leading bit set.</t>
        </li>
        <li>
          <t>A future document may update this document
to allow registering values that are allowed to use together with Uri-Path values
(but at the time of writing, no examples are known by which such a design could be properly vetted).
In particular, that update weakens the "<bcp14>MUST</bcp14>" in <xref target="interactions"/>.</t>
        </li>
        <li>
          <t>This option is designed to stand in for the Uri-Path option alone,
not for any other option;
this simplifies its interaction rules.  </t>
          <t>
In particular,
application authors who seek to express Uri-Query options in a more concise or easier to process way
are advised to avail themselves of the FETCH method introduced in <xref target="RFC8790"/>.</t>
        </li>
      </ul>
    </section>
    <section anchor="change-log">
      <name>Change log</name>
      <t>Since ietf-core-uri-path-abbrev-02:</t>
      <ul spacing="normal">
        <li>
          <t>Added normative appendix fixing an oversight in RFC7252 (moving in from corr-clar). This allows limiting the handling of exotic cases in tentative use.</t>
        </li>
        <li>
          <t>Named Uri-Path-Abbrev as the unprocessed option when it occurs together with Uri-Path.</t>
        </li>
        <li>
          <t>Processing a mixed Proxy-Uri / Uri-Path-Abbrev is now an error if a path component is present in the former. Text was changed to indicate more strongly that seeing a Proxy-Uri and Uri-Path-Abbrev together is an exotic case even when there is no conflict.</t>
        </li>
        <li>
          <t>Formal definitions of abbreviate/expand.</t>
        </li>
        <li>
          <t>Editorial enhancements.</t>
        </li>
      </ul>
      <t>Since ietf-core-uri-path-abbrev-01: Processing WGA review input and cleanup.</t>
      <ul spacing="normal">
        <li>
          <t>Using Uri-Path-Abbrev without knowing it will be supported now has a term ("tentative use") and was reworded.</t>
        </li>
        <li>
          <t>The "<bcp14>SHOULD</bcp14>" to support fallback mode was lifted to "<bcp14>SHOULD</bcp14> only be [used when the server is known to support it]",
with the recovery being a factual necessity for reliability in tentative use.</t>
        </li>
        <li>
          <t>The fallback detection was extended to account for possible reactions to NONs (namely, RST, not replying at all, and 5.02).</t>
        </li>
        <li>
          <t>Use with multicast was limited to non-tentative use.</t>
        </li>
        <li>
          <t>Added reference to libcoap work.</t>
        </li>
        <li>
          <t>Added pointer to RFC9290 (Problem Details) error messages, discouraging diagnostic payloads.</t>
        </li>
        <li>
          <t>Sections on future work were unified in the appendix.</t>
        </li>
        <li>
          <t>Appendix on open questions was moved into the issue tracker at <eref target="https://github.com/core-wg/uri-path-abbrev/issues/">https://github.com/core-wg/uri-path-abbrev/issues/</eref>.</t>
        </li>
        <li>
          <t>Cleanup of IANA considerations where -01 previous changes were not accounted for.</t>
        </li>
        <li>
          <t>"Choice of option number" spelled out and set up for removal before publication.</t>
        </li>
        <li>
          <t>Editorial changes.</t>
        </li>
      </ul>
      <t>Since ietf-core-uri-path-abbrev-00: Processing previous two interims.</t>
      <ul spacing="normal">
        <li>
          <t>Rename option to Uri-Path-Abbrev.</t>
        </li>
        <li>
          <t>Allocate per-resource codes for EST and cBRSKI.</t>
        </li>
        <li>
          <t>Allocate code for EDHOC.</t>
        </li>
        <li>
          <t>Defer repeated use to future extensions.</t>
        </li>
        <li>
          <t>Rearrange content to have dedicated server, client and proxy subsections for option processing.</t>
        </li>
        <li>
          <t>Establish that generic clients <bcp14>SHOULD NOT</bcp14> use this without reason.</t>
        </li>
        <li>
          <t>More explicit language for proxies, including cross-proxies.</t>
        </li>
        <li>
          <t>Add introduction and motivating example.</t>
        </li>
        <li>
          <t>Add RFC7942 Implementation Status section.</t>
        </li>
      </ul>
      <t>Since draft-amsuess-core-shopinc-02:</t>
      <t>Adopted into WG unmodified as I-D.ietf-core-uri-path-abbrev</t>
      <t>Since draft-amsuess-core-shopinc-01: Processing 2025-08-27 interim.</t>
      <ul spacing="normal">
        <li>
          <t>Document is standards track.</t>
        </li>
        <li>
          <t>Change name of the option from Short-Uri-Path to Uri-Path-Abbr.</t>
        </li>
        <li>
          <t>Close question of whether use of option 13 is justified (it is).</t>
        </li>
        <li>
          <t>Minor editorials.</t>
        </li>
      </ul>
      <t>Since draft-amsuess-core-shopinc-00:</t>
      <ul spacing="normal">
        <li>
          <t>Switched option type from opaque to uint (retaining the lockout for values that look like CBOR arrays/maps).</t>
        </li>
        <li>
          <t>MCR joined as author.</t>
        </li>
        <li>
          <t>Added initial values for BRSKI and EST.</t>
        </li>
        <li>
          <t>Allow 4.04 responses.</t>
        </li>
        <li>
          <t>Add guidance for choosing prefixes and rules.</t>
        </li>
        <li>
          <t>Large editorial changes.</t>
        </li>
      </ul>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>Discussion with Eski Dijk led to the creation of the document,
he questioned choices until the design was simple enough, and also provided editorial input.
Carsten Bormann provided <xref target="update7252"/>, as well as useful input on shaping the registry.
Jon Shallow provided much input, in particular around gaps in the fallback process.</t>
    </section>
    <section anchor="contributors" numbered="false" toc="include" removeInRFC="false">
      <name>Contributors</name>
      <contact initials="C." surname="Bormann" fullname="Carsten Bormann">
        <organization>Universität Bremen TZI</organization>
        <address>
          <postal>
            <street>Postfach 330440</street>
            <city>Bremen</city>
            <code>D-28359</code>
            <country>Germany</country>
          </postal>
          <phone>+49-421-218-63921</phone>
          <email>cabo@tzi.org</email>
        </address>
      </contact>
    </section>
  </back>
  <!-- ##markdown-source:
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
IOGvpqt8AAA=

-->

</rfc>
