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

630 Commits

Author SHA1 Message Date
Maria Matejka
29cd2c0170 Refactored the deferring framework into a separate structure 2024-05-22 11:34:34 +02:00
Maria Matejka
2b38a833cd 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-22 11:34:34 +02:00
Maria Matejka
6fb467a54c RCU Unwinder refactored from route table to a separate structure 2024-05-22 11:34:34 +02:00
Maria Matejka
83a409abd2 Cached route attributes now have explicitly marked layers
Also the rta_* functions renamed to ea_* functions
2024-05-22 11:34:34 +02:00
Maria Matejka
77659b1994 Netindex: Dropping tmp handle mechanism in favor of deferred lfuc_unlock 2024-05-22 11:34:34 +02:00
Maria Matejka
46164395b2 Fixed all implicit seq_cst warnings caused by the previous commit 2024-05-22 11:34:34 +02:00
Maria Matejka
67aafd99d3 Route flag REF_OBSOLETE
Marking routes obsolete when being removed from table, just to be sure.
2024-05-22 11:34:34 +02:00
Maria Matejka
6a13c02d3b 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-05-22 11:34:34 +02:00
Maria Matejka
e0a1bbdf65 Lockfree usecount: deferring unlocks to the metaloop
This allows us for easy temporary locks without additional burden of explicit cleanup.
2024-05-22 11:34:34 +02:00
Maria Matejka
23f7208a82 Lock free journal refactored into a separate data structure 2024-05-22 11:34:34 +02:00
Maria Matejka
fe3d7c1a17 Merge a branch of fixes and updates needed for stabilization of v3.
Merge commit 'c06ce709' into HEAD
2024-05-19 11:28:03 +02:00
Maria Matejka
67f6ac1628 IO Loop: provide information about current loop and task time limit 2024-05-18 15:48:03 +02:00
Maria Matejka
b1b3c7aac2 Allowing to send events to the metaloop's priority list 2024-05-18 15:48:03 +02:00
Maria Matejka
1b9152d041 Net: explicit generic-to-specific typecast with checking 2024-05-18 15:48:03 +02:00
Maria Matejka
967c97bb59 Bitops: bitflip function
to flip order of bits in 32b numbers
2024-05-18 15:48:03 +02:00
Maria Matejka
d6ec3eaee4 Locking: forcefully unwinding locks to a previously stored state 2024-05-18 15:48:03 +02:00
Maria Matejka
6806aacf74 Typed list: macro for list length 2024-05-18 15:48:03 +02:00
Maria Matejka
a6f65d99b4 Typed lists: enabled defining the list structure independently on the node 2024-05-18 15:48:03 +02:00
Maria Matejka
85c144f8ac Event: fixed race condition between ev_send and ev_postpone 2024-05-18 15:48:03 +02:00
Maria Matejka
24a6336acf lib/printf_test.c: test on strcmp fixed
we mistakenly required the return value to be only -1, 0 or 1
2024-05-18 15:48:03 +02:00
Ondrej Zajicek
294b9763ce Merge commit '114be2af28e5c124bd479a487f89244ba99c272d' into thread-next 2024-04-01 03:15:33 +02:00
Ondrej Zajicek
07757b8a0c Filter: Initialize route attribute flags properly
Move 'flags' field back to ea_class, so filtering code can use it to
initialize route attribute flags when set by filters.
2024-04-01 02:53:25 +02:00
Ondrej Zajicek
1beafe3eea Fix merge commit c195c7a0d5 2024-03-28 17:55:43 +01:00
Ondrej Zajicek
62c9f12dfc Merge commit '574d7eb241a60622b0573ab1460cb23d968ba1cc' into thread-next 2024-03-28 15:00:40 +01:00
Ondrej Zajicek
114be2af28 Filter: Add route attribute gw_mpls_stack
Add route attribute gw_mpls_stack to make MPLS stack of route nexthop
accessible from filters. Its type is T_CLIST, which is really not correct
(as it is a list, while T_CLIST is a set). Therefore, we keep this
attribute *undocumented* and it will be *changed* without further notice.

Based on a patch from Trisha Biswas <tbiswas@fastly.com>, thanks!
2024-03-05 16:47:08 +01:00
Alexander Zubkov
574d7eb241 BGP: Allow multiple EBGP neighbors with the same peer.
We can distinguish BGP sessions if at least one side uses a different IP
address. Extend olock mechanism to handle local IP as a part of key, with
optional wildcard, so BGP sessions could local IP in the olock and not
block themselves.
2024-02-07 19:11:10 +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