]> git.ipfire.org Git - thirdparty/bird.git/log
thirdparty/bird.git
8 months agoRPKI: protocol version 2, loading ASPA
Katerina Kubecova [Fri, 8 Nov 2024 14:26:37 +0000 (15:26 +0100)] 
RPKI: protocol version 2, loading ASPA

Implemented draft-ietf-sidrops-8210bis-16, interoperable with StayRTR
development branches.

8 months agoASPA: Automatic channel reload
Katerina Kubecova [Wed, 8 Nov 2023 12:46:42 +0000 (13:46 +0100)] 
ASPA: Automatic channel reload

8 months agoLib: Optimized printing of numbers
Ondrej Zajicek [Fri, 8 Nov 2024 17:54:13 +0000 (18:54 +0100)] 
Lib: Optimized printing of numbers

One simple trick makes printing of numbers ~4x faster.

8 months agoLib: Optimized printing of IP addresses
Ondrej Zajicek [Fri, 8 Nov 2024 17:51:54 +0000 (18:51 +0100)] 
Lib: Optimized printing of IP addresses

Makes printing network prefixes ~15x faster.

8 months agoCLI: Add timeformat command
Piotr Wydrych [Tue, 5 Nov 2024 17:53:22 +0000 (18:53 +0100)] 
CLI: Add timeformat command

Adds ability to override time format of show commands for current CLI session
so that it does not depend on configuration and may ease parsing when CLI is
called from tools.

Minor changes by committer.

8 months agoNest: Cleanup timeformat grammar
Ondrej Zajicek [Tue, 5 Nov 2024 16:35:20 +0000 (17:35 +0100)] 
Nest: Cleanup timeformat grammar

8 months agoASPA: fixed the check algorithm to actually do what is in the RFC
Maria Matejka [Wed, 6 Nov 2024 11:12:37 +0000 (12:12 +0100)] 
ASPA: fixed the check algorithm to actually do what is in the RFC

The original algorithm assumed principles not consistent with the RFC
and could have lead to false invalids.

Also added filter tests showing also how the ASPA literals are used in
the static protocol.

8 months agoBGP: Add RFC 9687 to list of supported RFCs
Ondrej Zajicek [Thu, 7 Nov 2024 14:03:01 +0000 (15:03 +0100)] 
BGP: Add RFC 9687 to list of supported RFCs

8 months agoBGP: SendHoldTimer became an RFC, updating docs
Maria Matejka [Wed, 6 Nov 2024 12:05:32 +0000 (13:05 +0100)] 
BGP: SendHoldTimer became an RFC, updating docs

9 months agoFilter: Remove T_ENUM_RTC
Ondrej Zajicek [Fri, 18 Oct 2024 14:53:12 +0000 (16:53 +0200)] 
Filter: Remove T_ENUM_RTC

It is not used for a long time.

9 months agoFilter: Replace T_ENUM_NETTYPE with T_ENUM_NET_TYPE
Ondrej Zajicek [Fri, 18 Oct 2024 14:49:19 +0000 (16:49 +0200)] 
Filter: Replace T_ENUM_NETTYPE with T_ENUM_NET_TYPE

To be consistent with other enum type names.

9 months agoFilter: Add enum types to filter grammar
Ondrej Zajicek [Fri, 18 Oct 2024 14:39:42 +0000 (16:39 +0200)] 
Filter: Add enum types to filter grammar

Enum types existed on semantic level, but not on syntactic level,
so they could not be used in filter code.

Generate filter grammar for enum types based on CF_ENUM() declarations.

Thanks to lbz for the bugreport.

9 months agoFlowspec: Fix IPv6 prefix when offset is not multiple of 8
Eric Long [Wed, 16 Oct 2024 19:32:36 +0000 (21:32 +0200)] 
Flowspec: Fix IPv6 prefix when offset is not multiple of 8

Current implementation handles flowspec prefix length and offset only
in bytes, but RFC 8956 (Dissemination of Flow Specification Rules for
IPv6) Section 3.1 [1] and example in Section 3.8.2 [2] states the
pattern should begin right after offset *bits*.

