]> git.puffer.fish Git - mirror/frr.git/commit
bgpd: Allow extending peer timeout in rare case 6584/head
authorDonald Sharp <sharpd@cumulusnetworks.com>
Mon, 15 Jun 2020 14:35:50 +0000 (10:35 -0400)
committerDonald Sharp <sharpd@cumulusnetworks.com>
Mon, 15 Jun 2020 14:35:50 +0000 (10:35 -0400)
commitd0874d195d0127009a7d9c06920c52c95319eff9
tree98f9d4060d7bb4659a1e312bed9170f76cbe2e11
parent1a5fc72066daf409d7470d4c4c34d979efd94ca0
bgpd: Allow extending peer timeout in rare case

Currently the I/O pthread handles incoming/outgoing data
communication with all peers.  There is no attempt at modifying
the hold timers.  It's sole goal is to read/write data to appropriate
channels.  All this data is handled as *events* on the master pthread
in BGP.   The problem is that if the master pthread is extremely busy
then any packet read that would be treated as a keepalive event may
happen after the hold timer pops, due to the way thread events are handled
in lib/thread.c.

In a last gap attempt, if we notice that we have incoming data
to proceses on the input Queue, slightly delay the hold timer.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
bgpd/bgp_fsm.c