[PATCH 1/3] bsc_init: Check BTS configuration, BTS should not use duplicate ARFCNs

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/OpenBSC@lists.osmocom.org/.

Ivan Kluchnikov kluchnikovi at gmail.com
Thu Feb 20 07:28:22 UTC 2014


---
 openbsc/src/libbsc/bsc_init.c |   13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/openbsc/src/libbsc/bsc_init.c b/openbsc/src/libbsc/bsc_init.c
index 8fd72cf..cd5ee58 100644
--- a/openbsc/src/libbsc/bsc_init.c
+++ b/openbsc/src/libbsc/bsc_init.c
@@ -351,6 +351,8 @@ static int inp_sig_cb(unsigned int subsys, unsigned int signal,
 static int bootstrap_bts(struct gsm_bts *bts)
 {
 	int i, n;
+	struct gsm_bts_trx *cur_trx;
+	struct gsm_bts_trx *trx;
 
 	if (bts->model->start && !bts->model->started) {
 		int ret = bts->model->start(bts->network);
@@ -394,6 +396,17 @@ static int bootstrap_bts(struct gsm_bts *bts)
 		return -EINVAL;
 	}
 
+	llist_for_each_entry(cur_trx, &bts->trx_list, list) {
+		llist_for_each_entry(trx, &bts->trx_list, list) {
+			if ((cur_trx->arfcn == trx->arfcn) && (cur_trx->nr != trx->nr)) {
+				LOGP(DNM, LOGL_ERROR, "BTS should not use duplicate ARFCNs. "
+					"Duplicate ARFCN = %d BTS = %d TRX = %d TRX = %d\n",
+					trx->arfcn, bts->nr, cur_trx->nr, trx->nr);
+				return -EINVAL;
+			}
+		}
+	}
+
 	if (bts->network->auth_policy == GSM_AUTH_POLICY_ACCEPT_ALL &&
 	    !bts->si_common.rach_control.cell_bar)
 		LOGP(DNM, LOGL_ERROR, "\nWARNING: You are running an 'accept-all' "
-- 
1.7.9.5





More information about the OpenBSC mailing list