For example, pattern "::1:1234:5678:9800:0/60-104" is currently
serialized as "02 68 3c 01 12 34 56 78 98", but it should shift its
pattern 4 more bits to the left: "02 68 3c 11 23 45 67 89 80".

This patch implements shifting left/right for IPv6 type and use it to
correct the behaviour. Test data are replaced with the correct ones.

Minor changes and test vectors done by committer.

[1]: https://www.rfc-editor.org/rfc/rfc8956.html#section-3.1
[2]: https://www.rfc-editor.org/rfc/rfc8956.html#section-3.8.2

9 months agoFlowspec: Test improvements
Ondrej Zajicek [Wed, 16 Oct 2024 02:04:46 +0000 (04:04 +0200)] 
Flowspec: Test improvements

Simplify Flowspec initialization macros.

Add examples from RFC 8955 4.3 and RFC 8956 3.8 to format tests.

9 months agoDoc: Minor fixes
Ondrej Zajicek [Tue, 15 Oct 2024 15:19:42 +0000 (17:19 +0200)] 
Doc: Minor fixes

9 months agoDoc: Fix code blocks
Ondrej Zajicek [Tue, 15 Oct 2024 15:14:57 +0000 (17:14 +0200)] 
Doc: Fix code blocks

Code blocks should not be indented, as the indendation is passed
to the output,

9 months agoDoc: Improve readability of the operator documentation
Johannes Erwerle [Tue, 15 Oct 2024 14:56:48 +0000 (16:56 +0200)] 
Doc: Improve readability of the operator documentation

Minor changes by committer.

9 months agoFix typo in documentation
Ondrej Zajicek [Wed, 9 Oct 2024 16:00:16 +0000 (18:00 +0200)] 
Fix typo in documentation

9 months agoFilter: Fixes and improvements related to case/sets
Ondrej Zajicek [Tue, 8 Oct 2024 17:34:51 +0000 (19:34 +0200)] 
Filter: Fixes and improvements related to case/sets

Unify grammar for set_atom and switch_atom to avoid inconsistencies
between them. Fix errors in documentation related to case statement
and set type. Change 'vpnrd' to 'rd' to be consistent with the filter
language.

Thanks to Mikhail Mayorov for bugreport.

9 months agoMerge branch 'dpetera-master-patch-71179' into 'master'
Ondřej Zajíček [Mon, 7 Oct 2024 14:35:55 +0000 (16:35 +0200)] 
Merge branch 'dpetera-master-patch-71179' into 'master'

Fix typo in user docs

See merge request labs/bird!27

9 months agoFix typo in user docs
David Petera [Mon, 7 Oct 2024 14:15:09 +0000 (16:15 +0200)] 
Fix typo in user docs

10 months agoRPKI: Add TCP-MD5 authentication option
Job Snijders [Thu, 3 Oct 2024 13:43:12 +0000 (15:43 +0200)] 
RPKI: Add TCP-MD5 authentication option

RPKI-To-Router (RTR) sessions seem to be similar security-sensitivity as
IBGP sessions. BIRD already offered a choice of either "plain TCP" (meh)
or "SSH" (secure, albeit a bit more hassle to set up than TCP-MD5).
The patch adds TCP-MD5 as another option. TCP-MD5 for RTR is specified
through RFC 6810 section 7.3 and RFC 8210 section 9.3.

Minor changes by committer.

11 months agoRenamed my past self in commit authorship and mentioned that in the contributing...
Maria Matejka [Mon, 8 Jul 2024 15:12:21 +0000 (17:12 +0200)] 
Renamed my past self in commit authorship and mentioned that in the contributing policy

11 months agoFixed a stupid bug in parse-and-exit mode
Maria Matejka [Thu, 29 Aug 2024 12:37:19 +0000 (14:37 +0200)] 
Fixed a stupid bug in parse-and-exit mode

Introduced in 08ff0af8986099e6fb1d8a94c7ce62c83e4df7f1, the additional CLI
configuration wasn't properly initialized in the parse-and-exit mode
due to an oversight that cli_init_unix() is not called in this mode.

Thanks to Felix Friedlander for the bugreport.

11 months agoconfigure.ac: properly evaluate ac_test_CFLAGS
Fabrice Fontaine [Tue, 27 Aug 2024 12:54:07 +0000 (14:54 +0200)] 
configure.ac: properly evaluate ac_test_CFLAGS

Since autoconf 2.69 and
https://git.savannah.gnu.org/cgit/autoconf.git/commit/?id=76754e04fce5f6a7701bec57b057020585df2ae3
ac_test_CFLAGS is set to ${CFLAGS+y} instead of ${CFLAGS+set}.

Just test that ac_test_CFLAGS is not empty, to support both cases.

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
11 months agoLib: Expand timer recurrence to 64b
Ondrej Zajicek [Tue, 27 Aug 2024 12:28:41 +0000 (14:28 +0200)] 
Lib: Expand timer recurrence to 64b

The period of recurent timers was stored in 32b field, despite it was
btime-compatible value in us. Therefore, it was limited to ~72 min,
which mas okay for most purposes, except configurable MRT dump periods.

Thanks to Felix Friedlander for the bugreport.

12 months agoIO: Ensure that socket rcvbuf is large enough
Ondrej Zajicek [Thu, 1 Aug 2024 12:55:05 +0000 (14:55 +0200)] 
IO: Ensure that socket rcvbuf is large enough

The socket structure has the field rbsize (receive buffer size), which
controls the size of the userspace receive buffer. There is also kernel
receive buffer, which in some cases may be smaller (e.g. on FreeBSD it
is by default ~8k). The patch ensures that the kernel receive buffer is
as large as the userspace receive buffer.

12 months agoIO: Fix missing return introduced in one of earlier patches
Ondrej Zajicek [Tue, 30 Jul 2024 14:42:32 +0000 (16:42 +0200)] 
IO: Fix missing return introduced in one of earlier patches

12 months agoIO: Avoid re-binding accepted sockets to VRF
Ondrej Zajicek [Tue, 30 Jul 2024 14:33:51 +0000 (16:33 +0200)] 
IO: Avoid re-binding accepted sockets to VRF

When VRFs are used, BIRD correctly binds listening (and connecting)
sockets to their VRFs but also re-binds accepted sockets to the same VRF.
This is not needed as the interface bind is inherited in this case, and
indeed this redundant bind causes an -EPERM if BIRD is running as
non-root making BIRD close the connection and reject the peer.

Thanks to Christian Svensson for the original patch and Alexander Zubkov
for suggestions.

13 months agoAdditional CLI sockets may now be restricted
Maria Matejka [Mon, 24 Jun 2024 11:46:12 +0000 (13:46 +0200)] 
Additional CLI sockets may now be restricted

This allows to have one main socket for the heavy operations
very restricted just for the appropriate users, whereas the
looking glass socket may be more open.

Implemented an idea originally submitted and requested by Akamai.

13 months agoAdditional CLI sockets can be now configured in the config file
Maria Matejka [Mon, 24 Jun 2024 09:10:07 +0000 (11:10 +0200)] 
Additional CLI sockets can be now configured in the config file

If the user has such a need, they may configure additional sockets
in the config file. This may work for e.g. some advanced access control.

13 months agoCLI now has a configuration structure
Maria Matejka [Mon, 24 Jun 2024 09:09:46 +0000 (11:09 +0200)] 
CLI now has a configuration structure

13 months agoTyped lists: added forgotten #undef
Maria Matejka [Mon, 24 Jun 2024 09:27:45 +0000 (11:27 +0200)] 
Typed lists: added forgotten #undef

13 months agoBackported typed list updates from v3
Maria Matejka [Mon, 24 Jun 2024 07:45:57 +0000 (09:45 +0200)] 
Backported typed list updates from v3

Source: dda37842dcf82dae8e441a6c2bcef4b0ffae3429

13 months agoDoc: Minor cleanups in BFD documentation
Ondrej Zajicek [Wed, 26 Jun 2024 14:38:03 +0000 (16:38 +0200)] 
Doc: Minor cleanups in BFD documentation

