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

Christer Holmberg <christer.holmberg@ericsson.com> Mon, 03 October 2016 11:01 UTC

Return-Path: <christer.holmberg@ericsson.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 455D512B078 for <mmusic@ietfa.amsl.com>; Mon, 3 Oct 2016 04:01:33 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.22
X-Spam-Level:
X-Spam-Status: No, score=-4.22 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_PASS=-0.001] autolearn=ham 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 nbOpXA93m6R9 for <mmusic@ietfa.amsl.com>; Mon, 3 Oct 2016 04:01:26 -0700 (PDT)
Received: from sesbmg23.ericsson.net (sesbmg23.ericsson.net [193.180.251.37]) (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 5932112B04E for <mmusic@ietf.org>; Mon, 3 Oct 2016 04:01:24 -0700 (PDT)
X-AuditID: c1b4fb25-14bff7000000793b-9a-57f23a82290a
Received: from ESESSHC013.ericsson.se (Unknown_Domain [153.88.183.57]) by (Symantec Mail Security) with SMTP id E4.47.31035.28A32F75; Mon, 3 Oct 2016 13:01:23 +0200 (CEST)
Received: from ESESSMB209.ericsson.se ([169.254.9.32]) by ESESSHC013.ericsson.se ([153.88.183.57]) with mapi id 14.03.0319.002; Mon, 3 Oct 2016 13:01:22 +0200
From: Christer Holmberg <christer.holmberg@ericsson.com>
To: Eric Rescorla <ekr@rtfm.com>
Thread-Topic: [MMUSIC] Review of draft-ietf-mmusic-sdp-bundle-negotiation-32 (Part I)
Thread-Index: AQHSAjFbVSmCBcGmbka3UICv6Cl9oaCV9LgAgADkVIA=
Date: Mon, 03 Oct 2016 11:01:21 +0000
Message-ID: <D41804D7.10437%christer.holmberg@ericsson.com>
References: <CABcZeBPpdyxiFbiHsqj=XwxFvOs4=z+R0zK0zoxbpixa25k3zQ@mail.gmail.com> <7594FB04B1934943A5C02806D1A2204B4BC722B7@ESESSMB209.ericsson.se> <CABcZeBP_Rcd3_pmEcAoQVOeKV_mtStM+31Gz+6eqR4hDvHNemA@mail.gmail.com>
In-Reply-To: <CABcZeBP_Rcd3_pmEcAoQVOeKV_mtStM+31Gz+6eqR4hDvHNemA@mail.gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
user-agent: Microsoft-MacOutlook/14.6.5.160527
x-originating-ip: [153.88.183.17]
Content-Type: multipart/alternative; boundary="_000_D41804D710437christerholmbergericssoncom_"
MIME-Version: 1.0
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrFIsWRmVeSWpSXmKPExsUyM2K7pW6z1adwgyMnOSxWvD7HbjF1+WMW ByaPJUt+MnlMftzGHMAUxWWTkpqTWZZapG+XwJWx7ad/wa1bTBX7dk1jamBcspqpi5GTQ0LA ROLtkc3MXYxcHEIC6xklLv3vgXIWMUpc+7yMrYuRg4NNwEKi+582SIOIgILErz8nWEBsZgF5 iQtL1oANEhYIk5i44SQTRE24xOGn/6FsK4n/s86BjWERUJFYctYDJMwrYC1xteU6O8Sq20Cr unrZQRKcAoESz88vZASxGQXEJL6fgpjPLCAucevJfKijBSSW7DnPDGGLSrx8/I8VxBYV0JP4 /nU2M8guCQFFieX9ciAms0CCxKojJhBrBSVOznzCMoFRdBaSobMQqmYhqYIoMZB4f24+M4St LbFs4WsoW19i45ezjBC2tcSnVSvZkNUsYORYxShanFqclJtuZKyXWpSZXFycn6eXl1qyiREY gwe3/FbdwXj5jeMhRgEORiUe3gdCH8OFWBPLiitzDzFKcDArifButPgULsSbklhZlVqUH19U mpNafIhRmoNFSZzXbOX9cCGB9MSS1OzU1ILUIpgsEwenVAPjlPh+y7zFh/7vDb6bOecF11zp w7NzcyZuiWh+vjA4aMuc2sVz5jOaXvj3dAlvQ7hx240typEr70ocbGCIsuRROyR9f0n49dg9 ezSzrxju+HZt5s/fq/mFjAPET846eeRsNkee0MmdH40SxY/cs5q+ZdKcqy3Nr3LfrSrZeG6u X136zJkzLX9OEFNiKc5INNRiLipOBAB8uJKSvQIAAA==
Archived-At: <https://mailarchive.ietf.org/arch/msg/mmusic/MmxXoTm5EvW1WrGfp3vuG5YQgvM>
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 11:01:33 -0000

Hi,

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.


Ok, I hear you. You are basically saying that it doesn’t matter whether bundled m- lines share addresses or not – the ONLY thing that matters is that the m- line associated with the bundle tag contains the address to be used.

The reason we mandated shared addresses, once the usage of BUNDLE had been negotiated, was because of intermediaries that don’t support BUNDLE (to make sure they send media towards the correct address). But, maybe we don’t need to worry about anymore – BUNDLE probably won’t work reliably with such intermediaries anyway…

Also, there is at least once case where the address matters: when you add a new m- line to a bundle group. If you use a unique address, and the answerer does not accept the m- line in the BUNDLE group, it can be used un-bundled. If you use a shared address, the answerer will have to reject the m- line.


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.

I’ll think of some wording.


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

l’ll add that.


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

Sure, different 5-tuples may be used in each direction, as indicated in the two first paragraphs.

I guess we could remove “5-tuple” text in the 3rd paragraph, and only say that all media associated with a BUNDLE group is sent using the same transport layer protocol.


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


Yes. So, perhaps we should not use RFC2119 terminology in draft-bundle, but simple refer to draft-mux-attributes for the rules.



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

I’ll look into that.

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

Correct. So, if you use BUNDLE and want to trigger an ICE restart, you do as described above. BUNDLE does not define usage of 0.0.0.0 in the c line, so there should be no conflict.

Or, do I still misunderstand you issue?

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

 It’s “iff”.

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

 I don’t personally disagree, but there are people that have had other opinions.

 In general I think it would be really useful to have common terminology in BUNDLE and JSEP, but I don’t want to re-write the document once again, and then later be told to do it again…

Regards,

Christer