Re: [MMUSIC] SCTP-SDP: SDP connection attribute considerations

Paul Kyzivat <pkyzivat@alum.mit.edu> Tue, 02 December 2014 17:07 UTC

Return-Path: <pkyzivat@alum.mit.edu>
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 E35C61A1C06 for <mmusic@ietfa.amsl.com>; Tue, 2 Dec 2014 09:07:38 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.565
X-Spam-Level:
X-Spam-Status: No, score=0.565 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, J_CHICKENPOX_110=0.6, J_CHICKENPOX_111=0.6, J_CHICKENPOX_15=0.6, 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 sWN-9d_Sa6tE for <mmusic@ietfa.amsl.com>; Tue, 2 Dec 2014 09:07:31 -0800 (PST)
Received: from resqmta-ch2-08v.sys.comcast.net (resqmta-ch2-08v.sys.comcast.net [IPv6:2001:558:fe21:29:69:252:207:40]) (using TLSv1.2 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id AA9CC1A1BD4 for <mmusic@ietf.org>; Tue, 2 Dec 2014 09:07:31 -0800 (PST)
Received: from resomta-ch2-18v.sys.comcast.net ([69.252.207.114]) by resqmta-ch2-08v.sys.comcast.net with comcast id Nh6D1p0042Udklx01h7W8z; Tue, 02 Dec 2014 17:07:30 +0000
Received: from Paul-Kyzivats-MacBook-Pro.local ([50.138.229.151]) by resomta-ch2-18v.sys.comcast.net with comcast id Nh7W1p00B3Ge9ey01h7WnH; Tue, 02 Dec 2014 17:07:30 +0000
Message-ID: <547DF1D2.6060908@alum.mit.edu>
Date: Tue, 02 Dec 2014 12:07:30 -0500
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.6.0
MIME-Version: 1.0
To: Christer Holmberg <christer.holmberg@ericsson.com>, "mmusic@ietf.org" <mmusic@ietf.org>
References: <7594FB04B1934943A5C02806D1A2204B1D53C625@ESESSMB209.ericsson.se> <547CD27A.3090006@alum.mit.edu> <7594FB04B1934943A5C02806D1A2204B1D56BEEE@ESESSMB209.ericsson.se>
In-Reply-To: <7594FB04B1934943A5C02806D1A2204B1D56BEEE@ESESSMB209.ericsson.se>
Content-Type: text/plain; charset="ISO-8859-1"; format="flowed"
Content-Transfer-Encoding: 7bit
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=comcast.net; s=q20140121; t=1417540050; bh=Zk7xY25kyUqiJN+3MLbl0NjzJL+rIc1AAFlHJhfVDfY=; h=Received:Received:Message-ID:Date:From:MIME-Version:To:Subject: Content-Type; b=Wer2KvFvxvJqIVtdBPZirNWJeAfixVTDH3EQBM0coiTk0+tIXDKnEM1AjWwCRRutx omwzbgMoB5NGHK3N1yd1/GH7VtaPrzEtnp+W9m7mzj41EggMxfAyXk/ZRGvE2Vnh7z 40jsQSBLEFMVzybt/ygZiABRCqG0YafN8xmI/cs0nEh4NC6XxtrCuRaCnEJdBYPo9d tQ02t7yn+XQmzLhuly9gzrTljWQYKaIG9hK2u7+ltwReHpTzo8HUisV5ilJvSvQsh9 U8G6B53T+VWt4z/oBd6ERK7w+mw6FDwvRn1P6n7olYve7KE5ngMFHkIqIzDKGBsqxe AGiOUpa/WV/wg==
Archived-At: http://mailarchive.ietf.org/arch/msg/mmusic/n2izjnQ4z-S_XJiJ-wbCbWeSRrc
Subject: Re: [MMUSIC] SCTP-SDP: SDP connection attribute considerations
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: Tue, 02 Dec 2014 17:07:39 -0000

On 12/2/14 3:56 AM, Christer Holmberg wrote:

>>> For 'DTLS/SCTP', there are some decisions to make:
>>>
>>> -If the transport layer protocol is UDP, I assume a 'new' value will
>>> not automatically re-establish the DTLS connection - only the SCTP
>>> association will be re-established.
>>
>> Why?
>>
>> If some part of the 5-tuple changes then it will be *necessary* to establish a new DTLS connection.
>
> Correct - I should have clarified that I am talking about the case there the 5-tuple does not change.
>
>> Even if the 5-tuple doesn't change, aren't there going to be cases where you want to reestablish the DTLS?
>
> Maybe there are. But, this is related to the question whether you need to signal that in SDP.

If the fingerprint changes, then doesn't the DTLS need to be 
renegotiated? (Regardless of whether 'new' is specified.)

>>> -However, if the transport layer protocol is TCP, does that mean that
>>> a 'new' value will mean that BOTH the TCP connection, AND the SCTP
>>> association, will be re-established? IF the TCP connection is also
>>> re-established, then I guess the DTLS connection will be re-established.
>>
>> There are all consequences of using the same atttribute to control independent behavior at two different layers of the protocol stack.
>
> Yes.
>
>> The *right* fix would be to have one attribute for the DTLS behavior and another for the SCTP behavior.
>
> We could for sure define an SDP "sctp-setup" attribute, IF people see a need for it.

ISTM the issue is about there being multiple *layers* that are being 
negotiated, rather than specifically what protocol those layers are.

So the only time you need to specify this is when there is ambiguity 
about which layer it might be.

Perhaps we could define an extension to a=setup and a=connection. E.g.

          setup-attr           =  "a=setup:" role [ " " proto]
          role                 =  "active" / "passive" / "actpass"
                                  / "holdconn"

(where proto is as defined in SDP). When absent it would default to the 
entire proto field from the m-line. Other valid values would be prefixes 
of the proto in the m-line. So, for the case at hand, we could have
	m=application 12345 DTLS/SCTP webrtc-datachannel
	a=setup:active DTLS/SCTP
	a=setup:passive DTLS

That would be entirely equivalent to:

	m=application 12345 DTLS/SCTP webrtc-datachannel
	a=setup:active
	a=setup:passive DTLS

And in general we could have:

	m=foo 12345 A/B/C/D fmt1 fmt2 ...
	a=setup:<direction> A/B/C/D
	a=setup:<direction> A/B/C
	a=setup:<direction> A/B
	a=setup:<direction> A

And do the same thing for a=connection.

	Thanks,
	Paul