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 . 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.