X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=bgpd%2Fbgp_advertise.c;h=208a2947ef1ca5cf14bc41ac4a57f5fb579d9743;hb=86afd5292f1769c6c1c1db7a1e65f09fed27b87d;hp=840cc35751f0965c7a1f441f898ca377c2d286ad;hpb=461d84899a2fa0df930182bfc5b21777d7e1113d;p=mirror_frr.git diff --git a/bgpd/bgp_advertise.c b/bgpd/bgp_advertise.c index 840cc3575..208a2947e 100644 --- a/bgpd/bgp_advertise.c +++ b/bgpd/bgp_advertise.c @@ -71,7 +71,7 @@ unsigned int baa_hash_key(void *p) return attrhash_key_make(baa->attr); } -int baa_hash_cmp(const void *p1, const void *p2) +bool baa_hash_cmp(const void *p1, const void *p2) { const struct bgp_advertise_attr *baa1 = p1; const struct bgp_advertise_attr *baa2 = p2; @@ -90,9 +90,9 @@ struct bgp_advertise *bgp_advertise_new(void) void bgp_advertise_free(struct bgp_advertise *adv) { - if (adv->binfo) - bgp_info_unlock( - adv->binfo); /* bgp_advertise bgp_info reference */ + if (adv->pathi) + /* bgp_advertise bgp_path_info reference */ + bgp_path_info_unlock(adv->pathi); XFREE(MTYPE_BGP_ADVERTISE, adv); } @@ -146,7 +146,7 @@ void bgp_advertise_unintern(struct hash *hash, struct bgp_advertise_attr *baa) } int bgp_adj_out_lookup(struct peer *peer, struct bgp_node *rn, - u_int32_t addpath_tx_id) + uint32_t addpath_tx_id) { struct bgp_adj_out *adj; struct peer_af *paf; @@ -154,7 +154,7 @@ int bgp_adj_out_lookup(struct peer *peer, struct bgp_node *rn, safi_t safi; int addpath_capable; - for (adj = rn->adj_out; adj; adj = adj->next) + RB_FOREACH (adj, bgp_adj_out_rb, &rn->adj_out) SUBGRP_FOREACH_PEER (adj->subgroup, paf) if (paf->peer == peer) { afi = SUBGRP_AFI(adj->subgroup); @@ -179,7 +179,7 @@ int bgp_adj_out_lookup(struct peer *peer, struct bgp_node *rn, void bgp_adj_in_set(struct bgp_node *rn, struct peer *peer, struct attr *attr, - u_int32_t addpath_id) + uint32_t addpath_id) { struct bgp_adj_in *adj; @@ -209,7 +209,7 @@ void bgp_adj_in_remove(struct bgp_node *rn, struct bgp_adj_in *bai) } int bgp_adj_in_unset(struct bgp_node *rn, struct peer *peer, - u_int32_t addpath_id) + uint32_t addpath_id) { struct bgp_adj_in *adj; struct bgp_adj_in *adj_next; @@ -246,8 +246,6 @@ void bgp_sync_init(struct peer *peer) 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, - "BGP Sync Hash"); } } @@ -260,9 +258,5 @@ void bgp_sync_delete(struct peer *peer) if (peer->sync[afi][safi]) XFREE(MTYPE_BGP_SYNCHRONISE, peer->sync[afi][safi]); peer->sync[afi][safi] = NULL; - - if (peer->hash[afi][safi]) - hash_free(peer->hash[afi][safi]); - peer->hash[afi][safi] = NULL; } }