Re: [rtcweb] DataChannels API and external negotiation

Michael Tuexen <Michael.Tuexen@lurchi.franken.de> Wed, 03 April 2013 18:16 UTC

Return-Path: <Michael.Tuexen@lurchi.franken.de>
X-Original-To: rtcweb@ietfa.amsl.com
Delivered-To: rtcweb@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id DC85421F8D11 for <rtcweb@ietfa.amsl.com>; Wed, 3 Apr 2013 11:16:28 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.799
X-Spam-Level:
X-Spam-Status: No, score=-0.799 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, J_CHICKENPOX_74=0.6, J_CHICKENPOX_75=0.6, J_CHICKENPOX_84=0.6]
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 ukbDavOLa-CK for <rtcweb@ietfa.amsl.com>; Wed, 3 Apr 2013 11:16:28 -0700 (PDT)
Received: from mail-n.franken.de (drew.ipv6.franken.de [IPv6:2001:638:a02:a001:20e:cff:fe4a:feaa]) by ietfa.amsl.com (Postfix) with ESMTP id 0FC8621F8CF0 for <rtcweb@ietf.org>; Wed, 3 Apr 2013 11:16:27 -0700 (PDT)
Received: from [192.168.1.102] (p508FA1D6.dip.t-dialin.net [80.143.161.214]) (Authenticated sender: macmic) by mail-n.franken.de (Postfix) with ESMTP id 1CB161C0C0BF5; Wed, 3 Apr 2013 20:16:25 +0200 (CEST)
Mime-Version: 1.0 (Apple Message framework v1283)
Content-Type: text/plain; charset="us-ascii"
From: Michael Tuexen <Michael.Tuexen@lurchi.franken.de>
In-Reply-To: <515C5688.4070004@jesup.org>
Date: Wed, 03 Apr 2013 20:16:24 +0200
Content-Transfer-Encoding: quoted-printable
Message-Id: <3A34089E-2F7A-473D-A76E-0BF28A50035A@lurchi.franken.de>
References: <5158F0FC.3070104@jesup.org> <CABkgnnWBR5SqOF6Ygp7AaEyG19yoG88hpUs4_mWbv59dyCm1gA@mail.gmail.com> <5159E6F9.4070808@jesup.org> <CABkgnnWe-+80WxD8==CxDhAu5+MEa-Tqi7Pr1x8sgkUkE9Z09Q@mail.gmail.com> <CAJrXDUGm-LuddkaUgMUp-p8-Bj-B-zBcqomHcDy+jm6WJtT9wQ@mail.gmail.com> <515C5688.4070004@jesup.org>
To: Randell Jesup <randell-ietf@jesup.org>
X-Mailer: Apple Mail (2.1283)
Cc: rtcweb@ietf.org
Subject: Re: [rtcweb] DataChannels API and external negotiation
X-BeenThere: rtcweb@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: Real-Time Communication in WEB-browsers working group list <rtcweb.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rtcweb>, <mailto:rtcweb-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/rtcweb>
List-Post: <mailto:rtcweb@ietf.org>
List-Help: <mailto:rtcweb-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rtcweb>, <mailto:rtcweb-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 03 Apr 2013 18:16:29 -0000

On Apr 3, 2013, at 6:19 PM, Randell Jesup wrote:

> On 4/3/2013 12:05 PM, Peter Thatcher wrote:
>> I think moving protocol into the dictionary is a good idea.   In fact,
>> I'd like to see label move there as well, but that's probably asking
>> too much.
>> 
>> And now for a little of my own bikeshedding:
>> 
>> I don't understand way we have "stream" and "preset", since you can
>> only set "stream" if "preset" is true.  Why not just make the rule "if
>> stream is set, no in-band message is sent", and get rid of "preset"
>> altogether?  I really don't like the word "stream" sneaking in, since
>> it's so overloaded (MediaStream, RTP Stream, etc).  I'd prefer "sid"
>> or just "id".
> 
> The reason was that I wanted a way to have the system select a stream to use (that you can then communicate externally to the other side); this avoids any chance of a collision with existing streams. If this is seen as not useful, then we can collapse it to a single entry.   (I also toyed with using stream 65535 as a flag to tell the system to allocate one; that seemed too hacky.)
> 
> Since this option was almost solely for those who understand the underlying SCTP-ness of this, I used "stream", but I'm fine with "streamId" or "id" (or "index" might be better than "id", which sounds like a label of some sort).  I dislike "sid" for similar reasons to disliking "rtx".
> 
>> I like the idea that reliable+ordered is the default, and both
>> reliability and ordered can be set independently.  I also prefer
>> "ordered" over "outOfOrderAllowed", and along with that I like the
>> idea of a "reliable" flag that, if false, is the equivalent of either
>> maxRetransmitNum:0 or maxRetransmitTime:0.  Finally, I think
>> "maxRetransmitTime" should make its units clear, perhaps calling it
>> "maxRetransmitMillis", and "maxRetransmitNum" could be shortened to
>> simply "maxRetransmits".
> 
> Those seem reasonable (I'd use Millisec/MilliSec or perhaps MS instead of Millis -- how are millisecond time values in other HTML5 specs described?).  On "reliable:false" - is this just a shorthand for "ordered:false, maxRetransmits:0"?  If so, I'm probably ok with it - it's redundant, but makes it easy to use/read for a common case.

Does this mean that if I want
ordered:true
maxRetransmits:0
or
ordered:false
maxRetransmits:1
I have to set reliable:true? That doesn't make sense... Also reliability is independent from
ordering.

I would prefer to avoid redundancy there.

Best regards
Michael
> 
>> 
>> So the dictionary for my bikeshed would be:
>> 
>> dictionary DataChannelInit {
>>   DOMString protocol;
>>   unsigned short id;
>>   boolean ordered;
>>   boolean reliable;
>>   unsigned short maxRetransmits;
>>   unsigned short maxRetransmitMillis;
>> };
> 
> -- 
> Randell Jesup
> randell-ietf@jesup.org
> 
> _______________________________________________
> rtcweb mailing list
> rtcweb@ietf.org
> https://www.ietf.org/mailman/listinfo/rtcweb
>