Re: [rtcweb] DataChannels API and external negotiation

Randell Jesup <randell-ietf@jesup.org> Wed, 03 April 2013 16:21 UTC

Return-Path: <randell-ietf@jesup.org>
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 D75C121F8EB4 for <rtcweb@ietfa.amsl.com>; Wed, 3 Apr 2013 09:21:02 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.949
X-Spam-Level:
X-Spam-Status: No, score=-1.949 tagged_above=-999 required=5 tests=[AWL=0.650, BAYES_00=-2.599]
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 dqQxNc349xyY for <rtcweb@ietfa.amsl.com>; Wed, 3 Apr 2013 09:21:01 -0700 (PDT)
Received: from r2-chicago.webserversystems.com (r2-chicago.webserversystems.com [173.236.101.58]) by ietfa.amsl.com (Postfix) with ESMTP id 9D0C321F8DDD for <rtcweb@ietf.org>; Wed, 3 Apr 2013 09:21:01 -0700 (PDT)
Received: from pool-98-111-140-34.phlapa.fios.verizon.net ([98.111.140.34]:1042 helo=[192.168.1.12]) by r2-chicago.webserversystems.com with esmtpsa (TLSv1:DHE-RSA-AES256-SHA:256) (Exim 4.80) (envelope-from <randell-ietf@jesup.org>) id 1UNQQm-000E8T-ST for rtcweb@ietf.org; Wed, 03 Apr 2013 11:21:01 -0500
Message-ID: <515C5688.4070004@jesup.org>
Date: Wed, 03 Apr 2013 12:19:20 -0400
From: Randell Jesup <randell-ietf@jesup.org>
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:17.0) Gecko/20130307 Thunderbird/17.0.4
MIME-Version: 1.0
To: rtcweb@ietf.org
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>
In-Reply-To: <CAJrXDUGm-LuddkaUgMUp-p8-Bj-B-zBcqomHcDy+jm6WJtT9wQ@mail.gmail.com>
Content-Type: text/plain; charset="ISO-8859-1"; format="flowed"
Content-Transfer-Encoding: 7bit
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname - r2-chicago.webserversystems.com
X-AntiAbuse: Original Domain - ietf.org
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - jesup.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 16:21:03 -0000

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.

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