On Thu, 2016-04-28 at 13:26 +0200, Christof Koehler wrote: > Hello, > > On Thu, Apr 28, 2016 at 06:50:58PM +0800, Ian Kent wrote: > > On Thu, 2016-04-28 at 11:10 +0200, Christof Koehler wrote: > > > > Sounds like I'll need to actually have a look at that RFC before > > doing > > anything, ;) > These might be nicer reads: > http://biplane.com.au/blog/?p=22 > http://biplane.com.au/blog/?p=30 > > Please note that the actual "ip addrlabel" output on a pristine 16.04 > is > prefix ::1/128 label 0 > prefix ::/96 label 3 > prefix ::ffff:0.0.0.0/96 label 4 > prefix 2001::/32 label 6 > prefix 2001:10::/28 label 7 > prefix 3ffe::/16 label 12 > prefix 2002::/16 label 2 > prefix fec0::/10 label 11 > prefix fc00::/7 label 5 > prefix ::/0 label 1 > so that catches ULAs in the fc00::/7 already with a label separating > them. I additional add > prefix 2001:638:708:1261:2000::/96 label 99 > prefix 2001:638:708:1261:1000::/96 label 99 > but that should not matter. > > > > However, ping times (response times) on ethernet effectively show > > > random variations, sometimes in the millisecond range. > > > > True but the worst case is you end up with a trivial load balancing > > effect. > > If addresses are equivalent that is a desirable effect. My goal > however > was to distinguish between GUA and ULA relying on the RFC for > selection > to avoid headaches. I will have to rethink this for sure. I've had a quick look at this and I'm not sure I need to do much at all to help with this. The proximity values I use for list insertion are fairly simple mined and I use gataddrinfo(3) everywhere. If I add an additional sort value for IPv6 addresses that lies between local address proximity and the next lower proximity sort value and use the order of addresses returned by getaddrinfi(3) I should get an order that is rfc 3484 with some adjustments made by glibc for real world experience and possibly some adjustments related to rfc 6724 to the extent glibc has been willing to adopt them. All I would need to do then is check the local interface comparison code since addresses corresponding to a local interface have special handling. The only difficulty would be with IPv4 addresses that also correspond to a local interface, due to the special handling. Would that approach help with what you're trying to achieve? Ian -- To unsubscribe from this list: send the line "unsubscribe autofs" in