Re: [clue] Using BUNDLE with CLUE
Christian Groves <Christian.Groves@nteczone.com> Wed, 02 April 2014 04:13 UTC
Return-Path: <Christian.Groves@nteczone.com>
X-Original-To: clue@ietfa.amsl.com
Delivered-To: clue@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 216561A00F3 for <clue@ietfa.amsl.com>; Tue, 1 Apr 2014 21:13:56 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.5
X-Spam-Level:
X-Spam-Status: No, score=0.5 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, J_CHICKENPOX_111=0.6, J_CHICKENPOX_14=0.6, J_CHICKENPOX_15=0.6, J_CHICKENPOX_54=0.6] 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 ramB2m87SjW1 for <clue@ietfa.amsl.com>; Tue, 1 Apr 2014 21:13:52 -0700 (PDT)
Received: from cserver5.myshophosting.com (cserver5.myshophosting.com [175.107.161.1]) by ietfa.amsl.com (Postfix) with ESMTP id 686641A0107 for <clue@ietf.org>; Tue, 1 Apr 2014 21:13:52 -0700 (PDT)
Received: from ppp118-209-153-126.lns20.mel6.internode.on.net ([118.209.153.126]:51405 helo=[127.0.0.1]) by cserver5.myshophosting.com with esmtpsa (TLSv1:DHE-RSA-AES128-SHA:128) (Exim 4.82) (envelope-from <Christian.Groves@nteczone.com>) id 1WVCYa-0005Af-2p for clue@ietf.org; Wed, 02 Apr 2014 15:13:44 +1100
Message-ID: <533B8E76.2090009@nteczone.com>
Date: Wed, 02 Apr 2014 15:13:42 +1100
From: Christian Groves <Christian.Groves@nteczone.com>
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Thunderbird/24.4.0
MIME-Version: 1.0
To: clue@ietf.org
References: <C6252EA94E00E44EADC3A2FEB59D4402020DF93F@xmb-aln-x07.cisco.com> <7594FB04B1934943A5C02806D1A2204B1D271311@ESESSMB209.ericsson.se>
In-Reply-To: <7594FB04B1934943A5C02806D1A2204B1D271311@ESESSMB209.ericsson.se>
Content-Type: text/plain; charset="windows-1252"; format="flowed"
Content-Transfer-Encoding: 8bit
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - cserver5.myshophosting.com
X-AntiAbuse: Original Domain - ietf.org
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - nteczone.com
X-Get-Message-Sender-Via: cserver5.myshophosting.com: authenticated_id: christian.groves@nteczone.com
X-Source:
X-Source-Args:
X-Source-Dir:
Archived-At: http://mailarchive.ietf.org/arch/msg/clue/gIFJZeVgAguTo9KJ5LcuDVtUYkA
Subject: Re: [clue] Using BUNDLE with CLUE
X-BeenThere: clue@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: CLUE - ControLling mUltiple streams for TElepresence <clue.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/clue>, <mailto:clue-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/clue/>
List-Post: <mailto:clue@ietf.org>
List-Help: <mailto:clue-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/clue>, <mailto:clue-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 02 Apr 2014 04:13:56 -0000
Hello Christer, With respect to Q2, I didn't think the media feature tag was instead of group:CLUE? What happens if we have two m=application SCTP/DTLS lines in an SDP? If we only use the media feature tag how do we indicate which m= would be specific to CLUE via SDP? Regards, Christian On 1/04/2014 9:27 PM, Christer Holmberg wrote: > > Hi, > > *Q1*: If the remote part has indicated support of BUNDLE in the first > answer, then I see no problem in adding the BUNDLE m- lines in the BAS > offer. But, of course you can also first send a BAS offer containing > the initial m- lines, and after that send a third offer with the > BUNDLE m- lines. I am not sure whether we would need to mandate one > way or another, but it would probably be good to describe both. > > *Q2*: Regarding your example, I hope we’ll use a media feature tag > instead of group:CLUE to indicate support of CLUE. At least nobody has > objected to it :) > > *Q3*: Regarding your text on Demultiplexing of RTP, the status has > changed. > > You CAN re-use the same PT value in multiple m- lines (due to the > limited number range), as long as the codec configuration associated > with the PT value is the same. The plan is that BUNDLE will specify > usage of an identifier, associated with an m- line, which is inserted > into the RTP packet by the sender, so that the receiver knows to which > m- line the RTP packet belongs. This will reflected in bundle-06, > which will be submitted in the near future. > > *Q4*: Regarding the directionality and number of BUNDLE groups, using > a BUNDLE group per direction was one option. Another could be to use a > BUNDLE group per media type. Etc. There could e.g. be QoS related > reasons why you want to use different BUNDLE groups (read: different > media 5-tuples). I guess the question is whether it would be useful > for CLUE entities to be able to indicate which “BUNDLE configurations” > they support. “Everything in one BUNDLE group” could be default. > > Regards, > > Christer > > *From:*clue [mailto:clue-bounces@ietf.org] *On Behalf Of *Robert > Hansen (rohanse2) > *Sent:* 1. huhtikuuta 2014 13:07 > *To:* clue@ietf.org > *Subject:* [clue] Using BUNDLE with CLUE > > Introduction: > > A fundamental aspect of CLUE is the sending of multiple streams of > media. We are using conventional SDP to specify the encodings we > support, and hence each media stream necessitates a separate m-line. > For most use-cases, however, using a separate port per m-line is > suboptimal: it means opening more ports, more NAT work, more resources > consumed for ICE, etc. As such, a method to allow multiple m-lines to > share the same 5-tuple address is highly desirable. > > Until now the signalling work has focused on the demultiplexed case. > As such, this is an attempt to evaluate the use of BUNDLE with CLUE - > those with a much better understanding of BUNDLE than I will be able > to correct the mistakes I'll inevitably make. > > We have generally figured that CLUE would not raise any particular > issues with BUNDLE, given that CLUE now uses separate m-lines for > encodings, but we need to go through and make sure, as well as > providing guidance in the CLUE documentation on how BUNDLE interacts > with it. > > Obviously I'm not going to duplicate the BUNDLE draft here, instead > I'll just make reference to the draft. > > Initial offer/answer: > > One of the principle concerns of BUNDLE is to ensure that a receiver > does not receive an SDP it considers invalid due to its lack of > support for bundling m-lines. The fact that we recommend that > CLUE-controlled m-lines are not included in the initial O/A means that > I think that we can combine the extra O/A that BUNDLE normally adds > over an unBUNDLEd call with one of the O/As required by CLUE... > > Adding CLUE-controlled m-lines during the Bundle Address > Synchronization (BAS) offer: > > Having completed the initial O/A and established BUNDLE support the > initial offerer needs to send a new offer to synchronise the BUNDLE > addresses and make any intermediary devices aware of the addresses in use. > > In CLUE, the subsequent offer is also when we would like to start > adding CLUE-controlled m-lines. However, section 6.4.3. of the BUNDLE > specification warns that it important that the BAS offer is accepted, > and while it makes clear that the offerer MAY change the SDP, it warns > to avoid changes that could cause the answerer to reject the new offer. > > CLUE definitely needs to provide guidance here. My belief is that > adding the CLUE-controlled m-lines at this stage should not increase > the chance of the offer as a whole being rejected, so long as they > share the same media types and attributes as the existing media lines. > This would also help resolve the glare issue at the start of a CLUE > call: since a BAS is mandatory in BUNDLE this provides an obvious 'who > should reINVITE first' case for CLUE, where the initial offerer has to > send an new offer even if they don't have any CLUE encodings to add. > > If we did feel that adding new m-lines in the BAS offer was too high a > risk then BUNDLE and CLUE become sequential: BAS should be done first, > and then CLUE-controlled m-lines should be added in a subsequent > INVITE. In this case BUNDLE would include one extra O/A compared to > the unBUNDLEd case. > > I've included an example below, modifying the example from the BUNDLE > draft to show the initial offerer using the BAS offer to also add > CLUE-controlled media. > > Initial offer example - the offer includes an audio and video line > with unique ports, both in the same BUNDLE group (indicating that the > offerer supports BUNDLE and wants to multiplex these media flows). > There is also a data channel that will be used for CLUE, which is > included in the CLUE group. > > a=group:BUNDLE foo bar > > a=group:CLUE zen > > m=audio 10000 RTP/AVP 0 8 106 > > ... > > a=mid:foo > > m=video 10002 RTP/AVP 96 97 > > ... > > a=mid:bar > > m=application 10004 SCTP/DTLS 10004 > > ... > > a=mid:zen > > Initial answer example - the answer picks a local BUNDLE address and > (via ordering in the group attribute) selects an address for the offerer. > > a=group:BUNDLE foo bar > > a=group:CLUE zen > > m=audio 20000 RTP/AVP 106 > > ... > > a=mid:foo > > m=video 20000 RTP/AVP 96 > > ... > > a=mid:bar > > m=application 20002 SCTP/DTLS 20002 > > ... > > a=mid:zen > > Subsequent offer example - the offerer synchronises addresses and adds > CLUE-controlled media lines using the same address; these are included > in both the BUNDLE and CLUE groups. > > a=group:BUNDLE foo bar enc1 enc2 enc3 > > a=group:CLUE zen enc1 enc2 enc3 > > m=audio 10000 RTP/AVP 0 8 106 > > ... > > a=mid:foo > > m=video 10000 RTP/AVP 96 97 > > ... > > a=mid:bar > > m=application 10004 SCTP/DTLS 10004 > > ... > > a=mid:zen > > m=video 10000 RTP/AVP 96 97 > > ... > > a=mid:enc1 > > a=label:1 > > m=video 10000 RTP/AVP 96 97 > > ... > > a=mid:enc2 > > a=label:2 > > m=video 10000 RTP/AVP 96 97 > > ... > > a=mid:enc3 > > a=label:3 > > Answerer rejects BUNDLE: > > If the answer does not support BUNDLE then the offerer continues as in > the disaggregated case, though it may decide to offer fewer streams, > or even not do CLUE at all (in the latter case it should reINVITE and > remove the CLUE group and data channel). > > Effects of multiplexing on CLUE-relevant SDP attributes: > > The BUNDLE draft specifies how certain SDP attributes are affected by > multiplexing the m-lines, and draft-ietf-mmusic-sdp-mux-attributes > describes how multiplexing affects many other SDP attributes. I can't > see any CLUE-specific issues here: the 'label' attribute is unaffected > by multiplexing, nor is the directionality of the m-lines, and the > 'mid' attribute needed by CLUE is also needed by BUNDLE. > > Directionality of CLUE-controlled media: > > CLUE-controlled m-lines are currently unidirectional. I don't believe > this raises any specific BUNDLE issues. Christer suggests that > potentially the encodings on each side could be in separate BUNDLE > groups - I suggest we use the same group for both sides, which would > also make it easier to move to bidirectional streams if we ever wanted > to do that. > > BUNDLE support in CLUE: > > While in most cases multiplexing m-lines onto a single 5-tuple will be > preferable we do have use cases involving disaggregated media. Because > of this, and because my understanding of BUNDLE is that it does not > support the aggregated to disaggregated use case (where one device > send/receives media associated with multiple m-lines on a single > IP/port, while the other sends/receives the media associated with > multiple m-lines on multiple IP/ports) I don't see a reason to mandate > BUNDLE support for CLUE devices that only operate in disaggregated > mode. As such, while CLUE should document how to use BUNDLE to > multiplex media streams, it shouldn't be mandatory for CLUE devices to > support it. > > Demultiplexing of RTP: > > Media flows from the same BUNDLE group all belong to the same RTP > session; hence a receiver needs a method is needed to separate the > various capture encodings. The method currently defined in BUNDLE is > very straightforward: all of the dynamic payload types in each m-line > in a BUNDLE group must be unique; as such, any received RTP packet can > be mapped to a specific m-line and codec. > > This method, however, does suffer from the fact that the dynamic > payload type range is limited. In the case of many m-lines, of audio > (with potentially many codecs) and video bundled together, and/or the > increasing use of scalable video codecs with multiple layers and the > use of FEC repair flows, this space may be insufficient. > > There are other methods that could be used for this demultiplexing. > For implementation with static sources or RTP mixers, streams will > have a consistent SSRC, and hence the a=ssrc attribute can be supplied > by the sender to allow the receiver to differentiate flows via their > SSRC. For implementations where the streams being sent do not have a > static SSRC, such as source projection mixers, a specific > stream-correlator can be used, such as an AppID token specified by the > sender in SDP and in an RTP header extension. > > How stream demultiplexing is performed with BUNDLE is not a problem > specific to CLUE, and is not a problem that should be solved in a > CLUE-specific fashion. However, it is one that we need to ensure is > solved in a way consistent with our use-cases, and the number of > encodings we envisage allowing. Given that the simultaneous sending of > many capture encodings is a primary motivator behind CLUE I believe > that demultiplexing via payload will not be sufficient, and that we > would need additional methods of differentiation. > > If not all payload types must be unique then the question of under > what circumstances codecs on two m-lines can share the same payload > type becomes relevant. > > Summary: > > I believe BUNDLE is a good solution for how we can multiplex media > streams when doing CLUE, and I can't see any CLUE-specific issues that > would need to be addressed in BUNDLE. I think the main decision CLUE > would need to make is whether do first do BUNDLE negotiation > (including address synchronisation) and then begin adding CLUE > m-lines, or whether the CLUE media negotiation process can begin with > the BAS, essentially eliminating the extra O/A 'cost' of BUNDLE. > > > > _______________________________________________ > clue mailing list > clue@ietf.org > https://www.ietf.org/mailman/listinfo/clue
- Re: [clue] Using BUNDLE with CLUE Christian Groves
- [clue] Using BUNDLE with CLUE Robert Hansen (rohanse2)
- Re: [clue] Using BUNDLE with CLUE Christer Holmberg
- Re: [clue] Using BUNDLE with CLUE Christer Holmberg
- Re: [clue] Using BUNDLE with CLUE Christian Groves
- Re: [clue] Using BUNDLE with CLUE Christer Holmberg