]> git.puffer.fish Git - mirror/frr.git/commit
tools: limit bgp route-maps to direct changes only 8337/head
authorDonald Sharp <sharpd@nvidia.com>
Tue, 23 Mar 2021 12:48:54 +0000 (08:48 -0400)
committerDonald Sharp <sharpd@nvidia.com>
Wed, 23 Jun 2021 14:19:00 +0000 (10:19 -0400)
commit6293c2181a3c58046f94496391d14a921a7fd892
tree131eeb2cc11a49ee9f4ee1220dd0290c5dec3175
parent43d985e4144f1ec2bbdafe89b0c1c7129af3c2c1
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>
tools/frr-reload.py