<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.6.27 (Ruby 3.2.1) -->
<?rfc compact="yes"?>
<?rfc comments="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-bormann-cbor-draft-numbers-01" category="info" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.16.0 -->
  <front>
    <title>Managing CBOR numbers in Internet-Drafts</title>
    <seriesInfo name="Internet-Draft" value="draft-bormann-cbor-draft-numbers-01"/>
    <author 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>
    </author>
    <date year="2023" month="March" day="13"/>
    <keyword>CBOR numbers</keyword>
    <abstract>
      <t>CBOR-based protocols often make use of numbers allocated in a
registry.
While developing 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.</t>
      <t>This short draft proposes a common way to handle these situations,
without any changes to existing tools.
Such changes are very well possible in the future, at which time this
draft will be updated.</t>
    </abstract>
  </front>
  <middle>
    <section anchor="intro">
      <name>Introduction</name>
      <t>(Please see abstract.)
<xref target="RFC8949"/></t>
    </section>
    <section anchor="the-problem">
      <name>The Problem</name>
      <t>A CBOR-based protocol might want to define a structure using CDDL
<xref target="RFC8610"/><xref target="RFC9165"/>, like that in <xref target="fig-struct1"/> (based on <xref target="RFC9290"/>):</t>
      <figure anchor="fig-struct1">
        <name>CDDL data model, final form</name>
        <sourcecode type="cddl"><![CDATA[
problem-details = {
  ? &(title: -1) => oltext
  ? &(detail: -2) => oltext
  ? &(instance: -3) => ~uri
  ? &(response-code: -4) => uint .size 1
  ? &(base-uri: -5) => ~uri
  ? &(base-lang: -6) => tag38-ltag
  ? &(base-rtl: -7) => tag38-direction
  / ... /
  * (uint .feature "extension") => any
}
]]></sourcecode>
      </figure>
      <t>The key numbers shown in this structure are likely to be intended for
allocation in an IANA section.</t>
      <t>The key numbers will be used in an example in the specification such
as shown in <xref target="fig-struct2"/>.</t>
      <figure anchor="fig-struct2">
        <name>CBOR-diag example, final form</name>
        <sourcecode type="cbor-diag"><![CDATA[
{
  / title /         -1: "title of the error",
  / detail /        -2: "detailed information about the error",
  / instance /      -3: "coaps://pd.example/FA317434",
  / response-code / -4: 128, / 4.00 /
  4711: {
     / ... /
  }
}
]]></sourcecode>
      </figure>
      <t>However, during development, these numbers are not yet fixed; they are
likely to move around as parts of the specification are added or deleted.</t>
      <t><cref anchor="carlscomments">This document uses the keys for a map as an example.
Other such constructs involving assigned numbers might also require
temporary values for exposition in a specification, e.g., CBOR
tags.  For the sake of keeping this document short, examples for
these are not given.</cref></t>
    </section>
    <section anchor="the-anti-pattern">
      <name>The Anti-Pattern</name>
      <t>What not to do during development:</t>
      <figure anchor="fig-bad1">
        <name>CDDL data model, muddled form</name>
        <sourcecode type="cddl"><![CDATA[
problem-details = {
  ? "title" => oltext
  ? "detail" => oltext
  ? "instance" => ~uri
  ? "response-code" => uint .size 1
  ? "base-uri" => ~uri
  ? "base-lang" => tag38-ltag
  ? "base-rtl" => tag38-direction
  / ... /
  * (uint .feature "extension") => any
}
]]></sourcecode>
      </figure>
      <figure anchor="fig-bad2">
        <name>CBOR-diag example, muddled form</name>
        <sourcecode type="cbor-diag"><![CDATA[
{
  "title": "title of the error",
  "detail": "detailed information about the error",
  "instance-code": "coaps://pd.example/FA317434",
  "response-code": 128, / 4.00 /
  4711: {
     / ... /
  }
}
]]></sourcecode>
      </figure>
      <t>This makes the model and the examples compile/check out even before
having allocated the actually desired
numbers, but it also leads to several problems:</t>
      <ul spacing="normal">
        <li>It becomes hard to assess what the storage/transmission cost of
these structures will be.</li>
        <li>What is being checked in the CI (continuous integration) for the
