diff options
author | Minh-Quang Nguyen <minh-quang.nguyen@nutaq.com> | 2016-09-02 13:24:14 -0400 |
---|---|---|
committer | Minh-Quang Nguyen <minh-quang.nguyen@nutaq.com> | 2016-09-02 13:48:38 -0400 |
commit | c664bbe7bf85dacb18d13c96b7e8392afed4cfaf (patch) | |
tree | de9f9197f5fe32f4f144ce4daa7e1fd8a1d32e2a | |
parent | 7bc6986f6babdaf5f2436dae2f603ae5823aa7b4 (diff) |
Introduce IPAC manufacture-defined measurement pre-processing variablesnrw/litecell15-merge
Change-Id: I95029aa2480216307bae3c5ce324f84a6f17bb3a
-rw-r--r-- | openbsc/include/openbsc/gsm_data_shared.h | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/openbsc/include/openbsc/gsm_data_shared.h b/openbsc/include/openbsc/gsm_data_shared.h index ce2e9b713..d2170dc41 100644 --- a/openbsc/include/openbsc/gsm_data_shared.h +++ b/openbsc/include/openbsc/gsm_data_shared.h @@ -126,8 +126,14 @@ enum gsm_lchan_state { /* BTS ONLY */ #define MAX_NUM_UL_MEAS 104 +#define MAX_NUM_MEAS_PREPROC 32 #define LC_UL_M_F_L1_VALID (1 << 0) #define LC_UL_M_F_RES_VALID (1 << 1) +#define LC_NCELL_M_F_BA1 (1 << 2) +#define LC_UL_M_F_DTX (1 << 3) +#define LC_DL_M_F_RES_VALID (1 << 4) +#define LC_AVE_F_RES_VALID (1 << 5) +#define LC_AVE_F_CACHE_VALID (1 << 6) struct bts_ul_meas { /* BER in units of 0.01%: 10.000 == 100% ber, 0 == 0% ber */ @@ -293,6 +299,58 @@ struct gsm_lchan { struct gsm_meas_rep_unidir ul_res; } meas; struct { + /* UL measurement result */ + struct gsm_meas_rep_unidir ul_res; + /* DL measurement result */ + struct gsm_meas_rep_unidir dl_res; + /* UL RxLev measurement cache*/ + uint8_t ul_ave_vec[MAX_NUM_MEAS_PREPROC]; + /* UL RxLev measurement averaged buffer */ + uint8_t ul_ave_res[MAX_NUM_MEAS_PREPROC]; + /* DL RxLev measurement cache*/ + uint8_t dl_ave_vec[MAX_NUM_MEAS_PREPROC]; + /* DL RxLev measurement averaged buffer */ + uint8_t dl_ave_res[MAX_NUM_MEAS_PREPROC]; + /* UL RxQual measurement cache*/ + uint8_t ul_qual_ave_vec[MAX_NUM_MEAS_PREPROC]; + /* UL RxQual measurement averaged buffer */ + uint8_t ul_qual_ave_res[MAX_NUM_MEAS_PREPROC]; + /* DL RxQual measurement cache*/ + uint8_t dl_qual_ave_vec[MAX_NUM_MEAS_PREPROC]; + /* DL RxQual measurement averaged buffer */ + uint8_t dl_qual_ave_res[MAX_NUM_MEAS_PREPROC]; + /* MS-BTS distance measurement cache*/ + uint8_t ms_bts_ave_vec[MAX_NUM_MEAS_PREPROC]; + /* MS-BTS distance averaged buffer*/ + uint8_t ms_bts_ave_res[MAX_NUM_MEAS_PREPROC]; + /* MS power in dBm */ + int8_t ms_pwr; + /* MS timing advance */ + uint8_t ms_ta; + /* neighbor measurement reports for up to 6 cells */ + uint8_t num_cell; + /* current HO cause flags */ + uint32_t cur_ho_causes; + /* recorded HO cause flags */ + uint32_t rec_ho_causes; + /* neighbor cell measurement */ + struct { + uint8_t rxlev; + uint8_t rxlev_vec[MAX_NUM_MEAS_PREPROC]; + uint8_t rxlev_ave_res[MAX_NUM_MEAS_PREPROC]; + uint8_t bsic; + uint8_t bcch_freq; + } cell[6]; + /* measurement result index */ + uint8_t meas_idx; + /* measurement averaging index */ + uint8_t meas_ave_idx; + /* better candidate cell index */ + uint8_t better_ncell; + /* measurement preprocessing HO timer */ + struct osmo_timer_list preproc_ho_timer; + } meas_preproc; + struct { struct amr_multirate_conf amr_mr; struct { uint8_t buf[16]; @@ -434,6 +492,9 @@ struct gsm_bts_trx { } ipaccess; }; struct gsm_bts_trx_ts ts[TRX_NR_TS]; + + /*measurement preprocessing parameters */ + struct ipac_preproc_cfg trx_preproc_cfg; }; #define GSM_BTS_SI(bts, i) (void *)(bts->si_buf[i]) |