Re: [Ice] active / frozen check lists

Christer Holmberg <christer.holmberg@ericsson.com> Mon, 24 July 2017 15:11 UTC

Return-Path: <christer.holmberg@ericsson.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 09181131E08 for <ice@ietfa.amsl.com>; Mon, 24 Jul 2017 08:11:17 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.221
X-Spam-Level:
X-Spam-Status: No, score=-4.221 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
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 rM9w1kiFJ92n for <ice@ietfa.amsl.com>; Mon, 24 Jul 2017 08:11:15 -0700 (PDT)
Received: from sessmg22.ericsson.net (sessmg22.ericsson.net [193.180.251.58]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id CB77A131DFA for <ice@ietf.org>; Mon, 24 Jul 2017 08:11:14 -0700 (PDT)
X-AuditID: c1b4fb3a-81bff70000001b2f-b0-59760e1018f8
Received: from ESESSHC021.ericsson.se (Unknown_Domain [153.88.183.81]) by sessmg22.ericsson.net (Symantec Mail Security) with SMTP id 2F.4E.06959.01E06795; Mon, 24 Jul 2017 17:11:12 +0200 (CEST)
Received: from ESESSMB109.ericsson.se ([169.254.9.91]) by ESESSHC021.ericsson.se ([153.88.183.81]) with mapi id 14.03.0352.000; Mon, 24 Jul 2017 17:11:12 +0200
From: Christer Holmberg <christer.holmberg@ericsson.com>
To: Peter Saint-Andre <stpeter@stpeter.im>, "ice@ietf.org" <ice@ietf.org>
Thread-Topic: [Ice] active / frozen check lists
Thread-Index: AQHTBIv1FnorAdiCkEa0RCcMSD3UV6JjETlg
Date: Mon, 24 Jul 2017 15:11:12 +0000
Message-ID: <7594FB04B1934943A5C02806D1A2204B4CC97EC6@ESESSMB109.ericsson.se>
References: <703694f1-6058-b2b7-9b7b-4df57d63ae4f@stpeter.im>
In-Reply-To: <703694f1-6058-b2b7-9b7b-4df57d63ae4f@stpeter.im>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [153.88.183.149]
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrNLMWRmVeSWpSXmKPExsUyM2J7oK4AX1mkwcy9FhbfLtRaHNvTz+zA 5LFkyU8mj7l7XjAHMEVx2aSk5mSWpRbp2yVwZXTMaWUuuClbseL5b9YGxjviXYwcHBICJhLz l6l0MXJyCAkcYZRY+1kGwl7MKLGllQekhE3AQqL7nzZIWETAU+Li75VsILawgJ7E0s3dzBBx fYmDU08zQthGEqv3r2EBsVkEVCVWr5nDBGLzCvhKrLy1mRlkpJCArUTPd26QMKeAnUTjw51g YxgFxCS+n1oDVs4sIC5x68l8MFtCQEBiyZ7zzBC2qMTLx/9YIWwlibWHt7NA1OtILNj9iQ3C 1pZYtvA1M8RaQYmTM5+wTGAUmYVk7CwkLbOQtMxC0rKAkWUVo2hxanFxbrqRkV5qUWZycXF+ nl5easkmRmAUHNzy22oH48HnjocYBTgYlXh4dzCURQqxJpYVV+YeYpTgYFYS4WV+WxopxJuS WFmVWpQfX1Sak1p8iFGag0VJnNdh34UIIYH0xJLU7NTUgtQimCwTB6dUA6N1wtRjf+7s/s5o Ub3+JNfqx8u+nzMrW/w2KHf3lj0Munc53tf/7DefoKIx6b7P7fCLLP/vak1TWdLN6qCrtuOp T+SHmgXXZK+cc/jvdPWNwvJ/vzZv/37tUc51xzyGDaHZORknfFzCnxqqsvQ65C97x+N6PVTy Yeazqc+XNuSoPotdWN/ycsEFJZbijERDLeai4kQAQ6oPPX4CAAA=
Archived-At: <https://mailarchive.ietf.org/arch/msg/ice/2mD6QeAFZHvNLiYzU2R-76YbQaw>
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 15:11:17 -0000

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 obviously would have to remove the term also from trickle, but would it affect the procedures?

###

>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?


###

>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.

###

>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?

Regards,

Christer