Commit 2a792c1c authored by Matthieu Kanj's avatar Matthieu Kanj

removing warnings (121 remaining)

parent 8df96ab5
...@@ -210,14 +210,14 @@ typedef struct { ...@@ -210,14 +210,14 @@ typedef struct {
// SCHEDULED_ACCESS, // SCHEDULED_ACCESS,
// CBA_ACCESS}; // CBA_ACCESS};
// typedef enum { typedef enum {
// eNodeB_3GPP=0, // classical eNodeB function eNodeB_3GPP_NB_IoT=0, // classical eNodeB function
// eNodeB_3GPP_BBU, // eNodeB with NGFI IF5 eNodeB_3GPP_BBU_NB_IoT, // eNodeB with NGFI IF5
// NGFI_RCC_IF4p5, // NGFI_RCC (NGFI radio cloud center) NGFI_RCC_IF4p5_NB_IoT, // NGFI_RCC (NGFI radio cloud center)
// NGFI_RAU_IF4p5, NGFI_RAU_IF4p5_NB_IoT,
// NGFI_RRU_IF5, // NGFI_RRU (NGFI remote radio-unit,IF5) NGFI_RRU_IF5_Nb_IoT, // NGFI_RRU (NGFI remote radio-unit,IF5)
// NGFI_RRU_IF4p5 // NGFI_RRU (NGFI remote radio-unit,IF4p5) NGFI_RRU_IF4p5_NB_IoT // NGFI_RRU (NGFI remote radio-unit,IF4p5)
// } eNB_func_NB_IoT_t; } eNB_func_NB_IoT_t;
typedef enum { typedef enum {
...@@ -510,7 +510,7 @@ typedef struct PHY_VARS_eNB_NB_IoT_s { ...@@ -510,7 +510,7 @@ typedef struct PHY_VARS_eNB_NB_IoT_s {
module_id_t Mod_id; module_id_t Mod_id;
uint8_t CC_id; uint8_t CC_id;
eNB_proc_NB_IoT_t proc; eNB_proc_NB_IoT_t proc;
//eNB_func_NB_IoT_t node_function; eNB_func_NB_IoT_t node_function;
eNB_timing_NB_IoT_t node_timing; eNB_timing_NB_IoT_t node_timing;
eth_params_t *eth_params; eth_params_t *eth_params;
int single_thread_flag; int single_thread_flag;
......
...@@ -137,9 +137,9 @@ extern void (*rlc_rrc_data_conf)( ...@@ -137,9 +137,9 @@ extern void (*rlc_rrc_data_conf)(
//NB1/NB2 Offset of category (XXX for the moment we choose a random number but i don't know if whould be like this- TS 36.101 ch 5.7.3F) //NB1/NB2 Offset of category (XXX for the moment we choose a random number but i don't know if whould be like this- TS 36.101 ch 5.7.3F)
float Category_Offset_NB_IoT[21]={-10,-9,-8,-7,-6,-5,-4,-3,-2,-1,-0.5,0,1,2,3,4,5,6,7,8,9}; //-0.5 is not applicable for in-band and guard band float Category_Offset_NB_IoT[21] = {-10,-9,-8,-7,-6,-5,-4,-3,-2,-1,-0.5,0,1,2,3,4,5,6,7,8,9}; //-0.5 is not applicable for in-band and guard band
float Category_Offset_short_NB_IoT[2]={-0.5,0}; //for guard band operating mode float Category_Offset_short_NB_IoT[2] = {-0.5,0}; //for guard band operating mode
float Category_Offset_anchor_NB_IoT[4]={-2,-1,0,1}; //for in band and guard band mode over anchor carrier (include nsss and npsss) float Category_Offset_anchor_NB_IoT[4] = {-2,-1,0,1}; //for in band and guard band mode over anchor carrier (include nsss and npsss)
typedef struct eutra_bandentry_NB_s { typedef struct eutra_bandentry_NB_s {
//this should be the colum order of the table below //this should be the colum order of the table below
...@@ -152,8 +152,10 @@ typedef struct eutra_bandentry_NB_s { ...@@ -152,8 +152,10 @@ typedef struct eutra_bandentry_NB_s {
} eutra_bandentry_NB_IoT_t; } eutra_bandentry_NB_IoT_t;
typedef struct band_info_s { typedef struct band_info_s {
int nbands; int nbands;
eutra_bandentry_NB_IoT_t band_info[100]; eutra_bandentry_NB_IoT_t band_info[100];
} band_info_t; } band_info_t;
...@@ -227,6 +229,7 @@ int32_t get_uldl_offset_NB_IoT(int eutra_band) { ...@@ -227,6 +229,7 @@ int32_t get_uldl_offset_NB_IoT(int eutra_band) {
void config_mib_fapi_NB_IoT( void config_mib_fapi_NB_IoT(
int rntiP, int rntiP,
int physCellId, int physCellId,
uint8_t eutra_band, uint8_t eutra_band,
...@@ -236,7 +239,7 @@ void config_mib_fapi_NB_IoT( ...@@ -236,7 +239,7 @@ void config_mib_fapi_NB_IoT(
int p_rx_eNB, int p_rx_eNB,
int dl_CarrierFreq, int dl_CarrierFreq,
int ul_CarrierFreq, int ul_CarrierFreq,
long*eutraControlRegionSize, long *eutraControlRegionSize,
BCCH_BCH_Message_NB_t *mib_NB_IoT BCCH_BCH_Message_NB_t *mib_NB_IoT
) )
...@@ -267,6 +270,7 @@ void config_mib_fapi_NB_IoT( ...@@ -267,6 +270,7 @@ void config_mib_fapi_NB_IoT(
{ {
//FAPI specs pag 135 //FAPI specs pag 135
case MasterInformationBlock_NB__operationModeInfo_r13_PR_inband_SamePCI_r13: case MasterInformationBlock_NB__operationModeInfo_r13_PR_inband_SamePCI_r13:
config_INFO->cfg->config_NB_IoT.operating_mode.value = 0; config_INFO->cfg->config_NB_IoT.operating_mode.value = 0;
config_INFO->cfg->config_NB_IoT.prb_index.value = mib_NB_IoT->message.operationModeInfo_r13.choice.inband_SamePCI_r13.eutra_CRS_SequenceInfo_r13; //see TS 36.213 ch 16.0 config_INFO->cfg->config_NB_IoT.prb_index.value = mib_NB_IoT->message.operationModeInfo_r13.choice.inband_SamePCI_r13.eutra_CRS_SequenceInfo_r13; //see TS 36.213 ch 16.0
config_INFO->cfg->config_NB_IoT.assumed_crs_aps.value = -1; //is not defined so we put a negative value config_INFO->cfg->config_NB_IoT.assumed_crs_aps.value = -1; //is not defined so we put a negative value
...@@ -281,13 +285,13 @@ void config_mib_fapi_NB_IoT( ...@@ -281,13 +285,13 @@ void config_mib_fapi_NB_IoT(
break; break;
case MasterInformationBlock_NB__operationModeInfo_r13_PR_inband_DifferentPCI_r13: case MasterInformationBlock_NB__operationModeInfo_r13_PR_inband_DifferentPCI_r13:
config_INFO->cfg->config_NB_IoT.operating_mode.value = 1;
config_INFO->cfg->config_NB_IoT.operating_mode.value = 1;
//XXX problem: fapi think to define also eutra_CRS_sequenceInfo also for in band with different PCI but the problem is that we don-t have i //XXX problem: fapi think to define also eutra_CRS_sequenceInfo also for in band with different PCI but the problem is that we don-t have i
//XXX should pass the prb_index may defined by configuration file depending on the LTE band we are considering (see Rhode&Shwartz whitepaper pag9) //XXX should pass the prb_index may defined by configuration file depending on the LTE band we are considering (see Rhode&Shwartz whitepaper pag9)
//config_INFO->config_NB_IoT.prb_index.value = //config_INFO->config_NB_IoT.prb_index.value =
config_INFO->cfg->config_NB_IoT.assumed_crs_aps.value = mib_NB_IoT->message.operationModeInfo_r13.choice.inband_DifferentPCI_r13.eutra_NumCRS_Ports_r13; config_INFO->cfg->config_NB_IoT.assumed_crs_aps.value = mib_NB_IoT->message.operationModeInfo_r13.choice.inband_DifferentPCI_r13.eutra_NumCRS_Ports_r13;
if(eutraControlRegionSize == NULL) if(eutraControlRegionSize == NULL)
...@@ -295,41 +299,31 @@ void config_mib_fapi_NB_IoT( ...@@ -295,41 +299,31 @@ void config_mib_fapi_NB_IoT(
else else
config_INFO->cfg->config_NB_IoT.control_region_size.value = *eutraControlRegionSize; config_INFO->cfg->config_NB_IoT.control_region_size.value = *eutraControlRegionSize;
//m_dl = NB_Category_Offset_anchor[rand()%4];
break; break;
case MasterInformationBlock_NB__operationModeInfo_r13_PR_guardband_r13: case MasterInformationBlock_NB__operationModeInfo_r13_PR_guardband_r13:
config_INFO->cfg->config_NB_IoT.operating_mode.value = 2;
config_INFO->cfg->config_NB_IoT.operating_mode.value = 2;
//XXX should pass the prb_index may defined by configuration file depending on the LTE band we are considering (see Rhode&Shwartz whitepaper pag9) //XXX should pass the prb_index may defined by configuration file depending on the LTE band we are considering (see Rhode&Shwartz whitepaper pag9)
//config_INFO->config_NB_IoT.prb_index.value = //config_INFO->config_NB_IoT.prb_index.value =
config_INFO->cfg->config_NB_IoT.control_region_size.value = -1; //should not being defined so we put a negative value config_INFO->cfg->config_NB_IoT.control_region_size.value = -1; //should not being defined so we put a negative value
config_INFO->cfg->config_NB_IoT.assumed_crs_aps.value = -1; //is not defined so we put a negative value config_INFO->cfg->config_NB_IoT.assumed_crs_aps.value = -1; //is not defined so we put a negative value
//m_dl = NB_Category_Offset_anchor[rand()%4];
break; break;
case MasterInformationBlock_NB__operationModeInfo_r13_PR_standalone_r13: case MasterInformationBlock_NB__operationModeInfo_r13_PR_standalone_r13:
config_INFO->cfg->config_NB_IoT.operating_mode.value = 3; config_INFO->cfg->config_NB_IoT.operating_mode.value = 3;
config_INFO->cfg->config_NB_IoT.prb_index.value = -1; // is not defined for this case (put a negative random value--> will be not considered for encoding, scrambling procedures) config_INFO->cfg->config_NB_IoT.prb_index.value = -1; // is not defined for this case (put a negative random value--> will be not considered for encoding, scrambling procedures)
config_INFO->cfg->config_NB_IoT.control_region_size.value = -1;//is not defined so we put a negative value config_INFO->cfg->config_NB_IoT.control_region_size.value = -1; //is not defined so we put a negative value
config_INFO->cfg->config_NB_IoT.assumed_crs_aps.value = -1; //is not defined so we put a negative value config_INFO->cfg->config_NB_IoT.assumed_crs_aps.value = -1; //is not defined so we put a negative value
//m_dl = NB_Category_Offset_short[rand()%2];
break; break;
default: default:
LOG_E(RRC, "rrc_mac_config_req_eNB_NB_IoT: NB-IoT operating Mode (MIB-NB) not set\n"); LOG_E(RRC, "rrc_mac_config_req_eNB_NB_IoT: NB-IoT operating Mode (MIB-NB) not set\n");
break; break;
} }
//we shoud use dl_CarrierConfig for generating the earfcn for LTE-CAT N2 based on TS 36.101 5.7.3F //we shoud use dl_CarrierConfig for generating the earfcn for LTE-CAT N2 based on TS 36.101 5.7.3F
/* /*
* 1) takes a random number from the offset of category NB1 and NB2 based on the operating mode (we assume always the usage of anchor carrier) * 1) takes a random number from the offset of category NB1 and NB2 based on the operating mode (we assume always the usage of anchor carrier)
...@@ -339,7 +333,6 @@ void config_mib_fapi_NB_IoT( ...@@ -339,7 +333,6 @@ void config_mib_fapi_NB_IoT(
} }
void config_sib2_fapi_NB_IoT( void config_sib2_fapi_NB_IoT(
int physCellId, int physCellId,
RadioResourceConfigCommonSIB_NB_r13_t *radioResourceConfigCommon RadioResourceConfigCommonSIB_NB_r13_t *radioResourceConfigCommon
...@@ -568,7 +561,7 @@ int rrc_mac_config_req_eNB_NB_IoT( ...@@ -568,7 +561,7 @@ int rrc_mac_config_req_eNB_NB_IoT(
int rntiP, int rntiP,
int physCellId, // is the NcellID for NB-IoT int physCellId, // is the NcellID for NB-IoT
int p_eNB, //number of eNB TX antenna ports (1 or 2 for NB-IoT) int p_eNB, //number of eNB TX antenna ports (1 or 2 for NB-IoT)
int p_rx_eNB,// number of eNB Rx antenna ports (1 or 2 for NB-IoT) int p_rx_eNB, // number of eNB Rx antenna ports (1 or 2 for NB-IoT)
int Ncp, int Ncp,
int Ncp_UL, int Ncp_UL,
long eutra_band, //requencyBandIndicator (eutra_band) in sib1. this param is set in the do_sib1_nb and is directly taken from the .config file long eutra_band, //requencyBandIndicator (eutra_band) in sib1. this param is set in the do_sib1_nb and is directly taken from the .config file
...@@ -583,7 +576,7 @@ int rrc_mac_config_req_eNB_NB_IoT( ...@@ -583,7 +576,7 @@ int rrc_mac_config_req_eNB_NB_IoT(
RadioResourceConfigCommonSIB_NB_r13_t *radioResourceConfigCommon, RadioResourceConfigCommonSIB_NB_r13_t *radioResourceConfigCommon,
struct PhysicalConfigDedicated_NB_r13 *physicalConfigDedicated, struct PhysicalConfigDedicated_NB_r13 *physicalConfigDedicated,
MAC_MainConfig_NB_r13_t *mac_MainConfig, //most probably not needed since only used at UE side MAC_MainConfig_NB_r13_t *mac_MainConfig, //most probably not needed since only used at UE side
long logicalChannelIdentity,//FIXME: decide how to use it long logicalChannelIdentity, //FIXME: decide how to use it
LogicalChannelConfig_NB_r13_t *logicalChannelConfig //FIXME: decide how to use it LogicalChannelConfig_NB_r13_t *logicalChannelConfig //FIXME: decide how to use it
) )
{ {
...@@ -598,7 +591,6 @@ int rrc_mac_config_req_eNB_NB_IoT( ...@@ -598,7 +591,6 @@ int rrc_mac_config_req_eNB_NB_IoT(
config_INFO->get_MIB = 0; config_INFO->get_MIB = 0;
config_INFO->get_COMMON = 0; config_INFO->get_COMMON = 0;
config_INFO->get_DEDICATED = 0; config_INFO->get_DEDICATED = 0;
config_INFO->mod_id = Mod_idP; config_INFO->mod_id = Mod_idP;
config_INFO->CC_id = CC_idP; config_INFO->CC_id = CC_idP;
config_INFO->cfg->subframe_config.duplex_mode.value = 2; //HD-FDD for NB-IoT config_INFO->cfg->subframe_config.duplex_mode.value = 2; //HD-FDD for NB-IoT
...@@ -606,7 +598,7 @@ int rrc_mac_config_req_eNB_NB_IoT( ...@@ -606,7 +598,7 @@ int rrc_mac_config_req_eNB_NB_IoT(
if (mib_NB_IoT!=NULL ) { if (mib_NB_IoT != NULL) {
//XXX possible alternative implementation (as RU-RAU splitting) //XXX possible alternative implementation (as RU-RAU splitting)
//if(eNB_mac_inst == NULL) l2_init_eNB(); //TODO MP: to be included in the MAC/main.c //if(eNB_mac_inst == NULL) l2_init_eNB(); //TODO MP: to be included in the MAC/main.c
...@@ -623,7 +615,7 @@ int rrc_mac_config_req_eNB_NB_IoT( ...@@ -623,7 +615,7 @@ int rrc_mac_config_req_eNB_NB_IoT(
eNB_mac_inst_NB_IoT[Mod_idP].common_channels[CC_idP].dl_CarrierFreq = dl_CarrierFreq; eNB_mac_inst_NB_IoT[Mod_idP].common_channels[CC_idP].dl_CarrierFreq = dl_CarrierFreq;
LOG_I(MAC, LOG_I(MAC,
"Configuring MIB for instance %d, CCid %d : (band %d,Nid_cell %d,TX antenna port (p) %d,DL freq %u\n", "Configuring MIB for instance %d, CCid %d : (band %ld,Nid_cell %d,TX antenna port (p) %d,DL freq %u\n",
Mod_idP, Mod_idP,
CC_idP, CC_idP,
eutra_band, eutra_band,
...@@ -643,8 +635,7 @@ int rrc_mac_config_req_eNB_NB_IoT( ...@@ -643,8 +635,7 @@ int rrc_mac_config_req_eNB_NB_IoT(
//Mapping OAI params into FAPI params //Mapping OAI params into FAPI params
config_mib_fapi_NB_IoT( config_mib_fapi_NB_IoT(rntiP,
rntiP,
physCellId, physCellId,
eutra_band, eutra_band,
Ncp, Ncp,
...@@ -657,8 +648,6 @@ int rrc_mac_config_req_eNB_NB_IoT( ...@@ -657,8 +648,6 @@ int rrc_mac_config_req_eNB_NB_IoT(
mib_NB_IoT mib_NB_IoT
); );
}//mib_NB_IoT!=NULL }//mib_NB_IoT!=NULL
...@@ -677,8 +666,8 @@ int rrc_mac_config_req_eNB_NB_IoT( ...@@ -677,8 +666,8 @@ int rrc_mac_config_req_eNB_NB_IoT(
eNB_mac_inst_NB_IoT[Mod_idP].common_channels[CC_idP].radioResourceConfigCommon = radioResourceConfigCommon; eNB_mac_inst_NB_IoT[Mod_idP].common_channels[CC_idP].radioResourceConfigCommon = radioResourceConfigCommon;
if (ul_CarrierFreq>0) eNB_mac_inst_NB_IoT[Mod_idP].common_channels[CC_idP].ul_CarrierFreq = ul_CarrierFreq; if (ul_CarrierFreq>0)
eNB_mac_inst_NB_IoT[Mod_idP].common_channels[CC_idP].ul_CarrierFreq = ul_CarrierFreq;
config_sib2_fapi_NB_IoT(physCellId,radioResourceConfigCommon); config_sib2_fapi_NB_IoT(physCellId,radioResourceConfigCommon);
...@@ -697,7 +686,6 @@ int rrc_mac_config_req_eNB_NB_IoT( ...@@ -697,7 +686,6 @@ int rrc_mac_config_req_eNB_NB_IoT(
} }
} }
if (physicalConfigDedicated != NULL) { if (physicalConfigDedicated != NULL) {
...@@ -736,14 +724,13 @@ int rrc_mac_config_req_eNB_NB_IoT( ...@@ -736,14 +724,13 @@ int rrc_mac_config_req_eNB_NB_IoT(
//------------------------------------------------------- //-------------------------------------------------------
//New //New
int npdsch_rep_to_array[3] ={4,8,16}; //TS 36.213 Table 16.4.1.3-3 int npdsch_rep_to_array[3] = {4,8,16}; //TS 36.213 Table 16.4.1.3-3
int sib1_startFrame_to_array[4] = {0,16,32,48};//TS 36.213 Table 16.4.1.3-4 int sib1_startFrame_to_array[4] = {0,16,32,48};//TS 36.213 Table 16.4.1.3-4
//New---------------------------------------------------- //New----------------------------------------------------
//return -1 whenever no SIB1-NB transmission occur. //return -1 whenever no SIB1-NB transmission occur.
//return sib1_startFrame when transmission occur in the current frame //return sib1_startFrame when transmission occur in the current frame
uint32_t is_SIB1_NB_IoT( uint32_t is_SIB1_NB_IoT(const frame_t frameP,
const frame_t frameP, long schedulingInfoSIB1, //from the mib
long schedulingInfoSIB1,//from the mib
int physCellId, //by configuration int physCellId, //by configuration
NB_IoT_eNB_NDLSCH_t *ndlsch_SIB1 NB_IoT_eNB_NDLSCH_t *ndlsch_SIB1
) )
...@@ -903,18 +890,17 @@ uint32_t is_SIB1_NB_IoT( ...@@ -903,18 +890,17 @@ uint32_t is_SIB1_NB_IoT(
//New---------------------------------------------------- //New----------------------------------------------------
//Function for check if the current frame is the start of a new SIB1-NB period //Function for check if the current frame is the start of a new SIB1-NB period
uint8_t is_SIB1_start_NB_IoT( uint8_t is_SIB1_start_NB_IoT(const frame_t frameP,
const frame_t frameP, long schedulingInfoSIB1, //from the mib
long schedulingInfoSIB1,//from the mib
int physCellId //by configuration int physCellId //by configuration
) )
{ {
uint8_t nb_rep=0; // number of sib1-nb repetitions within the 256 radio frames uint8_t nb_rep = 0; // number of sib1-nb repetitions within the 256 radio frames
uint32_t sib1_startFrame; uint32_t sib1_startFrame;
// uint32_t sib1_period_NB_IoT = 256;//from specs TS 36.331 (rf) // uint32_t sib1_period_NB_IoT = 256;//from specs TS 36.331 (rf)
// uint8_t index; // uint8_t index;
// int offset; // int offset;
// int period_nb; // the number of the actual period over the 1024 frames // int period_nb; // the number of the actual period over the 1024 frames
if(schedulingInfoSIB1 > 11 || schedulingInfoSIB1 < 0){ if(schedulingInfoSIB1 > 11 || schedulingInfoSIB1 < 0){
...@@ -958,12 +944,11 @@ uint8_t is_SIB1_start_NB_IoT( ...@@ -958,12 +944,11 @@ uint8_t is_SIB1_start_NB_IoT(
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
//New //New
int si_windowLength_to_rf[7]={16,32,48,64,96,128,160}; //TS 36.331 v14.2.1 pag 587 int si_windowLength_to_rf[7] = {16,32,48,64,96,128,160}; //TS 36.331 v14.2.1 pag 587
int si_repPattern_to_nb[4]={2,4,8,16}; int si_repPattern_to_nb[4] = {2,4,8,16};
int si_period_to_nb[7]={64,128,256,512,1024,2048,4096}; int si_period_to_nb[7] = {64,128,256,512,1024,2048,4096};
//New--------------------------------------------------------------------------- //New---------------------------------------------------------------------------
boolean_t is_SIB23_NB_IoT( boolean_t is_SIB23_NB_IoT(const frame_t frameP,
const frame_t frameP,
const frame_t h_frameP, // the HSFN (increased by 1 every SFN wrap around) (10 bits) const frame_t h_frameP, // the HSFN (increased by 1 every SFN wrap around) (10 bits)
long si_period, //SI-periodicity (value given by the Enumerative of the SIB1-NB) long si_period, //SI-periodicity (value given by the Enumerative of the SIB1-NB)
long si_windowLength_ms, //Si-windowlength (ms) received as an enumerative (see the IE of SIB1-NB) long si_windowLength_ms, //Si-windowlength (ms) received as an enumerative (see the IE of SIB1-NB)
......
...@@ -72,9 +72,10 @@ ...@@ -72,9 +72,10 @@
#include "../../SIMU/USER/init_lte.h" #include "../../SIMU/USER/init_lte.h"
//NB-IoT //NB-IoT
#include "PHY/defs_NB_IoT.h"
#include "SCHED/defs_NB_IoT.h" #include "SCHED/defs_NB_IoT.h"
#include "PHY_INTERFACE/IF_Module_NB_IoT.h"
#include "PHY/extern_NB_IoT.h"
#include "LAYER2/MAC/defs.h" #include "LAYER2/MAC/defs.h"
#include "LAYER2/MAC/extern.h" #include "LAYER2/MAC/extern.h"
#include "LAYER2/MAC/proto.h" #include "LAYER2/MAC/proto.h"
...@@ -582,7 +583,7 @@ int wait_CCs(eNB_rxtx_proc_t *proc) { ...@@ -582,7 +583,7 @@ int wait_CCs(eNB_rxtx_proc_t *proc) {
* *
* For the moment the NB-IoT implementation foresees a single thread implementation * For the moment the NB-IoT implementation foresees a single thread implementation
* */ * */
static inline int NB_rxtx(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc, char *thread_name) { static inline int NB_rxtx(PHY_VARS_eNB_NB_IoT *eNB,eNB_rxtx_proc_NB_IoT_t *proc, char *thread_name) {
//Allocate memory for the structures used by PHY and MAC //Allocate memory for the structures used by PHY and MAC
UL_IND_t *UL_INFO; UL_IND_t *UL_INFO;
...@@ -596,7 +597,7 @@ static inline int NB_rxtx(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc, char *thread_ ...@@ -596,7 +597,7 @@ static inline int NB_rxtx(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc, char *thread_
// **************************************** // ****************************************
// Common RX procedures subframe n // Common RX procedures subframe n
if ((eNB->do_prach)&&((eNB->node_function != NGFI_RCC_IF4p5))) if ((eNB->do_prach)&&((eNB->node_function != NGFI_RCC_IF4p5_NB_IoT)))
eNB->do_prach(eNB,proc->frame_rx,proc->subframe_rx); eNB->do_prach(eNB,proc->frame_rx,proc->subframe_rx);
/*UE-specific RX processing for subframe n*/ /*UE-specific RX processing for subframe n*/
...@@ -669,8 +670,12 @@ static void* eNB_thread_rxtx( void* param ) { ...@@ -669,8 +670,12 @@ static void* eNB_thread_rxtx( void* param ) {
static int eNB_thread_rxtx_status; static int eNB_thread_rxtx_status;
eNB_rxtx_proc_t *proc = (eNB_rxtx_proc_t*)param; eNB_rxtx_proc_t *proc = (eNB_rxtx_proc_t*)param;
eNB_rxtx_proc_NB_IoT_t *proc_NB_IoT = (eNB_rxtx_proc_NB_IoT_t*)param; // to remove when eNB_thread_rxtx_status is duplicated for NB-IoT
PHY_VARS_eNB *eNB = PHY_vars_eNB_g[0][proc->CC_id]; PHY_VARS_eNB *eNB = PHY_vars_eNB_g[0][proc->CC_id];
PHY_VARS_eNB_NB_IoT *eNB_NB_IoT = PHY_vars_eNB_NB_IoT_g[0][proc_NB_IoT->CC_id]; // to remove when eNB_thread_rxtx_status is duplicated for NB-IoT
char thread_name[100]; char thread_name[100];
...@@ -695,7 +700,7 @@ static void* eNB_thread_rxtx( void* param ) { ...@@ -695,7 +700,7 @@ static void* eNB_thread_rxtx( void* param ) {
if (eNB->CC_id==0) if (eNB->CC_id==0)
{ {
#ifdef NB_IOT #ifdef NB_IOT
if(NB_rxtx(eNB, proc,thread_name)<0) break; if(NB_rxtx(eNB_NB_IoT, proc_NB_IoT,thread_name)<0) break;
#else #else
if (rxtx(eNB,proc,thread_name) < 0) break; if (rxtx(eNB,proc,thread_name) < 0) break;
#endif #endif
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment