]>
git.ipfire.org Git - thirdparty/bird.git/log
Maria Matejka [Thu, 30 May 2024 21:05:15 +0000 (23:05 +0200)]
Slab: can be deleted as a single object
Maria Matejka [Thu, 30 May 2024 06:22:40 +0000 (08:22 +0200)]
Export: Next feed step-up is now internal
There is no much reason to do anything else than the netindex technique.
Maria Matejka [Wed, 29 May 2024 18:16:08 +0000 (20:16 +0200)]
BGP: Simpler hashing in export table
We need a hashing simple enough to allow for feeding by netindex.
Maria Matejka [Wed, 29 May 2024 06:18:31 +0000 (08:18 +0200)]
BGP: Export uses common attribute cache
There is no real need for storing bucket attributes locally and we may
save some memory by caching the attributes in one central place.
If this becomes a contention problem, we should reduce the lock load
of the central attribute cache.
Maria Matejka [Tue, 28 May 2024 19:49:07 +0000 (21:49 +0200)]
BGP: pending TX prefixes link netindex instead of copying net_addr
This helps with memory consumption, allows for removal of multiple
slab/mblock ifs and prepares for easier feeds.
Maria Matejka [Tue, 28 May 2024 20:33:14 +0000 (22:33 +0200)]
BGP: refactored pending TX back into channel
Maria Matejka [Thu, 2 May 2024 09:39:34 +0000 (11:39 +0200)]
Real almost-lockless feeds and more pull-like exports
Introducing a new omnipotent internal API to just pass route updates
from whatever point wherever we want.
From now on, all the exports should be processed by RT_WALK_EXPORTS
macro, and you can also issue a separate feed-only request to just get a
feed and finish.
The exporters can now also stop and the readers must expect that to
happen and recover. Main tables don't stop, though.
Maria Matejka [Wed, 29 May 2024 08:55:59 +0000 (10:55 +0200)]
BGP: explicitly sending route refresh from CLI
Maria Matejka [Wed, 27 Mar 2024 10:34:19 +0000 (11:34 +0100)]
Protocol filter reload is now done by 'reload filters'
This prepares for the separate 'reload bgp' command triggering BGP Route Refresh
Maria Matejka [Wed, 22 May 2024 06:56:37 +0000 (08:56 +0200)]
Static: Fixed undefined nexthop padding problems
Maria Matejka [Mon, 20 May 2024 13:57:13 +0000 (15:57 +0200)]
Netindex: fixed resolving net by index
Maria Matejka [Fri, 10 May 2024 14:32:08 +0000 (16:32 +0200)]
RIP partial reload never worked properly, running full reload always
Maria Matejka [Fri, 10 May 2024 14:22:16 +0000 (16:22 +0200)]
Dropping obsolete protocol Perf
We have now better methods how to measure overall performance
and this obsolete protocol has basically rotten away. If anybody
needs its features, feel free to revive it in future.
Maria Matejka [Fri, 10 May 2024 14:14:54 +0000 (16:14 +0200)]
OSPF partial reload never worked properly, running full reload always
Maria Matejka [Wed, 8 May 2024 16:55:01 +0000 (18:55 +0200)]
Simplified temporary resources
Also TMP_SAVED now uses the CLEANUP hook to allow for breaks and returns
Maria Matejka [Fri, 26 Apr 2024 10:14:33 +0000 (12:14 +0200)]
SKIP_BACK_DECLARE: easier embedded-to-parent typecasting
Maria Matejka [Tue, 23 Apr 2024 16:50:22 +0000 (18:50 +0200)]
Lockless feed of a single net
Maria Matejka [Tue, 23 Apr 2024 16:28:34 +0000 (18:28 +0200)]
Using ea_lookup_tmp() for temporarily keeping attribute references
To avoid needs for keeping local temporary references for attributes,
now one can use ea_lookup_tmp() to ensure that the attributes are
valid and stored until the task ends. After that, the attributes are
automatically unref'd and also deallocated if needed.
Maria Matejka [Tue, 23 Apr 2024 15:35:00 +0000 (17:35 +0200)]
Refactored the deferring framework into a separate structure
Maria Matejka [Thu, 16 May 2024 08:22:19 +0000 (10:22 +0200)]
Avoiding RCU synchronization deadlock when locking in critical section
Explicitly marking domains eligible for RCU synchronization. It's then
forbidden to lock these domains in RCU critical section to avoid
possible deadlock.
Maria Matejka [Tue, 14 May 2024 08:46:10 +0000 (10:46 +0200)]
RCU Unwinder refactored from route table to a separate structure
Maria Matejka [Wed, 3 Apr 2024 12:47:15 +0000 (14:47 +0200)]
Table feeds are now lockless
This commit makes the route chains in the tables atomic. This allows not
only standard exports but also feeds and bulk exports to be processed
without ever locking the table.
Design note: the overall data structures are quite brittle. We're using
RCU read-locks to keep track about readers, and we're indicating ongoing
work on the data structures by prepending a REF_OBSOLETE sentinel node
to make every reader go waiting.
All the operations are intended to stay inside nest/rt-table.c and it
may be even best to further refactor the code to hide the routing table
internal structure inside there. Nobody shall definitely write any
routines manipulating live routes in tables from outside.
Maria Matejka [Sat, 20 Apr 2024 16:10:42 +0000 (18:10 +0200)]
Fixed flush condition when stale cycle valid/set indicators wrap around
Maria Matejka [Wed, 3 Apr 2024 11:31:36 +0000 (13:31 +0200)]
Kernel: replaced synchronous prune by a refeed
Maria Matejka [Thu, 4 Apr 2024 09:38:52 +0000 (11:38 +0200)]
Lockless hostentry resolution
Now the hostentry doesn't need to lock table, instead it tracks the
hostentry version and retries if the hostentry changed while updating.
Maria Matejka [Thu, 4 Apr 2024 10:01:35 +0000 (12:01 +0200)]
Cached route attributes now have explicitly marked layers
Also the rta_* functions renamed to ea_* functions
Maria Matejka [Mon, 1 Apr 2024 18:04:14 +0000 (20:04 +0200)]
Netindex: Dropping tmp handle mechanism in favor of deferred lfuc_unlock
Maria Matejka [Mon, 1 Apr 2024 14:01:26 +0000 (16:01 +0200)]
Fixed all implicit seq_cst warnings caused by the previous commit
Maria Matejka [Mon, 1 Apr 2024 13:24:28 +0000 (15:24 +0200)]
Enabling warnings for implicit seq_cst in atomic access
Maria Matejka [Wed, 27 Mar 2024 11:17:31 +0000 (12:17 +0100)]
Doc: short migration info for BIRD 2 -> 3
Maria Matejka [Sun, 7 Apr 2024 12:11:27 +0000 (14:11 +0200)]
Fixed announcement inconsistency between feeds and regular exports
Maria Matejka [Sun, 7 Apr 2024 11:23:59 +0000 (13:23 +0200)]
Fixed best route announcements after NHU
When more routes in one net changed at once, the best route
announcements were inconsistent which confused exporters.
Maria Matejka [Wed, 13 Mar 2024 12:46:16 +0000 (13:46 +0100)]
Route flag REF_OBSOLETE
Marking routes obsolete when being removed from table, just to be sure.
Maria Matejka [Tue, 5 Mar 2024 13:52:50 +0000 (14:52 +0100)]
Removed the obsolete birdloop flagger
This was useful when events were locking. As now sending events is lockless,
we can drop this obsolete routine for good.
Maria Matejka [Tue, 5 Mar 2024 13:48:37 +0000 (14:48 +0100)]
Simplified table deletion (one less step)
Maria Matejka [Tue, 5 Mar 2024 13:25:52 +0000 (14:25 +0100)]
Hostentry usecount converted to lfuc
Maria Matejka [Tue, 5 Mar 2024 12:57:11 +0000 (13:57 +0100)]
Lockfree usecount: deferring unlocks to the metaloop
This allows us for easy temporary locks without additional burden of explicit cleanup.
Maria Matejka [Thu, 29 Feb 2024 13:04:05 +0000 (14:04 +0100)]
Route table export journal converted to the generic structure
Maria Matejka [Thu, 29 Feb 2024 13:03:30 +0000 (14:03 +0100)]
Lock free journal refactored into a separate data structure
Maria Matejka [Thu, 22 Feb 2024 12:31:11 +0000 (13:31 +0100)]
Replacing the NHU table loop flag with a proper event
Maria Matejka [Sun, 11 Feb 2024 21:58:29 +0000 (22:58 +0100)]
Flowspec links don't peruse the all-hooks list for lookup
Maria Matejka [Fri, 9 Feb 2024 16:02:44 +0000 (17:02 +0100)]
Refactoring: back-merged export data structures
Table-specific structures inheriting commons are too crazy.
Maria Matejka [Fri, 9 Feb 2024 14:52:26 +0000 (15:52 +0100)]
Export table dump temporarily switched off
Maria Matejka [Thu, 8 Feb 2024 13:34:54 +0000 (14:34 +0100)]
Added and explicit target table to the ROA subscription object
Maria Matejka [Wed, 7 Feb 2024 16:30:43 +0000 (17:30 +0100)]
Refactoring of struct rt_pending_export
Now it stores const rte * instead of struct rte_storage * to allow for
different storage backends.
Maria Matejka [Sun, 19 May 2024 10:19:49 +0000 (12:19 +0200)]
Missing definition of RTAX_FASTOPEN_NO_COOKIE shouldn't kill the whole build
Maria Matejka [Sun, 19 May 2024 09:28:03 +0000 (11:28 +0200)]
Merge a branch of fixes and updates needed for stabilization of v3.
Merge commit '
c06ce709 ' into HEAD
Maria Matejka [Sun, 19 May 2024 09:27:18 +0000 (11:27 +0200)]
L3VPN: Setting the bgp_ext_community flags properly
Maria Matejka [Tue, 5 Mar 2024 11:17:56 +0000 (12:17 +0100)]
Static: Unlock IGP tables on cleanup to avoid problems with hostentry unlocking
Maria Matejka [Fri, 17 May 2024 21:21:38 +0000 (23:21 +0200)]
Loop run waits until pingers finish
This ensures that if somebody passes an event to a loop which
has just started executing, then the event gets picked up. Otherwise
there is a race condition causing stray events pending in queue
but without the ping (because the run actually finishes too fast
to pickup the later events).
Maria Matejka [Wed, 3 Apr 2024 10:05:02 +0000 (12:05 +0200)]
IO Loop: provide information about current loop and task time limit
Maria Matejka [Fri, 5 Apr 2024 12:11:38 +0000 (14:11 +0200)]
Allowing to send events to the metaloop's priority list
Maria Matejka [Fri, 1 Mar 2024 15:31:18 +0000 (16:31 +0100)]
Net: explicit generic-to-specific typecast with checking
Maria Matejka [Tue, 12 Mar 2024 20:08:29 +0000 (21:08 +0100)]
Bitops: bitflip function
to flip order of bits in 32b numbers
Maria Matejka [Wed, 3 Apr 2024 07:45:40 +0000 (09:45 +0200)]
Locking: forcefully unwinding locks to a previously stored state
Maria Matejka [Thu, 21 Mar 2024 22:37:04 +0000 (23:37 +0100)]
Typed list: macro for list length
Maria Matejka [Sun, 11 Feb 2024 21:57:55 +0000 (22:57 +0100)]
Typed lists: enabled defining the list structure independently on the node
Maria Matejka [Tue, 27 Feb 2024 13:25:04 +0000 (14:25 +0100)]
Event: fixed race condition between ev_send and ev_postpone
Maria Matejka [Mon, 1 Apr 2024 13:03:24 +0000 (15:03 +0200)]
IO loop: fixed local hot page cache flushing condition
Maria Matejka [Sat, 11 May 2024 14:36:49 +0000 (16:36 +0200)]
lib/printf_test.c: test on strcmp fixed
we mistakenly required the return value to be only -1, 0 or 1
Maria Matejka [Wed, 10 Apr 2024 14:14:40 +0000 (16:14 +0200)]
BGP: Fixed corking of RX
If cork occurred after some incoming data had been already processed,
BGP incorrectly processed them again after uncorking because it forgot
to store the actual socket state.
Now storing the socket state (done at the end of bgp_rx()) and
therefore the bug is fixed.
Maria Matejka [Tue, 9 Apr 2024 17:14:30 +0000 (19:14 +0200)]
Fixed in-table route refresh counter to not randomly add 256
Maria Matejka [Sun, 7 Apr 2024 20:27:13 +0000 (22:27 +0200)]
Fixed hostcache notifier pool
This pool has to be the service pool to allow the seq bitmaps to grow
from the exporter and feeder routines
Maria Matejka [Sun, 7 Apr 2024 09:43:52 +0000 (11:43 +0200)]
Fixed reporting about exported routes
Maria Matejka [Wed, 3 Apr 2024 16:27:09 +0000 (18:27 +0200)]
Fixed annoying undefined values with nexthops
Maria Matejka [Thu, 22 Feb 2024 11:00:05 +0000 (12:00 +0100)]
Undefined behavior fix
Maria Matejka [Thu, 22 Feb 2024 10:38:13 +0000 (11:38 +0100)]
CLang compilation fix
Ondrej Zajicek [Mon, 1 Apr 2024 16:24:10 +0000 (18:24 +0200)]
Ondrej Zajicek [Mon, 1 Apr 2024 16:21:37 +0000 (18:21 +0200)]
Ondrej Zajicek [Mon, 1 Apr 2024 16:20:18 +0000 (18:20 +0200)]
Ondrej Zajicek [Mon, 1 Apr 2024 01:15:33 +0000 (03:15 +0200)]
Ondrej Zajicek [Mon, 1 Apr 2024 01:01:59 +0000 (03:01 +0200)]
Ondrej Zajicek [Mon, 1 Apr 2024 01:00:10 +0000 (03:00 +0200)]
Ondrej Zajicek [Mon, 1 Apr 2024 00:53:25 +0000 (02:53 +0200)]
Filter: Initialize route attribute flags properly
Move 'flags' field back to ea_class, so filtering code can use it to
initialize route attribute flags when set by filters.
Ondrej Zajicek [Thu, 28 Mar 2024 19:03:46 +0000 (20:03 +0100)]
Ondrej Zajicek [Thu, 28 Mar 2024 19:00:50 +0000 (20:00 +0100)]
Merge commit '
5c04f0e2354ff0cca9b1479e68882b72755f3aab ' into thread-next
(No need for deprecated names in BIRD 3.)
Ondrej Zajicek [Thu, 28 Mar 2024 18:46:24 +0000 (19:46 +0100)]
Nest: Fix bitfield attributes
Fix missing route lookup, causing crash when accessing route attribute.
Also fix additional space in bitfield formatting.
Ondrej Zajicek [Thu, 28 Mar 2024 18:16:44 +0000 (19:16 +0100)]
Ondrej Zajicek [Thu, 28 Mar 2024 16:46:24 +0000 (17:46 +0100)]
Ondrej Zajicek [Thu, 28 Mar 2024 16:46:04 +0000 (17:46 +0100)]
Ondrej Zajicek [Thu, 28 Mar 2024 15:22:23 +0000 (16:22 +0100)]
Ondrej Zajicek [Thu, 28 Mar 2024 14:00:40 +0000 (15:00 +0100)]
Ondrej Zajicek [Thu, 28 Mar 2024 13:50:25 +0000 (14:50 +0100)]
Merge commit '
f40e2bc270d3635be518ae80251ce0b5c519c6f4 ' into thread-next
(empty merge, no fix needed in thread-next)
Ondrej Zajicek [Thu, 28 Mar 2024 00:01:33 +0000 (01:01 +0100)]
Revert "Temporarily disabling L3VPN netlab test, has no data for v3"
This reverts commit
000dbf737c6821501f3909cb656be9a73e367186 .
Ondrej Zajicek [Wed, 27 Mar 2024 23:55:19 +0000 (00:55 +0100)]
L3VPN: Fix missing rte_owner_class registration
Ondrej Zajicek [Wed, 27 Mar 2024 22:26:25 +0000 (23:26 +0100)]
Nest: Improve printing of hostentries with MPLS labels
MPLS labels in hostentry should be printed with 'mpls' keyword instead of
'labels' to be consistent with the rest of the 'show route' output.
Ondrej Zajicek [Wed, 27 Mar 2024 22:16:51 +0000 (23:16 +0100)]
Nest: Fix printing of hostentry table
When hostentry is printed, it should show the table in which the nexthop
is resolved, not the dependend one.
Ondrej Zajicek [Fri, 22 Mar 2024 00:40:43 +0000 (01:40 +0100)]
NEWS and version update
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.
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 .
Ondrej Zajicek [Thu, 21 Mar 2024 14:58:52 +0000 (15:58 +0100)]
Ondrej Zajicek [Tue, 19 Mar 2024 14:39:46 +0000 (15:39 +0100)]
Babel: 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
Michal Zagorski [Mon, 11 Mar 2024 11:57:13 +0000 (12:57 +0100)]
Static: Fix build with limited set of protocols
Ondrej Zajicek [Sun, 10 Mar 2024 17:57:04 +0000 (18:57 +0100)]
NEWS and version update
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.
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!
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.
Ondrej Zajicek [Fri, 1 Mar 2024 17:39:09 +0000 (18:39 +0100)]
BFD: Improve 'show bfd sessions all' command
Katerina Kubecova [Thu, 18 Jan 2024 11:36:48 +0000 (12:36 +0100)]
BFD: Show session for ip / ip prefix