0
0
mirror of https://gitlab.nic.cz/labs/bird.git synced 2024-12-22 17:51:53 +00:00
Commit Graph

5148 Commits

Author SHA1 Message Date
Katerina Kubecova
99fa1f01a4 rt-show.c: fixed OBSREF_SET after cf_error(), changed message when 'show route export' called on static protocol 2024-11-25 17:06:24 +01:00
Maria Matejka
3f4332f0bd Protocol restart timer reworked.
The restart timer was racy and didn't allow for immediate restarts
from limits. Now the protocols stores the last restart time and in case
of too frequent autorestarts caused by exceeded limits, the protocol
gets disabled with an error message.

Also now there is a configuration knob for this.
2024-11-25 17:06:24 +01:00
Maria Matejka
53431ff679 Hash test spurious fail fixed
There was a race condition in the test itself,
causing the test reader access data after free.
2024-11-25 09:44:00 +01:00
Maria Matejka
2956faf5a6 Protocol and BGP state information cleanup and fixes
There were some nasty problems with deferred protocol state updates and
race conditions on BGP startup, shutdown, and also with referencing the
cached states.

Now it looks fixed.
2024-11-24 22:51:08 +01:00
Maria Matejka
e654efd354 Debug option for ea_free 2024-11-24 22:49:39 +01:00
Maria Matejka
6ba06dc4df Deferred call may need to be returned for future cleanups 2024-11-24 22:49:35 +01:00
Katerina Kubecova
77dee46e98 BMP: updated to v3 API 2024-11-21 10:29:10 +01:00
Maria Matejka
d2ad795c1e BGP: protocol specific state information cleanup 2024-11-21 09:21:29 +01:00
Maria Matejka
74800729c0 Proto: The active flag converted to actual fifth protocol state
What was PS_DOWN before, is now PS_DOWN and PS_FLUSH.
2024-11-18 22:21:12 +01:00
Katerina Kubecova
7889f0c25b Neighbor locking: forgotten neighbors to unlink are actually a bug.
These may cause runaway pointers.
2024-11-18 10:09:36 +01:00
Katerina Kubecova
ca5ed6997c nest/cli: fixup - empty printing in birdc does not freeze 2024-11-15 10:04:51 +01:00
Katerina Kubecova
dc69284f61 MRT: buildable and running again for BIRD 3
Tests for MRT are scarce and not automated for now, so it may behave
weirdly in corner cases.
2024-11-14 11:41:37 +01:00
Maria Matejka
eb6918e4db Neighbor cache: fixed neighbor referencing 2024-11-14 11:41:37 +01:00
Maria Matejka
03f51079c1 Defer: fixup missing include guards 2024-11-14 11:41:37 +01:00
Katerina Kubecova
c0319183a5 BGP: exporting protocol-specific state information 2024-11-14 11:41:37 +01:00
Maria Matejka
fa75007156 BGP: Start state is now using extended state 2024-11-14 11:41:37 +01:00
Katerina Kubecova
b97d924e52 Proto: adding lockless state table and journal
To allow reading of protocol states from other protocols or completely
different routines, we have to export these states to data structures
not requiring to lock the protocol loops.

On one hand, this doesn't give the reader the actual state "right now",
on the other hand, getting that is impossible in a properly
multithreaded environment and you will always get the information with
some (little but noteworthy) delay.

This implementation handles only the basic state information of the
protocols, common for all the protocols. Adding protocol-specific state
information should be done by implementing the protocol hook init_state().

Channel information is stored but not announced, as we don't need the
announcements for now.
2024-11-14 11:41:37 +01:00
Katerina Kubecova
330c71bd0a More attribute types: pointers, strings, btime
For the upcoming rework of protocol state information propagation,
we need some more eattr types to be defined.

These types are probably not defined completely and before using
them for route attributes, you should check that they don't lack
some crucial methods.
2024-11-09 09:55:40 +01:00
Maria Matejka
02de88de41 Table: tame warnings around unused debug messages 2024-10-11 12:23:52 +02:00
Katerina Kubecova
716472957b Kernel: protocol shuts down synchronously
Before this commit, on kernel shutdown, the routes were re-exported by
the regular export but treated as withdraw. This was too hairy and
caused unnecessary complexity of the protocol's state machine.

Instead of that, we found out that it makes more sense to just refeed
the routes synchronously and convert to withdraw. This is done by the
direct export access instead of the channel.

