]> git.ipfire.org Git - thirdparty/bird.git/commit
Table: more best route refeed fixes
authorMaria Matejka <mq@ucw.cz>
Wed, 8 Jan 2025 19:22:21 +0000 (20:22 +0100)
committerMaria Matejka <mq@ucw.cz>
Thu, 9 Jan 2025 09:35:00 +0000 (10:35 +0100)
commita24ec59d2496cc4cb142fdcd93b68d44fe5f5048
tree9da5324e19743ce41ab02ed9a9903bb9ccf11002
parent9381f8f2d8256949cddc9b426f1494f33a9a1154
Table: more best route refeed fixes

Best route refeed is tricky. The journal may include repeatedly the same
route in the old and/or in the new position in case of flaps. We don't
like checking that fully in the RCU critical section which is already
way too long, thus we filter out the repeated occurence of the current
best route while keeping possibly more old routes.

We also don't want to send spurious withdraws, and we need to check that
only one notification per net is sent for RA_OPTIMAL.

There was also missing a rejected map update in case of idempotent
squashed update, and last but not least, the best route journal should
not include invalid routes (import keep filtered).
nest/rt-table.c