Markdown Version | Session Recording
Session Date/Time: 14 May 2025 14:00
CBOR
Summary
The meeting primarily focused on the cbor-packed document, discussing the optimal values for tunables A, B, and C based on new experimental data. A proposal was made to register CBOR simple values for general packing and templating use, rather than exclusively for cbor-packed, leading to a sense of the room supporting an A=16 value for shared simple values. Work on this separate registration document was deferred. The meeting concluded with the cancellation of the next scheduled interim and a call for the working group to review an alternative draft for cbor-preferred-serialization (CDE) to foster broader consensus.
Key Discussion Points
cbor-packedTunables (A, B, C):- Vadim presented an update to
sopac-15reflecting tunables A (1+0 simple values for shared item references), B (1+1 tags for straight argument references), and C (1+1 tags for inverted argument references). - New data suggests B and C should likely be equal, moving towards two primary numbers to determine (A and B/C).
- The argument against setting A=B=C=0 was reiterated;
cbor-packedaims for reasonable conciseness without excessive complexity, unlike some "binary JSON" formats.
- Vadim presented an update to
- Experimental Data for Tunables:
- Zip Distribution: Indicated that B=8 provides a good balance between conciseness and complexity, costing about half a byte more per reference than the original B=32.
- SBOM File Analysis: A large SBOM file with structural redundancy showed that the first 8 argument table elements were used appreciably more often, supporting B=8 for such structured data.
- IoT DNS Messages (for Tunable A): An analysis of DNS responses from an IoT testbed suggested that while many messages are simple, a value of
A=12(out of 20 available 1+0 simple values, after reserving for indefinite length encoding andfalse/true/null/undefined) appears reasonable based on current data, offering benefits to over 95% of messages in the corpus. The originalcbor-packeddesign considered A=16. - Comparison to Zstandard confirmed that
cbor-packedserves a different purpose than general-purpose compression. - More corpus data from the community was requested to refine these numbers further.
- Proposal for Shared Simple Value Registration:
- Vadim proposed that CBOR simple values (e.g., all 16 available 1+0 values) should be registered in IANA for general packing and templating purposes, rather than being exclusively assigned to
cbor-packed. This would allow other specifications (e.g.,cbor-seat) to use these values without being dependent oncbor-packed. - Carsten noted that
cbor-packedis designed with an extension point, allowing new table setup mechanisms to define their own meaning for these simple values and argument reference tags within their own context (e.g., via a specific tag). Editorial clarification in thecbor-packeddocument might be beneficial. - The discussion revolved around whether explicit separate registration or clearer wording in
cbor-packedwas the appropriate mechanism for this flexibility.
- Vadim proposed that CBOR simple values (e.g., all 16 available 1+0 values) should be registered in IANA for general packing and templating purposes, rather than being exclusively assigned to
- DNS Draft Review:
- Vadim briefly mentioned issues with examples in the current DNS
cbor-packeddraft, specifically regarding tag combinations and optimized compression, suggesting further explanation or fixing is needed.
- Vadim briefly mentioned issues with examples in the current DNS
cbor-preferred-serialization(CDE) Alternative Draft:- Lawrence presented his work on an alternative draft for
cbor-preferred-serialization, aiming for a different structural approach that is shorter, clearer, and introduces fewer new ideas than the current CDE draft. - He intends to publish this draft and called for the working group to review it, focusing on its overall structure and orientation, to foster stronger positive consensus on this important document.
- Lawrence presented his work on an alternative draft for
Decisions and Action Items
- A sense of those present indicates no objection to setting tunable
A=16incbor-packedif the range of simple values can be shared for general packing/templating by other mechanisms. - Work on Vadim's proposal for a separate document registering generic simple values (and
cbor-seatmore broadly) is deferred until the three corecbor-packedrelated documents are finished. - The interim meeting scheduled for May 28th is canceled due to chair unavailability.
Next Steps
- Continue discussion on the mailing list regarding the final values for
cbor-packedtunables (A, B, C) and how to best address the shared use of simple values (e.g., via editorial clarifications incbor-packedor a separate registration document). - Working group members are requested to review Lawrence's alternative draft for
cbor-preferred-serialization(CDE) once published. - Engage in broader discussion on the mailing list regarding the direction and consensus for the
cbor-preferred-serializationtopic. - The next interim meeting is scheduled for June 11th.