<?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.10 (Ruby 3.1.2) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-ietf-core-problem-details-04" category="std" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.12.7 -->
  <front>
    <title abbrev="CoRE Problem Details">Concise Problem Details For CoAP APIs</title>
    <seriesInfo name="Internet-Draft" value="draft-ietf-core-problem-details-04"/>
    <author initials="T." surname="Fossati" fullname="Thomas Fossati">
      <organization>arm</organization>
      <address>
        <email>thomas.fossati@arm.com</email>
      </address>
    </author>
    <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="2022" month="May" day="25"/>
    <area>ART</area>
    <workgroup>CoRE Working Group</workgroup>
    <keyword>CoAP, API, Problem Details</keyword>
    <abstract>
      <t>This document defines a concise "problem detail" as a way to carry
machine-readable details of errors in a 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>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-ietf-core-problem-details/"/>.
      </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/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/core-wg/core-problem-details"/>.</t>
    </note>
  </front>
  <middle>
    <section anchor="introduction">
      <name>Introduction</name>
      <t>REST response status information such as CoAP response
codes (<xref section="5.9" sectionFormat="of" target="RFC7252"/>) is sometimes not sufficient to convey enough information about
an error to be helpful.  This specification defines a simple and extensible
framework to define CBOR <xref target="STD94"/> data items to suit this purpose.
It is designed to be reused by REST APIs, which can identify distinct
shapes of these data items specific to their needs.
Thus, API clients can be informed of both the high-level error class
(using the response code) and the finer-grained details of the problem
(using the vocabulary defined here).
This pattern of communication is illustrated in <xref target="fig-problem-details"/>.</t>
      <figure anchor="fig-problem-details">
        <name>Problem Details: Example with CoAP</name>
        <artset>
          <artwork type="svg" align="center"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="256" width="288" viewBox="0 0 288 256" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px">
              <path d="M 8,32 L 8,80" fill="none" stroke="black"/>
              <path d="M 48,80 L 48,240" fill="none" stroke="black"/>
              <path d="M 80,32 L 80,80" fill="none" stroke="black"/>
              <path d="M 168,32 L 168,80" fill="none" stroke="black"/>
              <path d="M 200,80 L 200,240" fill="none" stroke="black"/>
              <path d="M 240,32 L 240,80" fill="none" stroke="black"/>
              <path d="M 8,32 L 80,32" fill="none" stroke="black"/>
              <path d="M 168,32 L 240,32" fill="none" stroke="black"/>
              <path d="M 8,80 L 80,80" fill="none" stroke="black"/>
              <path d="M 168,80 L 240,80" fill="none" stroke="black"/>
              <path d="M 56,128 L 192,128" fill="none" stroke="black"/>
              <path d="M 56,160 L 192,160" fill="none" stroke="black"/>
              <polygon class="arrowhead" points="200,128 188,122.4 188,133.6 " fill="black" transform="rotate(0,192,128)"/>
              <polygon class="arrowhead" points="64,160 52,154.4 52,165.6 " fill="black" transform="rotate(180,56,160)"/>
              <circle cx="48" cy="128" r="6" class="opendot" fill="white" stroke="black"/>
              <circle cx="200" cy="160" r="6" class="opendot" fill="white" stroke="black"/>
              <g class="text">
                <text x="44" y="52">CoAP</text>
                <text x="204" y="52">CoAP</text>
                <text x="44" y="68">Client</text>
                <text x="204" y="68">Server</text>
                <text x="88" y="116">Request</text>
                <text x="248" y="148">(failure)</text>
                <text x="96" y="180">Error</text>
                <text x="156" y="180">Response</text>
                <text x="116" y="196">with</text>
                <text x="144" y="196">a</text>
                <text x="172" y="196">CBOR</text>
                <text x="76" y="212">data</text>
                <text x="116" y="212">item</text>
                <text x="164" y="212">giving</text>
                <text x="96" y="228">Problem</text>
                <text x="160" y="228">Details</text>
              </g>
            </svg>
          </artwork>
          <artwork type="ascii-art" align="center"><![CDATA[
.--------.          .--------.
|  CoAP  |          |  CoAP  |
| Client |          | Server |
'----+---'          '---+----'
     |                  |
     | Request          |
     o----------------->|
     |                  | (failure)
     |<-----------------o
     |   Error Response |
     |      with a CBOR |
     | data item giving |
     |  Problem Details |
     |                  |
]]></artwork>
        </artset>
      </figure>
      <t>The framework presented is largely inspired by the Problem Details for HTTP APIs defined in <xref target="RFC7807"/>.
<xref target="comp7807"/> discusses applications where interworking with <xref target="RFC7807"/> is required.</t>
      <section anchor="terminology-and-requirements-language">
        <name>Terminology and Requirements Language</name>
        <t>The terminology from <xref target="RFC7252"/> and <xref target="STD94"/> applies.
Readers are also expected to be familiar with the terminology from <xref target="RFC7807"/>.</t>
        <t>In this document, the structure of data is specified in CDDL <xref target="RFC8610"/> <xref target="RFC9165"/>.</t>
        <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>
      </section>
    </section>
    <section anchor="basic-problem-details">
      <name>Basic Problem Details</name>
      <t>A Concise Problem Details data item is a CBOR data item with the following
structure:</t>
      <figure anchor="cddl">
        <name>Structure of Concise Problem Details Data Item</name>
        <sourcecode type="cddl"><![CDATA[
problem-details = non-empty<{
  ? &(title: -1) => oltext
  ? &(detail: -2) => oltext
  ? &(instance: -3) => ~uri
  ? &(response-code: -4) => uint .size 1
  ? &(base-uri: -5) => ~uri
  standard-problem-detail-entries
  custom-problem-detail-entries
}>

standard-problem-detail-entries = (
  * nint => any
)

custom-problem-detail-entries = (
  * (uint/~uri) => { + any => any }
)

non-empty<M> = (M) .and ({ + any => any })

oltext = text / tag38 ; see Appendix A for tag38

]]></sourcecode>
      </figure>
      <t>A number of problem detail entries, the Standard Problem Detail
entries, are predefined (more predefined details can be registered,
see <xref target="new-spdk"/>).</t>
      <t>Note that, unlike <xref target="RFC7807"/>, Concise Problem Details data items have
no explicit "problem type".
Instead, the category (or, one could say, Gestalt) of the problem can
be understood from the shape of the problem details offered. We talk of
a "problem shape" for short.</t>
      <dl newline="true">
        <dt>The title (key -1):</dt>
        <dd>
          <t>A short, human-readable summary of the problem shape.
It <bcp14>SHOULD NOT</bcp14> change from occurrence to occurrence of the same
problem shape.</t>
        </dd>
        <dt>The detail (key -2):</dt>
        <dd>
          <t>A human-readable explanation specific to this occurrence of the problem.</t>
        </dd>
        <dt>The instance (key -3):</dt>
        <dd>
          <t>A URI reference that identifies the specific occurrence of the problem.
It may or may not yield further information if dereferenced.</t>
        </dd>
        <dt>The response-code (key -4):</dt>
        <dd>
          <t>The CoAP response code (Sections <xref target="RFC7252" section="5.9" sectionFormat="bare"/> and <xref target="RFC7252" section="12.1.2" sectionFormat="bare"/> of <xref target="RFC7252"/>) generated by the origin
server for this occurrence of the problem.</t>
        </dd>
        <dt>The base-uri (key -5):</dt>
        <dd>
          <t>The base URI (<xref section="5.1" sectionFormat="of" target="STD66"/>) that should be used to resolve
relative URI references embedded in this Concise Problem Details
data item.</t>
        </dd>
      </dl>
      <t>Both "title" and "detail" can use either an unadorned CBOR text string
(<tt>text</tt>) or a language-tagged text string (<tt>tag38</tt>); see <xref target="tag38"/> for
the definition of the latter.</t>
      <t>The "title" string is advisory and included to give
consumers a shorthand for the category (problem shape) of the error encountered.</t>
      <t>The "detail" member, if present, ought to focus on helping the client correct the problem, rather than giving debugging information.  Consumers <bcp14>SHOULD NOT</bcp14> parse the "detail" member for information; extensions (see <xref target="sec-new-attributes"/>) are more suitable and less error-prone ways to obtain such information.</t>
      <t>Note that the "instance" URI reference may be relative; this means
that it must be resolved relative to the representation's base URI, as
per <xref section="5" sectionFormat="of" target="STD66"/>.</t>
      <t>The "response-code" member, if present, is only advisory; it conveys
the CoAP response code used for the convenience of the consumer.
Generators <bcp14>MUST</bcp14> use the same response code here as in the actual CoAP
response; the latter is needed to assure that generic CoAP software that
does not understand the problem-details format still behaves
correctly.
Consumers can use the response-code member to determine what the
original response code used by the generator was, in cases where it
has been changed (e.g., by an intermediary or cache), and when message
bodies persist without CoAP information (e.g., in an events log or analytics
database).
Generic CoAP software will still use the CoAP response code.
To support the use case of message body persistence without support by
the problem-details generator, the entity that persists the Concise
Problem Details data item can copy over the CoAP response code
that it received on the CoAP level.
Note that the "response-code" value is a numeric representation of the
actual code (see <xref section="3" sectionFormat="of" target="RFC7252"/>), so it does not take the usual
presentation form that resembles an
HTTP status code -- <tt>4.04 Not found</tt> is represented by the number 132.</t>
      <t>The "base-uri" member is usually not present in the initial
request-response communication as it can be inferred as per <xref section="5.1.3" sectionFormat="of" target="STD66"/>.
An entity that stores a Concise Problem Details data item or otherwise
makes it available for consumers without this context might add in a
base-uri member to allow those consumers to perform resolution of any
relative URI references embedded in the data item.</t>
    </section>
    <section anchor="sec-new-attributes">
      <name>Extending Concise Problem Details</name>
      <t>This specification defines a generic problem details container with only a
minimal set of attributes to make it usable.</t>
      <t>It is expected that applications will extend the base format by defining new
attributes.</t>
      <t>These new attributes fall into two categories: generic and application
specific.</t>
      <t>Generic attributes will be allocated in the <tt>standard-problem-detail-entries</tt>
slot according to the registration procedure defined in <xref target="new-spdk"/>.</t>
      <t>Application-specific attributes will be allocated in the
<tt>custom-problem-detail-entries</tt> slot according to the procedure described in
<xref target="new-cpdk"/>.</t>
      <section anchor="new-spdk">
        <name>Standard Problem Detail Entries</name>
        <t>Beyond the Standard Problem Detail keys defined in <xref target="cddl"/>, additional
