Re: [MMUSIC] Review of draft-ietf-mmusic-sdp-bundle-negotiation-32 (Part I)

Eric Rescorla <ekr@rtfm.com> Mon, 03 October 2016 00:31 UTC

Return-Path: <ekr@rtfm.com>
X-Original-To: mmusic@ietfa.amsl.com
Delivered-To: mmusic@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id F2717127077 for <mmusic@ietfa.amsl.com>; Sun, 2 Oct 2016 17:31:02 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.599
X-Spam-Level:
X-Spam-Status: No, score=-2.599 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=rtfm-com.20150623.gappssmtp.com
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 13-beqMpv-dB for <mmusic@ietfa.amsl.com>; Sun, 2 Oct 2016 17:30:59 -0700 (PDT)
Received: from mail-yw0-x230.google.com (mail-yw0-x230.google.com [IPv6:2607:f8b0:4002:c05::230]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 9BB92127076 for <mmusic@ietf.org>; Sun, 2 Oct 2016 17:30:59 -0700 (PDT)
Received: by mail-yw0-x230.google.com with SMTP id i129so99507768ywb.0 for <mmusic@ietf.org>; Sun, 02 Oct 2016 17:30:59 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rtfm-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=sS0zDNAPSkUMcgqIop34pvNYxK/KLWHEmUsH1KcT+eY=; b=BCYO0jU+ba4wsDZnLUmLGJSRtqtLzdkJkx7by3D8qU+H4F1OLQecYMJIqBgosubL29 CGcb2zutKKxtMguIHNnoLvRhYHSuYcUYmI9i9ONvomL8Z2AiZf2zD9m1xk/cUxKiShZu 70nSXtIHw+0ONitTH1gs7LyPTDeghPQ0D+jg83rMh3p7YvxNXGZz6aHRX5V9YM6cvhuo rYXcde6jpHbNsE3lIpmaqA/9+3I5B8JLZ9Ic1/1fq/3+RkJKBLp0JjQgyDWRzLO3v6s6 sf0Wz/H0NttXWCT6iQ32lytW5oiuyIOGazCQV4fFGKHGSJvHgEAbAuIVpHVLQah1l7WR ZjFw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=sS0zDNAPSkUMcgqIop34pvNYxK/KLWHEmUsH1KcT+eY=; b=WWCGP2VwinH6NQ12zsPslU2zZf12+Qw28gH6mwjqBXajogFmuMWidjkd6SRFC6JUmn 4oGa5z9CtjpHgcQ9XHZxMl6AjhHPZlaCPu1LBihe9I1Q2EJYvqRBi71Z6EKfxYtg66yA 5hi5HnA9WnjGvB2TaUvSZMxr1HZk7fKP8Jw4v7ip9dwAatcHADPR6B9nUEJIQvnP1ZRO IinKcawjImA0Bcn8lC2JgHfmUZj141FH2Ga/nfRJmQMG3jeCQF43AKuBpIsX5jIE6xW4 adEDE+ju0wdpbkWPAT0hE8H9ah8ZE+UCATTSk3iXeIO4b3uQoxDnMqNYhESOhTYSHUHA M78Q==
X-Gm-Message-State: AA6/9Rm1CtMRzpHdhuft9B+OegSBe8oJVGx8roMvxoU+0zS0eUKusMCYazrj4aUXe/QYOu20VNhJkSzwQFiaFA==
X-Received: by 10.129.53.206 with SMTP id c197mr4574164ywa.205.1475454658801; Sun, 02 Oct 2016 17:30:58 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.129.160.10 with HTTP; Sun, 2 Oct 2016 17:30:18 -0700 (PDT)
In-Reply-To: <7594FB04B1934943A5C02806D1A2204B4BC722B7@ESESSMB209.ericsson.se>
References: <CABcZeBPpdyxiFbiHsqj=XwxFvOs4=z+R0zK0zoxbpixa25k3zQ@mail.gmail.com> <7594FB04B1934943A5C02806D1A2204B4BC722B7@ESESSMB209.ericsson.se>
From: Eric Rescorla <ekr@rtfm.com>
Date: Sun, 02 Oct 2016 17:30:18 -0700
Message-ID: <CABcZeBP_Rcd3_pmEcAoQVOeKV_mtStM+31Gz+6eqR4hDvHNemA@mail.gmail.com>
To: Christer Holmberg <christer.holmberg@ericsson.com>
Content-Type: multipart/alternative; boundary="001a11421a26d2498f053deb0e54"
Archived-At: <https://mailarchive.ietf.org/arch/msg/mmusic/FCsEnLY2_1OBOz6kkdEpzuSfSxo>
Cc: mmusic WG <mmusic@ietf.org>
Subject: Re: [MMUSIC] Review of draft-ietf-mmusic-sdp-bundle-negotiation-32 (Part I)
X-BeenThere: mmusic@ietf.org
X-Mailman-Version: 2.1.17
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: <https://mailarchive.ietf.org/arch/browse/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: Mon, 03 Oct 2016 00:31:03 -0000

On Mon, Aug 29, 2016 at 12:54 PM, Christer Holmberg <
christer.holmberg@ericsson.com> wrote:

> Hi Ekr,
>
>
>
> Thanks for the comments! Please see inline.
>
>
>
> OVERALL
>
>
>
> >The overall framing of this document as being about attaching multiple
>
> >m= sections to a single "shared address" is extremely problematic,
>
> >for two reasons:
>
> >
>
> >- With ICE there isn't actually any notion of a shared address except
>
> >  in some vague sense. I suppose you could argue that because with
>
> >  ICE you are required to specify a port on the m= line then you
>
> >  still have a concept of an address, but that's not true in
>
> >  trickle ICE, where the port is 9, so all m= lines share the same
>
> >  address/port. So, actually when you use trickle a whole bunch of
>
> >  the statements in this document are wrong.
>
> >
>
> >- A lot more is being overloaded here than addresses. In fact, a whole
>
> >  pile of semantics are being overloaded, so the way to think about
>
> >  this is actually as gluing a whole bunch of m= lines together at
>
> >  the transport level.
>
> >
>
> > I think the right concept here is not "shared address" but "bundle group"
>
> > and the document should be written in that way, namely that there are
>
> > a  bunch of m= lines in a bundle group and the one with the bundle tag
>
> > is the one that sets all the shared parameters.
>
>
>
> It is true that the actual port value in the m- line, and the IP address
> in the c- line address, represent the address that is actually being used.
>
>
>
> But, even with ICE there is a shared address, isn’t there? Yes, that
> shared address may change, but at any given time there will be one address
> that is shared among the media streams within the BUNDLE group. Or?
>

Not if you trickle, no. Then all the m= lines have the same address whether
they are bundled or not.


MAJOR TECHNICAL
>
>
>
> > Maybe I missed this, but I don't see any requirement that m= lines
>
> > appear in the a=group:BUNDLE line in the order they appear in the
>
> > SDP. That would make life a lot easier.
>
>
>
> There is no such requirement.
>
>
>
> AFAIR, it was discussed at some point, but it was agreed to not mandate m-
> lines to be listed in the order of preference (as far as selecting the
> BUNDLE address is concerned).
>
>
>
> Also, if you mid-session adds a new m- line, and wants that to represent
> the new BUNDLE address you have to place the new m- line after the existing
> m- lines, but you have to place it first in the a=group:BUNDLE attribute
> list.
>

OK. Well, that would be useful to state clearly upfront.


DETAILED COMMENTS (MIXED EDITORIAL/TECHNICAL)
>
>
>
> >S 1.
>
> >This really needs some explanation of why you would want this feature.
>
>
>
> You represent the community that wants the feature, so feel free to
> suggest some text explaining why you want it :)
>

