OC-2G: Fix TA adjustment

Problem:
 TA provided from L1 PH-DATA-IND is a relative amount of TA adjustment to actual TA
 being used for given TBF. The current TA update algorithm in PCU simply applies the relative
 amount of TA to given TBF but does not take into account of current TA.
 As a result, the PCU will request wrong TA jump for given TBF if the MS is moving away from
 BTS more than 2 km.

 Related issue: http://osmocom.org/issues/2611

Fixes:
- The PCU needs increase or decrease current TA of given TBF on receiving of relative
  amount of TA adjustment provided by PH-DATA-IND from L1.
- The PCU needs to set absolute TA of given TBF on receiving absolute TA provided by
  PH-RA-IND from L1.

From-Commit: 139ad3f42193
From-Remote: https://gitlab.com/nrw_noa/osmo-pcu
Change-Id: I7665586dd5722bbe04632ee5673d3033bc082324
This commit is contained in:
Minh-Quang Nguyen 2017-11-07 15:17:12 -05:00 committed by Daniel Willmann
parent 4a1796fe76
commit 2ba608415b
1 changed files with 2 additions and 2 deletions

View File

@ -210,7 +210,7 @@ static int handle_ph_data_ind(struct oc2gl1_hdl *fl1h,
get_meas(&meas, &data_ind->measParam);
bts_update_tbf_ta("PH-DATA", data_ind->u32Fn, fl1h->trx_no,
data_ind->u8Tn, qta2ta(meas.bto));
data_ind->u8Tn, sign_qta2ta(meas.bto), false);
switch (data_ind->sapi) {
case GsmL1_Sapi_Pdtch:
@ -250,7 +250,7 @@ static int handle_ph_ra_ind(struct oc2gl1_hdl *fl1h, GsmL1_PhRaInd_t *ra_ind)
DEBUGP(DL1IF, "Rx PH-RA.ind");
bts_update_tbf_ta("PH-RA", ra_ind->u32Fn, fl1h->trx_no, ra_ind->u8Tn,
qta2ta(ra_ind->measParam.i16BurstTiming));
sign_qta2ta(ra_ind->measParam.i16BurstTiming), true);
return 0;
}