Return-Path: <ekr@rtfm.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 0F78F130DE3
 for <rtcweb@ietfa.amsl.com>; Tue, 29 Jan 2019 13:53:26 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.041
X-Spam-Level: 
X-Spam-Status: No, score=-2.041 tagged_above=-999 required=5
 tests=[BAYES_00=-1.9, DKIMWL_WL_MED=-0.142, DKIM_SIGNED=0.1,
 DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001]
 autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key)
 header.d=rtfm-com.20150623.gappssmtp.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 QEghcw53ixLj for <rtcweb@ietfa.amsl.com>;
 Tue, 29 Jan 2019 13:53:24 -0800 (PST)
Received: from mail-lj1-x231.google.com (mail-lj1-x231.google.com
 [IPv6:2a00:1450:4864:20::231])
 (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 CA683130DC9
 for <rtcweb@ietf.org>; Tue, 29 Jan 2019 13:53:23 -0800 (PST)
Received: by mail-lj1-x231.google.com with SMTP id s5-v6so18845870ljd.12
 for <rtcweb@ietf.org>; Tue, 29 Jan 2019 13:53:23 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=rtfm-com.20150623.gappssmtp.com; s=20150623;
 h=mime-version:references:in-reply-to:from:date:message-id:subject:to
 :cc; bh=pQdJKpwH+UEDTSYRZDw7zs+NLGIYi6Lz0IoURVPPXLg=;
 b=P2DK9/KHo2NFdz7TibeRgKIGr+UGanTGmVGgygzxa2DNy3fQYcOInqvhZJQiXIgG+w
 uA6erO1YIq21Mfe3lp4VoVgxGakpsKKsxFRlblQCkmVcxOdnSxcm2pySiIhYI7UfcIal
 RUvxAWK1hn+vskT/5K/5AvSsyFmb0aJgWdp9ppt4eElIvVZR1wWf9//plN3GUItgSqtK
 T0+TdYuG5ZSZl6KfLcML+ch7aXniT2wr0NKL7+L/PfAKKMxZ5RX0HsbP1EPUqWdv3pbC
 QvGN/TE5uUL82wLKPkUfw+PhGYKx21Ulhu+0PEPmpXkj/rtJ4ifBfUklKgBCLlJvA5DM
 tIdQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:mime-version:references:in-reply-to:from:date
 :message-id:subject:to:cc;
 bh=pQdJKpwH+UEDTSYRZDw7zs+NLGIYi6Lz0IoURVPPXLg=;
 b=AzD0s1aglPnkfgTC6Ltj0GHq11fG4GO4gw7i/nXt4bqYVC4lQPUnn16xlTbzdKh8RP
 hdChhQgHMuOpFosb7SmAv4rfv8Ys43xTrpk8dk2I2yLzWEmh+5HUdVTR1rA8iqcMG/oB
 1BXLVAh/BGmKKcm03L838/x2Hb+sA24LYYZsbwQ1aL5dglNFDFvbatE/iPXqoRd8GSSd
 0TxVDj76kAagvdS5J3jmZGDEsOZZt1CO6bo3AT9OE/m9h9j1ULlq7242g6sUNv6s1Cb7
 C6GgQpTZchzWzWi0zHaap18QEuerVYGv1CnOIRnsUq/V94D+EwkDc+PM6NuUxfri+3Se
 DsMg==
X-Gm-Message-State: AJcUukdOjULSr1eZESjVCGrlMJpSGP18ozFjcsBosWnN4mOfLM8wQmdj
 rQgXps7gQdNdE3uRvXp8mTwDa0dNRLyoyDVIOwWF+fsh
X-Google-Smtp-Source: ALg8bN5aRP+sqY/Buzp5LBGTEwW2bOo4W6EhwmvyEXPr1X/PLaIcwa9MsXPDYOEZhiNXy77EEhl7hPbLbwoonnmXXik=
X-Received: by 2002:a2e:95c6:: with SMTP id
 y6-v6mr19985769ljh.59.1548798801914; 
 Tue, 29 Jan 2019 13:53:21 -0800 (PST)
MIME-Version: 1.0
References: <97ed2641-8a7e-19a9-be38-a3458ca9212e@nostrum.com>
 <CABcZeBP9t0SgsHAuENo99D6ffKd7Mw0Xs1vzUCOzSS=WJN5z8A@mail.gmail.com>
 <HE1PR07MB3161B0F1D2B5AC9DA72DDFAD93950@HE1PR07MB3161.eurprd07.prod.outlook.com>
 <CAOJ7v-3KHi0TUDsQvG6qq-qeNGBsqLxg+NC1c+Nxvgy0ks0d0g@mail.gmail.com>
 <CABcZeBNL=sWFfh=zwiuib80HPsno=GzF18gU+z3DrCZTK_PquA@mail.gmail.com>
 <CA+9kkMDh56CeXRGNSk_r-HrLkDNT5DnYc_FguXOdeccfq=LEMA@mail.gmail.com>
 <CABcZeBPboLf0bLUDTyJArxsPYSnUrULArmsZ9YshQCX+rEvexA@mail.gmail.com>
 <CA+9kkMCwCBHWEEADxVHT2ZbvWEi=bUBJ22icKHpA2p8Kg1fF9A@mail.gmail.com>
 <CALiegfnpj+Pu0Hg05iqHXCwhTefxn_Em7gTnzOXK897fzcyuwg@mail.gmail.com>
 <CAD5OKxvmQHT3TAt_=xCd_JKnPzXfnc=Mej-mr6KMsaKVoBkuSg@mail.gmail.com>
 <CALiegfm_jtv1bV3Ok6j20hkim8e6QxMYPrbbHejqoHnCHjMXpA@mail.gmail.com>
 <CAD5OKxsMWEE39O6hSc+UFjwTAa=z1A+XD5X2BY=Q7PEUdYE4UA@mail.gmail.com>
 <961E55AE-2072-4145-8BCF-62D67C6D150F@mozilla.com>
 <CAD5OKxuwhmAPvonV1rX1rN6yi08-4NPH1BOzVuJPUMEntnpRkw@mail.gmail.com>
 <CALiegfmZ_DSe7EFw48C6HoQ+bUReom4r0TTMf4wRG6UyAbgX2w@mail.gmail.com>
 <CAD5OKxvm_U=Tgvmxfi8hqiR=8tB_ueQtUSJJV5NLcVL8dBdHtw@mail.gmail.com>
 <CALiegfm1y_p3wDoXeckSw2BQ61gGYh4c9A7a=p0vi=BnWGoU4A@mail.gmail.com>
 <CAD5OKxvyDNm68_A1WVEyvsU52Jua+vHbrMpZJ0v0s7reP00OLQ@mail.gmail.com>
In-Reply-To: <CAD5OKxvyDNm68_A1WVEyvsU52Jua+vHbrMpZJ0v0s7reP00OLQ@mail.gmail.com>
From: Eric Rescorla <ekr@rtfm.com>
Date: Tue, 29 Jan 2019 13:52:43 -0800
Message-ID: <CABcZeBMi9nmue+Sw0+2Cf+Bs1NQE6cV-Ld+_9gMTDvbrWH_nfQ@mail.gmail.com>
To: Roman Shpount <roman@telurix.com>
Cc: =?UTF-8?Q?I=C3=B1aki_Baz_Castillo?= <ibc@aliax.net>, 
 RTCWeb IETF <rtcweb@ietf.org>
Content-Type: multipart/alternative; boundary="0000000000006ac15f05809fd257"
Archived-At: <https://mailarchive.ietf.org/arch/msg/rtcweb/hP_LSljWA5PK-Z6OnaAgH42ws88>
Subject: Re: [rtcweb] Proposal to break the ICE impasse
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: Tue, 29 Jan 2019 21:53:26 -0000

--0000000000006ac15f05809fd257
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Tue, Jan 29, 2019 at 11:28 AM Roman Shpount <roman@telurix.com> wrote:

> On Tue, Jan 29, 2019 at 2:05 PM I=C3=B1aki Baz Castillo <ibc@aliax.net> w=
rote:
>
>> I understand your point. But still I don't understand the purpose of the
>> new draft (set TCP/DTLS/etc in proto line if there are just TCP candidat=
es
>> in the offer).
>>
>
> The purpose is standard compliance. If nominated candidate is UDP, proto
> line should be UDP. If nominated candidate is TCP, proto line should be
> TCP. If you do not care about the c=3D and m=3D line, put the dummy value=
s and
> UDP there, but this breaks legacy interop by causing ICE mismatch.
>

This is two separate statements that don't necessarily follow form each
other

1. This is a matter of standards compliance.
2. It breaks legacy interop

I agree on point (1). I'm still waiting for someone to demonstrate point (2=
)

