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