]> git.ipfire.org Git - thirdparty/bird.git/log
thirdparty/bird.git
3 months agofixup! io-loop.h: tcp ao dump fixing socket-dumping
Katerina Kubecova [Wed, 16 Apr 2025 12:50:36 +0000 (14:50 +0200)] 
fixup! io-loop.h: tcp ao dump fixing

3 months agoio-loop.h: tcp ao dump fixing
Katerina Kubecova [Mon, 14 Apr 2025 12:01:17 +0000 (14:01 +0200)] 
io-loop.h: tcp ao dump fixing

TCP AO keys dump does not work the same way as socket dump, because ao dump
dumpes frequently changing data. It is based on sending an event to each birdloop.

3 months agoio-loop.h: Fixup sk_dump all
Katerina Kubecova [Thu, 3 Apr 2025 14:54:16 +0000 (16:54 +0200)] 
io-loop.h: Fixup sk_dump all

Only sockets in main birdloop were dumped. Now, all sockets are dumped.
Because of serilization problems, socket dump is cached for each birdloop
and it is couninuously updated.

3 months agoNEWS and version update
Maria Matejka [Tue, 1 Apr 2025 19:49:58 +0000 (21:49 +0200)] 
NEWS and version update

3 months agoDoc singlepage: add bold handler
Maria Matejka [Tue, 1 Apr 2025 18:05:09 +0000 (20:05 +0200)] 
Doc singlepage: add bold handler

3 months agoDocker build machinery: a little bit of documentation
Maria Matejka [Tue, 1 Apr 2025 12:19:23 +0000 (14:19 +0200)] 
Docker build machinery: a little bit of documentation

4 months agoMerge commit '1236600' into thread-next
Maria Matejka [Tue, 1 Apr 2025 18:12:11 +0000 (20:12 +0200)] 
Merge commit '1236600' into thread-next

4 months agoMerge commit 'de2370ec0' into thread-next
Maria Matejka [Tue, 1 Apr 2025 18:11:46 +0000 (20:11 +0200)] 
Merge commit 'de2370ec0' into thread-next

4 months agoMerge commit 'a2be93c7f' into thread-next
Maria Matejka [Tue, 1 Apr 2025 18:09:36 +0000 (20:09 +0200)] 
Merge commit 'a2be93c7f' into thread-next

4 months agoMerge commit '481739d0d' into thread-next
Maria Matejka [Tue, 1 Apr 2025 18:06:13 +0000 (20:06 +0200)] 
Merge commit '481739d0d' into thread-next

4 months agoCI: Massive update of build and test runners
Jana Babovakova [Tue, 1 Apr 2025 10:05:46 +0000 (12:05 +0200)] 
CI: Massive update of build and test runners

Fixed and added current distros, deleted certain EOL distros,
sorted things in the CI file.

With some heavy lifting and comments by Maria.

Signed-Off-By: Maria Matejka <mq@jmq.cz>
4 months agoMerge remote-tracking branch 'origin/master' into thread-next
Maria Matejka [Tue, 1 Apr 2025 17:46:37 +0000 (19:46 +0200)] 
Merge remote-tracking branch 'origin/master' into thread-next

4 months agoMerge commit 'origin/master^' into thread-next
Maria Matejka [Tue, 1 Apr 2025 13:25:30 +0000 (15:25 +0200)] 
Merge commit 'origin/master^' into thread-next

The AO socket dumping is bonkers but we'll fix it later.

4 months agoCLI: v2 compatibility mode for attribute name display
Maria Matejka [Wed, 18 Dec 2024 11:24:49 +0000 (12:24 +0100)] 
CLI: v2 compatibility mode for attribute name display

4 months agoFix dependecy issue with bs4 on legacy distros
David Petera [Fri, 28 Feb 2025 14:40:04 +0000 (15:40 +0100)] 
Fix dependecy issue with bs4 on legacy distros

4 months agoUpdate build and package targets
Maria Matejka [Fri, 10 Jan 2025 17:09:01 +0000 (18:09 +0100)] 
Update build and package targets

Fedora builds for 32-41, Debian up to 12, Ubuntu up to 24.10.

Includes autorebuilder if a Dockerfile changes.

