]> git.ipfire.org Git - thirdparty/bird.git/commit
Bugfix
authorIgor Putovny <igor.putovny@nic.cz>
Fri, 28 Feb 2025 12:38:59 +0000 (13:38 +0100)
committerIgor Putovny <igor.putovny@nic.cz>
Fri, 28 Feb 2025 16:31:30 +0000 (17:31 +0100)
commitfacfb69d8b950f63ecda73f63ff017ef2cb2fbf8
tree5e1f63b26053eeeb64004c5b442b7ad0a34d848b
parentad774d6fc255a0db8693a84db69550d7e1e4c4fb
Bugfix

When removing prefix from the trie, we need to find the closest IN_FIB
ancestor of the updated node. However, since the updated node may still
have IN_FIB status, we need to check that the target node and updated node
are not the same.

This bug manifested itself in a following way. After running aggregator with
configuation A and reconfiguring it to configuration B, routes from A, which
should have been removed, were still present in the routing table. This was
caused by old prefixes not being removed from the trie.

Because of the missing condition that the updated node and its ancestor are not
the same, trie recalculation was called on prefix nodes which were, in most
cases, leaves. Therefore, trie was not updated at all. All prefixes were still
present in the trie, and thus in the routing table as well.
proto/aggregator/trie.c