Revert "bgpd: optimize bgp_interface_address_del"

This reverts commit fc1dd2e506.
This commit is contained in:
Donatas Abraitis 2024-08-14 20:15:22 +03:00
parent 2fd44b1bbb
commit 72b4ca50d0

View File

@ -389,8 +389,6 @@ static int bgp_interface_address_delete(ZAPI_CALLBACK_ARGS)
struct peer *peer;
struct bgp *bgp;
struct prefix *addr;
afi_t afi;
safi_t safi;
bgp = bgp_lookup_by_vrf_id(vrf_id);
@ -409,8 +407,7 @@ static int bgp_interface_address_delete(ZAPI_CALLBACK_ARGS)
addr = ifc->address;
if (bgp && addr->family == AF_INET6 &&
!IN6_IS_ADDR_LINKLOCAL(&addr->u.prefix)) {
if (bgp) {
/*
* When we are using the v6 global as part of the peering
* nexthops and we are removing it, then we need to
@ -419,10 +416,17 @@ static int bgp_interface_address_delete(ZAPI_CALLBACK_ARGS)
* we do not want the peering to bounce.
*/
for (ALL_LIST_ELEMENTS(bgp->peer, node, nnode, peer)) {
if (IPV6_ADDR_SAME(&peer->nexthop.v6_global,
&addr->u.prefix6)) {
memset(&peer->nexthop.v6_global, 0,
IPV6_MAX_BYTELEN);
afi_t afi;
safi_t safi;
if (addr->family == AF_INET)
continue;
if (!IN6_IS_ADDR_LINKLOCAL(&addr->u.prefix6)
&& memcmp(&peer->nexthop.v6_global,
&addr->u.prefix6, 16)
== 0) {
memset(&peer->nexthop.v6_global, 0, 16);
FOREACH_AFI_SAFI (afi, safi)
bgp_announce_route(peer, afi, safi,
true);