BIRD 3.2.0 and 2.18 released
Dear BIRD users, we are releasing BIRD versions 3.2.0 and 2.18. We have implemented BGP dynamic onlink/unnumbered and link-local connection scenarios and fixed various behavior bugs in reconfiguration. Also, AS Sets in AS Paths are now considered malformed by default. For BIRD 3.2.0, we have split back the `igp_metric` attribute so that now you may find also `local_metric` where applicable. There was a confusion in BIRD 3.0 and 3.1 arising from two distinct attributes in BIRD 2 named the same in the code, and me not understanding what Santiago was telling me about that. More on that in updated 3.2 documentation. We have done various minor updates, e.g. flags in RAdv (both versions), fixed a RIP non-determinism (v3) and additional CLI configuration bugs. There have been some more core reworks, removing some more performance chokepoints. Both versions also include all relevant fixes applied for 3.1.5 and 2.17.3. Considering unfinished work, we also have several Babel patches pending which we failed again to review in time to merge into 2.18. We'll do them as soon as possible. Also, in BIRD 3.x, the "show route for" displays all covering routes instead of just the longest prefix match. We're working on a fix but it's quite a can of worms. Officially supported versions are now: - 3.2.0 and 2.18 until 6 months after 3.3.0 and 2.19 get released - LTS 3.1.x and 2.17.x, expected to track Debian Trixie The DEB packages in pkg.labs.nic.cz are already there, and RPMs will come soon. Please note that the upstream DEBs weren't built directly from the tagged commit but from the `release-v2.18` and `release-v3.2` branch because of our current CI limitations. We'll fix that for later versions. Happy new year! Maria and the BIRD Team -- Maria Matejka (she/her) | BIRD Team Leader | CZ.NIC, z.s.p.o.
Good morning Maria, that is amazing news, especially the inclusion of bgp dynamic peering is something I've been looking for for a long time. In regards to packaging, as soon as the updated bird lands in Alpine Linux, I will rebuild ungleich/bird. If I have some spare time I might also write a small script allowing for building a container from the bird source code directly - Maria ping me offlist in case you are interested/ready for building containers on your side, I'd then align the script with your CI capabilities. BR, Nico Maria Matejka via Bird-users <bird-users@network.cz> writes:
Dear BIRD users,
we are releasing BIRD versions 3.2.0 and 2.18.
We have implemented BGP dynamic onlink/unnumbered and link-local connection scenarios and fixed various behavior bugs in reconfiguration. Also, AS Sets in AS Paths are now considered malformed by default.
For BIRD 3.2.0, we have split back the igp_metric attribute so that now you may find also local_metric where applicable. There was a confusion in BIRD 3.0 and 3.1 arising from two distinct attributes in BIRD 2 named the same in the code, and me not understanding what Santiago was telling me about that. More on that in updated 3.2 documentation.
We have done various minor updates, e.g. flags in RAdv (both versions), fixed a RIP non-determinism (v3) and additional CLI configuration bugs.
There have been some more core reworks, removing some more performance chokepoints.
Both versions also include all relevant fixes applied for 3.1.5 and 2.17.3.
Considering unfinished work, we also have several Babel patches pending which we failed again to review in time to merge into 2.18. We’ll do them as soon as possible. Also, in BIRD 3.x, the “show route for” displays all covering routes instead of just the longest prefix match. We’re working on a fix but it’s quite a can of worms.
Officially supported versions are now:
* 3.2.0 and 2.18 until 6 months after 3.3.0 and 2.19 get released * LTS 3.1.x and 2.17.x, expected to track Debian Trixie
The DEB packages in pkg.labs.nic.cz are already there, and RPMs will come soon. Please note that the upstream DEBs weren’t built directly from the tagged commit but from the release-v2.18 and release-v3.2 branch because of our current CI limitations. We’ll fix that for later versions.
Happy new year! Maria and the BIRD Team
– Maria Matejka (she/her) | BIRD Team Leader | CZ.NIC, z.s.p.o.
-- Sustainable and modern Infrastructures by ungleich.ch
On 03/01/2026 22:44, Maria Matejka via Bird-users wrote:
Dear BIRD users,
we are releasing BIRD versions 3.2.0 and 2.18.
Hi, After upgrading our route servers from bird-3.1.5-1.el9.x86_64 to bird-3.2.0-1.el9.x86_64 (Fedora EPEL RPM packages), BIRD crashes shortly after startup with the following output (with "log stderr all"): [tore@rs1-osl3 ~]$ sudo bird -f -u bird -g bird bird: 2026-01-05 10:02:16.298 [0001] <WARN> /etc/bird.conf:47:62: Missing authentication option, assuming MD5 (above warning repeated for several other lines in the config file, this was also warned about in BIRD 3.1.5 though) bird: 2026-01-05 10:02:16.298 [0001] <INFO> Started bird: 2026-01-05 10:02:16.320 [0001] <BUG> Assertion 'DG_IS_LOCKED(orig->domain)' failed at lib/resource.c:208 Aborted This appears to be triggered remotely. If I block all incoming BGP connections in the firewall before starting BIRD, it starts runs fine - until I remove the block, at which point an RS client connects and BIRD crashes. I cannot share the configuration file in a public forum like this mailing list, but would be happy to send it (or any other debugging information that might help) directly to the developers. Tore
Hello Tore, first of all, we are very sorry for the crash. We hope that you could safely revert to 3.1.5.
After upgrading our route servers from bird-3.1.5-1.el9.x86_64 to bird-3.2.0-1.el9.x86_64 (Fedora EPEL RPM packages), BIRD crashes shortly after startup with the following output (with "log stderr all"):
bird: 2026-01-05 10:02:16.320 [0001] <BUG> Assertion 'DG_IS_LOCKED(orig->domain)' failed at lib/resource.c:208 Aborted
I would very much love to get your coredump if possible, or at least a backtrace leading to this. (Privately, please, it may contain sensitive information.)
I cannot share the configuration file in a public forum like this mailing list, but would be happy to send it (or any other debugging information that might help) directly to the developers.
The configuration file might help as well. Thanks a lot! Maria -- Maria Matejka (she/her) | BIRD Team Leader | CZ.NIC, z.s.p.o.
W dniu 3.01.2026 o 22:44, Maria Matejka via Bird-users pisze:
Dear BIRD users,
we are releasing BIRD versions 3.2.0 and 2.18.
We have implemented BGP dynamic onlink/unnumbered and link-local connection scenarios and fixed various behavior bugs in reconfiguration. Also, AS Sets in AS Paths are now considered malformed by default.
For BIRD 3.2.0, we have split back the |igp_metric| attribute so that now you may find also |local_metric| where applicable. There was a confusion in BIRD 3.0 and 3.1 arising from two distinct attributes in BIRD 2 named the same in the code, and me not understanding what Santiago was telling me about that. More on that in updated 3.2 documentation.
We have done various minor updates, e.g. flags in RAdv (both versions), fixed a RIP non-determinism (v3) and additional CLI configuration bugs.
There have been some more core reworks, removing some more performance chokepoints.
Both versions also include all relevant fixes applied for 3.1.5 and 2.17.3.
Considering unfinished work, we also have several Babel patches pending which we failed again to review in time to merge into 2.18. We’ll do them as soon as possible. Also, in BIRD 3.x, the “show route for” displays all covering routes instead of just the longest prefix match. We’re working on a fix but it’s quite a can of worms.
Officially supported versions are now:
* 3.2.0 and 2.18 until 6 months after 3.3.0 and 2.19 get released * LTS 3.1.x and 2.17.x, expected to track Debian Trixie
The DEB packages in pkg.labs.nic.cz are already there, and RPMs will come soon. Please note that the upstream DEBs weren’t built directly from the tagged commit but from the |release-v2.18| and |release-v3.2| branch because of our current CI limitations. We’ll fix that for later versions.
Happy new year! Maria and the BIRD Team
– Maria Matejka (she/her) | BIRD Team Leader | CZ.NIC, z.s.p.o.
After upgrade we spotted small regression with AS-SETs in both 2.18 and 3.2: Jan 15 08:46:01 rtr bird[4647]: bgp_voicenet_v4: Malformed AS_PATH attribute - AS_SET segment (1) at 18 Jan 15 08:46:01 rtr bird[4647]: bgp_voicenet_v4: Invalid route 202.1.84.0/23 withdrawn Jan 15 08:46:23 rtr bird[4647]: bgp_rmsk_v4: Malformed AS_PATH attribute - AS_SET segment (1) at 26 Jan 15 08:46:23 rtr bird[4647]: bgp_rmsk_v4: Invalid route 202.1.84.0/23 withdrawn Jan 15 08:46:50 rtr bird[4647]: bgp_voicenet_v4: Malformed AS_PATH attribute - AS_SET segment (1) at 22 Jan 15 08:46:50 rtr bird[4647]: bgp_voicenet_v4: Invalid route 202.1.84.0/23 withdrawn Jan 15 08:47:19 rtr bird[4647]: bgp_voicenet_v4: Malformed AS_PATH attribute - AS_SET segment (1) at 22 Jan 15 08:47:19 rtr bird[4647]: bgp_voicenet_v4: Invalid route 202.1.84.0/23 withdrawn Jan 15 08:47:25 rtr bird[4647]: bgp_rmsk_v4: Malformed AS_PATH attribute - AS_SET segment (1) at 30 Jan 15 08:47:25 rtr bird[4647]: bgp_rmsk_v4: Invalid route 202.1.84.0/23 withdrawn Jan 15 08:47:56 rtr bird[4647]: bgp_rmsk_v4: Malformed AS_PATH attribute - AS_SET segment (1) at 26 Jan 15 08:47:56 rtr bird[4647]: bgp_rmsk_v4: Invalid route 202.1.84.0/23 withdrawn Jan 15 08:47:57 rtr bird[4647]: bgp_rmsk_v4: Malformed AS_PATH attribute - AS_SET segment (1) at 26 Jan 15 08:47:57 rtr bird[4647]: bgp_rmsk_v4: Invalid route 202.1.84.0/23 withdrawn Jan 15 08:48:22 rtr bird[4647]: bgp_rmsk_v4: Malformed AS_PATH attribute - AS_SET segment (1) at 26 Jan 15 08:48:22 rtr bird[4647]: bgp_rmsk_v4: Invalid route 202.1.84.0/23 withdrawn -- Marek Zarychta
Hi Marek, On Thu, Jan 15, 2026 at 09:09:39AM +0100, Marek Zarychta via Bird-users wrote:
After upgrade we spotted small regression with AS-SETs in both 2.18 and 3.2:
That's not a bug, that's a feature specified in RFC 9774. We have changed the default behavior.
W dniu 3.01.2026 o 22:44, Maria Matejka via Bird-users pisze:
Also, AS Sets in AS Paths are now considered malformed by default.
If you need to accept AS Sets, you have to [explicitly enable them](https://bird.nic.cz/doc/bird-3.2.0.html#bgp-allow-as-sets). Have a nice day! Maria -- Maria Matejka (she/her) | BIRD Team Leader | CZ.NIC, z.s.p.o.
On Thu, Jan 15, 2026 at 09:58:44AM +0100, Maria Matejka via Bird-users wrote:
Hi Marek,
On Thu, Jan 15, 2026 at 09:09:39AM +0100, Marek Zarychta via Bird-users wrote:
After upgrade we spotted small regression with AS-SETs in both 2.18 and 3.2:
That's not a bug, that's a feature specified in RFC 9774. We have changed the default behavior.
Hmm, perhaps such change should have been explicitly mentionend as Notes in NEWS file, not just as a bullet line. -- Elen sila lumenn' omentielvo Ondrej 'Santiago' Zajicek (email: santiago@crfreenet.org) "To err is human -- to blame it on a computer is even more so."
On Thu, Jan 15, 2026 at 11:02:19AM +0100, Ondrej Zajicek wrote:
After upgrade we spotted small regression with AS-SETs in both 2.18 and 3.2:
That's not a bug, that's a feature specified in RFC 9774. We have changed the default behavior.
Hmm, perhaps such change should have been explicitly mentionend as Notes in NEWS file, not just as a bullet line.
Probably yes. I'm updating the release checklist to remind us that behavior changes should be mentioned explicitly. Even though the history shows that even these notes are explicitly ignored by many users (e.g. filter type annotations are a steady source of questions), it's a good thing to inform more thoroughly about this kind of updates. Maria -- Maria Matejka (she/her) | BIRD Team Leader | CZ.NIC, z.s.p.o.
W dniu 15.01.2026 o 09:58, Maria Matejka via Bird-users pisze:
Hi Marek,
On Thu, Jan 15, 2026 at 09:09:39AM +0100, Marek Zarychta via Bird-users wrote:
After upgrade we spotted small regression with AS-SETs in both 2.18 and 3.2:
That’s not a bug, that’s a feature specified in RFC 9774. We have changed the default behavior.
W dniu 3.01.2026 o 22:44, Maria Matejka via Bird-users pisze:
Also, AS Sets in AS Paths are now considered malformed by default.
If you need to accept AS Sets, you have to explicitly enable them <https://bird.nic.cz/doc/bird-3.2.0.html#bgp-allow-as-sets>.
Have a nice day! Maria
– Maria Matejka (she/her) | BIRD Team Leader | CZ.NIC, z.s.p.o.
Hi Maria, thanks for the clarification, and please forgive the noise on the mailing lists that I made. The original announcement, the first email in this thread, contains this information:
Also, AS Sets in AS Paths are now considered malformed by default.
BTW, we are currently running version 3.2 on FreeBSD, and the memory usage reported by the OS still seems to be twice that of version 2.x. Is this specific to FreeBSD? # top -b | egrep "bird|PID" ; uname -orm ; pkg info | grep bird PID USERNAME THR PRI NICE SIZE RES STATE C TIME WCPU COMMAND 6551 root 2 0 0 1100M 984M select 1 6:29 0.00% bird FreeBSD 15.0-STABLE amd64 bird3-3.2.0 Dynamic multithreaded IP routing daemon bird> show memory BIRD memory usage Effective Overhead Routing tables: 256.7 MB 23.3 MB Route attributes: 232.7 MB 4077.2 kB Protocols: 2623.0 kB 105.4 kB Current config: 73.5 kB 1400.0 B Standby memory: 0.0 B 57.7 MB Total: 492.1 MB 85.2 MB Active pages: 420.1 MB Kept free pages: 57.7 MB Cold free pages: 370.9 MB Hot page cache depleted while in RCU: 3894 bird> show route count 2068457 of 2068457 routes for 1044853 networks in table master4 451403 of 451403 routes for 229499 networks in table master6 Total: 2519860 of 2519860 routes for 1274352 networks in 2 tables -- Marek Zarychta
participants (5)
-
Marek Zarychta -
Maria Matejka -
Nico Schottelius -
Ondrej Zajicek -
Tore Anderson