Commit d8773fda authored by winckel's avatar winckel

Changed eNB configuration file reading position to update earlier physical parameters.

git-svn-id: http://svn.eurecom.fr/openair4G/trunk@5025 818b1a75-f10b-46b9-bf7c-635c3b92a50f
parent 659786c3
......@@ -49,7 +49,6 @@
# endif
extern unsigned char NB_eNB_INST;
extern char *g_conf_config_file_name;
#endif
#if defined(ENABLE_ITTI)
......@@ -185,11 +184,11 @@ void *eNB_app_task(void *args_p)
# endif
# endif
enb_properties = enb_config_init(g_conf_config_file_name);
enb_properties = enb_config_get();
AssertFatal (enb_nb <= enb_properties->number,
"Number of eNB is greater than eNB defined in configuration file %s (%d/%d)!",
g_conf_config_file_name, enb_nb, enb_properties->number);
"Number of eNB is greater than eNB defined in configuration file (%d/%d)!",
enb_nb, enb_properties->number);
for (enb_id = enb_id_start; (enb_id < enb_id_end) ; enb_id++)
{
......
......@@ -93,6 +93,7 @@
#include "UTIL/OTG/otg_vars.h"
#include "UTIL/MATH/oml.h"
#include "UTIL/LOG/vcd_signal_dumper.h"
#include "enb_config.h"
#if defined(ENABLE_ITTI)
# include "intertask_interface_init.h"
......@@ -166,7 +167,7 @@ u8 eNB_id=0;
u32 carrier_freq_fdd[4]= {2680e6,0,0,0};
u32 carrier_freq_tdd[4]= {2590e6-4000,0,0,0};
u32 carrier_freq[4];
char *g_conf_config_file_name = NULL;
static char *conf_config_file_name = NULL;
struct timing_info_t {
//unsigned int frame, hw_slot, last_slot, next_slot;
......@@ -636,6 +637,7 @@ static void *eNB_thread(void *arg)
int main(int argc, char **argv)
{
const Enb_properties_array_t *enb_properties;
#ifdef RTAI
RT_TASK *task;
#endif
......@@ -722,7 +724,7 @@ int main(int argc, char **argv)
#endif
break;
case 'O':
g_conf_config_file_name = optarg;
conf_config_file_name = optarg;
break;
case 'R':
N_RB_DL = atoi(optarg);
......@@ -743,6 +745,26 @@ int main(int argc, char **argv)
}
}
NB_eNB_INST=1;
NB_INST=1;
if ((UE_flag == 0) && (conf_config_file_name != NULL)) {
int i;
/* Read eNB configuration file */
enb_properties = enb_config_init(conf_config_file_name);
AssertFatal (NB_eNB_INST <= enb_properties->number,
"Number of eNB is greater than eNB defined in configuration file %s (%d/%d)!",
conf_config_file_name, NB_eNB_INST, enb_properties->number);
/* Update some simulation parameters */
frame_type = enb_properties->properties[0]->frame_type;
for (i = 0 ; i < (sizeof(carrier_freq) / sizeof (carrier_freq[0])); i++) {
carrier_freq[i] = enb_properties->properties[0]->downlink_frequency;
}
}
set_taus_seed (0);
// initialize the log (see log.h for details)
......@@ -778,15 +800,16 @@ int main(int argc, char **argv)
Nid_cell, cooperation_flag, transmission_mode, abstraction_flag,
nb_antennas_rx,0);
g_log->log_component[HW].level = LOG_INFO;
g_log->level = LOG_WARNING;
g_log->log_component[HW].level = LOG_WARNING;
g_log->log_component[HW].flag = LOG_LOW;
g_log->log_component[PHY].level = LOG_INFO;
g_log->log_component[PHY].level = LOG_WARNING;
g_log->log_component[PHY].flag = LOG_LOW;
g_log->log_component[MAC].level = LOG_INFO;
g_log->log_component[MAC].flag = LOG_LOW;
g_log->log_component[RLC].level = LOG_INFO;
g_log->log_component[RLC].level = LOG_WARNING;
g_log->log_component[RLC].flag = LOG_LOW;
g_log->log_component[PDCP].level = LOG_INFO;
g_log->log_component[PDCP].level = LOG_WARNING;
g_log->log_component[PDCP].flag = LOG_LOW;
g_log->log_component[RRC].level = LOG_INFO;
g_log->log_component[RRC].flag = LOG_LOW;
......@@ -824,17 +847,11 @@ int main(int argc, char **argv)
}
#endif
NB_eNB_INST=1;
NB_INST=1;
openair_daq_vars.ue_dl_rb_alloc=0x1fff;
openair_daq_vars.target_ue_dl_mcs=16;
openair_daq_vars.ue_ul_nb_rb=6;
openair_daq_vars.target_ue_ul_mcs=9;
// set eNB to max gain
PHY_vars_eNB_g[0]->rx_total_gain_eNB_dB = rxg_max[0] + rxgain[0] -
30; //was measured at rxgain=30;
......
......@@ -100,6 +100,7 @@ unsigned short config_frames[4] = {2,9,11,13};
#include "UTIL/OTG/otg_vars.h"
#include "UTIL/MATH/oml.h"
#include "UTIL/LOG/vcd_signal_dumper.h"
#include "enb_config.h"
#if defined(ENABLE_ITTI)
# include "intertask_interface_init.h"
......@@ -167,8 +168,10 @@ int fs4_test=0;
char UE_flag=0;
u8 eNB_id=0,UE_id=0;
u32 carrier_freq[4]= {1907600000,1907600000,1907600000,1907600000};
char *g_conf_config_file_name = NULL;
u32 carrier_freq[4] = {1907600000,1907600000,1907600000,1907600000}; /* For UE! */
u32 downlink_frequency[4] = {1907600000,1907600000,1907600000,1907600000};
s32 uplink_frequency_offset[4]= {-120000000,-120000000,-120000000,-120000000};
static char *conf_config_file_name = NULL;
struct timing_info_t {
//unsigned int frame, hw_slot, last_slot, next_slot;
......@@ -1013,6 +1016,7 @@ static void *UE_thread(void *arg)
}
int main(int argc, char **argv) {
const Enb_properties_array_t *enb_properties;
#ifdef RTAI
// RT_TASK *task;
......@@ -1106,10 +1110,14 @@ int main(int argc, char **argv) {
UE_flag = 1;
break;
case 'C':
carrier_freq[0] = atoi(optarg);
carrier_freq[1] = atoi(optarg);
carrier_freq[2] = atoi(optarg);
carrier_freq[3] = atoi(optarg);
downlink_frequency[0] = atoi(optarg);
downlink_frequency[1] = atoi(optarg);
downlink_frequency[2] = atoi(optarg);
downlink_frequency[3] = atoi(optarg);
carrier_freq[0] = downlink_frequency[0];
carrier_freq[1] = downlink_frequency[1];
carrier_freq[2] = downlink_frequency[2];
carrier_freq[3] = downlink_frequency[3];
break;
case 'S':
fs4_test=1;
......@@ -1127,7 +1135,7 @@ int main(int argc, char **argv) {
#endif
break;
case 'O':
g_conf_config_file_name = optarg;
conf_config_file_name = optarg;
break;
case 'F':
sprintf(rxg_fname,"%srxg.lime",optarg);
......@@ -1214,6 +1222,28 @@ int main(int argc, char **argv) {
}
}
frame_parms = (LTE_DL_FRAME_PARMS*) malloc(sizeof(LTE_DL_FRAME_PARMS));
if ((UE_flag == 0) && (conf_config_file_name != NULL)) {
int i;
NB_eNB_INST = 1;
/* Read eNB configuration file */
enb_properties = enb_config_init(conf_config_file_name);
AssertFatal (NB_eNB_INST <= enb_properties->number,
"Number of eNB is greater than eNB defined in configuration file %s (%d/%d)!",
conf_config_file_name, NB_eNB_INST, enb_properties->number);
/* Update some simulation parameters */
frame_parms->frame_type = enb_properties->properties[0]->frame_type;
for (i = 0 ; i < (sizeof(downlink_frequency) / sizeof (downlink_frequency[0])); i++) {
downlink_frequency[i] = enb_properties->properties[0]->downlink_frequency;
uplink_frequency_offset[i] = enb_properties->properties[0]->uplink_frequency_offset;
}
}
if (UE_flag==1)
printf("configuring for UE\n");
else
......@@ -1258,7 +1288,6 @@ int main(int argc, char **argv) {
#endif
// init the parameters
frame_parms = (LTE_DL_FRAME_PARMS*) malloc(sizeof(LTE_DL_FRAME_PARMS));
frame_parms->N_RB_DL = 25;
frame_parms->N_RB_UL = 25;
frame_parms->Ncp = 0;
......@@ -1288,7 +1317,6 @@ int main(int argc, char **argv) {
}
frame_parms->nb_antennas_tx_eNB = (transmission_mode == 1) ? 1 : 2; //initial value overwritten by initial sync later
frame_parms->mode1_flag = (transmission_mode == 1) ? 1 : 0;
frame_parms->frame_type = 1;
frame_parms->tdd_config = 3;
frame_parms->tdd_config_S = 0;
frame_parms->phich_config_common.phich_resource = oneSixth;
......@@ -1314,6 +1342,7 @@ int main(int argc, char **argv) {
// prach_fmt = get_prach_fmt(frame_parms->prach_config_common.prach_ConfigInfo.prach_ConfigIndex, frame_parms->frame_type);
// N_ZC = (prach_fmt <4)?839:139;
g_log->level = LOG_WARNING;
if (UE_flag==1) {
g_log->log_component[HW].level = LOG_DEBUG;
g_log->log_component[HW].flag = LOG_HIGH;
......@@ -1532,6 +1561,8 @@ int main(int argc, char **argv) {
for (ant=max(frame_parms->nb_antennas_tx,frame_parms->nb_antennas_rx);ant<4;ant++) {
p_exmimo_config->rf.rf_mode[ant] = 0;
carrier_freq[ant] = 0; //this turns off all other LIMEs
downlink_frequency[ant] = 0; //this turns off all other LIMEs
uplink_frequency_offset[ant] = 0;
}
/*
......@@ -1545,26 +1576,42 @@ int main(int argc, char **argv) {
}
else {
p_exmimo_config->rf.rf_mode[ant] = 0;
carrier_freq[ant] = 0; //this turns off all other LIMEs
downlink_frequency[ant] = 0; //this turns off all other LIMEs
}
}
*/
for (ant = 0; ant<4; ant++) {
p_exmimo_config->rf.do_autocal[ant] = 1;
if (UE_flag==0) {
/* eNB */
if (frame_parms->frame_type == FDD) {
p_exmimo_config->rf.rf_freq_rx[ant] = downlink_frequency[ant] + uplink_frequency_offset[ant];
} else {
p_exmimo_config->rf.rf_freq_rx[ant] = downlink_frequency[ant];
}
p_exmimo_config->rf.rf_freq_tx[ant] = downlink_frequency[ant];
} else {
/* UE */
p_exmimo_config->rf.rf_freq_rx[ant] = carrier_freq[ant];
if (frame_parms->frame_type == FDD) {
p_exmimo_config->rf.rf_freq_tx[ant] = carrier_freq[ant] + uplink_frequency_offset[ant];
} else {
p_exmimo_config->rf.rf_freq_tx[ant] = carrier_freq[ant];
}
}
p_exmimo_config->rf.rx_gain[ant][0] = rxgain[ant];
p_exmimo_config->rf.tx_gain[ant][0] = txgain[ant];
p_exmimo_config->rf.rf_local[ant] = rf_local[ant];
p_exmimo_config->rf.rf_rxdc[ant] = rf_rxdc[ant];
if ((carrier_freq[ant] >= 850000000) && (carrier_freq[ant] <= 865000000)) {
if ((downlink_frequency[ant] >= 850000000) && (downlink_frequency[ant] <= 865000000)) {
p_exmimo_config->rf.rf_vcocal[ant] = rf_vcocal_850[ant];
p_exmimo_config->rf.rffe_band_mode[ant] = DD_TDD;
}
else if ((carrier_freq[ant] >= 1900000000) && (carrier_freq[ant] <= 2000000000)) {
else if ((downlink_frequency[ant] >= 1900000000) && (downlink_frequency[ant] <= 2000000000)) {
p_exmimo_config->rf.rf_vcocal[ant] = rf_vcocal[ant];
p_exmimo_config->rf.rffe_band_mode[ant] = B19G_TDD;
}
......@@ -1579,7 +1626,6 @@ int main(int argc, char **argv) {
p_exmimo_config->rf.rffe_gain_rxlow[ant] = 31;
}
dump_frame_parms(frame_parms);
mac_xface = malloc(sizeof(MAC_xface));
......
......@@ -7,6 +7,7 @@
#include <sys/timerfd.h>
#include "assertions.h"
#include "oaisim_functions.h"
#include "PHY/extern.h"
......@@ -29,6 +30,7 @@
#include "lteRALue.h"
#include "cor_SF_sim.h"
#include "enb_config.h"
#if defined(ENABLE_ITTI)
# include "intertask_interface.h"
......@@ -53,7 +55,7 @@ int otg_times = 0;
int if_times = 0;
int for_times = 0;
char *g_conf_config_file_name = NULL;
static char *conf_config_file_name = NULL;
u16 Nid_cell = 0; //needed by init_lte_vars
int nb_antennas_rx=2; // //
u8 target_dl_mcs = 0;
......@@ -169,13 +171,14 @@ static struct option long_options[] = {
void get_simulation_options(int argc, char *argv[]) {
int option;
const Enb_properties_array_t *enb_properties;
while ((option = getopt_long (argc, argv, "aA:b:B:c:C:D:d:eE:f:FGg:hHi:IJ:j:k:K:l:L:m:M:n:N:oO:p:P:Q:rR:s:S:t:T:u:U:vV:w:W:x:X:y:Y:z:Z:", long_options, NULL)) != -1) {
switch (option) {
case LONG_OPTION_ENB_CONF:
if (optarg) {
g_conf_config_file_name = strdup(optarg);
printf("eNB configuration file is %s\n", g_conf_config_file_name);
conf_config_file_name = strdup(optarg);
printf("eNB configuration file is %s\n", conf_config_file_name);
}
break;
......@@ -436,7 +439,7 @@ void get_simulation_options(int argc, char *argv[]) {
break;
case 'O':
g_conf_config_file_name = optarg;
conf_config_file_name = optarg;
break;
case 'o':
......@@ -586,6 +589,21 @@ void get_simulation_options(int argc, char *argv[]) {
break;
}
}
if ((oai_emulation.info.nb_enb_local > 0) && (conf_config_file_name != NULL))
{
/* Read eNB configuration file */
enb_properties = enb_config_init(conf_config_file_name);
AssertFatal (oai_emulation.info.nb_enb_local <= enb_properties->number,
"Number of eNB is greater than eNB defined in configuration file %s (%d/%d)!",
conf_config_file_name, oai_emulation.info.nb_enb_local, enb_properties->number);
/* Update some simulation parameters */
oai_emulation.info.frame_type = enb_properties->properties[0]->frame_type;
oai_emulation.info.extended_prefix_flag = enb_properties->properties[0]->prefix_type;
}
}
void check_and_adjust_params() {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment