Maria Matejka
34e803c6c3
Merge commit '54430df9' into thread-next
2022-11-07 10:09:01 +01:00
Maria Matejka
8d7f516b2a
Attribute blocks are now allocated from slabs instead of malloc()
2022-10-12 18:04:39 +02:00
Maria Matejka
d3af586da4
Removed an accidentally merged debug call introduced in 5395880908
2022-10-12 18:02:34 +02:00
Maria Matejka
ff24f027a6
Merge commit '53958809' into thread-next
2022-10-12 11:30:27 +02:00
Maria Matejka
c4957647b4
Merge commit '4ba991f1' into thread-next
2022-10-12 11:24:23 +02:00
Maria Matejka
fdacb89a53
BGP refeed and reload with Adj-RIB-In/Out is done without route refresh
2022-10-12 10:05:16 +02:00
Maria Matejka
c1cb2dc31c
TES_HUNGRY doesn't inhibit export cleanup any more
2022-10-12 10:05:16 +02:00
Maria Matejka
6d5929be24
More thorough logging of route update corner cases
2022-10-12 10:05:16 +02:00
Maria Matejka
26552a7ec8
Fixed BGP reload limits
2022-10-12 10:05:14 +02:00
Maria Matejka
b83a9d5f9a
Limited value must never go under zero
2022-10-12 10:05:14 +02:00
Maria Matejka
02dc895550
CLI fix to break busy-loop waiting for corked show-route exports
2022-10-12 10:05:14 +02:00
Maria Matejka
2ae32374dd
Fixed export hook stopping in some corner cases.
...
Notably, it's in a corked state and also when refeed is pending.
2022-10-12 10:05:14 +02:00
Maria Matejka
4d687d7aec
Fixed previously untested paths in RPKI
2022-10-05 16:33:34 +02:00
Maria Matejka
dc9351d326
Merge commit '67256d50' into HEAD
2022-10-04 16:15:36 +02:00
Maria Matejka
f69ba3921a
Merge commit 'fb7fb674' into HEAD
2022-10-04 16:09:41 +02:00
Maria Matejka
0eba27c69f
Merge commit 'a32cee78' into HEAD
2022-10-04 15:59:15 +02:00
Maria Matejka
4e1c582cad
Merge commit '71b434a9' into HEAD
2022-10-04 15:53:12 +02:00
Ondrej Zajicek
54430df953
BGP: Do not assume that all channels are struct bgp_channel
...
In principle, the channel list is a list of parent struct proto and can
contain general structures of type struct channel, That is useful e.g.
for adding MPLS channels to BGP.
2022-10-03 20:18:12 +02:00
Maria Matejka
6cfe2066ab
Higher export settle times when route refresh is running.
...
This helps the route refresh procedures to finish or at least
do more work before the exporters jump in and steal all the CPU time
for themselves.
2022-09-26 12:09:14 +02:00
Maria Matejka
ecaa3df3c4
More verbose logging of table auxiliary export states
2022-09-23 09:58:00 +02:00
Maria Matejka
5338a779c9
Fixed possible race condition in hostcache trie matching code not triggering HCU
2022-09-23 09:57:40 +02:00
Maria Matejka
b1ade5efa1
Fixed the export settle timer to be actually a settle timer
2022-09-21 18:47:43 +02:00
Maria Matejka
896dbbfe4a
Local page allocation
2022-09-21 11:49:35 +02:00
Maria Matejka
28d4ac6c97
Fixed display of standby memory
2022-09-20 14:57:43 +02:00
Maria Matejka
4ba52a2687
Route export may get corked on refeed startup
2022-09-20 12:40:23 +02:00
Maria Matejka
28427a68c3
Merge commit 'adf37d8e' into thread-next
2022-09-20 09:14:39 +02:00
Maria Matejka
f33793acf7
Merge commit '4f3fa162' into HEAD
2022-09-18 16:36:07 +02:00
Maria Matejka
cf38092b2d
Fix for table hostcache corking and shutdown race conditions
2022-09-18 16:35:49 +02:00
Maria Matejka
c9d18e5ec5
Table: Re-scheduling prune event when another prune loop is pending
2022-09-18 16:33:51 +02:00
Maria Matejka
ff86f23dc7
Export event doesn't have to be postponed before requeuing as an export-stop event
2022-09-18 16:33:51 +02:00
Maria Matejka
769224d79c
Converted simple table events to loop flags
2022-09-18 16:33:51 +02:00
Maria Matejka
c49ee6e1a6
Routing tables have their own service loops.
2022-09-18 16:33:51 +02:00
Maria Matejka
b80823fe82
Memory pages allocator is now a global simple lockless structure
2022-09-18 16:33:51 +02:00
Maria Matejka
3d627d09d4
Table export announcer needs both an event and a timer to do export bundling the right way
2022-09-09 19:09:31 +02:00
Maria Matejka
974f16b1f7
Created a dedicated settle timer structure
2022-09-09 18:53:15 +02:00
Maria Matejka
26bfd4cc03
Merge commit 'd2c1036a42881d413ec97203ede92a69f8cd218f' into thread-next
2022-09-09 13:15:50 +02:00
Maria Matejka
fb7fb67445
Table access is now locked.
2022-09-08 15:24:02 +02:00
Maria Matejka
a42877b9bf
Table feed refactoring to allow for locking and unlocking
2022-09-08 15:13:38 +02:00
Maria Matejka
5103de4e8e
Table long-locking debug code
2022-09-08 15:13:37 +02:00
Maria Matejka
e2c6120636
Next hop updater has its own event
2022-09-08 15:13:37 +02:00
Maria Matejka
a61a04b5c8
Next hop refactoring to allow for table locking
2022-09-07 13:54:55 +02:00
Maria Matejka
71b3456eed
Better profylaction recursive route loops
...
In some specific configurations, it was possible to send BIRD into an
infinite loop of recursive next hop resolution. This was caused by route
priority inversion.
To prevent priority inversions affecting other next hops, we simply
refuse to resolve any next hop if the best route for the matching prefix
is recursive or any other route with the same preference is recursive.
Next hop resolution doesn't change route priority, therefore it is
perfectly OK to resolve BGP next hops e.g. by an OSPF route, yet if the
same (or covering) prefix is also announced by iBGP, by retraction of
the OSPF route we would get a possible priority inversion.
2022-09-06 15:15:03 +02:00
Maria Matejka
28accd4f05
Next hop update triggered at the very end of hostcache update
2022-09-05 12:55:36 +02:00
Maria Matejka
636bc44e61
Exporter routine refactoring to allow for nicer table locking
2022-09-05 12:19:38 +02:00
Maria Matejka
66ccdc2a0c
Added an indirection to the export announcement routine
...
There are performance reasons for this, mostly that we don't want to
ping the table service routine with every import.
2022-09-01 22:22:31 +02:00
Maria Matejka
dd786e338c
ROA subscriptions are also converted to export requests.
...
By this, the requesting channels do the timers in their own loops,
avoiding unnecessary synchronization when the central timer went off.
This is of course less effective for now, yet it allows to easily
implement selective reloads in future.
2022-09-01 18:46:40 +02:00
Maria Matejka
cd628d124d
Flowspec revalidate notification converted to an export hook
...
Instead of synchronous notifications, we use the asynchronous export
framework to notify flowspec src route updates. This allows us to
invoke flowspec revalidation without locking collisions.
2022-09-01 18:46:40 +02:00
Maria Matejka
ecdb1ec6ea
Hostcache update notification converted to an export hook
...
Instead of synchronous notifications, we use the asynchronous export
framework to notify also hostcache updates. This allows us to do the
hostcache update and the subsequent next hop update notification without
locking collisions.
2022-09-01 18:46:40 +02:00
Maria Matejka
7450eea071
Miscellaneous refactoring
2022-09-01 18:46:40 +02:00
Maria Matejka
83ceb91b50
Table debug is now a per-table setting and has categories.
2022-09-01 18:46:40 +02:00