]> git.ipfire.org Git - thirdparty/bird.git/log
thirdparty/bird.git
2 years agoMerge commit '9e44ace3' into thread-next-iface
Maria Matejka [Fri, 14 Apr 2023 13:18:18 +0000 (15:18 +0200)] 
Merge commit '9e44ace3' into thread-next-iface

2 years agoMerge commit 'f881b98d' into thread-next-iface
Maria Matejka [Fri, 14 Apr 2023 12:30:48 +0000 (14:30 +0200)] 
Merge commit 'f881b98d' into thread-next-iface

2 years agoMerge commit '231c6385' into thread-next-iface
Maria Matejka [Fri, 14 Apr 2023 12:00:54 +0000 (14:00 +0200)] 
Merge commit '231c6385' into thread-next-iface

2 years agoMerge commit '2f080b54' into thread-next-iface
Maria Matejka [Fri, 14 Apr 2023 11:59:23 +0000 (13:59 +0200)] 
Merge commit '2f080b54' into thread-next-iface

2 years agoMerge commit '6c058ae4' into thread-next-iface
Maria Matejka [Fri, 14 Apr 2023 11:43:32 +0000 (13:43 +0200)] 
Merge commit '6c058ae4' into thread-next-iface

2 years agoMerge commit '913ec57f' into thread-next-iface
Maria Matejka [Fri, 14 Apr 2023 11:43:24 +0000 (13:43 +0200)] 
Merge commit '913ec57f' into thread-next-iface

2 years agoMerge commit 'ee919658' into thread-next-iface
Maria Matejka [Fri, 14 Apr 2023 11:42:42 +0000 (13:42 +0200)] 
Merge commit 'ee919658' into thread-next-iface

2 years agoMerge commit '0851fcde' into thread-next-iface
Maria Matejka [Fri, 14 Apr 2023 09:37:23 +0000 (11:37 +0200)] 
Merge commit '0851fcde' into thread-next-iface

2 years agoMerge commit 'dc4c5f51' into thread-next-iface
Maria Matejka [Fri, 14 Apr 2023 09:32:20 +0000 (11:32 +0200)] 
Merge commit 'dc4c5f51' into thread-next-iface

2 years agoBGP: Add 'allow bgp_med' option for EBGP sessions
Trisha Biswas [Fri, 14 Apr 2023 02:28:37 +0000 (04:28 +0200)] 
BGP: Add 'allow bgp_med' option for EBGP sessions

This option allows to treat bgp_med as regular transitive attribute
on EBGP sessions (without hacks in filters).

Minor changes from committer.

2 years agoIncrease tests timeout
Jakub Ružička [Thu, 13 Apr 2023 18:06:55 +0000 (20:06 +0200)] 
Increase tests timeout

Tests may take longer than 5 s to complete on slow/virtual machines.

2 years agoTemporarily disable MRT as it still lacks proper locking; to be re-enabled in 3.0...
Maria Matejka [Wed, 12 Apr 2023 16:42:59 +0000 (18:42 +0200)] 
Temporarily disable MRT as it still lacks proper locking; to be re-enabled in 3.0-alpha2

2 years agoLoop: keep running the same loop for some time if there is work to do
Maria Matejka [Thu, 6 Apr 2023 18:18:04 +0000 (20:18 +0200)] 
Loop: keep running the same loop for some time if there is work to do

2 years agoBFD: fixed a request pickup race condition
Maria Matejka [Wed, 5 Apr 2023 19:59:01 +0000 (21:59 +0200)] 
BFD: fixed a request pickup race condition

When several BGPs requested a BFD session in short time, chances were
that the second BGP would file a request while the pickup routine was
still running and it would get enqueued into the waiting list instead of
being picked up.

Fixed this by enforcing pickup loop restart when new requests got added,
and also by atomically moving the unpicked requests to a temporary list
to announce admin down before actually being added into the wait list.

2 years agoBGP: set free bind also for connect sockets if configured
Maria Matejka [Mon, 6 Mar 2023 19:00:01 +0000 (20:00 +0100)] 
BGP: set free bind also for connect sockets if configured

