---
 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


Reply via email to