Commit 0e033810 authored by Cedric Roux's avatar Cedric Roux

log ack/nack at phy level (process_harq_feedback)

parent b0ee0f4c
......@@ -11,6 +11,14 @@ ID = ENB_DLSCH_UE_DCI
DESC = eNodeB downlink UE specific DCI as sent by the PHY layer
GROUP = ALL:PHY:GRAPHIC:ENB
FORMAT = int,eNB_ID : int,frame : int,subframe : int,UE_id : int,rnti : int,dci_format
ID = ENB_DLSCH_UE_ACK
DESC = eNodeB downlink UE ACK as seen by the PHY layer in process_HARQ_feedback
GROUP = ALL:PHY:GRAPHIC:ENB
FORMAT = int,eNB_ID : int,frame : int,subframe : int,UE_id : int,rnti
ID = ENB_DLSCH_UE_NACK
DESC = eNodeB downlink UE NACK as seen by the PHY layer in process_HARQ_feedback
GROUP = ALL:PHY:GRAPHIC:ENB
FORMAT = int,eNB_ID : int,frame : int,subframe : int,UE_id : int,rnti
ID = ENB_INPUT_SIGNAL
DESC = eNodeB received signal in the time domain for a duration of 1ms
GROUP = ALL:PHY:GRAPHIC:HEAVY:ENB
......
......@@ -163,6 +163,14 @@ static void enb_main_gui(gui *g, event_handler *h, void *database)
timelog = new_timelog(h, database, "ENB_DLSCH_UE_DCI");
subview = new_subview_time(timeview, 1, new_color(g, "#228"));
logger_add_view(timelog, subview);
/* ACK */
timelog = new_timelog(h, database, "ENB_DLSCH_UE_ACK");
subview = new_subview_time(timeview, 2, new_color(g, "#282"));
logger_add_view(timelog, subview);
/* NACK */
timelog = new_timelog(h, database, "ENB_DLSCH_UE_NACK");
subview = new_subview_time(timeview, 3, new_color(g, "#f22"));
logger_add_view(timelog, subview);
/* uplink UE DCIs */
timelog = new_timelog(h, database, "ENB_UL_TICK");
......@@ -231,6 +239,8 @@ int main(int n, char **v)
on_off(database, "ENB_UL_TICK", is_on, 1);
on_off(database, "ENB_DL_TICK", is_on, 1);
on_off(database, "ENB_DLSCH_UE_DCI", is_on, 1);
on_off(database, "ENB_DLSCH_UE_ACK", is_on, 1);
on_off(database, "ENB_DLSCH_UE_NACK", is_on, 1);
for (i = 0; i < on_off_n; i++)
on_off(database, on_off_name[i], is_on, on_off_action[i]);
......
......@@ -2051,6 +2051,8 @@ void process_HARQ_feedback(uint8_t UE_id,
dlsch->rnti,dl_harq_pid[m],M,m,mp,dlsch_harq_proc->round);
#endif
T(T_ENB_DLSCH_UE_NACK, T_INT(phy_vars_eNB->Mod_id), T_INT(frame), T_INT(subframe), T_INT(UE_id), T_INT(dlsch->rnti));
if (dlsch_harq_proc->round == 0)
ue_stats->dlsch_NAK_round0++;
......@@ -2083,6 +2085,9 @@ void process_HARQ_feedback(uint8_t UE_id,
LOG_D(PHY,"[eNB %d][PDSCH %x/%d] ACK Received in round %d, resetting process\n",phy_vars_eNB->Mod_id,
dlsch->rnti,dl_harq_pid[m],dlsch_harq_proc->round);
#endif
T(T_ENB_DLSCH_UE_ACK, T_INT(phy_vars_eNB->Mod_id), T_INT(frame), T_INT(subframe), T_INT(UE_id), T_INT(dlsch->rnti));
ue_stats->dlsch_ACK[dl_harq_pid[m]][dlsch_harq_proc->round]++;
// Received ACK so set round to 0 and set dlsch_harq_pid IDLE
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment