<?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.17 (Ruby 3.1.2) -->
<?rfc compact="yes"?>
<?rfc comments="yes"?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-bormann-cbor-cddl-freezer-10" category="info" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.15.1 -->
  <front>
    <title abbrev="CDDL feature freezer">A feature freezer for the Concise Data Definition Language (CDDL)</title>
    <seriesInfo name="Internet-Draft" value="draft-bormann-cbor-cddl-freezer-10"/>
    <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="October" day="24"/>
    <keyword>CDDL evolution</keyword>
    <abstract>
      <t>In defining the Concise Data Definition Language (CDDL), some features
have turned up that would be nice to have.  In the interest of
completing this specification in a timely manner, the present document
was started to collect nice-to-have features that did not make it into the first RFC
for CDDL, RFC 8610, or the specifications exercising its extension points, such
as RFC 9165.</t>
      <t>Significant parts of this draft have now moved over to the CDDL 2.0
project, described in draft-bormann-cbor-cddl-2-draft.
The remaining items in this draft are not directly related to the CDDL
2.0 effort.</t>
    </abstract>
  </front>
  <middle>
    <section anchor="intro">
      <name>Introduction</name>
      <t>In defining the Concise Data Definition Language (CDDL), some features
have turned up that would be nice to have.  In the interest of
completing this specification in a timely manner, the present document
was started to collect nice-to-have features that did not make it into the first RFC
for CDDL <xref target="RFC8610"/>, or the specifications exercising its extension points, such
as <xref target="RFC9165"/>.</t>
      <t>Significant parts of this draft have now moved over to <xref target="I-D.bormann-cbor-cddl-2-draft"/>.
The remaining items in this draft are not directly related to the CDDL
2.0 effort.</t>
      <t>There is always a danger for a document like this to become a shopping
list; the intention is to develop this document further based on the
rapidly growing real-world experience with the first CDDL standard.</t>
    </section>
    <section anchor="base-language-features">
      <name>Base language features</name>
      <section anchor="cuts">
        <name>Cuts</name>
        <t><xref section="3.5.4" sectionFormat="of" target="RFC8610"/> alludes to a new language feature, <em>cuts</em>,
and defines it in a fashion that is rather focused on a single
application in the context of maps and generating better diagnostic
information about them.</t>
        <t>The present document is expected to grow a more complete definition of
cuts, with the expectation that it will be upwards-compatible to the
existing one in <xref target="RFC8610"/>, before this possibly becomes a mainline
language feature in a future version of CDDL.</t>
      </section>
    </section>
    <section anchor="literal-syntax">
      <name>Literal syntax</name>
      <section anchor="regular-expression-literals">
        <name>Regular Expression Literals</name>
        <t>Regular expressions currently are notated as strings in CDDL, with all
the string escaping rules applied once.  It might be convenient to
have a more conventional literal format for regular expressions,
possibly also providing a place to add modifiers such as <tt>/i</tt>.
This might also imply <tt>text .regexp ...</tt>, which with the proposal in
<xref target="pcre"/> then raises the question of how to indicate the regular
expression flavor.</t>
        <t>(With the support for ABNF in <xref target="RFC9165"/>, the need for this is
reduced.
Also, the proliferation of regular expression flavors is hard to
address with a single syntax.)</t>
      </section>
    </section>
    <section anchor="controls">
      <name>Controls</name>
      <t>Controls are the main extension point of the CDDL language.
It is relatively painless to add controls to CDDL; this mechanism has
been exercised in <xref target="RFC9090"/> for SDNV <xref target="RFC6256"/> and ASN.1 OID related byte
strings, and in <xref target="RFC9165"/> for more generally applicable controls,
including an interface to ABNF <xref target="RFC5234"/> <xref target="RFC7405"/>.
Several further candidates have been identified that aren't quite ready for
adoption, of which a few shall be listed here.</t>
      <section anchor="pcre">
        <name>Control operator .pcre</name>
        <t>There are many variants of regular expression languages.
<xref section="3.8.3" sectionFormat="of" target="RFC8610"/> defines the .regexp control, which is
based on <xref target="XSD2">XSD</xref> regular expressions.
As discussed in that section, the most desirable form of regular
expressions in many cases is the family called "Perl-Compatible
Regular Expressions" (<xref target="PCRE"/>); however, no formally stable
definition of PCRE is available at this time for normatively
referencing it from an RFC.</t>
        <t>The present document defines the control operator .pcre, which is
