summaryrefslogtreecommitdiffstats
path: root/src/host/layer23/include/osmocom/bb/mobile/gsm48_rr.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/host/layer23/include/osmocom/bb/mobile/gsm48_rr.h')
-rw-r--r--src/host/layer23/include/osmocom/bb/mobile/gsm48_rr.h36
1 files changed, 15 insertions, 21 deletions
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);