Extensible Binary Meta Language
RFC 8794
Revision differences
Document history
Date | Rev. | By | Action |
---|---|---|---|
2022-11-01
|
17 | (System) | Received changes through RFC Editor sync (added Errata tag) |
2020-07-23
|
17 | (System) | IANA registries were updated to include RFC8794 |
2020-07-22
|
17 | (System) | Received changes through RFC Editor sync (created alias RFC 8794, changed abstract to 'This document defines the Extensible Binary Meta Language (EBML) format as … Received changes through RFC Editor sync (created alias RFC 8794, changed abstract to 'This document defines the Extensible Binary Meta Language (EBML) format as a binary container format designed for audio/video storage. EBML is designed as a binary equivalent to XML and uses a storage-efficient approach to build nested Elements with identifiers, lengths, and values. Similar to how an XML Schema defines the structure and semantics of an XML Document, this document defines how EBML Schemas are created to convey the semantics of an EBML Document.', changed pages to 51, changed standardization level to Proposed Standard, changed state to RFC, added RFC published event at 2020-07-22, changed IESG state to RFC Published) |
2020-07-22
|
17 | (System) | RFC published |
2020-07-21
|
17 | (System) | RFC Editor state changed to AUTH48-DONE from AUTH48 |
2020-06-12
|
17 | (System) | RFC Editor state changed to AUTH48 from RFC-EDITOR |
2020-04-06
|
17 | (System) | RFC Editor state changed to RFC-EDITOR from EDIT |
2020-03-11
|
17 | Alexey Melnikov | For some reason the IESG state is not RFC Ed Queue" anymore. Fixed manually. |
2020-03-11
|
17 | Alexey Melnikov | IESG state changed to RFC Ed Queue from IESG Evaluation |
2020-03-09
|
17 | (System) | RFC Editor state changed to EDIT |
2020-02-12
|
17 | (System) | IANA Action state changed to RFC-Ed-Ack from Waiting on RFC Editor |
2020-02-12
|
17 | (System) | IANA Action state changed to Waiting on RFC Editor from In Progress |
2020-02-12
|
17 | (System) | IANA Action state changed to In Progress from Waiting on Authors |
2020-02-10
|
17 | (System) | IANA Action state changed to Waiting on Authors from In Progress |
2020-02-10
|
17 | (System) | IANA Action state changed to In Progress from Waiting on Authors |
2020-01-31
|
17 | (System) | IANA Action state changed to Waiting on Authors from In Progress |
2020-01-31
|
17 | (System) | IANA Action state changed to In Progress from Waiting on Authors |
2020-01-30
|
17 | (System) | IANA Action state changed to Waiting on Authors from In Progress |
2020-01-29
|
17 | (System) | RFC Editor state changed to EDIT |
2020-01-29
|
17 | (System) | IESG state changed to RFC Ed Queue from Approved-announcement sent |
2020-01-29
|
17 | (System) | Announcement was received by RFC Editor |
2020-01-29
|
17 | (System) | IANA Action state changed to In Progress |
2020-01-29
|
17 | Amy Vezza | IESG state changed to Approved-announcement sent from Approved-announcement to be sent |
2020-01-29
|
17 | Amy Vezza | IESG has approved the document |
2020-01-29
|
17 | Amy Vezza | Closed "Approve" ballot |
2020-01-29
|
17 | Amy Vezza | Ballot approval text was generated |
2020-01-29
|
17 | Alexey Melnikov | IESG state changed to Approved-announcement to be sent from IESG Evaluation::AD Followup |
2020-01-29
|
17 | Alexey Melnikov | I got corrected about my comment about lack of changes to the Abstract. |
2020-01-27
|
17 | Alexey Melnikov | I don't see any changes to the Abstract to address convern raised by Adam. |
2020-01-27
|
17 | (System) | Sub state has been changed to AD Followup from Revised ID Needed |
2020-01-27
|
17 | Dave Rice | New version available: draft-ietf-cellar-ebml-17.txt |
2020-01-27
|
17 | (System) | New version approved |
2020-01-27
|
17 | (System) | Request for posting confirmation emailed to previous authors: Steve Lhomme , Dave Rice , Moritz Bunkus |
2020-01-27
|
17 | Dave Rice | Uploaded new revision |
2020-01-20
|
16 | Alexey Melnikov | Although Adam has cleared his DISCUSS, it looks that some changes to address it haven't been fixed in -16 yet. |
2020-01-20
|
16 | Alexey Melnikov | IESG state changed to IESG Evaluation::Revised I-D Needed from IESG Evaluation::AD Followup |
2020-01-18
|
16 | Adam Roach | [Ballot comment] Thanks for addressing my discuss and comments! |
2020-01-18
|
16 | Adam Roach | [Ballot Position Update] Position for Adam Roach has been changed to No Objection from Discuss |
2019-12-29
|
16 | Magnus Westerlund | [Ballot Position Update] Position for Magnus Westerlund has been changed to No Objection from Discuss |
2019-12-22
|
16 | Benjamin Kaduk | [Ballot comment] The -16 addresses my DISCUSS point; thanks! I'm given to understand that email discussion of the comments (preserved below) is forthcoming, but do … [Ballot comment] The -16 addresses my DISCUSS point; thanks! I'm given to understand that email discussion of the comments (preserved below) is forthcoming, but do have one note on the new text in the -16: In Section 7.3 we imply that a float is 32-bit and 64-bit at the same time; I think s/and/or/ makes more sense (and, of course, the EBML element length indicates which one is present). I support Adam's Discuss regarding the Abstract. Section 2 "Parent Element": A relative term to describe the "Master Element" which contains a specified element. For any specified "EBML Element" that is not at "Root Level", the "Parent Element" refers to the "Master Element" in which that "EBML Element" is contained. It sounds like this is intended to be "directly" or "immediately" contained (in order to be unique), right? If not, then it sould be ''refers to a "Master Element" in which [...]'' Section 4.1 Each Variable Size Integer begins with a VINT_WIDTH which consists of zero or many zero-value bits. The count of consecutive zero-values of the VINT_WIDTH plus one equals the length in octets of the Variable Size Integer. [...] Does the following attempted rewording change the meaning? % Each Variable Size Integer begins with a VINT_WIDTH which consists of % zero or more bits set to zero. The length in octets of the entire % Variable Size Integer is determined as one plus the number of % consecutive bits set to zero. (I find the current formulation rather hard to parse.) Section 6.2 | "\root\level1\level2\" | Global Element cannot be | | | assumed to have this path, | | | while parsing "elt" it can | | | only be a child of "elt" | Cannot be assumed by who/what? My brain is trying to parse this as just "cannot assume this path". Section 7.5 Should we say anything about termination of a UTF-8 string needing to still result in valid UTF-8 (i.e., not insert NULs in the middle of a codepoint)? Section 7.7 stored within Master Elements SHOULD only consist of EBML Elements and SHOULD NOT contain any data that is not part of an EBML Element. When might this SHOULD (NOT) be violated? Section 8.2 part of an EBML Element. This document defines precisely which EBML Elements are to be used within the EBML Header, but does not name or (for EBMLVersion 1 only, right?) Section 11.1 Element; for example matroska or webm (see Section 11.2.6). The DocType value for an EBML Document Type MUST be unique and persistent. It might be appropriate to refer to Section 17.2 and/or the IANA registry for DocType values, here. EBMLVersion to only support a value of "1". If an EBML Schema adopts the EBML Header Element as-is, then it is not required to document that Element within the EBML Schema. If an EBML Schema constrains Does "as-is" imply some level of future-compatibility/extensibility for when EBMLVersions other than "1" are defined? Section 11.1.1 It's a little amusing that we bother to provide "default" attributes when the "range" attribute uniquely determines the allowed value. Section 11.1.4 Each "" defines one EBML Element through the use of several attributes that are defined in Section 11.1.3. EBML Schemas MAY I think this makes more sense as "Section 11.1.5". Section 11.1.5.2 This ABNF seems to only allow "direct" recursion where element appears directly inside element , without any intermediate elements. I assume that's the intent, though it would be surprising in a general-purpose markup language. In some cases the EBMLLastParent part of the path is an EBMLGlobalParent. A path with a EBMLGlobalParent defines a Section 11.3. Any path that starts with the EBMLFixedParent of the That second sentence doesn't parse. As an example, a "path" of "1*(\Segment\Info)" means the element Info is found inside the Segment elements at least once and with no maximum iteration. An element SeekHead with path "0*2(\Segment\SeekHead)" may not be found at all in its Segment parent, once or twice but no more than that. The way this text is written makes me want to interpret the path occurence counts more like the (regular) minOccurs/maxOccurs element attributes, as opposed to applying to the path components to get to the specific element in question. Section 11.1.9.2 A set of items. Is this "name" supposed to be "Item" or "Items"? Section 11.1.10-11.1.12 I'm not sure I have a full understanding of how / are used; perhaps a reference to the corresponding XML behavior is in order? Section 11.1.13-11.1.14 The usage seems underspecified. Section 11.1.15 Why do we include this commented-out snippet? Don't we effectively set default values for these two in the prose description? Section 11.1.16 Identically Recurring Elements SHOULD include a CRC-32 Element as a Child Element; this is especially recommended when EBML is used for long-term storage or transmission. If a Parent Element contains more I'm not sure if the "long-term" is intended to also bind as "long-term transmission" (though I'm not sure what it would mean in that case). It's also not entirely clear what kinds of transmission would benefit from this, as reliable media presumably don't need redundancy for reliability, but unreliable media can't really be used to carry EBML without some framing requirements to know when elements start. Section 11.1.18 If a Mandatory EBML Element has no default value declared by an EBML Schema and its Parent Element is present then the EBML Element MUST be present as well. If a Mandatory EBML Element has a default value declared by an EBML Schema and its Parent Element is present and the value of the EBML Element is NOT equal to the declared default value then the EBML Element MUST be present. This seems almost tautological, in that how would an EBML Element have a value if it was not present? (The following paragraph that talks about when to write such elements, does make more sense.) Section 11.3.1 path: "*1((1*\)\CRC-32)" Using backslash as both an escape character and a path separator makes my head hurt, and I did not have enough caffeine yet this morning to figure it out. 8.1.1.6.2 of [ITU.V42.1994], with initial value of 0xFFFFFFFF. The CRC value MUST be computed on a little endian bitstream and MUST use little endian storage. bitstream or bytestream? Section 12 If a Master Element contains a CRC-32 Element that doesn't validate, then the EBML Reader MAY ignore all contained data except for Descendant Elements that contain their own valid CRC-32 Element. Ignoring only part of the known questionable content could have significant security considerations, if (e.g.) security-relevant restrictions are in the garbled part of the document but the sensitive content has a (valid) redundant CRC. [review terminated early] |
2019-12-22
|
16 | Benjamin Kaduk | [Ballot Position Update] Position for Benjamin Kaduk has been changed to No Objection from Discuss |
2019-12-22
|
16 | (System) | Sub state has been changed to AD Followup from Revised ID Needed |
2019-12-22
|
16 | (System) | IANA Review state changed to Version Changed - Review Needed from IANA OK - Actions Needed |
2019-12-22
|
16 | Dave Rice | New version available: draft-ietf-cellar-ebml-16.txt |
2019-12-22
|
16 | (System) | New version approved |
2019-12-22
|
16 | (System) | Request for posting confirmation emailed to previous authors: Steve Lhomme , Dave Rice , Moritz Bunkus |
2019-12-22
|
16 | Dave Rice | Uploaded new revision |
2019-12-20
|
15 | Michael Richardson | This document now replaces draft-lhomme-cellar-ebml instead of None |
2019-12-19
|
15 | Amy Vezza | IESG state changed to IESG Evaluation::Revised I-D Needed from IESG Evaluation - Defer |
2019-12-19
|
15 | Benjamin Kaduk | [Ballot comment] I support Adam's Discuss regarding the Abstract. Section 2 "Parent Element": A relative term to describe the "Master Element" which contains … [Ballot comment] I support Adam's Discuss regarding the Abstract. Section 2 "Parent Element": A relative term to describe the "Master Element" which contains a specified element. For any specified "EBML Element" that is not at "Root Level", the "Parent Element" refers to the "Master Element" in which that "EBML Element" is contained. It sounds like this is intended to be "directly" or "immediately" contained (in order to be unique), right? If not, then it sould be ''refers to a "Master Element" in which [...]'' Section 4.1 Each Variable Size Integer begins with a VINT_WIDTH which consists of zero or many zero-value bits. The count of consecutive zero-values of the VINT_WIDTH plus one equals the length in octets of the Variable Size Integer. [...] Does the following attempted rewording change the meaning? % Each Variable Size Integer begins with a VINT_WIDTH which consists of % zero or more bits set to zero. The length in octets of the entire % Variable Size Integer is determined as one plus the number of % consecutive bits set to zero. (I find the current formulation rather hard to parse.) Section 6.2 | "\root\level1\level2\" | Global Element cannot be | | | assumed to have this path, | | | while parsing "elt" it can | | | only be a child of "elt" | Cannot be assumed by who/what? My brain is trying to parse this as just "cannot assume this path". Section 7.5 Should we say anything about termination of a UTF-8 string needing to still result in valid UTF-8 (i.e., not insert NULs in the middle of a codepoint)? Section 7.7 stored within Master Elements SHOULD only consist of EBML Elements and SHOULD NOT contain any data that is not part of an EBML Element. When might this SHOULD (NOT) be violated? Section 8.2 part of an EBML Element. This document defines precisely which EBML Elements are to be used within the EBML Header, but does not name or (for EBMLVersion 1 only, right?) Section 11.1 Element; for example matroska or webm (see Section 11.2.6). The DocType value for an EBML Document Type MUST be unique and persistent. It might be appropriate to refer to Section 17.2 and/or the IANA registry for DocType values, here. EBMLVersion to only support a value of "1". If an EBML Schema adopts the EBML Header Element as-is, then it is not required to document that Element within the EBML Schema. If an EBML Schema constrains Does "as-is" imply some level of future-compatibility/extensibility for when EBMLVersions other than "1" are defined? Section 11.1.1 It's a little amusing that we bother to provide "default" attributes when the "range" attribute uniquely determines the allowed value. Section 11.1.4 Each "" defines one EBML Element through the use of several attributes that are defined in Section 11.1.3. EBML Schemas MAY I think this makes more sense as "Section 11.1.5". Section 11.1.5.2 This ABNF seems to only allow "direct" recursion where element appears directly inside element , without any intermediate elements. I assume that's the intent, though it would be surprising in a general-purpose markup language. In some cases the EBMLLastParent part of the path is an EBMLGlobalParent. A path with a EBMLGlobalParent defines a Section 11.3. Any path that starts with the EBMLFixedParent of the That second sentence doesn't parse. As an example, a "path" of "1*(\Segment\Info)" means the element Info is found inside the Segment elements at least once and with no maximum iteration. An element SeekHead with path "0*2(\Segment\SeekHead)" may not be found at all in its Segment parent, once or twice but no more than that. The way this text is written makes me want to interpret the path occurence counts more like the (regular) minOccurs/maxOccurs element attributes, as opposed to applying to the path components to get to the specific element in question. Section 11.1.9.2 A set of items. Is this "name" supposed to be "Item" or "Items"? Section 11.1.10-11.1.12 I'm not sure I have a full understanding of how / are used; perhaps a reference to the corresponding XML behavior is in order? Section 11.1.13-11.1.14 The usage seems underspecified. Section 11.1.15 Why do we include this commented-out snippet? Don't we effectively set default values for these two in the prose description? Section 11.1.16 Identically Recurring Elements SHOULD include a CRC-32 Element as a Child Element; this is especially recommended when EBML is used for long-term storage or transmission. If a Parent Element contains more I'm not sure if the "long-term" is intended to also bind as "long-term transmission" (though I'm not sure what it would mean in that case). It's also not entirely clear what kinds of transmission would benefit from this, as reliable media presumably don't need redundancy for reliability, but unreliable media can't really be used to carry EBML without some framing requirements to know when elements start. Section 11.1.18 If a Mandatory EBML Element has no default value declared by an EBML Schema and its Parent Element is present then the EBML Element MUST be present as well. If a Mandatory EBML Element has a default value declared by an EBML Schema and its Parent Element is present and the value of the EBML Element is NOT equal to the declared default value then the EBML Element MUST be present. This seems almost tautological, in that how would an EBML Element have a value if it was not present? (The following paragraph that talks about when to write such elements, does make more sense.) Section 11.3.1 path: "*1((1*\)\CRC-32)" Using backslash as both an escape character and a path separator makes my head hurt, and I did not have enough caffeine yet this morning to figure it out. 8.1.1.6.2 of [ITU.V42.1994], with initial value of 0xFFFFFFFF. The CRC value MUST be computed on a little endian bitstream and MUST use little endian storage. bitstream or bytestream? Section 12 If a Master Element contains a CRC-32 Element that doesn't validate, then the EBML Reader MAY ignore all contained data except for Descendant Elements that contain their own valid CRC-32 Element. Ignoring only part of the known questionable content could have significant security considerations, if (e.g.) security-relevant restrictions are in the garbled part of the document but the sensitive content has a (valid) redundant CRC. [review terminated early] |
2019-12-19
|
15 | Benjamin Kaduk | Ballot comment text updated for Benjamin Kaduk |
2019-12-19
|
15 | Magnus Westerlund | [Ballot discuss] 1. Section 5: The Element ID is encoded as a Variable Size Integer. +-----------------------+-------------------------+---------------+ | VINT Length in … [Ballot discuss] 1. Section 5: The Element ID is encoded as a Variable Size Integer. +-----------------------+-------------------------+---------------+ | VINT Length in octets | Range of Possible IDs | Number of IDs | +=======================+=========================+===============+ | 1 | 0x81 - 0xFE | 126 | +-----------------------+-------------------------+---------------+ | 2 | 0x407F - 0x7FFE | 16,256 | +-----------------------+-------------------------+---------------+ | 3 | 0x203FFF - 0x3FFFFE | 2,080,768 | +-----------------------+-------------------------+---------------+ | 4 | 0x101FFFFF - 0x1FFFFFFE | 268,338,304 | +-----------------------+-------------------------+---------------+ To me it appears that this whole section can't decide if the Element ID is encoded integer using VINT or an VINT format octet sequence that is self describing in length? If it is the first then the above quoted table would to me state that the IDs are 1-126 for 1 octet, and the second two-octet 127-16382. But based on later section it is actually the later. As the ID values defined in Section 11.2 for the various elements are actually the encoded form rather than a representation of the Integer value encoded. This needs to be clarified. |
2019-12-19
|
15 | Magnus Westerlund | [Ballot comment] 1. Section 5: Any Element ID with the VINT_DATA component set as all zero values or all one values MUST be ignored. … [Ballot comment] 1. Section 5: Any Element ID with the VINT_DATA component set as all zero values or all one values MUST be ignored. What does it mean to ignore an Element ID in the general case. Can you really say this in the general case, rather than state that it is not a valid Element ID? Or is the intention that an Element ID with all data is the equivalent to padding and simply skipped and a parser needs to expect to find the real Element ID in the next octet sequence? Considering the Element Length that do allow zero values and non-efficient encoding, if the element should be ignored or not depends on the expected element to find by the parser. I might have missed some later explanation of this, as I didn't manage to read the whole document in detail. |
2019-12-19
|
15 | Magnus Westerlund | [Ballot Position Update] New position, Discuss, has been recorded for Magnus Westerlund |
2019-12-19
|
15 | Éric Vyncke | [Ballot comment] I am trusting my ART Area Directors colleagues for this document. Did a quick browse through and it looks good to me. Still … [Ballot comment] I am trusting my ART Area Directors colleagues for this document. Did a quick browse through and it looks good to me. Still wondering why the three authors have no affiliation at all... |
2019-12-19
|
15 | Éric Vyncke | [Ballot Position Update] New position, No Objection, has been recorded for Éric Vyncke |
2019-12-18
|
15 | Benjamin Kaduk | [Ballot discuss] Section 7.7 says: A Master Element MUST declare a length in octets from zero to VINTMAX. The Master Element MAY also … [Ballot discuss] Section 7.7 says: A Master Element MUST declare a length in octets from zero to VINTMAX. The Master Element MAY also use an unknown length. See Section 6 for rules that apply to elements of unknown length. but the second sentence contradicts the immediately prior MUST. We need to resolve the internal inconsistency. |
2019-12-18
|
15 | Benjamin Kaduk | [Ballot Position Update] New position, Discuss, has been recorded for Benjamin Kaduk |
2019-12-18
|
15 | Barry Leiba | [Ballot comment] This was a very difficult read: I found a lot of the document to be convoluted and hard to follow, and I considered … [Ballot comment] This was a very difficult read: I found a lot of the document to be convoluted and hard to follow, and I considered balloting Abstain, as I’m not sure that DISCUSS is appropriate for my complaints, but I can’t really say that I have “no objection”. In the end I decided to go with a “No Objection” ballot, to call out the worst of the issues, and to hope that you will consider the changes I suggest and that others will follow the text more easily than I could. — Section 4.1 — Each Variable Size Integer begins with a VINT_WIDTH which consists of zero or many zero-value bits. The count of consecutive zero-values of the VINT_WIDTH plus one equals the length in octets of the Variable Size Integer. For example, a Variable Size Integer that starts with a VINT_WIDTH which contains zero consecutive zero-value bits is one octet in length and a Variable Size Integer that starts with one consecutive zero-value bit is two octets in length. The VINT_WIDTH MUST only contain zero-value bits or be empty. I found this very hard to follow, and had to read it several times before I understood what you’re getting at. I found things such as “zero or many zero-value bits” to be confusing. May I suggest alternative text, which describes the concept and then gets to the details?: NEW Each Variable Size Integer begins with a VINT_WIDTH followed by a VINT_MARKER. VINT_WIDTH is a sequence of zero or more bits of value 0, and is terminated by the VINT_MARKER, which is a single bit of value 1. The total number of bits (VINT_WIDTH and VINT_MARKER combined) is the number of octets of the Variable Size Integer. Thus, the single bit “1” describes a Variable Size Integer with a length of one octet. The sequence of bits “01” describes a Variable Size Integer with a length of two octets. “001” describes a Variable Size Integer with a length of three octets, and so on, with each additional 0-bit adding one octet to the length of the Variable Size Integer. END I, at least, find that easier to follow. Does it work for you? For the next paragraph, which limits the length under various circumstances, I suggest putting it in terms of the number of octets in the integer, rather than the number of bits in the VINT_WIDTH, which might be better put into Section 4.3, rather than 4.1. Text such as, “A Variable Size Integer in an EBML Header can be at most 4 octets long, except [...] , where it can be up to 8 octets long,” is easier to understand than the text explaining limits on the number of bits in VINT_WIDTH. — Section 4.4 — Table 2 and the text that introduces it would be better if they talked about the integer that’s represented (2), rather than the binary value (0b10 in the text and 10 in the table), considering that it is a Variable Size INTEGER, yes? — Section 6.2 — An EBML Element with an unknown Element Data Size is referred to as an Unknown-Sized Element. A Master Element MAY be an Unknown-Sized Element; however an EBML Element that is not a Master Element MUST NOT be an Unknown-Sized Element. Master Elements MUST NOT use an unknown size unless the unknownsizeallowed attribute of their EBML Schema is set to true (see Section 11.1.5.10). This also seems confusing and perhaps contradictory because of how it uses the BCP 14 key words. May I suggest this, which neither uses nor needs the key words?: NEW An EBML Element with an unknown Element Data Size is referred to as an Unknown-Sized Element. Only a Master Element is allowed to be of unknown size, and it can only be so if the unknownsizeallowed attribute of its EBML Schema is set to true (see Section 11.1.5.10). END — Section 7.7 — The Master Element MAY also use an unknown length. The “MAY” isn’t really correct, is it? There are restrictions that make it not entirely optional, as noted in the next sentence. I suggest not using BCP 14 here, and just saying, “The Master Element may be of unknown length.” The Master Element contains zero, one, or many other elements. Does this mean anything more than the simpler, “The Master Element contains zero or more other elements.”? As written, one tends to ask what “many” means here. — Section 8.2 — The EBML Body MUST NOT contain any data that is not part of an EBML Element. Why is this repetition needed? Doesn’t the similar sentence in Section 8 cover this? — Section 10 — An EBML Document handles 2 different versions: the version of the EBML Header and the version of the EBML Body. Both versions are meant to be backward compatible. I don’t see how that’s practical, as, taken strictly, it means you’ll never be able to make a significant change that is not backward compatible, so you’ll be stuck with errors or limitations forever. Are you sure you won’t need to allow for incompatible versions at some point? — Section 17.1 — Values from 1 to 126 are to be allocated according to the "RFC Required" policy [RFC8126]. Why did you choose that policy? Are you aware that this allows registrations from non-IETF-stream RFCs? In particular, anyone can get an RFC published in the Independent stream with a very light level of review. Did you consider IETF Review, which requires an RFC in the IETF stream (including Informational and Experimental RFCs)? Or even Standards Action, which requires standards-track RFCs? The same comment applies to "matroska" and "webm" in Section 17.2. |
2019-12-18
|
15 | Barry Leiba | [Ballot Position Update] New position, No Objection, has been recorded for Barry Leiba |
2019-12-18
|
15 | Alvaro Retana | [Ballot comment] For completeness, the datatracker should point at this document replacing draft-lhomme-cellar-ebml. |
2019-12-18
|
15 | Alvaro Retana | [Ballot Position Update] New position, No Objection, has been recorded for Alvaro Retana |
2019-12-18
|
15 | Amanda Baber | IANA Review state changed to IANA OK - Actions Needed from Version Changed - Review Needed |
2019-12-17
|
15 | Alissa Cooper | [Ballot comment] I support Adam's DISCUSS point about the abstract. I'm not clear on why the IANA registry names are prefixed with "CELLAR." Are there … [Ballot comment] I support Adam's DISCUSS point about the abstract. I'm not clear on why the IANA registry names are prefixed with "CELLAR." Are there more general EBML Element ID and DocType registries envisioned? If not, I would suggest dropping the "CELLAR." For future documents I would expect the authors to respond to the Gen-ART reviewer's comments via email after fixes have been applied to address the issues raised in the review. |
2019-12-17
|
15 | Alissa Cooper | [Ballot Position Update] New position, No Objection, has been recorded for Alissa Cooper |
2019-12-17
|
15 | Warren Kumari | [Ballot Position Update] New position, No Objection, has been recorded for Warren Kumari |
2019-12-16
|
15 | Adam Roach | [Ballot discuss] Thanks to the authors and the participants of the CELLAR working group for the work that has gone into documenting the EBML format. … [Ballot discuss] Thanks to the authors and the participants of the CELLAR working group for the work that has gone into documenting the EBML format. I have a handful of comments that I believe need to be addressed prior to publication, and a handful of suggestions for improvement. --------------------------------------------------------------------------- Abstract: I see that the Introduction has been revised to address Ben Campbell's AD review comment regarding the document positioning itself as a general-purpose data format rather than being scoped to its use in Matroska. The Abstract still claims the much broader scope -- please update it to match the reduced scope in the Introduction. --------------------------------------------------------------------------- §7.3: > A Float Element stores a floating-point number as defined in > [IEEE.754.1985]. This is not sufficiently precise to interoperate, as IEEE-754 defines multiple floating-point representations at each bit length. To differentiate from, e.g., decimal representation and arithmetic format (neither of which are probably what you want), please specify the use of "binary interchange format" (unless some other format is intended). --------------------------------------------------------------------------- §14.1.3: > For String Elements and UTF-8 Elements the length of Element Data MAY > be reduced by adding Null Octets ... > Note that this method is NOT RECOMMENDED. These two normative statements conflict with each other: when using RFC 2119 language, MAY is a very different level than "NOT RECOMMENDED" (which is equivalent to "SHOULD NOT"). Please pick one, and eliminate the other. --------------------------------------------------------------------------- §17.1: > The VINT Data value of one-octet Element IDs MUST be between 0x01 and > 0x7E. These items are valuable because they are short, and need to > be used for commonly repeated elements. Values from 1 to 126 are to > be allocated according to the "RFC Required" policy [RFC8126]. This, combined with the values that are being registered, is extremely confusing, and I don't know how IANA is supposed to understand what's going on without reading and understanding the VINT bit encoding scheme (which is way too much to ask of them). This is because of the document-wide practice of speaking of IDs in their VINT-encoded values (e.g., 0xBF) instead of their data values (e.g., 63 or 0x3F), including in the initial registry in this section. Please either revise the prose to speak in terms of VINT-encoded values (e.g., "MUST be between 0x81 and 0xFE"), or revise the registration tables to indicate the VINT data values (e.g., "0x3F" for CRC-32). |
2019-12-16
|
15 | Adam Roach | [Ballot comment] §5: > Table 3: Examples of valid and invalid VINTs This label is a bit confusing, as … [Ballot comment] §5: > Table 3: Examples of valid and invalid VINTs This label is a bit confusing, as all the shown VINTs are valid; they're just not valid for use as Element IDs. --------------------------------------------------------------------------- §6.3: > +--------------+----------------------+ > | Octet Length | Possible Value Range | > +==============+======================+ > | 1 | 0 to 2^(7-2) | > +--------------+----------------------+ > | 2 | 0 to 2^(14-2) | > +--------------+----------------------+ > | 3 | 0 to 2^(21-2) | > +--------------+----------------------+ > | 4 | 0 to 2^(28-2) | > +--------------+----------------------+ > | 5 | 0 to 2^(35-2) | > +--------------+----------------------+ > | 6 | 0 to 2^(42-2) | > +--------------+----------------------+ > | 7 | 0 to 2^(49-2) | > +--------------+----------------------+ > | 8 | 0 to 2^(56-2) | > +--------------+----------------------+ I think the value ranges here are indicated incorrectly. If I understand the encoding scheme correctly, the range for one octet is 0 through 126, which is "0 to (2^7)-2" rather than "0 to 2^(7-2)" (which means 0 through 32). The other lengths have identical errors. --------------------------------------------------------------------------- §8: > An EBML Document is comprised of only two components, an EBML Header Please change to either of the following: An EBML Document is composed of only two components... An EBML Document comprises only two components... --------------------------------------------------------------------------- §11.1.5.2: > A path with a EBMLGlobalParent defines a > Section 11.3. This doesn't parse. I think you mean: A path with a EBMLGlobalParent defines a Global Element; see Section 11.3. --------------------------------------------------------------------------- § 11.1.5.12: > A boolean to express if an EBML Element is defined as an Identically > Recurring Element or not. As the term "Identically Recurring Element" has not been defined prior to this section, A forward reference to 11.1.16 would be very useful here. |
2019-12-16
|
15 | Adam Roach | [Ballot Position Update] New position, Discuss, has been recorded for Adam Roach |
2019-12-16
|
15 | Mirja Kühlewind | [Ballot comment] I only did a very brief review but I don't think there are any transport issues :-) |
2019-12-16
|
15 | Mirja Kühlewind | [Ballot Position Update] New position, No Objection, has been recorded for Mirja Kühlewind |
2019-12-16
|
15 | Dave Rice | New version available: draft-ietf-cellar-ebml-15.txt |
2019-12-16
|
15 | (System) | New version approved |
2019-12-16
|
15 | (System) | Request for posting confirmation emailed to previous authors: Steve Lhomme , Dave Rice , Moritz Bunkus |
2019-12-16
|
15 | Dave Rice | Uploaded new revision |
2019-12-16
|
14 | Martin Vigoureux | [Ballot Position Update] New position, No Objection, has been recorded for Martin Vigoureux |
2019-12-15
|
14 | Suresh Krishnan | [Ballot Position Update] New position, No Objection, has been recorded for Suresh Krishnan |
2019-12-12
|
14 | Deborah Brungard | [Ballot Position Update] New position, No Objection, has been recorded for Deborah Brungard |
2019-12-06
|
14 | Robert Sparks | Request for Telechat review by GENART Completed: Not Ready. Reviewer: Robert Sparks. Sent review to list. |
2019-12-05
|
14 | Jean Mahoney | Request for Telechat review by GENART is assigned to Robert Sparks |
2019-12-05
|
14 | Jean Mahoney | Request for Telechat review by GENART is assigned to Robert Sparks |
2019-12-03
|
14 | Roman Danyliw | [Ballot comment] Section 1. Please add a reference to Matroska instead of an inline URL Section 1. Please add a reference for WebM Section 2 … [Ballot comment] Section 1. Please add a reference to Matroska instead of an inline URL Section 1. Please add a reference for WebM Section 2 and Table 4 of Section 5. These sections define EBML Class. However, it isn’t used else where in the document. What is it supposed to be used for? Section 4.4. Recommend replacing “This table” text to be the name of specific table in question (i.e., Table 1, Table 2) Section 6.2. Per “Unknown-Sized Element MUST NOT be used or defined unnecessarily; however if the Element Data Size is not known before the Element Data is written, such as in some cases of data streaming, then Unknown- Sized Elements MAY be used.”, should this text be read as “the Unknown- Sized Elements MUST only be used if the Element Data Size is not known before the Element Data is written”. I’m having trouble understanding how to handle normative language for a qualitative statement of “unnecessarily” Section 11.1.5.1. Double checking on the grammar of the name attribute – it is permitted to start with a “-“ or a “.”? Section 11.1.5.3. Are there any uniqueness properties for an id attribute? Drawing a parallel from XML, I would have thought that each EBML element would have unique ID per doctype (say like an xml:id) Section 11.1.7.2. documentation@purpose has a number of possible enumerated values, however, none are defined in the text (they are only listed) |
2019-12-03
|
14 | Roman Danyliw | [Ballot Position Update] New position, No Objection, has been recorded for Roman Danyliw |
2019-12-03
|
14 | Barry Leiba | Telechat date has been changed to 2019-12-19 from 2019-12-05 |
2019-12-03
|
14 | Barry Leiba | IESG state changed to IESG Evaluation - Defer from IESG Evaluation |
2019-12-03
|
14 | Alexey Melnikov | IESG state changed to IESG Evaluation from Waiting for Writeup |
2019-12-01
|
14 | (System) | IANA Review state changed to Version Changed - Review Needed from IANA OK - Actions Needed |
2019-12-01
|
14 | Dave Rice | New version available: draft-ietf-cellar-ebml-14.txt |
2019-12-01
|
14 | (System) | New version approved |
2019-12-01
|
14 | (System) | Request for posting confirmation emailed to previous authors: Steve Lhomme , Dave Rice , Moritz Bunkus |
2019-12-01
|
14 | Dave Rice | Uploaded new revision |
2019-11-19
|
13 | Alexey Melnikov | Ballot writeup was changed |
2019-11-18
|
13 | Amanda Baber | IANA Review state changed to IANA OK - Actions Needed from IANA - Not OK |
2019-11-16
|
13 | Cindy Morgan | Placed on agenda for telechat - 2019-12-05 |
2019-11-16
|
13 | Alexey Melnikov | Ballot has been issued |
2019-11-16
|
13 | Alexey Melnikov | [Ballot Position Update] New position, Yes, has been recorded for Alexey Melnikov |
2019-11-16
|
13 | Alexey Melnikov | Created "Approve" ballot |
2019-11-16
|
13 | Alexey Melnikov | Ballot writeup was changed |
2019-11-08
|
13 | Shwetha Bhandari | Request for Last Call review by OPSDIR Completed: Ready. Reviewer: Shwetha Bhandari. Sent review to list. |
2019-11-07
|
13 | (System) | IESG state changed to Waiting for Writeup from In Last Call |
2019-11-06
|
13 | (System) | IANA Review state changed to IANA - Not OK from IANA - Review Needed |
2019-11-06
|
13 | Sabrina Tanamal | (Via drafts-lastcall@iana.org): IESG/Authors/WG Chairs: The IANA Functions Operator has completed its review of draft-ietf-cellar-ebml-13. If any part of this review is inaccurate, please let … (Via drafts-lastcall@iana.org): IESG/Authors/WG Chairs: The IANA Functions Operator has completed its review of draft-ietf-cellar-ebml-13. If any part of this review is inaccurate, please let us know. The IANA Functions Operator has a question about one of the actions requested in the IANA Considerations section of this document. The IANA Functions Operator understands that, upon approval of this document, there are two actions which we must complete. First, a new registry is to be created called the CELLAR EBML Element ID Registry. IANA Question --> Where should this new registry be located? Should it be added to an existing registry page? If not, does it belong in an existing category at http://www.iana.org/protocols? Values in the registry between 0x01 and 0x7E are assigned using the RFC Required policy as defined in RFC 8126. Values in the registry between 0x007F and 0x3FFE are assigned using the Specification Required policy as defined in RFC 8126. Values 0x3FFF and 0x4000 are reserved. Values between 0x400100 and 0x1FFFFE are assigned using the First Come, First Served policy as defined in RFC 8126. Values 0x1FFFFF and 0x200000 are reserved. Values between 0x101FFFFF and 0x1FFFFFFE are allocated using the Specification Required policy as defined in RFC 8126. IANA Question --> The current draft says that "Other four-octet Element IDs may be allocated by the "First Come First Served" policy." Could the authors enumerate the ranges for those Element Ids? The values 0xFFFFFFF and 0x1000000 are reserved. IANA Question --> The current draft says that "Five octet Element IDs (values from 0x10000001 upwards) are RESERVED according to the "Experimental Use" policy." Could the authors be explicit about the range of values for the five octet Element Ids? There are initial registrations in the new registry as follows: +------------+-------------------------+-----------------+ | ID | Element Name | Reference | +============+=========================+=================+ | 0x1A45DFA3 | EBML | [ RFC-to-be ] | | | | Section 11.2.1 | +------------+-------------------------+-----------------+ | 0x4286 | EBMLVersion | [ RFC-to-be ] | | | | Section 11.2.2 | +------------+-------------------------+-----------------+ | 0x42F7 | EBMLReadVersion | [ RFC-to-be ] | | | | Section 11.2.3 | +------------+-------------------------+-----------------+ | 0x42F2 | EBMLMaxIDLength | [ RFC-to-be ] | | | | Section 11.2.4 | +------------+-------------------------+-----------------+ | 0x42F3 | EBMLMaxSizeLength | [ RFC-to-be ] | | | | Section 11.2.5 | +------------+-------------------------+-----------------+ | 0x4282 | DocType | [ RFC-to-be ] | | | | Section 11.2.6 | +------------+-------------------------+-----------------+ | 0x4287 | DocTypeVersion | [ RFC-to-be ] | | | | Section 11.2.7 | +------------+-------------------------+-----------------+ | 0x4285 | DocTypeReadVersion | [ RFC-to-be ] | | | | Section 11.2.8 | +------------+-------------------------+-----------------+ | 0x4281 | DocTypeExtension | [ RFC-to-be ] | | | | Section 11.2.9 | +------------+-------------------------+-----------------+ | 0x4283 | DocTypeExtensionName | [ RFC-to-be ] | | | | Section 11.2.10 | +------------+-------------------------+-----------------+ | 0x4284 | DocTypeExtensionVersion | [ RFC-to-be ] | | | | Section 11.2.11 | +------------+-------------------------+-----------------+ | 0xBF | CRC-32 | [ RFC-to-be ] | | | | Section 11.3.1 | +------------+-------------------------+-----------------+ | 0xEC | Void | [ RFC-to-be ] | | | | Section 11.3.2 | +------------+-------------------------+-----------------+ Second, a new registry is to be created called the CELLAR EBML DocType registry. IANA Question --> Where should this new registry be located? Should it be added to an existing registry page? If not, does it belong in an existing category at http://www.iana.org/protocols? The registry is managed via First Come, First Served as defined in RFC 8126. The registry would look like: DocType Description Change Controller Reference --------+----------------------+------------------+----------+ IANA Question --> The current draft says, "DocType string values of "matroska" and "webm" are RESERVED to the IETF for future use. These can be assigned via the "IESG Approval" or "RFC Required" policies [RFC8126]." Is it correct that these values do not appear in the initial version of the registry? Are there an initial values for the new registry? The IANA Functions Operator understands that these are the only actions required to be completed upon approval of this document. Note: The actions requested in this document will not be completed until the document has been approved for publication as an RFC. This message is meant only to confirm the list of actions that will be performed. Thank you, Sabrina Tanamal Senior IANA Services Specialist |
2019-11-04
|
13 | Robert Sparks | Request for Last Call review by GENART Completed: Not Ready. Reviewer: Robert Sparks. Sent review to list. |
2019-10-31
|
13 | Valery Smyslov | Request for Last Call review by SECDIR Completed: Ready. Reviewer: Valery Smyslov. Sent review to list. |
2019-10-28
|
13 | Gunter Van de Velde | Request for Last Call review by OPSDIR is assigned to Shwetha Bhandari |
2019-10-28
|
13 | Gunter Van de Velde | Request for Last Call review by OPSDIR is assigned to Shwetha Bhandari |
2019-10-25
|
13 | Tero Kivinen | Request for Last Call review by SECDIR is assigned to Valery Smyslov |
2019-10-25
|
13 | Tero Kivinen | Request for Last Call review by SECDIR is assigned to Valery Smyslov |
2019-10-24
|
13 | Jean Mahoney | Request for Last Call review by GENART is assigned to Robert Sparks |
2019-10-24
|
13 | Jean Mahoney | Request for Last Call review by GENART is assigned to Robert Sparks |
2019-10-24
|
13 | Amy Vezza | IANA Review state changed to IANA - Review Needed |
2019-10-24
|
13 | Amy Vezza | The following Last Call announcement was sent out (ends 2019-11-07): From: The IESG To: IETF-Announce CC: villereal@gmail.com, cellar-chairs@ietf.org, cellar@ietf.org, Steven Villereal , … The following Last Call announcement was sent out (ends 2019-11-07): From: The IESG To: IETF-Announce CC: villereal@gmail.com, cellar-chairs@ietf.org, cellar@ietf.org, Steven Villereal , draft-ietf-cellar-ebml@ietf.org, alexey.melnikov@isode.com Reply-To: last-call@ietf.org Sender: Subject: Last Call: (Extensible Binary Meta Language) to Proposed Standard The IESG has received a request from the Codec Encoding for LossLess Archiving and Realtime transmission WG (cellar) to consider the following document: - 'Extensible Binary Meta Language' as Proposed Standard The IESG plans to make a decision in the next few weeks, and solicits final comments on this action. Please send substantive comments to the last-call@ietf.org mailing lists by 2019-11-07. Exceptionally, comments may be sent to iesg@ietf.org instead. In either case, please retain the beginning of the Subject line to allow automated sorting. Abstract This document defines the Extensible Binary Meta Language (EBML) format as a generalized file format for any type of data in a hierarchical form. EBML is designed as a binary equivalent to XML and uses a storage-efficient approach to build nested Elements with identifiers, lengths, and values. Similar to how an XML Schema defines the structure and semantics of an XML Document, this document defines how EBML Schemas are created to convey the semantics of an EBML Document. The file can be obtained via https://datatracker.ietf.org/doc/draft-ietf-cellar-ebml/ IESG discussion can be tracked via https://datatracker.ietf.org/doc/draft-ietf-cellar-ebml/ballot/ No IPR declarations have been submitted directly on this I-D. |
2019-10-24
|
13 | Amy Vezza | IESG state changed to In Last Call from Last Call Requested |
2019-10-24
|
13 | Alexey Melnikov | A few new minor comments were reported, but they are non blocking as far as IETF LC is concerned. |
2019-10-24
|
13 | Alexey Melnikov | Last call was requested |
2019-10-24
|
13 | Alexey Melnikov | Last call announcement was generated |
2019-10-24
|
13 | Alexey Melnikov | Ballot approval text was generated |
2019-10-24
|
13 | Alexey Melnikov | Ballot writeup was generated |
2019-10-24
|
13 | Alexey Melnikov | IESG state changed to Last Call Requested from AD Evaluation::AD Followup |
2019-10-22
|
13 | Dave Rice | New version available: draft-ietf-cellar-ebml-13.txt |
2019-10-22
|
13 | (System) | New version approved |
2019-10-22
|
13 | (System) | Request for posting confirmation emailed to previous authors: Steve Lhomme , Dave Rice , Moritz Bunkus |
2019-10-22
|
13 | Dave Rice | Uploaded new revision |
2019-10-21
|
12 | Dave Rice | New version available: draft-ietf-cellar-ebml-12.txt |
2019-10-21
|
12 | (System) | New version approved |
2019-10-21
|
12 | (System) | Request for posting confirmation emailed to previous authors: Steve Lhomme , Dave Rice , Moritz Bunkus |
2019-10-21
|
12 | Dave Rice | Uploaded new revision |
2019-09-24
|
11 | (System) | Sub state has been changed to AD Followup from Revised ID Needed |
2019-09-24
|
11 | Dave Rice | New version available: draft-ietf-cellar-ebml-11.txt |
2019-09-24
|
11 | (System) | New version approved |
2019-09-24
|
11 | (System) | Request for posting confirmation emailed to previous authors: Steve Lhomme , Dave Rice , Moritz Bunkus |
2019-09-24
|
11 | Dave Rice | Uploaded new revision |
2019-07-30
|
10 | Michael Richardson | Added to session: interim-2019-cellar-06 |
2019-07-03
|
10 | Alexey Melnikov | IESG state changed to AD Evaluation::Revised I-D Needed from AD Evaluation::AD Followup |
2019-05-27
|
10 | (System) | Sub state has been changed to AD Followup from Revised ID Needed |
2019-05-27
|
10 | Dave Rice | New version available: draft-ietf-cellar-ebml-10.txt |
2019-05-27
|
10 | (System) | New version approved |
2019-05-27
|
10 | (System) | Request for posting confirmation emailed to previous authors: Steve Lhomme , Dave Rice , Moritz Bunkus |
2019-05-27
|
10 | Dave Rice | Uploaded new revision |
2019-03-27
|
09 | Cindy Morgan | Shepherding AD changed to Alexey Melnikov |
2019-03-23
|
09 | Ben Campbell | IESG state changed to AD Evaluation::Revised I-D Needed from AD Evaluation::AD Followup |
2019-02-20
|
09 | Robert Sparks | Request for Last Call review by GENART Completed: Not Ready. Reviewer: Robert Sparks. Sent review to list. |
2019-02-11
|
09 | Valery Smyslov | Request for Last Call review by SECDIR Completed: Ready. Reviewer: Valery Smyslov. |
2019-01-31
|
09 | Jean Mahoney | Request for Last Call review by GENART is assigned to Robert Sparks |
2019-01-31
|
09 | Jean Mahoney | Request for Last Call review by GENART is assigned to Robert Sparks |
2019-01-31
|
09 | Tero Kivinen | Request for Last Call review by SECDIR is assigned to Valery Smyslov |
2019-01-31
|
09 | Tero Kivinen | Request for Last Call review by SECDIR is assigned to Valery Smyslov |
2019-01-29
|
09 | Michael Richardson | Requested Last Call review by GENART |
2019-01-29
|
09 | Michael Richardson | Requested Last Call review by SECDIR |
2019-01-27
|
09 | Michael Richardson | Added to session: interim-2019-cellar-01 |
2019-01-24
|
09 | (System) | Sub state has been changed to AD Followup from Revised ID Needed |
2019-01-24
|
09 | Dave Rice | New version available: draft-ietf-cellar-ebml-09.txt |
2019-01-24
|
09 | (System) | New version approved |
2019-01-24
|
09 | (System) | Request for posting confirmation emailed to previous authors: Steve Lhomme , Dave Rice , Moritz Bunkus |
2019-01-24
|
09 | Dave Rice | Uploaded new revision |
2019-01-07
|
08 | Ben Campbell | This is my AD Evaluation of draft-ietf-cellar-ebml-08. Thanks for this work. It's generally on the right track, but I have a number of comments that … This is my AD Evaluation of draft-ietf-cellar-ebml-08. Thanks for this work. It's generally on the right track, but I have a number of comments that I would like to discuss prior progressing. *** Substantive Comments *** - The Shepherd Report says "There are minor nits to be resolved (adding one RFC 2119 keyword and some schema attributes which are mentioned but not defined." Do that comment still apply? To be clear, those are more than nits. Adding a 2119 keyword is substantive change that needs to be agreed to but the working group. Undefined attributes suggest that the draft is incomplete. If the comment is still accurate, then these need to be fixed prior to progressing the draft. If it is not accurate, then I ask the shepherd to please update the shepherd report. - I'm a little surprised to see the draft describe EBML as a general purpose markup language format, as opposed to one designed to be used by Matroska and similar technologies. I suspect others will also be surprised during the IETF LC and IESG review. The review bar is higher for the IETF to recommend EBML as a general purpose markup language than it is to recommend it for specific purposes. I also note that the CELLAR charter talks about EBML in terms of being used by Matroska and FFV1. Would it be acceptable to add some scoping language to the effect of "EBML is used by Matroska[citation] and FFV1[citation]. It MAY be used for use cases similar to those. The applicability of EBML for other use cases is beyond the scope of this document". - There are several defined elements/attributes related to versioning, but I don't find an explanation of how they all work together. Please add a section describing versioning in general. §2: Please use the newer boilerplate from RFC 8174. §3: Can you offer guidance on the specific impacts of the mentioned attacks, and how to mitigate them? (If there is no way to mitigate an attack, it's okay to say that.) §5: Please elaborate on how this is similar to UTF8. I assume this refers to using prefix bits to indicate the field length. UTF8 does that to maintain backwards compatibility with Ascii. What is the design motivation for using that approach for EBML, which I presume doesn't have such a requirement? §5.3: "If the number of bits required for "VINT_DATA" are less than the bit size of "VINT_DATA", then "VINT_DATA" SHOULD be zero-padded to the left to a size that fits." Why not MUST? What happens if this is violated? §6: - "The "VINT_DATA" component of the "Element ID" MUST NOT be either defined or written as either all zero values or all one values." Why? §8.7: "In this case, the "EBML Reader" should skip data until a valid..." Should that be a normative statement? If so, why should and not MUST? §8.8: If the EBML reader does not interpret Binary Elements, why add them at all? What does interpret them? is the point that the EBML reader treats Binary Elements as opaque, and just hands them to the application? §10.1.3: "NOT RECOMMENDED" seems overly strong, especially in light of the MAY in the first paragraph. Is the point to say "MUST NOT... except when the implementation needs to update an element without rewriting the entire document"? §11: "An "EBML Document" consists of "EBML Elements" and MUST NOT contain any data that is not part of an "EBML Element"." That contradicts text in §8.7 that says you can do this in streaming use cases. §13.1: "The "DocType" value for an "EBML Document Type" SHOULD be unique and persistent." What is the scope of uniqueness? How should it be achieved? Is there an expectation to register Document Types? (Also, why not MUST)? §13.1.4.1: Are there uniqueness requirements for name? §13.1.4.2: - The idea behind "path" needs elaboration. I'd like to see some high-level discussion of how you indicate where an element is allowed, and how you encode the structure. An example (local to the section) would be helpful. §13.1.4.4: - "The "minOccurs" value MUST be equal to the "EBMLMinOccurrence" value of the "path"." Why have both if they have to be the same? (Same question for §13.1.4.5) §13.1.4.12: - "If the "recurring" attribute is not present then the "EBML Element" MUST be considered to NOT be an "Identically Recurring Element"." "be considered to" is vague for a MUST. What concrete action must implementations take in this case? §13.1.6.2: - It seems likely readers will confuse "type" with "data type". Would it be reasonable to call this "document-type" or something similar? §13.1.10: - Please state (and cite) which XML schema format is used here. - Has the schema been mechanically verified? §13.3.1: - "The CRC value MUST be computed on a little endian bitstream and MUST use little endian storage." Please elaborate. Most elements have been big-endian so far. Do there have to be converted to calculate the CRC? §15.1: - "The numbers 0x3FFF and 0x4000 are RESERVED.", "The numbers 0x1FFFFF and 0x200000 are RESERVED.", and "The numbers 0xFFFFFFF and 0x1000000 are RESERVED." What is the purpose of reserving them? - "Four octet Element IDs whose lower three octets (as encoded) would make printable 7-bit ASCII values may be allocated only Specification Required." Can you state a range or a list? Don't make IANA judge which values are printable. §15.2: - "The strings may be allocated according to First Come First Served" Is there a requirement to register them, or is this optional? *** Editorial Comments and Nits *** - General: The draft puts double quotes around every mention of terms that it defines. That is unconventional for IETF documents. I personally find that it makes the draft harder to read. I suggest quoting them on the first mention, then just capitalizing them in subsequent mentions. - General (style comment): Please consider removing most instances of the word "considered". When the text says "X is considered to be equal to Y", that sounds like a weaker (and harder to read) statement than "X is equal to Y". Along the same lines, "considered" is rarely appropriate to use in a normative statement. For example, instead of saying "Implementations MUST consider X to be an error", it is better to state what concrete actions you expect the implementation to take when X occurs. §3: - The Security Considerations are required to be one of the last two sections in the body of the document (that is, before the references). More precisely, Security Considerations and IANA considerations should be the last two sections in the documents. - first paragraph: Please expand CRC on first mention. (Which may or may not be this instance once the Security Considerations are moved to the proper place.) §5.2: "The "VINT_MARKER" MUST be one bit in length and contain a bit with a value of one." That's really more of a definition or statement of fact than a normative requirement. Please consider replacing MUST with "is". §5.3: - "The bits required for the "VINT_WIDTH" and the "VINT_MARKER" combined use one out of eight bits" Consider "use one out of every eight bits" §5.4, paragraph after first table: "Data encoded as a "Variable Size Integer" MAY be rendered at octet lengths larger than needed to store the data." Is that intended as permission, or a statement of fact? If the latter, then the normative keyword is not appropriate. §6: - "The "Element ID" MUST be encoded as a "Variable Size Integer"." That seems like a definition. Consider s/MUST/is - "MUST NOT be considered an error in the "EBML Document"." "be considered" is vague for a normative requirement. What concrete action is being prohibited (or required)? §7: - "The "Element Data Size" itself MUST be encoded as a "Variable Size Integer"." Consider s/MUST/is - 'Only "Master Elements" SHALL be "Unknown-Sized Elements".' The use of "only" in normative statements can be ambiguous. In this case it can be read that non-master elements MUST NOT be of unknown size, or that the SHALL only applies to master elements, and there is no rule for non-master elements. Please consider formulating this as "MUST NOT". - "For example, an "EBML Element" with an octet length of 127 MUST NOT be encoded in an "Element Data Size" encoding with a one octet length." Examples are not normative, therefore they should not include normative keywords. §8.1: "Signed Integers MUST be stored with two’s complement notation" Please consider s/MUST/are §10.1.2: "This method is only RECOMMENDED for reducing "Element Data" by a single octet..." Please avoid using "only" in normative requirements (see previous comment for explanation). §11.1 - 'that uses an"EBMLVersion" of "1" MUST only contain "EBML Elements"' Please avoid "only" on normative statements. - last paragraph: Please consider dropping "All" from the beginning of each sentence. §11.1: - Is the concept of a file concrete (in the sense of a unit of persistent storage) or abstract (as in any stream of data)? I had assumed the latter, but with the different rules about data outside of EBML elements for "files" and "streaming applications", I am not so sure. If you mean "file" concretely, does there need to be additional text in this section describing the structure for streaming applications? - "The "EBML Body" MUST consist only of "EBML Elements"" Please avoid "only" on normative statements. - 'what "EBML Elements"' (several occurances). s/what/which §13.1: - "one or many" (several times throughout draft): Should this be "one or more"? Some people do not tend to think of numbers like 2 or 3 as counting as "many". - "An "EBML Schema" must be expressed as well-formed XML." Normative? - "An "EBML Schema" MUST declare exactly one "EBML Element" at "Root Level" (referred to as the "Root Element") that MUST occur exactly once within an "EBML Document"." The second "MUST" seems like a statement of fact. - If an "EBML Schema" adopts the "EBML Header Element" as-is, then it is not REQUIRED to document that Element within the "EBML Schema"." "REQUIRED" is not used normatively, and therefore should not be capitalized. §13.1.1.2: - "The "version" lists an incremental non-negative integer..." I'm not sure what it means for a single integer to be "incremental". (But see substantive comment concerning versioning.) §13.4.1.2: - The ""*"", ""("" and "")"" symbols MUST be interpreted as they are defined in the ABNF." This _is_ the ABNF. Do you mean "as defined in RFC 5234? Also, the normative MUST is not appropriate here; it's a matter of definition, not a normative requirement. - "The "EBMLElementOccurrence" part is interpreted as an ABNF Variable Repetition. I don't understand what that means. There won't be ABNF in an actual schema, will there? (Same for "VariableParentOccurrence") - ""EBML Elements" with "EBMLMinOccurrence" set to "1" that also have a "default" value (see Section 13.1.4.8) declared are not REQUIRED to be stored but are REQUIRED to be interpreted," Statement of fact? §13.1.4.7 - The attribute is called "size" but defined to be "length". Why not call it length? (Or describe it as "size")? §13.1.4.10: - "A boolean to express if an "EBML Element" MAY be used as an "Unknown- Sized Element"" Statement of fact. §13.1.11: It would be helpful to have the example closer to the element descriptions. I suggesting putting this section before the schema section. §13.1.13: Why is the material is this section separate from the range element description? §13.1.14: - "When a float value is represented textually in an "EBML Schema", such as within a "default" or "range" value,..." The examples only talk about ranges. Can there be an example for a default value? §13.1.15: - "In this case, the default value of the "Mandatory EBML Element" MUST be interpreted by the "EBML Reader" although the "EBML Element" is not present within its "Parent Element"." I'm not sure the intent here. Is "interpreted" the correct word choice? §13.3.2: - "Used to void damaged data, to avoid unexpected behaviors when using damaged data." Comma splice. §14 - "If a "Master Element" contains a "CRC-32 Element" that doesn’t validate, then the "EBML Reader" MAY ignore all contained data except for "Descendant Elements" which contain their own valid "CRC-32 Element"." s/ ", which" / " that" §15.1: - "Values from 1 to 126 are to be allocated according to RFC Required." I suggest '... allocated according to the "RFC Required" policy.' (Note: This pattern occurs several times in the RFC considerations section.) Also, please cite 8126 on the first mention of each policy (or state in advance that all registration policies mentioned herein are defined in 8126). - "Numbers MAY be allocated within this range according to Specification Required." s/MAY/are |
2019-01-07
|
08 | Ben Campbell | IESG state changed to AD Evaluation::Revised I-D Needed from AD Evaluation |
2019-01-03
|
08 | Ben Campbell | IESG state changed to AD Evaluation from Publication Requested |
2018-12-04
|
08 | Cindy Morgan | Notification list changed to Steven Villereal <villereal@gmail.com> |
2018-12-04
|
08 | Cindy Morgan | Document shepherd changed to Steven Villereal |
2018-12-04
|
08 | Michael Richardson | 1. Summary The document shepherd is Steven Villereal. villereal at gmail dot com The responsible Area Director is Ben Campbell. This document defines format considerations … 1. Summary The document shepherd is Steven Villereal. villereal at gmail dot com The responsible Area Director is Ben Campbell. This document defines format considerations for Extensible Binary Meta Language, a hierarchical file format for efficient delivery of binary data in defined Elements inspired by XML. It proposes definitions for creating and validating EBML Schemas that define the use and interpretation of Elements within EBML Documents. 2. Review and Consensus This document has been adequately reviewed by working group members and others, through both mailing list discussion and Github issues and pull requests. One minor issue was how to define EBML Elements in a Header document in a forward-compatible way. It was decided Headers could require a specific, minimum or maximum EBMLVersion (which might have different implementations of Elements). Most recent discussion has focused on how Element IDs (unique identifiers for EBML Elements used within a Schema and Document) should be defined and encoded (as Variable Size Integers) with regard to IANA registration. This document creates a new IANA Registry called "CELLAR EBML ElementID Registry" but to simplify IANA registration, the group agreed this document should only apply to Element IDs of EBML Header and global elements. More specific implementations of EBML (such as matroska) found in an EBML Body will have their own Element IDs that are not defined in this document. This document creates a new IANA Registry called "CELLAR EBML DocTypeRegistry". This document reserves DocType string values of "matroska" and "webm" in the First Come First Served registry. 3. Intellectual Property The authors of this draft submit it in full conformance with the provisions of BCP 78 and BCP 79. 4. Other Points There are minor nits to be resolved (adding one RFC 2119 keyword and some schema attributes which are mentioned but not defined. This is a very readable and clearly written document, and represents the inclusion of multiple recent revisions resolving minor outstanding issues. There appears to be strong group consensus on this document’s readiness to move forward in the standardization process. |
2018-12-04
|
08 | Michael Richardson | Responsible AD changed to Ben Campbell |
2018-12-04
|
08 | Michael Richardson | IETF WG state changed to Submitted to IESG for Publication from WG Consensus: Waiting for Write-Up |
2018-12-04
|
08 | Michael Richardson | IESG state changed to Publication Requested |
2018-12-04
|
08 | Michael Richardson | IESG process started in state Publication Requested |
2018-12-04
|
08 | Michael Richardson | Tag Doc Shepherd Follow-up Underway cleared. |
2018-12-04
|
08 | Michael Richardson | Changed consensus to Yes from Unknown |
2018-12-04
|
08 | Michael Richardson | Intended Status changed to Proposed Standard from Informational |
2018-12-04
|
08 | Michael Richardson | IETF WG state changed to WG Consensus: Waiting for Write-Up from In WG Last Call |
2018-12-04
|
08 | Michael Richardson | Changed document writeup |
2018-11-27
|
08 | Dave Rice | New version available: draft-ietf-cellar-ebml-08.txt |
2018-11-27
|
08 | (System) | New version approved |
2018-11-27
|
08 | (System) | Request for posting confirmation emailed to previous authors: Steve Lhomme , Dave Rice , Moritz Bunkus |
2018-11-27
|
08 | Dave Rice | Uploaded new revision |
2018-09-26
|
07 | Michael Richardson | This starts a ~2 week WGLG on the EBML document. The WGLC will proceed until Friday, October 12, 2018. Please read the document and indicate … This starts a ~2 week WGLG on the EBML document. The WGLC will proceed until Friday, October 12, 2018. Please read the document and indicate if you feel it is ready to proceed to the IESG for publication. |
2018-09-26
|
07 | Michael Richardson | Tag Doc Shepherd Follow-up Underway set. |
2018-09-26
|
07 | Michael Richardson | IETF WG state changed to In WG Last Call from WG Document |
2018-09-25
|
07 | Dave Rice | New version available: draft-ietf-cellar-ebml-07.txt |
2018-09-25
|
07 | (System) | New version approved |
2018-09-25
|
07 | (System) | Request for posting confirmation emailed to previous authors: Steve Lhomme , Dave Rice , Moritz Bunkus |
2018-09-25
|
07 | Dave Rice | Uploaded new revision |
2018-08-28
|
06 | Dave Rice | New version available: draft-ietf-cellar-ebml-06.txt |
2018-08-28
|
06 | (System) | New version approved |
2018-08-28
|
06 | (System) | Request for posting confirmation emailed to previous authors: Steve Lhomme , Dave Rice , Moritz Bunkus |
2018-08-28
|
06 | Dave Rice | Uploaded new revision |
2018-07-18
|
05 | Dave Rice | New version available: draft-ietf-cellar-ebml-05.txt |
2018-07-18
|
05 | (System) | New version approved |
2018-07-18
|
05 | (System) | Request for posting confirmation emailed to previous authors: Steve Lhomme , Dave Rice , Moritz Bunkus |
2018-07-18
|
05 | Dave Rice | Uploaded new revision |
2018-07-16
|
04 | (System) | Document has expired |
2018-01-03
|
04 | Dave Rice | New version available: draft-ietf-cellar-ebml-04.txt |
2018-01-03
|
04 | (System) | New version approved |
2018-01-03
|
04 | (System) | Request for posting confirmation emailed to previous authors: Steve Lhomme , Dave Rice , Moritz Bunkus |
2018-01-03
|
04 | Dave Rice | Uploaded new revision |
2017-07-03
|
03 | Tessa Fallon | Added to session: IETF-99: cellar Fri-0930 |
2017-07-03
|
03 | Dave Rice | New version available: draft-ietf-cellar-ebml-03.txt |
2017-07-03
|
03 | (System) | New version approved |
2017-07-02
|
03 | (System) | Request for posting confirmation emailed to previous authors: cellar-chairs@ietf.org |
2017-07-02
|
03 | Dave Rice | Uploaded new revision |
2017-06-07
|
02 | Tessa Fallon | Documentation for older version/s edited for the sake of clarity, making this an informational not historic document. |
2017-06-07
|
02 | Tessa Fallon | Intended Status changed to Informational from None |
2017-02-26
|
02 | Dave Rice | New version available: draft-ietf-cellar-ebml-02.txt |
2017-02-26
|
02 | (System) | New version approved |
2017-02-26
|
02 | (System) | Request for posting confirmation emailed to previous authors: cellar-chairs@ietf.org |
2017-02-26
|
02 | Dave Rice | Uploaded new revision |
2016-10-15
|
01 | Dave Rice | New version available: draft-ietf-cellar-ebml-01.txt |
2016-10-15
|
01 | (System) | New version approved |
2016-10-11
|
00 | (System) | Request for posting confirmation emailed to previous authors: cellar-chairs@ietf.org |
2016-10-11
|
00 | Dave Rice | Uploaded new revision |
2016-09-23
|
00 | Dave Rice | New version available: draft-ietf-cellar-ebml-00.txt |
2016-09-23
|
00 | Dave Rice | WG -00 approved |
2016-09-23
|
00 | Dave Rice | Uploaded new revision |
2016-09-23
|
00 | Dave Rice | Set submitter to "Dave Rice ", replaces to (none) and sent approval email to group chairs: cellar-chairs@ietf.org |