The CI file is obnoxiously boilerplaty. TODO: generate it from a list?

4 months agoFix getting the version tag. Now it should also support older versions of git
David Petera [Tue, 18 Feb 2025 11:38:13 +0000 (12:38 +0100)] 
Fix getting the version tag. Now it should also support older versions of git

4 months agoReadd CentOS 7 to CI build and package process
David Petera [Fri, 31 Jan 2025 13:08:49 +0000 (14:08 +0100)] 
Readd CentOS 7 to CI build and package process

4 months agoAdd archived repositories for CentOS 8
David Petera [Fri, 31 Jan 2025 13:07:33 +0000 (14:07 +0100)] 
Add archived repositories for CentOS 8

4 months agoRemove links to czech repos in EOL debians and add archived repos for debian 9
David Petera [Fri, 17 Jan 2025 12:50:47 +0000 (13:50 +0100)] 
Remove links to czech repos in EOL debians and add archived repos for debian 9

4 months agouse python venv for debian
Maria Matejka [Mon, 13 Jan 2025 21:21:43 +0000 (22:21 +0100)] 
use python venv for debian

4 months agoReleasing: a new tgz generator script
Maria Matejka [Fri, 24 Jan 2025 09:34:42 +0000 (10:34 +0100)] 
Releasing: a new tgz generator script

Also version detection is done by a separate script, not a magic line in
the Makefile.

4 months agoDoc: autoconvertor of our SGML to Markdown
Maria Matejka [Sun, 19 Jan 2025 00:06:24 +0000 (01:06 +0100)] 
Doc: autoconvertor of our SGML to Markdown

Some minor changes were done in the original documentation to allow for
easier conversion, and also to make the documentation a little bit more
strictly valid.

4 months agoCI: Added the release confirm metajob
Maria Matejka [Thu, 23 Jan 2025 21:30:43 +0000 (22:30 +0100)] 
CI: Added the release confirm metajob

4 months agoSeparate documentation autobuild
Maria Matejka [Mon, 20 Jan 2025 17:26:34 +0000 (18:26 +0100)] 
Separate documentation autobuild

This is expected to hit a webhook inside our CI to trigger
automatic deployment to testweb.

4 months agoCI: fix test collisions between branches
Maria Matejka [Tue, 17 Dec 2024 11:38:12 +0000 (12:38 +0100)] 
CI: fix test collisions between branches

The build-netlab job was side-effecting the test-* jobs,
and if for some reason Gitlab scheduled build-netlab before
other pipeline's test-* jobs finished, these jobs got a wrong
binary, possibly failing. Solved by using explicit artifacts, which is
not the fastest way to do this (we could keep the binaries named there)
but it's the gitlab-right way to do this.

4 months agoCLI: fix channel stats display
Maria Matejka [Fri, 27 Dec 2024 14:12:32 +0000 (15:12 +0100)] 
CLI: fix channel stats display

The overall number of updates/withdrawals received, as well as
the number of routes limited, were not updated.

4 months agoBGP: Forbid TCP-AO on dynamic BGP sessions
Ondrej Zajicek [Mon, 31 Mar 2025 14:21:47 +0000 (16:21 +0200)] 
BGP: Forbid TCP-AO on dynamic BGP sessions

Reconfiguration does not work properly for this case, disable it for now.

4 months agoMerge commit '509d0f3b8' into thread-next
Maria Matejka [Mon, 31 Mar 2025 14:04:05 +0000 (16:04 +0200)] 
Merge commit '509d0f3b8' into thread-next

4 months agoMerge commit 'f80003e35' into thread-next
Maria Matejka [Mon, 31 Mar 2025 14:02:44 +0000 (16:02 +0200)] 
Merge commit 'f80003e35' into thread-next

4 months agoMerge commit 'f4a94644d' into thread-next
Maria Matejka [Mon, 31 Mar 2025 14:02:30 +0000 (16:02 +0200)] 
Merge commit 'f4a94644d' into thread-next

4 months agoMerge commit '1e5a7113b' into thread-next
Maria Matejka [Mon, 31 Mar 2025 11:59:53 +0000 (13:59 +0200)] 
Merge commit '1e5a7113b' into thread-next

