<?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.21 (Ruby 3.3.6) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-fossati-core-cf-reg-update-00" category="std" consensus="true" submissionType="IETF" updates="7252" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.24.0 -->
  <front>
    <title abbrev="CoAP C-F Registrations Update">Update to the IANA CoAP Content-Formats Registration Procedures</title>
    <seriesInfo name="Internet-Draft" value="draft-fossati-core-cf-reg-update-00"/>
    <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="2024" month="November" day="20"/>
    <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 44?>

<t>This document updates the registration procedures for the "CoAP Content-Formats" registry, within the "CoRE Parameters" registry group, defined in Section 12.3 of RFC7252.
Specifically, those regarding the First Come First Served (FCFS) portion of the registry.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://thomas-fossati.github.io/draft-cf-reg-update/draft-fossati-core-cf-reg-update.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-fossati-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/thomas-fossati/draft-cf-reg-update"/>.</t>
    </note>
  </front>
  <middle>
    <?line 49?>

<section anchor="introduction">
      <name>Introduction</name>
      <t><xref section="12.3" sectionFormat="of" target="RFC7252"/> describes the registration procedures for the "CoAP Content-Formats" registry within the "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, the text defines the rules for obtaining CoAP Content-Format identifiers from the First Come First Served (FCFS) portion of the registry (10000-64999).
These rules do not involve the Designated Expert (DE) and are managed solely by IANA personnel to finalize the registration.
Unfortunately, the instructions 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, requiring knowledge from multiple documents and technologies, which is unfair to demand solely from the registrar.
This lack of guidance may engender confusion in both the registering party and the registrar, and could eventually lead to erroneous registrations.</t>
      <t><xref target="iana"/> of this memo updates the registration procedures for the "CoAP Content-Formats" registry regarding its FCFS portion to reduce the risk of accidental or malicious errors.</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 uses the terms "media type", "content coding", "content-type" and "content format" as defined in <xref section="2" sectionFormat="of" target="RFC9193"/>.</t>
    </section>
    <section anchor="bad-examples">
      <name>(Bad) Examples</name>
      <t>This section contains a few examples of registration requests for a CoAP Content-Format with identifier in the FCFS space (64999) that should not be allowed to succeed.</t>
      <section anchor="ex-unknown-mt">
        <name>The Media Type is Unknown</name>
        <t>The registrant requests an FCFS C-F ID for an unknown media type:</t>
        <table align="left">
          <name>Attempt at Registering C-F 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 C-F ID for an existing media type with an unknown parameter:</t>
        <table align="left">
          <name>Attempt at Registering C-F 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 C-F ID for an existing media type with an invalid parameter value:</t>
        <table align="left">
          <name>Attempt at Registering C-F 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 C-F ID for an existing media type with an unknown content coding, "inflate":</t>
        <table align="left">
          <name>Attempt at Registering C-F 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>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>This memo 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">
      <name>IANA Considerations</name>
      <t>The CoAP Content-Formats registration procedures defined in <xref section="12.3" sectionFormat="of" target="RFC7252"/> are updated as follows:</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>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">0-255</td>
            <td align="left">Expert Review (Full)</td>
          </tr>
          <tr>
            <td align="left">256-9999</td>
            <td align="left">IETF Review or IESG Approval</td>
          </tr>
          <tr>
            <td align="left">10000-64999</td>
            <td align="left">Expert Review (Expert Check: FCFS+)</td>
          </tr>
          <tr>
            <td align="left">65000-65535</td>
            <td align="left">Experimental use (no operational use)</td>
          </tr>
        </tbody>
      </table>
      <t>The DE checks consist of the following steps:</t>
      <ol spacing="normal" type="1"><li>
          <t>The content-type associated with the requested Content-Format must be associated with an already registered CoAP Content-Format;</t>
        </li>
        <li>
          <t>The media type associated with the requested Content-Format must exist in the "Media Types" registry <xref target="IANA.media-types"/>, or IANA has approved its registration;</t>
        </li>
        <li>
          <t>The optional parameter names must exist in association with the media type, and any parameter values associated with such parameter names are as expected;</t>
        </li>
        <li>
          <t>If a Content Coding is specified, it must exist in the "HTTP Content Coding Registry" of the "Hypertext Transfer Protocol (HTTP) Parameters" <xref target="IANA.http-parameters"/>, or IANA has approved its registration.</t>
        </li>
      </ol>
      <t>The registration procedure for the 0-255 range has been slightly modified -- from "Expert Review" to "Expert Review (Full)" -- to clearly distinguish it from the new "Expert Review (Expert Check: FCFS+)" policy that applies to the 10000-64999 range.
For the 0-255 range, the DE must also evaluate the requested codepoint in relation to the limited availability of the 1-byte codepoint space.
For the 10000-64999 range, this critierion does not apply.</t>
    </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="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="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="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>
      </references>
    </references>
    <?line 156?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>Thank you
Carsten Bormann,
Francesca Palombini
and
Marco Tiloca
for your reviews and comments.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
668g5b2rr1dyf2SP/Q/t7EBNehoAAA==

-->

</rfc>
