Skip to content

Commit f4ba472

Browse files
bgpd: backpressure - Fix to withdraw evpn type-5 routes immediately
As part of backpressure changes, there is a bug where immediate withdraw is to be sent for evpn imported type-5 prefix to clear the nh neigh and RMAC entry. Fixing this by sending withdraw immediately to keep it inline with the code today Ticket: #3905571 Signed-off-by: Donald Sharp <sharpd@nvidia.com> Signed-off-by: Rajasekar Raja <rajasekarr@nvidia.com>
1 parent e41b4a7 commit f4ba472

File tree

2 files changed

+3
-9
lines changed

2 files changed

+3
-9
lines changed

bgpd/bgp_route.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3810,8 +3810,7 @@ static void bgp_process_main_one(struct bgp *bgp, struct bgp_dest *dest,
38103810
*/
38113811
if (old_select &&
38123812
is_route_parent_evpn(old_select))
3813-
bgp_zebra_route_install(dest, old_select, bgp,
3814-
false, NULL, false);
3813+
bgp_zebra_withdraw_actual(dest, old_select, bgp);
38153814

38163815
bgp_zebra_route_install(dest, new_select, bgp, true,
38173816
NULL, false);

bgpd/bgp_zebra.c

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1891,11 +1891,9 @@ static void bgp_zebra_buffer_write_ready(void)
18911891
* save new pi, mark as going to be
18921892
* withdrawan, remove install flag
18931893
*
1894-
* Withdrawal Install Special case, send withdrawal immediately
1895-
* Leave dest on list, release old pi,
1894+
* Withdrawal Install Leave dest on list, release old pi,
18961895
* save new pi, mark as going to be
1897-
* installed. <see note about evpn
1898-
* in bgp_route.c in bgp_process_main_one>
1896+
* installed.
18991897
* Withdrawal Withdrawal Leave dest on list, release old pi,
19001898
* save new pi, mark as going to be
19011899
* withdrawn.
@@ -1950,9 +1948,6 @@ void bgp_zebra_route_install(struct bgp_dest *dest, struct bgp_path_info *info,
19501948
dest->za_bgp_pi = info;
19511949
} else if (CHECK_FLAG(dest->flags, BGP_NODE_SCHEDULE_FOR_DELETE)) {
19521950
assert(dest->za_bgp_pi);
1953-
if (install & !is_evpn)
1954-
bgp_zebra_withdraw_actual(dest, dest->za_bgp_pi, bgp);
1955-
19561951
bgp_path_info_unlock(dest->za_bgp_pi);
19571952
bgp_path_info_lock(info);
19581953
dest->za_bgp_pi = info;

0 commit comments

Comments
 (0)