summaryrefslogtreecommitdiffstats
path: root/src/host/layer23/include/osmocom
diff options
context:
space:
mode:
authorAndreas.Eversberg2010-09-26 12:35:46 +0200
committerAndreas.Eversberg2010-09-26 12:35:46 +0200
commit4ed601ae4e48e8d480c3e0f5e82160434e6a32c8 (patch)
treef3ec61df2af05361485c3e8377793a145f351558 /src/host/layer23/include/osmocom
parent[layer23] LAPDm handles UNIT DATA requests correctly (diff)
downloadosmocom-4ed601ae4e48e8d480c3e0f5e82160434e6a32c8.tar.gz
osmocom-4ed601ae4e48e8d480c3e0f5e82160434e6a32c8.tar.xz
osmocom-4ed601ae4e48e8d480c3e0f5e82160434e6a32c8.zip
[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')
-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 7ffbfd9..ce08994 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 5ab5f4f..9a96a84 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 ae7678e..070135d 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 */