[MERGED] osmo-bsc[master]: cosmetic: Hide all accesses to conn->bts behind conn_get_bts()

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.

Harald Welte gerrit-no-reply at lists.osmocom.org
Fri Dec 22 23:43:58 UTC 2017


Harald Welte has submitted this change and it was merged.

Change subject: cosmetic: Hide all accesses to conn->bts behind conn_get_bts()
......................................................................


cosmetic: Hide all accesses to conn->bts behind conn_get_bts()

This is a new inline function that hides all accesses to conn->bts.

A follow-up patch will then point this to conn->lchan->ts->trx->bts
to get rid of the bts field.

Change-Id: Ib6cf7097ced34eebe80441c29ab1534f21956a33
---
M include/osmocom/bsc/gsm_data.h
M src/libbsc/bsc_api.c
M src/libbsc/bsc_vty.c
M src/osmo-bsc/osmo_bsc_api.c
M src/osmo-bsc/osmo_bsc_audio.c
M src/osmo-bsc/osmo_bsc_bssap.c
M src/osmo-bsc/osmo_bsc_filter.c
M src/osmo-bsc/osmo_bsc_sigtran.c
8 files changed, 29 insertions(+), 22 deletions(-)

Approvals:
  Harald Welte: Looks good to me, approved
  Jenkins Builder: Verified



diff --git a/include/osmocom/bsc/gsm_data.h b/include/osmocom/bsc/gsm_data.h
index 3cc3794..45fbcd2 100644
--- a/include/osmocom/bsc/gsm_data.h
+++ b/include/osmocom/bsc/gsm_data.h
@@ -98,6 +98,10 @@
 	struct gsm_classmark classmark;
 };
 
+static inline struct gsm_bts *conn_get_bts(struct gsm_subscriber_connection *conn) {
+	return conn->bts;
+}
+
 
 #include "gsm_data_shared.h"
 
diff --git a/src/libbsc/bsc_api.c b/src/libbsc/bsc_api.c
index 9ec51af..bd55dfc 100644
--- a/src/libbsc/bsc_api.c
+++ b/src/libbsc/bsc_api.c
@@ -214,7 +214,7 @@
 
 	chan_type = full_rate ? GSM_LCHAN_TCH_F : GSM_LCHAN_TCH_H;
 