13 months agoBFD: Add option to accept zero checksum for IPv6 UDP packets
Alexander Zubkov [Wed, 26 Jun 2024 14:29:57 +0000 (16:29 +0200)] 
BFD: Add option to accept zero checksum for IPv6 UDP packets

Some vendors do not fill the checksum for IPv6 UDP packets.
For interoperability with such implementations one can set
UDP_NO_CHECK6_RX socket option on Linux.

Thanks to Ville O for the suggestion.

Minor changes by committer.

14 months agoKernel: Do not use route replace when krt_metric differs
Ondrej Zajicek [Thu, 30 May 2024 14:12:15 +0000 (16:12 +0200)] 
Kernel: Do not use route replace when krt_metric differs

The krt_metric is a part of the primary key, so it cannot differ for
route replace operation.

Thanks to Leif Jakob for the bugreport.

14 months agoFilter: Silence some warnings in clang
Ondrej Zajicek [Thu, 30 May 2024 00:40:55 +0000 (02:40 +0200)] 
Filter: Silence some warnings in clang

14 months agoLib: Fix BSD build
Ondrej Zajicek [Thu, 30 May 2024 00:11:06 +0000 (02:11 +0200)] 
Lib: Fix BSD build

14 months agoLib: Use access() function attribute
Ondrej Zajicek [Wed, 29 May 2024 11:03:10 +0000 (13:03 +0200)] 
Lib: Use access() function attribute

14 months agoLib: Use alloc_size() function attribute
Ondrej Zajicek [Tue, 28 May 2024 14:41:24 +0000 (16:41 +0200)] 
Lib: Use alloc_size() function attribute

14 months agoBFD: Fix build when BFD is disabled
Ondrej Zajicek [Tue, 28 May 2024 13:31:52 +0000 (15:31 +0200)] 
BFD: Fix build when BFD is disabled

Move bfd_opts grammar inside BFD parser code to avoid dependences between
nest and BFD grammars, which breaks when BFD build is disabled.

Add dummy bfd_opts grammar rule, so protocols can use this nonterminal
even with BFD disabled.

Thanks to Yuri Honegger for the bugreport.

14 months agoFormalized our contribution policy which we're currently applying
Maria Matejka [Wed, 1 May 2024 18:23:04 +0000 (20:23 +0200)] 
Formalized our contribution policy which we're currently applying

15 months agoDoc: BFD update
Ondrej Zajicek [Wed, 17 Apr 2024 15:07:47 +0000 (17:07 +0200)] 
Doc: BFD update

15 months agoBFD: Set password per session
Katerina Kubecova [Thu, 11 Apr 2024 12:53:39 +0000 (14:53 +0200)] 
BFD: Set password per session

15 months agoDoc: Fix datetime format for password entries
Ondrej Zajicek [Thu, 11 Apr 2024 16:54:23 +0000 (18:54 +0200)] 
Doc: Fix datetime format for password entries

In BIRD 1, we used DD-MM-YYYY, while in BIRD 2 we switched to the usual
format YYYY-MM-DD.

Thanks to Janne Pisilä for the bugreport.

16 months agoOSPF: Allow loopback nexthop in OSPFv3-IPv4
Ondrej Zajicek [Thu, 4 Apr 2024 16:37:26 +0000 (18:37 +0200)] 
OSPF: Allow loopback nexthop in OSPFv3-IPv4

In OSPFv3-IPv4 there is no requirement that link-local next hop announced
in Link-LSA must be in interface address range. Therefore, for interfaces
that do not have IPv4 address we can use some loopback IP address and
announce it as a next hop. Also we should accept such address.

16 months agoASPA: checks done in filters; no autoreload yet
Maria Matejka [Sun, 15 Oct 2023 21:52:46 +0000 (23:52 +0200)] 
ASPA: checks done in filters; no autoreload yet

16 months agoASPA: basic data structures and Static protocol support
Maria Matejka [Sun, 15 Oct 2023 14:04:36 +0000 (16:04 +0200)] 
ASPA: basic data structures and Static protocol support

