Subject: Re: [MMUSIC] Questions about ICE candidates with BUNDLE - suggested text

From: Christer Holmberg <[email-masked]>
Date: Mon, 22 Feb 2016 10:10:01 +0000

Hi,

Assuming we will only associated ICE candidates to the “m=” line associated with the offerer/answerer BUNDLE-tag, below is a first suggested of modified ‘ICE Considerations’ text:

-----------------------

11.  ICE Considerations

11.1.  General

   This section describes how to use the BUNDLE grouping extension
   together with the Interactive Connectivity Establishment (ICE)
   mechanism [RFC5245].

   The generic procedures for negotiating usage of ICE using SDP,
   defined in [I-D.ietf-mmusic-ice-sip-sdp], also apply to usage of ICE
   with BUNDLE, with the following exceptions:

   o  When BUNDLE addresses for a BUNDLE group have been selected for
      both endpoints, ICE connectivity checks and keep-alives only need
      to be performed for the whole BUNDLE group, instead of per bundled
      "m=" line.

   o  Among bundled "m=" lines with which the offerer has associated a
      shared address, the offerer only associates ICE-related media-
      level SDP attributes with the "m=" line associated with the
      offerer BUNDLE-tag.

   o  Among bundled "m=" lines with which the answerer has associated a
      shared address, the answerer only associates ICE-related media-
      level SDP attributes with the "m=" line associated with the
      answerer BUNDLE-tag.

   Support and usage of ICE mechanism together with the BUNDLE extension
   is OPTIONAL.

11.2.  SDP Offer/Answer Procedures

11.2.1.  General

   When an offerer associates a unique address with a bundled "m=" line
   (excluding any bundle-only "m=" line), it MUST also associate unique
   ICE candidates to the "m=" line, according to the procedures in
   [I-D.ietf-mmusic-ice-sip-sdp].

   An offerer MUST NOT associate ICE candidates with a bundle-only "m="
   line with a zero port value.

   NOTE: The bundle-only "m=" line, if accepted by the answerer, will
   inherit the candidates associated with the selected offerer BUNDLE
   address.  An answerer that does not support BUNDLE would not accept a
   bundle-only "m=" line.

   When an offerer or answerer associates a shared address (i.e. a
   previously selected BUNDLE address) with one or more bundled "m="
   lines, the offerer (or answerer) MUST only associate SDP 'candidate'
   attributes with the "m=" line associated with the offerer BUNDLE-tag
   (or the answerer BUNDLE-tag) address).  The offerer or answerer MUST
   NOT associate 'candidiate' attributes with any other bundled "m="
   line to which the offerer (or answerer) associates a shared address.
   This also apply to any other ICE-related media-level SDP attribute.

   NOTE: The following ICE-related media-level SDP attributes are
   defined in [I-D.ietf-mmusic-ice-sip-sdp]: 'candidiate', 'remote-
   candidates', 'ice-mismatch', 'ice-ufrag', 'ice-pwd', and 'ice-
   pacing'.

11.2.2.  Generating the Initial SDP Offer

   When an offerer generates an initial offer, it associates unique ICE
   candidates with the bundled "m=" lines, according to Section 11.2.1.

11.2.3.  Generating the SDP Answer

   When an answerer generates an answer that contains a BUNDLE group,
   the answerer MUST only associate SDP 'candidate' attributes (and
   other ICE-related media-level SDP attributes) with the "m=" line
   associated with the answerer BUNDLE-tag.

11.2.4.  Offerer Processing of the SDP Answer

   When an offerer receives an answer, if the answerer supports and uses
   the ICE mechanism and the BUNDLE extension, the offerer MUST
   associate the same ICE candidates, associated with the "m=" line
   representing the offerer BUNDLE address (selected by the answerer),
   with each bundled "m=" line.

11.2.5.  Modifying the Session

   When an offerer generates a subsequent offer, it associates unique or
   shared ICE candidates with the bundled "m=" lines, according to
   (Section 11.2.1).

-----------------------

Regards,

Christer

From: mmusic [mailto:[email-masked]] On Behalf Of Christer Holmberg
Sent: 21 February 2016 12:12
To: Roman Shpount <[email-masked]>
Cc: Paul Kyzivat <[email-masked]>; [email-masked]
Subject: Re: [MMUSIC] Questions about ICE candidates with BUNDLE

