I would also be very much interested in this. Back in 2015-07 I started a similar thread, and would be willing to help implement something. I'd need a few pointers into the code, though, as Bird isn't exactly trivial and time is unfortunately a scarce resource for us all.
This is the one feature that I really miss on Bird, coming from other Linux routing daemons. I migrated to Bird because it's much more practical to configure, and stable for that matter. But the IPv6 ECMP would sure be handy :) -- Israel G. Lugo Núcleo de Redes e Comunicações Direção de Serviços de Informática Instituto Superior Técnico On 27-01-2016 10:37, Ondrej Zajicek wrote: > On Tue, Jan 19, 2016 at 04:11:10PM +0100, Arno Töll wrote: >> Hi, >> >> On Tuesday 12 January 2016 00:09:34 Wilco Baan Hofman wrote: >> >>> In this case, the API is not symmetrical. You can set routes via the >>> multipath structures, but the Linux kernel splits this up into separate >>> routes internally, because with IPv6 you can now have multiple routes to >>> the same destination that are not linked together (why? Maybe to >>> remove/add one of the nexthops independently or something). >> >> arguably I think bird should adapt to whatever the public APIs of >> Linux provide, and not the other way around as long as Linux is a >> supported platform to bird. >> >> This makes me wonder if you guys would accept patches working around >> this asymmetry for ECMP route in bird in order to have compliant ECMP >> support in bird for IPv6 based on Ondrej Z.'s patch? If so, do you >> have any constraints? What about bird 2? > > Hi > > Sorry for a late answer. Patches for handling IPv6 ECMP support in Linux > with current API could be accepted if they are not too crazy. Unfortunately > the API has several problems that complicates its usage from BIRD. > > E.g.: 1. when asynchronous updates are received, they do not contain the > whole route, just the modified next hop. 2. when a new ECMP route > appears, it is announced as a sequence of next hops, but there is AFAIK > no flag for 'this is last next hop'. > > Seems to me that there are several options how to workaround that. For > start, we could support IPv6 ECMP only in non-learn mode. Or we could > support learn/import (for IPv6 ECMP) during periodic scans only. > > Using RTA_MULTIPATH in IPv6 Linux API is for backwards compatibility > (although it does not really provide it), so it would make sense to not > use that and just send muliple routes. > > The patch could be against int-new branch for BIRD 2. Or you could send > two patches, one against master for BIRD 1.x and one against int-new for > BIRD 2. >
signature.asc
Description: OpenPGP digital signature