It would (maybe) make more sense to run export filters on this in case
the export filter updates the krt_metric attribute, but as this doesn't
work on regular withdraw anyway, it's better for now to just let it be
and maybe somebody in the future fixes this issue.
2024-09-30 10:04:36 +02:00
Maria Matejka
e787a9210f NEWS and version update 2024-07-01 15:34:06 +02:00
Maria Matejka
5ea6423cb9 Fixed secondary route export 2024-06-28 22:03:45 +02:00
Maria Matejka
d53582c9a1 show threads: displaying the same thread id's as in log 2024-06-28 22:03:45 +02:00
Maria Matejka
c2480ff533 Export: Throw a warning instead of crashing on export_accepted_map inconsistency 2024-06-28 22:03:45 +02:00
Maria Matejka
edffd82057 Config undo queuing bug fixed 2024-06-28 22:03:45 +02:00
Maria Matejka
45fb9742f0 BGP runs TX as a deferred routine
This should help flushing the tx buffers as soon as possible.
2024-06-28 22:03:45 +02:00
Maria Matejka
6eea722d3f Forbid locking altogether when RCU reader is active 2024-06-28 22:03:45 +02:00
Maria Matejka
1e77e6e1b2 Flush deferred calls directly after the loop finished its one run 2024-06-28 22:03:45 +02:00
Maria Matejka
865bab6237 IO: Allow to take new loops if the thread is hot, but only one at time 2024-06-28 22:03:45 +02:00
Maria Matejka
18d069d663 Even on shutdown we should try to pass the freed memory to others 2024-06-27 08:22:15 +02:00
Maria Matejka
af73cc4215 Allocator now reports cold pages 2024-06-26 20:45:54 +02:00
Maria Matejka
aa11e82174 Filter unit test uncertainty hack 2024-06-26 18:30:17 +02:00
Maria Matejka
be2ba84e50 Tame improper xmalloc warning 2024-06-26 17:21:26 +02:00
Maria Matejka
b797444e94 Merge commit 'b95dc8f29f18eb177f91fdc4bf0716fac9b15366' into mq-config-ref
Also converted all _Bool's to bool.
2024-06-26 17:19:24 +02:00
Maria Matejka
16e53f3f30 channel roa reload debug message 2024-06-26 15:13:12 +02:00
Maria Matejka
2a6fe617b1 IO: allow for faster loop dropping 2024-06-26 11:30:48 +02:00
Maria Matejka
a4a7e09478 Revert "BGP: Export uses common attribute cache"
This reverts commit d01a7c2bda.

It seems that the performance penalty in global ea cache is actually
very high so returning back to local attribute caches in every BGP.
2024-06-26 11:30:48 +02:00
Maria Matejka
a9534186f1 Fixed fast subsequent reconfigurations bug 2024-06-26 11:30:41 +02:00
Maria Matejka
7d455d64ca Remove spinlock debug structures in production build 2024-06-26 11:30:41 +02:00
Maria Matejka
5b7fd453d4 BGP: show proto info crash fix if BGP is down 2024-06-26 11:30:41 +02:00
Maria Matejka
9f7874a5c9 BGP: using closer pointer for netindex hash than all the way to the table 2024-06-26 11:30:41 +02:00
Maria Matejka
8e67cba528 Linpool: allocation split to fast and slow 2024-06-26 11:30:41 +02:00
Maria Matejka
3d45539455 ROA aggregator uses its own rte source instead of recycling 2024-06-26 11:29:43 +02:00
Maria Matejka
6f981969bb RCU read lock optimization 2024-06-26 11:29:43 +02:00
Maria Matejka
d23db54da0 ROA: Switching off digestor splitting 2024-06-26 11:29:43 +02:00
Maria Matejka
4998ca5554 Route attribute usecount doesn't need to synchronize on unlock 2024-06-26 11:29:43 +02:00
Maria Matejka
2c4b368176 RPKI socket read is prioritized over other sockets 2024-06-26 11:29:43 +02:00
Maria Matejka
f9b46a1ba1 Refeed done hooks are called in the same order as the requests came in 2024-06-26 11:29:43 +02:00
Maria Matejka
0b6e752bd9 Conflating multiple partial ROA reload requests together 2024-06-26 11:29:43 +02:00
Maria Matejka
bd44a13ce5 Spinhash main lock removed
Spinhash now uses RCU instead to guard cur-new exchanges to avoid
excessive synchronization and cache misses on the main spinlock.
2024-06-26 11:29:12 +02:00