diff --git a/openair2/COMMON/rrc_messages_types.h b/openair2/COMMON/rrc_messages_types.h index 3193517225..501bf4b91c 100755 --- a/openair2/COMMON/rrc_messages_types.h +++ b/openair2/COMMON/rrc_messages_types.h @@ -271,6 +271,20 @@ typedef struct RrcConfigurationReq_s { long *pucch_NumRepetitionCE_Msg4_Level3_r13 [MAX_NUM_CCs]; + bool sib2_freq_hoppingParameters_r13_exists [MAX_NUM_CCs]; + long *sib2_mpdcch_pdsch_hoppingNB_r13 [MAX_NUM_CCs]; + long *sib2_interval_DLHoppingConfigCommonModeA_r13 [MAX_NUM_CCs]; + long sib2_interval_DLHoppingConfigCommonModeA_r13_val [MAX_NUM_CCs]; + long *sib2_interval_DLHoppingConfigCommonModeB_r13 [MAX_NUM_CCs]; + long sib2_interval_DLHoppingConfigCommonModeB_r13_val [MAX_NUM_CCs]; + long *sib2_interval_ULHoppingConfigCommonModeA_r13 [MAX_NUM_CCs]; + long sib2_interval_ULHoppingConfigCommonModeA_r13_val [MAX_NUM_CCs]; + long *sib2_interval_ULHoppingConfigCommonModeB_r13 [MAX_NUM_CCs]; + long sib2_interval_ULHoppingConfigCommonModeB_r13_val [MAX_NUM_CCs]; + long *sib2_mpdcch_pdsch_hoppingOffset_r13 [MAX_NUM_CCs]; + + + #endif } RrcConfigurationReq; diff --git a/openair2/ENB_APP/enb_config.c b/openair2/ENB_APP/enb_config.c index 8d5d16ead2..6ec38b3bb9 100755 --- a/openair2/ENB_APP/enb_config.c +++ b/openair2/ENB_APP/enb_config.c @@ -171,6 +171,21 @@ EMAIL : Lionel.Gauthier@eurecom.fr, navid.nikaein@eurecom.fr #define ENB_CONFIG_STRING_PUCCH_NUM_REPETITION_CE_MSG4_LEVEL2 "pucch_NumRepetitionCE_Msg4_Level2_r13" #define ENB_CONFIG_STRING_PUCCH_NUM_REPETITION_CE_MSG4_LEVEL3 "pucch_NumRepetitionCE_Msg4_Level3_r13" +#define ENB_CONFIG_STRING_FREQ_HOPPING_PARAMETERS_R13 "sib2_freq_hoppingParameters_r13" +#define ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPING_NB_R13 "sib2_mpdcch_pdsch_hoppingNB_r13" +#define ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_A_R13 "sib2_interval_DLHoppingConfigCommonModeA_r13" +#define ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_A_R13_VAL "sib2_interval_DLHoppingConfigCommonModeA_r13_val" +#define ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_B_R13 "sib2_interval_DLHoppingConfigCommonModeB_r13" +#define ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_B_R13_VAL "sib2_interval_DLHoppingConfigCommonModeB_r13_val" +#define ENB_CONFIG_STRING_INTERVAL_UL_HOPPING_CONFIG_COMMON_MODE_A_R13 "sib2_interval_ULHoppingConfigCommonModeA_r13" +#define ENB_CONFIG_STRING_INTERVAL_UL_HOPPING_CONFIG_COMMON_MODE_A_R13_VAL "sib2_interval_ULHoppingConfigCommonModeA_r13_val" +#define ENB_CONFIG_STRING_INTERVAL_UL_HOPPING_CONFIG_COMMON_MODE_B_R13 "sib2_interval_ULHoppingConfigCommonModeB_r13" +#define ENB_CONFIG_STRING_INTERVAL_UL_HOPPING_CONFIG_COMMON_MODE_B_R13_VAL "sib2_interval_ULHoppingConfigCommonModeB_r13_val" +#define ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPING_OFFSET_R13 "sib2_mpdcch_pdsch_hoppingOffset_r13" + + + + #define ENB_CONFIG_STRING_PDSCH_RS_EPRE "pdsch_referenceSignalPower" #define ENB_CONFIG_STRING_PDSCH_PB "pdsch_p_b" #define ENB_CONFIG_STRING_PUSCH_N_SB "pusch_n_SB" @@ -1018,6 +1033,8 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { config_setting_t *n1_pucch_AN_info_r13 = NULL; config_setting_t *setting_pcch_config_v1310 = NULL; + config_setting_t *setting_freq_hoppingParameters_r13 = NULL; + #if defined(Rel14) config_setting_t *setting_br13 = NULL; @@ -1156,6 +1173,21 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { libconfig_int pucch_NumRepetitionCE_Msg4_Level2_r13 = 0; libconfig_int pucch_NumRepetitionCE_Msg4_Level3_r13 = 0; + libconfig_int sib2_mpdcch_pdsch_hoppingNB_r13 = 0; + libconfig_int sib2_interval_DLHoppingConfigCommonModeA_r13 = 0; + libconfig_int sib2_interval_DLHoppingConfigCommonModeA_r13_val = 0; + libconfig_int sib2_interval_DLHoppingConfigCommonModeB_r13 = 0; + libconfig_int sib2_interval_DLHoppingConfigCommonModeB_r13_val = 0; + libconfig_int sib2_interval_ULHoppingConfigCommonModeA_r13 = 0; + libconfig_int sib2_interval_ULHoppingConfigCommonModeA_r13_val = 0; + libconfig_int sib2_interval_ULHoppingConfigCommonModeB_r13 = 0; + libconfig_int sib2_interval_ULHoppingConfigCommonModeB_r13_val = 0; + libconfig_int sib2_mpdcch_pdsch_hoppingOffset_r13 = 0; + + + + + libconfig_int srb1_timer_poll_retransmit = 0; libconfig_int srb1_timer_reordering = 0; libconfig_int srb1_timer_status_prohibit = 0; @@ -2794,6 +2826,121 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) { RRC_CONFIGURATION_REQ (msg_p).pucch_info_value[j][pucch_info_idx] = pucch_info_value; } + setting_freq_hoppingParameters_r13 = config_setting_get_member(setting_br13, ENB_CONFIG_STRING_FREQ_HOPPING_PARAMETERS_R13); + if (setting_freq_hoppingParameters_r13 != NULL) + { + RRC_CONFIGURATION_REQ(msg_p).sib2_freq_hoppingParameters_r13_exists[j] = TRUE; + if (config_setting_lookup_int(setting_freq_hoppingParameters_r13, ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPING_NB_R13, sib2_mpdcch_pdsch_hoppingNB_r13)) + { + + RRC_CONFIGURATION_REQ(msg_p).sib2_mpdcch_pdsch_hoppingNB_r13[j] = CALLOC(1, sizeof(long)); + *RRC_CONFIGURATION_REQ(msg_p).sib2_mpdcch_pdsch_hoppingNB_r13[j] = sib2_mpdcch_pdsch_hoppingNB_r13; + } + else + { + RRC_CONFIGURATION_REQ(msg_p).sib2_mpdcch_pdsch_hoppingNB_r13[j] = NULL; + } + + if (config_setting_lookup_int(setting_freq_hoppingParameters_r13, ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_A_R13, &sib2_interval_DLHoppingConfigCommonModeA_r13)) + { + + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_DLHoppingConfigCommonModeA_r13[j] = CALLOC(1, sizeof(long)); + *RRC_CONFIGURATION_REQ(msg_p).sib2_interval_DLHoppingConfigCommonModeA_r13[j] = sib2_interval_DLHoppingConfigCommonModeA_r13; + config_setting_lookup_int(setting_freq_hoppingParameters_r13, ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_A_R13_VAL, &sib2_interval_DLHoppingConfigCommonModeA_r13_val); + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_DLHoppingConfigCommonModeA_r13_val[j] = sib2_interval_DLHoppingConfigCommonModeA_r13_val; + + } + else + { + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_DLHoppingConfigCommonModeA_r13[j] = NULL; + } + + + if (config_setting_lookup_int(setting_freq_hoppingParameters_r13, ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_B_R13, &sib2_interval_DLHoppingConfigCommonModeB_r13)) + { + + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_DLHoppingConfigCommonModeB_r13[j] = CALLOC(1, sizeof(long)); + *RRC_CONFIGURATION_REQ(msg_p).sib2_interval_DLHoppingConfigCommonModeB_r13[j] = sib2_interval_DLHoppingConfigCommonModeB_r13; + config_setting_lookup_int(setting_freq_hoppingParameters_r13, ENB_CONFIG_STRING_INTERVAL_DL_HOPPING_CONFIG_COMMON_MODE_B_R13_VAL, &sib2_interval_DLHoppingConfigCommonModeB_r13_val); + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_DLHoppingConfigCommonModeB_r13_val[j] = sib2_interval_DLHoppingConfigCommonModeB_r13_val; + + } + else + { + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_DLHoppingConfigCommonModeB_r13[j] = NULL; + } + + + + if (config_setting_lookup_int(setting_freq_hoppingParameters_r13, ENB_CONFIG_STRING_INTERVAL_UL_HOPPING_CONFIG_COMMON_MODE_A_R13, &sib2_interval_ULHoppingConfigCommonModeA_r13)) + { + + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13[j] = CALLOC(1, sizeof(long)); + *RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13[j] = sib2_interval_ULHoppingConfigCommonModeA_r13; + config_setting_lookup_int(setting_freq_hoppingParameters_r13, ENB_CONFIG_STRING_INTERVAL_UL_HOPPING_CONFIG_COMMON_MODE_A_R13_VAL, &sib2_interval_ULHoppingConfigCommonModeA_r13_val); + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13_val[j] = sib2_interval_ULHoppingConfigCommonModeA_r13_val; + + } + else + { + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13[j] = NULL; + } + + + + if (config_setting_lookup_int(setting_freq_hoppingParameters_r13, ENB_CONFIG_STRING_INTERVAL_UL_HOPPING_CONFIG_COMMON_MODE_B_R13, &sib2_interval_ULHoppingConfigCommonModeB_r13)) + { + + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeB_r13[j] = CALLOC(1, sizeof(long)); + *RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeB_r13[j] = sib2_interval_ULHoppingConfigCommonModeB_r13; + config_setting_lookup_int(setting_freq_hoppingParameters_r13, ENB_CONFIG_STRING_INTERVAL_UL_HOPPING_CONFIG_COMMON_MODE_B_R13_VAL, &sib2_interval_ULHoppingConfigCommonModeB_r13_val); + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeB_r13_val[j] = sib2_interval_ULHoppingConfigCommonModeB_r13_val; + + } + else + { + RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeB_r13[j] = NULL; + } + + + + + if (config_setting_lookup_int(setting_freq_hoppingParameters_r13, ENB_CONFIG_STRING_MPDCCH_PDSCH_HOPPING_OFFSET_R13, &sib2_mpdcch_pdsch_hoppingOffset_r13)) + { + + RRC_CONFIGURATION_REQ(msg_p).sib2_mpdcch_pdsch_hoppingOffset_r13[j] = CALLOC(1, sizeof(long)); + *RRC_CONFIGURATION_REQ(msg_p).sib2_mpdcch_pdsch_hoppingOffset_r13[j] = sib2_mpdcch_pdsch_hoppingOffset_r13; + } + else + { + RRC_CONFIGURATION_REQ(msg_p).sib2_mpdcch_pdsch_hoppingOffset_r13[j] = NULL; + } + + + } + else + { + RRC_CONFIGURATION_REQ(msg_p).sib2_freq_hoppingParameters_r13_exists[j] = FALSE; + } + + + + + printf("[DEBUGGING][KOGO][CONF]: 0 = %d\n", RRC_CONFIGURATION_REQ(msg_p).sib2_freq_hoppingParameters_r13_exists[j]); + printf("[DEBUGGING][KOGO][CONF]: 1 = %d\n", *RRC_CONFIGURATION_REQ(msg_p).sib2_mpdcch_pdsch_hoppingNB_r13[j]); + + printf("[DEBUGGING][KOGO][CONF]: 2 = %d\n", *RRC_CONFIGURATION_REQ(msg_p).sib2_interval_DLHoppingConfigCommonModeA_r13[j]); + printf("[DEBUGGING][KOGO][CONF]: 3 = %d\n", RRC_CONFIGURATION_REQ(msg_p).sib2_interval_DLHoppingConfigCommonModeA_r13_val[j]); + printf("[DEBUGGING][KOGO][CONF]: 4 = %d\n", *RRC_CONFIGURATION_REQ(msg_p).sib2_interval_DLHoppingConfigCommonModeB_r13[j]); + printf("[DEBUGGING][KOGO][CONF]: 5 = %d\n", RRC_CONFIGURATION_REQ(msg_p).sib2_interval_DLHoppingConfigCommonModeB_r13_val[j]); + + printf("[DEBUGGING][KOGO][CONF]: 6 = %d\n", *RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13[j]); + printf("[DEBUGGING][KOGO][CONF]: 7 = %d\n", RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeA_r13_val[j]); + printf("[DEBUGGING][KOGO][CONF]: 8 = %d\n", *RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeB_r13[j]); + printf("[DEBUGGING][KOGO][CONF]: 9 = %d\n", RRC_CONFIGURATION_REQ(msg_p).sib2_interval_ULHoppingConfigCommonModeB_r13_val[j]); + + printf("[DEBUGGING][KOGO][CONF]: 10 = %d\n", *RRC_CONFIGURATION_REQ(msg_p).sib2_mpdcch_pdsch_hoppingNB_r13[j]); + // Rel8 RadioResourceConfigCommon Parameters if (!(config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_FRAME_TYPE, &frame_type) diff --git a/openair2/RRC/LITE/MESSAGES/asn1_msg.c b/openair2/RRC/LITE/MESSAGES/asn1_msg.c index 996a7b6126..30b7ee8d79 100755 --- a/openair2/RRC/LITE/MESSAGES/asn1_msg.c +++ b/openair2/RRC/LITE/MESSAGES/asn1_msg.c @@ -1201,7 +1201,137 @@ uint8_t do_SIB23(uint8_t Mod_id, } - (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13 = NULL; + if (configuration->sib2_freq_hoppingParameters_r13_exists[CC_id]) + { + puts("[DEBUGGING][KOGO][SIB23]: Structure exists"); + (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13 = CALLOC(1, sizeof(FreqHoppingParameters_r13_t)); + if (configuration->sib2_mpdcch_pdsch_hoppingNB_r13[CC_id]) + { + (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->mpdcch_pdsch_HoppingNB_r13 = CALLOC(1, sizeof(long)); + *(*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->mpdcch_pdsch_HoppingNB_r13 = *configuration->sib2_mpdcch_pdsch_hoppingNB_r13[CC_id]; + + } + else + { + (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->mpdcch_pdsch_HoppingNB_r13 = NULL; + } + + if (configuration->sib2_interval_DLHoppingConfigCommonModeA_r13[CC_id]) + { + (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->interval_DLHoppingConfigCommonModeA_r13 + = CALLOC(1, sizeof(struct FreqHoppingParameters_r13__interval_DLHoppingConfigCommonModeA_r13)); + if (*configuration->sib2_interval_DLHoppingConfigCommonModeA_r13[CC_id] == 0) + { + (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->interval_DLHoppingConfigCommonModeA_r13->present + = FreqHoppingParameters_r13__interval_DLHoppingConfigCommonModeA_r13_PR_interval_FDD_r13; + (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->interval_DLHoppingConfigCommonModeA_r13->choice.interval_FDD_r13 + = configuration->sib2_interval_DLHoppingConfigCommonModeA_r13_val[CC_id]; + } + else + { + (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->interval_DLHoppingConfigCommonModeA_r13->present + = FreqHoppingParameters_r13__interval_DLHoppingConfigCommonModeA_r13_PR_interval_TDD_r13; + (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->interval_DLHoppingConfigCommonModeA_r13->choice.interval_TDD_r13 + = configuration->sib2_interval_DLHoppingConfigCommonModeA_r13_val[CC_id]; + + } + } + else + { + (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->interval_DLHoppingConfigCommonModeA_r13 = NULL; + } + + + if (configuration->sib2_interval_DLHoppingConfigCommonModeB_r13[CC_id]) + { + (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->interval_DLHoppingConfigCommonModeB_r13 + = CALLOC(1, sizeof(struct FreqHoppingParameters_r13__interval_DLHoppingConfigCommonModeB_r13)); + if (*configuration->sib2_interval_DLHoppingConfigCommonModeB_r13[CC_id] == 0) + { + (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->interval_DLHoppingConfigCommonModeB_r13->present + = FreqHoppingParameters_r13__interval_DLHoppingConfigCommonModeB_r13_PR_interval_FDD_r13; + (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->interval_DLHoppingConfigCommonModeB_r13->choice.interval_FDD_r13 + = configuration->sib2_interval_DLHoppingConfigCommonModeB_r13_val[CC_id]; + } + else + { + (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->interval_DLHoppingConfigCommonModeB_r13->present + = FreqHoppingParameters_r13__interval_DLHoppingConfigCommonModeB_r13_PR_interval_TDD_r13; + (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->interval_DLHoppingConfigCommonModeB_r13->choice.interval_TDD_r13 + = configuration->sib2_interval_DLHoppingConfigCommonModeB_r13_val[CC_id]; + + } + } + else + { + (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->interval_DLHoppingConfigCommonModeB_r13 = NULL; + } + + if (configuration->sib2_interval_ULHoppingConfigCommonModeA_r13[CC_id]) + { + (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->interval_ULHoppingConfigCommonModeA_r13 + = CALLOC(1, sizeof(struct FreqHoppingParameters_r13__interval_ULHoppingConfigCommonModeA_r13)); + if (*configuration->sib2_interval_ULHoppingConfigCommonModeA_r13[CC_id] == 0) + { + (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->interval_ULHoppingConfigCommonModeA_r13->present + = FreqHoppingParameters_r13__interval_ULHoppingConfigCommonModeA_r13_PR_interval_FDD_r13; + (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->interval_ULHoppingConfigCommonModeA_r13->choice.interval_FDD_r13 + = configuration->sib2_interval_ULHoppingConfigCommonModeA_r13_val[CC_id]; + } + else + { + (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->interval_ULHoppingConfigCommonModeA_r13->present + = FreqHoppingParameters_r13__interval_ULHoppingConfigCommonModeA_r13_PR_interval_TDD_r13; + (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->interval_ULHoppingConfigCommonModeA_r13->choice.interval_TDD_r13 + = configuration->sib2_interval_ULHoppingConfigCommonModeA_r13_val[CC_id]; + + } + } + else + { + (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->interval_ULHoppingConfigCommonModeA_r13 = NULL; + } + + if (configuration->sib2_interval_ULHoppingConfigCommonModeB_r13[CC_id]) + { + (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->interval_ULHoppingConfigCommonModeB_r13 + = CALLOC(1, sizeof(struct FreqHoppingParameters_r13__interval_ULHoppingConfigCommonModeB_r13)); + if (*configuration->sib2_interval_ULHoppingConfigCommonModeB_r13[CC_id] == 0) + { + (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->interval_ULHoppingConfigCommonModeB_r13->present + = FreqHoppingParameters_r13__interval_ULHoppingConfigCommonModeB_r13_PR_interval_FDD_r13; + (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->interval_ULHoppingConfigCommonModeB_r13->choice.interval_FDD_r13 + = configuration->sib2_interval_ULHoppingConfigCommonModeB_r13_val[CC_id]; + } + else + { + (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->interval_ULHoppingConfigCommonModeB_r13->present + = FreqHoppingParameters_r13__interval_ULHoppingConfigCommonModeB_r13_PR_interval_TDD_r13; + (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->interval_ULHoppingConfigCommonModeB_r13->choice.interval_TDD_r13 + = configuration->sib2_interval_ULHoppingConfigCommonModeB_r13_val[CC_id]; + + } + } + else + { + (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->interval_ULHoppingConfigCommonModeB_r13 = NULL; + } + + if (configuration->sib2_mpdcch_pdsch_hoppingOffset_r13[CC_id]) + { + (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->mpdcch_pdsch_HoppingOffset_r13 = CALLOC(1, sizeof(long)); + *(*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->mpdcch_pdsch_HoppingOffset_r13 = *configuration->sib2_mpdcch_pdsch_hoppingOffset_r13[CC_id]; + } + else + { + (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13->mpdcch_pdsch_HoppingOffset_r13 = NULL; + } + } + else + { + (*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13 = NULL; + } + (*sib2)->radioResourceConfigCommon.ext4->pdsch_ConfigCommon_v1310 = NULL; (*sib2)->radioResourceConfigCommon.ext4->pusch_ConfigCommon_v1310 = NULL; diff --git a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf index 4b66149774..906c3cae30 100755 --- a/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf +++ b/targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band13.tm1.50PRB.emtc.conf @@ -205,6 +205,23 @@ eNBs = #pucch_NumRepetitionCE_Msg4_Level2_r13 = 2; #pucch_NumRepetitionCE_Msg4_Level3_r13 = 3; + sib2_freq_hoppingParameters_r13 : + { + sib2_mpdcch_pdsch_hoppingNB_r13 = 1; + sib2_interval_DLHoppingConfigCommonModeA_r13 = 2; # choice -> (0, FDD) (1, TDD) + sib2_interval_DLHoppingConfigCommonModeA_r13_val = 3; + sib2_interval_DLHoppingConfigCommonModeB_r13 = 4; # choice -> (0, FDD) (1, TDD) + sib2_interval_DLHoppingConfigCommonModeB_r13_val = 5; + + sib2_interval_ULHoppingConfigCommonModeA_r13 = 6; # choice -> (0, FDD) (1, TDD) + sib2_interval_ULHoppingConfigCommonModeA_r13_val = 7; + sib2_interval_ULHoppingConfigCommonModeB_r13 = 8; # choice -> (0, FDD) (1, TDD) + sib2_interval_ULHoppingConfigCommonModeB_r13_val = 9; + + sib2_mpdcch_pdsch_hoppingOffset_r13 = 10; + } + + mpdcch_startSF_CSS_RA_r13 = "fdd-r13" mpdcch_startSF_CSS_RA_r13_val = 5;