Re: [Ice] ICE PAC: When to start the timer waiting for possible peer reflexive candidates?

Justin Uberti <juberti@google.com> Tue, 30 April 2019 17:03 UTC

Return-Path: <juberti@google.com>
X-Original-To: ice@ietfa.amsl.com
Delivered-To: ice@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 54C341202F5 for <ice@ietfa.amsl.com>; Tue, 30 Apr 2019 10:03:50 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -17.5
X-Spam-Level:
X-Spam-Status: No, score=-17.5 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_MED=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, ENV_AND_HDR_SPF_MATCH=-0.5, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001, USER_IN_DEF_DKIM_WL=-7.5, USER_IN_DEF_SPF_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=google.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 fzQsjQwywimx for <ice@ietfa.amsl.com>; Tue, 30 Apr 2019 10:03:47 -0700 (PDT)
Received: from mail-it1-x12d.google.com (mail-it1-x12d.google.com [IPv6:2607:f8b0:4864:20::12d]) (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 7CD5712012C for <ice@ietf.org>; Tue, 30 Apr 2019 10:03:47 -0700 (PDT)
Received: by mail-it1-x12d.google.com with SMTP id q14so5890867itk.0 for <ice@ietf.org>; Tue, 30 Apr 2019 10:03:47 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=USN0azGcVH9N25n+Hpv8jwpGjiPV7HFvF3lIN5qGS4Y=; b=Y+0boqh5CaR4qujbk+O2PyXLr1IsB3neo6OsJNAoY2ONCKCSRCtiJ0HZtEaL30zmrB hDGMjtuldIHT07vGe+9bWeiFJ3VvPUIjfVjbPf72o3qTIVdd2arJsc44UmrMmqdz4V4N x8ftyprK3RJpUkuengx9XyaUqUZnEPXvBDrq53GM8ISU/Q0tdZithILEGV27I5KUSD5k uG5eSaMGQ4IknQ6n6gGER5sLHfGazlLgmmf+jUCoY2ZCKMi9P5lcyEU1sUUigx5Oc0Mv 3Ehxd5WLVLZwH0gpsYTvO/nPBz+etJ6tSQIh+4ECeSdzB3GVVF7FX1PWIH7siccleSCG xm5w==
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=USN0azGcVH9N25n+Hpv8jwpGjiPV7HFvF3lIN5qGS4Y=; b=QjlVMNrM/7ICxR03ZQKv21jGolQ6Qh90Gx8sIlNnxn+2HPVLgA1P5HV1NrKzI2Dm4S 9VYcR4W8pvf1yJ9pmKNzaYi5qTil9mZbhyR+3g15CfUI+qC6RYyrikvwzhKncqlS6/0W /ho3/SqZy1UwikRibVk3wmPx2CqRIHbjLFsUdrf6z0Lqk3QpR2SksBKlWPrv14ouQZSc GtBO0pd5C0EEUsvjzy8XBW/RC5Vv/8ZOHpWZaZXTye1uuD3BqpJa/9wB0JnOCItRnnzV 9F1FAOK/ch/cwZIsZRrUPUQKqzR5GupYRCenibBTrepax6og6R8rTMBLJ4+Gu/7VbITV I4jg==
X-Gm-Message-State: APjAAAXA5jEA5dcDs8ZAIx4eCMb5InKb+0YaXL2xj3R0FkFv5pkHS9Ki Lt3PZxHaC7o7ucpr8iA1pMceshmwnMpsPis7qz4WEA==
X-Google-Smtp-Source: APXvYqwfD4GPz90qfKOBD3lQssqbOxUm5fJ3FLNHHk3w5hnwgKApc7Fse/bwfqKSTLIWbInqiruIOnNLRcjEp5yHZXA=
X-Received: by 2002:a05:660c:508:: with SMTP id d8mr4515209itk.8.1556643826291; Tue, 30 Apr 2019 10:03:46 -0700 (PDT)
MIME-Version: 1.0
References: <3A66B735-03C9-41FF-95AD-500B0D469C80@ericsson.com> <CAD5OKxsMgNTQPNP4Ni72H+yD4iUeyNK+x6CSvdBApGnPTpr_vg@mail.gmail.com> <A4EC3C01-4D7D-45DF-876D-E58706F74866@ericsson.com> <CAD5OKxt8tDemkK=v4X1gjwJGLYrxcd95S7uV53_fsga6grZ_rA@mail.gmail.com> <30518269-CA9D-4F50-8CE3-062A01DBCD7F@mozilla.com> <CAD5OKxvmRK8Xzu4FSRv3Lgdg-VrrufzGhjAdSmfcLLkrm-jtjw@mail.gmail.com> <0AD3077C-74FA-4585-942A-375B83B3A7A0@ericsson.com> <CAD5OKxsgpf7Hv_nxFOZFwfNk7-_xNRzmoPTA2bZCqZo3wzudKQ@mail.gmail.com> <HE1PR07MB316172053751D307F83DE0EB933E0@HE1PR07MB3161.eurprd07.prod.outlook.com> <CAD5OKxu332E8vzdc4dt09NxXGf9Cr2izwECDAQjc7V_YDx3r5w@mail.gmail.com> <HE1PR07MB316189447ED302BEC5021946933F0@HE1PR07MB3161.eurprd07.prod.outlook.com> <CAOJ7v-3Dv4N5j0KykxQf-gHQfvJ9x-VzbTTTcdJyfgYgcdYy5A@mail.gmail.com> <HE1PR07MB3161E4496E7BDC5FF419CCE793390@HE1PR07MB3161.eurprd07.prod.outlook.com> <CAOJ7v-3JkrYnWpghusRytVvTn1u7OibL9J3NyVh+ia9neSyuHA@mail.gmail.com> <46390078-DE3B-456B-87AC-61AE3C3DF035@ericsson.com>
In-Reply-To: <46390078-DE3B-456B-87AC-61AE3C3DF035@ericsson.com>
From: Justin Uberti <juberti@google.com>
Date: Tue, 30 Apr 2019 10:03:32 -0700
Message-ID: <CAOJ7v-202_STNVj6nLv_0pTTuE_=jn_HJusNERv9Yj7=k=86jg@mail.gmail.com>
To: Christer Holmberg <christer.holmberg@ericsson.com>
Cc: Roman Shpount <roman@telurix.com>, Nils Ohlmeier <nohlmeier@mozilla.com>, "ice@ietf.org" <ice@ietf.org>
Content-Type: multipart/alternative; boundary="0000000000004f62470587c26210"
Archived-At: <https://mailarchive.ietf.org/arch/msg/ice/zg_NFsgRqSpxaj7MzK7YZzrDL14>
Subject: Re: [Ice] ICE PAC: When to start the timer waiting for possible peer reflexive candidates?
X-BeenThere: ice@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Interactive Connectivity Establishment \(ICE\)" <ice.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/ice>, <mailto:ice-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/ice/>
List-Post: <mailto:ice@ietf.org>
List-Help: <mailto:ice-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ice>, <mailto:ice-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 30 Apr 2019 17:03:50 -0000

On Tue, Apr 30, 2019 at 3:30 AM Christer Holmberg <
christer.holmberg@ericsson.com> wrote:

> Hi,
>
> ...
>
> >>> Overall I think the Firefox approach makes the most sense - the PAC
> timer
> >>> starts when you have either a local or remote candidate.
> >>
> >> That would mean that PAC becomes a the-maximum-time-to-run-ICE timer.
> If that's what people want, fine.
> >
> > Maybe this is what you meant, but I think it's a
> "minimum-time-to-run-ICE" timer.
>
> I guess so, yes.
>
> However, as I said before, I think an agent shall still be allowed to stop
> earlier, and not be required to wait for peer reflexive candidates, if it
> already has working pairs.
>

Sure, this is not a point of contention, but a SHOULD-level directive may
make sense here.

>
> >> However, you can have a local candidate long before the remote peer
> gets it, so starting the timer once you
> >> have a candidate sounds strange to me. I think we should at least wait
> until the agent has sent the agent to the peer.
> >
> > This is an important observation - we don't want to start the timer
> until we think both us and the peer agent are running
> > ICE processing (e.g., if we just gathered candidates but didn't send an
> offer, we shouldn't start the timer). I'm not totally sure
> > what you meant above,
>
> That is one example: gather candidates but don't yet send an offer.
>
> > but one way to ensure we're in the right state would be to start the
> timer when both of the below are true:
> > 1) We have sent or received an answer.
> > 2) Local candidate gathering has completed (including the case when zero
> candidates have been gathered).
> >
> > #2 may not be strictly necessary, but gives us more flexibility in
> trickle cases if gathering takes a very long time (10+ seconds) for some
> reason.
>
> What about starting the timer after the agent has sent its last set of
> candidates? That would cover both trickle and non-trickle: in non-trickle
> there is only one set of candidates, and in trickle it doesn't matter how
> long it takes to provide all candidates since the timer doesn’t start until
> the last set of candidates have been sent?
>
>
That's basically the same thing I was proposing in 2), with the
clarification that the candidates were also actually transmitted. I do
think Nils' point is important though, i.e., if we have a bad server it
will take a very long time to decide on 'last set of candidates', which is
probably not helpful. As such I think the potential positions we can take
are:
a) Start the timer as soon as we have an answer, regardless of any
candidates.
b) a) + receipt of at least one remote candidate (or remote EOC). (This is
Nils' suggestion).
c) a) + sending at least one local candidate (or local EOC).

b) has a problem if the remote side doesn't send any candidates, which we
want to explicitly allow.

I tend to lean towards a) as the simplest option.