<?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.29 (Ruby 3.3.6) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-core-cf-reg-update-08" category="std" consensus="true" submissionType="IETF" updates="7252" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.28.1 -->
  <front>
    <title abbrev="CoAP Content-Format Registrations Update">Update to the IANA CoAP Content-Formats Registration Procedures</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-core-cf-reg-update-08"/>
    <author fullname="Thomas Fossati">
      <organization>Linaro</organization>
      <address>
        <email>thomas.fossati@linaro.org</email>
      </address>
    </author>
    <author fullname="Esko Dijk">
      <organization>IoTconsultancy.nl</organization>
      <address>
        <email>esko.dijk@iotconsultancy.nl</email>
      </address>
    </author>
    <date year="2025" month="May" day="01"/>
    <area>Web and Internet Transport</area>
    <workgroup>Constrained RESTful Environments</workgroup>
    <keyword>IANA</keyword>
    <keyword>registration</keyword>
    <keyword>update</keyword>
    <keyword>CoAP</keyword>
    <keyword>Content-Format</keyword>
    <abstract>
      <?line 56?>

<t>This document updates RFC7252 regarding the registration procedures for the "CoAP Content-Formats" IANA registry, within the "Constrained RESTful Environments (CoRE) Parameters" registry group.
This document also introduces a new column, "Media Type", to the registry.
Furthermore, this document reserves Content-Format identifier 64999 for use in documentation.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://core-wg.github.io/cf-reg-update/draft-ietf-core-cf-reg-update.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-core-cf-reg-update/"/>.
      </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/cf-reg-update"/>.</t>
    </note>
  </front>
  <middle>
    <?line 62?>

<section anchor="introduction">
      <name>Introduction</name>
      <t><xref section="12.3" sectionFormat="of" target="RFC7252"/> describes the registration procedures for the "CoAP Content-Formats" IANA registry within the "Constrained RESTful Environments (CoRE) Parameters" registry group <xref target="IANA.core-parameters"/>.
(Note that the columns of this registry have been revised according to <xref target="Err4954"/>.)
In particular, it defines the rules for obtaining CoAP Content-Format identifiers from the "IETF Review or IESG Approval" range of the registry (256-9999) as well as from the First Come First Served (FCFS) range of the registry (10000-64999).
For the FCFS range, these rules do not involve the Designated Expert (DE) and are managed solely by IANA personnel to finalize the registration.</t>
      <t>Unfortunately, the rules do not explicitly require checking that the combination of Content-Type (i.e., Media Type with optional parameters) and Content Coding associated with the requested CoAP Content-Format is semantically valid.
This task is generally non-trivial, requires knowledge from multiple documents and technologies, and should not be solely demanded from the registrar.
This lack of guidance may engender confusion in both the registering party and the registrar, and has already led to erroneous registrations.</t>
      <t>In <xref target="iana"/>, this document updates <xref target="RFC7252"/> by modifying the registration procedures for the "CoAP Content-Formats" registry to mitigate the risk of unintentional or malicious errors.
These updates amend the different ranges of the registry, introduce a review procedure to be performed for most ranges of the registry, and allow the registration of temporary Content-Format identifiers.
This document also introduces a new column, "Media Type", to the registry.
Furthermore, this document reserves Content-Format identifier 64999 for use in documentation.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>This document uses the terms "Media Type", "Content Coding", "Content-Type", and "Content Format" as defined in <xref section="2" sectionFormat="of" target="RFC9193"/>.
In this document, those terms are fully capitalized.</t>
    </section>
    <section anchor="examples-for-erroneous-registrations">
      <name>Examples for Erroneous Registrations</name>
      <t>This section provides examples of registration requests for the "CoAP Content-Formats" Registry that are invalid but would be approved under the procedure defined in <xref section="12.3" sectionFormat="of" target="RFC7252"/>.
The checklist defined in <xref target="checks"/> should prevent any of these attempts from succeeding.</t>
      <t>All the example registration requests use a CoAP Content-Format with identifier 64999.</t>
      <t>For each of the following example registration requests, one can create a similar instance where the requested registration is for a CoAP Content-Format identifier within the "IETF Review or IESG Approval" range.
