switch to dynamically allocated BTS and TRX data structures
This makes it much easier to do run-time configuration using the vty
interface.
diff --git a/openbsc/src/bs11_config.c b/openbsc/src/bs11_config.c
index 386b865..0fb7cd7 100644
--- a/openbsc/src/bs11_config.c
+++ b/openbsc/src/bs11_config.c
@@ -94,7 +94,7 @@
abis_nm_bs11_conn_oml_tei(bts, 0, 1, 0xff, TEI_OML);
- abis_nm_bs11_set_trx_power(&bts->trx[0], BS11_TRX_POWER_GSM_30mW);
+ abis_nm_bs11_set_trx_power(bts->c0, BS11_TRX_POWER_GSM_30mW);
sleep(1);
@@ -109,6 +109,10 @@
{
u_int8_t bbsig1_attr[sizeof(obj_bbsig0_attr)+12];
u_int8_t *cur = bbsig1_attr;
+ struct gsm_bts_trx *trx = gsm_bts_trx_num(bts, 1);
+
+ if (!trx)
+ trx = gsm_bts_trx_alloc(bts);
fprintf(stdout, "Crating Objects for TRX1\n");
@@ -123,7 +127,7 @@
sizeof(bbsig1_attr), bbsig1_attr);
abis_nm_bs11_create_object(bts, BS11_OBJ_PA, 1,
sizeof(obj_pa0_attr), obj_pa0_attr);
- abis_nm_bs11_set_trx_power(&bts->trx[1], BS11_TRX_POWER_GSM_30mW);
+ abis_nm_bs11_set_trx_power(trx, BS11_TRX_POWER_GSM_30mW);
return 0;
}
@@ -437,13 +441,17 @@
static void cmd_query(void)
{
+ struct gsm_bts_trx *trx = g_bts->c0;
+
bs11cfg_state = STATE_QUERY;
abis_nm_bs11_get_serno(g_bts);
abis_nm_bs11_get_oml_tei_ts(g_bts);
abis_nm_bs11_get_pll_mode(g_bts);
abis_nm_bs11_get_cclk(g_bts);
- abis_nm_bs11_get_trx_power(&g_bts->trx[0]);
- abis_nm_bs11_get_trx_power(&g_bts->trx[1]);
+ abis_nm_bs11_get_trx_power(trx);
+ trx = gsm_bts_trx_num(g_bts, 1);
+ if (trx)
+ abis_nm_bs11_get_trx_power(trx);
sleep(1);
abis_nm_bs11_factory_logon(g_bts, 0);
command = NULL;
@@ -775,12 +783,13 @@
handle_options(argc, argv);
- gsmnet = gsm_network_init(1, 1, 1, GSM_BTS_TYPE_BS11, NULL);
+ gsmnet = gsm_network_init(1, 1, NULL);
if (!gsmnet) {
fprintf(stderr, "Unable to allocate gsm network\n");
exit(1);
}
- g_bts = &gsmnet->bts[0];
+ g_bts = gsm_bts_alloc(gsmnet, GSM_BTS_TYPE_BS11, HARDCODED_TSC,
+ HARDCODED_BSIC);
rc = rs232_setup(serial_port, delay_ms, g_bts);
if (rc < 0) {