]> git.puffer.fish Git - matthieu/frr.git/commitdiff
bgpd: uncork after each write
authorStephen Hemminger <shemminger@vyatta.com>
Fri, 11 Jan 2013 18:27:23 +0000 (18:27 +0000)
committerDavid Lamparter <equinox@opensourcerouting.org>
Tue, 15 Jan 2013 16:50:34 +0000 (17:50 +0100)
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 <shemminger@vyatta.org>
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
bgpd/bgp_packet.c

index 02863d75e4297f74576df203c563b2c8b2c5c4c3..b0918fc52f014382bb6e59b6aac5f42eef50653f 100644 (file)
@@ -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;
 }