Merge branch 'develop' into enhancement-10-harmony
Conflicts: cmake_targets/autotests/test_case_list.xml openair1/PHY/INIT/lte_init.c openair1/PHY/INIT/lte_param_init.c openair1/PHY/LTE_TRANSPORT/pucch.c openair1/SIMULATION/LTE_PHY/pdcchsim.c openair2/ENB_APP/enb_config.h openair2/RRC/LITE/rrc_eNB.c targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.generic.oaisim.local_no_mme.conf targets/PROJECTS/GENERIC-LTE-EPC/CONF/enb.band7.tm1.usrpb210.conf targets/RT/USER/lte-softmodem.c targets/SIMU/USER/init_lte.c targets/SIMU/USER/oaisim.c targets/SIMU/USER/oaisim_functions.c
This commit is contained in:
@@ -50,7 +50,6 @@ PHY_VARS_eNB* init_lte_eNB(LTE_DL_FRAME_PARMS *frame_parms,
|
||||
uint8_t eNB_id,
|
||||
uint8_t Nid_cell,
|
||||
uint8_t cooperation_flag,
|
||||
uint8_t transmission_mode,
|
||||
uint8_t abstraction_flag)
|
||||
{
|
||||
|
||||
@@ -72,6 +71,7 @@ PHY_VARS_eNB* init_lte_eNB(LTE_DL_FRAME_PARMS *frame_parms,
|
||||
LOG_I(PHY,"init eNB: Transmission mode %d\n", transmission_mode);
|
||||
LOG_I(PHY,"init eNB: prach_config_index %d\n", frame_parms->prach_config_common.prach_ConfigInfo.prach_ConfigIndex);
|
||||
|
||||
|
||||
for (i=0; i<NUMBER_OF_UE_MAX; i++) {
|
||||
for (j=0; j<2; j++) {
|
||||
PHY_vars_eNB->dlsch[i][j] = new_eNB_dlsch(1,8,NSOFT,frame_parms->N_RB_DL,abstraction_flag);
|
||||
@@ -94,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 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_antennas_tx_eNB==1 ? 1 : 2;
|
||||
#ifdef LOCALIZATION
|
||||
PHY_vars_eNB->ulsch[1+i]->aggregation_period_ms = 5000; // 5000 milliseconds // could be given as an argument (TBD))
|
||||
struct timeval ts;
|
||||
@@ -154,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,
|
||||
uint8_t UE_id,
|
||||
uint8_t abstraction_flag,
|
||||
uint8_t transmission_mode)
|
||||
uint8_t abstraction_flag)
|
||||
|
||||
{
|
||||
|
||||
int i,j;
|
||||
@@ -188,7 +188,7 @@ PHY_VARS_UE* init_lte_UE(LTE_DL_FRAME_PARMS *frame_parms,
|
||||
PHY_vars_UE->dlsch_SI[i] = new_ue_dlsch(1,1,NSOFT,MAX_TURBO_ITERATIONS,frame_parms->N_RB_DL, abstraction_flag);
|
||||
PHY_vars_UE->dlsch_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_antennas_tx_eNB==1 ? 1 : 2;
|
||||
}
|
||||
|
||||
PHY_vars_UE->frame_parms.pucch_config_common.deltaPUCCH_Shift = 1;
|
||||
@@ -226,8 +226,13 @@ void init_lte_vars(LTE_DL_FRAME_PARMS *frame_parms[MAX_NUM_CCs],
|
||||
uint8_t extended_prefix_flag,
|
||||
uint8_t N_RB_DL,
|
||||
uint16_t Nid_cell,
|
||||
uint8_t cooperation_flag,uint8_t transmission_mode,uint8_t abstraction_flag,
|
||||
int nb_antennas_rx, uint8_t eMBMS_active_state)
|
||||
uint8_t cooperation_flag,
|
||||
uint8_t nb_antenna_ports,
|
||||
uint8_t abstraction_flag,
|
||||
int nb_antennas_rx,
|
||||
int nb_antennas_tx,
|
||||
int nb_antennas_rx_ue,
|
||||
uint8_t eMBMS_active_state)
|
||||
{
|
||||
|
||||
uint8_t eNB_id,UE_id,RN_id,CC_id;
|
||||
@@ -251,10 +256,10 @@ void init_lte_vars(LTE_DL_FRAME_PARMS *frame_parms[MAX_NUM_CCs],
|
||||
(frame_parms[CC_id])->Ncp_UL = extended_prefix_flag;
|
||||
(frame_parms[CC_id])->Nid_cell = Nid_cell;
|
||||
(frame_parms[CC_id])->nushift = (Nid_cell%6);
|
||||
(frame_parms[CC_id])->nb_antennas_tx = (transmission_mode == 1) ? 1 : 2;
|
||||
(frame_parms[CC_id])->nb_antennas_tx_eNB = (transmission_mode == 1) ? 1 : 2;
|
||||
(frame_parms[CC_id])->nb_antennas_rx = (transmission_mode == 1) ? 1 : 2;
|
||||
(frame_parms[CC_id])->mode1_flag = (transmission_mode == 1) ? 1 : 0;
|
||||
(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_tx_eNB = nb_antenna_ports;
|
||||
(frame_parms[CC_id])->mode1_flag = (frame_parms[CC_id])->nb_antennas_tx_eNB==1 ? 1 : 0;
|
||||
|
||||
init_frame_parms(frame_parms[CC_id],1);
|
||||
|
||||
@@ -276,7 +281,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*));
|
||||
|
||||
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]->CC_id=CC_id;
|
||||
}
|
||||
@@ -290,10 +295,10 @@ void init_lte_vars(LTE_DL_FRAME_PARMS *frame_parms[MAX_NUM_CCs],
|
||||
|
||||
for (CC_id=0; CC_id<MAX_NUM_CCs; CC_id++) {
|
||||
(frame_parms[CC_id])->nb_antennas_tx = 1;
|
||||
(frame_parms[CC_id])->nb_antennas_rx = nb_antennas_rx;
|
||||
(frame_parms[CC_id])->nb_antennas_rx = nb_antennas_rx_ue;
|
||||
|
||||
|
||||
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]->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 Nid_cell,
|
||||
uint8_t cooperation_flag,
|
||||
uint8_t transmission_mode,
|
||||
uint8_t abstraction_flag);
|
||||
|
||||
PHY_VARS_UE* init_lte_UE(LTE_DL_FRAME_PARMS *frame_parms,
|
||||
uint8_t UE_id,
|
||||
uint8_t abstraction_flag,
|
||||
uint8_t transmission_mode);
|
||||
uint8_t abstraction_flag);
|
||||
|
||||
PHY_VARS_RN* init_lte_RN(LTE_DL_FRAME_PARMS *frame_parms,
|
||||
uint8_t RN_id,
|
||||
@@ -54,7 +52,9 @@ void init_lte_vars(LTE_DL_FRAME_PARMS *frame_parms[MAX_NUM_CCs],
|
||||
uint8_t N_RB_DL,
|
||||
uint16_t Nid_cell,
|
||||
uint8_t cooperation_flag,
|
||||
uint8_t transmission_mode,
|
||||
uint8_t nb_antenna_ports,
|
||||
uint8_t abstraction_flag,
|
||||
int nb_antennas_rx,
|
||||
int nb_antennas_tx,
|
||||
int nb_antennas_rx_ue,
|
||||
uint8_t eMBMS_active_state);
|
||||
|
||||
+163
-6
@@ -262,10 +262,13 @@ help (void)
|
||||
#else
|
||||
printf ("-W [Rohde&Schwarz SMBV100A functions disabled. Recompile with SMBV=1]\n");
|
||||
#endif
|
||||
printf ("-x Set the transmission mode (1,2,5,6 supported for now)\n");
|
||||
printf ("-x deprecated. Set the transmission mode in config file!\n");
|
||||
printf ("-y Set the number of receive antennas at the UE (1 or 2)\n");
|
||||
printf ("-Y Set the global log verbosity (none, low, medium, high, full) \n");
|
||||
printf ("-z Set the cooperation flag (0 for no cooperation, 1 for delay diversity and 2 for distributed alamouti\n");
|
||||
printf ("-Z Reserved\n");
|
||||
printf ("--xforms Activate the grapical scope\n");
|
||||
|
||||
#if T_TRACER
|
||||
printf ("--T_port [port] use given port\n");
|
||||
printf ("--T_nowait don't wait for tracer, start immediately\n");
|
||||
@@ -618,10 +621,20 @@ l2l1_task (void *args_p)
|
||||
}
|
||||
|
||||
#endif
|
||||
module_id_t enb_id;
|
||||
module_id_t UE_id;
|
||||
for (enb_id = 0; enb_id < NB_eNB_INST; enb_id++)
|
||||
mac_xface->mrbch_phy_sync_failure (enb_id, 0, enb_id);
|
||||
|
||||
if (abstraction_flag == 1) {
|
||||
for (UE_id = 0; UE_id < NB_UE_INST; UE_id++)
|
||||
mac_xface->dl_phy_sync_success (UE_id, 0, 0,1); //UE_id%NB_eNB_INST);
|
||||
}
|
||||
|
||||
start_meas (&oaisim_stats);
|
||||
|
||||
for (frame = 0;
|
||||
(l2l1_state != L2L1_TERMINATED) &&
|
||||
(l2l1_state != L2L1_TERMINATED) &&
|
||||
((oai_emulation.info.n_frames_flag == 0) ||
|
||||
(frame < oai_emulation.info.n_frames));
|
||||
frame++) {
|
||||
@@ -685,8 +698,7 @@ l2l1_task (void *args_p)
|
||||
//oai_emulation.info.time_ms += 1;
|
||||
oai_emulation.info.time_s += 0.01; // emu time in s, each frame lasts for 10 ms // JNote: TODO check the coherency of the time and frame (I corrected it to 10 (instead of 0.01)
|
||||
|
||||
update_omg (frame); // frequency is defined in the omg_global params configurable by the user
|
||||
|
||||
update_omg (frame); // frequency is defined in the omg_global params configurable by the user
|
||||
update_omg_ocm ();
|
||||
|
||||
#ifdef OPENAIR2
|
||||
@@ -752,13 +764,28 @@ l2l1_task (void *args_p)
|
||||
< (oai_emulation.info.first_enb_local
|
||||
+ oai_emulation.info.nb_enb_local));
|
||||
eNB_inst++) {
|
||||
current_eNB_rx_timestamp[eNB_inst][CC_id] += PHY_vars_eNB_g[eNB_inst][CC_id]->frame_parms.samples_per_tti;
|
||||
|
||||
current_eNB_rx_timestamp[eNB_inst][CC_id] += PHY_vars_eNB_g[eNB_inst][CC_id]->frame_parms.samples_per_tti;
|
||||
}
|
||||
for (UE_inst = 0; UE_inst<NB_UE_INST;UE_inst++) {
|
||||
current_UE_rx_timestamp[UE_inst][CC_id] += PHY_vars_UE_g[UE_inst][CC_id]->frame_parms.samples_per_tti;
|
||||
current_UE_rx_timestamp[UE_inst][CC_id] += PHY_vars_UE_g[UE_inst][CC_id]->frame_parms.samples_per_tti;
|
||||
}
|
||||
|
||||
|
||||
if (oai_emulation.info.cli_start_enb[eNB_inst] != 0) {
|
||||
T(T_ENB_MASTER_TICK, T_INT(eNB_inst), T_INT(frame % 1024), T_INT(slot/2));
|
||||
LOG_D(EMU,
|
||||
"PHY procedures eNB %d for frame %d, slot %d (subframe TX %d, RX %d) TDD %d/%d Nid_cell %d\n",
|
||||
eNB_inst,
|
||||
frame%MAX_FRAME_NUMBER,
|
||||
slot,
|
||||
PHY_vars_eNB_g[eNB_inst][0]->proc[slot >> 1].subframe_tx,
|
||||
PHY_vars_eNB_g[eNB_inst][0]->proc[slot >> 1].subframe_rx,
|
||||
PHY_vars_eNB_g[eNB_inst][0]->lte_frame_parms.frame_type,
|
||||
PHY_vars_eNB_g[eNB_inst][0]->lte_frame_parms.tdd_config,
|
||||
PHY_vars_eNB_g[eNB_inst][0]->lte_frame_parms.Nid_cell);
|
||||
}
|
||||
|
||||
for (eNB_inst = oai_emulation.info.first_enb_local;
|
||||
(eNB_inst
|
||||
< (oai_emulation.info.first_enb_local
|
||||
@@ -822,8 +849,137 @@ l2l1_task (void *args_p)
|
||||
log_set_instance_type (LOG_INSTANCE_UE);
|
||||
#endif
|
||||
|
||||
|
||||
/*
|
||||
clear_UE_transport_info (oai_emulation.info.nb_ue_local);
|
||||
clear_UE_transport_info (oai_emulation.info.nb_ue_local);
|
||||
|
||||
for (UE_inst = oai_emulation.info.first_ue_local;
|
||||
(UE_inst < (oai_emulation.info.first_ue_local + oai_emulation.info.nb_ue_local));
|
||||
UE_inst++) {
|
||||
if (oai_emulation.info.cli_start_ue[UE_inst] != 0) {
|
||||
#if defined(ENABLE_ITTI) && defined(ENABLE_USE_MME)
|
||||
|
||||
#else
|
||||
|
||||
if (frame >= (UE_inst * 20)) // activate UE only after 20*UE_id frames so that different UEs turn on separately
|
||||
#endif
|
||||
{
|
||||
LOG_D(EMU,
|
||||
"PHY procedures UE %d for frame %d, slot %d (subframe TX %d, RX %d)\n",
|
||||
UE_inst, frame % MAX_FRAME_NUMBER, slot, next_slot >> 1,
|
||||
last_slot >> 1);
|
||||
|
||||
if (PHY_vars_UE_g[UE_inst][0]->UE_mode[0]
|
||||
!= NOT_SYNCHED) {
|
||||
if (frame > 0) {
|
||||
PHY_vars_UE_g[UE_inst][0]->frame_rx = frame % MAX_FRAME_NUMBER;
|
||||
PHY_vars_UE_g[UE_inst][0]->slot_rx = last_slot;
|
||||
PHY_vars_UE_g[UE_inst][0]->slot_tx = next_slot;
|
||||
|
||||
if (next_slot > 1)
|
||||
PHY_vars_UE_g[UE_inst][0]->frame_tx = frame % MAX_FRAME_NUMBER;
|
||||
else
|
||||
PHY_vars_UE_g[UE_inst][0]->frame_tx = (frame + 1) % MAX_FRAME_NUMBER;
|
||||
#ifdef OPENAIR2
|
||||
//Application
|
||||
update_otg_UE (UE_inst, oai_emulation.info.time_ms);
|
||||
|
||||
//Access layer
|
||||
PROTOCOL_CTXT_SET_BY_MODULE_ID(&ctxt, UE_inst, 0, ENB_FLAG_NO, NOT_A_RNTI, frame % MAX_FRAME_NUMBER, next_slot);
|
||||
pdcp_run (&ctxt);
|
||||
#endif
|
||||
|
||||
for (CC_id = 0; CC_id < MAX_NUM_CCs;
|
||||
CC_id++) {
|
||||
phy_procedures_UE_lte (
|
||||
PHY_vars_UE_g[UE_inst][CC_id],
|
||||
0, abstraction_flag,
|
||||
normal_txrx, no_relay,
|
||||
NULL);
|
||||
}
|
||||
|
||||
ue_data[UE_inst]->tx_power_dBm =
|
||||
PHY_vars_UE_g[UE_inst][0]->tx_power_dBm;
|
||||
}
|
||||
} else {
|
||||
if (abstraction_flag == 1) {
|
||||
LOG_E(EMU,
|
||||
"sync not supported in abstraction mode (UE%d,mode%d)\n",
|
||||
UE_inst,
|
||||
PHY_vars_UE_g[UE_inst][0]->UE_mode[0]);
|
||||
exit (-1);
|
||||
}
|
||||
|
||||
if ((frame > 0)
|
||||
&& (last_slot
|
||||
== (LTE_SLOTS_PER_FRAME
|
||||
- 2))) {
|
||||
initial_sync (PHY_vars_UE_g[UE_inst][0],
|
||||
normal_txrx);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef PRINT_STATS
|
||||
|
||||
if(last_slot==2 && frame%10==0) {
|
||||
if (UE_stats_th[UE_inst]) {
|
||||
fprintf(UE_stats_th[UE_inst],"%d %d\n",frame%MAX_FRAME_NUMBER, PHY_vars_UE_g[UE_inst][0]->bitrate[0]/1000);
|
||||
}
|
||||
}
|
||||
|
||||
if (UE_stats[UE_inst]) {
|
||||
len = dump_ue_stats (PHY_vars_UE_g[UE_inst][0], stats_buffer, 0, normal_txrx, 0);
|
||||
rewind (UE_stats[UE_inst]);
|
||||
fwrite (stats_buffer, 1, len, UE_stats[UE_inst]);
|
||||
fflush(UE_stats[UE_inst]);
|
||||
}
|
||||
|
||||
#endif
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef Rel10
|
||||
|
||||
for (RN_id=oai_emulation.info.first_rn_local;
|
||||
RN_id<oai_emulation.info.first_rn_local+oai_emulation.info.nb_rn_local;
|
||||
RN_id++) {
|
||||
// UE id and eNB id of the RN
|
||||
UE_inst= oai_emulation.info.first_ue_local+oai_emulation.info.nb_ue_local + RN_id;// NB_UE_INST + RN_id
|
||||
eNB_inst= oai_emulation.info.first_enb_local+oai_emulation.info.nb_enb_local + RN_id;// NB_eNB_INST + RN_id
|
||||
|
||||
// currently only works in FDD
|
||||
if (oai_emulation.info.eMBMS_active_state == 4) {
|
||||
r_type = multicast_relay;
|
||||
//LOG_I(EMU,"Activating the multicast relaying\n");
|
||||
} else {
|
||||
LOG_E(EMU,"Not supported eMBMS option when relaying is enabled %d\n", r_type);
|
||||
exit(-1);
|
||||
}
|
||||
|
||||
PHY_vars_RN_g[RN_id]->frame = frame % MAX_FRAME_NUMBER;
|
||||
|
||||
if ( oai_emulation.info.frame_type == 0) {
|
||||
// RN == UE
|
||||
if (frame>0) {
|
||||
if (PHY_vars_UE_g[UE_inst][0]->UE_mode[0] != NOT_SYNCHED) {
|
||||
LOG_D(EMU,"[RN %d] PHY procedures UE %d for frame %d, slot %d (subframe TX %d, RX %d)\n",
|
||||
RN_id, UE_inst, frame, slot, next_slot >> 1,last_slot>>1);
|
||||
PHY_vars_UE_g[UE_inst][0]->frame_rx = frame % MAX_FRAME_NUMBER;
|
||||
PHY_vars_UE_g[UE_inst][0]->slot_rx = last_slot;
|
||||
PHY_vars_UE_g[UE_inst][0]->slot_tx = next_slot;
|
||||
|
||||
if (next_slot>1) PHY_vars_UE_g[UE_inst][0]->frame_tx = frame % MAX_FRAME_NUMBER;
|
||||
else PHY_vars_UE_g[UE_inst][0]->frame_tx = (frame+1) % MAX_FRAME_NUMBER;
|
||||
|
||||
phy_procedures_UE_lte (PHY_vars_UE_g[UE_inst][0], 0, abstraction_flag,normal_txrx,
|
||||
r_type, PHY_vars_RN_g[RN_id]);
|
||||
} else if (last_slot == (LTE_SLOTS_PER_FRAME-2)) {
|
||||
initial_sync(PHY_vars_UE_g[UE_inst][0],normal_txrx);
|
||||
}
|
||||
}
|
||||
|
||||
emu_transport (frame % MAX_FRAME_NUMBER, sf<<1, ((sf+4)%10)<<1, subframe_select(&PHY_vars_eNB_g[0][0]->frame_parms,sf),
|
||||
oai_emulation.info.frame_type[0], ethernet_flag);
|
||||
@@ -920,6 +1076,7 @@ l2l1_task (void *args_p)
|
||||
stop_meas (&oaisim_stats_f);
|
||||
} // SUBFRAME INNER PART
|
||||
|
||||
|
||||
}
|
||||
|
||||
if ((frame >= 10) && (frame <= 11) && (abstraction_flag == 0)
|
||||
|
||||
@@ -100,7 +100,7 @@ int if_times = 0;
|
||||
int for_times = 0;
|
||||
|
||||
uint16_t Nid_cell = 0; //needed by init_lte_vars
|
||||
int nb_antennas_rx = 2; // //
|
||||
int nb_antennas_rx_ue = 1; // //
|
||||
uint8_t target_dl_mcs = 16; // max mcs used by MAC scheduler
|
||||
uint8_t rate_adaptation_flag = 0;
|
||||
uint8_t set_snr = 0;
|
||||
@@ -173,16 +173,19 @@ extern time_stats_t ul_chan_stats;
|
||||
|
||||
extern int xforms;
|
||||
|
||||
|
||||
extern uint32_t downlink_frequency[MAX_NUM_CCs][4];
|
||||
extern int32_t uplink_frequency_offset[MAX_NUM_CCs][4];
|
||||
|
||||
void init_eNB(eNB_func_t node_function[], eNB_timing_t node_timing[],int nb_inst);
|
||||
void stop_eNB(int nb_inst);
|
||||
|
||||
const Enb_properties_array_t *enb_properties;
|
||||
|
||||
|
||||
void get_simulation_options(int argc, char *argv[])
|
||||
{
|
||||
int option;
|
||||
const Enb_properties_array_t *enb_properties;
|
||||
char *conf_config_file_name = NULL;
|
||||
|
||||
enum long_option_e {
|
||||
@@ -720,6 +723,7 @@ void get_simulation_options(int argc, char *argv[])
|
||||
break;
|
||||
|
||||
case 'x':
|
||||
/*
|
||||
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)
|
||||
@@ -727,6 +731,9 @@ void get_simulation_options(int argc, char *argv[])
|
||||
printf("Unsupported transmission mode %d\n",oai_emulation.info.transmission_mode[0]);
|
||||
exit(-1);
|
||||
}
|
||||
*/
|
||||
printf("Option -x deprecated. Please set transmission mode in eNB config file\n");
|
||||
exit(-1);
|
||||
|
||||
break;
|
||||
|
||||
@@ -751,9 +758,9 @@ void get_simulation_options(int argc, char *argv[])
|
||||
break;
|
||||
|
||||
case 'y':
|
||||
nb_antennas_rx=atoi(optarg);
|
||||
nb_antennas_rx_ue=atoi(optarg);
|
||||
|
||||
if (nb_antennas_rx>4) {
|
||||
if (nb_antennas_rx_ue>4) {
|
||||
printf("Cannot have more than 4 antennas\n");
|
||||
exit(-1);
|
||||
}
|
||||
@@ -1171,8 +1178,20 @@ void init_openair1(void)
|
||||
|
||||
// change the nb_connected_eNB
|
||||
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],
|
||||
oai_emulation.info.N_RB_DL[CC_id], Nid_cell, cooperation_flag, oai_emulation.info.transmission_mode[CC_id], abstraction_flag,nb_antennas_rx, oai_emulation.info.eMBMS_active_state);
|
||||
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],
|
||||
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_rx[CC_id],
|
||||
enb_properties->properties[0]->nb_antennas_tx[CC_id],
|
||||
nb_antennas_rx_ue,
|
||||
oai_emulation.info.eMBMS_active_state);
|
||||
}
|
||||
|
||||
for (eNB_id=0; eNB_id<NB_eNB_INST; eNB_id++) {
|
||||
@@ -1317,14 +1336,6 @@ void init_openair2(void)
|
||||
oai_emulation.info.cba_group_active,
|
||||
oai_emulation.info.handover_active);
|
||||
|
||||
for (enb_id = 0; enb_id < NB_eNB_INST; enb_id++)
|
||||
mac_xface->mrbch_phy_sync_failure (enb_id, 0, enb_id);
|
||||
|
||||
if (abstraction_flag == 1) {
|
||||
for (UE_id = 0; UE_id < NB_UE_INST; UE_id++)
|
||||
mac_xface->dl_phy_sync_success (UE_id, 0, 0,1); //UE_id%NB_eNB_INST);
|
||||
}
|
||||
|
||||
mac_xface->macphy_exit = exit_fun;
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user