diff options
author | Minh-Quang Nguyen <minh-quang.nguyen@nutaq.com> | 2017-11-01 14:41:37 -0400 |
---|---|---|
committer | Minh-Quang Nguyen <minh-quang.nguyen@nutaq.com> | 2017-11-16 10:06:41 -0500 |
commit | 1bcfa9aacfef875f21aeb3d6b5bd393b069e4183 (patch) | |
tree | 67df2d9c8deefbdd38198935ec4ee1c40db5a6c8 /src/osmo-bts-sysmo | |
parent | bfc54b551b614815705d0711db5bdbd2fa240aec (diff) |
PCU: Fix TA adjustment
Promblem:
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.
Change-Id: I65212f8203f1a35278890f51db038d689b2493d5
Diffstat (limited to 'src/osmo-bts-sysmo')
-rw-r--r-- | src/osmo-bts-sysmo/sysmo_l1_if.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/osmo-bts-sysmo/sysmo_l1_if.c b/src/osmo-bts-sysmo/sysmo_l1_if.c index 1c5ecc93..dfef2398 100644 --- a/src/osmo-bts-sysmo/sysmo_l1_if.c +++ b/src/osmo-bts-sysmo/sysmo_l1_if.c @@ -188,7 +188,7 @@ static int handle_ph_data_ind(struct femtol1_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: @@ -237,7 +237,7 @@ static int handle_ph_ra_ind(struct femtol1_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)); + qta2ta(ra_ind->measParam.i16BurstTiming), true); return 0; } |