-Ekr

Putting UDP proto and address from TCP candidate breaks legacy interop as
> well, but it is typically localized to provider managed server, so it is
> possible to patch around this either in JS client or on the server to tre=
at
> WebRTC clients differently. Alternatively, WebRTC clients can add a coupl=
e
> lines of code and become compliant with the RFC they decided to implement
> and remove the need for patching.
>
> Of course, if browser follow the ICE spec and set the selected candidate
>> in the c/m lines, they must also indicate whether that is over UDP or TC=
P.
>> The problem here is what such a proto line is intended to mean when ther=
e
>> is ICE candidates of UDP and TCP. But ok, let's assume that browser do
>> update c/m lines in the trigger with the selected candidate, and they JU=
ST
>> change the proto line to TCP/DTLS if there are just TCP candidates. Now
>> thing about this scenario:
>>
>> 1) Client initial offer with UDP and TCP candidates.
>>
>> 2) Server answers with both UDP and TCP candidates.
>>
>> 3.1) UDP is selected. Re-offer is created with just UDP candidates (as
>> per spec).
>>
>> 3.2) or TCP is selected. Re-offer is created with just TCP candidates (a=
s
>> per specs).
>>
>> In both 3.1 and 3.2 the "monitoring Node" doesn't need to inspect the
>> proto line. It can just check the protocol (UDP or TCP) of *any* candida=
te
>> in the offer to know whether UDP or TCP was selected.
>>
>> Am I wrong?
>>
>
> You are correct. Checking c=3D and m=3D line is simply to avoid checking =
and
> parsing ICE candidates. If monitoring client would handle ICE candidates,
> then the monitoring client would still need to figure out which candidate
> is default to record client media IP. Keeping c=3D and m=3D line in sync =
with
> default candidate on the client seemed to cause the least amount of
> problems which is why it was left in ice-sip-sdp.
>
> Regards,
> _____________
> Roman Shpount
>
> _______________________________________________
> rtcweb mailing list
> rtcweb@ietf.org
> https://www.ietf.org/mailman/listinfo/rtcweb
>