Hi Roman,

I didn't check whether some of the ICE attributes were session-level, but I agree with what you say: the same rule should apply to all media-level ICE attributes.

Regards,

Christer

Sent from my Windows Phone
________________________________
From: Roman Shpount<mailto:[email-masked]>
Sent: ‎21/‎02/‎2016 08:21
To: Christer Holmberg<mailto:[email-masked]>
Cc: Peter Thatcher<mailto:[email-masked]>; [email-masked]<mailto:[email-masked]>; Paul Kyzivat<mailto:[email-masked]>
Subject: Re: [MMUSIC] Questions about ICE candidates with BUNDLE
On Sat, Feb 20, 2016 at 12:57 PM, Christer Holmberg <[email-masked]<mailto:[email-masked]>> wrote:
>> Correct, and that's one reason I suggest that we limit the scope to ICE, eventhough we probably
>> could do the same thing for any IDENTICAL and TRANSPORT category attribute.
>
​> While it would be nice to remove any duplication, the duplication is particularly painful for ICE candidates, because
> there can be a lot of them, and because they change without any offer/answer action (thanks to trickle ICE). ​
> So if we just covered that candidates, we'd be getting most of the value.

Assuming the scope is ICE, shouldn't the same still apply also to other ICE related attributes? I assume the values for the "remote-candidates",  "ice-lite", "ice-mismatch", "ice-ufrag", "ice-pwd", "ice-pacing" and "ice-options" attributes will be identical within a BUNDLE group, so...

"ice-lite" and "ice-options" are session level only candidates, so they should not be in the m= line BUNDLE or any other type. The same logic that applies to ICe candidates should apply to other media level ICE SDP attributes or things will break

Regards,
_____________
Roman Shpount

---

From: Roman Shpount <[email-masked]>
Date: Mon, 22 Feb 2016 14:29:23 -0500

On Mon, Feb 22, 2016 at 5:10 AM, Christer Holmberg <
[email-masked]> wrote:

> Assuming we will only associated ICE candidates to the “m=” line
> associated with the offerer/answerer BUNDLE-tag, below is a first suggested
> of modified ‘ICE Considerations’ text:
>
>
>
> -----------------------
>
>
>
> 11.  ICE Considerations
>
>
>
> 11.1.  General
>
>
>
I am not 100% sure about what exactly is meant by ICE candidate being
associated with an m= line. Does this mean ICE candidate is created for
this m= line and "candidate" SDP attribute is included in this m= line?

Overall the text is good, but I would explicitly replace "ICE candidates"
with "ICE candidates or any other ICE-related media-level SDP attributes"
to avoid any potential confusion. This will also make the phrase "This also
apply to any other ICE-related media-level SDP attribute" unnecessary.
_____________
Roman Shpount

---

From: Christer Holmberg <[email-masked]>
Date: Mon, 22 Feb 2016 20:09:50 +0000

Hi Roman,

My intention was to replace “ICE candidates” with “SDP ‘candidate’ attributes” when related to m= lines. Seems like I forgot about it once I got past the General section… :)

Regards,

Christer

From: Roman Shpount [mailto:[email-masked]]
Sent: 22 February 2016 21:29
To: Christer Holmberg <[email-masked]>
Cc: [email-masked]; Paul Kyzivat <[email-masked]>; Peter Thatcher <[email-masked]>; Ari Keränen <[email-masked]>
Subject: Re: [MMUSIC] Questions about ICE candidates with BUNDLE - suggested text

On Mon, Feb 22, 2016 at 5:10 AM, Christer Holmberg <[email-masked]<mailto:[email-masked]>> wrote:
Assuming we will only associated ICE candidates to the “m=” line associated with the offerer/answerer BUNDLE-tag, below is a first suggested of modified ‘ICE Considerations’ text:

-----------------------

11.  ICE Considerations

11.1.  General

11.2.1.  General

I am not 100% sure about what exactly is meant by ICE candidate being associated with an m= line. Does this mean ICE candidate is created for this m= line and "candidate" SDP attribute is included in this m= line?

Overall the text is good, but I would explicitly replace "ICE candidates" with "ICE candidates or any other ICE-related media-level SDP attributes" to avoid any potential confusion. This will also make the phrase "This also apply to any other ICE-related media-level SDP attribute" unnecessary.
_____________
Roman Shpount

