Last Call Review of draft-ietf-tsvwg-rfc5405bis-13
review-ietf-tsvwg-rfc5405bis-13-genart-lc-kyzivat-2016-05-28-00

Request Review of draft-ietf-tsvwg-rfc5405bis
Requested rev. no specific revision (document currently at 19)
Type Last Call Review
Team General Area Review Team (Gen-ART) (genart)
Deadline 2016-05-31
Requested 2016-05-19
Other Reviews Genart Telechat review of -18 by Paul Kyzivat (diff)
Secdir Last Call review of -13 by Takeshi Takahashi (diff)
Secdir Telechat review of -17 by Takeshi Takahashi (diff)
Opsdir Last Call review of -11 by Tim Chown (diff)
Rtgdir Early review of -13 by Ron Bonica (diff)
Review State Completed
Reviewer Paul Kyzivat
Review review-ietf-tsvwg-rfc5405bis-13-genart-lc-kyzivat-2016-05-28
Posted at http://mailarchive.ietf.org/arch/msg/gen-art/kM_BoAynhqBB7EP9TOgGgWYAAPQ
Reviewed rev. 13 (document currently at 19)
Review result Ready with Issues
Draft last updated 2016-05-28
Review completed: 2016-05-28

Review
review-ietf-tsvwg-rfc5405bis-13-genart-lc-kyzivat-2016-05-28

I am the assigned Gen-ART reviewer for this draft. The General Area 
Review Team (Gen-ART) reviews all IETF documents being processed by the 
IESG for the IETF Chair. Please treat these comments just like any other 
last call comments. For more information, please see the FAQ at 
<http://wiki.tools.ietf.org/area/gen/trac/wiki/GenArtfaq>.

Document: draft-ietf-tsvwg-rfc5405bis
Reviewer: Paul Kyzivat
Review Date: 2016-04-27
IETF LC End Date: 2016-05-31
IESG Telechat date:

Summary:

This draft is on the right track but has open issues, described in the 
review.

Issues:

(Note: I am having difficulty assigning severity levels to these issues. 
So take the leveling with a grain of salt.)

Major: 1?
Minor: 1
Nits:  3

(1) Major? - Scope and Audience

I had difficulty understanding the intended scope of this document, and 
the intended audience. It seems to want to be a variety of things.

* It seems to be a fine reference about congestion control for 
applications of UDP.

* It also seems to be pretty helpful in challenging developers about 
whether they should be using UDP or something else.

Probably everyone contemplating using UDP ought to read this for that 
stuff. Those topics would be a good focus for the document.

Beyond that it delves into a seeming random assortment of additional 
specialized uses of UDP. These may be of interest to some, but I suspect 
many won't find these things useful. And the topics covered seem to be 
simply what came to mind rather than being in some way exhaustive.

Also, some applicability to congestion control for non-UDP protocols 
(those layered directly on IP) is claimed. This seems a bit of an 
afterthought, and incompletely covered.

After diffing this document against RFC5405 I see that it really is an 
incremental change that leaves the scope largely unchanged except for 
the addition of multicast. So perhaps I am too late to question the 
scope of the document. But since this *is* a bis, it might be worth 
considering whether the scope could be focused by splitting some of the 
material off into a different document(s).

(2) MINOR? - use of SHOULD

I was struck by how much SHOULD is used in this document, and how 
infrequently MUST is used. And while possible justifications for 
violating SHOULD are sometimes provided, they often are not. In my 
experience there has been a growing awareness that such vagueness is 
problematic, because many implementers take it as free license to treat 
SHOULD as MAY, and just not do it.

(IIUC, in a BCP the normative language is relative to best practice. So 
if MUST is written and you don't do it then you aren't following best 
practice. But if SHOULD is written without qualification, and you don't 
follow it then you can probably claim that you are still following the 
best practice as documented by the document.)

I note that most of the SHOULD usage is inherited from RFC5405, so there 
is some justification for just leaving it be. But it could be a helpful 
exercise to review all this usage, and consider whether usages of SHOULD 
can be changed to MUST, or if valid justifications for violating the 
SHOULD can be stated.

(3) NITs: Section 3.1.7

In the following:

    The set of mechanisms requires for an application to use ECN over UDP
    are:

s/requires/required/

In the following:

    [RFC6679] provides guidance an example of this support, by describing

s/guidance/guidance and/

In the following:

    In general, packets may be forwarded across multiple networks the
    between source and destination.

s/ the//

(4) NIT: Appendix A:

I couldn't parse the following sentence as written:

    MPLS-in-UDP endpoints must check the source IPv6 address in addition
    to the destination IPv6 address, plus the strong recommendation
    against reuse of source IPv6 addresses among MPLS-in-UDP tunnels
    collectively provide some mitigation for the absence of UDP checksum
    coverage of the IPv6 header.

I think it would better reflect the intent if it is changed as follows:

s/MPLS-in-UDP endpoints must/The requirement for MPLS-in-UDP endpoints to/

(5) NITs - unlinked references

I found a number of cases where, in the html format, references are not 
hyperlinked:

[RFC5405] section 1
[RFC4342] section 3
[RFC6679] section 3.1.7
[RFC1981] section 3.2
[RFC6935] section 3.4.1