2 years agoBGP: sockets use sk_resume_rx and sk_pause_rx
Maria Matejka [Sun, 2 Apr 2023 17:15:27 +0000 (19:15 +0200)] 
BGP: sockets use sk_resume_rx and sk_pause_rx

2 years agoBGP now has its own loop
Maria Matejka [Sun, 2 Apr 2023 17:35:35 +0000 (19:35 +0200)] 
BGP now has its own loop

2 years agoSockets: Unified API for main and other loops
Maria Matejka [Sun, 2 Apr 2023 17:15:22 +0000 (19:15 +0200)] 
Sockets: Unified API for main and other loops

Now sk_open() requires an explicit IO loop to open the socket in. Also
specific functions for socket RX pause / resume are added to allow for
BGP corking.

And last but not least, socket reloop is now synchronous to resolve
weird cases of the target loop stopping before actually picking up the
relooped socket. Now the caller must ensure that both loops are locked
while relooping, and this way all sockets always have their respective
loop.

2 years agoMore efficient IO loop event execution to avoid long loops
Maria Matejka [Fri, 24 Feb 2023 08:13:35 +0000 (09:13 +0100)] 
More efficient IO loop event execution to avoid long loops

If there are lots of loops in a single thread and only some of the loops
are actually active, the other loops are now kept aside and not checked
until they actually get some timers, events or active sockets.

This should help with extreme loads like 100k tables and protocols.

Also ping and loop pickup mechanism was allowing subtle race
conditions. Now properly handling collisions between loop ping and pickup.

2 years agoResource dumps also write out block addresses
Maria Matejka [Tue, 28 Feb 2023 09:42:47 +0000 (10:42 +0100)] 
Resource dumps also write out block addresses

2 years agoLinpool: State restoration works in initial linpool state
Maria Matejka [Tue, 28 Feb 2023 14:19:21 +0000 (15:19 +0100)] 
Linpool: State restoration works in initial linpool state

2 years agoMisc allocator fixes
Maria Matejka [Tue, 28 Feb 2023 14:23:48 +0000 (15:23 +0100)] 
Misc allocator fixes

2 years agoAllocator fix: thread local kept pages counter must be thread local
Maria Matejka [Mon, 27 Feb 2023 18:12:29 +0000 (19:12 +0100)] 
Allocator fix: thread local kept pages counter must be thread local

2 years agoRoute feed marks only the relevant pending exports as done
Maria Matejka [Fri, 31 Mar 2023 08:46:17 +0000 (10:46 +0200)] 
Route feed marks only the relevant pending exports as done

2 years agoPropagated const through route feed routines
Maria Matejka [Thu, 30 Mar 2023 09:37:16 +0000 (11:37 +0200)] 
Propagated const through route feed routines

2 years agoMoved channel export hooks to rt.h as the channel refactoring isn't going to take...
Maria Matejka [Thu, 30 Mar 2023 08:34:28 +0000 (10:34 +0200)] 
Moved channel export hooks to rt.h as the channel refactoring isn't going to take place soon

2 years agoAllowing to restart a route refresh.
Maria Matejka [Sun, 19 Mar 2023 12:21:35 +0000 (13:21 +0100)] 
Allowing to restart a route refresh.

Repeated pipe refeed should not end route refresh as the prune routine
may start pruning otherwise valid routes.

The same applies for BGP repeated route refresh.

2 years agoFixed default table configuration
Maria Matejka [Thu, 9 Mar 2023 15:34:17 +0000 (16:34 +0100)] 
Fixed default table configuration

When changing default table behavior, I missed that it enabled to
configure multiple master4 and master6 tables. Now BIRD recognizes it
and fails properly.

2 years agoFixed use-after-free of old protocol name pointer copied into rte_owner structure
Maria Matejka [Wed, 8 Mar 2023 12:47:42 +0000 (13:47 +0100)] 
Fixed use-after-free of old protocol name pointer copied into rte_owner structure

