<?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-01" 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 Content-Format Registrations Update">Update to the IANA CoAP Content-Formats Registration Procedures</title>
    <seriesInfo name="Internet-Draft" value="draft-fossati-core-cf-reg-update-01"/>
    <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 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, "inflate":</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>
    <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 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 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 concerning the limited availability of the 1-byte codepoint space.
For the 10000-64999 range, this criterion 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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

-->

</rfc>
