Re: [rtcweb] Working Group Last Call for draft-uberti-rtcweb-rfc8829bis-01.txt

Christer Holmberg <christer.holmberg@ericsson.com> Sun, 31 October 2021 11:46 UTC

Return-Path: <christer.holmberg@ericsson.com>
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 0A4F43A07F4 for <rtcweb@ietfa.amsl.com>; Sun, 31 Oct 2021 04:46:46 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.101
X-Spam-Level:
X-Spam-Status: No, score=-2.101 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001, RCVD_IN_MSPIKE_H2=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=ericsson.com
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 nzNINZkgKu-A for <rtcweb@ietfa.amsl.com>; Sun, 31 Oct 2021 04:46:40 -0700 (PDT)
Received: from EUR03-DB5-obe.outbound.protection.outlook.com (mail-eopbgr40047.outbound.protection.outlook.com [40.107.4.47]) (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 351413A07CC for <rtcweb@ietf.org>; Sun, 31 Oct 2021 04:46:40 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=CQTCZx1OwZXx6YwZ9+DVZOp6KBElRY5TQeh1/3L6uml1vF48j1AF31bZYC92jNfbH7APwjf7Wzc6Qt8DzVCef+QzFGj5KhSVyU7pyhYbXznYCdadXwtCiKO2lPZOzHtC6OfiBAm8fR+jkzd+ThZNbihy1o6Hoh4bQECQhz2gY8fcIQ+kviSygI3qC/iZNUNAevtQhnAzBds66iULpRccByZnj91oSuSmtqHdLVB4MWAp/TBMQ85mDQBS/n7fpQUitC3xr35ZmKkDKW2p8Las6tk5YMyboJqXTAWvp+alduHpTe/WK3Y1nUWsoxEwSZDrj0e66cONwzRKhkSTnGpysw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=VJYvEOlYEanplWJ3Tow5EfV6jpMw1eXUGFEEyEYT5ck=; b=J3Tc+TUTqg1pOEQmwkEedsyCLP8W1UMH1xIQasFmbAE5//Nmfc4BXVwRRIZo4NGjhYvZxR6K6zO0SuOnPCBMUQGMBfplIizMaQDDlSHx6NfG9B+kxuG4hAwPq3xvjTJY3uxlp1jxAF7fdT6D5IIawNvVpM4cjZ9Zq4d+IA4mUEJ/MZXISejIWXZ7ER5oJSPgSfMhBDWfW1BwGcKvs20nvV5skdhXpQthtQS3cEAPuno/mbpIszqWbH0L62eKXeY30xQmaRaUVelsYx6n3VRJ3S8JrCgL9pa9dkMCcR8uyug1rBabQwKoy7zHOg3fG2lV2yQJeLGCDx4kMm2WxbdzRg==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=ericsson.com; dmarc=pass action=none header.from=ericsson.com; dkim=pass header.d=ericsson.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ericsson.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=VJYvEOlYEanplWJ3Tow5EfV6jpMw1eXUGFEEyEYT5ck=; b=Zlp1qdvyi96FrqQECMdIXRriBs+2xwgGN6Jk+LbDPtPUnmE1JmmnMDG2Asxq09kg0uHF8GBFOa19lvP1fpcoRAfiXZ7pPSQIx1tR3mZF1jCyeMmyQjmh1Ul2B1LJCWIhf1VRctjjDk7cl6x3K3UzqirMw8Wk3OyLeS5Zg4cf5Uo=
Received: from HE1PR07MB4441.eurprd07.prod.outlook.com (2603:10a6:7:9f::27) by HE1PR07MB4380.eurprd07.prod.outlook.com (2603:10a6:7:9a::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.4; Sun, 31 Oct 2021 11:46:32 +0000
Received: from HE1PR07MB4441.eurprd07.prod.outlook.com ([fe80::44b6:1bcd:7be6:b173]) by HE1PR07MB4441.eurprd07.prod.outlook.com ([fe80::44b6:1bcd:7be6:b173%2]) with mapi id 15.20.4669.009; Sun, 31 Oct 2021 11:46:32 +0000
From: Christer Holmberg <christer.holmberg@ericsson.com>
To: Roman Shpount <roman@telurix.com>
CC: Justin Uberti <juberti@alphaexplorationco.com>, Justin Uberti <justin@uberti.name>, RTCWeb IETF <rtcweb@ietf.org>
Thread-Topic: [rtcweb] Working Group Last Call for draft-uberti-rtcweb-rfc8829bis-01.txt
Thread-Index: AQHXylf+AMpeemP+/Umn4mKjUNsZYKvlgWaAgAAD7wCAAFFxgIAEazaAgAAJNoCAAAJcgIAARq+AgAAFWYCAAD0AgIABPVtQgABvX4CAAHTpwA==
Date: Sun, 31 Oct 2021 11:46:31 +0000
Message-ID: <HE1PR07MB4441051506F5A2E16A2C902993899@HE1PR07MB4441.eurprd07.prod.outlook.com>
References: <CA+9kkMA_8jCGeb_QkhVz2JLRYGbq+MkGG9wJ2k0vo6noDDkkQA@mail.gmail.com> <CAD5OKxvK_CUnHc0kqNNVUkOHgtUqL=vjdUTLqL+RJpZBtWL+4A@mail.gmail.com> <CALe60zAC7VA6y5oLkC9HBRQUhJyY73Atbfmm1KVKw=hyPqD=2Q@mail.gmail.com> <CAD5OKxvi7t6ug9xsjqiB35hTWNJ0D04XK5w=njZ8hB_6UpRzEQ@mail.gmail.com> <CAOLzse14Qkn+EiO3xHfGi2QmBvH0M=fQD-SmA9TXsfmHjPKLfQ@mail.gmail.com> <CAD5OKxtrBFsZBGUKtB6MNwMrPnzE9NSyQWrjXGjzE8PkYmj8Bw@mail.gmail.com> <CAOLzse2L=Xu=Y944B9mwURQ6VP__KuEp-C_-xNw0MhNLv2LoCw@mail.gmail.com> <CAD5OKxtr==_dwW7-JbjP7abxNAityukfpHS5xK6vf-YuTADd+A@mail.gmail.com> <CAOLzse1-8cTg=GE2ndQ3tpVa25wzNqkOy6J6M30X=dN2Ejnvyg@mail.gmail.com> <CAD5OKxs5wCQuaaC1sL+Zi2iwMhnzexTh89HVOWc2jLTBGoyD9A@mail.gmail.com> <HE1PR07MB44413791A6AC8D20349BEBF793889@HE1PR07MB4441.eurprd07.prod.outlook.com> <CAD5OKxtyCUgJP2CjPkyNBuDp3_N-42J15AvB==36edujJsjh-g@mail.gmail.com>
In-Reply-To: <CAD5OKxtyCUgJP2CjPkyNBuDp3_N-42J15AvB==36edujJsjh-g@mail.gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=ericsson.com;
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 29ff3119-360e-4c29-7650-08d99c64157a
x-ms-traffictypediagnostic: HE1PR07MB4380:
x-microsoft-antispam-prvs: <HE1PR07MB4380FAA083D0FD9ABC5E51F293899@HE1PR07MB4380.eurprd07.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 6B++g/O/+mgzXJ8rRaOWoya9NiyG22TYnoC5+skDGrl4tjqFQ8j4ggUyzGlGMp09iL308x/8DWS7q/Pbmca4P4AqL+peAp/gkZyMghir2XL1Ysf731ilgf7PvKTEgO+XMElUPS1tC4K31kKauAROrKGT1RR95HJ1CvOzBUbR80BbkU4fnV/+v8EnkP8A0g2Gh37FQ+OLWp1rOJM63xkG6Ds+VjA2ltp3aSqVe72wEoKxHhZR2gnlT0GO8m3PNqSPACsEM4w2uNIdl5y9V9UpMjX/yrT7zLSuYOegTzrGDrv3TvBXlvY0B4pzSP15mQa875CCXo/E+PZW/YiG3taSkbvzWIqZ0sByYJY6jJCN5I1+DZxF/DN5OS5dEly5iSQxgfhZ9Gq6Pnw/IkopQf5/ZA3uz1TPzCxK9wQH+k4FzvoVT1fbVncn9hzHBg0awyJMCZPIuI0cYLcyBMSV7SV278AnTWyUGIz0hkZ394PiR8/bQ/xrXmvDk0iFuJ/ie2FWoeCN8u+oeX87qauOnww/YepRWXcknJIdpvnYWfNPXuCGuWZli9j4ct60MS6ygnpb8M2vPLr0N2qgpeBFd+kYIrswSJZzonSGTHGcHfBLF4ksJM3sosaduFNof8NUT3qc98bOaRkSKa2s3LILYlAdwfMZDWMQIDZaoYQN3aIPGPFobg/kxdMWF2l3jF20cAr0gpMmGZkNq29tV4m5hSkh75TDDJASE3VEn3Rf05yX4y6aHY+5BBCXkAXxOS4HdfWdIldsVWpLzd9fIl3T3DfwLGRagfQ+82/F2pOCtTW/jhg=
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:HE1PR07MB4441.eurprd07.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(38070700005)(38100700002)(71200400001)(52536014)(76116006)(186003)(44832011)(122000001)(8676002)(8936002)(30864003)(26005)(66446008)(33656002)(64756008)(66476007)(66946007)(66556008)(6506007)(5660300002)(54906003)(316002)(53546011)(166002)(82960400001)(83380400001)(508600001)(9686003)(55016002)(86362001)(6916009)(4326008)(7696005)(2906002); DIR:OUT; SFP:1101;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: JnCGHtFy31rU5FWfhHxo5xchyREh2EVGHiq2ZCcyazx7CPuIMZwXwcbwR4FwvNfLqhnN6mLAT+9ADPcZdEXeDXK0I+c6bTPPfPg3vDRTos++R522HPsJaxUPmvJ6Q+exLuN+rMGKWjCZ/EJZ3Jpj61Drm6Wl60pIsP9dA1BrXk2OL1/UWFHzaVlRPlj7msHxDhzeUqOMw9yd3bP+68HlyhlNJpa0hJfv9VUVAx4HhoHLfzb7iCONnhHGCl6qGiykj/4H9eVutAr20bhlSSTkUDYrHOAjesO6+WSBOuot5T0BZ5J3aUxc2BAjEaMqVSqdwTyeJEfhlTGhElm05CxUUmdIiCay8N71634C5ppic+00pUn3Q8wl5HLqSBdZ4R+693zrWihzoHcL8KB1aKVDNHkLDlO4Sk2bIbuXfDMlZAIUBSMnq5nPQf/8FnqyulbYD1BldSfcol/yVkP31Y6YwZGhKQq+rFQnmo8ZR7+a3EFeqgGZC/ryrv2lwFB6isuDOd0/3xLNuLDG882q4XYCdtov+pI4TnG/2qvvTl/8mt/rqcBpy4juxmku9idWr86DjME2AJVtsXrw486/jra33E4Xj7OtDd5/t8orye73YYxAWurgWc19M9jHapFlpcD0b8QduK0BfhaUzrWhMhvHD1pDntmoat8TR4BISdbA6KPdrX+SBOV7/fp8jpdOGxxRp7Arua63F/Zaainu16Bb5FPdOskJ059z+AzfQhy0lUxc7AXdV99RWwa0hZUuurFUjq+jm5LI0rFM5QyWm/ugFA1Ul80vT+sxE+vY5XOvUGUA8MxHoihf0f1/nXIMSjSHjADSH86FXqrk8umtLSBAY0gJkkCrv+riV2FbUBJwDr78U9sR30DencRkG/LyAhSSdaZT9TblaJz5YCf491t/aLW+6gsjwNnyPZM7I4IuJS2h7b0oCJ+pTUgv09sFg9Zt3ehXWCP70h26vVMAL+BFg2i7XGvKqcMCiR5y9jZ/qgpaCSeOmrwJkPQ26lKpG2Wfeu7XL0S4pr00bvKK5OQ+SBlRDKWCq554T3QquAKSK5QBCjJZXGCa2HTUMeFJCm4mTRaSL3JQJluKJhmwanXyBHrzvykEPz13M9LWduptR00zSYgoE+aHag3BIzSqO/+DlfImDtAQU8+Q8ZShomu759iA/wOTelLfmzcd8ib0bgWmz5lEld8h7aE3l3rNUJB7IwNr70D4ledoiu2dPD+/a0xZax5WKGfeDCTJ7l14cCXUdZ6n6uuxOt8ypCTGCcz9HSDbRFix1q1sYOtWJ9NyfvMNX8F5fXV+2eKtR+aAQPqlOByYe4Dpy3Bl82dZ5lzTKnoOjm6atQwsF68d15doAerotmv6gMy73dds7G7yt4i2x80JY9ya4p77eRn5mabLwOVoRWCkLLDDsU3AJQ4Ci+fYk50FnJFrVxLUcYUEN8jQyoPfmCmYJi7lAkRpFMgUPEHVsA3Yi0wqFsUxRywBTX+826zxNDvhonwbiJrOlW2SQ69r5ljnNmDq8nV3KcSUl2X0N7OmiOHgms7ZnEXpGxEd1mLyJyZq369hUnHh8h8P2Q0R4Av3/9KM17Qd7cF+XVRpc8f9SsBCup3uJjOT38/wUaNz7E3iVDdLUsN7CnZHuH9H0f6UPnXXbXBpyru+SO7gUcM4XsausYqdMQFU/Q==
Content-Type: multipart/alternative; boundary="_000_HE1PR07MB4441051506F5A2E16A2C902993899HE1PR07MB4441eurp_"
MIME-Version: 1.0
X-OriginatorOrg: ericsson.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: HE1PR07MB4441.eurprd07.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 29ff3119-360e-4c29-7650-08d99c64157a
X-MS-Exchange-CrossTenant-originalarrivaltime: 31 Oct 2021 11:46:31.9066 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 92e84ceb-fbfd-47ab-be52-080c6b87953f
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 7I2nFtCbLIeCf+x0hoLMuwkHbgcGM0/B17JXh2SsqAAM1q109jsg4y8/6bKRfJoqnCXokCKmN3N0rR6abbXleE0NHyY8W2j5e+LDoyoIFfU=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR07MB4380
Archived-At: <https://mailarchive.ietf.org/arch/msg/rtcweb/FXQaLPeYXuEC4pEj-iZdGuFb1fI>
Subject: Re: [rtcweb] Working Group Last Call for draft-uberti-rtcweb-rfc8829bis-01.txt
X-BeenThere: rtcweb@ietf.org
X-Mailman-Version: 2.1.29
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: <https://mailarchive.ietf.org/arch/browse/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: Sun, 31 Oct 2021 11:46:46 -0000

Hi Roman,

Thank you for the clarifications!

I think the “generating a subsequent offer as an initial offer” wording could be confusing to people. I would say something like “generating a new initial offer within a session”, or something… However, as far as the issues itself is concerned, that is not relevant – as long as we know what we are talking about :)

>1. Make subsequent offers valid initial offers. This means adding some language explaining how the endpoint processing initial offer can detect that m= lines cannot be unbundled. Even if we add this language it will have backwards compatibility issues with anything that has not implemented it.

I don’t agree with that suggestion. Because, in that case we could have done it from the beginning, as a general rule, without using port zero. But there were reason we chose not to allow shared addresses (with non-zero port values) in initial offers.

>2. Make endpoints generate subsequent offers that are valid initial offers in 3PCC scenarios. This is what draft 8843 bis does.

Correct.

However, keep in mind that it is not only about how to encode the port numbers and bundle-only attributes. Sending an initial offer also comes with a set of procedures. Some of those (e.g., ICE)  I assume you will have to do anyway, as the remote endpoint changes.

>I would even be fine with webrtc endpoint not doing anything and adding a note to JSEP telling the 3PCC application to "fix" the offer and add m= port zero and bundle-only attributes when it is sending subsequent offers as initial offers to a new end point.

I would be fine adding such text to JSEP. It could be an additional sentence to the existing text.

(However, I still would not say “sending subsequent offers as initial offers”. I would say “create and send an initial offer based on a received subsequent offer”, or something like that.)

Regards,

Christer







From: Roman Shpount <roman@telurix.com>
Sent: sunnuntai 31. lokakuuta 2021 6.02
To: Christer Holmberg <christer.holmberg@ericsson.com>
Cc: Justin Uberti <juberti@alphaexplorationco.com>; Justin Uberti <justin@uberti.name>; RTCWeb IETF <rtcweb@ietf.org>
Subject: Re: [rtcweb] Working Group Last Call for draft-uberti-rtcweb-rfc8829bis-01.txt

Hi Christer,

I can try to explain the issue. If you need I can provide a more detailed call flow with SDP examples but here is the basic scenario for nonw:

1. 3PCC application requests an offer from client A.
2. Client A generates an offer with audio, video, and data m= lines which are part of a single bundle group. It does not matter for this case if they are bundle-only or can be unbundled
3. Signaling application sends the offer received from client A to client B.
4. Client B supports bundle so it generates an answer where all m= lines are bundled
5. 3PCC sends the answer to Client A. At this point all m= lines are bundled and cannot be unbundled.
6. 3PCC application requests another offer from client A within the same session. This offer is a subsequent offer so it would have all 3 m= lines bundled.
7. 3PCC sends the generated offer to client C.
8. Client C is generating an answer to the offer it received. Client C is bundle aware but decides that it wants to unbundle data m= line. As far as Client C is concerned, there are no pre-negotiated bundle groups. If there are no bundle-only attributes on m= lines, there is nothing stopping client C from unbundling.

Per draft 8843 bis, SIP consideration section (https://www.ietf.org/archive/id/draft-ietf-mmusic-rfc8843bis-05.html#name-sip-considerations) ofer in step 6 should be generated as an initial offer, i.e. with port 0 and bundle-only in bundled m= lines. This is done specifically to avoid problems in step 8.

What I am suggesting is not to always generate subsequent offers with port zero and bundle-only. I am suggesting only do this, when this offer is intended for 3PCC. There is already a similar feature for ICE which triggers ice restart for the offer which can be used for 3PCC. It can also trigger generation of an offer with bundle-only for all bundled m= lines. I would even be fine with webrtc endpoint not doing anything and adding a note to JSEP telling the 3PCC application to "fix" the offer and add m= port zero and bundle-only attributes when it is sending subsequent offers as initial offers to a new end point.

In any case, the subsequent offer generated in step 6 is not a valid initial offer according to the bundle specification. We have two choices:

1. Make subsequent offers valid initial offers. This means adding some language explaining how the endpoint processing initial offer can detect that m= lines cannot be unbundled. Even if we add this language it will have backwards compatibility issues with anything that has not implemented it.

2. Make endpoints generate subsequent offers that are valid initial offers in 3PCC scenarios. This is what draft 8843 bis does.

Please let me know if you need more details.
_____________
Roman Shpount


On Sat, Oct 30, 2021 at 6:44 PM Christer Holmberg <christer.holmberg@ericsson.com<mailto:christer.holmberg@ericsson.com>> wrote:
Hi,

First, it would have been nice to see a call-flow that shows exactly where the issue arises, as there are different ways of doing 3PCC.

Already at the early days of BUNDLE, we agreed that an initial offer will NOT contain a shared address, because it is not backward compatible with non-bundle aware endpoints. Some people (including e.g., myself and Cullen) were very keen on that. Instead we will use port zero + bundle-only for m- lines that are only be accepted if part of a BUNDLE group. I do not agree to adding text to 8843bis saying there are cases where the specified procedures for initial offers don’t apply, or don’t have to be followed.

Yes, we did add some 3PCC clarification text  (which anyone could have commented on) in 8843bis, but we did not change the procedures for initial offers.

Also keep in mind that the difference between an initial offer and a subsequent offer is not related only the BUNDLE-related information. For example, an initial offer must also contain unique ICE candidates in each non-bundle-only m- line.

My understanding of the text in 8829bis is that JSEP does NOT support (or, if we want to word it differently, is not able to detect) the 3PCC cases referenced by Roman (again, call flows would have been nice), so a JSEP endpoint will always send a subsequent offer according to the rules for sending a subsequent offer.

Regarding Roman’s suggested solutions #2 and #3, sending ALL bundled m- lines with port zero and bundle-only would be something completely new, as there would be no offerer-tagged m- section. I don’t think that is a good idea. We wither send an initial offer, using the procedures for initial offers, or we send a subsequent offer, using the procedures for subsequent offers.

Regards,

Christer


From: rtcweb <rtcweb-bounces@ietf.org<mailto:rtcweb-bounces@ietf.org>> On Behalf Of Roman Shpount
Sent: lauantai 30. lokakuuta 2021 5.27
To: Justin Uberti <juberti@alphaexplorationco.com<mailto:juberti@alphaexplorationco.com>>
Cc: Justin Uberti <justin@uberti.name<mailto:justin@uberti.name>>; RTCWeb IETF <rtcweb@ietf.org<mailto:rtcweb@ietf.org>>
Subject: Re: [rtcweb] Working Group Last Call for draft-uberti-rtcweb-rfc8829bis-01.txt

On Fri, Oct 29, 2021 at 6:49 PM Justin Uberti <juberti@alphaexplorationco.com<mailto:juberti@alphaexplorationco.com>> wrote:


On Fri, Oct 29, 2021 at 3:29 PM Roman Shpount <roman@telurix.com<mailto:roman@telurix.com>> wrote:
On Fri, Oct 29, 2021 at 2:16 PM Justin Uberti <juberti@alphaexplorationco.com<mailto:juberti@alphaexplorationco.com>> wrote:

As I am trying to explain, there is nothing in the offer that would prevent the compliant implementation from moving the m= line out. This is not obvious but can cause grief.

The problem is that it is not possible, as there is no other transport to move the unbundled line to. As noted in the section you cite:

 "NOTE: One consequence of the rules above is that, once a BUNDLE group has been negotiated, a bundled "m=" section cannot be moved out of the BUNDLE group in an answer. Instead, an offer is needed.:"

Generally, I think that if there is a shared address, that signifies that a BUNDLE group has already been negotiated, even if that decision was made elsewhere. Perhaps a note should be added to bundle-bis to explicitly state this.

When discussing bundle-bis the understanding was that it is generally known when an offer is generated for 3pcc. Because of this, it was decided that when the offer is generated for 3pcc it should be generated using the same rules as the initial offer (i.e. with port zero and bundle-only). This was considered to be both backwards compatible with RBF 8843 and safe to use as an initial offer for non-bundle aware, bundle, and bundle-bis endpoints. For whatever reason, inspecting transport addresses was not considered a valid mechanism to detect that m= lines are already bundled and cannot be unbundled in the future. If we want to switch to inspecting transport addresses when deciding which m= lines can be unbundled, this deserves a lot more than a note in bundle-bis.

This logic needs to be applied on subsequent offers already though, so I don't understand why asking endpoints to also consider it on initial offers is an issue. Perhaps Christer could weigh in here.

During the initial offer end point does not have already negotiated bundle groups. Once the endpoint has already negotiated bundle groups, m= lines cannot be removed from them.

I would still argue that a safe way to generate an offer for 3PCC is to do SDP manipulation and set ports to 0 with attribute bundle-only. Everything else would not be compatible with either bundle-bis or RFC 8843.

I am fine to include this as a consideration for non-BUNDLE endpoints but it seems error-prone and unnecessary to do this for BUNDLE-aware endpoints.

Your logic only works if bundle-aware endpoints were not allowed to remove m= lines from a bundle group. Looking at the addresses to determine what is already grouped is insufficient, since an offer can also be an offer with ice restart and trickle. No addresses will be present, so the endpoint will have to look at ice parameters as well. This gets complicated and no one wanted to describe this when 8843bis was written.  This is why rfc 8843bis specifies that subsequent offers for 3PCC should be valid initial offers.

There are, potentially, two solutions to this:

1. Change bundle so that endpoints are required to inspect initial offers for transport addresses and ice parameters. Do not allow m= lines to be removed from the bundle group if they share the transport address. This would require pulling RFC 8843bis and writing the appropriate language.

2. Change JSEP note to specify that the application needs to make sure that in case of 3PCC and remote endpoints either potentially removing m= lines from the bundle or not being bundle-aware, bundled m= lines need to be modified to have port 0 and bundle-only attribute. Considering that most bundle-aware endpoints do not remove m= lines from the bundle, this option would cause the least amount of specification work.

3. If we want to completely avoid applications messing with SDP, change JSEP to specify that when ice-restart is specified and a new offer is generated, already bundled m= lines should be marked with port 0 and bundle-only. This would also result in the least number of surprises for developers.

Best Regards,
_____________
Roman Shpount