rlcmac: do not attempt to decode PTCCH/D blocks, discard them

PTCCH/D blocks use different encoding than PDTCH/D blocks, and passing
them to gprs_rlcmac_handle_gprs_dl_block() results in decoding errors:

  DRLCMAC NOTICE rlcmac.c:496 Failed decoding dl ctrl block:
  7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 7f 2b 2b 2b 2b 2b 2b 2b

We don't implement PTCCH yet, so discard these blocks starting at
Fn=12 within the period of 104 frames (see 3GPP 45.002, table 6).

Change-Id: I555004987cf2daa995b9ea21c90ac699199c4e9a
Vadim Yanitskiy 2023-03-17 08:58:08 +07:00
parent 2057567ce9
commit cce691d19e
1 changed files with 6 additions and 0 deletions

View File

@ -491,6 +491,12 @@ static int rlcmac_prim_handle_l1ctl_pdch_data_ind(struct osmo_gprs_rlcmac_prim *
return -EINVAL;
/* TODO: handle PTCCH/D (Packet Timing Control CHannel) blocks */
if ((rlcmac_prim->l1ctl.pdch_data_ind.fn % 104) == 12) {
LOGRLCMAC(LOGL_DEBUG, "Dropping PTCCH/D block (not implemented)\n");
return 0;
if (gprs_rlcmac_mcs_is_gprs(cs))
return gprs_rlcmac_handle_gprs_dl_block(rlcmac_prim, cs);