"Each 5-tuple for which communications are set up consumes additional
resources (especially when ICE is in use). For this reason, it is
attractive to have as many different flows as possible multiplexed over the
same 5-tuple."


>S 5.
>
> >The first three grafs of this section seem to duplicate the intro
>
> >and the abstract.
>
> >
>
> >Also, this claim about sharing a 5-tuple is not quite right with ICE
>
> >because ICE can switch 5-tuples during aggressive nomination.
>
>
>
> Yes. But, at any given time there will only be one 5-tuple, won’t it?
>

Not really no, no, because it's asymmetrical.

Say that we have two candidate pairs A and B with B higher priority than A.
The controlling endpoint sends checks on A and B but the initial check for
A is dropped
whereas the one for B is not. This establishes a flow on B at which point
both controlling
and controlled endpoints are sending on B. Then the controlling endpoint
retransmits the
check for A. At the point when the controlled endpoint receives that check
it starts transmitting
on A, but the controlling endpoint is still sending on B. So, the
controlled endpoint has to
simultaneously transmit on A but send on B.


>
>
> >S 8.1.
>
> >This seems like a key concept: there are a number of different categories
>
> >of attributes and some are shared with all members of a bundle group
>
> >and some are not. To what extent is this draft just duplicative of those
>
> >listed in the mux-attributes draft?
>
>
>
> Not sure I understand the question.
>

