From 9c159229d52b3f10467ab752ee21ca14443001f3 Mon Sep 17 00:00:00 2001 From: "S. Sandeep Kumar" <ee13b1025@iith.ac.in> Date: Mon, 13 Jun 2016 02:48:05 +0530 Subject: [PATCH] added rcc rx recv_IF4 logic --- openair1/PHY/LTE_TRANSPORT/prach.c | 5 +++-- openair1/SCHED/phy_procedures_lte_eNb.c | 30 ++++++++++++++++++++----- 2 files changed, 28 insertions(+), 7 deletions(-) diff --git a/openair1/PHY/LTE_TRANSPORT/prach.c b/openair1/PHY/LTE_TRANSPORT/prach.c index 15c7bda045..0f806e2ea1 100644 --- a/openair1/PHY/LTE_TRANSPORT/prach.c +++ b/openair1/PHY/LTE_TRANSPORT/prach.c @@ -1272,9 +1272,10 @@ void rx_prach(PHY_VARS_eNB *eNB, //send prachF to RCC return; } - else if (eNB->node_function == NGFI_RCC_IF4) { + // in case of RCC and prach received rx_thread wakes up prach + //else if (eNB->node_function == NGFI_RCC_IF4) { //wait for prachF from RRU and continue with PRACH processing - } + //} diff --git a/openair1/SCHED/phy_procedures_lte_eNb.c b/openair1/SCHED/phy_procedures_lte_eNb.c index c0165bc2e6..785001e8f4 100755 --- a/openair1/SCHED/phy_procedures_lte_eNb.c +++ b/openair1/SCHED/phy_procedures_lte_eNb.c @@ -2498,7 +2498,7 @@ void phy_procedures_eNB_common_RX(PHY_VARS_eNB *eNB,const uint8_t abstraction_fl eNB_proc_t *proc = &eNB->proc; int subframe = proc->subframe_rx; int frame = proc->frame_rx; - + int symbol_number, symbol_mask, symbol_mask_full, prach_rx; if (subframe==9) { subframe=0; @@ -2577,10 +2577,30 @@ void phy_procedures_eNB_common_RX(PHY_VARS_eNB *eNB,const uint8_t abstraction_fl } else if (eNB->node_function == NGFI_RCC_IF4) { // => acquisition from RRU (IF4) - // get frame/subframe information from IF4 interface - - //recv_IF4(eNB,subframe<<1); - //recv_IF4(eNB,1+(subframe<<1)); + // get frame/subframe information from IF4 interface + // timed loop (200 us) + + symbol_mask = 0; + symbol_mask_full = (1<<fp->symbols_per_tti)-1; + if (is_prach_subframe(fp,frame,subframe)>0) + prach_rx = 0; + else + prach_rx = 1; + + do { + recv_IF4(eNB, proc, &packet_type, &symbol_number); + if (is_prach_subframe(fp,frame,subframe)>0 && packet_type == PRACH) { + // wake up prach_rx + prach_rx = 1; + } + if (packet_type == PULFFT) + symbol_mask = symbol_mask | (1<<symbol_number); + + } while( (symbol_mask != symbol_mask_full) || (prach_rx == 0)); + + + //recv_IF4(eNB,subframe<<1); + //recv_IF4(eNB,1+(subframe<<1)); // Tobi aka mr monaco: ETH -- GitLab