Likewise, such registrations must not be allowed to succeed.</t>
      <section anchor="ex-unknown-mt">
        <name>The Media Type is Unknown</name>
        <t>The registrant requests an FCFS Content-Format ID for an unknown Media Type:</t>
        <table align="left">
          <name>Attempt at Registering Content-Format for an Unknown Media Type</name>
          <thead>
            <tr>
              <th align="left">Content Type</th>
              <th align="left">Content Coding</th>
              <th align="left">ID</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">application/unknown+cbor</td>
              <td align="left">-</td>
              <td align="left">64999</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="the-media-type-parameter-is-unknown">
        <name>The Media Type Parameter is Unknown</name>
        <t>The registrant requests an FCFS Content-Format ID for an existing Media Type with an unknown parameter:</t>
        <table align="left">
          <name>Attempt at Registering Content-Format for Media Type with Unknown Parameter</name>
          <thead>
            <tr>
              <th align="left">Content Type</th>
              <th align="left">Content Coding</th>
              <th align="left">ID</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">application/cose;unknown-parameter=1</td>
              <td align="left">-</td>
              <td align="left">64999</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="the-media-type-parameter-value-is-invalid">
        <name>The Media Type Parameter Value is Invalid</name>
        <t>The registrant requests an FCFS Content-Format ID for an existing Media Type with an invalid parameter value:</t>
        <table align="left">
          <name>Attempt at Registering Content-Format for Media Type with Invalid Parameter Value</name>
          <thead>
            <tr>
              <th align="left">Content Type</th>
              <th align="left">Content Coding</th>
              <th align="left">ID</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">application/cose;cose-type=invalid</td>
              <td align="left">-</td>
              <td align="left">64999</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="the-content-coding-is-unknown">
        <name>The Content Coding is Unknown</name>
        <t>The registrant requests an FCFS Content-Format ID for an existing Media Type with an unknown Content Coding:</t>
        <table align="left">
          <name>Attempt at Registering Content-Format with Unknown Content Coding</name>
          <thead>
            <tr>
              <th align="left">Content Type</th>
              <th align="left">Content Coding</th>
              <th align="left">ID</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">application/senml+cbor</td>
              <td align="left">inflate</td>
              <td align="left">64999</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="duplicate-entry-with-default-media-type-parameters">
        <name>Duplicate Entry with Default Media Type Parameters</name>
        <t>The registrant requests an FCFS Content-Format ID for a Media Type that includes a parameter set to its default value, while
a (hypothetical) Content-Format ID 64900 is already registered for this Media Type without that parameter.
As a result, this could lead to the creation of two separate Content-Format IDs for the same "logical" entry.</t>
        <table align="left">
          <name>Attempt at Registering an Equivalent Logical Entry with a Different Content-Format ID (1)</name>
          <thead>
            <tr>
              <th align="left">Content Type</th>
              <th align="left">Content Coding</th>
              <th align="left">ID</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">application/my</td>
              <td align="left">-</td>
              <td align="left">64900</td>
            </tr>
            <tr>
              <td align="left">application/my;parameter=default</td>
              <td align="left">-</td>
              <td align="left">64999</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="duplicate-entry-with-default-content-coding">
        <name>Duplicate Entry with Default Content Coding</name>
        <t>The registrant requests an FCFS Content-Format ID for the "identity" Content Coding, which is the default coding.
If accepted, this request would duplicate an entry with (hypothetical)
Content-Format ID 64900 where the "Content Coding" field is left empty.</t>
        <table align="left">
          <name>Attempt at Registering an Equivalent Logical Entry with a Different Content-Format ID (2)</name>
          <thead>
            <tr>
              <th align="left">Content Type</th>
              <th align="left">Content Coding</th>
              <th align="left">ID</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">application/my</td>
              <td align="left">-</td>
              <td align="left">64900</td>
            </tr>
            <tr>
              <td align="left">application/my</td>
              <td align="left">identity</td>
              <td align="left">64999</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="duplicate-entry-with-equivalent-parameter">
        <name>Duplicate Entry with Equivalent Parameter</name>
        <t>The registrant requests an FCFS Content-Format ID for a Media Type that includes a parameter.
The value of this parameter appears distinct from that of a (hypothetical) previously registered Content-Format ID 64900 that also includes this parameter.
However, the semantics of the parameter value are identical to the existing registration.</t>
        <t>In this example, the <tt>eat_profile</tt> parameter value (which can be any URI) is set as a Uniform Resource Name (URN) <xref target="RFC8141"/>.