Standard Problem Detail keys can be registered for use in the
<tt>standard-problem-detail-entries</tt> slot (see <xref target="iana-spdk"/>).</t>
        <t>Standard Problem Detail keys are negative integers, so they can never
conflict with Custom Problem Detail keys defined for a specific
application domain
(which are unsigned integers or URIs.)</t>
        <t>In summary, the keys for Standard Problem Detail entries are in a
global namespace that is not specific to a particular application domain.</t>
        <t>Consumers of a Concise Problem Details data item <bcp14>MUST</bcp14> ignore any Standard Problem
Detail entries that they do not recognize; this allows problem details to evolve.</t>
      </section>
      <section anchor="new-cpdk">
        <name>Custom Problem Detail Entries</name>
        <t>Applications may extend the Problem Details data item with
additional entries to convey additional, application-specific information.</t>
        <t>Such new entries are allocated in the <tt>custom-problem-detail-entries</tt> slot, and
carry a nested map specific to that application.  The map key can either be
an (absolute!) URI (under control of the entity defining this extension),
or an unsigned integer.
Only the latter needs to be registered (<xref target="iana-cpdk"/>).</t>
        <t>Within the nested map, any number of attributes can be given for a
single extension.
The semantics of each custom attribute <bcp14>MUST</bcp14> be described in the
documentation for the extension; for extensions that are registered
(i.e., are identified by an unsigned int) that documentation goes
along with the registration.</t>
        <t>The unsigned integer form allows a more compact representation.
In
exchange, authors are expected to comply with the required
registration and documentation process.
In comparison, the URI form is less space-efficient but requires no
registration.  It is therefore useful for experimenting during the development
cycle and for applications deployed in environments where producers and
consumers of Concise Problem Details are more tightly integrated.
(The URI form thus covers the potential need we might otherwise have for a "private use" range for the unsigned integers.)</t>
        <t>Note that the URI given for the extension is for identification
purposes only and, even if dereferenceable in principle, it <bcp14>MUST NOT</bcp14> be
dereferenced in the normal course of handling problem details (i.e., outside
diagnostic/debugging procedures involving humans).</t>
        <t>An example of a custom extension using a URI as <tt>custom-problem-detail-entries</tt>
key is shown in <xref target="fig-example-custom-with-uri"/>.</t>
        <figure anchor="fig-example-custom-with-uri">
          <name>Example Extension with URI key</name>
          <artwork type="cbor-diag" align="center"><![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 /

  "tag:3gpp.org,2022-03:TS29112": {
    / cause /  0: "machine readable error cause",
    / invalidParams / 1: [
      [
        / param / "first parameter name",
        / reason / "must be a positive integer"
      ],
      [
        / param / "second parameter name"
      ]
    ],
    / supportedFeatures / 2: "d34db33f"
  }
}
]]></artwork>
        </figure>
        <t>Obviously, an SDO like 3GPP can also easily register such a custom
problem detail entry to receive a more efficient unsigned integer key;
the same example but using a registered unsigned int as
<tt>custom-problem-detail-entries</tt> key is shown in
<xref target="fig-example-custom-with-uint"/>.</t>
        <figure anchor="fig-example-custom-with-uint">
          <name>Example Extension with unsigned int (registered) key</name>
          <artwork type="cbor-diag" align="center"><![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 /

  /example value 4711 not actually registered like this:/
  4711: {
    / cause /  0: "machine readable error cause",
    / invalidParams / 1: [
      [
        / param / "first parameter name",
        / reason / "must be a positive integer"
      ],
      [
        / param / "second parameter name"
      ]
    ],
    / supportedFeatures / 2: "d34db33f"
  }
}
]]></artwork>
        </figure>
        <t>In summary, the keys for the maps used inside Custom Problem Detail
entries are defined specifically to the identifier of that Custom Problem Detail
entry, the documentation of which defines these internal entries,
typically chosen to address a given application domain.</t>
        <t>Consumers of a Concise Problem Details data item <bcp14>MUST</bcp14> ignore any Custom
Problem Detail entries, or keys inside the Custom Problem Detail
entries, that they do not recognize; this allows Custom Problem Detail
entries to evolve and include additional information in the future.
The assumption is that this is done in a backward and forward
compatible way.</t>
        <t>Sometimes, Custom Problem Detail entries can evolve in a way where
forward compatibility by "ignore unknown" would not be appropriate:
e.g., when needing to add a "must-understand" member, which can only
be ignored at the peril of misunderstanding the Concise Problem
Details data item ("false interoperability").
In this case, a new Custom Problem Detail key can simply be
registered for this case, keeping the old key backward and
forward-compatible.</t>
      </section>
    </section>
    <section anchor="seccons">
      <name>Security Considerations</name>
      <t>The security and privacy considerations outlined in Section 5 of <xref target="RFC7807"/> apply in full.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t><cref anchor="to-be-removed">RFC Editor: please replace RFC XXXX with this RFC number and remove this note.</cref></t>
      <section anchor="iana-spdk">
        <name>Standard Problem Detail Key registry</name>
        <!-- {{content-formats (CoAP Content-Formats)<IANA.core-parameters}} -->

