Finish dump procedure for UCI.indication message
Remove unnecessary checks on free_uci_indication
This commit is contained in:
@@ -930,72 +930,56 @@ void free_crc_indication(nfapi_nr_crc_indication_t *msg)
|
||||
|
||||
void free_uci_indication(nfapi_nr_uci_indication_t *msg)
|
||||
{
|
||||
if (msg->uci_list) {
|
||||
for (int pdu_idx = 0; pdu_idx < msg->num_ucis; ++pdu_idx) {
|
||||
nfapi_nr_uci_t *uci_pdu = &msg->uci_list[pdu_idx];
|
||||
switch (uci_pdu->pdu_type) {
|
||||
case NFAPI_NR_UCI_PUSCH_PDU_TYPE: {
|
||||
nfapi_nr_uci_pusch_pdu_t *pdu = &uci_pdu->pusch_pdu;
|
||||
// Bit 0 not used in PUSCH PDU
|
||||
// HARQ
|
||||
if ((pdu->pduBitmap >> 1) & 0x01) {
|
||||
if (pdu->harq.harq_payload) {
|
||||
free(pdu->harq.harq_payload);
|
||||
}
|
||||
}
|
||||
// CSI Part 1
|
||||
if ((pdu->pduBitmap >> 2) & 0x01) {
|
||||
if (pdu->csi_part1.csi_part1_payload) {
|
||||
free(pdu->csi_part1.csi_part1_payload);
|
||||
}
|
||||
}
|
||||
// CSI Part 2
|
||||
if ((pdu->pduBitmap >> 3) & 0x01) {
|
||||
if (pdu->csi_part2.csi_part2_payload) {
|
||||
free(pdu->csi_part2.csi_part2_payload);
|
||||
}
|
||||
}
|
||||
break;
|
||||
for (int pdu_idx = 0; pdu_idx < msg->num_ucis; ++pdu_idx) {
|
||||
nfapi_nr_uci_t *uci_pdu = &msg->uci_list[pdu_idx];
|
||||
switch (uci_pdu->pdu_type) {
|
||||
case NFAPI_NR_UCI_PUSCH_PDU_TYPE: {
|
||||
nfapi_nr_uci_pusch_pdu_t *pdu = &uci_pdu->pusch_pdu;
|
||||
// Bit 0 not used in PUSCH PDU
|
||||
// HARQ
|
||||
if ((pdu->pduBitmap >> 1) & 0x01) {
|
||||
free(pdu->harq.harq_payload);
|
||||
}
|
||||
case NFAPI_NR_UCI_FORMAT_0_1_PDU_TYPE: {
|
||||
// Nothing to free
|
||||
break;
|
||||
// CSI Part 1
|
||||
if ((pdu->pduBitmap >> 2) & 0x01) {
|
||||
free(pdu->csi_part1.csi_part1_payload);
|
||||
}
|
||||
case NFAPI_NR_UCI_FORMAT_2_3_4_PDU_TYPE: {
|
||||
nfapi_nr_uci_pucch_pdu_format_2_3_4_t *pdu = &uci_pdu->pucch_pdu_format_2_3_4;
|
||||
// SR
|
||||
if (pdu->pduBitmap & 0x01) {
|
||||
if (pdu->sr.sr_payload) {
|
||||
free(pdu->sr.sr_payload);
|
||||
}
|
||||
}
|
||||
// HARQ
|
||||
if ((pdu->pduBitmap >> 1) & 0x01) {
|
||||
if (pdu->harq.harq_payload) {
|
||||
free(pdu->harq.harq_payload);
|
||||
}
|
||||
}
|
||||
// CSI Part 1
|
||||
if ((pdu->pduBitmap >> 2) & 0x01) {
|
||||
if (pdu->csi_part1.csi_part1_payload) {
|
||||
free(pdu->csi_part1.csi_part1_payload);
|
||||
}
|
||||
}
|
||||
// CSI Part 2
|
||||
if ((pdu->pduBitmap >> 3) & 0x01) {
|
||||
if (pdu->csi_part2.csi_part2_payload) {
|
||||
free(pdu->csi_part2.csi_part2_payload);
|
||||
}
|
||||
}
|
||||
break;
|
||||
// CSI Part 2
|
||||
if ((pdu->pduBitmap >> 3) & 0x01) {
|
||||
free(pdu->csi_part2.csi_part2_payload);
|
||||
}
|
||||
default:
|
||||
AssertFatal(1 == 0, "Unknown UCI.indication PDU Type %d\n", uci_pdu->pdu_type);
|
||||
break;
|
||||
break;
|
||||
}
|
||||
case NFAPI_NR_UCI_FORMAT_0_1_PDU_TYPE: {
|
||||
// Nothing to free
|
||||
break;
|
||||
}
|
||||
case NFAPI_NR_UCI_FORMAT_2_3_4_PDU_TYPE: {
|
||||
nfapi_nr_uci_pucch_pdu_format_2_3_4_t *pdu = &uci_pdu->pucch_pdu_format_2_3_4;
|
||||
// SR
|
||||
if (pdu->pduBitmap & 0x01) {
|
||||
free(pdu->sr.sr_payload);
|
||||
}
|
||||
// HARQ
|
||||
if ((pdu->pduBitmap >> 1) & 0x01) {
|
||||
free(pdu->harq.harq_payload);
|
||||
}
|
||||
// CSI Part 1
|
||||
if ((pdu->pduBitmap >> 2) & 0x01) {
|
||||
free(pdu->csi_part1.csi_part1_payload);
|
||||
}
|
||||
// CSI Part 2
|
||||
if ((pdu->pduBitmap >> 3) & 0x01) {
|
||||
free(pdu->csi_part2.csi_part2_payload);
|
||||
}
|
||||
break;
|
||||
}
|
||||
default:
|
||||
AssertFatal(1 == 0, "Unknown UCI.indication PDU Type %d\n", uci_pdu->pdu_type);
|
||||
break;
|
||||
}
|
||||
free(msg->uci_list);
|
||||
}
|
||||
free(msg->uci_list);
|
||||
}
|
||||
|
||||
void free_srs_indication(nfapi_nr_srs_indication_t *msg)
|
||||
@@ -2688,6 +2672,134 @@ void dump_crc_indication(const nfapi_nr_crc_indication_t *msg)
|
||||
}
|
||||
}
|
||||
|
||||
static void dump_harq_2_3_4(const nfapi_nr_harq_pdu_2_3_4_t *harq, int depth)
|
||||
{
|
||||
INDENTED_PRINTF("HARQ CRC = %01x\n", harq->harq_crc);
|
||||
INDENTED_PRINTF("HARQ Bit Length = %d\n", harq->harq_bit_len);
|
||||
INDENTED_PRINTF("HARQ Payload = ");
|
||||
for (int i = 0; i < harq->harq_bit_len / 8 + 1; i++) {
|
||||
printf("%x ", harq->harq_payload[i]);
|
||||
}
|
||||
printf("\n");
|
||||
}
|
||||
|
||||
static void dump_csi_part_1(const nfapi_nr_csi_part1_pdu_t *csi, int depth)
|
||||
{
|
||||
INDENTED_PRINTF("CSI Part 1 CRC = %01x\n", csi->csi_part1_crc);
|
||||
INDENTED_PRINTF("CSI Part 1 Bit Length = %d\n", csi->csi_part1_bit_len);
|
||||
INDENTED_PRINTF("CSI Part 1 Payload = ");
|
||||
for (int i = 0; i < csi->csi_part1_bit_len / 8 + 1; i++) {
|
||||
printf("%x ", csi->csi_part1_payload[i]);
|
||||
}
|
||||
printf("\n");
|
||||
}
|
||||
|
||||
static void dump_csi_part_2(const nfapi_nr_csi_part2_pdu_t *csi, int depth)
|
||||
{
|
||||
INDENTED_PRINTF("CSI Part 1 CRC = %01x\n", csi->csi_part2_crc);
|
||||
INDENTED_PRINTF("CSI Part 1 Bit Length = %d\n", csi->csi_part2_bit_len);
|
||||
INDENTED_PRINTF("CSI Part 1 Payload = ");
|
||||
for (int i = 0; i < csi->csi_part2_bit_len / 8 + 1; i++) {
|
||||
printf("%x ", csi->csi_part2_payload[i]);
|
||||
}
|
||||
printf("\n");
|
||||
}
|
||||
|
||||
static void dump_uci_PUSCH_PDU(const nfapi_nr_uci_pusch_pdu_t *pdu, int depth)
|
||||
{
|
||||
INDENTED_PRINTF("PDU Bitmap = 0x%01x\n", pdu->pduBitmap);
|
||||
INDENTED_PRINTF("Handle = 0x%04x\n", pdu->handle);
|
||||
INDENTED_PRINTF("RNTI = 0x%02x\n", pdu->rnti);
|
||||
INDENTED_PRINTF("UL_CQI = 0x%02x\n", pdu->ul_cqi);
|
||||
INDENTED_PRINTF("Timing Advance = 0x%02x\n", pdu->timing_advance);
|
||||
INDENTED_PRINTF("RSSI = 0x%02x\n", pdu->rssi);
|
||||
// HARQ payload, CSI Part 1 and 2 are conditionally allocated
|
||||
if ((pdu->pduBitmap >> 1) & 0x01) {
|
||||
INDENTED_PRINTF("HARQ Information\n");
|
||||
dump_harq_2_3_4(&pdu->harq, depth + 1);
|
||||
}
|
||||
if ((pdu->pduBitmap >> 2) & 0x01) {
|
||||
INDENTED_PRINTF("CSI Part 1\n");
|
||||
dump_csi_part_1(&pdu->csi_part1, depth + 1);
|
||||
}
|
||||
if ((pdu->pduBitmap >> 3) & 0x01) {
|
||||
INDENTED_PRINTF("CSI Part 1\n");
|
||||
dump_csi_part_2(&pdu->csi_part2, depth + 1);
|
||||
}
|
||||
}
|
||||
|
||||
static void dump_sr_0_1(const nfapi_nr_sr_pdu_0_1_t *sr, int depth)
|
||||
{
|
||||
INDENTED_PRINTF("SR Indication = 0x%02x\n", sr->sr_indication);
|
||||
INDENTED_PRINTF("SR Confidence Level = 0x%02x\n", sr->sr_confidence_level);
|
||||
}
|
||||
|
||||
static void dump_harq_0_1(const nfapi_nr_harq_pdu_0_1_t *harq, int depth)
|
||||
{
|
||||
INDENTED_PRINTF("Num HARQ = 0x%02x\n", harq->num_harq);
|
||||
INDENTED_PRINTF("HARQ Confidence Level = 0x%02x\n", harq->harq_confidence_level);
|
||||
depth++;
|
||||
for (int i = 0; i < harq->num_harq; i++) {
|
||||
INDENTED_PRINTF("HARQ Value[%d] : 0x%02x \n", i, harq->harq_list[i].harq_value);
|
||||
}
|
||||
}
|
||||
|
||||
static void dump_uci_PUCCH_0_1(const nfapi_nr_uci_pucch_pdu_format_0_1_t *pdu, int depth)
|
||||
{
|
||||
INDENTED_PRINTF("PDU Bitmap = 0x%01x\n", pdu->pduBitmap);
|
||||
INDENTED_PRINTF("Handle = 0x%04x\n", pdu->handle);
|
||||
INDENTED_PRINTF("RNTI = 0x%02x\n", pdu->rnti);
|
||||
INDENTED_PRINTF("PUCCH Format = 0x%02x\n", pdu->pucch_format);
|
||||
INDENTED_PRINTF("UL_CQI = 0x%02x\n", pdu->ul_cqi);
|
||||
INDENTED_PRINTF("Timing Advance = 0x%02x\n", pdu->timing_advance);
|
||||
INDENTED_PRINTF("RSSI = 0x%02x\n", pdu->rssi);
|
||||
if ((pdu->pduBitmap) & 0x01) {
|
||||
INDENTED_PRINTF("SR Information\n");
|
||||
dump_sr_0_1(&pdu->sr, depth + 1);
|
||||
}
|
||||
if ((pdu->pduBitmap >> 1) & 0x01) {
|
||||
INDENTED_PRINTF("HARQ Information\n");
|
||||
dump_harq_0_1(&pdu->harq, depth + 1);
|
||||
}
|
||||
}
|
||||
|
||||
static void dump_sr_2_3_4(const nfapi_nr_sr_pdu_2_3_4_t *sr, int depth)
|
||||
{
|
||||
INDENTED_PRINTF("SR Bit Length = %d\n", sr->sr_bit_len);
|
||||
INDENTED_PRINTF("SR Payload ");
|
||||
for (int i = 0; i < sr->sr_bit_len / 8 + 1; i++) {
|
||||
printf("%x ", sr->sr_payload[i]);
|
||||
}
|
||||
printf("\n");
|
||||
}
|
||||
|
||||
static void dump_uci_PUCCH_2_3_4(const nfapi_nr_uci_pucch_pdu_format_2_3_4_t *pdu, int depth)
|
||||
{
|
||||
INDENTED_PRINTF("PDU Bitmap = 0x%01x\n", pdu->pduBitmap);
|
||||
INDENTED_PRINTF("Handle = 0x%04x\n", pdu->handle);
|
||||
INDENTED_PRINTF("RNTI = 0x%02x\n", pdu->rnti);
|
||||
INDENTED_PRINTF("PUCCH Format = 0x%02x\n", pdu->pucch_format);
|
||||
INDENTED_PRINTF("UL_CQI = 0x%02x\n", pdu->ul_cqi);
|
||||
INDENTED_PRINTF("Timing Advance = 0x%02x\n", pdu->timing_advance);
|
||||
INDENTED_PRINTF("RSSI = 0x%02x\n", pdu->rssi);
|
||||
// SR
|
||||
if (pdu->pduBitmap & 0x01) {
|
||||
dump_sr_2_3_4(&pdu->sr, depth + 1);
|
||||
}
|
||||
// HARQ
|
||||
if ((pdu->pduBitmap >> 1) & 0x01) {
|
||||
dump_harq_2_3_4(&pdu->harq, depth + 1);
|
||||
}
|
||||
// CSI Part 1
|
||||
if ((pdu->pduBitmap >> 2) & 0x01) {
|
||||
dump_csi_part_1(&pdu->csi_part1, depth + 1);
|
||||
}
|
||||
// CSI Part 2
|
||||
if ((pdu->pduBitmap >> 3) & 0x01) {
|
||||
dump_csi_part_2(&pdu->csi_part2, depth + 1);
|
||||
}
|
||||
}
|
||||
|
||||
void dump_uci_indication(const nfapi_nr_uci_indication_t *msg)
|
||||
{
|
||||
int depth = 0;
|
||||
@@ -2704,6 +2816,20 @@ void dump_uci_indication(const nfapi_nr_uci_indication_t *msg)
|
||||
INDENTED_PRINTF("PDUType = 0x%02x\n", uci->pdu_type);
|
||||
INDENTED_PRINTF("PDUSize = 0x%02x\n", uci->pdu_size);
|
||||
/* call to dump_uci_indication_<PDU_Type>_pdu */
|
||||
switch (uci->pdu_type) {
|
||||
case NFAPI_NR_UCI_PUSCH_PDU_TYPE:
|
||||
dump_uci_PUSCH_PDU(&uci->pusch_pdu, depth + 1);
|
||||
break;
|
||||
case NFAPI_NR_UCI_FORMAT_0_1_PDU_TYPE:
|
||||
dump_uci_PUCCH_0_1(&uci->pucch_pdu_format_0_1, depth + 1);
|
||||
break;
|
||||
case NFAPI_NR_UCI_FORMAT_2_3_4_PDU_TYPE:
|
||||
dump_uci_PUCCH_2_3_4(&uci->pucch_pdu_format_2_3_4, depth + 1);
|
||||
break;
|
||||
default:
|
||||
INDENTED_PRINTF("Unknown PDU type 0x%02x\n", uci->pdu_type);
|
||||
break;
|
||||
}
|
||||
depth--;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user