]> git.proxmox.com Git - mirror_frr.git/commit - bgpd/bgp_keepalives.h
bgpd: put BGP keepalives in a pthread
authorQuentin Young <qlyoung@cumulusnetworks.com>
Thu, 5 Jan 2017 23:13:16 +0000 (23:13 +0000)
committerQuentin Young <qlyoung@cumulusnetworks.com>
Thu, 30 Nov 2017 21:17:57 +0000 (16:17 -0500)
commit03014d48f4afe83f3bf87c966bcccc8c7532d791
treeee4a7f45ab4a66034ab80c1e6c58e59da3c2675c
parent07a165268236fc64380d3abff46ae950e1799e65
bgpd: put BGP keepalives in a pthread

This patch, in tandem with moving packet writes into a dedicated kernel
thread, fixes session flaps caused by long-running internal operations
starving the (old) userspace write thread.

BGP keepalives are now produced by a kernel thread and placed onto the
peer's output queue. These are then consumed by the write thread. Both
of these tasks are concurrent with the rest of bgpd, obviating the
session flaps described above.

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
bgpd/Makefile.am
bgpd/bgp_fsm.c
bgpd/bgp_keepalives.c [new file with mode: 0644]
bgpd/bgp_keepalives.h [new file with mode: 0644]
bgpd/bgp_main.c