Hi list,

I know there are three patches to provide zebra the ability of handling
IPv6 ECMP routes received from protocol clients:

http://patchwork.quagga.net/patch/988/ (6WIND, 2014-06-25)
http://patchwork.quagga.net/patch/916/ (Cumulus, 2013-10-24)
http://patchwork.quagga.net/patch/678/ (Vincent Bernat, 2012-10-23)

As you know, the 6WIND ECMPs were tested long time ago, before Cumulus
and Vincent's ones because the Linux kernel's ECMP is from 6WIND in fact
(Nicolas/cc'd) who did upstream it on netdev. But it does not prevent
others to come with good ideas, so a taxonomy could help and I checked
them today.

Comparing with the 6WIND patch, the differences I can see from the other
two patches are:

(1) Cumulus vs. 6WIND

I would say, the two patches are doing nearly the same thing - composing
the multiple next-hops from the received IPv6 route, based on the rule
- N gateway addresses followed by N interface indexes, which complies
with the behavior in zapi_ipv6_route(). The only difference exists in
the implementation detail.

I made validations on this part of patch. And it seems work.

Beyond that above, Cumulus patch did more:

a) it validated each next-hop using rib_bogus_ipv6(); this would be good.
b) it accepted at most MULTIPATH_NUM next-hops; I think it's better to
   remove this limitation.
c) it enhanced rib_dump() to show both IPv4 and IPv6 routes; this is no
   more needed today.
d) it did some fixes in netlink_route_multipath() and rib_add_ipv4();
   this is no more needed today.

(2) Vincent Bernat vs. 6WIND

I would say, his patch could not work today (I made test).

It re-used zread_ipv4_add() for both IPv4 and IPv6, and renamed it to
zread_ipvX_add(). It did not notice that the IPv6 next-hops were not
provided as the sequence of IPv4 ones (please refer to zapi_ipv6_route).

See, it is a patch from 2 years ago. I did not check whether it could
work at that time.

Best regards,
Feng Lu

_______________________________________________
Quagga-dev mailing list
[email protected]
https://lists.quagga.net/mailman/listinfo/quagga-dev

Reply via email to