]>
git.ipfire.org Git - thirdparty/bird.git/log
Maria Matejka [Thu, 10 Nov 2022 14:52:04 +0000 (15:52 +0100)]
Sockets are forcibly closed synchronously.
This enables birdloop merging (future commits) and also fixes possible
future bugs when trying to reopen sockets too early.
Maria Matejka [Wed, 9 Nov 2022 10:39:44 +0000 (11:39 +0100)]
Merge remote-tracking branch 'origin/mq-test-submodule' into HEAD
Maria Matejka [Tue, 8 Nov 2022 10:26:11 +0000 (11:26 +0100)]
Netlab tests can be called from this repository.
To allow this, I added bird-tools as a submodule (aux-tools). To run
netlab tests, call
make aux-test-prepare
make netlab-tests
and wait patiently until all the tests finish.
You may also request single netlab tests:
make netlab-test-ospf-base
To rerun the tests, run
make netlab-tests-reset
and all the test results are wiped to run a fresh batch.
Maria Matejka [Tue, 8 Nov 2022 09:20:55 +0000 (10:20 +0100)]
Added more netlab tests for automatic run.
This commit uses bird-tools in version
f35e8bce829f4bff61ec7eb07ec9c67aa867bc9a
Maria Matejka [Mon, 7 Nov 2022 15:52:27 +0000 (16:52 +0100)]
Merge remote-tracking branch 'origin/master' into thread-next
Maria Matejka [Mon, 7 Nov 2022 09:28:01 +0000 (10:28 +0100)]
Merge commit '
37b64441 ' into thread-next
Maria Matejka [Mon, 7 Nov 2022 09:25:52 +0000 (10:25 +0100)]
Merge commit '
32425297 ' into thread-next
Maria Matejka [Mon, 7 Nov 2022 09:24:56 +0000 (10:24 +0100)]
Merge commit '
8f79e6b9 ' into thread-next
Maria Matejka [Mon, 7 Nov 2022 09:09:40 +0000 (10:09 +0100)]
Merge commit '
8478de88 ' into thread-next
Maria Matejka [Mon, 7 Nov 2022 09:09:01 +0000 (10:09 +0100)]
Merge commit '
54430df9 ' into thread-next
Maria Matejka [Mon, 7 Nov 2022 08:51:21 +0000 (09:51 +0100)]
Merge commit '
0f2be469 ' into thread-next
Maria Matejka [Thu, 3 Nov 2022 11:38:57 +0000 (12:38 +0100)]
Page allocator: Fixed minor bugs and added commentary
Maria Matejka [Tue, 1 Nov 2022 17:40:56 +0000 (18:40 +0100)]
Memory pages are not munmapped, instead we just madvise()
Memory unmapping causes slow address space fragmentation, leading in
extreme cases to failing to allocate pages at all. Removing this problem
by keeping all the pages allocated to us, yet calling madvise() to let
kernel dispose of them.
This adds a little complexity and overhead as we have to keep the
pointers to the free pages, therefore to hold e.g. 1 GB of 4K pages with
8B pointers, we have to store 2 MB of data.
Maria Matejka [Tue, 1 Nov 2022 07:56:26 +0000 (08:56 +0100)]
Moved config-related allocations to config_pool and showing its size in memory usage
Alexander Zubkov [Tue, 18 Oct 2022 02:25:29 +0000 (04:25 +0200)]
Doc: Add documentation for "show route (import|export) table"
Ondrej Zajicek [Tue, 18 Oct 2022 01:58:19 +0000 (03:58 +0200)]
Filter: Fix handling of variables in anonymous filters
Define scope for anonymous filters, and also explicitly distinguish block
scopes and function/filter scopes instead of using anonymous / named
distinction.
Anonymous filters forgot to push scope, so variables for them were in
fact defined in the top scope and therefore they shared a frame. This got
broken after rework of variables, which assumed that there is a named
scope for every function/filter.
Maria Matejka [Wed, 12 Oct 2022 16:04:39 +0000 (18:04 +0200)]
Attribute blocks are now allocated from slabs instead of malloc()
Maria Matejka [Wed, 12 Oct 2022 16:02:34 +0000 (18:02 +0200)]
Removed an accidentally merged debug call introduced in
5395880908fdb264b5b78ccc455dced49eb29915
Ondrej Zajicek [Wed, 12 Oct 2022 15:57:26 +0000 (17:57 +0200)]
Netlink: Parse onlink flag even on direct routes
While onlink flag is meaningful only with explicit next hops, it can be
defined also on direct routes. Parse it also in this case to avoid
periodic updates of the same route.
Thanks to Marcin Saklak for the bugreport.
Maria Matejka [Wed, 12 Oct 2022 12:23:50 +0000 (14:23 +0200)]
GDB connection: resource pools don't keep free pages
Maria Matejka [Wed, 12 Oct 2022 09:34:14 +0000 (11:34 +0200)]
Merge commit '
ab0994a1 ' into thread-next
Maria Matejka [Wed, 12 Oct 2022 09:30:38 +0000 (11:30 +0200)]
Merge commit '
57d0ecb9 ' into thread-next
Maria Matejka [Wed, 12 Oct 2022 09:30:27 +0000 (11:30 +0200)]
Merge commit '
53958809 ' into thread-next
Maria Matejka [Wed, 12 Oct 2022 09:24:26 +0000 (11:24 +0200)]
Merge commit '
821344c7 ' into thread-next
Maria Matejka [Wed, 12 Oct 2022 09:24:23 +0000 (11:24 +0200)]
Merge commit '
4ba991f1 ' into thread-next
Maria Matejka [Wed, 12 Oct 2022 09:16:44 +0000 (11:16 +0200)]
Merge commit '
44dbedbe ' into thread-next
Maria Matejka [Wed, 12 Oct 2022 08:52:53 +0000 (10:52 +0200)]
Fixed SSH known hosts checking with older versions of libssh
Maria Matejka [Wed, 12 Oct 2022 08:44:18 +0000 (10:44 +0200)]
Tamed slab signedness warning on 32-bit architectures
Maria Matejka [Tue, 11 Oct 2022 17:26:31 +0000 (19:26 +0200)]
BGP refeed and reload with Adj-RIB-In/Out is done without route refresh
Maria Matejka [Tue, 11 Oct 2022 09:08:49 +0000 (11:08 +0200)]
TES_HUNGRY doesn't inhibit export cleanup any more
Maria Matejka [Tue, 11 Oct 2022 09:08:15 +0000 (11:08 +0200)]
More thorough logging of route update corner cases
Maria Matejka [Tue, 11 Oct 2022 09:07:38 +0000 (11:07 +0200)]
Fixed BGP reload limits
Maria Matejka [Tue, 11 Oct 2022 09:06:58 +0000 (11:06 +0200)]
Limited value must never go under zero
Maria Matejka [Tue, 11 Oct 2022 09:06:32 +0000 (11:06 +0200)]
CLI fix to break busy-loop waiting for corked show-route exports
Maria Matejka [Thu, 6 Oct 2022 15:51:32 +0000 (17:51 +0200)]
Fixed export hook stopping in some corner cases.
Notably, it's in a corked state and also when refeed is pending.
Maria Matejka [Sun, 21 Nov 2021 11:06:19 +0000 (12:06 +0100)]
BGP: End route refresh before another starts
Ondrej Zajicek [Mon, 10 Oct 2022 03:06:19 +0000 (05:06 +0200)]
BGP: Add option 'next hop prefer global'
Add BGP channel option 'next hop prefer global' that modifies BGP
recursive next hop resolution to use global next hop IPv6 address instead
of link-local next hop IPv6 address for immediate next hop of received
routes.
Maria Matejka [Wed, 5 Oct 2022 14:26:13 +0000 (16:26 +0200)]
Poll errors must also drop a corefile. And we shouldn't run sockets when sockets have changed
Maria Matejka [Tue, 4 Oct 2022 11:20:04 +0000 (13:20 +0200)]
Fixed previously untested paths in RPKI
Maria Matejka [Wed, 5 Oct 2022 13:17:51 +0000 (15:17 +0200)]
Merge commit '
dc9351d3 ' into HEAD
Maria Matejka [Wed, 5 Oct 2022 13:17:38 +0000 (15:17 +0200)]
Fixed pipe reload/refeed to properly propagate as route refresh to the other table
Maria Matejka [Tue, 4 Oct 2022 14:15:36 +0000 (16:15 +0200)]
Merge commit '
67256d50 ' into HEAD
Maria Matejka [Tue, 4 Oct 2022 14:09:48 +0000 (16:09 +0200)]
Merge commit '
3ace3a42 ' into HEAD
Maria Matejka [Tue, 4 Oct 2022 14:09:41 +0000 (16:09 +0200)]
Merge commit '
fb7fb674 ' into HEAD
Maria Matejka [Tue, 4 Oct 2022 14:02:23 +0000 (16:02 +0200)]
Merge commit '
e9e6baae ' into HEAD
Maria Matejka [Tue, 4 Oct 2022 13:59:15 +0000 (15:59 +0200)]
Merge commit '
a32cee78 ' into HEAD
Maria Matejka [Tue, 4 Oct 2022 13:53:12 +0000 (15:53 +0200)]
Merge commit '
71b434a9 ' into HEAD
Maria Matejka [Tue, 4 Oct 2022 13:40:52 +0000 (15:40 +0200)]
Merge commit '
0072d11f ' into tmp-learn
Ondrej Zajicek [Mon, 3 Oct 2022 16:53:21 +0000 (18:53 +0200)]
Nest: Add channel config flag to distinguish new or copy
It is useful to distinguish whehter channel config returned from
channel_config_get() was allocated new, or existing from template.
Caller may want to initialize new ones.
Ondrej Zajicek [Thu, 8 Sep 2022 17:41:02 +0000 (19:41 +0200)]
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.
Ondrej Zajicek [Tue, 27 Sep 2022 14:47:52 +0000 (16:47 +0200)]
Filter: Add some minor functions for f_tree and EC
Add some supportive functions for f_tree and EC. These functions are used
by L3VPN code.
Ondrej Zajicek [Tue, 27 Sep 2022 14:13:27 +0000 (16:13 +0200)]
BGP: Some fixes related to VRF and MPLS interactions
- When next hop is reset to local IP, we should remove BGP label stack,
as it is related to original next hop
- BGP next hop or immediate next hop from one VRF should not be passed
to another VRF, as they are different IP namespaces
Maria Matejka [Mon, 3 Oct 2022 15:09:02 +0000 (17:09 +0200)]
RPKI: wait for retry_time if we get error immediately after connected
Maria Matejka [Thu, 29 Sep 2022 08:00:32 +0000 (10:00 +0200)]
Merge branch 'tmp-bad-learn' into thread-next
Maria Matejka [Thu, 29 Sep 2022 07:58:27 +0000 (09:58 +0200)]
Merge commit '
9efaf6ba ' into tmp-bad-learn
Also fixed forgotten best route selection among alien routes.
Maria Matejka [Tue, 27 Sep 2022 10:46:22 +0000 (12:46 +0200)]
Merge commit '4364ee' into tmp-bad-learn
Maria Matejka [Tue, 27 Sep 2022 10:39:07 +0000 (12:39 +0200)]
Maria Matejka [Tue, 27 Sep 2022 10:17:05 +0000 (12:17 +0200)]
KRT: Fix route learning
This is a reimplementation of commit
0f2be469f897b6d9f925563bbf522438c83522ea
by Alexander Zubkov. In the master branch, changes in commit
eb937358
broke setting of channel preference for alien routes learned during
scan. The preference was set only for async routes.
The original solution is extended here to accomodate for v3 specifics.
Alexander Zubkov [Wed, 21 Sep 2022 15:07:11 +0000 (17:07 +0200)]
KRT: Fix setting default preference
Changes in commit
eb937358 broke setting of channel preference for alien
routes learned during scan. The preference was set only for async routes.
Move common attribute processing part of functions krt_learn_async() and
krt_learn_async() to a separate function to have only one place for such
changes.
Maria Matejka [Mon, 26 Sep 2022 10:21:33 +0000 (12:21 +0200)]
Merge commit '
3fd1f461 ' into thread-next
closes #16
closes #17
closes #18
Maria Matejka [Mon, 26 Sep 2022 10:09:51 +0000 (12:09 +0200)]
Merge commit '
aadf690b ' into thread-next
Merging the old version of route refresh export settle times with -s
ours as the new version is more contained.
Maria Matejka [Mon, 26 Sep 2022 10:09:14 +0000 (12:09 +0200)]
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.
Maria Matejka [Fri, 23 Sep 2022 07:58:00 +0000 (09:58 +0200)]
More verbose logging of table auxiliary export states
Maria Matejka [Fri, 23 Sep 2022 07:57:40 +0000 (09:57 +0200)]
Fixed possible race condition in hostcache trie matching code not triggering HCU
Maria Matejka [Wed, 21 Sep 2022 16:43:44 +0000 (18:43 +0200)]
Fixed the export settle timer to be actually a settle timer
Maria Matejka [Wed, 21 Sep 2022 14:53:17 +0000 (16:53 +0200)]
Caching eattrs in filters is not needed anymore.
After flattening the route attribute structure, the ea_list ** is derivable
from rte * by arithmetics. Caching the derived value doesn't help performance
and therefore is removed as unnecessary.
Maria Matejka [Wed, 21 Sep 2022 11:39:13 +0000 (13:39 +0200)]
Flushing tmp_linpool in tree test and in static protocol
Maria Matejka [Wed, 21 Sep 2022 10:08:52 +0000 (12:08 +0200)]
Trie test uses direct tmp_allocz() instead of lp_allocz(tmp_linpool)
Maria Matejka [Wed, 21 Sep 2022 09:49:35 +0000 (11:49 +0200)]
Local page allocation
Maria Matejka [Tue, 20 Sep 2022 15:01:50 +0000 (17:01 +0200)]
Pipe kick-and-drain packed into a neat structure and functions.
Maria Matejka [Tue, 20 Sep 2022 15:14:31 +0000 (17:14 +0200)]
BFD: The old pipe notification mechanism replaced by events
Maria Matejka [Tue, 20 Sep 2022 12:57:43 +0000 (14:57 +0200)]
Fixed display of standby memory
Maria Matejka [Tue, 20 Sep 2022 11:10:29 +0000 (13:10 +0200)]
Merge commit '
df476c2e ' into thread-next
Implemented the corking by our own commit, merging with "ours" strategy.
Maria Matejka [Tue, 20 Sep 2022 10:40:23 +0000 (12:40 +0200)]
Route export may get corked on refeed startup
Maria Matejka [Tue, 20 Sep 2022 07:52:03 +0000 (09:52 +0200)]
Merge commit '
0fd1c1d0 ' into thread-next
Using the "ours" strategy as the changes introduced in merged commits
are already implemented in thread-next in a different way.
Maria Matejka [Tue, 20 Sep 2022 07:14:39 +0000 (09:14 +0200)]
Merge commit '
adf37d8e ' into thread-next
Maria Matejka [Tue, 20 Sep 2022 07:13:36 +0000 (09:13 +0200)]
Merge commit '
dc160e11 ' into thread-next
Maria Matejka [Mon, 19 Sep 2022 10:58:26 +0000 (12:58 +0200)]
Merge remote-tracking branch 'origin/master' into thread-next
Ignoring that revert as the thread stack needs a completely different
allocation strategy. Not the current one either, yet it has to be done
yet.
Maria Matejka [Wed, 14 Sep 2022 12:45:21 +0000 (14:45 +0200)]
Switched off forking for filter test.
You don't want to fork with threads running.
Maria Matejka [Sun, 18 Sep 2022 14:36:07 +0000 (16:36 +0200)]
Merge commit '
4f3fa162 ' into HEAD
Maria Matejka [Wed, 14 Sep 2022 08:25:09 +0000 (10:25 +0200)]
Fix for table hostcache corking and shutdown race conditions
Maria Matejka [Sun, 18 Sep 2022 14:35:40 +0000 (16:35 +0200)]
Merge commit '
1518970c ' into HEAD
Maria Matejka [Mon, 12 Sep 2022 09:09:43 +0000 (11:09 +0200)]
Fixing several race-conditions in event code.
After a suggestion by Santiago, I added the direct list pointer into
events and the events are now using this value to check whether the
route is active or not. Also the whole trick with sentinel node unioned
with event list is now gone.
For debugging, there is also an internal circular buffer to store what
has been recently happening in event code before e.g. a crash happened.
By default, this debug is off and must be manually enabled in
lib/event.c as it eats quite some time and space.
Maria Matejka [Tue, 13 Sep 2022 09:39:35 +0000 (11:39 +0200)]
Longer unit test default timeout to prevent spurious build failures on slow virtuals
Maria Matejka [Mon, 12 Sep 2022 16:27:01 +0000 (18:27 +0200)]
Table: Re-scheduling prune event when another prune loop is pending
Maria Matejka [Mon, 12 Sep 2022 10:28:05 +0000 (12:28 +0200)]
Export event doesn't have to be postponed before requeuing as an export-stop event
Maria Matejka [Mon, 12 Sep 2022 08:25:14 +0000 (10:25 +0200)]
Converted simple table events to loop flags
Maria Matejka [Mon, 12 Sep 2022 08:24:55 +0000 (10:24 +0200)]
Loop flags: a simple idempotent event announcement mechanism
Maria Matejka [Sun, 11 Sep 2022 20:26:24 +0000 (22:26 +0200)]
Cancelling all timers when loop stops
Maria Matejka [Fri, 9 Sep 2022 11:52:37 +0000 (13:52 +0200)]
Routing tables have their own service loops.
Maria Matejka [Fri, 9 Sep 2022 18:57:59 +0000 (20:57 +0200)]
Memory pages allocator is now a global simple lockless structure
Maria Matejka [Fri, 16 Sep 2022 08:11:51 +0000 (10:11 +0200)]
Revert "Reducing filter stack size to allow for lesser thread stack size"
This reverts commit
2c13759136951ef0e70a3e3c2b2d3c9a387f7ed9 .
Maria Matejka [Wed, 14 Sep 2022 07:59:45 +0000 (09:59 +0200)]
Revert "Routing tables now have their own loops."
This reverts commit
878eeec12bf020c9e7460040d225a929bbbd2bd2 .
These changes have been done in a different way in the other branch of
the future merge.
Maria Matejka [Fri, 9 Sep 2022 17:09:31 +0000 (19:09 +0200)]
Table export announcer needs both an event and a timer to do export bundling the right way
Maria Matejka [Fri, 9 Sep 2022 13:04:36 +0000 (15:04 +0200)]
Created a dedicated settle timer structure
Maria Matejka [Fri, 9 Sep 2022 11:17:24 +0000 (13:17 +0200)]
Merge remote-tracking branch 'origin/master' into thread-next
Maria Matejka [Fri, 9 Sep 2022 11:15:50 +0000 (13:15 +0200)]
Maria Matejka [Fri, 9 Sep 2022 11:10:18 +0000 (13:10 +0200)]
Merge branch 'mq-fix-eattr-setting' into thread-next
Maria Matejka [Wed, 7 Sep 2022 11:54:20 +0000 (13:54 +0200)]
Table access is now locked.
Maria Matejka [Wed, 7 Sep 2022 18:26:20 +0000 (20:26 +0200)]
Table feed refactoring to allow for locking and unlocking