<t>This specification defines a new sub-registry for Standard Problem
Detail Keys in the CoRE Parameters registry <xref target="IANA.core-parameters"/>,
with the policy "specification required" <xref target="RFC8126"/>.</t>
        <t>Each entry in the registry must include:</t>
        <dl newline="true">
          <dt>Key value:</dt>
          <dd>
            <t>a negative integer to be used as the value of the key</t>
          </dd>
          <dt>Name:</dt>
          <dd>
            <t>a name that could be used in implementations for the key</t>
          </dd>
          <dt>CDDL type:</dt>
          <dd>
            <t>type of the data associated with the key in CDDL notation</t>
          </dd>
          <dt>Brief description:</dt>
          <dd>
            <t>a brief description</t>
          </dd>
          <dt>reference:</dt>
          <dd>
            <t>a reference document</t>
          </dd>
        </dl>
        <t>Initial entries in this sub-registry are as follows:</t>
        <table anchor="spdk">
          <name>Initial Entries in the Standard Problem Detail Key registry</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">-1</td>
              <td align="left">title</td>
              <td align="left">text or tag 38</td>
              <td align="left">short, human-readable summary of the problem shape</td>
              <td align="left">RFC XXXX</td>
            </tr>
            <tr>
              <td align="left">-2</td>
              <td align="left">detail</td>
              <td align="left">text or tag 38</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">-3</td>
              <td align="left">instance</td>
              <td align="left">~uri</td>
              <td align="left">URI reference identifying specific occurrence of the problem</td>
              <td align="left">RFC XXXX</td>
            </tr>
            <tr>
              <td align="left">-4</td>
              <td align="left">response-code</td>
              <td align="left">uint .size 1</td>
              <td align="left">CoAP response code</td>
              <td align="left">RFC XXXX</td>
            </tr>
            <tr>
              <td align="left">-5</td>
              <td align="left">base-uri</td>
              <td align="left">~uri</td>
              <td align="left">Base URI</td>
              <td align="left">RFC XXXX</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="iana-cpdk">
        <name>Custom Problem Detail Key registry</name>
        <t>This specification defines a new sub-registry for Custom Problem
Detail Keys in the CoRE Parameters registry <xref target="IANA.core-parameters"/>,
with the policy "first come first served" <xref target="RFC8126"/>.</t>
        <t>Each entry in the registry must include:</t>
        <dl newline="true">
          <dt>Key value:</dt>
          <dd>
            <t>an unsigned integer to be used as the value of the key</t>
          </dd>
          <dt>Name:</dt>
          <dd>
            <t>a name that could be used in implementations for the key</t>
          </dd>
          <dt>Brief description:</dt>
          <dd>
            <t>a brief description</t>
          </dd>
          <dt>Reference:</dt>
          <dd>
            <t>a reference document that provides a description of the map,
including a CDDL description, that describes all inside keys and
values</t>
          </dd>
        </dl>
        <t>Initial entries in this sub-registry are as follows:</t>
        <table anchor="cpdk">
          <name>Initial Entries in the Custom Problem Detail Key registry</name>
          <thead>
            <tr>
              <th align="left">Key value</th>
              <th align="left">Name</th>
              <th align="left">Brief description</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">7807</td>
              <td align="left">tunnel-7807</td>
              <td align="left">Carry RFC 7807 problem details in a Concise Problem Details data item</td>
              <td align="left">RFC XXXX</td>
            </tr>
          </tbody>
        </table>
      </section>
      <section anchor="media-type">
        <name>Media Type</name>
        <t>IANA is requested to add the following Media-Type to the "Media Types"
registry <xref target="IANA.media-types"/>.</t>
        <table align="left" anchor="new-media-type">
          <name>New Media Type application/concise-problem-details+cbor</name>
          <thead>
            <tr>
              <th align="left">Name</th>
              <th align="left">Template</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">concise-problem-details+cbor</td>
              <td align="left">application/concise-problem-details+cbor</td>
              <td align="left">RFC XXXX, <xref target="media-type"/></td>
            </tr>
          </tbody>
        </table>
        <dl spacing="compact">
          <dt>Type name:</dt>
          <dd>
            <t>application</t>
          </dd>
          <dt>Subtype name:</dt>
          <dd>
            <t>concise-problem-details+cbor</t>
          </dd>
          <dt>Required parameters:</dt>
          <dd>
            <t>none</t>
          </dd>
          <dt>Optional parameters:</dt>
          <dd>
            <t>none</t>
          </dd>
          <dt>Encoding considerations:</dt>
          <dd>
            <t>binary (CBOR data item)</t>
          </dd>
          <dt>Security considerations:</dt>
          <dd>
            <t><xref target="seccons"/> of RFC XXXX</t>
          </dd>
          <dt>Interoperability considerations:</dt>
          <dd>
            <t>none</t>
          </dd>
          <dt>Published specification:</dt>
          <dd>
            <t><xref target="media-type"/> of RFC XXXX</t>
          </dd>
          <dt>Applications that use this media type:</dt>
          <dd>
            <t>Clients and servers in the Internet of Things</t>
          </dd>
          <dt>Fragment identifier considerations:</dt>
          <dd>
            <t>The syntax and semantics of fragment identifiers is as specified for
"application/cbor".  (At publication of RFC XXXX, there is no
fragment identification syntax defined for "application/cbor".)</t>
          </dd>
          <dt>Person &amp; email address to contact for further information:</dt>
          <dd>
            <t>CoRE WG mailing list (core@ietf.org),