-	new_lchan = lchan_alloc(conn->bts, chan_type, 0);
+	new_lchan = lchan_alloc(conn_get_bts(conn), chan_type, 0);
 
 	if (!new_lchan) {
 		LOGP(DMSC, LOGL_NOTICE, "No free channel.\n");
@@ -451,7 +451,7 @@
 	conn->lchan = conn->secondary_lchan;
 	conn->secondary_lchan = NULL;
 
-	if (is_ipaccess_bts(conn->bts) && conn->lchan->tch_mode != GSM48_CMODE_SIGN)
+	if (is_ipaccess_bts(conn_get_bts(conn)) && conn->lchan->tch_mode != GSM48_CMODE_SIGN)
 		rsl_ipacc_crcx(conn->lchan);
 
 	api->assign_compl(conn, gh->data[0],
diff --git a/src/libbsc/bsc_vty.c b/src/libbsc/bsc_vty.c
index 7612eda..6d01109 100644
--- a/src/libbsc/bsc_vty.c
+++ b/src/libbsc/bsc_vty.c
@@ -1378,7 +1378,7 @@
 
 	/* Find the connection/lchan that we want to handover */
 	llist_for_each_entry(conn, &net->subscr_conns, entry) {
-		if (conn->bts->nr == bts_nr &&
+		if (conn_get_bts(conn)->nr == bts_nr &&
 		    conn->lchan->ts->trx->nr == trx_nr &&
 		    conn->lchan->ts->nr == ts_nr && conn->lchan->nr == ss_nr) {
 			vty_out(vty, "starting handover for lchan %s...%s",
diff --git a/src/osmo-bsc/osmo_bsc_api.c b/src/osmo-bsc/osmo_bsc_api.c
index a2a8630..1caaeee 100644
--- a/src/osmo-bsc/osmo_bsc_api.c
+++ b/src/osmo-bsc/osmo_bsc_api.c
@@ -115,7 +115,7 @@
 	req.black_list = NULL;
 	req.access_lists = bsc_access_lists();
 	req.local_lst_name = msc->acc_lst_name;
-	req.global_lst_name = conn->bts->network->bsc_data->acc_lst_name;
+	req.global_lst_name = conn_get_bts(conn)->network->bsc_data->acc_lst_name;
 	req.bsc_nr = 0;
 
 	rc = bsc_msg_filter_initial(gh, msgb_l3len(msg), &req,
@@ -136,7 +136,7 @@
 	req.black_list = NULL;
 	req.access_lists = bsc_access_lists();
 	req.local_lst_name = conn->sccp_con->msc->acc_lst_name;
-	req.global_lst_name = conn->bts->network->bsc_data->acc_lst_name;
+	req.global_lst_name = conn_get_bts(conn)->network->bsc_data->acc_lst_name;
 	req.bsc_nr = 0;
 
 	rc = bsc_msg_filter_data(gh, msgb_l3len(msg), &req,
@@ -228,7 +228,7 @@
 	if (!msc) {
 		LOGP(DMSC, LOGL_ERROR, "Failed to find a MSC for a connection.\n");
 		bsc_send_ussd_no_srv(conn, msg,
-				     conn->bts->network->bsc_data->ussd_no_msc_txt);
+				     conn_get_bts(conn)->network->bsc_data->ussd_no_msc_txt);
 		return -1;
 	}
 
@@ -287,8 +287,8 @@
 
 	network_code = get_network_code_for_msc(conn->sccp_con->msc);
 	country_code = get_country_code_for_msc(conn->sccp_con->msc);
-	lac = get_lac_for_msc(conn->sccp_con->msc, conn->bts);
-	ci = get_ci_for_msc(conn->sccp_con->msc, conn->bts);
+	lac = get_lac_for_msc(conn->sccp_con->msc, conn_get_bts(conn));
+	ci = get_ci_for_msc(conn->sccp_con->msc, conn_get_bts(conn));
 
 	bsc_scan_bts_msg(conn, msg);
 
@@ -383,7 +383,7 @@
 	/*
 	 * Check if the connection should be moved...
 	 */
-	llist_for_each_entry(msc, &conn->bts->network->bsc_data->mscs, entry) {
+	llist_for_each_entry(msc, &conn_get_bts(conn)->network->bsc_data->mscs, entry) {
 		if (msc->type != MSC_CON_TYPE_LOCAL)
 			continue;
 		if (!msc->local_pref)
@@ -435,7 +435,7 @@
 	struct msgb *resp;
 	return_when_not_connected(conn);
 
-	if (is_ipaccess_bts(conn->bts) && conn->sccp_con->user_plane.rtp_ip) {
+	if (is_ipaccess_bts(conn_get_bts(conn)) && conn->sccp_con->user_plane.rtp_ip) {
 		/* NOTE: In a network that makes use of an IPA base station
 		 * and AoIP, we have to wait until the BTS reports its RTP
 		 * IP/Port combination back to BSC via RSL. Unfortunately, the
diff --git a/src/osmo-bsc/osmo_bsc_audio.c b/src/osmo-bsc/osmo_bsc_audio.c
index 82367f0..433dc6c 100644
--- a/src/osmo-bsc/osmo_bsc_audio.c
+++ b/src/osmo-bsc/osmo_bsc_audio.c
@@ -85,7 +85,7 @@
 			 * connection info */
 			LOGP(DMSC, LOGL_INFO,"RTP connection handover initiated...\n");
 			mgcp_handover(con->sccp_con->user_plane.mgcp_ctx, con->ho_lchan);
-		} else if (is_ipaccess_bts(con->bts) && con->sccp_con->user_plane.rtp_ip) {
+		} else if (is_ipaccess_bts(conn_get_bts(con)) && con->sccp_con->user_plane.rtp_ip) {
 			/* NOTE: This is only relevant on AoIP networks with
 			 * IPA based base stations. See also osmo_bsc_api.c,
 			 * function bsc_assign_compl() */
diff --git a/src/osmo-bsc/osmo_bsc_bssap.c b/src/osmo-bsc/osmo_bsc_bssap.c
index 5a4031c..45861cc 100644
--- a/src/osmo-bsc/osmo_bsc_bssap.c
+++ b/src/osmo-bsc/osmo_bsc_bssap.c
@@ -436,7 +436,7 @@
 		goto reject;
 	}
 
-	network = conn->conn->bts->network;
+	network = conn_get_bts(conn->conn)->network;
 	data = TLVP_VAL(&tp, GSM0808_IE_ENCRYPTION_INFORMATION);
 	enc_bits_msc = data[0];
 	enc_key = &data[1];
diff --git a/src/osmo-bsc/osmo_bsc_filter.c b/src/osmo-bsc/osmo_bsc_filter.c
index 17dddf8..56c0a9c 100644
--- a/src/osmo-bsc/osmo_bsc_filter.c
+++ b/src/osmo-bsc/osmo_bsc_filter.c
@@ -35,19 +35,20 @@
 	struct gsm48_loc_upd_req *lu;
 	struct gsm48_loc_area_id lai;
 	struct gsm_network *net;
+	struct gsm_bts *bts = conn_get_bts(conn);
 
 	if (msgb_l3len(msg) < sizeof(*gh) + sizeof(*lu)) {
 		LOGP(DMSC, LOGL_ERROR, "LU too small to look at: %u\n", msgb_l3len(msg));
 		return;
 	}
 
-	net = conn->bts->network;
+	net = bts->network;
 
 	gh = msgb_l3(msg);
 	lu = (struct gsm48_loc_upd_req *) gh->data;
 
 	gsm48_generate_lai(&lai, net->country_code, net->network_code,
-			   conn->bts->location_area_code);
+			   bts->location_area_code);
 
 	if (memcmp(&lai, &lu->lai, sizeof(lai)) != 0) {
 		LOGP(DMSC, LOGL_DEBUG, "Marking con for welcome USSD.\n");
@@ -105,7 +106,7 @@
 		return -1;
 	}
 
-	paging_request_stop(&conn->network->bts_list, conn->bts, subscr, conn,
+	paging_request_stop(&conn->network->bts_list, conn_get_bts(conn), subscr, conn,
 			    msg);
 	bsc_subscr_put(subscr);
 	return 0;
@@ -136,7 +137,7 @@
 	struct bsc_subscr *subscr;
 	int is_emerg = 0;
 
-	bsc = conn->bts->network->bsc_data;
+	bsc = conn->network->bsc_data;
 
 	if (msgb_l3len(msg) < sizeof(*gh)) {
 		LOGP(DMSC, LOGL_ERROR, "There is no GSM48 header here.\n");
@@ -185,7 +186,7 @@
 		return NULL;
 	}
 
-	pag_msc = paging_get_msc(conn->bts, subscr);
+	pag_msc = paging_get_msc(conn_get_bts(conn), subscr);
 	bsc_subscr_put(subscr);
 
 	llist_for_each_entry(msc, &bsc->mscs, entry) {
@@ -260,7 +261,7 @@
 {
 	struct tlv_parsed tp;
 	int parse_res;
-	struct gsm_bts *bts = conn->bts;
+	struct gsm_bts *bts = conn_get_bts(conn);
 	int tzunits;
 	uint8_t tzbsd = 0;
 	uint8_t dst = 0;
@@ -337,6 +338,7 @@
 int bsc_scan_msc_msg(struct gsm_subscriber_connection *conn, struct msgb *msg)
 {
 	struct bsc_msc_data *msc;
+	struct gsm_bts *bts = conn_get_bts(conn);
 	struct gsm_network *net;
 	struct gsm48_loc_area_id *lai;
 	struct gsm48_hdr *gh;
@@ -357,7 +359,7 @@
 		return 0;
 
 	mtype = gsm48_hdr_msg_type(gh);
-	net = conn->bts->network;
+	net = bts->network;
 	msc = conn->sccp_con->msc;
 
 	if (mtype == GSM48_MT_MM_LOC_UPD_ACCEPT) {
@@ -367,7 +369,7 @@
 				lai = (struct gsm48_loc_area_id *) &gh->data[0];
 				gsm48_generate_lai(lai, net->country_code,
 						   net->network_code,
-						   conn->bts->location_area_code);
+						   bts->location_area_code);
 			}
 		}
 
diff --git a/src/osmo-bsc/osmo_bsc_sigtran.c b/src/osmo-bsc/osmo_bsc_sigtran.c
index 67f8703..19a36da 100644
--- a/src/osmo-bsc/osmo_bsc_sigtran.c
+++ b/src/osmo-bsc/osmo_bsc_sigtran.c
@@ -244,6 +244,7 @@
 {
 	struct osmo_ss7_instance *ss7;
 	struct osmo_bsc_sccp_con *bsc_con;
+	struct gsm_bts *bts = conn_get_bts(conn);
 	int conn_id;
 
 	OSMO_ASSERT(conn);
@@ -259,12 +260,12 @@
 		return BSC_CON_REJECT_NO_LINK;
 	}
 
-	if (!bsc_grace_allow_new_connection(conn->bts->network, conn->bts)) {
+	if (!bsc_grace_allow_new_connection(bts->network, bts)) {
 		LOGP(DMSC, LOGL_NOTICE, "BSC in grace period. No new connections.\n");
 		return BSC_CON_REJECT_RF_GRACE;
 	}
 
-	bsc_con = talloc_zero(conn->bts, struct osmo_bsc_sccp_con);
+	bsc_con = talloc_zero(bts, struct osmo_bsc_sccp_con);
 	if (!bsc_con) {
 		LOGP(DMSC, LOGL_ERROR, "Failed to allocate new SIGTRAN connection.\n");
 		return BSC_CON_NO_MEM;

-- 
To view, visit https://gerrit.osmocom.org/5510
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: Ib6cf7097ced34eebe80441c29ab1534f21956a33
Gerrit-PatchSet: 6
Gerrit-Project: osmo-bsc
Gerrit-Branch: master
Gerrit-Owner: Harald Welte <laforge at gnumonks.org>
Gerrit-Reviewer: Harald Welte <laforge at gnumonks.org>
Gerrit-Reviewer: Jenkins Builder



More information about the gerrit-log mailing list