[Babel-users] Implementing Babel on Bird
Juliusz Chroboczek
jch at pps.univ-paris-diderot.fr
Wed Nov 20 19:56:59 UTC 2013
> Bird provides nice features for routing protocol programmers [1], such as
> a neighbour cache [2] or an events architecture [3]. Besides, the
> interface with the core is very well documented and looks quite clean.
>
> It turns out that implementing Babel would be quite difficult, because of
> a very questionable design choice: in Bird, IPv4 and IPv6 are *completely*
> separated.
Yes, I looked at Bird before I asked Matthieu to implement Babel in
Quagga, and that's one of the reasons I decided for Quagga.
> In the case of Babel, running two single-stack instances is not only
> cumbersome, but also difficult to implement, since we need IPv6 link-local
> even when working with IPv4 routes.
It's worse than that -- Babel uses unicast packets for some purposes,
and one of the two Babel instances running on the same (IPv6 UDP) port
wouldn't be able to get its unicast packets.
> I see multiple solutions for implementing Babel on Bird:
>
> 1/ Only implement IPv6 Babel.
Doable, but perhaps premature.
> 2/ Since Babel can use IPv4 to communicate between neighbours (see Section
> 4. of RFC 6126), the IPv4 implementation could use that. However, it
> wouldn't be interoperable with all known Babel implementations (babeld
> and Quagga).
I'm really not interested in implementing Babel over IPv4. That would
split the existing implementations into two incompatible camps.
> 3/ Redefine all needed structures and use link-local IPv6 anyway, even
> when compiled for IPv4. This would be tedious, would require to bypass
> most Bird abstractions, and the resulting code would probably never
> make it upstream.
I'd speak with upstream if I were you. I'm sure the nice chaps from
Charles University would love to hear about the issue.
> It would certainly earn Babel the title of "post-modern routing
> protocol", but I'm sure some people will complain.
I've just decided the title of my next talk ;-)
-- Juliusz
More information about the Babel-users
mailing list