summaryrefslogtreecommitdiff
path: root/bgpd/bgp_updgrp.h
diff options
context:
space:
mode:
Diffstat (limited to 'bgpd/bgp_updgrp.h')
-rw-r--r--bgpd/bgp_updgrp.h28
1 files changed, 21 insertions, 7 deletions
diff --git a/bgpd/bgp_updgrp.h b/bgpd/bgp_updgrp.h
index b94519ef00..aab2458b30 100644
--- a/bgpd/bgp_updgrp.h
+++ b/bgpd/bgp_updgrp.h
@@ -528,9 +528,14 @@ static inline void
update_group_adjust_peer_afs (struct peer *peer)
{
struct peer_af *paf;
- enum bgp_af_index afi;
+ int afidx;
- PEERAF_FOREACH (peer, paf, afi) update_group_adjust_peer (paf);
+ for (afidx = BGP_AF_START; afidx < BGP_AF_MAX; afidx++)
+ {
+ paf = peer->peer_af_array[afidx];
+ if (paf != NULL)
+ update_group_adjust_peer (paf);
+ }
}
/*
@@ -542,10 +547,14 @@ static inline void
update_group_remove_peer_afs (struct peer *peer)
{
struct peer_af *paf;
- enum bgp_af_index afi;
+ int afidx;
- PEERAF_FOREACH (peer, paf, afi)
- update_subgroup_remove_peer (PAF_SUBGRP (paf), paf);
+ for (afidx = BGP_AF_START; afidx < BGP_AF_MAX; afidx++)
+ {
+ paf = peer->peer_af_array[afidx];
+ if (paf != NULL)
+ update_subgroup_remove_peer (PAF_SUBGRP (paf), paf);
+ }
}
/*
@@ -592,9 +601,14 @@ static inline void
bgp_announce_peer (struct peer *peer)
{
struct peer_af *paf;
- enum bgp_af_index af;
+ int afidx;
- PEERAF_FOREACH (peer, paf, af) subgroup_announce_all (PAF_SUBGRP (paf));
+ for (afidx = BGP_AF_START; afidx < BGP_AF_MAX; afidx++)
+ {
+ paf = peer->peer_af_array[afidx];
+ if (paf != NULL)
+ subgroup_announce_all (PAF_SUBGRP (paf));
+ }
}
/**