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). -- Elen sila lumenn' omentielvo Ondrej 'Santiago' Zajicek (email: santiago@crfreenet.org) OpenPGP encrypted e-mails preferred (KeyID 0x11DEADC3, wwwkeys.pgp.net) "To err is human -- to blame it on a computer is even more so."