My point is that the concept you need to know for *this draft* is:

- Some attributes are shared and some are not.

The detailed rules are defined in the mux attributes draft, right?




> >S 8.2 and following
>
> >Really would be useful to have some examples here to make it less
>
> >abstract.
>
>
>
> You don’t think the examples in section 17 are enough? You want examples
> in the normative sections describing how to create offers, answers etc?
>

Yes. Partial examples would be fine.


>S 8.5.
>
> >How does this interact with ICE Restart?
>
>
>
> From a pure ICE Restart perspective, I don’t see any conflict. ICE Restart
> is triggered by changing the user name and password, and the text does not
> forbid that.
>
>
>
> If you also want to change the BUNDLE address, you follow the rules in
> section 8.5.1.
>

My concern is this text "   These rules imply that setting the IP address
in the c line to

   0.0.0.0 will cause an ICE restart.  Consequently, ICE implementations
   MUST NOT utilize this mechanism for call hold, and instead MUST use

   a=inactive and a=sendonly as described in [RFC3264
<https://tools.ietf.org/html/rfc3264>]."




> >S 8.5.2
>
> >When you say "extend" do you mean "add to the end"?
>
>
>
> Yes. I can fix that.
>
>
>
>
>
> >S 10.1
>
> >In this first bullet is "if" "iff"?
>
>
>
> “iff”?
>

"if and only if"



> >S 10.3.1.1.
>
> >   When an offerer generates an initial offer, the offerer MUST
>
> >   associate either an SDP 'rtcp-mux' attribute [RFC5761] or an SDP
>
> >   'rtcp-mux-only' attribute [I-D.ietf-mmusic-mux-exclusive] with each
>
> >   bundled RTP-based "m=" line in the offer.  The offerer MUST associate
>
> >   an SDP 'rtcp-mux-only' attribute with each bundle-only "m=" line.  If
>
> >   the offerer associates a 'rtcp-mux-only' attribute with an "m=" line,
>
> >   the offerer may also associate a 'rtcp-mux' attribute with the same
>
> >   "m=" line, as described in [I-D.ietf-mmusic-mux-exclusive].
>
> >
>
> > This is a particularly egregious case of associate disease that could
>
> > be easily solved by using "add" when referring to the attributes
>
> > you put in the m= section.
>
>
>
> People have previously said that you don’t “add” attributes to m- lines:
> you add port values etc, but not attributes.
>
>
>
> This is an example of where I’ve had to re-write big parts of the
> documents a number of times already, because every time someone else reads
> the document he/she is not happy with the terminology. I just don’t want to
> do it again.
>

The terminology that JSEP uses is that "m= sections" include attribute
lines.

I think this is a lot clearer.



> >S 11.1
>
> >   When an offerer associates a unique address with a bundled "m=" line
>
> >   (excluding any bundle-only "m=" line), the offerer MUST associate SDP
>
> >   'candidate' attributes (and other applicable ICE-related media-level
>
> >   SDP attributes), containing unique ICE properties (candidates etc),
>
> >   with the "m=" line, according to the procedures in
>
> >   [I-D.ietf-mmusic-ice-sip-sdp].
>
> >
>
> > Here is an example of where the "address" framing doesn't work, if you
>
> > are using trickle.
>
>
>
> See top of e-mail.
>

Yeah, I continue to believe that this is wrong for the reasons above.

-Ekr


>
>
>
>
> Regards,
>
>
>
> Christer
>
>
>