From e4b6e855dfdecd3cf93fa3a94bd26cbede23654a Mon Sep 17 00:00:00 2001
From: Daniel <daniel850326@gmail.com>
Date: Wed, 11 Sep 2019 08:01:31 -0700
Subject: [PATCH] debug openair1 error (delete PHY/defs.h modify
 openair2/ENB_APP/enb_config.h)

---
 openair1/PHY/LTE_TRANSPORT/proto_NB_IoT.h  |   8 +-
 openair1/PHY/LTE_TRANSPORT/transport_eNB.h |  74 --
 openair1/PHY/defs.h                        | 892 ---------------------
 openair1/PHY/defs_NB_IoT.h                 |   2 +-
 openair2/ENB_APP/enb_config.h              | 359 +--------
 5 files changed, 10 insertions(+), 1325 deletions(-)
 delete mode 100644 openair1/PHY/defs.h

diff --git a/openair1/PHY/LTE_TRANSPORT/proto_NB_IoT.h b/openair1/PHY/LTE_TRANSPORT/proto_NB_IoT.h
index 0690b4484c..808506e621 100644
--- a/openair1/PHY/LTE_TRANSPORT/proto_NB_IoT.h
+++ b/openair1/PHY/LTE_TRANSPORT/proto_NB_IoT.h
@@ -37,7 +37,7 @@
 
 #include "PHY/defs_NB_IoT.h"
 #include "PHY/impl_defs_lte.h"
-#include "PHY/defs.h"
+
 //#include "PHY/LTE_TRANSPORT/defs_NB_IoT.h"
 //#include <math.h>
 
