Subject: Re: [Ice] Benjamin Kaduk's Discuss on draft-ietf-ice-pac-04: (with DISCUSS and COMMENT) - COMMENT

From: Christer Holmberg <[email-masked]>
Date: Wed, 22 Apr 2020 12:16:26 +0000

Hi Benjamin,

In this reply I will address your COMMENT issues.
    
    ----------------------------------------------------------------------
    COMMENT:
    ----------------------------------------------------------------------
    
>    [I also had Éric's question about the Updates relationship, so thanks for
>    that thread.]
>    
>    Section 4
>    
>       While the timer is running, the ICE agent MUST NOT set the state of a
>       checklist to Failed, even if the checklist has no pairs left to
>       check.  As a result, the ICE agent will not remove any data streams
>       or set the state of the ICE session to Failed as long as the timer is
>       running.
>    
>    This is, IIUC, the crux of the Discuss point -- how does this affect Setion
>    7.2.5.4 of RFC 8445?
  
Please see my other reply. Section 7.2.5.4 is what the draft modifies.
  
---

>       When the timer eventually elapses, the ICE agent MUST resume typical
>       ICE processing, including setting any checklists containing only
>       Failed pairs to the Failed state, as usual, and handling any
>    
>    I don't think "containing only Failed pairs" is exactly the criterion used
>    by RFC 8445.
  
Correct. 

What about the following suggested text:

   "When the timer eventually elapses, the ICE agent MUST resume typical
   ICE processing, including setting the state of a checklist to Failed if there
   are no pairs left to check,  and handling any consequences as indicated
   in [RFC8445], Section 8.1.2.  Naturally, if there are no such checklists,
   no action is necessary."

---

>       One consequence of this behavior is that in cases where ICE should
>       fail, e.g., where both sides provide candidates with unsupported
>       address families, ICE will no longer fail immediately, and only fail
>       when the PAC timer expires.  However, because most ICE scenarios
>       require an extended period of time to determine failure, the fact
>       that some specific scenarios no longer fail fast should have minimal
>       application impact, if any.
>   
>   Are there any scenarios that are guaranteed to fail both with and without
>    PAC that could be special-cased to still fail fast?  (The example given of
>    "unsupported address families" does not seem like it is one, off the top of
>    my head.)
  
ICE-PAC does not guarantee success. ICE-PAC only makes an ICE agent wait for additional candidates in cases where it currently would declare Failure, but such additional candidates may of course never come.

Also, as described in Section 8.1.1 of RFC 8445, and ICE agent can decide to terminate the ICE processing whenever it wants, and it could of course do that before there are valid pairs for all streams - no matter if the PAC timer is used or not. But, ICE-PAC addresses that in the last paragraph of Section 4 (related to your comment below).

---
  
>       MAY use the PAC timer to do so.  As always, the controlling ICE agent
>       retains full discretion, and MAY decide, based on its own criteria,
>       to nominate pairs prior to the timer elapsing.
>    
>    nit(?): I'd consider going with "PAC timer" again here at the end of the
>    sentence.
    
I can do that.

---
    
Regards,

Christer

---

From: Benjamin Kaduk <[email-masked]>
Date: Thu, 23 Apr 2020 19:25:49 -0700

> In this reply I will address your COMMENT issues.

I don't see any obvious problems with this.  (I think when I made this
comment I was looking at "For each checklist in the checklist set, if all
of the candidate pairs are in either Failed or Succeeded state, and if
there is not a valid pair in the valid list for each component of the data
stream associated with the checklist, the state of the checklist is set to
Failed." from https://tools.ietf.org/html/rfc8445#section-7.2.5.4 but your
new text covers relevant things.)

> Also, as described in Section 8.1.1 of RFC 8445, and ICE agent can decide to terminate the ICE processing whenever it wants, and it could of course do that before there are valid pairs for all stre…

Thanks for these clarifications.  (To be clear, I was just wondering if the
"some specific scenarios [that] no longer fail fast" could be optimized by
special-casing a specific case that will always fail even with PAC, so as
to still fail fast, but I don't think there's anything to do here.)

-Ben

---

From: Christer Holmberg <[email-masked]>
Date: Fri, 24 Apr 2020 07:16:54 +0000

Hi,

    ---
     
    > new text covers relevant things.)
    
   Ok.

    ---
     
    >> ICE-PAC does not guarantee success. ICE-PAC only makes an ICE agent wait for additional candidates in cases where it currently would
    >> declare Failure, but such additional candidates may of course never come.
    >> 
    >> Also, as described in Section 8.1.1 of RFC 8445, and ICE agent can decide to terminate the ICE processing whenever it wants, and it could of course do that before there are valid pairs for all streams - no matter if the
    >> PAC timer is used or not. But, ICE-PAC addresses that in the last paragraph of Section 4 (related to your comment below).
    >
    
     Ok.

    ---

    ---
         
    Regards,
     
    Christer