diff --git a/openair1/PHY/INIT/lte_init_NB_IoT.c b/openair1/PHY/INIT/lte_init_NB_IoT.c index 27e9f5e53211f96cac9947f3e6e6aa04401ff245..e50c3c26fdd85ab66750c5abcff5b8c7efcc1fac 100644 --- a/openair1/PHY/INIT/lte_init_NB_IoT.c +++ b/openair1/PHY/INIT/lte_init_NB_IoT.c @@ -21,7 +21,7 @@ //#include "defs.h" #include "SCHED/defs_NB_IoT.h" -//#include "PHY/extern.h" +#include "PHY/extern.h" #include "PHY/extern_NB_IoT.h" // PHY/defs_NB_IoT.h is called here , log.h & LTE_TRANSPORT/defs_NB_IoT.h are included through PHY/defs_NB_IoT.h #include "openair2/LAYER2/MAC/proto_NB_IoT.h" // for functions: from_earfcn_NB_IoT, get_uldl_offset_NB_IoT //#include "SIMULATION/TOOLS/defs.h" @@ -206,6 +206,8 @@ void phy_config_sib2_eNB_NB_IoT(uint8_t Mod_id, NB_IoT_DL_FRAME_PARMS *fp = &PHY_vars_eNB_NB_IoT_g[Mod_id][CC_id]->frame_parms_NB_IoT; + PHY_VARS_eNB *eNB = &PHY_vars_eNB_g[0][0]; + LOG_I(PHY,"[eNB%d] CCid %d: Applying config_NB_IoT from sib2_NB\n",Mod_id,CC_id); fp = (NB_IoT_DL_FRAME_PARMS*) malloc (sizeof(NB_IoT_DL_FRAME_PARMS)); @@ -231,7 +233,16 @@ void phy_config_sib2_eNB_NB_IoT(uint8_t Mod_id, LOG_D(PHY,"config#0: nprach_NumSubcarriers= %d\n",fp->nprach_config_common.nprach_ParametersList.list[0].nprach_NumSubcarriers); fp->nprach_config_common.nprach_ParametersList.list[0].numRepetitionsPerPreambleAttempt = config->nprach_config_0_number_of_repetitions_per_attempt.value; LOG_D(PHY,"config#0: numRepetitionsPerPreambleAttempt= %d\n",fp->nprach_config_common.nprach_ParametersList.list[0].numRepetitionsPerPreambleAttempt); - + + ////////////////////////////////////////////////////////////////////////// + eNB->nprach_config_common.nprach_CP_Length = config->nprach_config_0_cp_length.value; + eNB->nprach_config_common.nprach_ParametersList.list[0].nprach_Periodicity = config->nprach_config_0_sf_periodicity.value; + eNB->nprach_config_common.nprach_ParametersList.list[0].nprach_StartTime = config->nprach_config_0_start_time.value; + eNB->nprach_config_common.nprach_ParametersList.list[0].nprach_SubcarrierOffset = config->nprach_config_0_subcarrier_offset.value; + eNB->nprach_config_common.nprach_ParametersList.list[0].nprach_NumSubcarriers = config->nprach_config_0_number_of_subcarriers.value; + eNB->nprach_config_common.nprach_ParametersList.list[0].numRepetitionsPerPreambleAttempt = config->nprach_config_0_number_of_repetitions_per_attempt.value; + + ////////////////////////////////////////////////////////////////////////// //missed configuration in FAPI config_request (TS 36.331 pag 610) (may not needed) /*fp->nprach_config_common.nprach_ParametersList.list.array[0]->nprach_SubcarrierMSG3_RangeStart = extra_phy_parms->nprach_config_0_subcarrier_MSG3_range_start; fp->nprach_config_common.nprach_ParametersList.list.array[0]->npdcch_StartSF_CSS_RA = extra_phy_parms->nprach_config_0_npdcch_startSF_CSS_RA; @@ -260,7 +271,16 @@ void phy_config_sib2_eNB_NB_IoT(uint8_t Mod_id, LOG_D(PHY,"config#1: nprach_NumSubcarriers= %d\n",fp->nprach_config_common.nprach_ParametersList.list[1].nprach_NumSubcarriers); fp->nprach_config_common.nprach_ParametersList.list[1].numRepetitionsPerPreambleAttempt = config->nprach_config_1_number_of_repetitions_per_attempt.value; LOG_D(PHY,"config#1: numRepetitionsPerPreambleAttempt= %d\n",fp->nprach_config_common.nprach_ParametersList.list[1].numRepetitionsPerPreambleAttempt); - + /////////////////////////////////////////////////////////////////////////////////////// + + eNB->nprach_config_common.nprach_CP_Length = config->nprach_config_1_cp_length.value; + eNB->nprach_config_common.nprach_ParametersList.list[1].nprach_Periodicity = config->nprach_config_1_sf_periodicity.value; + eNB->nprach_config_common.nprach_ParametersList.list[1].nprach_StartTime = config->nprach_config_1_start_time.value; + eNB->nprach_config_common.nprach_ParametersList.list[1].nprach_SubcarrierOffset = config->nprach_config_1_subcarrier_offset.value; + eNB->nprach_config_common.nprach_ParametersList.list[1].nprach_NumSubcarriers = config->nprach_config_1_number_of_subcarriers.value; + eNB->nprach_config_common.nprach_ParametersList.list[1].numRepetitionsPerPreambleAttempt = config->nprach_config_1_number_of_repetitions_per_attempt.value; + + ////////////////////////////////////////////////////////////////////////////////////// //missed configuration in FAPI config_request (TS 36.331 pag 610) (may not needed) /*fp->nprach_config_common.nprach_ParametersList.list.array[1]->nprach_SubcarrierMSG3_RangeStart = extra_phy_parms->nprach_config_1_subcarrier_MSG3_range_start; fp->nprach_config_common.nprach_ParametersList.list.array[1]->npdcch_StartSF_CSS_RA = extra_phy_parms->nprach_config_1_npdcch_startSF_CSS_RA; @@ -289,6 +309,16 @@ void phy_config_sib2_eNB_NB_IoT(uint8_t Mod_id, fp->nprach_config_common.nprach_ParametersList.list[2].numRepetitionsPerPreambleAttempt = config->nprach_config_2_number_of_repetitions_per_attempt.value; LOG_D(PHY,"config#2: numRepetitionsPerPreambleAttempt= %d\n",fp->nprach_config_common.nprach_ParametersList.list[2].numRepetitionsPerPreambleAttempt); + ////////////////////////////////////////////////////////////////////////////////////// + + eNB->nprach_config_common.nprach_CP_Length = config->nprach_config_2_cp_length.value; + eNB->nprach_config_common.nprach_ParametersList.list[2].nprach_Periodicity = config->nprach_config_2_sf_periodicity.value; + eNB->nprach_config_common.nprach_ParametersList.list[2].nprach_StartTime = config->nprach_config_2_start_time.value; + eNB->nprach_config_common.nprach_ParametersList.list[2].nprach_SubcarrierOffset = config->nprach_config_2_subcarrier_offset.value; + eNB->nprach_config_common.nprach_ParametersList.list[2].nprach_NumSubcarriers = config->nprach_config_2_number_of_subcarriers.value; + eNB->nprach_config_common.nprach_ParametersList.list[2].numRepetitionsPerPreambleAttempt = config->nprach_config_2_number_of_repetitions_per_attempt.value; + + ////////////////////////////////////////////////////////////////////////////////////// //missed configuration in FAPI config_request (TS 36.331 pag 610) (may not needed) /*fp->nprach_config_common.nprach_ParametersList.list.array[2]->nprach_SubcarrierMSG3_RangeStart = extra_phy_parms->nprach_config_2_subcarrier_MSG3_range_start; LOG_D(PHY,"config#2: nprach_SubcarrierMSG3_RangeStart= %d\n",fp->nprach_config_common.nprach_ParametersList.list.array[2]->nprach_SubcarrierMSG3_RangeStart); diff --git a/openair1/PHY/defs.h b/openair1/PHY/defs.h index b938bb84e536487c829e0f62102c8f30a89e8dc5..d66bb3c699bb2c8df2c2348ab48be25f60ab4de1 100644 --- a/openair1/PHY/defs.h +++ b/openair1/PHY/defs.h @@ -521,6 +521,8 @@ 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 @@ -528,6 +530,7 @@ UL_IND_NB_IoT_t UL_INFO; // should be replaced by UL_INFO 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];