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

"Alexey Melnikov" <aamelnikov@fastmail.fm> Thu, 11 July 2019 13:36 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 C9F811200E0 for <cellar@ietfa.amsl.com>; Thu, 11 Jul 2019 06:36:14 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.699
X-Spam-Level:
X-Spam-Status: No, score=-2.699 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, HTML_MESSAGE=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=aPTPk/rH; dkim=pass (2048-bit key) header.d=messagingengine.com header.b=ZzyIoka8
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 VmjCZ5sUsN3z for <cellar@ietfa.amsl.com>; Thu, 11 Jul 2019 06:36:11 -0700 (PDT)
Received: from wout5-smtp.messagingengine.com (wout5-smtp.messagingengine.com [64.147.123.21]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id B02521200FB for <cellar@ietf.org>; Thu, 11 Jul 2019 06:36:11 -0700 (PDT)
Received: from compute7.internal (compute7.nyi.internal [10.202.2.47]) by mailout.west.internal (Postfix) with ESMTP id D7B753B5; Thu, 11 Jul 2019 09:36:10 -0400 (EDT)
Received: from imap1 ([10.202.2.51]) by compute7.internal (MEProxy); Thu, 11 Jul 2019 09:36:11 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=fastmail.fm; h= mime-version:message-id:in-reply-to:references:date:from:to:cc :subject:content-type; s=fm3; bh=mUdVej3RXPimLmCYcB9Yj8vO5fbWtCL Hm/Mr6XnbqEg=; b=aPTPk/rHx3yVlttlnqR1pQPwHANYnGWKGtsyXBPqG8fHu1g xglWkQQwOJSeh7FgwTnM3oS0y9YcSCb11hfgGeLrbuiz37MLzCLqTa0S7sRXrl21 7ol1pr33sVd62OHaYeaZ8UqsQOCEdmpLJCPX6pWx8inEU0yhaqKagpDfY4FiRBOQ 430ubMkyyLDkTptjIRReQ8OckaFHJuBPQv0NWHUfJ9vbqZdluAgSk8pX96gaILzx y11r2WgI2InHegBgGnRVh5mYDungSlt7U1Dre1IHedHriVfghWx+KWGkxAhZXShg q9qlfwrV3dg5lNfZhAqvMpMUQ2CdvXcB8Kh1VjQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:x-me-proxy :x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm3; bh=mUdVej 3RXPimLmCYcB9Yj8vO5fbWtCLHm/Mr6XnbqEg=; b=ZzyIoka8SH7CUMzDoO6g48 zeBFeBmmKOI2Jzw3rVJUpRhyB6XVp7JnOjt5+cO8ZXyL33wk+bRn10NF+uxZlPwv +XY6eJq7k4esQ+vFctb6KY4XujVZcW4xSnBY5yJ8JRsdBFWAY/b9YihznQm/GA8a MOGk9GDw8IXKB3y7NIF6FF1kPKujIJpaVYJ5UxBoh/kT0Z/wQ+y5Edy78V2oGKNb PNBXS9L4wbew3//UQhhT9L0yMi01DfedtNxFn31pRSDUZgnL4MDs1JG+isRSFL0P 8IMLwVfBv3GJqcuuDZ30CQ3vRqrQZiQ4sE8qe5WzVC+ApL4WWqwGD6c2QpXZV8sA ==
X-ME-Sender: <xms:SjsnXWSsQ46kxQZURCN5MFs9gDrJ52NMXqG97MzVUqnmS0YUHZYCQg>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduvddrgeekgdeijecutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmdenuc fjughrpefofgggkfgjfhffhffvufgtsegrtderreerreejnecuhfhrohhmpedftehlvgig vgihucfovghlnhhikhhovhdfuceorggrmhgvlhhnihhkohhvsehfrghsthhmrghilhdrfh hmqeenucffohhmrghinhepghhithhhuhgsrdgtohhmnecurfgrrhgrmhepmhgrihhlfhhr ohhmpegrrghmvghlnhhikhhovhesfhgrshhtmhgrihhlrdhfmhenucevlhhushhtvghruf hiiigvpedt
X-ME-Proxy: <xmx:SjsnXQA0B6UIv8HRjCCIVklc7yve3fsspCFVAh4YOJ1dTvpOZHgQnA> <xmx:SjsnXe0QdG46RjSe8TgkE1kHbonBDG85XAJadYFvx7Njc9Pg8wJknw> <xmx:SjsnXWUsG34nlBoHP8mJFvWBUDP8C5py3oxqKlxhIUuysNQDNnkz9Q> <xmx:SjsnXbdy5EYvv-5fTfPWUipJszyTYMHUXFFp9y4qWFR0PNOcJOmuWw>
Received: by mailuser.nyi.internal (Postfix, from userid 501) id 25783C200A4; Thu, 11 Jul 2019 09:36:10 -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: <52b3f63f-fddb-4438-be5f-f61359307f98@www.fastmail.com>
In-Reply-To: <F50D112A-91E8-482B-A78F-8557480331BC@dericed.com>
References: <3835cda8-7bfb-4178-bec7-b0acff9327ba@www.fastmail.com> <F50D112A-91E8-482B-A78F-8557480331BC@dericed.com>
Date: Thu, 11 Jul 2019 14:36:09 +0100
From: Alexey Melnikov <aamelnikov@fastmail.fm>
To: Dave Rice <dave@dericed.com>
Cc: cellar@ietf.org
Content-Type: multipart/alternative; boundary="9f80b438fbfe436e9be397f2b8e0eb8b"
Archived-At: <https://mailarchive.ietf.org/arch/msg/cellar/Lt20pfgN7F2_T4pLmzfJqg8Mk50>
Subject: Re: [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: Thu, 11 Jul 2019 13:36:15 -0000

Hi Dave,
I removed comments where we are in agreement. A few followups:

On Sat, Jul 6, 2019, at 6:23 PM, Dave Rice wrote:
> Hello Alexey,
> 
> Thanks much for providing this thorough review. I’ll try to reply point by point below with references to either pull requests or issues or offer followup questions. In a few places I ping Steve Lhomme and Michael Richardson as the comments relate to text they originated in their work.
> 
>> 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.
> 
> I looked for examples of that sort of commenting but didn’t find much guidance. Eventually I simply appended " ; no upper limit” to each of the four referenced lines and added that to https://github.com/cellar-wg/ebml-specification/pull/265.
I think this is the wrong fix. Is it sufficient for an implementation to use 32 bit value to represent any of these? 64 bit value?
"no upper limit" is not going to be interoperable.

> 
>> 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?
> 
> Do you mean to express the language of the term used within the label? Currently the language of the label is undefined and since it is an attribute that label is not repeatable.

To be honest I am not yet sure how I feel about "undefined language" here. Need to think about that.
But either way, I think adding some text that "lang" attribute doesn't apply would be helpful.

> 
>> 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?
> 
> For instance if a Matroska file has three metadata tags and each has a CRC value and so does the parent Tags element like this.
> 
> <Tags crc=invalid>
>  <Tag crc=valid>
>  <Tag crc=valid>
>  <Tag crc=invalid>
> <Tags>
> 
> We’re trying to say that even though the contents of the <Tags> element is invalid, that the valid child elements may still be used.
So to me this means that after discarding all invalid elements you end up with something like this:

<Tags >
 <Tag crc=valid>
</Tags>

As this is an incomplete document, I am struggling to understand what it can be used for?

>  An invalid descendant element would make all ancestor element invalid, but should not necessary make all sibling elements unusable.
> 

Best Regards,
Alexey