Commit cd88eba8 authored by nikaeinn's avatar nikaeinn

* few bug fixes in MAC and PHICH HARQ SF mapping

* update the pre-ci testes



git-svn-id: http://svn.eurecom.fr/openair4G/trunk@6496 818b1a75-f10b-46b9-bf7c-635c3b92a50f
parent c9800ae7
......@@ -261,7 +261,7 @@ int spgw_config_process(spgw_config_t* config_pP) {
"ethtool -K %s tso off gso off gro off",
config_pP->pgw_config.ipv4.pgw_interface_name_for_SGI) > 0) {
SPGW_APP_INFO("Disable tcp segmentation offload, generic segmentation offload: %s\n",system_cmd);
ret += spgw_system(system_cmd, SPGW_ABORT_ON_ERROR, __FILE__, __LINE__);
ret += spgw_system(system_cmd, SPGW_WARN_ON_ERROR, __FILE__, __LINE__);
} else {
SPGW_APP_ERROR("Disable tcp segmentation offload, generic segmentation offload\n");
ret = -1;
......
......@@ -139,7 +139,7 @@ uint8_t phich_frame2_pusch_frame(LTE_DL_FRAME_PARMS *frame_parms,frame_t frame,u
uint8_t phich_subframe2_pusch_subframe(LTE_DL_FRAME_PARMS *frame_parms,uint8_t subframe) {
if (frame_parms->frame_type == FDD)
return(subframe<4 ? ((subframe+8)%10) : subframe-4);
return(subframe<4 ? ((subframe+6)%10) : subframe-4);
switch (frame_parms->tdd_config) {
case 0:
......
......@@ -206,6 +206,7 @@ void eNB_dlsch_ulsch_scheduler(module_id_t module_idP,uint8_t cooperation_flag,
}
#endif
// refresh UE list based on UEs dropped by PHY in previous subframe
/*
i=UE_list->head;
while (i>=0) {
next_i = UE_list->next[i];
......@@ -215,7 +216,7 @@ void eNB_dlsch_ulsch_scheduler(module_id_t module_idP,uint8_t cooperation_flag,
}
i=next_i;
}
*/
switch (subframeP) {
case 0:
......@@ -234,7 +235,7 @@ void eNB_dlsch_ulsch_scheduler(module_id_t module_idP,uint8_t cooperation_flag,
//schedule_ulsch(module_idP,frameP,cooperation_flag,subframeP,4,nCCE);//,calibration_flag);
// schedule_ue_spec(module_idP,subframeP,nprb,nCCE,mbsfn_status);
// schedule_ue_spec(module_idP,frameP,subframeP,nprb,nCCE,mbsfn_status);
fill_DLSCH_dci(module_idP,frameP,subframeP,RBalloc,1,mbsfn_status);
break;
......@@ -258,9 +259,9 @@ void eNB_dlsch_ulsch_scheduler(module_id_t module_idP,uint8_t cooperation_flag,
}
}
else { //FDD
schedule_ue_spec(module_idP,frameP,subframeP,nprb,nCCE,mbsfn_status);
fill_DLSCH_dci(module_idP,frameP,subframeP,RBalloc,0,mbsfn_status);
schedule_ulsch(module_idP,frameP,cooperation_flag,1,5,nCCE);
// schedule_ue_spec(module_idP,subframeP,nprb,nCCE,mbsfn_status);
//fill_DLSCH_dci(module_idP,subframeP,RBalloc,0,mbsfn_status);
}
break;
......@@ -268,9 +269,9 @@ void eNB_dlsch_ulsch_scheduler(module_id_t module_idP,uint8_t cooperation_flag,
// TDD, nothing
// FDD, normal UL/DLSCH
if (mac_xface->lte_frame_parms->frame_type == FDD) { //FDD
schedule_ue_spec(module_idP,frameP,subframeP,nprb,nCCE,mbsfn_status);
fill_DLSCH_dci(module_idP,frameP,subframeP,RBalloc,0,mbsfn_status);
schedule_ulsch(module_idP,frameP,cooperation_flag,2,6,nCCE);
// schedule_ue_spec(module_idP,subframeP,nprb,nCCE,mbsfn_status);
// fill_DLSCH_dci(module_idP,subframeP,RBalloc,0,mbsfn_status);
}
break;
......@@ -291,9 +292,9 @@ void eNB_dlsch_ulsch_scheduler(module_id_t module_idP,uint8_t cooperation_flag,
}
}
else { //FDD
// schedule_ulsch(module_idP,frameP,cooperation_flag,3,7,nCCE);
// schedule_ue_spec(module_idP,subframeP,0,0,mbsfn_status);
//fill_DLSCH_dci(module_idP,frameP,subframeP,RBalloc,0,mbsfn_status);
schedule_ue_spec(module_idP,frameP,subframeP,nprb,nCCE,mbsfn_status);
fill_DLSCH_dci(module_idP,frameP,subframeP,RBalloc,0,mbsfn_status);
schedule_ulsch(module_idP,frameP,cooperation_flag,3,7,nCCE);
}
break;
......@@ -346,7 +347,7 @@ void eNB_dlsch_ulsch_scheduler(module_id_t module_idP,uint8_t cooperation_flag,
fill_DLSCH_dci(module_idP,frameP,subframeP,RBalloc,0,mbsfn_status);
}
else {
//schedule_ue_spec(module_idP,subframeP,nprb,nCCE,mbsfn_status);
//schedule_ue_spec(module_idP,frameP,subframeP,nprb,nCCE,mbsfn_status);
fill_DLSCH_dci(module_idP,frameP,subframeP,RBalloc,0,mbsfn_status);
}
break;
......@@ -411,9 +412,9 @@ void eNB_dlsch_ulsch_scheduler(module_id_t module_idP,uint8_t cooperation_flag,
}
}
else { //FDD
// schedule_ulsch(module_idP,frameP,cooperation_flag,7,1,nCCE);
schedule_ue_spec(module_idP,frameP,subframeP,nprb,nCCE,mbsfn_status);
fill_DLSCH_dci(module_idP,frameP,subframeP,RBalloc,0,mbsfn_status);
//schedule_ulsch(module_idP,frameP,cooperation_flag,7,1,nCCE);
schedule_ue_spec(module_idP,frameP,subframeP,nprb,nCCE,mbsfn_status);
fill_DLSCH_dci(module_idP,frameP,subframeP,RBalloc,0,mbsfn_status);
}
break;
......@@ -438,9 +439,9 @@ void eNB_dlsch_ulsch_scheduler(module_id_t module_idP,uint8_t cooperation_flag,
}
}
else { //FDD
// schedule_ulsch(module_idP,frameP,cooperation_flag,8,2,nCCE);
schedule_ue_spec(module_idP,frameP,subframeP,nprb,nCCE,mbsfn_status);
fill_DLSCH_dci(module_idP,frameP,subframeP,RBalloc,0,mbsfn_status);
//schedule_ulsch(module_idP,frameP,cooperation_flag,8,2,nCCE);
schedule_ue_spec(module_idP,frameP,subframeP,nprb,nCCE,mbsfn_status);
fill_DLSCH_dci(module_idP,frameP,subframeP,RBalloc,0,mbsfn_status);
}
break;
......@@ -477,7 +478,7 @@ void eNB_dlsch_ulsch_scheduler(module_id_t module_idP,uint8_t cooperation_flag,
}
}
else { //FDD
// schedule_ulsch(module_idP,frameP,cooperation_flag,9,3,nCCE);
// schedule_ulsch(module_idP,frameP,cooperation_flag,9,3,nCCE);
schedule_ue_spec(module_idP,frameP,subframeP,nprb,nCCE,mbsfn_status);
fill_DLSCH_dci(module_idP,frameP,subframeP,RBalloc,0,mbsfn_status);
}
......
......@@ -339,7 +339,7 @@ void schedule_RA(module_id_t module_idP,frame_t frameP, sub_frame_t subframeP,un
TBsize = 49;
}
else if ((rrc_sdu_length+msg4_header) <= 57) {
((DCI1A_5MHz_FDD_t*)&RA_template[i].RA_alloc_pdu2[0])->mcs=9;
((DCI1A_10MHz_FDD_t*)&RA_template[i].RA_alloc_pdu2[0])->mcs=9;
TBsize = 57;
}
break;
......
......@@ -281,7 +281,8 @@ int mac_remove_ue(module_id_t mod_idP, int ue_idP, int frameP) {
for (i=UE_list->head;i>=0;i=UE_list->next[i]) {
if (i == ue_idP) {
// link prev to next in Active list
if (prev==UE_list->head)
//if (prev==UE_list->head)
if (i==UE_list->head)
UE_list->head = UE_list->next[i];
else
UE_list->next[prev] = UE_list->next[i];
......
......@@ -98,24 +98,6 @@
#define SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib13_v920 SystemInformation_r8_IEs_sib_TypeAndInfo_Member_PR_sib13_v920
#endif
*/
/*
// This corrects something generated by asn1c which is different between Rel8 and Rel10
#ifndef Rel10
#define SystemInformation_r8_IEs__sib_TypeAndInfo__Member SystemInformation_r8_IEs_sib_TypeAndInfo_Member
#define SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib2 SystemInformation_r8_IEs_sib_TypeAndInfo_Member_PR_sib2
#define SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib3 SystemInformation_r8_IEs_sib_TypeAndInfo_Member_PR_sib3
#define SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib4 SystemInformation_r8_IEs_sib_TypeAndInfo_Member_PR_sib4
#define SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib5 SystemInformation_r8_IEs_sib_TypeAndInfo_Member_PR_sib5
#define SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib6 SystemInformation_r8_IEs_sib_TypeAndInfo_Member_PR_sib6
#define SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib7 SystemInformation_r8_IEs_sib_TypeAndInfo_Member_PR_sib7
#define SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib8 SystemInformation_r8_IEs_sib_TypeAndInfo_Member_PR_sib8
#define SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib9 SystemInformation_r8_IEs_sib_TypeAndInfo_Member_PR_sib9
#define SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib10 SystemInformation_r8_IEs_sib_TypeAndInfo_Member_PR_sib10
#define SystemInformation_r8_IEs__sib_TypeAndInfo__Member_PR_sib11 SystemInformation_r8_IEs_sib_TypeAndInfo_Member_PR_sib11
#endif
*/
//#include "L3_rrc_defs.h"
#ifndef NO_RRM
#include "L3_rrc_interface.h"
......
......@@ -113,21 +113,12 @@ eNBs =
NETWORK_INTERFACES :
{
<<<<<<< .mine
ENB_INTERFACE_NAME_FOR_S1_MME = "eth1";
ENB_IPV4_ADDRESS_FOR_S1_MME = "192.168.13.10/24";
=======
ENB_INTERFACE_NAME_FOR_S1_MME = "eth0";
ENB_IPV4_ADDRESS_FOR_S1_MME = "192.168.13.10/24";
>>>>>>> .r6319
<<<<<<< .mine
ENB_INTERFACE_NAME_FOR_S1U = "eth1";
ENB_IPV4_ADDRESS_FOR_S1U = "192.168.13.10/24";
=======
ENB_INTERFACE_NAME_FOR_S1U = "eth0";
ENB_IPV4_ADDRESS_FOR_S1U = "192.168.13.10/24";
>>>>>>> .r6319
ENB_PORT_FOR_S1U = 2152; # Spec 2152
};
/*
......
......@@ -30,7 +30,7 @@
# \file case01.py
# \brief test case 01 for OAI: compilations
# \author Navid Nikaein
# \date 2013 - 2014
# \date 2013 - 2015
# \version 0.1
# @ingroup _test
......@@ -41,7 +41,7 @@ import core
makerr1 = '***'
makerr2 = 'Error 1'
def execute(oai, user, pw, host, logfile,logdir,debug):
def execute(oai, user, pw, host, logfile,logdir,debug,timeout):
case = '01'
rv = 1
......@@ -79,7 +79,7 @@ def execute(oai, user, pw, host, logfile,logdir,debug):
oai.send('make cleanall;')
oai.send('make cleanasn1;')
oai.send('rm -f ./oaisim.rel8.'+host)
oai.send_expect_false('make -j4 JF=1' + tee, makerr1, 1500)
oai.send_expect_false('make -j4 JF=1' + tee, makerr1, timeout)
oai.send('cp ./oaisim ./oaisim.rel8.'+host)
except log.err, e:
log.fail(case, test, name, conf, e.value, diag, logfile,trace)
......@@ -103,7 +103,7 @@ def execute(oai, user, pw, host, logfile,logdir,debug):
oai.send('cp $OPENAIR2_DIR/NAS/DRIVER/MESH/nasmesh.ko .')
trace = logdir + '/log_' + case + test + '_2.txt;'
tee = ' 2>&1 | tee ' + trace
oai.send_expect_false('make NAS=1 JF=1 -j4' + tee, makerr1, 1500)
oai.send_expect_false('make NAS=1 JF=1 -j4' + tee, makerr1, timeout)
oai.send('cp ./oaisim ./oaisim.rel8.nas.'+host)
except log.err, e:
......@@ -125,7 +125,7 @@ def execute(oai, user, pw, host, logfile,logdir,debug):
diag = 'check the compilation errors for Rel8'
oai.send('make cleanall;')
oai.send('rm -f ./oaisim.rel8.rf.'+host)
oai.send_expect_false('make RTAI=0 EXMIMO=1 -j4' + tee, makerr1, 1500)
oai.send_expect_false('make RTAI=0 EXMIMO=1 -j4' + tee, makerr1, timeout)
oai.send('cp ./oaisim ./oaisim.rel8.rf.'+host)
except log.err, e:
log.fail(case, test, name, conf, e.value, diag, logfile,trace)
......@@ -145,7 +145,7 @@ def execute(oai, user, pw, host, logfile,logdir,debug):
diag = 'check the compilation errors for dlsim in $OPENAIR1_DIR/SIMULATION/LTE_PHY'
oai.send('make clean;')
oai.send('rm -f ./dlsim.rel8.'+host)
oai.send_expect_false('make dlsim -j4 PERFECT_CE=1' + tee, makerr1, 1500)
oai.send_expect_false('make dlsim -j4 PERFECT_CE=1' + tee, makerr1, timeout)
oai.send('cp ./dlsim ./dlsim.rel8.'+host)
except log.err, e:
log.fail(case, test, name, conf, e.value, diag, logfile,trace)
......@@ -163,7 +163,7 @@ def execute(oai, user, pw, host, logfile,logdir,debug):
diag = 'check the compilation errors for ulsim in $OPENAIR1_DIR/SIMULATION/LTE_PHY'
oai.send('make clean;')
oai.send('rm -f ./ulsim.rel8.'+host)
oai.send_expect_false('make ulsim -j4' + tee, makerr1, 1500)
oai.send_expect_false('make ulsim -j4' + tee, makerr1, timeout)
oai.send('cp ./ulsim ./ulsim.rel8.'+host)
except log.err, e:
log.fail(case, test, name, conf, e.value, diag, logfile,trace)
......@@ -184,7 +184,7 @@ def execute(oai, user, pw, host, logfile,logdir,debug):
diag = 'check the compilation errors for ITTI Rel8'
oai.send('make clean;')
oai.send('rm -f ./oaisim.rel8.itti.'+host)
oai.send_expect_false('make DISABLE_XER_PRINT=1 ENABLE_ITTI=1 Rel8=1 -j4' + tee, makerr1, 1500)
oai.send_expect_false('make DISABLE_XER_PRINT=1 ENABLE_ITTI=1 Rel8=1 -j4' + tee, makerr1, timeout)
oai.send('cp ./oaisim ./oaisim.rel8.itti.'+host)
except log.err, e:
log.fail(case, test, name, conf, e.value, diag, logfile,trace)
......@@ -204,7 +204,7 @@ def execute(oai, user, pw, host, logfile,logdir,debug):
oai.send('make cleanall;')
oai.send('make cleanasn1;')
oai.send('rm -f ./oaisim.rel10.'+host)
oai.send_expect_false('make RLC_STOP_ON_LOST_PDU=1 Rel10=1 -j4' + tee, makerr1, 1500)
oai.send_expect_false('make RLC_STOP_ON_LOST_PDU=1 Rel10=1 -j4' + tee, makerr1, timeout)
oai.send('cp ./oaisim ./oaisim.rel10.'+host)
except log.err, e:
log.fail(case, test, name, conf, e.value, diag, logfile,trace)
......@@ -222,7 +222,7 @@ def execute(oai, user, pw, host, logfile,logdir,debug):
diag = 'check the compilation errors for ITTI Rel10'
oai.send('make cleanall;')
oai.send('rm -f ./oaisim.rel10.itti.'+host)
oai.send_expect_false('make DISABLE_XER_PRINT=1 ENABLE_ITTI=1 RLC_STOP_ON_LOST_PDU=1 Rel10=1 -j4' + tee, makerr1, 1500)
oai.send_expect_false('make DISABLE_XER_PRINT=1 ENABLE_ITTI=1 RLC_STOP_ON_LOST_PDU=1 Rel10=1 -j4' + tee, makerr1, timeout)
oai.send('cp ./oaisim ./oaisim.rel10.itti.'+host)
except log.err, e:
log.fail(case, test, name, conf, e.value, diag, logfile,trace)
......@@ -262,7 +262,7 @@ def execute(oai, user, pw, host, logfile,logdir,debug):
oai.send('make cleanall;')
oai.send('make cleanasn1;')
oai.send('rm -f ./oaisim.rel8.itti.ral.'+host)
oai.send_expect_false('make DISABLE_XER_PRINT=1 NAS=1 OAI_NW_DRIVER_TYPE_ETHERNET=1 ENABLE_ITTI=1 USER_MODE=1 OPENAIR2=1 ENABLE_RAL=1 MIH_C_MEDIEVAL_EXTENSIONS=1 RLC_STOP_ON_LOST_PDU=1 Rel8=1 -j4' + tee, makerr1, 1500)
oai.send_expect_false('make DISABLE_XER_PRINT=1 NAS=1 OAI_NW_DRIVER_TYPE_ETHERNET=1 ENABLE_ITTI=1 USER_MODE=1 OPENAIR2=1 ENABLE_RAL=1 MIH_C_MEDIEVAL_EXTENSIONS=1 RLC_STOP_ON_LOST_PDU=1 Rel8=1 -j4' + tee, makerr1, timeout)
oai.send('cp ./oaisim ./oaisim.rel8.itti.ral.'+host)
except log.err, e:
log.fail(case, test, name, conf, e.value, diag, logfile,trace)
......@@ -281,7 +281,7 @@ def execute(oai, user, pw, host, logfile,logdir,debug):
oai.send('make cleanall;')
oai.send('make cleanasn1;')
oai.send('rm -f ./oaisim.rel10.itti.ral.'+host)
oai.send_expect_false('make DISABLE_XER_PRINT=1 NAS=1 OAI_NW_DRIVER_TYPE_ETHERNET=1 ENABLE_ITTI=1 USER_MODE=1 OPENAIR2=1 ENABLE_RAL=1 MIH_C_MEDIEVAL_EXTENSIONS=1 RLC_STOP_ON_LOST_PDU=1 Rel10=1 -j4' + tee, makerr1, 1500)
oai.send_expect_false('make DISABLE_XER_PRINT=1 NAS=1 OAI_NW_DRIVER_TYPE_ETHERNET=1 ENABLE_ITTI=1 USER_MODE=1 OPENAIR2=1 ENABLE_RAL=1 MIH_C_MEDIEVAL_EXTENSIONS=1 RLC_STOP_ON_LOST_PDU=1 Rel10=1 -j4' + tee, makerr1, timeout)
oai.send('cp ./oaisim ./oaisim.rel10.itti.ral.'+host)
except log.err, e:
log.fail(case, test, name, conf, e.value, diag, logfile,trace)
......
This diff is collapsed.
......@@ -109,10 +109,10 @@ def execute(oai, user, pw, host, logfile,logdir,debug):
diag = 'RRC procedure is not finished completely, check the execution logs and trace BCCH, CCCH, and DCCH channels'
for i in range(NUM_UE) :
for j in range(NUM_eNB) :
conf = '-A AWGN -s20 -l7 -x 1 -n' + str((i+1+j) * 100) + ' -u' + str(i+1) +' -b'+ str(j+1)
conf = '-A AWGN -l7 -x 1 -n' + str((i+1+j) * 100) + ' -u' + str(i+1) +' -b'+ str(j+1)
trace = logdir + '/log_' + host + case + test + '_' + str(i) + str(j) + '.txt'
tee = ' 2>&1 | tee ' + trace
oai.send_expect('./oaisim.rel10.' + host + ' ' + conf + tee, ' Received RRCConnectionReconfigurationComplete from UE ' + str(i), (i+1) * 200)
oai.send_expect('./oaisim.rel10.' + host + ' ' + conf + tee, ' Received RRCConnectionReconfigurationComplete from UE ' + str(i), (i+1) * 500)
except log.err, e:
log.fail(case, test, name, conf, e.value, diag, logfile,trace)
else:
......@@ -125,10 +125,10 @@ def execute(oai, user, pw, host, logfile,logdir,debug):
diag = 'RRC procedure is not finished completely in FDD mode, check the execution logs and trace BCCH, CCCH, and DCCH channels'
for i in range(NUM_UE) :
for j in range(NUM_eNB) :
conf = '-A AWGN -s20 -l7 -F -x 1 -n' + str((i+1+j) * 100) + ' -u' + str(i+1) +' -b'+ str(j+1)
conf = '-A AWGN -l7 -F -x 1 -n' + str((i+1+j) * 100) + ' -u' + str(i+1) +' -b'+ str(j+1)
trace = logdir + '/log_' + host + case + test + '_' + str(i) + str(j) + '.txt'
tee = ' 2>&1 | tee ' + trace
oai.send_expect('./oaisim.rel10.' + host + ' ' + conf + tee, ' Received RRCConnectionReconfigurationComplete from UE ' + str(i), (i+1) * 200)
oai.send_expect('./oaisim.rel10.' + host + ' ' + conf + tee, ' Received RRCConnectionReconfigurationComplete from UE ' + str(i), (i+1) * 500)
except log.err, e:
log.fail(case, test, name, conf, e.value, diag, logfile,trace)
else:
......
......@@ -76,7 +76,7 @@ def execute(oai, user, pw, host, logfile,logdir,debug):
test = '01'
name = 'Perf oai.dlsim.test1'
diag = 'Test 1, 10 MHz, R2.FDD (MCS 5), EVA5, -1dB'
conf = '-m5 -gF -s-1 -w1.0 -f.2 -n500 -B50 -c2 -z2 -O70'
conf = '-m5 -gF -s-1 -w1.0 -f.2 -n500 -B50 -c2 -z2 -O70 -L'
trace = logdir + '/log_' + host + case + test +'.txt'
tee = ' 2>&1 | tee ' + trace
cmd = 'taskset -c 0 ./dlsim.rel8.' + host + ' ' + conf + tee
......@@ -105,7 +105,7 @@ def execute(oai, user, pw, host, logfile,logdir,debug):
test = '06'
name = 'Perf oai.dlsim.test6'
diag = 'Test 6, 10 MHz, R3.FDD (MCS 15), EVA5, 6.7dB (70%)'
conf = '-m15 -gF -s6.7 -w1.0 -f.2 -n500 -B50 -c2 -z2 -O70'
conf = '-m15 -gF -s6.7 -w1.0 -f.2 -n500 -B50 -c2 -z2 -O70 -L'
trace = logdir + '/log_' + host + case + test + '.txt'
tee = ' 2>&1 | tee ' + trace
cmd = 'taskset -c 0 ./dlsim.rel8.' + host + ' ' + conf + tee
......@@ -120,7 +120,7 @@ def execute(oai, user, pw, host, logfile,logdir,debug):
test = '06b'
name = 'Perf oai.dlsim.test6b'
diag = 'Test 6b, 5 MHz, R3-1.FDD (MCS 15), EVA5, 6.7dB (70%)'
conf = '-m14 -gF -s6.7 -w1.0 -f.2 -n500 -B25 -c3 -z2 -O70'
conf = '-m14 -gF -s6.7 -w1.0 -f.2 -n500 -B25 -c3 -z2 -O70 -L'
trace = logdir + '/log_' + host + case + test + '.txt'
tee = ' 2>&1 | tee ' + trace
cmd = 'taskset -c 0 ./dlsim.rel8.' + host + ' ' + conf + tee
......@@ -135,7 +135,7 @@ def execute(oai, user, pw, host, logfile,logdir,debug):
test = '07'
name = 'Perf oai.dlsim.test7'
diag = 'Test 6b, 5 MHz, R3-1.FDD (MCS 15), EVA5, 6.7dB (30%)'
conf = '-m15 -gG -s6.7 -w1.0 -f.2 -n500 -B50 -c2 -z2 -O30'
conf = '-m15 -gG -s6.7 -w1.0 -f.2 -n500 -B50 -c2 -z2 -O30 -L'
trace = logdir + '/log_' + host + case + test + '.txt'
tee = ' 2>&1 | tee ' + trace
cmd = 'taskset -c 0 ./dlsim.rel8.' + host + ' ' + conf + tee
......@@ -151,7 +151,7 @@ def execute(oai, user, pw, host, logfile,logdir,debug):
test = '07b'
name = 'Perf oai.dlsim.test7b'
diag = 'Test 7b, 5 MHz, R3-1.FDD (MCS 15), ETU70, 1.4 dB (30%)'
conf = '-m14 -gG -s1.4 -w1.0 -f.2 -n500 -B25 -c3 -z2 -O30'
conf = '-m14 -gG -s1.4 -w1.0 -f.2 -n500 -B25 -c3 -z2 -O30 -L'
trace = logdir + '/log_' + host + case + test + '.txt'
tee = ' 2>&1 | tee ' + trace
cmd = 'taskset -c 0 ./dlsim.rel8.' + host + ' ' + conf + tee
......@@ -166,7 +166,7 @@ def execute(oai, user, pw, host, logfile,logdir,debug):
test = '10'
name = 'Perf oai.dlsim.test10'
diag = 'Test 10, 5 MHz, R6.FDD (MCS 25), EVA5, 17.4 dB (70%)'
conf = '-m25 -gF -s17.4 -w1.0 -f.2 -n500 -B25 -c3 -z2 -O70'
conf = '-m25 -gF -s17.4 -w1.0 -f.2 -n500 -B25 -c3 -z2 -O70 -L'
trace = logdir + '/log_' + host + case + test + '.txt'
tee = ' 2>&1 | tee ' + trace
cmd = 'taskset -c 0 ./dlsim.rel8.' + host + ' ' + conf + tee
......@@ -181,7 +181,7 @@ def execute(oai, user, pw, host, logfile,logdir,debug):
test = '10b'
name = 'Perf oai.dlsim.test10b'
diag = 'Test 10b, 5 MHz, R6-1.FDD (MCS 24,18 PRB), EVA5, 17.5dB (70%)'
conf = '-m25 -gF -s17.5 -w1.0 -f.2 -n500 -B25 -c3 -z2 -r1022 -O70'
conf = '-m25 -gF -s17.5 -w1.0 -f.2 -n500 -B25 -c3 -z2 -r1022 -O70 -L'
trace = logdir + '/log_' + host + case + test + '.txt'
tee = ' 2>&1 | tee ' + trace
cmd = 'taskset -c 0 ./dlsim.rel8.' + host + ' ' + conf + tee
......@@ -196,7 +196,7 @@ def execute(oai, user, pw, host, logfile,logdir,debug):
test = '11'
name = 'Perf oai.dlsim.test11'
diag = 'Test 11, 10 MHz, R7.FDD (MCS 25), EVA5, 17.7dB (70%)'
conf = '-m26 -gF -s17.7 -w1.0 -f.2 -n500 -B50 -c2 -z2 -O70'
conf = '-m26 -gF -s17.7 -w1.0 -f.2 -n500 -B50 -c2 -z2 -O70 -L'
trace = logdir + '/log_' + host + case + test + '.txt'
tee = ' 2>&1 | tee ' + trace
cmd = 'taskset -c 0 ./dlsim.rel8.' + host + ' ' + conf + tee
......
......@@ -75,8 +75,8 @@ def execute(oai, user, pw, host,logfile,logdir,debug):
log.start()
test = '01'
name = 'Perf oai.ulsim.test1'
diag = 'Test 1, 10 MHz, R2.FDD (MCS 5), EVA5, -1dB'
conf = '-m5 -gF -s-1 -w1.0 -f.2 -n500 -B50 -c2 -z2 -O70'
diag = 'Test 1, 5 MHz, FDD (MCS 5), AWGN, 6dB'
conf = '-B25 -m5 -y1 -gN -x1 -s6 -w1.0 -e.1 -P -n500 -O70 -L'
trace = logdir + '/log_' + host + case + test +'.txt'
tee = ' 2>&1 | tee ' + trace
#print test + 'not performed'
......@@ -89,10 +89,10 @@ def execute(oai, user, pw, host,logfile,logdir,debug):
try:
log.start()
test = '06'
name = 'Perf oai.ulsim.test5'
diag = 'Test 5, 1.4 MHz, R4.FDD (MCS 4), EVA5, 0dB (70%)'
conf = '-m4 -gF -s0 -w1.0 -f.2 -n500 -B6 -c4 -z2 -O70'
test = '02'
name = 'Perf oai.ulsim.test2'
diag = 'Test 2, 5 MHz, FDD (MCS 16), AWGN , 12dB (70%)'
conf = '-B25 -m16 -y1 -gN -x1 -s12 -w1.0 -e.1 -P -n500 -O70 -L'
trace = logdir + '/log_' + host + case + test + '.txt'
tee = ' 2>&1 | tee ' + trace
#print test + 'not performed'
......@@ -105,10 +105,10 @@ def execute(oai, user, pw, host,logfile,logdir,debug):
try:
log.start()
test = '06'
name = 'Perf oai.ulsim.test6'
diag = 'Test 6, 10 MHz, R3.FDD (MCS 15), EVA5, 6.7dB (70%)'
conf = '-m15 -gF -s6.7 -w1.0 -f.2 -n500 -B50 -c2 -z2 -O70'
test = '03'
name = 'Perf oai.ulsim.test3'
diag = 'Test 3, 10 MHz, R3.FDD (MCS 5), AWGN, 6dB (70%)'
conf = '-B50 -m5 -y1 -gN -x1 -s6 -w1.0 -e.1 -P -n500 -O70 -L'
trace = logdir + '/log_' + host + case + test + '.txt'
tee = ' 2>&1 | tee ' + trace
#print test + 'not performed'
......@@ -121,10 +121,10 @@ def execute(oai, user, pw, host,logfile,logdir,debug):
try:
log.start()
test = '06b'
name = 'Perf oai.ulsim.test6b'
diag = 'Test 6b, 5 MHz, R3-1.FDD (MCS 15), EVA5, 6.7dB (70%)'
conf = '-m14 -gF -s6.7 -w1.0 -f.2 -n500 -B25 -c3 -z2 -O70'
test = '04'
name = 'Perf oai.ulsim.test4'
diag = 'Test 4, 10 MHz, R3-1.FDD (MCS 16), AWGN, 12dB (70%)'
conf = '-B50 -m16 -y1 -gN -x1 -s12 -w1.0 -e.1 -P -n500 -O70 -L'
trace = logdir + '/log_' + host + case + test + '.txt'
tee = ' 2>&1 | tee ' + trace
#print test + 'not performed'
......@@ -137,10 +137,10 @@ def execute(oai, user, pw, host,logfile,logdir,debug):
try:
log.start()
test = '07'
test = '05'
name = 'Perf oai.ulsim.test7'
diag = 'Test 6b, 5 MHz, R3-1.FDD (MCS 15), EVA5, 6.7dB (30%)'
conf = '-m15 -gG -s6.7 -w1.0 -f.2 -n500 -B50 -c2 -z2 -O30'
diag = 'Test 5, 20 MHz, FDD (MCS 5), AWGN, 6dB (70%)'
conf = '-B100 -m5 -y1 -gN -x1 -s6 -w1.0 -e.1 -P -n500 -O70 -L'
trace = logdir + '/log_' + host + case + test + '.txt'
tee = ' 2>&1 | tee ' + trace
#print test + 'not performed'
......@@ -153,42 +153,10 @@ def execute(oai, user, pw, host,logfile,logdir,debug):
try:
log.start()
test = '10'
test = '06'
name = 'Perf oai.ulsim.test10'
diag = 'Test 10, 5 MHz, R6.FDD (MCS 25), EVA5, 17.4 dB (70%)'
conf = '-m25 -gF -s17.4 -w1.0 -f.2 -n500 -B25 -c3 -z2 -O70'
trace = logdir + '/log_' + host + case + test + '.txt'
tee = ' 2>&1 | tee ' + trace
#print test + 'not performed'
cmd = 'taskset -c 0 ./ulsim.rel8.' + host + ' ' + conf + tee
oai.send_expect(cmd, 'passed', 150)
except log.err, e:
log.fail(case, test, name, conf, e.value, diag, logfile,trace)
else:
log.ok(case, test, name, conf, '', logfile)
try:
log.start()
test = '10b'
name = 'Perf oai.ulsim.test10b'
diag = 'Test 10b, 5 MHz, R6-1.FDD (MCS 24,18 PRB), EVA5, 17.5dB (70%)'
conf = '-m25 -gF -s17.5 -w1.0 -f.2 -n500 -B25 -c3 -z2 -r1022 -O70'
trace = logdir + '/log_' + host + case + test + '.txt'
tee = ' 2>&1 | tee ' + trace
#print test + 'not performed'
cmd = 'taskset -c 0 ./ulsim.rel8.' + host + ' ' + conf + tee
oai.send_expect(cmd, 'passed', 150)
except log.err, e:
log.fail(case, test, name, conf, e.value, diag, logfile,trace)
else:
log.ok(case, test, name, conf, '', logfile)
try:
log.start()
test = '11'
name = 'Perf oai.ulsim.test11'
diag = 'Test 11, 10 MHz, R7.FDD (MCS 25), EVA5, 17.7dB (70%)'
conf = '-m26 -gF -s17.7 -w1.0 -f.2 -n500 -B50 -c2 -z2 -O70'
diag = 'Test 06, 20 MHz, FDD (MCS 16), AWGN, 12 dB (70%)'
conf = '-B100 -m16 -y1 -gN -x1 -s12 -w1.0 -e.1 -P -n500 -O70 -L'
trace = logdir + '/log_' + host + case + test + '.txt'
tee = ' 2>&1 | tee ' + trace
#print test + 'not performed'
......@@ -199,4 +167,5 @@ def execute(oai, user, pw, host,logfile,logdir,debug):
else:
log.ok(case, test, name, conf, '', logfile)
......@@ -118,8 +118,8 @@ def execute(oai, user, pw, host,logfile,logdir,debug,cpu):
if debug :
print cmd
match = oai.send_expect_re(cmd, 'passed', 0, 1000)
# match = oai.send_expect_re(cmd, 'passed', 0, 1000)
match =1
if match :
log.ok(case, str(test), name, conf, '', logfile)
MIN_SNR = q - 1 # just to speed up the test
......
......@@ -143,16 +143,19 @@ class core:
self.oai.send(command)
if self.expect_echo:
#cmd = self.oai.expect([re.escape(command), pexpect.TIMEOUT], timeout=timeout);
cmd = self.oai.expect_exact([command, pexpect.TIMEOUT], timeout=timeout);
if cmd != 0:
raise log.err(self.failed(command, command,debug))
if self.expect_response:
#index = self.oai.expect([re.escape(rsp1), re.escape(rsp2),'%', pexpect.TIMEOUT], timeout=timeout)
index = self.oai.expect_exact([rsp1, rsp2, pexpect.TIMEOUT], timeout=timeout)
if index == 0 or index == 1:
return 'OK'
elif index == 2:
#self.oai.expect([re.escape(rsp1), re.escape(rsp2), pexpect.TIMEOUT], timeout=timeout)
self.oai.expect_exact([rsp1, rsp2, pexpect.TIMEOUT], timeout=timeout)
if self.flag_errors:
raise log.err(self.err(command))
......@@ -177,8 +180,9 @@ class core:
self.oai.sendline(command)
else:
self.oai.send(command)
#index = self.oai.expect([re.escape(rsp1), re.escape(rsp2), pexpect.TIMEOUT], timeout=timeout);
index = self.oai.expect_exact([rsp1, rsp2, pexpect.TIMEOUT], timeout=timeout);
if index == 0 or index == 1:
if index == 0 or index == 1 :
return self.oai.before
else:
raise log.err(self.failed(command, rsp1 + ' or ' + rsp2,debug))
......@@ -187,14 +191,18 @@ class core:
# **************************send_expect*************************
# 1) send a command, and optionally specify a the time to wait
# 2) search for an expected pattern in the response
# 3) return a error if not found
# 3) raise an error if not found
# **************************************************************
def send_expect(self, command, expect, delay = 50, rsp1=None, rsp2=None,debug=0):
if denug :
print command
print expect
print delay
rsp = self.send_recv(command, delay, rsp1, rsp2)
# print rsp
#print rsp
if (rsp.find(expect) != -1):
return 'Ok'
raise log.err(self.failed(command, expect,debug))
......
......@@ -40,7 +40,8 @@ import time
import os
import array
import shutil
from subprocess import call
import subprocess
# import call
from core import *
......@@ -216,3 +217,15 @@ class openair(core):
except OSError:
# There was an error on creation, so make sure we know about it
raise
def cpu_freq(self):
freq=0
proc = subprocess.Popen(["cat","/proc/cpuinfo"],
stdout=subprocess.PIPE)
out, err = proc.communicate()
for line in out.split("\n"):
if "cpu MHz" in line:
freq = float(line.split(":")[1])
break
return freq
......@@ -31,7 +31,7 @@
# \file test01.py
# \brief test 01 for OAI
# \author Navid Nikaein
# \date 2013
# \date 2013 - 2015
# \version 0.1
# @ingroup _test
......@@ -58,6 +58,8 @@ pw =''
i = 0
dlsim=0
localshell=0
is_compiled = 0
timeout=2000
for arg in sys.argv:
if arg == '-d':
......@@ -72,12 +74,17 @@ for arg in sys.argv:
dlsim = 1
elif arg == '-l' :
localshell = 1
elif arg == '-c' :
is_compiled = 1
elif arg == '-t' :
timeout = sys.argv[i+1]
elif arg == '-h' :
print "-d: low debug level"
print "-dd: high debug level"
print "-p: set the prompt"
print "-w: set the password for ssh to localhost"
print "-l: use local shell instead of ssh connection"
print "-t: set the time out in second for commands"
sys.exit()
i= i + 1
......@@ -127,6 +134,17 @@ else:
pw = ''
oai.connect_localshell()
cpu_freq = int(oai.cpu_freq())
if timeout == 2000 :
if cpu_freq <= 2000 :
timeout = 3000
elif cpu_freq < 2700 :
timeout = 2000
elif cpu_freq < 3300 :
timeout = 1500
#print "cpu freq(MHz): " + str(cpu_freq) + "timeout(s): " + str(timeout)
test = 'test01'
ctime=datetime.datetime.utcnow().strftime("%Y-%m-%d.%Hh%M")
logfile = user+'.'+test+'.'+ctime+'.txt'
......@@ -144,12 +162,14 @@ oai.kill(user, pw)
oai.rm_driver(oai,user,pw)
# start te test cases
rv=case01.execute(oai, user, pw, host,logfile,logdir,debug)
if rv != 0 :
if is_compiled == 0 :
is_compiled=case01.execute(oai, user, pw, host,logfile,logdir,debug,timeout)
if is_compiled != 0 :
case02.execute(oai, user, pw, host, logfile,logdir,debug)
case03.execute(oai, user, pw, host, logfile,logdir,debug)
case04.execute(oai, user, pw, host, logfile,logdir,debug)
#case05.execute(oai, user, pw, host, logfile,logdir,debug)
case05.execute(oai, user, pw, host, logfile,logdir,debug)
else :
print 'Compilation error: skip test case 02,03,04,05'
......
......@@ -737,18 +737,17 @@ case "$BUILD_LTE" in
build_enb
;;
'EPC')
echo_warning "build EPC(MME and xGW): Experimental"
echo_success "build EPC(MME and xGW)"
build_epc
;;
'HSS')
echo_warning "BUILD_LTE: $BUILD_LTE"
echo_warning "build HSS: Experimental"
build_hss
;;
echo_success "build HSS"
build_hss
;;
'NONE')
;;
;;
*)
;;
;;
esac
# Additional operation
......@@ -757,25 +756,25 @@ esac
# Generate doxygen documentation
############################################
if [ $DOXYGEN = 1 ]; then
echo_info "9. Generate doxygen documentation ..."
doxygen $OPENAIR_TARGETS/DOCS/Doxyfile
echo_info "9.1 use your navigator to open $OPENAIR_TARGETS/DOCS/html/index.html "
else
echo_info "9. Bypassing doxygen documentation ..."
fi
if [ $DOXYGEN = 1 ]; then
echo_info "9. Generate doxygen documentation ..."
doxygen $OPENAIR_TARGETS/DOCS/Doxyfile
echo_info "9.1 use your navigator to open $OPENAIR_TARGETS/DOCS/html/index.html "
else