Merge branch 'RU-RAU-split' of https://gitlab.eurecom.fr/raymond.knopp/openairinterface5g into RU-RAU-split
This commit is contained in:
@@ -180,11 +180,11 @@ typedef struct RrcConfigurationReq_s {
|
|||||||
|
|
||||||
|
|
||||||
RadioResourceConfig radioresourceconfig[MAX_NUM_CCs];
|
RadioResourceConfig radioresourceconfig[MAX_NUM_CCs];
|
||||||
|
RadioResourceConfig radioresourceconfig_BR[MAX_NUM_CCs];
|
||||||
|
|
||||||
#ifdef Rel14
|
#ifdef Rel14
|
||||||
|
|
||||||
RadioResourceConfig radioresourceconfig_BR[MAX_NUM_CCs];
|
|
||||||
//MIB
|
//MIB
|
||||||
long schedulingInfoSIB1_BR_r13[MAX_NUM_CCs];
|
long schedulingInfoSIB1_BR_r13[MAX_NUM_CCs];
|
||||||
//SIB1 BR options
|
//SIB1 BR options
|
||||||
@@ -196,6 +196,13 @@ typedef struct RrcConfigurationReq_s {
|
|||||||
long q_RxLevMinCE_r13 [MAX_NUM_CCs];
|
long q_RxLevMinCE_r13 [MAX_NUM_CCs];
|
||||||
long* q_QualMinRSRQ_CE_r13 [MAX_NUM_CCs];
|
long* q_QualMinRSRQ_CE_r13 [MAX_NUM_CCs];
|
||||||
BOOLEAN_t bandwidthReducedAccessRelatedInfo_r13 [MAX_NUM_CCs];
|
BOOLEAN_t bandwidthReducedAccessRelatedInfo_r13 [MAX_NUM_CCs];
|
||||||
|
|
||||||
|
// +kogo -- FIXME -- size 10 is temporary
|
||||||
|
long si_Narrowband_r13 [MAX_NUM_CCs][32];
|
||||||
|
long si_TBS_r13 [MAX_NUM_CCs][32];
|
||||||
|
int scheduling_info_br_size [MAX_NUM_CCs];
|
||||||
|
// end +kogo
|
||||||
|
|
||||||
long si_WindowLength_BR_r13 [MAX_NUM_CCs];
|
long si_WindowLength_BR_r13 [MAX_NUM_CCs];
|
||||||
long si_RepetitionPattern_r13 [MAX_NUM_CCs];
|
long si_RepetitionPattern_r13 [MAX_NUM_CCs];
|
||||||
BOOLEAN_t fdd_DownlinkOrTddSubframeBitmapBR_r13 [MAX_NUM_CCs];
|
BOOLEAN_t fdd_DownlinkOrTddSubframeBitmapBR_r13 [MAX_NUM_CCs];
|
||||||
@@ -204,6 +211,12 @@ typedef struct RrcConfigurationReq_s {
|
|||||||
long startSymbolBR_r13 [MAX_NUM_CCs];
|
long startSymbolBR_r13 [MAX_NUM_CCs];
|
||||||
long si_HoppingConfigCommon_r13 [MAX_NUM_CCs];
|
long si_HoppingConfigCommon_r13 [MAX_NUM_CCs];
|
||||||
long* si_ValidityTime_r13 [MAX_NUM_CCs];
|
long* si_ValidityTime_r13 [MAX_NUM_CCs];
|
||||||
|
|
||||||
|
// +kogo
|
||||||
|
long systemInfoValueTagSi_r13 [MAX_NUM_CCs][10];
|
||||||
|
int system_info_value_tag_SI_size [MAX_NUM_CCs];
|
||||||
|
// end +kogo
|
||||||
|
|
||||||
BOOLEAN_t freqHoppingParametersDL_r13 [MAX_NUM_CCs];
|
BOOLEAN_t freqHoppingParametersDL_r13 [MAX_NUM_CCs];
|
||||||
long* mpdcch_pdsch_HoppingNB_r13 [MAX_NUM_CCs];
|
long* mpdcch_pdsch_HoppingNB_r13 [MAX_NUM_CCs];
|
||||||
BOOLEAN_t interval_DLHoppingConfigCommonModeA_r13 [MAX_NUM_CCs];
|
BOOLEAN_t interval_DLHoppingConfigCommonModeA_r13 [MAX_NUM_CCs];
|
||||||
@@ -212,8 +225,40 @@ typedef struct RrcConfigurationReq_s {
|
|||||||
long interval_DLHoppingConfigCommonModeB_r13_val [MAX_NUM_CCs];
|
long interval_DLHoppingConfigCommonModeB_r13_val [MAX_NUM_CCs];
|
||||||
long* mpdcch_pdsch_HoppingOffset_r13 [MAX_NUM_CCs];
|
long* mpdcch_pdsch_HoppingOffset_r13 [MAX_NUM_CCs];
|
||||||
|
|
||||||
|
// +kogo -- rach_CE_LevelInfoList_r13
|
||||||
|
long firstPreamble_r13 [MAX_NUM_CCs][4];
|
||||||
|
long lastPreamble_r13 [MAX_NUM_CCs][4];
|
||||||
|
long ra_ResponseWindowSize_r13 [MAX_NUM_CCs][4];
|
||||||
|
long mac_ContentionResolutionTimer_r13 [MAX_NUM_CCs][4];
|
||||||
|
long rar_HoppingConfig_r13 [MAX_NUM_CCs][4];
|
||||||
|
int rach_CE_LevelInfoList_r13_size [MAX_NUM_CCs];
|
||||||
|
// end kogo
|
||||||
|
|
||||||
|
|
||||||
|
// +kogo -- rsrp_range_list
|
||||||
|
long rsrp_range [MAX_NUM_CCs][3];
|
||||||
|
int rsrp_range_list_size [MAX_NUM_CCs];
|
||||||
|
// end kogo
|
||||||
|
|
||||||
|
// +kogo -- prach parameters ce list
|
||||||
|
long prach_config_index [MAX_NUM_CCs][4];
|
||||||
|
long prach_freq_offset [MAX_NUM_CCs][4];
|
||||||
|
long *prach_StartingSubframe_r13 [MAX_NUM_CCs][4];
|
||||||
|
long *maxNumPreambleAttemptCE_r13 [MAX_NUM_CCs][4];
|
||||||
|
long numRepetitionPerPreambleAttempt_r13 [MAX_NUM_CCs][4];
|
||||||
|
long mpdcch_NumRepetition_RA_r13 [MAX_NUM_CCs][4];
|
||||||
|
long prach_HoppingConfig_r13 [MAX_NUM_CCs][4];
|
||||||
|
int prach_parameters_list_size [MAX_NUM_CCs];
|
||||||
|
long max_available_narrow_band [MAX_NUM_CCs][4][2];
|
||||||
|
int max_available_narrow_band_size [MAX_NUM_CCs];
|
||||||
|
// end kogo
|
||||||
|
|
||||||
|
|
||||||
|
// +kogo n1PUCCH_AN_InfoList_r13 list
|
||||||
|
long pucch_info_value [MAX_NUM_CCs][4];
|
||||||
|
int pucch_info_value_size [MAX_NUM_CCs];
|
||||||
|
// end kogo
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
} RrcConfigurationReq;
|
} RrcConfigurationReq;
|
||||||
|
|
||||||
|
|||||||
@@ -98,6 +98,13 @@
|
|||||||
|
|
||||||
#define ENB_CONFIG_STRING_COMPONENT_CARRIERS "component_carriers"
|
#define ENB_CONFIG_STRING_COMPONENT_CARRIERS "component_carriers"
|
||||||
|
|
||||||
|
#define ENB_CONFIG_STRING_SCHEDULING_INFO_LIST "scheduling_info_br"
|
||||||
|
#define ENB_CONFIG_STRING_SYSTEM_INFO_VALUE_TAG_LIST "system_info_value_tag_SI"
|
||||||
|
|
||||||
|
#define ENB_CONFIG_STRING_SI_NARROWBAND_R13 "si_Narrowband_r13"
|
||||||
|
#define ENB_CONFIG_STRING_SI_TBS_R13 "si_TBS_r13"
|
||||||
|
#define ENB_CONFIG_STRING_SYSTEM_INFO_VALUE_TAG_SI_R13 "systemInfoValueTagSi_r13"
|
||||||
|
|
||||||
#define ENB_CONFIG_STRING_CC_NODE_FUNCTION "node_function"
|
#define ENB_CONFIG_STRING_CC_NODE_FUNCTION "node_function"
|
||||||
#define ENB_CONFIG_STRING_CC_NODE_TIMING "node_timing"
|
#define ENB_CONFIG_STRING_CC_NODE_TIMING "node_timing"
|
||||||
#define ENB_CONFIG_STRING_CC_NODE_SYNCH_REF "node_synch_ref"
|
#define ENB_CONFIG_STRING_CC_NODE_SYNCH_REF "node_synch_ref"
|
||||||
@@ -130,6 +137,30 @@
|
|||||||
#if !defined(Rel10) && !defined(Rel14)
|
#if !defined(Rel10) && !defined(Rel14)
|
||||||
#define ENB_CONFIG_STRING_PUCCH_N1_AN "pucch_n1_AN"
|
#define ENB_CONFIG_STRING_PUCCH_N1_AN "pucch_n1_AN"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#define ENB_CONFIG_STRING_RACH_CE_LEVEL_INFO_LIST "rach_CE_LevelInfoList_r13"
|
||||||
|
#define ENB_CONFIG_STRING_RSRP_RANGE_LIST "rsrp_range_list"
|
||||||
|
#define ENB_CONFIG_STRING_PRACH_PARAMETERS_CE_R13 "prach_parameters_ce_r13"
|
||||||
|
#define ENB_CONFIG_STRING_MAX_AVAILABLE_NARROW_BAND "max_available_narrow_band"
|
||||||
|
#define ENB_CONFIG_STRING_N1_PUCCH_AN_INFO_LIST "n1PUCCH_AN_InfoList_r13"
|
||||||
|
|
||||||
|
#define ENB_CONFIG_STRING_FIRST_PREAMBLE "firstPreamble_r13"
|
||||||
|
#define ENB_CONFIG_STRING_LAST_PREAMBLE "lastPreamble_r13"
|
||||||
|
#define ENB_CONFIG_STRING_RA_RESPONSE_WINDOW_SIZE_R13 "ra_ResponseWindowSize_r13"
|
||||||
|
#define ENB_CONFIG_STRING_MAC_CONTENT_RESOLUTION_TIMER_R13 "mac_ContentionResolutionTimer_r13"
|
||||||
|
#define ENB_CONFIG_STRING_RAR_HOPPING_CONFIG_R13 "rar_HoppingConfig_r13"
|
||||||
|
#define ENB_CONFIG_STRING_RSRP_RANGE_BR "rsrp_range_br"
|
||||||
|
#define ENB_CONFIG_STRING_PRACH_CONFIG_INDEX_BR "prach_config_index_br"
|
||||||
|
#define ENB_CONFIG_STRING_PRACH_FREQ_OFFSET_BR "prach_freq_offset_br"
|
||||||
|
#define ENB_CONFIG_STRING_PRACH_STARTING_SUBFRAME_R13 "prach_StartingSubframe_r13"
|
||||||
|
#define ENB_CONFIG_STRING_MAX_NUM_PREAMBLE_ATTEMPT_CE_R13 "maxNumPreambleAttemptCE_r13"
|
||||||
|
#define ENB_CONFIG_STRING_NUM_REPETITION_PREAMBLE_ATTEMPT_R13 "numRepetitionPerPreambleAttempt_r13"
|
||||||
|
#define ENB_CONFIG_STRING_MPDCCH_NUM_REPETITION_RA_R13 "mpdcch_NumRepetition_RA_r13"
|
||||||
|
#define ENB_CONFIG_STRING_PRACH_HOPPING_CONFIG_R13 "prach_HoppingConfig_r13"
|
||||||
|
#define ENB_CONFIG_STRING_MAX_AVAILABLE_NARROWBAND "maxavailablenarrowband"
|
||||||
|
#define ENB_CONFIG_STRING_PUCCH_INFO_VALUE "pucch_info_value"
|
||||||
|
|
||||||
|
|
||||||
#define ENB_CONFIG_STRING_PDSCH_RS_EPRE "pdsch_referenceSignalPower"
|
#define ENB_CONFIG_STRING_PDSCH_RS_EPRE "pdsch_referenceSignalPower"
|
||||||
#define ENB_CONFIG_STRING_PDSCH_PB "pdsch_p_b"
|
#define ENB_CONFIG_STRING_PDSCH_PB "pdsch_p_b"
|
||||||
#define ENB_CONFIG_STRING_PUSCH_N_SB "pusch_n_SB"
|
#define ENB_CONFIG_STRING_PUSCH_N_SB "pusch_n_SB"
|
||||||
@@ -913,6 +944,26 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) {
|
|||||||
config_setting_t *setting_enb = NULL;
|
config_setting_t *setting_enb = NULL;
|
||||||
config_setting_t *setting_otg = NULL;
|
config_setting_t *setting_otg = NULL;
|
||||||
config_setting_t *subsetting_otg = NULL;
|
config_setting_t *subsetting_otg = NULL;
|
||||||
|
config_setting_t *scheduling_info_br_list = NULL;
|
||||||
|
config_setting_t *scheduling_info_br = NULL;
|
||||||
|
config_setting_t *system_info_value_tag_SI_list = NULL;
|
||||||
|
config_setting_t *system_info_value_tag_SI = NULL;
|
||||||
|
|
||||||
|
config_setting_t *rach_ce_level_info_r13_list = NULL;
|
||||||
|
config_setting_t *rach_ce_level_info_r13 = NULL;
|
||||||
|
|
||||||
|
config_setting_t *rsrp_range_list = NULL;
|
||||||
|
config_setting_t *rsrp_range_member = NULL;
|
||||||
|
|
||||||
|
config_setting_t *prach_parameters_ce_r13_list = NULL;
|
||||||
|
config_setting_t *prach_parameters_ce_r13 = NULL;
|
||||||
|
|
||||||
|
config_setting_t *max_available_narrow_band_list = NULL;
|
||||||
|
config_setting_t *max_available_narrow_band = NULL;
|
||||||
|
|
||||||
|
config_setting_t *n1_pucch_AN_info_r13_list = NULL;
|
||||||
|
config_setting_t *n1_pucch_AN_info_r13 = NULL;
|
||||||
|
|
||||||
#if defined(Rel14)
|
#if defined(Rel14)
|
||||||
config_setting_t *setting_br13 = NULL;
|
config_setting_t *setting_br13 = NULL;
|
||||||
#endif // REL14
|
#endif // REL14
|
||||||
@@ -922,6 +973,8 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) {
|
|||||||
int num_otg_elements = 0;
|
int num_otg_elements = 0;
|
||||||
int num_component_carriers = 0;
|
int num_component_carriers = 0;
|
||||||
int j = 0;
|
int j = 0;
|
||||||
|
int sched_info_idx = 0;
|
||||||
|
int sys_info_idx = 0;
|
||||||
libconfig_int enb_id = 0;
|
libconfig_int enb_id = 0;
|
||||||
int nb_cc = 0;
|
int nb_cc = 0;
|
||||||
|
|
||||||
@@ -964,9 +1017,9 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) {
|
|||||||
libconfig_int pucch_delta_shift = 0;
|
libconfig_int pucch_delta_shift = 0;
|
||||||
libconfig_int pucch_nRB_CQI = 0;
|
libconfig_int pucch_nRB_CQI = 0;
|
||||||
libconfig_int pucch_nCS_AN = 0;
|
libconfig_int pucch_nCS_AN = 0;
|
||||||
#if !defined(Rel10) && !defined(Rel14)
|
|
||||||
libconfig_int pucch_n1_AN = 0;
|
libconfig_int pucch_n1_AN = 0;
|
||||||
#endif
|
|
||||||
libconfig_int pdsch_referenceSignalPower = 0;
|
libconfig_int pdsch_referenceSignalPower = 0;
|
||||||
libconfig_int pdsch_p_b = 0;
|
libconfig_int pdsch_p_b = 0;
|
||||||
libconfig_int pusch_n_SB = 0;
|
libconfig_int pusch_n_SB = 0;
|
||||||
@@ -1017,6 +1070,26 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) {
|
|||||||
libconfig_int ue_TimersAndConstants_n311 = 0;
|
libconfig_int ue_TimersAndConstants_n311 = 0;
|
||||||
libconfig_int ue_TransmissionMode = 0;
|
libconfig_int ue_TransmissionMode = 0;
|
||||||
|
|
||||||
|
libconfig_int si_Narrowband_r13 = 0;
|
||||||
|
libconfig_int si_TBS_r13 = 0;
|
||||||
|
|
||||||
|
libconfig_int systemInfoValueTagSi_r13 = 0;
|
||||||
|
|
||||||
|
libconfig_int firstPreamble_r13 = 0;
|
||||||
|
libconfig_int lastPreamble_r13 = 0;
|
||||||
|
libconfig_int ra_ResponseWindowSize_r13 = 0;
|
||||||
|
libconfig_int mac_ContentionResolutionTimer_r13 = 0;
|
||||||
|
libconfig_int rar_HoppingConfig_r13 = 0;
|
||||||
|
libconfig_int rsrp_range_br = 0;
|
||||||
|
libconfig_int prach_config_index_br = 0;
|
||||||
|
libconfig_int prach_freq_offset_br = 0;
|
||||||
|
libconfig_int prach_StartingSubframe_r13 = 0;
|
||||||
|
libconfig_int maxNumPreambleAttemptCE_r13 = 0;
|
||||||
|
libconfig_int numRepetitionPerPreambleAttempt_r13 = 0;
|
||||||
|
libconfig_int mpdcch_NumRepetition_RA_r13 = 0;
|
||||||
|
libconfig_int prach_HoppingConfig_r13 = 0;
|
||||||
|
libconfig_int maxavailablenarrowband = 0;
|
||||||
|
libconfig_int pucch_info_value = 0;
|
||||||
|
|
||||||
libconfig_int srb1_timer_poll_retransmit = 0;
|
libconfig_int srb1_timer_poll_retransmit = 0;
|
||||||
libconfig_int srb1_timer_reordering = 0;
|
libconfig_int srb1_timer_reordering = 0;
|
||||||
@@ -2486,12 +2559,165 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
#ifdef Rel14
|
#ifdef Rel14
|
||||||
setting_br13 = config_setting_get_member(setting_enb, ENB_CONFIG_STRING_BR);
|
setting_br13 = config_setting_get_member(component_carrier, ENB_CONFIG_STRING_BR);
|
||||||
|
if (setting_br13 == NULL) {
|
||||||
|
puts("setting BR is NULL");
|
||||||
|
} else {
|
||||||
|
puts("setting BR is NOT NULL");
|
||||||
|
}
|
||||||
|
|
||||||
if (setting_br13 != NULL) {
|
if (setting_br13 != NULL) {
|
||||||
|
|
||||||
|
scheduling_info_br_list = config_setting_get_member(setting_br13, ENB_CONFIG_STRING_SCHEDULING_INFO_LIST);
|
||||||
|
int num_scheduling_info = config_setting_length(scheduling_info_br_list);
|
||||||
|
RRC_CONFIGURATION_REQ (msg_p).scheduling_info_br_size[j] = num_scheduling_info;
|
||||||
|
|
||||||
|
for (sched_info_idx = 0; sched_info_idx < num_scheduling_info; ++sched_info_idx)
|
||||||
|
{
|
||||||
|
scheduling_info_br = config_setting_get_elem(scheduling_info_br_list, sched_info_idx);
|
||||||
|
if (! config_setting_lookup_int(scheduling_info_br, ENB_CONFIG_STRING_SI_NARROWBAND_R13, &si_Narrowband_r13)
|
||||||
|
&& config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_SI_TBS_R13, &si_TBS_r13)
|
||||||
|
)
|
||||||
|
{
|
||||||
|
AssertFatal (0, "Failed to parse eNB configuration file %s, scheduking info br %d!\n", RC.config_file_name, nb_cc++);
|
||||||
|
}
|
||||||
|
RRC_CONFIGURATION_REQ (msg_p).si_Narrowband_r13[j][sched_info_idx] = si_Narrowband_r13;
|
||||||
|
RRC_CONFIGURATION_REQ (msg_p).si_TBS_r13[j][sched_info_idx] = si_TBS_r13;
|
||||||
|
}
|
||||||
|
|
||||||
|
system_info_value_tag_SI_list = config_setting_get_member(setting_br13, ENB_CONFIG_STRING_SYSTEM_INFO_VALUE_TAG_LIST);
|
||||||
|
int num_system_info = config_setting_length(system_info_value_tag_SI_list);
|
||||||
|
RRC_CONFIGURATION_REQ (msg_p).system_info_value_tag_SI_size[j] = num_system_info;
|
||||||
|
|
||||||
|
for (sys_info_idx = 0; sys_info_idx < num_system_info; ++sys_info_idx)
|
||||||
|
{
|
||||||
|
system_info_value_tag_SI = config_setting_get_elem(system_info_value_tag_SI_list, sys_info_idx);
|
||||||
|
if ( !(config_setting_lookup_int(system_info_value_tag_SI, ENB_CONFIG_STRING_SYSTEM_INFO_VALUE_TAG_SI_R13, &systemInfoValueTagSi_r13)) )
|
||||||
|
{
|
||||||
|
AssertFatal (0, "Failed to parse eNB configuration file %s, system info value tag %d!\n", RC.config_file_name, nb_cc++);
|
||||||
|
}
|
||||||
|
RRC_CONFIGURATION_REQ (msg_p).systemInfoValueTagSi_r13[j][sys_info_idx] = systemInfoValueTagSi_r13;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
rach_ce_level_info_r13_list = config_setting_get_member(setting_br13, ENB_CONFIG_STRING_RACH_CE_LEVEL_INFO_LIST);
|
||||||
|
int num_rach_ce_level_info_list = config_setting_length(rach_ce_level_info_r13_list);
|
||||||
|
RRC_CONFIGURATION_REQ (msg_p).rach_CE_LevelInfoList_r13_size[j] = num_rach_ce_level_info_list;
|
||||||
|
int rach_info_level_idx;
|
||||||
|
for (rach_info_level_idx = 0; rach_info_level_idx < num_rach_ce_level_info_list; ++rach_info_level_idx)
|
||||||
|
{
|
||||||
|
rach_ce_level_info_r13 = config_setting_get_elem(rach_ce_level_info_r13_list, rach_info_level_idx);
|
||||||
|
if (! (config_setting_lookup_int(rach_ce_level_info_r13, ENB_CONFIG_STRING_FIRST_PREAMBLE, &firstPreamble_r13)
|
||||||
|
&& config_setting_lookup_int(rach_ce_level_info_r13, ENB_CONFIG_STRING_LAST_PREAMBLE, &lastPreamble_r13)
|
||||||
|
&& config_setting_lookup_int(rach_ce_level_info_r13, ENB_CONFIG_STRING_RA_RESPONSE_WINDOW_SIZE_R13, &ra_ResponseWindowSize_r13)
|
||||||
|
&& config_setting_lookup_int(rach_ce_level_info_r13, ENB_CONFIG_STRING_MAC_CONTENT_RESOLUTION_TIMER_R13, &mac_ContentionResolutionTimer_r13)
|
||||||
|
&& config_setting_lookup_int(rach_ce_level_info_r13, ENB_CONFIG_STRING_RAR_HOPPING_CONFIG_R13, &rar_HoppingConfig_r13) )
|
||||||
|
)
|
||||||
|
{
|
||||||
|
AssertFatal (0,
|
||||||
|
"Failed to parse eNB configuration file %s, rach_ce_level_info_r13 %d!\n",
|
||||||
|
RC.config_file_name, nb_cc++);
|
||||||
|
}
|
||||||
|
|
||||||
|
RRC_CONFIGURATION_REQ (msg_p).firstPreamble_r13[j][rach_info_level_idx] = firstPreamble_r13;
|
||||||
|
RRC_CONFIGURATION_REQ (msg_p).lastPreamble_r13[j][rach_info_level_idx] = lastPreamble_r13;
|
||||||
|
RRC_CONFIGURATION_REQ (msg_p).ra_ResponseWindowSize_r13[j][rach_info_level_idx] = ra_ResponseWindowSize_r13;
|
||||||
|
RRC_CONFIGURATION_REQ (msg_p).mac_ContentionResolutionTimer_r13[j][rach_info_level_idx] = mac_ContentionResolutionTimer_r13;
|
||||||
|
RRC_CONFIGURATION_REQ (msg_p).rar_HoppingConfig_r13[j][rach_info_level_idx] = rar_HoppingConfig_r13;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
rsrp_range_list = config_setting_get_member(setting_br13, ENB_CONFIG_STRING_RSRP_RANGE_LIST);
|
||||||
|
int num_rsrp_list = config_setting_length(rsrp_range_list);
|
||||||
|
RRC_CONFIGURATION_REQ (msg_p).rsrp_range_list_size[j] = num_rsrp_list;
|
||||||
|
int rsrp_range_idx;
|
||||||
|
for (rsrp_range_idx = 0; rsrp_range_idx < num_rsrp_list; ++rsrp_range_idx)
|
||||||
|
{
|
||||||
|
rsrp_range_member = config_setting_get_elem(rsrp_range_list, rsrp_range_idx);
|
||||||
|
if (!(config_setting_lookup_int(rsrp_range_member, ENB_CONFIG_STRING_RSRP_RANGE_BR, &rsrp_range_br)))
|
||||||
|
{
|
||||||
|
AssertFatal (0,
|
||||||
|
"Failed to parse eNB configuration file %s, rsrp_range %d!\n",
|
||||||
|
RC.config_file_name, nb_cc++);
|
||||||
|
}
|
||||||
|
RRC_CONFIGURATION_REQ (msg_p).rsrp_range[j][rsrp_range_idx] = rsrp_range_br;
|
||||||
|
}
|
||||||
|
|
||||||
|
prach_parameters_ce_r13_list = config_setting_get_member(setting_br13, ENB_CONFIG_STRING_PRACH_PARAMETERS_CE_R13);
|
||||||
|
int num_prach_parameters_ce_r13 = config_setting_length(prach_parameters_ce_r13_list);
|
||||||
|
RRC_CONFIGURATION_REQ (msg_p).prach_parameters_list_size[j] = num_prach_parameters_ce_r13;
|
||||||
|
int prach_parameters_index;
|
||||||
|
for (prach_parameters_index = 0; prach_parameters_index < num_prach_parameters_ce_r13; ++prach_parameters_index)
|
||||||
|
{
|
||||||
|
prach_parameters_ce_r13 = config_setting_get_elem(prach_parameters_ce_r13_list, prach_parameters_index);
|
||||||
|
if (! (config_setting_lookup_int(prach_parameters_ce_r13, ENB_CONFIG_STRING_PRACH_CONFIG_INDEX_BR, &prach_config_index_br)
|
||||||
|
&& config_setting_lookup_int(prach_parameters_ce_r13, ENB_CONFIG_STRING_PRACH_FREQ_OFFSET_BR, &prach_freq_offset_br)
|
||||||
|
&& config_setting_lookup_int(prach_parameters_ce_r13, ENB_CONFIG_STRING_NUM_REPETITION_PREAMBLE_ATTEMPT_R13, &numRepetitionPerPreambleAttempt_r13)
|
||||||
|
&& config_setting_lookup_int(prach_parameters_ce_r13, ENB_CONFIG_STRING_MPDCCH_NUM_REPETITION_RA_R13, &mpdcch_NumRepetition_RA_r13)
|
||||||
|
&& config_setting_lookup_int(prach_parameters_ce_r13, ENB_CONFIG_STRING_PRACH_HOPPING_CONFIG_R13, &prach_HoppingConfig_r13) )
|
||||||
|
)
|
||||||
|
{
|
||||||
|
AssertFatal (0,
|
||||||
|
"Failed to parse eNB configuration file %s, prach_parameters_ce_r13_list %d!\n",
|
||||||
|
RC.config_file_name, nb_cc++);
|
||||||
|
}
|
||||||
|
|
||||||
|
RRC_CONFIGURATION_REQ (msg_p).prach_config_index[j][prach_parameters_index] = prach_config_index_br;
|
||||||
|
RRC_CONFIGURATION_REQ (msg_p).prach_freq_offset[j][prach_parameters_index] = prach_freq_offset_br;
|
||||||
|
RRC_CONFIGURATION_REQ (msg_p).prach_StartingSubframe_r13[j][prach_parameters_index] = prach_StartingSubframe_r13;
|
||||||
|
RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[j][prach_parameters_index] = maxNumPreambleAttemptCE_r13;
|
||||||
|
RRC_CONFIGURATION_REQ (msg_p).numRepetitionPerPreambleAttempt_r13[j][prach_parameters_index] = numRepetitionPerPreambleAttempt_r13;
|
||||||
|
RRC_CONFIGURATION_REQ (msg_p).mpdcch_NumRepetition_RA_r13[j][prach_parameters_index] = mpdcch_NumRepetition_RA_r13;
|
||||||
|
RRC_CONFIGURATION_REQ (msg_p).prach_HoppingConfig_r13[j][prach_parameters_index] = prach_HoppingConfig_r13;
|
||||||
|
|
||||||
|
if (config_setting_lookup_int(prach_parameters_ce_r13, ENB_CONFIG_STRING_PRACH_STARTING_SUBFRAME_R13, &prach_StartingSubframe_r13))
|
||||||
|
{
|
||||||
|
RRC_CONFIGURATION_REQ (msg_p).prach_StartingSubframe_r13[j][prach_parameters_index] = calloc(1, sizeof(long));
|
||||||
|
RRC_CONFIGURATION_REQ (msg_p).prach_StartingSubframe_r13[j][prach_parameters_index] = prach_StartingSubframe_r13;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
RRC_CONFIGURATION_REQ (msg_p).prach_StartingSubframe_r13[j][prach_parameters_index] = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (config_setting_lookup_int(prach_parameters_ce_r13, ENB_CONFIG_STRING_MAX_NUM_PREAMBLE_ATTEMPT_CE_R13, &maxNumPreambleAttemptCE_r13))
|
||||||
|
{
|
||||||
|
RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[j][prach_parameters_index] = calloc(1, sizeof(long));
|
||||||
|
RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[j][prach_parameters_index] = maxNumPreambleAttemptCE_r13;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[j][prach_parameters_index] = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// TODO
|
||||||
|
// max_available_narrow_band = config_setting_get_member(prach_parameters_ce_r13, ENB_CONFIG_STRING_MAX_AVAILABLE_NARROW_BAND);
|
||||||
|
|
||||||
|
|
||||||
|
n1_pucch_AN_info_r13_list = config_setting_get_member(setting_br13, ENB_CONFIG_STRING_N1_PUCCH_AN_INFO_LIST);
|
||||||
|
|
||||||
|
int num_pucch_an_info = config_setting_length(n1_pucch_AN_info_r13_list);
|
||||||
|
RRC_CONFIGURATION_REQ (msg_p).pucch_info_value_size[j] = num_pucch_an_info;
|
||||||
|
int pucch_info_idx;
|
||||||
|
for (pucch_info_idx = 0; pucch_info_idx < num_pucch_an_info; ++pucch_info_idx)
|
||||||
|
{
|
||||||
|
n1_pucch_AN_info_r13 = config_setting_get_elem(n1_pucch_AN_info_r13_list, pucch_info_idx);
|
||||||
|
if (! (config_setting_lookup_int(n1_pucch_AN_info_r13, ENB_CONFIG_STRING_PUCCH_INFO_VALUE, &pucch_info_value)) )
|
||||||
|
{
|
||||||
|
AssertFatal (0,
|
||||||
|
"Failed to parse eNB configuration file %s, n1_pucch_AN_info_list_r13_list %d!\n",
|
||||||
|
RC.config_file_name, nb_cc++);
|
||||||
|
}
|
||||||
|
|
||||||
|
RRC_CONFIGURATION_REQ (msg_p).pucch_info_value[j][pucch_info_idx] = pucch_info_value;
|
||||||
|
}
|
||||||
|
|
||||||
// Rel8 RadioResourceConfigCommon Parameters
|
// Rel8 RadioResourceConfigCommon Parameters
|
||||||
if (!(config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_FRAME_TYPE, &frame_type)
|
if (!(config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_FRAME_TYPE, &frame_type)
|
||||||
|
|
||||||
&& config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PRACH_ROOT, &prach_root)
|
&& config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PRACH_ROOT, &prach_root)
|
||||||
&& config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PRACH_CONFIG_INDEX, &prach_config_index)
|
&& config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PRACH_CONFIG_INDEX, &prach_config_index)
|
||||||
&& config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PRACH_HIGH_SPEED, &prach_high_speed)
|
&& config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PRACH_HIGH_SPEED, &prach_high_speed)
|
||||||
@@ -2533,7 +2759,6 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) {
|
|||||||
&& config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_RACH_RARESPONSEWINDOWSIZE, &rach_raResponseWindowSize)
|
&& config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_RACH_RARESPONSEWINDOWSIZE, &rach_raResponseWindowSize)
|
||||||
&& config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_RACH_MACCONTENTIONRESOLUTIONTIMER, &rach_macContentionResolutionTimer)
|
&& config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_RACH_MACCONTENTIONRESOLUTIONTIMER, &rach_macContentionResolutionTimer)
|
||||||
&& config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_RACH_MAXHARQMSG3TX, &rach_maxHARQ_Msg3Tx)
|
&& config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_RACH_MAXHARQMSG3TX, &rach_maxHARQ_Msg3Tx)
|
||||||
&& config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_RACH_MAXHARQMSG3TX, &bcch_modificationPeriodCoeff)
|
|
||||||
&& config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PCCH_DEFAULT_PAGING_CYCLE, &pcch_defaultPagingCycle)
|
&& config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_PCCH_DEFAULT_PAGING_CYCLE, &pcch_defaultPagingCycle)
|
||||||
&& config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PCCH_NB, &pcch_nB)
|
&& config_setting_lookup_string(setting_br13, ENB_CONFIG_STRING_PCCH_NB, &pcch_nB)
|
||||||
&& config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_BCCH_MODIFICATIONPERIODCOEFF, &bcch_modificationPeriodCoeff)
|
&& config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_BCCH_MODIFICATIONPERIODCOEFF, &bcch_modificationPeriodCoeff)
|
||||||
@@ -2550,6 +2775,7 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) {
|
|||||||
RC.config_file_name, nb_cc++);
|
RC.config_file_name, nb_cc++);
|
||||||
continue; // FIXME this prevents segfaults below, not sure what happens after function exit
|
continue; // FIXME this prevents segfaults below, not sure what happens after function exit
|
||||||
}
|
}
|
||||||
|
|
||||||
RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].prach_root = prach_root;
|
RRC_CONFIGURATION_REQ (msg_p).radioresourceconfig_BR[j].prach_root = prach_root;
|
||||||
|
|
||||||
if ((prach_root <0) || (prach_root > 1023))
|
if ((prach_root <0) || (prach_root > 1023))
|
||||||
@@ -2973,6 +3199,7 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) {
|
|||||||
|
|
||||||
RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_numberOfRA_Preambles= (rach_numberOfRA_Preambles / 4) - 1;
|
RRC_CONFIGURATION_REQ(msg_p).radioresourceconfig_BR[j].rach_numberOfRA_Preambles= (rach_numberOfRA_Preambles / 4) - 1;
|
||||||
|
|
||||||
|
|
||||||
if ((rach_numberOfRA_Preambles < 4) || (rach_numberOfRA_Preambles > 64) || ((rach_numberOfRA_Preambles & 3) != 0))
|
if ((rach_numberOfRA_Preambles < 4) || (rach_numberOfRA_Preambles > 64) || ((rach_numberOfRA_Preambles & 3) != 0))
|
||||||
AssertFatal(0,
|
AssertFatal(0,
|
||||||
"Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_numberOfRA_Preambles choice: 4,8,12,...,64!\n",
|
"Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for rach_numberOfRA_Preambles choice: 4,8,12,...,64!\n",
|
||||||
|
|||||||
@@ -561,11 +561,28 @@ uint8_t do_SIB1(rrc_eNB_carrier_data_t *carrier,
|
|||||||
= configuration->si_RepetitionPattern_r13[CC_id]; // 0
|
= configuration->si_RepetitionPattern_r13[CC_id]; // 0
|
||||||
|
|
||||||
sib1_1310->bandwidthReducedAccessRelatedInfo_r13->schedulingInfoList_BR_r13 = calloc(1, sizeof(SchedulingInfoList_BR_r13_t));
|
sib1_1310->bandwidthReducedAccessRelatedInfo_r13->schedulingInfoList_BR_r13 = calloc(1, sizeof(SchedulingInfoList_BR_r13_t));
|
||||||
|
|
||||||
SchedulingInfo_BR_r13_t *schedulinginfo_br_13 = calloc(1, sizeof(SchedulingInfo_BR_r13_t));
|
SchedulingInfo_BR_r13_t *schedulinginfo_br_13 = calloc(1, sizeof(SchedulingInfo_BR_r13_t));
|
||||||
memset(schedulinginfo_br_13, 0, sizeof(SchedulingInfo_BR_r13_t));
|
memset(schedulinginfo_br_13, 0, sizeof(SchedulingInfo_BR_r13_t));
|
||||||
|
|
||||||
|
int num_sched_info_br = configuration->scheduling_info_br_size[CC_id];
|
||||||
|
int index;
|
||||||
|
for (index = 0; index < num_sched_info_br; ++index)
|
||||||
|
{
|
||||||
|
|
||||||
|
if (configuration->si_Narrowband_r13[CC_id][index] && configuration->si_TBS_r13[CC_id][index])
|
||||||
|
{
|
||||||
|
schedulinginfo_br_13->si_Narrowband_r13 = configuration->si_Narrowband_r13[CC_id][index];
|
||||||
|
schedulinginfo_br_13->si_TBS_r13 = configuration->si_TBS_r13[CC_id][index];
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
schedulinginfo_br_13->si_Narrowband_r13 = 1;
|
schedulinginfo_br_13->si_Narrowband_r13 = 1;
|
||||||
schedulinginfo_br_13->si_TBS_r13 = SchedulingInfo_BR_r13__si_TBS_r13_b152;
|
schedulinginfo_br_13->si_TBS_r13 = SchedulingInfo_BR_r13__si_TBS_r13_b152;
|
||||||
|
}
|
||||||
|
|
||||||
ASN_SEQUENCE_ADD(&sib1_1310->bandwidthReducedAccessRelatedInfo_r13->schedulingInfoList_BR_r13->list, schedulinginfo_br_13);
|
ASN_SEQUENCE_ADD(&sib1_1310->bandwidthReducedAccessRelatedInfo_r13->schedulingInfoList_BR_r13->list, schedulinginfo_br_13);
|
||||||
|
}
|
||||||
|
|
||||||
sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13
|
sib1_1310->bandwidthReducedAccessRelatedInfo_r13->fdd_DownlinkOrTddSubframeBitmapBR_r13
|
||||||
= calloc(1, sizeof(struct SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13__fdd_DownlinkOrTddSubframeBitmapBR_r13));
|
= calloc(1, sizeof(struct SystemInformationBlockType1_v1310_IEs__bandwidthReducedAccessRelatedInfo_r13__fdd_DownlinkOrTddSubframeBitmapBR_r13));
|
||||||
@@ -610,18 +627,35 @@ uint8_t do_SIB1(rrc_eNB_carrier_data_t *carrier,
|
|||||||
{
|
{
|
||||||
sib1_1310->bandwidthReducedAccessRelatedInfo_r13->si_ValidityTime_r13 = calloc(1, sizeof(long));
|
sib1_1310->bandwidthReducedAccessRelatedInfo_r13->si_ValidityTime_r13 = calloc(1, sizeof(long));
|
||||||
memset(sib1_1310->bandwidthReducedAccessRelatedInfo_r13->si_ValidityTime_r13, 0, sizeof(long));
|
memset(sib1_1310->bandwidthReducedAccessRelatedInfo_r13->si_ValidityTime_r13, 0, sizeof(long));
|
||||||
*sib1_1310->bandwidthReducedAccessRelatedInfo_r13->si_ValidityTime_r13
|
*sib1_1310->bandwidthReducedAccessRelatedInfo_r13->si_ValidityTime_r13 = *configuration->si_ValidityTime_r13[CC_id];
|
||||||
= *configuration->si_ValidityTime_r13[CC_id];
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
sib1_1310->bandwidthReducedAccessRelatedInfo_r13->si_ValidityTime_r13 = NULL;
|
sib1_1310->bandwidthReducedAccessRelatedInfo_r13->si_ValidityTime_r13 = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
sib1_1310->bandwidthReducedAccessRelatedInfo_r13->systemInfoValueTagList_r13 = calloc(1, sizeof(SystemInfoValueTagList_r13_t));
|
sib1_1310->bandwidthReducedAccessRelatedInfo_r13->systemInfoValueTagList_r13 = calloc(1, sizeof(SystemInfoValueTagList_r13_t));
|
||||||
SystemInfoValueTagSI_r13_t systemInfoValueTagSi_r13 = 0;
|
SystemInfoValueTagSI_r13_t systemInfoValueTagSi_r13;
|
||||||
ASN_SEQUENCE_ADD(&sib1_1310->bandwidthReducedAccessRelatedInfo_r13->systemInfoValueTagList_r13->list, &systemInfoValueTagSi_r13);
|
|
||||||
|
int num_system_info_value_tag = configuration->system_info_value_tag_SI_size[CC_id];
|
||||||
|
for (index = 0; index < num_system_info_value_tag; ++index)
|
||||||
|
{
|
||||||
|
if (configuration->systemInfoValueTagSi_r13[CC_id][index])
|
||||||
|
{
|
||||||
|
systemInfoValueTagSi_r13 = configuration->systemInfoValueTagSi_r13[CC_id][index];
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
|
systemInfoValueTagSi_r13 = 0;
|
||||||
|
}
|
||||||
|
ASN_SEQUENCE_ADD(&sib1_1310->bandwidthReducedAccessRelatedInfo_r13->systemInfoValueTagList_r13->list, &systemInfoValueTagSi_r13);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
sib1_1310->bandwidthReducedAccessRelatedInfo_r13 = NULL;
|
sib1_1310->bandwidthReducedAccessRelatedInfo_r13 = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
sib1_1310->nonCriticalExtension = calloc(1, sizeof(SystemInformationBlockType1_v1320_IEs_t));
|
sib1_1310->nonCriticalExtension = calloc(1, sizeof(SystemInformationBlockType1_v1320_IEs_t));
|
||||||
memset(sib1_1310->nonCriticalExtension, 0, sizeof(SystemInformationBlockType1_v1320_IEs_t));
|
memset(sib1_1310->nonCriticalExtension, 0, sizeof(SystemInformationBlockType1_v1320_IEs_t));
|
||||||
@@ -826,6 +860,10 @@ uint8_t do_SIB1(rrc_eNB_carrier_data_t *carrier,
|
|||||||
return((enc_rval.encoded+7)/8);
|
return((enc_rval.encoded+7)/8);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
uint8_t do_SIB23(uint8_t Mod_id,
|
uint8_t do_SIB23(uint8_t Mod_id,
|
||||||
|
|
||||||
int CC_id
|
int CC_id
|
||||||
@@ -852,11 +890,13 @@ uint8_t do_SIB23(uint8_t Mod_id,
|
|||||||
uint8_t *buffer;
|
uint8_t *buffer;
|
||||||
SystemInformationBlockType2_t **sib2;
|
SystemInformationBlockType2_t **sib2;
|
||||||
RadioResourceConfig *rrconfig;
|
RadioResourceConfig *rrconfig;
|
||||||
|
|
||||||
#ifdef Rel14
|
#ifdef Rel14
|
||||||
if (brOption) {
|
if (brOption) {
|
||||||
buffer = RC.rrc[Mod_id]->carrier[CC_id].SIB23_BR;
|
buffer = RC.rrc[Mod_id]->carrier[CC_id].SIB23_BR;
|
||||||
sib2 = &RC.rrc[Mod_id]->carrier[CC_id].sib2_BR;
|
sib2 = &RC.rrc[Mod_id]->carrier[CC_id].sib2_BR;
|
||||||
rrconfig = &configuration->radioresourceconfig_BR[CC_id];
|
rrconfig = &configuration->radioresourceconfig_BR[CC_id];
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
#endif
|
#endif
|
||||||
@@ -930,7 +970,7 @@ uint8_t do_SIB23(uint8_t Mod_id,
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(ENABLE_ITTI)
|
#if defined(ENABLE_ITTI)
|
||||||
|
puts("INSIDE ITTI !!!!");
|
||||||
(*sib2)->radioResourceConfigCommon.rach_ConfigCommon.preambleInfo.numberOfRA_Preambles = rrconfig->rach_numberOfRA_Preambles;
|
(*sib2)->radioResourceConfigCommon.rach_ConfigCommon.preambleInfo.numberOfRA_Preambles = rrconfig->rach_numberOfRA_Preambles;
|
||||||
(*sib2)->radioResourceConfigCommon.rach_ConfigCommon.preambleInfo.preamblesGroupAConfig = NULL;
|
(*sib2)->radioResourceConfigCommon.rach_ConfigCommon.preambleInfo.preamblesGroupAConfig = NULL;
|
||||||
|
|
||||||
@@ -956,27 +996,46 @@ uint8_t do_SIB23(uint8_t Mod_id,
|
|||||||
(*sib2)->radioResourceConfigCommon.rach_ConfigCommon.ext1 = calloc(1, sizeof(struct RACH_ConfigCommon__ext1));
|
(*sib2)->radioResourceConfigCommon.rach_ConfigCommon.ext1 = calloc(1, sizeof(struct RACH_ConfigCommon__ext1));
|
||||||
memset((*sib2)->radioResourceConfigCommon.rach_ConfigCommon.ext1, 0, sizeof(struct RACH_ConfigCommon__ext1));
|
memset((*sib2)->radioResourceConfigCommon.rach_ConfigCommon.ext1, 0, sizeof(struct RACH_ConfigCommon__ext1));
|
||||||
|
|
||||||
|
|
||||||
if (rrconfig->rach_maxHARQ_Msg3Tx)
|
if (rrconfig->rach_maxHARQ_Msg3Tx)
|
||||||
{
|
{
|
||||||
(*sib2)->radioResourceConfigCommon.rach_ConfigCommon.ext1->preambleTransMax_CE_r13 = calloc(1, sizeof(PreambleTransMax_t));
|
(*sib2)->radioResourceConfigCommon.rach_ConfigCommon.ext1->preambleTransMax_CE_r13 = calloc(1, sizeof(PreambleTransMax_t));
|
||||||
*(*sib2)->radioResourceConfigCommon.rach_ConfigCommon.ext1->preambleTransMax_CE_r13 = rrconfig->rach_maxHARQ_Msg3Tx; // to be re-initialized when we find the enum
|
*(*sib2)->radioResourceConfigCommon.rach_ConfigCommon.ext1->preambleTransMax_CE_r13 = rrconfig->rach_maxHARQ_Msg3Tx; // to be re-initialized when we find the enum
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
(*sib2)->radioResourceConfigCommon.rach_ConfigCommon.ext1->preambleTransMax_CE_r13 = NULL;
|
(*sib2)->radioResourceConfigCommon.rach_ConfigCommon.ext1->preambleTransMax_CE_r13 = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
(*sib2)->radioResourceConfigCommon.rach_ConfigCommon.ext1->rach_CE_LevelInfoList_r13 = calloc(1, sizeof(RACH_CE_LevelInfoList_r13_t));
|
(*sib2)->radioResourceConfigCommon.rach_ConfigCommon.ext1->rach_CE_LevelInfoList_r13 = calloc(1, sizeof(RACH_CE_LevelInfoList_r13_t));
|
||||||
memset((*sib2)->radioResourceConfigCommon.rach_ConfigCommon.ext1->rach_CE_LevelInfoList_r13, 0, sizeof(RACH_CE_LevelInfoList_r13_t));
|
memset((*sib2)->radioResourceConfigCommon.rach_ConfigCommon.ext1->rach_CE_LevelInfoList_r13, 0, sizeof(RACH_CE_LevelInfoList_r13_t));
|
||||||
|
|
||||||
RACH_CE_LevelInfo_r13_t *rach_ce_levelinfo_r13 = calloc(1, sizeof(RACH_CE_LevelInfo_r13_t));
|
RACH_CE_LevelInfo_r13_t *rach_ce_levelinfo_r13 = calloc(1, sizeof(RACH_CE_LevelInfo_r13_t));
|
||||||
memset(rach_ce_levelinfo_r13, 0, sizeof(RACH_CE_LevelInfo_r13_t));
|
memset(rach_ce_levelinfo_r13, 0, sizeof(RACH_CE_LevelInfo_r13_t));
|
||||||
|
|
||||||
|
int num_rach_ce_level_info = configuration->rach_CE_LevelInfoList_r13_size[CC_id];
|
||||||
|
int index;
|
||||||
|
for (index = 0; index < num_rach_ce_level_info; ++index)
|
||||||
|
{
|
||||||
|
if (configuration->rach_CE_LevelInfoList_r13_size[CC_id])
|
||||||
|
{
|
||||||
|
rach_ce_levelinfo_r13->preambleMappingInfo_r13.firstPreamble_r13 = configuration->firstPreamble_r13[CC_id][index];
|
||||||
|
rach_ce_levelinfo_r13->preambleMappingInfo_r13.lastPreamble_r13 = configuration->lastPreamble_r13[CC_id][index];
|
||||||
|
rach_ce_levelinfo_r13->ra_ResponseWindowSize_r13 = configuration->ra_ResponseWindowSize_r13[CC_id][index];
|
||||||
|
rach_ce_levelinfo_r13->mac_ContentionResolutionTimer_r13 = configuration->mac_ContentionResolutionTimer_r13[CC_id][index];
|
||||||
|
rach_ce_levelinfo_r13->rar_HoppingConfig_r13 = configuration->rar_HoppingConfig_r13[CC_id][index];
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
rach_ce_levelinfo_r13->preambleMappingInfo_r13.firstPreamble_r13 = 0;
|
rach_ce_levelinfo_r13->preambleMappingInfo_r13.firstPreamble_r13 = 0;
|
||||||
rach_ce_levelinfo_r13->preambleMappingInfo_r13.lastPreamble_r13 = 63;
|
rach_ce_levelinfo_r13->preambleMappingInfo_r13.lastPreamble_r13 = 63;
|
||||||
rach_ce_levelinfo_r13->ra_ResponseWindowSize_r13 = RACH_CE_LevelInfo_r13__ra_ResponseWindowSize_r13_sf80;
|
rach_ce_levelinfo_r13->ra_ResponseWindowSize_r13 = RACH_CE_LevelInfo_r13__ra_ResponseWindowSize_r13_sf80;
|
||||||
rach_ce_levelinfo_r13->mac_ContentionResolutionTimer_r13 = RACH_CE_LevelInfo_r13__mac_ContentionResolutionTimer_r13_sf200;
|
rach_ce_levelinfo_r13->mac_ContentionResolutionTimer_r13 = RACH_CE_LevelInfo_r13__mac_ContentionResolutionTimer_r13_sf200;
|
||||||
rach_ce_levelinfo_r13->rar_HoppingConfig_r13 = RACH_CE_LevelInfo_r13__rar_HoppingConfig_r13_off;
|
rach_ce_levelinfo_r13->rar_HoppingConfig_r13 = RACH_CE_LevelInfo_r13__rar_HoppingConfig_r13_off;
|
||||||
|
}
|
||||||
ASN_SEQUENCE_ADD(&(*sib2)->radioResourceConfigCommon.rach_ConfigCommon.ext1->rach_CE_LevelInfoList_r13->list, rach_ce_levelinfo_r13);
|
ASN_SEQUENCE_ADD(&(*sib2)->radioResourceConfigCommon.rach_ConfigCommon.ext1->rach_CE_LevelInfoList_r13->list, rach_ce_levelinfo_r13);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------------------------------------------------------- +kogo
|
//--------------------------------------------------------------------------------------------------------------------------------------------------- +kogo
|
||||||
|
|
||||||
// BCCH-Config
|
// BCCH-Config
|
||||||
@@ -1102,12 +1161,26 @@ uint8_t do_SIB23(uint8_t Mod_id,
|
|||||||
(*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310 = calloc(1, sizeof(PRACH_ConfigSIB_v1310_t));
|
(*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310 = calloc(1, sizeof(PRACH_ConfigSIB_v1310_t));
|
||||||
memset((*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310, 0, sizeof(PRACH_ConfigSIB_v1310_t));
|
memset((*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310, 0, sizeof(PRACH_ConfigSIB_v1310_t));
|
||||||
|
|
||||||
RSRP_Range_t rsrp_range = 60;
|
RSRP_Range_t rsrp_range;
|
||||||
|
int num_rsrp_range = configuration->rsrp_range_list_size[CC_id];
|
||||||
|
int rsrp_index;
|
||||||
|
for (rsrp_index = 0; rsrp_index < num_rsrp_range; ++rsrp_index)
|
||||||
|
{
|
||||||
|
if (configuration->rsrp_range_list_size[CC_id])
|
||||||
|
{
|
||||||
|
rsrp_range = configuration->rsrp_range[CC_id][rsrp_index];
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
rsrp_range = 60;
|
||||||
|
}
|
||||||
|
|
||||||
ASN_SEQUENCE_ADD(&(*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->rsrp_ThresholdsPrachInfoList_r13.list, &rsrp_range);
|
ASN_SEQUENCE_ADD(&(*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->rsrp_ThresholdsPrachInfoList_r13.list, &rsrp_range);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
(*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->mpdcch_startSF_CSS_RA_r13 = NULL;
|
(*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->mpdcch_startSF_CSS_RA_r13 = NULL;
|
||||||
|
|
||||||
|
|
||||||
if (rrconfig->mpdcch_startSF_CSS_RA_r13)
|
if (rrconfig->mpdcch_startSF_CSS_RA_r13)
|
||||||
{
|
{
|
||||||
(*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->mpdcch_startSF_CSS_RA_r13 = calloc(1, sizeof(struct PRACH_ConfigSIB_v1310__mpdcch_startSF_CSS_RA_r13));
|
(*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->mpdcch_startSF_CSS_RA_r13 = calloc(1, sizeof(struct PRACH_ConfigSIB_v1310__mpdcch_startSF_CSS_RA_r13));
|
||||||
@@ -1131,18 +1204,56 @@ uint8_t do_SIB23(uint8_t Mod_id,
|
|||||||
*(*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->prach_HoppingOffset_r13 = *rrconfig->prach_HoppingOffset_r13;
|
*(*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->prach_HoppingOffset_r13 = *rrconfig->prach_HoppingOffset_r13;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
(*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->prach_HoppingOffset_r13 = NULL;
|
(*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->prach_HoppingOffset_r13 = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
PRACH_ParametersCE_r13_t *prach_parametersce_r13 = calloc(1, sizeof(PRACH_ParametersCE_r13_t));
|
PRACH_ParametersCE_r13_t *prach_parametersce_r13 = calloc(1, sizeof(PRACH_ParametersCE_r13_t));
|
||||||
memset(prach_parametersce_r13, 0, sizeof(PRACH_ParametersCE_r13_t));
|
memset(prach_parametersce_r13, 0, sizeof(PRACH_ParametersCE_r13_t));
|
||||||
|
|
||||||
|
int num_prach_parameters_ce = configuration->prach_parameters_list_size[CC_id];
|
||||||
|
int prach_parameters_index;
|
||||||
|
for (prach_parameters_index = 0; prach_parameters_index < num_prach_parameters_ce; ++prach_parameters_index)
|
||||||
|
{
|
||||||
|
if (configuration->prach_parameters_list_size[CC_id])
|
||||||
|
{
|
||||||
|
prach_parametersce_r13->prach_ConfigIndex_r13 = configuration->prach_config_index[CC_id][prach_parameters_index];
|
||||||
|
prach_parametersce_r13->prach_FreqOffset_r13 = configuration->prach_freq_offset[CC_id][prach_parameters_index];
|
||||||
|
|
||||||
|
if (configuration->prach_StartingSubframe_r13[CC_id][prach_parameters_index])
|
||||||
|
{
|
||||||
|
*prach_parametersce_r13->prach_StartingSubframe_r13 = *configuration->prach_StartingSubframe_r13[CC_id][prach_parameters_index];
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
prach_parametersce_r13->prach_StartingSubframe_r13 = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (configuration->maxNumPreambleAttemptCE_r13[CC_id][prach_parameters_index])
|
||||||
|
{
|
||||||
|
*prach_parametersce_r13->maxNumPreambleAttemptCE_r13 = *configuration->maxNumPreambleAttemptCE_r13[CC_id][prach_parameters_index];
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
prach_parametersce_r13->maxNumPreambleAttemptCE_r13 = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
prach_parametersce_r13->numRepetitionPerPreambleAttempt_r13 = configuration->numRepetitionPerPreambleAttempt_r13[CC_id][prach_parameters_index];
|
||||||
|
prach_parametersce_r13->mpdcch_NumRepetition_RA_r13 = configuration->mpdcch_NumRepetition_RA_r13[CC_id][prach_parameters_index];
|
||||||
|
prach_parametersce_r13->prach_HoppingConfig_r13 = configuration->prach_HoppingConfig_r13[CC_id][prach_parameters_index];
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
prach_parametersce_r13->prach_ConfigIndex_r13 = 3;
|
prach_parametersce_r13->prach_ConfigIndex_r13 = 3;
|
||||||
prach_parametersce_r13->prach_FreqOffset_r13 = 1;
|
prach_parametersce_r13->prach_FreqOffset_r13 = 1;
|
||||||
prach_parametersce_r13->prach_StartingSubframe_r13 = NULL;
|
prach_parametersce_r13->prach_StartingSubframe_r13 = NULL;
|
||||||
prach_parametersce_r13->maxNumPreambleAttemptCE_r13 = calloc(1, sizeof(long));
|
*prach_parametersce_r13->maxNumPreambleAttemptCE_r13 = calloc(1, sizeof(long));
|
||||||
*prach_parametersce_r13->maxNumPreambleAttemptCE_r13 = PRACH_ParametersCE_r13__maxNumPreambleAttemptCE_r13_n3;
|
*prach_parametersce_r13->maxNumPreambleAttemptCE_r13 = PRACH_ParametersCE_r13__maxNumPreambleAttemptCE_r13_n3;
|
||||||
|
|
||||||
prach_parametersce_r13->numRepetitionPerPreambleAttempt_r13 = PRACH_ParametersCE_r13__numRepetitionPerPreambleAttempt_r13_n1;
|
prach_parametersce_r13->numRepetitionPerPreambleAttempt_r13 = PRACH_ParametersCE_r13__numRepetitionPerPreambleAttempt_r13_n1;
|
||||||
|
prach_parametersce_r13->mpdcch_NumRepetition_RA_r13 = PRACH_ParametersCE_r13__mpdcch_NumRepetition_RA_r13_r1;
|
||||||
|
prach_parametersce_r13->prach_HoppingConfig_r13 = PRACH_ParametersCE_r13__prach_HoppingConfig_r13_off;
|
||||||
|
}
|
||||||
|
|
||||||
long maxavailablenarrowband = 2;
|
long maxavailablenarrowband = 2;
|
||||||
ASN_SEQUENCE_ADD(&prach_parametersce_r13->mpdcch_NarrowbandsToMonitor_r13.list, &maxavailablenarrowband);
|
ASN_SEQUENCE_ADD(&prach_parametersce_r13->mpdcch_NarrowbandsToMonitor_r13.list, &maxavailablenarrowband);
|
||||||
|
|
||||||
@@ -1150,16 +1261,35 @@ uint8_t do_SIB23(uint8_t Mod_id,
|
|||||||
prach_parametersce_r13->prach_HoppingConfig_r13 = PRACH_ParametersCE_r13__prach_HoppingConfig_r13_off;
|
prach_parametersce_r13->prach_HoppingConfig_r13 = PRACH_ParametersCE_r13__prach_HoppingConfig_r13_off;
|
||||||
ASN_SEQUENCE_ADD(&(*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->prach_ParametersListCE_r13.list, prach_parametersce_r13);
|
ASN_SEQUENCE_ADD(&(*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310->prach_ParametersListCE_r13.list, prach_parametersce_r13);
|
||||||
}
|
}
|
||||||
else
|
|
||||||
(*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310 = NULL;
|
|
||||||
|
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
(*sib2)->radioResourceConfigCommon.ext4->prach_ConfigCommon_v1310 = NULL;
|
||||||
|
}
|
||||||
(*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310 = calloc(1, sizeof(PUCCH_ConfigCommon_v1310_t));
|
(*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310 = calloc(1, sizeof(PUCCH_ConfigCommon_v1310_t));
|
||||||
memset((*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310, 0, sizeof(PUCCH_ConfigCommon_v1310_t));
|
memset((*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310, 0, sizeof(PUCCH_ConfigCommon_v1310_t));
|
||||||
(*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->n1PUCCH_AN_InfoList_r13 = calloc(1, sizeof(N1PUCCH_AN_InfoList_r13_t));
|
(*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->n1PUCCH_AN_InfoList_r13 = calloc(1, sizeof(N1PUCCH_AN_InfoList_r13_t));
|
||||||
long pucch_info_value1 = 0;
|
|
||||||
long pucch_info_value2 = 2;
|
int num_pucch_info_list = configuration->pucch_info_value_size[CC_id];
|
||||||
ASN_SEQUENCE_ADD(&(*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->n1PUCCH_AN_InfoList_r13->list, &pucch_info_value1);
|
int pucch_index;
|
||||||
ASN_SEQUENCE_ADD(&(*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->n1PUCCH_AN_InfoList_r13->list, &pucch_info_value2);
|
long pucch_info_value;
|
||||||
|
for (pucch_index = 0; pucch_index < num_pucch_info_list; ++pucch_index)
|
||||||
|
{
|
||||||
|
if (configuration->pucch_info_value_size[CC_id])
|
||||||
|
{
|
||||||
|
pucch_info_value = configuration->pucch_info_value[CC_id][pucch_index];
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
pucch_info_value = 0;
|
||||||
|
}
|
||||||
|
ASN_SEQUENCE_ADD(&(*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->n1PUCCH_AN_InfoList_r13->list, &pucch_info_value);
|
||||||
|
}
|
||||||
|
|
||||||
|
// +kogo FIXME
|
||||||
|
// ASN_SEQUENCE_ADD(&(*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->n1PUCCH_AN_InfoList_r13->list, &pucch_info_value2);
|
||||||
|
|
||||||
(*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->pucch_NumRepetitionCE_Msg4_Level0_r13 = NULL;
|
(*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->pucch_NumRepetitionCE_Msg4_Level0_r13 = NULL;
|
||||||
(*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->pucch_NumRepetitionCE_Msg4_Level1_r13 = NULL;
|
(*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->pucch_NumRepetitionCE_Msg4_Level1_r13 = NULL;
|
||||||
(*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->pucch_NumRepetitionCE_Msg4_Level2_r13 = NULL;
|
(*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->pucch_NumRepetitionCE_Msg4_Level2_r13 = NULL;
|
||||||
@@ -1303,8 +1433,8 @@ uint8_t do_SIB23(uint8_t Mod_id,
|
|||||||
prach_parametersce_r13->prach_StartingSubframe_r13 = NULL;
|
prach_parametersce_r13->prach_StartingSubframe_r13 = NULL;
|
||||||
prach_parametersce_r13->maxNumPreambleAttemptCE_r13 = calloc(1, sizeof(long));
|
prach_parametersce_r13->maxNumPreambleAttemptCE_r13 = calloc(1, sizeof(long));
|
||||||
*prach_parametersce_r13->maxNumPreambleAttemptCE_r13 = PRACH_ParametersCE_r13__maxNumPreambleAttemptCE_r13_n3;
|
*prach_parametersce_r13->maxNumPreambleAttemptCE_r13 = PRACH_ParametersCE_r13__maxNumPreambleAttemptCE_r13_n3;
|
||||||
|
|
||||||
prach_parametersce_r13->numRepetitionPerPreambleAttempt_r13 = PRACH_ParametersCE_r13__numRepetitionPerPreambleAttempt_r13_n1;
|
prach_parametersce_r13->numRepetitionPerPreambleAttempt_r13 = PRACH_ParametersCE_r13__numRepetitionPerPreambleAttempt_r13_n1;
|
||||||
|
|
||||||
long maxavailablenarrowband = 2;
|
long maxavailablenarrowband = 2;
|
||||||
ASN_SEQUENCE_ADD(&prach_parametersce_r13->mpdcch_NarrowbandsToMonitor_r13.list, &maxavailablenarrowband);
|
ASN_SEQUENCE_ADD(&prach_parametersce_r13->mpdcch_NarrowbandsToMonitor_r13.list, &maxavailablenarrowband);
|
||||||
|
|
||||||
@@ -1314,6 +1444,7 @@ uint8_t do_SIB23(uint8_t Mod_id,
|
|||||||
|
|
||||||
(*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310 = calloc(1, sizeof(PUCCH_ConfigCommon_v1310_t));
|
(*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310 = calloc(1, sizeof(PUCCH_ConfigCommon_v1310_t));
|
||||||
memset((*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310, 0, sizeof(PUCCH_ConfigCommon_v1310_t));
|
memset((*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310, 0, sizeof(PUCCH_ConfigCommon_v1310_t));
|
||||||
|
|
||||||
(*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->n1PUCCH_AN_InfoList_r13 = calloc(1, sizeof(N1PUCCH_AN_InfoList_r13_t));
|
(*sib2)->radioResourceConfigCommon.ext4->pucch_ConfigCommon_v1310->n1PUCCH_AN_InfoList_r13 = calloc(1, sizeof(N1PUCCH_AN_InfoList_r13_t));
|
||||||
long pucch_info_value1 = 0;
|
long pucch_info_value1 = 0;
|
||||||
long pucch_info_value2 = 2;
|
long pucch_info_value2 = 2;
|
||||||
|
|||||||
@@ -127,6 +127,7 @@ init_SI(
|
|||||||
)
|
)
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
{
|
{
|
||||||
|
puts("[DEBUGGING][KOGO] Inside init_SI function ...");
|
||||||
#if defined(Rel10) || defined(Rel14)
|
#if defined(Rel10) || defined(Rel14)
|
||||||
int i;
|
int i;
|
||||||
#endif
|
#endif
|
||||||
@@ -167,6 +168,7 @@ init_SI(
|
|||||||
|
|
||||||
AssertFatal(RC.rrc[ctxt_pP->module_id]->carrier[CC_id].SIB1!=NULL,PROTOCOL_RRC_CTXT_FMT" init_SI: FATAL, no memory for SIB1 allocated\n",
|
AssertFatal(RC.rrc[ctxt_pP->module_id]->carrier[CC_id].SIB1!=NULL,PROTOCOL_RRC_CTXT_FMT" init_SI: FATAL, no memory for SIB1 allocated\n",
|
||||||
PROTOCOL_RRC_CTXT_ARGS(ctxt_pP));
|
PROTOCOL_RRC_CTXT_ARGS(ctxt_pP));
|
||||||
|
puts("[DEBUGGING][KOGO] --- Calling SIB1");
|
||||||
RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sizeof_SIB1 = do_SIB1(&RC.rrc[ctxt_pP->module_id]->carrier[CC_id],ctxt_pP->module_id,CC_id
|
RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sizeof_SIB1 = do_SIB1(&RC.rrc[ctxt_pP->module_id]->carrier[CC_id],ctxt_pP->module_id,CC_id
|
||||||
#ifdef Rel14
|
#ifdef Rel14
|
||||||
,FALSE
|
,FALSE
|
||||||
@@ -183,6 +185,7 @@ init_SI(
|
|||||||
RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sizeof_SIB1_BR = 0;
|
RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sizeof_SIB1_BR = 0;
|
||||||
if (configuration->schedulingInfoSIB1_BR_r13[CC_id]>0) {
|
if (configuration->schedulingInfoSIB1_BR_r13[CC_id]>0) {
|
||||||
RC.rrc[ctxt_pP->module_id]->carrier[CC_id].SIB1_BR = (uint8_t*) malloc16(32);
|
RC.rrc[ctxt_pP->module_id]->carrier[CC_id].SIB1_BR = (uint8_t*) malloc16(32);
|
||||||
|
puts("[DEBUGGING][KOGO] --- Calling SIB1 -- second time");
|
||||||
RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sizeof_SIB1_BR = do_SIB1(&RC.rrc[ctxt_pP->module_id]->carrier[CC_id],ctxt_pP->module_id,CC_id
|
RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sizeof_SIB1_BR = do_SIB1(&RC.rrc[ctxt_pP->module_id]->carrier[CC_id],ctxt_pP->module_id,CC_id
|
||||||
,TRUE
|
,TRUE
|
||||||
#if defined(ENABLE_ITTI)
|
#if defined(ENABLE_ITTI)
|
||||||
@@ -194,6 +197,7 @@ init_SI(
|
|||||||
|
|
||||||
RC.rrc[ctxt_pP->module_id]->carrier[CC_id].SIB23 = (uint8_t*) malloc16(64);
|
RC.rrc[ctxt_pP->module_id]->carrier[CC_id].SIB23 = (uint8_t*) malloc16(64);
|
||||||
AssertFatal(RC.rrc[ctxt_pP->module_id]->carrier[CC_id].SIB23!=NULL,"cannot allocate memory for SIB");
|
AssertFatal(RC.rrc[ctxt_pP->module_id]->carrier[CC_id].SIB23!=NULL,"cannot allocate memory for SIB");
|
||||||
|
puts("[DEBUGGING][KOGO] ---> Calling SIB23 ---> first time");
|
||||||
RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sizeof_SIB23 = do_SIB23(
|
RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sizeof_SIB23 = do_SIB23(
|
||||||
ctxt_pP->module_id,
|
ctxt_pP->module_id,
|
||||||
CC_id
|
CC_id
|
||||||
@@ -212,13 +216,17 @@ init_SI(
|
|||||||
if (configuration->schedulingInfoSIB1_BR_r13[CC_id]>0) {
|
if (configuration->schedulingInfoSIB1_BR_r13[CC_id]>0) {
|
||||||
RC.rrc[ctxt_pP->module_id]->carrier[CC_id].SIB23_BR = (uint8_t*) malloc16(64);
|
RC.rrc[ctxt_pP->module_id]->carrier[CC_id].SIB23_BR = (uint8_t*) malloc16(64);
|
||||||
AssertFatal(RC.rrc[ctxt_pP->module_id]->carrier[CC_id].SIB23_BR!=NULL,"cannot allocate memory for SIB");
|
AssertFatal(RC.rrc[ctxt_pP->module_id]->carrier[CC_id].SIB23_BR!=NULL,"cannot allocate memory for SIB");
|
||||||
|
puts("[DEBUGGING][KOGO] ---> Calling SIB23 ---> second time");
|
||||||
RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sizeof_SIB23_BR = do_SIB23(
|
RC.rrc[ctxt_pP->module_id]->carrier[CC_id].sizeof_SIB23_BR = do_SIB23(
|
||||||
ctxt_pP->module_id,
|
ctxt_pP->module_id,
|
||||||
CC_id,
|
CC_id
|
||||||
|
#ifdef Rel14
|
||||||
|
,TRUE
|
||||||
|
#endif
|
||||||
#if defined(ENABLE_ITTI)
|
#if defined(ENABLE_ITTI)
|
||||||
configuration,
|
,configuration
|
||||||
|
);
|
||||||
#endif
|
#endif
|
||||||
0);
|
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user