Re: [MMUSIC] WGLC for draft-ietf-mmusic-sdp-bundle-negotiation-19
Adam Roach <adam@nostrum.com> Wed, 08 April 2015 17:21 UTC
Return-Path: <adam@nostrum.com>
X-Original-To: mmusic@ietfa.amsl.com
Delivered-To: mmusic@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1])
by ietfa.amsl.com (Postfix) with ESMTP id C65091B34C1
for <mmusic@ietfa.amsl.com>; Wed, 8 Apr 2015 10:21:21 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.31
X-Spam-Level:
X-Spam-Status: No, score=-1.31 tagged_above=-999 required=5
tests=[BAYES_00=-1.9, J_CHICKENPOX_15=0.6, T_RP_MATCHES_RCVD=-0.01]
autolearn=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 sKyDjmexSj0Z for <mmusic@ietfa.amsl.com>;
Wed, 8 Apr 2015 10:21:19 -0700 (PDT)
Received: from nostrum.com (raven-v6.nostrum.com [IPv6:2001:470:d:1130::1])
(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 84FF21B34C9
for <mmusic@ietf.org>; Wed, 8 Apr 2015 10:21:16 -0700 (PDT)
Received: from Orochi.local (99-152-145-110.lightspeed.dllstx.sbcglobal.net
[99.152.145.110]) (authenticated bits=0)
by nostrum.com (8.15.1/8.14.9) with ESMTPSA id t38HL7vq051431
(version=TLSv1.2 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
Wed, 8 Apr 2015 12:21:09 -0500 (CDT) (envelope-from adam@nostrum.com)
X-Authentication-Warning: raven.nostrum.com: Host
99-152-145-110.lightspeed.dllstx.sbcglobal.net [99.152.145.110] claimed to be
Orochi.local
Message-ID: <55256383.9050708@nostrum.com>
Date: Wed, 08 Apr 2015 12:21:07 -0500
From: Adam Roach <adam@nostrum.com>
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8;
rv:31.0) Gecko/20100101 Thunderbird/31.6.0
MIME-Version: 1.0
To: Flemming Andreasen <fandreas@cisco.com>, mmusic <mmusic@ietf.org>
References: <5519B9B2.9090701@cisco.com>
In-Reply-To: <5519B9B2.9090701@cisco.com>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit
Archived-At: <http://mailarchive.ietf.org/arch/msg/mmusic/6n6gND_S80izDGNWaYYjygDu61Y>
Cc: "draft-ietf-mmusic-sdp-bundle-negotiation@tools.ietf.org"
<draft-ietf-mmusic-sdp-bundle-negotiation@tools.ietf.org>,
"mmusic-chairs@tools.ietf.org" <mmusic-chairs@tools.ietf.org>
Subject: Re: [MMUSIC] WGLC for draft-ietf-mmusic-sdp-bundle-negotiation-19
X-BeenThere: mmusic@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: Multiparty Multimedia Session Control Working Group <mmusic.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/mmusic>,
<mailto:mmusic-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/mmusic/>
List-Post: <mailto:mmusic@ietf.org>
List-Help: <mailto:mmusic-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/mmusic>,
<mailto:mmusic-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 08 Apr 2015 17:21:21 -0000
On 3/30/15 16:01, Flemming Andreasen wrote:
> Please review and provide any comments you may have on the document
> changes by Monday, April 13, 2015. Comments should be sent to the
> document authors and the MMUSIC WG list. If you review the document
> but do not have any comments, please send a note to that effect as well.
I have reviewed the body of the document, and have a number of comments.
These are of varying severity, ranging from editorial suggestions to
proposed normative changes. They appear in document order.
---------------------------------------------------------------------------
In the Abstract:
"This
specification also updates sections 5.1, 8.1 and 8.2 of RFC 3264 to
allow an answerer to assign a non-zero port value to an "m=" line in
an SDP answer, even if the "m=" line in the associated SDP offer
contained a zero port values.
This seems to be a bit of a deep dive for the abstract, and I would propose
removing it. If it does remain, it needs to include something like "under
certain circumstances." But I think removal is the better option.
The introduction should also qualify the similar statement in this
paragraph:
This specification also updates sections 5.1, 8.1 and 8.2 of RFC 3264
[RFC3264]. The update allows an answerer to assign a non-zero port
value to an "m=" line in an SDP answer, even if the "m=" line in the
associated SDP offer contained a zero port value.
---------------------------------------------------------------------------
Especially because the term is overloaded, you should expand the meaning
of "SDES" on first use; something like:
"This specification also defines a new Real-time Transport Protocol
(RTP) [RFC3550] Source Description (SDES) item..."
---------------------------------------------------------------------------
Terminology: Since we are using '"m=" line' in a way that isn't (to my
knowledge) defined in another document, this section should include a
definition for that term. Yes, it's in the introduction, but that's not
where
people look for definitions of terms.
---------------------------------------------------------------------------
Section 5 should cite RFC 4961 for the definition of "symmetric RTP."
---------------------------------------------------------------------------
Section 5 has this normative requirement:
A given address:port
combination MUST NOT be used for sending media associated with
multiple BUNDLE groups.
It's not clear what this gains us. Everywhere else, we only require a unique
5-tuple per bundle. That seems like the correct restriction to impose.
(If we change this, it also has impacts on section 8.3.3)
---------------------------------------------------------------------------
Section 5:
Each "m=" line, whose identification-tag is listed in the
identification-tag list, is associated with a given BUNDLE group.
Repunctuate as:
Each "m=" line whose identification-tag is listed in the
identification-tag list is associated with a given BUNDLE group.
(cf. <https://www.google.com/search?q=restrictive+clause>)
---------------------------------------------------------------------------
Section 6:
This whole section feels really out of place here; it's assuming that the
reader has knowledge about BUNDLE offer/answer handling that he won't
learn
until reading section 8. I would propose that you leave the attribute
definition in section 14.3, and move the semantics into section 8.
---------------------------------------------------------------------------
Section 6:
"In order to ensure that an answerer that does not supports the BUNDLE"
s/supports/support/
---------------------------------------------------------------------------
Section 6:
NOTE: Once an offerer BUNDLE address has been selected, the offerer
can ensure that an bundled "m=" line is accepted by the answerer only
if the answerer keeps the "m=" line within the associated BUNDLE
group by assigning the offerer BUNDLE address to the "m=" line. If
the answerer does not keep that "m=" line within the BUNDLE group,
the answerer will reject it. Therefore, the SDP 'bundle-only'
attribute is not needed in such cases
I can't make any sense of that paragraph, and it's only partially
because the
passive "has been selected" doesn't indicate who is performing the
selection.
In particular, it doesn't sound like the offerer is *ensuring* anything.
Maybe
we're trying to say he can detect something? But even with that
interpretation, it's not clear what circumstances it's trying to say don't
require the use of 'bundle-only.' Or is this trying to say that subsequent
offers (as defined in section 2) don't need to use 'bundle-only' because
you know whether the peer supports bundle? That makes some sense, but it's
really hard to get that meaning out of the text.
Let me take a stab at something.
NOTE: Subsequent offers do not need to include the 'bundle-only'
attribute,
since the offerer will already know whether its peer supports the BUNDLE
mechanism. With that knowledge, the offerer can assign a new 'm='
line to
an existing BUNDLE address. By doing so, they ensure that the answerer
either accepts the line into the BUNDLE, or completely rejects it.
If that's what we mean, I propose replacing the paragraph with it. If it's
not, then the paragraph needs to be rewritten. Also, if that's what we mean,
then it needs corresponding text in section 8.3.1 (although if you take the
suggestion to move the semantics from section 6 into section 8, it might
make more sense to just put it there only rather than describe it in two
places).
---------------------------------------------------------------------------
Section 8.1:
The offerer and answerer MUST follow the rules and restrictions
defined in Section 7 when creating offers and answers.
This adds nothing. I would propose removing it (or, if you don't want to
remove it, I would propose that consistency calls for having every section
normatively require that implementors follow the normative statements of
every
other section in the document).
---------------------------------------------------------------------------
Section 8.2.1:
o Add an SDP 'group:BUNDLE' attribute to the offer;
Replace with:
o Add an SDP 'group:BUNDLE' attribute to the offer at the session
level;
---------------------------------------------------------------------------
Section 8.3.1:
When an answerer generates an answer, which contains a BUNDLE group,
Replace with:
When an answerer generates an answer that contains a BUNDLE group,
(cf. <https://www.google.com/search?q=which+that>)
---------------------------------------------------------------------------
The procedure described in Section 8.3.2 has a rather unfortunate property
that I'm not sure we want. If I were to offer something like:
a=group:BUNDLE foo bar
m=video 20002 RTP/AVP 97
a=rtpmap:97 H261/90000
a=mid:foo
m=video 0 RTP/AVP 97 98
a=rtpmap:97 H261/90000
a=rtpmap:98 VP8/90000
a=bundle-only
a=mid:bar
And the remote endpoint wanted to reject the first stream, it would be
forced
to also reject the second. The historical intention of using
"bundle-only" was
as a mechanism for UDP port preservation on the offerer's side. This
procedure
unintentionally turns it into a semantic binding among streams in bundle.
I think we could restore the original purpose of the bundle-only handling
if we used the port from the rejected 'm=' line containing the BUNDLE-tag
for any 'bundle-only' lines.
--------------------------------------------------------------------------
Section 8.3.4 is structured very awkwardly. It calls out
two conditions that preclude moving an m= line out of a bundle (shared
address, bundle-only), and one that allows it. It would be much clearer
if it were stated in those terms rather than describing the rejection of
a media stream as if it were the same thing as accepting a media stream
with different addressing information.
--------------------------------------------------------------------------
Section 8.4.1:
When an offerer receives an answer, if the answer contains a BUNDLE
group, the offerer MUST check that any bundled "m=" line in the
answer was indicated as bundled in the associated offer.
This is backwards as compared to the logic described in the section.
The remainder of the text talks about checking whether that bundled
"m=" lines in the *offer* appear in the *answer* (and, if they don't,
moving them out of the bundle).
If the answer has a bundle that contains an m-line that wasn't bundled
in the offer, it's an error.
Also, 8.4.1 is the only subsection in 8.4, which is otherwise empty.
I suggest removing 8.4.1, and putting its contents directly in 8.4.
--------------------------------------------------------------------------
The optionality in section 8.5.2 seems unnecessarily complex, and it's
difficult to see what it gains us. Why don't we simply specify that each
pre-existing m= line MUST have a single shared address?
To be clear: if we keep this behavior, then I think we want the answer
to that
question in the document.
--------------------------------------------------------------------------
Section 8.5.4 should explicitly mention the case in which the line being
moved
out is the one identified by the BUNDLE-tag. I think all we need to say is
that the BUNDLE-tag for a bundle changes if the corresponding m= line is
removed from the bundle.
--------------------------------------------------------------------------
Section 9.1: "publically" is more conventionally spelled "publicly"
--------------------------------------------------------------------------
Section 10.2:
An offerer and answerer can in an offer and answer inform each other
which SSRC values they will use inside sent RTP/RTCP packets, by
associating one or more SDP 'ssrc' attributes [RFC5576] with each
bundled "m=" line which contains a payload type value that is also
used inside another bundled "m=" line.
That's really hard to follow. I propose reformulating along the lines of:
Peers to a session can inform each other which SSRC values they will use
for RTP and RTCP through the use of the SDP 'ssrc' attribute [RFC5576].
To allow for proper association with this mechanism, the 'ssrc'
attribute
needs to appear in each "m=" line that shares a payload type with any
other "m=" line in the same bundle.
Also, doesn't the final paragraph of this section kind of make the rest
of the section a waste of space?
--------------------------------------------------------------------------
Section 10.3.1:
When a BUNDLE group, which contains RTP based media, is created,...
Change to:
When a BUNDLE group that contains RTP based media is created,...
--------------------------------------------------------------------------
Section 10.3 (and its subsections) doesn't clearly explain where RTCP
will be
received in the various described scenarios. In particular, I believe we
need
to clarify that, while users might indicate a bunch of different rtcp ports
(using the 'rtcp' attribute) in bundled "m=" lines, if the answer accepts an
"m=" line into a bundle, then the rtcp port indicated in the section
associated
with the selected BUNDLE address will be used.
--------------------------------------------------------------------------
11.2.3:
When an answerer generates an answer, which contains a BUNDLE group,
Replace with:
When an answerer generates an answer that contains a BUNDLE group,
--------------------------------------------------------------------------
Section 12, general:
Figuring out what changed in these rather large swaths of text is difficult.
It would be very helpful if these were broken down like:
12.2 Changes to section 5.1 (2nd paragraph) of RFC 3264
The final sentence of the paragraph is modified to change the meaning
of port zero.
12.2.1 Original Text
...
12.2.2 New Text
...
12.3 Changes to section 8.2 (2nd paragraph) of RFC 3264
...
12.3.1 Original Text
...
12.3.2 New Text
...
etc.
--------------------------------------------------------------------------
Section 13.1:
The
endpoint informs the remote endpoint about the identification-tag
using the procedures in [RFC5888], and the remote endpoint then
inserts the identification-tag in RTCP- and RTP packets sent towards
the other endpoint.
It's really hard to follow which endpoint is doing what. Perhaps something
like this would be clearer:
A media recipient informs the media sender about the identification-tag
associated with an "m=" line through the use of an 'mid' attribute
[RFC5888]. The media sender then inserts the identification-tag in RTCP
and RTP packets sent to the media recipient.
--------------------------------------------------------------------------
Section 14:
There is no IANA section that registers the "BUNDLE" token for this
registry:
http://www.iana.org/assignments/sdp-parameters/sdp-parameters.xhtml#sdp-parameters-13
For sections 14.2 and 14.3, I believe it is traditional for WG items to list
the WG as contact for IANA registrations rather than individual document
authors.
--------------------------------------------------------------------------
I have not reviewed the examples or the appendix.
/a
- [MMUSIC] WGLC for draft-ietf-mmusic-sdp-bundle-ne… Flemming Andreasen
- Re: [MMUSIC] WGLC for draft-ietf-mmusic-sdp-bundl… Adam Roach
- Re: [MMUSIC] WGLC for draft-ietf-mmusic-sdp-bundl… Magnus Westerlund