mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-07-27 02:20:54 +00:00
Revert "bgpd: fix removing ipv6 global nexhop"
This reverts commit ee0378cdbb
.
This commit is contained in:
parent
3e7094e2b1
commit
2fd44b1bbb
@ -385,12 +385,10 @@ static int bgp_interface_address_add(ZAPI_CALLBACK_ARGS)
|
|||||||
static int bgp_interface_address_delete(ZAPI_CALLBACK_ARGS)
|
static int bgp_interface_address_delete(ZAPI_CALLBACK_ARGS)
|
||||||
{
|
{
|
||||||
struct listnode *node, *nnode;
|
struct listnode *node, *nnode;
|
||||||
struct connected *ifc, *connected;
|
struct connected *ifc;
|
||||||
struct peer *peer;
|
struct peer *peer;
|
||||||
struct bgp *bgp;
|
struct bgp *bgp;
|
||||||
struct prefix *addr;
|
struct prefix *addr;
|
||||||
struct in6_addr *v6_global = NULL;
|
|
||||||
struct in6_addr *v6_local = NULL;
|
|
||||||
afi_t afi;
|
afi_t afi;
|
||||||
safi_t safi;
|
safi_t safi;
|
||||||
|
|
||||||
@ -412,17 +410,7 @@ static int bgp_interface_address_delete(ZAPI_CALLBACK_ARGS)
|
|||||||
addr = ifc->address;
|
addr = ifc->address;
|
||||||
|
|
||||||
if (bgp && addr->family == AF_INET6 &&
|
if (bgp && addr->family == AF_INET6 &&
|
||||||
!IN6_IS_ADDR_LINKLOCAL(&addr->u.prefix6)) {
|
!IN6_IS_ADDR_LINKLOCAL(&addr->u.prefix)) {
|
||||||
/* find another IPv6 global if possible and find the IPv6 link-local */
|
|
||||||
frr_each (if_connected, ifc->ifp->connected, connected) {
|
|
||||||
if (connected->address->family != AF_INET6)
|
|
||||||
continue;
|
|
||||||
if (IN6_IS_ADDR_LINKLOCAL(&connected->address->u.prefix6))
|
|
||||||
v6_local = &connected->address->u.prefix6;
|
|
||||||
else
|
|
||||||
v6_global = &connected->address->u.prefix6;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* When we are using the v6 global as part of the peering
|
* When we are using the v6 global as part of the peering
|
||||||
* nexthops and we are removing it, then we need to
|
* nexthops and we are removing it, then we need to
|
||||||
@ -433,15 +421,8 @@ static int bgp_interface_address_delete(ZAPI_CALLBACK_ARGS)
|
|||||||
for (ALL_LIST_ELEMENTS(bgp->peer, node, nnode, peer)) {
|
for (ALL_LIST_ELEMENTS(bgp->peer, node, nnode, peer)) {
|
||||||
if (IPV6_ADDR_SAME(&peer->nexthop.v6_global,
|
if (IPV6_ADDR_SAME(&peer->nexthop.v6_global,
|
||||||
&addr->u.prefix6)) {
|
&addr->u.prefix6)) {
|
||||||
if (v6_global)
|
memset(&peer->nexthop.v6_global, 0,
|
||||||
IPV6_ADDR_COPY(&peer->nexthop.v6_global,
|
IPV6_MAX_BYTELEN);
|
||||||
v6_global);
|
|
||||||
else if (v6_local)
|
|
||||||
IPV6_ADDR_COPY(&peer->nexthop.v6_global,
|
|
||||||
v6_local);
|
|
||||||
else
|
|
||||||
memset(&peer->nexthop.v6_global, 0,
|
|
||||||
IPV6_MAX_BYTELEN);
|
|
||||||
FOREACH_AFI_SAFI (afi, safi)
|
FOREACH_AFI_SAFI (afi, safi)
|
||||||
bgp_announce_route(peer, afi, safi,
|
bgp_announce_route(peer, afi, safi,
|
||||||
true);
|
true);
|
||||||
|
Loading…
Reference in New Issue
Block a user