diff options
Diffstat (limited to 'bgpd/bgp_route.c')
-rw-r--r-- | bgpd/bgp_route.c | 21 |
1 files changed, 7 insertions, 14 deletions
diff --git a/bgpd/bgp_route.c b/bgpd/bgp_route.c index aab85eb3..87d305cb 100644 --- a/bgpd/bgp_route.c +++ b/bgpd/bgp_route.c @@ -620,10 +620,7 @@ bgp_announce_check (struct bgp_info *ri, struct peer *peer, struct prefix *p, if (transparent || reflect || (CHECK_FLAG (peer->af_flags[afi][safi], PEER_FLAG_NEXTHOP_UNCHANGED) && ((p->family == AF_INET && attr->nexthop.s_addr) -#ifdef HAVE_IPV6 - || (p->family == AF_INET6 && ri->peer != bgp->peer_self) -#endif /* HAVE_IPV6 */ - ))) + || (p->family == AF_INET6 && ri->peer != bgp->peer_self)))) { /* NEXT-HOP Unchanged. */ } @@ -1780,7 +1777,6 @@ bgp_static_update (struct bgp *bgp, struct prefix *p, struct bgp_info *new; struct bgp_info info; struct attr attr; - struct attr attr_tmp; struct attr *attr_new; int ret; @@ -1797,26 +1793,23 @@ bgp_static_update (struct bgp *bgp, struct prefix *p, /* Apply route-map. */ if (bgp_static->rmap.name) { - attr_tmp = attr; info.peer = bgp->peer_self; - info.attr = &attr_tmp; + info.attr = &attr; ret = route_map_apply (bgp_static->rmap.map, p, RMAP_BGP, &info); - if (ret == RMAP_DENYMATCH) { /* Free uninterned attribute. */ - bgp_attr_flush (&attr_tmp); + bgp_attr_flush (&attr); /* Unintern original. */ aspath_unintern (attr.aspath); bgp_static_withdraw (bgp, p, afi, safi); return; } - attr_new = bgp_attr_intern (&attr_tmp); } - else - attr_new = bgp_attr_intern (&attr); + + attr_new = bgp_attr_intern (&attr); for (ri = rn->info; ri; ri = ri->next) if (ri->peer == bgp->peer_self && ri->type == ZEBRA_ROUTE_BGP @@ -2866,7 +2859,7 @@ bgp_aggregate_increment (struct bgp *bgp, struct prefix *p, if ((aggregate = rn->info) != NULL && rn->p.prefixlen < p->prefixlen) { bgp_aggregate_delete (bgp, &rn->p, afi, safi, aggregate); - bgp_aggregate_route (bgp, &rn->p, ri, afi, safi, NULL, aggregate); + bgp_aggregate_route (bgp, &rn->p, ri, safi, safi, NULL, aggregate); } bgp_unlock_node (child); } @@ -2893,7 +2886,7 @@ bgp_aggregate_decrement (struct bgp *bgp, struct prefix *p, if ((aggregate = rn->info) != NULL && rn->p.prefixlen < p->prefixlen) { bgp_aggregate_delete (bgp, &rn->p, afi, safi, aggregate); - bgp_aggregate_route (bgp, &rn->p, NULL, afi, safi, del, aggregate); + bgp_aggregate_route (bgp, &rn->p, NULL, safi, safi, del, aggregate); } bgp_unlock_node (child); } |