[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