4 months agoMerge commit '3a55459ea' into thread-next
Maria Matejka [Mon, 31 Mar 2025 11:58:51 +0000 (13:58 +0200)] 
Merge commit '3a55459ea' into thread-next

4 months agoMerge commit '34aa592de' into thread-next
Maria Matejka [Mon, 31 Mar 2025 11:58:42 +0000 (13:58 +0200)] 
Merge commit '34aa592de' into thread-next

4 months agoMerge commit '51d0777e8' into thread-next
Maria Matejka [Mon, 31 Mar 2025 11:57:21 +0000 (13:57 +0200)] 
Merge commit '51d0777e8' into thread-next

4 months agoTCP-AO revised version
Ondrej Zajicek [Sun, 12 Jan 2025 12:32:37 +0000 (13:32 +0100)] 
TCP-AO revised version

Reworked and finalized version of TCP-AO.

4 months agoTCP-AO implementation based on RFC 5925
Kateřina Kubecová [Wed, 26 Jun 2024 07:23:12 +0000 (09:23 +0200)] 
TCP-AO implementation based on RFC 5925

Uses Linux TCP-AO. Tested against JUNIPER.

4 months agoBFD: Fix crash related to reconfiguration and passwords oz-test2
Ondrej Zajicek [Thu, 27 Mar 2025 16:43:56 +0000 (17:43 +0100)] 
BFD: Fix crash related to reconfiguration and passwords

Any change in BFD iface configuration should trigger session
reconfiguration, as config is copied into the bfd_session structure
and not just accessed through the bfd_iface structure.

As bfd_session now contains a pointer to the password list allocated
from the configuration, forgetting to update the bfd_session causes
use-after-free.

Thanks to Lexi Winter for the bugreport.

4 months agoCI: Re-add bgp-rs-singletab
Ondrej Zajicek [Thu, 27 Mar 2025 16:41:35 +0000 (17:41 +0100)] 
CI: Re-add bgp-rs-singletab

(was accidentally removed by the previous commit)

4 months agoBabel: Add option 'next hop prefer' to control next hops of IPv4 routes
Ondrej Zajicek [Thu, 27 Mar 2025 01:50:35 +0000 (02:50 +0100)] 
Babel: Add option 'next hop prefer' to control next hops of IPv4 routes

By default, the Babel protocol will advertise IPv4 routes with an IPv6
next hop address only on interfaces which do not have an IPv4 address.

Add option 'next hop prefer' to control whether IPv4 routes should use
IPv4 or IPv6 next hop when both are available.

Based on the patch from Chris Webb, thanks!

4 months agoFilter: Add tests for 'case' expressions
Jana Babovakova [Tue, 25 Mar 2025 16:52:26 +0000 (17:52 +0100)] 
Filter: Add tests for 'case' expressions

4 months agoCI: Add bgp-rs-singletab
Ondrej Zajicek [Tue, 25 Mar 2025 15:29:51 +0000 (16:29 +0100)] 
CI: Add bgp-rs-singletab

(For some reason, it is not enabled in CI)

4 months agoDocs: new link local format added to BGP outline.
Jana Babovakova [Tue, 25 Mar 2025 10:34:27 +0000 (11:34 +0100)] 
Docs: new link local format added to BGP outline.

4 months agoBGP: Add option to specify format of link-local next hop
Ondrej Zajicek [Mon, 24 Mar 2025 16:09:25 +0000 (17:09 +0100)] 
BGP: Add option to specify format of link-local next hop

When a BGP session is established using link-local next hop addresses,
there is no global IPv6 address for next hop. Implementations differ on
how to encode such next hop. This leads to interoperability problems.

Add the option 'link local next hop format' to specify which format to
use when encoding such next hops.

Based on a patch from Andrey V. Elsukov and Georgy Kirichenko, submitted
by Aleksandr Stepanov, thanks!

4 months agoBGP: Fix missing case for decoding link-local next hops in VPN SAFI
Ondrej Zajicek [Mon, 24 Mar 2025 16:03:41 +0000 (17:03 +0100)] 
BGP: Fix missing case for decoding link-local next hops in VPN SAFI

4 months agoCI: Remove broken package builds
Ondrej Zajicek [Sat, 22 Mar 2025 01:04:02 +0000 (02:04 +0100)] 
CI: Remove broken package builds

