Last Call Review of draft-ietf-payload-flexible-fec-scheme-16
review-ietf-payload-flexible-fec-scheme-16-tsvart-lc-aboba-2019-02-04-00

Request Review of draft-ietf-payload-flexible-fec-scheme
Requested rev. no specific revision (document currently at 19)
Type Last Call Review
Team Transport Area Review Team (tsvart)
Deadline 2019-02-01
Requested 2019-01-18
Other Reviews Secdir Last Call review of -16 by Radia Perlman (diff)
Genart Last Call review of -16 by Meral Shirazipour (diff)
Secdir Telechat review of -17 by Radia Perlman (diff)
Review State Completed
Reviewer Bernard Aboba
Review review-ietf-payload-flexible-fec-scheme-16-tsvart-lc-aboba-2019-02-04
Posted at https://mailarchive.ietf.org/arch/msg/tsv-art/MYD_1ib6lSjUynre_kRhI1L0MR8
Reviewed rev. 16 (document currently at 19)
Review result Ready with Issues
Draft last updated 2019-02-04
Review completed: 2019-02-04

Review
review-ietf-payload-flexible-fec-scheme-16-tsvart-lc-aboba-2019-02-04

Reviewer:  Bernard Aboba
Review result:  Needs clarifications

This document has been reviewed as part of the transport area review team's
ongoing effort to review key IETF documents. These comments were written
primarily for the transport area directors, but are copied to the document's
authors and WG to allow them to address any issues raised and also to the
IETF discussion list for information.

When done at the time of IETF Last Call, the authors should consider this
review as part of the last-call comments they receive. Please always CC
tsv-art@ietf.org if you reply to or forward this review.

Document: draft-ietf-payload-flexible-fec-scheme-16

My reading of the document raised questions relating to implementation
requirements as well as the configuration and use of the Flexible Mask mode
(R=0, F=0).  Presumably, this mode can be used to choose arbitrary packets
to protect. There is not much discussion of flexible mode early in the
document, and no use cases are presented relating to this mode.  However,
it would appear to me that flexible mode can be used to implement scenarios
such as differential protection for Scalable Video Coding.

For example, the sender could use flexible mode to only protect base layer
packets by using a flexible mask to select only packets sent with TID = 0
and SID = 0.  Since with flexible mode the mask is not negotiated and thus
can be varied on the fly, it would appear to me that differential
protection can be provided even in situations where the number of layers
encoded (and even the temporal/spatial encoding mode) vary on the fly.

If this interpretation is correct, I would suggest adding a section after
1.1.4 covering the flexible mask mode and a differential protection use
case for it.
It also would appear to me that flexible mode could be used to implement
dynamic FEC, but I'll leave it to the authors to decide whether to mention
that use case.

With respect to SDP parameters (L, D, ToP) defined in Section 5.1.1, I was
unclear on several points:

1. Is it possible to configure a ToP value to indicate that the sender
desires to utilize both FEC and retransmission?  Or must the sender choose
to utilize this payload for one or the other but not both?

2. What happens if both RTX and flexible FEC with retransmission are
Offered in SDP?  Could this result in the sender being allowed to send both
types of retransmission (though presumably only one at a time)?  Are the
type(s) of retransmission used determined by which retransmission schemes
are provided in the Answer?

3. If L and D are not specified, does this imply that the sender will
operate in flexible mode?  Are implementations of the specification
required to support all of the modes except for the F=1, R=1 mode that is
forbidden?  If not, how does an Answerer indicate that it doesn't support
the mode that is Offered?

4. Does the negotiation of L, D and ToP in SDP imply that the sender cannot
switch to use of another configuration without renegotiation?  Since the
flexible FEC format is self-describing, it would appear to me that
switching should be possible as long as the implementation requirements are
clear.  For example, do all implementations needs to support all mask
sizes?