laforge has submitted this change. (
https://gerrit.osmocom.org/c/osmo-bts/+/18035 )
Change subject: osmo-bts-trx/scheduler: fix measurement handling for SUB frames
......................................................................
osmo-bts-trx/scheduler: fix measurement handling for SUB frames
Make sure that we pick the correct UL measurements from the
history when we deal with AMR SID frames (SUB frames).
Change-Id: I902bb47d68742d2589156f61099b67a0edbaf40b
Related: OS#2978
---
M include/osmo-bts/scheduler.h
M src/osmo-bts-trx/sched_lchan_tchf.c
M src/osmo-bts-trx/sched_lchan_tchh.c
M src/osmo-bts-trx/scheduler_trx.c
4 files changed, 43 insertions(+), 0 deletions(-)
Approvals:
laforge: Looks good to me, approved
Jenkins Builder: Verified
diff --git a/include/osmo-bts/scheduler.h b/include/osmo-bts/scheduler.h
index b488b6c..f19a13e 100644
--- a/include/osmo-bts/scheduler.h
+++ b/include/osmo-bts/scheduler.h
@@ -276,6 +276,12 @@
SCHED_MEAS_AVG_M_OCTO,
/* last 6 bursts (default for FACCH/H) */
SCHED_MEAS_AVG_M_SIX,
+ /* first 4 of last 8 bursts */
+ SCHED_MEAS_AVG_M8_FIRST_QUAD,
+ /* first 2 of last 6 bursts */
+ SCHED_MEAS_AVG_M6_FIRST_TWO,
+ /* middle 2 of last 6 bursts */
+ SCHED_MEAS_AVG_M6_MIDDLE_TWO,
};
void trx_sched_meas_push(struct l1sched_chan_state *chan_state,
diff --git a/src/osmo-bts-trx/sched_lchan_tchf.c
b/src/osmo-bts-trx/sched_lchan_tchf.c
index e29a47e..9c5bfc2 100644
--- a/src/osmo-bts-trx/sched_lchan_tchf.c
+++ b/src/osmo-bts-trx/sched_lchan_tchf.c
@@ -173,6 +173,17 @@
break;
}
+ switch (chan_state->amr_last_dtx) {
+ case AFS_SID_FIRST:
+ case AFS_SID_UPDATE_CN:
+ meas_avg_mode = SCHED_MEAS_AVG_M8_FIRST_QUAD;
+ break;
+ case AFS_SID_UPDATE:
+ case AFS_ONSET:
+ meas_avg_mode = SCHED_MEAS_AVG_M_QUAD;
+ break;
+ }
+
if (rc)
trx_loop_amr_input(l1t,
trx_chan_desc[chan].chan_nr | bi->tn,
chan_state,
diff --git a/src/osmo-bts-trx/sched_lchan_tchh.c
b/src/osmo-bts-trx/sched_lchan_tchh.c
index 2a561e1..c400542 100644
--- a/src/osmo-bts-trx/sched_lchan_tchh.c
+++ b/src/osmo-bts-trx/sched_lchan_tchh.c
@@ -184,6 +184,20 @@
break;
}
+ switch (chan_state->amr_last_dtx) {
+ case AHS_SID_FIRST_P1:
+ case AHS_SID_FIRST_P2:
+ case AHS_SID_UPDATE:
+ case AHS_SID_UPDATE_CN:
+ case AHS_SID_FIRST_INH:
+ case AHS_SID_UPDATE_INH:
+ meas_avg_mode = SCHED_MEAS_AVG_M6_FIRST_TWO;
+ break;
+ case AHS_ONSET:
+ meas_avg_mode = SCHED_MEAS_AVG_M6_MIDDLE_TWO;
+ break;
+ }
+
if (rc)
trx_loop_amr_input(l1t,
trx_chan_desc[chan].chan_nr | bi->tn,
chan_state,
diff --git a/src/osmo-bts-trx/scheduler_trx.c b/src/osmo-bts-trx/scheduler_trx.c
index 3921280..c000324 100644
--- a/src/osmo-bts-trx/scheduler_trx.c
+++ b/src/osmo-bts-trx/scheduler_trx.c
@@ -517,6 +517,18 @@
case SCHED_MEAS_AVG_M_SIX:
n = 6; shift = n;
break;
+ /* first 4 of last 8 bursts */
+ case SCHED_MEAS_AVG_M8_FIRST_QUAD:
+ n = 4; shift = 8;
+ break;
+ /* first 2 of last 6 bursts */
+ case SCHED_MEAS_AVG_M6_FIRST_TWO:
+ n = 2; shift = 6;
+ break;
+ /* middle 2 of last 6 bursts */
+ case SCHED_MEAS_AVG_M6_MIDDLE_TWO:
+ n = 2; shift = 4;
+ break;
default:
/* Shall not happen */
OSMO_ASSERT(false);
--
To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/18035
To unsubscribe, or for help writing mail filters, visit
https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-bts
Gerrit-Branch: master
Gerrit-Change-Id: I902bb47d68742d2589156f61099b67a0edbaf40b
Gerrit-Change-Number: 18035
Gerrit-PatchSet: 11
Gerrit-Owner: dexter <[email protected]>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: dexter <[email protected]>
Gerrit-Reviewer: fixeria <[email protected]>
Gerrit-Reviewer: laforge <[email protected]>
Gerrit-Reviewer: neels <[email protected]>
Gerrit-Reviewer: pespin <[email protected]>
Gerrit-MessageType: merged