Some package build tests were broken due to apkg changes,
disable them temporarily.

4 months agoDocs: Changed "&lt;", "&gt;" to "<",">" in <code>.
Jana Babovakova [Mon, 17 Mar 2025 14:56:45 +0000 (15:56 +0100)] 
Docs: Changed "&lt;", "&gt;" to "<",">" in <code>.

4 months agoDocs: Replaced "M>" with "m>" (maintainability).
Jana Babovakova [Mon, 17 Mar 2025 14:45:14 +0000 (15:45 +0100)] 
Docs: Replaced "M>" with "m>" (maintainability).

4 months agoDocs: Replaced "<M>num</M>" with "<M>number</M>".
Jana Babovakova [Mon, 17 Mar 2025 14:42:07 +0000 (15:42 +0100)] 
Docs: Replaced "<M>num</M>" with "<M>number</M>".

4 months agoDocs: Replaced "&lt;num&gt;" with &lt;number&gt;.
Jana Babovakova [Mon, 17 Mar 2025 14:39:19 +0000 (15:39 +0100)] 
Docs: Replaced "&lt;num&gt;" with &lt;number&gt;.

4 months agol3vpn.c: set proper flag when setting EA_BGP_EXT_COMMUNITY fixup-l3vpn
Katerina Kubecova [Fri, 21 Mar 2025 13:17:47 +0000 (14:17 +0100)] 
l3vpn.c: set proper flag when setting EA_BGP_EXT_COMMUNITY

4 months agoASPA: added official tests
Maria Matejka [Tue, 18 Mar 2025 04:34:46 +0000 (05:34 +0100)] 
ASPA: added official tests

from Sriram Kotikalapudi's presentation for IETF 122.

4 months agoLib: added tmp_v?sprintf and tmp_strdup allocating from tmp_linpool
Maria Matejka [Wed, 2 Oct 2024 20:32:07 +0000 (22:32 +0200)] 
Lib: added tmp_v?sprintf and tmp_strdup allocating from tmp_linpool

4 months agoEnabled LTO for LLVM and making use of jobserver for LTO in GCC
Maria Matejka [Mon, 2 Sep 2024 13:38:01 +0000 (15:38 +0200)] 
Enabled LTO for LLVM and making use of jobserver for LTO in GCC

4 months agoCompiler vendor detection for autotools
Maria Matejka [Mon, 2 Sep 2024 13:20:46 +0000 (15:20 +0200)] 
Compiler vendor detection for autotools

4 months agoCalling cf_warn from log_switch makes no sense
Maria Matejka [Mon, 26 Aug 2024 16:09:46 +0000 (18:09 +0200)] 
Calling cf_warn from log_switch makes no sense

4 months agoLog: Fix handling of L_BUG messages
Ondrej Zajicek [Fri, 14 Mar 2025 15:49:36 +0000 (16:49 +0100)] 
Log: Fix handling of L_BUG messages

Due to an off-by-one error, L_BUG messages (e.g. from ASSERT()) were
handled as L_DBG messages and therefore ignored by our CI.

4 months agoTaming static checker: flow[64]_validate_cf() checks NULL data
Maria Matejka [Thu, 13 Feb 2025 17:25:44 +0000 (18:25 +0100)] 
Taming static checker: flow[64]_validate_cf() checks NULL data

This does not apply for the current code but if somebody chose to use
the flowspec validation functions for something totally broken, it may
unnecessarily crash.

4 months agoTaming static checker: MPLS static label policy requires static handles
Maria Matejka [Thu, 13 Feb 2025 12:10:04 +0000 (13:10 +0100)] 
Taming static checker: MPLS static label policy requires static handles

4 months agoTaming static checker: Do not request bits on negative positions in prefixes
Maria Matejka [Thu, 13 Feb 2025 11:12:20 +0000 (12:12 +0100)] 
Taming static checker: Do not request bits on negative positions in prefixes

The code is actually called. It's harmless, yet confusing.

4 months agoTaming static checker: Fixed hypothetical adata comparator crash
Maria Matejka [Thu, 13 Feb 2025 09:22:08 +0000 (10:22 +0100)] 
Taming static checker: Fixed hypothetical adata comparator crash

