Maria Matejka
65be42269d
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.
2024-05-17 09:12:52 +02:00
Maria Matejka
d25ad38eaf
RCU Unwinder refactored from route table to a separate structure
2024-05-17 09:12:52 +02:00
Maria Matejka
cd9d799abd
Simplified temporary resources
...
Also TMP_SAVED now uses the CLEANUP hook to allow for breaks and returns
2024-05-17 09:12:52 +02:00
Maria Matejka
99afca53e3
SKIP_BACK_DECLARE: easier embedded-to-parent typecasting
2024-05-17 09:12:52 +02:00
Maria Matejka
de3bd705f8
Lockless feed of a single net
2024-05-17 09:12:52 +02:00
Maria Matejka
93c3923462
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.
2024-05-17 09:12:52 +02:00
Maria Matejka
4c43e97dd5
Refactored the deferring framework into a separate structure
2024-05-17 09:12:52 +02:00
Maria Matejka
3fa23c3b53
Cached route attributes now have explicitly marked layers
...
Also the rta_* functions renamed to ea_* functions
2024-05-13 08:52:48 +02:00
Maria Matejka
178ea41e84
IO Loop: provide information about current loop and task time limit
2024-05-13 08:52:48 +02:00
Maria Matejka
5ba5cdd9f9
Locking: forcefully unwinding locks to a previously stored state
2024-05-13 08:52:48 +02:00
Maria Matejka
d1652138ca
Netindex: Dropping tmp handle mechanism in favor of deferred lfuc_unlock
2024-05-13 08:52:48 +02:00
Maria Matejka
a0df74780a
Fixed all implicit seq_cst warnings caused by the previous commit
2024-05-13 08:52:48 +02:00
Maria Matejka
a3daf69cd1
lib/printf_test.c: test on strcmp fixed
...
we mistakenly required the return value to be only -1, 0 or 1
2024-05-13 08:52:48 +02:00
Maria Matejka
bb35c4f9dc
Route flag REF_OBSOLETE
...
Marking routes obsolete when being removed from table, just to be sure.
2024-04-06 18:28:43 +02:00
Maria Matejka
b6853989ac
Bitops: bitflip function
...
to flip order of bits in 32b numbers
2024-04-06 18:28:43 +02:00
Maria Matejka
27f2fd4aa9
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.
2024-04-06 18:28:43 +02:00
Maria Matejka
622d406087
Lockfree usecount: deferring unlocks to the metaloop
...
This allows us for easy temporary locks without additional burden of explicit cleanup.
2024-04-06 18:28:43 +02:00
Maria Matejka
422ecddaae
Allowing to send events to the metaloop's priority list
2024-04-06 18:28:43 +02:00
Maria Matejka
233004988b
Net: explicit generic-to-specific typecast with checking
2024-04-06 18:28:43 +02:00
Maria Matejka
a5eb8e0f9f
Lock free journal refactored into a separate data structure
2024-04-06 18:28:43 +02:00
Maria Matejka
d020cc7e26
Event: fixed race condition between ev_send and ev_postpone
2024-04-06 18:28:43 +02:00
Maria Matejka
76e43b405f
Typed list: macro for list length
2024-04-03 13:58:41 +02:00
Maria Matejka
59304b2f91
Typed lists: enabled defining the list structure independently on the node
2024-03-27 14:28:37 +01:00
Maria Matejka
058984bc86
BGP: fixed MPLS setting in nexthops
...
bug introduced somewhere during conversion of nexthops to eattrs
2024-01-29 22:12:38 +01:00
Maria Matejka
cd81b6d7cd
Merge commit '2c7555cf2ac8439713dd9148b348128c57222a38' into thread-next
...
The UDP logging had to be substantially rewritten due to a different
logging backend and reconfiguration mechanisms.
Conflicts:
doc/bird.sgml
sysdep/unix/config.Y
sysdep/unix/io.c
sysdep/unix/log.c
sysdep/unix/unix.h
2024-01-28 23:01:39 +01:00
Maria Matejka
86ba37d8f1
Logging: uses writev instead of in-buffer magic
2024-01-28 21:42:39 +01:00
Maria Matejka
8fe58b9f8d
Merge commit 'v2.13.1-192-gb8312130' into thread-next
2024-01-28 14:43:05 +01:00
Maria Matejka
b831213072
Merge commit 'v2.13.1-145-g605780f9' into mq-merge-step-2
2024-01-28 14:42:57 +01:00
Maria Matejka
a28264adc5
Merge commit 'v2.13.1-168-g5e9cf0ab' into thread-next
2024-01-28 13:40:23 +01:00
Maria Matejka
9624ebfd9a
Lock free usecount better debuggability
2024-01-10 09:19:27 +01:00
Maria Matejka
54d5e36ec0
Index of different net_addr values for hashing and bit-marking
...
For many reasons, it's handy to assign a contiguous range of integers to
known net_addr values. This is a data structure keeping this mapping.
2024-01-08 09:34:32 +01:00
Ondrej Zajicek
2c7555cf2a
Log: Add support for UDP logging
...
Add support for UDP logging, using RFC 3164 syslog protocol.
Based on the patch from Alexander Zubkov <green@qrator.net>, thanks!
2023-12-13 04:01:09 +01:00
Maria Matejka
8c19f8a209
Merge commit 'db1eb46664d4c76d56dc55a63ce7abe853fc6862' into HEAD
2023-12-08 11:33:43 +01:00
Maria Matejka
1df615991c
Generalized the rte_src lockfree usecount algorithm
2023-12-04 10:39:32 +01:00
Maria Matejka
194ed4e6e6
Macro SKIP_BACK now evaluates its argument only once.
2023-12-04 10:39:32 +01:00
Maria Matejka
48abd6a963
Events: create and enqueue in one macro
2023-12-04 10:39:32 +01:00
Maria Matejka
5a916ed53f
Locking: Dropping DEFINE_DOMAIN ugly macro
2023-12-04 10:39:32 +01:00
Maria Matejka
4d22f52f64
Locking data structures
...
If a data structure is associated with a lock, having a public
and a private part, there are now useful macros for these data
structures.
2023-11-20 12:09:31 +01:00
Maria Matejka
4c6fd84c8f
Merge commit '980ef11016546ecd409a7f83b33a2f8f758ec926' into thread-next
2023-11-10 23:47:10 +01:00
Maria Matejka
980ef11016
C Compiler Attribute Cleanup Test
...
There is a long-known CC attribute cleanup which allows to call a custom
cleanup function when an auto-storage variable ceases to exist. We're
gonna use it for end-of-loop and leave-locked-block macros.
This commit adds a static unit test for this compiler feature to be sure
that it really does what we want. We're looking forward to the next ISO
C norm where this may finally get a nice syntax and standardization.
2023-11-09 23:08:21 +01:00
Maria Matejka
d7f5248bcc
More descriptive bug message on deadlock prevention
2023-11-09 17:42:22 +01:00
Maria Matejka
5b9532ae1f
Merge branch 'mq-aggregator-for-v3' into thread-next
2023-11-09 15:34:59 +01:00
Maria Matejka
00e40a6b80
Merge branch 'mq-aggregator-for-v3' into thread-next
2023-11-09 15:20:13 +01:00
Maria Matejka
30712a2bdf
Merge branch 'mq-aggregator-for-v3' into thread-next
2023-11-08 21:51:46 +01:00
Maria Matejka
c6fba7d7e6
Merge branch 'thread-next' into HEAD
2023-11-02 14:43:15 +01:00
Katerina Kubecova
4e9725e825
FIB walk macros now allow continue from the loop
2023-11-02 14:37:27 +01:00
Maria Matejka
f730ecef4f
Dumping route sources along with protocols and routes
2023-11-01 18:25:40 +01:00
Maria Matejka
796f0af0cc
Fixes to root pool and meta loop to allow resource dumps
2023-11-01 18:23:43 +01:00
Maria Matejka
15d890e87b
Merge branch 'mq-aggregator-for-v3' into HEAD
2023-11-01 18:19:55 +01:00
Maria Matejka
f90f2ed680
Merge branch 'mq-aggregator-for-v3' into thread-next
2023-11-01 18:08:49 +01:00