[Babel-users] babeld slashes kernel route manipulation performance by 17000%

Juliusz Chroboczek jch at irif.fr
Wed Feb 23 23:55:01 GMT 2022


> Probably because babeld subscribes to netlink notifications for all new
> routes, and only filters them on the table name fairly late,
> specifically here:
> 
> https://github.com/jech/babeld/blob/master/kernel_netlink.c#L1175

Do you see how it can be done better?

> I run Bird in a similar setup as yours, BTW, but using the Babel
> implementation in Bird

Just to clarify: there are two major implementations of Babel:

  - babeld, which is a research project, and was written over the years by
    myself and a number of students, most of whom only stayed during an
    internship before moving on;
  - the one that's integrated in BIRD, which was written by Toke, one of
    the most competent programmers I have had the pleasure to meet.

While I find babeld more convenient than BIRD, since it requires little
configuration in many common cases, I recommend that people use BIRD in
preference to babeld in production deployments.

(Both BIRD and babeld aim to implement Babel and its extensions as
standardised and documented at the IETF, so any failure of the two
implementations to interoperate is considered as a bug.  In other words,
you should be able to mix and match BIRD and babeld in a single network.)

-- Juliusz



More information about the Babel-users mailing list