4 months agoBFD session handling rework
Maria Matejka [Mon, 3 Feb 2025 14:21:52 +0000 (15:21 +0100)] 
BFD session handling rework

The original implementation for BIRD 3 was rooted in the first
methods how I tried to go for multithreading and it had several flaws,
mostly incomprehensive notification and request pickup routines.
Also converting to a double-loop architecture where one of the
loops (low-latency) solely runs BFD socket communication, whereas
the other one does all the other shenanigans.

4 months agoProper thread group setup
Maria Matejka [Tue, 4 Feb 2025 20:13:26 +0000 (21:13 +0100)] 
Proper thread group setup

Now the thread groups can be explicitly configured with their
latency and timing values.

4 months agoIO loop: converted the thread group to a regular locked structure
Maria Matejka [Wed, 5 Feb 2025 12:08:48 +0000 (13:08 +0100)] 
IO loop: converted the thread group to a regular locked structure

4 months agoIO loop: refactored thread and loop lists to tlists
Maria Matejka [Tue, 4 Feb 2025 20:44:28 +0000 (21:44 +0100)] 
IO loop: refactored thread and loop lists to tlists

4 months agoTlist enlisted allows const pointer argument
Maria Matejka [Wed, 5 Feb 2025 20:41:32 +0000 (21:41 +0100)] 
Tlist enlisted allows const pointer argument

4 months agoMake implicit function declaration an actual error
Maria Matejka [Wed, 5 Feb 2025 17:42:29 +0000 (18:42 +0100)] 
Make implicit function declaration an actual error

4 months agoFixed SAME_TYPE to work with obviously nonzero pointers without warnings
Maria Matejka [Tue, 4 Feb 2025 09:41:05 +0000 (10:41 +0100)] 
Fixed SAME_TYPE to work with obviously nonzero pointers without warnings

4 months agoTaming static checker: rt_notify never sets net_addr to zero
Maria Matejka [Fri, 31 Jan 2025 22:54:29 +0000 (23:54 +0100)] 
Taming static checker: rt_notify never sets net_addr to zero

4 months agoTaming static checker: don't memcpy zero length
Maria Matejka [Fri, 31 Jan 2025 22:51:44 +0000 (23:51 +0100)] 
Taming static checker: don't memcpy zero length

4 months agoMerge commit '99c295e59' into thread-next
Maria Matejka [Mon, 10 Mar 2025 09:51:41 +0000 (10:51 +0100)] 
Merge commit '99c295e59' into thread-next

4 months agoMerge commit '2679de7a3' into thread-next
Maria Matejka [Mon, 10 Mar 2025 09:51:25 +0000 (10:51 +0100)] 
Merge commit '2679de7a3' into thread-next

4 months agoMerge commit 'a8fa3f6b8' into thread-next
Maria Matejka [Mon, 10 Mar 2025 09:35:06 +0000 (10:35 +0100)] 
Merge commit 'a8fa3f6b8' into thread-next

4 months agoMerge commit 'deec84ca3' into thread-next
Maria Matejka [Mon, 10 Mar 2025 09:29:44 +0000 (10:29 +0100)] 
Merge commit 'deec84ca3' into thread-next

4 months agoMerge commit '96ec6b42d' into thread-next
Maria Matejka [Mon, 10 Mar 2025 09:27:19 +0000 (10:27 +0100)] 
Merge commit '96ec6b42d' into thread-next

4 months agoMerge commit '8d062e931' into thread-next
Maria Matejka [Mon, 10 Mar 2025 09:26:33 +0000 (10:26 +0100)] 
Merge commit '8d062e931' into thread-next

4 months agoMerge commit '161aef353' into thread-next
Maria Matejka [Mon, 10 Mar 2025 09:24:16 +0000 (10:24 +0100)] 
Merge commit '161aef353' into thread-next

4 months agoMerge commit '38a422d48' into thread-next
Maria Matejka [Mon, 10 Mar 2025 09:21:03 +0000 (10:21 +0100)] 
Merge commit '38a422d48' into thread-next

