0
0
mirror of https://gitlab.nic.cz/labs/bird.git synced 2024-12-22 09:41:54 +00:00
Commit Graph

1119 Commits

Author SHA1 Message Date
Katerina Kubecova
479d2c7dca sysdep/unix/alloc.c: Allowing allocating new pages with locked rc lock 2024-12-13 12:35:02 +01:00
Maria Matejka
fa5923289e Merge commit '4dd5b3d9' into thread-next 2024-12-10 23:57:59 +01:00
Maria Matejka
4dd5b3d90e Logging: exposing vlog() to log va_lists 2024-12-02 04:27:30 +01:00
Maria Matejka
ffba45657e Merge commit 'fc2b4b26' into thread-merge-2.16
Actually, completely rewritten the original patch as in v3, the logging
initialization is much more complex and requires allocation.

This way, to bootstrap properly, the logger has a pre-defined log target
to stderr.
2024-11-29 12:05:40 +01:00
Maria Matejka
1b0ffdf80e Merge commit '82d57fb7' into thread-merge-2.16 2024-11-29 11:26:18 +01:00
Maria Matejka
44efc912d5 Merge commit '5daec239' into thread-merge-2.16 2024-11-28 12:19:27 +01:00
Maria Matejka
b4bd406795 Merge commit 'acbdc29d' into thread-merge-2.16 2024-11-28 12:18:44 +01:00
Maria Matejka
ac30445f4f Merge commit 'c9836207' into thread-merge-2.16 2024-11-28 12:08:52 +01:00
Maria Matejka
3bbe0ec251 Merge commit 'df22b314' into thread-merge-2.16 2024-11-28 12:08:43 +01:00
Maria Matejka
eba3a26537 Merge commit '08ff0af8' into thread-merge-2.16 2024-11-28 12:07:30 +01:00
Maria Matejka
281e41026e Merge commit 'f3b6661d' into thread-merge-2.16 2024-11-28 12:00:45 +01:00
Maria Matejka
1ce352ebf5 Merge commit 'a95fff37' into thread-merge-2.16 2024-11-28 10:57:37 +01:00
Maria Matejka
e6242ef948 Merge commit '8a40bccf' into thread-merge-2.16 2024-11-28 09:36:33 +01:00
Maria Matejka
cbd986cd35 Merge commit '00b139bd' into thread-merge-2.16 2024-11-28 09:28:34 +01:00
Maria Matejka
1dd21f6024 Netlink: Fixed handling of undefined bitfields in filters
The default value is obviously false everywhere so we just return zero
if nothing is found, instead of undef.
2024-11-25 17:14:32 +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
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
Ondrej Zajicek
9eca3e1a2e Nest: Cleanup timeformat grammar 2024-11-07 15:08:51 +01: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
2ba6e797cc Fixed a stupid bug in parse-and-exit mode
Introduced in 08ff0af898, the additional CLI
configuration wasn't properly initialized in the parse-and-exit mode
due to an oversight that cli_init_unix() is not called in this mode.

Thanks to Felix Friedlander for the bugreport.
2024-08-29 14:37:19 +02:00
Ondrej Zajicek
5214d7e59f IO: Ensure that socket rcvbuf is large enough
The socket structure has the field rbsize (receive buffer size), which
controls the size of the userspace receive buffer. There is also kernel
receive buffer, which in some cases may be smaller (e.g. on FreeBSD it
is by default ~8k). The patch ensures that the kernel receive buffer is
as large as the userspace receive buffer.
2024-08-01 14:55:05 +02:00
Ondrej Zajicek
c9836207f5 IO: Fix missing return introduced in one of earlier patches 2024-07-30 16:42:32 +02:00
Ondrej Zajicek
df22b3140c IO: Avoid re-binding accepted sockets to VRF
When VRFs are used, BIRD correctly binds listening (and connecting)
sockets to their VRFs but also re-binds accepted sockets to the same VRF.
This is not needed as the interface bind is inherited in this case, and
indeed this redundant bind causes an -EPERM if BIRD is running as
non-root making BIRD close the connection and reject the peer.

Thanks to Christian Svensson for the original patch and Alexander Zubkov
for suggestions.
2024-07-30 16:33:51 +02:00
Maria Matejka
e787a9210f NEWS and version update 2024-07-01 15:34:06 +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
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
08ff0af898 Additional CLI sockets may now be restricted
This allows to have one main socket for the heavy operations
very restricted just for the appropriate users, whereas the
looking glass socket may be more open.

Implemented an idea originally submitted and requested by Akamai.
2024-06-27 04:14:39 +02:00
Maria Matejka
f3b6661ddd Additional CLI sockets can be now configured in the config file
If the user has such a need, they may configure additional sockets
in the config file. This may work for e.g. some advanced access control.
2024-06-27 04:14:38 +02:00
Maria Matejka
a95fff3793 CLI now has a configuration structure 2024-06-27 04:14:38 +02:00
Maria Matejka
af73cc4215 Allocator now reports cold pages 2024-06-26 20:45:54 +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
Alexander Zubkov
8a40bccffe BFD: Add option to accept zero checksum for IPv6 UDP packets
Some vendors do not fill the checksum for IPv6 UDP packets.
For interoperability with such implementations one can set
UDP_NO_CHECK6_RX socket option on Linux.

Thanks to Ville O for the suggestion.

Minor changes by committer.
2024-06-26 16:29:57 +02:00
Maria Matejka
2a6fe617b1 IO: allow for faster loop dropping 2024-06-26 11:30:48 +02:00
Maria Matejka
7d455d64ca Remove spinlock debug structures in production build 2024-06-26 11:30:41 +02:00
Maria Matejka
2c4b368176 RPKI socket read is prioritized over other sockets 2024-06-26 11:29:43 +02:00
Maria Matejka
9be90c0f84 Fixed a race condition in rcu-domain blocking 2024-06-19 12:36:55 +02:00
Maria Matejka
dda37842dc No page flush before polling
The maximum amount of locally kept pages is 128 so we can just
well keep the half-meg of RAM allocated and prepared for future use.
2024-06-18 11:02:51 +02:00
Maria Matejka
83045e9a1f Configuration obstacles made a separate, explicit structure
With this, one can walk the obstacle list in a debugger and
easier see which specific object is holding the reference.
2024-06-14 23:16:07 +02:00
Maria Matejka
61dcbb1d83 Global runtime values separated from config 2024-06-14 23:16:07 +02:00
Maria Matejka
397eee5a00 Config: Removed obsolete force_restart option when commiting 2024-06-14 23:16:07 +02:00
Maria Matejka
ea4aef2a14 Memory allocator tweaking
TODO: make this configurable
2024-06-12 14:48:33 +02:00
Maria Matejka
5c8179d63a Time accounting must be done by coarse timers
on some ARM, the precise timers are too slow to be actually useful
2024-06-12 14:48:33 +02:00
Maria Matejka
2e882d4a7d IO Loop: process socket reads only after timers and events are done 2024-06-12 14:48:33 +02:00
Maria Matejka
50d7287741 IO Threads: scheduler debug shows info on next loop to run 2024-06-12 14:48:33 +02:00
Maria Matejka
1180f25123 Threads: smoothening loop pickup and less aggressive dropping 2024-06-12 14:48:33 +02:00
Maria Matejka
8ad9c946e1 IO loop picker fixed
Now if the thread finds out that it actually isn't busy,
it unsets the business status and picks something up right away.
2024-06-12 14:48:33 +02:00
Maria Matejka
4bca3b9f86 Task-in-limit checker hacked for mainloop 2024-06-12 14:48:33 +02:00