@@ -428,7 +428,7 @@ void descrambling_NPUSCH_ack_NB_IoT(LTE_DL_FRAME_PARMS  *fp,
 
 uint32_t  turbo_decoding_NB_IoT(PHY_VARS_eNB           *eNB,
                                 NB_IoT_eNB_NULSCH_t    *ulsch_NB_IoT,
-                                eNB_rxtx_proc_t        *proc,
+                                eNB_rxtx_proc_NB_IoT_t        *proc,
                                 uint8_t                 npusch_format,
                                 unsigned int            G,
                                 uint8_t                 rvdx,
@@ -438,7 +438,7 @@ uint32_t  turbo_decoding_NB_IoT(PHY_VARS_eNB           *eNB,
 
 void decode_NPUSCH_msg_NB_IoT(PHY_VARS_eNB        *eNB,
                               LTE_DL_FRAME_PARMS  *fp,
-                              eNB_rxtx_proc_t     *proc,
+                              eNB_rxtx_proc_NB_IoT_t     *proc,
                               uint8_t             npusch_format,
                               uint16_t            N_SF_per_word,
                               uint16_t            Nsc_RU,
@@ -453,7 +453,7 @@ void deinterleaving_NPUSCH_data_NB_IoT(NB_IoT_UL_eNB_HARQ_t *ulsch_harq, int16_t
 
 
 uint8_t rx_ulsch_Gen_NB_IoT(PHY_VARS_eNB             *eNB,
-                             eNB_rxtx_proc_t         *proc,
+                             eNB_rxtx_proc_NB_IoT_t         *proc,
                              uint8_t                 eNB_id,  // this is the effective sector id
                              uint8_t                 UE_id,
                              uint16_t                UL_RB_ID_NB_IoT,  // 22 , to be included in // to be replaced by NB_IoT_start ??
diff --git a/openair1/PHY/LTE_TRANSPORT/transport_eNB.h b/openair1/PHY/LTE_TRANSPORT/transport_eNB.h
index f07515f93a..c60863616d 100644
--- a/openair1/PHY/LTE_TRANSPORT/transport_eNB.h
+++ b/openair1/PHY/LTE_TRANSPORT/transport_eNB.h
@@ -138,80 +138,6 @@ typedef struct {
 } LTE_DL_eNB_HARQ_t;
 
 
-typedef struct {
-  /// Indicator of first transmission
-  uint8_t first_tx;
-  /// Last Ndi received for this process on DCI (used for C-RNTI only)
-  uint8_t DCINdi;
-  /// Flag indicating that this ULSCH has a new packet (start of new round)
-  //  uint8_t Ndi;
-  /// Status Flag indicating for this ULSCH (idle,active,disabled)
-  SCH_status_t status;
-  /// Subframe scheduling indicator (i.e. Transmission opportunity indicator)
-  uint8_t subframe_scheduling_flag;
-  /// Subframe cba scheduling indicator (i.e. Transmission opportunity indicator)
-  uint8_t subframe_cba_scheduling_flag;
-  /// First Allocated RB
-  uint16_t first_rb;
-  /// Current Number of RBs
-  uint16_t nb_rb;
-  /// Last TPC command
-  uint8_t TPC;
-  /// Transport block size
-  uint32_t TBS;
-  /// The payload + CRC size in bits, "B" from 36-212
-  uint32_t B;
-  /// Length of ACK information (bits)
-  uint8_t O_ACK;
-  /// Pointer to the payload
-  uint8_t *b;
-  /// Pointers to transport block segments
-  uint8_t *c[MAX_NUM_ULSCH_SEGMENTS];
-  /// RTC values for each segment (for definition see 36-212 V8.6 2009-03, p.15)
-  uint32_t RTC[MAX_NUM_ULSCH_SEGMENTS];
-  /// Index of current HARQ round for this ULSCH
-  uint8_t round;
-  /// MCS format of this ULSCH
-  uint8_t mcs;
-  /// Redundancy-version of the current sub-frame
-  uint8_t rvidx;
-  /// Turbo-code outputs (36-212 V8.6 2009-03, p.12
-  uint8_t d[MAX_NUM_ULSCH_SEGMENTS][(96+3+(3*6144))];
-  /// Sub-block interleaver outputs (36-212 V8.6 2009-03, p.16-17)
-  uint8_t w[MAX_NUM_ULSCH_SEGMENTS][3*6144];
-  /// Number of code segments (for definition see 36-212 V8.6 2009-03, p.9)
-  uint32_t C;
-  /// Number of "small" code segments (for definition see 36-212 V8.6 2009-03, p.10)
-  uint32_t Cminus;
-  /// Number of "large" code segments (for definition see 36-212 V8.6 2009-03, p.10)
-  uint32_t Cplus;
-  /// Number of bits in "small" code segments (<6144) (for definition see 36-212 V8.6 2009-03, p.10)
-  uint32_t Kminus;
-  /// Number of bits in "large" code segments (<6144) (for definition see 36-212 V8.6 2009-03, p.10)
-  uint32_t Kplus;
-  /// Total number of bits across all segments
-  uint32_t sumKr;
-  /// Number of "Filler" bits (for definition see 36-212 V8.6 2009-03, p.10)
-  uint32_t F;
-  /// Msc_initial, Initial number of subcarriers for ULSCH (36-212, v8.6 2009-03, p.26-27)
-  uint16_t Msc_initial;
-  /// Nsymb_initial, Initial number of symbols for ULSCH (36-212, v8.6 2009-03, p.26-27)
-  uint8_t Nsymb_initial;
-  /// n_DMRS  for cyclic shift of DMRS (36.213 Table 9.1.2-2)
-  uint8_t n_DMRS;
-  /// n_DMRS2 for cyclic shift of DMRS (36.211 Table 5.5.1.1.-1)
-  uint8_t n_DMRS2;
-  /// Flag to indicate that this is a control only ULSCH (i.e. no MAC SDU)
-  uint8_t control_only;
-  /// Flag to indicate that this is a calibration ULSCH (i.e. no MAC SDU and filled with TDD calibration information)
-  //  int calibration_flag;
-  /// Number of soft channel bits
-  uint32_t G;
-
-  // decode phich
-  uint8_t decode_phich;
-} LTE_UL_UE_HARQ_t;
-
 
 typedef struct {
   /// TX buffers for UE-spec transmission (antenna ports 5 or 7..14, prior to precoding)
diff --git a/openair1/PHY/defs.h b/openair1/PHY/defs.h
deleted file mode 100644
index d66bb3c699..0000000000
--- a/openair1/PHY/defs.h
+++ /dev/null
@@ -1,892 +0,0 @@
-/*
- * Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The OpenAirInterface Software Alliance licenses this file to You under
- * the OAI Public License, Version 1.0  (the "License"); you may not use this file
- * except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.openairinterface.org/?page_id=698
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *-------------------------------------------------------------------------------
- * For more information about the OpenAirInterface (OAI) Software Alliance:
- *      contact@openairinterface.org
- */
-
-/*! \file PHY/defs.h
- \brief Top-level defines and structure definitions
- \author R. Knopp, F. Kaltenberger
- \date 2011
- \version 0.1
- \company Eurecom
- \email: knopp@eurecom.fr,florian.kaltenberger@eurecom.fr
- \note
- \warning
-*/
-#ifndef __PHY_DEFS__H__
-#define __PHY_DEFS__H__
-
-#define _GNU_SOURCE 
-#include <stdio.h>
-#include <stdlib.h>
-#include <malloc.h>
-#include <string.h>
-#include <math.h>
-#include "common_lib.h"
-
-//#include <complex.h>
-#include "assertions.h"
-#ifdef MEX
-# define msg mexPrintf
-#else
-# ifdef OPENAIR2
-#   if ENABLE_RAL
-#     include "collection/hashtable/hashtable.h"
-#     include "COMMON/ral_messages_types.h"
-#     include "UTIL/queue.h"
-#   endif
-#   include "log.h"
-#   define msg(aRGS...) LOG_D(PHY, ##aRGS)
-# else
-#   define msg printf
-# endif
-#endif
-//use msg in the real-time thread context
-#define msg_nrt printf
-//use msg_nrt in the non real-time context (for initialization, ...)
-#ifndef malloc16
-#  ifdef __AVX2__
-#    define malloc16(x) memalign(32,x)
-#  else
-#    define malloc16(x) memalign(16,x)
-#  endif
-#endif
-#define free16(y,x) free(y)
-#define bigmalloc malloc
-#define bigmalloc16 malloc16
-#define openair_free(y,x) free((y))
-#define PAGE_SIZE 4096
-
-//#ifdef SHRLIBDEV
-//extern int rxrescale;
-//#define RX_IQRESCALELEN rxrescale
-//#else
-//#define RX_IQRESCALELEN 15
-//#endif
-
-//! \brief Allocate \c size bytes of memory on the heap with alignment 16 and zero it afterwards.
-//! If no more memory is available, this function will terminate the program with an assertion error.
-static inline void* malloc16_clear( size_t size )
-{
-#ifdef __AVX2__
-  void* ptr = memalign(32, size);
-#else
-  void* ptr = memalign(16, size);
-#endif
-  DevAssert(ptr);
-  memset( ptr, 0, size );
-  return ptr;
-}
-
-
-
-#define PAGE_MASK 0xfffff000
-#define virt_to_phys(x) (x)
-
-#define openair_sched_exit() exit(-1)
-
-
-#define max(a,b)  ((a)>(b) ? (a) : (b))
-#define min(a,b)  ((a)<(b) ? (a) : (b))
-
-
-#define bzero(s,n) (memset((s),0,(n)))
-
-#define cmax(a,b)  ((a>b) ? (a) : (b))
-#define cmin(a,b)  ((a<b) ? (a) : (b))
-
-#define cmax3(a,b,c) ((cmax(a,b)>c) ? (cmax(a,b)) : (c))
-
-/// suppress compiler warning for unused arguments
-#define UNUSED(x) (void)x;
-
-
-#include "impl_defs_top.h"
-#include "impl_defs_lte.h"
-
-#include "PHY/LTE_TRANSPORT/defs_NB_IoT.h"
-#include "openair2/PHY_INTERFACE/IF_Module_NB_IoT.h"
-
-#include "PHY/TOOLS/time_meas.h"
-#include "PHY/CODING/defs.h"
-#include "PHY/TOOLS/defs.h"
-#include "platform_types.h"
-
-#ifdef OPENAIR_LTE
-
-#include "PHY/LTE_TRANSPORT/defs.h"
-
-#include <pthread.h>
-
-#include "targets/ARCH/COMMON/common_lib.h"
-
-#define NUM_DCI_MAX 32
-
-#define NUMBER_OF_eNB_SECTORS_MAX 3
-
-#define NB_BANDS_MAX 8
-
-#include "defs_common.h"
-
-#ifdef OCP_FRAMEWORK
-#include <enums.h>
-#else
-typedef enum {normal_txrx=0,rx_calib_ue=1,rx_calib_ue_med=2,rx_calib_ue_byp=3,debug_prach=4,no_L2_connect=5,calib_prach_tx=6,rx_dump_frame=7,loop_through_memory=8} runmode_t;
-
-enum transmission_access_mode {
-  NO_ACCESS=0,
-  POSTPONED_ACCESS,
-  CANCELED_ACCESS,
-  UNKNOWN_ACCESS,
-  SCHEDULED_ACCESS,
-  CBA_ACCESS};
-
-typedef enum  {
-  eNodeB_3GPP=0,   // classical eNodeB function
-  eNodeB_3GPP_BBU, // eNodeB with NGFI IF5
-  NGFI_RCC_IF4p5,  // NGFI_RCC (NGFI radio cloud center)
-  NGFI_RAU_IF4p5,
-  NGFI_RRU_IF5,    // NGFI_RRU (NGFI remote radio-unit,IF5)
-  NGFI_RRU_IF4p5   // NGFI_RRU (NGFI remote radio-unit,IF4p5)
-} eNB_func_t;
-
-typedef enum {
-  synch_to_ext_device=0,  // synch to RF or Ethernet device
-  synch_to_other          // synch to another source (timer, other CC_id)
-} eNB_timing_t;
-#endif
-
-typedef struct UE_SCAN_INFO_s {
-  /// 10 best amplitudes (linear) for each pss signals
-  int32_t amp[3][10];
-  /// 10 frequency offsets (kHz) corresponding to best amplitudes, with respect do minimum DL frequency in the band
-  int32_t freq_offset_Hz[3][10];
-} UE_SCAN_INFO_t;
-
-/// Top-level PHY Data Structure for RN
-typedef struct {
-  /// Module ID indicator for this instance
-  uint8_t Mod_id;
-  uint32_t frame;
-  // phy_vars_eNB
-  // phy_vars ue
-  // cuurently only used to store and forward the PMCH
-  uint8_t mch_avtive[10];
-  uint8_t sync_area[10]; // num SF
-  LTE_UE_DLSCH_t   *dlsch_rn_MCH[10];
-
-} PHY_VARS_RN;
-
-
-
-typedef struct {
-  struct PHY_VARS_eNB_s *eNB;
-  int UE_id;
-  int harq_pid;
-  int llr8_flag;
-  int ret;
-} td_params;
-
-typedef struct {
-  struct PHY_VARS_eNB_s *eNB;
-  LTE_eNB_DLSCH_t *dlsch;
-  int G;
-} te_params;
-
-
-
-
-/// Context data structure for RX/TX portion of subframe processing
-typedef struct {
-  /// index of the current UE RX/TX proc
-  int                  proc_id;
-  /// Component Carrier index
-  uint8_t              CC_id;
-  /// timestamp transmitted to HW
-  openair0_timestamp timestamp_tx;
-  /// subframe to act upon for transmission
-  int subframe_tx;
-  /// subframe to act upon for reception
-  int subframe_rx;
-  /// frame to act upon for transmission
-  int frame_tx;
-  /// frame to act upon for reception
-  int frame_rx;
-  /// \brief Instance count for RXn-TXnp4 processing thread.
-  /// \internal This variable is protected by \ref mutex_rxtx.
-  int instance_cnt_rxtx;
-  /// pthread structure for RXn-TXnp4 processing thread
-  pthread_t pthread_rxtx;
-  /// pthread attributes for RXn-TXnp4 processing thread
-  pthread_attr_t attr_rxtx;
-  /// condition variable for tx processing thread
-  pthread_cond_t cond_rxtx;
-  /// mutex for RXn-TXnp4 processing thread
-  pthread_mutex_t mutex_rxtx;
-  /// scheduling parameters for RXn-TXnp4 thread
-  struct sched_param sched_param_rxtx;
-  int sub_frame_start;
-  int sub_frame_step;
-  unsigned long long gotIQs;
-} UE_rxtx_proc_t;
-
-/// Context data structure for eNB subframe processing
-typedef struct {
-  /// Component Carrier index
-  uint8_t              CC_id;
-  /// Last RX timestamp
-  openair0_timestamp timestamp_rx;
-  /// pthread attributes for main UE thread
-  pthread_attr_t attr_ue;
-  /// scheduling parameters for main UE thread
-  struct sched_param sched_param_ue;
-  /// pthread descriptor main UE thread
-  pthread_t pthread_ue;
-  /// \brief Instance count for synch thread.
-  /// \internal This variable is protected by \ref mutex_synch.
-  int instance_cnt_synch;
-  /// pthread attributes for synch processing thread
-  pthread_attr_t attr_synch;
-  /// scheduling parameters for synch thread
-  struct sched_param sched_param_synch;
-  /// pthread descriptor synch thread
-  pthread_t pthread_synch;
-  /// condition variable for UE synch thread;
-  pthread_cond_t cond_synch;
-  /// mutex for UE synch thread
-  pthread_mutex_t mutex_synch;
-  /// set of scheduling variables RXn-TXnp4 threads
-  UE_rxtx_proc_t proc_rxtx[2];
-} UE_proc_t;
-
-
-
-/// Top-level PHY Data Structure for eNB
-typedef struct PHY_VARS_eNB_s {
-  /// Module ID indicator for this instance
-  module_id_t          Mod_id;
-  uint8_t              CC_id;
-  eNB_proc_t           proc;
-  eNB_func_t           node_function;
-  eNB_timing_t         node_timing;
-  eth_params_t         *eth_params;
-  int                  single_thread_flag;
-  openair0_rf_map      rf_map;
-  int                  abstraction_flag;
-  openair0_timestamp   ts_offset;
-  // indicator for synchronization state of eNB
-  int                  in_synch;
-  // indicator for master/slave (RRU)
-  int                  is_slave;
-  // indicator for precoding function (eNB,3GPP_eNB_BBU)
-  int                  do_precoding;
-  void                 (*do_prach)(struct PHY_VARS_eNB_s *eNB,int frame,int subframe);
-  void                 (*fep)(struct PHY_VARS_eNB_s *eNB,eNB_rxtx_proc_t *proc);
-  int                  (*td)(struct PHY_VARS_eNB_s *eNB,int UE_id,int harq_pid,int llr8_flag);
-  int                  (*te)(struct PHY_VARS_eNB_s *,uint8_t *,uint8_t,LTE_eNB_DLSCH_t *,int,uint8_t,time_stats_t *,time_stats_t *,time_stats_t *);
-  void                 (*proc_uespec_rx)(struct PHY_VARS_eNB_s *eNB,eNB_rxtx_proc_t *proc,const relaying_type_t r_type);
-  void                 (*proc_tx)(struct PHY_VARS_eNB_s *eNB,eNB_rxtx_proc_t *proc,relaying_type_t r_type,PHY_VARS_RN *rn);
-  void                 (*tx_fh)(struct PHY_VARS_eNB_s *eNB,eNB_rxtx_proc_t *proc);
-  void                 (*rx_fh)(struct PHY_VARS_eNB_s *eNB,int *frame, int *subframe);
-  int                  (*start_rf)(struct PHY_VARS_eNB_s *eNB);
-  int                  (*start_if)(struct PHY_VARS_eNB_s *eNB);
-  void                 (*fh_asynch)(struct PHY_VARS_eNB_s *eNB,int *frame, int *subframe);
-  uint8_t              local_flag;
-  uint32_t             rx_total_gain_dB;
-  LTE_DL_FRAME_PARMS   frame_parms;
-  PHY_MEASUREMENTS_eNB measurements[NUMBER_OF_eNB_SECTORS_MAX]; /// Measurement variables
-  LTE_eNB_COMMON       common_vars;
-  LTE_eNB_SRS          srs_vars[NUMBER_OF_UE_MAX];
-  LTE_eNB_PBCH         pbch;
-  LTE_eNB_PUSCH       *pusch_vars[NUMBER_OF_UE_MAX];
-  LTE_eNB_PRACH        prach_vars;
-  LTE_eNB_DLSCH_t     *dlsch[NUMBER_OF_UE_MAX][2];   // Nusers times two spatial streams
-  LTE_eNB_ULSCH_t     *ulsch[NUMBER_OF_UE_MAX+1];      // Nusers + number of RA (the ulsch[0] contains RAR)
-  LTE_eNB_DLSCH_t     *dlsch_SI,*dlsch_ra;
-  LTE_eNB_DLSCH_t     *dlsch_MCH;
-  LTE_eNB_UE_stats     UE_stats[NUMBER_OF_UE_MAX];
-  LTE_eNB_UE_stats    *UE_stats_ptr[NUMBER_OF_UE_MAX];
-
-
-  /// cell-specific reference symbols
-  uint32_t         lte_gold_table[20][2][14];
-
-
-  /// cell-specific reference symbols
-  uint32_t         lte_gold_table_NB_IoT[20][2][14];
-
-  /// UE-specific reference symbols (p=5), TM 7
-  uint32_t         lte_gold_uespec_port5_table[NUMBER_OF_UE_MAX][20][38];
-
-  /// UE-specific reference symbols (p=7...14), TM 8/9/10
-  uint32_t         lte_gold_uespec_table[2][20][2][21];
-
-  /// mbsfn reference symbols
-  uint32_t         lte_gold_mbsfn_table[10][3][42];
-
-  uint32_t X_u[64][839];
-
-  uint8_t pbch_pdu[4]; //PBCH_PDU_SIZE
-  char eNB_generate_rar;
-
-  /// Indicator set to 0 after first SR
-  uint8_t first_sr[NUMBER_OF_UE_MAX];
-
-  uint32_t max_peak_val;
-  int max_eNB_id, max_sync_pos;
-
-  int              N_TA_offset; ///timing offset used in TDD
-
-  /// \brief sinr for all subcarriers of the current link (used only for abstraction).
-  /// first index: ? [0..N_RB_DL*12[
-  double *sinr_dB;
-
-  /// N0 (used for abstraction)
-  double N0;
-
-  unsigned char first_run_timing_advance[NUMBER_OF_UE_MAX];
-  unsigned char first_run_I0_measurements;
-
-  unsigned char cooperation_flag; // for cooperative communication
-
-  unsigned char    is_secondary_eNB; // primary by default
-  unsigned char    is_init_sync;     /// Flag to tell if initial synchronization is performed. This affects how often the secondary eNB will listen to the PSS from the primary system.
-  unsigned char    has_valid_precoder; /// Flag to tell if secondary eNB has channel estimates to create NULL-beams from, and this B/F vector is created.
-  unsigned char    PeNB_id;          /// id of Primary eNB
-  int              rx_offset;        /// Timing offset (used if is_secondary_eNB)
-
-  /// hold the precoder for NULL beam to the primary user
-  int              **dl_precoder_SeNB[3];
-  char             log2_maxp; /// holds the maximum channel/precoder coefficient
-
-  /// if ==0 enables phy only test mode
-  int mac_enabled;
-
-  /// For emulation only (used by UE abstraction to retrieve DCI)
-  uint8_t num_common_dci[2];                         // num_dci in even/odd subframes
-  uint8_t num_ue_spec_dci[2];                         // num_dci in even/odd subframes
-  DCI_ALLOC_t dci_alloc[2][NUM_DCI_MAX]; // dci_alloc from even/odd subframes
-
-
-  // PDSCH Varaibles
-  PDSCH_CONFIG_DEDICATED pdsch_config_dedicated[NUMBER_OF_UE_MAX];
-
-  // PUSCH Varaibles
-  PUSCH_CONFIG_DEDICATED pusch_config_dedicated[NUMBER_OF_UE_MAX];
-
-  // PUCCH variables
-  PUCCH_CONFIG_DEDICATED pucch_config_dedicated[NUMBER_OF_UE_MAX];
-
-  // UL-POWER-Control
-  UL_POWER_CONTROL_DEDICATED ul_power_control_dedicated[NUMBER_OF_UE_MAX];
-
-  // TPC
-  TPC_PDCCH_CONFIG tpc_pdcch_config_pucch[NUMBER_OF_UE_MAX];
-  TPC_PDCCH_CONFIG tpc_pdcch_config_pusch[NUMBER_OF_UE_MAX];
-
-  // CQI reporting
-  CQI_REPORT_CONFIG cqi_report_config[NUMBER_OF_UE_MAX];
-
-  // SRS Variables
-  SOUNDINGRS_UL_CONFIG_DEDICATED soundingrs_ul_config_dedicated[NUMBER_OF_UE_MAX];
-  uint8_t ncs_cell[20][7];
-
-  // Scheduling Request Config
-  SCHEDULING_REQUEST_CONFIG scheduling_request_config[NUMBER_OF_UE_MAX];
-
-  // Transmission mode per UE
-  uint8_t transmission_mode[NUMBER_OF_UE_MAX];
-
-  /// cba_last successful reception for each group, used for collision detection
-  uint8_t cba_last_reception[4];
-
-  // Pointers for active physicalConfigDedicated to be applied in current subframe
-  struct PhysicalConfigDedicated *physicalConfigDedicated[NUMBER_OF_UE_MAX];
-
-  uint32_t rb_mask_ul[4];
-
-  /// Information regarding TM5
-  MU_MIMO_mode mu_mimo_mode[NUMBER_OF_UE_MAX];
-
-
-  /// target_ue_dl_mcs : only for debug purposes
-  uint32_t target_ue_dl_mcs;
-  /// target_ue_ul_mcs : only for debug purposes
-  uint32_t target_ue_ul_mcs;
-  /// target_ue_dl_rballoc : only for debug purposes
-  uint32_t ue_dl_rb_alloc;
-  /// target ul PRBs : only for debug
-  uint32_t ue_ul_nb_rb;
-
-  ///check for Total Transmissions
-  uint32_t check_for_total_transmissions;
-
-  ///check for MU-MIMO Transmissions
-  uint32_t check_for_MUMIMO_transmissions;
-
-  ///check for SU-MIMO Transmissions
-  uint32_t check_for_SUMIMO_transmissions;
-
-  ///check for FULL MU-MIMO Transmissions
-  uint32_t  FULL_MUMIMO_transmissions;
-
-  /// Counter for total bitrate, bits and throughput in downlink
-  uint32_t total_dlsch_bitrate;
-  uint32_t total_transmitted_bits;
-  uint32_t total_system_throughput;
-
-  int hw_timing_advance;
-
-  time_stats_t phy_proc;
-  time_stats_t phy_proc_tx;
-  time_stats_t phy_proc_rx;
-  time_stats_t rx_prach;
-
-  time_stats_t ofdm_mod_stats;
-  time_stats_t dlsch_encoding_stats;
-  time_stats_t dlsch_modulation_stats;
-  time_stats_t dlsch_scrambling_stats;
-  time_stats_t dlsch_rate_matching_stats;
-  time_stats_t dlsch_turbo_encoding_stats;
-  time_stats_t dlsch_interleaving_stats;
-
-  time_stats_t ofdm_demod_stats;
-  time_stats_t rx_dft_stats;
-  time_stats_t ulsch_channel_estimation_stats;
-  time_stats_t ulsch_freq_offset_estimation_stats;
-  time_stats_t ulsch_decoding_stats;
-  time_stats_t ulsch_demodulation_stats;
-  time_stats_t ulsch_rate_unmatching_stats;
-  time_stats_t ulsch_turbo_decoding_stats;
-  time_stats_t ulsch_deinterleaving_stats;
-  time_stats_t ulsch_demultiplexing_stats;
-  time_stats_t ulsch_llr_stats;
-  time_stats_t ulsch_tc_init_stats;
-  time_stats_t ulsch_tc_alpha_stats;
-  time_stats_t ulsch_tc_beta_stats;
-  time_stats_t ulsch_tc_gamma_stats;
-  time_stats_t ulsch_tc_ext_stats;
-  time_stats_t ulsch_tc_intl1_stats;
-  time_stats_t ulsch_tc_intl2_stats;
-
-#ifdef LOCALIZATION
-  /// time state for localization
-  time_stats_t localization_stats;
-#endif
-
-  int32_t pucch1_stats_cnt[NUMBER_OF_UE_MAX][10];
-  int32_t pucch1_stats[NUMBER_OF_UE_MAX][10*1024];
-  int32_t pucch1_stats_thres[NUMBER_OF_UE_MAX][10*1024];
-  int32_t pucch1ab_stats_cnt[NUMBER_OF_UE_MAX][10];
-  int32_t pucch1ab_stats[NUMBER_OF_UE_MAX][2*10*1024];
-  int32_t pusch_stats_rb[NUMBER_OF_UE_MAX][10240];
-  int32_t pusch_stats_round[NUMBER_OF_UE_MAX][10240];
-  int32_t pusch_stats_mcs[NUMBER_OF_UE_MAX][10240];
-  int32_t pusch_stats_bsr[NUMBER_OF_UE_MAX][10240];
-  int32_t pusch_stats_BO[NUMBER_OF_UE_MAX][10240];
-
-  /// RF and Interface devices per CC
-  openair0_device rfdevice;
-  openair0_device ifdevice;
-  /// Pointer for ifdevice buffer struct
-  if_buffer_t ifbuffer;
-
-/////////////// NB-IoT testing ////////////////////////////
-volatile uint16_t preamble_index_NB_IoT;
-NB_IoT_eNB_NPBCH_t        npbch;
-NB_IoT_eNB_NDLSCH_t       *ndlsch[NUMBER_OF_UE_MAX];
-NB_IoT_eNB_NULSCH_t       *nulsch[NUMBER_OF_UE_MAX+1]; //nulsch[0] contains the RAR
-NB_IoT_eNB_NDLSCH_t       *ndlsch_SIB1;
-NB_IoT_eNB_NDLSCH_t       *ndlsch_SIB23;
-NB_IoT_eNB_NDLSCH_t       *ndlsch_RAR;
-NB_IoT_eNB_NPDCCH_t       *npdcch[NUMBER_OF_UE_MAX_NB_IoT];
-//NB_IoT_eNB_NDLSCH_t       ndlsch_rar;
-NB_IoT_eNB_NPDCCH_t       *npdcch_DCI;
-
-NB_IoT_eNB_NULSCH_t       *ulsch_NB_IoT[NUMBER_OF_UE_MAX+1];
-NB_IoT_eNB_NULSCH_t       *ulsch_msg3_NB_IoT; 
-
-NPRACH_CONFIG_COMMON       nprach_config_common;
-////////////// For IF Module /////////////////////////////
-
-IF_Module_NB_IoT_t          *if_inst;           // should be replaced by if_inst_NB_IoT;  to avoid conflict during the merge with develop branch
-UL_IND_NB_IoT_t             UL_INFO;            // should be replaced by UL_INFO_NB_IoT;
-pthread_mutex_t             UL_INFO_mutex;
-/// NFAPI NPRACH information 
-//nfapi_preamble_pdu_t preamble_list_NB_IoT[MAX_NUM_RX_PRACH_PREAMBLES];   // MAX_NUM_RX_PRACH_PREAMBLES in PHY/defs_eNB.h
-
-//nfapi_preamble_pdu_t preamble_list_NB_IoT[4];
-
-uint8_t                     msg3_pdu[6];
-DCI_PDU_NB_IoT              *DCI_pdu;
-//////////////////// END /////////////////////////////////
-} PHY_VARS_eNB;
-
-#define debug_msg if (((mac_xface->frame%100) == 0) || (mac_xface->frame < 50)) msg
-
-/// Top-level PHY Data Structure for UE
-typedef struct {
-  /// \brief Module ID indicator for this instance
-  uint8_t Mod_id;
-  /// \brief Component carrier ID for this PHY instance
-  uint8_t CC_id;
-  /// \brief Mapping of CC_id antennas to cards
-  openair0_rf_map      rf_map;
-  //uint8_t local_flag;
-  /// \brief Indicator of current run mode of UE (normal_txrx, rx_calib_ue, no_L2_connect, debug_prach)
-  runmode_t mode;
-  /// \brief Indicator that UE should perform band scanning
-  int UE_scan;
-  /// \brief Indicator that UE should perform coarse scanning around carrier
-  int UE_scan_carrier;
-  /// \brief Indicator that UE is synchronized to an eNB
-  int is_synchronized;
-  /// Data structure for UE process scheduling
-  UE_proc_t proc;
-  /// Flag to indicate the UE shouldn't do timing correction at all
-  int no_timing_correction;
-  /// \brief Total gain of the TX chain (16-bit baseband I/Q to antenna)
-  uint32_t tx_total_gain_dB;
-  /// \brief Total gain of the RX chain (antenna to baseband I/Q) This is a function of rx_gain_mode (and the corresponding gain) and the rx_gain of the card.
-  uint32_t rx_total_gain_dB;
-  /// \brief Total gains with maximum RF gain stage (ExpressMIMO2/Lime)
-  uint32_t rx_gain_max[4];
-  /// \brief Total gains with medium RF gain stage (ExpressMIMO2/Lime)
-  uint32_t rx_gain_med[4];
-  /// \brief Total gains with bypassed RF gain stage (ExpressMIMO2/Lime)
-  uint32_t rx_gain_byp[4];
-  /// \brief Current transmit power
-  int16_t tx_power_dBm[10];
-  /// \brief Total number of REs in current transmission
-  int tx_total_RE[10];
-  /// \brief Maximum transmit power
-  int8_t tx_power_max_dBm;
-  /// \brief Number of eNB seen by UE
-  uint8_t n_connected_eNB;
-  /// \brief indicator that Handover procedure has been initiated
-  uint8_t ho_initiated;
-  /// \brief indicator that Handover procedure has been triggered
-  uint8_t ho_triggered;
-  /// \brief Measurement variables.
-  PHY_MEASUREMENTS measurements;
-  LTE_DL_FRAME_PARMS  frame_parms;
-  /// \brief Frame parame before ho used to recover if ho fails.
-  LTE_DL_FRAME_PARMS  frame_parms_before_ho;
-  LTE_UE_COMMON    common_vars;
-
-  LTE_UE_PDSCH     *pdsch_vars[2][NUMBER_OF_CONNECTED_eNB_MAX+1]; // two RxTx Threads
-  LTE_UE_PDSCH_FLP *pdsch_vars_flp[NUMBER_OF_CONNECTED_eNB_MAX+1];
-  LTE_UE_PDSCH     *pdsch_vars_SI[NUMBER_OF_CONNECTED_eNB_MAX+1];
-  LTE_UE_PDSCH     *pdsch_vars_ra[NUMBER_OF_CONNECTED_eNB_MAX+1];
-  LTE_UE_PDSCH     *pdsch_vars_p[NUMBER_OF_CONNECTED_eNB_MAX+1];
-  LTE_UE_PDSCH     *pdsch_vars_MCH[NUMBER_OF_CONNECTED_eNB_MAX];
-  LTE_UE_PBCH      *pbch_vars[NUMBER_OF_CONNECTED_eNB_MAX];
-  LTE_UE_PDCCH     *pdcch_vars[2][NUMBER_OF_CONNECTED_eNB_MAX];
-  LTE_UE_PRACH     *prach_vars[NUMBER_OF_CONNECTED_eNB_MAX];
-  LTE_UE_DLSCH_t   *dlsch[2][NUMBER_OF_CONNECTED_eNB_MAX][2]; // two RxTx Threads
-  LTE_UE_ULSCH_t   *ulsch[NUMBER_OF_CONNECTED_eNB_MAX];
-  LTE_UE_DLSCH_t   *dlsch_SI[NUMBER_OF_CONNECTED_eNB_MAX];
-  LTE_UE_DLSCH_t   *dlsch_ra[NUMBER_OF_CONNECTED_eNB_MAX];
-  LTE_UE_DLSCH_t   *dlsch_p[NUMBER_OF_CONNECTED_eNB_MAX];
-  LTE_UE_DLSCH_t   *dlsch_MCH[NUMBER_OF_CONNECTED_eNB_MAX];
-  // This is for SIC in the UE, to store the reencoded data
-  LTE_eNB_DLSCH_t  *dlsch_eNB[NUMBER_OF_CONNECTED_eNB_MAX];
-
-  //Paging parameters
-  uint32_t              IMSImod1024;
-  uint32_t              PF;
-  uint32_t              PO;
-
-  // For abstraction-purposes only
-  uint8_t               sr[10];
-  uint8_t               pucch_sel[10];
-  uint8_t               pucch_payload[22];
-
-  UE_MODE_t        UE_mode[NUMBER_OF_CONNECTED_eNB_MAX];
-  /// cell-specific reference symbols
-  uint32_t lte_gold_table[7][20][2][14];
-
-  /// UE-specific reference symbols (p=5), TM 7
-  uint32_t lte_gold_uespec_port5_table[20][38];
-
-  /// ue-specific reference symbols
-  uint32_t lte_gold_uespec_table[2][20][2][21];
-
-  /// mbsfn reference symbols
-  uint32_t lte_gold_mbsfn_table[10][3][42];
-
-  uint32_t X_u[64][839];
-
-  uint32_t high_speed_flag;
-  uint32_t perfect_ce;
-  int16_t ch_est_alpha;
-  int generate_ul_signal[NUMBER_OF_CONNECTED_eNB_MAX];
-
-  UE_SCAN_INFO_t scan_info[NB_BANDS_MAX];
-
-  char ulsch_no_allocation_counter[NUMBER_OF_CONNECTED_eNB_MAX];
-
-
-
-  unsigned char ulsch_Msg3_active[NUMBER_OF_CONNECTED_eNB_MAX];
-  uint32_t  ulsch_Msg3_frame[NUMBER_OF_CONNECTED_eNB_MAX];
-  unsigned char ulsch_Msg3_subframe[NUMBER_OF_CONNECTED_eNB_MAX];
-  PRACH_RESOURCES_t *prach_resources[NUMBER_OF_CONNECTED_eNB_MAX];
-  int turbo_iterations, turbo_cntl_iterations;
-  /// \brief ?.
-  /// - first index: eNB [0..NUMBER_OF_CONNECTED_eNB_MAX[ (hard coded)
-  uint32_t total_TBS[NUMBER_OF_CONNECTED_eNB_MAX];
-  /// \brief ?.
-  /// - first index: eNB [0..NUMBER_OF_CONNECTED_eNB_MAX[ (hard coded)
-  uint32_t total_TBS_last[NUMBER_OF_CONNECTED_eNB_MAX];
-  /// \brief ?.
-  /// - first index: eNB [0..NUMBER_OF_CONNECTED_eNB_MAX[ (hard coded)
-  uint32_t bitrate[NUMBER_OF_CONNECTED_eNB_MAX];
-  /// \brief ?.
-  /// - first index: eNB [0..NUMBER_OF_CONNECTED_eNB_MAX[ (hard coded)
-  uint32_t total_received_bits[NUMBER_OF_CONNECTED_eNB_MAX];
-  int dlsch_errors[NUMBER_OF_CONNECTED_eNB_MAX];
-  int dlsch_errors_last[NUMBER_OF_CONNECTED_eNB_MAX];
-  int dlsch_received[NUMBER_OF_CONNECTED_eNB_MAX];
-  int dlsch_received_last[NUMBER_OF_CONNECTED_eNB_MAX];
-  int dlsch_fer[NUMBER_OF_CONNECTED_eNB_MAX];
-  int dlsch_SI_received[NUMBER_OF_CONNECTED_eNB_MAX];
-  int dlsch_SI_errors[NUMBER_OF_CONNECTED_eNB_MAX];
-  int dlsch_ra_received[NUMBER_OF_CONNECTED_eNB_MAX];
-  int dlsch_ra_errors[NUMBER_OF_CONNECTED_eNB_MAX];
-  int dlsch_p_received[NUMBER_OF_CONNECTED_eNB_MAX];
-  int dlsch_p_errors[NUMBER_OF_CONNECTED_eNB_MAX];
-  int dlsch_mch_received_sf[MAX_MBSFN_AREA][NUMBER_OF_CONNECTED_eNB_MAX];
-  int dlsch_mch_received[NUMBER_OF_CONNECTED_eNB_MAX];
-  int dlsch_mcch_received[MAX_MBSFN_AREA][NUMBER_OF_CONNECTED_eNB_MAX];
-  int dlsch_mtch_received[MAX_MBSFN_AREA][NUMBER_OF_CONNECTED_eNB_MAX];
-  int dlsch_mcch_errors[MAX_MBSFN_AREA][NUMBER_OF_CONNECTED_eNB_MAX];
-  int dlsch_mtch_errors[MAX_MBSFN_AREA][NUMBER_OF_CONNECTED_eNB_MAX];
-  int dlsch_mcch_trials[MAX_MBSFN_AREA][NUMBER_OF_CONNECTED_eNB_MAX];
-  int dlsch_mtch_trials[MAX_MBSFN_AREA][NUMBER_OF_CONNECTED_eNB_MAX];
-  int current_dlsch_cqi[NUMBER_OF_CONNECTED_eNB_MAX];
-  unsigned char first_run_timing_advance[NUMBER_OF_CONNECTED_eNB_MAX];
-  uint8_t               generate_prach;
-  uint8_t               prach_cnt;
-  uint8_t               prach_PreambleIndex;
-  //  uint8_t               prach_timer;
-  uint8_t               decode_SIB;
-  uint8_t               decode_MIB;
-  int              rx_offset; /// Timing offset
-  int              rx_offset_diff; /// Timing adjustment for ofdm symbol0 on HW USRP
-  int              timing_advance; ///timing advance signalled from eNB
-  int              hw_timing_advance;
-  int              N_TA_offset; ///timing offset used in TDD
-  /// Flag to tell if UE is secondary user (cognitive mode)
-  unsigned char    is_secondary_ue;
-  /// Flag to tell if secondary eNB has channel estimates to create NULL-beams from.
-  unsigned char    has_valid_precoder;
-  /// hold the precoder for NULL beam to the primary eNB
-  int              **ul_precoder_S_UE;
-  /// holds the maximum channel/precoder coefficient
-  char             log2_maxp;
-
-  /// if ==0 enables phy only test mode
-  int mac_enabled;
-
-  /// Flag to initialize averaging of PHY measurements
-  int init_averaging;
-
-  /// \brief sinr for all subcarriers of the current link (used only for abstraction).
-  /// - first index: ? [0..12*N_RB_DL[
-  double *sinr_dB;
-
-  /// \brief sinr for all subcarriers of first symbol for the CQI Calculation.
-  /// - first index: ? [0..12*N_RB_DL[
-  double *sinr_CQI_dB;
-
-  /// sinr_effective used for CQI calulcation
-  double sinr_eff;
-
-  /// N0 (used for abstraction)
-  double N0;
-
-  /// PDSCH Varaibles
-  PDSCH_CONFIG_DEDICATED pdsch_config_dedicated[NUMBER_OF_CONNECTED_eNB_MAX];
-
-  /// PUSCH Varaibles
-  PUSCH_CONFIG_DEDICATED pusch_config_dedicated[NUMBER_OF_CONNECTED_eNB_MAX];
-
-  /// PUSCH contention-based access vars
-  PUSCH_CA_CONFIG_DEDICATED  pusch_ca_config_dedicated[NUMBER_OF_eNB_MAX]; // lola
-
-  /// PUCCH variables
-
-  PUCCH_CONFIG_DEDICATED pucch_config_dedicated[NUMBER_OF_CONNECTED_eNB_MAX];
-
-  uint8_t ncs_cell[20][7];
-
-  /// UL-POWER-Control
-  UL_POWER_CONTROL_DEDICATED ul_power_control_dedicated[NUMBER_OF_CONNECTED_eNB_MAX];
-
-  /// TPC
-  TPC_PDCCH_CONFIG tpc_pdcch_config_pucch[NUMBER_OF_CONNECTED_eNB_MAX];
-  TPC_PDCCH_CONFIG tpc_pdcch_config_pusch[NUMBER_OF_CONNECTED_eNB_MAX];
-
-  /// CQI reporting
-  CQI_REPORT_CONFIG cqi_report_config[NUMBER_OF_CONNECTED_eNB_MAX];
-
-  /// SRS Variables
-  SOUNDINGRS_UL_CONFIG_DEDICATED soundingrs_ul_config_dedicated[NUMBER_OF_CONNECTED_eNB_MAX];
-
-  /// Scheduling Request Config
-  SCHEDULING_REQUEST_CONFIG scheduling_request_config[NUMBER_OF_CONNECTED_eNB_MAX];
-
-  /// Transmission mode per eNB
-  uint8_t transmission_mode[NUMBER_OF_CONNECTED_eNB_MAX];
-
-  time_stats_t phy_proc;
-  time_stats_t phy_proc_tx;
-  time_stats_t phy_proc_rx[2];
-
-  uint32_t use_ia_receiver;
-
-  time_stats_t ofdm_mod_stats;
-  time_stats_t ulsch_encoding_stats;
-  time_stats_t ulsch_modulation_stats;
-  time_stats_t ulsch_segmentation_stats;
-  time_stats_t ulsch_rate_matching_stats;
-  time_stats_t ulsch_turbo_encoding_stats;
-  time_stats_t ulsch_interleaving_stats;
-  time_stats_t ulsch_multiplexing_stats;
-
-  time_stats_t generic_stat;
-  time_stats_t pdsch_procedures_stat;
-  time_stats_t dlsch_procedures_stat;
-
-  time_stats_t ofdm_demod_stats;
-  time_stats_t dlsch_rx_pdcch_stats;
-  time_stats_t rx_dft_stats;
-  time_stats_t dlsch_channel_estimation_stats;
-  time_stats_t dlsch_freq_offset_estimation_stats;
-  time_stats_t dlsch_decoding_stats[2];
-  time_stats_t dlsch_demodulation_stats;
-  time_stats_t dlsch_rate_unmatching_stats;
-  time_stats_t dlsch_turbo_decoding_stats;
-  time_stats_t dlsch_deinterleaving_stats;
-  time_stats_t dlsch_llr_stats;
-  time_stats_t dlsch_unscrambling_stats;
-  time_stats_t dlsch_rate_matching_stats;
-  time_stats_t dlsch_turbo_encoding_stats;
-  time_stats_t dlsch_interleaving_stats;
-  time_stats_t dlsch_tc_init_stats;
-  time_stats_t dlsch_tc_alpha_stats;
-  time_stats_t dlsch_tc_beta_stats;
-  time_stats_t dlsch_tc_gamma_stats;
-  time_stats_t dlsch_tc_ext_stats;
-  time_stats_t dlsch_tc_intl1_stats;
-  time_stats_t dlsch_tc_intl2_stats;
-  time_stats_t tx_prach;
-
-  /// RF and Interface devices per CC
-  openair0_device rfdevice;
-  time_stats_t dlsch_encoding_SIC_stats;
-  time_stats_t dlsch_scrambling_SIC_stats;
-  time_stats_t dlsch_modulation_SIC_stats;
-  time_stats_t dlsch_llr_stripping_unit_SIC_stats;
-  time_stats_t dlsch_unscrambling_SIC_stats;
-
-#if ENABLE_RAL
-  hash_table_t    *ral_thresholds_timed;
-  SLIST_HEAD(ral_thresholds_gen_poll_s, ral_threshold_phy_t) ral_thresholds_gen_polled[RAL_LINK_PARAM_GEN_MAX];
-  SLIST_HEAD(ral_thresholds_lte_poll_s, ral_threshold_phy_t) ral_thresholds_lte_polled[RAL_LINK_PARAM_LTE_MAX];
-#endif
-
-} PHY_VARS_UE;
-
-void exit_fun(const char* s);
-
-static inline int wait_on_condition(pthread_mutex_t *mutex,pthread_cond_t *cond,int *instance_cnt,char *name) {
-
-  // lock the mutex, if lock successfully, it would return the 0, the other value means failed
-  if (pthread_mutex_lock(mutex) != 0) {
-    LOG_E( PHY, "[SCHED][eNB] error locking mutex for %s\n",name);
-    exit_fun("nothing to add");
-    return(-1);
-  }
-
-  while (*instance_cnt < 0) {
-    // most of the time the thread is waiting here
-    // proc->instance_cnt_rxtx is -1
-    pthread_cond_wait(cond,mutex); // this unlocks mutex_rxtx while waiting and then locks it again
-  }
-
-  if (pthread_mutex_unlock(mutex) != 0) {
-    LOG_E(PHY,"[SCHED][eNB] error unlocking mutex for %s\n",name);
-    exit_fun("nothing to add");
-    return(-1);
-  }
-  return(0);
-}
-
-static inline int wait_on_busy_condition(pthread_mutex_t *mutex,pthread_cond_t *cond,int *instance_cnt,char *name) {
-
-  if (pthread_mutex_lock(mutex) != 0) {
-    LOG_E( PHY, "[SCHED][eNB] error locking mutex for %s\n",name);
-    exit_fun("nothing to add");
-    return(-1);
-  }
-
-  while (*instance_cnt == 0) {
-    // most of the time the thread will skip this
-    // waits only if proc->instance_cnt_rxtx is 0
-    pthread_cond_wait(cond,mutex); // this unlocks mutex_rxtx while waiting and then locks it again
-  }
-
-  if (pthread_mutex_unlock(mutex) != 0) {
-    LOG_E(PHY,"[SCHED][eNB] error unlocking mutex for %s\n",name);
-    exit_fun("nothing to add");
-    return(-1);
-  }
-  return(0);
-}
-
-static inline int release_thread(pthread_mutex_t *mutex,int *instance_cnt,char *name) {
-
-  if (pthread_mutex_lock(mutex) != 0) {
-    LOG_E( PHY, "[SCHED][eNB] error locking mutex for %s\n",name);
-    exit_fun("nothing to add");
-    return(-1);
-  }
-
-  *instance_cnt=*instance_cnt-1;
-
-  if (pthread_mutex_unlock(mutex) != 0) {
-    LOG_E( PHY, "[SCHED][eNB] error unlocking mutex for %s\n",name);
-    exit_fun("nothing to add");
-    return(-1);
-  }
-  return(0);
-}
-
-
-#include "PHY/INIT/defs.h"
-#include "PHY/LTE_REFSIG/defs.h"
-#include "PHY/MODULATION/defs.h"
-#include "PHY/LTE_TRANSPORT/proto.h"
-#include "PHY/LTE_ESTIMATION/defs.h"
-
-#include "SIMULATION/ETH_TRANSPORT/defs.h"
-#endif
-#endif //  __PHY_DEFS__H__
diff --git a/openair1/PHY/defs_NB_IoT.h b/openair1/PHY/defs_NB_IoT.h
index c886bd7d3a..0e4cbbe705 100644
--- a/openair1/PHY/defs_NB_IoT.h
+++ b/openair1/PHY/defs_NB_IoT.h
@@ -51,7 +51,7 @@
 #     include "COMMON/ral_messages_types.h"
 #     include "UTIL/queue.h"
 #   endif
-#   include "log.h"
+//#   include "log.h"
 #   define msg(aRGS...) LOG_D(PHY, ##aRGS)
 # else
 #   define msg printf
diff --git a/openair2/ENB_APP/enb_config.h b/openair2/ENB_APP/enb_config.h
index 3f245b03fd..e7b19c9499 100644
--- a/openair2/ENB_APP/enb_config.h
+++ b/openair2/ENB_APP/enb_config.h
@@ -47,6 +47,7 @@
 #include <intertask_interface.h>
 #include "enb_paramdef.h"
 
+
 #define IPV4_STR_ADDR_TO_INT_NWBO(AdDr_StR,NwBo,MeSsAgE ) do {\
             struct in_addr inp;\
             if ( inet_aton(AdDr_StR, &inp ) < 0 ) {\
@@ -76,6 +77,8 @@ typedef struct mme_ip_address_s {
   char     *ipv6_address;
 } mme_ip_address_t;
 
+
+
 typedef struct cu_params {
   const char    *local_ipv4_address;
   const uint16_t local_port;
@@ -109,90 +112,7 @@ extern void UE_config_stub_pnf(void);
 extern int  RCconfig_gtpu(void );
 extern void RCConfig(void);
 
-  /* Physical parameters */
-  int16_t                 nb_cc;
-#ifndef OCP_FRAMEWORK
-  eNB_func_t              cc_node_function[1+MAX_NUM_CCs];
-  eNB_timing_t            cc_node_timing[1+MAX_NUM_CCs];
-  int16_t                 cc_node_synch_ref[1+MAX_NUM_CCs];
-  lte_frame_type_t        frame_type[1+MAX_NUM_CCs];
-  uint8_t                 tdd_config[1+MAX_NUM_CCs];
-  uint8_t                 tdd_config_s[1+MAX_NUM_CCs];
-  lte_prefix_type_t       prefix_type[1+MAX_NUM_CCs];
-  int16_t                 eutra_band[1+MAX_NUM_CCs];
-  uint64_t                downlink_frequency[1+MAX_NUM_CCs];
-  int32_t                 uplink_frequency_offset[1+MAX_NUM_CCs];
-
-  int16_t                 Nid_cell[1+MAX_NUM_CCs];// for testing, change later
-  int16_t                 N_RB_DL[1+MAX_NUM_CCs];// for testing, change later
-  int                     nb_antenna_ports[1+MAX_NUM_CCs];
-  int                     nb_antennas_tx[1+MAX_NUM_CCs];
-  int                     nb_antennas_rx[1+MAX_NUM_CCs];
-  int                     tx_gain[1+MAX_NUM_CCs];
-  int                     rx_gain[1+MAX_NUM_CCs];
-  long                    prach_root[1+MAX_NUM_CCs];
-  long                    prach_config_index[1+MAX_NUM_CCs];
-  BOOLEAN_t               prach_high_speed[1+MAX_NUM_CCs];
-  long                    prach_zero_correlation[1+MAX_NUM_CCs];
-  long                    prach_freq_offset[1+MAX_NUM_CCs];
-  long                    pucch_delta_shift[1+MAX_NUM_CCs];
-  long                    pucch_nRB_CQI[1+MAX_NUM_CCs];
-  long                    pucch_nCS_AN[1+MAX_NUM_CCs];
-#if !defined(Rel10) && !defined(Rel14)
-  long                    pucch_n1_AN[1+MAX_NUM_CCs];
-#endif
-  long                    pdsch_referenceSignalPower[1+MAX_NUM_CCs];
-  long                    pdsch_p_b[1+MAX_NUM_CCs];
-  long                    pusch_n_SB[1+MAX_NUM_CCs];
-  long                    pusch_hoppingMode[1+MAX_NUM_CCs];
-  long                    pusch_hoppingOffset[1+MAX_NUM_CCs];
-  BOOLEAN_t               pusch_enable64QAM[1+MAX_NUM_CCs];
-  BOOLEAN_t               pusch_groupHoppingEnabled[1+MAX_NUM_CCs];
-  long                    pusch_groupAssignment[1+MAX_NUM_CCs];
-  BOOLEAN_t               pusch_sequenceHoppingEnabled[1+MAX_NUM_CCs];
-  long                    pusch_nDMRS1[1+MAX_NUM_CCs];
-  long                    phich_duration[1+MAX_NUM_CCs];
-  long                    phich_resource[1+MAX_NUM_CCs];
-  BOOLEAN_t               srs_enable[1+MAX_NUM_CCs];
-  long                    srs_BandwidthConfig[1+MAX_NUM_CCs];
-  long                    srs_SubframeConfig[1+MAX_NUM_CCs];
-  BOOLEAN_t               srs_ackNackST[1+MAX_NUM_CCs];
-  BOOLEAN_t               srs_MaxUpPts[1+MAX_NUM_CCs];
-  long                    pusch_p0_Nominal[1+MAX_NUM_CCs];
-  long                    pusch_alpha[1+MAX_NUM_CCs];
-  long                    pucch_p0_Nominal[1+MAX_NUM_CCs];
-  long                    msg3_delta_Preamble[1+MAX_NUM_CCs];
-  long                    ul_CyclicPrefixLength[1+MAX_NUM_CCs];
-  e_DeltaFList_PUCCH__deltaF_PUCCH_Format1                    pucch_deltaF_Format1[1+MAX_NUM_CCs];
-  e_DeltaFList_PUCCH__deltaF_PUCCH_Format1b                   pucch_deltaF_Format1b[1+MAX_NUM_CCs];
-  e_DeltaFList_PUCCH__deltaF_PUCCH_Format2                    pucch_deltaF_Format2[1+MAX_NUM_CCs];
-  e_DeltaFList_PUCCH__deltaF_PUCCH_Format2a                   pucch_deltaF_Format2a[1+MAX_NUM_CCs];
-  e_DeltaFList_PUCCH__deltaF_PUCCH_Format2b                   pucch_deltaF_Format2b[1+MAX_NUM_CCs];
-  long                    rach_numberOfRA_Preambles[1+MAX_NUM_CCs];
-  BOOLEAN_t               rach_preamblesGroupAConfig[1+MAX_NUM_CCs];
-  long                    rach_sizeOfRA_PreamblesGroupA[1+MAX_NUM_CCs];
-  long                    rach_messageSizeGroupA[1+MAX_NUM_CCs];
-  e_RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB                    rach_messagePowerOffsetGroupB[1+MAX_NUM_CCs];
-  long                    rach_powerRampingStep[1+MAX_NUM_CCs];
-  long                    rach_preambleInitialReceivedTargetPower[1+MAX_NUM_CCs];
-  long                    rach_preambleTransMax[1+MAX_NUM_CCs];
-  long                    rach_raResponseWindowSize[1+MAX_NUM_CCs];
-  long                    rach_macContentionResolutionTimer[1+MAX_NUM_CCs];
-  long                    rach_maxHARQ_Msg3Tx[1+MAX_NUM_CCs];
-  long                    bcch_modificationPeriodCoeff[1+MAX_NUM_CCs];
-  long                    pcch_defaultPagingCycle[1+MAX_NUM_CCs];
-  long                    pcch_nB[1+MAX_NUM_CCs];
-  long                    ue_TimersAndConstants_t300[1+MAX_NUM_CCs];
-  long                    ue_TimersAndConstants_t301[1+MAX_NUM_CCs];
-  long                    ue_TimersAndConstants_t310[1+MAX_NUM_CCs];
-  long                    ue_TimersAndConstants_t311[1+MAX_NUM_CCs];
-  long                    ue_TimersAndConstants_n310[1+MAX_NUM_CCs];
-  long                    ue_TimersAndConstants_n311[1+MAX_NUM_CCs];
-#else
-   RrcConfigurationReq    RrcReq;
-#endif
-  long                    ue_TransmissionMode[1+MAX_NUM_CCs];
-  //
+  
   /////////////////////////////////////////// NB-IoT ///////////////////////////////////////////////////
   //
   long              rach_raResponseWindowSize_NB[1+MAX_NUM_CCs];
@@ -237,37 +157,7 @@ extern void RCConfig(void);
   long             npdcch_Offset_RA[1+MAX_NUM_CCs];
 
   /////////////////////////////////////////////END/////////////////////////////////////////////
-  long                    srb1_timer_poll_retransmit;
-  long                    srb1_timer_reordering;
-  long                    srb1_timer_status_prohibit;
-  long                    srb1_poll_pdu;
-  long                    srb1_poll_byte;
-  long                    srb1_max_retx_threshold;
-  /* Nb of MME to connect to */
-  uint8_t             nb_mme;
-  /* List of MME to connect to */
-  mme_ip_address_t    mme_ip_address[S1AP_MAX_NB_MME_IP_ADDRESS];
-
-  int                 sctp_in_streams;
-  int                 sctp_out_streams;
-
-  char               *enb_interface_name_for_S1U;
-  in_addr_t           enb_ipv4_address_for_S1U;
-  tcp_udp_port_t      enb_port_for_S1U;
-
-  char               *enb_interface_name_for_S1_MME;
-  in_addr_t           enb_ipv4_address_for_S1_MME;
-
-  char               *flexran_agent_interface_name;
-  in_addr_t           flexran_agent_ipv4_address;
-  tcp_udp_port_t      flexran_agent_port;
-  char               *flexran_agent_cache;
-
-  /* Nb of RRH to connect to */
-  uint8_t             nb_rrh_gw;
-  char               *rrh_gw_if_name;
-  /* List of MME to connect to */
-  rrh_gw_config_t       rrh_gw_config[4];
+  
 void                          enb_config_display(void);
 void                          ru_config_display(void);
 
@@ -283,243 +173,4 @@ void fill_eMTC_configuration(MessageDef *msg_p,  ccparams_eMTC_t *eMTCconfig, in
 int RCconfig_DU_F1(MessageDef *msg_p, uint32_t i);
 void handle_f1ap_setup_resp(f1ap_setup_resp_t *resp);
 
-
-// ******************************************************** NB-IoT ********************************************************** //
-
-//typedef struct Enb_properties_NB_IoT_s {
-  /* Unique eNB_id to identify the eNB within EPC.
-   * For macro eNB ids this field should be 20 bits long.
-   * For home eNB ids this field should be 28 bits long.
-   */
-//  uint32_t            eNB_id;
-
-  /* The type of the cell */
- // enum cell_type_e    cell_type;
-
-  /* Optional name for the cell
-   * NOTE: the name can be NULL (i.e no name) and will be cropped to 150
-   * characters.
-   */
- // char               *eNB_name;
-
-
-  /* Tracking area code */
-//  uint16_t            tac;
-
-  /* Mobile Country Code
-   * Mobile Network Code
-   */
- /* uint16_t            mcc;
-  uint16_t            mnc;
-  uint8_t             mnc_digit_length;
-*/
-
-/*
-  // Physical parameters //
-  int16_t                 nb_cc;
-#ifndef OCP_FRAMEWORK
-  eNB_func_t              cc_node_function[1+MAX_NUM_CCs];
-  eNB_timing_t            cc_node_timing[1+MAX_NUM_CCs];
-  int16_t                 cc_node_synch_ref[1+MAX_NUM_CCs];
-  lte_frame_type_t        frame_type[1+MAX_NUM_CCs];
-  uint8_t                 tdd_config[1+MAX_NUM_CCs];
-  uint8_t                 tdd_config_s[1+MAX_NUM_CCs];
-  lte_prefix_type_t       prefix_type[1+MAX_NUM_CCs];
-  int16_t                 eutra_band[1+MAX_NUM_CCs];
-  uint64_t                downlink_frequency[1+MAX_NUM_CCs];
-  int32_t                 uplink_frequency_offset[1+MAX_NUM_CCs];
-
-  int16_t                 Nid_cell[1+MAX_NUM_CCs];// for testing, change later
-  int16_t                 N_RB_DL[1+MAX_NUM_CCs];// for testing, change later
-  int                     nb_antenna_ports[1+MAX_NUM_CCs];
-  int                     nb_antennas_tx[1+MAX_NUM_CCs];
-  int                     nb_antennas_rx[1+MAX_NUM_CCs];
-  int                     tx_gain[1+MAX_NUM_CCs];
-  int                     rx_gain[1+MAX_NUM_CCs];
-  long                    prach_root[1+MAX_NUM_CCs];
-  long                    prach_config_index[1+MAX_NUM_CCs];
-  BOOLEAN_t               prach_high_speed[1+MAX_NUM_CCs];
-  long                    prach_zero_correlation[1+MAX_NUM_CCs];
-  long                    prach_freq_offset[1+MAX_NUM_CCs];
-  long                    pucch_delta_shift[1+MAX_NUM_CCs];
-  long                    pucch_nRB_CQI[1+MAX_NUM_CCs];
-  long                    pucch_nCS_AN[1+MAX_NUM_CCs];
-#if !defined(Rel10) && !defined(Rel14)
-  long                    pucch_n1_AN[1+MAX_NUM_CCs];
-#endif
-  long                    pdsch_referenceSignalPower[1+MAX_NUM_CCs];
-  long                    pdsch_p_b[1+MAX_NUM_CCs];
-  long                    pusch_n_SB[1+MAX_NUM_CCs];
-  long                    pusch_hoppingMode[1+MAX_NUM_CCs];
-  long                    pusch_hoppingOffset[1+MAX_NUM_CCs];
-  BOOLEAN_t               pusch_enable64QAM[1+MAX_NUM_CCs];
-  BOOLEAN_t               pusch_groupHoppingEnabled[1+MAX_NUM_CCs];
-  long                    pusch_groupAssignment[1+MAX_NUM_CCs];
-  BOOLEAN_t               pusch_sequenceHoppingEnabled[1+MAX_NUM_CCs];
-  long                    pusch_nDMRS1[1+MAX_NUM_CCs];
-  long                    phich_duration[1+MAX_NUM_CCs];
-  long                    phich_resource[1+MAX_NUM_CCs];
-  BOOLEAN_t               srs_enable[1+MAX_NUM_CCs];
-  long                    srs_BandwidthConfig[1+MAX_NUM_CCs];
-  long                    srs_SubframeConfig[1+MAX_NUM_CCs];
-  BOOLEAN_t               srs_ackNackST[1+MAX_NUM_CCs];
-  BOOLEAN_t               srs_MaxUpPts[1+MAX_NUM_CCs];
-  long                    pusch_p0_Nominal[1+MAX_NUM_CCs];
-  long                    pusch_alpha[1+MAX_NUM_CCs];
-  long                    pucch_p0_Nominal[1+MAX_NUM_CCs];
-  long                    msg3_delta_Preamble[1+MAX_NUM_CCs];
-  long                    ul_CyclicPrefixLength[1+MAX_NUM_CCs];
-  e_DeltaFList_PUCCH__deltaF_PUCCH_Format1                    pucch_deltaF_Format1[1+MAX_NUM_CCs];
-  e_DeltaFList_PUCCH__deltaF_PUCCH_Format1b                   pucch_deltaF_Format1b[1+MAX_NUM_CCs];
-  e_DeltaFList_PUCCH__deltaF_PUCCH_Format2                    pucch_deltaF_Format2[1+MAX_NUM_CCs];
-  e_DeltaFList_PUCCH__deltaF_PUCCH_Format2a                   pucch_deltaF_Format2a[1+MAX_NUM_CCs];
-  e_DeltaFList_PUCCH__deltaF_PUCCH_Format2b                   pucch_deltaF_Format2b[1+MAX_NUM_CCs];
-  long                    rach_numberOfRA_Preambles[1+MAX_NUM_CCs];
-  BOOLEAN_t               rach_preamblesGroupAConfig[1+MAX_NUM_CCs];
-  long                    rach_sizeOfRA_PreamblesGroupA[1+MAX_NUM_CCs];
-  long                    rach_messageSizeGroupA[1+MAX_NUM_CCs];
-  e_RACH_ConfigCommon__preambleInfo__preamblesGroupAConfig__messagePowerOffsetGroupB                    rach_messagePowerOffsetGroupB[1+MAX_NUM_CCs];
-  long                    rach_powerRampingStep[1+MAX_NUM_CCs];
-  long                    rach_preambleInitialReceivedTargetPower[1+MAX_NUM_CCs];
-  long                    rach_preambleTransMax[1+MAX_NUM_CCs];
-  long                    rach_raResponseWindowSize[1+MAX_NUM_CCs];
-  long                    rach_macContentionResolutionTimer[1+MAX_NUM_CCs];
-  long                    rach_maxHARQ_Msg3Tx[1+MAX_NUM_CCs];
-  long                    bcch_modificationPeriodCoeff[1+MAX_NUM_CCs];
-  long                    pcch_defaultPagingCycle[1+MAX_NUM_CCs];
-  long                    pcch_nB[1+MAX_NUM_CCs];
-  long                    ue_TimersAndConstants_t300[1+MAX_NUM_CCs];
-  long                    ue_TimersAndConstants_t301[1+MAX_NUM_CCs];
-  long                    ue_TimersAndConstants_t310[1+MAX_NUM_CCs];
-  long                    ue_TimersAndConstants_t311[1+MAX_NUM_CCs];
-  long                    ue_TimersAndConstants_n310[1+MAX_NUM_CCs];
-  long                    ue_TimersAndConstants_n311[1+MAX_NUM_CCs];
-#else
-   RrcConfigurationReq    RrcReq;
-#endif
-  long                    ue_TransmissionMode[1+MAX_NUM_CCs];
-  //
-  /////////////////////////////////// NB-IoT /////////////////////////////////////////////////////////
-  //
-  long              rach_raResponseWindowSize_NB[1+MAX_NUM_CCs];
-  long              rach_macContentionResolutionTimer_NB[1+MAX_NUM_CCs];
-  long              rach_powerRampingStep_NB[1+MAX_NUM_CCs];
-  long              rach_preambleInitialReceivedTargetPower_NB[1+MAX_NUM_CCs];
-  long              rach_preambleTransMax_CE_NB[1+MAX_NUM_CCs];
-  long              bcch_modificationPeriodCoeff_NB[1+MAX_NUM_CCs];
-  long              pcch_defaultPagingCycle_NB[1+MAX_NUM_CCs];
-  long              nprach_CP_Length[1+MAX_NUM_CCs];
-  long              nprach_rsrp_range[1+MAX_NUM_CCs];
-  char*             nprach_SubcarrierMSG3_RangeStart;
-  long              maxNumPreambleAttemptCE_NB[1+MAX_NUM_CCs];
-  long              npdsch_nrs_Power[1+MAX_NUM_CCs];
-  long              npusch_ack_nack_numRepetitions_NB[1+MAX_NUM_CCs];
-  long              npusch_srs_SubframeConfig_NB[1+MAX_NUM_CCs];
-  long              npusch_threeTone_CyclicShift_r13[1+MAX_NUM_CCs];
-  long              npusch_sixTone_CyclicShift_r13[1+MAX_NUM_CCs];
-  BOOLEAN_t         npusch_groupHoppingEnabled[1+MAX_NUM_CCs];
-  long              npusch_groupAssignmentNPUSCH_r13[1+MAX_NUM_CCs];
-  long              dl_GapThreshold_NB[1+MAX_NUM_CCs];
-  long              dl_GapPeriodicity_NB[1+MAX_NUM_CCs];
-  char*       dl_GapDurationCoeff_NB;
-  long              npusch_p0_NominalNPUSCH[1+MAX_NUM_CCs];
-  long              npusch_alpha[1+MAX_NUM_CCs];
-  long              deltaPreambleMsg3[1+MAX_NUM_CCs];
-
-  long              ue_TimersAndConstants_t300_NB[1+MAX_NUM_CCs];
-  long              ue_TimersAndConstants_t301_NB[1+MAX_NUM_CCs];
-  long              ue_TimersAndConstants_t310_NB[1+MAX_NUM_CCs];
-  long              ue_TimersAndConstants_t311_NB[1+MAX_NUM_CCs];
-  long              ue_TimersAndConstants_n310_NB[1+MAX_NUM_CCs];
-  long              ue_TimersAndConstants_n311_NB[1+MAX_NUM_CCs];
-
-  long              nprach_Periodicity[1+MAX_NUM_CCs];
-  long              nprach_StartTime[1+MAX_NUM_CCs];
-  long              nprach_SubcarrierOffset[1+MAX_NUM_CCs];
-  long              nprach_NumSubcarriers[1+MAX_NUM_CCs];
-  long              numRepetitionsPerPreambleAttempt[1+MAX_NUM_CCs];
-  long              npdcch_NumRepetitions_RA[1+MAX_NUM_CCs];
-  long              npdcch_StartSF_CSS_RA[1+MAX_NUM_CCs];
-  char*             npdcch_Offset_RA;
-
-  /////////////////////////////////////////////END///////////////////////////////////////////////////////
-  long                    srb1_timer_poll_retransmit;
-  long                    srb1_timer_reordering;
-  long                    srb1_timer_status_prohibit;
-  long                    srb1_poll_pdu;
-  long                    srb1_poll_byte;
-  long                    srb1_max_retx_threshold;
-  // Nb of MME to connect to /
-  uint8_t             nb_mme;
-  // List of MME to connect to /
-  mme_ip_address_t    mme_ip_address[S1AP_MAX_NB_MME_IP_ADDRESS];
-
-  int                 sctp_in_streams;
-  int                 sctp_out_streams;
-
-  char               *enb_interface_name_for_S1U;
-  in_addr_t           enb_ipv4_address_for_S1U;
-  tcp_udp_port_t      enb_port_for_S1U;
-
-  char               *enb_interface_name_for_S1_MME;
-  in_addr_t           enb_ipv4_address_for_S1_MME;
-
-  char               *flexran_agent_interface_name;
-  in_addr_t           flexran_agent_ipv4_address;
-  tcp_udp_port_t      flexran_agent_port;
-  char               *flexran_agent_cache;
-
-  // Nb of RRH to connect to /
-  uint8_t             nb_rrh_gw;
-  char               *rrh_gw_if_name;
-  // List of MME to connect to /
-  rrh_gw_config_t       rrh_gw_config[4];
-
-#ifndef OCP_FRAMEWORK
-  // otg config
-  // Nb of OTG elements 
-  uint8_t            num_otg_elements;
-  // element config
-  uint16_t          otg_ue_id[NB_MODULES_MAX+1];
-  uint8_t          otg_app_type[NB_MODULES_MAX+1];
-  uint8_t            otg_bg_traffic[NB_MODULES_MAX+1];
-  // log config
-  int16_t           glog_level;
-  int16_t           glog_verbosity;
-  int16_t           hw_log_level;
-  int16_t           hw_log_verbosity;
-  int16_t           phy_log_level;
-  int16_t           phy_log_verbosity;
-  int16_t           mac_log_level;
-  int16_t           mac_log_verbosity;
-  int16_t           rlc_log_level;
-  int16_t           rlc_log_verbosity;
-  int16_t           pdcp_log_level;
-  int16_t           pdcp_log_verbosity;
-  int16_t           rrc_log_level;
-  int16_t           rrc_log_verbosity;
-  int16_t           gtpu_log_level;
-  int16_t           gtpu_log_verbosity;
-  int16_t           udp_log_level;
-  int16_t           udp_log_verbosity;
-  int16_t           osa_log_level;
-  int16_t           osa_log_verbosity;
 #endif
-} Enb_properties_NB_IoT_t;
-*/
-/*
-typedef struct Enb_properties_array_NB_IoT_s {
-  int                  number;
-  Enb_properties_NB_IoT_t    *properties[MAX_ENB];
-} Enb_properties_array_NB_IoT_t;
-
-void                          enb_config_display_NB_IoT(void);
-
-const Enb_properties_array_NB_IoT_t *enb_config_init_NB_IoT(char* lib_config_file_name_pP);
-
-const Enb_properties_array_NB_IoT_t *enb_config_get_NB_IoT(void);
-*/
-#endif 
-
-/* ENB_CONFIG_H_ */
-/** @} */
-- 
2.26.2