]> git.ipfire.org Git - thirdparty/bird.git/commit
Converting the former BFD loop to a universal IO loop and protocol loop.
authorMaria Matejka <mq@ucw.cz>
Sat, 19 Jun 2021 18:50:18 +0000 (20:50 +0200)
committerMaria Matejka <mq@ucw.cz>
Mon, 22 Nov 2021 18:05:43 +0000 (19:05 +0100)
commit94eb0858c2b938549d9d1703c872c6149901e7dd
tree2eb0cff73002b4278916c1ad6865b7a85b680bd1
parentc84ed603714db2c42a781f8dbb5b3fd540ff689f
Converting the former BFD loop to a universal IO loop and protocol loop.

There is a simple universal IO loop, taking care of events, timers and
sockets. Primarily, one instance of a protocol should use exactly one IO
loop to do all its work, as is now done in BFD.

Contrary to previous versions, the loop is now launched and cleaned by
the nest/proto.c code, allowing for a protocol to just request its own
loop by setting the loop's lock order in config higher than the_bird.

It is not supported nor checked if any protocol changed the requested
lock order in reconfigure. No protocol should do it at all.
32 files changed:
filter/filter_test.c
lib/birdlib.h
lib/coro.h
lib/event.c
lib/event.h
lib/event_test.c
lib/flowspec_test.c
lib/io-loop.h [new file with mode: 0644]
lib/lists.h
lib/locking.h
lib/socket.h
lib/timer.c
lib/timer.h
nest/a-path_test.c
nest/a-set_test.c
nest/config.Y
nest/proto.c
nest/protocol.h
nest/route.h
nest/rt-table.c
proto/bfd/bfd.c
proto/bfd/bfd.h
proto/bfd/config.Y
proto/bfd/packets.c
proto/bgp/bgp.c
sysdep/unix/coroutine.c
sysdep/unix/io-loop.c
sysdep/unix/io-loop.h
sysdep/unix/io.c
sysdep/unix/main.c
sysdep/unix/unix.h
test/bt-utils.c