Since for URNs, the Namespace Identifier (<tt>example</tt> in this example) is defined as case insensitive, the two registrations are semantically identical.</t>
        <table align="left">
          <name>Attempt at Registering an Equivalent Logical Entry with a Different Content-Format ID (3)</name>
          <thead>
            <tr>
              <th align="left">Content Type</th>
              <th align="left">Content Coding</th>
              <th align="left">ID</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">application/eat+cwt;eat_profile="urn:example:1"</td>
              <td align="left">-</td>
              <td align="left">64900</td>
            </tr>
            <tr>
              <td align="left">application/eat+cwt;eat_profile="urn:EXAMPLE:1"</td>
              <td align="left">-</td>
              <td align="left">64999</td>
            </tr>
          </tbody>
        </table>
      </section>
    </section>
    <section anchor="updates">
      <name>Updates to RFC 7252</name>
      <t>This section updates <xref section="12.3" sectionFormat="of" target="RFC7252"/> and introduces four new subsections, 12.3.1 to 12.3.4.</t>
      <section anchor="iana">
        <name>Updates to Section 12.3 "CoAP Content-Formats Registry"</name>
        <t><cref anchor="replace-self">RFC Editor: in this section, please replace RFCthis with the RFC number assigned to this document and remove this note.</cref></t>
        <t>The CoAP Content-Formats registration procedures defined in <xref section="12.3" sectionFormat="of" target="RFC7252"/> are modified as shown in <xref target="tbl-new-cf-proc"/>.</t>
        <table anchor="tbl-new-cf-proc">
          <name>Updated CoAP Content-Formats Registration Procedures</name>
          <thead>
            <tr>
              <th align="left">Range</th>
              <th align="left">Registration Procedures</th>
              <th align="left">Notes</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">0-255</td>
              <td align="left">Expert Review</td>
              <td align="left">Review procedure described in RFCthis, <xref target="checks"/>.</td>
            </tr>
            <tr>
              <td align="left">256-9999</td>
              <td align="left">IETF Review with Expert Review or IESG Approval with Expert Review</td>
              <td align="left">Review procedure described in RFCthis, <xref target="checks"/></td>
            </tr>
            <tr>
              <td align="left">10000-19999</td>
              <td align="left">Expert Review</td>
              <td align="left">Review procedure described in RFCthis, <xref target="checks"/>.</td>
            </tr>
            <tr>
              <td align="left">20000-32999</td>
              <td align="left">First Come First Served (FCFS)</td>
              <td align="left">FCFS is allowed if the registration: <br/> * has no parameters, and <br/> * has an empty Content Coding, and <br/> * the Media Type is not yet used in this registry, and <br/> * the Media Type is registered (or approved for registration) in the "Media Types" registry <xref target="IANA.media-types"/>.</td>
            </tr>
            <tr>
              <td align="left">33000-64998</td>
              <td align="left">Expert Review</td>
              <td align="left">Review procedure described in RFCthis, <xref target="checks"/>.</td>
            </tr>
            <tr>
              <td align="left">64999</td>
              <td align="left">-</td>
              <td align="left">Reserved for Documentation</td>
            </tr>
            <tr>
              <td align="left">65000-65535</td>
              <td align="left">Experimental Use</td>
              <td align="left">No operational use</td>
            </tr>
          </tbody>
        </table>
        <t>The 256-9999 range now has registration procedures requiring "IETF Review with Expert Review" or "IESG Approval with Expert Review." In particular:</t>
        <ul spacing="normal">
          <li>
            <t>All assignments according to "IETF Review with Expert Review" are made on an "IETF Review" basis per <xref section="4.8" sectionFormat="of" target="BCP26"/> with "Expert Review" additionally required per <xref section="4.5" sectionFormat="of" target="BCP26"/>.  </t>
            <t>
The procedure for early IANA allocation of "standards track code points" defined in <xref target="RFC7120"/> also applies. When such a procedure is used, IANA will ask the Designated Expert(s) to approve the early allocation before registration. In addition, working group chairs are encouraged to consult the Expert(s) early during the process outlined in <xref section="3.1" sectionFormat="of" target="RFC7120"/>.</t>
          </li>
          <li>
            <t>All assignments according to "IESG Approval with Expert Review" are made on an "IESG Approval" basis per <xref section="4.10" sectionFormat="of" target="BCP26"/> with "Expert Review" additionally required per <xref section="4.5" sectionFormat="of" target="BCP26"/>.</t>
          </li>
        </ul>
        <t>The registration policy for the 10000-19999 and 33000-64998 ranges is "Expert Review", following the procedure described in <xref target="checks"/>.</t>
        <t>The registration policy for the 20000-32999 range is FCFS, as before.