---

From: Paul Kyzivat <[email-masked]>
Date: Mon, 22 Feb 2016 15:14:03 -0500

Christer,

[I'm replying to Christer, not Roman. For some reason I can't find 
Christer's original message in my email.]

This generally seems good to me. I noticed one thing:

While I understand the intent, you are using "associate", "associates" 
or "associated" in multiple ways, that may be confusing to some readers. 
E.g.:

...
...
...

So, which one of these things is not like the others? (This is a game we 
play with kids. Do they do it in Sweden too?)

In most cases this is talking about where you put things in the SDP. But 
the last one above isn't that - it is about the implementation taking 
data from the answer and using it to update internal data structures.

I don't have a specific suggestion for improving it. But I think it 
would be good to use someting other that "associate" in this case. I 
*think* it is the only place where it is used this way.

	Thanks,
	Paul

On 2/22/16 2:29 PM, Roman Shpount wrote:
> On Mon, Feb 22, 2016 at 5:10 AM, Christer Holmberg
> <[email-masked] <mailto:[email-masked]>>
> wrote:
>
>     associated with the offerer/answerer BUNDLE-tag, below is a first
>     suggested of modified ‘ICE Considerations’ text:
>
>     __ __
>
>     -----------------------____
>
>     __ __
>
>     11.  ICE Considerations____
>
>     __ __
>
>     11.1.  General____
>
>     __ __
>
>         This section describes how to use the BUNDLE grouping extension____
>
>         together with the Interactive Connectivity Establishment (ICE)____
>
>         mechanism [RFC5245].____
>
>     __ __
>
>         The generic procedures for negotiating usage of ICE using SDP,____
>
>         defined in [I-D.ietf-mmusic-ice-sip-sdp], also apply to usage of
>     ICE____
>
>         with BUNDLE, with the following exceptions:____
>
>     __ __
>
>         o  When BUNDLE addresses for a BUNDLE group have been selected
>     for____
>
>            both endpoints, ICE connectivity checks and keep-alives only
>     need____
>
>            to be performed for the whole BUNDLE group, instead of per
>     bundled____
>
>            "m=" line.____
>
>     __ __
>
>         o  Among bundled "m=" lines with which the offerer has
>     associated a____
>
>            shared address, the offerer only associates ICE-related
>     media-____
>
>            level SDP attributes with the "m=" line associated with the____
>
>            offerer BUNDLE-tag.____
>
>     __ __
>
>         o  Among bundled "m=" lines with which the answerer has
>     associated a____
>
>            shared address, the answerer only associates ICE-related
>     media-____
>
>            level SDP attributes with the "m=" line associated with the____
>
>            answerer BUNDLE-tag.____
>
>     __ __
>
>         Support and usage of ICE mechanism together with the BUNDLE
>     extension____
>
>         is OPTIONAL.____
>
>     __ __
>
>     11.2.  SDP Offer/Answer Procedures____
>
>     __ __
>
>     11.2.1.  General____
>
>     __ __
>
>         When an offerer associates a unique address with a bundled "m="
>     line____
>
>         (excluding any bundle-only "m=" line), it MUST also associate
>     unique____
>
>         ICE candidates to the "m=" line, according to the procedures in____
>
>         [I-D.ietf-mmusic-ice-sip-sdp].____
>
>     __ __
>
>         An offerer MUST NOT associate ICE candidates with a bundle-only
>     "m="____
>
>         line with a zero port value.____
>
>     __ __
>
>         NOTE: The bundle-only "m=" line, if accepted by the answerer,
>     will____
>
>         inherit the candidates associated with the selected offerer
>     BUNDLE____
>
>         address.  An answerer that does not support BUNDLE would not
>     accept a____
>
>         bundle-only "m=" line.____
>
>     __ __
>
>         When an offerer or answerer associates a shared address (i.e. a____
>
>         previously selected BUNDLE address) with one or more bundled
>     "m="____
>
>         lines, the offerer (or answerer) MUST only associate SDP
>     'candidate'____
>
>         attributes with the "m=" line associated with the offerer
>     BUNDLE-tag____
>
>         (or the answerer BUNDLE-tag) address).  The offerer or answerer
>     MUST____
>
>         NOT associate 'candidiate' attributes with any other bundled
>     "m="____
>
>         line to which the offerer (or answerer) associates a shared
>     address.____
>
>         This also apply to any other ICE-related media-level SDP
>     attribute.____
>
>     __ __
>
>         NOTE: The following ICE-related media-level SDP attributes are____
>
>         defined in [I-D.ietf-mmusic-ice-sip-sdp]: 'candidiate', 'remote-____
>
>         candidates', 'ice-mismatch', 'ice-ufrag', 'ice-pwd', and 'ice-____
>
>         pacing'.____
>
>     __ __
>
>     11.2.2.  Generating the Initial SDP Offer____
>
>     __ __
>
>         When an offerer generates an initial offer, it associates unique
>     ICE____
>
>         candidates with the bundled "m=" lines, according to Section
>     11.2.1.____
>
>     __ __
>
>     11.2.3.  Generating the SDP Answer____
>
>     __ __
>
>         When an answerer generates an answer that contains a BUNDLE
>     group,____
>
>         the answerer MUST only associate SDP 'candidate' attributes (and____
>
>         other ICE-related media-level SDP attributes) with the "m=" line____
>
>         associated with the answerer BUNDLE-tag.____
>
>     __ __
>
>     11.2.4.  Offerer Processing of the SDP Answer____
>
>     __ __
>
>         When an offerer receives an answer, if the answerer supports and
>     uses____
>
>         the ICE mechanism and the BUNDLE extension, the offerer MUST____
>
>         associate the same ICE candidates, associated with the "m=" line____
>
>         representing the offerer BUNDLE address (selected by the
>     answerer),____
>
>         with each bundled "m=" line.____
>
>     __ __
>
>     11.2.5.  Modifying the Session____
>
>     __ __
>
>         When an offerer generates a subsequent offer, it associates
>     unique or____
>
>         shared ICE candidates with the bundled "m=" lines, according to____
>
>         (Section 11.2.1).____
>
>
>
> Overall the text is good, but I would explicitly replace "ICE
> candidates" with "ICE candidates or any other ICE-related media-level
> SDP attributes" to avoid any potential confusion. This will also make
> the phrase "This also apply to any other ICE-related media-level SDP
> attribute" unnecessary.
> _____________
> Roman Shpount