similar to .regexp, but uses PCRE2 regular expressions.
More specifically, a <tt>.pcre</tt> control indicates that the text string
given as a target needs to match the PCRE regular expression given as
a value in the control type, where that regular expression is anchored
on both sides.
(If anchoring is not desired for a side, <tt>.*</tt> needs to be inserted
there.)</t>
        <t>Similarly, <tt>.es2018re</tt> could be defined for ECMAscript 2018 regular
expressions with anchors added.</t>
        <t>See also <xref target="I-D.draft-bormann-jsonpath-iregexp"/>, which could be specifically called out via
<tt>.iregexp</tt> (even though <tt>.regexp</tt> as per <xref section="3.8.3" sectionFormat="of" target="RFC8610"/>
would also have the same semantics, except for a wider range of regexps).</t>
      </section>
      <section anchor="endianness-in-bits">
        <name>Endianness in .bits</name>
        <t>How useful would it be to have another variant of .bits that counts
bits like in RFC box notation?  (Or at least per-byte?  32-bit words
don't always perfectly mesh with byte strings.)</t>
      </section>
      <section anchor="bitfield-control">
        <name>.bitfield control</name>
        <t>Provide a way to specify bitfields in byte strings and uints to a
higher level of detail than is possible with .bits.  Strawman:</t>
        <sourcecode type="CDDL"><![CDATA[
Field = uint .bitfield Fieldbits

Fieldbits = [
  flag1: [1, bool],
  val: [4, Vals],
  flag2: [1, bool],
]

Vals = &(A: 0, B: 1, C: 2, D: 3)
]]></sourcecode>
        <t>Note that the group within the controlling array can have choices,
enabling the whole power of a context-free grammar (but not much more).</t>
      </section>
    </section>
    <section anchor="co-occurrence-constraints">
      <name>Co-occurrence Constraints</name>
      <t>While there are no co-occurrence constraints in CDDL, many actual use
cases can be addressed by using the fact that a group is a grammar:</t>
      <sourcecode type="CDDL"><![CDATA[
postal = {
  ( street: text,
    housenumber: text) //
  ( pobox: text .regexp "[0-9]+" )
}
]]></sourcecode>
      <t>However, constraints that are not just structural/tree-based but are
predicates combining parts of the structure cannot be expressed:</t>
      <sourcecode type="CDDLx"><![CDATA[
session = {
  timeout: uint,
}

other-session = {
  timeout: uint  .lt [somehow refer to session.timeout],
}
]]></sourcecode>
      <t>As a minimum, this requires the ability to reach over to other parts
of the tree in a control.  Compare JSON Pointer <xref target="RFC6901"/> and JSON
Relative Pointer <xref target="I-D.handrews-relative-json-pointer"/>.
Stefan Goessner's jsonpath is a JSON variant of XPath that is now
undergoing standardization <xref target="jsonpath"/>.</t>
      <t>More generally, something akin to what Schematron is to Relax-NG may
be needed.</t>
    </section>
    <section anchor="alternative-representations">
      <name>Alternative Representations</name>
      <t>For CDDL, alternative representations e.g. in JSON (and thus in YAML)
could be defined, similar to the way YANG defines an XML-based
serialization called YIN in <xref section="11" sectionFormat="of" target="RFC6020"/>.
One proposal for such a syntax is provided by the <tt>cddlc</tt> tool
<xref target="cddlc"/>, which is reproduced below.
This could be written up in more detail and agreed upon.</t>
      <sourcecode type="cddl"><![CDATA[
cddlj = ["cddl", +rule]
rule = ["=" / "/=" / "//=", namep, type]
namep = ["name", id] / ["gen", id, +id]
id = text .regexp "[A-Za-z@_$](([-.])*[A-Za-z0-9@_$])*"
op = ".." / "..." /
  text .regexp "\\.[A-Za-z@_$](([-.])*[A-Za-z0-9@_$])*"
namea = ["name", id] / ["gen", id, +type]
type = value / namea / ["op", op, type, type] /
  ["map", group] / ["ary", group] / ["tcho", 2*type] /
  ["unwrap", namea] / ["enum", group / namea] /
  ["prim", ?((6, type/uint, ?type) // (0..7, ?uint))]
group = ["mem", null/type, type] /
  ["rep", uint, uint/false, group] /
  ["seq", 2*group] / ["gcho", 2*group]
value = ["number"/"text"/"bytes", text]
]]></sourcecode>
      <t>The "prim"-labeled array includes support for non-literal tag numbers
(<xref section="2.1" sectionFormat="of" target="I-D.bormann-cbor-cddl-2-draft"/>).</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document makes no requests of IANA.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security considerations</name>
      <t>The security considerations of <xref target="RFC8610"/> apply.</t>
    </section>
  </middle>
  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        <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>
      </references>
      <references>
        <name>Informative References</name>
        <reference anchor="RFC5234" target="https://www.rfc-editor.org/info/rfc5234">
          <front>
            <title>Augmented BNF for Syntax Specifications: ABNF</title>
            <author fullname="D. Crocker" initials="D." role="editor" surname="Crocker">
              <organization/>
            </author>
            <author fullname="P. Overell" initials="P." surname="Overell">
              <organization/>
            </author>
            <date month="January" year="2008"/>
            <abstract>
              <t>Internet technical specifications often need to define a formal syntax.  Over the years, a modified version of Backus-Naur Form (BNF), called Augmented BNF (ABNF), has been popular among many Internet specifications.  The current specification documents ABNF. It balances compactness and simplicity with reasonable representational power.  The differences between standard BNF and ABNF involve naming rules, repetition, alternatives, order-independence, and value ranges.  This specification also supplies additional rule definitions and encoding for a core lexical analyzer of the type common to several Internet specifications.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="68"/>
          <seriesInfo name="RFC" value="5234"/>
          <seriesInfo name="DOI" value="10.17487/RFC5234"/>
        </reference>
        <reference anchor="RFC7405" target="https://www.rfc-editor.org/info/rfc7405">
          <front>
            <title>Case-Sensitive String Support in ABNF</title>
            <author fullname="P. Kyzivat" initials="P." surname="Kyzivat">
              <organization/>
            </author>
            <date month="December" year="2014"/>
            <abstract>
              <t>This document extends the base definition of ABNF (Augmented Backus-Naur Form) to include a way to specify US-ASCII string literals that are matched in a case-sensitive manner.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7405"/>
          <seriesInfo name="DOI" value="10.17487/RFC7405"/>
        </reference>
        <reference anchor="RFC9090" target="https://www.rfc-editor.org/info/rfc9090">
          <front>
            <title>Concise Binary Object Representation (CBOR) Tags for Object Identifiers</title>
            <author fullname="C. Bormann" initials="C." surname="Bormann">
              <organization/>
            </author>
            <date month="July" year="2021"/>
            <abstract>
              <t>The Concise Binary Object Representation (CBOR), defined in RFC 8949, 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.</t>
              <t>This document defines CBOR tags for object identifiers (OIDs) and is the reference document for the IANA registration of the CBOR tags so defined.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9090"/>
          <seriesInfo name="DOI" value="10.17487/RFC9090"/>
        </reference>
        <reference anchor="RFC6256" target="https://www.rfc-editor.org/info/rfc6256">
          <front>
            <title>Using Self-Delimiting Numeric Values in Protocols</title>
            <author fullname="W. Eddy" initials="W." surname="Eddy">
              <organization/>
            </author>
            <author fullname="E. Davies" initials="E." surname="Davies">
              <organization/>
            </author>
            <date month="May" year="2011"/>
            <abstract>
              <t>Self-Delimiting Numeric Values (SDNVs) have recently been introduced as a field type in proposed Delay-Tolerant Networking protocols. SDNVs encode an arbitrary-length non-negative integer or arbitrary- length bitstring with minimum overhead.  They are intended to provide protocol flexibility without sacrificing economy and to assist in future-proofing protocols under development.  This document describes formats and algorithms for SDNV encoding and decoding, along with notes on implementation and usage.  This document is a product of the Delay-Tolerant Networking Research Group and has been reviewed by that group.  No objections to its publication as an RFC were raised.  This document is not an Internet Standards Track specification; it is published for informational purposes.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6256"/>
          <seriesInfo name="DOI" value="10.17487/RFC6256"/>
        </reference>
        <reference anchor="XSD2" target="https://www.w3.org/TR/2004/REC-xmlschema-2-20041028/">
          <front>
            <title>XML Schema Part 2: Datatypes Second Edition</title>
            <author fullname="Ashok Malhotra" role="editor"/>
            <author fullname="Paul V. Biron" role="editor"/>
            <date day="28" month="October" year="2004"/>
          </front>
          <seriesInfo name="W3C REC" value="REC-xmlschema-2-20041028"/>
          <seriesInfo name="W3C" value="REC-xmlschema-2-20041028"/>
        </reference>
        <reference anchor="PCRE" target="http://pcre.org/current/doc/html/">
          <front>
            <title>Perl-compatible Regular Expressions (revised API: PCRE2)</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="I-D.draft-bormann-jsonpath-iregexp" target="https://www.ietf.org/archive/id/draft-bormann-jsonpath-iregexp-04.txt">
          <front>
            <title>I-Regexp: An Interoperable Regexp Format</title>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <author fullname="Tim Bray" initials="T." surname="Bray">
              <organization>Textuality</organization>
            </author>
            <date day="25" month="April" year="2022"/>
            <abstract>
              <t>   This document specifies I-Regexp, a flavor of regular expressions
   that is limited in scope with the goal of interoperation across many
   different regular-expression libraries.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-bormann-jsonpath-iregexp-04"/>
        </reference>
        <reference anchor="cddlc" target="https://github.com/cabo/cddlc">
          <front>
            <title>CDDL conversion utilities</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="jsonpath" target="https://jsonpath.com">
          <front>
            <title>jsonpath online evaluator</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="I-D.bormann-cbor-cddl-2-draft" target="https://www.ietf.org/archive/id/draft-bormann-cbor-cddl-2-draft-00.txt">
          <front>
            <title>CDDL 2.0 -- a draft plan</title>
            <author fullname="Carsten Bormann" initials="C." surname="Bormann">
              <organization>Universität Bremen TZI</organization>
            </author>
            <date day="19" month="October" year="2022"/>
            <abstract>
              <t>   The Concise Data Definition Language (CDDL) today is defined by
   RFC 8610 and RFC 9165.  The latter (as well as some more application
   specific specifications such as RFC 9090) have used the extension
   point provided in RFC 8610, the control operator.

   As CDDL is used in larger projects, feature requirements become known
   that cannot be easily mapped into this single extension point.
   Hence, there is a need for evolution of the base CDDL specification
   itself.

   The present document provides a roadmap towards a "CDDL 2.0".  It is
   based on draft-bormann-cbor-cddl-freezer, but is more selective in
   what potential features it takes up and more detailed in their
   discussion.  It is intended to serve as a basis for prototypical
   implementations of CDDL 2.0.  What specific documents spawn from the
   present one or whether this document is evolved into a single
   CDDL 2.0 specification.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-bormann-cbor-cddl-2-draft-00"/>
        </reference>
        <reference anchor="RFC6901" target="https://www.rfc-editor.org/info/rfc6901">
          <front>
            <title>JavaScript Object Notation (JSON) Pointer</title>
            <author fullname="P. Bryan" initials="P." role="editor" surname="Bryan">
              <organization/>
            </author>
            <author fullname="K. Zyp" initials="K." surname="Zyp">
              <organization/>
            </author>
            <author fullname="M. Nottingham" initials="M." role="editor" surname="Nottingham">
              <organization/>
            </author>
            <date month="April" year="2013"/>
            <abstract>
              <t>JSON Pointer defines a string syntax for identifying a specific value within a JavaScript Object Notation (JSON) document.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6901"/>
          <seriesInfo name="DOI" value="10.17487/RFC6901"/>
        </reference>
        <reference anchor="I-D.handrews-relative-json-pointer" target="https://www.ietf.org/archive/id/draft-handrews-relative-json-pointer-02.txt">
          <front>
            <title>Relative JSON Pointers</title>
            <author fullname="Geraint Luff" initials="G." surname="Luff">
         </author>
            <author fullname="Henry Andrews" initials="H." surname="Andrews">
         </author>
            <date day="18" month="September" year="2019"/>
            <abstract>
              <t>   JSON Pointer is a syntax for specifying locations in a JSON document,
   starting from the document root.  This document defines an extension
   to the JSON Pointer syntax, allowing relative locations from within
   the document.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-handrews-relative-json-pointer-02"/>
        </reference>
        <reference anchor="RFC6020" target="https://www.rfc-editor.org/info/rfc6020">
          <front>
            <title>YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)</title>
            <author fullname="M. Bjorklund" initials="M." role="editor" surname="Bjorklund">
              <organization/>
            </author>
            <date month="October" year="2010"/>
            <abstract>
              <t>YANG is a data modeling language used to model configuration and state data manipulated by the Network Configuration Protocol (NETCONF), NETCONF remote procedure calls, and NETCONF notifications. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6020"/>
          <seriesInfo name="DOI" value="10.17487/RFC6020"/>
        </reference>
      </references>
    </references>
    <section numbered="false" anchor="acknowledgements">
      <name>Acknowledgements</name>
      <t>Many people have asked for CDDL to be completed, soon.
These are usually also the people who have brought up observations
that led to the proposals discussed here.
Sean Leonard has campaigned for a regexp literal syntax.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
X2xNhFPxTynmo/rQIQAA

-->

</rfc>
