]> git.ipfire.org Git - thirdparty/bird.git/commit
Move the interfaces locking domain from attrs to rtable stable-v3.1
authorIgor Putovny <igor.putovny@nic.cz>
Thu, 9 Oct 2025 14:08:47 +0000 (16:08 +0200)
committerMaria Matejka <mq@ucw.cz>
Tue, 4 Nov 2025 11:46:06 +0000 (12:46 +0100)
commit5ad5540472bfda2c926fdbc41fca77bcd79e01b6
tree03e4868ad5232a0fc554e34e115baab3323beafb
parent236c63772c40d6618572956f524055a2d5b0834b
Move the interfaces locking domain from attrs to rtable

The interface table domain level has been "attrs" due to limitations
imposed in the early stages of development when all operations on
routing tables, most notably next hop resolution, were done with the
table locked.

Another possible problem was accessing the BGP listen socket structures
which are on the "rtable" level.

Yet, with the introduction of the "service" level and stabilization of
other structures, the interface table domain level does not need to be
at "attrs" anymore, and therefore we may simply move it to "rtable"
as it is actually the right place for that.

This collision also caused problems with external resource locks which
are at the "attrs" level, causing a crash in interface reconfiguration
of RIP, Babel and OSPF, when the routines tried to acquire a resource
lock with the interface table being locked. Due to a lack of autotests
for interface reconfiguration, we missed this problem in BIRD 3.

This fixes #305.
nest/iface.c
nest/neighbor.c