Commit aeda8e5c authored by mohamed.said's avatar mohamed.said

added pcch_config_v1310 to config file and handled in enb_config.c , asn1_msg.c

parent 3d1adb06
......@@ -250,7 +250,7 @@ typedef struct RrcConfigurationReq_s {
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];
int max_available_narrow_band_size [MAX_NUM_CCs][4];
// end kogo
......@@ -259,6 +259,12 @@ typedef struct RrcConfigurationReq_s {
int pucch_info_value_size [MAX_NUM_CCs];
// end kogo
// +kogo
bool pcch_config_v1310 [MAX_NUM_CCs];
long paging_narrowbands_r13 [MAX_NUM_CCs];
long mpdcch_numrepetition_paging_r13 [MAX_NUM_CCs];
long *nb_v1310 [MAX_NUM_CCs];
#endif
} RrcConfigurationReq;
......
......@@ -160,6 +160,12 @@ EMAIL : Lionel.Gauthier@eurecom.fr, navid.nikaein@eurecom.fr
#define ENB_CONFIG_STRING_MAX_AVAILABLE_NARROWBAND "maxavailablenarrowband"
#define ENB_CONFIG_STRING_PUCCH_INFO_VALUE "pucch_info_value"
#define ENB_CONFIG_STRING_PCCH_CONFIG_V1310 "pcch_config_v1310"
#define ENB_CONFIG_STRING_PAGING_NARROWBANDS_R13 "paging_narrowbands_r13"
#define ENB_CONFIG_STRING_MPDCCH_NUMREPETITION_PAGING_R13 "mpdcch_numrepetition_paging_r13"
#define ENB_CONFIG_STRING_NB_V1310 "nb_v1310"
#define ENB_CONFIG_STRING_PDSCH_RS_EPRE "pdsch_referenceSignalPower"
#define ENB_CONFIG_STRING_PDSCH_PB "pdsch_p_b"
......@@ -1007,6 +1013,8 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) {
config_setting_t *n1_pucch_AN_info_r13_list = NULL;
config_setting_t *n1_pucch_AN_info_r13 = NULL;
config_setting_t *setting_pcch_config_v1310 = NULL;
#if defined(Rel14)
config_setting_t *setting_br13 = NULL;
#endif // REL14
......@@ -1134,6 +1142,11 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) {
libconfig_int maxavailablenarrowband = 0;
libconfig_int pucch_info_value = 0;
libconfig_int paging_narrowbands_r13 = 0;
libconfig_int mpdcch_numrepetition_paging_r13 = 0;
libconfig_int nb_v1310 = 0;
libconfig_int srb1_timer_poll_retransmit = 0;
libconfig_int srb1_timer_reordering = 0;
libconfig_int srb1_timer_status_prohibit = 0;
......@@ -2692,11 +2705,18 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) {
RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[j][prach_parameters_index] = NULL;
}
}
max_available_narrow_band_list = config_setting_get_member(prach_parameters_ce_r13_list, ENB_CONFIG_STRING_MAX_AVAILABLE_NARROW_BAND);
int num_available_narrow_bands = config_setting_length(max_available_narrow_band_list);
RRC_CONFIGURATION_REQ (msg_p).maxNumPreambleAttemptCE_r13[j][prach_parameters_index] = num_available_narrow_bands;
int narrow_band_index;
for (narrow_band_index = 0; narrow_band_index < num_available_narrow_bands; narrow_band_index++)
{
max_available_narrow_band = config_setting_get_elem(max_available_narrow_band_list, narrow_band_index);
RRC_CONFIGURATION_REQ (msg_p).max_available_narrow_band[j][prach_parameters_index][narrow_band_index] = config_setting_get_int(max_available_narrow_band);
}
// 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);
......@@ -3725,6 +3745,35 @@ int RCconfig_RRC(MessageDef *msg_p, uint32_t i, eNB_RRC_INST *rrc) {
char* prach_ConfigCommon_v1310 = NULL;
char* mpdcch_startSF_CSS_RA_r13;
setting_pcch_config_v1310 = config_setting_get_member(setting_br13, ENB_CONFIG_STRING_PCCH_CONFIG_V1310);
if (setting_pcch_config_v1310 != NULL)
{
RRC_CONFIGURATION_REQ(msg_p).pcch_config_v1310[j] = TRUE;
if (!config_setting_lookup_int(setting_pcch_config_v1310, ENB_CONFIG_STRING_PAGING_NARROWBANDS_R13, &paging_narrowbands_r13)
|| !config_setting_lookup_int(setting_pcch_config_v1310, ENB_CONFIG_STRING_MPDCCH_NUMREPETITION_PAGING_R13, &mpdcch_numrepetition_paging_r13)
)
AssertFatal(0,
"Failed to parse eNB configuration file %s, enb %d pcch_config_v1310!\n",
RC.config_file_name, i);
RRC_CONFIGURATION_REQ(msg_p).paging_narrowbands_r13[j] = paging_narrowbands_r13;
RRC_CONFIGURATION_REQ(msg_p).mpdcch_numrepetition_paging_r13[j] = mpdcch_numrepetition_paging_r13;
if (config_setting_lookup_int(setting_pcch_config_v1310, ENB_CONFIG_STRING_MPDCCH_NUMREPETITION_PAGING_R13, &nb_v1310))
{
RRC_CONFIGURATION_REQ(msg_p).nb_v1310[j] = CALLOC(1, sizeof(long));
*RRC_CONFIGURATION_REQ(msg_p).nb_v1310[j] = nb_v1310;
}
else
{
RRC_CONFIGURATION_REQ(msg_p).nb_v1310[j] = NULL;
}
}
else
{
RRC_CONFIGURATION_REQ(msg_p).pcch_config_v1310[j] = FALSE;
}
if (!config_setting_lookup_int(setting_br13, ENB_CONFIG_STRING_schedulingInfoSIB1, &schedulingInfoSIB1_BR_r13))
AssertFatal(0,
......
......@@ -1178,7 +1178,28 @@ uint8_t do_SIB23(uint8_t Mod_id,
(*sib2)->radioResourceConfigCommon.ext4->bcch_Config_v1310 = calloc(1, sizeof(BCCH_Config_v1310_t));
memset((*sib2)->radioResourceConfigCommon.ext4->bcch_Config_v1310, 0, sizeof(BCCH_Config_v1310_t));
(*sib2)->radioResourceConfigCommon.ext4->bcch_Config_v1310->modificationPeriodCoeff_v1310 = BCCH_Config_v1310__modificationPeriodCoeff_v1310_n64;
(*sib2)->radioResourceConfigCommon.ext4->pcch_Config_v1310 = NULL;
if (configuration->pcch_config_v1310)
{
(*sib2)->radioResourceConfigCommon.ext4->pcch_Config_v1310 = CALLOC(1, sizeof(PCCH_Config_v1310_t));
(*sib2)->radioResourceConfigCommon.ext4->pcch_Config_v1310->paging_narrowBands_r13 = configuration->paging_narrowbands_r13[CC_id];
(*sib2)->radioResourceConfigCommon.ext4->pcch_Config_v1310->mpdcch_NumRepetition_Paging_r13 = configuration->mpdcch_numrepetition_paging_r13[CC_id];
if (configuration->nb_v1310[CC_id])
{
(*sib2)->radioResourceConfigCommon.ext4->pcch_Config_v1310->nB_v1310 = CALLOC(1, sizeof(long));
*(*sib2)->radioResourceConfigCommon.ext4->pcch_Config_v1310->nB_v1310 = *configuration->nb_v1310[CC_id];
}
else
{
(*sib2)->radioResourceConfigCommon.ext4->pcch_Config_v1310->nB_v1310 = NULL;
}
}
else
{
(*sib2)->radioResourceConfigCommon.ext4->pcch_Config_v1310 = NULL;
}
(*sib2)->radioResourceConfigCommon.ext4->freqHoppingParameters_r13 = NULL;
(*sib2)->radioResourceConfigCommon.ext4->pdsch_ConfigCommon_v1310 = NULL;
(*sib2)->radioResourceConfigCommon.ext4->pusch_ConfigCommon_v1310 = NULL;
......@@ -1281,8 +1302,14 @@ uint8_t do_SIB23(uint8_t Mod_id,
prach_parametersce_r13->prach_HoppingConfig_r13 = PRACH_ParametersCE_r13__prach_HoppingConfig_r13_off;
}
long maxavailablenarrowband = 2;
ASN_SEQUENCE_ADD(&prach_parametersce_r13->mpdcch_NarrowbandsToMonitor_r13.list, &maxavailablenarrowband);
long maxavailablenarrowband;
int num_narrow_bands = configuration->max_available_narrow_band_size[CC_id][prach_parameters_index];
int narrow_band_index;
for (narrow_band_index = 0; narrow_band_index < num_narrow_bands; narrow_band_index++)
{
maxavailablenarrowband = configuration->max_available_narrow_band[CC_id][prach_parameters_index][narrow_band_index];
ASN_SEQUENCE_ADD(&prach_parametersce_r13->mpdcch_NarrowbandsToMonitor_r13.list, &maxavailablenarrowband);
}
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;
......
......@@ -184,14 +184,8 @@ eNBs =
numRepetitionPerPreambleAttempt_r13 = 0;
mpdcch_NumRepetition_RA_r13 = 0;
prach_HoppingConfig_r13 = 0;
max_available_narrow_band =
(
{
maxavailablenarrowband = 2;
}
);
}
max_available_narrow_band = [2];
}
);
n1PUCCH_AN_InfoList_r13 =
......@@ -203,6 +197,13 @@ eNBs =
pucch_info_value = 13;
}
);
pcch_config_v1310 :
{
paging_narrowbands_r13 = 1;
mpdcch_numrepetition_paging_r13 = 2;
nb_v1310 = 3;
}
mpdcch_startSF_CSS_RA_r13 = "fdd-r13"
mpdcch_startSF_CSS_RA_r13_val = 5;
......
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