2 years agoFixed unwanted reloads while reconfiguring protocols with import table on
Maria Matejka [Wed, 8 Mar 2023 12:44:18 +0000 (13:44 +0100)] 
Fixed unwanted reloads while reconfiguring protocols with import table on

2 years agoFixed bad filter re-evaluation with import table if filtered->accepted
Maria Matejka [Wed, 8 Mar 2023 20:38:18 +0000 (21:38 +0100)] 
Fixed bad filter re-evaluation with import table if filtered->accepted

The import table feed wasn't resetting the table-specific route values
like REF_FILTERED and thus made the route look like filtered even though
it should have been re-evaluated as accepted.

2 years agoFixed channel stopping when reload is active
Maria Matejka [Tue, 7 Mar 2023 22:22:03 +0000 (23:22 +0100)] 
Fixed channel stopping when reload is active

2 years agoFix obvious mistake in protocol debug dump
Maria Matejka [Mon, 6 Mar 2023 18:28:08 +0000 (19:28 +0100)] 
Fix obvious mistake in protocol debug dump

2 years agoFixed stopping of import request with no imports in idle table
Maria Matejka [Thu, 2 Mar 2023 10:48:17 +0000 (11:48 +0100)] 
Fixed stopping of import request with no imports in idle table

2 years agoMoved table hostcache updater to table service routines to not bother the mainloop
Maria Matejka [Mon, 6 Mar 2023 12:16:12 +0000 (13:16 +0100)] 
Moved table hostcache updater to table service routines to not bother the mainloop

2 years agoReducing initial channel bitmap sizes to help extreme cases
Maria Matejka [Mon, 27 Feb 2023 21:03:41 +0000 (22:03 +0100)] 
Reducing initial channel bitmap sizes to help extreme cases

2 years agoFlowspec links must have the destination table service loop locked
Maria Matejka [Tue, 7 Feb 2023 16:01:34 +0000 (17:01 +0100)] 
Flowspec links must have the destination table service loop locked

2 years agoBGP Export Table: Fixed route source objects leaking when prefix best routes is updated
Maria Matejka [Wed, 8 Mar 2023 18:28:31 +0000 (19:28 +0100)] 
BGP Export Table: Fixed route source objects leaking when prefix best routes is updated

2 years agoBGP: LLGR Staleness optimization dropped.
Maria Matejka [Wed, 29 Mar 2023 16:55:46 +0000 (18:55 +0200)] 
BGP: LLGR Staleness optimization dropped.

This brought unnecessary complexity into the decision procedures while the
performance aspects weren't worth it. It just saved one ea_list traversal
when many others are also done.

2 years agoBGP: show detailed TX state in show proto all output
Maria Matejka [Sun, 5 Mar 2023 15:22:55 +0000 (16:22 +0100)] 
BGP: show detailed TX state in show proto all output

2 years agoBFD notifications respect protocol loop settings
Maria Matejka [Tue, 7 Feb 2023 14:14:40 +0000 (15:14 +0100)] 
BFD notifications respect protocol loop settings

2 years agoTemporarily switching off time annotations of debug log
Maria Matejka [Thu, 9 Mar 2023 15:32:20 +0000 (16:32 +0100)] 
Temporarily switching off time annotations of debug log

The "dump *" commands are totally garbled by the time annotations.

2 years agoConf: Fix too early free of old configuration
Ondrej Zajicek [Sun, 19 Feb 2023 02:59:10 +0000 (03:59 +0100)] 
Conf: Fix too early free of old configuration

The change 371eb49043d225d2bab8149187b813a14b4b86d2 introduced early free
of old_config. Unfortunately, it did not properly check whether it is not
still in use (blocked by obstacle during reconfiguration). Fix that.

It also means that we still could have a short peak when three configs
are in use (when a new reconfig is requeste while the previous one is
still active).

2 years agoInterface subsystem locking
Maria Matejka [Tue, 4 Apr 2023 14:41:55 +0000 (16:41 +0200)] 
Interface subsystem locking

2 years agoProto: published protocol-loop connections
Maria Matejka [Sun, 2 Apr 2023 17:34:22 +0000 (19:34 +0200)] 
Proto: published protocol-loop connections

