added ue_transmission_mode and nb_antenna_ports to eNB config file
transmisison mode gets set with RRCReconfiguration
This commit is contained in:
@@ -187,6 +187,9 @@ static void configure_rrc(uint32_t enb_id, const Enb_properties_array_t *enb_pro
|
|||||||
RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_n310[CC_id] = enb_properties->properties[enb_id]->ue_TimersAndConstants_n310[CC_id];
|
RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_n310[CC_id] = enb_properties->properties[enb_id]->ue_TimersAndConstants_n310[CC_id];
|
||||||
RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_t311[CC_id] = enb_properties->properties[enb_id]->ue_TimersAndConstants_t311[CC_id];
|
RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_t311[CC_id] = enb_properties->properties[enb_id]->ue_TimersAndConstants_t311[CC_id];
|
||||||
RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_n311[CC_id] = enb_properties->properties[enb_id]->ue_TimersAndConstants_n311[CC_id];
|
RRC_CONFIGURATION_REQ (msg_p).ue_TimersAndConstants_n311[CC_id] = enb_properties->properties[enb_id]->ue_TimersAndConstants_n311[CC_id];
|
||||||
|
|
||||||
|
RRC_CONFIGURATION_REQ (msg_p).ue_TransmissionMode[CC_id] = enb_properties->properties[enb_id]->ue_TransmissionMode[CC_id];
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
itti_send_msg_to_task (TASK_RRC_ENB, ENB_MODULE_ID_TO_INSTANCE(enb_id), msg_p);
|
itti_send_msg_to_task (TASK_RRC_ENB, ENB_MODULE_ID_TO_INSTANCE(enb_id), msg_p);
|
||||||
|
|||||||
@@ -84,6 +84,7 @@
|
|||||||
#define ENB_CONFIG_STRING_NID_CELL "Nid_cell"
|
#define ENB_CONFIG_STRING_NID_CELL "Nid_cell"
|
||||||
#define ENB_CONFIG_STRING_N_RB_DL "N_RB_DL"
|
#define ENB_CONFIG_STRING_N_RB_DL "N_RB_DL"
|
||||||
#define ENB_CONFIG_STRING_CELL_MBSFN "Nid_cell_mbsfn"
|
#define ENB_CONFIG_STRING_CELL_MBSFN "Nid_cell_mbsfn"
|
||||||
|
#define ENB_CONFIG_STRING_NB_ANT_PORTS "nb_antenna_ports"
|
||||||
#define ENB_CONFIG_STRING_NB_ANT_TX "nb_antennas_tx"
|
#define ENB_CONFIG_STRING_NB_ANT_TX "nb_antennas_tx"
|
||||||
#define ENB_CONFIG_STRING_NB_ANT_RX "nb_antennas_rx"
|
#define ENB_CONFIG_STRING_NB_ANT_RX "nb_antennas_rx"
|
||||||
#define ENB_CONFIG_STRING_TX_GAIN "tx_gain"
|
#define ENB_CONFIG_STRING_TX_GAIN "tx_gain"
|
||||||
@@ -145,6 +146,7 @@
|
|||||||
#define ENB_CONFIG_STRING_UETIMERS_T311 "ue_TimersAndConstants_t311"
|
#define ENB_CONFIG_STRING_UETIMERS_T311 "ue_TimersAndConstants_t311"
|
||||||
#define ENB_CONFIG_STRING_UETIMERS_N310 "ue_TimersAndConstants_n310"
|
#define ENB_CONFIG_STRING_UETIMERS_N310 "ue_TimersAndConstants_n310"
|
||||||
#define ENB_CONFIG_STRING_UETIMERS_N311 "ue_TimersAndConstants_n311"
|
#define ENB_CONFIG_STRING_UETIMERS_N311 "ue_TimersAndConstants_n311"
|
||||||
|
#define ENB_CONFIG_STRING_UE_TRANSMISSION_MODE "ue_TransmissionMode"
|
||||||
|
|
||||||
#define ENB_CONFIG_STRING_SRB1 "srb1_parameters"
|
#define ENB_CONFIG_STRING_SRB1 "srb1_parameters"
|
||||||
#define ENB_CONFIG_STRING_SRB1_TIMER_POLL_RETRANSMIT "timer_poll_retransmit"
|
#define ENB_CONFIG_STRING_SRB1_TIMER_POLL_RETRANSMIT "timer_poll_retransmit"
|
||||||
@@ -322,6 +324,7 @@ void enb_config_display(void)
|
|||||||
|
|
||||||
printf( "\n\tCell ID for CC %d:\t%"PRId16":\n",j,enb_properties.properties[i]->Nid_cell[j]);
|
printf( "\n\tCell ID for CC %d:\t%"PRId16":\n",j,enb_properties.properties[i]->Nid_cell[j]);
|
||||||
printf( "\tN_RB_DL for CC %d:\t%"PRId16":\n",j,enb_properties.properties[i]->N_RB_DL[j]);
|
printf( "\tN_RB_DL for CC %d:\t%"PRId16":\n",j,enb_properties.properties[i]->N_RB_DL[j]);
|
||||||
|
printf( "\tnb_antenna_ports for CC %d:\t%d:\n",j,enb_properties.properties[i]->nb_antenna_ports[j]);
|
||||||
printf( "\tnb_antennas_tx for CC %d:\t%d:\n",j,enb_properties.properties[i]->nb_antennas_tx[j]);
|
printf( "\tnb_antennas_tx for CC %d:\t%d:\n",j,enb_properties.properties[i]->nb_antennas_tx[j]);
|
||||||
printf( "\tnb_antennas_rx for CC %d:\t%d:\n",j,enb_properties.properties[i]->nb_antennas_rx[j]);
|
printf( "\tnb_antennas_rx for CC %d:\t%d:\n",j,enb_properties.properties[i]->nb_antennas_rx[j]);
|
||||||
|
|
||||||
@@ -411,6 +414,8 @@ void enb_config_display(void)
|
|||||||
printf( "\tue_TimersAndConstants_t311 for CC %d:\t%ld:\n",j,enb_properties.properties[i]->ue_TimersAndConstants_t311[j]);
|
printf( "\tue_TimersAndConstants_t311 for CC %d:\t%ld:\n",j,enb_properties.properties[i]->ue_TimersAndConstants_t311[j]);
|
||||||
printf( "\tue_TimersAndConstants_n311 for CC %d:\t%ld:\n",j,enb_properties.properties[i]->ue_TimersAndConstants_n311[j]);
|
printf( "\tue_TimersAndConstants_n311 for CC %d:\t%ld:\n",j,enb_properties.properties[i]->ue_TimersAndConstants_n311[j]);
|
||||||
|
|
||||||
|
printf( "\tue_TransmissionMode for CC %d:\t%ld:\n",j,enb_properties.properties[i]->ue_TransmissionMode[j]);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
for (j=0; j < enb_properties.properties[i]->num_otg_elements; j++) {
|
for (j=0; j < enb_properties.properties[i]->num_otg_elements; j++) {
|
||||||
@@ -526,6 +531,7 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP)
|
|||||||
libconfig_int Nid_cell = 0;
|
libconfig_int Nid_cell = 0;
|
||||||
libconfig_int Nid_cell_mbsfn = 0;
|
libconfig_int Nid_cell_mbsfn = 0;
|
||||||
libconfig_int N_RB_DL = 0;
|
libconfig_int N_RB_DL = 0;
|
||||||
|
libconfig_int nb_antenna_ports = 0;
|
||||||
libconfig_int nb_antennas_tx = 0;
|
libconfig_int nb_antennas_tx = 0;
|
||||||
libconfig_int nb_antennas_rx = 0;
|
libconfig_int nb_antennas_rx = 0;
|
||||||
libconfig_int tx_gain = 0;
|
libconfig_int tx_gain = 0;
|
||||||
@@ -589,7 +595,7 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP)
|
|||||||
libconfig_int ue_TimersAndConstants_t311 = 0;
|
libconfig_int ue_TimersAndConstants_t311 = 0;
|
||||||
libconfig_int ue_TimersAndConstants_n310 = 0;
|
libconfig_int ue_TimersAndConstants_n310 = 0;
|
||||||
libconfig_int ue_TimersAndConstants_n311 = 0;
|
libconfig_int ue_TimersAndConstants_n311 = 0;
|
||||||
|
libconfig_int ue_TransmissionMode = 0;
|
||||||
|
|
||||||
|
|
||||||
libconfig_int srb1_timer_poll_retransmit = 0;
|
libconfig_int srb1_timer_poll_retransmit = 0;
|
||||||
@@ -797,6 +803,7 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP)
|
|||||||
&& config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_NID_CELL, &Nid_cell)
|
&& config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_NID_CELL, &Nid_cell)
|
||||||
&& config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_N_RB_DL, &N_RB_DL)
|
&& config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_N_RB_DL, &N_RB_DL)
|
||||||
&& config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_CELL_MBSFN, &Nid_cell_mbsfn)
|
&& config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_CELL_MBSFN, &Nid_cell_mbsfn)
|
||||||
|
&& config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_NB_ANT_PORTS, &nb_antenna_ports)
|
||||||
&& config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_NB_ANT_TX, &nb_antennas_tx)
|
&& config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_NB_ANT_TX, &nb_antennas_tx)
|
||||||
&& config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_NB_ANT_RX, &nb_antennas_rx)
|
&& config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_NB_ANT_RX, &nb_antennas_rx)
|
||||||
&& config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_TX_GAIN, &tx_gain)
|
&& config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_TX_GAIN, &tx_gain)
|
||||||
@@ -852,6 +859,7 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP)
|
|||||||
&& config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_UETIMERS_T311, &ue_TimersAndConstants_t311)
|
&& config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_UETIMERS_T311, &ue_TimersAndConstants_t311)
|
||||||
&& config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_UETIMERS_N310, &ue_TimersAndConstants_n310)
|
&& config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_UETIMERS_N310, &ue_TimersAndConstants_n310)
|
||||||
&& config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_UETIMERS_N311, &ue_TimersAndConstants_n311)
|
&& config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_UETIMERS_N311, &ue_TimersAndConstants_n311)
|
||||||
|
&& config_setting_lookup_int(component_carrier, ENB_CONFIG_STRING_UE_TRANSMISSION_MODE, &ue_TransmissionMode)
|
||||||
|
|
||||||
#ifdef Rel10
|
#ifdef Rel10
|
||||||
|
|
||||||
@@ -968,6 +976,13 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP)
|
|||||||
|
|
||||||
enb_properties.properties[enb_properties_index]->nb_antennas_tx[j] = nb_antennas_tx;
|
enb_properties.properties[enb_properties_index]->nb_antennas_tx[j] = nb_antennas_tx;
|
||||||
|
|
||||||
|
if ((nb_antenna_ports <1) || (nb_antenna_ports > 2))
|
||||||
|
AssertError (0, parse_errors ++,
|
||||||
|
"Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for nb_antenna_ports choice: 1..2 !\n",
|
||||||
|
lib_config_file_name_pP, i, nb_antenna_ports);
|
||||||
|
|
||||||
|
enb_properties.properties[enb_properties_index]->nb_antenna_ports[j] = nb_antenna_ports;
|
||||||
|
|
||||||
if ((nb_antennas_tx <1) || (nb_antennas_tx > 64))
|
if ((nb_antennas_tx <1) || (nb_antennas_tx > 64))
|
||||||
AssertError (0, parse_errors ++,
|
AssertError (0, parse_errors ++,
|
||||||
"Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for nb_antennas_tx choice: 1..64 !\n",
|
"Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for nb_antennas_tx choice: 1..64 !\n",
|
||||||
@@ -1832,6 +1847,35 @@ const Enb_properties_array_t *enb_config_init(char* lib_config_file_name_pP)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
switch (ue_TransmissionMode) {
|
||||||
|
case 1:
|
||||||
|
enb_properties.properties[enb_properties_index]->ue_TransmissionMode[j] = AntennaInfoDedicated__transmissionMode_tm1;
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
enb_properties.properties[enb_properties_index]->ue_TransmissionMode[j] = AntennaInfoDedicated__transmissionMode_tm2;
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
enb_properties.properties[enb_properties_index]->ue_TransmissionMode[j] = AntennaInfoDedicated__transmissionMode_tm3;
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
enb_properties.properties[enb_properties_index]->ue_TransmissionMode[j] = AntennaInfoDedicated__transmissionMode_tm4;
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
enb_properties.properties[enb_properties_index]->ue_TransmissionMode[j] = AntennaInfoDedicated__transmissionMode_tm5;
|
||||||
|
break;
|
||||||
|
case 6:
|
||||||
|
enb_properties.properties[enb_properties_index]->ue_TransmissionMode[j] = AntennaInfoDedicated__transmissionMode_tm6;
|
||||||
|
break;
|
||||||
|
case 7:
|
||||||
|
enb_properties.properties[enb_properties_index]->ue_TransmissionMode[j] = AntennaInfoDedicated__transmissionMode_tm7;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
AssertError (0, parse_errors ++,
|
||||||
|
"Failed to parse eNB configuration file %s, enb %d unknown value \"%d\" for ue_TransmissionMode choice: 1,2,3,4,5,6,7",
|
||||||
|
lib_config_file_name_pP, i, ue_TransmissionMode);
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -136,9 +136,10 @@ typedef struct Enb_properties_s {
|
|||||||
|
|
||||||
int16_t Nid_cell[1+MAX_NUM_CCs];// for testing, change later
|
int16_t Nid_cell[1+MAX_NUM_CCs];// for testing, change later
|
||||||
int16_t N_RB_DL[1+MAX_NUM_CCs];// for testing, change later
|
int16_t N_RB_DL[1+MAX_NUM_CCs];// for testing, change later
|
||||||
int nb_antennas_tx[1+MAX_NUM_CCs];
|
int nb_antenna_ports[1+MAX_NUM_CCs];
|
||||||
|
int nb_antennas_tx[1+MAX_NUM_CCs];
|
||||||
int nb_antennas_rx[1+MAX_NUM_CCs];
|
int nb_antennas_rx[1+MAX_NUM_CCs];
|
||||||
int tx_gain[1+MAX_NUM_CCs];
|
int tx_gain[1+MAX_NUM_CCs];
|
||||||
int rx_gain[1+MAX_NUM_CCs];
|
int rx_gain[1+MAX_NUM_CCs];
|
||||||
long prach_root[1+MAX_NUM_CCs];
|
long prach_root[1+MAX_NUM_CCs];
|
||||||
long prach_config_index[1+MAX_NUM_CCs];
|
long prach_config_index[1+MAX_NUM_CCs];
|
||||||
@@ -198,7 +199,7 @@ typedef struct Enb_properties_s {
|
|||||||
long ue_TimersAndConstants_t311[1+MAX_NUM_CCs];
|
long ue_TimersAndConstants_t311[1+MAX_NUM_CCs];
|
||||||
long ue_TimersAndConstants_n310[1+MAX_NUM_CCs];
|
long ue_TimersAndConstants_n310[1+MAX_NUM_CCs];
|
||||||
long ue_TimersAndConstants_n311[1+MAX_NUM_CCs];
|
long ue_TimersAndConstants_n311[1+MAX_NUM_CCs];
|
||||||
|
long ue_TransmissionMode[1+MAX_NUM_CCs];
|
||||||
|
|
||||||
long srb1_timer_poll_retransmit;
|
long srb1_timer_poll_retransmit;
|
||||||
long srb1_timer_reordering;
|
long srb1_timer_reordering;
|
||||||
|
|||||||
@@ -430,6 +430,9 @@ typedef struct eNB_RRC_INST_s {
|
|||||||
/// localization list for aggregated measurements from PHY
|
/// localization list for aggregated measurements from PHY
|
||||||
struct list loc_list;
|
struct list loc_list;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
//pointer to configuration
|
||||||
|
RrcConfigurationReq *configuration;
|
||||||
} eNB_RRC_INST;
|
} eNB_RRC_INST;
|
||||||
|
|
||||||
#define MAX_UE_CAPABILITY_SIZE 255
|
#define MAX_UE_CAPABILITY_SIZE 255
|
||||||
|
|||||||
@@ -1133,8 +1133,8 @@ rrc_eNB_generate_defaultRRCConnectionReconfiguration(
|
|||||||
int i;
|
int i;
|
||||||
|
|
||||||
// configure SRB1/SRB2, PhysicalConfigDedicated, MAC_MainConfig for UE
|
// configure SRB1/SRB2, PhysicalConfigDedicated, MAC_MainConfig for UE
|
||||||
//eNB_RRC_INST* rrc_inst = &eNB_rrc_inst[ctxt_pP->module_id];
|
eNB_RRC_INST* rrc_inst = &eNB_rrc_inst[ctxt_pP->module_id];
|
||||||
//struct PhysicalConfigDedicated** physicalConfigDedicated = &ue_context_pP->ue_context.physicalConfigDedicated;
|
struct PhysicalConfigDedicated** physicalConfigDedicated = &ue_context_pP->ue_context.physicalConfigDedicated;
|
||||||
|
|
||||||
struct SRB_ToAddMod *SRB2_config = NULL;
|
struct SRB_ToAddMod *SRB2_config = NULL;
|
||||||
struct SRB_ToAddMod__rlc_Config *SRB2_rlc_config = NULL;
|
struct SRB_ToAddMod__rlc_Config *SRB2_rlc_config = NULL;
|
||||||
@@ -1360,6 +1360,14 @@ rrc_eNB_generate_defaultRRCConnectionReconfiguration(
|
|||||||
//sps_RA_ConfigList_rlola = NULL;
|
//sps_RA_ConfigList_rlola = NULL;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
//change the transmission mode for the primary component carrier
|
||||||
|
//TODO: change TM for secondary CC in SCelltoaddmodlist
|
||||||
|
if (*physicalConfigDedicated)
|
||||||
|
if ((*physicalConfigDedicated)->antennaInfo) {
|
||||||
|
(*physicalConfigDedicated)->antennaInfo->choice.explicitValue.transmissionMode = rrc_inst->configuration->ue_TransmissionMode[0];
|
||||||
|
LOG_D(RRC,"Setting transmission mode to %d+1\n",rrc_inst->configuration->ue_TransmissionMode[0]);
|
||||||
|
}
|
||||||
|
|
||||||
// Measurement ID list
|
// Measurement ID list
|
||||||
MeasId_list = CALLOC(1, sizeof(*MeasId_list));
|
MeasId_list = CALLOC(1, sizeof(*MeasId_list));
|
||||||
memset((void *)MeasId_list, 0, sizeof(*MeasId_list));
|
memset((void *)MeasId_list, 0, sizeof(*MeasId_list));
|
||||||
@@ -1672,10 +1680,10 @@ rrc_eNB_generate_defaultRRCConnectionReconfiguration(
|
|||||||
(DRB_ToAddModList_t*)*DRB_configList,
|
(DRB_ToAddModList_t*)*DRB_configList,
|
||||||
(DRB_ToReleaseList_t*)NULL, // DRB2_list,
|
(DRB_ToReleaseList_t*)NULL, // DRB2_list,
|
||||||
(struct SPS_Config*)NULL, // *sps_Config,
|
(struct SPS_Config*)NULL, // *sps_Config,
|
||||||
#ifdef EXMIMO_IOT
|
|
||||||
NULL, NULL, NULL, NULL,NULL,
|
|
||||||
#else
|
|
||||||
(struct PhysicalConfigDedicated*)*physicalConfigDedicated,
|
(struct PhysicalConfigDedicated*)*physicalConfigDedicated,
|
||||||
|
#ifdef EXMIMO_IOT
|
||||||
|
NULL, NULL, NULL,NULL,
|
||||||
|
#else
|
||||||
(MeasObjectToAddModList_t*)MeasObj_list,
|
(MeasObjectToAddModList_t*)MeasObj_list,
|
||||||
(ReportConfigToAddModList_t*)ReportConfig_list,
|
(ReportConfigToAddModList_t*)ReportConfig_list,
|
||||||
(QuantityConfig_t*)quantityConfig,
|
(QuantityConfig_t*)quantityConfig,
|
||||||
@@ -3449,6 +3457,7 @@ openair_rrc_lite_eNB_init(
|
|||||||
eNB_rrc_inst[ctxt.module_id].initial_id2_s1ap_ids = hashtable_create (NUMBER_OF_UE_MAX * 2, NULL, NULL);
|
eNB_rrc_inst[ctxt.module_id].initial_id2_s1ap_ids = hashtable_create (NUMBER_OF_UE_MAX * 2, NULL, NULL);
|
||||||
eNB_rrc_inst[ctxt.module_id].s1ap_id2_s1ap_ids = hashtable_create (NUMBER_OF_UE_MAX * 2, NULL, NULL);
|
eNB_rrc_inst[ctxt.module_id].s1ap_id2_s1ap_ids = hashtable_create (NUMBER_OF_UE_MAX * 2, NULL, NULL);
|
||||||
|
|
||||||
|
eNB_rrc_inst[ctxt.module_id].configuration = configuration;
|
||||||
|
|
||||||
/// System Information INIT
|
/// System Information INIT
|
||||||
|
|
||||||
|
|||||||
@@ -33,6 +33,7 @@ eNBs =
|
|||||||
Nid_cell = 0;
|
Nid_cell = 0;
|
||||||
N_RB_DL = 25;
|
N_RB_DL = 25;
|
||||||
Nid_cell_mbsfn = 0;
|
Nid_cell_mbsfn = 0;
|
||||||
|
nb_antenna_ports = 2;
|
||||||
nb_antennas_tx = 2;
|
nb_antennas_tx = 2;
|
||||||
nb_antennas_rx = 2;
|
nb_antennas_rx = 2;
|
||||||
tx_gain = 25;
|
tx_gain = 25;
|
||||||
@@ -97,6 +98,8 @@ eNBs =
|
|||||||
ue_TimersAndConstants_t311 = 10000;
|
ue_TimersAndConstants_t311 = 10000;
|
||||||
ue_TimersAndConstants_n310 = 20;
|
ue_TimersAndConstants_n310 = 20;
|
||||||
ue_TimersAndConstants_n311 = 1;
|
ue_TimersAndConstants_n311 = 1;
|
||||||
|
|
||||||
|
ue_TransmissionMode = 2;
|
||||||
|
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
@@ -165,13 +168,13 @@ eNBs =
|
|||||||
*/
|
*/
|
||||||
log_config :
|
log_config :
|
||||||
{
|
{
|
||||||
global_log_level ="info";
|
global_log_level ="debug";
|
||||||
global_log_verbosity ="medium";
|
global_log_verbosity ="medium";
|
||||||
hw_log_level ="debug";
|
hw_log_level ="debug";
|
||||||
hw_log_verbosity ="medium";
|
hw_log_verbosity ="medium";
|
||||||
phy_log_level ="info";
|
phy_log_level ="debug";
|
||||||
phy_log_verbosity ="medium";
|
phy_log_verbosity ="medium";
|
||||||
mac_log_level ="info";
|
mac_log_level ="debug";
|
||||||
mac_log_verbosity ="high";
|
mac_log_verbosity ="high";
|
||||||
rlc_log_level ="info";
|
rlc_log_level ="info";
|
||||||
rlc_log_verbosity ="medium";
|
rlc_log_verbosity ="medium";
|
||||||
|
|||||||
@@ -33,6 +33,7 @@ eNBs =
|
|||||||
Nid_cell = 0;
|
Nid_cell = 0;
|
||||||
N_RB_DL = 25;
|
N_RB_DL = 25;
|
||||||
Nid_cell_mbsfn = 0;
|
Nid_cell_mbsfn = 0;
|
||||||
|
nb_antenna_ports = 1;
|
||||||
nb_antennas_tx = 1;
|
nb_antennas_tx = 1;
|
||||||
nb_antennas_rx = 1;
|
nb_antennas_rx = 1;
|
||||||
tx_gain = 25;
|
tx_gain = 25;
|
||||||
@@ -97,6 +98,8 @@ eNBs =
|
|||||||
ue_TimersAndConstants_t311 = 10000;
|
ue_TimersAndConstants_t311 = 10000;
|
||||||
ue_TimersAndConstants_n310 = 20;
|
ue_TimersAndConstants_n310 = 20;
|
||||||
ue_TimersAndConstants_n311 = 1;
|
ue_TimersAndConstants_n311 = 1;
|
||||||
|
|
||||||
|
ue_TransmissionMode = 1;
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@@ -53,7 +53,6 @@ PHY_VARS_eNB* init_lte_eNB(LTE_DL_FRAME_PARMS *frame_parms,
|
|||||||
uint8_t eNB_id,
|
uint8_t eNB_id,
|
||||||
uint8_t Nid_cell,
|
uint8_t Nid_cell,
|
||||||
uint8_t cooperation_flag,
|
uint8_t cooperation_flag,
|
||||||
uint8_t transmission_mode,
|
|
||||||
uint8_t abstraction_flag)
|
uint8_t abstraction_flag)
|
||||||
{
|
{
|
||||||
|
|
||||||
@@ -72,7 +71,6 @@ PHY_VARS_eNB* init_lte_eNB(LTE_DL_FRAME_PARMS *frame_parms,
|
|||||||
LOG_I(PHY,"init eNB: number of ue max %d number of enb max %d number of harq pid max %d\n",
|
LOG_I(PHY,"init eNB: number of ue max %d number of enb max %d number of harq pid max %d\n",
|
||||||
NUMBER_OF_UE_MAX, NUMBER_OF_eNB_MAX, NUMBER_OF_HARQ_PID_MAX);
|
NUMBER_OF_UE_MAX, NUMBER_OF_eNB_MAX, NUMBER_OF_HARQ_PID_MAX);
|
||||||
LOG_I(PHY,"init eNB: N_RB_DL %d\n", frame_parms->N_RB_DL);
|
LOG_I(PHY,"init eNB: N_RB_DL %d\n", frame_parms->N_RB_DL);
|
||||||
LOG_I(PHY,"init eNB: Transmission mode %d\n", transmission_mode);
|
|
||||||
|
|
||||||
for (i=0; i<NUMBER_OF_UE_MAX; i++) {
|
for (i=0; i<NUMBER_OF_UE_MAX; i++) {
|
||||||
for (j=0; j<2; j++) {
|
for (j=0; j<2; j++) {
|
||||||
@@ -96,7 +94,7 @@ PHY_VARS_eNB* init_lte_eNB(LTE_DL_FRAME_PARMS *frame_parms,
|
|||||||
|
|
||||||
// this is the transmission mode for the signalling channels
|
// this is the transmission mode for the signalling channels
|
||||||
// this will be overwritten with the real transmission mode by the RRC once the UE is connected
|
// this will be overwritten with the real transmission mode by the RRC once the UE is connected
|
||||||
PHY_vars_eNB->transmission_mode[i] = transmission_mode;
|
PHY_vars_eNB->transmission_mode[i] = frame_parms->nb_antenna_ports_eNB==1 ? 1 : 2;
|
||||||
#ifdef LOCALIZATION
|
#ifdef LOCALIZATION
|
||||||
PHY_vars_eNB->ulsch_eNB[1+i]->aggregation_period_ms = 5000; // 5000 milliseconds // could be given as an argument (TBD))
|
PHY_vars_eNB->ulsch_eNB[1+i]->aggregation_period_ms = 5000; // 5000 milliseconds // could be given as an argument (TBD))
|
||||||
struct timeval ts;
|
struct timeval ts;
|
||||||
@@ -156,8 +154,8 @@ PHY_VARS_eNB* init_lte_eNB(LTE_DL_FRAME_PARMS *frame_parms,
|
|||||||
|
|
||||||
PHY_VARS_UE* init_lte_UE(LTE_DL_FRAME_PARMS *frame_parms,
|
PHY_VARS_UE* init_lte_UE(LTE_DL_FRAME_PARMS *frame_parms,
|
||||||
uint8_t UE_id,
|
uint8_t UE_id,
|
||||||
uint8_t abstraction_flag,
|
uint8_t abstraction_flag)
|
||||||
uint8_t transmission_mode)
|
|
||||||
{
|
{
|
||||||
|
|
||||||
int i,j;
|
int i,j;
|
||||||
@@ -190,7 +188,7 @@ PHY_VARS_UE* init_lte_UE(LTE_DL_FRAME_PARMS *frame_parms,
|
|||||||
PHY_vars_UE->dlsch_ue_SI[i] = new_ue_dlsch(1,1,NSOFT,MAX_TURBO_ITERATIONS,frame_parms->N_RB_DL, abstraction_flag);
|
PHY_vars_UE->dlsch_ue_SI[i] = new_ue_dlsch(1,1,NSOFT,MAX_TURBO_ITERATIONS,frame_parms->N_RB_DL, abstraction_flag);
|
||||||
PHY_vars_UE->dlsch_ue_ra[i] = new_ue_dlsch(1,1,NSOFT,MAX_TURBO_ITERATIONS,frame_parms->N_RB_DL, abstraction_flag);
|
PHY_vars_UE->dlsch_ue_ra[i] = new_ue_dlsch(1,1,NSOFT,MAX_TURBO_ITERATIONS,frame_parms->N_RB_DL, abstraction_flag);
|
||||||
|
|
||||||
PHY_vars_UE->transmission_mode[i] = transmission_mode;
|
PHY_vars_UE->transmission_mode[i] = frame_parms->nb_antenna_ports_eNB==1 ? 1 : 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
PHY_vars_UE->lte_frame_parms.pucch_config_common.deltaPUCCH_Shift = 1;
|
PHY_vars_UE->lte_frame_parms.pucch_config_common.deltaPUCCH_Shift = 1;
|
||||||
@@ -228,8 +226,12 @@ void init_lte_vars(LTE_DL_FRAME_PARMS *frame_parms[MAX_NUM_CCs],
|
|||||||
uint8_t extended_prefix_flag,
|
uint8_t extended_prefix_flag,
|
||||||
uint8_t N_RB_DL,
|
uint8_t N_RB_DL,
|
||||||
uint16_t Nid_cell,
|
uint16_t Nid_cell,
|
||||||
uint8_t cooperation_flag,uint8_t transmission_mode,uint8_t abstraction_flag,
|
uint8_t cooperation_flag,
|
||||||
int nb_antennas_rx, int nb_antennas_tx, uint8_t eMBMS_active_state)
|
uint8_t nb_antenna_ports,
|
||||||
|
uint8_t abstraction_flag,
|
||||||
|
int nb_antennas_rx,
|
||||||
|
int nb_antennas_tx,
|
||||||
|
uint8_t eMBMS_active_state)
|
||||||
{
|
{
|
||||||
|
|
||||||
uint8_t eNB_id,UE_id,RN_id,CC_id;
|
uint8_t eNB_id,UE_id,RN_id,CC_id;
|
||||||
@@ -254,7 +256,7 @@ void init_lte_vars(LTE_DL_FRAME_PARMS *frame_parms[MAX_NUM_CCs],
|
|||||||
(frame_parms[CC_id])->nushift = (Nid_cell%6);
|
(frame_parms[CC_id])->nushift = (Nid_cell%6);
|
||||||
(frame_parms[CC_id])->nb_antennas_tx = nb_antennas_tx;
|
(frame_parms[CC_id])->nb_antennas_tx = nb_antennas_tx;
|
||||||
(frame_parms[CC_id])->nb_antennas_rx = nb_antennas_rx;
|
(frame_parms[CC_id])->nb_antennas_rx = nb_antennas_rx;
|
||||||
(frame_parms[CC_id])->nb_antenna_ports_eNB = (transmission_mode == 1 || transmission_mode == 7) ? 1 : 2;
|
(frame_parms[CC_id])->nb_antenna_ports_eNB = nb_antenna_ports;
|
||||||
(frame_parms[CC_id])->mode1_flag = (frame_parms[CC_id])->nb_antenna_ports_eNB==1 ? 1 : 0;
|
(frame_parms[CC_id])->mode1_flag = (frame_parms[CC_id])->nb_antenna_ports_eNB==1 ? 1 : 0;
|
||||||
|
|
||||||
init_frame_parms(frame_parms[CC_id],1);
|
init_frame_parms(frame_parms[CC_id],1);
|
||||||
@@ -277,7 +279,7 @@ void init_lte_vars(LTE_DL_FRAME_PARMS *frame_parms[MAX_NUM_CCs],
|
|||||||
PHY_vars_eNB_g[eNB_id] = (PHY_VARS_eNB**) malloc(MAX_NUM_CCs*sizeof(PHY_VARS_eNB*));
|
PHY_vars_eNB_g[eNB_id] = (PHY_VARS_eNB**) malloc(MAX_NUM_CCs*sizeof(PHY_VARS_eNB*));
|
||||||
|
|
||||||
for (CC_id=0; CC_id<MAX_NUM_CCs; CC_id++) {
|
for (CC_id=0; CC_id<MAX_NUM_CCs; CC_id++) {
|
||||||
PHY_vars_eNB_g[eNB_id][CC_id] = init_lte_eNB(frame_parms[CC_id],eNB_id,Nid_cell,cooperation_flag,transmission_mode,abstraction_flag);
|
PHY_vars_eNB_g[eNB_id][CC_id] = init_lte_eNB(frame_parms[CC_id],eNB_id,Nid_cell,cooperation_flag,abstraction_flag);
|
||||||
PHY_vars_eNB_g[eNB_id][CC_id]->Mod_id=eNB_id;
|
PHY_vars_eNB_g[eNB_id][CC_id]->Mod_id=eNB_id;
|
||||||
PHY_vars_eNB_g[eNB_id][CC_id]->CC_id=CC_id;
|
PHY_vars_eNB_g[eNB_id][CC_id]->CC_id=CC_id;
|
||||||
}
|
}
|
||||||
@@ -294,7 +296,7 @@ void init_lte_vars(LTE_DL_FRAME_PARMS *frame_parms[MAX_NUM_CCs],
|
|||||||
(frame_parms[CC_id])->nb_antennas_rx = nb_antennas_rx;
|
(frame_parms[CC_id])->nb_antennas_rx = nb_antennas_rx;
|
||||||
|
|
||||||
|
|
||||||
PHY_vars_UE_g[UE_id][CC_id] = init_lte_UE(frame_parms[CC_id], UE_id,abstraction_flag,transmission_mode);
|
PHY_vars_UE_g[UE_id][CC_id] = init_lte_UE(frame_parms[CC_id], UE_id,abstraction_flag);
|
||||||
PHY_vars_UE_g[UE_id][CC_id]->Mod_id=UE_id;
|
PHY_vars_UE_g[UE_id][CC_id]->Mod_id=UE_id;
|
||||||
PHY_vars_UE_g[UE_id][CC_id]->CC_id=CC_id;
|
PHY_vars_UE_g[UE_id][CC_id]->CC_id=CC_id;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -34,13 +34,11 @@ PHY_VARS_eNB* init_lte_eNB(LTE_DL_FRAME_PARMS *frame_parms,
|
|||||||
uint8_t eNB_id,
|
uint8_t eNB_id,
|
||||||
uint8_t Nid_cell,
|
uint8_t Nid_cell,
|
||||||
uint8_t cooperation_flag,
|
uint8_t cooperation_flag,
|
||||||
uint8_t transmission_mode,
|
|
||||||
uint8_t abstraction_flag);
|
uint8_t abstraction_flag);
|
||||||
|
|
||||||
PHY_VARS_UE* init_lte_UE(LTE_DL_FRAME_PARMS *frame_parms,
|
PHY_VARS_UE* init_lte_UE(LTE_DL_FRAME_PARMS *frame_parms,
|
||||||
uint8_t UE_id,
|
uint8_t UE_id,
|
||||||
uint8_t abstraction_flag,
|
uint8_t abstraction_flag);
|
||||||
uint8_t transmission_mode);
|
|
||||||
|
|
||||||
PHY_VARS_RN* init_lte_RN(LTE_DL_FRAME_PARMS *frame_parms,
|
PHY_VARS_RN* init_lte_RN(LTE_DL_FRAME_PARMS *frame_parms,
|
||||||
uint8_t RN_id,
|
uint8_t RN_id,
|
||||||
|
|||||||
@@ -683,6 +683,7 @@ void get_simulation_options(int argc, char *argv[])
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case 'x':
|
case 'x':
|
||||||
|
/*
|
||||||
oai_emulation.info.transmission_mode[0] = atoi (optarg);
|
oai_emulation.info.transmission_mode[0] = atoi (optarg);
|
||||||
|
|
||||||
if ((oai_emulation.info.transmission_mode[0] != 1) && (oai_emulation.info.transmission_mode[0] != 2) && (oai_emulation.info.transmission_mode[0] != 3)
|
if ((oai_emulation.info.transmission_mode[0] != 1) && (oai_emulation.info.transmission_mode[0] != 2) && (oai_emulation.info.transmission_mode[0] != 3)
|
||||||
@@ -690,6 +691,9 @@ void get_simulation_options(int argc, char *argv[])
|
|||||||
printf("Unsupported transmission mode %d\n",oai_emulation.info.transmission_mode[0]);
|
printf("Unsupported transmission mode %d\n",oai_emulation.info.transmission_mode[0]);
|
||||||
exit(-1);
|
exit(-1);
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
printf("Option -x deprecated. Please set transmission mode in eNB config file\n");
|
||||||
|
exit(-1);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -925,8 +929,19 @@ void init_openair1(void)
|
|||||||
|
|
||||||
// change the nb_connected_eNB
|
// change the nb_connected_eNB
|
||||||
for (CC_id=0; CC_id<MAX_NUM_CCs; CC_id++) {
|
for (CC_id=0; CC_id<MAX_NUM_CCs; CC_id++) {
|
||||||
init_lte_vars (&frame_parms[CC_id], oai_emulation.info.frame_type[CC_id], oai_emulation.info.tdd_config[CC_id], oai_emulation.info.tdd_config_S[CC_id],oai_emulation.info.extended_prefix_flag[CC_id],
|
init_lte_vars (&frame_parms[CC_id],
|
||||||
oai_emulation.info.N_RB_DL[CC_id], Nid_cell, cooperation_flag, oai_emulation.info.transmission_mode[CC_id], abstraction_flag,enb_properties->properties[0]->nb_antennas_tx[CC_id],enb_properties->properties[0]->nb_antennas_tx[CC_id], oai_emulation.info.eMBMS_active_state);
|
oai_emulation.info.frame_type[CC_id],
|
||||||
|
oai_emulation.info.tdd_config[CC_id],
|
||||||
|
oai_emulation.info.tdd_config_S[CC_id],
|
||||||
|
oai_emulation.info.extended_prefix_flag[CC_id],
|
||||||
|
oai_emulation.info.N_RB_DL[CC_id],
|
||||||
|
Nid_cell,
|
||||||
|
cooperation_flag,
|
||||||
|
enb_properties->properties[0]->nb_antenna_ports[CC_id],
|
||||||
|
abstraction_flag,
|
||||||
|
enb_properties->properties[0]->nb_antennas_tx[CC_id],
|
||||||
|
enb_properties->properties[0]->nb_antennas_tx[CC_id],
|
||||||
|
oai_emulation.info.eMBMS_active_state);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (eNB_id=0; eNB_id<NB_eNB_INST; eNB_id++) {
|
for (eNB_id=0; eNB_id<NB_eNB_INST; eNB_id++) {
|
||||||
|
|||||||
Reference in New Issue
Block a user