]> git.ipfire.org Git - thirdparty/bird.git/commit
Babel: Add support for the RTT extension
authorToke Høiland-Jørgensen <toke@toke.dk>
Thu, 1 Jun 2023 22:31:53 +0000 (00:31 +0200)
committerOndrej Zajicek <santiago@crfreenet.org>
Thu, 1 Jun 2023 22:31:53 +0000 (00:31 +0200)
commitf08abcb8dda6ff488fa1b52314a67d97aee059d7
tree097089b99330cda270b3b9ea14ae9183472802f7
parentd8cf3cad5104ab7a9887397b2a34d94c8a5f2aef
Babel: Add support for the RTT extension

This adds support to the Babel protocol for the RTT extension specified
in draft-ietf-babel-rtt-extension. While this extension is not yet at the
RFC stage, it is one of the more useful extensions to Babel[0], so it
seems worth having in Bird as well.

The extension adds timestamps to Hello and IHU TLVs and uses these to
compute an RTT to each neighbour. An extra per-neighbour cost is then
computed from the RTT based on a minimum and maximum interval and cost
value specified in the configuration. The primary use case for this is
improving routing in a geographically distributed tunnel-based overlay
network.

The implementation follows the babeld implementation when picking
constants and default configuration values. It also uses the same RTT
smoothing algorithm as babeld, and follows it in adding a new 'tunnel'
interface type which enables RTT by default.

[0] https://alioth-lists.debian.net/pipermail/babel-users/2022-April/003932.html
doc/bird.sgml
proto/babel/babel.c
proto/babel/babel.h
proto/babel/config.Y
proto/babel/packets.c