2 years agoBGP: Fix bgp_med handling
Ondrej Zajicek [Tue, 4 Apr 2023 03:20:49 +0000 (05:20 +0200)] 
BGP: Fix bgp_med handling

Missing translation from BGP attribute ID to eattr ID in bgp_unset_attr()
broke automatic removal of bgp_med during export to EBGP peers.

Thanks to Edward Sun for the bugreport.

2 years agoAdd missing references to "show route in" in the cli-help and doc.
Johannes Moos [Sat, 18 Mar 2023 14:33:48 +0000 (15:33 +0100)] 
Add missing references to "show route in" in the cli-help and doc.

The feature of showing all prefixes inside the given one has been added
in v2.0.9 but not well documented. Fixing it by this update.

Text in doc and commit message added by commiter.

2 years agoBGP: Free bind applies also to outbound connections
Maria Matejka [Thu, 16 Mar 2023 18:23:19 +0000 (19:23 +0100)] 
BGP: Free bind applies also to outbound connections

Even though the free bind option is primarily meant to alleviate problems
with addresses assigned too late, it's also possible to use BIRD with AnyIP
configuration, assigning whole ranges to the machine. Therefore free bind
allows also to create an outbound connection from specific address even though
such address is not assigned.

2 years agoNet: Replace runtime checks with STATIC_ASSERT()
Ondrej Zajicek [Mon, 6 Mar 2023 10:57:40 +0000 (11:57 +0100)] 
Net: Replace runtime checks with STATIC_ASSERT()

2 years agoPrintf test suite fails on systems with musl libc because tests for "%m"
Petr Vaněk [Mon, 6 Mar 2023 10:19:30 +0000 (11:19 +0100)] 
Printf test suite fails on systems with musl libc because tests for "%m"
and "%M" formats expect "Input/output error" message but musl returns
"I/O error". Proposed change compares the printf output with string
returned from strerror function for EIO constant.

See-also: https://bugs.gentoo.org/836713

Minor change from committer.

2 years agoConfig: Dropping filter instruction trees after linearization
Maria Matejka [Thu, 16 Feb 2023 13:22:23 +0000 (14:22 +0100)] 
Config: Dropping filter instruction trees after linearization

2 years agoLinpool flush drops all the allocated pages but one
Maria Matejka [Wed, 22 Feb 2023 13:45:20 +0000 (14:45 +0100)] 
Linpool flush drops all the allocated pages but one

When a linpool is used to allocate a one-off big load of memory, it
makes no sense to keep that amount of memory for future use inside the
linpool. Contrary to previous implementations where the memory was
directly free()d, we now use the page allocator which has an internal
cache which keeps the released pages for us and subsequent allocations
simply get these released pages back.

And even if the page cleanup routine kicks in inbetween, the pages get
only madvise()d, not munmap()ed so performance aspects are negligible.

This may fix some memory usage peaks in extreme cases.

2 years agoBGP: Update RFC references
Ondrej Zajicek [Sun, 19 Feb 2023 14:35:07 +0000 (15:35 +0100)] 
BGP: Update RFC references

2 years agoBabel: Update RFC references
Ondrej Zajicek [Sun, 19 Feb 2023 14:34:43 +0000 (15:34 +0100)] 
Babel: Update RFC references

2 years agoConf: Fix too early free of old configuration
Ondrej Zajicek [Sun, 19 Feb 2023 02:59:10 +0000 (03:59 +0100)] 
Conf: Fix too early free of old configuration

The change 371eb49043d225d2bab8149187b813a14b4b86d2 introduced early free
of old_config. Unfortunately, it did not properly check whether it is not
still in use (blocked by obstacle during reconfiguration). Fix that.

It also means that we still could have a short peak when three configs
are in use (when a new reconfig is requeste while the previous one is
still active).

2 years agoBabel: Keep separate auth PC counters for unicast and multicast
Toke Høiland-Jørgensen [Tue, 14 Feb 2023 17:18:32 +0000 (18:18 +0100)] 
Babel: Keep separate auth PC counters for unicast and multicast

