mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-07-27 15:23:39 +00:00
bgpd: optimize bgp_interface_address_add
Move common checks outside of the loop. Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
This commit is contained in:
parent
d346d1ac41
commit
8599fe2b5e
@ -335,13 +335,11 @@ static int bgp_interface_address_add(ZAPI_CALLBACK_ARGS)
|
|||||||
if (IN6_IS_ADDR_LINKLOCAL(&ifc->address->u.prefix6)
|
if (IN6_IS_ADDR_LINKLOCAL(&ifc->address->u.prefix6)
|
||||||
&& !list_isempty(ifc->ifp->nbr_connected))
|
&& !list_isempty(ifc->ifp->nbr_connected))
|
||||||
bgp_start_interface_nbrs(bgp, ifc->ifp);
|
bgp_start_interface_nbrs(bgp, ifc->ifp);
|
||||||
else {
|
else if (ifc->address->family == AF_INET6 &&
|
||||||
|
!IN6_IS_ADDR_LINKLOCAL(&ifc->address->u.prefix6)) {
|
||||||
addr = ifc->address;
|
addr = ifc->address;
|
||||||
|
|
||||||
for (ALL_LIST_ELEMENTS(bgp->peer, node, nnode, peer)) {
|
for (ALL_LIST_ELEMENTS(bgp->peer, node, nnode, peer)) {
|
||||||
if (addr->family == AF_INET)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* If the Peer's interface name matches the
|
* If the Peer's interface name matches the
|
||||||
* interface name for which BGP received the
|
* interface name for which BGP received the
|
||||||
@ -355,7 +353,6 @@ static int bgp_interface_address_add(ZAPI_CALLBACK_ARGS)
|
|||||||
if ((peer->conf_if &&
|
if ((peer->conf_if &&
|
||||||
(strcmp(peer->conf_if, ifc->ifp->name) ==
|
(strcmp(peer->conf_if, ifc->ifp->name) ==
|
||||||
0)) &&
|
0)) &&
|
||||||
!IN6_IS_ADDR_LINKLOCAL(&addr->u.prefix6) &&
|
|
||||||
((IS_MAPPED_IPV6(
|
((IS_MAPPED_IPV6(
|
||||||
&peer->nexthop.v6_global)) ||
|
&peer->nexthop.v6_global)) ||
|
||||||
IN6_IS_ADDR_LINKLOCAL(
|
IN6_IS_ADDR_LINKLOCAL(
|
||||||
|
Loading…
Reference in New Issue
Block a user