Re: [Ice] active / frozen check lists

Peter Saint-Andre <stpeter@stpeter.im> Mon, 24 July 2017 16:27 UTC

Return-Path: <stpeter@stpeter.im>
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 792EA131E97 for <ice@ietfa.amsl.com>; Mon, 24 Jul 2017 09:27:22 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.721
X-Spam-Level:
X-Spam-Status: No, score=-2.721 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=stpeter.im header.b=JEX9+bew; dkim=pass (2048-bit key) header.d=messagingengine.com header.b=lTm0bAAQ
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 Bgu8yAwIfti4 for <ice@ietfa.amsl.com>; Mon, 24 Jul 2017 09:27:20 -0700 (PDT)
Received: from out1-smtp.messagingengine.com (out1-smtp.messagingengine.com [66.111.4.25]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 8A6DE131E9C for <ice@ietf.org>; Mon, 24 Jul 2017 09:27:20 -0700 (PDT)
Received: from compute2.internal (compute2.nyi.internal [10.202.2.42]) by mailout.nyi.internal (Postfix) with ESMTP id D4F29222A0; Mon, 24 Jul 2017 12:27:19 -0400 (EDT)
Received: from frontend1 ([10.202.2.160]) by compute2.internal (MEProxy); Mon, 24 Jul 2017 12:27:19 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=stpeter.im; h= content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:x-me-sender :x-me-sender:x-sasl-enc:x-sasl-enc; s=fm1; bh=jJ/JsyHJv/ZOhwc/sy K8+5nYRESwdoXNiq2+gDTR6E0=; b=JEX9+bews8Va7GdUFTCKQZi/K+q1cs14Yz w6XTXQgJtfInd08DLKWHzDe+wp/+CxWalZViKEmO8uM8dABLtVifUBp9UT3PX44l jGmamGkpzRuAa6Fc6mDvnQ9WJWJzh28qxOBei2TJMGcVS9/ybvkVRyF9MHynkoAe tjoby4Pnv2PUacr/USLH8/WD/veUSS0tS/WuSjAPIz0hN9Q+KYerh880M9mcUJSe ySC2uBnOP4CPB4eUJvD6AMD0PQsHphAkzef36leoH77bUqUWdVQ25qCBN2v+iKcF KJVEmUnpeN9wXKcXN48dM/6PLIDJfdHtDuIx9NArsYc4oq1x2Naw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=content-transfer-encoding:content-type :date:from:in-reply-to:message-id:mime-version:references :subject:to:x-me-sender:x-me-sender:x-sasl-enc:x-sasl-enc; s= fm1; bh=jJ/JsyHJv/ZOhwc/syK8+5nYRESwdoXNiq2+gDTR6E0=; b=lTm0bAAQ xR05JPbYIfON7PuxkXhBHvZdwlr/9Fnqqm9vc1dMcvAkWz2Of9SPFJyXPUnYTM0V Cix+9rXi9Vazend0uhFqe/xMtz9/U3LmT51pMwSzunxwOOsH2f7KLn91CLaK6jUv LJVwTLeIv9d6Mn5CmgXOm03e2TcDRjmXmmBiacxbOnBClT9t8TFdc/YrVrPXPtG4 XgFHqjA6jby2fY+poD+67j+zdIMaDqUGPCtfU5vC2Njt8PIC3wKQYleH5yGROA4k +HWqmhxhtOXbmJnGL+pPLoQKVM/k3E81BItoOIENR2NEiRRsiHkrLbzqcSMl+MMS Yp7py46Mh52bkg==
X-ME-Sender: <xms:5x92WQbzp-lXPwYJtoeI71xPpFDQCeHMCcsBOikvlPJibf4pB8EqUg>
X-Sasl-enc: QLKrf+8bd13PgxuvqacTav07M01o7HBk4GNxr+Oix1P0 1500913639
Received: from aither.local (unknown [76.25.4.24]) by mail.messagingengine.com (Postfix) with ESMTPA id 5FF847E12E; Mon, 24 Jul 2017 12:27:19 -0400 (EDT)
To: Christer Holmberg <christer.holmberg@ericsson.com>, "ice@ietf.org" <ice@ietf.org>
References: <703694f1-6058-b2b7-9b7b-4df57d63ae4f@stpeter.im> <7594FB04B1934943A5C02806D1A2204B4CC97EC6@ESESSMB109.ericsson.se>
From: Peter Saint-Andre <stpeter@stpeter.im>
Message-ID: <f2b3b001-2e2a-54e0-3eb8-dccc2d1d80bb@stpeter.im>
Date: Mon, 24 Jul 2017 10:27:17 -0600
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:45.0) Gecko/20100101 Thunderbird/45.8.0
MIME-Version: 1.0
In-Reply-To: <7594FB04B1934943A5C02806D1A2204B4CC97EC6@ESESSMB109.ericsson.se>
Content-Type: text/plain; charset="windows-1252"
Content-Transfer-Encoding: 8bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/ice/W2FQreeHLDh2_ZuU7KefxY2NKuU>
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 16:27:22 -0000

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