]> git.ipfire.org Git - thirdparty/bird.git/commit
RIP: fix split horizon instability
authorMaria Matejka <mq@ucw.cz>
Tue, 17 Jun 2025 14:09:45 +0000 (16:09 +0200)
committerMaria Matejka <mq@ucw.cz>
Tue, 17 Jun 2025 14:09:45 +0000 (16:09 +0200)
commitc35b22e084ae84406bc106ca5b5adea7f9112c67
tree05d354bce6b963002970920ece002cb7d5229d2a
parent1acec6a5ed5ef4905d25d7f8d994451c006246a9
RIP: fix split horizon instability

When split horizon is active (by default), RIP withdraws routes from
these neighbors which have sent the best route to us. This helps with
reducing routing loops. When ECMP is on (by default), RIP behaves this
way only to the first neighbor in the list.

In BIRD 2, the neighbors were first sorted and then the first one was
chosen. This was lost in BIRD 3 and the first neighbor in the unsorted
list was considered instead.

The overall result in routing does not change so this is not technically
a bug and should not result in misrouting. The final result is unstable
and time-sensitive though, making debugging harder and automatic tests
fail.

We are rectifying this to be stable again so that our tests may get
green again.

Fixes: #284
Reproduced-By: David Petera while checking RIP in VRFs
Identified-By: Ondrej Zajicek
proto/rip/rip.c