From b87405ad7cf1eea77dae5a57001026d53d72bac0 Mon Sep 17 00:00:00 2001
From: Cedric Roux <cedric.roux@eurecom.fr>
Date: Mon, 6 Jun 2016 11:40:46 +0200
Subject: [PATCH] add PHY uplink dci/retrans/ack/nack T traces

---
 common/utils/T/T_messages.txt           | 16 ++++++++++++++++
 openair1/PHY/LTE_TRANSPORT/phich.c      |  2 ++
 openair1/SCHED/phy_procedures_lte_eNb.c |  6 ++++++
 3 files changed, 24 insertions(+)

diff --git a/common/utils/T/T_messages.txt b/common/utils/T/T_messages.txt
index 5347f054f7..e6c83b5105 100644
--- a/common/utils/T/T_messages.txt
+++ b/common/utils/T/T_messages.txt
@@ -19,6 +19,22 @@ 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_ULSCH_UE_DCI
+    DESC = eNodeB uplink 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
+ID = ENB_ULSCH_UE_NO_DCI_RETRANSMISSION
+    DESC = eNodeB uplink UE retransmission due to PHICH NACK (see generate_phich_top)
+    GROUP = ALL:PHY:GRAPHIC:ENB
+    FORMAT = int,eNB_ID : int,frame : int,subframe : int,UE_id : int,rnti
+ID = ENB_ULSCH_UE_ACK
+    DESC = eNodeB uplink UE ACK as seen by the PHY layer
+    GROUP = ALL:PHY:GRAPHIC:ENB
+    FORMAT = int,eNB_ID : int,frame : int,subframe : int,UE_id : int,rnti
+ID = ENB_ULSCH_UE_NACK
+    DESC = eNodeB uplink UE NACK as seen by the PHY layer
+    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/openair1/PHY/LTE_TRANSPORT/phich.c b/openair1/PHY/LTE_TRANSPORT/phich.c
index e08ad239bd..ddf78bdcce 100644
--- a/openair1/PHY/LTE_TRANSPORT/phich.c
+++ b/openair1/PHY/LTE_TRANSPORT/phich.c
@@ -1506,6 +1506,8 @@ void generate_phich_top(PHY_VARS_eNB *phy_vars_eNB,
         if ((ulsch_eNB[UE_id]->harq_processes[harq_pid]->dci_alloc == 0) &&
             (ulsch_eNB[UE_id]->harq_processes[harq_pid]->rar_alloc == 0) ) {
           if (ulsch_eNB[UE_id]->harq_processes[harq_pid]->phich_ACK==0 ) {
+            T(T_ENB_ULSCH_UE_NO_DCI_RETRANSMISSION, T_INT(phy_vars_eNB->Mod_id), T_INT(phy_vars_eNB->proc[sched_subframe].frame_tx),
+              T_INT(subframe), T_INT(UE_id), T_INT(ulsch_eNB[UE_id]->rnti));
             LOG_D(PHY,"[eNB %d][PUSCH %d] frame %d, subframe %d : PHICH NACK / (no format0 DCI) Setting subframe_scheduling_flag\n",
                   phy_vars_eNB->Mod_id,harq_pid,phy_vars_eNB->proc[sched_subframe].frame_tx,subframe);
             ulsch_eNB[UE_id]->harq_processes[harq_pid]->subframe_scheduling_flag = 1;
diff --git a/openair1/SCHED/phy_procedures_lte_eNb.c b/openair1/SCHED/phy_procedures_lte_eNb.c
index e8c2e87414..f0d811a3ac 100755
--- a/openair1/SCHED/phy_procedures_lte_eNb.c
+++ b/openair1/SCHED/phy_procedures_lte_eNb.c
@@ -1250,6 +1250,9 @@ void phy_procedures_eNB_TX(unsigned char sched_subframe,PHY_VARS_eNB *phy_vars_e
       else
 	UE_id = i;
 
+      T(T_ENB_ULSCH_UE_DCI, T_INT(phy_vars_eNB->Mod_id), T_INT(frame), T_INT(subframe), T_INT(UE_id),
+        T_INT(DCI_pdu->dci_alloc[i].rnti));
+
       if (UE_id<0) {
         LOG_E(PHY,"[eNB %"PRIu8"] Frame %d: Unknown UE_id for rnti %"PRIx16"\n",phy_vars_eNB->Mod_id,phy_vars_eNB->proc[sched_subframe].frame_tx,DCI_pdu->dci_alloc[i].rnti);
         mac_exit_wrapper("Invalid UE id (< 0) detected");
@@ -2795,6 +2798,7 @@ void phy_procedures_eNB_RX(const unsigned char sched_subframe,PHY_VARS_eNB *phy_
       }
 
       if (ret == (1+MAX_TURBO_ITERATIONS)) {
+        T(T_ENB_ULSCH_UE_NACK, T_INT(phy_vars_eNB->Mod_id), T_INT(frame), T_INT(subframe), T_INT(i), T_INT(phy_vars_eNB->ulsch_eNB[i]->rnti));
 
         /*
         if (phy_vars_eNB->ulsch_eNB[i]->harq_processes[harq_pid]->round>0) {
@@ -2919,6 +2923,8 @@ void phy_procedures_eNB_RX(const unsigned char sched_subframe,PHY_VARS_eNB *phy_
         }
       }  // ulsch in error
       else {
+        T(T_ENB_ULSCH_UE_ACK, T_INT(phy_vars_eNB->Mod_id), T_INT(frame), T_INT(subframe), T_INT(i), T_INT(phy_vars_eNB->ulsch_eNB[i]->rnti));
+
         if (phy_vars_eNB->ulsch_eNB[i]->Msg3_flag == 1) {
 	  LOG_I(PHY,"[eNB %d][PUSCH %d] Frame %d subframe %d ULSCH received, setting round to 0, PHICH ACK\n",
 		phy_vars_eNB->Mod_id,harq_pid,
-- 
GitLab