diff options
author | Harald Welte <laforge@netfilter.org> | 2009-10-24 10:19:14 +0200 |
---|---|---|
committer | Harald Welte <laforge@netfilter.org> | 2009-10-24 10:19:14 +0200 |
commit | 55dd443ac2c69b4a1e6cd29c3899a059d2f1905b (patch) | |
tree | 4eeae94243394403b4c29e935472c4b301c502aa /openbsc/src | |
parent | 73310c3c835886525b7c6eca73c79bd70d2dd21b (diff) |
[GPRS] add data structures for OML of NSE,CELL,NSVCE
Supporting GPRS means we have a number of additional OML objects to
deal with. We need to extend our gsm_bts structure to at least
include the nm_state for each of those objects.
Diffstat (limited to 'openbsc/src')
-rwxr-xr-x | openbsc/src/abis_nm.c | 22 | ||||
-rw-r--r-- | openbsc/src/gsm_data.c | 6 |
2 files changed, 28 insertions, 0 deletions
diff --git a/openbsc/src/abis_nm.c b/openbsc/src/abis_nm.c index 369eaf6b4..b5f10bd19 100755 --- a/openbsc/src/abis_nm.c +++ b/openbsc/src/abis_nm.c @@ -656,6 +656,17 @@ objclass2nmstate(struct gsm_bts *bts, u_int8_t obj_class, return NULL; nm_state = &bts->bs11.envabtse[obj_inst->trx_nr].nm_state; break; + case NM_OC_GPRS_NSE: + nm_state = &bts->gprs.nse.nm_state; + break; + case NM_OC_GPRS_CELL: + nm_state = &bts->gprs.cell.nm_state; + break; + case NM_OC_GPRS_NSVC: + if (obj_inst->trx_nr > ARRAY_SIZE(bts->gprs.nsvc)) + return NULL; + nm_state = &bts->gprs.nsvc[obj_inst->trx_nr].nm_state; + break; } return nm_state; } @@ -695,6 +706,17 @@ objclass2obj(struct gsm_bts *bts, u_int8_t obj_class, case NM_OC_SITE_MANAGER: obj = &bts->site_mgr; break; + case NM_OC_GPRS_NSE: + obj = &bts->gprs.nse; + break; + case NM_OC_GPRS_CELL: + obj = &bts->gprs.cell; + break; + case NM_OC_GPRS_NSVC: + if (obj_inst->trx_nr > ARRAY_SIZE(bts->gprs.nsvc)) + return NULL; + obj = &bts->gprs.nsvc[obj_inst->trx_nr]; + break; } return obj; } diff --git a/openbsc/src/gsm_data.c b/openbsc/src/gsm_data.c index 6767c3fd5..de9f4b986 100644 --- a/openbsc/src/gsm_data.c +++ b/openbsc/src/gsm_data.c @@ -139,6 +139,7 @@ struct gsm_bts *gsm_bts_alloc(struct gsm_network *net, enum gsm_bts_type type, u_int8_t tsc, u_int8_t bsic) { struct gsm_bts *bts = talloc(net, struct gsm_bts); + int i; if (!bts) return NULL; @@ -153,6 +154,11 @@ struct gsm_bts *gsm_bts_alloc(struct gsm_network *net, enum gsm_bts_type type, INIT_LLIST_HEAD(&bts->trx_list); bts->ms_max_power = 15; /* dBm */ + for (i = 0; i < ARRAY_SIZE(bts->gprs.nsvc); i++) { + bts->gprs.nsvc[i].bts = bts; + bts->gprs.nsvc[i].id = i; + } + /* create our primary TRX */ bts->c0 = gsm_bts_trx_alloc(bts); if (!bts->c0) { |