summaryrefslogtreecommitdiffstats
path: root/src/host/layer23/include
diff options
context:
space:
mode:
Diffstat (limited to 'src/host/layer23/include')
-rw-r--r--src/host/layer23/include/osmocom/bb/common/osmocom_data.h8
-rw-r--r--src/host/layer23/include/osmocom/bb/mobile/gsm48_rr.h36
-rw-r--r--src/host/layer23/include/osmocom/bb/mobile/sysinfo.h6
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 */