Added print messages for debugging
This commit is contained in:
@@ -53,6 +53,7 @@
|
|||||||
#include "NR_SearchSpace.h"
|
#include "NR_SearchSpace.h"
|
||||||
#include "NR_ControlResourceSet.h"
|
#include "NR_ControlResourceSet.h"
|
||||||
|
|
||||||
|
#define UL_HARQ_PRINT
|
||||||
extern RAN_CONTEXT_t RC;
|
extern RAN_CONTEXT_t RC;
|
||||||
|
|
||||||
const uint8_t nr_rv_round_map[4] = {0, 2, 1, 3};
|
const uint8_t nr_rv_round_map[4] = {0, 2, 1, 3};
|
||||||
@@ -783,15 +784,23 @@ uint8_t select_ul_harq_pid(NR_UE_sched_ctrl_t *sched_ctrl) {
|
|||||||
NR_UE_ul_harq_t cur_harq;
|
NR_UE_ul_harq_t cur_harq;
|
||||||
for (hrq_id=0; hrq_id < max_ul_harq_pids; hrq_id++) {
|
for (hrq_id=0; hrq_id < max_ul_harq_pids; hrq_id++) {
|
||||||
cur_harq = sched_ctrl->ul_harq_processes[hrq_id];
|
cur_harq = sched_ctrl->ul_harq_processes[hrq_id];
|
||||||
if (cur_harq.state==ACTIVE_NOT_SCHED)
|
if (cur_harq.state==ACTIVE_NOT_SCHED) {
|
||||||
|
#ifdef UL_HARQ_PRINT
|
||||||
|
printf("[SCHED] Found active ulharq id %d, scheduling it for retransmission\n",harq_id);
|
||||||
|
#endif
|
||||||
return hrq_id;
|
return hrq_id;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// schedule new harq processes
|
// schedule new harq processes
|
||||||
for (hrq_id=0; hrq_id < max_ul_harq_pids; hrq_id++) {
|
for (hrq_id=0; hrq_id < max_ul_harq_pids; hrq_id++) {
|
||||||
cur_harq = sched_ctrl->ul_harq_processes[hrq_id];
|
cur_harq = sched_ctrl->ul_harq_processes[hrq_id];
|
||||||
if (cur_harq.state==INACTIVE)
|
if (cur_harq.state==INACTIVE) {
|
||||||
|
#ifdef UL_HARQ_PRINT
|
||||||
|
printf("[SCHED] Found inactive ulharq id %d, scheduling it\n",harq_id);
|
||||||
|
#endif
|
||||||
return hrq_id;
|
return hrq_id;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -41,6 +41,7 @@
|
|||||||
#include "executables/softmodem-common.h"
|
#include "executables/softmodem-common.h"
|
||||||
|
|
||||||
#define MAX_IF_MODULES 100
|
#define MAX_IF_MODULES 100
|
||||||
|
#define UL_HARQ_PRINT
|
||||||
|
|
||||||
NR_IF_Module_t *if_inst[MAX_IF_MODULES];
|
NR_IF_Module_t *if_inst[MAX_IF_MODULES];
|
||||||
NR_Sched_Rsp_t Sched_INFO[MAX_IF_MODULES][MAX_NUM_CCs];
|
NR_Sched_Rsp_t Sched_INFO[MAX_IF_MODULES][MAX_NUM_CCs];
|
||||||
@@ -141,15 +142,24 @@ void handle_nr_ul_harq(uint16_t slot, NR_UE_sched_ctrl_t *sched_ctrl, uint8_t cr
|
|||||||
cur_harq.ndi ^= 1;
|
cur_harq.ndi ^= 1;
|
||||||
cur_harq.round = 0;
|
cur_harq.round = 0;
|
||||||
cur_harq.state = INACTIVE; // passed -> make inactive. can be used by scheduder for next grant
|
cur_harq.state = INACTIVE; // passed -> make inactive. can be used by scheduder for next grant
|
||||||
|
#ifdef UL_HARQ_PRINT
|
||||||
|
printf("[HARQ HANDLER] Ulharq id %d crc passed, freeing it for scheduler\n",hrq_id);
|
||||||
|
#endif
|
||||||
} else {
|
} else {
|
||||||
cur_harq.round++;
|
cur_harq.round++;
|
||||||
cur_harq.state = ACTIVE_NOT_SCHED;
|
cur_harq.state = ACTIVE_NOT_SCHED;
|
||||||
|
#ifdef UL_HARQ_PRINT
|
||||||
|
printf("[HARQ HANDLER] Ulharq id %d crc failed, requesting retransmission\n",hrq_id);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!(cur_harq.round<max_harq_rounds)) {
|
if (!(cur_harq.round<max_harq_rounds)) {
|
||||||
cur_harq.ndi ^= 1;
|
cur_harq.ndi ^= 1;
|
||||||
cur_harq.state = INACTIVE; // failed after 4 rounds -> make inactive
|
cur_harq.state = INACTIVE; // failed after 4 rounds -> make inactive
|
||||||
cur_harq.round = 0;
|
cur_harq.round = 0;
|
||||||
|
#ifdef UL_HARQ_PRINT
|
||||||
|
printf("[HARQ HANDLER] Ulharq id %d crc failed in all round, freeing it for scheduler\n",hrq_id);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user