Re: [MMUSIC] "splitting" a bundle

worley@ariadne.com (Dale R. Worley) Thu, 11 April 2013 23:08 UTC

Return-Path: <worley@shell01.TheWorld.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 1FD7121F899E for <mmusic@ietfa.amsl.com>; Thu, 11 Apr 2013 16:08:08 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.578
X-Spam-Level:
X-Spam-Status: No, score=-2.578 tagged_above=-999 required=5 tests=[AWL=0.402, BAYES_00=-2.599, RCVD_IN_DNSWL_LOW=-1, RCVD_IN_SORBS_WEB=0.619]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id jopg338hH4jb for <mmusic@ietfa.amsl.com>; Thu, 11 Apr 2013 16:08:07 -0700 (PDT)
Received: from TheWorld.com (pcls5.std.com [192.74.137.145]) by ietfa.amsl.com (Postfix) with ESMTP id A975421F89B0 for <mmusic@ietf.org>; Thu, 11 Apr 2013 16:08:02 -0700 (PDT)
Received: from shell.TheWorld.com (root@shell01.theworld.com [192.74.137.71]) by TheWorld.com (8.14.5/8.14.5) with ESMTP id r3BN7lSl004972; Thu, 11 Apr 2013 19:07:49 -0400
Received: from shell01.TheWorld.com (localhost.theworld.com [127.0.0.1]) by shell.TheWorld.com (8.13.6/8.12.8) with ESMTP id r3BN7kJM2399862; Thu, 11 Apr 2013 19:07:46 -0400 (EDT)
Received: (from worley@localhost) by shell01.TheWorld.com (8.13.6/8.13.6/Submit) id r3BN7kZK2397616; Thu, 11 Apr 2013 19:07:46 -0400 (EDT)
Date: Thu, 11 Apr 2013 19:07:46 -0400
Message-Id: <201304112307.r3BN7kZK2397616@shell01.TheWorld.com>
From: worley@ariadne.com
Sender: worley@ariadne.com
To: Paul Kyzivat <pkyzivat@alum.mit.edu>
In-reply-to: <516466C5.1070201@alum.mit.edu> (pkyzivat@alum.mit.edu)
References: <201304091539.r39FdjqJ2253833@shell01.TheWorld.com> <516466C5.1070201@alum.mit.edu>
Cc: mmusic@ietf.org
Subject: Re: [MMUSIC] "splitting" a bundle
X-BeenThere: mmusic@ietf.org
X-Mailman-Version: 2.1.12
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: Thu, 11 Apr 2013 23:08:08 -0000

> From: Paul Kyzivat <pkyzivat@alum.mit.edu>
> 
> This has come up in CLUE, and pertains to cases where not all media 
> processing equipment is at the same address. In such cases bundling may 
> be supported, but more than one bundle may be required.
> 
> When this happens on the offering end the offerer can propose multiple 
> bundles from the beginning. But when it is the answerer that needs 
> things in separate bundles then it will need to "split" (partition) the 
> offered bundle into multiple bundles. You can view this as a variant of 
> (1)+(3) below.

There's a lot of complexity in that case.

In a situation where the offerer can predict what partitions might be
desired, you could use hierarchical bundling.  E.g., in the solution
proposed in
http://www.ietf.org/mail-archive/web/mmusic/current/msg10516.html, the
audio m= lines were put into one bundle and the video m= lines were
put into another bundle, and then the two bundles were put into one
large bundle.  That allows the answerer to use one transport
association for all media, or two transport associations (one for each
media type) so that they can have different QoS.

In CLUE situations, this might not work well, because the real
grouping is based on physical origin of the traffic, and one end can't
guess the physical configuration of the other end.

Another approach would be to have the grouping that marks the bundle
to be independent of which application-level flows are grouped with
which.  So one a=group:BUNDLE attribute just marks a bunch of m= lines
as being available for bundling, and each end provides the
address/ports for each m= line, which imply which m= lines are bundled
together.

That leads to the possibility that the bundling could be *different*
at each end of the connection.  E.g., at UA1, m= lines 1 and 2 could
use one port and m= lines 3 and 4 could use another port, while at
UA2, m= lines 1 and 3 use the same port and m= lines 2 and 4 use the
same port.  That isn't as insane as it sounds, if UA1 controls two
cameras at different addresses, each of which generates an audio and a
video stream, whereas UA2 controls an audio system (at one address)
and a video display (at another address).  The multiplexing and
demultiplexing works OK, but getting UA1 and UA2 to coordinate
everything is messy.

Thinking about these possibilities, it seems like Paul's proposal is
the simplest:

> Conceptually this isn't complex. But given the o/a rules in the grouping 
> framework I don't think it ca be achieved in the answer to the offer 
> that proposes a single bundle. It could be accomplished by:
> 
> - process the first answer in accord with (1) below - accepting the
>    m-lines that can go into one bundle, and rejecting (port=0) the
>    others.
> 
> - send a 2nd offer, with one bundle including the previously accepted
>    m-lines, and a separate bundle for the previously rejected m-lines.
>    Since mutual support of bundle is now presumed, this 2nd offer can
>    use a single addr/port, and a single set of ice candidates, for
>    all the m-lines in each bundle.

Of course, that does require that the bundling proposed in a later
offer doesn't have to closely match the bundling proposed in an
earlier offer in the O/A sequence.  That depends on the rules we write
regarding dependencies between successive offers/answers in an O/A
sequence, which we haven't written.  But at this point, I think that
those rules will be extremely loose, not because that's the
conceptually clean solution but because it would be difficult to write
strict rules that could be implemented reliably.

Dale