[payload] AD Evaluation of draft-ietf-payload-flexible-fec-scheme-13

Ben Campbell <ben@nostrum.com> Wed, 19 December 2018 05:00 UTC

Return-Path: <ben@nostrum.com>
X-Original-To: payload@ietfa.amsl.com
Delivered-To: payload@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id ABF0B1276D0; Tue, 18 Dec 2018 21:00:54 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.98
X-Spam-Level:
X-Spam-Status: No, score=-1.98 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, T_SPF_HELO_PERMERROR=0.01, T_SPF_PERMERROR=0.01] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=nostrum.com
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 zMos3dYTjmGF; Tue, 18 Dec 2018 21:00:52 -0800 (PST)
Received: from nostrum.com (raven-v6.nostrum.com [IPv6:2001:470:d:1130::1]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 08EF312F1A5; Tue, 18 Dec 2018 21:00:49 -0800 (PST)
Received: from [10.0.1.45] (cpe-70-122-203-106.tx.res.rr.com [70.122.203.106]) (authenticated bits=0) by nostrum.com (8.15.2/8.15.2) with ESMTPSA id wBJ50iQl011795 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NO); Tue, 18 Dec 2018 23:00:48 -0600 (CST) (envelope-from ben@nostrum.com)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=nostrum.com; s=default; t=1545195648; bh=9OlWFm/uGcf9ppxJ+WygsI2BIwjKsQCjqKKFrkW/k2E=; h=From:Subject:Date:Cc:To; b=CzXunuuK3cwosp/wS4G8R5aqOQj5mPqyJVx9wqyuvwOKLEY1rQvhCKnl/b8n7ebb0 qQ3+Ww09KYceqYLfdm/Kbk/IxL0DW8GGP6eOOB9iokPou9pj31v7D+/n0qNJb5oU6H rw1PIScj6nQTLUUkPrgLtsLmj+vht9jNZ296SnEU=
X-Authentication-Warning: raven.nostrum.com: Host cpe-70-122-203-106.tx.res.rr.com [70.122.203.106] claimed to be [10.0.1.45]
From: Ben Campbell <ben@nostrum.com>
Content-Type: multipart/signed; boundary="Apple-Mail=_DD09E9A0-C180-43EB-8DE2-43167BA9511D"; protocol="application/pgp-signature"; micalg=pgp-sha512
Mime-Version: 1.0 (Mac OS X Mail 12.2 \(3445.102.3\))
Message-Id: <3462BDFF-84C6-4FE5-857D-50B457AF15FE@nostrum.com>
Date: Tue, 18 Dec 2018 23:00:43 -0600
Cc: payload@ietf.org
To: draft-ietf-payload-flexible-fec-scheme.all@ietf.org
X-Mailer: Apple Mail (2.3445.102.3)
Archived-At: <https://mailarchive.ietf.org/arch/msg/payload/tT4lQ_oVsDWuRmcFn7OImwy87oo>
Subject: [payload] AD Evaluation of draft-ietf-payload-flexible-fec-scheme-13
X-BeenThere: payload@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Audio/Video Transport Payloads working group discussion list <payload.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/payload>, <mailto:payload-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/payload/>
List-Post: <mailto:payload@ietf.org>
List-Help: <mailto:payload-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/payload>, <mailto:payload-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 19 Dec 2018 05:00:55 -0000

Hi,

This is my AD Evaluation of draft-ietf-payload-flexible-fec-scheme-13.

The document is overall in pretty good shape. It’s more readable than I expected, given the subject matter. I would like to discuss my substantive comments/questions prior to IETF LC.

Thanks!

Ben.

*** Substantive***

General: Do I read correctly that this document can completely stand alone from RFC 6363? That is, the calculation of the protection stream and reconstruction of lost source packets is completely specified in this document? I don’t see that as a problem, but if it’s correct some introduction text to that effect would be helpful. Is a normative reference to 6363 even needed?

 If that’s _not_ the intent, then we need some discussion about where I went wrong in reading it.

