[Cellar] Second AD review of draft-ietf-cellar-ebml-10

"Alexey Melnikov" <aamelnikov@fastmail.fm> Wed, 03 July 2019 13:44 UTC

Return-Path: <aamelnikov@fastmail.fm>
X-Original-To: cellar@ietfa.amsl.com
Delivered-To: cellar@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 14F421200B4 for <cellar@ietfa.amsl.com>; Wed, 3 Jul 2019 06:44:30 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.7
X-Spam-Level:
X-Spam-Status: No, score=-2.7 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=fastmail.fm header.b=MTOI0cnM; dkim=pass (2048-bit key) header.d=messagingengine.com header.b=jncFfazZ
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 3p5n_fK1MBpb for <cellar@ietfa.amsl.com>; Wed, 3 Jul 2019 06:44:28 -0700 (PDT)
Received: from out3-smtp.messagingengine.com (out3-smtp.messagingengine.com [66.111.4.27]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 578B6120059 for <cellar@ietf.org>; Wed, 3 Jul 2019 06:44:28 -0700 (PDT)
Received: from compute7.internal (compute7.nyi.internal [10.202.2.47]) by mailout.nyi.internal (Postfix) with ESMTP id 70E4621F48 for <cellar@ietf.org>; Wed, 3 Jul 2019 09:44:27 -0400 (EDT)
Received: from imap1 ([10.202.2.51]) by compute7.internal (MEProxy); Wed, 03 Jul 2019 09:44:27 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fastmail.fm; h= mime-version:message-id:date:from:to:subject:content-type; s= fm3; bh=Dt7NUGUMGE4G3vHCIRtg2kQFzKjFLFsW7/2Hn1Rj1bY=; b=MTOI0cnM 450DQehmg1R/N2aeagrdL9a51y/b/P+4GHCEWA40FGe92t0P1V7qPnnqW59pEEbE U0LHPHQVzVAPn9WU8FqI2caCD1La/P2j3e4od78U5BR0hi+xiKXpvbiuhFb5Lhft yZxd/DfgNntDx/NxpgfzpKfNH7pVt9AMrqNUiDmkIGAJhV1WefEjsh/UZdwMsW2B ySrJkhynTWMB+fUTlzuvRde6fsXk5xBB/zTqydMmM99OHVLnOXBr4oj10sYnE5cW gca3Fth5ny5wvQ5lB0ag0F7eORKW+y+cn4WAhK2pwOtr0rZzq9UV1OuRGGvktlGM So8ykM6ZVceb0w==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=content-type:date:from:message-id :mime-version:subject:to:x-me-proxy:x-me-proxy:x-me-sender :x-me-sender:x-sasl-enc; s=fm3; bh=Dt7NUGUMGE4G3vHCIRtg2kQFzKjFL FsW7/2Hn1Rj1bY=; b=jncFfazZ8lhq/UtYudQknOEs75bLYltqg3l68x6URwEo1 dmyypUUldzoW9fx3umo4iN7KGSKuUSoWXh4TGMV1CkHyYQlJf/puMZr33Cb7TIf0 a/9gfKhe+pwdphbMsE7FmCloEZyFpjnCQ5xg8drJzMoR8Rsk8MEJ/Ut6pHSi+oBR Kpsmi+6J5fTv1NFAzgsDvCbxCzn6OF9sA09H2TBTMCGow/3nBpHvr4ja8P1BtSDH xPY8Lw1AfowyI/S7NcaJBzzGIljZvEZj2SeiHTv6etJMRpVs/Ag/bkqOhB/XhKmi oI691GtnVJmu7GXpf4bcbq01wVyRuxJDYLg77Md0Q==
X-ME-Sender: <xms:O7EcXe-JJSSR1KOTXVHVGKDvHPLCh2IWtmaxb_tY2E1oBpRQeSI_JA>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduvddrfedtgdejtdcutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecunecujfgurhepofgfggfkfffhvffutgesthdtredtre ertdenucfhrhhomhepfdetlhgvgigvhicuofgvlhhnihhkohhvfdcuoegrrghmvghlnhhi khhovhesfhgrshhtmhgrihhlrdhfmheqnecurfgrrhgrmhepmhgrihhlfhhrohhmpegrrg hmvghlnhhikhhovhesfhgrshhtmhgrihhlrdhfmhenucevlhhushhtvghrufhiiigvpedt
X-ME-Proxy: <xmx:O7EcXcq8dd6N-npUhBMdFSxFRgbe91ddnW4rT7_1ehfIynkDa7WQlA> <xmx:O7EcXWUfaK0-qrd1Q8VrN1bMGd_nE3TPvGdn58CNznZLj4y8Z5phvA> <xmx:O7EcXbB2aTFhcRmDAQSGILBvLvngZ7J-WTnnM9sq0CPRXkbBWhP9IA> <xmx:O7EcXc6sc31B7nKDjHWQtfmKj0HwNrb9G7czKAPjJgSqNDx-nd6zww>
Received: by mailuser.nyi.internal (Postfix, from userid 501) id 13C94C200A4; Wed, 3 Jul 2019 09:44:27 -0400 (EDT)
X-Mailer: MessagingEngine.com Webmail Interface
User-Agent: Cyrus-JMAP/3.1.6-731-g19d3b16-fmstable-20190627v1
Mime-Version: 1.0
Message-Id: <3835cda8-7bfb-4178-bec7-b0acff9327ba@www.fastmail.com>
Date: Wed, 03 Jul 2019 14:44:07 +0100
From: Alexey Melnikov <aamelnikov@fastmail.fm>
To: cellar@ietf.org
Content-Type: text/plain
Archived-At: <https://mailarchive.ietf.org/arch/msg/cellar/CKtsS4agC5TT0VCCWlWMjzY7Y0k>
Subject: [Cellar] Second AD review of draft-ietf-cellar-ebml-10
X-BeenThere: cellar@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Codec Encoding for LossLess Archiving and Realtime transmission <cellar.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/cellar>, <mailto:cellar-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cellar/>
List-Post: <mailto:cellar@ietf.org>
List-Help: <mailto:cellar-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/cellar>, <mailto:cellar-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 03 Jul 2019 13:44:30 -0000

Hi all,
I took over from Ben as the Area Director responsible for this WG.  My apologies that my review took so long.

Firstly, I am glad that you've implemented changes requested by Ben, as some of them were on my list of issues as well. I have a few comments of my own. Please respond to my review, so that we can collectively figure out what still needs fixing and which parts of the document I just misunderstood.

7.  EBML Element Types

   EBML Elements are defined by an EBML Schema which MUST declare one of

I think it would be helpful to readers to include a forward pointer to the section talking about EBML Schema here.

   the following EBML Element Types for each EBML Element.  An EBML
   Element Type defines a concept of storing data within an EBML Element
   that describes such characteristics as length, endianness, and
   definition.

11.1.  EBML Schema

   An EBML Schema is a well-formed XML Document that defines the

I think "well-formed XML" needs a normative reference here.

   properties, arrangement, and usage of EBML Elements that compose a
   specific EBML Document Type.

11.1.2.  <EBMLSchema> Element

   As an XML Document, the EBML Schema MUST use "<EBMLSchema>" as the
   top level element.  The "<EBMLSchema>" element MAY contain
   "<element>" sub-elements.

RFC 2119 MAY describes an implementation or deployment choice. So the above MAY doesn't seem to be appropriate. I suggest you change it to "can", as this is just a statement of fact.


11.1.5.2.  path

   The path defines the allowed storage locations of the EBML Element
   within an EBML Document.  This path MUST be defined with the full
   hierarchy of EBML Elements separated with a "/".  The top EBML

Yet below the ABNF is using \. I think one of these need to be fixed.

 PathDelimiter            = "\"

This is supposed to be the same as the above, right?

 EBMLElementOccurrence    = [EBMLMinOccurrence] "*" [EBMLMaxOccurrence]
 EBMLMinOccurrence        = 1*DIGIT
 EBMLMaxOccurrence        = 1*DIGIT

Are there any upper limits on allowed values for these fields? Even if you don't encode them using ABNF, it would be good to mention them in an ABNF comment.

 VariableParentOccurrence = [PathMinOccurrence] "*" [PathMaxOccurrence]
 PathMinOccurrence        = 1*DIGIT
 PathMaxOccurrence        = 1*DIGIT

Same comment as above.

11.1.10.1.  label

   The label provides a concise expression for human consumption that
   describes what the value of the "<enum>" represents.

Is it worth adding a cross reference to the "lang" attribute here?


11.2.10.  DocTypeExtensionName Element

   description: The name of the DocTypeExtension to identify it from

I think the verb "differentiate" might be better than "identify" here.

   other DocTypeExtension of the same DocType+DocTypeVersion tuple.

12.  Considerations for Reading EBML Data

   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.

I don't fully understand your use of "MAY ... except ..." here.
Can you elaborate on why would an implementation ignore data contained in a Master Element and not ignore Descendant Elements, even if they own CRC-32 is valid?


   If a Master Element contains more occurrences of a Child Element that
   is not a Master Element than permitted according to the maxOccurs
   attribute of the definition of that Element then all but the instance
   of that Element with the smallest byte offset from the beginning of
   its Parent Element SHOULD be ignored.

I don't understand what this is is trying to say. If I have a Child Element with minOccurs = 2 and maxOccurs = 3, but the element appears 4 times: what would happen? I think the text above suggest to only use the first instance, which is possibly less than minOccurs.


16.  Security Considerations

   An EBML Reader MAY use the data if it considers it doesn't create any
   security issue.

I don't understand what this is trying to convey and how it can be complied with. Can you elaborate?
I suggest just deleting this sentence.


17.1.  CELLAR EBML Element ID Registry


   Four-octet Element IDs are numbers between 0x101FFFFF and 0x1FFFFFFE.
   Four-octet Element IDs are somewhat special in that they are useful
   for resynchronizing to major structures in the event of data
   corruption or loss.  As such four-octet Element IDs are split into
   two categories.  Four-octet Element IDs whose lower three octets (as
   encoded) would make printable 7-bit ASCII values (0x20 to 0x7F)

0x7F character is not considered printable. So I think this should be "(0x20 to 0x7E)". Ideally, you should also clarify that you want the whole range including 0x20 and 0x7E.

   MUST
   be allocated by the "Specification Required" policy.


17.2.  CELLAR EBML DocType Registry

   This document creates a new IANA Registry called "CELLAR EBML DocType
   Registry".

   DocType values are described in Section 11.1.3.1.  DocTypes are ASCII
   strings, defined in Section 7.4, which label the official name of the
   EBML Document Type.  The strings may be allocated according to the
   "First Come First Served" policy.

I think you need to be clearer on what you expect to appear on IANA's page. Do you expect a reference and/or description field in addition to a DocType name? I suspect you would also need the Change Controller field (who registered the value and can update the description).

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

The last sentence is odd, but then I realized that you only reserve these two names and will attempt to assign them separately in the future. I suppose the current text is Ok.

Thank you,
Alexey