document is rather different from the final form.</li>
        <li>Draft implementations trying to make use of these provisional structures
have to cater for text strings, which may not actually be needed in
the final form (which might expose specification bugs once numbers
are used, too late in the process).</li>
        <li>The work needed to put in the actual numbers, once allocated, is
significant and error-prone.</li>
        <li>It is not certain the CI system used during development can interact
with the RFC editor's way of editing the document for publication.</li>
      </ul>
    </section>
    <section anchor="what-to-do-during-spec-development">
      <name>What to do during spec development</name>
      <t>To make the transition to a published document easier, the document is
instead written with the convention demonstrated in the following:</t>
      <figure anchor="fig-dev1">
        <name>CDDL data model, development form</name>
        <sourcecode type="cddl"><![CDATA[
problem-details = {
  ? &(title-CPA: -1) => oltext
  ? &(detail-CPA: -2) => oltext
  ? &(instance-CPA: -3) => ~uri
  ? &(response-code-CPA: -4) => uint .size 1
  ? &(base-uri-CPA: -5) => ~uri
  ? &(base-lang-CPA: -6) => tag38-ltag
  ? &(base-rtl-CPA: -7) => tag38-direction
  / ... /
  * (uint .feature "extension") => any
}
]]></sourcecode>
      </figure>
      <t>CPA is short for "code point allocation", and is a reliable search key
for finding the places that need to be updated after allocation.<cref anchor="tbd">An earlier concept for this draft used TBD in place of CPA, as
do many draft specifications being worked on today.
TBD is better recognized than CPA, but also could be misunderstood
to mean further work by the spec developer is required.
A document submitted for publications should not really have "TBD"
in it.</cref></t>
      <t>In the IANA section, the table to go into the registry is prepared as
follows:</t>
      <table anchor="tab-iana">
        <name>IANA table, development form</name>
        <thead>
          <tr>
            <th align="left">Key value</th>
            <th align="left">Name</th>
            <th align="left">CDDL Type</th>
            <th align="left">Brief description</th>
            <th align="left">Reference</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left">CPA-1</td>
            <td align="left">title</td>
            <td align="left">
              <tt>text / tag38</tt></td>
            <td align="left">short, human-readable summary of the problem shape</td>
            <td align="left">RFC XXXX</td>
          </tr>
          <tr>
            <td align="left">CPA-2</td>
            <td align="left">detail</td>
            <td align="left">
              <tt>text / tag38</tt></td>
            <td align="left">human-readable explanation specific to this occurrence of the problem</td>
            <td align="left">RFC XXXX</td>
          </tr>
          <tr>
            <td align="left">CPA-3</td>
            <td align="left">instance</td>
            <td align="left">
              <tt>~uri</tt></td>
            <td align="left">URI reference identifying specific occurrence of the problem</td>
            <td align="left">RFC XXXX</td>
          </tr>
          <tr>
            <td align="left">CPA-4</td>
            <td align="left">response-code</td>
            <td align="left">
              <tt>uint .size 1</tt></td>
            <td align="left">CoAP response code</td>
            <td align="left">RFC XXXX</td>
          </tr>
          <tr>
            <td align="left">CPA-5</td>
            <td align="left">base-uri</td>
            <td align="left">
              <tt>~uri</tt></td>
            <td align="left">Base URI</td>
            <td align="left">RFC XXXX</td>
          </tr>
          <tr>
            <td align="left">CPA-6</td>
            <td align="left">base-lang</td>
            <td align="left">
              <tt>tag38-ltag</tt></td>
            <td align="left">Base language tag (see tag38)</td>
            <td align="left">RFC XXXX</td>
          </tr>
          <tr>
            <td align="left">CPA-7</td>
            <td align="left">base-rtl</td>
            <td align="left">
              <tt>tag38-direction</tt></td>
            <td align="left">Base writing direction (see tag38)</td>
            <td align="left">RFC XXXX</td>
          </tr>
        </tbody>
      </table>
      <t>The provisionally made up key numbers will then be used in an example
in the specification such as:</t>
      <figure anchor="fig-dev2">
        <name>CBOR-diag example, development form</name>
        <sourcecode type="cbor-diag"><![CDATA[
{
  / title-CPA /         -1: "title of the error",
  / detail-CPA /        -2: "detailed information about the error",
  / instance-CPA /      -3: "coaps://pd.example/FA317434",
  / response-code-CPA / -4: 128, / 4.00 /
  4711: {
     / ... /
  }
}
]]></sourcecode>
      </figure>
      <t>A "removeInRFC" note in the draft points the RFC editor to the present