4 months agoMerge commit '6a55359b1' into thread-next
Maria Matejka [Mon, 10 Mar 2025 09:16:50 +0000 (10:16 +0100)] 
Merge commit '6a55359b1' into thread-next

4 months agoTable export: Relaxing too strict inconsistency assert
Maria Matejka [Mon, 10 Mar 2025 08:15:53 +0000 (09:15 +0100)] 
Table export: Relaxing too strict inconsistency assert

In case of refeeds, we may get old routes which we have not seen,
the table does not know that and the channel ingress is the right place
to detect it.

Bug introduced in commit 25557fceb08c8db6daead02a2f4b7a99d8a1f922
by Maria Matejka <mq@ucw.cz>, Mon Mar 3 19:48:58 2025 +0100

    Table export: Another inconsistency in refeeds

4 months agoDoc: Replace <m/num/ with <m/number/
Ondrej Zajicek [Sun, 9 Mar 2025 21:58:31 +0000 (22:58 +0100)] 
Doc: Replace <m/num/ with <m/number/

Both variants were used inconsistently, the second one is more frequent
and more expressive.

4 months agoDoc: Add BGP reconfiguration section
Jana Babovakova [Wed, 5 Mar 2025 14:10:02 +0000 (15:10 +0100)] 
Doc: Add BGP reconfiguration section

Some changes by committer.

4 months agoDoc: Minor fixes in BGP options
Jana Babovakova [Wed, 5 Mar 2025 14:08:03 +0000 (15:08 +0100)] 
Doc: Minor fixes in BGP options

4 months agoDoc: Add BGP protocol outline
Jana Babovakova [Wed, 5 Mar 2025 14:05:43 +0000 (15:05 +0100)] 
Doc: Add BGP protocol outline

4 months agoFixed refeed seqmap inconsistency
Maria Matejka [Sat, 8 Mar 2025 16:09:35 +0000 (17:09 +0100)] 
Fixed refeed seqmap inconsistency

For some weird reason (probably oversight, as always), regular exports
were not marked in seq_map, leading to sus reexports and confusing
refeeds.

4 months agoBGP: Fix reconfiguration of hostname option
Ondrej Zajicek [Thu, 6 Mar 2025 15:09:36 +0000 (16:09 +0100)] 
BGP: Fix reconfiguration of hostname option

The old code did not properly compare and update hostname strings,
causing BGP restarts during reconfigurations.

4 months agoNest: Fix locking of tables by channels
Ondrej Zajicek [Thu, 6 Mar 2025 02:43:15 +0000 (03:43 +0100)] 
Nest: Fix locking of tables by channels

Channels that are down keep ptr on routing tables but do not keep them
locked. It is safe because the existence of tables depend on being
configured. But when a table is removed during reconfiguration, the
channel kept a dangling pointer since it fell down until it was removed.
This could be triggered by 'show protocols all' and other similar.

Change locking so that a channel kept a table locked for its whole
existence. The same change is already in BIRD 3.

Note that this is somewhat conceptually problematic as downed channels
do not keep resources. Also, other objects in specialized channels
(igp_table, base_table in bgp_channel, mpls_domain / mpls_range in
mpls_channel) are still locked only when channel is active, but for
them it is easier to keep track that they are not accessed when
they are deconfigured.

5 months agoTable best export: asserting seqmap consistency
Maria Matejka [Tue, 4 Mar 2025 12:04:20 +0000 (13:04 +0100)] 
Table best export: asserting seqmap consistency

In case of some exports have been seen and others not, it makes no sense
for the second one to be seen if the first one was not seen.

5 months agoRCU Unwinder stores where it came from last time
Maria Matejka [Tue, 4 Mar 2025 12:02:01 +0000 (13:02 +0100)] 
RCU Unwinder stores where it came from last time

This information is vital for stuck situations where the
RCU Unwinder keeps longjumping away.

5 months agoTable export: Another inconsistency in refeeds
Maria Matejka [Mon, 3 Mar 2025 18:48:58 +0000 (19:48 +0100)] 
Table export: Another inconsistency in refeeds

When a route has been already sent to the channel and the refeed
runs because of a filter change or just because requested, the
old and new routes are the same which was actually not anticipated
by rt_notify_basic().

