[PATCH 2/3] babel: Short-circuit route selection for routes we originate ourselves

Toke Høiland-Jørgensen toke at toke.dk
Tue May 1 00:23:17 CEST 2018



On 30 April 2018 22:32:18 CEST, Ondrej Zajicek <santiago at crfreenet.org> wrote:
>On Mon, Apr 30, 2018 at 05:15:18PM +0200, Toke Høiland-Jørgensen wrote:
>> Routes that are originated by this Babel instance doesn't have an
>entry in
>> e->selected, which means that the best route selection logic will
>always
>> pick another route when an update arrives for the same prefix. This
>will be
>> rejected by Bird core, which will cause a nice looping selection
>> procedure (depending on filters, of course).
>
>Hi
>
>I don't see the problem. Condition (e->router_id == p->router_id) means
>that the router propagates a locally originated route for given prefix.
>Even in this case it is necessary to select best incoming route (for
>the
>same prefix) and propagate it to nest. Then nest decides (based on
>filters, priority) whether received route is better than locally
>originated route. If so, best incoming route is propagated back to
>Babel
>instead of locally originated one (and also to other protocols
>including
>kernel routing table) and is announced by Babel further. Otherwise,
>nothing happens (locally originated is still selected as best and
>announced by Babel).

Hmm, it may be that I was just treating a symptom. I'll look at it again and possibly return with another patch :)

-Toke



More information about the Bird-users mailing list