diff options
-rw-r--r-- | openbsc/src/libbsc/bsc_init.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/openbsc/src/libbsc/bsc_init.c b/openbsc/src/libbsc/bsc_init.c index 8fd72cf46..cd5ee58d9 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' " |