0
0
mirror of https://gitlab.nic.cz/labs/bird.git synced 2024-09-19 11:55:21 +00:00
bird/nest
Maria Matejka eaf187b57b Table feeds are now lockless
This commit makes the route chains in the tables atomic. This allows not
only standard exports but also feeds and bulk exports to be processed
without ever locking the table.

Design note: the overall data structures are quite brittle. We're using
RCU read-locks to keep track about readers, and we're indicating ongoing
work on the data structures by prepending a REF_OBSOLETE sentinel node
to make every reader go waiting.

All the operations are intended to stay inside nest/rt-table.c and it
may be even best to further refactor the code to hide the routing table
internal structure inside there. Nobody shall definitely write any
routines manipulating live routes in tables from outside.
2024-05-22 11:34:34 +02:00
..
bfd.h BFD notifications respect protocol loop settings 2023-04-04 17:00:58 +02:00
bird.h Enforcing certain data structure explicit paddings. 2022-05-04 15:37:41 +02:00
cli.c CLI: Dropping the mechanism of echoing log messages 2023-09-14 14:45:01 +02:00
cli.h CLI: Dropping the mechanism of echoing log messages 2023-09-14 14:45:01 +02:00
cmds.c Renamed nest/rt.h back to nest/route.h 2023-10-29 16:29:26 +01:00
cmds.h Filter refactoring: dropped the recursion from the interpreter 2019-02-20 22:30:54 +01:00
config.Y Refactoring: back-merged export data structures 2024-05-22 11:34:33 +02:00
Doc MPLS subsystem 2023-10-04 13:01:21 +02:00
iface.c Interfaces: fixed locking when address is deleted implicitly 2024-01-27 19:01:34 +01:00
iface.h Dropped forgotten pieces of orphaned internal API 2024-01-08 09:23:35 +01:00
limit.h Limited value must never go under zero 2022-10-12 10:05:14 +02:00
locks.c Merge commit '574d7eb241a60622b0573ab1460cb23d968ba1cc' into thread-next 2024-03-28 15:00:40 +01:00
locks.h Merge commit '574d7eb241a60622b0573ab1460cb23d968ba1cc' into thread-next 2024-03-28 15:00:40 +01:00
Makefile Merge branch 'mq-aggregator-for-v3' into thread-next 2023-11-08 21:51:46 +01:00
mpls-internal.h MPLS Subsystem Proper Locking 2024-01-26 14:42:44 +01:00
mpls.c Cached route attributes now have explicitly marked layers 2024-05-22 11:34:34 +02:00
mpls.h Merge commit 'v2.13.1-162-g5bf25678' into thread-next 2024-01-27 19:01:06 +01:00
mpls.Y Merge commit 'v2.13.1-183-g2b05844c' into thread-next 2024-01-28 14:28:17 +01:00
neighbor.c Merge commit 'e3c0eca9' into thread-next 2023-10-13 11:04:39 +02:00
password.c Nest: Allow MAC algorithms to specify min/max key length 2021-06-06 16:28:18 +02:00
password.h Resource pools are now bound with domains. 2023-04-24 10:33:28 +02:00
proto-hooks.c Dropping rte-local dumper entries 2021-10-13 19:09:05 +02:00
proto.c Fixed all implicit seq_cst warnings caused by the previous commit 2024-05-22 11:34:34 +02:00
proto.sgml Channels - explicit links between protocols and tables 2016-02-01 10:28:50 +01:00
protocol.h Merge commit 'v2.13.1-183-g2b05844c' into thread-next 2024-01-28 14:28:17 +01:00
route.h Table feeds are now lockless 2024-05-22 11:34:34 +02:00
rt-attr.c Lockless hostentry resolution 2024-05-22 11:34:34 +02:00
rt-dev.c Undefined behavior fix 2024-05-18 15:41:33 +02:00
rt-dev.h Nest: SADR support for Direct 2018-03-18 02:56:51 +01:00
rt-fib_test.c Renamed nest/rt.h back to nest/route.h 2023-10-29 16:29:26 +01:00
rt-fib.c Renamed nest/rt.h back to nest/route.h 2023-10-29 16:29:26 +01:00
rt-show.c Cached route attributes now have explicitly marked layers 2024-05-22 11:34:34 +02:00
rt-table.c Table feeds are now lockless 2024-05-22 11:34:34 +02:00