Subject: Genart last call review of draft-ietf-cbor-cddl-05

From: Ines Robles <[email-masked]>
Date: Fri, 28 Sep 2018 15:02:23 -0700

Reviewer: Ines Robles
Review result: Ready with Nits

I am the assigned Gen-ART reviewer for this draft. The General Area
Review Team (Gen-ART) reviews all IETF documents being processed
by the IESG for the IETF Chair.  Please treat these comments just
like any other last call comments.

For more information, please see the FAQ at

<https://trac.ietf.org/trac/gen/wiki/GenArtfaq>.

Document: draft-ietf-cbor-cddl-05
Reviewer: Ines Robles
Review Date: 2018-09-28
IETF LC End Date: 2018-10-04
IESG Telechat date: Not scheduled for a telechat

Summary:

I believe the draft is technically good. This document is well written and
clear to understand.

The document proposes a notational convention named Concise data definition
language (CDDL) to express Concise Binary Object Representation (CBOR) data
structures. 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.

I have some minor questions. The document presents nits that should be solved
before publication.

Major issues: Not found.

Minor issues: Not found.

Nits/editorial comments:

1)-Abstract: It would be nice to expand CBOR the first time that it is
mentioned.

2)-Section 2:  Page 8,  You mention anonymous group.
 Does it would be a good definition for an anonymous group?: “Lists of
 group_entries_  (between curly braces)that can be assigned to any type of
 composition (arrays, maps)”

3)- Section 2.2.2.1 - Page 11: the ordering I think is ascendant, right? So,
maybe, would it be nice to add “natural ordering relationship”? question: is
the following valid?:

        Take-off = {
                takeoffcounting= 10..0 ; Is it valid? Is it applicable?
}

4)- In this paragraph: “...When using a name as the left hand side of a range
operator, use spacing as in
   "min .. max" to separate off the range operator...."
=> Question: Is "min .. max" equivalent to "min” .. “max"?

5)- There are some mismatches between Appendix B and Appendix C:

        Appendix B: cddl = S 1*(rule S)
        Appendix C: cddl = S 1*rule
------------------------------------------------------------

        Appendix B:
 rule = typename [genericparm] S assignt S type
         / groupname [genericparm] S assigng S grpent

        Appendix C:
  rule = typename [genericparm] S assignt S type S
        / groupname [genericparm] S assigng S grpent S
------------------------------------------------------------

        Appendix B:    type = type1 *(S "/" S type1)
        Appendix C:    type = type1 S *("/" S type1 S)

------------------------------------------------------------
        Appendix B:   group = grpchoice *(S "//" S grpchoice)
        Appendix C:   group = grpchoice S *("//" S grpchoice S)

------------------------------------------------------------
        Appendix B:    grpchoice = *(grpent optcom)
        Appendix C:    grpchoice = *grpent

------------------------------------------------------------

        Appendix B:    grpent = [occur S] [memberkey S] type
        Appendix C:    grpent = [occur S] [memberkey S] type optcom

------------------------------------------------------------

        Appendix B:    / [occur S] groupname [genericarg]  ; preempted by above
        Appendix C:    / [occur S] groupname [genericarg] optcom ; preempted by
        above

------------------------------------------------------------

        Appendix B:   / [occur S] "(" S group S ")"
        Appendix C:   / [occur S] "(" S group S ")" optcom

6)- It would be nice to expand I-JSON to ("Internet JSON") in page 54

Thank you for this document.

Ines.