5 months agoFilters: don't rewrite gw explicitly set by filters
Maria Matejka [Wed, 26 Feb 2025 13:45:24 +0000 (14:45 +0100)] 
Filters: don't rewrite gw explicitly set by filters

If the originating protocol sets hostentry, it should be
overridden by filters and not rewrite gw.

This fixes #156. Issue #154 may need a similar fix.

Thanks to Peter Hutchinson for reporting.

Signed-Off-By: Katerina Kubecova <katerina.kubecova@nic.cz>
5 months agoFix source-specific routing in Bird 3
Toke Høiland-Jørgensen via Bird-users [Tue, 25 Feb 2025 15:05:10 +0000 (16:05 +0100)] 
Fix source-specific routing in Bird 3

Commit 69d1ffde4c72 ("Split route data structure to storage (ro) /
manipulation (rw) structures.") changed rte->net from a pointer to a
'struct network' to a 'struct net_addr', but kept the address-of (&)
operator before casting to 'net_addr_ip6_sadr *' when sending a
source-specific route to the kernel.

Because 'struct network' had an embedded struct member (struct
fib_node), the address-of was needed to get back to a pointer to the
data, but with the change in the commit mentioned above, e->net is now a
straight pointer to the address.

The bug meant that the source prefixes passed to the kernel were
essentially garbage, leading to routes in the kernel like:

default from b74:9e05:0:1:d8cf:c000::/86 via fe80::1 dev eth0 proto bird metric 32 pref medium

Fix this by getting rid of the address-of operator.

Note by commiter: used our TYPE_CAST macro instead of plain typecast
to avoid this kind of problem in future.

Fixes: 69d1ffde4c72 ("Split route data structure to storage (ro) / manipulation (rw) structures.")
Signed-off-by: Toke Høiland-Jørgensen <toke@toke.dk>
Signed-off-by: Maria Matejka <mq@jmq.cz>
5 months agoCI: Add hostname test to CI
Ondrej Zajicek [Tue, 25 Feb 2025 15:52:00 +0000 (16:52 +0100)] 
CI: Add hostname test to CI

5 months agoAdd option hostname for each protocol
Jana Babovakova [Wed, 12 Feb 2025 16:06:39 +0000 (17:06 +0100)] 
Add option hostname for each protocol

5 months agoInstall comment updated by Maria
Jana Babovakova [Tue, 11 Feb 2025 11:01:59 +0000 (12:01 +0100)] 
Install comment updated by Maria

5 months agoUpdated router id docs to 4-byte integer.
Jana Babovakova [Mon, 24 Feb 2025 13:39:29 +0000 (14:39 +0100)] 
Updated router id docs to 4-byte integer.

5 months agoTable export: fixed inconsistency in export_rejected_map
Katerina Kubecova [Tue, 25 Feb 2025 11:46:06 +0000 (12:46 +0100)] 
Table export: fixed inconsistency in export_rejected_map

When updates arrived in such an order that the first one was rejected and
the second one got accepted, the export_rejected_map flag mistakenly
stayed set, leaking the route ID.

In the RA_OPTIMAL channel mode, there are consistency checks that at
most one route for a net has been accepted or rejected. After some time,
the leaked ID and bit in export_rejected_map caused spurious crashes in
asserts later in channel_notify_basic().

Thanks to NIX-CZ and Maiyun Zhang for reporting this.

5 months agoFixing a refeed inconsistency
Maria Matejka [Mon, 17 Feb 2025 20:37:46 +0000 (21:37 +0100)] 
Fixing a refeed inconsistency

On refeed, the table should not resend any obsolete routes
which have already been seen by the recipient, nor the appropriate
journal items.

5 months agoAdded build for Debian 12
Maria Matejka [Wed, 12 Feb 2025 20:30:55 +0000 (21:30 +0100)] 
Added build for Debian 12

Needed right now for a customer. There is a better fix pending.

5 months agoBGP export table src fix
Maria Matejka [Wed, 12 Feb 2025 20:29:10 +0000 (21:29 +0100)] 
BGP export table src fix

When exchanging routes in BGP export table, we forgot to update
the src in cases of add path off. This led to falsely claiming another
origin of that route in export table dump and also holding protocols
in the flush state because of their srcs being kept in the export tables.