Feature #1545
opencontinuous timing advance loop using PTCCH
60%
Description
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.
Related issues
Updated by msuraev over 7 years ago
- Related to Feature #1526: Acquire/update timing advance (TA) added
Updated by msuraev over 7 years ago
- Related to Bug #1796: PTCCH activation breaks dyn TS added
Updated by msuraev over 7 years ago
- Related to deleted (Bug #1796: PTCCH activation breaks dyn TS)
Updated by msuraev over 7 years ago
- Blocked by Bug #1796: PTCCH activation breaks dyn TS added
Updated by msuraev over 7 years ago
- Status changed from New to Stalled
We need to figure out the way to activate PTCCH without breaking dyn TS - see #1796.
Updated by msuraev over 7 years ago
According to 3GPP TS 45.002 ยง 6.3.2.2.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.
Updated by fixeria over 4 years ago
- Related to Bug #4102: osmo-bts-trx: incorrect PTCCH handling added
Updated by lynxis over 4 years ago
- Spec Reference set to 44.006 7.8.17.9 | 44.018 3.5.3.1 | 45.010 6.5.2 | 45.002 7 Mapping Table 6
Updated by lynxis over 4 years ago
- Spec Reference changed from 44.006 7.8.17.9 | 44.018 3.5.3.1 | 45.010 6.5.2 | 45.002 7 Mapping Table 6 to 44.006 7.8 + 7.9 | 44.018 3.5.3.1 | 45.010 6.5.2 | 45.002 7 Mapping Table 6
Updated by fixeria over 4 years ago
- % Done changed from 0 to 20
Please see: https://gerrit.osmocom.org/r/I887c8922446d0c1a959e6f2678f50e5754f55e83 and https://gerrit.osmocom.org/r/I868f78e3e95a95f8f2e55e237eea700d7d4726a3. IMHO, it should be rather easy to implement this feature. I see a potential implementation as a class (e.g. PTCCHControl) that will provide the following methods:
/* Obtain an unused TA Index for a TBF */ uint8_t PTCCHControl::obtain_tai(void); /* Mark a given TA Index as free, so it can be used again */ void PTCCHControl:release_tai(uint8_t tai); /* Update the actual Timing Advance value for a given TA Index */ void PTCCHControl:update_ta(uint8_t tai, int16_t toa); /* Generate a to be transmitted PTCCH/D block (23 octets) */ void PTCCHControl:gen_ptcch_msg(uint8_t buf[23]);
Therefore each time-slot object should be associated with an instance of PTCCHControl.
Updated by fixeria over 4 years ago
- % Done changed from 20 to 80
Please see: https://git.osmocom.org/osmo-pcu/log/?h=fixeria/ptcch.
I could not resist :D The only missing part now is TAI assignment on TBF allocation.
Also, while testing this branch I found several problems in my TTCN-3 test case:
https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/15678
https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/15679
Also, there is a problem in the PCU interface: RACH.ind message does not contain TRX / TS number fields.
We may have multiple PDCH time-slots on multiple transceivers, and we need to know the origin of Access Bursts on PTCCH/U.
Updated by fixeria about 4 years ago
- Status changed from Stalled to In Progress
- % Done changed from 80 to 90
Updated by fixeria about 4 years ago
- Status changed from In Progress to Stalled
- % Done changed from 90 to 60
Updated by fixeria almost 4 years ago
- Spec Reference changed from 44.006 7.8 + 7.9 | 44.018 3.5.3.1 | 45.010 6.5.2 | 45.002 7 Mapping Table 6 to 44.004 7.8 + 7.9 | 44.018 3.5.3.1 | 45.010 6.5.2 | 45.002 7 Mapping Table 6
Updated by fixeria almost 4 years ago
- Related to Bug #4500: osmo-bts-{sysmo,oc2g,litecell15}: PTCCH/U is not enabled on PDCH timeslots added