Subject: [Ice] Trickle: A couple of questions on section 7

From: Christer Holmberg <[email-masked]>
Date: Sun, 25 Feb 2018 19:41:04 +0000

Hi,

While catching some breath between trying to address IESG comments on 5245bis, I took a look at trickle-16, and I have a couple of questions.

Q1:

Section 7.1 says:

   "The ICE specification [rfc5245bis], Section 6.1.4.2, specifies that
   an agent will terminate the timer for a triggered check in relation
   to a 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."

Exactly what procedure in 5245bis dos this text refer to?

Q2:

Section 7.2 says:

   "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 and thereby effectively
   placing all remaining check lists into the Running state."

Exactly what procedure in 5245bis dos this text refer to?

Regards,

Christer

---

From: Peter Saint-Andre <[email-masked]>
Date: Mon, 26 Feb 2018 17:00:02 -0700

On 2/25/18 12:41 PM, Christer Holmberg wrote:
> Hi,
> 
>  
> 
> While catching some breath between trying to address IESG comments on
> 5245bis, I took a look at trickle-16, and I have a couple of questions.

Ah, there's nothing as relaxing as reviewing Internet-Drafts! ;-)

> *Q1:*
> 
>  
> 
> Section 7.1 says:
> 
>  
> 
>    “The ICE specification [rfc5245bis], Section 6.1.4.2, specifies that
> 
>    will be added to the check list incrementally.”
> 
>  
> 

Hmm, good question. Emil wrote that text so we might want to check with
him, but looking at 5245bis I'd say it refers to the last sentence in
Step 4 of §6.1.4.2:

   4.  If this step is reached, no check could be performed for the
       picked check list.  So, without waiting for timer Ta to expire
       again, select the next check list in the Running state and return
       to step #1.  If this happens for every single check list in the
       Running state, meaning there are no remaining candidate pairs to
       perform connectivity checks for, abort these steps.

However, that refers to exhausting all the candidate pairs to be checked
for all check lists, not to "terminat[ing] the timer for a triggered
check in relation to a check list once the agent has exhausted all
frozen pairs in the check list". So we might want to ping Emil.

> *Q2:*
> 
>  
> 
> Section 7.2 says:
> 
>  
> 
>    “When a check list is set to Failed as described above, 

Note: this "described above" is a summary of the definition from
§6.1.2.1 of 5245bis.

> regular ICE
>    placing all remaining check lists into the Running state.”
> 
>  
> 

Here again Emil wrote this text. My best guess is that this refers to
Step 4 in §6.1.4.2 of 5245bis:

   4.  If this step is reached, no check could be performed for the
       picked check list.
       [PSA: i.e., the check list is set to Failed.]
       So, without waiting for timer Ta to expire
       again, select the next check list in the Running state and return
       to step #1.

If we don't hear from Emil in the next few days I will ping him offlist.

Peter

---

From: Christer Holmberg <[email-masked]>
Date: Tue, 27 Feb 2018 07:42:51 +0000

Hi,

>Ah, there's nothing as relaxing as reviewing Internet-Drafts! ;-)

I¹m not into the whining-about-meeting-venue-location thing, so I had to
come up with something else :)

In general, since there have been quite a bit of changes in 5245bis, I
think all reference to 5245bis should be double checked. Also, there
should always be a reference to the specific section of 5245bis. That way
it is easier to double check, and also identity impacts if that section of
5245bis is updated in future (in a draft or an errata).

>> *Q1:*
>> 
>>  
>> 
>> Section 7.1 says:
>> 
>>  
>> 
>>    ³The ICE specification [rfc5245bis], Section 6.1.4.2, specifies that
>> 
>>    will be added to the check list incrementally.²
>> 
>>  
>> 

I think ³terminate the timer² is misleading wording. Timer Ta is not
terminated as long as there is at least one check list in ³Running² mode.

It is true that, whenever timer Ta fires, check lists that are not in the
³Running² mode will not be checked. But, even with legacy ICE, a check
list may put back in ³Running² mode if e.g., a triggered check changes
that status of a failed pair, and if that pair state change affects the
state of the check list.

