SIB1 system info value tag made optional
This commit is contained in:
@@ -2579,18 +2579,27 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) {
|
||||
}
|
||||
|
||||
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);
|
||||
int num_system_info;
|
||||
if (system_info_value_tag_SI_list != NULL)
|
||||
{
|
||||
num_system_info = config_setting_length(system_info_value_tag_SI_list);
|
||||
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;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
num_system_info = 0;
|
||||
}
|
||||
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);
|
||||
|
||||
@@ -653,21 +653,29 @@ uint8_t do_SIB1(rrc_eNB_carrier_data_t *carrier,
|
||||
sib1_1310->bandwidthReducedAccessRelatedInfo_r13->si_ValidityTime_r13 = NULL;
|
||||
}
|
||||
|
||||
sib1_1310->bandwidthReducedAccessRelatedInfo_r13->systemInfoValueTagList_r13 = calloc(1, sizeof(SystemInfoValueTagList_r13_t));
|
||||
SystemInfoValueTagSI_r13_t 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 (num_system_info_value_tag > 0)
|
||||
{
|
||||
if (configuration->systemInfoValueTagSi_r13[CC_id][index])
|
||||
sib1_1310->bandwidthReducedAccessRelatedInfo_r13->systemInfoValueTagList_r13 = calloc(1, sizeof(SystemInfoValueTagList_r13_t));
|
||||
SystemInfoValueTagSI_r13_t systemInfoValueTagSi_r13;
|
||||
for (index = 0; index < num_system_info_value_tag; ++index)
|
||||
{
|
||||
systemInfoValueTagSi_r13 = configuration->systemInfoValueTagSi_r13[CC_id][index];
|
||||
if (configuration->systemInfoValueTagSi_r13[CC_id][index])
|
||||
{
|
||||
systemInfoValueTagSi_r13 = configuration->systemInfoValueTagSi_r13[CC_id][index];
|
||||
}
|
||||
else
|
||||
{
|
||||
systemInfoValueTagSi_r13 = 0;
|
||||
}
|
||||
ASN_SEQUENCE_ADD(&sib1_1310->bandwidthReducedAccessRelatedInfo_r13->systemInfoValueTagList_r13->list, &systemInfoValueTagSi_r13);
|
||||
}
|
||||
else
|
||||
{
|
||||
systemInfoValueTagSi_r13 = 0;
|
||||
}
|
||||
ASN_SEQUENCE_ADD(&sib1_1310->bandwidthReducedAccessRelatedInfo_r13->systemInfoValueTagList_r13->list, &systemInfoValueTagSi_r13);
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
sib1_1310->bandwidthReducedAccessRelatedInfo_r13->systemInfoValueTagList_r13 = NULL;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user