or IETF Applications and Real-Time Area (art@ietf.org)</t>
          </dd>
          <dt>Intended usage:</dt>
          <dd>
            <t>COMMON</t>
          </dd>
          <dt>Restrictions on usage:</dt>
          <dd>
            <t>none</t>
          </dd>
          <dt>Author/Change controller:</dt>
          <dd>
            <t>IETF</t>
          </dd>
          <dt>Provisional registration:</dt>
          <dd>
            <t>no</t>
          </dd>
        </dl>
      </section>
      <section anchor="content-format">
        <name>Content-Format</name>
        <t>IANA is requested to register a Content-Format number in the
<xref section="&quot;CoAP Content-Formats&quot;" relative="#content-formats" sectionFormat="bare" target="IANA.core-parameters"/>
sub-registry, within the "Constrained RESTful Environments (CoRE)
Parameters" Registry <xref target="IANA.core-parameters"/>, as follows:</t>
        <table align="left">
          <name>New Content-Format</name>
          <thead>
            <tr>
              <th align="left">Content-Type</th>
              <th align="left">Content Coding</th>
              <th align="left">ID</th>
              <th align="left">Reference</th>
            </tr>
          </thead>
          <tbody>
            <tr>
              <td align="left">application/concise-problem-details+cbor</td>
              <td align="left">-</td>
              <td align="left">TBD1</td>
              <td align="left">RFC XXXX</td>
            </tr>
          </tbody>
        </table>
        <t>TBD1 is to be assigned from the space 256..999.</t>
        <t>In the registry as defined by <xref section="12.3" sectionFormat="of" target="RFC7252"/> at the time of
writing, the column "Content-Type" is called "Media type" and the
column "Content Coding" is called "Encoding". <cref anchor="remove">This paragraph to be removed by RFC editor.</cref></t>
      </section>
      <section anchor="iana-tag38">
        <name>CBOR Tag 38</name>
        <t>In the registry "<xref section="CBOR Tags" relative="#cbor-tags" sectionFormat="bare" target="IANA.cbor-tags"/>" <xref target="IANA.cbor-tags"/>,
