Re: [MMUSIC] ICE candidate address selection update draft

Jonathan Lennox <> Tue, 07 August 2012 02:07 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 1C62D21F8669 for <>; Mon, 6 Aug 2012 19:07:58 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -2.509
X-Spam-Status: No, score=-2.509 tagged_above=-999 required=5 tests=[AWL=0.090, BAYES_00=-2.599]
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id mYR+JZivJoXj for <>; Mon, 6 Aug 2012 19:07:57 -0700 (PDT)
Received: from ( []) by (Postfix) with ESMTP id 7257421F8661 for <>; Mon, 6 Aug 2012 19:07:57 -0700 (PDT)
Received: from (localhost []) by (Postfix) with ESMTP id E2560554F2D; Mon, 6 Aug 2012 22:07:56 -0400 (EDT)
X-Virus-Scanned: by SpamTitan at mail.lan
Received: from HUB015.mail.lan (unknown []) by (Postfix) with ESMTP id 7CB09554F1E; Mon, 6 Aug 2012 22:07:56 -0400 (EDT)
Received: from BE235.mail.lan ([]) by HUB015.mail.lan ([]) with mapi; Mon, 6 Aug 2012 22:07:34 -0400
From: Jonathan Lennox <>
To: Ari Keranen <>
Date: Mon, 06 Aug 2012 22:07:53 -0400
Thread-Topic: [MMUSIC] ICE candidate address selection update draft
Thread-Index: Ac1z5QogRY98fn1HRDmwrq9QryRpKAAXA1fw
Message-ID: <C3759687E4991243A1A0BD44EAC823034DF5B10A45@BE235.mail.lan>
References: <> <> <> <> <> <> <> <> <>
In-Reply-To: <>
Accept-Language: en-US
Content-Language: en-US
acceptlanguage: en-US
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Cc: "" <>
Subject: Re: [MMUSIC] ICE candidate address selection update draft
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: Multiparty Multimedia Session Control Working Group <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Tue, 07 Aug 2012 02:07:58 -0000

On Monday, August 6 2012, Ari Keranen wrote:

> You have a good point. My main concern is that when you have a long list 
> of different kind of IPv6 addresses for each interface (global, 
> link-local, ULA, some temporary addresses, etc.), you will end up with a 
> huge checklist of host-host candidates (which have the highest 
> priority). If you have broken v6 connectivity, it's gonna take ages 
> before you move to v4 candidates that work.
> That being said, perhaps we should keep matching ULAs to globals but 
> just give that combination a lower priority than other host-host 
> candidate pairs. Link-locals we should still match only to link-locals 
> (right?).

I understand the problem, and I agree it'll be an issue.

Furthermore, if you need to fall back to v4, it's not enough to just
prioritize all the weird cases below the other host-host pairs -- the v4
address that works will probably be server-reflexive, which you'd prefer.

(If hosts really treat link-local as link-local -- i.e. you'll never have a
router for link-local, and trying to send from link-local to non-link-local
is a black hole or socket error at the sender -- then yes, there's no point
in pairing them with non-link-local addresses.  That's the case I was
thinking of as "impossible")

> > That said, if there were a well-defined algorithm to prioritize
> > sensible checks over absurd ones, that'd be fine.
> This is the tricky part. Right now the candidates use same priority 
> regardless of the other candidate's type. What we'd like to say is "for 
> ULA candidate with ULA pair you need priority X and with other types 
> priority Y". Then another question is what's the sensible trade-off 
> between complexity of prioritization and making these corner cases work..

My quick-and-dirty idea would be to take all the candidate pairs that the
current draft lists as "MUST NOT" combine, and put them in a secondary
("stupid") check list which follows all the other checks.  Within the
secondary list, checks are in the standard ICE priority order.

One question would be what the relative priority of weird v6 combinations
vs. v4 relays should be.

Jonathan Lennox