diff options
author | Harald Welte <laflocal@goeller.de.gnumonks.org> | 2010-01-10 18:01:52 +0100 |
---|---|---|
committer | Harald Welte <laflocal@goeller.de.gnumonks.org> | 2010-01-10 18:01:52 +0100 |
commit | 39315c47989326275823d1589425ee62d15bc823 (patch) | |
tree | 35339da4dd36b4f9e0282c11e2246cb5135b9c0c /openbsc/include/openbsc/gsm_data.h | |
parent | 5078148829920b7e7b8269b5a6420c0a999cc877 (diff) |
[OML] parse attributes depending on BTS type
Some NM attributes are defined differently depending on
the BTS type. Having one big nm_att_tlvdef[] table for
all BTS types is no longer sufficient. This patch
* introduces 'struct gsm_bts_model' to describe a BTS model
* adds definitions of gsm_bts_model for BS-11 and nanoBTS
* changes the abis_nm_tlv_parse() function: include a bts pointer
Diffstat (limited to 'openbsc/include/openbsc/gsm_data.h')
-rw-r--r-- | openbsc/include/openbsc/gsm_data.h | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/openbsc/include/openbsc/gsm_data.h b/openbsc/include/openbsc/gsm_data.h index 573ce5fb7..5567d89bd 100644 --- a/openbsc/include/openbsc/gsm_data.h +++ b/openbsc/include/openbsc/gsm_data.h @@ -335,6 +335,15 @@ enum gsm_bts_type { GSM_BTS_TYPE_NANOBTS, }; +struct gsm_bts_model { + struct llist_head list; + + enum gsm_bts_type type; + const char *name; + + struct tlv_definition nm_att_tlvdef; +}; + /** * A pending paging request */ @@ -402,6 +411,7 @@ struct gsm_bts { u_int8_t bsic; /* type of BTS */ enum gsm_bts_type type; + struct gsm_bts_model *model; enum gsm_band band; /* should the channel allocator allocate channels from high TRX to TRX0, * rather than starting from TRX0 and go upwards? */ @@ -619,7 +629,7 @@ struct gsm_network *gsm_network_init(u_int16_t country_code, u_int16_t network_c 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_trx *gsm_bts_trx_alloc(struct gsm_bts *bts); -void gsm_set_bts_type(struct gsm_bts *bts, enum gsm_bts_type type); +int gsm_set_bts_type(struct gsm_bts *bts, enum gsm_bts_type type); struct gsm_bts *gsm_bts_num(struct gsm_network *net, int num); |