* 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:
@@ -1109,7 +1109,8 @@ int main(int argc, char **argv)
|
||||
//print [MAC][I]... messages
|
||||
//l2_init(frame_parms,eMBMS_active);
|
||||
l2_init(frame_parms,eMBMS_active,
|
||||
0); // cba_group_active
|
||||
0,// cba_group_active
|
||||
0); // HO flag
|
||||
if (UE_flag == 1)
|
||||
mac_xface->dl_phy_sync_success (0, 0, 0, 1);
|
||||
else
|
||||
|
||||
@@ -63,6 +63,7 @@
|
||||
|
||||
#include "PHY/vars.h"
|
||||
#include "MAC_INTERFACE/vars.h"
|
||||
//#include "SCHED/defs.h"
|
||||
#include "SCHED/vars.h"
|
||||
#include "LAYER2/MAC/vars.h"
|
||||
|
||||
@@ -1253,8 +1254,8 @@ int main(int argc, char **argv) {
|
||||
}
|
||||
|
||||
PHY_vars_UE_g[0]->tx_power_max_dBm = tx_max_power;
|
||||
|
||||
printf("tx_max_power = %d -> amp %d\n",tx_max_power,get_tx_amp(tx_max_power,tx_max_power));
|
||||
|
||||
// printf("tx_max_power = %d -> amp %d\n",tx_max_power,get_tx_amp(tx_max_power,tx_max_power));
|
||||
}
|
||||
else { //this is eNB
|
||||
g_log->log_component[HW].level = LOG_DEBUG;
|
||||
@@ -1394,7 +1395,8 @@ int main(int argc, char **argv) {
|
||||
#ifdef OPENAIR2
|
||||
int eMBMS_active=0;
|
||||
l2_init(frame_parms,eMBMS_active,
|
||||
0); // cba_group_active
|
||||
0,// cba_group_active
|
||||
0); // HO flag
|
||||
if (UE_flag == 1)
|
||||
mac_xface->dl_phy_sync_success (0, 0, 0, 1);
|
||||
else
|
||||
|
||||
Executable
+41
@@ -0,0 +1,41 @@
|
||||
#!/usr/bin/env python
|
||||
# svn merge-tool python wrapper for meld
|
||||
# to use: edit ~/.subversion/config and uncomment the line merge-tool-cmd =
|
||||
# and set the path to your command
|
||||
|
||||
# Note that when a conflict occurs, you will be prompted what to do with it. You need to type a single 'l' and for svn to run this script. When you've finished your merge, you need to type an 'r' to resolve the conflict and copy the merged version to the working copy.
|
||||
|
||||
import os, sys
|
||||
import subprocess
|
||||
import shutil
|
||||
|
||||
try:
|
||||
# path to meld
|
||||
meld = "/usr/bin/meld"
|
||||
|
||||
print "Set the file paths for mine, theirs, and merged\n"
|
||||
print "When you've finished your merge, you need to type an 'r' to resolve the conflict and copy the merged version to the working copy\n"
|
||||
|
||||
# the base or "left" revision version of the file you're merging with
|
||||
base = sys.argv[1]
|
||||
|
||||
# this is "later" or "right"revision version of the file you're merging with
|
||||
theirs = sys.argv[2]
|
||||
|
||||
# this is my version, recommandations: sync your copy to the latest version
|
||||
mine = sys.argv[3]
|
||||
|
||||
#this starts out as a copy of 'mine' (your working copy), and this is where you want the final results of the merge to end up.
|
||||
merged = sys.argv[4]
|
||||
|
||||
print "Calling meld: the order of the files is (merged, theirs, and mine)"
|
||||
# all 4 versions: worke right-to-left, reslut being stored in the left file
|
||||
# cmd = [meld, mine, base, theirs, merged]
|
||||
# only 3 versions
|
||||
cmd = [meld, merged, theirs, mine]
|
||||
|
||||
# Call meld, making sure it exits correctly
|
||||
subprocess.check_call(cmd)
|
||||
except:
|
||||
print "Oh, an error!\n"
|
||||
sys.exit(-1)
|
||||
+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