From 0717c18ccbe69ddc1d31bfaf511747c515348d8d Mon Sep 17 00:00:00 2001
From: "Raymond.Knopp" <raymond.knopp@eurecom.fr>
Date: Sun, 4 Dec 2016 12:11:03 +0100
Subject: [PATCH] modifications for PRACH on IF4p5

---
 openair1/SCHED/phy_procedures_lte_eNb.c             |  2 +-
 ...RB.if4p5.conf => rcc.band7.tm1.if4p5.50PRB.conf} |  0
 targets/RT/USER/lte-enb.c                           | 13 ++++++-------
 3 files changed, 7 insertions(+), 8 deletions(-)
 rename targets/PROJECTS/GENERIC-LTE-EPC/CONF/{rcc.band7.tm1.50PRB.if4p5.conf => rcc.band7.tm1.if4p5.50PRB.conf} (100%)

diff --git a/openair1/SCHED/phy_procedures_lte_eNb.c b/openair1/SCHED/phy_procedures_lte_eNb.c
index 5725713e42..fe9fc68abe 100644
--- a/openair1/SCHED/phy_procedures_lte_eNb.c
+++ b/openair1/SCHED/phy_procedures_lte_eNb.c
@@ -1916,7 +1916,7 @@ void prach_procedures(PHY_VARS_eNB *eNB) {
       eNB->UE_stats[(uint32_t)UE_id].UE_timing_offset = preamble_delay_list[preamble_max]&0x1FFF; //limit to 13 (=11+2) bits
 
       eNB->UE_stats[(uint32_t)UE_id].sector = 0;
-      LOG_I(PHY,"[eNB %d/%d][RAPROC] Frame %d, subframe %d Initiating RA procedure (UE_id %d) with preamble %d, energy %d.%d dB, delay %d\n",
+      LOG_D(PHY,"[eNB %d/%d][RAPROC] Frame %d, subframe %d Initiating RA procedure (UE_id %d) with preamble %d, energy %d.%d dB, delay %d\n",
             eNB->Mod_id,
             eNB->CC_id,
             frame,
diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.50PRB.if4p5.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if4p5.50PRB.conf
similarity index 100%
rename from targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.50PRB.if4p5.conf
rename to targets/PROJECTS/GENERIC-LTE-EPC/CONF/rcc.band7.tm1.if4p5.50PRB.conf
diff --git a/targets/RT/USER/lte-enb.c b/targets/RT/USER/lte-enb.c
index 958a5069a1..020e5b944f 100644
--- a/targets/RT/USER/lte-enb.c
+++ b/targets/RT/USER/lte-enb.c
@@ -543,7 +543,8 @@ static inline int rxtx(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc, char *thread_nam
   // ****************************************
   // Common RX procedures subframe n
 
-  if (eNB->do_prach) eNB->do_prach(eNB,proc->frame_rx,proc->subframe_rx);
+  if ((eNB->do_prach)&&((eNB->node_function != NGFI_RCC_IF4p5)))
+    eNB->do_prach(eNB,proc->frame_rx,proc->subframe_rx);
   phy_procedures_eNB_common_RX(eNB);
   
   // UE-specific RX processing for subframe n
@@ -980,34 +981,32 @@ void rx_fh_if4p5(PHY_VARS_eNB *eNB,int *frame,int *subframe) {
   eNB_proc_t *proc = &eNB->proc;
   int f,sf;
 
-  int prach_rx;
-
   uint16_t packet_type;
   uint32_t symbol_number=0;
   uint32_t symbol_mask, symbol_mask_full;
 
   symbol_mask_full = (1<<fp->symbols_per_tti)-1;
 
-  prach_rx = (is_prach_subframe(fp, *frame, *subframe)>0) ? 1 : 0;                            
   if (eNB->CC_id==1) LOG_I(PHY,"rx_fh_if4p5: frame %d, subframe %d\n",*frame,*subframe);
   do {   // Blocking, we need a timeout on this !!!!!!!!!!!!!!!!!!!!!!!
     recv_IF4p5(eNB, &f, &sf, &packet_type, &symbol_number);
 
     //proc->frame_rx = (proc->frame_rx + proc->frame_offset)&1023;
     if (packet_type == IF4p5_PULFFT) {
+      LOG_D(PHY,"rx_fh:if4p5: frame %d, subframe %d, PULFFT symbol %d\n",f,sf,symbol_number);
       proc->subframe_rx = sf;
       proc->frame_rx = f;
 
       proc->symbol_mask[proc->subframe_rx] = proc->symbol_mask[proc->subframe_rx] | (1<<symbol_number);
     } else if (packet_type == IF4p5_PRACH) {
-      prach_rx = 0;
+      LOG_D(PHY,"rx_fh:if4p5: frame %d, subframe %d, PRACH\n",f,sf);
       // wakeup prach processing
       if (eNB->do_prach) eNB->do_prach(eNB,f,sf);
     }
 
-    if (eNB->CC_id==1) LOG_I(PHY,"rx_fh_if4p5: symbol_mask[%d] %x, prach %d\n",*subframe,proc->symbol_mask[*subframe],prach_rx);
+    if (eNB->CC_id==1) LOG_I(PHY,"rx_fh_if4p5: symbol_mask[%d] %x\n",*subframe,proc->symbol_mask[*subframe]);
 
-  } while( (proc->symbol_mask[*subframe] != symbol_mask_full) || (prach_rx == 1));    
+  } while(proc->symbol_mask[*subframe] != symbol_mask_full);    
   proc->symbol_mask[*subframe] = 0;
   proc->symbol_mask[(9+*subframe)%10]= 0; // to handle a resynchronization event
 
-- 
GitLab