]> git.puffer.fish Git - matthieu/frr.git/commit
bgpd: bgp_sync_label_manager failure case
authorDonald Sharp <sharpd@nvidia.com>
Sun, 7 Jan 2024 01:26:14 +0000 (20:26 -0500)
committerDonald Sharp <sharpd@nvidia.com>
Sun, 7 Jan 2024 01:26:14 +0000 (20:26 -0500)
commit02049ffb13f8f8a027bef61cfcccf7f0cbae0e30
treebd6b88caa6f3a5a72efb1e6cfb2f329a0e380239
parent4e249eb2e4f689d26d4ded79213dd7c2bdd6877f
bgpd: bgp_sync_label_manager failure case

There are several problems with the bgp_sync_label_manager
function:

a) It is possible that a request in the lp->requests
fifo will be unable to be filled at this point in time
and the lf will be leaked and not ever fullfilled.

b) The bgp_sync_label_manager runs one time a second
irrelevant if there is work to do or not.

To fix (a) just add the request back to the requests
fifo and set the timer to pop in the future.

To fix (b) just every time something is put into
the request pool start a timer to run in 1 second
and do not restart it if all the work is done.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
bgpd/bgp_labelpool.c