summaryrefslogtreecommitdiff
path: root/zebra/zebra_errors.c
diff options
context:
space:
mode:
authorRajasekar Raja <rajasekarr@nvidia.com>2024-08-28 11:38:53 -0700
committerRajasekar Raja <rajasekarr@nvidia.com>2024-12-09 08:46:16 -0800
commit07a80709c728d87abc2d15393a719d4232b1f33b (patch)
tree34610db5e50238d833373ba4e0b0c8511261e903 /zebra/zebra_errors.c
parent8c713609dda6e71890fd61556ee7654170680ccd (diff)
bgpd: backpressure - Optimize EVPN L2VNI remote routes processing
Anytime BGP gets a L2 VNI ADD from zebra, - Walking the entire global routing table per L2VNI is very expensive. - The next read (say of another VNI ADD) from the socket does not proceed unless this walk is complete. So for triggers where a bulk of L2VNI's are flapped, this results in huge output buffer FIFO growth spiking up the memory in zebra since bgp is slow/busy processing the first message. To avoid this, idea is to hookup the VPN off the bgp_master struct and maintain a VPN FIFO list which is processed later on, where we walk a chunk of VPNs and do the remote route install. Note: So far in the L3 backpressure cases(#15524), we have considered the fact that zebra is slow, and the buffer grows in the BGP. However this is the reverse i.e. BGP is very busy processing the first ZAPI message from zebra due to which the buffer grows huge in zebra and memory spikes up. Ticket :#3864372 Signed-off-by: Rajasekar Raja <rajasekarr@nvidia.com>
Diffstat (limited to 'zebra/zebra_errors.c')
0 files changed, 0 insertions, 0 deletions