Skip to content

Commit

Permalink
Revert "bgpd: optimize bgp_interface_address_del"
Browse files Browse the repository at this point in the history
This reverts commit fc1dd2e.
  • Loading branch information
ton31337 committed Aug 14, 2024
1 parent 2fd44b1 commit 72b4ca5
Showing 1 changed file with 12 additions and 8 deletions.
20 changes: 12 additions & 8 deletions bgpd/bgp_zebra.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);

Expand All @@ -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
Expand All @@ -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);
Expand Down

0 comments on commit 72b4ca5

Please sign in to comment.