Change in osmo-bts[master]: measurement: count measurements for FACCH/H twice.

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.

dexter gerrit-no-reply at lists.osmocom.org
Thu Oct 22 16:17:25 UTC 2020


dexter has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bts/+/20840 )


Change subject: measurement: count measurements for FACCH/H twice.
......................................................................

measurement: count measurements for FACCH/H twice.

The FACCH/H replaces to voice frames in TCH/H. This means during the
transmission of a FACCH one measurement value less is handed up to the
higher layers. This needs to be compensated by adding a the FAACH/H
measurement twice (as if it were from two voice frames).

Change-Id: Id533bb3207bac40d00d77b484619f66ea5c0774d
Related: OS#4799
---
M include/osmo-bts/gsm_data.h
M src/common/l1sap.c
M src/common/measurement.c
3 files changed, 24 insertions(+), 1 deletion(-)



  git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/40/20840/1

diff --git a/include/osmo-bts/gsm_data.h b/include/osmo-bts/gsm_data.h
index 1c1c5d4..45a131c 100644
--- a/include/osmo-bts/gsm_data.h
+++ b/include/osmo-bts/gsm_data.h
@@ -111,6 +111,9 @@
 	uint8_t is_sub:1;
 	/* RSSI in dBm * -1 */
 	uint8_t inv_rssi;
+	/* weight of the measurement report: 2 for FACCH on TCH/H, 1 for all
+	 * other channels types. */
+	uint8_t weight;
 };
 
 struct amr_mode {
diff --git a/src/common/l1sap.c b/src/common/l1sap.c
index c9ec9bf..710cd99 100644
--- a/src/common/l1sap.c
+++ b/src/common/l1sap.c
@@ -658,6 +658,7 @@
 	struct info_meas_ind_param *info_meas_ind;
 	struct ph_data_param *ph_data_ind;
 	struct ph_tch_param *ph_tch_ind;
+	uint8_t link_id = 0;
 	uint8_t chan_nr;
 	uint32_t fn;
 	uint8_t inv_rssi;
@@ -694,6 +695,7 @@
 		ph_data_ind = &l1sap->u.data;
 		if (ph_data_ind->rssi == 0)
 			return;
+		link_id = ph_data_ind->link_id;
 		chan_nr = ph_data_ind->chan_nr;
 		fn = ph_data_ind->fn;
 		inv_rssi = abs(ph_data_ind->rssi);
@@ -730,6 +732,22 @@
 	ulm.inv_rssi = inv_rssi;
 	ulm.is_sub = is_sub;
 
+	/* TCH channels are multiplexed with a FACCH channel. In the case of
+	 * TCH/F the FACCH has the same length (spread over 8 TDMA frames)
+	 * as a regular voice TDMA frames. This means that we either get
+	 * one voice frame or a SACCH frame every 4 bursts. For TCH/H the
+	 * seizes are different. A voice frame spreads over 4 TDMA frames
+	 * and a SACCH over 6 TDMA frames. This means we either get 2 voice
+	 * frames every 4 bursts or we end up with a single SACCH frame. Since
+	 * measurement results are trsamitted to l1sap together with the actual
+	 * data. The data of one TCH/H SACCH frame actually covers the period
+	 * of two voice frames, which means a TCH/H SACCH measurement has a
+	 * weight of two. */
+	if (ind_type == PRIM_PH_DATA && lchan->type == GSM_LCHAN_TCH_H && !L1SAP_IS_LINK_SACCH(link_id))
+		ulm.weight = 2;
+	else
+		ulm.weight = 1;
+
 	/* we assume that symbol period is 1 bit: */
 	set_ms_to_data(lchan, ta_offs_256bits / 256, true);
 
diff --git a/src/common/measurement.c b/src/common/measurement.c
index 22f783d..f73f43b 100644
--- a/src/common/measurement.c
+++ b/src/common/measurement.c
@@ -739,7 +739,9 @@
  * interval. */
 int lchan_meas_process_measurement(struct gsm_lchan *lchan, struct bts_ul_meas *ulm, uint32_t fn)
 {
-	lchan_new_ul_meas(lchan, ulm, fn);
+	unsigned int i;
+	for (i = 0; i < ulm->weight; i++)
+		lchan_new_ul_meas(lchan, ulm, fn);
 	return lchan_meas_check_compute(lchan, fn);
 }
 

-- 
To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/20840
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-bts
Gerrit-Branch: master
Gerrit-Change-Id: Id533bb3207bac40d00d77b484619f66ea5c0774d
Gerrit-Change-Number: 20840
Gerrit-PatchSet: 1
Gerrit-Owner: dexter <pmaier at sysmocom.de>
Gerrit-MessageType: newchange
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20201022/187c15d8/attachment.htm>


More information about the gerrit-log mailing list