---

From: Christer Holmberg <[email-masked]>
Date: Mon, 22 Feb 2016 20:18:23 +0000

Hi Paul,

I am trying to follow the same style as BUNDLE in general. Yes, I know it's messy, and I've lost count of the number of times I've had to re-write everything, but I am not going to do it again. 

Now, I did put together the new ICE text rather quickly, so there may be some mistakes, though.

Regards,

Christer

-----Original Message-----
From: Paul Kyzivat [mailto:[email-masked]] 
Sent: 22 February 2016 22:14
To: Roman Shpount <[email-masked]>; Christer Holmberg <[email-masked]>
Cc: [email-masked]; Peter Thatcher <[email-masked]>; Ari Keränen <[email-masked]>
Subject: Re: [MMUSIC] Questions about ICE candidates with BUNDLE - suggested text

Christer,

[I'm replying to Christer, not Roman. For some reason I can't find Christer's original message in my email.]

So, which one of these things is not like the others? (This is a game we play with kids. Do they do it in Sweden too?)

In most cases this is talking about where you put things in the SDP. But the last one above isn't that - it is about the implementation taking data from the answer and using it to update internal data structures.

I don't have a specific suggestion for improving it. But I think it would be good to use someting other that "associate" in this case. I
*think* it is the only place where it is used this way.

	Thanks,
	Paul

On 2/22/16 2:29 PM, Roman Shpount wrote:
> associated with an m= line. Does this mean ICE candidate is created 
> for this m= line and "candidate" SDP attribute is included in this m= line?
>

---

From: Paul Kyzivat <[email-masked]>
Date: Mon, 22 Feb 2016 15:24:49 -0500

> I am trying to follow the same style as BUNDLE in general. Yes, I know it's messy, and I've lost count of the number of times I've had to re-write everything, but I am not going to do it again.

Yes, I understand, and appreciate how difficult it has been to get 
something that everyone can understand and agree with.

> Now, I did put together the new ICE text rather quickly, so there may be some mistakes, though.

I *think* it is only the one place that is problematic, and I think it 
is in new text. And since it is the one that has different meaning than 
the others, changing the wording for it shouldn't disrupt anything else.

	Thanks,
	Paul