The babel protocol normally sends all its messages as multicast packets,
but the protocol specification allows most messages to be sent as either
unicast or multicast, and the two can be mixed freely. In particular, the
babeld implementation can be configured to unicast updates to all peers
instead of sending them as unicast.

Daniel discovered that this can cause problems with the packet counter
checks in the MAC extension due to packet reordering. This happens on WiFi
networks where clients have power save enabled (which is quite common in
infrastructure networks): in this case, the access point will buffer all
multicast traffic and only send it out along with its beacons, leading to a
maximum buffering in default Linux-based access point configuration of up
to 200 ms.

This means that a Babel sender that mixes unicast and multicast messages
can have the unicast messages overtake the multicast messages because of
this buffering; when authentication is enabled, this causes the receiver to
discard the multicast message when it does arrive because it now has a
packet counter value less than the unicast message that arrived before it.
Daniel observed that this happens frequently enough that Babel ceases to
work entirely when runner over a WiFi network.

The issue has been described in draft-ietf-babel-mac-relaxed, which is
currently pending RFC publication. That also describes two mitigation
mechanisms: Keeping separate PC counters for unicast and multicast, and
using a reorder window for PC values. This patch implements the former as
that is the simplest, and resolves the particular issue seen on WiFi.

Thanks to Daniel Gröber for the bugreport.

Minor changes from committer.

2 years agoBabel: Implement IPv4 via IPv6 extension (RFC 9229)
Andreas Rammhold [Tue, 14 Feb 2023 15:17:03 +0000 (16:17 +0100)] 
Babel: Implement IPv4 via IPv6 extension (RFC 9229)

The patch implements an IPv4 via IPv6 extension (RFC 9229) to the Babel
routing protocol (RFC 8966) that allows annoncing routes to an IPv4
prefix with an IPv6 next hop, which makes it possible for IPv4 traffic
to flow through interfaces that have not been assigned an IPv4 address.

The implementation is compatible with the current Babeld version.

Thanks to Toke Høiland-Jørgensen for early review on this work.

Minor changes from committer.

2 years agoProtocol shutdown/restart from limits is respecting the loops
Maria Matejka [Mon, 6 Feb 2023 14:06:12 +0000 (15:06 +0100)] 
Protocol shutdown/restart from limits is respecting the loops

2 years agoMerge commit '0bb04d5390f21b0c96fc4894ba5d5510c541f0ef' into HEAD
Maria Matejka [Tue, 7 Feb 2023 13:27:23 +0000 (14:27 +0100)] 
Merge commit '0bb04d5390f21b0c96fc4894ba5d5510c541f0ef' into HEAD

2 years agoBGP: opening and closing listening socket asynchronously
Maria Matejka [Sun, 5 Feb 2023 18:54:06 +0000 (19:54 +0100)] 
BGP: opening and closing listening socket asynchronously

2 years agoDocumentation: Adding roadmap as decided in January 2023
Maria Matejka [Fri, 3 Feb 2023 08:12:34 +0000 (09:12 +0100)] 
Documentation: Adding roadmap as decided in January 2023

2 years agoMacro: stringify
Maria Matejka [Thu, 2 Feb 2023 12:27:10 +0000 (13:27 +0100)] 
Macro: stringify

2 years agoLists: fixed bugs in expensive checks in quirky usecases
Maria Matejka [Thu, 2 Feb 2023 12:26:49 +0000 (13:26 +0100)] 
Lists: fixed bugs in expensive checks in quirky usecases

2 years agoInterface updates are asynchronous
Maria Matejka [Tue, 31 Jan 2023 12:07:46 +0000 (13:07 +0100)] 
Interface updates are asynchronous

Instead of propagating interface updates as they are loaded from kernel,
they are enqueued and all the notifications are called from a
protocol-specific event. This change allows to break the locking loop
between protocols and interfaces.

Anyway, this change is based on v2 branch to keep the changes between v2
and v3 smaller.