A registration request for this range must consist solely of a registered Media Type name in the "Content Type" field, without any parameter names or "Content Coding", and the Media Type must not have been used in this registry yet.
If the criteria do not apply, a registration for a different range (which requires Expert Review) can be requested.</t>
        <t>A new column with the title "Notes" has been added to the CoAP Content-Formats Registration Procedures shown in <xref target="tbl-new-cf-proc"/>.</t>
        <t>For the handling of temporary allocations within the 0-255 range see also <xref target="expert-review-7120-exemptions"/>.</t>
      </section>
      <section anchor="new-section-1231-temporary-content-format-registrations">
        <name>New Section 12.3.1 "Temporary Content-Format Registrations"</name>
        <t>This section clarifies that the "CoAP Content-Formats" registry allows temporary registrations within the 0-64998 range.</t>
        <t>A temporary registration may be created for example by an IANA early allocation action <xref target="RFC7120"/>.
If the referenced Media Type is provisional (that is, included in the IANA "Provisional Standard Media Type" registry <xref target="IANA.provisional-standard-media-types"/>) then a created registration is always temporary.</t>
        <t>A temporary registration is marked as such by IANA in the corresponding registry entry.
Once the required registration procedure (defined in <xref target="tbl-new-cf-proc"/>) for the temporary ID has successfully completed, and the referenced Media Type is included in the IANA Media Types registry <xref target="IANA.media-types"/>, IANA must remove any indication about the temporary nature of the registration so that the entry becomes permanent.</t>
        <t>If a temporary registration does not successfully complete the registration procedure, IANA must remove the entry and set the Content-Format ID value back to "Unassigned".
This may happen for example when an Internet-Draft requesting a Content-Format ID is abandoned.
If a temporary registration (in any range) refers to a provisional Media Type that is abandoned, IANA must remove the entry and set the Content-Format ID value back to "Unassigned".</t>
        <t>Note that in the 10000-64998 range the abandonment of a document requesting a Content-Format ID does not cause an entry to be removed.
That is because the required registration procedure for this range does not require completion of any standards process, nor does it require a registering document.</t>
        <t anchor="expert-review-7120-exemptions">Temporary registrations within the 0-255 range are exempt from the formal renewal process outlined in <xref target="RFC7120"/>.
Specifically, IANA will not monitor the removal of registrations in this range.
Instead, the Designated Experts direct IANA to carry out this task.</t>
      </section>
      <section anchor="new-section-1232-adding-the-media-type-column-to-the-registry">
        <name>New Section 12.3.2 "Adding the Media Type Column to the Registry"</name>
        <t>To assist users of the "CoAP Content-Formats" registry in finding detailed information about the Media Type associated with each CoAP Content-Format, and to ensure that a Media Type exists before a new entry can be registered, IANA is requested to add a new column "Media Type" to the registry.
This new column is placed directly to the right of the existing "Content Type" column.</t>
        <t>The "Media Type" field for each entry lists the (base) Media Type name and provides a hyperlink to registration information for that Media Type as recorded by IANA.
If the Media Type is provisional, the hyperlink points to the IANA "Provisional Standard Media Type" registry <xref target="IANA.provisional-standard-media-types"/>.
If a provisional Media Type becomes a permanent Media Type, IANA must update the "Media Type" field in the associated registry entries to ensure the hyperlink directs to the registration information for that Media Type.</t>
        <t>Note that the registration request procedure remains unchanged. A requester does not need to fill out the "Media Type" field separately, as the necessary information is already provided in the "Content Type" field of the request.</t>
      </section>
      <section anchor="checks">
        <name>New Section 12.3.3 "Expert Review Procedure"</name>
        <t>The Designated Expert (DE) is instructed to perform the Expert Review, as described by the following checklist:</t>
        <ol spacing="normal" type="1"><li>
            <t>The combination of Content-Type and Content Coding for which the registration is requested must not be already present in the "CoAP Content-Formats" registry;</t>
          </li>
          <li>
            <t>The Media Type associated with the requested Content-Format must either be registered in the "Media Types" registry <xref target="IANA.media-types"/> or approved for registration. Alternatively, it may be listed in the "Provisional Standard Media Type" registry <xref target="IANA.provisional-standard-media-types"/>. The use of provisional standard Media Types is only permitted for Content-Format identifiers within the ranges of 0-255 and 256-9999;</t>
          </li>
          <li>
            <t>The optional parameter names must have been defined in association with the Media Type, and any parameter values associated with such parameter names must be as permitted;</t>
          </li>
          <li>
            <t>The Content Type must be in the preferred format defined in <xref target="preferred-format"/>;</t>
          </li>
          <li>
            <t>If a Content Coding is specified, it must exist (or must have been approved for registration) in the "HTTP Content Coding" registry of the "Hypertext Transfer Protocol (HTTP) Parameters" <xref target="IANA.http-parameters"/>.</t>
          </li>
        </ol>
        <t>For the 0-255 range, in addition to the checks described above, the DE is instructed to also evaluate the requested codepoint concerning the limited availability of the 1-byte codepoint space.