document so the RFC editor knows what needs to be done at which point.
In the publication process, it is easy to remove the <tt>-CPA</tt> suffixes
and <tt>CPA</tt> prefixes for the RFC editor while filling in the actual IANA
allocated numbers and removing the note.</t>
      <t>Note that in <xref target="tab-iana"/>, the first column uses the name "CPA-1" for a
value that in the rest of the document is assumed to be "-1" (and
indicating a preference by the document author for this number); IANA
as well as the designated experts involved are expected by the present
document to decode this notation.</t>
      <section anchor="depend">
        <name>Documents with Significant Generated Content Depending on Assignments</name>
        <t>Many documents have examples (which might even involve signatures overf
the contents) that depend on the assignments in more than the trivial
way shown above, and regenerating them may not be easy for the RFC
editor to do.</t>
        <t>Therefore, for these documents we need another step involving the authors:</t>
        <t>Immediately after allocation, but before the RFC-Editor EDIT step, the
authors need to regenerate these examples and other generated content
depending on the exact allocations.</t>
        <t>In the current process, allocation is usually done after IESG
approval, after IANA action, so we would need to halt the EDIT step
for this regeneration.</t>
        <t>Alternatively, we could be more aggressive in invoking
some kind of IANA Early Allocation process, near the end of the IESG review.
One way to do this with current tooling and process is to perform a
late form of actual IANA "Early" Allocation.
Or we could amend <xref target="BCP9"/> and/or <xref target="BCP100"/> in a more fundamental way.</t>
        <t><cref anchor="indicator">We probably need a indicator in addition to CPA that
