diff options
| author | Quentin Young <qlyoung@cumulusnetworks.com> | 2017-11-30 14:11:12 -0500 |
|---|---|---|
| committer | Quentin Young <qlyoung@cumulusnetworks.com> | 2017-11-30 16:47:51 -0500 |
| commit | 4961a5a2eb478865f963283cd61bcc9ff19b1cdc (patch) | |
| tree | d11c5cb235870f27e34fa94bca72ad4dab83445d /bgpd/bgp_packet.c | |
| parent | 5561f5234361a1ea928133cfb5193ded71aa1cd6 (diff) | |
bgpd: intelligently adjust coalesce timer
The subgroup coalesce timer controls how long updates to a particular
subgroup are delayed in order to allow additional peers to join the
subgroup. Presently the timer value is 200 ms. Increase it to 1 second
and adjust up as peers are configured, with an upper cap at 10s.
This cuts convergence time by a factor of 3 at large scale (300+ peers,
1000+ prefixes per peer).
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
Diffstat (limited to 'bgpd/bgp_packet.c')
| -rw-r--r-- | bgpd/bgp_packet.c | 14 |
1 files changed, 0 insertions, 14 deletions
diff --git a/bgpd/bgp_packet.c b/bgpd/bgp_packet.c index 09df0e35b6..867c88111c 100644 --- a/bgpd/bgp_packet.c +++ b/bgpd/bgp_packet.c @@ -2156,22 +2156,8 @@ int bgp_process_packet(struct thread *thread) int mprc; // message processing return code peer = THREAD_ARG(thread); -/* - * This functionality is presently disabled. Unfortunately due to the - * way bgpd is structured, reading more than one packet per input cycle - * severely impacts convergence time. This is because advancing the - * state of the routing table based on prefixes learned from one peer - * prior to all (or at least most) peers being established and placed - * into an update-group will make UPDATE generation starve - * bgp_accept(), delaying convergence. This is a deficiency that needs - * to be fixed elsewhere in the codebase, but for now our hand is - * forced. - */ -#if 0 rpkt_quanta_old = atomic_load_explicit(&peer->bgp->rpkt_quanta, memory_order_relaxed); -#endif - rpkt_quanta_old = 1; fsm_update_result = 0; /* Guard against scheduled events that occur after peer deletion. */ |
