draft-ietf-cbor-cddl-control-01.txt   draft-ietf-cbor-cddl-control-02.txt 
Network Working Group C. Bormann Network Working Group C. Bormann
Internet-Draft Universität Bremen TZI Internet-Draft Universität Bremen TZI
Intended status: Informational 17 November 2020 Intended status: Informational 22 February 2021
Expires: 21 May 2021 Expires: 26 August 2021
Additional Control Operators for CDDL Additional Control Operators for CDDL
draft-ietf-cbor-cddl-control-01 draft-ietf-cbor-cddl-control-02
Abstract Abstract
The Concise Data Definition Language (CDDL), standardized in RFC The Concise Data Definition Language (CDDL), standardized in RFC
8610, provides "control operators" as its main language extension 8610, provides "control operators" as its main language extension
point. point.
The present document defines a number of control operators that did The present document defines a number of control operators that did
not make it into RFC 8610: ".cat"/".plus" for the construction of not make it into RFC 8610: ".cat"/".plus" for the construction of
constants, ".abnf"/".abnfb" for including ABNF (RFC 5234/RFC 7405) in constants, ".abnf"/".abnfb" for including ABNF (RFC 5234/RFC 7405) in
skipping to change at page 1, line 38 skipping to change at page 1, line 38
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at https://datatracker.ietf.org/drafts/current/. Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on 21 May 2021. This Internet-Draft will expire on 26 August 2021.
Copyright Notice Copyright Notice
Copyright (c) 2020 IETF Trust and the persons identified as the Copyright (c) 2021 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents (https://trustee.ietf.org/ Provisions Relating to IETF Documents (https://trustee.ietf.org/
license-info) in effect on the date of publication of this document. license-info) in effect on the date of publication of this document.
Please review these documents carefully, as they describe your rights Please review these documents carefully, as they describe your rights
and restrictions with respect to this document. Code Components and restrictions with respect to this document. Code Components
extracted from this document must include Simplified BSD License text extracted from this document must include Simplified BSD License text
as described in Section 4.e of the Trust Legal Provisions and are as described in Section 4.e of the Trust Legal Provisions and are
provided without warranty as described in the Simplified BSD License. provided without warranty as described in the Simplified BSD License.
skipping to change at page 5, line 48 skipping to change at page 5, line 48
CRLF = %x0A / %x0D.0A CRLF = %x0A / %x0D.0A
* One set of rules provided in an ABNF specification is often used * One set of rules provided in an ABNF specification is often used
in multiple positions, in particular staples such as DIGIT and in multiple positions, in particular staples such as DIGIT and
ALPHA. (Note that all rules referenced need to be defined in each ALPHA. (Note that all rules referenced need to be defined in each
ABNF operator controller string -- there is no implicit import of ABNF operator controller string -- there is no implicit import of
[RFC5234] Core ABNF or other rules.) The composition this calls [RFC5234] Core ABNF or other rules.) The composition this calls
for can be provided by the ".cat" operator. for can be provided by the ".cat" operator.
These points are combined into an example in Figure 3, which uses These points are combined into an example in Figure 3, which uses
ABNF from [RFC3339] to specify the CBOR tags defined in ABNF from [RFC3339] to specify one of the CBOR tags defined in
[I-D.ietf-cbor-date-tag]. [RFC8943].
; for draft-ietf-cbor-date-tag ; for draft-ietf-cbor-date-tag
Tag1004 = #6.1004(text .abnf full-date) Tag1004 = #6.1004(text .abnf full-date)
; for RFC 7049 ; for RFC 7049
Tag0 = #6.0(text .abnf date-time) Tag0 = #6.0(text .abnf date-time)
full-date = "full-date" .cat rfc3339 full-date = "full-date" .cat rfc3339
date-time = "date-time" .cat rfc3339 date-time = "date-time" .cat rfc3339
; Note the trick of idiomatically starting with a newline, separating ; Note the trick of idiomatically starting with a newline, separating
skipping to change at page 9, line 24 skipping to change at page 9, line 24
| .abnfb | [RFCthis] | | .abnfb | [RFCthis] |
+----------+-----------+ +----------+-----------+
| .feature | [RFCthis] | | .feature | [RFCthis] |
+----------+-----------+ +----------+-----------+
Table 2 Table 2
6. Implementation Status 6. Implementation Status
An early implementation of the control operator ".feature" has been An early implementation of the control operator ".feature" has been
available in the CDDL tool since version 0.8.11. The validator warns available in the CDDL tool described in Appendix F of [RFC8610] since
about each feature being used and provides the set of target values version 0.8.11. The validator warns about each feature being used
used with the feature. and provides the set of target values used with the feature. ".cat"
and ".plus" are also implemented.
Andrew Weiss' [CDDL-RS] has an ongoing implementation of this draft
which is feature-complete except for the ABNF support
(https://github.com/anweiss/cddl/pull/79
(https://github.com/anweiss/cddl/pull/79)).
7. Security considerations 7. Security considerations
The security considerations of [RFC8610] apply. The security considerations of [RFC8610] apply.
8. References 8. References
8.1. Normative References 8.1. Normative References
[IANA.cddl] [IANA.cddl]
skipping to change at page 10, line 17 skipping to change at page 10, line 26
May 2017, <https://www.rfc-editor.org/info/rfc8174>. May 2017, <https://www.rfc-editor.org/info/rfc8174>.
[RFC8610] Birkholz, H., Vigano, C., and C. Bormann, "Concise Data [RFC8610] Birkholz, H., Vigano, C., and C. Bormann, "Concise Data
Definition Language (CDDL): A Notational Convention to Definition Language (CDDL): A Notational Convention to
Express Concise Binary Object Representation (CBOR) and Express Concise Binary Object Representation (CBOR) and
JSON Data Structures", RFC 8610, DOI 10.17487/RFC8610, JSON Data Structures", RFC 8610, DOI 10.17487/RFC8610,
June 2019, <https://www.rfc-editor.org/info/rfc8610>. June 2019, <https://www.rfc-editor.org/info/rfc8610>.
8.2. Informative References 8.2. Informative References
[I-D.ietf-cbor-date-tag] [CDDL-RS] Weiss, A., "cddl-rs", n.d.,
Jones, M., Nadalin, A., and J. Richter, "Concise Binary <https://github.com/anweiss/cddl>.
Object Representation (CBOR) Tags for Date", Work in
Progress, Internet-Draft, draft-ietf-cbor-date-tag-07, 10
September 2020, <http://www.ietf.org/internet-drafts/
draft-ietf-cbor-date-tag-07.txt>.
[RFC3339] Klyne, G. and C. Newman, "Date and Time on the Internet: [RFC3339] Klyne, G. and C. Newman, "Date and Time on the Internet:
Timestamps", RFC 3339, DOI 10.17487/RFC3339, July 2002, Timestamps", RFC 3339, DOI 10.17487/RFC3339, July 2002,
<https://www.rfc-editor.org/info/rfc3339>. <https://www.rfc-editor.org/info/rfc3339>.
[RFC8943] Jones, M., Nadalin, A., and J. Richter, "Concise Binary
Object Representation (CBOR) Tags for Date", RFC 8943,
DOI 10.17487/RFC8943, November 2020,
<https://www.rfc-editor.org/info/rfc8943>.
Acknowledgements Acknowledgements
Jim Schaad suggested several improvements. The ".feature" feature Jim Schaad suggested several improvements. The ".feature" feature
was developed out of a discussion with Henk Birkholz. was developed out of a discussion with Henk Birkholz.
Author's Address Author's Address
Carsten Bormann Carsten Bormann
Universität Bremen TZI Universität Bremen TZI
Postfach 330440 Postfach 330440
 End of changes. 8 change blocks. 
16 lines changed or deleted 23 lines changed or added

This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/