16 months agoExpanded usage of stdbool.h to the whole BIRD
Maria Matejka [Sun, 15 Oct 2023 10:06:11 +0000 (12:06 +0200)] 
Expanded usage of stdbool.h to the whole BIRD

16 months agoNEWS and version update v2.15.1
Ondrej Zajicek [Fri, 22 Mar 2024 00:40:43 +0000 (01:40 +0100)] 
NEWS and version update

16 months agoStatic: Fix invalid combination of nexthop options
Ondrej Zajicek [Thu, 21 Mar 2024 23:40:06 +0000 (00:40 +0100)] 
Static: Fix invalid combination of nexthop options

BFD requires defined local IP, but for nexthop with onlink there might
not be such address. So we reject this combination of nexthop options.
This prevent crash where such combination of options is used.

16 months agoRevert "OSPF: On physical PtP links, skip next-hop resolving"
Ondrej Zajicek [Thu, 21 Mar 2024 14:59:26 +0000 (15:59 +0100)] 
Revert "OSPF: On physical PtP links, skip next-hop resolving"

This reverts commit 31aa62ae6d2e111e87c08b4b27a16ead968f0689.

16 months agoMerge commit '44e351d1522f0099687aac9fd65dcea73a04af43'
Ondrej Zajicek [Thu, 21 Mar 2024 14:58:52 +0000 (15:58 +0100)] 
Merge commit '44e351d1522f0099687aac9fd65dcea73a04af43'

16 months agoBabel: Fix build with limited set of protocols
Ondrej Zajicek [Tue, 19 Mar 2024 14:39:46 +0000 (15:39 +0100)] 
Babel: Fix build with limited set of protocols

16 months agoAggregator: Fix build with limited set of protocols
Ondrej Zajicek [Tue, 19 Mar 2024 14:39:19 +0000 (15:39 +0100)] 
Aggregator: Fix build with limited set of protocols

16 months agoStatic: Fix build with limited set of protocols
Michal Zagorski [Mon, 11 Mar 2024 11:57:13 +0000 (12:57 +0100)] 
Static: Fix build with limited set of protocols

16 months agoNEWS and version update v2.15
Ondrej Zajicek [Sun, 10 Mar 2024 17:57:04 +0000 (18:57 +0100)] 
NEWS and version update

16 months agoClient: Add support for completion of command options
Ondrej Zajicek [Tue, 5 Mar 2024 18:04:10 +0000 (19:04 +0100)] 
Client: Add support for completion of command options

We can easily extend command completion to handle also keywords for
command options. Help for command options is not yet supported.

17 months agoFilter: Add route attribute gw_mpls_stack
Ondrej Zajicek [Tue, 5 Mar 2024 15:38:24 +0000 (16:38 +0100)] 
Filter: Add route attribute gw_mpls_stack

Add route attribute gw_mpls_stack to make MPLS stack of route nexthop
accessible from filters. Its type is T_CLIST, which is really not correct
(as it is a list, while T_CLIST is a set). Therefore, we keep this
attribute *undocumented* and it will be *changed* without further notice.

Based on a patch from Trisha Biswas <tbiswas@fastly.com>, thanks!

17 months agoBFD: Add arguments to 'show bfd sessions' command
Ondrej Zajicek [Mon, 4 Mar 2024 22:20:53 +0000 (23:20 +0100)] 
BFD: Add arguments to 'show bfd sessions' command

Add several arguments to 'show bfd sessions' command to filter
the list of sessions.

17 months agoBFD: Improve 'show bfd sessions all' command
Ondrej Zajicek [Fri, 1 Mar 2024 17:39:09 +0000 (18:39 +0100)] 
BFD: Improve 'show bfd sessions all' command

17 months agoBFD: Show session for ip / ip prefix
Katerina Kubecova [Thu, 18 Jan 2024 11:36:48 +0000 (12:36 +0100)] 
BFD: Show session for ip / ip prefix

17 months agoBFD: show bfd sessions all
Katerina Kubecova [Tue, 16 Jan 2024 10:02:22 +0000 (11:02 +0100)] 
BFD: show bfd sessions all

