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)
|
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) {
|
||||||
for (int pdu_idx = 0; pdu_idx < msg->num_ucis; ++pdu_idx) {
|
nfapi_nr_uci_t *uci_pdu = &msg->uci_list[pdu_idx];
|
||||||
nfapi_nr_uci_t *uci_pdu = &msg->uci_list[pdu_idx];
|
switch (uci_pdu->pdu_type) {
|
||||||
switch (uci_pdu->pdu_type) {
|
case NFAPI_NR_UCI_PUSCH_PDU_TYPE: {
|
||||||
case NFAPI_NR_UCI_PUSCH_PDU_TYPE: {
|
nfapi_nr_uci_pusch_pdu_t *pdu = &uci_pdu->pusch_pdu;
|
||||||
nfapi_nr_uci_pusch_pdu_t *pdu = &uci_pdu->pusch_pdu;
|
// Bit 0 not used in PUSCH PDU
|
||||||
// Bit 0 not used in PUSCH PDU
|
// HARQ
|
||||||
// HARQ
|
if ((pdu->pduBitmap >> 1) & 0x01) {
|
||||||
if ((pdu->pduBitmap >> 1) & 0x01) {
|
free(pdu->harq.harq_payload);
|
||||||
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;
|
|
||||||
}
|
}
|
||||||
case NFAPI_NR_UCI_FORMAT_0_1_PDU_TYPE: {
|
// CSI Part 1
|
||||||
// Nothing to free
|
if ((pdu->pduBitmap >> 2) & 0x01) {
|
||||||
break;
|
free(pdu->csi_part1.csi_part1_payload);
|
||||||
}
|
}
|
||||||
case NFAPI_NR_UCI_FORMAT_2_3_4_PDU_TYPE: {
|
// CSI Part 2
|
||||||
nfapi_nr_uci_pucch_pdu_format_2_3_4_t *pdu = &uci_pdu->pucch_pdu_format_2_3_4;
|
if ((pdu->pduBitmap >> 3) & 0x01) {
|
||||||
// SR
|
free(pdu->csi_part2.csi_part2_payload);
|
||||||
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;
|
|
||||||
}
|
}
|
||||||
default:
|
break;
|
||||||
AssertFatal(1 == 0, "Unknown UCI.indication PDU Type %d\n", uci_pdu->pdu_type);
|
|
||||||
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)
|
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)
|
void dump_uci_indication(const nfapi_nr_uci_indication_t *msg)
|
||||||
{
|
{
|
||||||
int depth = 0;
|
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("PDUType = 0x%02x\n", uci->pdu_type);
|
||||||
INDENTED_PRINTF("PDUSize = 0x%02x\n", uci->pdu_size);
|
INDENTED_PRINTF("PDUSize = 0x%02x\n", uci->pdu_size);
|
||||||
/* call to dump_uci_indication_<PDU_Type>_pdu */
|
/* 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--;
|
depth--;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user