--0000000000006ac15f05809fd257
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div dir=3D"ltr"><br></div><br><div class=3D"gmail_quote">=
<div dir=3D"ltr" class=3D"gmail_attr">On Tue, Jan 29, 2019 at 11:28 AM Roma=
n Shpount &lt;<a href=3D"mailto:roman@telurix.com">roman@telurix.com</a>&gt=
; wrote:<br></div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px=
 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div di=
r=3D"ltr"><div dir=3D"ltr"><div><div dir=3D"ltr" class=3D"gmail-m_-41223466=
1193111613gmail_signature">On Tue, Jan 29, 2019 at 2:05 PM I=C3=B1aki Baz C=
astillo &lt;<a href=3D"mailto:ibc@aliax.net" target=3D"_blank">ibc@aliax.ne=
t</a>&gt; wrote:<br></div></div></div><div class=3D"gmail_quote"><blockquot=
e class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px s=
olid rgb(204,204,204);padding-left:1ex"><div dir=3D"auto">I understand your=
 point. But still I don&#39;t understand the purpose of the new draft (set =
TCP/DTLS/etc in proto line if there are just TCP candidates in the offer).<=
/div></blockquote><div>=C2=A0</div><div>The purpose is standard compliance.=
 If nominated candidate is UDP, proto line should be UDP. If nominated cand=
