From 0e033810166878f6a71253be60fbbda0ec6add97 Mon Sep 17 00:00:00 2001
From: Cedric Roux <cedric.roux@eurecom.fr>
Date: Tue, 17 May 2016 18:48:11 +0200
Subject: [PATCH] log ack/nack at phy level (process_harq_feedback)

---
 common/utils/T/T_messages.txt           |  8 ++++++++
 common/utils/T/tracer/enb.c             | 10 ++++++++++
 openair1/SCHED/phy_procedures_lte_eNb.c |  5 +++++
 3 files changed, 23 insertions(+)

diff --git a/common/utils/T/T_messages.txt b/common/utils/T/T_messages.txt
index e86cfa43a6..e437f7f2b9 100644
--- a/common/utils/T/T_messages.txt
+++ b/common/utils/T/T_messages.txt
@@ -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
diff --git a/common/utils/T/tracer/enb.c b/common/utils/T/tracer/enb.c
index 8ebc1bdf12..5cd59a811c 100644
--- a/common/utils/T/tracer/enb.c
+++ b/common/utils/T/tracer/enb.c
@@ -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]);
diff --git a/openair1/SCHED/phy_procedures_lte_eNb.c b/openair1/SCHED/phy_procedures_lte_eNb.c
index 29b632ecb9..e251bddbee 100755
--- a/openair1/SCHED/phy_procedures_lte_eNb.c
+++ b/openair1/SCHED/phy_procedures_lte_eNb.c
@@ -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
-- 
GitLab