Subject: Re: [Ice] Contradiction regarding when an ICE agent is allowed to send media

From: Christer Holmberg <[email-masked]>
Date: Tue, 1 Nov 2016 12:50:02 +0000

Hi Bernard/Taylor,

Would you be able to create a pull request with the suggested changes?

Regards,

Christer

From: Ice <[email-masked]<mailto:[email-masked]>> on behalf of Bernard Aboba <[email-masked]<mailto:[email-masked]>>
Date: Friday 30 September 2016 at 02:20
To: Taylor Brandstetter <[email-masked]<mailto:[email-masked]>>
Cc: "[email-masked]<mailto:[email-masked]>" <[email-masked]<mailto:[email-masked]>>
Subject: Re: [Ice] Contradiction regarding when an ICE agent is allowed to send media

Looking over RFC 5245bis, there are a number of places in the text that should have been updated to allow passive-aggressive nomination that were instead left as is.  There are issues in Section 2.6 (which says "ICE will now send media using this pair"), Section 3 (which defines "selected pair" as "The candidate pair selected by ICE for sending and receiving media"), Section 6.2.3.1 (which still mentions aggressive nomination!) and Section 9.1.1.

A potential rewrite of Section 9.1.1 might look like this:

"9.1.1.  Procedures for Full Implementations

   A full implementation MUST NOT send media until it has a Valid list
   that contains a candidate pair for each component of that media
   stream.  Once that happens, the agent MAY begin sending media
   packets.

   An agent will send media to the remote candidate (setting the
   destination address and port of the packet equal to that remote candidate),
   and will send it from the local candidate.  When the local candidate is
   server or peer reflexive, media is originated from the base.  Media
   sent from a relayed candidate is sent from the base through that TURN
   server, using procedures defined in [RFC5766].

   If the local candidate is a relayed candidate, it is RECOMMENDED that
   an agent create a channel on the TURN server towards the remote
   candidate.  This is done using the procedures for channel creation as
   defined in Section 11 of [RFC5766]."

If those changes are made, it looks to me like the rest of the text from Section 9.1.1 could be deleted:

   "The selected pair for a component of a media stream is:

   o  empty if the state of the check list for that media stream is
      Running, and there is no previous selected pair for that component
      due to an ICE restart

   o  equal to the previous selected pair for a component of a media
      stream if the state of the check list for that media stream is
      Running, and there was a previous selected pair for that component
      due to an ICE restart

   o  equal to the highest-priority nominated pair for that component in
      the valid list if the state of the check list is Completed"

On Thu, Sep 29, 2016 at 3:57 PM, Bernard Aboba <[email-masked]<mailto:[email-masked]>> wrote:
There is a contradiction in draft-ietf-rfc5245bis because aggressive nomination was removed without making all the required changes to regular nomination to allow sending of media before a pair is nominated. So the text in draft-ietf-rfc5245bis Section 9.1.1 was carried over verbatim from RFC 5245 Section 11.1.1 instead of being adapted.  IMHO, the requirement for sending media in draft-ietf-rfc5245bis Section 9.1.2 (which currently only applies to a lite implementation) should be applied to all implementations (lite or full):

   A lite implementation MUST NOT send media until it has a Valid list
   that contains a candidate pair for each component of that media
   stream.  Once that happens, the agent MAY begin sending media
   packets.

Making this change should not impact an RFC 5245-compliant implementation since RFC 5245 Section 11.2 says:

   ICE implementations MUST be prepared to receive media on each
   component on any candidates provided for that component in the most
   recent offer/answer exchange (in the case of RTP, this would include
   both RTP and RTCP if candidates were provided for both).

On Thu, Sep 29, 2016 at 12:35 PM, Taylor Brandstetter <[email-masked]<mailto:[email-masked]>> wrote:
Section 6.2.1.1 of draft-ietf-ice-rfc5245bis-04 states:

Before the agent has received Binding responses
associated with the [nominated] candidiate pair, the agent can send media on any
candidiate for which it has received Binding responses.

To me, this would imply that until a pair is nominated, the ICE agent can send media on any pair with a local candidate that has received a binding response.

However, section 9.1.1 states:

If the selected pair for at least one component of a media stream is
empty, an agent MUST NOT send media for any component of that media
stream.

And the selected pair is empty until a pair is nominated, which means you can't send media until a pair is nominated. The examples at the end of Section 12 seems to reiterate this.

So, which is it? I was under the impression that aggressive nomination was being removed because you could accomplish essentially the same thing with regular nomination, by sending media before a pair is nominated (the so called "passive aggressive" nomination). But that doesn't seem to be allowed by section 9.1.1.

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

---

From: Bernard Aboba <[email-masked]>
Date: Mon, 7 Nov 2016 11:30:36 -0800

Done:
https://github.com/ice-wg/rfc5245bis/pull/20

On Tue, Nov 1, 2016 at 5:50 AM, Christer Holmberg <
[email-masked]> wrote:

> From: Ice <[email-masked]> on behalf of Bernard Aboba <
> [email-masked]>
> To: Taylor Brandstetter <[email-masked]>
> Cc: "[email-masked]" <[email-masked]>
> Looking over RFC 5245bis, there are a number of places in the text that
> should have been updated to allow passive-aggressive nomination that were
> instead left as is.  There are issues in Section 2.6 (which says "ICE will
> now send media using this pair"), Section 3 (which defines "selected pair"
> as "The candidate pair selected by ICE for sending and receiving media"),
> Section 6.2.3.1 (which still mentions aggressive nomination!) and Section
> 9.1.1.
>
> On Thu, Sep 29, 2016 at 3:57 PM, Bernard Aboba <[email-masked]>
> wrote:
>
>> There is a contradiction in draft-ietf-rfc5245bis because aggressive
>> nomination was removed without making all the required changes to regular
>> nomination to allow sending of media before a pair is nominated. So the
>> text in draft-ietf-rfc5245bis Section 9.1.1 was carried over verbatim
>> from RFC 5245 Section 11.1.1 instead of being adapted.  IMHO, the
>> requirement for sending media in draft-ietf-rfc5245bis Section 9.1.2
>> (which currently only applies to a lite implementation) should be applied
>> to all implementations (lite or full):
>>
>> On Thu, Sep 29, 2016 at 12:35 PM, Taylor Brandstetter <
>> [email-masked]> wrote:
>>
>>> To me, this would imply that until a pair is nominated, the ICE agent
>>> can send media on any pair with a local candidate that has received a
>>> binding response.
>>>
>>> And the selected pair is empty until a pair is nominated, which means
>>> you can't send media until a pair is nominated. The examples at the end of
>>> Section 12 seems to reiterate this.
>>>
>>> So, which is it? I was under the impression that aggressive nomination
>>> was being removed because you could accomplish essentially the same thing
>>> with regular nomination, by sending media before a pair is nominated (the
>>> so called "passive aggressive" nomination). But that doesn't seem to be
>>> allowed by section 9.1.1.
>>>
>>> [email-masked]

---

From: Christer Holmberg <[email-masked]>
Date: Mon, 7 Nov 2016 19:36:06 +0000

Thanks! :)

From: Bernard Aboba [mailto:[email-masked]]
Sent: 07 November 2016 21:31
To: Christer Holmberg <[email-masked]>
Cc: Taylor Brandstetter <[email-masked]>; [email-masked]
Subject: Re: [Ice] Contradiction regarding when an ICE agent is allowed to send media

Done:

On Tue, Nov 1, 2016 at 5:50 AM, Christer Holmberg <[email-masked]<mailto:[email-masked]>> wrote:
Hi Bernard/Taylor,

Regards,

Christer

   packets.