signifies an example or other text must be regenerated (vs. simply
be updated by IANA).</cref></t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document makes no requests of IANA.
However, it specifies a procedure that can be followed during draft
development that has a specific role for IANA and the interaction
between RFC editor and IANA at important points during this
development.
This procedure is intended to be as little of an onus as possible, but
that is the author's assessment only.
IANA feedback is therefore requested.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security considerations</name>
      <t>The security considerations of <xref target="RFC8610"/> and <xref target="RFC8949"/> apply.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="RFC8949">
          <front>
            <title>Concise Binary Object Representation (CBOR)</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann">
              <organization/>
            </author>
            <author fullname="P. Hoffman" initials="P." surname="Hoffman">
              <organization/>
            </author>
            <date month="December" year="2020"/>
            <abstract>
              <t>The Concise Binary Object Representation (CBOR) is a data format whose design goals include the possibility of extremely small code size, fairly small message size, and extensibility without the need for version negotiation. These design goals make it different from earlier binary serializations such as ASN.1 and MessagePack.</t>
              <t>This document obsoletes RFC 7049, providing editorial improvements, new details, and errata fixes while keeping full compatibility with the interchange format of RFC 7049.  It does not create a new version of the format.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="94"/>
          <seriesInfo name="RFC" value="8949"/>
          <seriesInfo name="DOI" value="10.17487/RFC8949"/>
        </reference>
        <reference anchor="RFC8610">
          <front>
            <title>Concise Data Definition Language (CDDL): A Notational Convention to Express Concise Binary Object Representation (CBOR) and JSON Data Structures</title>
            <author fullname="H. Birkholz" initials="H." surname="Birkholz">
              <organization/>
            </author>
            <author fullname="C. Vigano" initials="C." surname="Vigano">
              <organization/>
            </author>
            <author fullname="C. Bormann" initials="C." surname="Bormann">
              <organization/>
            </author>
            <date month="June" year="2019"/>
            <abstract>
              <t>This document proposes a notational convention to express Concise Binary Object Representation (CBOR) data structures (RFC 7049).  Its main goal is to provide an easy and unambiguous way to express structures for protocol messages and data formats that use CBOR or JSON.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="8610"/>
          <seriesInfo name="DOI" value="10.17487/RFC8610"/>
        </reference>
        <reference anchor="RFC9165">
          <front>
            <title>Additional Control Operators for the Concise Data Definition Language (CDDL)</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann">
              <organization/>
            </author>
            <date month="December" year="2021"/>
            <abstract>
              <t>The Concise Data Definition Language (CDDL), standardized in RFC 8610, provides "control operators" as its main language extension point.</t>
              <t>The present document defines a number of control operators that were not yet ready at the time RFC 8610 was completed: , , and  for the construction of constants; / for including ABNF (RFC 5234 and RFC 7405) in CDDL specifications; and for indicating the use of a non-basic feature in an instance.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9165"/>
          <seriesInfo name="DOI" value="10.17487/RFC9165"/>
        </reference>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="RFC9290">
          <front>
            <title>Concise Problem Details for Constrained Application Protocol (CoAP) APIs</title>
            <author fullname="T. Fossati" initials="T." surname="Fossati">
              <organization/>
            </author>
            <author fullname="C. Bormann" initials="C." surname="Bormann">
              <organization/>
            </author>
            <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>
        <referencegroup anchor="BCP9">
          <reference anchor="RFC2026" target="https://www.rfc-editor.org/info/rfc2026">
            <front>
              <title>The Internet Standards Process -- Revision 3</title>
              <author fullname="S. Bradner" initials="S." surname="Bradner"/>
              <date month="October" year="1996"/>
              <abstract>
                <t>This memo documents the process used by the Internet community for the standardization of protocols and procedures.  It defines the stages in the standardization process, the requirements for moving a document between stages and the types of documents used during this process.  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="9"/>
            <seriesInfo name="RFC" value="2026"/>
            <seriesInfo name="DOI" value="10.17487/RFC2026"/>
          </reference>
          <reference anchor="RFC5657" target="https://www.rfc-editor.org/info/rfc5657">
            <front>
              <title>Guidance on Interoperation and Implementation Reports for Advancement to Draft Standard</title>
              <author fullname="L. Dusseault" initials="L." surname="Dusseault"/>
              <author fullname="R. Sparks" initials="R." surname="Sparks"/>
              <date month="September" year="2009"/>
              <abstract>
                <t>Advancing a protocol to Draft Standard requires documentation of the interoperation and implementation of the protocol.  Historic reports have varied widely in form and level of content and there is little guidance available to new report preparers.  This document updates the existing processes and provides more detail on what is appropriate in an interoperability and implementation report.  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="9"/>
            <seriesInfo name="RFC" value="5657"/>
            <seriesInfo name="DOI" value="10.17487/RFC5657"/>
          </reference>
          <reference anchor="RFC6410" target="https://www.rfc-editor.org/info/rfc6410">
            <front>
              <title>Reducing the Standards Track to Two Maturity Levels</title>
              <author fullname="R. Housley" initials="R." surname="Housley"/>
              <author fullname="D. Crocker" initials="D." surname="Crocker"/>
              <author fullname="E. Burger" initials="E." surname="Burger"/>
              <date month="October" year="2011"/>
              <abstract>
                <t>This document updates the Internet Engineering Task Force (IETF) Standards Process defined in RFC 2026.  Primarily, it reduces the Standards Process from three Standards Track maturity levels to two.  This memo documents an Internet Best Current Practice.</t>
              </abstract>
            </front>
            <seriesInfo name="BCP" value="9"/>
            <seriesInfo name="RFC" value="6410"/>
            <seriesInfo name="DOI" value="10.17487/RFC6410"/>
          </reference>
          <reference anchor="RFC7100" target="https://www.rfc-editor.org/info/rfc7100">
            <front>
              <title>Retirement of the "Internet Official Protocol Standards" Summary Document</title>
              <author fullname="P. Resnick" initials="P." surname="Resnick"/>
              <date month="December" year="2013"/>
              <abstract>
                <t>This document updates RFC 2026 to no longer use STD 1 as a summary of "Internet Official Protocol Standards".  It obsoletes RFC 5000 and requests the IESG to move RFC 5000 (and therefore STD 1) to Historic status.</t>
              </abstract>
            </front>
            <seriesInfo name="BCP" value="9"/>
            <seriesInfo name="RFC" value="7100"/>
            <seriesInfo name="DOI" value="10.17487/RFC7100"/>
          </reference>
          <reference anchor="RFC7127" target="https://www.rfc-editor.org/info/rfc7127">
            <front>
              <title>Characterization of Proposed Standards</title>
              <author fullname="O. Kolkman" initials="O." surname="Kolkman"/>
              <author fullname="S. Bradner" initials="S." surname="Bradner"/>
              <author fullname="S. Turner" initials="S." surname="Turner"/>
              <date month="January" year="2014"/>
              <abstract>
                <t>RFC 2026 describes the review performed by the Internet Engineering Steering Group (IESG) on IETF Proposed Standard RFCs and characterizes the maturity level of those documents.  This document updates RFC 2026 by providing a current and more accurate characterization of Proposed Standards.</t>
              </abstract>
            </front>
            <seriesInfo name="BCP" value="9"/>
            <seriesInfo name="RFC" value="7127"/>
            <seriesInfo name="DOI" value="10.17487/RFC7127"/>
          </reference>
          <reference anchor="RFC7475" target="https://www.rfc-editor.org/info/rfc7475">
            <front>
              <title>Increasing the Number of Area Directors in an IETF Area</title>
              <author fullname="S. Dawkins" initials="S." surname="Dawkins"/>
              <date month="March" year="2015"/>
              <abstract>
                <t>This document removes a limit on the number of Area Directors who manage an Area in the definition of "IETF Area".  This document updates RFC 2026 (BCP 9) and RFC 2418 (BCP 25).</t>
              </abstract>
            </front>
            <seriesInfo name="BCP" value="9"/>
            <seriesInfo name="RFC" value="7475"/>
            <seriesInfo name="DOI" value="10.17487/RFC7475"/>
          </reference>
          <reference anchor="RFC8789" target="https://www.rfc-editor.org/info/rfc8789">
            <front>
              <title>IETF Stream Documents Require IETF Rough Consensus</title>
              <author fullname="J. Halpern" initials="J." role="editor" surname="Halpern"/>
              <author fullname="E. Rescorla" initials="E." role="editor" surname="Rescorla"/>
              <date month="June" year="2020"/>
              <abstract>
                <t>This document requires that the IETF never publish any IETF Stream RFCs without IETF rough consensus.  This updates RFC 2026.</t>
              </abstract>
            </front>
            <seriesInfo name="BCP" value="9"/>
            <seriesInfo name="RFC" value="8789"/>
            <seriesInfo name="DOI" value="10.17487/RFC8789"/>
          </reference>
          <reference anchor="RFC9282" target="https://www.rfc-editor.org/info/rfc9282">
            <front>
              <title>Responsibility Change for the RFC Series</title>
              <author fullname="B. Rosen" initials="B." surname="Rosen"/>
              <date month="June" year="2022"/>
              <abstract>
                <t>In RFC 9280, responsibility for the RFC Series moved to the RFC Series Working Group and the RFC Series Approval Board.  It is no longer the responsibility of the RFC Editor, and the role of the IAB in the RFC Series is altered.  Accordingly, in Section 2.1 of RFC 2026, the sentence "RFC publication is the direct responsibility of the RFC Editor, under the general direction of the IAB" is deleted.</t>
              </abstract>
            </front>
            <seriesInfo name="BCP" value="9"/>
            <seriesInfo name="RFC" value="9282"/>
            <seriesInfo name="DOI" value="10.17487/RFC9282"/>
          </reference>
        </referencegroup>
        <referencegroup anchor="BCP100">
          <reference anchor="RFC7120" target="https://www.rfc-editor.org/info/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>
        </referencegroup>
      </references>
    </references>
    <section numbered="false" anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>This document was motivated by the AUTH48 experience for RFC 9200..RFC 9203.
Then, Jaime Jiménez made me finally write this document.
Marco Tiloca provided useful comments on an early presentation of this idea.
Michael Richardson pointed out the issues that led to <xref target="depend"/>.
Carl Wallace provided further comments shining light on the practical
aspects of the proposals.</t>
      <!-- 2) I wonder if a map is the best example. Most maps I've seen with numeric keys don't generally seek IANA assigned values. Groups seem like a better example or maybe a map that features a group that contributes keyed fields (see CoSWID) and maybe some guidance on where IANA assigned values would be useful (we don't really want/need IANA assigned values for every field of every structure).
 -->

</section>
  </back>
  <!-- ##markdown-source:
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
AA==

-->

</rfc>