2 years agoProto: Adding a list of associated neighbors
Maria Matejka [Wed, 1 Feb 2023 11:10:34 +0000 (12:10 +0100)] 
Proto: Adding a list of associated neighbors

This makes for safer and faster pruning and notifying as protocol now on
its shutdown prunes only its neighbors and nothing else.

2 years agoTyped lists: shortcut for simple nodes
Maria Matejka [Tue, 31 Jan 2023 13:30:35 +0000 (14:30 +0100)] 
Typed lists: shortcut for simple nodes

2 years agoMoved interface list flush to device protocol cleanup hook.
Maria Matejka [Tue, 31 Jan 2023 12:11:55 +0000 (13:11 +0100)] 
Moved interface list flush to device protocol cleanup hook.

The interface list must be flushed when device protocol is stopped. This
was done in a hardcoded specific hook inside generic protocol routines.
The cleanup hook was originally used for table reference counting late
cleanup, yet it can be also simply used for prettier interface list flush.

2 years agoBuild: Partial revert of one of previous changes
Ondrej Zajicek [Wed, 1 Feb 2023 18:30:21 +0000 (19:30 +0100)] 
Build: Partial revert of one of previous changes

There are many compatibility issues with echo -e, scratch that.

2 years agoBuild: Minor improvement to build output
Ondrej Zajicek [Wed, 1 Feb 2023 16:46:48 +0000 (17:46 +0100)] 
Build: Minor improvement to build output

2 years agoNest: Minor cleanup in buildsystem
Ondrej Zajicek [Wed, 1 Feb 2023 15:15:13 +0000 (16:15 +0100)] 
Nest: Minor cleanup in buildsystem

There ware missing dependencies for proto-build.c generation, which
sometimes lead to failed builds, and ignores changes in the set of
built protocols. Fix that, and also improve formatting of proto-build.c

2 years agoBabel: Initialise source seqno from incoming message
Toke Høiland-Jørgensen [Tue, 31 Jan 2023 14:52:14 +0000 (15:52 +0100)] 
Babel: Initialise source seqno from incoming message

When creating a new babel_source object we initialise the seqno to 0. The
caller will update the source object with the right metric and seqno value,
for both newly created and old source objects. However if we initialise the
source object seqno to 0 that may actually turn out to be a valid (higher)
seqno than the one in the routing table, because of seqno wrapping. In this
case the source metric will not be set properly, which breaks feasibility
tracking for subsequent updates.

To fix this, add a new initial_seqno argument to babel_get_source() which
is used when allocating a new object, and set that to the seqno value of
the update we're sending.

Thanks to Juliusz Chroboczek for the bugreport.

2 years agoBabel: Improve clarity of unfeasible update handling.
Ondrej Zajicek [Mon, 30 Jan 2023 22:49:20 +0000 (23:49 +0100)] 
Babel: Improve clarity of unfeasible update handling.

Add a comment and (unnecessary) check to make correctness obvious.

2 years agoBabel: Fix missing modulo comparison of seqnos
Toke Høiland-Jørgensen [Mon, 30 Jan 2023 22:36:39 +0000 (23:36 +0100)] 
Babel: Fix missing modulo comparison of seqnos

Juliusz noticed there were a couple of places we were doing straight
inequality comparisons of seqnos in Babel. This is wrong because seqnos can
wrap: so we need to use the modulo-64k comparison function for these cases
as well.

Introduce a strict-inequality version of the modulo-comparison for this
purpose.

2 years agoObject locks use events
Maria Matejka [Tue, 24 Jan 2023 10:01:34 +0000 (11:01 +0100)] 
Object locks use events

Instead of calling custom hooks from object locks, we use standard event
sending mechanism to inform protocols about object lock changes. This is
a backport from version 3 where these events are passed across threads.

This implementation of object locks doesn't use mutexes to lock the
whole data structure. In version 3, this data structure may get accessed
from multiple threads and must be protected by mutex.

2 years agoVRF setting reduced to one argument, using default dummy iface for default vrf
Maria Matejka [Mon, 15 Nov 2021 09:53:58 +0000 (10:53 +0100)] 
VRF setting reduced to one argument, using default dummy iface for default vrf

