summaryrefslogtreecommitdiffstats
path: root/src/host/layer23/include/osmocom/bb/mobile/gsm48_rr.h
diff options
context:
space:
mode:
authorAndreas.Eversberg <jolly@eversberg.eu>2010-09-26 10:35:46 +0000
committerAndreas.Eversberg <jolly@eversberg.eu>2010-09-26 10:35:46 +0000
commit4ed601ae4e48e8d480c3e0f5e82160434e6a32c8 (patch)
treef3ec61df2af05361485c3e8377793a145f351558 /src/host/layer23/include/osmocom/bb/mobile/gsm48_rr.h
parent4c11da77906c6a7ca08b739b02c7475ec07d4577 (diff)
[layer23] Adding application generated measurement report
The cell provides SYSTEM INFORMATION 5* and 6. These are used to create a list of neighbor cells to monitor. Because there is no neighbor cell monitoring supported by layer1, the list has no valid results yet. Currently the average RX level of received frames are used to generate a new report every second. The report is transmitted to layer1 and used there whenever a measurement report has to be transmitted. The timing advance and the current transmit power (as requested by network), is included with every report.
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);