17 months agoRPKI: Add 'local address' configuration option
Job Snijders [Thu, 22 Feb 2024 13:58:29 +0000 (14:58 +0100)] 
RPKI: Add 'local address' configuration option

Allow to explicitly configure the source IP address for RPKI-To-Router
sessions. Predictable source addresses are useful for minimizing the
holes to be poked in ACLs.

Changed from 'source address' to 'local address' by committer.

17 months agoBGP: Maintain valid route attribute flags even in local tables
Ondrej Zajicek [Tue, 20 Feb 2024 16:39:05 +0000 (17:39 +0100)] 
BGP: Maintain valid route attribute flags even in local tables

BGP route attributes have flags (Optional, Transitive) that are validated
on decode and set to valid value on export. But if such attribute is
modified by filter or set internally by BGP during import, then its flags
would be zero in local tables. That usually does not matter, as they are
not used locally and they were fixed on export, but invalid flags leaked
in BMP and MRT dumps.

Keep route attribute flags set to valid values even when set by filters
or modified by BGP.

17 months agoBGP: Update SendHoldTimer BGP Error code
Job Snijders [Sun, 18 Feb 2024 08:00:10 +0000 (09:00 +0100)] 
BGP: Update SendHoldTimer BGP Error code

IANA registered an "Early Allocation" BGP Error code for 'Send Hold
Timer Expired' event. Update BIRD to use that error code.

17 months agoStatic: Allow to define both nexthop and interface
Ondrej Zajicek [Fri, 16 Feb 2024 17:44:40 +0000 (18:44 +0100)] 
Static: Allow to define both nexthop and interface

Allow to define both nexthop and interface using iproute2-like syntax,
e.g.: route 10.0.0.0/16 via 10.1.0.1 dev "eth0";

Now we can avoid to use link-local scope hack (e.g. 10.1.0.1%eth0)
for cases where both nexthop and interface have to be defined.

Thanks to Marcin Saklak for the suggestion.

17 months agoNetlink: Fix spelling of krt_ssthresh / krt_lock_ssthresh
Ondrej Zajicek [Fri, 16 Feb 2024 13:54:17 +0000 (14:54 +0100)] 
Netlink: Fix spelling of krt_ssthresh / krt_lock_ssthresh

BIRD route attribute for RTAX_SSTHRESH metric was krt_sstresh instead of
krt_ssthresh. Fix that and keep old name as an depreacted alias.

17 months agoNetlink: Cleanups in route metrics
Ondrej Zajicek [Fri, 16 Feb 2024 13:29:54 +0000 (14:29 +0100)] 
Netlink: Cleanups in route metrics

- Add krt_fastopen_no_cookie atttibute
- Add missing krt_lock_* bits
- Fix krt_feature_allfrag
- Fix type of EA_KRT_LOCK and EA_KRT_FEATURES

17 months agoFilter: Add support for setting TCP congestion control algorithm
Ondrej Zajicek [Wed, 14 Feb 2024 13:01:04 +0000 (14:01 +0100)] 
Filter: Add support for setting TCP congestion control algorithm

Allow to set TCP congestion control algorithm using krt_congctl
route attribute.

Based on patch from Trisha Biswas <tbiswas@fastly.com>, thanks!

17 months agoFilter: Add support for string route attribute
Ondrej Zajicek [Wed, 14 Feb 2024 12:58:56 +0000 (13:58 +0100)] 
Filter: Add support for string route attribute

17 months agoBGP: Allow multiple EBGP neighbors with the same peer.
Alexander Zubkov [Wed, 7 Feb 2024 18:11:10 +0000 (19:11 +0100)] 
BGP: Allow multiple EBGP neighbors with the same peer.

We can distinguish BGP sessions if at least one side uses a different IP
address. Extend olock mechanism to handle local IP as a part of key, with
optional wildcard, so BGP sessions could local IP in the olock and not
block themselves.

