[AVTCORE] Coments on draft-ietf-avtcore-rfc5285-bis-05
worley@ariadne.com (Dale R. Worley) Thu, 02 February 2017 02:46 UTC
Return-Path: <worley@alum.mit.edu>
X-Original-To: avt@ietfa.amsl.com
Delivered-To: avt@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 2A7EE129620 for <avt@ietfa.amsl.com>; Wed, 1 Feb 2017 18:46:50 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.934
X-Spam-Level:
X-Spam-Status: No, score=-1.934 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HEADER_FROM_DIFFERENT_DOMAINS=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_SOFTFAIL=0.665] autolearn=no autolearn_force=no
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 BL0djnWNn8SP for <avt@ietfa.amsl.com>; Wed, 1 Feb 2017 18:46:49 -0800 (PST)
Received: from resqmta-po-12v.sys.comcast.net (resqmta-po-12v.sys.comcast.net [IPv6:2001:558:fe16:19:96:114:154:171]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 1646112961A for <avt@ietf.org>; Wed, 1 Feb 2017 18:46:49 -0800 (PST)
Received: from resomta-po-14v.sys.comcast.net ([96.114.154.238]) by resqmta-po-12v.sys.comcast.net with SMTP id Z7Q6cso1onZkvZ7Q8cYkBY; Thu, 02 Feb 2017 02:46:48 +0000
Received: from hobgoblin.ariadne.com ([IPv6:2601:192:4603:9471:222:fbff:fe91:d396]) by resomta-po-14v.sys.comcast.net with SMTP id Z7Q6cQ5vRhLvUZ7Q7cUens; Thu, 02 Feb 2017 02:46:48 +0000
Received: from hobgoblin.ariadne.com (hobgoblin.ariadne.com [127.0.0.1]) by hobgoblin.ariadne.com (8.14.7/8.14.7) with ESMTP id v122kj3t013890; Wed, 1 Feb 2017 21:46:45 -0500
Received: (from worley@localhost) by hobgoblin.ariadne.com (8.14.7/8.14.7/Submit) id v122kjjn013887; Wed, 1 Feb 2017 21:46:45 -0500
X-Authentication-Warning: hobgoblin.ariadne.com: worley set sender to worley@alum.mit.edu using -f
From: worley@ariadne.com
To: avt@ietf.org
Sender: worley@ariadne.com
Date: Wed, 01 Feb 2017 21:46:45 -0500
Message-ID: <874m0d71ii.fsf@hobgoblin.ariadne.com>
X-CMAE-Envelope: MS4wfF6MRNnbUhZajPvPQO6suxBWx//OubPW6nAcf4OR4adIVHO+1QDHwGRS1nvkrQp4ryqNWoCKgxtiLYRAR7tiHDim821r6xw23Luw0jPZs5U0ThkIq9bV 37Rd5KbbEzHyLNoAy48d4qMJ0W6reYJ94lNhC0AQq+P0jKORlUobYpXLyk+UoB6KK6NPYYveYqnVvoFv/lkkDKg11vN10bNwBhE=
Archived-At: <https://mailarchive.ietf.org/arch/msg/avt/vQon8jMJiagVJuPtDi2Ps5o8Quo>
Cc: singer@apple.com
Subject: [AVTCORE] Coments on draft-ietf-avtcore-rfc5285-bis-05
X-BeenThere: avt@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: Audio/Video Transport Core Maintenance <avt.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/avt>, <mailto:avt-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/avt/>
List-Post: <mailto:avt@ietf.org>
List-Help: <mailto:avt-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/avt>, <mailto:avt-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 02 Feb 2017 02:46:50 -0000
This is rather late, but it seems that the document is still under active development. * Technical items: 4.2. One-Byte Header The ID value 15 is reserved. But there is also the invalid case where the ID field is 0 and the len field is non-zero. That case should probably be included in the same exception processing as for ID value 15. 5. SDP Signaling Design A usable mapping MUST use IDs in the valid range, and each ID in this range MUST be used only once for each media (or only once if the mappings are session level). It would be useful to state early in this section that in order to reduce the complexity of negotiating identifiers, a valid SDP must not have mapping attributes (extmap) at both the session level and the media level. Also, that it is semantically equivalent to have a set of extmaps at the session level and to have the same set of extmaps duplicated in each media section. In particular, if an offer contains extmaps at the session level and the answerer wishes to modify the extension mapping for one media stream but not the others, it can move the extmaps from the session level of the offer to every media section in the answer, and then modify the extmaps in the desired media section. There is some vagueness about the use of extmaps using identifiers outside the valid range, and the use of duplicate IDs. At one point, it seems to be stated that for a session description to be acted upon, only valid identifiers can be specified, and each can be specified only once -- but that in an offer/answer situation, the offer can use duplicate identifiers, and can use identifiers in the extended range, and the answer then produces SDP that obeys the validity rules. Then elsewhere, it is said that the answer can have extmaps in the extended range. I think there needs to be a clear summary of the various combinations that can happen during offer/answer of duplicated identifiers and identifiers in the extended range, because this sort of behavior pattern is unusual in SDP. Also, if an answer uses a different ID for a URI than the offer, do both the offerer and answerer use the answer's IDs? The text suggests so, but that is different from how payload types are used. In any case, the rules need to be made very clear. There's also a question of what URIs may be used and how they are considered. The term "absolute URI" seems to be poorly defined, since RFC 3986 uses "absolute URI" to mean what matches the production "absolute-URI", but that means a URI without a fragment part. I think here we mean "a URI containing a 'path-absolute'", but I don't think that admits URNs. (And all existing registered extension names are URNs.) So this definition needs to be cleaned up. I think in reality, these URIs are used as nearly-opaque identifiers; the exception being that a device that accepts the extension labeled with a URI will necessarily know what the rules are for testing for equality with that URI. But is there any reason to allow URIs that aren't URNs? (Within URNs, issues of equality testing, etc., are generally well-specified.) The text seems to suggest that the URI can be used to look up the meaning of the extension in some way other than using the URI to index a database, but I don't see how that can be made to work in practice. And once the URIs are indexes, it seems best to limit them to being URNs. Then again, XML namespaces are named by URIs, not just URNs. The meaning of the sendonly, etc. attributes seems to be inadequately specified. Given that an extmap attribute can exist at the session level even when media streams have different direction attributes, it seems that the only simple rule is that the direction attribute in the extmap determines which direction(s) the extension may be sent in theoretically, but because of media directionality, the header will only be sent in a direction that is within the directionality of the extmap and also the directionality of the stream. Similarly to media directionality, the directionality given in an answer for a particular extmap URI must be a subset of the directionality given in the offer. URIs that contain a domain name SHOULD also contain a month-date in the form mmyyyy. There isn't any standardized way to do this. Should there be some indicator that the month indication is ad hoc, such as: URIs that contain a domain name SHOULD in some manner contain a month-date in the form mmyyyy. -- If the resource or document defines several extensions, then the URI MUST identify the actual extension in use, e.g., using a fragment or query identifier (characters after a '#' or '?' in the URI). This text suggests that the URI in some way can be processed to directly identify a "resource or document". But there is no general resolution process for doing that; the method by which the URI indicates the extension definition is entirely outside this specification. In practice, the device contains a small table of URIs that it recognizes. Within that conceptual structure, the rule is simply that different extensions must be identified by different URIs, and as a consequence, URIs that differ only by fragment or query identifier identify different extensions. When SDP signaling is used for the RTP session, it is the presence of the 'extmap' attribute(s) that is diagnostic that this style of header extensions is used, not the magic number indicated above. I *think* this means that the presence of this SDP signaling implies that all RTP header extensions will be of the type defined here, regardless of their 16-bit identifiers. But that's not a useful fact, because the header extension can't be parsed without first knowing which variety of extension is it, and that is determined by the 16-bit identifier value. So I think the best you can do is say When SDP signaling is used for the RTP session, if 'extmap' attribute(s) are present, all RTP extension headers MUST be of one of the two forms specified in this document. 6. SDP Signaling for support of mixed one byte and two bytes header For simplicity, it seems that you'd want to allow the positioning of extmap-allow-mixed (session level vs. media level) to be independent of the positioning of extmap. I expect this is intended, but it's worth stating it explicitly, given the limitations on how extmap attributes can be placed. Given that it is envisioned that some systems may not support the two-byte form (section 4.1.2 paragraph 2), should there be a way to enforce the use of only the one-byte form? In particular, this might be desirable: If all of the identifier values in the offer are less than 15, then all of the identifier values in the answer MUST be either less than 15 or greater than 4095. If all of the identifier values in the answer are less than 15, then the RTP stream MUST NOT user the two-byte extension form. That allows both the offerer and the answerer to force use of the one-byte form. 7. Offer/Answer Extensions, with their directions, MAY be signaled for an "inactive" stream. It is an error to use an extension direction incompatible with the stream direction (e.g., a "sendonly" attribute for a "recvonly" stream). This is unworkable if the extension attribute is at the session level. E.g., there could be one media stream that is "sendonly" and one that is "recvonly", which would require all extension attribute directions to be "inactive". I think you need to allow the extension attribute direction specifications to be orthogonal to the medial directions. Local identifiers in the valid range inclusive in an offer or answer MUST NOT be used more than once per media section (including the session-level section). A session update MAY change the direction qualifiers of extensions under use. A session update MAY add or remove extension(s). Identifiers values in the valid range MUST NOT be altered (remapped). There is a lot here. The duplicate identifiers are clearly allowed -- that is discussed elsewhere in these comments. A session update may change the direction qualifiers, of course, because a session update is an entirely new negotiation, so that need not be stated. Similarly for adding or removing extensions. But what does the last sentence mean? There is much discussion of remapping identifier values in earlier sections. Does it perhaps mean that if an identifier value goes into use (by being in the valid range and in the answer), then a session update offer MAY NOT map it to a different URI? This may be a good rule, because it ensures that RTP extension headers in-flight won't be misinterpreted. But it might be better phrased: A session update offer or answer may not specify a different URI for an identifier that is in currently in use in the session (i.e., that is in the valid range and was specified in the answer that describes the session). (However, an identifier that is currently in use can be unmapped in one session update offer/answer cycle and then subsequently mapped to a different URI in a later session update.) -- Either party MAY include extensions in the stream other than those negotiated, or those negotiated as "inactive", for example, for the benefit of intermediate nodes. Only extensions that appeared with an identifier in the valid range in SDP originated by the sender can be sent. This seems odd. If the negotiated SDP (the answer) doesn't contain an extmap or marks it inactive, why should both endpoints be allowed to send it? And isn't it the identifier number in the answer that control (because the answer is allowed to remap the extension types in the offer)? I think this needs to be rethought. 8. BNF Syntax (only absolute URIs are permitted here) If we maintain this restriction, a clear definition or reference for "absolute URI" needs to be made. The BNF allows five-digit identifiers, whereas the text allows identifiers only up to 4351. I see that the intention is that the range may be increased later, but I would think four digit numbers would suffice. 9. Security Considerations Extensions usage is negotiated using [RFC3264] so integrity protection and end-to-end authentication MUST be used. This seems remarkably strict, since roughly nobody uses end-to-end integrity/authentication in SIP. * Editorial items: Abstract The document obsoletes RFC5285 s/The/This/ Add a final full stop. 1. Introduction both one byte and two bytes header I think the standard usage is "two byte" when that phrase is being used as a modifier. 4.1. General The value defined for an RTP extension (defined below for the one-byte and two-byte header forms) is ... This is awkwardly phrased; what is "the value defined for an extension". Unfortunately, RFC 3550 didn't give a proper name to the field in question. I suggest copying the wording in the introduction, which was clearer: The 16-bit identifiers for the two forms of RTP extension defined here are only architectural constants (e.g., for use by network analyzers); it is the out-of-band negotiation/definition (e.g., in SDP) that is the definitive indication that this header extension is present. 4.1.1. transmission considertions s/considertions/considerations/ actually, s/transmission considertions/Transmission Considerations/ 4.1.2. Header Extension type consideration s/type consideration/Type Consideration/ Perhaps change "one-byte form" and "two-byte form" to "one-byte format" and "two-byte format"? The latter read better to me. Each RTP packet with an RTP header extension following this specification will indicate if it contains one or two byte header extensions through the use of the "defined by profile" field. Better, "...though the value of the...". Transmitters SHOULD NOT use the two-byte form when all extensions are small enough for the one-byte header form. You should probably add, "... when all extension use IDs less than 15 and the extension data is small enough ...". That makes it correct, and makes it clearer why negotiating an ID over 14 signals an intention to use the two-byte form. Transmitters that intend to send the two-byte form SHOULD use IDs above 14 if they want to let the Receivers know that they intend to use two-byte form ... Better to say "... SHOULD negotiate the use of IDs above 14 to let ...". 4.3. Two-Byte Header For the purposes of signaling, this field is treated as a special extension value assigned to the local identifier 256. This is awkwardly phrased, since this isn't a signaling datum. I assume you mean This field is treated as the data field of the extension assigned to the local identifier 256. (Of course, an extension assigned identifier 256 must define the interpretation of four-bit values.) -- Note that there is one ID space for both one-byte and two-byte form this means that the lower values (1-14) can be used in the 4-bit ID field in the one-byte header format as well. The clauses don't join together correctly. Perhaps: Note that there is one ID space for both one-byte and two-byte forms. This means that the lower values (1-14) can be used in the 4-bit ID field in the one-byte format with the same meanings. 5. SDP Signaling Design An extension URI with the same attributes MUST NOT appear more than It would be clearer if you phrased this: There must not be multiple identifier definitions applying to one stream with the same extension URI and extension-attributes. (Then s/<extensionattributes>/<extension-attributes>/ in the BNF.) ... can appear differently parameterized for the same stream. s/differently parameterized/with different extension-attributes/ In addition, as noted above, the IDs used MUST be unique for each stream type for a given media, or for the session for session-level declarations. It is not clear what this means. As noted above, the same extended ID can be used multiple times in an offer. And what a "stream type" is is not defined. Each local identifier potentially used in the stream is mapped to a string using an attribute of the form: What does "is mapped to a string" mean? Does it mean "is mapped to an extension identified by a URI"? is an integer in the valid range inclusive (0 is reserved for padding in both forms, and 15 is reserved in the one- byte header form, as noted above) The phrase "valid range inclusive" is used in several places and is unclear. I think "valid range" is what is intended. There's no particular reason to partially describe the valid range here, as it has already been explained. And the text about 15 is irrelevant, as ID 15 can validly be used in two-byte headers. <direction> is one of "sendonly", "recvonly", "sendrecv", or "inactive" (without the quotes) with relation to the device being configured. Within the context of the above proposal that the extmap direction value is orthogonal to stream direction attribute, it should be noted here that "sendrecv" is the default value. 6. SDP Signaling for support of mixed one byte and two bytes header The formal definition of this attribute is: Name: extmap-allow-mixed I would expect this formal definition to be in the IANA considerations section. Indeed, it *is* in the IANA considerations. Why is it duplicated here? When doing SDP Offer/Answer [RFC3264] an offering client that wishes to use both one and two bytes extensions MUST include the attribute "a= extmap-allow-mixed " in the SDP offer. If "a= extmap-allow-mixed " is present in the offer SDP, the answerer that supports this mode and wishes to use it SHALL include the "a=extmap-allow-mixed " attribute in the answer. There are extra spaces in the various occurrences of "a=extmap-allow-mixed", which triggers poor line breaks in the current draft. In cases the answer has been excluded, I think s/the answer/where the attribute/. In cases the answer has been excluded, neither clients SHALL use mixed one bytes and two bytes extensions in the same RTP stream but MAY use one-byte or two-bytes form (see section 4.1.2). I think you want to clarify this as In cases where the attribute has been excluded, both clients SHALL NOT use mixed one bytes and two bytes extensions in the same RTP stream. But they MAY use either the one-byte or two-byte form exclusively. 7. Offer/Answer If an offer or answer contains session-level mappings (and hence no media-level mappings), and different behavior is desired for each stream, then the entire set of extension map declarations MAY be moved into the media-level section(s) of the SDP. (Note that this specification does not permit mixing global and local declarations, to make identifier management easier.) Above I propose hoisting this to an earlier position in the document. If an extension map is offered as "sendrecv", explicitly or implicitly, and asymmetric behavior is desired, the SDP MAY be modified to modify or add direction qualifiers for that extension. What does this mean? Do you mean if *the answerer* desires asymmetric behavior? I think you want to replace this paragraph and the following two paragraphs with something like If the answerer desires to not use an extension in a direction which the extmap attribute in the offer allows, it can change the direction attribute in the extmap attribute to a more restrictive value. I.e., "sendrecv" can be replaced with another value, and "sendonly" and "recvonly" can be replaced with "inactive". If the answerer does not understand the extension or does not desire to use it, it should remove the extmap attribute in the answer (in preference to changing its direction to "inactive"). -- If a party wishes to offer mutually exclusive alternatives, then multiple extensions with the same identifier in the (unusable) range 4096-4351 MAY be offered; the answerer SHOULD select at most one of the offered extensions with the same identifier, and remap it to a free identifier in the valid range, for that extension to be usable. I've discussed this above, but additionally, "(unusable) range" is peculiar. There needs to be a term for the range 4096 to 4351. I think I've used the term "extended range" above. It is always allowed to place the offered identifier value "as is" in the SDP answer (for example, due to lack of a free identifier value in the valid range). Extensions with an identifier outside the valid range MUST NOT, of course, be used. If needed, the offerer or answerer can update the session to make space for such an extension. I think this would be clearer as An answerer may copy an extmap for an identifier in the extended range into the answer to indicate to the offerer that it supports that extension. Of course, such an extension cannot be used, since there is no way to specify them in an extension header. If needed, the offerer or answerer can update the session to assign a valid identifier to that extension URI. 11. Changes from RFC5285 The support for this case is negotiated using a new SDP attribute "extmap-allowed-mixed" specified in this document. s/extmap-allowed-mixed/extmap-allow-mixed/ [END]
- [AVTCORE] Coments on draft-ietf-avtcore-rfc5285-b… Dale R. Worley
- Re: [AVTCORE] Coments on draft-ietf-avtcore-rfc52… Roni Even
- Re: [AVTCORE] Coments on draft-ietf-avtcore-rfc52… Jonathan Lennox
- Re: [AVTCORE] Coments on draft-ietf-avtcore-rfc52… Dale R. Worley
- Re: [AVTCORE] Coments on draft-ietf-avtcore-rfc52… Dale R. Worley
- Re: [AVTCORE] Coments on draft-ietf-avtcore-rfc52… Roni Even