Subject: Re: [RFC PATCH net-next v2 0/1] Add support of ECMPv6

From: Nicolas Dichtel <[email-masked]>
Date: Fri, 14 Sep 2012 15:35:27 +0200

Le 14/09/2012 11:40, Vincent Bernat a écrit :
>   ❦ 14 septembre 2012 09:59 CEST, Nicolas Dichtel <[email-masked]> :
>
>> Here is an example of a command to add an ECMP route:
>> $ ip -6 route add 3ffe:304:124:2306::/64 \
>> 	nexthop via fe80::230:1bff:feb4:e05c dev eth0 weight 1 \
>> 	nexthop via fe80::230:1bff:feb4:dd4f dev eth0 weight 1
In fact, I use this command as a shortcut. You can also use:
$ ip -6 route add 3ffe:304:124:2306::/64 via fe80::230:1bff:feb4:dd4f dev eth0
$ ip -6 route append 3ffe:304:124:2406::/64 via fe80::230:1bff:feb4:dd4f dev eth0

and these commands will output two standard netlink messages, without 'nexthop' 
lines.

>
> When displaying ECMP routes, the display is different than for IPv4: we
> get two distinct routes instead of an ECMP route (with nexthop
> keyword).
Sure, this implementation stores each 'nexthop' like a standard route in the 
kernel table.

>
> With IPv4:
>
> 193.252.X.X/26  proto zebra  metric 20
> 	nexthop via 193.252.X.X  dev bae1 weight 1
> 	nexthop via 193.252.X.X  dev bae2 weight 1
>
> With IPv6:
>
> 2a01:c9c0:X:X::/64 via fe80::215:17ff:fe85:76b9 dev bae1 metric 11
> 2a01:c9c0:X:X::/64 via fe80::222:91ff:fe4e:b000 dev bae2 metric 11
>
> If I capture the netlink message from the add command, put it in a file
> and use "ip monitor file ...", I see this:
>
> 2a01:c9c0:X:X::/64
> 	nexthop via fe80::215:17ff:fe85:76b9  dev if12 weight 1
> 	nexthop via fe80::222:91ff:fe4e:b000  dev if11 weight 1
>
> Therefore, the problem is not in iproute2 which knows how to display
> those ECMP routes. I fear that this difference make support in routing
> daemons more difficult.
Hmm, can you elaborate? Our routing daemon, quagga, manage it without any problem.