So, unless I¹ve missed something, I don¹t think that trickle changes how
check lists are checked when Ta fires. If additional candidates have been
gathered, and added to a check list, step 4) in section 6.1.4.2 will not
be reached.

---

>> *Q2:*
>> 
>>  
>> 
>> Section 7.2 says:
>> 
>>  
>> 
>>    ³When a check list is set to Failed as described above,
>
>>    placing all remaining check lists into the Running state.²
>> 
>>  
>> 

Thanks!

Regards,

Christer

---

From: Peter Saint-Andre <[email-masked]>
Date: Tue, 27 Feb 2018 12:04:27 -0700

> 5245bis is updated in future (in a draft or an errata).

Agreed on all points.

> gathered, and added to a check list, step 4) in section 6.1.4.2 will not

I suspect that Emil might have been thinking about trickling of
candidates after nomination of a candidate pair, but we'll drag him into
the conversation one way or another. ;-)

Peter

---

From: Christer Holmberg <[email-masked]>
Date: Tue, 27 Feb 2018 19:29:04 +0000

Hi,

>>>> While catching some breath between trying to address IESG comments 
>>>> on 5245bis, I took a look at trickle-16, and I have a couple of questions.
>>>
>> I¹m not into the whining-about-meeting-venue-location thing, so I had 
>> to come up with something else :)
>> 
>> should always be a reference to the specific section of 5245bis. That 
>> way it is easier to double check, and also identity impacts if that 
>> section of 5245bis is updated in future (in a draft or an errata).
>
> Agreed on all points.
>
>>>> *Q1:*
>>>>
>>>> Section 7.1 says:
>>>>
>>>>    "The ICE specification [rfc5245bis], Section 6.1.4.2, specifies 
>>>>     that an agent will terminate the timer for a triggered check in 
>>>>     relation to a 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."
>>>>
>>> Hmm, good question. Emil wrote that text so we might want to check 
>>> with him, but looking at 5245bis I'd say it refers to the last 
>>> sentence in Step 4 of §6.1.4.2:
>>>
>>> However, that refers to exhausting all the candidate pairs to be 
>>> checked for all check lists, not to "terminat[ing] the timer for a 
>>> triggered check in relation to a check list once the agent has 
>>> exhausted all frozen pairs in the check list". So we might want to ping Emil.
>> 
>> I think "terminate the timer" is misleading wording. Timer Ta is not 
>> terminated as long as there is at least one check list in "Running" mode.
>> 
>> It is true that, whenever timer Ta fires, check lists that are not in 
>> the "Running" mode will not be checked. But, even with legacy ICE, a 
>> check list may put back in "Running" mode if e.g., a triggered check 
>> changes that status of a failed pair, and if that pair state change 
>> affects the state of the check list.
>> 
>> So, unless I¹ve missed something, I don¹t think that trickle changes 
>> how check lists are checked when Ta fires. If additional candidates 
>> have been gathered, and added to a check list, step 4) in section 
>> 6.1.4.2 will not be reached.
>
> I suspect that Emil might have been thinking about trickling of candidates after nomination of a 
> candidate pair, but we'll drag him into the conversation one way or another. ;-)

I think you raise an important point. Once you have nominated a pair, you can't nominate another pair (that would be "continuous nomination", which is outside the scope of trickle). I think you should add text about that, because I don't think it is currently mentioned. The draft does say that "ICE processing" might end before end-of-candidates have been conveyed, but that's a separate thing. I guess nomination would also implicitly mean end-of-candidates, and neither agent should trickle any more candidates after nomination is done.

Regards,

Christer

---

From: Peter Saint-Andre <[email-masked]>
Date: Tue, 27 Feb 2018 14:25:06 -0700

> I think you raise an important point. Once you have nominated a pair, you can't nominate another pair (that would be "continuous nomination", which is outside the scope of trickle). I think you sho…

Although my speculation about what Emil was thinking when he wrote that
text is likely incorrect, you are right that it would be good to clarify
this point in trickle spec.

Peter