[Babel-users] Loose ends with Babel

Juliusz Chroboczek Juliusz.Chroboczek at pps.jussieu.fr
Mon Jul 7 19:12:50 UTC 2008


There are a few things that keep nagging me about the current protocol
spec and implementation, and that I may decide to fix at some point.
This is more of a note to self then a public discussion, but don't
hesitate to chime in if you have any comments.


1. The IHU definition is broken

Babel identifies routers with router ids, and interfaces with
link-local addresses.

Link quality is a property of a pair of interfaces, not a pair of
routers.  The IHU message should be carrying an interface id (a
link-local address) rather than a router-id.  This is the fundamental
reason for the previous issue reported by Robert (the one with
multiple link-local addresses).

(I'm not so sure about HELLO messages; keeping the router id in them
 might be a good idea, in order to simplify debugging.)

Fixing that will require an incompatible protocol revision.  It's
definitely a good idea.


2. The handling of idle interfaces is idiosyncratic

Idle interfaces (see -i in the manual page) are handled in an
idiosyncratic manner, by a bunch of ifs sprinkled throughout the code.
It'd be nice to clean up this mess.


3. The handling of down interfaces is idiosyncratic

The handling of down interfaces (interfaces that are currently down,
or, if -l was specified, that report no link sense) are handled
idiosyncratically, by a bunch of ifs throughout the code.  I'm not
sure this can be fixed, cross-layer indications are notoriously tricky
to do in a modular way.


4. The protocol is bloated

The protocol currently uses fixed-length 24-byte messages, large
enough to contain an IPv6 address.  This means its sweet and simple,
but makes some messages somewhat larger than they could be.

Switching to variable-length messages (smaller for IPv4 than for IPv6)
will reduce the size of update messages by 2/3 for pure IPv4 networks,
and by 1/3 on mixed-stack networks.  I've done a pretty good job of
reducing unnecessary update traffic, so I'm not sure that it's really
worth the trouble.

This, again, will require an incompatible change, and I'm not sure
it's a good idea.


                                        Juliusz



More information about the Babel-users mailing list