[Babel-users] Aggregating and visualising data from multiple Babel routers

Juliusz Chroboczek jch at pps.univ-paris-diderot.fr
Sat Jul 5 16:32:28 UTC 2014


Baptiste:

> http://ze.polyno.me/babel/babelcli.py

Cool.

> python3 babelcli.py localhost:33123 other_router:3333 172.23.184.{1..9}:3333

Baptiste, look into the mirror, repeat to yourself "I can do it", and jump
into the Javascript code.  Gabriel's code is pretty clean, and you'll find
yourself wondering what it was that frightened you.

> The script continuously generates a graphviz file at "/tmp/babel.dot"

Gabriel's code speaks to an incomprehensible library which does pretty
much the same.  You'll find it easy.

Gabriel:

> In any case, you're perfectly right, it is not possible to map
> neighbours to their router-id in the general case.  Maybe we should have
> a new TLV or sub-TLV for advertising router-id between neighbours ;)

As Baptiste mentioned, the goal of a routing protocol is to build routes.
Anything that's not directly relevant to this goal should not be included
in the routing protocol.

The important thing to understand is that a neighbour association is
between interfaces, not between routers; therefore Hello and IHU packets
do not carry a router-id, just a link-local address.  It would certainly
be possible, and not too onerous, to either add a sub-TLV to Hello to make
the router-id explicit, or to add a flag to Update that identifies
locally redistributed routes.  However since neither of these pieces of
information is relevan to routing, I find the idea somewhat distasteful.

I'm still hoping we find a better solution.  If we don't, I'll take the
easy way out, sure.  For now, the current heuristic works fine.

Gabriel:

> Yes indeed. In fact, babeld does not keep track of the current state, so
> it sometimes issues "change" events even when no field has changed at
> all!

Uh-huh.  I take a lot of care to avoid sending updates when little or
nothing has changed (see the triggered updates code in route.c), but for
the monitoring interface, I've decided to send an update as soon as
something may have changed.  This simplifies the code, and I'm trusting
Gabriel to filter out those spurious events.  I'll be glad to accept
patches to avoid that, as long as they're not too messy.

-- Juliusz



More information about the Babel-users mailing list