Re: [clue] IETF#89: CLUE Data Channel - Next Step

Paul Kyzivat <pkyzivat@alum.mit.edu> Thu, 06 March 2014 19:44 UTC

Return-Path: <pkyzivat@alum.mit.edu>
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 806411A00F8 for <clue@ietfa.amsl.com>; Thu, 6 Mar 2014 11:44:24 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.235
X-Spam-Level:
X-Spam-Status: No, score=-1.235 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, SPF_SOFTFAIL=0.665] 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 hDKrTbbdGADY for <clue@ietfa.amsl.com>; Thu, 6 Mar 2014 11:44:23 -0800 (PST)
Received: from qmta05.westchester.pa.mail.comcast.net (qmta05.westchester.pa.mail.comcast.net [IPv6:2001:558:fe14:43:76:96:62:48]) by ietfa.amsl.com (Postfix) with ESMTP id 13E9E1A0088 for <clue@ietf.org>; Thu, 6 Mar 2014 11:44:22 -0800 (PST)
Received: from omta10.westchester.pa.mail.comcast.net ([76.96.62.28]) by qmta05.westchester.pa.mail.comcast.net with comcast id aDDx1n0010cZkys55KkK0z; Thu, 06 Mar 2014 19:44:19 +0000
Received: from dhcp-hotel-wifi-156-4a.meeting.ietf.org ([130.129.156.74]) by omta10.westchester.pa.mail.comcast.net with comcast id aKiB1n0051cbE5u3WKiD6T; Thu, 06 Mar 2014 19:42:17 +0000
Message-ID: <5318CF92.2080003@alum.mit.edu>
Date: Thu, 06 Mar 2014 19:42:10 +0000
From: Paul Kyzivat <pkyzivat@alum.mit.edu>
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:24.0) Gecko/20100101 Thunderbird/24.3.0
MIME-Version: 1.0
To: clue@ietf.org
References: <7594FB04B1934943A5C02806D1A2204B1D1CFD69@ESESSMB209.ericsson.se>
In-Reply-To: <7594FB04B1934943A5C02806D1A2204B1D1CFD69@ESESSMB209.ericsson.se>
Content-Type: text/plain; charset="windows-1252"; format="flowed"
Content-Transfer-Encoding: 8bit
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=comcast.net; s=q20121106; t=1394135059; bh=A7ISog9SgM0Zy0xKVpJfNWiZySVafxVZBTAXybGPXCQ=; h=Received:Received:Message-ID:Date:From:MIME-Version:To:Subject: Content-Type; b=mnszBqRakmlVW/tiZahSSLrFlfHfqBgA9rEQfVO0A0XgOp0+KV6hRPXMPFqfcv7I/ kmaM3Ft0JW7MKb7qzxGlxu2Ngyp/tCTQRFjOu1tHglpE0uSqc5tE//Q1decjbtivOd 0tWrgmuJNRx8Ah+J92r6Nm1THugzcWIyoCNlz0YQvgJA6bNjTsPvQRF/zM80vGWTwA HhdGJoxEpptRjZmEOfKcxaRV5c7AqRriRpqJqI4yzpACz/GDDSAblMBHhei8jBfF6w yexGedVxYDJ3uTghh1xtLwRK3vrI20Oo12hqBCMus9yeRhhrDnNLpXQxU8FeKWwSmF 9f1soVuFO3rBw==
Archived-At: http://mailarchive.ietf.org/arch/msg/clue/aLeGZkTpo1UO-BGiSgQ54QjlZ0E
Subject: Re: [clue] IETF#89: CLUE Data Channel - Next Step
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: Thu, 06 Mar 2014 19:44:24 -0000

Comment at end

On 3/5/14 8:38 PM, Christer Holmberg wrote:
> Hi data channel lovers,
>
> Today we agreed to adopt DECP for the CLUE Data Channel (CDC).
>
> (Note that we did NOT prevent usage of draft-eyzak, if the mechanism
> gets done in MMUSIC).
>
> (We also agreed that there needs to be A way to identity that a call can
> use CLUE, but that is NOT the topic of this e-mail - please start a
> separate thread if you want to discuss that).
>
> As time has been allocated for the CDC also on Friday, I intend to use
> that time to discuss the issue regarding who is responsible for sending
> DATA_CHANNEL_OPEN.
>
>
> First we need to decide if we want to specify who is responsible, or
> whether we’ll specify procedures when both endpoints send DCO.
>
> My suggestion is that we do specify that one of the endpoints is
> responsible.
>
> Second, if we agree to the suggestion above, we need to decide which
> endpoint is responsible for sending DCO. Alternatives are e.g. offerer,
> answerer, DTLS client and DTLS server. Note that this is separate from
> which endpoint establishes the SCTP association, and how the DTLS roles
> are determined - those procedures are defined in the sctp-sdp draft.
>
> Also, we do need to describe what happens if both endpoint still sends
> DCO. It would be considered an error case, and we could e.g. say that
> the endpoint responsible for sending DCO would have to reset the
> stream/channel created by the other endpoint.

Some (maybe all) of these algorithms for determining which end does the 
open may be difficult for applications to apply. In particular I'm 
thinking about an RTCWEB browser app. It *may* have access to info about 
whether it is the "even" or "odd" end, but maybe not.

It could figure that out by doing an experiment - opening a channel and 
then discovering its stream id. But that is silly.

I doubt it will have access to whether it is DTLS client or server. It 
*might* be able to determine if it is offerer or answerer (of the first 
O/A in which the SCTP m-line appears. But this also seems tricky to 
figure out. (It will likely have to scan every SDP sent or received, 
looking for the SCTP m-line.)

Another alternative I'll try again is for each end to send an open *if* 
it wants to be an advertiser. Then it will use that channel to send 
advertisements and receive configurations. In the normal case, each will 
then receive an open. It would use that channel to receive 
advertisements and send configure messages.

Or, we could just let each side send an open. If one side receives and 
open before sending one, then it won't send its own - both will use that 
one. If an endpoint receives an open after sending its own, it will ack 
that. At that point it has two CLUE channels. Both sides agree that if 
they have two clue channels, then they only use the one with the smaller 
stream ID, and send a reset on the one with the larger stream id. This 
does mean that any messages sent on the stream that is reset will be 
ignored. (That can happen if messages are sent immediately after the 
open, before the ack is received.)

Either of these symmetric ones are easy to implement in any environment.

	Thanks,
	Paul