From d889623f1ac5e14d761a0cb7896d33cfdc4f3615 Mon Sep 17 00:00:00 2001 From: Donald Sharp Date: Tue, 19 May 2015 17:58:12 -0700 Subject: Changes to improve BGP convergence time: - Schedule write thread for advertisements and withdraws only if corresponding FIFOs are growing and/or upon work_queue getting fully processed. - Set non-default yield time for the main work_queue, as the default value of 10ms results in yielding after processing very few nodes. - Remove unnecessary scheduling of write thread when update packet is formed. - If MRAI is 0, don't start a timer unnecessarily, directly schedule write thread. - Some debugs. --- bgpd/bgp_advertise.h | 3 +++ 1 file changed, 3 insertions(+) (limited to 'bgpd/bgp_advertise.h') diff --git a/bgpd/bgp_advertise.h b/bgpd/bgp_advertise.h index 672d42d8c..36ab57698 100644 --- a/bgpd/bgp_advertise.h +++ b/bgpd/bgp_advertise.h @@ -146,6 +146,9 @@ struct bgp_synchronize (F)->count = 0; \ } while (0) +#define BGP_ADV_FIFO_COUNT(F) \ + (F)->count + /* Prototypes. */ extern void bgp_adj_out_set (struct bgp_node *, struct peer *, struct prefix *, struct attr *, afi_t, safi_t, struct bgp_info *); -- cgit v1.2.3