Re: [Ice] active / frozen check lists

Taylor Brandstetter <deadbeef@google.com> Mon, 24 July 2017 23:19 UTC

Return-Path: <deadbeef@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 9B7DD124E15 for <ice@ietfa.amsl.com>; Mon, 24 Jul 2017 16:19:07 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.001
X-Spam-Level:
X-Spam-Status: No, score=-2.001 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, RP_MATCHES_RCVD=-0.001, SPF_PASS=-0.001] 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 gGEwj0meqMnh for <ice@ietfa.amsl.com>; Mon, 24 Jul 2017 16:19:05 -0700 (PDT)
Received: from mail-qt0-x233.google.com (mail-qt0-x233.google.com [IPv6:2607:f8b0:400d:c0d::233]) (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 28D38124C27 for <ice@ietf.org>; Mon, 24 Jul 2017 16:19:05 -0700 (PDT)
Received: by mail-qt0-x233.google.com with SMTP id a18so1667753qta.0 for <ice@ietf.org>; Mon, 24 Jul 2017 16:19:05 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=tPIFm/kGBHQXxByfIsaoI3FC00uddJHM+6uCT0gmr3w=; b=M2JiFikzAOI8BJL655ZOACWIGSnzDBpDgwS0uTAX26VzQWvVv7jaj9VJEyidEk+TO3 k4FAP3MSp1198J0ECW/YrigGaMd6guQZthdY42gQDntgh5F6U8zUGyH+hIG9Qf88uW0G pAGxTcO0T/gq2w+Yauhz3N6rsYoG37ta+53zpSP825z1qVs89ve95f0/9M9OYTly1LaH 3zz3NSI7LgZokSY4VSZBDijVeFtSM/ZMc2o1ibIknhcDmm26kYlN8xDa1Y2thW01DBgP 51T1LF8SdOW/3zY7esUa8sUV2ttEiXAV3vb0CzuQcD1UqAnev5oWKXRzMNZ6FK8YTEOW cIEA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=tPIFm/kGBHQXxByfIsaoI3FC00uddJHM+6uCT0gmr3w=; b=KkcudLiLyBjkq5li9mBAor+YeRnsJatCUrc/OfDBzogbMFt0XBWD577Zj+aw48t/2I LeAvEl0GJZQrMsof9FUgpqfofwj4sDExmb1f48lroHDD6FCjMie+bkVzw6zUp2SVWyyY 7mFR1qq/VjQ5S+v+6P+9sE7l3QDWB0I1n9gII5HNkolDLYYpDy1AR21wpCPMO71KaAeS WiNOrJFu169OmkY00iNc3Y2ytbkiWOr94NginO3ObG+pa216KAC+ZN1KjKj3hqtwE8pN Y92ZCK3e8c8qdthZFdXDjALpFOK1p8Cj8eHMNv2T9WFNzBsWTM5Apq3bJRfQkAfQiA7K Z15g==
X-Gm-Message-State: AIVw110bABipeRZqBl+VubNHvz4Tx7CvNrtO4dptqaD6PqT3Ym62navH Lh5zn5/VjbEOhMkr/6AML6pO/NqkeByS
X-Received: by 10.237.53.44 with SMTP id a41mr12313514qte.231.1500938344177; Mon, 24 Jul 2017 16:19:04 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.12.163.5 with HTTP; Mon, 24 Jul 2017 16:19:03 -0700 (PDT)
In-Reply-To: <f2b3b001-2e2a-54e0-3eb8-dccc2d1d80bb@stpeter.im>
References: <703694f1-6058-b2b7-9b7b-4df57d63ae4f@stpeter.im> <7594FB04B1934943A5C02806D1A2204B4CC97EC6@ESESSMB109.ericsson.se> <f2b3b001-2e2a-54e0-3eb8-dccc2d1d80bb@stpeter.im>
From: Taylor Brandstetter <deadbeef@google.com>
Date: Mon, 24 Jul 2017 16:19:03 -0700
Message-ID: <CAK35n0ZxNNikneaJ5jPmgp-7dy-0SP+QFp8-Z=Mc=2rXfTNwpg@mail.gmail.com>
To: Peter Saint-Andre <stpeter@stpeter.im>
Cc: Christer Holmberg <christer.holmberg@ericsson.com>, "ice@ietf.org" <ice@ietf.org>
Content-Type: multipart/alternative; boundary="001a11c00fd8d620e30555187088"
Archived-At: <https://mailarchive.ietf.org/arch/msg/ice/b-fUHyhYNCk8KQM-gj3q6To9_j0>
Subject: Re: [Ice] active / frozen check lists
X-BeenThere: ice@ietf.org
X-Mailman-Version: 2.1.22
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: Mon, 24 Jul 2017 23:19:07 -0000

Trickle ICE doesn't need to use the "active"/"frozen" state any more. I
brought this up in my review of draft-08:
https://mailarchive.ietf.org/arch/msg/ice/eiAyekLr4aTvFoDzUGhK3gyIsmY

Also, the reference to section 5.1.4 is just slightly outdated; section
5.1.4 previously referred to the "active" state, and now it doesn't.

So I don't think we have a problem. I agree with Christer's points.

On Mon, Jul 24, 2017 at 9:27 AM, Peter Saint-Andre <stpeter@stpeter.im>
wrote:

> On 7/24/17 9:11 AM, Christer Holmberg wrote:
> > Hi Peter,
> >
> > Thanks for your input! Please see inline.
> >
> >> Apparently it was decided at IETF 99 to remove the terms "active
> >> check list" and "frozen check list" from the core spec. These terms
> >> are used in the trickle spec. For example:
> >>
> >> ###
> >>
> >> A Trickle ICE agent initially considers all check lists to be
> >> frozen. It then inspects the first check list and attempts to
> >> unfreeze all candidate pairs it has received so far that belong to
> >>  the first component on the first media stream (i.e., the first
> >> media stream that was reported to the ICE implementation from the
> >> using application). If that first component of the first media
> >> stream does not contain candidates for one or more of the currently
> >> known pair foundations, and if candidate pairs already exist for
> >> that foundation in one of the following components or media
> >> streams, then the agent unfreezes the first of those candidate
> >> pairs.
> >
> > How would this change if we removed "frozen check list"?
>
> We'd probably need to create a circumlocation such as "considers all
> candidate pairs in all check lists to be frozen".
>
> > We obviously would have to remove the term also from trickle, but
> > would it affect the procedures?
>
> I don't think so, just the terminology and text.
>
> > ###
> >
> >> The ICE specification [rfc5245bis], Section 5.1.4, requires that an
> >> agent will terminate the timer for a triggered check in relation to
> >> an active check list once the agent has exhausted all frozen pairs
> >> in the check list. This will not work with Trickle ICE, because
> >> more pairs will be added to the check list incrementally.
> >
> > Do you refer to bullet 4) in section 5.1.4.2?
> >
> > It is true that the non-trickle agent will eventually cease checking
> > the check lists, but what does that have to do with the
> > "active/frozen check list" terms?
>
> Not much, I think. Later this week I will look at the text in detail.
>
> > ###
> >
> >> When a check list is set to Failed as described above, regular ICE
> >> requires the agent to update all other check lists, placing one
> >> pair from each check list into the Waiting >state - effectively
> >> unfreezing all remaining check lists. However, under Trickle ICE
> >> other check lists might still be empty at this point (because
> >> candidates have not yet been >received), and following only the
> >> rules from regular ICE would prevent the agent from unfreezing
> >> those check lists (because the state of a check list depends on the
> >> state of >the candidate pairs in that check list, but there are
> >> none yet). Therefore a Trickle ICE agent needs to monitor whether a
> >> check list is active or frozen independently of the >state of the
> >> candidate pairs in the check list (since there might not be any
> >> pairs yet). With regard to empty check lists, by default a Trickle
> >> ICE agent MAY consider an empty >check list to be either active or
> >> frozen. When a Trickle ICE agent considers an empty check list to
> >> be frozen, during the candidate checking process it SHOULD change
> >> the >check list to active if checking of another check list is
> >> completely finished (i.e., if every pair in the other check list is
> >> either Successful or Failed), if another check list has a >valid
> >> candidate pair for all components, or if it adds a candidate pair
> >> to the check list (because, in accordance with Section 8.1.1, when
> >> inserting a new candidate pair into an >empty check list, the agent
> >> sets the pair to a state of Waiting).
> >
> > Why would an agent need to consider an empty list active or frozen?
> > Can't the agent simply put the list in RUNNING state, even if it's
> > empty, and whenever Ta triggers for that list the agent will check
> > whether there are any candidates, and process them accordingly.
>
> I will look at this later this week, as well.
>
> > ###
> >
> >> If we decide to continue with this approach, we'll need to look
> >> more closely at the text in the trickle spec and make the necessary
> >> wording changes.
> >
> > Absolutely. But, based on your input, I don't identity any technical
> > changes. Or have I missed them?
>
> Agreed.
>
> Peter
>
> _______________________________________________
> Ice mailing list
> Ice@ietf.org
> https://www.ietf.org/mailman/listinfo/ice
>