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

Roman Shpount <roman@telurix.com> Sat, 30 October 2021 02:27 UTC

Return-Path: <roman@telurix.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 BD3353A1A89 for <rtcweb@ietfa.amsl.com>; Fri, 29 Oct 2021 19:27:29 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.098
X-Spam-Level:
X-Spam-Status: No, score=-2.098 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001, SPF_HELO_NONE=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=telurix.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 AjVxZ5ExNOLO for <rtcweb@ietfa.amsl.com>; Fri, 29 Oct 2021 19:27:24 -0700 (PDT)
Received: from mail-qk1-x72f.google.com (mail-qk1-x72f.google.com [IPv6:2607:f8b0:4864:20::72f]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id A10C63A1A88 for <rtcweb@ietf.org>; Fri, 29 Oct 2021 19:27:24 -0700 (PDT)
Received: by mail-qk1-x72f.google.com with SMTP id az8so59982qkb.2 for <rtcweb@ietf.org>; Fri, 29 Oct 2021 19:27:24 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telurix.com; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=mn73xvea1nucTr4XSXtQnCVjXeYD7AEAZ43cj2wrswg=; b=OOTq0jsJbEV+iHe1Zn77aONy/85b4BSvizCBTsuBegqu7KvNJzzZ322v6yjcTZjWE7 10kFtpLIrS28SrH8OuQH5ZkJYL7ahGzYmim8V3S+72DVkVzjpu+6GyfIC+HES29sRu4I Hdbpuy9iB8FOxv/PFjwZf5ivKJsxCD4hht/ZM=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=mn73xvea1nucTr4XSXtQnCVjXeYD7AEAZ43cj2wrswg=; b=utVRZZ666dXTj7RjMePJoGlps9ggDKM/n34AKS6iXDAwOGzBQYGBNcKEWKBLsb/G0b 14JFSjrizeN34qb5kBzPikf5cExV5W9/1pmPOeKzET5R7Vo40JnkMTMz7OTppPJGIXqu IhlVa7viB8TLa7oGNcM3gLdOwubJV21QPt9b+f1OLS3NiKvQ7wIEEEpSQt91vGvoBf7V VyKZcd2lWGpyjc+JjZmNHyfqXIIxxfkemya7P1WM4G07+aYcPWVKe5EvAP+HgpBMetdw 8iJArSV4HOdJ/UzBxyGSTNy2a6G2T1+AhQrp4uWEbfmr2SBTK3GMqEhVNRQSE9Y0bC8P csJQ==
X-Gm-Message-State: AOAM532M6MGmJ9IbE6UTMJ8fp1Cio4Q9U7hXzGGzl4KkoTEyS56T6sR7 QXJ5M6Rexz3rZXyt1kPExOR3+WXczDRqvg==
X-Google-Smtp-Source: ABdhPJwscp0ietTXnRU79h9D/nBke2u7PlU9iXf8maeRcmDJCE7RGE+AjFpweJVzDCo00DA5s5kKqA==
X-Received: by 2002:a05:620a:28ce:: with SMTP id l14mr12108960qkp.85.1635560842389; Fri, 29 Oct 2021 19:27:22 -0700 (PDT)
Received: from mail-yb1-f173.google.com (mail-yb1-f173.google.com. [209.85.219.173]) by smtp.gmail.com with ESMTPSA id v22sm4500946qta.74.2021.10.29.19.27.21 for <rtcweb@ietf.org> (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 29 Oct 2021 19:27:21 -0700 (PDT)
Received: by mail-yb1-f173.google.com with SMTP id t127so28742013ybf.13 for <rtcweb@ietf.org>; Fri, 29 Oct 2021 19:27:21 -0700 (PDT)
X-Received: by 2002:a25:5846:: with SMTP id m67mr15465117ybb.231.1635560840714; Fri, 29 Oct 2021 19:27:20 -0700 (PDT)
MIME-Version: 1.0
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>
In-Reply-To: <CAOLzse1-8cTg=GE2ndQ3tpVa25wzNqkOy6J6M30X=dN2Ejnvyg@mail.gmail.com>
From: Roman Shpount <roman@telurix.com>
Date: Fri, 29 Oct 2021 22:27:09 -0400
X-Gmail-Original-Message-ID: <CAD5OKxs5wCQuaaC1sL+Zi2iwMhnzexTh89HVOWc2jLTBGoyD9A@mail.gmail.com>
Message-ID: <CAD5OKxs5wCQuaaC1sL+Zi2iwMhnzexTh89HVOWc2jLTBGoyD9A@mail.gmail.com>
To: Justin Uberti <juberti@alphaexplorationco.com>
Cc: Justin Uberti <justin@uberti.name>, RTCWeb IETF <rtcweb@ietf.org>
Content-Type: multipart/alternative; boundary="000000000000eb605605cf88ae02"
Archived-At: <https://mailarchive.ietf.org/arch/msg/rtcweb/ED0abxY2uKfh2u2BiORbjrSzs3I>
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: Sat, 30 Oct 2021 02:27:30 -0000

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

>
>
> On Fri, Oct 29, 2021 at 3:29 PM Roman Shpount <roman@telurix.com> wrote:
>
>> On Fri, Oct 29, 2021 at 2:16 PM Justin Uberti <
>> 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