bgpd: use FOREACH_AFI_SAFI where possible

Improves consistency and readability.

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
This commit is contained in:
Quentin Young 2017-11-21 13:02:06 -05:00
parent d32471578b
commit 05c7a1cc93
No known key found for this signature in database
GPG Key ID: DAF48E0F57E0834F
8 changed files with 904 additions and 1077 deletions

View File

@ -239,17 +239,14 @@ void bgp_sync_init(struct peer *peer)
safi_t safi;
struct bgp_synchronize *sync;
for (afi = AFI_IP; afi < AFI_MAX; afi++)
for (safi = SAFI_UNICAST; safi < SAFI_MAX; safi++) {
FOREACH_AFI_SAFI (afi, safi) {
sync = XCALLOC(MTYPE_BGP_SYNCHRONISE,
sizeof(struct bgp_synchronize));
BGP_ADV_FIFO_INIT(&sync->update);
BGP_ADV_FIFO_INIT(&sync->withdraw);
BGP_ADV_FIFO_INIT(&sync->withdraw_low);
peer->sync[afi][safi] = sync;
peer->hash[afi][safi] =
hash_create(baa_hash_key,
baa_hash_cmp,
peer->hash[afi][safi] = hash_create(baa_hash_key, baa_hash_cmp,
"BGP Sync Hash");
}
}
@ -259,11 +256,9 @@ void bgp_sync_delete(struct peer *peer)
afi_t afi;
safi_t safi;
for (afi = AFI_IP; afi < AFI_MAX; afi++)
for (safi = SAFI_UNICAST; safi < SAFI_MAX; safi++) {
FOREACH_AFI_SAFI (afi, safi) {
if (peer->sync[afi][safi])
XFREE(MTYPE_BGP_SYNCHRONISE,
peer->sync[afi][safi]);
XFREE(MTYPE_BGP_SYNCHRONISE, peer->sync[afi][safi]);
peer->sync[afi][safi] = NULL;
if (peer->hash[afi][safi])

View File

@ -181,21 +181,14 @@ static struct peer *peer_xfer_conn(struct peer *from_peer)
from_peer->domainname = NULL;
}
for (afi = AFI_IP; afi < AFI_MAX; afi++)
for (safi = SAFI_UNICAST; safi < SAFI_MAX; safi++) {
peer->af_flags[afi][safi] =
from_peer->af_flags[afi][safi];
peer->af_sflags[afi][safi] =
from_peer->af_sflags[afi][safi];
FOREACH_AFI_SAFI (afi, safi) {
peer->af_flags[afi][safi] = from_peer->af_flags[afi][safi];
peer->af_sflags[afi][safi] = from_peer->af_sflags[afi][safi];
peer->af_cap[afi][safi] = from_peer->af_cap[afi][safi];
peer->afc_nego[afi][safi] =
from_peer->afc_nego[afi][safi];
peer->afc_adv[afi][safi] =
from_peer->afc_adv[afi][safi];
peer->afc_recv[afi][safi] =
from_peer->afc_recv[afi][safi];
peer->orf_plist[afi][safi] =
from_peer->orf_plist[afi][safi];
peer->afc_nego[afi][safi] = from_peer->afc_nego[afi][safi];
peer->afc_adv[afi][safi] = from_peer->afc_adv[afi][safi];
peer->afc_recv[afi][safi] = from_peer->afc_recv[afi][safi];
peer->orf_plist[afi][safi] = from_peer->orf_plist[afi][safi];
}
if (bgp_getsockname(peer) < 0) {
@ -1070,8 +1063,7 @@ int bgp_stop(struct peer *peer)
peer->fd = -1;
}
for (afi = AFI_IP; afi < AFI_MAX; afi++)
for (safi = SAFI_UNICAST; safi < SAFI_MAX; safi++) {
FOREACH_AFI_SAFI (afi, safi) {
/* Reset all negotiated variables */
peer->afc_nego[afi][safi] = 0;
peer->afc_adv[afi][safi] = 0;
@ -1089,8 +1081,7 @@ int bgp_stop(struct peer *peer)
if ((peer->status == OpenConfirm)
|| (peer->status == Established)) {
/* ORF received prefix-filter pnt */
sprintf(orf_name, "%s.%d.%d", peer->host, afi,
safi);
sprintf(orf_name, "%s.%d.%d", peer->host, afi, safi);
prefix_bgp_orf_remove_all(afi, orf_name);
}
}
@ -1471,38 +1462,33 @@ static int bgp_establish(struct peer *peer)
peer->uptime = bgp_clock();
/* Send route-refresh when ORF is enabled */
for (afi = AFI_IP; afi < AFI_MAX; afi++)
for (safi = SAFI_UNICAST; safi < SAFI_MAX; safi++)
FOREACH_AFI_SAFI (afi, safi) {
if (CHECK_FLAG(peer->af_cap[afi][safi],
PEER_CAP_ORF_PREFIX_SM_ADV)) {
if (CHECK_FLAG(peer->af_cap[afi][safi],
PEER_CAP_ORF_PREFIX_RM_RCV))
bgp_route_refresh_send(
peer, afi, safi,
bgp_route_refresh_send(peer, afi, safi,
ORF_TYPE_PREFIX,
REFRESH_IMMEDIATE, 0);
else if (
CHECK_FLAG(
peer->af_cap[afi][safi],
else if (CHECK_FLAG(peer->af_cap[afi][safi],
PEER_CAP_ORF_PREFIX_RM_OLD_RCV))
bgp_route_refresh_send(
peer, afi, safi,
bgp_route_refresh_send(peer, afi, safi,
ORF_TYPE_PREFIX_OLD,
REFRESH_IMMEDIATE, 0);
}
}
/* First update is deferred until ORF or ROUTE-REFRESH is received */
for (afi = AFI_IP; afi < AFI_MAX; afi++)
for (safi = SAFI_UNICAST; safi < SAFI_MAX; safi++)
FOREACH_AFI_SAFI (afi, safi) {
if (CHECK_FLAG(peer->af_cap[afi][safi],
PEER_CAP_ORF_PREFIX_RM_ADV))
if (CHECK_FLAG(peer->af_cap[afi][safi],
PEER_CAP_ORF_PREFIX_SM_RCV)
|| CHECK_FLAG(
peer->af_cap[afi][safi],
|| CHECK_FLAG(peer->af_cap[afi][safi],
PEER_CAP_ORF_PREFIX_SM_OLD_RCV))
SET_FLAG(peer->af_sflags[afi][safi],
PEER_STATUS_ORF_WAIT_REFRESH);
}
bgp_announce_peer(peer);

View File

@ -1285,8 +1285,7 @@ void bgp_open_capability(struct stream *s, struct peer *peer)
return;
/* MP capability for configured AFI, SAFI */
for (afi = AFI_IP; afi < AFI_MAX; afi++)
for (safi = SAFI_UNICAST; safi < SAFI_MAX; safi++) {
FOREACH_AFI_SAFI (afi, safi) {
if (peer->afc[afi][safi]) {
/* Convert AFI, SAFI to values for packet. */
bgp_map_afi_safi_int2iana(afi, safi, &pkt_afi,
@ -1305,11 +1304,9 @@ void bgp_open_capability(struct stream *s, struct peer *peer)
* supporting RFC-5549 for
* Link-Local peering only
*/
if (CHECK_FLAG(peer->flags,
PEER_FLAG_CAPABILITY_ENHE)
if (CHECK_FLAG(peer->flags, PEER_FLAG_CAPABILITY_ENHE)
&& peer->su.sa.sa_family == AF_INET6
&& IN6_IS_ADDR_LINKLOCAL(
&peer->su.sin6.sin6_addr)
&& IN6_IS_ADDR_LINKLOCAL(&peer->su.sin6.sin6_addr)
&& afi == AFI_IP
&& (safi == SAFI_UNICAST
|| safi == SAFI_LABELED_UNICAST)) {
@ -1317,12 +1314,9 @@ void bgp_open_capability(struct stream *s, struct peer *peer)
*/
SET_FLAG(peer->cap, PEER_CAP_ENHE_ADV);
stream_putc(s, BGP_OPEN_OPT_CAP);
stream_putc(s,
CAPABILITY_CODE_ENHE_LEN
+ 2);
stream_putc(s, CAPABILITY_CODE_ENHE_LEN + 2);
stream_putc(s, CAPABILITY_CODE_ENHE);
stream_putc(s,
CAPABILITY_CODE_ENHE_LEN);
stream_putc(s, CAPABILITY_CODE_ENHE_LEN);
SET_FLAG(peer->af_cap[AFI_IP][safi],
PEER_CAP_ENHE_AF_ADV);
@ -1332,8 +1326,7 @@ void bgp_open_capability(struct stream *s, struct peer *peer)
if (CHECK_FLAG(peer->af_cap[afi][safi],
PEER_CAP_ENHE_AF_RCV))
SET_FLAG(
peer->af_cap[afi][safi],
SET_FLAG(peer->af_cap[afi][safi],
PEER_CAP_ENHE_AF_NEGO);
}
}
@ -1363,8 +1356,7 @@ void bgp_open_capability(struct stream *s, struct peer *peer)
stream_putl(s, local_as);
/* AddPath */
for (afi = AFI_IP; afi < AFI_MAX; afi++)
for (safi = SAFI_UNICAST; safi < SAFI_MAX; safi++)
FOREACH_AFI_SAFI (afi, safi) {
if (peer->afc[afi][safi]) {
afi_safi_count++;
@ -1373,11 +1365,11 @@ void bgp_open_capability(struct stream *s, struct peer *peer)
* configured */
if (CHECK_FLAG(peer->af_flags[afi][safi],
PEER_FLAG_ADDPATH_TX_ALL_PATHS)
|| CHECK_FLAG(
peer->af_flags[afi][safi],
|| CHECK_FLAG(peer->af_flags[afi][safi],
PEER_FLAG_ADDPATH_TX_BESTPATH_PER_AS))
adv_addpath_tx = 1;
}
}
SET_FLAG(peer->cap, PEER_CAP_ADDPATH_ADV);
stream_putc(s, BGP_OPEN_OPT_CAP);
@ -1385,8 +1377,7 @@ void bgp_open_capability(struct stream *s, struct peer *peer)
stream_putc(s, CAPABILITY_CODE_ADDPATH);
stream_putc(s, CAPABILITY_CODE_ADDPATH_LEN * afi_safi_count);
for (afi = AFI_IP; afi < AFI_MAX; afi++)
for (safi = SAFI_UNICAST; safi < SAFI_MAX; safi++)
FOREACH_AFI_SAFI (afi, safi) {
if (peer->afc[afi][safi]) {
/* Convert AFI, SAFI to values for packet. */
bgp_map_afi_safi_int2iana(afi, safi, &pkt_afi,
@ -1396,9 +1387,7 @@ void bgp_open_capability(struct stream *s, struct peer *peer)
stream_putc(s, pkt_safi);
if (adv_addpath_tx) {
stream_putc(s,
BGP_ADDPATH_RX
| BGP_ADDPATH_TX);
stream_putc(s, BGP_ADDPATH_RX | BGP_ADDPATH_TX);
SET_FLAG(peer->af_cap[afi][safi],
PEER_CAP_ADDPATH_AF_RX_ADV);
SET_FLAG(peer->af_cap[afi][safi],
@ -1411,20 +1400,20 @@ void bgp_open_capability(struct stream *s, struct peer *peer)
PEER_CAP_ADDPATH_AF_TX_ADV);
}
}
}
/* ORF capability. */
for (afi = AFI_IP; afi < AFI_MAX; afi++)
for (safi = SAFI_UNICAST; safi < SAFI_MAX; safi++)
FOREACH_AFI_SAFI (afi, safi) {
if (CHECK_FLAG(peer->af_flags[afi][safi],
PEER_FLAG_ORF_PREFIX_SM)
|| CHECK_FLAG(peer->af_flags[afi][safi],
PEER_FLAG_ORF_PREFIX_RM)) {
bgp_open_capability_orf(
s, peer, afi, safi,
bgp_open_capability_orf(s, peer, afi, safi,
CAPABILITY_CODE_ORF_OLD);
bgp_open_capability_orf(s, peer, afi, safi,
CAPABILITY_CODE_ORF);
}
}
/* Dynamic capability. */
if (CHECK_FLAG(peer->flags, PEER_FLAG_DYNAMIC_CAPABILITY)) {
@ -1497,23 +1486,22 @@ void bgp_open_capability(struct stream *s, struct peer *peer)
config
is present */
if (bgp_flag_check(peer->bgp, BGP_FLAG_GRACEFUL_RESTART)) {
for (afi = AFI_IP; afi < AFI_MAX; afi++)
for (safi = SAFI_UNICAST; safi < SAFI_MAX; safi++)
FOREACH_AFI_SAFI (afi, safi) {
if (peer->afc[afi][safi]) {
/* Convert AFI, SAFI to values for
* packet. */
bgp_map_afi_safi_int2iana(
afi, safi, &pkt_afi, &pkt_safi);
bgp_map_afi_safi_int2iana(afi, safi, &pkt_afi,
&pkt_safi);
stream_putw(s, pkt_afi);
stream_putc(s, pkt_safi);
if (bgp_flag_check(
peer->bgp,
if (bgp_flag_check(peer->bgp,
BGP_FLAG_GR_PRESERVE_FWD))
stream_putc(s, RESTART_F_BIT);
else
stream_putc(s, 0);
}
}
}
/* Total Graceful restart capability Len. */
len = stream_get_endp(s) - rcapp - 1;

View File

@ -204,8 +204,7 @@ static struct stream *bgp_write_packet(struct peer *peer)
if (peer->bgp && peer->bgp->main_peers_update_hold)
return NULL;
for (afi = AFI_IP; afi < AFI_MAX; afi++)
for (safi = SAFI_UNICAST; safi < SAFI_MAX; safi++) {
FOREACH_AFI_SAFI (afi, safi) {
paf = peer_af_find(peer, afi, safi);
if (!paf || !PAF_SUBGRP(paf))
continue;
@ -215,8 +214,7 @@ static struct stream *bgp_write_packet(struct peer *peer)
* the end of
* the list. Always try to push out WITHDRAWs first. */
if (!next_pkt || !next_pkt->buffer) {
next_pkt = subgroup_withdraw_packet(
PAF_SUBGRP(paf));
next_pkt = subgroup_withdraw_packet(PAF_SUBGRP(paf));
if (!next_pkt || !next_pkt->buffer)
subgroup_update_packet(PAF_SUBGRP(paf));
next_pkt = paf->next_pkt_to_send;
@ -234,20 +232,16 @@ static struct stream *bgp_write_packet(struct peer *peer)
* yet.
*/
if (!next_pkt || !next_pkt->buffer) {
if (CHECK_FLAG(peer->cap,
PEER_CAP_RESTART_RCV)) {
if (CHECK_FLAG(peer->cap, PEER_CAP_RESTART_RCV)) {
if (!(PAF_SUBGRP(paf))->t_coalesce
&& peer->afc_nego[afi][safi]
&& peer->synctime
&& !CHECK_FLAG(
peer->af_sflags[afi]
[safi],
&& !CHECK_FLAG(peer->af_sflags[afi][safi],
PEER_STATUS_EOR_SEND)) {
SET_FLAG(peer->af_sflags[afi]
[safi],
SET_FLAG(peer->af_sflags[afi][safi],
PEER_STATUS_EOR_SEND);
return bgp_update_packet_eor(
peer, afi, safi);
return bgp_update_packet_eor(peer, afi,
safi);
}
}
continue;
@ -282,8 +276,7 @@ static void bgp_write_proceed_actions(struct peer *peer)
return;
}
for (afi = AFI_IP; afi < AFI_MAX; afi++)
for (safi = SAFI_UNICAST; safi < SAFI_MAX; safi++) {
FOREACH_AFI_SAFI (afi, safi) {
paf = peer_af_find(peer, afi, safi);
if (!paf)
continue;
@ -293,8 +286,7 @@ static void bgp_write_proceed_actions(struct peer *peer)
next_pkt = paf->next_pkt_to_send;
if (next_pkt && next_pkt->buffer) {
BGP_WRITE_ON(peer->t_write, bgp_write,
peer->fd);
BGP_WRITE_ON(peer->t_write, bgp_write, peer->fd);
return;
}
@ -305,15 +297,13 @@ static void bgp_write_proceed_actions(struct peer *peer)
SUBGRP_PKTQ(subgrp)))
fullq_found = 1;
else if (subgroup_packets_to_build(subgrp)) {
BGP_WRITE_ON(peer->t_write, bgp_write,
peer->fd);
BGP_WRITE_ON(peer->t_write, bgp_write, peer->fd);
return;
}
/* No packets to send, see if EOR is pending */
if (CHECK_FLAG(peer->cap, PEER_CAP_RESTART_RCV)) {
if (!subgrp->t_coalesce
&& peer->afc_nego[afi][safi]
if (!subgrp->t_coalesce && peer->afc_nego[afi][safi]
&& peer->synctime
&& !CHECK_FLAG(peer->af_sflags[afi][safi],
PEER_STATUS_EOR_SEND)
@ -1300,8 +1290,7 @@ static void bgp_update_explicit_eors(struct peer *peer)
if (bgp_debug_neighbor_events(peer))
zlog_debug("Peer %s: Checking explicit EORs", peer->host);
for (afi = AFI_IP; afi < AFI_MAX; afi++)
for (safi = SAFI_UNICAST; safi < SAFI_MAX; safi++) {
FOREACH_AFI_SAFI (afi, safi) {
if (peer->afc_nego[afi][safi]
&& !CHECK_FLAG(peer->af_sflags[afi][safi],
PEER_STATUS_EOR_RECEIVED)) {

View File

@ -2056,11 +2056,9 @@ static void bgp_process_main_one(struct bgp *bgp, struct bgp_node *rn,
sizeof(bgp->update_delay_zebra_resume_time));
bgp->main_zebra_update_hold = 0;
for (afi = AFI_IP; afi < AFI_MAX; afi++)
for (safi = SAFI_UNICAST; safi < SAFI_MAX; safi++) {
FOREACH_AFI_SAFI (afi, safi) {
if (bgp_fibupd_safi(safi))
bgp_zebra_announce_table(bgp, afi,
safi);
bgp_zebra_announce_table(bgp, afi, safi);
}
bgp->main_peers_update_hold = 0;
@ -3434,8 +3432,7 @@ void bgp_announce_route_all(struct peer *peer)
afi_t afi;
safi_t safi;
for (afi = AFI_IP; afi < AFI_MAX; afi++)
for (safi = SAFI_UNICAST; safi < SAFI_MAX; safi++)
FOREACH_AFI_SAFI (afi, safi)
bgp_announce_route(peer, afi, safi);
}
@ -3718,8 +3715,7 @@ void bgp_clear_route_all(struct peer *peer)
afi_t afi;
safi_t safi;
for (afi = AFI_IP; afi < AFI_MAX; afi++)
for (safi = SAFI_UNICAST; safi < SAFI_MAX; safi++)
FOREACH_AFI_SAFI (afi, safi)
bgp_clear_route(peer, afi, safi);
#if ENABLE_BGP_VNC
@ -4624,28 +4620,26 @@ void bgp_static_add(struct bgp *bgp)
struct bgp_table *table;
struct bgp_static *bgp_static;
for (afi = AFI_IP; afi < AFI_MAX; afi++)
for (safi = SAFI_UNICAST; safi < SAFI_MAX; safi++)
FOREACH_AFI_SAFI (afi, safi)
for (rn = bgp_table_top(bgp->route[afi][safi]); rn;
rn = bgp_route_next(rn)) {
if (rn->info == NULL)
continue;
if ((safi == SAFI_MPLS_VPN)
|| (safi == SAFI_ENCAP)
if ((safi == SAFI_MPLS_VPN) || (safi == SAFI_ENCAP)
|| (safi == SAFI_EVPN)) {
table = rn->info;
for (rm = bgp_table_top(table); rm;
rm = bgp_route_next(rm)) {
bgp_static = rm->info;
bgp_static_update_safi(
bgp, &rm->p, bgp_static,
afi, safi);
bgp_static_update_safi(bgp, &rm->p,
bgp_static, afi,
safi);
}
} else {
bgp_static_update(bgp, &rn->p, rn->info,
afi, safi);
bgp_static_update(bgp, &rn->p, rn->info, afi,
safi);
}
}
}
@ -4661,15 +4655,13 @@ void bgp_static_delete(struct bgp *bgp)
struct bgp_table *table;
struct bgp_static *bgp_static;
for (afi = AFI_IP; afi < AFI_MAX; afi++)
for (safi = SAFI_UNICAST; safi < SAFI_MAX; safi++)
FOREACH_AFI_SAFI (afi, safi)
for (rn = bgp_table_top(bgp->route[afi][safi]); rn;
rn = bgp_route_next(rn)) {
if (rn->info == NULL)
continue;
if ((safi == SAFI_MPLS_VPN)
|| (safi == SAFI_ENCAP)
if ((safi == SAFI_MPLS_VPN) || (safi == SAFI_ENCAP)
|| (safi == SAFI_EVPN)) {
table = rn->info;
@ -4677,18 +4669,15 @@ void bgp_static_delete(struct bgp *bgp)
rm = bgp_route_next(rm)) {
bgp_static = rm->info;
bgp_static_withdraw_safi(
bgp, &rm->p, AFI_IP,
safi,
(struct prefix_rd *)&rn
->p);
bgp, &rm->p, AFI_IP, safi,
(struct prefix_rd *)&rn->p);
bgp_static_free(bgp_static);
rn->info = NULL;
bgp_unlock_node(rn);
}
} else {
bgp_static = rn->info;
bgp_static_withdraw(bgp, &rn->p, afi,
safi);
bgp_static_withdraw(bgp, &rn->p, afi, safi);
bgp_static_free(bgp_static);
rn->info = NULL;
bgp_unlock_node(rn);
@ -4707,32 +4696,30 @@ void bgp_static_redo_import_check(struct bgp *bgp)
/* Use this flag to force reprocessing of the route */
bgp_flag_set(bgp, BGP_FLAG_FORCE_STATIC_PROCESS);
for (afi = AFI_IP; afi < AFI_MAX; afi++)
for (safi = SAFI_UNICAST; safi < SAFI_MAX; safi++)
FOREACH_AFI_SAFI (afi, safi) {
for (rn = bgp_table_top(bgp->route[afi][safi]); rn;
rn = bgp_route_next(rn)) {
if (rn->info == NULL)
continue;
if ((safi == SAFI_MPLS_VPN)
|| (safi == SAFI_ENCAP)
if ((safi == SAFI_MPLS_VPN) || (safi == SAFI_ENCAP)
|| (safi == SAFI_EVPN)) {
table = rn->info;
for (rm = bgp_table_top(table); rm;
rm = bgp_route_next(rm)) {
bgp_static = rm->info;
bgp_static_update_safi(
bgp, &rm->p, bgp_static,
afi, safi);
bgp_static_update_safi(bgp, &rm->p,
bgp_static, afi,
safi);
}
} else {
bgp_static = rn->info;
bgp_static_update(bgp, &rn->p,
bgp_static, afi,
bgp_static_update(bgp, &rn->p, bgp_static, afi,
safi);
}
}
}
bgp_flag_unset(bgp, BGP_FLAG_FORCE_STATIC_PROCESS);
}
@ -4771,8 +4758,7 @@ void bgp_purge_static_redist_routes(struct bgp *bgp)
afi_t afi;
safi_t safi;
for (afi = AFI_IP; afi < AFI_MAX; afi++)
for (safi = SAFI_UNICAST; safi < SAFI_MAX; safi++)
FOREACH_AFI_SAFI (afi, safi)
bgp_purge_af_static_redist_routes(bgp, afi, safi);
}
@ -11350,10 +11336,8 @@ void bgp_route_init(void)
safi_t safi;
/* Init BGP distance table. */
for (afi = AFI_IP; afi < AFI_MAX; afi++)
for (safi = SAFI_UNICAST; safi < SAFI_MAX; safi++)
bgp_distance_table[afi][safi] =
bgp_table_init(afi, safi);
FOREACH_AFI_SAFI (afi, safi)
bgp_distance_table[afi][safi] = bgp_table_init(afi, safi);
/* IPv4 BGP commands. */
install_element(BGP_NODE, &bgp_table_map_cmd);
@ -11525,8 +11509,7 @@ void bgp_route_finish(void)
afi_t afi;
safi_t safi;
for (afi = AFI_IP; afi < AFI_MAX; afi++)
for (safi = SAFI_UNICAST; safi < SAFI_MAX; safi++) {
FOREACH_AFI_SAFI (afi, safi) {
bgp_table_unlock(bgp_distance_table[afi][safi]);
bgp_distance_table[afi][safi] = NULL;
}

View File

@ -2881,13 +2881,11 @@ static void bgp_route_map_update_peer_group(const char *rmap_name,
/* All the peers have been updated correctly already. This is
* just updating the placeholder data. No real update required.
*/
for (ALL_LIST_ELEMENTS(bgp->group, node, nnode, group))
for (afi = AFI_IP; afi < AFI_MAX; afi++)
for (safi = SAFI_UNICAST; safi < SAFI_MAX; safi++) {
for (ALL_LIST_ELEMENTS(bgp->group, node, nnode, group)) {
FOREACH_AFI_SAFI (afi, safi) {
filter = &group->conf->filter[afi][safi];
for (direct = RMAP_IN; direct < RMAP_MAX;
direct++) {
for (direct = RMAP_IN; direct < RMAP_MAX; direct++) {
if ((filter->map[direct].name)
&& (strcmp(rmap_name,
filter->map[direct].name)
@ -2896,11 +2894,11 @@ static void bgp_route_map_update_peer_group(const char *rmap_name,
}
if (filter->usmap.name
&& (strcmp(rmap_name, filter->usmap.name)
== 0))
&& (strcmp(rmap_name, filter->usmap.name) == 0))
filter->usmap.map = map;
}
}
}
/*
* Note that if an extreme number (tens of thousands) of route-maps are in use
@ -2930,13 +2928,11 @@ static void bgp_route_map_process_update(struct bgp *bgp, const char *rmap_name,
if (CHECK_FLAG(peer->sflags, PEER_STATUS_GROUP))
continue;
for (afi = AFI_IP; afi < AFI_MAX; afi++)
for (safi = SAFI_UNICAST; safi < SAFI_MAX; safi++) {
FOREACH_AFI_SAFI (afi, safi) {
/* process in/out/import/export/default-orig
* route-maps */
bgp_route_map_process_peer(rmap_name, map, peer,
afi, safi,
route_update);
bgp_route_map_process_peer(rmap_name, map, peer, afi,
safi, route_update);
}
}
@ -2947,15 +2943,13 @@ static void bgp_route_map_process_update(struct bgp *bgp, const char *rmap_name,
/* update peer-group config (template) */
bgp_route_map_update_peer_group(rmap_name, map, bgp);
for (afi = AFI_IP; afi < AFI_MAX; afi++)
for (safi = SAFI_UNICAST; safi < SAFI_MAX; safi++) {
FOREACH_AFI_SAFI (afi, safi) {
/* For table route-map updates. */
if (!bgp_fibupd_safi(safi))
continue;
if (bgp->table_map[afi][safi].name
&& (strcmp(rmap_name,
bgp->table_map[afi][safi].name)
&& (strcmp(rmap_name, bgp->table_map[afi][safi].name)
== 0)) {
bgp->table_map[afi][safi].map = map;
@ -2965,8 +2959,7 @@ static void bgp_route_map_process_update(struct bgp *bgp, const char *rmap_name,
"table map",
rmap_name);
if (route_update)
bgp_zebra_announce_table(bgp, afi,
safi);
bgp_zebra_announce_table(bgp, afi, safi);
}
/* For network route-map updates. */
@ -2974,14 +2967,12 @@ static void bgp_route_map_process_update(struct bgp *bgp, const char *rmap_name,
bn = bgp_route_next(bn))
if ((bgp_static = bn->info) != NULL) {
if (bgp_static->rmap.name
&& (strcmp(rmap_name,
bgp_static->rmap.name)
&& (strcmp(rmap_name, bgp_static->rmap.name)
== 0)) {
bgp_static->rmap.map = map;
if (route_update)
if (!bgp_static
->backdoor) {
if (!bgp_static->backdoor) {
if (bgp_debug_zebra(
&bn->p))
zlog_debug(
@ -2994,10 +2985,8 @@ static void bgp_route_map_process_update(struct bgp *bgp, const char *rmap_name,
buf,
INET6_ADDRSTRLEN));
bgp_static_update(
bgp,
&bn->p,
bgp_static,
afi,
bgp, &bn->p,
bgp_static, afi,
safi);
}
}

View File

@ -1654,9 +1654,7 @@ DEFUN (no_bgp_deterministic_med,
bestpath_per_as_used = 0;
for (ALL_LIST_ELEMENTS(bgp->peer, node, nnode, peer)) {
for (afi = AFI_IP; afi < AFI_MAX; afi++)
for (safi = SAFI_UNICAST; safi < SAFI_MAX;
safi++)
FOREACH_AFI_SAFI (afi, safi)
if (CHECK_FLAG(
peer->af_flags[afi][safi],
PEER_FLAG_ADDPATH_TX_BESTPATH_PER_AS)) {
@ -8403,26 +8401,19 @@ static void bgp_show_peer(struct vty *vty, struct peer *p, u_char use_json,
json_add = json_object_new_object();
for (afi = AFI_IP; afi < AFI_MAX; afi++)
for (safi = SAFI_UNICAST;
safi < SAFI_MAX; safi++) {
json_object *json_sub =
NULL;
FOREACH_AFI_SAFI (afi, safi) {
json_object *json_sub = NULL;
json_sub =
json_object_new_object();
print_store =
afi_safi_print(
afi,
safi);
print_store = afi_safi_print(
afi, safi);
if (CHECK_FLAG(
p->af_cap
[afi]
p->af_cap[afi]
[safi],
PEER_CAP_ADDPATH_AF_TX_ADV)
|| CHECK_FLAG(
p->af_cap
[afi]
p->af_cap[afi]
[safi],
PEER_CAP_ADDPATH_AF_TX_RCV)) {
if (CHECK_FLAG(
@ -8459,13 +8450,11 @@ static void bgp_show_peer(struct vty *vty, struct peer *p, u_char use_json,
}
if (CHECK_FLAG(
p->af_cap
[afi]
p->af_cap[afi]
[safi],
PEER_CAP_ADDPATH_AF_RX_ADV)
|| CHECK_FLAG(
p->af_cap
[afi]
p->af_cap[afi]
[safi],
PEER_CAP_ADDPATH_AF_RX_RCV)) {
if (CHECK_FLAG(
@ -8502,23 +8491,19 @@ static void bgp_show_peer(struct vty *vty, struct peer *p, u_char use_json,
}
if (CHECK_FLAG(
p->af_cap
[afi]
p->af_cap[afi]
[safi],
PEER_CAP_ADDPATH_AF_TX_ADV)
|| CHECK_FLAG(
p->af_cap
[afi]
p->af_cap[afi]
[safi],
PEER_CAP_ADDPATH_AF_TX_RCV)
|| CHECK_FLAG(
p->af_cap
[afi]
p->af_cap[afi]
[safi],
PEER_CAP_ADDPATH_AF_RX_ADV)
|| CHECK_FLAG(
p->af_cap
[afi]
p->af_cap[afi]
[safi],
PEER_CAP_ADDPATH_AF_RX_RCV))
json_object_object_add(
@ -8678,47 +8663,34 @@ static void bgp_show_peer(struct vty *vty, struct peer *p, u_char use_json,
json_object *json_multi = NULL;
json_multi = json_object_new_object();
for (afi = AFI_IP; afi < AFI_MAX; afi++) {
for (safi = SAFI_UNICAST;
safi < SAFI_MAX; safi++) {
FOREACH_AFI_SAFI (afi, safi) {
if (p->afc_adv[afi][safi]
|| p->afc_recv[afi][safi]) {
json_object
*json_exten =
NULL;
json_object *json_exten = NULL;
json_exten =
json_object_new_object();
if (p->afc_adv[afi]
[safi]
&& p->afc_recv
[afi]
[safi])
if (p->afc_adv[afi][safi]
&& p->afc_recv[afi][safi])
json_object_boolean_true_add(
json_exten,
"advertisedAndReceived");
else if (p->afc_adv
[afi]
[safi])
else if (p->afc_adv[afi][safi])
json_object_boolean_true_add(
json_exten,
"advertised");
else if (p->afc_recv
[afi]
[safi])
else if (p->afc_recv[afi][safi])
json_object_boolean_true_add(
json_exten,
"received");
json_object_object_add(
json_multi,
afi_safi_print(
afi,
afi_safi_print(afi,
safi),
json_exten);
}
}
}
json_object_object_add(
json_cap, "multiprotocolExtensions",
json_multi);
@ -8798,17 +8770,14 @@ static void bgp_show_peer(struct vty *vty, struct peer *p, u_char use_json,
"gracefulRestartRemoteTimerMsecs",
p->v_gr_restart * 1000);
for (afi = AFI_IP;
afi < AFI_MAX; afi++) {
for (safi = SAFI_UNICAST;
safi < SAFI_MAX;
safi++) {
FOREACH_AFI_SAFI (afi, safi) {
if (CHECK_FLAG(
p->af_cap
[afi]
[safi],
PEER_CAP_RESTART_AF_RCV)) {
json_object *json_sub =
json_object *
json_sub =
NULL;
json_sub =
json_object_new_object();
@ -8830,7 +8799,6 @@ static void bgp_show_peer(struct vty *vty, struct peer *p, u_char use_json,
json_sub);
}
}
}
if (!restart_af_count) {
json_object_string_add(
json_cap,
@ -8875,17 +8843,13 @@ static void bgp_show_peer(struct vty *vty, struct peer *p, u_char use_json,
PEER_CAP_ADDPATH_ADV)) {
vty_out(vty, " AddPath:\n");
for (afi = AFI_IP; afi < AFI_MAX; afi++)
for (safi = SAFI_UNICAST;
safi < SAFI_MAX; safi++) {
FOREACH_AFI_SAFI (afi, safi) {
if (CHECK_FLAG(
p->af_cap
[afi]
p->af_cap[afi]
[safi],
PEER_CAP_ADDPATH_AF_TX_ADV)
|| CHECK_FLAG(
p->af_cap
[afi]
p->af_cap[afi]
[safi],
PEER_CAP_ADDPATH_AF_TX_RCV)) {
vty_out(vty,
@ -8920,18 +8884,15 @@ static void bgp_show_peer(struct vty *vty, struct peer *p, u_char use_json,
? " and "
: "");
vty_out(vty,
"\n");
vty_out(vty, "\n");
}
if (CHECK_FLAG(
p->af_cap
[afi]
p->af_cap[afi]
[safi],
PEER_CAP_ADDPATH_AF_RX_ADV)
|| CHECK_FLAG(
p->af_cap
[afi]
p->af_cap[afi]
[safi],
PEER_CAP_ADDPATH_AF_RX_RCV)) {
vty_out(vty,
@ -8966,8 +8927,7 @@ static void bgp_show_peer(struct vty *vty, struct peer *p, u_char use_json,
? " and "
: "");
vty_out(vty,
"\n");
vty_out(vty, "\n");
}
}
}
@ -9065,22 +9025,17 @@ static void bgp_show_peer(struct vty *vty, struct peer *p, u_char use_json,
}
/* Multiprotocol Extensions */
for (afi = AFI_IP; afi < AFI_MAX; afi++)
for (safi = SAFI_UNICAST;
safi < SAFI_MAX; safi++)
FOREACH_AFI_SAFI (afi, safi)
if (p->afc_adv[afi][safi]
|| p->afc_recv[afi][safi]) {
vty_out(vty,
" Address Family %s:",
afi_safi_print(
afi,
afi_safi_print(afi,
safi));
if (p->afc_adv[afi]
[safi])
if (p->afc_adv[afi][safi])
vty_out(vty,
" advertised");
if (p->afc_recv[afi]
[safi])
if (p->afc_recv[afi][safi])
vty_out(vty,
" %sreceived",
p->afc_adv[afi]
@ -9150,11 +9105,7 @@ static void bgp_show_peer(struct vty *vty, struct peer *p, u_char use_json,
vty_out(vty,
" Address families by peer:\n ");
for (afi = AFI_IP;
afi < AFI_MAX; afi++)
for (safi = SAFI_UNICAST;
safi < SAFI_MAX;
safi++)
FOREACH_AFI_SAFI (afi, safi)
if (CHECK_FLAG(
p->af_cap
[afi]
@ -9201,39 +9152,28 @@ static void bgp_show_peer(struct vty *vty, struct peer *p, u_char use_json,
json_grace_recv = json_object_new_object();
if (p->status == Established) {
for (afi = AFI_IP; afi < AFI_MAX; afi++) {
for (safi = SAFI_UNICAST;
safi < SAFI_MAX; safi++) {
if (CHECK_FLAG(
p->af_sflags[afi]
[safi],
FOREACH_AFI_SAFI (afi, safi) {
if (CHECK_FLAG(p->af_sflags[afi][safi],
PEER_STATUS_EOR_SEND)) {
json_object_boolean_true_add(
json_grace_send,
afi_safi_print(
afi,
afi_safi_print(afi,
safi));
eor_send_af_count++;
}
}
}
for (afi = AFI_IP; afi < AFI_MAX; afi++) {
for (safi = SAFI_UNICAST;
safi < SAFI_MAX; safi++) {
FOREACH_AFI_SAFI (afi, safi) {
if (CHECK_FLAG(
p->af_sflags[afi]
[safi],
p->af_sflags[afi][safi],
PEER_STATUS_EOR_RECEIVED)) {
json_object_boolean_true_add(
json_grace_recv,
afi_safi_print(
afi,
afi_safi_print(afi,
safi));
eor_receive_af_count++;
}
}
}
}
json_object_object_add(json_grace, "endOfRibSend",
json_grace_send);
@ -9261,44 +9201,32 @@ static void bgp_show_peer(struct vty *vty, struct peer *p, u_char use_json,
vty_out(vty, " Graceful restart informations:\n");
if (p->status == Established) {
vty_out(vty, " End-of-RIB send: ");
for (afi = AFI_IP; afi < AFI_MAX; afi++) {
for (safi = SAFI_UNICAST;
safi < SAFI_MAX; safi++) {
if (CHECK_FLAG(
p->af_sflags[afi]
[safi],
FOREACH_AFI_SAFI (afi, safi) {
if (CHECK_FLAG(p->af_sflags[afi][safi],
PEER_STATUS_EOR_SEND)) {
vty_out(vty, "%s%s",
eor_send_af_count
? ", "
eor_send_af_count ? ", "
: "",
afi_safi_print(
afi,
afi_safi_print(afi,
safi));
eor_send_af_count++;
}
}
}
vty_out(vty, "\n");
vty_out(vty, " End-of-RIB received: ");
for (afi = AFI_IP; afi < AFI_MAX; afi++) {
for (safi = SAFI_UNICAST;
safi < SAFI_MAX; safi++) {
FOREACH_AFI_SAFI (afi, safi) {
if (CHECK_FLAG(
p->af_sflags[afi]
[safi],
p->af_sflags[afi][safi],
PEER_STATUS_EOR_RECEIVED)) {
vty_out(vty, "%s%s",
eor_receive_af_count
? ", "
: "",
afi_safi_print(
afi,
afi_safi_print(afi,
safi));
eor_receive_af_count++;
}
}
}
vty_out(vty, "\n");
}
@ -9424,8 +9352,7 @@ static void bgp_show_peer(struct vty *vty, struct peer *p, u_char use_json,
if (use_json)
json_hold = json_object_new_object();
for (afi = AFI_IP; afi < AFI_MAX; afi++)
for (safi = SAFI_UNICAST; safi < SAFI_MAX; safi++)
FOREACH_AFI_SAFI (afi, safi)
if (p->afc[afi][safi])
bgp_show_peer_afi(vty, p, afi, safi, use_json,
json_hold);
@ -10479,8 +10406,7 @@ static int bgp_show_one_peer_group(struct vty *vty, struct peer_group *group)
/* Display AFs configured. */
vty_out(vty, " Configured address-families:");
for (afi = AFI_IP; afi < AFI_MAX; afi++)
for (safi = SAFI_UNICAST; safi < SAFI_MAX; safi++) {
FOREACH_AFI_SAFI (afi, safi) {
if (conf->afc[afi][safi]) {
af_cfgd = 1;
vty_out(vty, " %s;", afi_safi_print(afi, safi));

View File

@ -1121,8 +1121,7 @@ struct peer *peer_new(struct bgp *bgp)
peer->password = NULL;
/* Set default flags. */
for (afi = AFI_IP; afi < AFI_MAX; afi++)
for (safi = SAFI_UNICAST; safi < SAFI_MAX; safi++) {
FOREACH_AFI_SAFI (afi, safi) {
if (!bgp_option_check(BGP_OPT_CONFIG_CISCO)) {
SET_FLAG(peer->af_flags[afi][safi],
PEER_FLAG_SEND_COMMUNITY);
@ -1214,15 +1213,12 @@ void peer_xfer_config(struct peer *peer_dst, struct peer *peer_src)
peer_dst->password =
XSTRDUP(MTYPE_PEER_PASSWORD, peer_src->password);
for (afi = AFI_IP; afi < AFI_MAX; afi++)
for (safi = SAFI_UNICAST; safi < SAFI_MAX; safi++) {
FOREACH_AFI_SAFI (afi, safi) {
peer_dst->afc[afi][safi] = peer_src->afc[afi][safi];
peer_dst->af_flags[afi][safi] =
peer_src->af_flags[afi][safi];
peer_dst->af_flags[afi][safi] = peer_src->af_flags[afi][safi];
peer_dst->allowas_in[afi][safi] =
peer_src->allowas_in[afi][safi];
peer_dst->weight[afi][safi] =
peer_src->weight[afi][safi];
peer_dst->weight[afi][safi] = peer_src->weight[afi][safi];
}
for (afidx = BGP_AF_START; afidx < BGP_AF_MAX; afidx++) {
@ -1425,12 +1421,10 @@ void bgp_recalculate_all_bestpaths(struct bgp *bgp)
afi_t afi;
safi_t safi;
for (afi = AFI_IP; afi < AFI_MAX; afi++) {
for (safi = SAFI_UNICAST; safi < SAFI_MAX; safi++) {
FOREACH_AFI_SAFI (afi, safi) {
bgp_recalculate_afi_safi_bestpaths(bgp, afi, safi);
}
}
}
/* Create new BGP peer. */
struct peer *peer_create(union sockunion *su, const char *conf_if,
@ -2180,8 +2174,7 @@ int peer_delete(struct peer *peer)
}
/* Free filter related memory. */
for (afi = AFI_IP; afi < AFI_MAX; afi++)
for (safi = SAFI_UNICAST; safi < SAFI_MAX; safi++) {
FOREACH_AFI_SAFI (afi, safi) {
filter = &peer->filter[afi][safi];
for (i = FILTER_IN; i < FILTER_MAX; i++) {
@ -2213,8 +2206,7 @@ int peer_delete(struct peer *peer)
}
if (filter->usmap.name) {
XFREE(MTYPE_BGP_FILTER_NAME,
filter->usmap.name);
XFREE(MTYPE_BGP_FILTER_NAME, filter->usmap.name);
filter->usmap.name = NULL;
}
@ -2622,14 +2614,12 @@ int peer_group_bind(struct bgp *bgp, union sockunion *su, struct peer *peer,
if (peer->conf_if && cap_enhe_preset)
peer_flag_set(peer, PEER_FLAG_CAPABILITY_ENHE);
for (afi = AFI_IP; afi < AFI_MAX; afi++)
for (safi = SAFI_UNICAST; safi < SAFI_MAX; safi++) {
FOREACH_AFI_SAFI (afi, safi) {
if (group->conf->afc[afi][safi]) {
peer->afc[afi][safi] = 1;
if (peer_af_find(peer, afi, safi)
|| peer_af_create(peer, afi,
safi)) {
|| peer_af_create(peer, afi, safi)) {
peer_group2peer_config_copy_af(
group, peer, afi, safi);
}
@ -2704,15 +2694,15 @@ int peer_group_bind(struct bgp *bgp, union sockunion *su, struct peer *peer,
/* If the peer-group is active for this afi/safi then activate
* for this peer */
for (afi = AFI_IP; afi < AFI_MAX; afi++)
for (safi = SAFI_UNICAST; safi < SAFI_MAX; safi++)
FOREACH_AFI_SAFI (afi, safi) {
if (group->conf->afc[afi][safi]) {
peer->afc[afi][safi] = 1;
peer_af_create(peer, afi, safi);
peer_group2peer_config_copy_af(
group, peer, afi, safi);
peer_group2peer_config_copy_af(group, peer, afi,
safi);
} else if (peer->afc[afi][safi])
peer_deactivate(peer, afi, safi);
}
SET_FLAG(peer->flags, PEER_FLAG_CONFIG_NODE);
@ -2734,8 +2724,7 @@ int peer_group_unbind(struct bgp *bgp, struct peer *peer,
if (group != peer->group)
return BGP_ERR_PEER_GROUP_MISMATCH;
for (afi = AFI_IP; afi < AFI_MAX; afi++)
for (safi = SAFI_UNICAST; safi < SAFI_MAX; safi++) {
FOREACH_AFI_SAFI (afi, safi) {
if (peer->afc[afi][safi]) {
peer->afc[afi][safi] = 0;
peer_af_flag_reset(peer, afi, safi);
@ -2846,8 +2835,7 @@ static struct bgp *bgp_create(as_t *as, const char *name,
bgp->group = list_new();
bgp->group->cmp = (int (*)(void *, void *))peer_group_cmp;
for (afi = AFI_IP; afi < AFI_MAX; afi++)
for (safi = SAFI_UNICAST; safi < SAFI_MAX; safi++) {
FOREACH_AFI_SAFI (afi, safi) {
bgp->route[afi][safi] = bgp_table_init(afi, safi);
bgp->aggregate[afi][safi] = bgp_table_init(afi, safi);
bgp->rib[afi][safi] = bgp_table_init(afi, safi);
@ -3206,13 +3194,12 @@ void bgp_free(struct bgp *bgp)
bgp->peerhash = NULL;
}
for (afi = AFI_IP; afi < AFI_MAX; afi++)
for (safi = SAFI_UNICAST; safi < SAFI_MAX; safi++) {
FOREACH_AFI_SAFI (afi, safi) {
/* Special handling for 2-level routing tables. */
if (safi == SAFI_MPLS_VPN || safi == SAFI_ENCAP
|| safi == SAFI_EVPN) {
for (rn = bgp_table_top(bgp->rib[afi][safi]);
rn; rn = bgp_route_next(rn)) {
for (rn = bgp_table_top(bgp->rib[afi][safi]); rn;
rn = bgp_route_next(rn)) {
table = (struct bgp_table *)rn->info;
bgp_table_finish(&table);
}
@ -3360,8 +3347,7 @@ struct peer *peer_create_bind_dynamic_neighbor(struct bgp *bgp,
* peer_group_bind as that is sub-optimal and does some stuff we don't
* want.
*/
for (afi = AFI_IP; afi < AFI_MAX; afi++)
for (safi = SAFI_UNICAST; safi < SAFI_MAX; safi++) {
FOREACH_AFI_SAFI (afi, safi) {
if (!group->conf->afc[afi][safi])
continue;
peer->afc[afi][safi] = 1;
@ -5237,13 +5223,11 @@ static void peer_distribute_update(struct access_list *access)
update_group_policy_update(bgp, BGP_POLICY_FILTER_LIST,
access->name, 0, 0);
for (ALL_LIST_ELEMENTS(bgp->peer, node, nnode, peer)) {
for (afi = AFI_IP; afi < AFI_MAX; afi++)
for (safi = SAFI_UNICAST; safi < SAFI_MAX;
safi++) {
FOREACH_AFI_SAFI (afi, safi) {
filter = &peer->filter[afi][safi];
for (direct = FILTER_IN;
direct < FILTER_MAX; direct++) {
for (direct = FILTER_IN; direct < FILTER_MAX;
direct++) {
if (filter->dlist[direct].name)
filter->dlist[direct]
.alist = access_list_lookup(
@ -5251,20 +5235,17 @@ static void peer_distribute_update(struct access_list *access)
filter->dlist[direct]
.name);
else
filter->dlist[direct]
.alist = NULL;
filter->dlist[direct].alist =
NULL;
}
}
}
for (ALL_LIST_ELEMENTS(bgp->group, node, nnode, group)) {
for (afi = AFI_IP; afi < AFI_MAX; afi++)
for (safi = SAFI_UNICAST; safi < SAFI_MAX;
safi++) {
filter =
&group->conf->filter[afi][safi];
FOREACH_AFI_SAFI (afi, safi) {
filter = &group->conf->filter[afi][safi];
for (direct = FILTER_IN;
direct < FILTER_MAX; direct++) {
for (direct = FILTER_IN; direct < FILTER_MAX;
direct++) {
if (filter->dlist[direct].name)
filter->dlist[direct]
.alist = access_list_lookup(
@ -5272,8 +5253,8 @@ static void peer_distribute_update(struct access_list *access)
filter->dlist[direct]
.name);
else
filter->dlist[direct]
.alist = NULL;
filter->dlist[direct].alist =
NULL;
}
}
}
@ -5408,13 +5389,11 @@ static void peer_prefix_list_update(struct prefix_list *plist)
plist ? prefix_list_name(plist) : NULL, 0, 0);
for (ALL_LIST_ELEMENTS(bgp->peer, node, nnode, peer)) {
for (afi = AFI_IP; afi < AFI_MAX; afi++)
for (safi = SAFI_UNICAST; safi < SAFI_MAX;
safi++) {
FOREACH_AFI_SAFI (afi, safi) {
filter = &peer->filter[afi][safi];
for (direct = FILTER_IN;
direct < FILTER_MAX; direct++) {
for (direct = FILTER_IN; direct < FILTER_MAX;
direct++) {
if (filter->plist[direct].name)
filter->plist[direct]
.plist = prefix_list_lookup(
@ -5422,20 +5401,17 @@ static void peer_prefix_list_update(struct prefix_list *plist)
filter->plist[direct]
.name);
else
filter->plist[direct]
.plist = NULL;
filter->plist[direct].plist =
NULL;
}
}
}
for (ALL_LIST_ELEMENTS(bgp->group, node, nnode, group)) {
for (afi = AFI_IP; afi < AFI_MAX; afi++)
for (safi = SAFI_UNICAST; safi < SAFI_MAX;
safi++) {
filter =
&group->conf->filter[afi][safi];
FOREACH_AFI_SAFI (afi, safi) {
filter = &group->conf->filter[afi][safi];
for (direct = FILTER_IN;
direct < FILTER_MAX; direct++) {
for (direct = FILTER_IN; direct < FILTER_MAX;
direct++) {
if (filter->plist[direct].name)
filter->plist[direct]
.plist = prefix_list_lookup(
@ -5443,8 +5419,8 @@ static void peer_prefix_list_update(struct prefix_list *plist)
filter->plist[direct]
.name);
else
filter->plist[direct]
.plist = NULL;
filter->plist[direct].plist =
NULL;
}
}
}
@ -5565,41 +5541,36 @@ static void peer_aslist_update(const char *aslist_name)
aslist_name, 0, 0);
for (ALL_LIST_ELEMENTS(bgp->peer, node, nnode, peer)) {
for (afi = AFI_IP; afi < AFI_MAX; afi++)
for (safi = SAFI_UNICAST; safi < SAFI_MAX;
safi++) {
FOREACH_AFI_SAFI (afi, safi) {
filter = &peer->filter[afi][safi];
for (direct = FILTER_IN;
direct < FILTER_MAX; direct++) {
for (direct = FILTER_IN; direct < FILTER_MAX;
direct++) {
if (filter->aslist[direct].name)
filter->aslist[direct]
.aslist = as_list_lookup(
filter->aslist[direct]
.name);
else
filter->aslist[direct]
.aslist = NULL;
filter->aslist[direct].aslist =
NULL;
}
}
}
for (ALL_LIST_ELEMENTS(bgp->group, node, nnode, group)) {
for (afi = AFI_IP; afi < AFI_MAX; afi++)
for (safi = SAFI_UNICAST; safi < SAFI_MAX;
safi++) {
filter =
&group->conf->filter[afi][safi];
FOREACH_AFI_SAFI (afi, safi) {
filter = &group->conf->filter[afi][safi];
for (direct = FILTER_IN;
direct < FILTER_MAX; direct++) {
for (direct = FILTER_IN; direct < FILTER_MAX;
direct++) {
if (filter->aslist[direct].name)
filter->aslist[direct]
.aslist = as_list_lookup(
filter->aslist[direct]
.name);
else
filter->aslist[direct]
.aslist = NULL;
filter->aslist[direct].aslist =
NULL;
}
}
}