For the 256-64998 range, a similar criterion may also apply where combinations of Media Type parameters and Content Coding choices consume considerable codepoint space.</t>
      </section>
      <section anchor="preferred-format">
        <name>New Section 12.3.4 "Preferred Format for the Content Type Field"</name>
        <t>This section defines the preferred string format for including a requested Content Type into the "CoAP Content-Formats" registry.
During the review process, the Designated Expert(s) or IANA may rewrite a requested Content Type into this preferred string format before approval.</t>
        <t>The preferred string format is as defined in <xref section="8.3.1" sectionFormat="of" target="RFC9110"/> and follows these rules:</t>
        <ol spacing="normal" type="1"><li>
            <t>For any case-insensitive elements, lowercase characters are used.</t>
          </li>
          <li>
            <t>Parameter values are only quoted if the value is such that it requires use of <tt>quoted-string</tt> per <xref section="5.6.6" sectionFormat="of" target="RFC9110"/>.
Otherwise, a parameter value is included unquoted.</t>
          </li>
          <li>
            <t>A single semicolon character without any adjacent whitespace characters is used as the separator between Media Type and parameters.</t>
          </li>
        </ol>
      </section>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>This document hardens the registration procedures of CoAP Content-Formats in ways that reduce the chances of malicious manipulation of the associated registry.</t>
      <t>Other than that, it does not change the Security Considerations of <xref target="RFC7252"/>.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document updates the IANA procedures defined in <xref target="RFC7252"/> for registering CoAP Content-Formats as described in <xref target="updates"/>.</t>
      <section removeInRFC="true" anchor="temporary-note-removal">
        <name>Temporary Note Removal</name>
        <t>The following note has been added to the registry as a temporary fix:</t>
        <ul empty="true">
          <li>
            <t>"Note: The validity of the combination of Content Coding, Content Type and parameters is checked prior to assignment."</t>
          </li>
        </ul>
        <t>IANA is instructed to remove this note from the registry when this document is approved for publication.
RFC-Editor: please remove this section once the note has been removed.</t>
      </section>
      <section anchor="new-note-addition">
        <name>New Note Addition</name>
        <t><cref anchor="replace-self_1">RFC Editor: in this section, please replace RFCthis with the RFC number assigned to this document and remove this note.</cref></t>
        <t>IANA is instructed to add the following note to the registry:</t>
        <ul empty="true">
          <li>
            <t>"Note: As per RFCthis, temporary registrations within the 0-255 range are approved by Designated Experts.