2 years agoObject locks use events
Maria Matejka [Tue, 24 Jan 2023 10:01:34 +0000 (11:01 +0100)] 
Object locks use events

Instead of calling custom hooks from object locks, we use standard event
sending mechanism to inform protocols about object lock changes. As
event sending is lockless, the unlocking protocol simply enqueues the
appropriate event to the given loop when the locking is done.

2 years agoMerge v2.0.12 into thread-next
Maria Matejka [Tue, 24 Jan 2023 08:45:50 +0000 (09:45 +0100)] 
Merge v2.0.12 into thread-next

2 years agoMerge commit '3186ffe79714a48542d5ad61a94c81216b522fd0' into thread-next
Maria Matejka [Tue, 24 Jan 2023 08:45:40 +0000 (09:45 +0100)] 
Merge commit '3186ffe79714a48542d5ad61a94c81216b522fd0' into thread-next

2 years agoMerge commit '6bb992cb04926895be57dc97e7d569ea15a07db1' into thread-next
Maria Matejka [Tue, 24 Jan 2023 08:44:43 +0000 (09:44 +0100)] 
Merge commit '6bb992cb04926895be57dc97e7d569ea15a07db1' into thread-next

2 years agoMerge commit '9dc9124c' into thread-next
Maria Matejka [Tue, 24 Jan 2023 08:21:34 +0000 (09:21 +0100)] 
Merge commit '9dc9124c' into thread-next

2 years agoRevert "Filter: Allow setting the 'onlink' route attribute in filters"
Maria Matejka [Tue, 24 Jan 2023 08:20:36 +0000 (09:20 +0100)] 
Revert "Filter: Allow setting the 'onlink' route attribute in filters"

This reverts commit 7144c9ca46f092da33a4e051bbce8f973a3bd8c4.

The onlink attribute implementation collides with the nexthop attribute
behavior in v3; keeping it aside until finding out how to reimplement it
correctly.

2 years agoMerge commit '928a1cb034e6f9e8edcdd1dc07264cd703e00827' into thread-next
Maria Matejka [Mon, 23 Jan 2023 18:51:24 +0000 (19:51 +0100)] 
Merge commit '928a1cb034e6f9e8edcdd1dc07264cd703e00827' into thread-next

2 years agoMerge commit '7fb23041a52d01754c53ba963e2282e524813364' into thread-next
Maria Matejka [Mon, 23 Jan 2023 18:46:26 +0000 (19:46 +0100)] 
Merge commit '7fb23041a52d01754c53ba963e2282e524813364' into thread-next

2 years agoMerge commit 'd1cd5e5a63b2256eb71661f7438537e4ded7b01a' into thread-next
Maria Matejka [Mon, 23 Jan 2023 18:42:12 +0000 (19:42 +0100)] 
Merge commit 'd1cd5e5a63b2256eb71661f7438537e4ded7b01a' into thread-next

2 years agoMerge commit 'b28431e557c4f63923476094a919a0630001275e' into thread-next
Maria Matejka [Mon, 23 Jan 2023 18:36:22 +0000 (19:36 +0100)] 
Merge commit 'b28431e557c4f63923476094a919a0630001275e' into thread-next

2 years agoMerge commit 'd3f50ede127df338f575e188566035b2a46cf6c6' into thread-next
Maria Matejka [Mon, 23 Jan 2023 18:05:41 +0000 (19:05 +0100)] 
Merge commit 'd3f50ede127df338f575e188566035b2a46cf6c6' into thread-next

2 years agoMerge commit '6d1ae197d189d50e60279796441c6e74272ddc54' into thread-next
Maria Matejka [Mon, 23 Jan 2023 18:03:16 +0000 (19:03 +0100)] 
Merge commit '6d1ae197d189d50e60279796441c6e74272ddc54' into thread-next

2 years agoMerge commit '8b06a4d8af46511f0f8dbb8905afa88590a831b6' into thread-next
Maria Matejka [Mon, 23 Jan 2023 17:57:13 +0000 (18:57 +0100)] 
Merge commit '8b06a4d8af46511f0f8dbb8905afa88590a831b6' into thread-next

