Subject: Re: [Ice] "waiting-for-candidates" state in trickle-ice

From: "Pal Martinsen (palmarti)" <[email-masked]>
Date: Wed, 2 Dec 2015 12:05:33 +0000

On 01 Dec 2015, at 03:04, Peter Saint-Andre <[email-masked]<mailto:[email-masked]>> wrote:

Hi all,

I've started to work on fixes to draft-ietf-ice-trickle for the open issues and the IETF 94 discussion items.

One such item was the addition of a "waiting-for-candidates" state to handle the situation when a checklist is empty and no candidate pairs have been sent or received.

Looking again at RFC 5245 and draft-ietf-ice-rfc5245bis, I'd say that in ICE core the concept of state applies to a candidate pair, not to a checklist. Therefore I suggest that we not attempt to define this new state for checklists in trickle-ice. However, I think it would be appropriate to add a few words about this situation (without formally calling it a state).

From section 5.7.4:

The check list itself is associated with a state, which captures the
   state of ICE checks for that media stream.  There are three states:

   Running:  In this state, ICE checks are still in progress for this
      media stream.

   Completed:  In this state, ICE checks have produced nominated pairs
      for each component of the media stream.  Consequently, ICE has
      succeeded and media can be sent.

   Failed:  In this state, the ICE checks have not completed
      successfully for this media stream.

   When a check list is first constructed as the consequence of an
   offer/answer exchange, it is placed in the Running state.

This is where I think we wanted the waiting-for-candidates state. Mostly because that would help me implement my state machine correctly. You could be in running and say that you are waiting for candidates, but that would somehow break the nice state-machine by adding flags etc I am in running, but waiting for candidates etc..

But the checklist states are somewhat hidden in the text, maybe it would be good to somehow highlight it a bit more in ICEbis?
(I can provide some text early next year.)

.-.
Pål-Erik

Peter

_______________________________________________
Ice mailing list
[email-masked]<mailto:[email-masked]>
https://www.ietf.org/mailman/listinfo/ice

---

From: Emil Ivov <[email-masked]>
Date: Wed, 2 Dec 2015 06:16:58 -0600

I really don't think we need such a state and that having the existing
"Wait" is enough. Also easier to implement than adding yet another state.

I am currently traveling but I'll try to look into this more by the end of
the week.

Emil

On Wednesday, 2 December 2015, Pal Martinsen (palmarti) <[email-masked]>
wrote:

>
> On 01 Dec 2015, at 03:04, Peter Saint-Andre <[email-masked]
> <javascript:_e(%7B%7D,'cvml',[email-masked]');>> wrote:
>
> Hi all,
>
> One such item was the addition of a "waiting-for-candidates" state to
> handle the situation when a checklist is empty and no candidate pairs have
> been sent or received.
>
> Looking again at RFC 5245 and draft-ietf-ice-rfc5245bis, I'd say that in
> ICE core the concept of state applies to a candidate pair, not to a
> checklist. Therefore I suggest that we not attempt to define this new state
> for checklists in trickle-ice. However, I think it would be appropriate to
> add a few words about this situation (without formally calling it a state).
>
>
> From section 5.7.4:
>
> This is where I think we wanted the waiting-for-candidates state. Mostly
> because that would help me implement my state machine correctly. You could
> be in running and say that you are waiting for candidates, but that would
> somehow break the nice state-machine by adding flags etc I am in running,
> but waiting for candidates etc..
>
> But the checklist states are somewhat hidden in the text, maybe it would
> be good to somehow highlight it a bit more in ICEbis?
> [email-masked] <javascript:_e(%7B%7D,'cvml',[email-masked]');>

-- 
sent from my mobile

---

From: Peter Saint-Andre <[email-masked]>
Date: Wed, 2 Dec 2015 15:30:08 -0700

Although I was wrong about check list not having states, I agree with 
Emil that we don't need to add more states here.

(I found a similar issue last night with potentially adding states for 
"Active" and "Frozen" at the check list level - see 
https://github.com/emcho/trickle-ice/issues/11 for my solipsistic 
ramblings.)

Peter

On 12/2/15 5:16 AM, Emil Ivov wrote:
> I am currently traveling but I'll try to look into this more by the end
> of the week.
>
> Emil
>
> On Wednesday, 2 December 2015, Pal Martinsen (palmarti)
> <[email-masked] <mailto:[email-masked]>> wrote:
>
>
>>     I've started to work on fixes to draft-ietf-ice-trickle for the
>>     open issues and the IETF 94 discussion items.
>>
>>     One such item was the addition of a "waiting-for-candidates" state
>>     to handle the situation when a checklist is empty and no candidate
>>     pairs have been sent or received.
>>
>>     Looking again at RFC 5245 and draft-ietf-ice-rfc5245bis, I'd say
>>     that in ICE core the concept of state applies to a candidate pair,
>>     not to a checklist. Therefore I suggest that we not attempt to
>>     define this new state for checklists in trickle-ice. However, I
>>     think it would be appropriate to add a few words about this
>>     situation (without formally calling it a state).
>>
>
>      From section 5.7.4:
>
>     This is where I think we wanted the waiting-for-candidates state.
>     Mostly because that would help me implement my state machine
>     correctly. You could be in running and say that you are waiting for
>     candidates, but that would somehow break the nice state-machine by
>     adding flags etc I am in running, but waiting for candidates etc..
>
>     But the checklist states are somewhat hidden in the text, maybe it
>     would be good to somehow highlight it a bit more in ICEbis?

---

From: "Pal Martinsen (palmarti)" <[email-masked]>
Date: Thu, 3 Dec 2015 13:46:03 +0000

Since I have not yet started any real development work with TrickleICE it is hard to be “authoritative”. But my gut feeling is still that it would have been nice to have the waiting for candidates state.

I see no harm done in adding states for active and frozen either. As the text clearly describes a checklist state (all candidates are frozen -> checklist are frozen).

Ill guess the important thing is to clean it up in a consistent way, today I find it somewhat hard to read.

.-.
Pål-Erik
On 02 Dec 2015, at 23:30, Peter Saint-Andre <[email-masked]<mailto:[email-masked]>> wrote:

Although I was wrong about check list not having states, I agree with Emil that we don't need to add more states here.

(I found a similar issue last night with potentially adding states for "Active" and "Frozen" at the check list level - see https://github.com/emcho/trickle-ice/issues/11 for my solipsistic ramblings.)

Peter

Emil

On Wednesday, 2 December 2015, Pal Martinsen (palmarti)
<[email-masked]<mailto:[email-masked]> <mailto:[email-masked]>> wrote:

   On 01 Dec 2015, at 03:04, Peter Saint-Andre <[email-masked]<mailto:[email-masked]>
   <javascript:_e(%7B%7D,'cvml',[email-masked]<mailto:[email-masked]>');>> wrote:

   Hi all,

    From section 5.7.4:

   .-.
   Pål-Erik

   Peter

   _______________________________________________
   Ice mailing list
   [email-masked]<mailto:[email-masked]> <javascript:_e(%7B%7D,'cvml',[email-masked]<mailto:[email-masked]>');>
   https://www.ietf.org/mailman/listinfo/ice

--
sent from my mobile