17 months agobirdc: Do not execute cmd on noninteractive help request
Inrin [Tue, 6 Feb 2024 18:03:14 +0000 (19:03 +0100)] 
birdc: Do not execute cmd on noninteractive help request

The help command triggered by '?' keeps the message in readline buffer,
so it could be edited. For noninteractive shell it leads to an unexpected
side effect that `echo <cmd> ? | birdc` executes the command <cmd> after
showing its help. Avoid this by clearing the readline buffer in such case.

17 months agoBGP: Increase max length of notification data in error logs
Ondrej Zajicek [Tue, 6 Feb 2024 17:34:55 +0000 (18:34 +0100)] 
BGP: Increase max length of notification data in error logs

Increase max length of notification data in error logs from 16 to 128.
There is already enough space in the buffer.

Thanks to Marco d'Itri for the suggestion.

18 months agoNest: Fix bug in recursive routes with MPLS-labeled nexthops
Ondrej Zajicek [Sat, 27 Jan 2024 16:38:06 +0000 (17:38 +0100)] 
Nest: Fix bug in recursive routes with MPLS-labeled nexthops

When a recursive route with MPLS-labeled nexthop was exported to kernel
and read back, the nexthop_same() failed due to different labels_orig
field and kernel protocol reinstalled it unnecessarily.

For comparing hext hops, route cache has to distinguish ones with
different labels_orig, but KRT has to ignore that, so we need two
nexthop compare functions.

Thanks to Marcel Menzel for the bugreport.

18 months agoFilter: Tests for net_addr
Katerina Kubecova [Fri, 19 Jan 2024 10:54:25 +0000 (11:54 +0100)] 
Filter: Tests for net_addr

Minor changes by committer.

18 months agoTrivial code cleanups
Ondrej Zajicek [Mon, 22 Jan 2024 05:29:14 +0000 (06:29 +0100)] 
Trivial code cleanups

19 months agoRPKI: retry timer doesn't reset connections when more data is pending mq-fix-busy-rpki
Maria Matejka [Fri, 8 Dec 2023 19:53:20 +0000 (20:53 +0100)] 
RPKI: retry timer doesn't reset connections when more data is pending

With very busy deployments, RPKI may kill cache connection too early.
Instead of that, we want it to keep loading if any data is waiting to
be read and the reason for delay is just our congestion.

Also, when we kill the session because of actually slow cache, we want
to reload from scratch as the data we have is unreliable and nobody
knows whether the state is still valid.

19 months agoOSPF: Cleanup some warnings
Ondrej Zajicek [Wed, 13 Dec 2023 17:07:38 +0000 (18:07 +0100)] 
OSPF: Cleanup some warnings

19 months agoNest: Fix memory alignment in attribute cache
Ondrej Zajicek [Wed, 13 Dec 2023 16:46:16 +0000 (17:46 +0100)] 
Nest: Fix memory alignment in attribute cache

In attribute cache, adata structures were stored densely in one memory
block, without regard to alignment. Let's force at least u32 alignment.

19 months agoLog: Add support for UDP logging
Ondrej Zajicek [Wed, 13 Dec 2023 02:48:12 +0000 (03:48 +0100)] 
Log: Add support for UDP logging

Add support for UDP logging, using RFC 3164 syslog protocol.

Based on the patch from Alexander Zubkov <green@qrator.net>, thanks!

19 months agoMerge commit 'bb094fb6'
Maria Matejka [Fri, 8 Dec 2023 11:09:30 +0000 (12:09 +0100)] 
Merge commit 'bb094fb6'

19 months agoRefactoring also net_roa_check
Maria Matejka [Fri, 8 Dec 2023 11:07:46 +0000 (12:07 +0100)] 
Refactoring also net_roa_check

Having 4 functions doing almost the same is more mess than three macros.

19 months agoMerge commit '54ddf90f'
Maria Matejka [Fri, 8 Dec 2023 07:30:30 +0000 (08:30 +0100)] 
Merge commit '54ddf90f'

19 months agoConf: debug tables
Maria Matejka [Thu, 7 Dec 2023 13:38:05 +0000 (14:38 +0100)] 
Conf: debug tables

