diff options
| author | Donald Sharp <sharpd@nvidia.com> | 2023-09-08 12:02:05 -0400 | 
|---|---|---|
| committer | Donald Sharp <sharpd@nvidia.com> | 2023-09-10 08:31:25 -0400 | 
| commit | 0c3a70c64430448c43fe12bf0ac044488352697c (patch) | |
| tree | a7fd805ffc7837e50380258b639f0a921b5d79e2 /bgpd/bgp_updgrp.c | |
| parent | c50a82c39b20354171a0cf43ab2f99f64389e225 (diff) | |
bgpd: Move the peer->su to connection->su
The sockunion is per connection.  So let's move it over.
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
Diffstat (limited to 'bgpd/bgp_updgrp.c')
| -rw-r--r-- | bgpd/bgp_updgrp.c | 14 | 
1 files changed, 13 insertions, 1 deletions
diff --git a/bgpd/bgp_updgrp.c b/bgpd/bgp_updgrp.c index 77192b42b2..e47ea8aa8a 100644 --- a/bgpd/bgp_updgrp.c +++ b/bgpd/bgp_updgrp.c @@ -279,6 +279,8 @@ static void *updgrp_hash_alloc(void *p)  	updgrp = XCALLOC(MTYPE_BGP_UPDGRP, sizeof(struct update_group));  	memcpy(updgrp, in, sizeof(struct update_group));  	updgrp->conf = XCALLOC(MTYPE_BGP_PEER, sizeof(struct peer)); +	updgrp->conf->connection = XCALLOC(MTYPE_BGP_PEER_CONNECTION, +					   sizeof(struct peer_connection));  	conf_copy(updgrp->conf, in->conf, in->afi, in->safi);  	return updgrp;  } @@ -634,7 +636,7 @@ static bool updgrp_hash_cmp(const void *p1, const void *p2)  	if ((CHECK_FLAG(pe1->flags, PEER_FLAG_LONESOUL) ||  	     CHECK_FLAG(pe1->af_cap[afi][safi], PEER_CAP_ORF_PREFIX_SM_RCV)) && -	    !sockunion_same(&pe1->su, &pe2->su)) +	    !sockunion_same(&pe1->connection->su, &pe2->connection->su))  		return false;  	return true; @@ -987,13 +989,18 @@ static struct update_group *update_group_find(struct peer_af *paf)  	struct update_group *updgrp;  	struct update_group tmp;  	struct peer tmp_conf; +	struct peer_connection tmp_connection;  	if (!peer_established((PAF_PEER(paf))->connection))  		return NULL;  	memset(&tmp, 0, sizeof(tmp));  	memset(&tmp_conf, 0, sizeof(tmp_conf)); +	memset(&tmp_connection, 0, sizeof(struct peer_connection)); +  	tmp.conf = &tmp_conf; +	tmp_conf.connection = &tmp_connection; +  	peer2_updgrp_copy(&tmp, paf);  	updgrp = hash_lookup(paf->peer->bgp->update_groups[paf->afid], &tmp); @@ -1006,10 +1013,14 @@ static struct update_group *update_group_create(struct peer_af *paf)  	struct update_group *updgrp;  	struct update_group tmp;  	struct peer tmp_conf; +	struct peer_connection tmp_connection;  	memset(&tmp, 0, sizeof(tmp));  	memset(&tmp_conf, 0, sizeof(tmp_conf)); +	memset(&tmp_connection, 0, sizeof(tmp_connection)); +  	tmp.conf = &tmp_conf; +	tmp_conf.connection = &tmp_connection;  	peer2_updgrp_copy(&tmp, paf);  	updgrp = hash_get(paf->peer->bgp->update_groups[paf->afid], &tmp, @@ -1039,6 +1050,7 @@ static void update_group_delete(struct update_group *updgrp)  	XFREE(MTYPE_BGP_PEER_IFNAME, updgrp->conf->ifname); +	XFREE(MTYPE_BGP_PEER_CONNECTION, updgrp->conf->connection);  	XFREE(MTYPE_BGP_PEER, updgrp->conf);  	XFREE(MTYPE_BGP_UPDGRP, updgrp);  }  | 
