Add dump procedures fir UL_TTI.request PDUs
Add examples of UL_TTI.request to examples.md Small fix on printing RNTI on DL_TTI.request PDSCH PDU on RNTI field
This commit is contained in:
@@ -2070,7 +2070,7 @@ static void dump_dl_tti_request_PDCCH_PDU(const nfapi_nr_dl_tti_pdcch_pdu_rel15_
|
||||
static void dump_dl_tti_request_PDSCH_PDU(const nfapi_nr_dl_tti_pdsch_pdu_rel15_t *pdu, int depth)
|
||||
{
|
||||
INDENTED_PRINTF("pduBitmap = %d\n", pdu->pduBitmap);
|
||||
INDENTED_PRINTF("RNTI = %x\n", pdu->rnti);
|
||||
INDENTED_PRINTF("RNTI = 0x%x\n", pdu->rnti);
|
||||
INDENTED_PRINTF("pduIndex = %d\n", pdu->pduIndex);
|
||||
INDENTED_PRINTF("BWPSize = %d\n", pdu->BWPSize);
|
||||
INDENTED_PRINTF("BWPStart = %d\n", pdu->BWPStart);
|
||||
@@ -2227,6 +2227,282 @@ void dump_dl_tti_request(const nfapi_nr_dl_tti_request_t *msg)
|
||||
}
|
||||
}
|
||||
|
||||
static void dump_ul_tti_beamforming(const nfapi_nr_ul_beamforming_t *pdu, int depth)
|
||||
{
|
||||
INDENTED_PRINTF("TRP Scheme = %d\n", pdu->trp_scheme);
|
||||
INDENTED_PRINTF("numPRGs = %d\n", pdu->num_prgs);
|
||||
INDENTED_PRINTF("prgSize = %d\n", pdu->prg_size);
|
||||
INDENTED_PRINTF("digBFInterface = %d\n", pdu->dig_bf_interface);
|
||||
for (int prg = 0; prg < pdu->num_prgs; ++prg) {
|
||||
INDENTED_PRINTF("PRG #%d \n", prg);
|
||||
depth++;
|
||||
for (int dbf_if = 0; dbf_if < pdu->dig_bf_interface; ++dbf_if) {
|
||||
INDENTED_PRINTF("digBFInterface #%d \n", dbf_if);
|
||||
depth++;
|
||||
INDENTED_PRINTF("beamIdx = %d\n", pdu->prgs_list[prg].dig_bf_interface_list[dbf_if].beam_idx);
|
||||
depth--;
|
||||
}
|
||||
depth--;
|
||||
}
|
||||
}
|
||||
|
||||
static char *ul_tti_prach_format_to_str(int prach_format)
|
||||
{
|
||||
switch (prach_format) {
|
||||
case 0:
|
||||
return "0";
|
||||
case 1:
|
||||
return "1";
|
||||
case 2:
|
||||
return "2";
|
||||
case 3:
|
||||
return "3";
|
||||
case 4:
|
||||
return "A1";
|
||||
case 5:
|
||||
return "A2";
|
||||
case 6:
|
||||
return "A3";
|
||||
case 7:
|
||||
return "B1";
|
||||
case 8:
|
||||
return "B4";
|
||||
case 9:
|
||||
return "C0";
|
||||
case 10:
|
||||
return "C2";
|
||||
case 11:
|
||||
return "A1/B1";
|
||||
case 12:
|
||||
return "A2/B2";
|
||||
case 13:
|
||||
return "A3/B3";
|
||||
default:
|
||||
return "Unknown";
|
||||
}
|
||||
}
|
||||
|
||||
static void dump_ul_tti_request_PRACH_PDU(const nfapi_nr_prach_pdu_t *pdu, int depth)
|
||||
{
|
||||
INDENTED_PRINTF("physCellID = %d\n", pdu->phys_cell_id);
|
||||
INDENTED_PRINTF("NumPrachOcas = %d\n", pdu->num_prach_ocas);
|
||||
INDENTED_PRINTF("prachFormat = %d (%s)\n", pdu->prach_format, ul_tti_prach_format_to_str(pdu->prach_format));
|
||||
INDENTED_PRINTF("numRa = %d\n", pdu->num_ra);
|
||||
INDENTED_PRINTF("prachStartSymbol = %d\n", pdu->prach_start_symbol);
|
||||
INDENTED_PRINTF("numCs = %d\n", pdu->num_cs);
|
||||
dump_ul_tti_beamforming(&pdu->beamforming, depth + 1);
|
||||
}
|
||||
|
||||
static void dump_ul_tti_request_PUSCH_PDU(const nfapi_nr_pusch_pdu_t *pdu, int depth)
|
||||
{
|
||||
INDENTED_PRINTF("pduBitmap = %d\n", pdu->pdu_bit_map);
|
||||
INDENTED_PRINTF("RNTI = 0x%x\n", pdu->rnti);
|
||||
INDENTED_PRINTF("Handle = %d\n", pdu->handle);
|
||||
INDENTED_PRINTF("BWPSize = %d\n", pdu->bwp_size);
|
||||
INDENTED_PRINTF("BWPStart = %d\n", pdu->bwp_start);
|
||||
INDENTED_PRINTF("SubcarrierSpacing = %d\n", pdu->subcarrier_spacing);
|
||||
INDENTED_PRINTF("CyclicPrefix = %d\n", pdu->cyclic_prefix);
|
||||
INDENTED_PRINTF("targetCodeRate = %d\n", pdu->target_code_rate);
|
||||
INDENTED_PRINTF("qamModOrder = %d\n", pdu->qam_mod_order);
|
||||
INDENTED_PRINTF("mcsIndex = %d\n", pdu->mcs_index);
|
||||
INDENTED_PRINTF("mcsTable = %d\n", pdu->mcs_table);
|
||||
INDENTED_PRINTF("TransformPrecoding = %d\n", pdu->transform_precoding);
|
||||
INDENTED_PRINTF("dataScramblingId = %d\n", pdu->data_scrambling_id);
|
||||
INDENTED_PRINTF("nrOfLayers = %d\n", pdu->nrOfLayers);
|
||||
INDENTED_PRINTF("ulDmrsSymbPos = %d\n", pdu->ul_dmrs_symb_pos);
|
||||
INDENTED_PRINTF("dmrsConfigType = %d\n", pdu->dmrs_config_type);
|
||||
INDENTED_PRINTF("ulDmrsScramblingId = %d\n", pdu->ul_dmrs_scrambling_id);
|
||||
INDENTED_PRINTF("puschIdentity = %d\n", pdu->pusch_identity);
|
||||
INDENTED_PRINTF("SCID = %d\n", pdu->scid);
|
||||
INDENTED_PRINTF("numDmrsCdmGrpsNoData = %d\n", pdu->num_dmrs_cdm_grps_no_data);
|
||||
INDENTED_PRINTF("dmrsPorts = %d\n", pdu->dmrs_ports);
|
||||
INDENTED_PRINTF("resourceAlloc = %d\n", pdu->resource_alloc);
|
||||
INDENTED_PRINTF("rbBitmap = ");
|
||||
for (int i = 0; i < 36; ++i) {
|
||||
printf("%d ", pdu->rb_bitmap[i]);
|
||||
}
|
||||
printf("\n");
|
||||
INDENTED_PRINTF("rbStart = %d\n", pdu->rb_start);
|
||||
INDENTED_PRINTF("rbSize = %d\n", pdu->rb_size);
|
||||
INDENTED_PRINTF("VRBtoPRBMapping = %d\n", pdu->vrb_to_prb_mapping);
|
||||
INDENTED_PRINTF("FrequencyHopping = %d\n", pdu->frequency_hopping);
|
||||
INDENTED_PRINTF("txDirectCurrentLocation = %d\n", pdu->tx_direct_current_location);
|
||||
INDENTED_PRINTF("uplinkFrequencyShift7p5khz = %d\n", pdu->uplink_frequency_shift_7p5khz);
|
||||
INDENTED_PRINTF("NrOfSymbols = %d\n", pdu->nr_of_symbols);
|
||||
|
||||
INDENTED_PRINTF("puschData (%s)\n", pdu->pdu_bit_map & PUSCH_PDU_BITMAP_PUSCH_DATA ? "included" : "not included");
|
||||
if (pdu->pdu_bit_map & PUSCH_PDU_BITMAP_PUSCH_DATA) {
|
||||
depth++;
|
||||
INDENTED_PRINTF("rvIndex = %d\n", pdu->pusch_data.rv_index);
|
||||
INDENTED_PRINTF("harqProcessID = %d\n", pdu->pusch_data.harq_process_id);
|
||||
INDENTED_PRINTF("newDataIndicator = %d\n", pdu->pusch_data.new_data_indicator);
|
||||
INDENTED_PRINTF("TBSize = %d\n", pdu->pusch_data.tb_size);
|
||||
INDENTED_PRINTF("numCB = %d\n", pdu->pusch_data.num_cb);
|
||||
INDENTED_PRINTF("cbPresentAndPosition = ");
|
||||
for (int i = 0; i < (pdu->pusch_data.num_cb + 7) / 8; i++) {
|
||||
printf("%d ", pdu->pusch_data.cb_present_and_position[i]);
|
||||
}
|
||||
printf("\n");
|
||||
depth--;
|
||||
}
|
||||
|
||||
INDENTED_PRINTF("puschUci (%s)\n", pdu->pdu_bit_map & PUSCH_PDU_BITMAP_PUSCH_UCI ? "included" : "not included");
|
||||
if (pdu->pdu_bit_map & PUSCH_PDU_BITMAP_PUSCH_UCI) {
|
||||
depth++;
|
||||
INDENTED_PRINTF("harqAckBitLength = %d\n", pdu->pusch_uci.harq_ack_bit_length);
|
||||
INDENTED_PRINTF("csiPart1BitLength = %d\n", pdu->pusch_uci.csi_part1_bit_length);
|
||||
INDENTED_PRINTF("csiPart2BitLength = %d\n", pdu->pusch_uci.csi_part2_bit_length);
|
||||
INDENTED_PRINTF("AlphaScaling = %d\n", pdu->pusch_uci.alpha_scaling);
|
||||
INDENTED_PRINTF("betaOffsetHarqAck = %d\n", pdu->pusch_uci.beta_offset_harq_ack);
|
||||
INDENTED_PRINTF("betaOffsetCsi1 = %d\n", pdu->pusch_uci.beta_offset_csi1);
|
||||
INDENTED_PRINTF("betaOffsetCsi2 = %d\n", pdu->pusch_uci.beta_offset_csi2);
|
||||
depth--;
|
||||
}
|
||||
|
||||
INDENTED_PRINTF("puschPtrs (%s)\n", pdu->pdu_bit_map & PUSCH_PDU_BITMAP_PUSCH_PTRS ? "included" : "not included");
|
||||
if (pdu->pdu_bit_map & PUSCH_PDU_BITMAP_PUSCH_PTRS) {
|
||||
depth++;
|
||||
INDENTED_PRINTF("lowPaprGroupNumber = %d\n", pdu->pusch_ptrs.num_ptrs_ports);
|
||||
for (int i = 0; i < pdu->pusch_ptrs.num_ptrs_ports; ++i) {
|
||||
INDENTED_PRINTF("ptrsPort #%d\n", i);
|
||||
depth++;
|
||||
INDENTED_PRINTF("PTRSPortIndex = %d\n", pdu->pusch_ptrs.ptrs_ports_list[i].ptrs_port_index);
|
||||
INDENTED_PRINTF("PTRSDmrsPort = %d\n", pdu->pusch_ptrs.ptrs_ports_list[i].ptrs_dmrs_port);
|
||||
INDENTED_PRINTF("PTRSReOffset = %d\n", pdu->pusch_ptrs.ptrs_ports_list[i].ptrs_re_offset);
|
||||
depth--;
|
||||
}
|
||||
INDENTED_PRINTF("PTRSTimeDensity = %d\n", pdu->pusch_ptrs.ptrs_time_density);
|
||||
INDENTED_PRINTF("PTRSFreqDensity = %d\n", pdu->pusch_ptrs.ptrs_freq_density);
|
||||
INDENTED_PRINTF("ulPTRSPower = %d\n", pdu->pusch_ptrs.ul_ptrs_power);
|
||||
depth--;
|
||||
}
|
||||
|
||||
INDENTED_PRINTF("dtfsOfdm (%s)\n", pdu->pdu_bit_map & PUSCH_PDU_BITMAP_DFTS_OFDM ? "included" : "not included");
|
||||
if (pdu->pdu_bit_map & PUSCH_PDU_BITMAP_DFTS_OFDM) {
|
||||
depth++;
|
||||
INDENTED_PRINTF("lowPaprGroupNumber = %d\n", pdu->dfts_ofdm.low_papr_group_number);
|
||||
INDENTED_PRINTF("lowPaprSequenceNumber = %d\n", pdu->dfts_ofdm.low_papr_sequence_number);
|
||||
INDENTED_PRINTF("ulPtrsSampleDensity = %d\n", pdu->dfts_ofdm.ul_ptrs_sample_density);
|
||||
INDENTED_PRINTF("ulPtrsTimeDensityTransformPrecoding = %d\n", pdu->dfts_ofdm.ul_ptrs_time_density_transform_precoding);
|
||||
depth--;
|
||||
}
|
||||
dump_ul_tti_beamforming(&pdu->beamforming, depth + 1);
|
||||
}
|
||||
|
||||
static void dump_ul_tti_request_PUCCH_PDU(const nfapi_nr_pucch_pdu_t *pdu, int depth)
|
||||
{
|
||||
INDENTED_PRINTF("RNTI = 0x%x\n", pdu->rnti);
|
||||
INDENTED_PRINTF("Handle = %d\n", pdu->handle);
|
||||
INDENTED_PRINTF("BWPSize = %d\n", pdu->bwp_size);
|
||||
INDENTED_PRINTF("BWPStart = %d\n", pdu->bwp_start);
|
||||
INDENTED_PRINTF("SubcarrierSpacing = %d\n", pdu->subcarrier_spacing);
|
||||
INDENTED_PRINTF("CyclicPrefix = %d\n", pdu->cyclic_prefix);
|
||||
INDENTED_PRINTF("FormatType = %d\n", pdu->format_type);
|
||||
INDENTED_PRINTF("multiSlotTxIndicator = %d\n", pdu->multi_slot_tx_indicator);
|
||||
INDENTED_PRINTF("pi2Bpsk = %d\n", pdu->pi_2bpsk);
|
||||
INDENTED_PRINTF("prbStart = %d\n", pdu->prb_start);
|
||||
INDENTED_PRINTF("prbSize = %d\n", pdu->prb_size);
|
||||
INDENTED_PRINTF("StartSymbolIndex = %d\n", pdu->start_symbol_index);
|
||||
INDENTED_PRINTF("NrOfSymbols = %d\n", pdu->nr_of_symbols);
|
||||
INDENTED_PRINTF("freqHopFlag = %d\n", pdu->freq_hop_flag);
|
||||
INDENTED_PRINTF("secondHopPRB = %d\n", pdu->second_hop_prb);
|
||||
INDENTED_PRINTF("groupHopFlag = %d\n", pdu->group_hop_flag);
|
||||
INDENTED_PRINTF("sequenceHopFlag = %d\n", pdu->sequence_hop_flag);
|
||||
INDENTED_PRINTF("hoppingId = %d\n", pdu->hopping_id);
|
||||
INDENTED_PRINTF("InitialCyclicShift = %d\n", pdu->initial_cyclic_shift);
|
||||
INDENTED_PRINTF("dataScramblingId = %d\n", pdu->data_scrambling_id);
|
||||
INDENTED_PRINTF("TimeDomainOccIdx = %d\n", pdu->time_domain_occ_idx);
|
||||
INDENTED_PRINTF("PreDftOccIdx = %d\n", pdu->pre_dft_occ_idx);
|
||||
INDENTED_PRINTF("PreDftOccLen = %d\n", pdu->pre_dft_occ_len);
|
||||
INDENTED_PRINTF("AddDmrsFlag = %d\n", pdu->add_dmrs_flag);
|
||||
INDENTED_PRINTF("DmrsScramblingId = %d\n", pdu->dmrs_scrambling_id);
|
||||
INDENTED_PRINTF("DMRScyclicshift = %d\n", pdu->dmrs_cyclic_shift);
|
||||
INDENTED_PRINTF("SRFlag = %d\n", pdu->sr_flag);
|
||||
INDENTED_PRINTF("BitLenHarq = %d\n", pdu->bit_len_harq);
|
||||
INDENTED_PRINTF("BitLenCsiPart1 = %d\n", pdu->bit_len_csi_part1);
|
||||
INDENTED_PRINTF("BitLenCsiPart2 = %d\n", pdu->bit_len_csi_part2);
|
||||
dump_ul_tti_beamforming(&pdu->beamforming, depth + 1);
|
||||
}
|
||||
|
||||
static void dump_ul_tti_request_srs_parameters(const nfapi_v4_srs_parameters_t *pdu, const uint8_t num_symbols, uint8_t depth)
|
||||
{
|
||||
INDENTED_PRINTF("srsBandwidthSize = %d\n", pdu->srs_bandwidth_size);
|
||||
for (int symbol_idx = 0; symbol_idx < num_symbols; ++symbol_idx) {
|
||||
const nfapi_v4_srs_parameters_symbols_t *symbol = &pdu->symbol_list[symbol_idx];
|
||||
INDENTED_PRINTF("Symbol #%d\n", symbol_idx);
|
||||
depth++;
|
||||
INDENTED_PRINTF("srsBandwidthStart = %d\n", symbol->srs_bandwidth_start);
|
||||
INDENTED_PRINTF("sequenceGroup = %d\n", symbol->sequence_group);
|
||||
INDENTED_PRINTF("sequenceNumber = %d\n", symbol->sequence_number);
|
||||
depth--;
|
||||
}
|
||||
const uint8_t nUsage = __builtin_popcount(pdu->usage);
|
||||
INDENTED_PRINTF("Usage = %d (nUsage = %d)\n", pdu->usage, nUsage);
|
||||
depth++;
|
||||
for (int idx = 0; idx < nUsage; ++idx) {
|
||||
INDENTED_PRINTF("ReportType[%d] = %d\n", idx, pdu->report_type[idx]);
|
||||
}
|
||||
depth--;
|
||||
INDENTED_PRINTF("singular Value Representation = %d\n", pdu->singular_Value_representation);
|
||||
INDENTED_PRINTF("iq Representation = %d\n", pdu->iq_representation);
|
||||
INDENTED_PRINTF("prgSize = %d\n", pdu->prg_size);
|
||||
INDENTED_PRINTF("numTotalUeAntennas = %d\n", pdu->num_total_ue_antennas);
|
||||
INDENTED_PRINTF("ueAntennasInThisSrsResourceSet = %d\n", pdu->ue_antennas_in_this_srs_resource_set);
|
||||
INDENTED_PRINTF("sampledUeAntennas = %d\n", pdu->sampled_ue_antennas);
|
||||
INDENTED_PRINTF("reportScope = %d\n", pdu->report_scope);
|
||||
INDENTED_PRINTF("NumULSpatialStreamsPorts = %d\n", pdu->num_ul_spatial_streams_ports);
|
||||
depth++;
|
||||
for (int idx = 0; idx < pdu->num_ul_spatial_streams_ports; ++idx) {
|
||||
INDENTED_PRINTF("UlSpatialStreamPorts[%d] = %d\n", idx, pdu->Ul_spatial_stream_ports[idx]);
|
||||
}
|
||||
}
|
||||
|
||||
static void dump_ul_tti_request_SRS_PDU(const nfapi_nr_srs_pdu_t *pdu, int depth)
|
||||
{
|
||||
INDENTED_PRINTF("RNTI = 0x%x\n", pdu->rnti);
|
||||
INDENTED_PRINTF("Handle = %d\n", pdu->handle);
|
||||
INDENTED_PRINTF("BWPSize = %d\n", pdu->bwp_size);
|
||||
INDENTED_PRINTF("BWPStart = %d\n", pdu->bwp_start);
|
||||
INDENTED_PRINTF("SubcarrierSpacing = %d\n", pdu->subcarrier_spacing);
|
||||
INDENTED_PRINTF("CyclicPrefix = %d\n", pdu->cyclic_prefix);
|
||||
INDENTED_PRINTF("numAntPorts = %d\n", pdu->num_ant_ports);
|
||||
INDENTED_PRINTF("numSymbols = %d\n", pdu->num_symbols);
|
||||
INDENTED_PRINTF("numRepetitions = %d\n", pdu->num_repetitions);
|
||||
INDENTED_PRINTF("timeStartPosition = %d\n", pdu->time_start_position);
|
||||
INDENTED_PRINTF("configIndex = %d\n", pdu->config_index);
|
||||
INDENTED_PRINTF("sequenceId = %d\n", pdu->sequence_id);
|
||||
INDENTED_PRINTF("bandwidthIndex = %d\n", pdu->bandwidth_index);
|
||||
INDENTED_PRINTF("combSize = %d\n", pdu->comb_size);
|
||||
INDENTED_PRINTF("combOffset = %d\n", pdu->comb_offset);
|
||||
INDENTED_PRINTF("cyclicShift = %d\n", pdu->cyclic_shift);
|
||||
INDENTED_PRINTF("frequencyPosition = %d\n", pdu->frequency_position);
|
||||
INDENTED_PRINTF("frequencyShift = %d\n", pdu->frequency_shift);
|
||||
INDENTED_PRINTF("frequencyHopping = %d\n", pdu->frequency_hopping);
|
||||
INDENTED_PRINTF("groupOrSequenceHopping = %d\n", pdu->group_or_sequence_hopping);
|
||||
INDENTED_PRINTF("resourceType = %d\n", pdu->resource_type);
|
||||
INDENTED_PRINTF("Tsrs = %d\n", pdu->t_srs);
|
||||
INDENTED_PRINTF("Toffset = %d\n", pdu->t_offset);
|
||||
dump_ul_tti_beamforming(&pdu->beamforming, depth + 1);
|
||||
dump_ul_tti_request_srs_parameters(&pdu->srs_parameters_v4, 1 << pdu->num_symbols, depth + 1);
|
||||
}
|
||||
|
||||
static char *ul_tti_pdu_type_to_str(uint16_t pdu_type)
|
||||
{
|
||||
switch (pdu_type) {
|
||||
case NFAPI_NR_UL_CONFIG_PRACH_PDU_TYPE:
|
||||
return "NFAPI_NR_UL_CONFIG_PRACH_PDU_TYPE";
|
||||
case NFAPI_NR_UL_CONFIG_PUSCH_PDU_TYPE:
|
||||
return "NFAPI_NR_UL_CONFIG_PUSCH_PDU_TYPE";
|
||||
case NFAPI_NR_UL_CONFIG_PUCCH_PDU_TYPE:
|
||||
return "NFAPI_NR_UL_CONFIG_PUCCH_PDU_TYPE";
|
||||
case NFAPI_NR_UL_CONFIG_SRS_PDU_TYPE:
|
||||
return "NFAPI_NR_UL_CONFIG_SRS_PDU_TYPE";
|
||||
default:
|
||||
return "Unknown";
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void dump_ul_tti_request(const nfapi_nr_ul_tti_request_t *msg)
|
||||
{
|
||||
int depth = 0;
|
||||
@@ -2243,9 +2519,26 @@ void dump_ul_tti_request(const nfapi_nr_ul_tti_request_t *msg)
|
||||
const nfapi_nr_ul_tti_request_number_of_pdus_t *pdu = &msg->pdus_list[i];
|
||||
depth++;
|
||||
INDENTED_PRINTF("PDU #%d\n", i);
|
||||
INDENTED_PRINTF("PDUType = 0x%02x\n", pdu->pdu_type);
|
||||
INDENTED_PRINTF("PDUType = 0x%02x (%s)\n", pdu->pdu_type, ul_tti_pdu_type_to_str(pdu->pdu_type));
|
||||
INDENTED_PRINTF("PDUSize = 0x%02x\n", pdu->pdu_size);
|
||||
/* call to dump_ul_tti_request_<PDU_Type>_pdu */
|
||||
switch (pdu->pdu_type) {
|
||||
case NFAPI_NR_UL_CONFIG_PRACH_PDU_TYPE:
|
||||
dump_ul_tti_request_PRACH_PDU(&pdu->prach_pdu, depth + 1);
|
||||
break;
|
||||
case NFAPI_NR_UL_CONFIG_PUSCH_PDU_TYPE:
|
||||
dump_ul_tti_request_PUSCH_PDU(&pdu->pusch_pdu, depth + 1);
|
||||
break;
|
||||
case NFAPI_NR_UL_CONFIG_PUCCH_PDU_TYPE:
|
||||
dump_ul_tti_request_PUCCH_PDU(&pdu->pucch_pdu, depth + 1);
|
||||
break;
|
||||
case NFAPI_NR_UL_CONFIG_SRS_PDU_TYPE:
|
||||
dump_ul_tti_request_SRS_PDU(&pdu->srs_pdu, depth + 1);
|
||||
break;
|
||||
default:
|
||||
INDENTED_PRINTF("Unknown PDU type 0x%02x\n", pdu->pdu_type);
|
||||
break;
|
||||
}
|
||||
depth--;
|
||||
}
|
||||
for (int group_idx = 0; group_idx < msg->n_group; group_idx++) {
|
||||
@@ -2288,6 +2581,7 @@ void dump_ul_dci_request(const nfapi_nr_ul_dci_request_t *msg)
|
||||
INDENTED_PRINTF("PDUType = 0x%02x\n", pdu->PDUType);
|
||||
INDENTED_PRINTF("PDUSize = 0x%02x\n", pdu->PDUSize);
|
||||
/* call to dump_dl_tti_request_pdcch_pdu */
|
||||
dump_dl_tti_request_PDCCH_PDU(&pdu->pdcch_pdu.pdcch_pdu_rel15, depth + 1);
|
||||
depth--;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -256,3 +256,146 @@ Message Length = 0xc3
|
||||
isInlineTbCrc = 0
|
||||
dlTbCrc = 0
|
||||
```
|
||||
|
||||
## 7 - A Valid UL_TTI.request
|
||||
|
||||
```
|
||||
./nfapi/open-nFAPI/utils/nfapi_hex_parser 0x00 0x01 0x00 0x81 0x00 0x00 0x00 0x98 0x02 0xd0 0x00 0x04 0x02 0x00 0x00 0x01 0x00 0x00 0x03 0x00 0x45 0x30 0x39 0x00 0x00 0x00 0x00 0x01 0x11 0x00 0x00 0x01 0x00 0x00 0x00 0x00 0x0c 0x3d 0x00 0x28 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02 0x00 0x50 0x00 0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01 0x10 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02 0x01 0x00 0x01 0x00 0x01 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02 0x00 0x38 0x30 0x39 0x00 0x00 0x00 0x00 0x01 0x11 0x00 0x00 0x01 0x00 0x02 0x00 0x00 0x00 0x00 0x00 0x03 0x0d 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x28 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x07 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
|
||||
Parsed 150 bytes:
|
||||
00 01 00 81 00 00 00 98 02 d0 00 04 02 00 00 01
|
||||
00 00 03 00 45 30 39 00 00 00 00 01 11 00 00 01
|
||||
00 00 00 00 0c 3d 00 28 00 00 00 00 00 00 00 00
|
||||
00 02 00 50 00 04 00 00 00 00 00 00 01 10 00 00
|
||||
00 00 00 00 00 02 01 00 01 00 01 01 00 00 00 00
|
||||
00 00 00 00 00 00 00 02 00 38 30 39 00 00 00 00
|
||||
01 11 00 00 01 00 02 00 00 00 00 00 03 0d 01 00
|
||||
00 00 00 00 00 28 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 07 00 00 00 00 00 00 00 00 00 00
|
||||
00 00 00 00 00 00
|
||||
Decoded message NFAPI_NR_PHY_MSG_TYPE_UL_TTI_REQUEST message length 0x98
|
||||
Message ID = 0x81
|
||||
Message Length = 0x98
|
||||
SFN = 720
|
||||
Slot = 4
|
||||
nPDUs = 2
|
||||
RachPresent = 0
|
||||
nULSCH = 0
|
||||
nULCCH = 1
|
||||
nGroup = 0
|
||||
PDU #0
|
||||
PDUType = 0x03 (NFAPI_NR_UL_CONFIG_SRS_PDU_TYPE)
|
||||
PDUSize = 0x45
|
||||
RNTI = 3039
|
||||
Handle = 0
|
||||
BWPSize = 273
|
||||
BWPStart = 0
|
||||
SubcarrierSpacing = 1
|
||||
CyclicPrefix = 0
|
||||
numAntPorts = 0
|
||||
numSymbols = 0
|
||||
numRepetitions = 0
|
||||
timeStartPosition = 12
|
||||
configIndex = 61
|
||||
sequenceId = 40
|
||||
bandwidthIndex = 0
|
||||
combSize = 0
|
||||
combOffset = 0
|
||||
cyclicShift = 0
|
||||
frequencyPosition = 0
|
||||
frequencyShift = 0
|
||||
frequencyHopping = 0
|
||||
groupOrSequenceHopping = 0
|
||||
resourceType = 2
|
||||
Tsrs = 80
|
||||
Toffset = 4
|
||||
TRP Scheme = 0
|
||||
numPRGs = 0
|
||||
prgSize = 0
|
||||
digBFInterface = 0
|
||||
srsBandwidthSize = 272
|
||||
Symbol #0
|
||||
srsBandwidthStart = 0
|
||||
sequenceGroup = 0
|
||||
sequenceNumber = 0
|
||||
Usage = 2 (nUsage = 1)
|
||||
ReportType[0] = 1
|
||||
singular Value Representation = 0
|
||||
iq Representation = 1
|
||||
prgSize = 1
|
||||
numTotalUeAntennas = 1
|
||||
ueAntennasInThisSrsResourceSet = 0
|
||||
sampledUeAntennas = 0
|
||||
reportScope = 0
|
||||
NumULSpatialStreamsPorts = 0
|
||||
PDU #1
|
||||
PDUType = 0x02 (NFAPI_NR_UL_CONFIG_PUCCH_PDU_TYPE)
|
||||
PDUSize = 0x38
|
||||
RNTI = 3039
|
||||
Handle = 0
|
||||
BWPSize = 273
|
||||
BWPStart = 0
|
||||
SubcarrierSpacing = 1
|
||||
CyclicPrefix = 0
|
||||
FormatType = 2
|
||||
multiSlotTxIndicator = 0
|
||||
pi2Bpsk = 0
|
||||
prbStart = 0
|
||||
prbSize = 3
|
||||
StartSymbolIndex = 13
|
||||
NrOfSymbols = 1
|
||||
freqHopFlag = 0
|
||||
secondHopPRB = 0
|
||||
groupHopFlag = 0
|
||||
sequenceHopFlag = 0
|
||||
hoppingId = 40
|
||||
InitialCyclicShift = 0
|
||||
dataScramblingId = 0
|
||||
TimeDomainOccIdx = 0
|
||||
PreDftOccIdx = 0
|
||||
PreDftOccLen = 0
|
||||
AddDmrsFlag = 0
|
||||
DmrsScramblingId = 0
|
||||
DMRScyclicshift = 0
|
||||
SRFlag = 0
|
||||
BitLenHarq = 0
|
||||
BitLenCsiPart1 = 7
|
||||
BitLenCsiPart2 = 0
|
||||
TRP Scheme = 0
|
||||
numPRGs = 0
|
||||
prgSize = 0
|
||||
digBFInterface = 0
|
||||
|
||||
```
|
||||
|
||||
## 8 - A valid UL_TTI.request with a PRACH PDU
|
||||
|
||||
```
|
||||
./nfapi/open-nFAPI/utils/nfapi_hex_parser 0x00 0x01 0x00 0x81 0x00 0x00 0x00 0x2d 0x02 0xd1 0x00 0x13 0x01 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x12 0x00 0x00 0x03 0x05 0x00 0x00 0x00 0x1b 0x00 0x00 0x00 0x00 0x00 0x01 0x00 0x00 0x08 0x00 0x01 0x0d 0x01 0x00
|
||||
Parsed 43 bytes:
|
||||
00 01 00 81 00 00 00 2d 02 d1 00 13 01 01 00 00
|
||||
00 00 00 00 12 00 00 03 05 00 00 00 1b 00 00 00
|
||||
00 00 01 00 00 08 00 01 0d 01 00
|
||||
Decoded message NFAPI_NR_PHY_MSG_TYPE_UL_TTI_REQUEST message length 0x2d
|
||||
Message ID = 0x81
|
||||
Message Length = 0x2d
|
||||
SFN = 721
|
||||
Slot = 19
|
||||
nPDUs = 1
|
||||
RachPresent = 1
|
||||
nULSCH = 0
|
||||
nULCCH = 0
|
||||
nGroup = 0
|
||||
PDU #0
|
||||
PDUType = 0x00 (NFAPI_NR_UL_CONFIG_PRACH_PDU_TYPE)
|
||||
PDUSize = 0x12
|
||||
physCellID = 0
|
||||
NumPrachOcas = 3
|
||||
prachFormat = 5 (A2)
|
||||
numRa = 0
|
||||
prachStartSymbol = 0
|
||||
numCs = 27
|
||||
TRP Scheme = 0
|
||||
numPRGs = 0
|
||||
prgSize = 0
|
||||
digBFInterface = 1
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user