Track TDMA clock with DATA.ind instead of TIME.ind

Since recently (see Depends below), BTS side submits DATA.ind with len=0
to announce nothing was received on that UL block FN. This will allow
osmo-pcu track time more accurately, and use this information to quickly
find out if a UL block was expected as requested by RRBP or USF poll and
increment counters such as N3101 (finally being able to properly
implement timers such as T3619).

Depends: osmo-bts.git Change-Id I343c7a721dab72411edbca816c8864926bc329fb
Related: OS#5020

Change-Id: Ibc495173119465e74f726ddc36e312334e6dc0fd
This commit is contained in:
Pau Espin 2021-03-05 18:59:05 +01:00 committed by laforge
parent 5447f3acf6
commit 30617115ba
3 changed files with 145 additions and 141 deletions

View File

@ -806,7 +806,8 @@ static int pcu_rx_time_ind(struct gprs_rlcmac_bts *bts, struct gsm_pcu_if_time_i
LOGP(DL1IF, LOGL_DEBUG, "Time indication received: %d\n", time_ind->fn % 52);
bts_set_current_frame_number(bts, time_ind->fn);
/* Ignore TIME.ind completely, we nowadays relay on DATA.ind always
* providing all block FNs. */
return 0;
}

View File

@ -794,6 +794,9 @@ free_ret:
int gprs_rlcmac_pdch::rcv_block(uint8_t *data, uint8_t len, uint32_t fn,
struct pcu_l1_meas *meas)
{
/* First of all, update TDMA clock: */
bts_set_current_frame_number(trx->bts, fn);
/* No successfully decoded UL block was received during this FN: */
if (len == 0) {
/* TODO: Here, in the future, it can be checked whether a UL block was expected for:

File diff suppressed because it is too large Load Diff