]> git.puffer.fish Git - matthieu/frr.git/commit
tools: limit bgp route-maps to direct changes only
authorDonald Sharp <sharpd@nvidia.com>
Tue, 23 Mar 2021 12:48:54 +0000 (08:48 -0400)
committermergify-bot <noreply@mergify.io>
Fri, 23 Jul 2021 09:12:32 +0000 (09:12 +0000)
commit0e5658a6d22b56e66f7377aa1f6dc7be8658ca1c
treeafe52237b00c48d936840f99d8a685cdd0b2ab11
parent381752f3679b43f53f5c72e91153729853930a3f
tools: limit bgp route-maps to direct changes only

When using frr-reload.py to modify a bgp neighbors route-map
the code was doing this:

a) deleting the previous route-map: `no neighbor XX route-map YY (in|out)`
b) Adding the new route-map back in `neighbor XX route-may ZZ (in|out)`

Now imagine that we have an outgoing route-map that we are changing
and the reload is large because of a large number of lines in frr.conf

Item (a) will happen.  BGP will immediately start sending all local
routes.  At some point in time in the future (b) will be applied.
This of course causes a withdraw but for a short amount of time we
are leaking unintended routes.  This is bad for several reasons
not 1) route churn upstream, 2) we might influence traffic to go the
wrong way. 3) if upstream has a maximum-prefix command the routes
being sent might trip its circuitry and shutdown the peer entirely
not even allowing you to get to (b).

Ticket: #2589685
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
(cherry picked from commit 6293c2181a3c58046f94496391d14a921a7fd892)
tools/frr-reload.py