diff options
author | Philipp Maier <pmaier@sysmocom.de> | 2021-01-13 00:30:09 +0100 |
---|---|---|
committer | Philipp Maier <pmaier@sysmocom.de> | 2021-01-13 00:32:26 +0100 |
commit | 25b11f473a6c0f20d827552e91a4d1dc5eb01119 (patch) | |
tree | e9f958a5a38a2c58b7fcf27fc6b2f103000ef141 | |
parent | l1sap: acch_repetition fix hysthereis threshold table (diff) | |
download | OsmoBTS-25b11f473a6c0f20d827552e91a4d1dc5eb01119.tar.xz OsmoBTS-25b11f473a6c0f20d827552e91a4d1dc5eb01119.zip |
l1sap: use rxlev_full when no DTX was used
At the moment only rxlev_sub is used to decide when the facch repetition
should be activated, regardless if DTX is used. Lets check if DTX is
actually used and use rxlev_full when DTX is not applied.
Change-Id: I01ba57cf661f0e41b8df209c905f8d135013e472
Related: SYS#5114
-rw-r--r-- | src/common/l1sap.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/common/l1sap.c b/src/common/l1sap.c index 2757d709..3f601fde 100644 --- a/src/common/l1sap.c +++ b/src/common/l1sap.c @@ -972,6 +972,7 @@ void repeated_dl_facch_active_decision(struct gsm_lchan *lchan, const uint8_t *l const struct gsm48_meas_res *meas_res; uint8_t upper; uint8_t lower; + uint8_t rxqual; if (!lchan->repeated_acch_capability.dl_facch_cmd && !lchan->repeated_acch_capability.dl_facch_all) @@ -1008,10 +1009,19 @@ void repeated_dl_facch_active_decision(struct gsm_lchan *lchan, const uint8_t *l lower = lchan->repeated_acch_capability.rxqual - 2; else lower = 0; - if (meas_res->rxqual_sub >= upper) + + /* When downlink DTX is applied, use RXQUAL-SUB, otherwise use + * RXQUAL-FULL. */ + if (meas_res->dtx_used) + rxqual = meas_res->rxqual_sub; + else + rxqual = meas_res->rxqual_full; + + if (rxqual >= upper) lchan->repeated_dl_facch_active = true; else if (meas_res->rxqual_sub <= lower) lchan->repeated_dl_facch_active = false; + } /* Special dequeueing function with SACCH repetition (3GPP TS 44.006, section 11) */ |