Bug #4500
openosmo-bts-{sysmo,oc2g,litecell15}: PTCCH/U is not enabled on PDCH timeslots
40%
Description
Enabling GsmL1_Sapi_Ptcch on direction GsmL1_Dir_RxUplink fails for the black-box DSP based models:
<0006> oml.c:511 activating (bts=0,trx=0,ts=7,ss=0) pchan=PDCH ts_connect_as(PDCH) logChComb=pdtch <0006> oml.c:808 Successful activation of L1 SAPI PDTCH on TS 7 <-- Downlink <0006> oml.c:808 Successful activation of L1 SAPI PTCCH on TS 7 <-- Downlink <0006> oml.c:808 Successful activation of L1 SAPI PRACH on TS 7 <-- Uplink <0006> oml.c:808 Successful activation of L1 SAPI PDTCH on TS 7 <-- Uplink <0006> oml.c:813 Error activating L1 SAPI PTCCH on TS 7: Invalid parameter <-- Uplink
This is needed in order to support Continuous Timing Advance procedures on PDCH (see #1545).
At the moment we can only send PTCCH blocks on Downlink, while the Access Burst (PTCCH/U) detection task is not enabled:
static const struct sapi_dir pdtch_sapis[] = {
{ GsmL1_Sapi_Pdtch, GsmL1_Dir_TxDownlink },
{ GsmL1_Sapi_Pdtch, GsmL1_Dir_RxUplink },
{ GsmL1_Sapi_Ptcch, GsmL1_Dir_TxDownlink },
{ GsmL1_Sapi_Prach, GsmL1_Dir_RxUplink },
#if 0
{ GsmL1_Sapi_Ptcch, GsmL1_Dir_RxUplink }, // <-- PTCCH/U
{ GsmL1_Sapi_Pacch, GsmL1_Dir_TxDownlink },
#endif
};
This SAPI has been disabled on purpose, because the error indication breaks dynamic timeslots in the BSC (see #1796).
My best guess is that the DSP does not allow to enable both GsmL1_Sapi_Prach (Uplink) and GsmL1_Sapi_Ptcch (Uplink) at the same time. As was pointed out by Max, according to the DSP's docs the only channel combination with PTCCH support is GsmL1_LogChComb_XIII. As per 3GPP TS 45.002, this combination XIII includes the following channels:
- PDTCH/F
- PACCH/F
- PTCCH/F
and PRACH is not a part of it! Perhaps we should enable GsmL1_Sapi_Pacch on GsmL1_Dir_RxUplink instead of GsmL1_Sapi_Prach in order to support Packet Control Ack in form of four Access Bursts, and try enabling GsmL1_Sapi_Ptcch on GsmL1_Dir_RxUplink:
static const struct sapi_dir pdtch_sapis[] = {
{ GsmL1_Sapi_Pdtch, GsmL1_Dir_TxDownlink },
{ GsmL1_Sapi_Pdtch, GsmL1_Dir_RxUplink },
/* PTCCH/D and PTCCH/U for Continuous Timing Advance loop */
{ GsmL1_Sapi_Ptcch, GsmL1_Dir_TxDownlink },
{ GsmL1_Sapi_Ptcch, GsmL1_Dir_RxUplink },
/* Packet Control Ack in form of four Access Bursts */
{ GsmL1_Sapi_Pacch, GsmL1_Dir_RxUplink },
};
I don't have a possibility to verify my (potentially wrong) assumption, so waiting for remote access to be provided by laforge.
Related issues