continuous timing advance loop using PTCCH
We currently only implement the "initial TA" where the TA of a MS is determined at time the TBF is established. If the MS moves more than 1 TA during a TBF being active, this leads to problems.GPRS has the PTCCH for this, a special channel in the PDCH channel combination multiplex, using which we can instruct a sub-set of 16 MS (whether TBFs are active or not) to adjust their timing advance continuously. What needs to be done is
- code to generate the PTCCH/D messages
- code to parse the PTCCH/U messages
- code to determine which 16 MS will be part of the current PTCCH subset
- unit tests for the above
We also need to see how we can test this with actual hardware, in a way that TA exists (and changes) over time. Unfortuantely we don't have a MS-side GPRS implementation for OsmocomBB, because then we could simply artificially delay the transmit burst timing to make the network determine a higher TA.
#10 Updated by msuraev about 1 year ago
According to 3GPP TS 45.002 § 18.104.22.168.2 PTCCH/U is allocated on one of the TS where PDTCH are allocated to the MS. MS will send RACH in there. PTCCH/U have subchannels (0...15) assigned to different MS using TAI. PTCCH/D allocation is in Clause 7 Table 6 in the same spec. PTCCH/D frames are encoded using CS-1.