Re: [MMUSIC] draft-ejzak-mmusic-msrp-usage-data-channel

"Makaraju, Maridi Raju (Raju)" <Raju.Makaraju@alcatel-lucent.com> Fri, 24 October 2014 20:03 UTC

Return-Path: <Raju.Makaraju@alcatel-lucent.com>
X-Original-To: mmusic@ietfa.amsl.com
Delivered-To: mmusic@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 6B05E1A1B21 for <mmusic@ietfa.amsl.com>; Fri, 24 Oct 2014 13:03:05 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.91
X-Spam-Level:
X-Spam-Status: No, score=-1.91 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, T_RP_MATCHES_RCVD=-0.01] autolearn=ham
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 MHVGmE28gvud for <mmusic@ietfa.amsl.com>; Fri, 24 Oct 2014 13:03:02 -0700 (PDT)
Received: from smtp-us.alcatel-lucent.com (us-hpatc-esg-02.alcatel-lucent.com [135.245.18.28]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 300061A0248 for <mmusic@ietf.org>; Fri, 24 Oct 2014 13:03:01 -0700 (PDT)
Received: from us70uusmtp4.zam.alcatel-lucent.com (unknown [135.5.2.66]) by Websense Email Security Gateway with ESMTPS id 562586D7D28F9; Fri, 24 Oct 2014 20:02:58 +0000 (GMT)
Received: from US70TWXCHHUB04.zam.alcatel-lucent.com (us70twxchhub04.zam.alcatel-lucent.com [135.5.2.36]) by us70uusmtp4.zam.alcatel-lucent.com (GMO) with ESMTP id s9OK302L005695 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=FAIL); Fri, 24 Oct 2014 16:03:00 -0400
Received: from US70UWXCHMBA02.zam.alcatel-lucent.com ([169.254.8.56]) by US70TWXCHHUB04.zam.alcatel-lucent.com ([135.5.2.36]) with mapi id 14.03.0195.001; Fri, 24 Oct 2014 16:03:00 -0400
From: "Makaraju, Maridi Raju (Raju)" <Raju.Makaraju@alcatel-lucent.com>
To: Paul Kyzivat <pkyzivat@alum.mit.edu>, "mmusic@ietf.org" <mmusic@ietf.org>
Thread-Topic: [MMUSIC] draft-ejzak-mmusic-msrp-usage-data-channel
Thread-Index: AQHP7t66dy5ZGL+nPEG/1c9gL4hdCZw+EJjQgABWxQCAAPUTgIAAWcEA//+91kCAAG4IAP//wSjw
Date: Fri, 24 Oct 2014 20:02:59 +0000
Message-ID: <E1FE4C082A89A246A11D7F32A95A17828E5F009C@US70UWXCHMBA02.zam.alcatel-lucent.com>
References: <949EF20990823C4C85C18D59AA11AD8B266CF1@FR712WXCHMBA11.zeu.alcatel-lucent.com> <54492D34.5030705@alum.mit.edu> <E1FE4C082A89A246A11D7F32A95A17828E5EE3CF@US70UWXCHMBA02.zam.alcatel-lucent.com> <544966CE.2080709@alum.mit.edu> <E1FE4C082A89A246A11D7F32A95A17828E5EF911@US70UWXCHMBA02.zam.alcatel-lucent.com> <544A7FAE.1070206@alum.mit.edu> <E1FE4C082A89A246A11D7F32A95A17828E5EFCA8@US70UWXCHMBA02.zam.alcatel-lucent.com> <544AA47A.9090303@alum.mit.edu>
In-Reply-To: <544AA47A.9090303@alum.mit.edu>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [135.5.27.16]
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Archived-At: http://mailarchive.ietf.org/arch/msg/mmusic/_V5SorWXF3Y8xko_852xE75M_nk
Subject: Re: [MMUSIC] draft-ejzak-mmusic-msrp-usage-data-channel
X-BeenThere: mmusic@ietf.org
X-Mailman-Version: 2.1.15
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: Fri, 24 Oct 2014 20:03:05 -0000

> >> So ISTM that here the following ought to be valid:
> >>
> >> 1) offer with dcmap for channel C, subprotocol C1, label C1
> >> 2) use channel C, subprotocol C1
> >> 3) send reset on channel C
> >> 4) offer with dcmap for channel C, subprotocol C2, label C2
> >> 5) use channel C, subprotocol C2
> >
> > <Raju2>
> > What if the "SCTP reset" from step3 above arrives at the peer after step4
> SDP offer?
> > If DP arrives first then the data channel will later be closed when SCTP
> reset arrives,
> > which is not expected behavior.
> > There is no guarantee that reset arrives first. This is unless the local
> client waits for
> > data channel close indication (SCTP reset ack) from data channel stack and
> sends new SDP offer.
> 
> The offerer won't send data based on the new offer until it has sent the
> reset, so there will be no ambiguity regarding data sent by the offerer.
> If the answerer wants to send data based on the new offer before it has
> received a reset, it can send a reset.

<Raju3>
I also don't see any ambiguity wrt sending new data on either side.
The issue is what happens if the SDP offer arrives before SCTP reset?
Per comment below you seem to indicate that a new SDP offer which reuses
closed stream MUST happen only after SCTP reset seq is acknowledged.

</Raju3>

> 
> Also, I'm a little fuzzy on how the SCTP reset works with channels. Is
> it necessary for each end to send a reset? If so, that makes it simpler.

<Raju3>
You are right on the SCTP resets.
https://tools.ietf.org/html/draft-ietf-rtcweb-data-channel-12#section-6.7 says both 
incoming and outgoing streams are reset.

</Raju3>

> 
> > The problem with depending on such "close indication" is:
> > - PeerConnection draft does not clearly say if and when it invokes
> onclose() callback on the
> >    side which invokes close().
> >    Not sure if onclose() is called after SCTP reset is acknowledged or
> before?!
> 
> Then they should fix it.

<Raju3>
I checked http://w3c.github.io/webrtc-pc/#data-transport-closed 
It seems to indicate that if close() is called by client then onclose() won't be called.

" An RTCDataChannel object's underlying data transport may be torn down in a non-abrupt manner by running the closing procedure. When that happens the user agent must, unless the procedure was initiated by the close() method, queue a task that sets the object's readyState attribute to closing. This will eventually render the data transport closed."

I can discuss with w3c to "trigger onclose() for close() case as well and only when 
both SCTP incoming/outgoing streams are reset".

</Raju3>

> 
> > - Not sure if non-browser clients will have a way (API) to know when
> >    SCTP reset is acknowledged. This depends on data channel stack
> implementation.
> 
> Again, this may depend on whether reset must be sent independently in
> each direction. I suspect it must, since reset is an SCTP function and
> SCTP doesn't associate pairs of streams.

<Raju3>
non-browser data channel stack implementations must also inform the application
only when SCTP streams are reset in both the directions. If such notification
is available then a new SDP offer can be initiated to reuse a closed stream.

We can update the drafts to indicate a stream can only be reused after SCTP resets
are done in both the directions. If a data channel stack implementation (including browsers)
does not have such an API to inform the client then it can't reuse the streams
without an additional SDP offer/answer to close it first.

</Raju3>

Thanks
Raju