§2: Unless there’s a strong reason otherwise, please use the updated key word boilerplate from RFC 8174.

§4.2: "The FEC repair packets MUST contain information that identifies the
source block...”: The MUST seems more like a statement of fact than a normative requirement.

§4.2.1:

- There’s a number of 2119/8174 keywords in this section that seem more natural consequences of using RTP than new normative requirements. If that is the case, they shouldn’t use normative keywords unless in the form of direct quotes.

- 10th paragraph: "The repair streams’ SSRC’s CNAME SHOULD be
identical to the CNAME of the source RTP stream(s) that this
repair stream protects.”
Why is the SHOULD not a MUST? What happens if it is violated?


- 11th paragraph: "such
scenarios, using the same CNAME for the source and repair RTP
streams means that the RTP Source and the FEC Source MUST share
the same CNAME (for this specific source-repair stream
association).”

That MUST seems like a statement of fact.

§4.2.2: Please add a short explanation of why we need two different FEC packet formats. (Not counting the retransmission packet; the reasoning there is pretty obvious.)

§5.1.1 (and subsequent media type definitions)

- Please consider using the IESG (iesg@ietf.org) as the contact for further information. Working groups come and go, and authors change jobs. But someone on the IESG should (hopefully) always be able to find the right person,

- Change control:  In 5.1.1, shouldn’t that be the PAYLOAD working group (or it’s successor as delegated by the IESG...)

- Are these registrations really intended to be provisional?

§5.2.1, last bullet: "Any unknown option in the offer MUST be ignored and deleted from
the answer.”: Is that a a new requirement specific to flex-fec, or just a normal offer/answer requirement?

§6.3.1.1, last paragraph: This is the only mention of “staircase” in the draft. Please add or cite a definition.

§8:
- "the potential impacts of using FEC MUST be considered” is vague for a MUST. Who/what does this apply to? Is the implementor expected to know in advance whether their implementation will be used in a congestion-prone network? (If that is the intent, I suggest non-normative guidance.)
- “In a network-friendly implementation”: Do you expect to see network-unfriendly implementations? Is that okay?

§9, last paragraph: What are the security implications of unused source-buffers? Is this a potential DoS vector?


*** Editorial ***

- Abstract: I’m not sure how to interpret the phrase “decent complexity”. How much complexity qualifies as “decent”?

§1,

- first paragraph: Please add  or cite a definition for FEC. I’m not sure all readers will understand it the same way the authors do. (I was personally surprised to find discussion about reacting to feedback, since I thought of FEC as something used when no feedback channel was available.)

- 2nd paragraph: s/Redunadncy/Redundancy”

§1.1.1:

- It would be helpful to describe what L and D represent here, or at least give a forward reference to the definition. (I note that a lot of text goes by before you get to the  definitions or the 2119 boilerplate.)

- Does 1-D and later 2-D stand for “one dimensional” and “two dimensional”? If so, please expand  both first mention. (As it was, I got a bit confused by trying to conflate the “D” in “1-D” with the “D” in “LxD”.)

§1.1.5:
- "assuming that each repair packet carries an equal
number of bytes carried by a source packet,”
s/ “bytes carried”/“bytes as carried”

§4.2, last paragraph: Missing article before ‘Repair “Payload” ‘

§4.2.2, paragraph after Figure 10:
The text seems to be suggest there is one source packet protected by a given repair packet. IIUC, that’s not the case; a given FEC packet protects several source packets, doesn’t it?

§5.2, first paragraph: s/ "Applications that are using RTP transport” / “Applications that use the RTP transport”

§5.2.1, first bullet: I don’t know how to interpret “SHOULD normally”.

§5.2.2, first paragraph: Is there a reason to cite the obsolete RFC 2326?

§6.3.3:
- list item 2: "The padding of octet 0 MUST be added at
the end of the bit string.”: I assume that means “padded with zeros”, but it could be interpreted to mean “pad the zeroth byte”.

- list item 5: Should “num_recovered_until_this_iteration” say “before_this_iteration”?

§9, last paragraph: I don’t understand the intent of the last sentence.