diff --git a/targets/RTAI/USER/emos-raw.c b/targets/RTAI/USER/emos-raw.c index d1d63d2d955885ac7c1605606dfc222fba17831a..1e3bbc4ae97a48bfa0f0ae4ab741376c1b25c26d 100644 --- a/targets/RTAI/USER/emos-raw.c +++ b/targets/RTAI/USER/emos-raw.c @@ -140,6 +140,7 @@ 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; unsigned int lost_bytes=0; @@ -699,100 +700,88 @@ int main(int argc, char **argv) { #endif break; case 'O': -#if defined(ENABLE_USE_MME) - EPC_MODE_ENABLED = 1; - if (optarg == NULL) /* No IP address provided: use localhost */ - { - memcpy(&EPC_MODE_MME_ADDRESS[0], "127.0.0.1", 10); - } else { - u8 ip_length = strlen(optarg) + 1; - memcpy(&EPC_MODE_MME_ADDRESS[0], optarg, - ip_length > 16 ? 16 : ip_length); - } -#else - printf("You enabled mme mode without s1ap compiled...\n"); -#endif + g_conf_config_file_name = optarg; break; - case 'F': - sprintf(rxg_fname,"%srxg.lime",optarg); - rxg_fd = fopen(rxg_fname,"r"); - if (rxg_fd) { - printf("Loading RX Gain parameters from %s\n",rxg_fname); - l=0; - while (fgets(line, sizeof(line), rxg_fd)) { - if ((strlen(line)==0) || (*line == '#')) continue; //ignore empty or comment lines - else { - if (l==0) sscanf(line,"%d %d %d %d",&rxg_max[0],&rxg_max[1],&rxg_max[2],&rxg_max[3]); - if (l==1) sscanf(line,"%d %d %d %d",&rxg_med[0],&rxg_med[1],&rxg_med[2],&rxg_med[3]); - if (l==2) sscanf(line,"%d %d %d %d",&rxg_byp[0],&rxg_byp[1],&rxg_byp[2],&rxg_byp[3]); - l++; - } - } - } - else - printf("%s not found, running with defaults\n",rxg_fname); - - sprintf(txg_fname,"%stxg.lime",optarg); - txg_fd = fopen(txg_fname,"r"); - if (txg_fd) { - printf("Loading TX Gain parameters from %s\n",txg_fname); - l=0; - while (fgets(line, sizeof(line), txg_fd)) { - if ((strlen(line)==0) || (*line == '#')) { - continue; //ignore empty or comment lines - } - else { - if (l==0) sscanf(line,"%d %d %d %d",&txgain[0],&txgain[1],&txgain[2],&txgain[3]); - if (l==1) sscanf(line,"%d",&tx_max_power); - l++; - } - } - } - else - printf("%s not found, running with defaults\n",txg_fname); - - sprintf(rflo_fname,"%srflo.lime",optarg); - rflo_fd = fopen(rflo_fname,"r"); - if (rflo_fd) { - printf("Loading RF LO parameters from %s\n",rflo_fname); - fscanf(rflo_fd,"%d %d %d %d",&rf_local[0],&rf_local[1],&rf_local[2],&rf_local[3]); - } - else - printf("%s not found, running with defaults\n",rflo_fname); - - sprintf(rfdc_fname,"%srfdc.lime",optarg); - rfdc_fd = fopen(rfdc_fname,"r"); - if (rfdc_fd) { - printf("Loading RF DC parameters from %s\n",rfdc_fname); - fscanf(rfdc_fd,"%d %d %d %d",&rf_rxdc[0],&rf_rxdc[1],&rf_rxdc[2],&rf_rxdc[3]); - } - else - printf("%s not found, running with defaults\n",rfdc_fname); + case 'F': + sprintf(rxg_fname,"%srxg.lime",optarg); + rxg_fd = fopen(rxg_fname,"r"); + if (rxg_fd) { + printf("Loading RX Gain parameters from %s\n",rxg_fname); + l=0; + while (fgets(line, sizeof(line), rxg_fd)) { + if ((strlen(line)==0) || (*line == '#')) continue; //ignore empty or comment lines + else { + if (l==0) sscanf(line,"%d %d %d %d",&rxg_max[0],&rxg_max[1],&rxg_max[2],&rxg_max[3]); + if (l==1) sscanf(line,"%d %d %d %d",&rxg_med[0],&rxg_med[1],&rxg_med[2],&rxg_med[3]); + if (l==2) sscanf(line,"%d %d %d %d",&rxg_byp[0],&rxg_byp[1],&rxg_byp[2],&rxg_byp[3]); + l++; + } + } + } + else + printf("%s not found, running with defaults\n",rxg_fname); + + sprintf(txg_fname,"%stxg.lime",optarg); + txg_fd = fopen(txg_fname,"r"); + if (txg_fd) { + printf("Loading TX Gain parameters from %s\n",txg_fname); + l=0; + while (fgets(line, sizeof(line), txg_fd)) { + if ((strlen(line)==0) || (*line == '#')) { + continue; //ignore empty or comment lines + } + else { + if (l==0) sscanf(line,"%d %d %d %d",&txgain[0],&txgain[1],&txgain[2],&txgain[3]); + if (l==1) sscanf(line,"%d",&tx_max_power); + l++; + } + } + } + else + printf("%s not found, running with defaults\n",txg_fname); + + sprintf(rflo_fname,"%srflo.lime",optarg); + rflo_fd = fopen(rflo_fname,"r"); + if (rflo_fd) { + printf("Loading RF LO parameters from %s\n",rflo_fname); + fscanf(rflo_fd,"%d %d %d %d",&rf_local[0],&rf_local[1],&rf_local[2],&rf_local[3]); + } + else + printf("%s not found, running with defaults\n",rflo_fname); + + sprintf(rfdc_fname,"%srfdc.lime",optarg); + rfdc_fd = fopen(rfdc_fname,"r"); + if (rfdc_fd) { + printf("Loading RF DC parameters from %s\n",rfdc_fname); + fscanf(rfdc_fd,"%d %d %d %d",&rf_rxdc[0],&rf_rxdc[1],&rf_rxdc[2],&rf_rxdc[3]); + } + else + printf("%s not found, running with defaults\n",rfdc_fname); - break; - /* - case 256: - mode = rx_calib_ue; - rx_input_level_dBm = atoi(optarg); - printf("Running with UE calibration on (LNA max), input level %d dBm\n",rx_input_level_dBm); - break; - case 257: - mode = rx_calib_ue_med; - rx_input_level_dBm = atoi(optarg); - printf("Running with UE calibration on (LNA med), input level %d dBm\n",rx_input_level_dBm); - break; - case 258: - mode = rx_calib_ue_byp; - rx_input_level_dBm = atoi(optarg); - printf("Running with UE calibration on (LNA byp), input level %d dBm\n",rx_input_level_dBm); - break; - case 259: - mode = debug_prach; - break; - case 260: - mode = no_L2_connect; - break; - */ + break; + /* + case 256: + mode = rx_calib_ue; + rx_input_level_dBm = atoi(optarg); + printf("Running with UE calibration on (LNA max), input level %d dBm\n",rx_input_level_dBm); + break; + case 257: + mode = rx_calib_ue_med; + rx_input_level_dBm = atoi(optarg); + printf("Running with UE calibration on (LNA med), input level %d dBm\n",rx_input_level_dBm); + break; + case 258: + mode = rx_calib_ue_byp; + rx_input_level_dBm = atoi(optarg); + printf("Running with UE calibration on (LNA byp), input level %d dBm\n",rx_input_level_dBm); + break; + case 259: + mode = debug_prach; + break; + case 260: + mode = no_L2_connect; + break; + */ default: break; } diff --git a/targets/RTAI/USER/lte-softmodem.c b/targets/RTAI/USER/lte-softmodem.c index 42c6b557c0f0d5ca4b75687f8a9ef0173f00d30a..d930ce0c9c7af793f3f912aeaa680684b60eea45 100644 --- a/targets/RTAI/USER/lte-softmodem.c +++ b/targets/RTAI/USER/lte-softmodem.c @@ -168,6 +168,7 @@ 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; struct timing_info_t { //unsigned int frame, hw_slot, last_slot, next_slot; @@ -1126,100 +1127,88 @@ int main(int argc, char **argv) { #endif break; case 'O': -#if defined(ENABLE_USE_MME) - EPC_MODE_ENABLED = 1; - if (optarg == NULL) /* No IP address provided: use localhost */ - { - memcpy(&EPC_MODE_MME_ADDRESS[0], "127.0.0.1", 10); - } else { - u8 ip_length = strlen(optarg) + 1; - memcpy(&EPC_MODE_MME_ADDRESS[0], optarg, - ip_length > 16 ? 16 : ip_length); - } -#else - printf("You enabled mme mode without s1ap compiled...\n"); -#endif + g_conf_config_file_name = optarg; break; - case 'F': - sprintf(rxg_fname,"%srxg.lime",optarg); - rxg_fd = fopen(rxg_fname,"r"); - if (rxg_fd) { - printf("Loading RX Gain parameters from %s\n",rxg_fname); - l=0; - while (fgets(line, sizeof(line), rxg_fd)) { - if ((strlen(line)==0) || (*line == '#')) continue; //ignore empty or comment lines - else { - if (l==0) sscanf(line,"%d %d %d %d",&rxg_max[0],&rxg_max[1],&rxg_max[2],&rxg_max[3]); - if (l==1) sscanf(line,"%d %d %d %d",&rxg_med[0],&rxg_med[1],&rxg_med[2],&rxg_med[3]); - if (l==2) sscanf(line,"%d %d %d %d",&rxg_byp[0],&rxg_byp[1],&rxg_byp[2],&rxg_byp[3]); - l++; - } - } - } - else - printf("%s not found, running with defaults\n",rxg_fname); - - sprintf(txg_fname,"%stxg.lime",optarg); - txg_fd = fopen(txg_fname,"r"); - if (txg_fd) { - printf("Loading TX Gain parameters from %s\n",txg_fname); - l=0; - while (fgets(line, sizeof(line), txg_fd)) { - if ((strlen(line)==0) || (*line == '#')) { - continue; //ignore empty or comment lines - } - else { - if (l==0) sscanf(line,"%d %d %d %d",&txgain[0],&txgain[1],&txgain[2],&txgain[3]); - if (l==1) sscanf(line,"%d",&tx_max_power); - l++; - } - } - } - else - printf("%s not found, running with defaults\n",txg_fname); - - sprintf(rflo_fname,"%srflo.lime",optarg); - rflo_fd = fopen(rflo_fname,"r"); - if (rflo_fd) { - printf("Loading RF LO parameters from %s\n",rflo_fname); - if (fscanf(rflo_fd,"%d %d %d %d",&rf_local[0],&rf_local[1],&rf_local[2],&rf_local[3]) < 4) - LOG_E(EMU, "Error parsing \"%s\"", rflo_fname); - } - else - printf("%s not found, running with defaults\n",rflo_fname); - - sprintf(rfdc_fname,"%srfdc.lime",optarg); - rfdc_fd = fopen(rfdc_fname,"r"); - if (rfdc_fd) { - printf("Loading RF DC parameters from %s\n",rfdc_fname); - if (fscanf(rfdc_fd,"%d %d %d %d",&rf_rxdc[0],&rf_rxdc[1],&rf_rxdc[2],&rf_rxdc[3]) < 4) - LOG_E(EMU, "Error parsing \"%s\"", rfdc_fname); - } - else - printf("%s not found, running with defaults\n",rfdc_fname); + case 'F': + sprintf(rxg_fname,"%srxg.lime",optarg); + rxg_fd = fopen(rxg_fname,"r"); + if (rxg_fd) { + printf("Loading RX Gain parameters from %s\n",rxg_fname); + l=0; + while (fgets(line, sizeof(line), rxg_fd)) { + if ((strlen(line)==0) || (*line == '#')) continue; //ignore empty or comment lines + else { + if (l==0) sscanf(line,"%d %d %d %d",&rxg_max[0],&rxg_max[1],&rxg_max[2],&rxg_max[3]); + if (l==1) sscanf(line,"%d %d %d %d",&rxg_med[0],&rxg_med[1],&rxg_med[2],&rxg_med[3]); + if (l==2) sscanf(line,"%d %d %d %d",&rxg_byp[0],&rxg_byp[1],&rxg_byp[2],&rxg_byp[3]); + l++; + } + } + } + else + printf("%s not found, running with defaults\n",rxg_fname); + + sprintf(txg_fname,"%stxg.lime",optarg); + txg_fd = fopen(txg_fname,"r"); + if (txg_fd) { + printf("Loading TX Gain parameters from %s\n",txg_fname); + l=0; + while (fgets(line, sizeof(line), txg_fd)) { + if ((strlen(line)==0) || (*line == '#')) { + continue; //ignore empty or comment lines + } + else { + if (l==0) sscanf(line,"%d %d %d %d",&txgain[0],&txgain[1],&txgain[2],&txgain[3]); + if (l==1) sscanf(line,"%d",&tx_max_power); + l++; + } + } + } + else + printf("%s not found, running with defaults\n",txg_fname); + + sprintf(rflo_fname,"%srflo.lime",optarg); + rflo_fd = fopen(rflo_fname,"r"); + if (rflo_fd) { + printf("Loading RF LO parameters from %s\n",rflo_fname); + if (fscanf(rflo_fd,"%d %d %d %d",&rf_local[0],&rf_local[1],&rf_local[2],&rf_local[3]) < 4) + LOG_E(EMU, "Error parsing \"%s\"", rflo_fname); + } + else + printf("%s not found, running with defaults\n",rflo_fname); + + sprintf(rfdc_fname,"%srfdc.lime",optarg); + rfdc_fd = fopen(rfdc_fname,"r"); + if (rfdc_fd) { + printf("Loading RF DC parameters from %s\n",rfdc_fname); + if (fscanf(rfdc_fd,"%d %d %d %d",&rf_rxdc[0],&rf_rxdc[1],&rf_rxdc[2],&rf_rxdc[3]) < 4) + LOG_E(EMU, "Error parsing \"%s\"", rfdc_fname); + } + else + printf("%s not found, running with defaults\n",rfdc_fname); - break; - case 256: - mode = rx_calib_ue; - rx_input_level_dBm = atoi(optarg); - printf("Running with UE calibration on (LNA max), input level %d dBm\n",rx_input_level_dBm); - break; - case 257: - mode = rx_calib_ue_med; - rx_input_level_dBm = atoi(optarg); - printf("Running with UE calibration on (LNA med), input level %d dBm\n",rx_input_level_dBm); - break; - case 258: - mode = rx_calib_ue_byp; - rx_input_level_dBm = atoi(optarg); - printf("Running with UE calibration on (LNA byp), input level %d dBm\n",rx_input_level_dBm); - break; - case 259: - mode = debug_prach; - break; - case 260: - mode = no_L2_connect; - break; + break; + case 256: + mode = rx_calib_ue; + rx_input_level_dBm = atoi(optarg); + printf("Running with UE calibration on (LNA max), input level %d dBm\n",rx_input_level_dBm); + break; + case 257: + mode = rx_calib_ue_med; + rx_input_level_dBm = atoi(optarg); + printf("Running with UE calibration on (LNA med), input level %d dBm\n",rx_input_level_dBm); + break; + case 258: + mode = rx_calib_ue_byp; + rx_input_level_dBm = atoi(optarg); + printf("Running with UE calibration on (LNA byp), input level %d dBm\n",rx_input_level_dBm); + break; + case 259: + mode = debug_prach; + break; + case 260: + mode = no_L2_connect; + break; default: break; } @@ -1344,6 +1333,14 @@ int main(int argc, char **argv) { g_log->log_component[OTG].flag = LOG_HIGH; g_log->log_component[RRC].level = LOG_INFO; g_log->log_component[RRC].flag = LOG_HIGH; +#if defined(ENABLE_ITTI) + g_log->log_component[EMU].level = LOG_INFO; + g_log->log_component[EMU].flag = LOG_HIGH; +# if defined(ENABLE_USE_MME) + g_log->log_component[NAS].level = LOG_INFO; + g_log->log_component[NAS].flag = LOG_HIGH; +# endif +#endif PHY_vars_UE_g = malloc(sizeof(PHY_VARS_UE*)); PHY_vars_UE_g[0] = init_lte_UE(frame_parms, UE_id,abstraction_flag,transmission_mode); diff --git a/targets/SIMU/USER/oaisim.c b/targets/SIMU/USER/oaisim.c index 05e59c2b73ec8272da24a103cad85ff6a6af7ff4..bdf805958a4108c991bca6f819551b94522bece9 100644 --- a/targets/SIMU/USER/oaisim.c +++ b/targets/SIMU/USER/oaisim.c @@ -202,7 +202,7 @@ void help(void) { printf ("-m Gives a fixed DL mcs\n"); printf ("-M Set the machine ID for Ethernet-based emulation\n"); printf ("-n Set the number of frames for the simulation\n"); - printf ("-O [mme ipv4 address] Enable MME mode\n"); + printf ("-O [enb_conf_file] eNB configuration file name\n"); printf ("-p Set the total number of machine in emulation - valid if M is set\n"); printf ("-P [trace type] Enable protocol analyzer. Possible values for OPT:\n"); printf (" - wireshark: Enable tracing of layers above PHY using an UDP socket\n"); diff --git a/targets/SIMU/USER/oaisim_functions.c b/targets/SIMU/USER/oaisim_functions.c index 464e2f27eb1fe619915e559db493c405a3013f67..c9efc3b33d7b49319c523bff6a4b92352cd13c10 100644 --- a/targets/SIMU/USER/oaisim_functions.c +++ b/targets/SIMU/USER/oaisim_functions.c @@ -118,9 +118,9 @@ void get_simulation_options(int argc, char *argv[]) { char c; int option_index; static struct option long_options[] = { - {"config-file", required_argument, 0, 0}, - {"pdcp_period", 1, 0, 0}, - {"omg_period", 1, 0, 0}, + {"enb-conf", required_argument, 0, 0}, + {"pdcp_period", required_argument, 0, 0}, + {"omg_period", required_argument, 0, 0}, {"enb-ral-listening-port", required_argument, 0, 0}, {"enb-ral-ip-address", required_argument, 0, 0}, {"enb-ral-link-id", required_argument, 0, 0}, @@ -141,10 +141,10 @@ void get_simulation_options(int argc, char *argv[]) { while ((c = 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, &option_index)) != -1) { switch (c) { case 0: - if (! strcmp(long_options[option_index].name, "config-file")) { + if (! strcmp(long_options[option_index].name, "enb-conf")) { if (optarg) { g_conf_config_file_name = strdup(optarg); - printf("config file is %s\n", g_conf_config_file_name); + printf("eNB configuration file is %s\n", g_conf_config_file_name); } } else if (! strcmp(long_options[option_index].name, "pdcp_period")) { if (optarg) { @@ -462,19 +462,7 @@ void get_simulation_options(int argc, char *argv[]) { /* Sebastien ROUX: Reserved for future use (currently used in ltenow branch) */ break; case 'O': -#if defined(ENABLE_USE_MME) - EPC_MODE_ENABLED = 1; - if (optarg == NULL) /* No IP address provided: use localhost */ - { - memcpy(&EPC_MODE_MME_ADDRESS[0], "127.0.0.1", 10); - } else { - u8 ip_length = strlen(optarg) + 1; - memcpy(&EPC_MODE_MME_ADDRESS[0], optarg, - ip_length > 16 ? 16 : ip_length); - } -#else - printf("You enabled MME mode without compiling using ENABLE_USE_MME=1 ...\n"); -#endif + g_conf_config_file_name = optarg; break; case 'o': oai_emulation.info.slot_isr = 1;