diff options
Diffstat (limited to 'src/host/layer23/include')
-rw-r--r-- | src/host/layer23/include/osmocom/bb/common/osmocom_data.h | 8 | ||||
-rw-r--r-- | src/host/layer23/include/osmocom/bb/mobile/gsm48_rr.h | 36 | ||||
-rw-r--r-- | src/host/layer23/include/osmocom/bb/mobile/sysinfo.h | 6 |
3 files changed, 28 insertions, 22 deletions
diff --git a/src/host/layer23/include/osmocom/bb/common/osmocom_data.h b/src/host/layer23/include/osmocom/bb/common/osmocom_data.h index 7ffbfd93..ce08994f 100644 --- a/src/host/layer23/include/osmocom/bb/common/osmocom_data.h +++ b/src/host/layer23/include/osmocom/bb/common/osmocom_data.h @@ -34,6 +34,8 @@ struct osmosap_entity { /* RX measurement statistics */ struct rx_meas_stat { uint32_t last_fn; + + /* cumulated values of current cell from SACCH dl */ uint32_t frames; uint32_t snr; uint32_t berr; @@ -75,6 +77,12 @@ enum osmobb_meas_sig { S_L1CTL_CCCH_MODE_CONF, }; +struct osmobb_fbsb_res { + struct osmocom_ms *ms; + int8_t snr; + uint8_t bsic; +}; + struct osmobb_meas_res { struct osmocom_ms *ms; uint16_t band_arfcn; diff --git a/src/host/layer23/include/osmocom/bb/mobile/gsm48_rr.h b/src/host/layer23/include/osmocom/bb/mobile/gsm48_rr.h index 5ab5f4fb..9a96a848 100644 --- a/src/host/layer23/include/osmocom/bb/mobile/gsm48_rr.h +++ b/src/host/layer23/include/osmocom/bb/mobile/gsm48_rr.h @@ -92,27 +92,20 @@ struct gsm48_rr_cd { uint8_t cipher; /* ciphering of channel */ }; -/* measurements */ -struct gsm48_rr_meas { - uint8_t rxlev_full; - uint8_t rxlev_sub; - uint8_t rxqual_full; - uint8_t rxqual_sub; - uint8_t dtx; - uint8_t ba; - uint8_t meas_valid; - uint8_t ncell_na; - uint8_t count; - uint8_t rxlev_nc[6]; - uint8_t bsic_nc[6]; - uint8_t bcch_f_nc[6]; -}; - struct gsm48_cr_hist { uint8_t valid; struct gsm48_req_ref ref; }; +/* neighbor cell measurements */ +struct gsm48_rr_meas { + /* note: must be sorted by arfcn 1..1023,0 according to SI5* */ + uint8_t nc_num; /* number of measured cells (32 max) */ + int8_t nc_rxlev[32]; /* -128 = no value */ + uint8_t nc_bsic[32]; + uint16_t nc_arfcn[32]; +}; + /* RR sublayer instance */ struct gsm48_rrlayer { struct osmocom_ms *ms; @@ -147,6 +140,9 @@ struct gsm48_rrlayer { uint8_t chan_req_val; /* current request value */ uint8_t chan_req_mask; /* mask of random bits */ + /* state of dedicated mdoe */ + uint8_t dm_est; + /* cr_hist */ uint8_t cr_ra; /* stores requested ra until confirmed */ struct gsm48_cr_hist cr_hist[3]; @@ -168,16 +164,14 @@ struct gsm48_rrlayer { struct gsm48_rr_cd cd_before; /* before start time */ struct gsm48_rr_cd cd_after; /* after start time */ - /* measurements */ - struct gsm48_rr_meas meas; - /* BA range */ uint8_t ba_ranges; uint32_t ba_range[16]; - /* monitor */ + /* measurements */ + struct timer_list t_meas; + struct gsm48_rr_meas meas; uint8_t monitor; - struct timer_list t_monitor; }; const char *get_rr_name(int value); diff --git a/src/host/layer23/include/osmocom/bb/mobile/sysinfo.h b/src/host/layer23/include/osmocom/bb/mobile/sysinfo.h index ae7678e6..070135db 100644 --- a/src/host/layer23/include/osmocom/bb/mobile/sysinfo.h +++ b/src/host/layer23/include/osmocom/bb/mobile/sysinfo.h @@ -40,6 +40,7 @@ struct gsm48_sysinfo { uint8_t hopp_len; /* serving cell */ + uint8_t bsic; uint16_t cell_id; uint16_t mcc, mnc, lac; /* LAI */ uint8_t max_retrans; /* decoded */ @@ -97,12 +98,15 @@ struct gsm48_sysinfo { uint8_t nb_ext_ind_si2bis; uint8_t nb_ba_ind_si2bis; uint8_t nb_multi_rep_si2ter; /* see GSM 05.08 8.4.3 */ + uint8_t nb_ba_ind_si2ter; uint8_t nb_ext_ind_si5; uint8_t nb_ba_ind_si5; uint8_t nb_ext_ind_si5bis; uint8_t nb_ba_ind_si5bis; uint8_t nb_multi_rep_si5ter; - uint8_t nb_ncc_permitted; + uint8_t nb_ba_ind_si5ter; + uint8_t nb_ncc_permitted_si2; + uint8_t nb_ncc_permitted_si6; uint8_t nb_max_retrans; /* decoded */ uint8_t nb_tx_integer; /* decoded */ uint8_t nb_reest_denied; /* 1 = denied */ |