diff --git a/srslte/include/srslte/phch/ra.h b/srslte/include/srslte/phch/ra.h index 176ccecf9..52e8764a9 100644 --- a/srslte/include/srslte/phch/ra.h +++ b/srslte/include/srslte/phch/ra.h @@ -132,6 +132,8 @@ typedef struct SRSLTE_API { bool pconf; bool power_offset; + uint8_t tpc_pucch; + uint32_t nof_tb; bool dci_is_1a; @@ -179,7 +181,7 @@ typedef struct SRSLTE_API { uint32_t n_dmrs; bool ndi; bool cqi_request; - uint32_t tpc_pusch; + uint8_t tpc_pusch; } srslte_ra_ul_dci_t; diff --git a/srslte/lib/phch/dci.c b/srslte/lib/phch/dci.c index 49351231a..7699ae57d 100644 --- a/srslte/lib/phch/dci.c +++ b/srslte/lib/phch/dci.c @@ -445,7 +445,7 @@ int dci_format0_pack(srslte_ra_ul_dci_t *data, srslte_dci_msg_t *msg, uint32_t n *y++ = data->ndi; - // TCP command + // TCP command for PUSCH srslte_bit_unpack(data->tpc_pusch, &y, 2); // DM RS not implemented @@ -563,9 +563,8 @@ int dci_format1_pack(srslte_ra_dl_dci_t *data, srslte_dci_msg_t *msg, uint32_t n // rv version srslte_bit_unpack(data->rv_idx, &y, 2); - // TPC not implemented - *y++ = 0; - *y++ = 0; + // TCP command for PUCCH + srslte_bit_unpack(data->tpc_pucch, &y, 2); // Padding with zeros uint32_t n = srslte_dci_format_sizeof_lut(SRSLTE_DCI_FORMAT1, nof_prb);