Handle IMSG_SESSION_* messages immediatly when received and do not put
authorclaudio <claudio@openbsd.org>
Fri, 26 Aug 2022 14:10:52 +0000 (14:10 +0000)
committerclaudio <claudio@openbsd.org>
Fri, 26 Aug 2022 14:10:52 +0000 (14:10 +0000)
commitddbc7ef40e837ce2a1f3912c0971cc5c01448880
tree44bffca0cfb20509f20534c44cc02a3219ee179c
parent31d1a7f680dcf7486faeb67f8272406c3400252a
Handle IMSG_SESSION_* messages immediatly when received and do not put
them on the per peer imsg queue. This is mainly for IMSG_SESSION_DOWN.
Delaying the session down can race against IMSG_SESSION_ADD which is
handled immediatly and as a result an establised connection may be
removed in the RDE because of it.
The various graceful restart imsgs need similar treatment for similar
reasons. In the end when a session is reset/closed the RDE needs to
stop all work and flush the per peer imsg queue.
With this only update and route refresh messages are handled via the
imsg queue.
OK tb@
usr.sbin/bgpd/bgpd.h
usr.sbin/bgpd/rde.c
usr.sbin/bgpd/rde.h
usr.sbin/bgpd/rde_peer.c
usr.sbin/bgpd/session.c