[Ice] active / frozen check lists

Peter Saint-Andre <stpeter@stpeter.im> Mon, 24 July 2017 14:48 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 BC3E4131DA9 for <ice@ietfa.amsl.com>; Mon, 24 Jul 2017 07:48:44 -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=RpiNlX/J; dkim=pass (2048-bit key) header.d=messagingengine.com header.b=L7D7e6Qw
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 lZMX5rXcGpBI for <ice@ietfa.amsl.com>; Mon, 24 Jul 2017 07:48:43 -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 25723127058 for <ice@ietf.org>; Mon, 24 Jul 2017 07:48:43 -0700 (PDT)
Received: from compute2.internal (compute2.nyi.internal [10.202.2.42]) by mailout.nyi.internal (Postfix) with ESMTP id 752E1223C5; Mon, 24 Jul 2017 10:48:41 -0400 (EDT)
Received: from frontend1 ([10.202.2.160]) by compute2.internal (MEProxy); Mon, 24 Jul 2017 10:48:41 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=stpeter.im; h= content-transfer-encoding:content-type:date:from:message-id :mime-version:subject:to:x-me-sender:x-me-sender:x-sasl-enc :x-sasl-enc; s=fm1; bh=SYrABu1Pr97pIB8mxHvFp5SAVo/U63V4WbeS3uA4Z yM=; b=RpiNlX/JVePu3fHmQz+hb9o6HeUuR3vZ97vtQPRtp1aLFKpw7MFCeWPjF luBQCr3YC1HvApt4o8mcH+wNStMrhZ3BeGNMEDr7W4+2oqgYxS38x0JQkqddNbt/ SM2s5wRmWsGgnf1S0Jwr0kWLYRcjUEFbsEVJmGU1h0fRpL4QJ9ehVcMVO+ZptE9R csgxdlzvg6DRVR8LSMvGkOQI8hckheGWcohw2nqmKZWjO715bgW+mYB39+FwWOCm ewwCB5PmSOifCENgQAjdC7o7BMXKakL07sSDAwZxgIWXFEydeRFRtpfhC8v4jTD7 0Y59TD/NBGrrnU5O1Cw5NlsLsonkA==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=content-transfer-encoding:content-type :date:from:message-id:mime-version:subject:to:x-me-sender :x-me-sender:x-sasl-enc:x-sasl-enc; s=fm1; bh=SYrABu1Pr97pIB8mxH vFp5SAVo/U63V4WbeS3uA4ZyM=; b=L7D7e6QwdSyXsWS+gSeKkv43dhPH0/4QAO kJSsPLxDViCCTVrdwHb6TYHrd/8DbszD8A1fjFIHZeghA5Ll3ZF0omV5AQT5ixc6 bqf61v5MtNIxptwtUfQply+gEJu/q/IOADYE87QSwvDW/gSN9Ov7SOXbmpz87TQ/ iQ8DVCdmBh7CLjrxKq8qXKtV7HAMDdsZM8vMoiQXPKnZVa92AH5K967nsf8RqhAr +fGhmldneRAcMSItjOUrXI/LRLlpmDI148XlgW2ChzwPfVH2ZmafrEt5NiI5vUWJ jme0k1G6bc+jaBEfw6umm6fW1vOTxNzvST0wZvSDmSZQfbyRBdPQ==
X-ME-Sender: <xms:yQh2WTB1mxbx9tsby6sbyKFL1wPfqhGUEZ1EN2nOipS4d8wzP6JRZQ>
X-Sasl-enc: +jT+HNafJKCiti361qHRKhy43qRaMk9j1p+Lv5D2JhUj 1500907721
Received: from aither.local (unknown [76.25.4.24]) by mail.messagingengine.com (Postfix) with ESMTPA id 116337E16E; Mon, 24 Jul 2017 10:48:40 -0400 (EDT)
To: "ice@ietf.org" <ice@ietf.org>
From: Peter Saint-Andre <stpeter@stpeter.im>
Message-ID: <703694f1-6058-b2b7-9b7b-4df57d63ae4f@stpeter.im>
Date: Mon, 24 Jul 2017 08:48:39 -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
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/ice/IRcPdXoZgbXpCG_Do3iVqG3anck>
Subject: [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 14:48:45 -0000

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.

###

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.

###

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

###

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.

Peter