IANA has registered CBOR Tag 38.
IANA is requested to replace the reference for this registration with
<xref target="tag38"/>, RFC XXXX.</t>
      </section>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <reference anchor="STD94" target="https://www.rfc-editor.org/info/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="STD66" target="https://www.rfc-editor.org/info/rfc3986">
          <front>
            <title>Uniform Resource Identifier (URI): Generic Syntax</title>
            <author fullname="T. Berners-Lee" initials="T." surname="Berners-Lee">
              <organization/>
            </author>
            <author fullname="R. Fielding" initials="R." surname="Fielding">
              <organization/>
            </author>
            <author fullname="L. Masinter" initials="L." surname="Masinter">
              <organization/>
            </author>
            <date month="January" year="2005"/>
            <abstract>
              <t>A Uniform Resource Identifier (URI) is a compact sequence of characters that identifies an abstract or physical resource.  This specification defines the generic URI syntax and a process for resolving URI references that might be in relative form, along with guidelines and security considerations for the use of URIs on the Internet.  The URI syntax defines a grammar that is a superset of all valid URIs, allowing an implementation to parse the common components of a URI reference without knowing the scheme-specific requirements of every possible identifier.  This specification does not define a generative grammar for URIs; that task is performed by the individual specifications of each URI scheme.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="66"/>
          <seriesInfo name="RFC" value="3986"/>
          <seriesInfo name="DOI" value="10.17487/RFC3986"/>
        </reference>
        <reference anchor="RFC7252" target="https://www.rfc-editor.org/info/rfc7252">
          <front>
            <title>The Constrained Application Protocol (CoAP)</title>
            <author fullname="Z. Shelby" initials="Z." surname="Shelby">
              <organization/>
            </author>
            <author fullname="K. Hartke" initials="K." surname="Hartke">
              <organization/>
            </author>
            <author fullname="C. Bormann" initials="C." surname="Bormann">
              <organization/>
            </author>
            <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="RFC7807" target="https://www.rfc-editor.org/info/rfc7807">
          <front>
            <title>Problem Details for HTTP APIs</title>
            <author fullname="M. Nottingham" initials="M." surname="Nottingham">
              <organization/>
            </author>
            <author fullname="E. Wilde" initials="E." surname="Wilde">
              <organization/>
            </author>
            <date month="March" year="2016"/>
            <abstract>
              <t>This document defines a "problem detail" as a way to carry machine- readable details of errors in a HTTP response to avoid the need to define new error response formats for HTTP APIs.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7807"/>
          <seriesInfo name="DOI" value="10.17487/RFC7807"/>
        </reference>
        <reference anchor="IANA.cbor-tags" target="https://www.iana.org/assignments/cbor-tags">
          <front>
            <title>Concise Binary Object Representation (CBOR) Tags</title>
            <author>
              <organization>IANA</organization>
            </author>
            <date/>
          </front>
        </reference>
        <reference anchor="RFC5646" target="https://www.rfc-editor.org/info/rfc5646">
          <front>
            <title>Tags for Identifying Languages</title>
            <author fullname="A. Phillips" initials="A." role="editor" surname="Phillips">
              <organization/>
            </author>
            <author fullname="M. Davis" initials="M." role="editor" surname="Davis">
              <organization/>
            </author>
            <date month="September" year="2009"/>
            <abstract>
              <t>This document describes the structure, content, construction, and semantics of language tags for use in cases where it is desirable to indicate the language used in an information object.  It also describes how to register values for use in language tags and the creation of user-defined extensions for private interchange.  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="47"/>
          <seriesInfo name="RFC" value="5646"/>
          <seriesInfo name="DOI" value="10.17487/RFC5646"/>
        </reference>
        <reference anchor="RFC4647" target="https://www.rfc-editor.org/info/rfc4647">
          <front>
            <title>Matching of Language Tags</title>
            <author fullname="A. Phillips" initials="A." role="editor" surname="Phillips">
              <organization/>
            </author>
            <author fullname="M. Davis" initials="M." role="editor" surname="Davis">
              <organization/>
            </author>
            <date month="September" year="2006"/>
            <abstract>
              <t>This document describes a syntax, called a "language-range", for specifying items in a user's list of language preferences.  It also describes different mechanisms for comparing and matching these to language tags.  Two kinds of matching mechanisms, filtering and lookup, are defined.  Filtering produces a (potentially empty) set of language tags, whereas lookup produces a single language tag. Possible applications include language negotiation or content selection.  This document, in combination with RFC 4646, replaces RFC 3066, which replaced RFC 1766.  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="47"/>
          <seriesInfo name="RFC" value="4647"/>
          <seriesInfo name="DOI" value="10.17487/RFC4647"/>
        </reference>
        <reference anchor="RFC8610" target="https://www.rfc-editor.org/info/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" target="https://www.rfc-editor.org/info/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>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner">
              <organization/>
            </author>
            <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" target="https://www.rfc-editor.org/info/rfc8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba">
              <organization/>
            </author>
            <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>
        <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>
            <date/>
          </front>
        </reference>
        <reference anchor="RFC8126" target="https://www.rfc-editor.org/info/rfc8126">
          <front>
            <title>Guidelines for Writing an IANA Considerations Section in RFCs</title>
            <author fullname="M. Cotton" initials="M." surname="Cotton">
              <organization/>
            </author>
            <author fullname="B. Leiba" initials="B." surname="Leiba">
              <organization/>
            </author>
            <author fullname="T. Narten" initials="T." surname="Narten">
              <organization/>
            </author>
            <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.media-types" target="https://www.iana.org/assignments/media-types">
          <front>
            <title>Media Types</title>
            <author>
              <organization>IANA</organization>
            </author>
            <date/>
          </front>
        </reference>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="RFC4648" target="https://www.rfc-editor.org/info/rfc4648">
          <front>
            <title>The Base16, Base32, and Base64 Data Encodings</title>
            <author fullname="S. Josefsson" initials="S." surname="Josefsson">
              <organization/>
            </author>
            <date month="October" year="2006"/>
            <abstract>
              <t>This document describes the commonly used base 64, base 32, and base 16 encoding schemes.  It also discusses the use of line-feeds in encoded data, use of padding in encoded data, use of non-alphabet characters in encoded data, use of different encoding alphabets, and canonical encodings.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4648"/>
          <seriesInfo name="DOI" value="10.17487/RFC4648"/>
        </reference>
        <reference anchor="I-D.ietf-httpapi-rfc7807bis" target="https://www.ietf.org/archive/id/draft-ietf-httpapi-rfc7807bis-03.txt">
          <front>
            <title>Problem Details for HTTP APIs</title>
            <author fullname="Mark Nottingham">
	 </author>
            <author fullname="Erik Wilde">
	 </author>
            <author fullname="Sanjay Dalal">
	 </author>
            <date day="25" month="May" year="2022"/>
            <abstract>
              <t>   This document defines a "problem detail" to carry machine-readable
   details of errors in HTTP response content and/or fields to avoid the
   need to define new error response formats for HTTP APIs.

Discussion Venues

   This note is to be removed before publishing as an RFC.

   Source for this draft and an issue tracker can be found at
   https://github.com/ietf-wg-httpapi/rfc7807bis.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-httpapi-rfc7807bis-03"/>
        </reference>
        <reference anchor="RDF" target="http://www.w3.org/TR/2014/REC-rdf11-concepts-20140225/">
          <front>
            <title>RDF 1.1 Concepts and Abstract Syntax</title>
            <author initials="R." surname="Cyganiak" fullname="Richard Cyganiak">
              <organization/>
            </author>
            <author initials="D." surname="Wood" fullname="David Wood">
              <organization/>
            </author>
            <author initials="M." surname="Lanthaler" fullname="Markus Lanthaler">
              <organization/>
            </author>
            <date year="2014" month="February" day="25"/>
          </front>
          <refcontent>W3C Recommendation</refcontent>
        </reference>
        <reference anchor="STRING-META" target="https://www.w3.org/TR/string-meta/">
          <front>
            <title>Strings on the Web: Language and Direction Metadata</title>
            <author>
              <organization/>
            </author>
            <date/>
          </front>
          <refcontent>W3C group draft note</refcontent>
        </reference>
        <reference anchor="Unicode-14.0.0" target="https://www.unicode.org/versions/Unicode14.0.0/">
          <front>
            <title>The Unicode Standard, Version 14.0.0</title>
            <author>
              <organization>The Unicode Consortium</organization>
            </author>
            <date year="2021" month="September"/>
          </front>
          <seriesInfo name="ISBN" value="978-1-936213-29-0"/>
          <annotation>Note that while this document references a version that was recent at the time of writing, the statements made based on this version are expected to remain valid for future versions.</annotation>
          <refcontent>Mountain View: The Unicode Consortium</refcontent>
        </reference>
      </references>
    </references>
    <section anchor="tag38">
      <name>Language-Tagged Strings</name>
      <t>This appendix serves as the archival documentation for CBOR Tag 38, a