For now just a dummy config but it is needed for forward
compatibility with v3.

19 months agoRefactoring of net_route
Maria Matejka [Thu, 7 Dec 2023 13:10:11 +0000 (14:10 +0100)] 
Refactoring of net_route

19 months agoTable: Adding route refresh begin and end debug messages
Maria Matejka [Thu, 7 Dec 2023 12:54:41 +0000 (13:54 +0100)] 
Table: Adding route refresh begin and end debug messages

20 months agoBGP: Send hold timer
Katerina Kubecova [Fri, 27 Oct 2023 15:11:06 +0000 (17:11 +0200)] 
BGP: Send hold timer

Implement BGP Send hold timer according to draft-ietf-idr-bgp-sendholdtimer.
The Send hold timer drops the session if the neighbor is sending keepalives,
but does not receive our messages, causing the TCP connection to stall.

20 months agoBGP: Add options to require BGP capabilities
Ondrej Zajicek [Thu, 23 Nov 2023 19:54:22 +0000 (20:54 +0100)] 
BGP: Add options to require BGP capabilities

Some BGP capabilities change the BGP behavior in a significant way, so if
the configuration depends on it, it is better to not establish BGP
session when the capability is not available.

Add several BGP option to require individual BGP capabilities during
session negotiation.

20 months agoBGP: Simplify capability handling
Ondrej Zajicek [Thu, 23 Nov 2023 16:18:04 +0000 (17:18 +0100)] 
BGP: Simplify capability handling

20 months agoOSPF: On physical PtP links, skip next-hop resolving
Soha Jin [Thu, 9 Nov 2023 13:33:25 +0000 (14:33 +0100)] 
OSPF: On physical PtP links, skip next-hop resolving

Signed-off-by: Soha Jin <soha@jin.sh>
Co-developed-by: Wende Tan <twd2.me@gmail.com>
21 months agoNest: Minor fixes in MPLS
Ondrej Zajicek [Wed, 25 Oct 2023 16:25:46 +0000 (18:25 +0200)] 
Nest: Minor fixes in MPLS

21 months agoDoc: prefix match prefix pattern definition typo (in sets of prefixes definition)
Michal Rada [Tue, 17 Oct 2023 12:58:14 +0000 (14:58 +0200)] 
Doc: prefix match prefix pattern definition typo (in sets of prefixes definition)

21 months agoUse RTA_MAX_SIZE in rta_do_cow()
Ondrej Zajicek [Tue, 14 Mar 2023 15:02:32 +0000 (16:02 +0100)] 
Use RTA_MAX_SIZE in rta_do_cow()

This allows to modify MPLS label stack in filters. Fixes a bug in
handling of 'gw_mpls' attribute.

21 months agoAutoconf: minor reduction of redundancy
Maria Matejka [Tue, 24 Oct 2023 10:40:52 +0000 (12:40 +0200)] 
Autoconf: minor reduction of redundancy

Joined BIRD_CHECK_GCC_OPTION and BIRD_ADD_GCC_OPTION.

21 months agoCI: Update for new netlab worker
Ondrej Zajicek [Tue, 17 Oct 2023 23:48:11 +0000 (01:48 +0200)] 
CI: Update for new netlab worker

 - Change tag from 'birdlab' to 'netlab'
 - Change path of gitlab-runner home dir
 - Use stayrtr from Debian

21 months agoCI: Add MPLS tests
Ondrej Zajicek [Mon, 16 Oct 2023 13:24:32 +0000 (15:24 +0200)] 
CI: Add MPLS tests

21 months agoMPLS: Fix issue with recursive MPLS routes
Ondrej Zajicek [Mon, 16 Oct 2023 13:21:36 +0000 (15:21 +0200)] 
MPLS: Fix issue with recursive MPLS routes

Recursive MPLS routes used hostentry from the original route, which
triggered different table than MPLS table, and therefore were not
updated.

21 months agoNEWS and version update v2.14
Ondrej Zajicek [Fri, 6 Oct 2023 16:53:25 +0000 (18:53 +0200)] 
NEWS and version update