Count and print failed CCE allocations for UL/DL
This commit is contained in:
@@ -554,6 +554,7 @@ static bool allocate_dl_retransmission(module_id_t module_id,
|
||||
false,
|
||||
sched_ctrl->pdcch_cl_adjust);
|
||||
if (CCEIndex<0) {
|
||||
sched_ctrl->dl_cce_fail++;
|
||||
LOG_D(NR_MAC, "[UE %04x][%4d.%2d] could not find free CCE for DL DCI retransmission\n", UE->rnti, frame, slot);
|
||||
return false;
|
||||
}
|
||||
@@ -806,6 +807,7 @@ static void pf_dl(module_id_t module_id,
|
||||
false,
|
||||
sched_ctrl->pdcch_cl_adjust);
|
||||
if (CCEIndex < 0) {
|
||||
sched_ctrl->dl_cce_fail++;
|
||||
LOG_D(NR_MAC, "[UE %04x][%4d.%2d] could not find free CCE for DL DCI\n", rnti, frame, slot);
|
||||
reset_beam_status(&mac->beam_info, frame, slot, iterator->UE->UE_beam_index, slots_per_frame, beam.new_beam);
|
||||
iterator++;
|
||||
|
||||
@@ -1816,6 +1816,7 @@ static bool allocate_ul_retransmission(gNB_MAC_INST *nrmac,
|
||||
sched_ctrl->pdcch_cl_adjust);
|
||||
if (CCEIndex<0) {
|
||||
LOG_D(NR_MAC, "[UE %04x][%4d.%2d] no free CCE for retransmission UL DCI UE\n", UE->rnti, frame, slot);
|
||||
sched_ctrl->ul_cce_fail++;
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -2058,6 +2059,7 @@ static int pf_ul(gNB_MAC_INST *nrmac,
|
||||
sched_ctrl->pdcch_cl_adjust);
|
||||
|
||||
if (CCEIndex < 0) {
|
||||
sched_ctrl->ul_cce_fail++;
|
||||
reset_beam_status(&nrmac->beam_info, frame, slot, iterator->UE->UE_beam_index, slots_per_frame, dci_beam.new_beam);
|
||||
reset_beam_status(&nrmac->beam_info, sched_frame, sched_slot, iterator->UE->UE_beam_index, slots_per_frame, beam.new_beam);
|
||||
LOG_D(NR_MAC, "[UE %04x][%4d.%2d] no free CCE for UL DCI\n", iterator->UE->rnti, frame, slot);
|
||||
|
||||
@@ -168,12 +168,13 @@ size_t dump_mac_stats(gNB_MAC_INST *gNB, char *output, size_t strlen, bool reset
|
||||
|
||||
output += snprintf(output,
|
||||
end - output,
|
||||
", dlsch_errors %"PRIu64", pucch0_DTX %d, BLER %.5f MCS (%d) %d\n",
|
||||
", dlsch_errors %"PRIu64", pucch0_DTX %d, BLER %.5f MCS (%d) %d CCE fail %d\n",
|
||||
stats->dl.errors,
|
||||
stats->pucch0_DTX,
|
||||
sched_ctrl->dl_bler_stats.bler,
|
||||
UE->current_DL_BWP.mcsTableIdx,
|
||||
sched_ctrl->dl_bler_stats.mcs);
|
||||
sched_ctrl->dl_bler_stats.mcs,
|
||||
sched_ctrl->dl_cce_fail);
|
||||
if (reset_rsrp) {
|
||||
stats->num_rsrp_meas = 0;
|
||||
stats->cumul_rsrp = 0;
|
||||
@@ -187,7 +188,7 @@ size_t dump_mac_stats(gNB_MAC_INST *gNB, char *output, size_t strlen, bool reset
|
||||
|
||||
output += snprintf(output,
|
||||
end - output,
|
||||
", ulsch_errors %"PRIu64", ulsch_DTX %d, BLER %.5f MCS (%d) %d (Qm %d deltaMCS %d dB) NPRB %d SNR %d.%d dB\n",
|
||||
", ulsch_errors %"PRIu64", ulsch_DTX %d, BLER %.5f MCS (%d) %d (Qm %d deltaMCS %d dB) NPRB %d SNR %d.%d dB CCE fail %d\n",
|
||||
stats->ul.errors,
|
||||
stats->ulsch_DTX,
|
||||
sched_ctrl->ul_bler_stats.bler,
|
||||
@@ -197,7 +198,8 @@ size_t dump_mac_stats(gNB_MAC_INST *gNB, char *output, size_t strlen, bool reset
|
||||
UE->mac_stats.deltaMCS,
|
||||
UE->mac_stats.NPRB,
|
||||
sched_ctrl->pusch_snrx10 / 10,
|
||||
sched_ctrl->pusch_snrx10 % 10);
|
||||
sched_ctrl->pusch_snrx10 % 10,
|
||||
sched_ctrl->ul_cce_fail);
|
||||
output += snprintf(output,
|
||||
end - output,
|
||||
"UE %04x: MAC: TX %14"PRIu64" RX %14"PRIu64" bytes\n",
|
||||
|
||||
@@ -591,6 +591,7 @@ typedef struct {
|
||||
/// corresponding to the sched_pusch/sched_pdsch structures below
|
||||
int cce_index;
|
||||
uint8_t aggregation_level;
|
||||
uint32_t dl_cce_fail, ul_cce_fail;
|
||||
|
||||
/// Array of PUCCH scheduling information
|
||||
/// Its size depends on TDD configuration and max feedback time
|
||||
|
||||
Reference in New Issue
Block a user