tag for serializing language-tagged text strings in CBOR.
The text of this appendix is adapted from the specification text
supplied for its initial registration.
It has been extended to allow supplementing the language tag by a
direction indication.</t>
      <section anchor="introduction-1">
        <name>Introduction</name>
        <t>In some cases it is useful to specify the natural language of a text
string.  This specification defines a tag that does just that.  One
technology that supports language-tagged strings is the Resource
Description Framework (RDF) <xref target="RDF"/>.</t>
      </section>
      <section anchor="detailed-semantics">
        <name>Detailed Semantics</name>
        <t>A language-tagged string in CBOR has the tag 38 and consists of an array
with a length of 2 or 3.</t>
        <t>The first element is a well-formed language tag under Best Current
Practice 47 (<xref target="RFC5646"/> and <xref target="RFC4647"/>), represented as a UTF-8 text
string (major type 3).</t>
        <t>The second element is an arbitrary UTF-8 text string (major type
3). Both the language tag and the arbitrary string can optionally be
annotated with CBOR tags; this is not shown in the CDDL below.</t>
        <t>The optional third element, if present, is a Boolean value that
indicates a direction: <tt>false</tt> for "ltr" direction, <tt>true</tt> for "rtl"
direction.  If the third element is absent, no indication is made
about the direction; it can be explicitly given as <tt>null</tt> to express
the same while overriding any context that might be considered
applying to this element.
Note that the proper processing of Language and Direction Metadata is
an active area of investigation; the reader is advised to consult
ongoing standardization activities such as <xref target="STRING-META"/> when
processing the information represented in this tag.</t>
        <t>In CDDL:</t>
        <sourcecode type="cddl"><![CDATA[
tag38 = #6.38([tag38-ltag, text, ?tag38-direction])
tag38-ltag = text  .abnf ("Language-Tag" .det RFC5646)
tag38-direction = &(ltr: false, rtl: true, auto: null)

RFC5646 = '
 Language-Tag  = langtag             ; normal language tags
               / privateuse          ; private use tag
               / legacy              ; legacy tags

 langtag       = language
                 ["-" script]
                 ["-" region]
                 *("-" variant)
                 *("-" extension)
                 ["-" privateuse]

 language      = 2*3ALPHA            ; shortest ISO 639 code
                 ["-" extlang]       ; sometimes followed by
                                     ; extended language subtags
               / 4ALPHA              ; or reserved for future use
               / 5*8ALPHA            ; or registered language subtag

 extlang       = 3ALPHA              ; selected ISO 639 codes
                 *2("-" 3ALPHA)      ; permanently reserved

 script        = 4ALPHA              ; ISO 15924 code

 region        = 2ALPHA              ; ISO 3166-1 code
               / 3DIGIT              ; UN M.49 code

 variant       = 5*8alphanum         ; registered variants
               / (DIGIT 3alphanum)

 extension     = singleton 1*("-" (2*8alphanum))

                                     ; Single alphanumerics
                                     ; "x" reserved for private use
 singleton     = DIGIT               ; 0 - 9
               / %x41-57             ; A - W
               / %x59-5A             ; Y - Z
               / %x61-77             ; a - w
               / %x79-7A             ; y - z

 privateuse    = "x" 1*("-" (1*8alphanum))

 legacy        = irregular / regular ; different word in RFC

 irregular     = "en-GB-oed" / "i-ami" / "i-bnn" / "i-default" /
               "i-enochian" / "i-hak" / "i-klingon" / "i-lux" /
               "i-mingo" / "i-navajo" / "i-pwn" / "i-tao" / "i-tay" /
               "i-tsu" / "sgn-BE-FR" / "sgn-BE-NL" / "sgn-CH-DE"

 regular       = "art-lojban" / "cel-gaulish" / "no-bok" / "no-nyn" /
               "zh-guoyu" / "zh-hakka" / "zh-min" / "zh-min-nan" /
               "zh-xiang"

 alphanum      = (ALPHA / DIGIT)     ; letters and numbers

 ALPHA         =  %x41-5A / %x61-7A  ; A-Z / a-z
 DIGIT         =  %x30-39            ; 0-9
'
]]></sourcecode>
        <!-- RUBY_THREAD_VM_STACK_SIZE=5000000 cddl ... -->

<t>NOTE: Language tags of any combination of case are allowed. But
section 2.1.1 of <xref target="RFC5646"/>, part of Best Current Practice 47,
recommends a case combination for language tags, that encoders that
support tag 38 may wish to follow when generating language tags.</t>
        <t>Data items with tag 38 that do not meet the criteria above are invalid
(see <xref section="5.3.2" sectionFormat="of" target="STD94"/>).</t>
        <t>NOTE: The Unicode Standard <xref target="Unicode-14.0.0"/> includes a set of characters
