From: Stephen Hemminger Date: Fri, 11 Jan 2013 18:27:23 +0000 (+0000) Subject: bgpd: uncork after each write X-Git-Tag: frr-2.0-rc1~1707 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=3a69f74a0a903659e8a5bb930b257d9d09a87626;p=matthieu%2Ffrr.git bgpd: uncork after each write Keep data flowing, uncork after each BGP_WRITE_PACKET_MAX. This makes TCP send data sooner, since thread may not be scheduled again for a a longish time because of new UPDATE's coming in. Signed-off-by: Stephen Hemminger Signed-off-by: David Lamparter --- diff --git a/bgpd/bgp_packet.c b/bgpd/bgp_packet.c index 02863d75e4..b0918fc52f 100644 --- a/bgpd/bgp_packet.c +++ b/bgpd/bgp_packet.c @@ -677,7 +677,8 @@ bgp_write (struct thread *thread) /* Flush any existing events */ BGP_EVENT_ADD (peer, BGP_Stop); - return 0; + goto done; + case BGP_MSG_KEEPALIVE: peer->keepalive_out++; break; @@ -698,9 +699,9 @@ bgp_write (struct thread *thread) if (bgp_write_proceed (peer)) BGP_WRITE_ON (peer->t_write, bgp_write, peer->fd); - else - sockopt_cork (peer->fd, 0); - + + done: + sockopt_cork (peer->fd, 0); return 0; }