* merge/add handover procedure for the access stratum (enabled with the -H), status: experimental.
* fix a bug in BSR computation * add a python script to launch meld if the diff3 in subvsersion/config file is set to the targets/SCRIPTS/svn-merge-meld.py * pre-ci passed (100%) git-svn-id: http://svn.eurecom.fr/openair4G/trunk@4309 818b1a75-f10b-46b9-bf7c-635c3b92a50f
This commit is contained in:
+23
-21
@@ -150,27 +150,28 @@ int otg_enabled;
|
||||
#endif
|
||||
|
||||
// this should reflect the channel models in openair1/SIMULATION/TOOLS/defs.h
|
||||
mapping small_scale_names[] =
|
||||
{
|
||||
{"custom", custom},
|
||||
{"SCM_A", SCM_A},
|
||||
{"SCM_B", SCM_B},
|
||||
{"SCM_C", SCM_C},
|
||||
{"SCM_D", SCM_D},
|
||||
{"EPA", EPA},
|
||||
{"EVA", EVA},
|
||||
{"ETU", ETU},
|
||||
{"Rayleigh8", Rayleigh8},
|
||||
{"Rayleigh1", Rayleigh1},
|
||||
{"Rayleigh1_800", Rayleigh1_800},
|
||||
{"Rayleigh1_corr", Rayleigh1_corr},
|
||||
{"Rayleigh1_anticorr", Rayleigh1_anticorr},
|
||||
{"Rice8", Rice8},
|
||||
{"Rice1", Rice1},
|
||||
{"Rice1_corr", Rice1_corr},
|
||||
{"Rice1_anticorr", Rice1_anticorr},
|
||||
{"AWGN", AWGN},
|
||||
{NULL, -1}};
|
||||
mapping small_scale_names[] = {
|
||||
{"custom", custom},
|
||||
{"SCM_A", SCM_A},
|
||||
{"SCM_B", SCM_B},
|
||||
{"SCM_C", SCM_C},
|
||||
{"SCM_D", SCM_D},
|
||||
{"EPA", EPA},
|
||||
{"EVA", EVA},
|
||||
{"ETU", ETU},
|
||||
{"MBSFN", MBSFN},
|
||||
{"Rayleigh8", Rayleigh8},
|
||||
{"Rayleigh1", Rayleigh1},
|
||||
{"Rayleigh1_800", Rayleigh1_800},
|
||||
{"Rayleigh1_corr", Rayleigh1_corr},
|
||||
{"Rayleigh1_anticorr", Rayleigh1_anticorr},
|
||||
{"Rice8", Rice8},
|
||||
{"Rice1", Rice1},
|
||||
{"Rice1_corr", Rice1_corr},
|
||||
{"Rice1_anticorr", Rice1_anticorr},
|
||||
{"AWGN", AWGN},
|
||||
{NULL, -1}
|
||||
};
|
||||
|
||||
//static void *sigh(void *arg);
|
||||
void terminate(void);
|
||||
@@ -194,6 +195,7 @@ void help(void) {
|
||||
printf ("-F Activates FDD transmission (TDD is default)\n");
|
||||
printf ("-g Set multicast group ID (0,1,2,3) - valid if M is set\n");
|
||||
printf ("-G Enable background traffic \n");
|
||||
printf ("-H Enable handover operation (default disabled) \n");
|
||||
printf ("-I Enable CLI interface (to connect use telnet localhost 1352)\n");
|
||||
printf ("-k Set the Ricean factor (linear)\n");
|
||||
printf ("-l Set the global log level (8:trace, 7:debug, 6:info, 4:warn, 3:error) \n");
|
||||
|
||||
@@ -325,12 +325,15 @@ void init_oai_emulation() {
|
||||
oai_emulation.info.vcd_enabled=0;
|
||||
oai_emulation.info.cba_group_active=0;
|
||||
oai_emulation.info.eMBMS_active_state=0;
|
||||
oai_emulation.info.handover_active=0;
|
||||
oai_emulation.info.omg_model_enb=STATIC; //default to static mobility model
|
||||
oai_emulation.info.omg_model_rn=STATIC; //default to static mobility model
|
||||
oai_emulation.info.omg_model_ue=STATIC; //default to static mobility model
|
||||
oai_emulation.info.omg_model_ue_current=STATIC; //default to static mobility model
|
||||
oai_emulation.info.otg_traffic="no_predefined_traffic";
|
||||
oai_emulation.info.otg_bg_traffic_enabled = 0; // G flag
|
||||
oai_emulation.info.max_predefined_traffic_config_index = 0;
|
||||
oai_emulation.info.max_customized_traffic_config_index = 0;
|
||||
oai_emulation.info.frame = 0; // frame counter of emulation
|
||||
oai_emulation.info.time_s = 0; // time of emulation
|
||||
oai_emulation.info.time_ms = 0; // time of emulation
|
||||
@@ -664,6 +667,7 @@ int ocg_config_app(){
|
||||
init_seeds(g_otg->seed); // initialize all the nodes, then configure the nodes the user specifically did in the XML in the following
|
||||
|
||||
LOG_I(OTG,"oai_emulation.info.max_predefined_traffic_config_index = %d\n", oai_emulation.info.max_predefined_traffic_config_index);
|
||||
LOG_I(OTG,"oai_emulation.info.max_customized_traffic_config_index = %d\n", oai_emulation.info.max_customized_traffic_config_index);
|
||||
|
||||
|
||||
if (oai_emulation.info.ocg_ok) {
|
||||
@@ -964,7 +968,9 @@ g_otg->application_idx[source_id_index][destination_id_index]+=1;
|
||||
}
|
||||
}
|
||||
}
|
||||
if ( oai_emulation.info.otg_enabled==1){ // OCG not used, but -T option is used, so config here
|
||||
if ((oai_emulation.info.max_predefined_traffic_config_index == 0) &&
|
||||
(oai_emulation.info.max_customized_traffic_config_index == 0) &&
|
||||
(oai_emulation.info.otg_enabled==1)){ // OCG not used to configure OTG, but -T option is used, so config here
|
||||
LOG_I(OTG,"configure OTG through options %s\n", oai_emulation.info.otg_traffic);
|
||||
for (i=0; i<g_otg->num_nodes; i++){
|
||||
for (j=0; j<g_otg->num_nodes; j++){
|
||||
|
||||
@@ -114,7 +114,7 @@ void get_simulation_options(int argc, char *argv[]) {
|
||||
{NULL, 0, NULL, 0}
|
||||
};
|
||||
|
||||
while ((c = getopt_long (argc, argv, "aA:b:B:c:C:D:d:eE:f:FGg:hi:IJ:j:k:K:L:l:m:M:n:N:oO:p:P:Q:rR:s:S:t:T:u:U:vVw:W:x:X:y:Y:z:Z:", long_options, &option_index)) != -1) {
|
||||
while ((c = getopt_long (argc, argv, "aA:b:B:c:C:D:d:eE:f:FGg:hHi:IJ:j:k:l:L:m:M:n:N:oO:p:P:Q:rR:s:S:t:T:u:U:vVw:W:x:X:y:Y:z:Z:", long_options, &option_index)) != -1) {
|
||||
switch (c) {
|
||||
case 0:
|
||||
if (! strcmp(long_options[option_index].name, "pdcp_period")) {
|
||||
@@ -139,7 +139,7 @@ void get_simulation_options(int argc, char *argv[]) {
|
||||
case 'C':
|
||||
oai_emulation.info.tdd_config = atoi (optarg);
|
||||
if (oai_emulation.info.tdd_config > 6) {
|
||||
LOG_E(EMU,"Illegal tdd_config %d (should be 0-6)\n", oai_emulation.info.tdd_config);
|
||||
printf("Illegal tdd_config %d (should be 0-6)\n", oai_emulation.info.tdd_config);
|
||||
exit (-1);
|
||||
}
|
||||
break;
|
||||
@@ -152,23 +152,28 @@ void get_simulation_options(int argc, char *argv[]) {
|
||||
oai_emulation.info.N_RB_DL = atoi (optarg);
|
||||
if ((oai_emulation.info.N_RB_DL != 6) && (oai_emulation.info.N_RB_DL != 15) && (oai_emulation.info.N_RB_DL != 25)
|
||||
&& (oai_emulation.info.N_RB_DL != 50) && (oai_emulation.info.N_RB_DL != 75) && (oai_emulation.info.N_RB_DL != 100)) {
|
||||
LOG_E(EMU,"Illegal N_RB_DL %d (should be one of 6,15,25,50,75,100)\n", oai_emulation.info.N_RB_DL);
|
||||
printf("Illegal N_RB_DL %d (should be one of 6,15,25,50,75,100)\n", oai_emulation.info.N_RB_DL);
|
||||
exit (-1);
|
||||
}
|
||||
case 'N':
|
||||
Nid_cell = atoi (optarg);
|
||||
if (Nid_cell > 503) {
|
||||
LOG_E(EMU,"Illegal Nid_cell %d (should be 0 ... 503)\n", Nid_cell);
|
||||
printf("Illegal Nid_cell %d (should be 0 ... 503)\n", Nid_cell);
|
||||
exit(-1);
|
||||
}
|
||||
break;
|
||||
case 'h':
|
||||
help ();
|
||||
exit (1);
|
||||
break;
|
||||
case 'H':
|
||||
oai_emulation.info.handover_active=1;
|
||||
printf("Activate the handover procedure at RRC\n");
|
||||
break;
|
||||
case 'x':
|
||||
oai_emulation.info.transmission_mode = atoi (optarg);
|
||||
if ((oai_emulation.info.transmission_mode != 1) && (oai_emulation.info.transmission_mode != 2) && (oai_emulation.info.transmission_mode != 5) && (oai_emulation.info.transmission_mode != 6)) {
|
||||
LOG_E(EMU, "Unsupported transmission mode %d\n",oai_emulation.info.transmission_mode);
|
||||
printf("Unsupported transmission mode %d\n",oai_emulation.info.transmission_mode);
|
||||
exit(-1);
|
||||
}
|
||||
break;
|
||||
@@ -211,7 +216,7 @@ void get_simulation_options(int argc, char *argv[]) {
|
||||
break;
|
||||
case 'k':
|
||||
//ricean_factor = atof (optarg);
|
||||
LOG_E(EMU,"[SIM] Option k is no longer supported on the command line. Please specify your channel model in the xml template\n");
|
||||
printf("[SIM] Option k is no longer supported on the command line. Please specify your channel model in the xml template\n");
|
||||
exit(-1);
|
||||
break;
|
||||
case 'K':
|
||||
@@ -219,7 +224,7 @@ void get_simulation_options(int argc, char *argv[]) {
|
||||
break;
|
||||
case 't':
|
||||
//Td = atof (optarg);
|
||||
LOG_E(EMU,"[SIM] Option t is no longer supported on the command line. Please specify your channel model in the xml template\n");
|
||||
printf("[SIM] Option t is no longer supported on the command line. Please specify your channel model in the xml template\n");
|
||||
exit(-1);
|
||||
break;
|
||||
case 'f':
|
||||
@@ -575,7 +580,7 @@ void init_openair2() {
|
||||
#ifdef OPENAIR2
|
||||
s32 i;
|
||||
s32 UE_id;
|
||||
|
||||
|
||||
#if defined(ENABLE_ITTI)
|
||||
if (NB_eNB_INST > 0) {
|
||||
if (itti_create_task (TASK_RRC_ENB, rrc_enb_task, NULL) < 0) {
|
||||
@@ -594,13 +599,12 @@ void init_openair2() {
|
||||
}
|
||||
#endif
|
||||
|
||||
l2_init (&PHY_vars_eNB_g[0]->lte_frame_parms,oai_emulation.info.eMBMS_active_state, oai_emulation.info.cba_group_active);
|
||||
printf ("after L2 init: Nid_cell %d\n", PHY_vars_eNB_g[0]->lte_frame_parms.Nid_cell);
|
||||
printf ("after L2 init: frame_type %d,tdd_config %d\n",
|
||||
PHY_vars_eNB_g[0]->lte_frame_parms.frame_type,
|
||||
PHY_vars_eNB_g[0]->lte_frame_parms.tdd_config);
|
||||
l2_init (&PHY_vars_eNB_g[0]->lte_frame_parms,
|
||||
oai_emulation.info.eMBMS_active_state,
|
||||
oai_emulation.info.cba_group_active,
|
||||
oai_emulation.info.handover_active);
|
||||
|
||||
for (i = 0; i < NB_eNB_INST; i++)
|
||||
for (i = 0; i < NB_eNB_INST; i++)
|
||||
mac_xface->mrbch_phy_sync_failure (i, 0, i);
|
||||
|
||||
if (abstraction_flag == 1) {
|
||||
|
||||
Reference in New Issue
Block a user