designed for tagging text (including language tagging), in the range
U+E0000 to U+E007F. Although many applications, including RDF,
do not disallow these characters in text strings, the Unicode Consortium
has deprecated these characters and recommends annotating language via a
higher-level protocol instead. See the section "Deprecated Tag
Characters" in Section 23.9 of <xref target="Unicode-14.0.0"/>.</t>
      </section>
      <section anchor="examples">
        <name>Examples</name>
        <t>Examples in this section are given in CBOR diagnostic mode, and then
as a pretty-printed hexadecimal representation of the encoded item.</t>
        <t>The following example shows how the English-language string "Hello" is
represented.</t>
        <sourcecode type="cbor-diag"><![CDATA[
38(["en", "Hello"])
]]></sourcecode>
        <sourcecode type="cbor-pretty"><![CDATA[
D8 26               # tag(38)
   82               # array(2)
      62            # text(2)
         656E       # "en"
      65            # text(5)
         48656C6C6F # "Hello"
]]></sourcecode>
        <t>The following example shows how the French-language string "Bonjour" is
represented.</t>
        <sourcecode type="cbor-diag"><![CDATA[
38(["fr", "Bonjour"])
]]></sourcecode>
        <sourcecode type="cbor-pretty"><![CDATA[
D8 26                   # tag(38)
   82                   # array(2)
      62                # text(2)
         6672           # "fr"
      67                # text(7)
         426F6E6A6F7572 # "Bonjour"
]]></sourcecode>
        <t>The following example shows how the Hebrew-language string
<u>שלום</u> is represented.
Note the <tt>rtl</tt> direction expressed by setting the third element in the array to "true".</t>
        <sourcecode type="cbor-diag"><![CDATA[
38(["he", "שלום", true])
]]></sourcecode>
        <sourcecode type="cbor-pretty"><![CDATA[
D8 26                     # tag(38)
   83                     # array(3)
      62                  # text(2)
         6865             # "he"
      68                  # text(8)
         D7A9D79CD795D79D # "שלום"
      F5                  # primitive(21)
]]></sourcecode>
      </section>
    </section>
    <section anchor="comp7807">
      <name>Interworking with RFC 7807</name>
      <t>On certain occasions, it will be necessary to carry ("tunnel")
<xref target="RFC7807"/> problem details in a Concise Problem Details data item.</t>
      <t>This appendix defines a Custom Problem Details entry for that purpose.
This is assigned Custom Problem Detail key 7807 in <xref target="iana-cpdk"/>.
Its structure is:</t>
      <sourcecode type="cddl"><![CDATA[
tunnel-7807 = {
  ? &(type: 0) => ~uri
  ? &(status: 1) => 0..999
  * text => any
}
]]></sourcecode>
      <t>To carry an <xref target="RFC7807"/> problem details JSON object in a Concise Problem
Details data item, first convert the JSON object to CBOR as per <xref section="6.2" sectionFormat="of" target="STD94"/>.  Create an empty Concise Problem Details data item.</t>
      <t>Move the values for "title", "detail", and "instance", if present,
from the <xref target="RFC7807"/> problem details to the equivalent Standard Problem
Detail entries.
Create a Custom Problem Details entry with key 7807.
Move the values for "type" and "status", if present, to the equivalent
keys 0 and 1 of the Custom Problem Details entry.
Move all remaining key/value pairs (additional members as per <xref section="3.2" sectionFormat="of" target="RFC7807"/>) in the converted <xref target="RFC7807"/> problem
details object to the Custom Problem Details map unchanged.</t>
      <t>The inverse direction, carrying Concise Problem Details in a Problem
Details JSON object requires the additional support provided by
<xref target="I-D.ietf-httpapi-rfc7807bis"/>, which is planned to create the HTTP Problem Types
Registry.  An HTTP Problem Type can then be registered that extracts
top-level items from the Concise Problem Details data item in a similar way
to the conversion described above, and which carries the rest of the
Concise Problem Details data item in an additional member via base64url
encoding without padding (<xref section="5" sectionFormat="of" target="RFC4648"/>).  Details can be defined
in a separate document when the work on <xref target="I-D.ietf-httpapi-rfc7807bis"/> is completed.</t>
    </section>
    <section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t><contact fullname="Mark Nottingham"/> and <contact fullname="Erik Wilde"/>, authors of RFC 7807.  <contact fullname="Klaus Hartke"/> and <contact fullname="Jaime Jiménez"/>, co-authors of an earlier generation of this
specification.  <contact fullname="Christian Amsüss"/>, <contact fullname="Marco Tiloca"/>, <contact fullname="Ari Keränen"/>
and <contact fullname="Michael Richardson"/> for review and comments on this document.</t>
      <t>For <xref target="tag38"/>, John Cowan and Doug Ewell are also to be acknowledged.
The content of an earlier version of this appendix was also discussed
in the "apps-discuss at ietf.org" and "ltru at ietf.org" mailing
lists.</t>
    </section>
    <section anchor="contributors" numbered="false" toc="include" removeInRFC="false">
      <name>Contributors</name>
      <contact initials="P." surname="Occil" fullname="Peter Occil">
        <organization/>
        <address>
          <email>poccil14 at gmail dot com</email>
          <uri>http://peteroupc.github.io/CBOR/</uri>
        </address>
      </contact>
      <t>Peter defined CBOR tag 38, basis of <xref target="tag38"/>.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
bwAA

-->

</rfc>
