From 5541cafd95f35158bb30d8447812c75d5409d977 Mon Sep 17 00:00:00 2001
From: Sandeep Kumar <ee13b1025@iith.ac.in>
Date: Fri, 17 Jun 2016 15:39:24 +0200
Subject: [PATCH] add vcd logging for send, recv if4 and delay for testing
 without recv

---
 openair1/PHY/LTE_TRANSPORT/prach.c      |  7 +++++--
 openair1/SCHED/phy_procedures_lte_eNb.c | 19 +++++++++++++++++--
 openair2/UTIL/LOG/vcd_signal_dumper.c   |  6 +++++-
 openair2/UTIL/LOG/vcd_signal_dumper.h   |  5 +++++
 targets/RT/USER/lte-enb.c               | 12 +++++++++---
 5 files changed, 41 insertions(+), 8 deletions(-)

diff --git a/openair1/PHY/LTE_TRANSPORT/prach.c b/openair1/PHY/LTE_TRANSPORT/prach.c
index 555685b23e..85330b5a18 100644
--- a/openair1/PHY/LTE_TRANSPORT/prach.c
+++ b/openair1/PHY/LTE_TRANSPORT/prach.c
@@ -1269,7 +1269,11 @@ void rx_prach(PHY_VARS_eNB *eNB,
   }
 
   if (eNB->node_function == NGFI_RRU_IF4) {
-    /// **** send_IF4 of prachF to RCC **** ///
+    /// **** send_IF4 of prachF to RCC **** ///    
+    VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_SEND_IF4, 1 );   
+    // send_IF4();
+    VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_SEND_IF4, 0 );   
+
     return;
   }
   
@@ -1278,7 +1282,6 @@ void rx_prach(PHY_VARS_eNB *eNB,
   //  wait for prachF from RRU and continue with PRACH processing
   //}
 
-
   // here onwards is for eNodeB_3GPP or NGFI_RCC_IF4
 
   preamble_offset_old = 99;
diff --git a/openair1/SCHED/phy_procedures_lte_eNb.c b/openair1/SCHED/phy_procedures_lte_eNb.c
index 87153a3b10..92392070af 100755
--- a/openair1/SCHED/phy_procedures_lte_eNb.c
+++ b/openair1/SCHED/phy_procedures_lte_eNb.c
@@ -61,6 +61,8 @@
 #include "assertions.h"
 #include "msc.h"
 
+#include <time.h>
+
 #if defined(ENABLE_ITTI)
 #   include "intertask_interface.h"
 #endif
@@ -2488,7 +2490,11 @@ void phy_procedures_eNB_common_RX(PHY_VARS_eNB *eNB,const uint8_t abstraction_fl
   uint16_t packet_type;
   uint32_t symbol_number;
   uint32_t symbol_mask, symbol_mask_full;
-
+  
+  struct timespec time_req, time_rem;  
+  time_req.tv_sec = 0;
+  time_req.tv_nsec = 300000;
+  
   if (subframe==9) { 
     subframe=0;
     frame++;
@@ -2564,6 +2570,11 @@ void phy_procedures_eNB_common_RX(PHY_VARS_eNB *eNB,const uint8_t abstraction_fl
       if (eNB->node_function == NGFI_RRU_IF4 && is_prach_subframe(fp, frame, subframe)<=0) {
 
 			  /// **** send_IF4 of rxdataF to RCC (no prach now) **** ///
+        
+        VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_SEND_IF4, 1 );   
+        // send_IF4();
+        VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_SEND_IF4, 0 );   
+        
       }
 
       /// **** send_IF4 of prach to RCC **** /// done in prach thread (below)
@@ -2608,9 +2619,13 @@ void phy_procedures_eNB_common_RX(PHY_VARS_eNB *eNB,const uint8_t abstraction_fl
       prach_rx = 0;
 
       // Block from loop while testing
-      symbol_mask = symbol_mask_full;   
+      symbol_mask = symbol_mask_full;
+      nanosleep(&time_req, &time_rem);
+         
       do {
+        VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_RECV_IF4, 1 );   
         //recv_IF4(eNB, proc, &packet_type, &symbol_number);
+        VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_RECV_IF4, 0 );   
 
         if (packet_type == IF4_PULFFT) {
           symbol_mask = symbol_mask | (1<<symbol_number);     
diff --git a/openair2/UTIL/LOG/vcd_signal_dumper.c b/openair2/UTIL/LOG/vcd_signal_dumper.c
index 3f8ddd89ef..73abd5d698 100644
--- a/openair2/UTIL/LOG/vcd_signal_dumper.c
+++ b/openair2/UTIL/LOG/vcd_signal_dumper.c
@@ -329,7 +329,11 @@ const char* eurecomFunctionsNames[] = {
   "itti_dump_enqueue_message",
   "itti_dump_enqueue_message_malloc",
   "itti_relay_thread",
-  "test"
+  "test",
+  
+  /* IF4 signals */
+  "send_if4",
+  "recv_if4"
 };
 
 struct vcd_module_s vcd_modules[VCD_SIGNAL_DUMPER_MODULE_END] = {
diff --git a/openair2/UTIL/LOG/vcd_signal_dumper.h b/openair2/UTIL/LOG/vcd_signal_dumper.h
index 11401f17af..25df492abe 100644
--- a/openair2/UTIL/LOG/vcd_signal_dumper.h
+++ b/openair2/UTIL/LOG/vcd_signal_dumper.h
@@ -307,6 +307,11 @@ typedef enum {
   VCD_SIGNAL_DUMPER_FUNCTIONS_ITTI_DUMP_ENQUEUE_MESSAGE_MALLOC,
   VCD_SIGNAL_DUMPER_FUNCTIONS_ITTI_RELAY_THREAD,
   VCD_SIGNAL_DUMPER_FUNCTIONS_TEST,
+  
+  /* IF4 signals */
+  VCD_SIGNAL_DUMPER_FUNCTIONS_SEND_IF4,
+  VCD_SIGNAL_DUMPER_FUNCTIONS_RECV_IF4,
+  
   VCD_SIGNAL_DUMPER_FUNCTIONS_LAST,
   VCD_SIGNAL_DUMPER_FUNCTIONS_END = VCD_SIGNAL_DUMPER_FUNCTIONS_LAST,
 } vcd_signal_dump_functions;
diff --git a/targets/RT/USER/lte-enb.c b/targets/RT/USER/lte-enb.c
index 3a836d6bdb..83517c1a70 100644
--- a/targets/RT/USER/lte-enb.c
+++ b/targets/RT/USER/lte-enb.c
@@ -482,8 +482,11 @@ static void* eNB_thread_rxtx( void* param ) {
 	}
       } else {
 
-        /// **** recv_IF4 of txdataF from RCC **** ///        
+        /// **** recv_IF4 of txdataF from RCC **** ///     
+        
+        VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_RECV_IF4, 1 );   
         //recv_IF4(eNB, proc, packet_type, symbol_number);        
+        VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_RECV_IF4, 0 );   
         
       }
     }
@@ -529,8 +532,11 @@ static void* eNB_thread_rxtx( void* param ) {
 
     } else { 
 	 
-      /// **** send_IF4 of txdataF to RRU **** ///    
-      //send_IF4(PHY_vars_eNB_g[0][proc->CC_id], proc);
+      /// **** send_IF4 of txdataF to RRU **** /// 
+      
+      VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_SEND_IF4, 1 );   
+      //send_IF4(PHY_vars_eNB_g[0][proc->CC_id], proc, 0);
+      VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_SEND_IF4, 0 );
 
     }
 
-- 
2.26.2