2 years agoSmall fix of indenting
Alexander Zubkov [Mon, 23 Jan 2023 13:23:00 +0000 (14:23 +0100)] 
Small fix of indenting

2 years agoNEWS and version update v2.0.12
Ondrej Zajicek [Mon, 23 Jan 2023 01:23:19 +0000 (02:23 +0100)] 
NEWS and version update

2 years agoBFD: Improve incoming packet matching
Ondrej Zajicek [Sun, 22 Jan 2023 22:42:08 +0000 (23:42 +0100)] 
BFD: Improve incoming packet matching

For active sessions, ignore received packets with zero local id and
mismatched remote id. That forces a session timeout instead of an
immediate session restart. It makes BFD sessions more resilient to
packet spoofing.

Thanks to André Grüneberg for the suggestion.

2 years agoVRF: Fix issues with reconfiguration
Ondrej Zajicek [Sun, 22 Jan 2023 17:12:04 +0000 (18:12 +0100)] 
VRF: Fix issues with reconfiguration

Protocols receive if_notify() announcements that are filtered according
to their VRF setting, but during reconfiguration, they access iface_list
directly and forgot to check VRF setting here, which leads to all
interfaces be addedd.

Fix this issue for Babel, OSPF, RAdv and RIP protocols.

Thanks to Marcel Menzel for the bugreport.

2 years agoMerge commit '2b7643e1f8ecb0bd4cf9af4183b4fd53b655d19c' into thread-next
Maria Matejka [Sun, 22 Jan 2023 12:19:22 +0000 (13:19 +0100)] 
Merge commit '2b7643e1f8ecb0bd4cf9af4183b4fd53b655d19c' into thread-next

2 years agoAdded test case for switch bug fixed in e20bef69ccc4a85ef62359ee539c9db2dbe09127
Maria Matejka [Sun, 22 Jan 2023 11:55:31 +0000 (12:55 +0100)] 
Added test case for switch bug fixed in e20bef69ccc4a85ef62359ee539c9db2dbe09127

2 years agoMerge commit '1e47b9f203aaaad0fb658d40a1670f1d0437f1f8' into thread-next
Maria Matejka [Sat, 21 Jan 2023 22:49:52 +0000 (23:49 +0100)] 
Merge commit '1e47b9f203aaaad0fb658d40a1670f1d0437f1f8' into thread-next

2 years agoMerge commit 'e48f898fdaf06b61754ae520410729a9984ab65b' into thread-next
Maria Matejka [Sat, 21 Jan 2023 22:46:45 +0000 (23:46 +0100)] 
Merge commit 'e48f898fdaf06b61754ae520410729a9984ab65b' into thread-next

2 years agoMerge commit 'a80cd4707464cedb526eb72e7704b097af20beb7' into thread-next
Maria Matejka [Sat, 21 Jan 2023 22:46:33 +0000 (23:46 +0100)] 
Merge commit 'a80cd4707464cedb526eb72e7704b097af20beb7' into thread-next

2 years agoMerge commit '3859e4efc1597368df647323c5a3cc1771cb64ca' into thread-next
Maria Matejka [Sat, 21 Jan 2023 22:45:13 +0000 (23:45 +0100)] 
Merge commit '3859e4efc1597368df647323c5a3cc1771cb64ca' into thread-next

2 years agoMerge commit 'e80156d9363a594ff23524f56d59f0eee160859d' into thread-next
Maria Matejka [Sat, 21 Jan 2023 22:45:04 +0000 (23:45 +0100)] 
Merge commit 'e80156d9363a594ff23524f56d59f0eee160859d' into thread-next

2 years agoAdding forgotten pthread.h #include in io-loop.h (breaks at openbsd 7.1)
Maria Matejka [Sat, 21 Jan 2023 22:42:02 +0000 (23:42 +0100)] 
Adding forgotten pthread.h #include in io-loop.h (breaks at openbsd 7.1)