diff options
author | Vadim Yanitskiy <vyanitskiy@sysmocom.de> | 2022-04-07 20:04:12 +0300 |
---|---|---|
committer | Vadim Yanitskiy <vyanitskiy@sysmocom.de> | 2022-04-07 20:36:36 +0300 |
commit | f5b756e484570e74692a7938e025bec4f84743c0 (patch) | |
tree | 1e4ef9dd7b8a52c7e9475ed52442d7d6c8a169f8 | |
parent | 5ce5c7db9b26adc10cc459228aa5372809c47790 (diff) |
osmo-bts-trx: rx_tchh_fn(): fix meas reporting in signalling mode
In change [1] I broke measurement reporting for TCH/H in signalling
mode. The problem is that in rx_tchh_fn() we started to invalidate
the Uplink RSSI for FACCH regardless of the channel mode: speech or
signalling. In speech mode, the averaged measurements are carried
over by the two BFIs. In signalling mode we send no BFIs, so:
* let's use the proper averaging mode S6N6 (not S6N4), and
* send the averaged measurements together with the FACCH.
This change fixes BTS_Tests.TC_meas_res_sign_tchh[_toa256].
Change-Id: If98aa1f0f7255f20344460bdd07e2c896dd6e56f
Fixes: [1] I7902b4709bc3f418174e8373f52e87bb31cdc826
Related: SYS#5853
-rw-r--r-- | src/osmo-bts-trx/sched_lchan_tchh.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/osmo-bts-trx/sched_lchan_tchh.c b/src/osmo-bts-trx/sched_lchan_tchh.c index a8bdd080..21fb62c9 100644 --- a/src/osmo-bts-trx/sched_lchan_tchh.c +++ b/src/osmo-bts-trx/sched_lchan_tchh.c @@ -135,6 +135,8 @@ int rx_tchh_fn(struct l1sched_ts *l1ts, const struct trx_ul_burst_ind *bi) * also shift buffer by 4 bursts for interleaving */ switch (tch_mode) { case GSM48_CMODE_SIGN: + meas_avg_mode = SCHED_MEAS_AVG_M_S6N6; + /* fall-through */ case GSM48_CMODE_SPEECH_V1: /* HR or signalling */ /* Note on FN-10: If we are at FN 10, we decoded an even aligned * TCH/FACCH frame, because our burst buffer carries 6 bursts. @@ -259,13 +261,13 @@ int rx_tchh_fn(struct l1sched_ts *l1ts, const struct trx_ul_burst_ind *bi) /* FACCH */ if (rc == GSM_MACBLOCK_LEN) { chan_state->ul_ongoing_facch = 1; - /* In order to provide an even stream of measurement reports, here we - * intentionally invalidate RSSI, so that this report gets dropped in - * process_l1sap_meas_data(). The averaged results will still be sent - * with the first BFI (see below). */ + /* In order to provide an even stream of measurement reports in *speech* + * mode, here we intentionally invalidate RSSI for FACCH, so that this + * report gets dropped in process_l1sap_meas_data(). The averaged results + * will be sent with the first (see below) and second (see above) BFIs. */ _sched_compose_ph_data_ind(l1ts, fn_begin, bi->chan, tch_data + amr, GSM_MACBLOCK_LEN, - 0, /* intentionally invalidate RSSI */ + tch_mode == GSM48_CMODE_SIGN ? meas_avg.rssi : 0, meas_avg.toa256, meas_avg.ci_cb, ber10k, PRES_INFO_UNKNOWN); ber10k = 0; |