[PATCH 0/3] babel: Add support for the RTT extension

Toke Høiland-Jørgensen toke at toke.dk
Mon Feb 27 00:14:23 CET 2023


Daniel Gröber <dxld at darkboxed.org> writes:

> Hi,
>
> On Sun, Feb 26, 2023 at 11:10:03PM +0100, Toke Høiland-Jørgensen via Bird-users wrote:
>> Note that this series conflicts with Daniel's patches for moving the
>> route selection into the Bird nest. Figured I'd send them now so this can
>> be part of the discussion of that other patch (and also Daniel is one of
>> the current users of this extension so I expect he'd be interested in
>> having the two be compatible).
>
> Indeed I've been using these patches for a while, but I've had to switch to
> babeld due to lack of proper route filtering ;) Still consider this
>
>     Tested-By: Daniel Gröber <dxld at darkboxed.org>
>
> To clarify: it's really only the metric smoothing patch that's in conflict
> with my patch. I would advocate for merging only the other two patches for
> now while we figure out how to rework the smoothing on top of my patch. I'm
> happy to do the rework we just need to come up with a plan for that :)

Hmm, I think the way to handle this is basically:

- Add the smoothed metric as a new route attribute (so it's also
  available to filters)
- Change babel_rte_better() to incorporate the smoothed metric (from the
  attribute) in its comparison
- Change the decay logic to be timer-based instead of calculating the
  smoothed metric on demand

That last bit is probably the biggest change. We can't really do the
cached on-demand calculation of the smoothed metric if we're sticking it
in an attribute. So instead, we'll have to set a periodic timer that
re-announces the route with a new smoothed metric at an interval. Doing
this as part of babel_expire_routes() would be the logical place, I
suppose (and the interval fits with the current BABEL_SMOOTHING_STEP).
I'm not sure what impact this would have in terms of runtime overhead,
but I think it might actually simplify the code (no need for the
babel_update_smoothed_metric()/babel_smoothed_metric() split).

-Toke



More information about the Bird-users mailing list