]> git.puffer.fish Git - matthieu/frr.git/commit
bgpd: Limit peer output queue length like input queue length
authorDonald Sharp <sharpd@nvidia.com>
Thu, 19 Jan 2023 16:43:12 +0000 (11:43 -0500)
committerDonald Sharp <sharpd@nvidia.com>
Thu, 19 Jan 2023 16:48:01 +0000 (11:48 -0500)
commit963b7ee44845481197a1e04bf922a872041bec00
tree1049e1db9257abb612ed9c66e54550a391db32bd
parent930e01aae17fdf5e5717094c11da99a0e833c54e
bgpd: Limit peer output queue length like input queue length

Consider this scenario:

Lots of peers with a bunch of route information that is changing
fast.  One of the peers happens to be really slow for whatever
reason.  The way the output queue is filled is that bgpd puts
64 packets at a time and then reschedules itself to send more
in the future.  Now suppose that peer has hit it's input Queue
limit and is slow.  As such bgp will continue to add data to
the output Queue, irrelevant if the other side is receiving
this data.

Let's limit the Output Queue to the same limit as the Input
Queue.  This should prevent bgp eating up large amounts of
memory as stream data when under severe network trauma.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
bgpd/bgp_packet.c
bgpd/bgp_vty.c
bgpd/bgpd.c
bgpd/bgpd.h
doc/user/bgp.rst