aboutsummaryrefslogtreecommitdiffstats
path: root/src/osmo-bts-oc2g/oc2g_l1_if.c
diff options
context:
space:
mode:
authorMinh-Quang Nguyen <minh-quang.nguyen@nutaq.com>2017-11-08 08:55:07 -0500
committerDaniel Willmann <dwillmann@sysmocom.de>2019-03-21 13:22:23 +0100
commit503ac187457d486e5d91d293fdfa44ad686181e2 (patch)
tree709d22a421977d4295c400e435a95458cb31e3c8 /src/osmo-bts-oc2g/oc2g_l1_if.c
parent6f5945fda3a8a94098920b06ad931845e03c2989 (diff)
OC-2G: Properly handle initial TA for data transfer initiated from networkdaniel/oc2g
Problem: 1. The network can not initiate data transfer when the MS is in idle mode (after T3314 in MS expired and ms-idle-timer in PCU expired). This is because the PCU does not know valid location of the MS in servicing cell, i.e. valid TA at the initiation of downlink data transfer. Fixes: 1. We use CONTROL_ACK_TYPE of 4 access bursts specified in SI13 in order to extract valid TA when the MS sends UPLINK PACKET CONTROL ACK message to the PCU. At the begining of data transfer initiated by network, the PCU sends a first PACKET DOWNLINK ASSIGNMENT message with an invalid TA and polling flag is set. After that PCU sends a second PACKET DOWNLINK ASSIGNMENT message with valid TA extracted from responsed UPLINK PACKET CONTROL ACK as 4 access bursts from MS to continue data transfer procedure. This fix works only for CONTROL_ACK_TYPE is configured as 4 access bursts in GPRS CELL OPTION of SI13. Change-Id: I3c76e5e1b8339ddb20da23b85ba267026a0ebf34
Diffstat (limited to 'src/osmo-bts-oc2g/oc2g_l1_if.c')
-rw-r--r--src/osmo-bts-oc2g/oc2g_l1_if.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/osmo-bts-oc2g/oc2g_l1_if.c b/src/osmo-bts-oc2g/oc2g_l1_if.c
index 9b7113bb..7d8981cf 100644
--- a/src/osmo-bts-oc2g/oc2g_l1_if.c
+++ b/src/osmo-bts-oc2g/oc2g_l1_if.c
@@ -251,7 +251,7 @@ static int handle_ph_ra_ind(struct oc2gl1_hdl *fl1h, GsmL1_PhRaInd_t *ra_ind)
bts_update_tbf_ta("PH-RA", ra_ind->u32Fn, fl1h->trx_no, ra_ind->u8Tn,
qta2ta(ra_ind->measParam.i16BurstTiming), true);
- return 0;
+ return pcu_rx_ra_ind_pdtch(fl1h->trx_no, ra_ind->u8Tn, ra_ind->u32Fn, qta2ta(ra_ind->measParam.i16BurstTiming));
}