idate is TCP, proto line should be TCP. If you do not care about the c=3D a=
nd m=3D line, put the dummy values and UDP there, but this breaks legacy in=
terop by causing ICE mismatch.</div></div></div></blockquote><div><br></div=
><div>This is two separate statements that don&#39;t necessarily follow for=
m each other</div><div><br></div><div>1. This is a matter of standards comp=
liance.</div><div>2. It breaks legacy interop</div><div><br></div><div>I ag=
ree on point (1). I&#39;m still waiting for someone to demonstrate point (2=
)</div><div><br></div><div>-Ekr</div><div><br></div><blockquote class=3D"gm=
ail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,=
204,204);padding-left:1ex"><div dir=3D"ltr"><div class=3D"gmail_quote"><div=
> Putting UDP proto and address from TCP candidate breaks legacy interop as=
 well, but it is typically localized to provider managed server, so it is p=
ossible to patch around this either in JS client or on the server to treat =
WebRTC clients differently. Alternatively, WebRTC clients can add a couple =
lines of code and become compliant with the RFC they decided to implement a=
nd remove the need for patching.</div><div><br></div><blockquote class=3D"g=
mail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204=
,204,204);padding-left:1ex"><div dir=3D"auto"><div dir=3D"auto">Of course, =
if browser follow the ICE spec and set the selected candidate in the c/m li=
nes, they must also indicate whether that is over UDP or TCP. The problem h=
ere is what such a proto line is intended to mean when there is ICE candida=
tes of UDP and TCP. But ok, let&#39;s assume that browser do update c/m lin=
es in the trigger with the selected candidate, and they JUST change the pro=
to line to TCP/DTLS if there are just TCP candidates. Now thing about this =
scenario:<br></div><div dir=3D"auto"><br></div><div dir=3D"auto">1) Client =
initial offer with UDP and TCP candidates.</div><div dir=3D"auto"><br></div=
><div dir=3D"auto">2) Server answers with both UDP and TCP candidates.</div=
><div dir=3D"auto"><br></div><div dir=3D"auto">3.1) UDP is selected. Re-off=
er is created with just UDP candidates (as per spec).</div><div dir=3D"auto=
"><br></div><div dir=3D"auto">3.2) or TCP is selected. Re-offer is created =
with just TCP candidates (as per specs).</div><div dir=3D"auto"><br></div><=
div dir=3D"auto">In both 3.1 and 3.2 the &quot;monitoring Node&quot; doesn&=
#39;t need to inspect the proto line. It can just check the protocol (UDP o=
r TCP) of *any* candidate in the offer to know whether UDP or TCP was selec=
ted.</div><div dir=3D"auto"><br></div><div dir=3D"auto">Am I wrong?</div></=
div></blockquote><div><br></div><div>You are correct. Checking c=3D and m=
=3D line is simply to avoid checking and parsing ICE candidates. If monitor=
ing client would handle ICE candidates, then the monitoring client would st=
ill need to figure out which candidate is default to record client media IP=
. Keeping c=3D and m=3D line in sync with default candidate on the client s=
eemed to cause the least amount of problems which is why it was left in ice=
-sip-sdp.</div><div><br></div><div>Regards,</div>_____________<br>Roman Shp=
ount<br class=3D"gmail-m_-412234661193111613gmail-Apple-interchange-newline=
"><div>=C2=A0</div></div></div>
_______________________________________________<br>
rtcweb mailing list<br>
<a href=3D"mailto:rtcweb@ietf.org" target=3D"_blank">rtcweb@ietf.org</a><br=
>
<a href=3D"https://www.ietf.org/mailman/listinfo/rtcweb" rel=3D"noreferrer"=
 target=3D"_blank">https://www.ietf.org/mailman/listinfo/rtcweb</a><br>
</blockquote></div></div>

--0000000000006ac15f05809fd257--