These registrations are not subject to the formal <xref target="RFC7120"/> renewal process."</t>
          </li>
        </ul>
      </section>
      <section anchor="reserving-content-format-identifier-64999-for-documentation">
        <name>Reserving Content-Format Identifier 64999 for Documentation</name>
        <t>IANA is instructed to reserve Content-Format identifier 64999 for use in documentation.</t>
      </section>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC7120">
          <front>
            <title>Early IANA Allocation of Standards Track Code Points</title>
            <author fullname="M. Cotton" initials="M." surname="Cotton"/>
            <date month="January" year="2014"/>
            <abstract>
              <t>This memo describes the process for early allocation of code points by IANA from registries for which "Specification Required", "RFC Required", "IETF Review", or "Standards Action" policies apply. This process can be used to alleviate the problem where code point allocation is needed to facilitate desired or required implementation and deployment experience prior to publication of an RFC, which would normally trigger code point allocation. The procedures in this document are intended to apply only to IETF Stream documents.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="100"/>
          <seriesInfo name="RFC" value="7120"/>
          <seriesInfo name="DOI" value="10.17487/RFC7120"/>
        </reference>
        <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="RFC9110">
          <front>
            <title>HTTP Semantics</title>
            <author fullname="R. Fielding" initials="R." role="editor" surname="Fielding"/>
            <author fullname="M. Nottingham" initials="M." role="editor" surname="Nottingham"/>
            <author fullname="J. Reschke" initials="J." role="editor" surname="Reschke"/>
            <date month="June" year="2022"/>
            <abstract>
              <t>The Hypertext Transfer Protocol (HTTP) is a stateless application-level protocol for distributed, collaborative, hypertext information systems. This document describes the overall architecture of HTTP, establishes common terminology, and defines aspects of the protocol that are shared by all versions. In this definition are core protocol elements, extensibility mechanisms, and the "http" and "https" Uniform Resource Identifier (URI) schemes.</t>
              <t>This document updates RFC 3864 and obsoletes RFCs 2818, 7231, 7232, 7233, 7235, 7538, 7615, 7694, and portions of 7230.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="97"/>
          <seriesInfo name="RFC" value="9110"/>
          <seriesInfo name="DOI" value="10.17487/RFC9110"/>
        </reference>
        <reference anchor="RFC9193">
          <front>
            <title>Sensor Measurement Lists (SenML) Fields for Indicating Data Value Content-Format</title>
            <author fullname="A. Keränen" initials="A." surname="Keränen"/>
            <author fullname="C. Bormann" initials="C." surname="Bormann"/>
            <date month="June" year="2022"/>
            <abstract>
              <t>The Sensor Measurement Lists (SenML) media types support multiple types of values, from numbers to text strings and arbitrary binary Data Values. In order to facilitate processing of binary Data Values, this document specifies a pair of new SenML fields for indicating the content format of those binary Data Values, i.e., their Internet media type, including parameters as well as any content codings applied.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9193"/>
          <seriesInfo name="DOI" value="10.17487/RFC9193"/>
        </reference>
        <reference anchor="BCP26">
          <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="IANA.core-parameters" target="https://www.iana.org/assignments/core-parameters">
          <front>
            <title>Constrained RESTful Environments (CoRE) Parameters</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
        <reference anchor="IANA.media-types" target="https://www.iana.org/assignments/media-types">
          <front>
            <title>Media Types</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
        <reference anchor="IANA.http-parameters" target="https://www.iana.org/assignments/http-parameters">
          <front>
            <title>Hypertext Transfer Protocol (HTTP) Parameters</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
        <reference anchor="IANA.provisional-standard-media-types" target="https://www.iana.org/assignments/provisional-standard-media-types">
          <front>
            <title>Provisional Standard Media Type Registry</title>
            <author>
              <organization>IANA</organization>
            </author>
          </front>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="Err4954" target="https://www.rfc-editor.org/errata/eid4954" quoteTitle="false">
          <front>
            <title>RFC Errata Report 4954</title>
            <author>
              <organization/>
            </author>
            <date/>
          </front>
          <seriesInfo name="RFC" value="7252"/>
        </reference>
        <reference anchor="RFC8141">
          <front>
            <title>Uniform Resource Names (URNs)</title>
            <author fullname="P. Saint-Andre" initials="P." surname="Saint-Andre"/>
            <author fullname="J. Klensin" initials="J." surname="Klensin"/>
            <date month="April" year="2017"/>
            <abstract>
              <t>A Uniform Resource Name (URN) is a Uniform Resource Identifier (URI) that is assigned under the "urn" URI scheme and a particular URN namespace, with the intent that the URN will be a persistent, location-independent resource identifier. With regard to URN syntax, this document defines the canonical syntax for URNs (in a way that is consistent with URI syntax), specifies methods for determining URN-equivalence, and discusses URI conformance. With regard to URN namespaces, this document specifies a method for defining a URN namespace and associating it with a namespace identifier, and it describes procedures for registering namespace identifiers with the Internet Assigned Numbers Authority (IANA). This document obsoletes both RFCs 2141 and 3406.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8141"/>
          <seriesInfo name="DOI" value="10.17487/RFC8141"/>
        </reference>
      </references>
    </references>
    <?line 300?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>Thank you
Amanda Baber,
Carsten Bormann,
Christer Holmberg,
Francesca Palombini,
Marco Tiloca,
and
Rich Salz
for your reviews, comments, suggestions, and fixes.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
Mx9cNC+ZqnzNVEfJPwATW3tT+UYAAA==

-->

</rfc>
