maintain NR configuration
This commit is contained in:
@@ -253,7 +253,8 @@ typedef struct NRRrcConfigurationReq_s {
|
|||||||
lte_frame_type_t frame_type[MAX_NUM_CCs];
|
lte_frame_type_t frame_type[MAX_NUM_CCs];
|
||||||
uint8_t tdd_config[MAX_NUM_CCs];
|
uint8_t tdd_config[MAX_NUM_CCs];
|
||||||
uint8_t tdd_config_s[MAX_NUM_CCs];
|
uint8_t tdd_config_s[MAX_NUM_CCs];
|
||||||
lte_prefix_type_t prefix_type[MAX_NUM_CCs];
|
lte_prefix_type_t DL_prefix_type[MAX_NUM_CCs];
|
||||||
|
lte_prefix_type_t UL_prefix_type[MAX_NUM_CCs];
|
||||||
int16_t eutra_band[MAX_NUM_CCs];
|
int16_t eutra_band[MAX_NUM_CCs];
|
||||||
uint32_t downlink_frequency[MAX_NUM_CCs];
|
uint32_t downlink_frequency[MAX_NUM_CCs];
|
||||||
int32_t uplink_frequency_offset[MAX_NUM_CCs];
|
int32_t uplink_frequency_offset[MAX_NUM_CCs];
|
||||||
@@ -262,6 +263,15 @@ typedef struct NRRrcConfigurationReq_s {
|
|||||||
int nb_antenna_ports[MAX_NUM_CCs];
|
int nb_antenna_ports[MAX_NUM_CCs];
|
||||||
|
|
||||||
///NR
|
///NR
|
||||||
|
//MIB
|
||||||
|
long MIB_subCarrierSpacingCommon[MAX_NUM_CCs];
|
||||||
|
long MIB_dmrs_TypeA_Position[MAX_NUM_CCs];
|
||||||
|
uint32_t pdcch_ConfigSIB1[MAX_NUM_CCs];
|
||||||
|
|
||||||
|
//SIB1
|
||||||
|
long SIB1_frequencyOffsetSSB[MAX_NUM_CCs];
|
||||||
|
long SIB1_ssb_PeriodicityServingCell[MAX_NUM_CCs];
|
||||||
|
long SIB1_ss_PBCH_BlockPower[MAX_NUM_CCs];
|
||||||
//NR FrequencyInfoDL
|
//NR FrequencyInfoDL
|
||||||
long absoluteFrequencySSB[MAX_NUM_CCs];
|
long absoluteFrequencySSB[MAX_NUM_CCs];
|
||||||
uint32_t ssb_SubcarrierOffset[MAX_NUM_CCs];
|
uint32_t ssb_SubcarrierOffset[MAX_NUM_CCs];
|
||||||
@@ -276,7 +286,6 @@ typedef struct NRRrcConfigurationReq_s {
|
|||||||
|
|
||||||
//NR BWP-DownlinkCommon
|
//NR BWP-DownlinkCommon
|
||||||
uint32_t DL_locationAndBandwidth[MAX_NUM_CCs];
|
uint32_t DL_locationAndBandwidth[MAX_NUM_CCs];
|
||||||
//NR_prefix_type_t DL_prefix_type[MAX_NUM_CCs];
|
|
||||||
|
|
||||||
//NR FrequencyInfoUL
|
//NR FrequencyInfoUL
|
||||||
long UL_FreqBandIndicatorNR[MAX_NUM_CCs];
|
long UL_FreqBandIndicatorNR[MAX_NUM_CCs];
|
||||||
@@ -292,13 +301,11 @@ typedef struct NRRrcConfigurationReq_s {
|
|||||||
|
|
||||||
// NR BWP-UplinkCommon
|
// NR BWP-UplinkCommon
|
||||||
uint32_t UL_locationAndBandwidth[MAX_NUM_CCs];
|
uint32_t UL_locationAndBandwidth[MAX_NUM_CCs];
|
||||||
//NR_prefix_type_t UL_prefix_type[MAX_NUM_CCs];
|
|
||||||
|
|
||||||
|
long ServingCellConfigCommon_ssb_periodicityServingCell[MAX_NUM_CCs]; //ServingCellConfigCommon
|
||||||
long ssb_periodicityServingCell[MAX_NUM_CCs];
|
long ServingCellConfigCommon_dmrs_TypeA_Position[MAX_NUM_CCs]; //ServingCellConfigCommon
|
||||||
long dmrs_TypeA_Position[MAX_NUM_CCs];
|
long NIA_SubcarrierSpacing[MAX_NUM_CCs]; //ServingCellConfigCommon Used only for non-initial access
|
||||||
long NIA_SubcarrierSpacing[MAX_NUM_CCs]; ///ServingCellConfigCommon Used only for non-initial access
|
long ServingCellConfigCommon_ss_PBCH_BlockPower[MAX_NUM_CCs]; //ServingCellConfigCommon
|
||||||
long ss_PBCH_BlockPower[MAX_NUM_CCs];
|
|
||||||
|
|
||||||
|
|
||||||
//NR TDD-UL-DL-ConfigCommon
|
//NR TDD-UL-DL-ConfigCommon
|
||||||
|
|||||||
@@ -37,10 +37,8 @@
|
|||||||
#define GNB_CONFIG_STRING_COMPONENT_CARRIERS "component_carriers"
|
#define GNB_CONFIG_STRING_COMPONENT_CARRIERS "component_carriers"
|
||||||
|
|
||||||
#define GNB_CONFIG_STRING_FRAME_TYPE "frame_type"
|
#define GNB_CONFIG_STRING_FRAME_TYPE "frame_type"
|
||||||
#define GNB_CONFIG_STRING_TDD_CONFIG "tdd_config"
|
#define GNB_CONFIG_STRING_DL_PREFIX_TYPE "DL_prefix_type"
|
||||||
#define GNB_CONFIG_STRING_TDD_CONFIG_S "tdd_config_s"
|
#define GNB_CONFIG_STRING_UL_PREFIX_TYPE "UL_prefix_type"
|
||||||
#define GNB_CONFIG_STRING_PREFIX_TYPE "prefix_type"
|
|
||||||
#define GNB_CONFIG_STRING_PREFIX_TYPE_UL "prefix_type_UL"
|
|
||||||
#define GNB_CONFIG_STRING_EUTRA_BAND "eutra_band"
|
#define GNB_CONFIG_STRING_EUTRA_BAND "eutra_band"
|
||||||
#define GNB_CONFIG_STRING_DOWNLINK_FREQUENCY "downlink_frequency"
|
#define GNB_CONFIG_STRING_DOWNLINK_FREQUENCY "downlink_frequency"
|
||||||
#define GNB_CONFIG_STRING_UPLINK_FREQUENCY_OFFSET "uplink_frequency_offset"
|
#define GNB_CONFIG_STRING_UPLINK_FREQUENCY_OFFSET "uplink_frequency_offset"
|
||||||
|
|||||||
+78
-78
@@ -55,7 +55,7 @@ extern RAN_CONTEXT_t RC;
|
|||||||
|
|
||||||
/*------------------------------------------------------------------------------*/
|
/*------------------------------------------------------------------------------*/
|
||||||
# if defined(ENABLE_USE_MME)
|
# if defined(ENABLE_USE_MME)
|
||||||
# define ENB_REGISTER_RETRY_DELAY 10
|
# define GNB_REGISTER_RETRY_DELAY 10
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
/*------------------------------------------------------------------------------*/
|
/*------------------------------------------------------------------------------*/
|
||||||
@@ -84,72 +84,72 @@ static void configure_phy(module_id_t enb_id, const Enb_properties_array_t* enb_
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/*------------------------------------------------------------------------------*/
|
/*------------------------------------------------------------------------------*/
|
||||||
static void configure_rrc(uint32_t enb_id)
|
static void configure_nrrrc(uint32_t gnb_id)
|
||||||
{
|
{
|
||||||
MessageDef *msg_p = NULL;
|
MessageDef *msg_p = NULL;
|
||||||
// int CC_id;
|
// int CC_id;
|
||||||
|
|
||||||
msg_p = itti_alloc_new_message (TASK_ENB_APP, RRC_CONFIGURATION_REQ);
|
msg_p = itti_alloc_new_message (TASK_GNB_APP, NRRRC_CONFIGURATION_REQ);
|
||||||
|
|
||||||
if (RC.rrc[enb_id]) {
|
if (RC.nr_rrc[gnb_id]) {
|
||||||
RCconfig_NRRRC(msg_p,enb_id, RC.rrc[enb_id]);
|
RCconfig_NRRRC(msg_p,gnb_id, RC.nr_rrc[gnb_id]);
|
||||||
|
|
||||||
|
|
||||||
LOG_I(ENB_APP,"Sending configuration message to RRC task\n");
|
LOG_I(GNB_APP,"Sending configuration message to NR_RRC task\n");
|
||||||
itti_send_msg_to_task (TASK_RRC_GNB, ENB_MODULE_ID_TO_INSTANCE(enb_id), msg_p);
|
itti_send_msg_to_task (TASK_RRC_GNB, GNB_MODULE_ID_TO_INSTANCE(gnb_id), msg_p);
|
||||||
|
|
||||||
}
|
}
|
||||||
else AssertFatal(0,"RRC context for eNB %d not allocated\n",enb_id);
|
else AssertFatal(0,"NRRRC context for gNB %d not allocated\n",gnb_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*------------------------------------------------------------------------------*/
|
/*------------------------------------------------------------------------------*/
|
||||||
# if defined(ENABLE_USE_MME)
|
# if defined(ENABLE_USE_MME)
|
||||||
static uint32_t eNB_app_register(uint32_t enb_id_start, uint32_t enb_id_end)//, const Enb_properties_array_t *enb_properties)
|
static uint32_t gNB_app_register(uint32_t gnb_id_start, uint32_t gnb_id_end)//, const Enb_properties_array_t *enb_properties)
|
||||||
{
|
{
|
||||||
uint32_t enb_id;
|
uint32_t gnb_id;
|
||||||
MessageDef *msg_p;
|
MessageDef *msg_p;
|
||||||
uint32_t register_enb_pending = 0;
|
uint32_t register_gnb_pending = 0;
|
||||||
|
|
||||||
for (enb_id = enb_id_start; (enb_id < enb_id_end) ; enb_id++) {
|
for (gnb_id = gnb_id_start; (gnb_id < gnb_id_end) ; gnb_id++) {
|
||||||
{
|
{
|
||||||
s1ap_register_enb_req_t *s1ap_register_eNB;
|
s1ap_register_gnb_req_t *s1ap_register_gNB;
|
||||||
|
|
||||||
/* note: there is an implicit relationship between the data structure and the message name */
|
/* note: there is an implicit relationship between the data structure and the message name */
|
||||||
msg_p = itti_alloc_new_message (TASK_ENB_APP, S1AP_REGISTER_ENB_REQ);
|
msg_p = itti_alloc_new_message (TASK_GNB_APP, S1AP_REGISTER_GNB_REQ);
|
||||||
|
|
||||||
RCconfig_S1(msg_p, enb_id);
|
RCconfig_S1(msg_p, gnb_id);
|
||||||
|
|
||||||
if (enb_id == 0) RCconfig_gtpu();
|
if (gnb_id == 0) RCconfig_gtpu();
|
||||||
|
|
||||||
s1ap_register_eNB = &S1AP_REGISTER_ENB_REQ(msg_p);
|
s1ap_register_gNB = &S1AP_REGISTER_GNB_REQ(msg_p);
|
||||||
LOG_I(ENB_APP,"default drx %d\n",s1ap_register_eNB->default_drx);
|
LOG_I(GNB_APP,"default drx %d\n",s1ap_register_gNB->default_drx);
|
||||||
|
|
||||||
LOG_I(ENB_APP,"[eNB %d] eNB_app_register for instance %d\n", enb_id, ENB_MODULE_ID_TO_INSTANCE(enb_id));
|
LOG_I(GNB_APP,"[gNB %d] gNB_app_register for instance %d\n", gnb_id, GNB_MODULE_ID_TO_INSTANCE(gnb_id));
|
||||||
|
|
||||||
itti_send_msg_to_task (TASK_S1AP, ENB_MODULE_ID_TO_INSTANCE(enb_id), msg_p);
|
itti_send_msg_to_task (TASK_S1AP, GNB_MODULE_ID_TO_INSTANCE(gnb_id), msg_p);
|
||||||
|
|
||||||
register_enb_pending++;
|
register_gnb_pending++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return register_enb_pending;
|
return register_gnb_pending;
|
||||||
}
|
}
|
||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*------------------------------------------------------------------------------*/
|
/*------------------------------------------------------------------------------*/
|
||||||
void *eNB_app_task(void *args_p)
|
void *gNB_app_task(void *args_p)
|
||||||
{
|
{
|
||||||
#if defined(ENABLE_ITTI)
|
#if defined(ENABLE_ITTI)
|
||||||
uint32_t enb_nb = RC.nb_inst;
|
uint32_t gnb_nb = RC.nb_nr_inst;
|
||||||
uint32_t enb_id_start = 0;
|
uint32_t gnb_id_start = 0;
|
||||||
uint32_t enb_id_end = enb_id_start + enb_nb;
|
uint32_t gnb_id_end = gnb_id_start + gnb_nb;
|
||||||
# if defined(ENABLE_USE_MME)
|
# if defined(ENABLE_USE_MME)
|
||||||
uint32_t register_enb_pending;
|
uint32_t register_gnb_pending;
|
||||||
uint32_t registered_enb;
|
uint32_t registered_gnb;
|
||||||
long enb_register_retry_timer_id;
|
long gnb_register_retry_timer_id;
|
||||||
# endif
|
# endif
|
||||||
uint32_t enb_id;
|
uint32_t gnb_id;
|
||||||
MessageDef *msg_p = NULL;
|
MessageDef *msg_p = NULL;
|
||||||
const char *msg_name = NULL;
|
const char *msg_name = NULL;
|
||||||
instance_t instance;
|
instance_t instance;
|
||||||
@@ -157,99 +157,99 @@ void *eNB_app_task(void *args_p)
|
|||||||
/* for no gcc warnings */
|
/* for no gcc warnings */
|
||||||
(void)instance;
|
(void)instance;
|
||||||
|
|
||||||
itti_mark_task_ready (TASK_ENB_APP);
|
itti_mark_task_ready (TASK_GNB_APP);
|
||||||
|
|
||||||
LOG_I(PHY, "%s() Task ready initialise structures\n", __FUNCTION__);
|
LOG_I(PHY, "%s() Task ready initialise structures\n", __FUNCTION__);
|
||||||
|
|
||||||
RCconfig_L1();
|
//RCconfig_L1();
|
||||||
|
|
||||||
RCconfig_macrlc();
|
//RCconfig_macrlc();
|
||||||
|
|
||||||
LOG_I(PHY, "%s() RC.nb_L1_inst:%d\n", __FUNCTION__, RC.nb_L1_inst);
|
LOG_I(PHY, "%s() RC.nb_L1_inst:%d\n", __FUNCTION__, RC.nb_L1_inst);
|
||||||
|
|
||||||
if (RC.nb_L1_inst>0) AssertFatal(l1_north_init_eNB()==0,"could not initialize L1 north interface\n");
|
if (RC.nb_L1_inst>0) AssertFatal(l1_north_init_gNB()==0,"could not initialize L1 north interface\n");
|
||||||
|
|
||||||
AssertFatal (enb_nb <= RC.nb_inst,
|
AssertFatal (gnb_nb <= RC.nb_nr_inst,
|
||||||
"Number of eNB is greater than eNB defined in configuration file (%d/%d)!",
|
"Number of gNB is greater than gNB defined in configuration file (%d/%d)!",
|
||||||
enb_nb, RC.nb_inst);
|
gnb_nb, RC.nb_nr_inst);
|
||||||
|
|
||||||
LOG_I(ENB_APP,"Allocating eNB_RRC_INST for %d instances\n",RC.nb_inst);
|
LOG_I(GNB_APP,"Allocating gNB_RRC_INST for %d instances\n",RC.nb_nr_inst);
|
||||||
|
|
||||||
RC.rrc = (eNB_RRC_INST **)malloc(RC.nb_inst*sizeof(eNB_RRC_INST *));
|
RC.rrc = (gNB_RRC_INST **)malloc(RC.nb_nr_inst*sizeof(gNB_RRC_INST *));
|
||||||
LOG_I(PHY, "%s() RC.nb_inst:%d RC.rrc:%p\n", __FUNCTION__, RC.nb_inst, RC.rrc);
|
LOG_I(PHY, "%s() RC.nb_nr_inst:%d RC.rrc:%p\n", __FUNCTION__, RC.nb_nr_inst, RC.rrc);
|
||||||
|
|
||||||
for (enb_id = enb_id_start; (enb_id < enb_id_end) ; enb_id++) {
|
for (gnb_id = gnb_id_start; (gnb_id < gnb_id_end) ; gnb_id++) {
|
||||||
RC.rrc[enb_id] = (eNB_RRC_INST*)malloc(sizeof(eNB_RRC_INST));
|
RC.rrc[gnb_id] = (gNB_RRC_INST*)malloc(sizeof(gNB_RRC_INST));
|
||||||
LOG_I(PHY, "%s() Creating RRC instance RC.rrc[%d]:%p (%d of %d)\n", __FUNCTION__, enb_id, RC.rrc[enb_id], enb_id+1, enb_id_end);
|
LOG_I(PHY, "%s() Creating RRC instance RC.rrc[%d]:%p (%d of %d)\n", __FUNCTION__, gnb_id, RC.rrc[gnb_id], gnb_id+1, gnb_id_end);
|
||||||
memset((void *)RC.rrc[enb_id],0,sizeof(eNB_RRC_INST));
|
memset((void *)RC.rrc[gnb_id],0,sizeof(gNB_RRC_INST));
|
||||||
configure_rrc(enb_id);
|
configure_nrrrc(gnb_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
# if defined(ENABLE_USE_MME)
|
# if defined(ENABLE_USE_MME)
|
||||||
/* Try to register each eNB */
|
/* Try to register each gNB */
|
||||||
registered_enb = 0;
|
registered_gnb = 0;
|
||||||
register_enb_pending = eNB_app_register (enb_id_start, enb_id_end);//, enb_properties_p);
|
register_gnb_pending = gNB_app_register (gnb_id_start, gnb_id_end);//, gnb_properties_p);
|
||||||
# else
|
# else
|
||||||
/* Start L2L1 task */
|
/* Start L2L1 task */
|
||||||
msg_p = itti_alloc_new_message(TASK_ENB_APP, INITIALIZE_MESSAGE);
|
msg_p = itti_alloc_new_message(TASK_GNB_APP, INITIALIZE_MESSAGE);
|
||||||
itti_send_msg_to_task(TASK_L2L1, INSTANCE_DEFAULT, msg_p);
|
itti_send_msg_to_task(TASK_L2L1, INSTANCE_DEFAULT, msg_p);
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
do {
|
do {
|
||||||
// Wait for a message
|
// Wait for a message
|
||||||
itti_receive_msg (TASK_ENB_APP, &msg_p);
|
itti_receive_msg (TASK_GNB_APP, &msg_p);
|
||||||
|
|
||||||
msg_name = ITTI_MSG_NAME (msg_p);
|
msg_name = ITTI_MSG_NAME (msg_p);
|
||||||
instance = ITTI_MSG_INSTANCE (msg_p);
|
instance = ITTI_MSG_INSTANCE (msg_p);
|
||||||
|
|
||||||
switch (ITTI_MSG_ID(msg_p)) {
|
switch (ITTI_MSG_ID(msg_p)) {
|
||||||
case TERMINATE_MESSAGE:
|
case TERMINATE_MESSAGE:
|
||||||
LOG_W(ENB_APP, " *** Exiting ENB_APP thread\n");
|
LOG_W(GNB_APP, " *** Exiting GNB_APP thread\n");
|
||||||
itti_exit_task ();
|
itti_exit_task ();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case MESSAGE_TEST:
|
case MESSAGE_TEST:
|
||||||
LOG_I(ENB_APP, "Received %s\n", ITTI_MSG_NAME(msg_p));
|
LOG_I(GNB_APP, "Received %s\n", ITTI_MSG_NAME(msg_p));
|
||||||
break;
|
break;
|
||||||
|
|
||||||
# if defined(ENABLE_USE_MME)
|
# if defined(ENABLE_USE_MME)
|
||||||
|
|
||||||
case S1AP_REGISTER_ENB_CNF:
|
case S1AP_REGISTER_ENB_CNF:
|
||||||
LOG_I(ENB_APP, "[eNB %d] Received %s: associated MME %d\n", instance, msg_name,
|
LOG_I(GNB_APP, "[gNB %d] Received %s: associated MME %d\n", instance, msg_name,
|
||||||
S1AP_REGISTER_ENB_CNF(msg_p).nb_mme);
|
S1AP_REGISTER_ENB_CNF(msg_p).nb_mme);
|
||||||
|
|
||||||
DevAssert(register_enb_pending > 0);
|
DevAssert(register_gnb_pending > 0);
|
||||||
register_enb_pending--;
|
register_gnb_pending--;
|
||||||
|
|
||||||
/* Check if at least eNB is registered with one MME */
|
/* Check if at least gNB is registered with one MME */
|
||||||
if (S1AP_REGISTER_ENB_CNF(msg_p).nb_mme > 0) {
|
if (S1AP_REGISTER_ENB_CNF(msg_p).nb_mme > 0) {
|
||||||
registered_enb++;
|
registered_gnb++;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Check if all register eNB requests have been processed */
|
/* Check if all register gNB requests have been processed */
|
||||||
if (register_enb_pending == 0) {
|
if (register_gnb_pending == 0) {
|
||||||
if (registered_enb == enb_nb) {
|
if (registered_gnb == gnb_nb) {
|
||||||
/* If all eNB are registered, start L2L1 task */
|
/* If all gNB are registered, start L2L1 task */
|
||||||
MessageDef *msg_init_p;
|
MessageDef *msg_init_p;
|
||||||
|
|
||||||
msg_init_p = itti_alloc_new_message (TASK_ENB_APP, INITIALIZE_MESSAGE);
|
msg_init_p = itti_alloc_new_message (TASK_GNB_APP, INITIALIZE_MESSAGE);
|
||||||
itti_send_msg_to_task (TASK_L2L1, INSTANCE_DEFAULT, msg_init_p);
|
itti_send_msg_to_task (TASK_L2L1, INSTANCE_DEFAULT, msg_init_p);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
uint32_t not_associated = enb_nb - registered_enb;
|
uint32_t not_associated = gnb_nb - registered_gnb;
|
||||||
|
|
||||||
LOG_W(ENB_APP, " %d eNB %s not associated with a MME, retrying registration in %d seconds ...\n",
|
LOG_W(GNB_APP, " %d gNB %s not associated with a MME, retrying registration in %d seconds ...\n",
|
||||||
not_associated, not_associated > 1 ? "are" : "is", ENB_REGISTER_RETRY_DELAY);
|
not_associated, not_associated > 1 ? "are" : "is", GNB_REGISTER_RETRY_DELAY);
|
||||||
|
|
||||||
/* Restart the eNB registration process in ENB_REGISTER_RETRY_DELAY seconds */
|
/* Restart the gNB registration process in GNB_REGISTER_RETRY_DELAY seconds */
|
||||||
if (timer_setup (ENB_REGISTER_RETRY_DELAY, 0, TASK_ENB_APP, INSTANCE_DEFAULT, TIMER_ONE_SHOT,
|
if (timer_setup (GNB_REGISTER_RETRY_DELAY, 0, TASK_GNB_APP, INSTANCE_DEFAULT, TIMER_ONE_SHOT,
|
||||||
NULL, &enb_register_retry_timer_id) < 0) {
|
NULL, &gnb_register_retry_timer_id) < 0) {
|
||||||
LOG_E(ENB_APP, " Can not start eNB register retry timer, use \"sleep\" instead!\n");
|
LOG_E(GNB_APP, " Can not start gNB register retry timer, use \"sleep\" instead!\n");
|
||||||
|
|
||||||
sleep(ENB_REGISTER_RETRY_DELAY);
|
sleep(GNB_REGISTER_RETRY_DELAY);
|
||||||
/* Restart the registration process */
|
/* Restart the registration process */
|
||||||
registered_enb = 0;
|
registered_gnb = 0;
|
||||||
register_enb_pending = eNB_app_register (enb_id_start, enb_id_end);//, enb_properties_p);
|
register_gnb_pending = gNB_app_register (gnb_id_start, gnb_id_end);//, gnb_properties_p);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -257,26 +257,26 @@ void *eNB_app_task(void *args_p)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case S1AP_DEREGISTERED_ENB_IND:
|
case S1AP_DEREGISTERED_ENB_IND:
|
||||||
LOG_W(ENB_APP, "[eNB %d] Received %s: associated MME %d\n", instance, msg_name,
|
LOG_W(GNB_APP, "[gNB %d] Received %s: associated MME %d\n", instance, msg_name,
|
||||||
S1AP_DEREGISTERED_ENB_IND(msg_p).nb_mme);
|
S1AP_DEREGISTERED_ENB_IND(msg_p).nb_mme);
|
||||||
|
|
||||||
/* TODO handle recovering of registration */
|
/* TODO handle recovering of registration */
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case TIMER_HAS_EXPIRED:
|
case TIMER_HAS_EXPIRED:
|
||||||
LOG_I(ENB_APP, " Received %s: timer_id %ld\n", msg_name, TIMER_HAS_EXPIRED(msg_p).timer_id);
|
LOG_I(GNB_APP, " Received %s: timer_id %ld\n", msg_name, TIMER_HAS_EXPIRED(msg_p).timer_id);
|
||||||
|
|
||||||
if (TIMER_HAS_EXPIRED (msg_p).timer_id == enb_register_retry_timer_id) {
|
if (TIMER_HAS_EXPIRED (msg_p).timer_id == gnb_register_retry_timer_id) {
|
||||||
/* Restart the registration process */
|
/* Restart the registration process */
|
||||||
registered_enb = 0;
|
registered_gnb = 0;
|
||||||
register_enb_pending = eNB_app_register (enb_id_start, enb_id_end);//, enb_properties_p);
|
register_gnb_pending = gNB_app_register(gnb_id_start, gnb_id_end);//, gnb_properties_p);
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
# endif
|
# endif
|
||||||
|
|
||||||
default:
|
default:
|
||||||
LOG_E(ENB_APP, "Received unexpected message %s\n", msg_name);
|
LOG_E(GNB_APP, "Received unexpected message %s\n", msg_name);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+201
-133
@@ -39,177 +39,186 @@ int RCconfig_NRRRC(MessageDef *msg_p, uint32_t i, gNB_RRC_INST *rrc) {
|
|||||||
|
|
||||||
int nb_cc = 0;
|
int nb_cc = 0;
|
||||||
char* frame_type = NULL;
|
char* frame_type = NULL;
|
||||||
char* prefix_type = NULL;
|
char* DL_prefix_type = NULL;
|
||||||
|
char* UL_prefix_type = NULL;
|
||||||
|
|
||||||
int32_t eutra_band = 0;
|
int32_t eutra_band = 0;
|
||||||
long long int downlink_frequency = 0;
|
long long int downlink_frequency = 0;
|
||||||
int32_t uplink_frequency_offset = 0;
|
int32_t uplink_frequency_offset = 0;
|
||||||
int32_t Nid_cell = 0;
|
int32_t Nid_cell = 0;
|
||||||
// int32_t Nid_cell_mbsfn = 0;
|
|
||||||
int32_t N_RB_DL = 0;
|
int32_t N_RB_DL = 0;
|
||||||
int32_t nb_antenna_ports = 0;
|
int32_t nb_antenna_ports = 0;
|
||||||
|
|
||||||
///NR
|
///NR
|
||||||
|
//MIB
|
||||||
|
int32_t MIB_subCarrierSpacingCommon = 0;
|
||||||
|
int32_t MIB_dmrs_TypeA_Position = 0;
|
||||||
|
uint32_t pdcch_ConfigSIB1 = 0;
|
||||||
|
|
||||||
|
//SIB1
|
||||||
|
int32_t SIB1_frequencyOffsetSSB = 0;
|
||||||
|
int32_t SIB1_ssb_PeriodicityServingCell = 0;
|
||||||
|
int32_t SIB1_ss_PBCH_BlockPower = 0;
|
||||||
//NR FrequencyInfoDL
|
//NR FrequencyInfoDL
|
||||||
long absoluteFrequencySSB = 0;
|
int32_t absoluteFrequencySSB = 0;
|
||||||
uint32_t ssb_SubcarrierOffset = 0;
|
uint32_t ssb_SubcarrierOffset = 0;
|
||||||
long DL_FreqBandIndicatorNR = 0;
|
int32_t DL_FreqBandIndicatorNR = 0;
|
||||||
long DL_absoluteFrequencyPointA = 0;
|
int32_t DL_absoluteFrequencyPointA = 0;
|
||||||
|
|
||||||
//NR DL SCS-SpecificCarrier
|
//NR DL SCS-SpecificCarrier
|
||||||
uint32_t DL_offsetToCarrier = 0;
|
uint32_t DL_offsetToCarrier = 0;
|
||||||
long DL_SubcarrierSpacing = 0;
|
int32_t DL_SubcarrierSpacing = 0;
|
||||||
long DL_SCS_SpecificCarrier_k0 = 0;
|
int32_t DL_SCS_SpecificCarrier_k0 = 0;
|
||||||
uint32_t DL_carrierBandwidth = 0;
|
uint32_t DL_carrierBandwidth = 0;
|
||||||
|
|
||||||
// NR BWP-DownlinkCommon
|
// NR BWP-DownlinkCommon
|
||||||
uint32_t DL_locationAndBandwidth = 0;
|
uint32_t DL_locationAndBandwidth = 0;
|
||||||
//NR_prefix_type_t DL_prefix_type[MAX_NUM_CCs];
|
|
||||||
|
|
||||||
//NR FrequencyInfoUL
|
//NR FrequencyInfoUL
|
||||||
long UL_FreqBandIndicatorNR = 0;
|
int32_t UL_FreqBandIndicatorNR = 0;
|
||||||
long UL_absoluteFrequencyPointA = 0;
|
int32_t UL_absoluteFrequencyPointA = 0;
|
||||||
long FrequencyInfoUL_p_Max = 0;
|
int32_t FrequencyInfoUL_p_Max = 0;
|
||||||
long frequencyShift7p5khz = 0;
|
int32_t frequencyShift7p5khz = 0;
|
||||||
|
|
||||||
//NR UL SCS-SpecificCarrier
|
//NR UL SCS-SpecificCarrier
|
||||||
uint32_t UL_offsetToCarrier = 0;
|
uint32_t UL_offsetToCarrier = 0;
|
||||||
long UL_SubcarrierSpacing = 0;
|
int32_t UL_SubcarrierSpacing = 0;
|
||||||
long UL_SCS_SpecificCarrier_k0 = 0;
|
int32_t UL_SCS_SpecificCarrier_k0 = 0;
|
||||||
uint32_t UL_carrierBandwidth = 0;
|
uint32_t UL_carrierBandwidth = 0;
|
||||||
|
|
||||||
// NR BWP-UplinkCommon
|
// NR BWP-UplinkCommon
|
||||||
uint32_t UL_locationAndBandwidth = 0;
|
uint32_t UL_locationAndBandwidth = 0;
|
||||||
//NR_prefix_type_t UL_prefix_type;
|
|
||||||
|
|
||||||
|
int32_t subCarrierSpacingCommon = 0;
|
||||||
long ssb_periodicityServingCell = 0;
|
uint32_t pdcch_ConfigSIB1 = 0;
|
||||||
long dmrs_TypeA_Position = 0;
|
int32_t frequencyOffsetSSB = 0;
|
||||||
long NIA_SubcarrierSpacing = 0;
|
int32_t ServingCellConfigCommon_ssb_periodicityServingCell = 0;
|
||||||
long ss_PBCH_BlockPower = 0;
|
int32_t ServingCellConfigCommon_dmrs_TypeA_Position = 0;
|
||||||
|
int32_t NIA_SubcarrierSpacing = 0;
|
||||||
|
int32_t ServingCellConfigCommon_ss_PBCH_BlockPower = 0;
|
||||||
|
|
||||||
//NR TDD-UL-DL-ConfigCommon
|
//NR TDD-UL-DL-ConfigCommon
|
||||||
long referenceSubcarrierSpacing = 0;
|
int32_t referenceSubcarrierSpacing = 0;
|
||||||
long dl_UL_TransmissionPeriodicity = 0;
|
int32_t dl_UL_TransmissionPeriodicity = 0;
|
||||||
long nrofDownlinkSlots = 0;
|
int32_t nrofDownlinkSlots = 0;
|
||||||
long nrofDownlinkSymbols = 0;
|
int32_t nrofDownlinkSymbols = 0;
|
||||||
long nrofUplinkSlots = 0;
|
int32_t nrofUplinkSlots = 0;
|
||||||
long nrofUplinkSymbols = 0;
|
int32_t nrofUplinkSymbols = 0;
|
||||||
|
|
||||||
//NR RACH-ConfigCommon
|
//NR RACH-ConfigCommon
|
||||||
long rach_totalNumberOfRA_Preambles = 0;
|
int32_t rach_totalNumberOfRA_Preambles = 0;
|
||||||
long rach_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_choice = 0;
|
int32_t rach_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_choice = 0;
|
||||||
long rach_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_oneEighth = 0;
|
int32_t rach_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_oneEighth = 0;
|
||||||
long rach_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_oneFourth = 0;
|
int32_t rach_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_oneFourth = 0;
|
||||||
long rach_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_oneHalf = 0;
|
int32_t rach_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_oneHalf = 0;
|
||||||
long rach_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_one = 0;
|
int32_t rach_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_one = 0;
|
||||||
long rach_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_two = 0;
|
int32_t rach_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_two = 0;
|
||||||
uint32_t rach_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_four = 0;
|
uint32_t rach_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_four = 0;
|
||||||
uint32_t rach_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_eight = 0;
|
uint32_t rach_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_eight = 0;
|
||||||
uint32_t rach_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_sixteen = 0;
|
uint32_t rach_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_sixteen = 0;
|
||||||
char* rach_groupBconfigured = NULL;
|
char* rach_groupBconfigured = NULL;
|
||||||
long rach_ra_Msg3SizeGroupA = 0;
|
int32_t rach_ra_Msg3SizeGroupA = 0;
|
||||||
long rach_messagePowerOffsetGroupB = 0;
|
int32_t rach_messagePowerOffsetGroupB = 0;
|
||||||
long rach_numberOfRA_PreamblesGroupA = 0;
|
int32_t rach_numberOfRA_PreamblesGroupA = 0;
|
||||||
long rach_ra_ContentionResolutionTimer = 0;
|
int32_t rach_ra_ContentionResolutionTimer = 0;
|
||||||
long rsrp_ThresholdSSB = 0;
|
int32_t rsrp_ThresholdSSB = 0;
|
||||||
long rsrp_ThresholdSSB_SUL = 0;
|
int32_t rsrp_ThresholdSSB_SUL = 0;
|
||||||
long prach_RootSequenceIndex_choice = 0;
|
int32_t prach_RootSequenceIndex_choice = 0;
|
||||||
uint32_t prach_RootSequenceIndex_l839 = 0;
|
uint32_t prach_RootSequenceIndex_l839 = 0;
|
||||||
uint32_t prach_RootSequenceIndex_l139 = 0;
|
uint32_t prach_RootSequenceIndex_l139 = 0;
|
||||||
long prach_msg1_SubcarrierSpacing = 0;
|
int32_t prach_msg1_SubcarrierSpacing = 0;
|
||||||
long restrictedSetConfig = 0;
|
int32_t restrictedSetConfig = 0;
|
||||||
long msg3_transformPrecoding = 0;
|
int32_t msg3_transformPrecoding = 0;
|
||||||
//ssb-perRACH-OccasionAndCB-PreamblesPerSSB not sure
|
//ssb-perRACH-OccasionAndCB-PreamblesPerSSB not sure
|
||||||
|
|
||||||
//NR RACH-ConfigGeneric
|
//NR RACH-ConfigGeneric
|
||||||
long prach_ConfigurationIndex = 0;
|
int32_t prach_ConfigurationIndex = 0;
|
||||||
long prach_msg1_FDM = 0;
|
int32_t prach_msg1_FDM = 0;
|
||||||
long prach_msg1_FrequencyStart = 0;
|
int32_t prach_msg1_FrequencyStart = 0;
|
||||||
long zeroCorrelationZoneConfig = 0;
|
int32_t zeroCorrelationZoneConfig = 0;
|
||||||
long preambleReceivedTargetPower = 0;
|
int32_t preambleReceivedTargetPower = 0;
|
||||||
long preambleTransMax = 0;
|
int32_t preambleTransMax = 0;
|
||||||
long powerRampingStep = 0;
|
int32_t powerRampingStep = 0;
|
||||||
long ra_ResponseWindow = 0;
|
int32_t ra_ResponseWindow = 0;
|
||||||
|
|
||||||
//PUSCH-ConfigCommon
|
//PUSCH-ConfigCommon
|
||||||
char* groupHoppingEnabledTransformPrecoding = NULL;
|
char* groupHoppingEnabledTransformPrecoding = NULL;
|
||||||
long msg3_DeltaPreamble = 0;
|
int32_t msg3_DeltaPreamble = 0;
|
||||||
long p0_NominalWithGrant = 0;
|
int32_t p0_NominalWithGrant = 0;
|
||||||
|
|
||||||
///PUSCH-TimeDomainResourceAllocation
|
///PUSCH-TimeDomainResourceAllocation
|
||||||
long PUSCH_TimeDomainResourceAllocation_k2 = 0;
|
int32_t PUSCH_TimeDomainResourceAllocation_k2 = 0;
|
||||||
long PUSCH_TimeDomainResourceAllocation_mappingType = 0;
|
int32_t PUSCH_TimeDomainResourceAllocation_mappingType = 0;
|
||||||
|
|
||||||
//PUCCH-ConfigCommon
|
//PUCCH-ConfigCommon
|
||||||
long pucch_GroupHopping = 0;
|
int32_t pucch_GroupHopping = 0;
|
||||||
long p0_nominal = 0;
|
int32_t p0_nominal = 0;
|
||||||
|
|
||||||
//PDSCH-ConfigCOmmon
|
//PDSCH-ConfigCOmmon
|
||||||
//PDSCH-TimeDomainResourceAllocation
|
//PDSCH-TimeDomainResourceAllocation
|
||||||
long PDSCH_TimeDomainResourceAllocation_k0 = 0;
|
int32_t PDSCH_TimeDomainResourceAllocation_k0 = 0;
|
||||||
long PDSCH_TimeDomainResourceAllocation_mappingType = 0;
|
int32_t PDSCH_TimeDomainResourceAllocation_mappingType = 0;
|
||||||
|
|
||||||
//RateMatchPattern is used to configure one rate matching pattern for PDSCH
|
//RateMatchPattern is used to configure one rate matching pattern for PDSCH
|
||||||
long rateMatchPatternId = 0;
|
int32_t rateMatchPatternId = 0;
|
||||||
long RateMatchPattern_patternType = 0;
|
int32_t RateMatchPattern_patternType = 0;
|
||||||
long symbolsInResourceBlock = 0;
|
int32_t symbolsInResourceBlock = 0;
|
||||||
long periodicityAndPattern = 0;
|
int32_t periodicityAndPattern = 0;
|
||||||
long RateMatchPattern_controlResourceSet = 0;
|
int32_t RateMatchPattern_controlResourceSet = 0;
|
||||||
long RateMatchPattern_subcarrierSpacing = 0;
|
int32_t RateMatchPattern_subcarrierSpacing = 0;
|
||||||
long RateMatchPattern_mode = 0;
|
int32_t RateMatchPattern_mode = 0;
|
||||||
|
|
||||||
//PDCCH-ConfigCommon
|
//PDCCH-ConfigCommon
|
||||||
long searchSpaceSIB1 = 0;
|
int32_t searchSpaceSIB1 = 0;
|
||||||
long searchSpaceOtherSystemInformation = 0;
|
int32_t searchSpaceOtherSystemInformation = 0;
|
||||||
long pagingSearchSpace = 0;
|
int32_t pagingSearchSpace = 0;
|
||||||
long ra_SearchSpace = 0;
|
int32_t ra_SearchSpace = 0;
|
||||||
long rach_ra_ControlResourceSet = 0;
|
int32_t rach_ra_ControlResourceSet = 0;
|
||||||
//NR PDCCH-ConfigCommon commonControlResourcesSets
|
//NR PDCCH-ConfigCommon commonControlResourcesSets
|
||||||
long PDCCH_common_controlResourceSetId = 0;
|
int32_t PDCCH_common_controlResourceSetId = 0;
|
||||||
long PDCCH_common_ControlResourceSet_duration = 0;
|
int32_t PDCCH_common_ControlResourceSet_duration = 0;
|
||||||
long PDCCH_cce_REG_MappingType = 0;
|
int32_t PDCCH_cce_REG_MappingType = 0;
|
||||||
long PDCCH_reg_BundleSize = 0;
|
int32_t PDCCH_reg_BundleSize = 0;
|
||||||
long PDCCH_interleaverSize = 0;
|
int32_t PDCCH_interleaverSize = 0;
|
||||||
long PDCCH_shiftIndex = 0;
|
int32_t PDCCH_shiftIndex = 0;
|
||||||
long PDCCH_precoderGranularity = 0;
|
int32_t PDCCH_precoderGranularity = 0;
|
||||||
char* tci_PresentInDCI = NULL;
|
char* tci_PresentInDCI = NULL;
|
||||||
|
|
||||||
//NR PDCCH-ConfigCommon commonSearchSpaces
|
//NR PDCCH-ConfigCommon commonSearchSpaces
|
||||||
long SearchSpaceId = 0;
|
int32_t SearchSpaceId = 0;
|
||||||
long commonSearchSpaces_controlResourceSetId = 0;
|
int32_t commonSearchSpaces_controlResourceSetId = 0;
|
||||||
long SearchSpace_monitoringSlotPeriodicityAndOffset_choice = 0;
|
int32_t SearchSpace_monitoringSlotPeriodicityAndOffset_choice = 0;
|
||||||
long SearchSpace_monitoringSlotPeriodicityAndOffset_sl1 = 0;
|
int32_t SearchSpace_monitoringSlotPeriodicityAndOffset_sl1 = 0;
|
||||||
long SearchSpace_monitoringSlotPeriodicityAndOffset_sl2 = 0;
|
int32_t SearchSpace_monitoringSlotPeriodicityAndOffset_sl2 = 0;
|
||||||
long SearchSpace_monitoringSlotPeriodicityAndOffset_sl4 = 0;
|
int32_t SearchSpace_monitoringSlotPeriodicityAndOffset_sl4 = 0;
|
||||||
long SearchSpace_monitoringSlotPeriodicityAndOffset_sl5 = 0;
|
int32_t SearchSpace_monitoringSlotPeriodicityAndOffset_sl5 = 0;
|
||||||
long SearchSpace_monitoringSlotPeriodicityAndOffset_sl8 = 0;
|
int32_t SearchSpace_monitoringSlotPeriodicityAndOffset_sl8 = 0;
|
||||||
long SearchSpace_monitoringSlotPeriodicityAndOffset_sl10 = 0;
|
int32_t SearchSpace_monitoringSlotPeriodicityAndOffset_sl10 = 0;
|
||||||
long SearchSpace_monitoringSlotPeriodicityAndOffset_sl16 = 0;
|
int32_t SearchSpace_monitoringSlotPeriodicityAndOffset_sl16 = 0;
|
||||||
long SearchSpace_monitoringSlotPeriodicityAndOffset_sl20 = 0;
|
int32_t SearchSpace_monitoringSlotPeriodicityAndOffset_sl20 = 0;
|
||||||
long SearchSpace_nrofCandidates_aggregationLevel1 = 0;
|
int32_t SearchSpace_nrofCandidates_aggregationLevel1 = 0;
|
||||||
long SearchSpace_nrofCandidates_aggregationLevel2 = 0;
|
int32_t SearchSpace_nrofCandidates_aggregationLevel2 = 0;
|
||||||
long SearchSpace_nrofCandidates_aggregationLevel4 = 0;
|
int32_t SearchSpace_nrofCandidates_aggregationLevel4 = 0;
|
||||||
long SearchSpace_nrofCandidates_aggregationLevel8 = 0;
|
int32_t SearchSpace_nrofCandidates_aggregationLevel8 = 0;
|
||||||
long SearchSpace_nrofCandidates_aggregationLevel16 = 0;
|
int32_t SearchSpace_nrofCandidates_aggregationLevel16 = 0;
|
||||||
long SearchSpace_searchSpaceType = 0;
|
int32_t SearchSpace_searchSpaceType = 0;
|
||||||
long Common_dci_Format2_0_nrofCandidates_SFI_aggregationLevel1 = 0;
|
int32_t Common_dci_Format2_0_nrofCandidates_SFI_aggregationLevel1 = 0;
|
||||||
long Common_dci_Format2_0_nrofCandidates_SFI_aggregationLevel2 = 0;
|
int32_t Common_dci_Format2_0_nrofCandidates_SFI_aggregationLevel2 = 0;
|
||||||
long Common_dci_Format2_0_nrofCandidates_SFI_aggregationLevel4 = 0;
|
int32_t Common_dci_Format2_0_nrofCandidates_SFI_aggregationLevel4 = 0;
|
||||||
long Common_dci_Format2_0_nrofCandidates_SFI_aggregationLevel8 = 0;
|
int32_t Common_dci_Format2_0_nrofCandidates_SFI_aggregationLevel8 = 0;
|
||||||
long Common_dci_Format2_0_nrofCandidates_SFI_aggregationLevel16 = 0;
|
int32_t Common_dci_Format2_0_nrofCandidates_SFI_aggregationLevel16 = 0;
|
||||||
long Common_dci_Format2_3_monitoringPeriodicity = 0;
|
int32_t Common_dci_Format2_3_monitoringPeriodicity = 0;
|
||||||
long Common_dci_Format2_3_nrofPDCCH_Candidates = 0;
|
int32_t Common_dci_Format2_3_nrofPDCCH_Candidates = 0;
|
||||||
long ue_Specific__dci_Formats = 0;
|
int32_t ue_Specific__dci_Formats = 0;
|
||||||
|
|
||||||
|
|
||||||
int32_t my_int;
|
int32_t my_int;
|
||||||
|
|
||||||
paramdef_t GNBSParams[] = GNBSPARAMS_DESC;
|
paramdef_t GNBSParams[] = GNBSPARAMS_DESC;
|
||||||
|
////////// Identification parameters
|
||||||
paramdef_t GNBParams[] = GNBPARAMS_DESC;
|
paramdef_t GNBParams[] = GNBPARAMS_DESC;
|
||||||
paramlist_def_t GNBParamList = {GNB_CONFIG_STRING_GNB_LIST,NULL,0};
|
paramlist_def_t GNBParamList = {GNB_CONFIG_STRING_GNB_LIST,NULL,0};
|
||||||
|
////////// Physical parameters
|
||||||
checkedparam_t config_check_CCparams[] = CCPARAMS_CHECK;
|
checkedparam_t config_check_CCparams[] = CCPARAMS_CHECK;
|
||||||
paramdef_t CCsParams[] = CCPARAMS_DESC;
|
paramdef_t CCsParams[] = CCPARAMS_DESC;
|
||||||
paramlist_def_t CCsParamList = {GNB_CONFIG_STRING_COMPONENT_CARRIERS,NULL,0};
|
paramlist_def_t CCsParamList = {GNB_CONFIG_STRING_COMPONENT_CARRIERS,NULL,0};
|
||||||
@@ -241,7 +250,7 @@ int RCconfig_NRRRC(MessageDef *msg_p, uint32_t i, gNB_RRC_INST *rrc) {
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (num_gnbs>0) {
|
if (num_gnbs>0) {
|
||||||
// Output a list of all gNBs.
|
// Output a list of all gNBs. ////////// Identification parameters
|
||||||
config_getlist( &GNBParamList,GNBParams,sizeof(GNBParams)/sizeof(paramdef_t),NULL);
|
config_getlist( &GNBParamList,GNBParams,sizeof(GNBParams)/sizeof(paramdef_t),NULL);
|
||||||
|
|
||||||
if (GNBParamList.paramarray[i][GNB_GNB_ID_IDX].uptr == NULL) {
|
if (GNBParamList.paramarray[i][GNB_GNB_ID_IDX].uptr == NULL) {
|
||||||
@@ -316,16 +325,28 @@ int RCconfig_NRRRC(MessageDef *msg_p, uint32_t i, gNB_RRC_INST *rrc) {
|
|||||||
// "Failed to parse gNB configuration file %s, gnb %d illegal tdd_config_s %d (should be 0-%d)!",
|
// "Failed to parse gNB configuration file %s, gnb %d illegal tdd_config_s %d (should be 0-%d)!",
|
||||||
// RC.config_file_name, i, tdd_config_s, TDD_Config__specialSubframePatterns_ssp8);
|
// RC.config_file_name, i, tdd_config_s, TDD_Config__specialSubframePatterns_ssp8);
|
||||||
|
|
||||||
if (!prefix_type){
|
if (!DL_prefix_type){
|
||||||
AssertFatal (0,"Failed to parse gNB configuration file %s, gnb %d define %s: NORMAL,EXTENDED!\n",
|
AssertFatal (0,"Failed to parse gNB configuration file %s, gnb %d define %s: NORMAL,EXTENDED!\n",
|
||||||
RC.config_file_name, i, GNB_CONFIG_STRING_PREFIX_TYPE);
|
RC.config_file_name, i, GNB_CONFIG_STRING_DL_PREFIX_TYPE);
|
||||||
}else if (strcmp(prefix_type, "NORMAL") == 0) {
|
}else if (strcmp(DL_prefix_type, "NORMAL") == 0) {
|
||||||
NRRRC_CONFIGURATION_REQ (msg_p).prefix_type[j] = NORMAL;
|
NRRRC_CONFIGURATION_REQ (msg_p).DL_prefix_type[j] = NORMAL;
|
||||||
}else if (strcmp(prefix_type, "EXTENDED") == 0) {
|
}else if (strcmp(DL_prefix_type, "EXTENDED") == 0) {
|
||||||
NRRRC_CONFIGURATION_REQ (msg_p).prefix_type[j] = EXTENDED;
|
NRRRC_CONFIGURATION_REQ (msg_p).DL_prefix_type[j] = EXTENDED;
|
||||||
}else {
|
}else {
|
||||||
AssertFatal (0,"Failed to parse gNB configuration file %s, gnb %d unknown value \"%s\" for prefix_type choice: NORMAL or EXTENDED !\n",
|
AssertFatal (0,"Failed to parse gNB configuration file %s, gnb %d unknown value \"%s\" for DL_prefix_type choice: NORMAL or EXTENDED !\n",
|
||||||
RC.config_file_name, i, prefix_type);
|
RC.config_file_name, i, DL_prefix_type);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!UL_prefix_type){
|
||||||
|
AssertFatal (0,"Failed to parse gNB configuration file %s, gnb %d define %s: NORMAL,EXTENDED!\n",
|
||||||
|
RC.config_file_name, i, GNB_CONFIG_STRING_UL_PREFIX_TYPE);
|
||||||
|
}else if (strcmp(UL_prefix_type, "NORMAL") == 0) {
|
||||||
|
NRRRC_CONFIGURATION_REQ (msg_p).UL_prefix_type[j] = NORMAL;
|
||||||
|
}else if (strcmp(UL_prefix_type, "EXTENDED") == 0) {
|
||||||
|
NRRRC_CONFIGURATION_REQ (msg_p).UL_prefix_type[j] = EXTENDED;
|
||||||
|
}else {
|
||||||
|
AssertFatal (0,"Failed to parse gNB configuration file %s, gnb %d unknown value \"%s\" for UL_prefix_type choice: NORMAL or EXTENDED !\n",
|
||||||
|
RC.config_file_name, i, UL_prefix_type);
|
||||||
}
|
}
|
||||||
|
|
||||||
NRRRC_CONFIGURATION_REQ (msg_p).eutra_band[j] = eutra_band;
|
NRRRC_CONFIGURATION_REQ (msg_p).eutra_band[j] = eutra_band;
|
||||||
@@ -388,11 +409,57 @@ int RCconfig_NRRRC(MessageDef *msg_p, uint32_t i, gNB_RRC_INST *rrc) {
|
|||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
//---------------------------NR--------Configuration--------------------------//
|
//---------------------------NR--------Configuration--------------------------//
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
/////////////////////////////////MIB///////////////////////////////
|
||||||
|
NRRRC_CONFIGURATION_REQ (msg_p).MIB_subCarrierSpacingCommon[j] = MIB_subCarrierSpacingCommon;
|
||||||
|
if ((MIB_subCarrierSpacingCommon !=15) && (MIB_subCarrierSpacingCommon !=30) && (MIB_subCarrierSpacingCommon !=60) && (MIB_subCarrierSpacingCommon !=120)){
|
||||||
|
AssertFatal (0,"Failed to parse gNB configuration file %s, gnb %d unknown value \"%d\" for MIB_subCarrierSpacingCommon choice: 15,30,60,120 !\n",
|
||||||
|
RC.config_file_name, i, MIB_subCarrierSpacingCommon);
|
||||||
|
}
|
||||||
|
|
||||||
|
NRRRC_CONFIGURATION_REQ (msg_p).MIB_dmrs_TypeA_Position[j] = MIB_dmrs_TypeA_Position;
|
||||||
|
if ((MIB_dmrs_TypeA_Position !=2) && (MIB_dmrs_TypeA_Position !=3)){
|
||||||
|
AssertFatal (0,"Failed to parse gNB configuration file %s, gnb %d unknown value \"%d\" for MIB_dmrs_TypeA_Position choice:2,3 !\n",
|
||||||
|
RC.config_file_name, i, MIB_dmrs_TypeA_Position);
|
||||||
|
}
|
||||||
|
|
||||||
|
NRRRC_CONFIGURATION_REQ (msg_p).pdcch_ConfigSIB1[j] = pdcch_ConfigSIB1;
|
||||||
|
if ((pdcch_ConfigSIB1 <0) || (pdcch_ConfigSIB1 > 255)){
|
||||||
|
AssertFatal (0,"Failed to parse gNB configuration file %s, gnb %d unknown value \"%d\" for pdcch_ConfigSIB1 choice: 0..3279165 !\n",
|
||||||
|
RC.config_file_name, i, pdcch_ConfigSIB1);
|
||||||
|
}
|
||||||
|
|
||||||
|
////////////////////////////////SIB1//////////////////////////////
|
||||||
|
|
||||||
|
if (strcmp(SIB1_frequencyOffsetSSB , "khz-5") == 0) {
|
||||||
|
NRRRC_CONFIGURATION_REQ (msg_p).SIB1_frequencyOffsetSSB[j] = -5;
|
||||||
|
}else if (strcmp(SIB1_frequencyOffsetSSB , "khz5") == 0) {
|
||||||
|
NRRRC_CONFIGURATION_REQ (msg_p).SIB1_frequencyOffsetSSB[j] = 5;
|
||||||
|
}else {
|
||||||
|
AssertFatal (0,"Failed to parse gNB configuration file %s, gnb %d unknown value \"%d\" for SIB1_frequencyOffsetSSB !\n",
|
||||||
|
RC.config_file_name, i, SIB1_frequencyOffsetSSB);
|
||||||
|
}
|
||||||
|
|
||||||
|
NRRRC_CONFIGURATION_REQ (msg_p).SIB1_ssb_PeriodicityServingCell[j] = SIB1_ssb_PeriodicityServingCell;
|
||||||
|
if ((SIB1_ssb_PeriodicityServingCell !=5) &&
|
||||||
|
(SIB1_ssb_PeriodicityServingCell !=10) &&
|
||||||
|
(SIB1_ssb_PeriodicityServingCell !=20) &&
|
||||||
|
(SIB1_ssb_PeriodicityServingCell !=40) &&
|
||||||
|
(SIB1_ssb_PeriodicityServingCell !=80) &&
|
||||||
|
(SIB1_ssb_PeriodicityServingCell !=160)&&){
|
||||||
|
AssertFatal (0,"Failed to parse gNB configuration file %s, gnb %d unknown value \"%d\" for SIB1_ssb_PeriodicityServingCell choice: 5,10,20,40,80,160 !\n",
|
||||||
|
RC.config_file_name, i, SIB1_ssb_PeriodicityServingCell);
|
||||||
|
}
|
||||||
|
|
||||||
|
NRRRC_CONFIGURATION_REQ (msg_p).SIB1_ss_PBCH_BlockPower[j] = SIB1_ss_PBCH_BlockPower;
|
||||||
|
if ((SIB1_ss_PBCH_BlockPower < -60) || (SIB1_ss_PBCH_BlockPower > 50)){
|
||||||
|
AssertFatal (0,"Failed to parse gNB configuration file %s, gnb %d unknown value \"%d\" for SIB1_ss_PBCH_BlockPower choice: -60..50 !\n",
|
||||||
|
RC.config_file_name, i, SIB1_ss_PBCH_BlockPower);
|
||||||
|
}
|
||||||
|
|
||||||
////////////////////////////////NR FrequencyInfoDL//////////////////////////////
|
////////////////////////////////NR FrequencyInfoDL//////////////////////////////
|
||||||
NRRRC_CONFIGURATION_REQ (msg_p).absoluteFrequencySSB[j] = absoluteFrequencySSB;
|
NRRRC_CONFIGURATION_REQ (msg_p).absoluteFrequencySSB[j] = absoluteFrequencySSB;
|
||||||
if ((absoluteFrequencySSB <0) || (absoluteFrequencySSB > 3279165)){
|
if ((absoluteFrequencySSB <0) || (absoluteFrequencySSB > 3279165)){
|
||||||
AssertFatal (0,"Failed to parse gNB configuration file %s, gnb %d unknown value \"%d\" for FreqBandIndicatorNR choice: 0..3279165 !\n",
|
AssertFatal (0,"Failed to parse gNB configuration file %s, gnb %d unknown value \"%d\" for absoluteFrequencySSB choice: 0..3279165 !\n",
|
||||||
RC.config_file_name, i, absoluteFrequencySSB);
|
RC.config_file_name, i, absoluteFrequencySSB);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -556,49 +623,50 @@ int RCconfig_NRRRC(MessageDef *msg_p, uint32_t i, gNB_RRC_INST *rrc) {
|
|||||||
RC.config_file_name, i, UL_locationAndBandwidth);
|
RC.config_file_name, i, UL_locationAndBandwidth);
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (ssb_periodicityServingCell) {
|
switch (ServingCellConfigCommon_ssb_periodicityServingCell) {
|
||||||
case 5:
|
case 5:
|
||||||
NRRRC_CONFIGURATION_REQ (msg_p).ssb_periodicityServingCell[j] = ServingCellConfigCommon__ssb_periodicityServingCell_ms5;
|
NRRRC_CONFIGURATION_REQ (msg_p).ServingCellConfigCommon_ssb_periodicityServingCell[j] = ServingCellConfigCommon__ssb_periodicityServingCell_ms5;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 10:
|
case 10:
|
||||||
NRRRC_CONFIGURATION_REQ (msg_p).ssb_periodicityServingCell[j] = ServingCellConfigCommon__ssb_periodicityServingCell_ms10;
|
NRRRC_CONFIGURATION_REQ (msg_p).ServingCellConfigCommon_ssb_periodicityServingCell[j] = ServingCellConfigCommon__ssb_periodicityServingCell_ms10;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 20:
|
case 20:
|
||||||
NRRRC_CONFIGURATION_REQ (msg_p).ssb_periodicityServingCell[j] = ServingCellConfigCommon__ssb_periodicityServingCell_ms20;
|
NRRRC_CONFIGURATION_REQ (msg_p).ServingCellConfigCommon_ssb_periodicityServingCell[j] = ServingCellConfigCommon__ssb_periodicityServingCell_ms20;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 40:
|
case 40:
|
||||||
NRRRC_CONFIGURATION_REQ (msg_p).ssb_periodicityServingCell[j] = ServingCellConfigCommon__ssb_periodicityServingCell_ms40;
|
NRRRC_CONFIGURATION_REQ (msg_p).ServingCellConfigCommon_ssb_periodicityServingCell[j] = ServingCellConfigCommon__ssb_periodicityServingCell_ms40;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 80:
|
case 80:
|
||||||
NRRRC_CONFIGURATION_REQ (msg_p).ssb_periodicityServingCell[j] = ServingCellConfigCommon__ssb_periodicityServingCell_ms80;
|
NRRRC_CONFIGURATION_REQ (msg_p).ServingCellConfigCommon_ssb_periodicityServingCell[j] = ServingCellConfigCommon__ssb_periodicityServingCell_ms80;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 160:
|
case 160:
|
||||||
NRRRC_CONFIGURATION_REQ (msg_p).ssb_periodicityServingCell[j] = ServingCellConfigCommon__ssb_periodicityServingCell_ms160;
|
NRRRC_CONFIGURATION_REQ (msg_p).ServingCellConfigCommon_ssb_periodicityServingCell[j] = ServingCellConfigCommon__ssb_periodicityServingCell_ms160;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
AssertFatal (0,"Failed to parse gNB configuration file %s, gnb %d unknown value \"%d\" for ssb_periodicityServingCell choice: -6,0,6 !\n",
|
AssertFatal (0,"Failed to parse gNB configuration file %s, gnb %d unknown value \"%d\" for ServingCellConfigCommon_ssb_periodicityServingCell choice: -6,0,6 !\n",
|
||||||
RC.config_file_name, i, ssb_periodicityServingCell);
|
RC.config_file_name, i, ServingCellConfigCommon_ssb_periodicityServingCell);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (dmrs_TypeA_Position) {
|
|
||||||
|
switch (ServingCellConfigCommon_dmrs_TypeA_Position) {
|
||||||
case 2:
|
case 2:
|
||||||
NRRRC_CONFIGURATION_REQ (msg_p).dmrs_TypeA_Position[j] = ServingCellConfigCommon__dmrs_TypeA_Position_pos2;
|
NRRRC_CONFIGURATION_REQ (msg_p).ServingCellConfigCommon_dmrs_TypeA_Position[j] = ServingCellConfigCommon__dmrs_TypeA_Position_pos2;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 3:
|
case 3:
|
||||||
NRRRC_CONFIGURATION_REQ (msg_p).dmrs_TypeA_Position[j] = ServingCellConfigCommon__dmrs_TypeA_Position_pos3;
|
NRRRC_CONFIGURATION_REQ (msg_p).ServingCellConfigCommon_dmrs_TypeA_Position[j] = ServingCellConfigCommon__dmrs_TypeA_Position_pos3;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
AssertFatal (0,"Failed to parse gNB configuration file %s, gnb %d unknown value \"%d\" for dmrs_TypeA_Position choice: -6,0,6 !\n",
|
AssertFatal (0,"Failed to parse gNB configuration file %s, gnb %d unknown value \"%d\" for ServingCellConfigCommon_dmrs_TypeA_Position choice: -6,0,6 !\n",
|
||||||
RC.config_file_name, i, dmrs_TypeA_Position);
|
RC.config_file_name, i, ServingCellConfigCommon_dmrs_TypeA_Position);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -616,10 +684,10 @@ int RCconfig_NRRRC(MessageDef *msg_p, uint32_t i, gNB_RRC_INST *rrc) {
|
|||||||
RC.config_file_name, i, NIA_SubcarrierSpacing);
|
RC.config_file_name, i, NIA_SubcarrierSpacing);
|
||||||
}
|
}
|
||||||
|
|
||||||
NRRRC_CONFIGURATION_REQ (msg_p).ss_PBCH_BlockPower[j] = ss_PBCH_BlockPower;
|
NRRRC_CONFIGURATION_REQ (msg_p).ServingCellConfigCommon_ss_PBCH_BlockPower[j] = ServingCellConfigCommon_ss_PBCH_BlockPower;
|
||||||
if ((ss_PBCH_BlockPower < -60) || (ss_PBCH_BlockPower > 50)){
|
if ((ServingCellConfigCommon_ss_PBCH_BlockPower < -60) || (ServingCellConfigCommon_ss_PBCH_BlockPower > 50)){
|
||||||
AssertFatal (0,"Failed to parse gNB configuration file %s, gnb %d unknown value \"%d\" for ss_PBCH_BlockPower choice: 0..11 !\n",
|
AssertFatal (0,"Failed to parse gNB configuration file %s, gnb %d unknown value \"%d\" for ServingCellConfigCommon_ss_PBCH_BlockPower choice: 0..11 !\n",
|
||||||
RC.config_file_name, i, ss_PBCH_BlockPower);
|
RC.config_file_name, i, ServingCellConfigCommon_ss_PBCH_BlockPower);
|
||||||
}
|
}
|
||||||
|
|
||||||
/////////////////////////////////NR TDD-UL-DL-ConfigCommon///////////////////////////
|
/////////////////////////////////NR TDD-UL-DL-ConfigCommon///////////////////////////
|
||||||
|
|||||||
+283
-26
@@ -187,7 +187,7 @@ typedef enum {
|
|||||||
#define GNBPARAMS_DESC {\
|
#define GNBPARAMS_DESC {\
|
||||||
{GNB_CONFIG_STRING_GNB_ID, NULL, 0, uptr:NULL, defintval:0, TYPE_UINT, 0}, \
|
{GNB_CONFIG_STRING_GNB_ID, NULL, 0, uptr:NULL, defintval:0, TYPE_UINT, 0}, \
|
||||||
{GNB_CONFIG_STRING_CELL_TYPE, NULL, 0, strptr:NULL, defstrval:"CELL_MACRO_GNB", TYPE_STRING, 0}, \
|
{GNB_CONFIG_STRING_CELL_TYPE, NULL, 0, strptr:NULL, defstrval:"CELL_MACRO_GNB", TYPE_STRING, 0}, \
|
||||||
{GNB_CONFIG_STRING_GNB_NAME, NULL, 0, strptr:NULL, defstrval:"OAIeNodeB", TYPE_STRING, 0}, \
|
{GNB_CONFIG_STRING_GNB_NAME, NULL, 0, strptr:NULL, defstrval:"OAIgNodeB", TYPE_STRING, 0}, \
|
||||||
{GNB_CONFIG_STRING_TRACKING_AREA_CODE, NULL, 0, strptr:NULL, defstrval:"0", TYPE_STRING, 0}, \
|
{GNB_CONFIG_STRING_TRACKING_AREA_CODE, NULL, 0, strptr:NULL, defstrval:"0", TYPE_STRING, 0}, \
|
||||||
{GNB_CONFIG_STRING_MOBILE_COUNTRY_CODE, NULL, 0, strptr:NULL, defstrval:"0", TYPE_STRING, 0}, \
|
{GNB_CONFIG_STRING_MOBILE_COUNTRY_CODE, NULL, 0, strptr:NULL, defstrval:"0", TYPE_STRING, 0}, \
|
||||||
{GNB_CONFIG_STRING_MOBILE_NETWORK_CODE, NULL, 0, strptr:NULL, defstrval:"0", TYPE_STRING, 0}, \
|
{GNB_CONFIG_STRING_MOBILE_NETWORK_CODE, NULL, 0, strptr:NULL, defstrval:"0", TYPE_STRING, 0}, \
|
||||||
@@ -227,6 +227,15 @@ typedef enum {
|
|||||||
#define GNB_CONFIG_STRING_RX_GAIN "rx_gain"
|
#define GNB_CONFIG_STRING_RX_GAIN "rx_gain"
|
||||||
|
|
||||||
///NR
|
///NR
|
||||||
|
//MIB
|
||||||
|
#define GNB_CONFIG_STRING_MIB_SUBCARRIERSPACINGCOMMON "MIB_subCarrierSpacingCommon"
|
||||||
|
#define GNB_CONFIG_STRING_MIB_DMRS_TYPEA_POSITION "MIB_dmrs_TypeA_Position"
|
||||||
|
#define GNB_CONFIG_STRING_PDCCH_CONFIGSIB1 "pdcch_ConfigSIB1"
|
||||||
|
|
||||||
|
//SIB1
|
||||||
|
#define GNB_CONFIG_STRING_SIB1_FREQUENCYOFFSETSSB "SIB1_frequencyOffsetSSB"
|
||||||
|
#define GNB_CONFIG_STRING_SIB1_SSB_PERIODICITYSERVINGCELL "SIB1_ssb_PeriodicityServingCell"
|
||||||
|
#define GNB_CONFIG_STRING_SIB1_SS_PBCH_BLOCKPOWER "SIB1_ss_PBCH_BlockPower"
|
||||||
//NR FREQUENCYINFODL
|
//NR FREQUENCYINFODL
|
||||||
#define GNB_CONFIG_STRING_ABSOLUTEFREQUENCYSSB "absoluteFrequencySSB"
|
#define GNB_CONFIG_STRING_ABSOLUTEFREQUENCYSSB "absoluteFrequencySSB"
|
||||||
#define GNB_CONFIG_STRING_SSB_SUBCARRIEROFFSET "SubcarrierSpacing"
|
#define GNB_CONFIG_STRING_SSB_SUBCARRIEROFFSET "SubcarrierSpacing"
|
||||||
@@ -241,7 +250,6 @@ typedef enum {
|
|||||||
|
|
||||||
// NR BWP-DOWNLINKCOMMON
|
// NR BWP-DOWNLINKCOMMON
|
||||||
#define GNB_CONFIG_STRING_DL_LOCATIONANDBANDWIDTH "DL_locationAndBandwidth"
|
#define GNB_CONFIG_STRING_DL_LOCATIONANDBANDWIDTH "DL_locationAndBandwidth"
|
||||||
///#define GNB_CONFIG_STRING_DL_PREFIX_TYPE;
|
|
||||||
|
|
||||||
//NR FREQUENCYINFOUL
|
//NR FREQUENCYINFOUL
|
||||||
#define GNB_CONFIG_STRING_UL_FREQBANDINDICATORNR "UL_FreqBandIndicatorNR"
|
#define GNB_CONFIG_STRING_UL_FREQBANDINDICATORNR "UL_FreqBandIndicatorNR"
|
||||||
@@ -257,13 +265,11 @@ typedef enum {
|
|||||||
|
|
||||||
// NR BWP-UPLINKCOMMON
|
// NR BWP-UPLINKCOMMON
|
||||||
#define GNB_CONFIG_STRING_UL_LOCATIONANDBANDWIDTH "UL_locationAndBandwidth"
|
#define GNB_CONFIG_STRING_UL_LOCATIONANDBANDWIDTH "UL_locationAndBandwidth"
|
||||||
//NR_PREFIX_TYPE_T UL_PREFIX_TYPE[MAX_NUM_CCS];
|
|
||||||
|
|
||||||
|
#define GNB_CONFIG_STRING_SERVINGCELLCONFIGCOMMON_SSB_PERIODICITYSERVINGCELL "ServingCellConfigCommon_ssb_periodicityServingCell"
|
||||||
#define GNB_CONFIG_STRING_SSB_PERIODICITYSERVINGCELL "ssb_periodicityServingCell"
|
#define GNB_CONFIG_STRING_SERVINGCELLCONFIGCOMMON_DMRS_TYPEA_POSITION "ServingCellConfigCommon_dmrs_TypeA_Position"
|
||||||
#define GNB_CONFIG_STRING_DMRS_TYPEA_POSITION "dmrs_TypeA_Position"
|
|
||||||
#define GNB_CONFIG_STRING_NIA_SUBCARRIERSPACING "NIA_SubcarrierSpacing"
|
#define GNB_CONFIG_STRING_NIA_SUBCARRIERSPACING "NIA_SubcarrierSpacing"
|
||||||
#define GNB_CONFIG_STRING_SS_PBCH_BLOCKPOWER "ss_PBCH_BlockPower"
|
#define GNB_CONFIG_STRING_SERVINGCELLCONFIGCOMMON_SS_PBCH_BLOCKPOWER "ServingCellConfigCommon_ss_PBCH_BlockPower"
|
||||||
|
|
||||||
|
|
||||||
//NR TDD-UL-DL-CONFIGCOMMON
|
//NR TDD-UL-DL-CONFIGCOMMON
|
||||||
@@ -381,24 +387,275 @@ typedef enum {
|
|||||||
#define GNB_CONFIG_STRING_UE_SPECIFIC__DCI_FORMATS "ue_Specific__dci_Formats"
|
#define GNB_CONFIG_STRING_UE_SPECIFIC__DCI_FORMATS "ue_Specific__dci_Formats"
|
||||||
|
|
||||||
|
|
||||||
//PDCCH-CONFIGCOMMON
|
/*---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/
|
||||||
|
/* component carriers configuration parameters */
|
||||||
//CONTROLRESOURCESET
|
/* optname helpstr paramflags XXXptr defXXXval type numelt checked_param */
|
||||||
#define GNB_CONFIG_STRING_CONTROLRESOURCESETID = 0;
|
/*---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*/
|
||||||
#define GNB_CONFIG_STRING_FREQUENCYDOMAINRESOURCES = 0;
|
#define NRCCPARAMS_DESC { \
|
||||||
#define GNB_CONFIG_STRING_CONTROLRESOURCESET_DURATION = 0;
|
{GNB_CONFIG_STRING_FRAME_TYPE, NULL, 0, strptr:&frame_type, defstrval:"FDD", TYPE_STRING, 0}, \
|
||||||
#define GNB_CONFIG_STRING_PRECODERGRANULARITY = 0; //CORRESPONDS TO L1 PARAMETER 'CORESET-PRECODER-GRANUALITY'
|
{GNB_CONFIG_STRING_DL_prefix_type, NULL, 0, strptr:&DL_prefix_type, defstrval:"NORMAL", TYPE_STRING, 0}, \
|
||||||
#define GNB_CONFIG_STRING_TCI_PRESENTINDCI = NULL;
|
{GNB_CONFIG_STRING_UL_prefix_type, NULL, 0, strptr:&UL_prefix_type, defstrval:"NORMAL", TYPE_STRING, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_EUTRA_BAND, NULL, 0, iptr:&eutra_band, defintval:7, TYPE_UINT, 0}, \
|
||||||
//SEARCHSPACE
|
{GNB_CONFIG_STRING_DOWNLINK_FREQUENCY, NULL, 0, i64ptr:(int64_t *)&downlink_frequency, defint64val:2680000000, TYPE_UINT64, 0}, \
|
||||||
#define GNB_CONFIG_STRING_SEARCHSPACEID = 0;
|
{GNB_CONFIG_STRING_UPLINK_FREQUENCY_OFFSET, NULL, 0, iptr:&uplink_frequency_offset, defintval:-120000000, TYPE_INT, 0}, \
|
||||||
#define GNB_CONFIG_STRING_DCI_FORMAT2_3_MONITORINGPERIODICITY = 0;
|
{GNB_CONFIG_STRING_NID_CELL, NULL, 0, iptr:&Nid_cell, defintval:0, TYPE_UINT, 0}, \
|
||||||
#define GNB_CONFIG_STRING_DCI_FORMAT2_3_NROFPDCCH_CANDIDATES = 0;
|
{GNB_CONFIG_STRING_N_RB_DL, NULL, 0, iptr:&N_RB_DL, defintval:25, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_NB_ANT_PORTS, NULL, 0, iptr:&nb_antenna_ports, defintval:1, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_MIB_SUBCARRIERSPACINGCOMMON, NULL, 0, iptr:&MIB_subCarrierSpacingCommon, defintval:0, TYPE_UINT, 0}, \
|
||||||
// NR SYNCHRONIZATION SIGNAL BLOCK
|
{GNB_CONFIG_STRING_MIB_DMRS_TYPEA_POSITION, NULL, 0, iptr:&MIB_dmrs_TypeA_Position, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_PDCCH_CONFIGSIB1, NULL, 0, iptr:&pdcch_ConfigSIB1, defintval:0, TYPE_UINT, 0}, \
|
||||||
#define GNB_CONFIG_STRING_SSB_PERIODICITYSERVINGCELL = 0;
|
{GNB_CONFIG_STRING_SIB1_FREQUENCYOFFSETSSB, NULL, 0, iptr:&SIB1_frequencyOffsetSSB, defintval:0, TYPE_UINT, 0}, \
|
||||||
#define GNB_CONFIG_STRING_SS_PBCH_BLOCKPOWER = 0;
|
{GNB_CONFIG_STRING_SIB1_SSB_PERIODICITYSERVINGCELL, NULL, 0, iptr:&SIB1_ssb_PeriodicityServingCell, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_SIB1_SS_PBCH_BLOCKPOWER, NULL, 0, iptr:&SIB1_ss_PBCH_BlockPower, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_ABSOLUTEFREQUENCYSSB, NULL, 0, iptr:&absoluteFrequencySSB, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_SSB_SUBCARRIEROFFSET, NULL, 0, iptr:&ssb_SubcarrierOffset, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_DL_FREQBANDINDICATORNR, NULL, 0, iptr:&DL_FreqBandIndicatorNR, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_DL_ABSOLUTEFREQUENCYPOINTA, NULL, 0, iptr:&DL_absoluteFrequencyPointA, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_DL_OFFSETTOCARRIER, NULL, 0, iptr:&DL_offsetToCarrier, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_DL_SUBCARRIERSPACING, NULL, 0, iptr:&DL_SubcarrierSpacing, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_DL_SCS_SPECIFICCARRIER_K0, NULL, 0, iptr:&DL_SCS_SpecificCarrier_k0, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_DL_CARRIERBANDWIDTH, NULL, 0, iptr:&DL_carrierBandwidth, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_DL_LOCATIONANDBANDWIDTH, NULL, 0, iptr:&DL_locationAndBandwidth, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_UL_FREQBANDINDICATORNR, NULL, 0, iptr:&UL_FreqBandIndicatorNR, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_UL_ABSOLUTEFREQUENCYPOINTA, NULL, 0, iptr:&UL_absoluteFrequencyPointA, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_FREQUENCYINFOUL_P_MAX, NULL, 0, iptr:&FrequencyInfoUL_p_Max, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_FREQUENCYSHIFT7P5KHZ, NULL, 0, iptr:&frequencyShift7p5khz, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_UL_OFFSETTOCARRIER, NULL, 0, iptr:&UL_offsetToCarrier, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_UL_SUBCARRIERSPACING, NULL, 0, iptr:&UL_SubcarrierSpacing, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_UL_SCS_SPECIFICCARRIER_K0, NULL, 0, iptr:&UL_SCS_SpecificCarrier_k0, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_UL_CARRIERBANDWIDTH, NULL, 0, iptr:&UL_carrierBandwidth, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_UL_LOCATIONANDBANDWIDTH, NULL, 0, iptr:&UL_locationAndBandwidth, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_SERVINGCELLCONFIGCOMMON_SSB_PERIODICITYSERVINGCELL, NULL, 0, iptr:&ServingCellConfigCommon_ssb_periodicityServingCell, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_SERVINGCELLCONFIGCOMMON_DMRS_TYPEA_POSITION, NULL, 0, iptr:&ServingCellConfigCommon_dmrs_TypeA_Position, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_NIA_SUBCARRIERSPACING, NULL, 0, iptr:&NIA_SubcarrierSpacing, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_SERVINGCELLCONFIGCOMMON_SS_PBCH_BLOCKPOWER, NULL, 0, iptr:&ServingCellConfigCommon_ss_PBCH_BlockPower, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_REFERENCESUBCARRIERSPACING, NULL, 0, iptr:&referenceSubcarrierSpacing, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_DL_UL_TRANSMISSIONPERIODICITY, NULL, 0, iptr:&dl_UL_TransmissionPeriodicity, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_NROFDOWNLINKSLOTS, NULL, 0, iptr:&nrofDownlinkSlots, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_NROFDOWNLINKSYMBOLS, NULL, 0, iptr:&nrofDownlinkSymbols, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_NROFUPLINKSLOTS, NULL, 0, iptr:&nrofUplinkSlots, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_NROFUPLINKSYMBOLS, NULL, 0, iptr:&nrofUplinkSymbols, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_RACH_TOTALNUMBEROFRA_PREAMBLES, NULL, 0, iptr:&rach_totalNumberOfRA_Preambles, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_RACH_SSB_PERRACH_OCCASIONANDCB_PREAMBLESPERSSB_CHOICE, NULL, 0, iptr:&rach_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_choice, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_RACH_SSB_PERRACH_OCCASIONANDCB_PREAMBLESPERSSB_ONEEIGHTH, NULL, 0, iptr:&rach_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_oneEighth, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_RACH_SSB_PERRACH_OCCASIONANDCB_PREAMBLESPERSSB_ONEFOURTH, NULL, 0, iptr:&rach_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_oneFourth, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_RACH_SSB_PERRACH_OCCASIONANDCB_PREAMBLESPERSSB_ONEHALF, NULL, 0, iptr:&rach_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_oneHalf, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_RACH_SSB_PERRACH_OCCASIONANDCB_PREAMBLESPERSSB_ONE, NULL, 0, iptr:&rach_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_one, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_RACH_SSB_PERRACH_OCCASIONANDCB_PREAMBLESPERSSB_TWO, NULL, 0, iptr:&rach_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_two, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_RACH_SSB_PERRACH_OCCASIONANDCB_PREAMBLESPERSSB_FOUR, NULL, 0, iptr:&rach_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_four, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_RACH_SSB_PERRACH_OCCASIONANDCB_PREAMBLESPERSSB_EIGHT, NULL, 0, iptr:&rach_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_eight, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_RACH_SSB_PERRACH_OCCASIONANDCB_PREAMBLESPERSSB_SIXTEEN, NULL, 0, iptr:&rach_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_sixteen, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_RACH_GROUPBCONFIGURED, NULL, 0, iptr:&rach_groupBconfigured, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_RACH_RA_MSG3SIZEGROUPA, NULL, 0, iptr:&rach_ra_Msg3SizeGroupA, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_RACH_MESSAGEPOWEROFFSETGROUPB, NULL, 0, iptr:&rach_messagePowerOffsetGroupB, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_RACH_NUMBEROFRA_PREAMBLESGROUPA, NULL, 0, iptr:&rach_numberOfRA_PreamblesGroupA, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_RACH_RA_CONTENTIONRESOLUTIONTIMER, NULL, 0, iptr:&rach_ra_ContentionResolutionTimer, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_RSRP_THRESHOLDSSB, NULL, 0, iptr:&rsrp_ThresholdSSB, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_RSRP_THRESHOLDSSB_SUL, NULL, 0, iptr:&rsrp_ThresholdSSB_SUL, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_PRACH_ROOTSEQUENCEINDEX_CHOICE, NULL, 0, iptr:&prach_RootSequenceIndex_choice, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_PRACH_ROOTSEQUENCEINDEX_L839, NULL, 0, iptr:&prach_RootSequenceIndex_l839, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_PRACH_ROOTSEQUENCEINDEX_L139, NULL, 0, iptr:&prach_RootSequenceIndex_l139, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_PRACH_MSG1_SUBCARRIERSPACING, NULL, 0, iptr:&prach_msg1_SubcarrierSpacing, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_RESTRICTEDSETCONFIG, NULL, 0, iptr:&restrictedSetConfig, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_MSG3_TRANSFORMPRECODING, NULL, 0, iptr:&msg3_transformPrecoding, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_PRACH_CONFIGURATIONINDEX, NULL, 0, iptr:&prach_ConfigurationIndex, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_PRACH_MSG1_FDM, NULL, 0, iptr:&prach_msg1_FDM, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_PRACH_MSG1_FREQUENCYSTART, NULL, 0, iptr:&prach_msg1_FrequencyStart, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_ZEROCORRELATIONZONECONFIG, NULL, 0, iptr:&zeroCorrelationZoneConfig, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_PREAMBLERECEIVEDTARGETPOWER, NULL, 0, iptr:&preambleReceivedTargetPower, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_PREAMBLETRANSMAX, NULL, 0, iptr:&preambleTransMax, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_POWERRAMPINGSTEP, NULL, 0, iptr:&powerRampingStep, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_RA_RESPONSEWINDOW, NULL, 0, iptr:&ra_ResponseWindow, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_GROUPHOPPINGENABLEDTRANSFORMPRECODING, NULL, 0, iptr:&groupHoppingEnabledTransformPrecoding, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_MSG3_DELTAPREAMBLE, NULL, 0, iptr:&msg3_DeltaPreamble, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_P0_NOMINALWITHGRANT, NULL, 0, iptr:&p0_NominalWithGrant, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_PUSCH_TIMEDOMAINRESOURCEALLOCATION_K2, NULL, 0, iptr:&PUSCH_TimeDomainResourceAllocation_k2, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_PUSCH_TIMEDOMAINRESOURCEALLOCATION_MAPPINGTYPE, NULL, 0, iptr:&PUSCH_TimeDomainResourceAllocation_mappingType, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_PUCCH_GROUPHOPPING, NULL, 0, iptr:&pucch_GroupHopping, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_P0_NOMINAL, NULL, 0, iptr:&p0_nominal, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_PDSCH_TIMEDOMAINRESOURCEALLOCATION_K0, NULL, 0, iptr:&PDSCH_TimeDomainResourceAllocation_k0, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_PDSCH_TIMEDOMAINRESOURCEALLOCATION_MAPPINGTYPE, NULL, 0, iptr:&PDSCH_TimeDomainResourceAllocation_mappingType, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_RATEMATCHPATTERNID, NULL, 0, iptr:&rateMatchPatternId, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_RATEMATCHPATTERN_PATTERNTYPE, NULL, 0, iptr:&RateMatchPattern_patternType, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_SYMBOLSINRESOURCEBLOCK, NULL, 0, iptr:&symbolsInResourceBlock, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_PERIODICITYANDPATTERN, NULL, 0, iptr:&periodicityAndPattern, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_RATEMATCHPATTERN_CONTROLRESOURCESET, NULL, 0, iptr:&RateMatchPattern_controlResourceSet, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_RATEMATCHPATTERN_SUBCARRIERSPACING, NULL, 0, iptr:&RateMatchPattern_subcarrierSpacing, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_RATEMATCHPATTERN_MODE, NULL, 0, iptr:&RateMatchPattern_mode, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_SEARCHSPACESIB1, NULL, 0, iptr:&searchSpaceSIB1, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_SEARCHSPACEOTHERSYSTEMINFORMATION, NULL, 0, iptr:&searchSpaceOtherSystemInformation, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_PAGINGSEARCHSPACE, NULL, 0, iptr:&pagingSearchSpace, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_RA_SEARCHSPACE, NULL, 0, iptr:&ra_SearchSpace, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_RACH_RA_CONTROLRESOURCESET, NULL, 0, iptr:&rach_ra_ControlResourceSet, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_PDCCH_COMMON_CONTROLRESOURCESETID, NULL, 0, iptr:&PDCCH_common_controlResourceSetId, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_PDCCH_COMMON_CONTROLRESOURCESET_DURATION, NULL, 0, iptr:&PDCCH_common_ControlResourceSet_duration, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_PDCCH_CCE_REG_MAPPINGTYPE, NULL, 0, iptr:&PDCCH_cce_REG_MappingType, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_PDCCH_REG_BUNDLESIZE, NULL, 0, iptr:&PDCCH_reg_BundleSize, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_PDCCH_INTERLEAVERSIZE, NULL, 0, iptr:&PDCCH_interleaverSize, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_PDCCH_SHIFTINDEX, NULL, 0, iptr:&PDCCH_shiftIndex, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_PDCCH_PRECODERGRANULARITY, NULL, 0, iptr:&PDCCH_precoderGranularity, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_TCI_PRESENTINDCI, NULL, 0, iptr:&tci_PresentInDCI, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_SEARCHSPACEID, NULL, 0, iptr:&SearchSpaceId, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_COMMONSEARCHSPACES_CONTROLRESOURCESETID, NULL, 0, iptr:&commonSearchSpaces_controlResourceSetId, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_SEARCHSPACE_MONITORINGSLOTPERIODICITYANDOFFSET_CHOICE, NULL, 0, iptr:&SearchSpace_monitoringSlotPeriodicityAndOffset_choice, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_SEARCHSPACE_MONITORINGSLOTPERIODICITYANDOFFSET_SL1, NULL, 0, iptr:&SearchSpace_monitoringSlotPeriodicityAndOffset_sl1, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_SEARCHSPACE_MONITORINGSLOTPERIODICITYANDOFFSET_SL2, NULL, 0, iptr:&SearchSpace_monitoringSlotPeriodicityAndOffset_sl2, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_SEARCHSPACE_MONITORINGSLOTPERIODICITYANDOFFSET_SL4, NULL, 0, iptr:&SearchSpace_monitoringSlotPeriodicityAndOffset_sl4, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_SEARCHSPACE_MONITORINGSLOTPERIODICITYANDOFFSET_SL5, NULL, 0, iptr:&SearchSpace_monitoringSlotPeriodicityAndOffset_sl5, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_SEARCHSPACE_MONITORINGSLOTPERIODICITYANDOFFSET_SL8, NULL, 0, iptr:&SearchSpace_monitoringSlotPeriodicityAndOffset_sl8, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_SEARCHSPACE_MONITORINGSLOTPERIODICITYANDOFFSET_SL10, NULL, 0, iptr:&SearchSpace_monitoringSlotPeriodicityAndOffset_sl10, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_SEARCHSPACE_MONITORINGSLOTPERIODICITYANDOFFSET_SL16, NULL, 0, iptr:&SearchSpace_monitoringSlotPeriodicityAndOffset_sl16, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_SEARCHSPACE_MONITORINGSLOTPERIODICITYANDOFFSET_SL20, NULL, 0, iptr:&SearchSpace_monitoringSlotPeriodicityAndOffset_sl20, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_SEARCHSPACE_NROFCANDIDATES_AGGREGATIONLEVEL1, NULL, 0, iptr:&SearchSpace_nrofCandidates_aggregationLevel1, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_SEARCHSPACE_NROFCANDIDATES_AGGREGATIONLEVEL2, NULL, 0, iptr:&SearchSpace_nrofCandidates_aggregationLevel2, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_SEARCHSPACE_NROFCANDIDATES_AGGREGATIONLEVEL4, NULL, 0, iptr:&SearchSpace_nrofCandidates_aggregationLevel4, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_SEARCHSPACE_NROFCANDIDATES_AGGREGATIONLEVEL8, NULL, 0, iptr:&SearchSpace_nrofCandidates_aggregationLevel8, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_SEARCHSPACE_NROFCANDIDATES_AGGREGATIONLEVEL16, NULL, 0, iptr:&SearchSpace_nrofCandidates_aggregationLevel16, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_SEARCHSPACE_SEARCHSPACETYPE, NULL, 0, iptr:&SearchSpace_searchSpaceType, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_COMMON_DCI_FORMAT2_0_NROFCANDIDATES_SFI_AGGREGATIONLEVEL1, NULL, 0, iptr:&Common_dci_Format2_0_nrofCandidates_SFI_aggregationLevel1, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_COMMON_DCI_FORMAT2_0_NROFCANDIDATES_SFI_AGGREGATIONLEVEL2, NULL, 0, iptr:&Common_dci_Format2_0_nrofCandidates_SFI_aggregationLevel2, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_COMMON_DCI_FORMAT2_0_NROFCANDIDATES_SFI_AGGREGATIONLEVEL4, NULL, 0, iptr:&Common_dci_Format2_0_nrofCandidates_SFI_aggregationLevel4, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_COMMON_DCI_FORMAT2_0_NROFCANDIDATES_SFI_AGGREGATIONLEVEL8, NULL, 0, iptr:&Common_dci_Format2_0_nrofCandidates_SFI_aggregationLevel8, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_COMMON_DCI_FORMAT2_0_NROFCANDIDATES_SFI_AGGREGATIONLEVEL16, NULL, 0, iptr:&Common_dci_Format2_0_nrofCandidates_SFI_aggregationLevel16, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_COMMON_DCI_FORMAT2_3_MONITORINGPERIODICITY, NULL, 0, iptr:&Common_dci_Format2_3_monitoringPeriodicity, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_COMMON_DCI_FORMAT2_3_NROFPDCCH_CANDIDATES, NULL, 0, iptr:&Common_dci_Format2_3_nrofPDCCH_Candidates, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
{GNB_CONFIG_STRING_UE_SPECIFIC__DCI_FORMATS, NULL, 0, iptr:&ue_Specific__dci_Formats, defintval:0, TYPE_UINT, 0}, \
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* component carries configuration parameters name */
|
||||||
|
#define ENB_CONFIG_FRAME_TYPE_IDX 0
|
||||||
|
#define ENB_CONFIG_DL_PREFIX_TYPE_IDX 1
|
||||||
|
#define ENB_CONFIG_UL_PREFIX_TYPE_IDX 1
|
||||||
|
#define ENB_CONFIG_EUTRA_BAND_IDX 2
|
||||||
|
#define ENB_CONFIG_DOWNLINK_FREQUENCY_IDX 3
|
||||||
|
#define ENB_CONFIG_UPLINK_FREQUENCY_OFFSET_IDX 4
|
||||||
|
#define ENB_CONFIG_NID_CELL_IDX 5
|
||||||
|
#define ENB_CONFIG_N_RB_DL_IDX 6
|
||||||
|
#define GNB_CONFIG_NB_ANT_PORTS_IDX
|
||||||
|
#define GNB_CONFIG_NB_ANT_TX_IDX
|
||||||
|
#define GNB_CONFIG_NB_ANT_RX_IDX
|
||||||
|
#define GNB_CONFIG_TX_GAIN_IDX
|
||||||
|
#define GNB_CONFIG_RX_GAIN_IDX
|
||||||
|
#define GNB_CONFIG_MIB_SUBCARRIERSPACINGCOMMON_IDX
|
||||||
|
#define GNB_CONFIG_MIB_DMRS_TYPEA_POSITION_IDX
|
||||||
|
#define GNB_CONFIG_PDCCH_CONFIGSIB1_IDX
|
||||||
|
#define GNB_CONFIG_SIB1_FREQUENCYOFFSETSSB_IDX
|
||||||
|
#define GNB_CONFIG_SIB1_SSB_PERIODICITYSERVINGCELL_IDX
|
||||||
|
#define GNB_CONFIG_SIB1_SS_PBCH_BLOCKPOWER_IDX
|
||||||
|
#define GNB_CONFIG_ABSOLUTEFREQUENCYSSB_IDX
|
||||||
|
#define GNB_CONFIG_SSB_SUBCARRIEROFFSET_IDX
|
||||||
|
#define GNB_CONFIG_DL_FREQBANDINDICATORNR_IDX
|
||||||
|
#define GNB_CONFIG_DL_ABSOLUTEFREQUENCYPOINTA_IDX
|
||||||
|
#define GNB_CONFIG_DL_OFFSETTOCARRIER_IDX
|
||||||
|
#define GNB_CONFIG_DL_SUBCARRIERSPACING_IDX
|
||||||
|
#define GNB_CONFIG_DL_SCS_SPECIFICCARRIER_K0_IDX
|
||||||
|
#define GNB_CONFIG_DL_CARRIERBANDWIDTH_IDX
|
||||||
|
#define GNB_CONFIG_DL_LOCATIONANDBANDWIDTH_IDX
|
||||||
|
#define GNB_CONFIG_UL_FREQBANDINDICATORNR_IDX
|
||||||
|
#define GNB_CONFIG_UL_ABSOLUTEFREQUENCYPOINTA_IDX
|
||||||
|
#define GNB_CONFIG_FREQUENCYINFOUL_P_MAX_IDX
|
||||||
|
#define GNB_CONFIG_FREQUENCYSHIFT7P5KHZ_IDX
|
||||||
|
#define GNB_CONFIG_UL_OFFSETTOCARRIER_IDX
|
||||||
|
#define GNB_CONFIG_UL_SUBCARRIERSPACING_IDX
|
||||||
|
#define GNB_CONFIG_UL_SCS_SPECIFICCARRIER_K0_IDX
|
||||||
|
#define GNB_CONFIG_UL_CARRIERBANDWIDTH_IDX
|
||||||
|
#define GNB_CONFIG_UL_LOCATIONANDBANDWIDTH_IDX
|
||||||
|
#define GNB_CONFIG_SUBCARRIERSPACINGCOMMON_IDX
|
||||||
|
#define GNB_CONFIG_PDCCH_CONFIGSIB1_IDX
|
||||||
|
#define GNB_CONFIG_FREQUENCYOFFSETSSB_IDX
|
||||||
|
#define GNB_CONFIG_SERVINGCELLCONFIGCOMMON_SSB_PERIODICITYSERVINGCELL_IDX
|
||||||
|
#define GNB_CONFIG_SERVINGCELLCONFIGCOMMON_DMRS_TYPEA_POSITION_IDX
|
||||||
|
#define GNB_CONFIG_NIA_SUBCARRIERSPACING_IDX
|
||||||
|
#define GNB_CONFIG_SERVINGCELLCONFIGCOMMON_SS_PBCH_BLOCKPOWER_IDX
|
||||||
|
#define GNB_CONFIG_REFERENCESUBCARRIERSPACING_IDX
|
||||||
|
#define GNB_CONFIG_DL_UL_TRANSMISSIONPERIODICITY_IDX
|
||||||
|
#define GNB_CONFIG_NROFDOWNLINKSLOTS_IDX
|
||||||
|
#define GNB_CONFIG_NROFDOWNLINKSYMBOLS_IDX
|
||||||
|
#define GNB_CONFIG_NROFUPLINKSLOTS_IDX
|
||||||
|
#define GNB_CONFIG_NROFUPLINKSYMBOLS_IDX
|
||||||
|
#define GNB_CONFIG_RACH_TOTALNUMBEROFRA_PREAMBLES_IDX
|
||||||
|
#define GNB_CONFIG_RACH_SSB_PERRACH_OCCASIONANDCB_PREAMBLESPERSSB_CHOICE_IDX
|
||||||
|
#define GNB_CONFIG_RACH_SSB_PERRACH_OCCASIONANDCB_PREAMBLESPERSSB_ONEEIGHTH_IDX
|
||||||
|
#define GNB_CONFIG_RACH_SSB_PERRACH_OCCASIONANDCB_PREAMBLESPERSSB_ONEFOURTH_IDX
|
||||||
|
#define GNB_CONFIG_RACH_SSB_PERRACH_OCCASIONANDCB_PREAMBLESPERSSB_ONEHALF_IDX
|
||||||
|
#define GNB_CONFIG_RACH_SSB_PERRACH_OCCASIONANDCB_PREAMBLESPERSSB_ONE_IDX
|
||||||
|
#define GNB_CONFIG_RACH_SSB_PERRACH_OCCASIONANDCB_PREAMBLESPERSSB_TWO_IDX
|
||||||
|
#define GNB_CONFIG_RACH_SSB_PERRACH_OCCASIONANDCB_PREAMBLESPERSSB_FOUR_IDX
|
||||||
|
#define GNB_CONFIG_RACH_SSB_PERRACH_OCCASIONANDCB_PREAMBLESPERSSB_EIGHT_IDX
|
||||||
|
#define GNB_CONFIG_RACH_SSB_PERRACH_OCCASIONANDCB_PREAMBLESPERSSB_SIXTEEN_IDX
|
||||||
|
#define GNB_CONFIG_RACH_GROUPBCONFIGURED_IDX
|
||||||
|
#define GNB_CONFIG_RACH_RA_MSG3SIZEGROUPA_IDX
|
||||||
|
#define GNB_CONFIG_RACH_MESSAGEPOWEROFFSETGROUPB_IDX
|
||||||
|
#define GNB_CONFIG_RACH_NUMBEROFRA_PREAMBLESGROUPA_IDX
|
||||||
|
#define GNB_CONFIG_RACH_RA_CONTENTIONRESOLUTIONTIMER_IDX
|
||||||
|
#define GNB_CONFIG_RSRP_THRESHOLDSSB_IDX
|
||||||
|
#define GNB_CONFIG_RSRP_THRESHOLDSSB_SUL_IDX
|
||||||
|
#define GNB_CONFIG_PRACH_ROOTSEQUENCEINDEX_CHOICE_IDX
|
||||||
|
#define GNB_CONFIG_PRACH_ROOTSEQUENCEINDEX_L839_IDX
|
||||||
|
#define GNB_CONFIG_PRACH_ROOTSEQUENCEINDEX_L139_IDX
|
||||||
|
#define GNB_CONFIG_PRACH_MSG1_SUBCARRIERSPACING_IDX
|
||||||
|
#define GNB_CONFIG_RESTRICTEDSETCONFIG_IDX
|
||||||
|
#define GNB_CONFIG_MSG3_TRANSFORMPRECODING_IDX
|
||||||
|
#define GNB_CONFIG_PRACH_CONFIGURATIONINDEX_IDX
|
||||||
|
#define GNB_CONFIG_PRACH_MSG1_FDM_IDX
|
||||||
|
#define GNB_CONFIG_PRACH_MSG1_FREQUENCYSTART_IDX
|
||||||
|
#define GNB_CONFIG_ZEROCORRELATIONZONECONFIG_IDX
|
||||||
|
#define GNB_CONFIG_PREAMBLERECEIVEDTARGETPOWER_IDX
|
||||||
|
#define GNB_CONFIG_PREAMBLETRANSMAX_IDX
|
||||||
|
#define GNB_CONFIG_POWERRAMPINGSTEP_IDX
|
||||||
|
#define GNB_CONFIG_RA_RESPONSEWINDOW_IDX
|
||||||
|
#define GNB_CONFIG_GROUPHOPPINGENABLEDTRANSFORMPRECODING_IDX
|
||||||
|
#define GNB_CONFIG_MSG3_DELTAPREAMBLE_IDX
|
||||||
|
#define GNB_CONFIG_P0_NOMINALWITHGRANT_IDX
|
||||||
|
#define GNB_CONFIG_PUSCH_TIMEDOMAINRESOURCEALLOCATION_K2_IDX
|
||||||
|
#define GNB_CONFIG_PUSCH_TIMEDOMAINRESOURCEALLOCATION_MAPPINGTYPE_IDX
|
||||||
|
#define GNB_CONFIG_PUCCH_GROUPHOPPING_IDX
|
||||||
|
#define GNB_CONFIG_P0_NOMINAL_IDX
|
||||||
|
#define GNB_CONFIG_PDSCH_TIMEDOMAINRESOURCEALLOCATION_K0_IDX
|
||||||
|
#define GNB_CONFIG_PDSCH_TIMEDOMAINRESOURCEALLOCATION_MAPPINGTYPE_IDX
|
||||||
|
#define GNB_CONFIG_RATEMATCHPATTERNID_IDX
|
||||||
|
#define GNB_CONFIG_RATEMATCHPATTERN_PATTERNTYPE_IDX
|
||||||
|
#define GNB_CONFIG_SYMBOLSINRESOURCEBLOCK_IDX
|
||||||
|
#define GNB_CONFIG_PERIODICITYANDPATTERN_IDX
|
||||||
|
#define GNB_CONFIG_RATEMATCHPATTERN_CONTROLRESOURCESET_IDX
|
||||||
|
#define GNB_CONFIG_RATEMATCHPATTERN_SUBCARRIERSPACING_IDX
|
||||||
|
#define GNB_CONFIG_RATEMATCHPATTERN_MODE_IDX
|
||||||
|
#define GNB_CONFIG_SEARCHSPACESIB1_IDX
|
||||||
|
#define GNB_CONFIG_SEARCHSPACEOTHERSYSTEMINFORMATION_IDX
|
||||||
|
#define GNB_CONFIG_PAGINGSEARCHSPACE_IDX
|
||||||
|
#define GNB_CONFIG_RA_SEARCHSPACE_IDX
|
||||||
|
#define GNB_CONFIG_RACH_RA_CONTROLRESOURCESET_IDX
|
||||||
|
#define GNB_CONFIG_PDCCH_COMMON_CONTROLRESOURCESETID_IDX
|
||||||
|
#define GNB_CONFIG_PDCCH_COMMON_CONTROLRESOURCESET_DURATION_IDX
|
||||||
|
#define GNB_CONFIG_PDCCH_CCE_REG_MAPPINGTYPE_IDX
|
||||||
|
#define GNB_CONFIG_PDCCH_REG_BUNDLESIZE_IDX
|
||||||
|
#define GNB_CONFIG_PDCCH_INTERLEAVERSIZE_IDX
|
||||||
|
#define GNB_CONFIG_PDCCH_SHIFTINDEX_IDX
|
||||||
|
#define GNB_CONFIG_PDCCH_PRECODERGRANULARITY_IDX
|
||||||
|
#define GNB_CONFIG_TCI_PRESENTINDCI_IDX
|
||||||
|
#define GNB_CONFIG_SEARCHSPACEID_IDX
|
||||||
|
#define GNB_CONFIG_COMMONSEARCHSPACES_CONTROLRESOURCESETID_IDX
|
||||||
|
#define GNB_CONFIG_SEARCHSPACE_MONITORINGSLOTPERIODICITYANDOFFSET_CHOICE_IDX
|
||||||
|
#define GNB_CONFIG_SEARCHSPACE_MONITORINGSLOTPERIODICITYANDOFFSET_SL1_IDX
|
||||||
|
#define GNB_CONFIG_SEARCHSPACE_MONITORINGSLOTPERIODICITYANDOFFSET_SL2_IDX
|
||||||
|
#define GNB_CONFIG_SEARCHSPACE_MONITORINGSLOTPERIODICITYANDOFFSET_SL4_IDX
|
||||||
|
#define GNB_CONFIG_SEARCHSPACE_MONITORINGSLOTPERIODICITYANDOFFSET_SL5_IDX
|
||||||
|
#define GNB_CONFIG_SEARCHSPACE_MONITORINGSLOTPERIODICITYANDOFFSET_SL8_IDX
|
||||||
|
#define GNB_CONFIG_SEARCHSPACE_MONITORINGSLOTPERIODICITYANDOFFSET_SL10_IDX
|
||||||
|
#define GNB_CONFIG_SEARCHSPACE_MONITORINGSLOTPERIODICITYANDOFFSET_SL16_IDX
|
||||||
|
#define GNB_CONFIG_SEARCHSPACE_MONITORINGSLOTPERIODICITYANDOFFSET_SL20_IDX
|
||||||
|
#define GNB_CONFIG_SEARCHSPACE_NROFCANDIDATES_AGGREGATIONLEVEL1_IDX
|
||||||
|
#define GNB_CONFIG_SEARCHSPACE_NROFCANDIDATES_AGGREGATIONLEVEL2_IDX
|
||||||
|
#define GNB_CONFIG_SEARCHSPACE_NROFCANDIDATES_AGGREGATIONLEVEL4_IDX
|
||||||
|
#define GNB_CONFIG_SEARCHSPACE_NROFCANDIDATES_AGGREGATIONLEVEL8_IDX
|
||||||
|
#define GNB_CONFIG_SEARCHSPACE_NROFCANDIDATES_AGGREGATIONLEVEL16_IDX
|
||||||
|
#define GNB_CONFIG_SEARCHSPACE_SEARCHSPACETYPE_IDX
|
||||||
|
#define GNB_CONFIG_COMMON_DCI_FORMAT2_0_NROFCANDIDATES_SFI_AGGREGATIONLEVEL1_IDX
|
||||||
|
#define GNB_CONFIG_COMMON_DCI_FORMAT2_0_NROFCANDIDATES_SFI_AGGREGATIONLEVEL2_IDX
|
||||||
|
#define GNB_CONFIG_COMMON_DCI_FORMAT2_0_NROFCANDIDATES_SFI_AGGREGATIONLEVEL4_IDX
|
||||||
|
#define GNB_CONFIG_COMMON_DCI_FORMAT2_0_NROFCANDIDATES_SFI_AGGREGATIONLEVEL8_IDX
|
||||||
|
#define GNB_CONFIG_COMMON_DCI_FORMAT2_0_NROFCANDIDATES_SFI_AGGREGATIONLEVEL16_IDX
|
||||||
|
#define GNB_CONFIG_COMMON_DCI_FORMAT2_3_MONITORINGPERIODICITY_IDX
|
||||||
|
#define GNB_CONFIG_COMMON_DCI_FORMAT2_3_NROFPDCCH_CANDIDATES_IDX
|
||||||
|
#define GNB_CONFIG_UE_SPECIFIC__DCI_FORMATS_IDX
|
||||||
|
|||||||
@@ -1,282 +0,0 @@
|
|||||||
NR-InterNodeDefinitions DEFINITIONS AUTOMATIC TAGS ::=
|
|
||||||
|
|
||||||
BEGIN
|
|
||||||
|
|
||||||
-- TAG-HANDOVER-COMMAND-START
|
|
||||||
|
|
||||||
HandoverCommand ::= SEQUENCE {
|
|
||||||
criticalExtensions CHOICE {
|
|
||||||
c1 CHOICE{
|
|
||||||
handoverCommand HandoverCommand-IEs,
|
|
||||||
spare3 NULL, spare2 NULL, spare1 NULL
|
|
||||||
},
|
|
||||||
criticalExtensionsFuture SEQUENCE {}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
HandoverCommand-IEs ::= SEQUENCE {
|
|
||||||
handoverCommandMessage OCTET STRING (CONTAINING RRCReconfiguration),
|
|
||||||
nonCriticalExtension SEQUENCE {} OPTIONAL
|
|
||||||
}
|
|
||||||
|
|
||||||
-- TAG-HANDOVER-COMMAND-STOP
|
|
||||||
-- TAG-HANDOVER-PREPARATION-INFORMATION-START
|
|
||||||
|
|
||||||
HandoverPreparationInformation ::= SEQUENCE {
|
|
||||||
criticalExtensions CHOICE {
|
|
||||||
c1 CHOICE{
|
|
||||||
handoverPreparationInformation HandoverPreparationInformation-IEs,
|
|
||||||
spare3 NULL, spare2 NULL, spare1 NULL
|
|
||||||
},
|
|
||||||
criticalExtensionsFuture SEQUENCE {}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
HandoverPreparationInformation-IEs ::= SEQUENCE {
|
|
||||||
ue-CapabilityRAT-List UE-CapabilityRAT-ContainerList,
|
|
||||||
sourceConfig OCTET STRING (CONTAINING RRCReconfiguration),
|
|
||||||
rrm-Config RRM-Config OPTIONAL,
|
|
||||||
as-Context AS-Context OPTIONAL,
|
|
||||||
nonCriticalExtension SEQUENCE {} OPTIONAL
|
|
||||||
}
|
|
||||||
|
|
||||||
AS-Context ::= SEQUENCE {
|
|
||||||
reestablishmentInfo SEQUENCE {
|
|
||||||
sourcePhysCellId PhysCellId,
|
|
||||||
targetCellShortMAC-I ShortMAC-I,
|
|
||||||
additionalReestabInfoList ReestabNCellInfoList OPTIONAL
|
|
||||||
} OPTIONAL,
|
|
||||||
-- FFS Whether to change e.g. move all re-establishment info to Xx
|
|
||||||
configRestrictInfo ConfigRestrictInfoSCG OPTIONAL,
|
|
||||||
...
|
|
||||||
}
|
|
||||||
|
|
||||||
ReestabNCellInfoList ::= SEQUENCE ( SIZE (1..maxCellPrep) ) OF ReestabNCellInfo
|
|
||||||
|
|
||||||
ReestabNCellInfo::= SEQUENCE{
|
|
||||||
cellIdentity CellIdentity,
|
|
||||||
key-gNodeB-Star BIT STRING (SIZE (256)),
|
|
||||||
shortMAC-I ShortMAC-I
|
|
||||||
}
|
|
||||||
|
|
||||||
RRM-Config ::= SEQUENCE {
|
|
||||||
ue-InactiveTime ENUMERATED {
|
|
||||||
s1, s2, s3, s5, s7, s10, s15, s20,
|
|
||||||
s25, s30, s40, s50, min1, min1s20c, min1s40,
|
|
||||||
min2, min2s30, min3, min3s30, min4, min5, min6,
|
|
||||||
min7, min8, min9, min10, min12, min14, min17, min20,
|
|
||||||
min24, min28, min33, min38, min44, min50, hr1,
|
|
||||||
hr1min30, hr2, hr2min30, hr3, hr3min30, hr4, hr5, hr6,
|
|
||||||
hr8, hr10, hr13, hr16, hr20, day1, day1hr12, day2,
|
|
||||||
day2hr12, day3, day4, day5, day7, day10, day14, day19,
|
|
||||||
day24, day30, dayMoreThan30} OPTIONAL ,
|
|
||||||
candidateCellInfoList CandidateCellInfoList OPTIONAL,
|
|
||||||
...
|
|
||||||
}
|
|
||||||
|
|
||||||
-- TAG-HANDOVER-PREPARATION-INFORMATION-STOP
|
|
||||||
-- TAG-CG-CONFIG-START
|
|
||||||
|
|
||||||
CG-Config ::= SEQUENCE {
|
|
||||||
criticalExtensions CHOICE {
|
|
||||||
c1 CHOICE{
|
|
||||||
cg-Config CG-Config-IEs,
|
|
||||||
spare3 NULL, spare2 NULL, spare1 NULL
|
|
||||||
},
|
|
||||||
criticalExtensionsFuture SEQUENCE {}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
CG-Config-IEs ::= SEQUENCE {
|
|
||||||
scg-CellGroupConfig OCTET STRING (CONTAINING RRCReconfiguration) OPTIONAL,
|
|
||||||
scg-RB-Config OCTET STRING (CONTAINING RadioBearerConfig) OPTIONAL,
|
|
||||||
configRestrictModReq ConfigRestrictModReqSCG OPTIONAL,
|
|
||||||
drx-InfoSCG DRX-Info OPTIONAL,
|
|
||||||
candidateCellInfoListSN OCTET STRING (CONTAINING CandidateCellInfoList) OPTIONAL,
|
|
||||||
measConfigSN MeasConfigSN OPTIONAL,
|
|
||||||
selectedBandCombinationNR BandCombinationIndex OPTIONAL,
|
|
||||||
nonCriticalExtension SEQUENCE {} OPTIONAL
|
|
||||||
}
|
|
||||||
|
|
||||||
MeasConfigSN ::= SEQUENCE {
|
|
||||||
measuredFrequenciesFR1 SEQUENCE (SIZE (1..maxMeasFreqsMN)) OF NR-FreqInfo OPTIONAL,
|
|
||||||
...
|
|
||||||
}
|
|
||||||
|
|
||||||
NR-FreqInfo ::= SEQUENCE {
|
|
||||||
measuredFrequency ARFCN-ValueNR OPTIONAL,
|
|
||||||
...
|
|
||||||
}
|
|
||||||
|
|
||||||
ConfigRestrictModReqSCG ::= SEQUENCE {
|
|
||||||
requestedBC-MRDC BandCombinationIndex OPTIONAL,
|
|
||||||
requestedBPC-ListMRDC BPC-IndexList OPTIONAL,
|
|
||||||
requestedP-MaxFR1 P-Max OPTIONAL,
|
|
||||||
...
|
|
||||||
}
|
|
||||||
|
|
||||||
BandCombinationIndex ::= INTEGER (1..maxBandComb)
|
|
||||||
|
|
||||||
-- TAG-CG-CONFIG-STOP
|
|
||||||
-- TAG-CG-CONFIG-INFO-START
|
|
||||||
|
|
||||||
CG-ConfigInfo ::= SEQUENCE {
|
|
||||||
criticalExtensions CHOICE {
|
|
||||||
c1 CHOICE{
|
|
||||||
cg-ConfigInfo CG-ConfigInfo-IEs,
|
|
||||||
spare3 NULL, spare2 NULL, spare1 NULL
|
|
||||||
},
|
|
||||||
criticalExtensionsFuture SEQUENCE {}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
CG-ConfigInfo-IEs ::= SEQUENCE {
|
|
||||||
ue-CapabilityInfo OCTET STRING (CONTAINING UE-CapabilityRAT-ContainerList) OPTIONAL,-- Cond SN-Addition
|
|
||||||
candidateCellInfoListMN CandidateCellInfoList OPTIONAL,
|
|
||||||
candidateCellInfoListSN OCTET STRING (CONTAINING CandidateCellInfoList) OPTIONAL,
|
|
||||||
measResultCellListSFTD MeasResultCellListSFTD OPTIONAL,
|
|
||||||
scgFailureInfo SEQUENCE {
|
|
||||||
failureType ENUMERATED { t310-Expiry, randomAccessProblem,
|
|
||||||
rlc-MaxNumRetx, scg-ChangeFailure,
|
|
||||||
scg-reconfigFailure,
|
|
||||||
srb3-IntegrityFailure},
|
|
||||||
measResultSCG OCTET STRING (CONTAINING MeasResultSCG-Failure)
|
|
||||||
} OPTIONAL,
|
|
||||||
configRestrictInfo ConfigRestrictInfoSCG OPTIONAL,
|
|
||||||
drx-InfoMCG DRX-Info OPTIONAL,
|
|
||||||
measConfigMN MeasConfigMN OPTIONAL,
|
|
||||||
sourceConfigSCG OCTET STRING (CONTAINING RRCReconfiguration) OPTIONAL,
|
|
||||||
scg-RB-Config OCTET STRING (CONTAINING RadioBearerConfig) OPTIONAL,
|
|
||||||
mcg-RB-Config OCTET STRING (CONTAINING RadioBearerConfig) OPTIONAL,
|
|
||||||
nonCriticalExtension SEQUENCE {} OPTIONAL
|
|
||||||
}
|
|
||||||
|
|
||||||
ConfigRestrictInfoSCG ::= SEQUENCE {
|
|
||||||
allowedBC-ListMRDC BandCombinationIndexList OPTIONAL,
|
|
||||||
allowedBPC-ListMRDC BPC-IndexList OPTIONAL,
|
|
||||||
powerCoordination-FR1 SEQUENCE {
|
|
||||||
p-maxNR P-Max OPTIONAL,
|
|
||||||
p-maxEUTRA P-Max OPTIONAL
|
|
||||||
} OPTIONAL,
|
|
||||||
servCellIndexRangeSCG SEQUENCE {
|
|
||||||
lowBound ServCellIndex,
|
|
||||||
upBound ServCellIndex
|
|
||||||
} OPTIONAL, -- Cond SN-Addition
|
|
||||||
maxMeasFreqsSCG-NR INTEGER(1..maxMeasFreqsMN) OPTIONAL,
|
|
||||||
...
|
|
||||||
}
|
|
||||||
|
|
||||||
BandCombinationIndexList ::= SEQUENCE (SIZE (1..maxBandComb)) OF BandCombinationIndex
|
|
||||||
|
|
||||||
BPC-IndexList ::= SEQUENCE (SIZE (1..maxBasebandProcComb)) OF BPC-Index
|
|
||||||
BPC-Index ::= INTEGER (1..maxBasebandProcComb)
|
|
||||||
|
|
||||||
DRX-Info ::= SEQUENCE {
|
|
||||||
drx-LongCycleStartOffset CHOICE {
|
|
||||||
ms10 INTEGER(0..9),
|
|
||||||
ms20 INTEGER(0..19),
|
|
||||||
ms32 INTEGER(0..31),
|
|
||||||
ms40 INTEGER(0..39),
|
|
||||||
ms60 INTEGER(0..59),
|
|
||||||
ms64 INTEGER(0..63),
|
|
||||||
ms70 INTEGER(0..69),
|
|
||||||
ms80 INTEGER(0..79),
|
|
||||||
ms128 INTEGER(0..127),
|
|
||||||
ms160 INTEGER(0..159),
|
|
||||||
ms256 INTEGER(0..255),
|
|
||||||
ms320 INTEGER(0..319),
|
|
||||||
ms512 INTEGER(0..511),
|
|
||||||
ms640 INTEGER(0..639),
|
|
||||||
ms1024 INTEGER(0..1023),
|
|
||||||
ms1280 INTEGER(0..1279),
|
|
||||||
ms2048 INTEGER(0..2047),
|
|
||||||
ms2560 INTEGER(0..2559),
|
|
||||||
ms5120 INTEGER(0..5119),
|
|
||||||
ms10240 INTEGER(0..10239)
|
|
||||||
},
|
|
||||||
shortDRX SEQUENCE {
|
|
||||||
drx-ShortCycle ENUMERATED {
|
|
||||||
ms2, ms3, ms4, ms5, ms6, ms7, ms8, ms10, ms14, ms16, ms20, ms30, ms32,
|
|
||||||
ms35, ms40, ms64, ms80, ms128, ms160, ms256, ms320, ms512, ms640, spare9,
|
|
||||||
spare8, spare7, spare6, spare5, spare4, spare3, spare2, spare1 },
|
|
||||||
drx-ShortCycleTimer INTEGER (1..16)
|
|
||||||
} OPTIONAL
|
|
||||||
}
|
|
||||||
|
|
||||||
MeasConfigMN ::= SEQUENCE {
|
|
||||||
measuredFrequenciesMN SEQUENCE (SIZE (1..maxMeasFreqsMN)) OF NR-FreqInfo OPTIONAL,
|
|
||||||
measGapConfigFR1 GapConfig OPTIONAL,
|
|
||||||
gapPurpose ENUMERATED {perUE, perFR1} OPTIONAL,
|
|
||||||
...
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
-- TAG-CG-CONFIG-INFO-STOP
|
|
||||||
-- TAG-MEASUREMENT-TIMING-CONFIGURATION-START
|
|
||||||
|
|
||||||
MeasurementTimingConfiguration ::= SEQUENCE {
|
|
||||||
criticalExtensions CHOICE {
|
|
||||||
c1 CHOICE{
|
|
||||||
measTimingConf MeasurementTimingConfiguration-IEs,
|
|
||||||
spare3 NULL, spare2 NULL, spare1 NULL
|
|
||||||
},
|
|
||||||
criticalExtensionsFuture SEQUENCE {}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
MeasurementTimingConfiguration-IEs ::= SEQUENCE {
|
|
||||||
measTiming MeasTimingList OPTIONAL,
|
|
||||||
nonCriticalExtension SEQUENCE {} OPTIONAL
|
|
||||||
}
|
|
||||||
|
|
||||||
MeasTimingList ::= SEQUENCE (SIZE (1..maxMeasFreqsMN)) OF MeasTiming
|
|
||||||
|
|
||||||
MeasTiming ::= SEQUENCE {
|
|
||||||
carrierFreq ARFCN-ValueNR OPTIONAL,
|
|
||||||
ssb-MeasurementTimingConfiguration ENUMERATED {ffsTypeAndValue} OPTIONAL,
|
|
||||||
...
|
|
||||||
}
|
|
||||||
|
|
||||||
-- TAG-MEASUREMENT-TIMING-CONFIGURATION-STOP
|
|
||||||
-- TAG-CANDIDATE-CELL-INFO-LIST-START
|
|
||||||
|
|
||||||
CandidateCellInfoList ::= SEQUENCE (SIZE (1.. maxNrofSCells)) OF CandidateCellInfo
|
|
||||||
|
|
||||||
CandidateCellInfo ::= SEQUENCE {
|
|
||||||
cellIdentification SEQUENCE {
|
|
||||||
physCellId PhysCellId,
|
|
||||||
dl-CarrierFreq ARFCN-ValueNR
|
|
||||||
},
|
|
||||||
measResultCell MeasQuantityResults OPTIONAL,
|
|
||||||
candidateRS-IndexListSSB CandidateRS-IndexInfoListSSB OPTIONAL,
|
|
||||||
candidateRS-IndexListCSI-RS CandidateRS-IndexInfoListCSI-RS OPTIONAL,
|
|
||||||
...
|
|
||||||
}
|
|
||||||
|
|
||||||
CandidateRS-IndexInfoListSSB ::= SEQUENCE (SIZE (1..maxNrofIndexesToReport)) OF CandidateRS-IndexInfoSSB
|
|
||||||
|
|
||||||
CandidateRS-IndexInfoSSB ::= SEQUENCE {
|
|
||||||
ssb-Index SSB-Index,
|
|
||||||
measResultSSB MeasQuantityResults OPTIONAL,
|
|
||||||
...
|
|
||||||
}
|
|
||||||
|
|
||||||
CandidateRS-IndexInfoListCSI-RS ::= SEQUENCE (SIZE (1..maxNrofIndexesToReport)) OF CandidateRS-IndexInfoCSI-RS
|
|
||||||
|
|
||||||
CandidateRS-IndexInfoCSI-RS ::= SEQUENCE {
|
|
||||||
csi-RS-Index CSI-RS-Index,
|
|
||||||
measResultCSI-RS MeasQuantityResults OPTIONAL,
|
|
||||||
...
|
|
||||||
}
|
|
||||||
|
|
||||||
-- TAG-CANDIDATE-CELL-INFO-LIST-STOP
|
|
||||||
-- TAG_NR-MULTIPLICITY-AND-CONSTRAINTS-START
|
|
||||||
|
|
||||||
maxMeasFreqsMN INTEGER ::= 32 -- Maximum number of MN-configured measurement frequencies
|
|
||||||
maxCellPrep INTEGER ::= 32 -- Maximum number of cells prepared for handover
|
|
||||||
|
|
||||||
-- TAG_NR-MULTIPLICITY-AND-CONSTRAINTS-STOP
|
|
||||||
-- TAG_NR-INTER-NODE-DEFINITIONS-END-START
|
|
||||||
|
|
||||||
END
|
|
||||||
|
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -1,46 +0,0 @@
|
|||||||
NR-UE-Variables DEFINITIONS AUTOMATIC TAGS ::=
|
|
||||||
|
|
||||||
BEGIN
|
|
||||||
|
|
||||||
-- TAG-VAR-MEAS-CONFIG-START
|
|
||||||
|
|
||||||
VarMeasConfig ::= SEQUENCE {
|
|
||||||
-- Measurement identities
|
|
||||||
measIdList MeasIdToAddModList OPTIONAL,
|
|
||||||
-- Measurement objects
|
|
||||||
measObjectList MeasObjectToAddModList OPTIONAL,
|
|
||||||
-- Reporting configurations
|
|
||||||
reportConfigList ReportConfigToAddModList OPTIONAL,
|
|
||||||
-- Other parameters
|
|
||||||
quantityConfig QuantityConfig OPTIONAL,
|
|
||||||
|
|
||||||
s-MeasureConfig CHOICE {
|
|
||||||
ssb-RSRP RSRP-Range,
|
|
||||||
csi-RSRP RSRP-Range
|
|
||||||
} OPTIONAL
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
-- TAG-VAR-MEAS-CONFIG-STOP
|
|
||||||
-- TAG-VAR-MEAS-REPORT-START
|
|
||||||
|
|
||||||
VarMeasReportList ::= SEQUENCE (SIZE (1..maxNrofMeasId)) OF VarMeasReport
|
|
||||||
|
|
||||||
VarMeasReport ::= SEQUENCE {
|
|
||||||
-- List of measurement that have been triggered
|
|
||||||
measId MeasId,
|
|
||||||
cellsTriggeredList CellsTriggeredList OPTIONAL,
|
|
||||||
numberOfReportsSent INTEGER
|
|
||||||
}
|
|
||||||
|
|
||||||
CellsTriggeredList ::= SEQUENCE (SIZE (1..maxNrofCellMeas)) OF CHOICE {
|
|
||||||
physCellId PhysCellId,
|
|
||||||
-- Not needed for EN-DC.
|
|
||||||
physCellIdEUTRA ENUMERATED {ffsTypeAndValue}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
-- TAG-VAR-MEAS-REPORT-STOP
|
|
||||||
|
|
||||||
END
|
|
||||||
|
|
||||||
@@ -1,82 +0,0 @@
|
|||||||
#!/usr/bin/perl
|
|
||||||
# This script extracts the ASN1 definition from and TS 38.331 and generates 3 output files that can be processed by asn2wrs
|
|
||||||
# First download the specification from 3gpp.org as a word document and open it
|
|
||||||
# Then in "view" menu, select normal or web layout (needed to removed page header and footers)
|
|
||||||
# Finally save the document as a text file
|
|
||||||
# Call the script: "perl extract_asn1_from_spec.pl 38331-xxx.txt"
|
|
||||||
# It should generate: NR-RRC-Definitions.asn, NR-UE-Variables.asn and NR-InterNodeDefinitions
|
|
||||||
use warnings;
|
|
||||||
$input_file = $ARGV[0];
|
|
||||||
$NR_def_output_file = "NR-RRC-Definitions.asn";
|
|
||||||
$NR_var_output_file = "NR-UE-Variables.asn";
|
|
||||||
$NR_internode_output_file = "NR-InterNodeDefinitions.asn";
|
|
||||||
|
|
||||||
|
|
||||||
sub extract_asn1;
|
|
||||||
|
|
||||||
open(INPUT_FILE, "< $input_file") or die "Can not open file $input_file";
|
|
||||||
|
|
||||||
while (<INPUT_FILE>) {
|
|
||||||
|
|
||||||
# Process the NR-RRC-Definitions section
|
|
||||||
if( m/NR-RRC-Definitions DEFINITIONS AUTOMATIC TAGS ::=/){
|
|
||||||
open(OUTPUT_FILE, "> $NR_def_output_file") or die "Can not open file $def_output_file";
|
|
||||||
syswrite OUTPUT_FILE,"$_ \n";
|
|
||||||
syswrite OUTPUT_FILE,"BEGIN\n\n";
|
|
||||||
|
|
||||||
# Get all the text delimited by -- ASN1START and -- ASN1STOP
|
|
||||||
extract_asn1();
|
|
||||||
|
|
||||||
syswrite OUTPUT_FILE,"END\n\n";
|
|
||||||
close(OUTPUT_FILE);
|
|
||||||
}
|
|
||||||
|
|
||||||
# Process the NR-UE-Variables section
|
|
||||||
if( m/NR-UE-Variables DEFINITIONS AUTOMATIC TAGS ::=/){
|
|
||||||
open(OUTPUT_FILE, "> $NR_var_output_file") or die "Can not open file $def_output_file";
|
|
||||||
syswrite OUTPUT_FILE,"$_ \n";
|
|
||||||
syswrite OUTPUT_FILE,"BEGIN\n\n";
|
|
||||||
|
|
||||||
# Get all the text delimited by -- ASN1START and -- ASN1STOP
|
|
||||||
extract_asn1();
|
|
||||||
|
|
||||||
syswrite OUTPUT_FILE,"END\n\n";
|
|
||||||
close(OUTPUT_FILE);
|
|
||||||
}
|
|
||||||
# Process the NR-InterNodeDefinitions section
|
|
||||||
if( m/NR-InterNodeDefinitions DEFINITIONS AUTOMATIC TAGS ::=/){
|
|
||||||
open(OUTPUT_FILE, "> $NR_internode_output_file") or die "Can not open file $def_output_file";
|
|
||||||
syswrite OUTPUT_FILE,"$_ \n";
|
|
||||||
syswrite OUTPUT_FILE,"BEGIN\n\n";
|
|
||||||
|
|
||||||
# Get all the text delimited by -- ASN1START and -- ASN1STOP
|
|
||||||
extract_asn1();
|
|
||||||
|
|
||||||
syswrite OUTPUT_FILE,"END\n\n";
|
|
||||||
close(OUTPUT_FILE);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
close(INPUT_FILE);
|
|
||||||
|
|
||||||
# This subroutine copies the text delimited by -- ASN1START and -- ASN1STOP in INPUT_FILE
|
|
||||||
# and copies it into OUTPUT_FILE.
|
|
||||||
# It stops when it meets the keyword "END"
|
|
||||||
sub extract_asn1 {
|
|
||||||
my $line = <INPUT_FILE>;
|
|
||||||
my $is_asn1 = 0;
|
|
||||||
|
|
||||||
while(($line ne "END\n") && ($line ne "END\r\n")){
|
|
||||||
if ($line =~ m/-- ASN1STOP/) {
|
|
||||||
$is_asn1 = 0;
|
|
||||||
}
|
|
||||||
if ($is_asn1 == 1){
|
|
||||||
syswrite OUTPUT_FILE,"$line";
|
|
||||||
}
|
|
||||||
if ($line =~ m/-- ASN1START/) {
|
|
||||||
$is_asn1 = 1;
|
|
||||||
}
|
|
||||||
$line = <INPUT_FILE>;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -94,11 +94,11 @@ typedef struct uid_linear_allocator_NR_s {
|
|||||||
} uid_allocator_NR_t;
|
} uid_allocator_NR_t;
|
||||||
|
|
||||||
|
|
||||||
#define PROTOCOL_RRC_CTXT_UE_FMT PROTOCOL_CTXT_FMT
|
#define PROTOCOL_NRRRC_CTXT_UE_FMT PROTOCOL_CTXT_FMT
|
||||||
#define PROTOCOL_RRC_CTXT_UE_ARGS(CTXT_Pp) PROTOCOL_CTXT_ARGS(CTXT_Pp)
|
#define PROTOCOL_NRRRC_CTXT_UE_ARGS(CTXT_Pp) PROTOCOL_CTXT_ARGS(CTXT_Pp)
|
||||||
|
|
||||||
#define PROTOCOL_RRC_CTXT_FMT PROTOCOL_CTXT_FMT
|
#define PROTOCOL_NRRRC_CTXT_FMT PROTOCOL_CTXT_FMT
|
||||||
#define PROTOCOL_RRC_CTXT_ARGS(CTXT_Pp) PROTOCOL_CTXT_ARGS(CTXT_Pp)
|
#define PROTOCOL_NRRRC_CTXT_ARGS(CTXT_Pp) PROTOCOL_CTXT_ARGS(CTXT_Pp)
|
||||||
|
|
||||||
|
|
||||||
#define UE_MODULE_INVALID ((module_id_t) ~0) // FIXME attention! depends on type uint8_t!!!
|
#define UE_MODULE_INVALID ((module_id_t) ~0) // FIXME attention! depends on type uint8_t!!!
|
||||||
|
|||||||
+82
-7057
File diff suppressed because it is too large
Load Diff
@@ -51,14 +51,14 @@ typedef enum Rrc_Sub_State_NR_e {
|
|||||||
|
|
||||||
RRC_SUB_STATE_CONNECTED_NR,
|
RRC_SUB_STATE_CONNECTED_NR,
|
||||||
|
|
||||||
RRC_SUB_STATE_INACTIVE_FIRST_NB_IoT = RRC_SUB_STATE_INACTIVE_NR,
|
RRC_SUB_STATE_INACTIVE_FIRST_NR = RRC_SUB_STATE_INACTIVE_NR,
|
||||||
RRC_SUB_STATE_INACTIVE_LAST_NB_IoT = RRC_SUB_STATE_INACTIVE_NR,
|
RRC_SUB_STATE_INACTIVE_LAST_NR = RRC_SUB_STATE_INACTIVE_NR,
|
||||||
|
|
||||||
RRC_SUB_STATE_IDLE_FIRST_NB_IoT = RRC_SUB_STATE_IDLE_SEARCHING_NR,
|
RRC_SUB_STATE_IDLE_FIRST_NR = RRC_SUB_STATE_IDLE_SEARCHING_NR,
|
||||||
RRC_SUB_STATE_IDLE_LAST_NB_IoT = RRC_SUB_STATE_IDLE_NR,
|
RRC_SUB_STATE_IDLE_LAST_NR = RRC_SUB_STATE_IDLE_NR,
|
||||||
|
|
||||||
RRC_SUB_STATE_CONNECTED_FIRST_NB_IoT = RRC_SUB_STATE_CONNECTED_NR,
|
RRC_SUB_STATE_CONNECTED_FIRST_NR = RRC_SUB_STATE_CONNECTED_NR,
|
||||||
RRC_SUB_STATE_CONNECTED_LAST_NB_IoT = RRC_SUB_STATE_CONNECTED_NR,
|
RRC_SUB_STATE_CONNECTED_LAST_NR = RRC_SUB_STATE_CONNECTED_NR,
|
||||||
} Rrc_Sub_State_NR_t;
|
} Rrc_Sub_State_NR_t;
|
||||||
|
|
||||||
#endif /* RRC_TYPES_H_ */
|
#endif /* RRC_TYPES_H_ */
|
||||||
|
|||||||
@@ -2,15 +2,15 @@ Active_eNBs = ( "eNB-Eurecom-LTEBox");
|
|||||||
# Asn1_verbosity, choice in: none, info, annoying
|
# Asn1_verbosity, choice in: none, info, annoying
|
||||||
Asn1_verbosity = "none";
|
Asn1_verbosity = "none";
|
||||||
|
|
||||||
eNBs =
|
gNBs =
|
||||||
(
|
(
|
||||||
{
|
{
|
||||||
////////// Identification parameters:
|
////////// Identification parameters:
|
||||||
eNB_ID = 0xe00;
|
gNB_ID = 0xe00;
|
||||||
|
|
||||||
cell_type = "CELL_MACRO_ENB";
|
cell_type = "CELL_MACRO_ENB";
|
||||||
|
|
||||||
eNB_name = "eNB-Eurecom-LTEBox";
|
gNB_name = "eNB-Eurecom-LTEBox";
|
||||||
|
|
||||||
// Tracking area code, 0x0000 and 0xfffe are reserved values
|
// Tracking area code, 0x0000 and 0xfffe are reserved values
|
||||||
tracking_area_code = "1";
|
tracking_area_code = "1";
|
||||||
@@ -217,3 +217,222 @@ NETWORK_CONTROLLER :
|
|||||||
rrc_log_verbosity ="medium";
|
rrc_log_verbosity ="medium";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Active_gNBs = ( "gNB_Eurecom_5GNRBox");
|
||||||
|
# Asn1_verbosity, choice in: none, info, annoying
|
||||||
|
Asn1_verbosity = "none";
|
||||||
|
|
||||||
|
gNBs =
|
||||||
|
(
|
||||||
|
{
|
||||||
|
////////// Identification parameters:
|
||||||
|
gNB_ID = 0xe00;
|
||||||
|
|
||||||
|
cell_type = "CELL_MACRO_GNB";
|
||||||
|
|
||||||
|
gNB_name = "gNB_Eurecom_LTEBox";
|
||||||
|
|
||||||
|
// Tracking area code, 0x0000 and 0xfffe are reserved values
|
||||||
|
tracking_area_code = "1";
|
||||||
|
|
||||||
|
mobile_country_code = "208";
|
||||||
|
|
||||||
|
mobile_network_code = "93";
|
||||||
|
|
||||||
|
tr_s_preference = "local_mac"
|
||||||
|
|
||||||
|
////////// Physical parameters:
|
||||||
|
|
||||||
|
component_carriers = (
|
||||||
|
{
|
||||||
|
node_function = "3GPP_gNODEB";
|
||||||
|
node_timing = "synch_to_ext_device";
|
||||||
|
node_synch_ref = 0;
|
||||||
|
frame_type = "FDD";
|
||||||
|
DL_prefix_type = "NORMAL";
|
||||||
|
UL_prefix_type = "NORMAL";
|
||||||
|
eutra_band = 7;
|
||||||
|
downlink_frequency = 2685000000L;
|
||||||
|
uplink_frequency_offset = -120000000;
|
||||||
|
Nid_cell = 0;
|
||||||
|
N_RB_DL = 50;
|
||||||
|
nb_antenna_ports = 1;
|
||||||
|
nb_antennas_tx = 1;
|
||||||
|
nb_antennas_rx = 1;
|
||||||
|
tx_gain = 90;
|
||||||
|
rx_gain = 125;
|
||||||
|
MIB_subCarrierSpacingCommon = 0;
|
||||||
|
MIB_dmrs_TypeA_Position = 0;
|
||||||
|
pdcch_ConfigSIB1 = 0;
|
||||||
|
SIB1_frequencyOffsetSSB = 0;
|
||||||
|
SIB1_ssb_PeriodicityServingCell = 0;
|
||||||
|
SIB1_ss_PBCH_BlockPower = 0;
|
||||||
|
absoluteFrequencySSB = 0;
|
||||||
|
ssb_SubcarrierOffset = 0;
|
||||||
|
DL_FreqBandIndicatorNR = 0;
|
||||||
|
DL_absoluteFrequencyPointA = 0;
|
||||||
|
DL_offsetToCarrier = 0;
|
||||||
|
DL_SubcarrierSpacing = 0;
|
||||||
|
DL_SCS_SpecificCarrier_k0 = 0;
|
||||||
|
DL_carrierBandwidth = 0;
|
||||||
|
DL_locationAndBandwidth = 0;
|
||||||
|
UL_FreqBandIndicatorNR = 0;
|
||||||
|
UL_absoluteFrequencyPointA = 0;
|
||||||
|
FrequencyInfoUL_p_Max = 0;
|
||||||
|
frequencyShift7p5khz = 0;
|
||||||
|
UL_offsetToCarrier = 0;
|
||||||
|
UL_SubcarrierSpacing = 0;
|
||||||
|
UL_SCS_SpecificCarrier_k0 = 0;
|
||||||
|
UL_carrierBandwidth = 0;
|
||||||
|
UL_locationAndBandwidth = 0;
|
||||||
|
ServingCellConfigCommon_ssb_periodicityServingCell = 0;
|
||||||
|
ServingCellConfigCommon_dmrs_TypeA_Position = 0;
|
||||||
|
NIA_SubcarrierSpacing = 0;
|
||||||
|
ServingCellConfigCommon_ss_PBCH_BlockPower = 0;
|
||||||
|
referenceSubcarrierSpacing = 0;
|
||||||
|
dl_UL_TransmissionPeriodicity = 0;
|
||||||
|
nrofDownlinkSlots = 0;
|
||||||
|
nrofDownlinkSymbols = 0;
|
||||||
|
nrofUplinkSlots = 0;
|
||||||
|
nrofUplinkSymbols = 0;
|
||||||
|
rach_totalNumberOfRA_Preambles = 0;
|
||||||
|
rach_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_choice = 0;
|
||||||
|
rach_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_oneEighth = 0;
|
||||||
|
rach_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_oneFourth = 0;
|
||||||
|
rach_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_oneHalf = 0;
|
||||||
|
rach_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_one = 0;
|
||||||
|
rach_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_two = 0;
|
||||||
|
rach_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_four = 0;
|
||||||
|
rach_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_eight = 0;
|
||||||
|
rach_ssb_perRACH_OccasionAndCB_PreamblesPerSSB_sixteen = 0;
|
||||||
|
rach_groupBconfigured = NULL;
|
||||||
|
rach_ra_Msg3SizeGroupA = 0;
|
||||||
|
rach_messagePowerOffsetGroupB = 0;
|
||||||
|
rach_numberOfRA_PreamblesGroupA = 0;
|
||||||
|
rach_ra_ContentionResolutionTimer = 0;
|
||||||
|
rsrp_ThresholdSSB = 0;
|
||||||
|
rsrp_ThresholdSSB_SUL = 0;
|
||||||
|
prach_RootSequenceIndex_choice = 0;
|
||||||
|
prach_RootSequenceIndex_l839 = 0;
|
||||||
|
prach_RootSequenceIndex_l139 = 0;
|
||||||
|
prach_msg1_SubcarrierSpacing = 0;
|
||||||
|
restrictedSetConfig = 0;
|
||||||
|
msg3_transformPrecoding = 0;
|
||||||
|
prach_ConfigurationIndex = 0;
|
||||||
|
prach_msg1_FDM = 0;
|
||||||
|
prach_msg1_FrequencyStart = 0;
|
||||||
|
zeroCorrelationZoneConfig = 0;
|
||||||
|
preambleReceivedTargetPower = 0;
|
||||||
|
preambleTransMax = 0;
|
||||||
|
powerRampingStep = 0;
|
||||||
|
ra_ResponseWindow = 0;
|
||||||
|
groupHoppingEnabledTransformPrecoding = NULL;
|
||||||
|
msg3_DeltaPreamble = 0;
|
||||||
|
p0_NominalWithGrant = 0;
|
||||||
|
PUSCH_TimeDomainResourceAllocation_k2 = 0;
|
||||||
|
PUSCH_TimeDomainResourceAllocation_mappingType = 0;
|
||||||
|
pucch_GroupHopping = 0;
|
||||||
|
p0_nominal = 0;
|
||||||
|
PDSCH_TimeDomainResourceAllocation_k0 = 0;
|
||||||
|
PDSCH_TimeDomainResourceAllocation_mappingType = 0;
|
||||||
|
rateMatchPatternId = 0;
|
||||||
|
RateMatchPattern_patternType = 0;
|
||||||
|
symbolsInResourceBlock = 0;
|
||||||
|
periodicityAndPattern = 0;
|
||||||
|
RateMatchPattern_controlResourceSet = 0;
|
||||||
|
RateMatchPattern_subcarrierSpacing = 0;
|
||||||
|
RateMatchPattern_mode = 0;
|
||||||
|
searchSpaceSIB1 = 0;
|
||||||
|
searchSpaceOtherSystemInformation = 0;
|
||||||
|
pagingSearchSpace = 0;
|
||||||
|
ra_SearchSpace = 0;
|
||||||
|
rach_ra_ControlResourceSet = 0;
|
||||||
|
PDCCH_common_controlResourceSetId = 0;
|
||||||
|
PDCCH_common_ControlResourceSet_duration = 0;
|
||||||
|
PDCCH_cce_REG_MappingType = 0;
|
||||||
|
PDCCH_reg_BundleSize = 0;
|
||||||
|
PDCCH_interleaverSize = 0;
|
||||||
|
PDCCH_shiftIndex = 0;
|
||||||
|
PDCCH_precoderGranularity = 0;
|
||||||
|
tci_PresentInDCI = NULL;
|
||||||
|
SearchSpaceId = 0;
|
||||||
|
commonSearchSpaces_controlResourceSetId = 0;
|
||||||
|
SearchSpace_monitoringSlotPeriodicityAndOffset_choice = 0;
|
||||||
|
SearchSpace_monitoringSlotPeriodicityAndOffset_sl1 = 0;
|
||||||
|
SearchSpace_monitoringSlotPeriodicityAndOffset_sl2 = 0;
|
||||||
|
SearchSpace_monitoringSlotPeriodicityAndOffset_sl4 = 0;
|
||||||
|
SearchSpace_monitoringSlotPeriodicityAndOffset_sl5 = 0;
|
||||||
|
SearchSpace_monitoringSlotPeriodicityAndOffset_sl8 = 0;
|
||||||
|
SearchSpace_monitoringSlotPeriodicityAndOffset_sl10 = 0;
|
||||||
|
SearchSpace_monitoringSlotPeriodicityAndOffset_sl16 = 0;
|
||||||
|
SearchSpace_monitoringSlotPeriodicityAndOffset_sl20 = 0;
|
||||||
|
SearchSpace_nrofCandidates_aggregationLevel1 = 0;
|
||||||
|
SearchSpace_nrofCandidates_aggregationLevel2 = 0;
|
||||||
|
SearchSpace_nrofCandidates_aggregationLevel4 = 0;
|
||||||
|
SearchSpace_nrofCandidates_aggregationLevel8 = 0;
|
||||||
|
SearchSpace_nrofCandidates_aggregationLevel16 = 0;
|
||||||
|
SearchSpace_searchSpaceType = 0;
|
||||||
|
Common_dci_Format2_0_nrofCandidates_SFI_aggregationLevel1 = 0;
|
||||||
|
Common_dci_Format2_0_nrofCandidates_SFI_aggregationLevel2 = 0;
|
||||||
|
Common_dci_Format2_0_nrofCandidates_SFI_aggregationLevel4 = 0;
|
||||||
|
Common_dci_Format2_0_nrofCandidates_SFI_aggregationLevel8 = 0;
|
||||||
|
Common_dci_Format2_0_nrofCandidates_SFI_aggregationLevel16 = 0;
|
||||||
|
Common_dci_Format2_3_monitoringPeriodicity = 0;
|
||||||
|
Common_dci_Format2_3_nrofPDCCH_Candidates = 0;
|
||||||
|
ue_Specific__dci_Formats = 0;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
srb1_parameters :
|
||||||
|
{
|
||||||
|
# timer_poll_retransmit = (ms) [5, 10, 15, 20,... 250, 300, 350, ... 500]
|
||||||
|
timer_poll_retransmit = 80;
|
||||||
|
|
||||||
|
# timer_reordering = (ms) [0,5, ... 100, 110, 120, ... ,200]
|
||||||
|
timer_reordering = 35;
|
||||||
|
|
||||||
|
# timer_reordering = (ms) [0,5, ... 250, 300, 350, ... ,500]
|
||||||
|
timer_status_prohibit = 0;
|
||||||
|
|
||||||
|
# poll_pdu = [4, 8, 16, 32 , 64, 128, 256, infinity(>10000)]
|
||||||
|
poll_pdu = 4;
|
||||||
|
|
||||||
|
# poll_byte = (kB) [25,50,75,100,125,250,375,500,750,1000,1250,1500,2000,3000,infinity(>10000)]
|
||||||
|
poll_byte = 99999;
|
||||||
|
|
||||||
|
# max_retx_threshold = [1, 2, 3, 4 , 6, 8, 16, 32]
|
||||||
|
max_retx_threshold = 4;
|
||||||
|
}
|
||||||
|
|
||||||
|
# ------- SCTP definitions
|
||||||
|
SCTP :
|
||||||
|
{
|
||||||
|
# Number of streams to use in input/output
|
||||||
|
SCTP_INSTREAMS = 2;
|
||||||
|
SCTP_OUTSTREAMS = 2;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
////////// MME parameters:
|
||||||
|
mme_ip_address = ( { ipv4 = "192.168.12.26";
|
||||||
|
ipv6 = "192:168:30::17";
|
||||||
|
active = "yes";
|
||||||
|
preference = "ipv4";
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
NETWORK_INTERFACES :
|
||||||
|
{
|
||||||
|
|
||||||
|
ENB_INTERFACE_NAME_FOR_S1_MME = "eth0";
|
||||||
|
ENB_IPV4_ADDRESS_FOR_S1_MME = "192.168.12.19/24";
|
||||||
|
ENB_INTERFACE_NAME_FOR_S1U = "eth0";
|
||||||
|
ENB_IPV4_ADDRESS_FOR_S1U = "192.168.12.19/24";
|
||||||
|
ENB_PORT_FOR_S1U = 2152; # Spec 2152
|
||||||
|
};
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|||||||
Reference in New Issue
Block a user