On 1/27/17 9:29 AM, Nicolas Dichtel wrote: > Le 26/01/2017 à 19:00, David Miller a écrit : >> From: David Ahern <d...@cumulusnetworks.com> > [snip] >>> Quagga does not properly handle IPv6 multipath routes received from >>> the kernel. I checked this with debian/jessie version and our >>> version, and Donald reviewed the source. It is broken. >> >> If this is true, quagga is asbolutely not an argument for this "breaking" >> something. It doesn't break anything. > Ok, my tests also shows that quagga is buggy. > Let's change the way to advertise these routes. > > It would be great to also use RTA_MULTIPATH when a route is deleted (like in > your patch 1/2).
I have updated notifications to use RTA_MULTIPATH. Working on the multipath add/delete/replace permutations now and what the notification looks like. Add/replace is easy and the notifications use RTA_MULTIPATH. Notifications for the delete path are complicated given that a delete could remove only a subset of nexthops. Given that, we might have to settle for a notification for each nexthop delete. > > Note that there is still a difference between ipv4 and ipv6: in ipv4 when a > nexthop is added/updated/removed, the whole route must be deleted and added > again. In IPv6, nexthop can be managed one by one. > It means that in ipv4, the full route is always dumped, which is not the case > in > ipv6. > Yes. I have been working on how to delete a nexthop within an IPv4 route. It is much more complicated given how the route is stored compared to IPv6.