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
This commit is contained in:
Philipp Maier 2021-01-13 00:30:09 +01:00
parent b327c9598c
commit 25b11f473a
1 changed files with 11 additions and 1 deletions

View File

@ -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) */