**Session Date/Time:** 25 Jan 2023 15:00 # [CBOR](../wg/cbor.html) ## Summary The CBOR Working Group held an interim meeting to discuss two main topics: the status of the CBOR Time Tag specification and the ongoing development of CDDL 2.0. A key decision was made to advance the Time Tag document to Standards Track. Discussions around CDDL 2.0 focused on the `include` feature's syntax, scoping, and the tooling required for its adoption, including how to locate referenced CDDL specifications. ## Key Discussion Points ### CBOR Time Tag * **Standards Track Transition:** The group discussed the long-standing debate regarding moving the Time Tag specification from Informational to Standards Track. The primary motivation for this change is to meet requirements for security applications that need a normative reference for the tag definition. * **Clock Quality:** A specific concern was raised about the "clock quality" definition, which currently references IEEE 1588. This standard is behind a paywall and not available via the Get IEEE program, posing an accessibility issue. This detail has been noted in the shepherd write-up for the IESG. * **Working Group Last Call (WGLC) Outcome:** While there were some GitHub discussions regarding clock quality, no objections to the standards track move were raised during the formal WGLC on the mailing list. A sense of those present indicated strong support for advancing the document to Standards Track despite the minor issues. ### CDDL 2.0 * **Include Feature:** Karsten presented the proposed `include` feature for CDDL 2.0. * **Syntax:** The proposed syntax uses `;# include "filename.cddl"`. The `;#` prefix is intended as a pragma, allowing CDDL 1.0 tools to treat it as a comment for backward compatibility. Discussion touched on whether this "comment hiding" approach is ideal versus using a new, previously invalid character sequence, but no strong opinion emerged to change the proposed `;#`. * **Namespacing:** Included rules would be namespaced using a prefix, e.g., `time_tag.e_time`, where `time_tag` is derived from the filename or explicitly assigned. * **Selective Import:** The `include` mechanism is designed to import only the explicitly referenced rules and their transitive closure, rather than the entire contents of the included file. This avoids importing unused rules and prevents associated warnings. * **Prelude Handling:** Special consideration is needed for the CDDL prelude (Appendix D of RFC 8610), which might be referenced via a special keyword like `prelude`. * **Tooling (cdlc):** * The `cdlc` tool converts CDDL 2.0 with includes into a CDDL 1.0 compatible format. * **Referenced Document Location:** A key discussion point was how the `cdlc` tool finds included CDDL files. * **RFC Database:** Karsten plans to embed CDDL extracted from RFCs directly into the `cdlc` Ruby gem, given RFCs are stable. Challenges include latency for newly published RFCs. * **Current Directory:** The tool currently supports searching the current working directory. * **User-defined Paths:** Suggestions were made for a `CDDL_PATH` environment variable (similar to `YANG_CATALOG_PATH` or Unix `PATH`) to allow users to specify additional directories for searching. This is considered an important implementation detail to avoid adding web access or complex file system logic to the language itself. * **Nested Includes:** The complexity of resolving paths for nested includes (an included file that itself includes other files) was acknowledged as a challenge that might need future language or tooling support. * **Ruby Version:** The `cdlc` tool requires Ruby 3.0 or newer. ## Decisions and Action Items * **Decision: CBOR Time Tag Standards Track:** The working group decided to advance the CBOR Time Tag specification (draft-ietf-cbor-time-tag) to the Standards Track. * **Action Item (Karsten):** Prepare a new version of the Time Tag document reflecting the Standards Track status and any minor updates from recent discussions. * **Action Item (Chair):** Update the data tracker to reflect the Standards Track intention for the Time Tag document. * **Action Item (Karsten):** Once the new version is posted, initiate a quick poll on the mailing list to confirm no objections to the Standards Track change. * **Action Item (Karsten):** Release an updated version of the `cdlc` tool incorporating recent CDDL 2.0 developments, potentially within the next few hours/days. * **Action Item (Participants):** Install and test the `cdlc` tool (requires Ruby 3.0+) and provide feedback on the `include` feature and tooling experience. ## Next Steps * The working group will await the updated CBOR Time Tag draft and proceed with its advancement following a final check for objections. * Participants are strongly encouraged to experiment with the `cdlc` tool and the CDDL 2.0 `include` feature to provide practical feedback for further development.