[MMUSIC] DTLS-SDP: connection, dtls_connection, or dtls_ufrag?

Christer Holmberg <christer.holmberg@ericsson.com> Fri, 18 September 2015 06:48 UTC

Return-Path: <christer.holmberg@ericsson.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 948321A1B64 for <mmusic@ietfa.amsl.com>; Thu, 17 Sep 2015 23:48:25 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.2
X-Spam-Level:
X-Spam-Status: No, score=-4.2 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-2.3, SPF_PASS=-0.001] 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 WEpD_VDbb6rl for <mmusic@ietfa.amsl.com>; Thu, 17 Sep 2015 23:48:22 -0700 (PDT)
Received: from sessmg23.ericsson.net (sessmg23.ericsson.net [193.180.251.45]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 621D31A1B66 for <mmusic@ietf.org>; Thu, 17 Sep 2015 23:48:21 -0700 (PDT)
X-AuditID: c1b4fb2d-f79626d000004282-b0-55fbb3b3615e
Received: from ESESSHC004.ericsson.se (Unknown_Domain [153.88.253.124]) by sessmg23.ericsson.net (Symantec Mail Security) with SMTP id FA.1D.17026.3B3BBF55; Fri, 18 Sep 2015 08:48:19 +0200 (CEST)
Received: from ESESSMB209.ericsson.se ([169.254.9.81]) by ESESSHC004.ericsson.se ([153.88.183.30]) with mapi id 14.03.0248.002; Fri, 18 Sep 2015 08:48:18 +0200
From: Christer Holmberg <christer.holmberg@ericsson.com>
To: mmusic <mmusic@ietf.org>
Thread-Topic: DTLS-SDP: connection, dtls_connection, or dtls_ufrag?
Thread-Index: AdDx2gLCSWNnBQhESimZajIbwKOs+g==
Date: Fri, 18 Sep 2015 06:48:17 +0000
Message-ID: <7594FB04B1934943A5C02806D1A2204B37A85E29@ESESSMB209.ericsson.se>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [153.88.183.16]
Content-Type: multipart/alternative; boundary="_000_7594FB04B1934943A5C02806D1A2204B37A85E29ESESSMB209erics_"
MIME-Version: 1.0
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrKLMWRmVeSWpSXmKPExsUyM+Jvje7mzb9DDTZ2i1hMXf6YxYHRY8mS n0wBjFFcNimpOZllqUX6dglcGW82tbEXPImoOLpRpoGx2aeLkZNDQsBEYvn6OewQtpjEhXvr 2boYuTiEBI4ySpz+8YcVwlnMKLH17R7mLkYODjYBC4nuf9ogDSICMhJ7N20GCwsL2Elsa9GC CDtLbNu8kRHC1pNoPNHEDGKzCKhKTNpxASzOK+Ar8Wr7L7A4I9De76fWMIHYzALiEreezGeC uEdAYsme88wQtqjEy8f/WCFsRYmdZ9uZIerzJaad+8sCMVNQ4uTMJywTGIVmIRk1C0nZLCRl EHEdiQW7P7FB2NoSyxa+Zoaxzxx4zIQsvoCRfRWjaHFqcXFuupGxXmpRZnJxcX6eXl5qySZG YDwc3PJbdwfj6teOhxgFOBiVeHgVCn6HCrEmlhVX5h5ilOZgURLnbWF6ECokkJ5YkpqdmlqQ WhRfVJqTWnyIkYmDU6qBsS6vg9nRWHL12eZ3SnsfZ8gY/p9u87ZYzLCpSSnnavDztB2+W/cc mtT62jjVRHD7Q3vuEIawatl9zfb+1p2b/tb9TwpJfHb/uu+zt+ufzwk6VMwTb6EYt3zWaVW5 DZFnTWRu3BO7v2vjpf/f3e9E7QyLYEryWv78/4JPm26LirRqGG1aYnPqpxJLcUaioRZzUXEi AMr9RpxoAgAA
Archived-At: <http://mailarchive.ietf.org/arch/msg/mmusic/ZykRoqO1f4wiKmCepnNYFoL53gE>
Subject: [MMUSIC] DTLS-SDP: connection, dtls_connection, or dtls_ufrag?
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: <https://mailarchive.ietf.org/arch/browse/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, 18 Sep 2015 06:48:25 -0000

Hi,
Currently the draft-ietf-mmusic-dtls-sdp defines the usage of existing SDP "connection" attribute for DTLS. The attribute is used to explicitly indicate whether a new DTLS association shall be created or not.
One of the open questions is whether we should use existing "connection" attribute for this purpose, define a new attribute (working name: "dtls_connection") with similar semantics, or design a new usage which is more robust in cases of 3PCC.
Why would we use a different attribute?
In most cases (e.g. UDP/DTLS) existing "connection" attribute works well. However, if you layer other connection oriented protocols over DTLS (e.g. 'SCTP/DTLS' or 'UDP/DTLS/SCTP') "connection" attribute would apply to both the SCTP *and* DTLS layer. This might be an acceptable usage, but are there use cases when DTLS connection would need to be re-established, but SCTP connection still maintained?

There are also more exotic use cases, when DTLS is layered over connection oriented protocols (e.g. 'TCP/DTLS/SCTP'). In such cases "connection" attribute would apply to the SCTP *AND* the DTLS *AND* the TCP layer.
Having a dedicated attribute would allow separate control over the DTLS layer. E.g. in the case of 'UDP/DTLS/SCTP' it would be possible to re-establish the SCTP association without touching the DTLS association.

Another option is to define a "ufrag" which identifies an end point in DTLS association (working name: "dtls_ufrag"). Each endpoint in the offer/answer exchange would generate its own "dtls-ufrag". If either "dtls-ufrag" values changed, then new DTLS association would need to be established.

Why would we need something like this?

ICE and 3PCC and oferless INVITEs. When ICE end point responds to an offer-less INVITE, it will allocate new ufrag, collects the full set of ICE candidates, but would still like to keep the existing DTLS connection and local ICE candidates which it is currently using. It will send the response with the generated answer with all this information, but the value for old style "connection" SDP attribute is unclear. If value "connection:new" is specified, none of the existing ICE candidates can be used, complete new set would need to be allocated to prevent transport pair reuse for multiple DTLS associations, and new DTLS association would need to be created even if the same two end-points get reconnected. If value "connection:existing" is used, then existing DTLS association and candidates can be used, but the generated offer cannot be used as an initial offer to the new end point.

If "dtls_ufrag" value is used, then in response to offer-less invite the existing value of this attribute will be provided in the generated offer. The answering party, if it is an end point which is already communicating with the current end-point can respond with its current "dtls_ufrag" value and the existing DTLS association will be re-used. If answering party is a new end point which was not part of the existing DTLS association, it will reply with new value of "dtls_ufrag". Since one of the values changed, a new DTLS association will be established. There is no risk of transport re-use for several DTLS associations, since answering party will allocate a complete new set of ICE candidates.

What do you prefer, wasting resource in response to offer-less invite and allocating a complete new set of ICE candidates every time such INVITE is receive or dealing with a more complex attribute semantics?
Comments? Preferences?
Regards,
Christer