* use the correct BCCH channel type for nanoBTS
* remove old code
* ensure that the default BTS type really is BS-11
* document the '-t' commandline argument in the --help message
With this commit, I can get the nanoBTS 900 working with OML and RSL, register
to the network from phones. Paging is not tested yet, and voice traffic handling
is completely missing..
diff --git a/src/bsc_hack.c b/src/bsc_hack.c
index 5b6e4a3..3d25ee2 100644
--- a/src/bsc_hack.c
+++ b/src/bsc_hack.c
@@ -298,7 +298,7 @@
};
static unsigned char nanobts_attr_radio[] = {
- NM_ATT_RF_MAXPOWR_R, 0x0c,
+ NM_ATT_RF_MAXPOWR_R, 0x00,
NM_ATT_ARFCN_LIST, 0x00, 0x02, HARDCODED_ARFCN >> 8, HARDCODED_ARFCN & 0xff,
};
@@ -354,7 +354,7 @@
trx = ts->trx;
if (new_state->availability == 5) {
if (ts->nr == 0 && trx == trx->bts->c0)
- abis_nm_set_channel_attr(ts, NM_CHANC_SDCCH_CBCH);
+ abis_nm_set_channel_attr(ts, NM_CHANC_BCCH_CBCH);
else
abis_nm_set_channel_attr(ts, NM_CHANC_TCHFull);
abis_nm_opstart(trx->bts, NM_OC_CHANNEL,
@@ -385,36 +385,7 @@
static void bootstrap_om_nanobts(struct gsm_bts *bts)
{
-#if 0
- struct gsm_bts_trx *trx = &bts->trx[0];
- int i;
-
- abis_nm_set_bts_attr(bts, nanobts_attr_bts, sizeof(nanobts_attr_bts));
- abis_nm_opstart(bts, NM_OC_BTS, 0x00, 0xff, 0xff);
- abis_nm_set_radio_attr(bts->c0, nanobts_attr_radio, sizeof(nanobts_attr_radio));
-
- abis_nm_set_channel_attr(&trx->ts[0], NM_CHANC_SDCCH_CBCH);
- for (i = 1; i < TRX_NR_TS; i++)
- abis_nm_set_channel_attr(&trx->ts[i], NM_CHANC_TCHFull);
-
- abis_nm_opstart(bts, NM_OC_BASEB_TRANSC, 0x00, 0x00, 0xff);
- abis_nm_opstart(bts, NM_OC_RADIO_CARRIER, 0x00, 0x00, 0xff);
-
-
- for (i = 0; i < TRX_NR_TS; i++)
- abis_nm_opstart(bts, NM_OC_CHANNEL, 0x00, 0x00, i);
-
- abis_nm_chg_adm_state(bts, NM_OC_BASEB_TRANSC, 0x00, 0x00, 0xff,
- NM_STATE_UNLOCKED);
-
- abis_nm_chg_adm_state(bts, NM_OC_RADIO_CARRIER, 0x00, 0x00, 0xff,
- NM_STATE_UNLOCKED);
-
- for (i = 0; i < TRX_NR_TS; i++)
- abis_nm_chg_adm_state(bts, NM_OC_CHANNEL, 0x00, 0x00, i,
- NM_STATE_UNLOCKED);
-
-#endif
+ /* We don't do callback based bootstrapping, but event driven (see above) */
}
static void bootstrap_om_bs11(struct gsm_bts *bts)
@@ -929,6 +900,7 @@
printf(" -a --authorize-everyone Allow everyone into the network.\n");
printf(" -r --reject-cause number The reject cause for LOCATION UPDATING REJECT.\n");
printf(" -p --pcap file The filename of the pcap file\n");
+ printf(" -t --bts-type type The BTS type (bs11, nanobts900, nanobts1800)\n");
printf(" -h --help this text\n");
}
@@ -946,7 +918,7 @@
if (!strcmp(arg, bts_types[i]))
return i;
}
- return 0; /* Default: BS11 */
+ return GSM_BTS_TYPE_BS11; /* Default: BS11 */
}
static void handle_options(int argc, char** argv)