Merge remote-tracking branch 'origin/ci_nsa_2x2_implem' into develop
This commit is contained in:
@@ -7,12 +7,29 @@ idefix:
|
|||||||
Cmd : /home/oaicicd/quectel-CM/quectel-CM -s oai.ipv4 -4
|
Cmd : /home/oaicicd/quectel-CM/quectel-CM -s oai.ipv4 -4
|
||||||
WakeupScript : ci_ctl_qtel.py /dev/ttyUSB2 wup
|
WakeupScript : ci_ctl_qtel.py /dev/ttyUSB2 wup
|
||||||
DetachScript : ci_ctl_qtel.py /dev/ttyUSB2 detach
|
DetachScript : ci_ctl_qtel.py /dev/ttyUSB2 detach
|
||||||
|
LogStore : /media/usb-drive/ci_qlogs
|
||||||
PLMN : 22201
|
PLMN : 22201
|
||||||
UENetwork : wwan0
|
UENetwork : wwan0
|
||||||
HostIPAddress : 192.168.18.188
|
HostIPAddress : 192.168.18.188
|
||||||
HostUsername : oaicicd
|
HostUsername : oaicicd
|
||||||
HostPassword : oaicicd
|
HostPassword : oaicicd
|
||||||
HostSourceCodePath : none
|
HostSourceCodePath : none
|
||||||
|
nrmodule2_quectel:
|
||||||
|
ID: nrmodule2_quectel
|
||||||
|
State : enabled
|
||||||
|
Kind : quectel
|
||||||
|
Process :
|
||||||
|
Name : quectel-CM
|
||||||
|
Cmd : /home/nrmodule2/quectel-CM/quectel-CM -s oai.ipv4 -4
|
||||||
|
WakeupScript : ci_ctl_qtel.py /dev/ttyUSB7 wup
|
||||||
|
DetachScript : ci_ctl_qtel.py /dev/ttyUSB7 detach
|
||||||
|
LogStore : /media/ci_qlogs
|
||||||
|
PLMN : 20899
|
||||||
|
UENetwork : wwan1
|
||||||
|
HostIPAddress : 192.168.18.189
|
||||||
|
HostUsername : nrmodule2
|
||||||
|
HostPassword : linux
|
||||||
|
HostSourceCodePath : none
|
||||||
dummy:
|
dummy:
|
||||||
ID: ''
|
ID: ''
|
||||||
State : ''
|
State : ''
|
||||||
|
|||||||
+16
-12
@@ -25,7 +25,7 @@
|
|||||||
#---------------------------------------------------------------------
|
#---------------------------------------------------------------------
|
||||||
|
|
||||||
#USAGE:
|
#USAGE:
|
||||||
# log=Log_Mgt(IPAddress,Password,Path)
|
# log=Log_Mgt(Username,IPAddress,Password,Path)
|
||||||
# log.LogRotation()
|
# log.LogRotation()
|
||||||
|
|
||||||
|
|
||||||
@@ -38,7 +38,8 @@ import math
|
|||||||
|
|
||||||
class Log_Mgt:
|
class Log_Mgt:
|
||||||
|
|
||||||
def __init__(self,IPAddress,Password,Path):
|
def __init__(self,Username, IPAddress,Password,Path):
|
||||||
|
self.Username=Username
|
||||||
self.IPAddress=IPAddress
|
self.IPAddress=IPAddress
|
||||||
self.Password=Password
|
self.Password=Password
|
||||||
self.path=Path
|
self.path=Path
|
||||||
@@ -49,7 +50,7 @@ class Log_Mgt:
|
|||||||
|
|
||||||
|
|
||||||
def __CheckAvailSpace(self):
|
def __CheckAvailSpace(self):
|
||||||
HOST=self.IPAddress
|
HOST=self.Username+'@'+self.IPAddress
|
||||||
COMMAND="df "+ self.path
|
COMMAND="df "+ self.path
|
||||||
ssh = subprocess.Popen(["ssh", "%s" % HOST, COMMAND],shell=False,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
|
ssh = subprocess.Popen(["ssh", "%s" % HOST, COMMAND],shell=False,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
|
||||||
result = ssh.stdout.readlines()
|
result = ssh.stdout.readlines()
|
||||||
@@ -58,7 +59,7 @@ class Log_Mgt:
|
|||||||
return tmp[3] #return avail space from the line
|
return tmp[3] #return avail space from the line
|
||||||
|
|
||||||
def __GetOldestFile(self):
|
def __GetOldestFile(self):
|
||||||
HOST=self.IPAddress
|
HOST=self.Username+'@'+self.IPAddress
|
||||||
COMMAND="ls -rtl "+ self.path #-rtl will bring oldest file on top
|
COMMAND="ls -rtl "+ self.path #-rtl will bring oldest file on top
|
||||||
ssh = subprocess.Popen(["ssh", "%s" % HOST, COMMAND],shell=False,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
|
ssh = subprocess.Popen(["ssh", "%s" % HOST, COMMAND],shell=False,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
|
||||||
result = ssh.stdout.readlines()
|
result = ssh.stdout.readlines()
|
||||||
@@ -68,16 +69,19 @@ class Log_Mgt:
|
|||||||
|
|
||||||
|
|
||||||
def __AvgSize(self):
|
def __AvgSize(self):
|
||||||
HOST=self.IPAddress
|
HOST=self.Username+'@'+self.IPAddress
|
||||||
COMMAND="ls -rtl "+ self.path
|
COMMAND="ls -rtl "+ self.path
|
||||||
ssh = subprocess.Popen(["ssh", "%s" % HOST, COMMAND],shell=False,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
|
ssh = subprocess.Popen(["ssh", "%s" % HOST, COMMAND],shell=False,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
|
||||||
result = ssh.stdout.readlines()
|
result = ssh.stdout.readlines()
|
||||||
total_size=0
|
if len(result)>1: #at least 1 file present
|
||||||
for i in range(1,len(result)):
|
total_size=0
|
||||||
s=result[i].decode('utf-8').rstrip()
|
for i in range(1,len(result)):
|
||||||
tmp=s.split()
|
s=result[i].decode('utf-8').rstrip()
|
||||||
total_size+=int(tmp[4]) #get filesize
|
tmp=s.split()
|
||||||
return math.floor(total_size/(len(result)-1)) #compute average file/artifact size
|
total_size+=int(tmp[4]) #get filesize
|
||||||
|
return math.floor(total_size/(len(result)-1)) #compute average file/artifact size
|
||||||
|
else:#empty,no files
|
||||||
|
return 0
|
||||||
|
|
||||||
|
|
||||||
#-----------------$
|
#-----------------$
|
||||||
@@ -91,7 +95,7 @@ class Log_Mgt:
|
|||||||
logging.debug("Avail Space : " + str(avail_space) + " / Artifact Avg Size : " + str(avg_size))
|
logging.debug("Avail Space : " + str(avail_space) + " / Artifact Avg Size : " + str(avg_size))
|
||||||
if avail_space < 2*avg_size: #reserved space is 2x artifact file ; oldest file will be deleted
|
if avail_space < 2*avg_size: #reserved space is 2x artifact file ; oldest file will be deleted
|
||||||
oldestfile=self.__GetOldestFile()
|
oldestfile=self.__GetOldestFile()
|
||||||
HOST=self.IPAddress
|
HOST=self.Username+'@'+self.IPAddress
|
||||||
COMMAND="echo " + self.Password + " | sudo -S rm "+ self.path + "/" + oldestfile
|
COMMAND="echo " + self.Password + " | sudo -S rm "+ self.path + "/" + oldestfile
|
||||||
logging.debug(COMMAND)
|
logging.debug(COMMAND)
|
||||||
ssh = subprocess.Popen(["ssh", "%s" % HOST, COMMAND],shell=False,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
|
ssh = subprocess.Popen(["ssh", "%s" % HOST, COMMAND],shell=False,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
|
||||||
|
|||||||
@@ -62,7 +62,7 @@ class Module_UE:
|
|||||||
#this method checks if the specified Process is running on the server hosting the module
|
#this method checks if the specified Process is running on the server hosting the module
|
||||||
#if not it will be started
|
#if not it will be started
|
||||||
def CheckCMProcess(self):
|
def CheckCMProcess(self):
|
||||||
HOST=self.HostIPAddress
|
HOST=self.HostUsername+'@'+self.HostIPAddress
|
||||||
COMMAND="ps aux | grep " + self.Process['Name'] + " | grep -v grep "
|
COMMAND="ps aux | grep " + self.Process['Name'] + " | grep -v grep "
|
||||||
logging.debug(COMMAND)
|
logging.debug(COMMAND)
|
||||||
ssh = subprocess.Popen(["ssh", "%s" % HOST, COMMAND],shell=False,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
|
ssh = subprocess.Popen(["ssh", "%s" % HOST, COMMAND],shell=False,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
|
||||||
@@ -80,7 +80,7 @@ class Module_UE:
|
|||||||
mySSH.close()
|
mySSH.close()
|
||||||
#checking the process
|
#checking the process
|
||||||
time.sleep(5)
|
time.sleep(5)
|
||||||
HOST=self.HostIPAddress
|
HOST=self.HostUsername+'@'+self.HostIPAddress
|
||||||
COMMAND="ps aux | grep " + self.Process['Name'] + " | grep -v grep "
|
COMMAND="ps aux | grep " + self.Process['Name'] + " | grep -v grep "
|
||||||
logging.debug(COMMAND)
|
logging.debug(COMMAND)
|
||||||
ssh = subprocess.Popen(["ssh", "%s" % HOST, COMMAND],shell=False,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
|
ssh = subprocess.Popen(["ssh", "%s" % HOST, COMMAND],shell=False,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
|
||||||
@@ -104,7 +104,7 @@ class Module_UE:
|
|||||||
|
|
||||||
#this method retrieves the Module IP address (not the Host IP address)
|
#this method retrieves the Module IP address (not the Host IP address)
|
||||||
def GetModuleIPAddress(self):
|
def GetModuleIPAddress(self):
|
||||||
HOST=self.HostIPAddress
|
HOST=self.HostUsername+'@'+self.HostIPAddress
|
||||||
response= []
|
response= []
|
||||||
tentative = 3
|
tentative = 3
|
||||||
while (len(response)==0) and (tentative>0):
|
while (len(response)==0) and (tentative>0):
|
||||||
@@ -163,12 +163,12 @@ class Module_UE:
|
|||||||
now=datetime.now()
|
now=datetime.now()
|
||||||
now_string = now.strftime("%Y%m%d-%H%M")
|
now_string = now.strftime("%Y%m%d-%H%M")
|
||||||
source='ci_qlog'
|
source='ci_qlog'
|
||||||
destination='/media/usb-drive/ci_qlogs/ci_qlog_'+now_string+'.zip'
|
destination= self.LogStore + '/ci_qlog_'+now_string+'.zip'
|
||||||
#qlog artifact is zipped into the target folder
|
#qlog artifact is zipped into the target folder
|
||||||
mySSH.command('echo $USER; echo ' + self.HostPassword + ' | nohup sudo -S zip -r '+destination+' '+source+' &','\$', 10)
|
mySSH.command('echo $USER; echo ' + self.HostPassword + ' | nohup sudo -S zip -r '+destination+' '+source+' &','\$', 10)
|
||||||
mySSH.close()
|
mySSH.close()
|
||||||
#post action : log cleaning to make sure enough space is reserved for the next run
|
#post action : log cleaning to make sure enough space is reserved for the next run
|
||||||
Log_Mgt=cls_log_mgt.Log_Mgt(self.HostIPAddress, self.HostPassword, "/media/usb-drive/ci_qlogs")
|
Log_Mgt=cls_log_mgt.Log_Mgt(self.HostUsername,self.HostIPAddress, self.HostPassword, self.LogStore)
|
||||||
Log_Mgt.LogRotation()
|
Log_Mgt.LogRotation()
|
||||||
else:
|
else:
|
||||||
destination=""
|
destination=""
|
||||||
|
|||||||
@@ -1536,8 +1536,13 @@ class OaiCiTest():
|
|||||||
SSH.command('cat ' + EPC.SourceCodePath + '/scripts/ping_' + self.testCase_id + '_' + device_id + '.log', '\$', 5)
|
SSH.command('cat ' + EPC.SourceCodePath + '/scripts/ping_' + self.testCase_id + '_' + device_id + '.log', '\$', 5)
|
||||||
else: #launch from Module
|
else: #launch from Module
|
||||||
SSH.open(Module_UE.HostIPAddress, Module_UE.HostUsername, Module_UE.HostPassword)
|
SSH.open(Module_UE.HostIPAddress, Module_UE.HostUsername, Module_UE.HostPassword)
|
||||||
|
#target address is different depending on EPC type
|
||||||
|
if re.match('OAI-Rel14-Docker', EPC.Type, re.IGNORECASE):
|
||||||
|
Target = EPC.MmeIPAddress
|
||||||
|
else:
|
||||||
|
Target = EPC.IPAddress
|
||||||
#ping from module NIC rather than IP address to make sure round trip is over the air
|
#ping from module NIC rather than IP address to make sure round trip is over the air
|
||||||
cmd = 'ping -I ' + Module_UE.UENetwork + ' ' + self.ping_args + ' ' + EPC.IPAddress + ' 2>&1 > ping_' + self.testCase_id + '_' + self.ue_id + '.log'
|
cmd = 'ping -I ' + Module_UE.UENetwork + ' ' + self.ping_args + ' ' + Target + ' 2>&1 > ping_' + self.testCase_id + '_' + self.ue_id + '.log'
|
||||||
SSH.command(cmd,'\$',int(ping_time[0])*1.5)
|
SSH.command(cmd,'\$',int(ping_time[0])*1.5)
|
||||||
#copy the ping log file to have it locally for analysis (ping stats)
|
#copy the ping log file to have it locally for analysis (ping stats)
|
||||||
SSH.copyin(Module_UE.HostIPAddress, Module_UE.HostUsername, Module_UE.HostPassword, 'ping_' + self.testCase_id + '_' + self.ue_id + '.log', '.')
|
SSH.copyin(Module_UE.HostIPAddress, Module_UE.HostUsername, Module_UE.HostPassword, 'ping_' + self.testCase_id + '_' + self.ue_id + '.log', '.')
|
||||||
|
|||||||
@@ -0,0 +1,280 @@
|
|||||||
|
Active_eNBs = ( "eNB-Eurecom-B38");
|
||||||
|
# Asn1_verbosity, choice in: none, info, annoying
|
||||||
|
Asn1_verbosity = "none";
|
||||||
|
|
||||||
|
eNBs =
|
||||||
|
(
|
||||||
|
{
|
||||||
|
////////// Identification parameters:
|
||||||
|
eNB_ID = 0xe00;
|
||||||
|
|
||||||
|
cell_type = "CELL_MACRO_ENB";
|
||||||
|
|
||||||
|
eNB_name = "eNB-Eurecom-B38";
|
||||||
|
|
||||||
|
// Tracking area code, 0x0000 and 0xfffe are reserved values
|
||||||
|
tracking_area_code = 1;
|
||||||
|
plmn_list = ( { mcc = 208; mnc = 99; mnc_length = 2; } );
|
||||||
|
|
||||||
|
tr_s_preference = "local_mac"
|
||||||
|
|
||||||
|
////////// Physical parameters:
|
||||||
|
|
||||||
|
component_carriers = (
|
||||||
|
{
|
||||||
|
node_function = "3GPP_eNODEB";
|
||||||
|
node_timing = "synch_to_ext_device";
|
||||||
|
node_synch_ref = 0;
|
||||||
|
frame_type = "TDD";
|
||||||
|
tdd_config = 1;
|
||||||
|
tdd_config_s = 0;
|
||||||
|
prefix_type = "NORMAL";
|
||||||
|
eutra_band = 38;
|
||||||
|
downlink_frequency = 2605000000L;
|
||||||
|
uplink_frequency_offset = 0;
|
||||||
|
Nid_cell = 0;
|
||||||
|
N_RB_DL = 100;
|
||||||
|
Nid_cell_mbsfn = 0;
|
||||||
|
nb_antenna_ports = 1;
|
||||||
|
nb_antennas_tx = 2;
|
||||||
|
nb_antennas_rx = 2;
|
||||||
|
tx_gain = 90;
|
||||||
|
rx_gain = 125;
|
||||||
|
pbch_repetition = "FALSE";
|
||||||
|
prach_root = 0;
|
||||||
|
prach_config_index = 0;
|
||||||
|
prach_high_speed = "DISABLE";
|
||||||
|
prach_zero_correlation = 1;
|
||||||
|
prach_freq_offset = 2;
|
||||||
|
pucch_delta_shift = 1;
|
||||||
|
pucch_nRB_CQI = 0;
|
||||||
|
pucch_nCS_AN = 0;
|
||||||
|
pucch_n1_AN = 0;
|
||||||
|
pdsch_referenceSignalPower = -29;
|
||||||
|
pdsch_p_b = 0;
|
||||||
|
pusch_n_SB = 1;
|
||||||
|
pusch_enable64QAM = "DISABLE";
|
||||||
|
pusch_hoppingMode = "interSubFrame";
|
||||||
|
pusch_hoppingOffset = 0;
|
||||||
|
pusch_groupHoppingEnabled = "ENABLE";
|
||||||
|
pusch_groupAssignment = 0;
|
||||||
|
pusch_sequenceHoppingEnabled = "DISABLE";
|
||||||
|
pusch_nDMRS1 = 1;
|
||||||
|
phich_duration = "NORMAL";
|
||||||
|
phich_resource = "ONESIXTH";
|
||||||
|
srs_enable = "DISABLE";
|
||||||
|
/* srs_BandwidthConfig =;
|
||||||
|
srs_SubframeConfig =;
|
||||||
|
srs_ackNackST =;
|
||||||
|
srs_MaxUpPts =;*/
|
||||||
|
|
||||||
|
pusch_p0_Nominal = -96;
|
||||||
|
pusch_alpha = "AL1";
|
||||||
|
pucch_p0_Nominal = -104;
|
||||||
|
msg3_delta_Preamble = 6;
|
||||||
|
pucch_deltaF_Format1 = "deltaF2";
|
||||||
|
pucch_deltaF_Format1b = "deltaF3";
|
||||||
|
pucch_deltaF_Format2 = "deltaF0";
|
||||||
|
pucch_deltaF_Format2a = "deltaF0";
|
||||||
|
pucch_deltaF_Format2b = "deltaF0";
|
||||||
|
|
||||||
|
rach_numberOfRA_Preambles = 64;
|
||||||
|
rach_preamblesGroupAConfig = "DISABLE";
|
||||||
|
/*
|
||||||
|
rach_sizeOfRA_PreamblesGroupA = ;
|
||||||
|
rach_messageSizeGroupA = ;
|
||||||
|
rach_messagePowerOffsetGroupB = ;
|
||||||
|
*/
|
||||||
|
rach_powerRampingStep = 4;
|
||||||
|
rach_preambleInitialReceivedTargetPower = -108;
|
||||||
|
rach_preambleTransMax = 10;
|
||||||
|
rach_raResponseWindowSize = 10;
|
||||||
|
rach_macContentionResolutionTimer = 48;
|
||||||
|
rach_maxHARQ_Msg3Tx = 4;
|
||||||
|
|
||||||
|
pcch_default_PagingCycle = 128;
|
||||||
|
pcch_nB = "oneT";
|
||||||
|
bcch_modificationPeriodCoeff = 2;
|
||||||
|
ue_TimersAndConstants_t300 = 1000;
|
||||||
|
ue_TimersAndConstants_t301 = 1000;
|
||||||
|
ue_TimersAndConstants_t310 = 1000;
|
||||||
|
ue_TimersAndConstants_t311 = 10000;
|
||||||
|
ue_TimersAndConstants_n310 = 20;
|
||||||
|
ue_TimersAndConstants_n311 = 1;
|
||||||
|
ue_TransmissionMode = 1;
|
||||||
|
|
||||||
|
//Parameters for SIB18
|
||||||
|
rxPool_sc_CP_Len = "normal";
|
||||||
|
rxPool_sc_Period = "sf40";
|
||||||
|
rxPool_data_CP_Len = "normal";
|
||||||
|
rxPool_ResourceConfig_prb_Num = 20;
|
||||||
|
rxPool_ResourceConfig_prb_Start = 5;
|
||||||
|
rxPool_ResourceConfig_prb_End = 44;
|
||||||
|
rxPool_ResourceConfig_offsetIndicator_present = "prSmall";
|
||||||
|
rxPool_ResourceConfig_offsetIndicator_choice = 0;
|
||||||
|
rxPool_ResourceConfig_subframeBitmap_present = "prBs40";
|
||||||
|
rxPool_ResourceConfig_subframeBitmap_choice_bs_buf = "00000000000000000000";
|
||||||
|
rxPool_ResourceConfig_subframeBitmap_choice_bs_size = 5;
|
||||||
|
rxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused = 0;
|
||||||
|
/* rxPool_dataHoppingConfig_hoppingParameter = 0;
|
||||||
|
rxPool_dataHoppingConfig_numSubbands = "ns1";
|
||||||
|
rxPool_dataHoppingConfig_rbOffset = 0;
|
||||||
|
rxPool_commTxResourceUC-ReqAllowed = "TRUE";
|
||||||
|
*/
|
||||||
|
// Parameters for SIB19
|
||||||
|
discRxPool_cp_Len = "normal"
|
||||||
|
discRxPool_discPeriod = "rf32"
|
||||||
|
discRxPool_numRetx = 1;
|
||||||
|
discRxPool_numRepetition = 2;
|
||||||
|
discRxPool_ResourceConfig_prb_Num = 5;
|
||||||
|
discRxPool_ResourceConfig_prb_Start = 3;
|
||||||
|
discRxPool_ResourceConfig_prb_End = 21;
|
||||||
|
discRxPool_ResourceConfig_offsetIndicator_present = "prSmall";
|
||||||
|
discRxPool_ResourceConfig_offsetIndicator_choice = 0;
|
||||||
|
discRxPool_ResourceConfig_subframeBitmap_present = "prBs40";
|
||||||
|
discRxPool_ResourceConfig_subframeBitmap_choice_bs_buf = "f0ffffffff";
|
||||||
|
discRxPool_ResourceConfig_subframeBitmap_choice_bs_size = 5;
|
||||||
|
discRxPool_ResourceConfig_subframeBitmap_choice_bs_bits_unused = 0;
|
||||||
|
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
srb1_parameters :
|
||||||
|
{
|
||||||
|
# timer_poll_retransmit = (ms) [5, 10, 15, 20,... 250, 300, 350, ... 500]
|
||||||
|
timer_poll_retransmit = 80;
|
||||||
|
|
||||||
|
# timer_reordering = (ms) [0,5, ... 100, 110, 120, ... ,200]
|
||||||
|
timer_reordering = 35;
|
||||||
|
|
||||||
|
# timer_reordering = (ms) [0,5, ... 250, 300, 350, ... ,500]
|
||||||
|
timer_status_prohibit = 0;
|
||||||
|
|
||||||
|
# poll_pdu = [4, 8, 16, 32 , 64, 128, 256, infinity(>10000)]
|
||||||
|
poll_pdu = 4;
|
||||||
|
|
||||||
|
# poll_byte = (kB) [25,50,75,100,125,250,375,500,750,1000,1250,1500,2000,3000,infinity(>10000)]
|
||||||
|
poll_byte = 99999;
|
||||||
|
|
||||||
|
# max_retx_threshold = [1, 2, 3, 4 , 6, 8, 16, 32]
|
||||||
|
max_retx_threshold = 4;
|
||||||
|
}
|
||||||
|
|
||||||
|
# ------- SCTP definitions
|
||||||
|
SCTP :
|
||||||
|
{
|
||||||
|
# Number of streams to use in input/output
|
||||||
|
SCTP_INSTREAMS = 2;
|
||||||
|
SCTP_OUTSTREAMS = 2;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
////////// MME parameters:
|
||||||
|
mme_ip_address = ( { ipv4 = "CI_MME_IP_ADDR";
|
||||||
|
ipv6 = "192:168:30::17";
|
||||||
|
active = "yes";
|
||||||
|
preference = "ipv4";
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
enable_measurement_reports = "no";
|
||||||
|
|
||||||
|
///X2
|
||||||
|
enable_x2 = "yes";
|
||||||
|
t_reloc_prep = 1000; /* unit: millisecond */
|
||||||
|
tx2_reloc_overall = 2000; /* unit: millisecond */
|
||||||
|
t_dc_prep = 1000; /* unit: millisecond */
|
||||||
|
t_dc_overall = 2000; /* unit: millisecond */
|
||||||
|
|
||||||
|
NETWORK_INTERFACES :
|
||||||
|
{
|
||||||
|
ENB_INTERFACE_NAME_FOR_S1_MME = "eno1";
|
||||||
|
ENB_IPV4_ADDRESS_FOR_S1_MME = "CI_ENB_IP_ADDR";
|
||||||
|
ENB_INTERFACE_NAME_FOR_S1U = "eno1";
|
||||||
|
ENB_IPV4_ADDRESS_FOR_S1U = "CI_ENB_IP_ADDR";
|
||||||
|
ENB_PORT_FOR_S1U = 2152; # Spec 2152
|
||||||
|
ENB_IPV4_ADDRESS_FOR_X2C = "CI_ENB_IP_ADDR";
|
||||||
|
ENB_PORT_FOR_X2C = 36422; # Spec 36422
|
||||||
|
};
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
MACRLCs = (
|
||||||
|
{
|
||||||
|
num_cc = 1;
|
||||||
|
tr_s_preference = "local_L1";
|
||||||
|
tr_n_preference = "local_RRC";
|
||||||
|
phy_test_mode = 0;
|
||||||
|
scheduler_mode = "fairRR";
|
||||||
|
bler_target_upper = 20.0;
|
||||||
|
bler_target_lower = 10.0;
|
||||||
|
max_ul_rb_index = 24;
|
||||||
|
puSch10xSnr = 100;
|
||||||
|
puCch10xSnr = 150;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
L1s = (
|
||||||
|
{
|
||||||
|
num_cc = 1;
|
||||||
|
tr_n_preference = "local_mac";
|
||||||
|
prach_dtx_threshold = 200;
|
||||||
|
pucch1_dtx_threshold = 5
|
||||||
|
pucch1ab_dtx_threshold =0;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
RUs = (
|
||||||
|
{
|
||||||
|
local_rf = "yes"
|
||||||
|
nb_tx = 2
|
||||||
|
nb_rx = 2
|
||||||
|
att_tx = 0
|
||||||
|
att_rx = 0;
|
||||||
|
bands = [38];
|
||||||
|
max_pdschReferenceSignalPower = -27;
|
||||||
|
max_rxgain = 75;
|
||||||
|
eNB_instances = [0];
|
||||||
|
sdr_addrs = "mgmt_addr=192.168.18.241,addr=192.168.20.2,second_addr=192.168.10.2";
|
||||||
|
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
THREAD_STRUCT = (
|
||||||
|
{
|
||||||
|
#three config for level of parallelism "PARALLEL_SINGLE_THREAD", "PARALLEL_RU_L1_SPLIT", or "PARALLEL_RU_L1_TRX_SPLIT"
|
||||||
|
parallel_config = "PARALLEL_SINGLE_THREAD";
|
||||||
|
#two option for worker "WORKER_DISABLE" or "WORKER_ENABLE"
|
||||||
|
worker_config = "WORKER_ENABLE";
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
NETWORK_CONTROLLER :
|
||||||
|
{
|
||||||
|
FLEXRAN_ENABLED = "no";
|
||||||
|
FLEXRAN_INTERFACE_NAME = "lo";
|
||||||
|
FLEXRAN_IPV4_ADDRESS = "127.0.0.1";
|
||||||
|
FLEXRAN_PORT = 2210;
|
||||||
|
FLEXRAN_CACHE = "/mnt/oai_agent_cache";
|
||||||
|
FLEXRAN_AWAIT_RECONF = "no";
|
||||||
|
};
|
||||||
|
|
||||||
|
log_config :
|
||||||
|
{
|
||||||
|
global_log_level ="info";
|
||||||
|
global_log_verbosity ="medium";
|
||||||
|
hw_log_level ="info";
|
||||||
|
hw_log_verbosity ="medium";
|
||||||
|
phy_log_level ="info";
|
||||||
|
phy_log_verbosity ="medium";
|
||||||
|
mac_log_level ="info";
|
||||||
|
mac_log_verbosity ="high";
|
||||||
|
rlc_log_level ="info";
|
||||||
|
rlc_log_verbosity ="medium";
|
||||||
|
pdcp_log_level ="info";
|
||||||
|
pdcp_log_verbosity ="medium";
|
||||||
|
rrc_log_level ="info";
|
||||||
|
rrc_log_verbosity ="medium";
|
||||||
|
};
|
||||||
|
|
||||||
@@ -0,0 +1,296 @@
|
|||||||
|
Active_gNBs = ( "gNB-Eurecom-5GNRBox");
|
||||||
|
# Asn1_verbosity, choice in: none, info, annoying
|
||||||
|
Asn1_verbosity = "none";
|
||||||
|
|
||||||
|
gNBs =
|
||||||
|
(
|
||||||
|
{
|
||||||
|
////////// Identification parameters:
|
||||||
|
gNB_ID = 0xe00;
|
||||||
|
|
||||||
|
cell_type = "CELL_MACRO_GNB";
|
||||||
|
gNB_name = "gNB-Eurecom-5GNRBox";
|
||||||
|
|
||||||
|
// Tracking area code, 0x0000 and 0xfffe are reserved values
|
||||||
|
tracking_area_code = 1;
|
||||||
|
plmn_list = ({mcc = 208; mnc = 99; mnc_length = 2;});
|
||||||
|
|
||||||
|
tr_s_preference = "local_mac"
|
||||||
|
|
||||||
|
////////// Physical parameters:
|
||||||
|
|
||||||
|
ssb_SubcarrierOffset = 31; //0;
|
||||||
|
pdsch_AntennaPorts = 1;
|
||||||
|
pusch_AntennaPorts = 2;
|
||||||
|
pusch_TargetSNRx10 = 200;
|
||||||
|
pucch_TargetSNRx10 = 200;
|
||||||
|
|
||||||
|
servingCellConfigCommon = (
|
||||||
|
{
|
||||||
|
#spCellConfigCommon
|
||||||
|
|
||||||
|
physCellId = 0;
|
||||||
|
|
||||||
|
# downlinkConfigCommon
|
||||||
|
#frequencyInfoDL
|
||||||
|
# this is 3600 MHz + 84 PRBs@30kHz SCS (same as initial BWP)
|
||||||
|
absoluteFrequencySSB = 641272; //641032; #641968; 641968=start of ssb at 3600MHz + 82 RBs 641032=center of SSB at center of cell
|
||||||
|
dl_frequencyBand = 78;
|
||||||
|
# this is 3600 MHz
|
||||||
|
dl_absoluteFrequencyPointA = 640000;
|
||||||
|
#scs-SpecificCarrierList
|
||||||
|
dl_offstToCarrier = 0;
|
||||||
|
# subcarrierSpacing
|
||||||
|
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||||
|
dl_subcarrierSpacing = 1;
|
||||||
|
dl_carrierBandwidth = 106;
|
||||||
|
#initialDownlinkBWP
|
||||||
|
#genericParameters
|
||||||
|
# this is RBstart=84,L=13 (275*(L-1))+RBstart
|
||||||
|
initialDLBWPlocationAndBandwidth = 6368;
|
||||||
|
# subcarrierSpacing
|
||||||
|
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||||
|
initialDLBWPsubcarrierSpacing = 1;
|
||||||
|
#pdcch-ConfigCommon
|
||||||
|
initialDLBWPcontrolResourceSetZero = 0;
|
||||||
|
initialDLBWPsearchSpaceZero = 0;
|
||||||
|
#pdsch-ConfigCommon
|
||||||
|
#pdschTimeDomainAllocationList (up to 16 entries)
|
||||||
|
initialDLBWPk0_0 = 0; #for DL slot
|
||||||
|
initialDLBWPmappingType_0 = 0; #0=typeA,1=typeB
|
||||||
|
initialDLBWPstartSymbolAndLength_0 = 40; #this is SS=1,L=13
|
||||||
|
|
||||||
|
initialDLBWPk0_1 = 0; #for mixed slot
|
||||||
|
initialDLBWPmappingType_1 = 0;
|
||||||
|
initialDLBWPstartSymbolAndLength_1 = 57; #this is SS=1,L=5
|
||||||
|
|
||||||
|
#uplinkConfigCommon
|
||||||
|
#frequencyInfoUL
|
||||||
|
ul_frequencyBand = 78;
|
||||||
|
#scs-SpecificCarrierList
|
||||||
|
ul_offstToCarrier = 0;
|
||||||
|
# subcarrierSpacing
|
||||||
|
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||||
|
ul_subcarrierSpacing = 1;
|
||||||
|
ul_carrierBandwidth = 106;
|
||||||
|
pMax = 20;
|
||||||
|
#initialUplinkBWP
|
||||||
|
#genericParameters
|
||||||
|
initialULBWPlocationAndBandwidth = 6368;
|
||||||
|
# subcarrierSpacing
|
||||||
|
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||||
|
initialULBWPsubcarrierSpacing = 1;
|
||||||
|
#rach-ConfigCommon
|
||||||
|
#rach-ConfigGeneric
|
||||||
|
prach_ConfigurationIndex = 98;
|
||||||
|
#prach_msg1_FDM
|
||||||
|
#0 = one, 1=two, 2=four, 3=eight
|
||||||
|
prach_msg1_FDM = 0;
|
||||||
|
prach_msg1_FrequencyStart = 0;
|
||||||
|
zeroCorrelationZoneConfig = 13;
|
||||||
|
preambleReceivedTargetPower = -100;
|
||||||
|
#preamblTransMax (0...10) = (3,4,5,6,7,8,10,20,50,100,200)
|
||||||
|
preambleTransMax = 6;
|
||||||
|
#powerRampingStep
|
||||||
|
# 0=dB0,1=dB2,2=dB4,3=dB6
|
||||||
|
powerRampingStep = 1;
|
||||||
|
#ra_ReponseWindow
|
||||||
|
#1,2,4,8,10,20,40,80
|
||||||
|
ra_ResponseWindow = 5;
|
||||||
|
#ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR
|
||||||
|
#1=oneeighth,2=onefourth,3=half,4=one,5=two,6=four,7=eight,8=sixteen
|
||||||
|
ssb_perRACH_OccasionAndCB_PreamblesPerSSB_PR = 4;
|
||||||
|
#oneHalf (0..15) 4,8,12,16,...60,64
|
||||||
|
ssb_perRACH_OccasionAndCB_PreamblesPerSSB = 14; //15;
|
||||||
|
#ra_ContentionResolutionTimer
|
||||||
|
#(0..7) 8,16,24,32,40,48,56,64
|
||||||
|
ra_ContentionResolutionTimer = 7;
|
||||||
|
rsrp_ThresholdSSB = 19;
|
||||||
|
#prach-RootSequenceIndex_PR
|
||||||
|
#1 = 839, 2 = 139
|
||||||
|
prach_RootSequenceIndex_PR = 2;
|
||||||
|
prach_RootSequenceIndex = 1;
|
||||||
|
# SCS for msg1, can only be 15 for 30 kHz < 6 GHz, takes precendence over the one derived from prach-ConfigIndex
|
||||||
|
#
|
||||||
|
msg1_SubcarrierSpacing = 1,
|
||||||
|
|
||||||
|
# restrictedSetConfig
|
||||||
|
# 0=unrestricted, 1=restricted type A, 2=restricted type B
|
||||||
|
restrictedSetConfig = 0,
|
||||||
|
# pusch-ConfigCommon (up to 16 elements)
|
||||||
|
initialULBWPk2_0 = 2; # used for UL slot
|
||||||
|
initialULBWPmappingType_0 = 1
|
||||||
|
initialULBWPstartSymbolAndLength_0 = 41; # this is SS=0 L=13
|
||||||
|
|
||||||
|
initialULBWPk2_1 = 2; # used for mixed slot
|
||||||
|
initialULBWPmappingType_1 = 1;
|
||||||
|
initialULBWPstartSymbolAndLength_1 = 24; # this is SS=10 L=2
|
||||||
|
|
||||||
|
initialULBWPk2_2 = 7; # used for Msg.3 during RA
|
||||||
|
initialULBWPmappingType_2 = 1;
|
||||||
|
initialULBWPstartSymbolAndLength_2 = 52; # this is SS=10 L=4
|
||||||
|
|
||||||
|
msg3_DeltaPreamble = 1;
|
||||||
|
p0_NominalWithGrant =-90;
|
||||||
|
|
||||||
|
# pucch-ConfigCommon setup :
|
||||||
|
# pucchGroupHopping
|
||||||
|
# 0 = neither, 1= group hopping, 2=sequence hopping
|
||||||
|
pucchGroupHopping = 0;
|
||||||
|
hoppingId = 40;
|
||||||
|
p0_nominal = -90;
|
||||||
|
# ssb_PositionsInBurs_BitmapPR
|
||||||
|
# 1=short, 2=medium, 3=long
|
||||||
|
ssb_PositionsInBurst_PR = 2;
|
||||||
|
ssb_PositionsInBurst_Bitmap = 1; #0x80;
|
||||||
|
|
||||||
|
# ssb_periodicityServingCell
|
||||||
|
# 0 = ms5, 1=ms10, 2=ms20, 3=ms40, 4=ms80, 5=ms160, 6=spare2, 7=spare1
|
||||||
|
ssb_periodicityServingCell = 2;
|
||||||
|
|
||||||
|
# dmrs_TypeA_position
|
||||||
|
# 0 = pos2, 1 = pos3
|
||||||
|
dmrs_TypeA_Position = 0;
|
||||||
|
|
||||||
|
# subcarrierSpacing
|
||||||
|
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||||
|
subcarrierSpacing = 1;
|
||||||
|
|
||||||
|
|
||||||
|
#tdd-UL-DL-ConfigurationCommon
|
||||||
|
# subcarrierSpacing
|
||||||
|
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||||
|
referenceSubcarrierSpacing = 1;
|
||||||
|
# pattern1
|
||||||
|
# dl_UL_TransmissionPeriodicity
|
||||||
|
# 0=ms0p5, 1=ms0p625, 2=ms1, 3=ms1p25, 4=ms2, 5=ms2p5, 6=ms5, 7=ms10
|
||||||
|
dl_UL_TransmissionPeriodicity = 6;
|
||||||
|
nrofDownlinkSlots = 7; //8; //7;
|
||||||
|
nrofDownlinkSymbols = 6; //0; //6;
|
||||||
|
nrofUplinkSlots = 2;
|
||||||
|
nrofUplinkSymbols = 4; //0; //4;
|
||||||
|
|
||||||
|
ssPBCH_BlockPower = -25;
|
||||||
|
}
|
||||||
|
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
# ------- SCTP definitions
|
||||||
|
SCTP :
|
||||||
|
{
|
||||||
|
# Number of streams to use in input/output
|
||||||
|
SCTP_INSTREAMS = 2;
|
||||||
|
SCTP_OUTSTREAMS = 2;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
////////// MME parameters:
|
||||||
|
amf_ip_address = ( { ipv4 = "CI_MME_IP_ADDR";
|
||||||
|
ipv6 = "192:168:30::17";
|
||||||
|
active = "yes";
|
||||||
|
preference = "ipv4";
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
///X2
|
||||||
|
enable_x2 = "yes";
|
||||||
|
t_reloc_prep = 1000; /* unit: millisecond */
|
||||||
|
tx2_reloc_overall = 2000; /* unit: millisecond */
|
||||||
|
t_dc_prep = 1000; /* unit: millisecond */
|
||||||
|
t_dc_overall = 2000; /* unit: millisecond */
|
||||||
|
target_enb_x2_ip_address = (
|
||||||
|
{ ipv4 = "CI_FR1_CTL_ENB_IP_ADDR";
|
||||||
|
ipv6 = "192:168:30::17";
|
||||||
|
preference = "ipv4";
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
NETWORK_INTERFACES :
|
||||||
|
{
|
||||||
|
|
||||||
|
GNB_INTERFACE_NAME_FOR_NG_AMF = "eth0";
|
||||||
|
GNB_IPV4_ADDRESS_FOR_NG_AMF = "CI_GNB_IP_ADDR";
|
||||||
|
GNB_INTERFACE_NAME_FOR_NGU = "eth0";
|
||||||
|
GNB_IPV4_ADDRESS_FOR_NGU = "CI_GNB_IP_ADDR";
|
||||||
|
GNB_PORT_FOR_S1U = 2152; # Spec 2152
|
||||||
|
GNB_IPV4_ADDRESS_FOR_X2C = "CI_GNB_IP_ADDR";
|
||||||
|
GNB_PORT_FOR_X2C = 36422; # Spec 36422
|
||||||
|
};
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
MACRLCs = (
|
||||||
|
{
|
||||||
|
num_cc = 1;
|
||||||
|
tr_s_preference = "local_L1";
|
||||||
|
tr_n_preference = "local_RRC";
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
L1s = (
|
||||||
|
{
|
||||||
|
num_cc = 1;
|
||||||
|
tr_n_preference = "local_mac";
|
||||||
|
pusch_proc_threads = 8;
|
||||||
|
prach_dtx_threshold = 100;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
RUs = (
|
||||||
|
{
|
||||||
|
local_rf = "yes"
|
||||||
|
nb_tx = 2
|
||||||
|
nb_rx = 2
|
||||||
|
att_tx = 0
|
||||||
|
att_rx = 0;
|
||||||
|
bands = [7];
|
||||||
|
max_pdschReferenceSignalPower = -27;
|
||||||
|
max_rxgain = 75;
|
||||||
|
eNB_instances = [0];
|
||||||
|
bf_weights = [0x00007fff, 0x00007fff];
|
||||||
|
#clock_src = "external";
|
||||||
|
sdr_addrs = "mgmt_addr=192.168.18.240,addr=192.168.10.2,second_addr=192.168.20.2,clock_source=internal,time_source=internal"
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
THREAD_STRUCT = (
|
||||||
|
{
|
||||||
|
#three config for level of parallelism "PARALLEL_SINGLE_THREAD", "PARALLEL_RU_L1_SPLIT", or "PARALLEL_RU_L1_TRX_SPLIT"
|
||||||
|
parallel_config = "PARALLEL_RU_L1_TRX_SPLIT";
|
||||||
|
//parallel_config = "PARALLEL_SINGLE_THREAD";
|
||||||
|
#two option for worker "WORKER_DISABLE" or "WORKER_ENABLE"
|
||||||
|
worker_config = "WORKER_ENABLE";
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
security = {
|
||||||
|
# preferred ciphering algorithms
|
||||||
|
# the first one of the list that an UE supports in chosen
|
||||||
|
# valid values: nea0, nea1, nea2, nea3
|
||||||
|
ciphering_algorithms = ( "nea0", "nea2" );
|
||||||
|
|
||||||
|
# preferred integrity algorithms
|
||||||
|
# the first one of the list that an UE supports in chosen
|
||||||
|
# valid values: nia0, nia1, nia2, nia3
|
||||||
|
integrity_algorithms = ( "nia0" );
|
||||||
|
};
|
||||||
|
|
||||||
|
log_config :
|
||||||
|
{
|
||||||
|
global_log_level ="info";
|
||||||
|
global_log_verbosity ="medium";
|
||||||
|
hw_log_level ="info";
|
||||||
|
hw_log_verbosity ="medium";
|
||||||
|
phy_log_level ="info";
|
||||||
|
phy_log_verbosity ="medium";
|
||||||
|
mac_log_level ="info";
|
||||||
|
mac_log_verbosity ="high";
|
||||||
|
rlc_log_level ="info";
|
||||||
|
rlc_log_verbosity ="medium";
|
||||||
|
pdcp_log_level ="info";
|
||||||
|
pdcp_log_verbosity ="medium";
|
||||||
|
rrc_log_level ="info";
|
||||||
|
rrc_log_verbosity ="medium";
|
||||||
|
};
|
||||||
|
|
||||||
+5
-4
@@ -12,8 +12,8 @@ gNBs =
|
|||||||
// Tracking area code, 0x0000 and 0xfffe are reserved values
|
// Tracking area code, 0x0000 and 0xfffe are reserved values
|
||||||
tracking_area_code = 1;
|
tracking_area_code = 1;
|
||||||
plmn_list = ({
|
plmn_list = ({
|
||||||
mcc = 222;
|
mcc = 208;
|
||||||
mnc = 01;
|
mnc = 99;
|
||||||
mnc_length = 2;
|
mnc_length = 2;
|
||||||
snssaiList = (
|
snssaiList = (
|
||||||
{
|
{
|
||||||
@@ -252,11 +252,12 @@ RUs = (
|
|||||||
att_rx = 0;
|
att_rx = 0;
|
||||||
bands = [7];
|
bands = [7];
|
||||||
max_pdschReferenceSignalPower = -27;
|
max_pdschReferenceSignalPower = -27;
|
||||||
max_rxgain = 114;
|
max_rxgain = 81;
|
||||||
eNB_instances = [0];
|
eNB_instances = [0];
|
||||||
#beamforming 1x4 matrix:
|
#beamforming 1x4 matrix:
|
||||||
bf_weights = [0x00007fff, 0x0000, 0x0000, 0x0000];
|
bf_weights = [0x00007fff, 0x0000, 0x0000, 0x0000];
|
||||||
clock_src = "internal";
|
#clock_src = "external";
|
||||||
|
sdr_addrs = "mgmt_addr=192.168.18.240,addr=192.168.10.2,second_addr=192.168.20.2,clock_source=internal,time_source=internal"
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
@@ -155,6 +155,11 @@ def GetParametersFromXML(action):
|
|||||||
RAN.eNB_Trace=test.findtext('eNB_Trace')
|
RAN.eNB_Trace=test.findtext('eNB_Trace')
|
||||||
RAN.Initialize_eNB_args=test.findtext('Initialize_eNB_args')
|
RAN.Initialize_eNB_args=test.findtext('Initialize_eNB_args')
|
||||||
eNB_instance=test.findtext('eNB_instance')
|
eNB_instance=test.findtext('eNB_instance')
|
||||||
|
USRPIPAddress=test.findtext('USRP_IPAddress')
|
||||||
|
if USRPIPAddress is None:
|
||||||
|
RAN.USRPIPAddress=''
|
||||||
|
else:
|
||||||
|
RAN.USRPIPAddress=USRPIPAddress
|
||||||
if (eNB_instance is None):
|
if (eNB_instance is None):
|
||||||
RAN.eNB_instance=0
|
RAN.eNB_instance=0
|
||||||
else:
|
else:
|
||||||
|
|||||||
@@ -170,20 +170,20 @@ function setvar_usage {
|
|||||||
# for compatibility reasons
|
# for compatibility reasons
|
||||||
|
|
||||||
function variant__v1__enb_usrp {
|
function variant__v1__enb_usrp {
|
||||||
NB_PATTERN_FILES=9
|
NB_PATTERN_FILES=7
|
||||||
BUILD_OPTIONS="--eNB -w USRP --mu"
|
BUILD_OPTIONS="--eNB -w USRP --mu"
|
||||||
VM_MEMORY=3072
|
VM_MEMORY=3072
|
||||||
}
|
}
|
||||||
|
|
||||||
function variant__v2__basic_sim {
|
function variant__v2__basic_sim {
|
||||||
NB_PATTERN_FILES=13
|
NB_PATTERN_FILES=11
|
||||||
BUILD_OPTIONS="--eNB --UE"
|
BUILD_OPTIONS="--eNB --UE"
|
||||||
VM_MEMORY=8192
|
VM_MEMORY=8192
|
||||||
RUN_OPTIONS="complex"
|
RUN_OPTIONS="complex"
|
||||||
}
|
}
|
||||||
|
|
||||||
function variant__v3__phy_sim {
|
function variant__v3__phy_sim {
|
||||||
NB_PATTERN_FILES=13
|
NB_PATTERN_FILES=11
|
||||||
BUILD_OPTIONS="--phy_simulators"
|
BUILD_OPTIONS="--phy_simulators"
|
||||||
VM_MEMORY=8192
|
VM_MEMORY=8192
|
||||||
VM_DISK=20
|
VM_DISK=20
|
||||||
@@ -200,28 +200,28 @@ function variant__v4__cppcheck {
|
|||||||
function variant__v5__gnb_usrp {
|
function variant__v5__gnb_usrp {
|
||||||
VM_MEMORY=10240
|
VM_MEMORY=10240
|
||||||
VM_CPU=8
|
VM_CPU=8
|
||||||
NB_PATTERN_FILES=9
|
NB_PATTERN_FILES=7
|
||||||
BUILD_OPTIONS="--gNB -w USRP"
|
BUILD_OPTIONS="--gNB -w USRP"
|
||||||
}
|
}
|
||||||
|
|
||||||
function variant__v6__nr_ue_usrp {
|
function variant__v6__nr_ue_usrp {
|
||||||
VM_MEMORY=4096
|
VM_MEMORY=4096
|
||||||
VM_CPU=4
|
VM_CPU=4
|
||||||
NB_PATTERN_FILES=9
|
NB_PATTERN_FILES=7
|
||||||
BUILD_OPTIONS="--nrUE -w USRP"
|
BUILD_OPTIONS="--nrUE -w USRP"
|
||||||
}
|
}
|
||||||
|
|
||||||
function variant__v7__enb_ethernet {
|
function variant__v7__enb_ethernet {
|
||||||
VM_MEMORY=4096
|
VM_MEMORY=4096
|
||||||
ARCHIVES_LOC=enb_eth
|
ARCHIVES_LOC=enb_eth
|
||||||
NB_PATTERN_FILES=9
|
NB_PATTERN_FILES=7
|
||||||
BUILD_OPTIONS="--eNB -w USRP"
|
BUILD_OPTIONS="--eNB -w USRP"
|
||||||
}
|
}
|
||||||
|
|
||||||
function variant__v8__ue_ethernet {
|
function variant__v8__ue_ethernet {
|
||||||
VM_MEMORY=4096
|
VM_MEMORY=4096
|
||||||
ARCHIVES_LOC=ue_eth
|
ARCHIVES_LOC=ue_eth
|
||||||
NB_PATTERN_FILES=13
|
NB_PATTERN_FILES=11
|
||||||
BUILD_OPTIONS="--UE -w USRP"
|
BUILD_OPTIONS="--UE -w USRP"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+27
-9
@@ -94,6 +94,7 @@ class RANManagement():
|
|||||||
self.runtime_stats= ''
|
self.runtime_stats= ''
|
||||||
self.datalog_rt_stats={}
|
self.datalog_rt_stats={}
|
||||||
self.eNB_Trace = '' #if 'yes', Tshark will be launched at initialization
|
self.eNB_Trace = '' #if 'yes', Tshark will be launched at initialization
|
||||||
|
self.USRPIPAddress = ''
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -341,20 +342,35 @@ class RANManagement():
|
|||||||
self.testCase_id = HTML.testCase_id
|
self.testCase_id = HTML.testCase_id
|
||||||
mySSH = SSH.SSHConnection()
|
mySSH = SSH.SSHConnection()
|
||||||
|
|
||||||
|
#reboot USRP if requested in xml
|
||||||
|
if self.USRPIPAddress!='':
|
||||||
|
logging.debug('USRP '+ self.USRPIPAddress +'reboot request')
|
||||||
|
mySSH.open(lIpAddr, lUserName, lPassWord)
|
||||||
|
cmd2usrp='ssh root@'+self.USRPIPAddress+' reboot'
|
||||||
|
mySSH.command2(cmd2usrp,1)
|
||||||
|
mySSH.close()
|
||||||
|
logging.debug('Waiting for USRP to be ready')
|
||||||
|
time.sleep(120)
|
||||||
|
|
||||||
|
|
||||||
if (self.pStatus < 0):
|
if (self.pStatus < 0):
|
||||||
HTML.CreateHtmlTestRow(self.air_interface[self.eNB_instance] + ' ' + self.Initialize_eNB_args, 'KO', self.pStatus)
|
HTML.CreateHtmlTestRow(self.air_interface[self.eNB_instance] + ' ' + self.Initialize_eNB_args, 'KO', self.pStatus)
|
||||||
HTML.CreateHtmlTabFooter(False)
|
HTML.CreateHtmlTabFooter(False)
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
#Get pcap on S1 and X2 eNB interface, if enabled in the xml
|
|
||||||
#will not work for gNB at this stage
|
#Get pcap on enb and/or gnb if enabled in the xml
|
||||||
if ((self.air_interface[self.eNB_instance] == 'lte-softmodem') or (self.air_interface[self.eNB_instance] == 'ocp-enb')) and self.eNB_Trace=='yes':
|
if self.eNB_Trace=='yes':
|
||||||
|
if ((self.air_interface[self.eNB_instance] == 'lte-softmodem') or (self.air_interface[self.eNB_instance] == 'ocp-enb')):
|
||||||
|
pcapfile_prefix="enb_"
|
||||||
|
else:
|
||||||
|
pcapfile_prefix="gnb_"
|
||||||
mySSH.open(lIpAddr, lUserName, lPassWord)
|
mySSH.open(lIpAddr, lUserName, lPassWord)
|
||||||
mySSH.command('ip addr show | awk -f /tmp/active_net_interfaces.awk | egrep -v "lo|tun"', '\$', 5)
|
mySSH.command('ip addr show | awk -f /tmp/active_net_interfaces.awk | egrep -v "lo|tun"', '\$', 5)
|
||||||
result = re.search('interfaceToUse=(?P<eth_interface>[a-zA-Z0-9\-\_]+)done', mySSH.getBefore())
|
result = re.search('interfaceToUse=(?P<eth_interface>[a-zA-Z0-9\-\_]+)done', mySSH.getBefore())
|
||||||
if result is not None:
|
if result is not None:
|
||||||
eth_interface = result.group('eth_interface')
|
eth_interface = result.group('eth_interface')
|
||||||
logging.debug('\u001B[1m Launching tshark on interface ' + eth_interface + '\u001B[0m')
|
logging.debug('\u001B[1m Launching tshark on interface ' + eth_interface + '\u001B[0m')
|
||||||
pcapfile = 'enb_' + self.testCase_id + '_s1x2log.pcap'
|
pcapfile = pcapfile_prefix + self.testCase_id + '_log.pcap'
|
||||||
mySSH.command('echo ' + lPassWord + ' | sudo -S rm -f /tmp/' + pcapfile , '\$', 5)
|
mySSH.command('echo ' + lPassWord + ' | sudo -S rm -f /tmp/' + pcapfile , '\$', 5)
|
||||||
mySSH.command('echo $USER; nohup sudo -E tshark -i ' + eth_interface + ' -w /tmp/' + pcapfile + ' 2>&1 &','\$', 5)
|
mySSH.command('echo $USER; nohup sudo -E tshark -i ' + eth_interface + ' -w /tmp/' + pcapfile + ' 2>&1 &','\$', 5)
|
||||||
mySSH.close()
|
mySSH.close()
|
||||||
@@ -672,10 +688,11 @@ class RANManagement():
|
|||||||
mySSH.open(self.eNBIPAddress, self.eNBUserName, self.eNBPassword)
|
mySSH.open(self.eNBIPAddress, self.eNBUserName, self.eNBPassword)
|
||||||
mySSH.command('cd ' + self.eNBSourceCodePath, '\$', 5)
|
mySSH.command('cd ' + self.eNBSourceCodePath, '\$', 5)
|
||||||
mySSH.command('cd cmake_targets', '\$', 5)
|
mySSH.command('cd cmake_targets', '\$', 5)
|
||||||
mySSH.command('echo ' + self.eNBPassword + ' | sudo -S mv /tmp/enb_*_s1x2log.pcap .','\$',20)
|
mySSH.command('echo ' + self.eNBPassword + ' | sudo -S mv /tmp/enb_*.pcap .','\$',20)
|
||||||
|
mySSH.command('echo ' + self.eNBPassword + ' | sudo -S mv /tmp/gnb_*.pcap .','\$',20)
|
||||||
mySSH.command('echo ' + self.eNBPassword + ' | sudo -S rm -f enb.log.zip', '\$', 5)
|
mySSH.command('echo ' + self.eNBPassword + ' | sudo -S rm -f enb.log.zip', '\$', 5)
|
||||||
mySSH.command('echo ' + self.eNBPassword + ' | sudo -S zip enb.log.zip enb*.log core* enb_*record.raw enb_*.pcap enb_*txt physim_*.log *stats.log', '\$', 60)
|
mySSH.command('echo ' + self.eNBPassword + ' | sudo -S zip enb.log.zip enb*.log core* enb_*record.raw enb_*.pcap gnb_*.pcap enb_*txt physim_*.log *stats.log', '\$', 60)
|
||||||
mySSH.command('echo ' + self.eNBPassword + ' | sudo -S rm enb*.log core* enb_*record.raw enb_*.pcap enb_*txt physim_*.log *stats.log', '\$', 5)
|
mySSH.command('echo ' + self.eNBPassword + ' | sudo -S rm enb*.log core* enb_*record.raw enb_*.pcap gnb_*.pcap enb_*txt physim_*.log *stats.log', '\$', 5)
|
||||||
mySSH.close()
|
mySSH.close()
|
||||||
|
|
||||||
def AnalyzeLogFile_eNB(self, eNBlogFile, HTML):
|
def AnalyzeLogFile_eNB(self, eNBlogFile, HTML):
|
||||||
@@ -921,8 +938,9 @@ class RANManagement():
|
|||||||
if result is not None:
|
if result is not None:
|
||||||
#remove 1- all useless char before relevant info 2- trailing char
|
#remove 1- all useless char before relevant info 2- trailing char
|
||||||
line=line.replace('[0m','')
|
line=line.replace('[0m','')
|
||||||
tmp=re.match(rf'^.*?(\b{k}\b.*)',line.rstrip()) #from python 3.6 we can use literal string interpolation for the variable k, using rf' in the regex
|
tmp=re.match(rf'^.*?(\b{k}\b.*)',line.rstrip()) #from python 3.6 we can use literal string interpolation for the variable k, using rf' in the regex
|
||||||
real_time_stats[k]=tmp.group(1)
|
if tmp!=None: #with ULULULUULULULLLL at the head of the line, we skip it
|
||||||
|
real_time_stats[k]=tmp.group(1)
|
||||||
|
|
||||||
#count "problem receiving samples" msg
|
#count "problem receiving samples" msg
|
||||||
result = re.search('\[PHY\]\s+problem receiving samples', str(line))
|
result = re.search('\[PHY\]\s+problem receiving samples', str(line))
|
||||||
|
|||||||
@@ -576,8 +576,6 @@ function report_build {
|
|||||||
summary_table_row "RF Simulator - Release 15" ./archives/enb_eth/rfsimulator.Rel15.txt "Built target rfsimulator" ./enb_eth_row5.html
|
summary_table_row "RF Simulator - Release 15" ./archives/enb_eth/rfsimulator.Rel15.txt "Built target rfsimulator" ./enb_eth_row5.html
|
||||||
summary_table_row "TCP OAI Bridge - Release 15" ./archives/enb_eth/tcp_bridge_oai.Rel15.txt "Built target tcp_bridge_oai" ./enb_eth_row6.html
|
summary_table_row "TCP OAI Bridge - Release 15" ./archives/enb_eth/tcp_bridge_oai.Rel15.txt "Built target tcp_bridge_oai" ./enb_eth_row6.html
|
||||||
summary_table_row "OAI USRP device if - Release 15" ./archives/enb_eth/oai_usrpdevif.Rel15.txt "Built target oai_usrpdevif" ./enb_eth_row7.html
|
summary_table_row "OAI USRP device if - Release 15" ./archives/enb_eth/oai_usrpdevif.Rel15.txt "Built target oai_usrpdevif" ./enb_eth_row7.html
|
||||||
summary_table_row "NASMESH - Release 15" ./archives/enb_eth/nasmesh.Rel15.txt "Built target nasmesh" ./enb_eth_row8.html
|
|
||||||
summary_table_row "RB Tool - Release 15" ./archives/enb_eth/rb_tool.Rel15.txt "Built target rb_tool" ./enb_eth_row9.html
|
|
||||||
summary_table_footer
|
summary_table_footer
|
||||||
|
|
||||||
summary_table_header "OAI Build: 4G LTE UE -- USRP option" ./archives/ue_eth
|
summary_table_header "OAI Build: 4G LTE UE -- USRP option" ./archives/ue_eth
|
||||||
@@ -600,9 +598,7 @@ function report_build {
|
|||||||
summary_table_row "Coding - Release 15" ./archives/basic_sim/coding.Rel15.txt "Built target coding" ./basic_sim_row3.html
|
summary_table_row "Coding - Release 15" ./archives/basic_sim/coding.Rel15.txt "Built target coding" ./basic_sim_row3.html
|
||||||
summary_table_row "Conf 2 UE data - Release 15" ./archives/basic_sim/conf2uedata.Rel15.txt "Built target conf2uedata" ./basic_sim_row4.html
|
summary_table_row "Conf 2 UE data - Release 15" ./archives/basic_sim/conf2uedata.Rel15.txt "Built target conf2uedata" ./basic_sim_row4.html
|
||||||
summary_table_row "OAI ETHERNET transport - Release 15" ./archives/basic_sim/oai_eth_transpro.Rel15.txt "Built target oai_eth_transpro" ./basic_sim_row5.html
|
summary_table_row "OAI ETHERNET transport - Release 15" ./archives/basic_sim/oai_eth_transpro.Rel15.txt "Built target oai_eth_transpro" ./basic_sim_row5.html
|
||||||
summary_table_row "NASMESH - Release 15" ./archives/basic_sim/nasmesh.Rel15.txt "Built target nasmesh" ./basic_sim_row6.html
|
|
||||||
summary_table_row "Parameters Lib Config - Release 15" ./archives/basic_sim/params_libconfig.Rel15.txt "Built target params_libconfig" ./basic_sim_row7.html
|
summary_table_row "Parameters Lib Config - Release 15" ./archives/basic_sim/params_libconfig.Rel15.txt "Built target params_libconfig" ./basic_sim_row7.html
|
||||||
summary_table_row "RB Tool - Release 15" ./archives/basic_sim/rb_tool.Rel15.txt "Built target rb_tool" ./basic_sim_row8.html
|
|
||||||
summary_table_row "RF Simulator - Release 15" ./archives/basic_sim/rfsimulator.Rel15.txt "Built target rfsimulator" ./basic_sim_row9.html
|
summary_table_row "RF Simulator - Release 15" ./archives/basic_sim/rfsimulator.Rel15.txt "Built target rfsimulator" ./basic_sim_row9.html
|
||||||
summary_table_row "TCP Bridge - Release 15" ./archives/basic_sim/tcp_bridge_oai.Rel15.txt "Built target tcp_bridge_oai" ./basic_sim_row10.html
|
summary_table_row "TCP Bridge - Release 15" ./archives/basic_sim/tcp_bridge_oai.Rel15.txt "Built target tcp_bridge_oai" ./basic_sim_row10.html
|
||||||
summary_table_row "UE IP - Release 15" ./archives/basic_sim/ue_ip.Rel15.txt "Built target ue_ip" ./basic_sim_row11.html
|
summary_table_row "UE IP - Release 15" ./archives/basic_sim/ue_ip.Rel15.txt "Built target ue_ip" ./basic_sim_row11.html
|
||||||
@@ -617,9 +613,7 @@ function report_build {
|
|||||||
summary_table_row "Coding - Release 15" ./archives/gnb_usrp/coding.Rel15.txt "Built target coding" ./gnb_usrp_row2.html
|
summary_table_row "Coding - Release 15" ./archives/gnb_usrp/coding.Rel15.txt "Built target coding" ./gnb_usrp_row2.html
|
||||||
summary_table_row "OAI USRP device if - Release 15" ./archives/gnb_usrp/oai_usrpdevif.Rel15.txt "Built target oai_usrpdevif" ./gnb_usrp_row3.html
|
summary_table_row "OAI USRP device if - Release 15" ./archives/gnb_usrp/oai_usrpdevif.Rel15.txt "Built target oai_usrpdevif" ./gnb_usrp_row3.html
|
||||||
summary_table_row "OAI ETHERNET transport - Release 15" ./archives/gnb_usrp/oai_eth_transpro.Rel15.txt "Built target oai_eth_transpro" ./gnb_usrp_row4.html
|
summary_table_row "OAI ETHERNET transport - Release 15" ./archives/gnb_usrp/oai_eth_transpro.Rel15.txt "Built target oai_eth_transpro" ./gnb_usrp_row4.html
|
||||||
summary_table_row "NASMESH - Release 15" ./archives/gnb_usrp/nasmesh.Rel15.txt "Built target nasmesh" ./gnb_usrp_row5.html
|
|
||||||
summary_table_row "Parameters Lib Config - Release 15" ./archives/gnb_usrp/params_libconfig.Rel15.txt "Built target params_libconfig" ./gnb_usrp_row6.html
|
summary_table_row "Parameters Lib Config - Release 15" ./archives/gnb_usrp/params_libconfig.Rel15.txt "Built target params_libconfig" ./gnb_usrp_row6.html
|
||||||
summary_table_row "RB Tool - Release 15" ./archives/gnb_usrp/rb_tool.Rel15.txt "Built target rb_tool" ./gnb_usrp_row7.html
|
|
||||||
summary_table_footer
|
summary_table_footer
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -630,9 +624,7 @@ function report_build {
|
|||||||
summary_table_row "Coding - Release 15" ./archives/nr_ue_usrp/coding.Rel15.txt "Built target coding" ./nr_ue_usrp_row2.html
|
summary_table_row "Coding - Release 15" ./archives/nr_ue_usrp/coding.Rel15.txt "Built target coding" ./nr_ue_usrp_row2.html
|
||||||
summary_table_row "OAI USRP device if - Release 15" ./archives/nr_ue_usrp/oai_usrpdevif.Rel15.txt "Built target oai_usrpdevif" ./nr_ue_usrp_row3.html
|
summary_table_row "OAI USRP device if - Release 15" ./archives/nr_ue_usrp/oai_usrpdevif.Rel15.txt "Built target oai_usrpdevif" ./nr_ue_usrp_row3.html
|
||||||
summary_table_row "OAI ETHERNET transport - Release 15" ./archives/nr_ue_usrp/oai_eth_transpro.Rel15.txt "Built target oai_eth_transpro" ./nr_ue_usrp_row4.html
|
summary_table_row "OAI ETHERNET transport - Release 15" ./archives/nr_ue_usrp/oai_eth_transpro.Rel15.txt "Built target oai_eth_transpro" ./nr_ue_usrp_row4.html
|
||||||
summary_table_row "NASMESH - Release 15" ./archives/nr_ue_usrp/nasmesh.Rel15.txt "Built target nasmesh" ./nr_ue_usrp_row5.html
|
|
||||||
summary_table_row "Parameters Lib Config - Release 15" ./archives/nr_ue_usrp/params_libconfig.Rel15.txt "Built target params_libconfig" ./nr_ue_usrp_row6.html
|
summary_table_row "Parameters Lib Config - Release 15" ./archives/nr_ue_usrp/params_libconfig.Rel15.txt "Built target params_libconfig" ./nr_ue_usrp_row6.html
|
||||||
summary_table_row "RB Tool - Release 15" ./archives/nr_ue_usrp/rb_tool.Rel15.txt "Built target rb_tool" ./nr_ue_usrp_row7.html
|
|
||||||
summary_table_footer
|
summary_table_footer
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -652,7 +644,7 @@ function report_build {
|
|||||||
echo " <button data-toggle=\"collapse\" data-target=\"#oai-compilation-details\">Details for Compilation Errors and Warnings </button>" >> ./build_results.html
|
echo " <button data-toggle=\"collapse\" data-target=\"#oai-compilation-details\">Details for Compilation Errors and Warnings </button>" >> ./build_results.html
|
||||||
echo " <div id=\"oai-compilation-details\" class=\"collapse\">" >> ./build_results.html
|
echo " <div id=\"oai-compilation-details\" class=\"collapse\">" >> ./build_results.html
|
||||||
|
|
||||||
if [ -f ./enb_eth_row1.html ] || [ -f ./enb_eth_row2.html ] || [ -f ./enb_eth_row3.html ] || [ -f ./enb_eth_row4.html ] || [ -f ./enb_eth_row5.html ] || [ -f ./enb_eth_row6.html ] || [ -f ./enb_eth_row7.html ] || [ -f ./enb_eth_row8.html ] || [ -f ./enb_eth_row9.html ]
|
if [ -f ./enb_eth_row1.html ] || [ -f ./enb_eth_row2.html ] || [ -f ./enb_eth_row3.html ] || [ -f ./enb_eth_row4.html ] || [ -f ./enb_eth_row5.html ] || [ -f ./enb_eth_row6.html ] || [ -f ./enb_eth_row7.html ]
|
||||||
then
|
then
|
||||||
for DETAILS_TABLE in `ls ./enb_eth_row*.html`
|
for DETAILS_TABLE in `ls ./enb_eth_row*.html`
|
||||||
do
|
do
|
||||||
|
|||||||
@@ -0,0 +1,50 @@
|
|||||||
|
<!--
|
||||||
|
|
||||||
|
Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
|
||||||
|
contributor license agreements. See the NOTICE file distributed with
|
||||||
|
this work for additional information regarding copyright ownership.
|
||||||
|
The OpenAirInterface Software Alliance licenses this file to You under
|
||||||
|
the OAI Public License, Version 1.1 (the "License"); you may not use this file
|
||||||
|
except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.openairinterface.org/?page_id=698
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
|
||||||
|
For more information about the OpenAirInterface (OAI) Software Alliance:
|
||||||
|
contact@openairinterface.org
|
||||||
|
|
||||||
|
-->
|
||||||
|
<testCaseList>
|
||||||
|
<htmlTabRef>build-tab</htmlTabRef>
|
||||||
|
<htmlTabName>Build</htmlTabName>
|
||||||
|
<htmlTabIcon>wrench</htmlTabIcon>
|
||||||
|
<TestCaseRequestedList>
|
||||||
|
000001
|
||||||
|
000002
|
||||||
|
</TestCaseRequestedList>
|
||||||
|
<TestCaseExclusionList></TestCaseExclusionList>
|
||||||
|
|
||||||
|
<testCase id="000001">
|
||||||
|
<class>Build_eNB</class>
|
||||||
|
<desc>Build gNB</desc>
|
||||||
|
<Build_eNB_args>-w USRP -c --gNB --ninja</Build_eNB_args>
|
||||||
|
<eNB_instance>0</eNB_instance>
|
||||||
|
<eNB_serverId>0</eNB_serverId>
|
||||||
|
<backgroundBuild>True</backgroundBuild>
|
||||||
|
<forced_workspace_cleanup>True</forced_workspace_cleanup>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="000002">
|
||||||
|
<class>WaitEndBuild_eNB</class>
|
||||||
|
<desc>Wait for end of Build gNB</desc>
|
||||||
|
<eNB_instance>0</eNB_instance>
|
||||||
|
<eNB_serverId>0</eNB_serverId>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
</testCaseList>
|
||||||
@@ -0,0 +1,146 @@
|
|||||||
|
<!--
|
||||||
|
|
||||||
|
Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
|
||||||
|
contributor license agreements. See the NOTICE file distributed with
|
||||||
|
this work for additional information regarding copyright ownership.
|
||||||
|
The OpenAirInterface Software Alliance licenses this file to You under
|
||||||
|
the OAI Public License, Version 1.1 (the "License"); you may not use this file
|
||||||
|
except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.openairinterface.org/?page_id=698
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
|
||||||
|
For more information about the OpenAirInterface (OAI) Software Alliance:
|
||||||
|
contact@openairinterface.org
|
||||||
|
|
||||||
|
-->
|
||||||
|
<testCaseList>
|
||||||
|
<htmlTabRef>TEST-NSA-FR1-TM1</htmlTabRef>
|
||||||
|
<htmlTabName>NSA Ping DL UL with QUECTEL</htmlTabName>
|
||||||
|
<htmlTabIcon>tasks</htmlTabIcon>
|
||||||
|
<repeatCount>1</repeatCount>
|
||||||
|
<TestCaseRequestedList>
|
||||||
|
030000
|
||||||
|
040000
|
||||||
|
000002
|
||||||
|
010000
|
||||||
|
000001
|
||||||
|
050000
|
||||||
|
000001
|
||||||
|
010002
|
||||||
|
080001
|
||||||
|
080000
|
||||||
|
</TestCaseRequestedList>
|
||||||
|
<TestCaseExclusionList></TestCaseExclusionList>
|
||||||
|
|
||||||
|
<testCase id="010000">
|
||||||
|
<class>Initialize_UE</class>
|
||||||
|
<desc>Initialize Quectel</desc>
|
||||||
|
<id>nrmodule2_quectel</id>
|
||||||
|
<UE_Trace>yes</UE_Trace>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
|
||||||
|
<testCase id="010002">
|
||||||
|
<class>Terminate_UE</class>
|
||||||
|
<desc>Terminate Quectel</desc>
|
||||||
|
<id>nrmodule2_quectel</id>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
|
||||||
|
<testCase id="030000">
|
||||||
|
<class>Initialize_eNB</class>
|
||||||
|
<desc>Initialize eNB</desc>
|
||||||
|
<Initialize_eNB_args>-O ci-scripts/conf_files/enb.band38.nsa_2x2.100PRB.usrpn310.conf</Initialize_eNB_args>
|
||||||
|
<eNB_instance>0</eNB_instance>
|
||||||
|
<eNB_serverId>0</eNB_serverId>
|
||||||
|
<air_interface>lte</air_interface>
|
||||||
|
<eNB_Trace>yes</eNB_Trace>
|
||||||
|
<USRP_IPAddress>192.168.18.241</USRP_IPAddress>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
|
||||||
|
<testCase id="040000">
|
||||||
|
<class>Initialize_eNB</class>
|
||||||
|
<desc>Initialize gNB</desc>
|
||||||
|
<Initialize_eNB_args>-O ci-scripts/conf_files/gnb.band78.nsa_2x2.106PRB.usrpn310.conf -q</Initialize_eNB_args>
|
||||||
|
<eNB_instance>1</eNB_instance>
|
||||||
|
<eNB_serverId>1</eNB_serverId>
|
||||||
|
<air_interface>nr</air_interface>
|
||||||
|
<USRP_IPAddress>192.168.18.240</USRP_IPAddress>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="000001">
|
||||||
|
<class>IdleSleep</class>
|
||||||
|
<desc>Sleep</desc>
|
||||||
|
<idle_sleep_time_in_sec>5</idle_sleep_time_in_sec>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="000002">
|
||||||
|
<class>IdleSleep</class>
|
||||||
|
<desc>Sleep</desc>
|
||||||
|
<idle_sleep_time_in_sec>20</idle_sleep_time_in_sec>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
|
||||||
|
<testCase id="050000">
|
||||||
|
<class>Ping</class>
|
||||||
|
<desc>Ping: 20pings in 20sec</desc>
|
||||||
|
<id>nrmodule2_quectel</id>
|
||||||
|
<ping_args>-c 20</ping_args>
|
||||||
|
<ping_packetloss_threshold>50</ping_packetloss_threshold>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="050001">
|
||||||
|
<class>Ping</class>
|
||||||
|
<desc>Ping: 100pings in 20sec</desc>
|
||||||
|
<id>nrmodule2_quectel</id>
|
||||||
|
<ping_args>-c 100 -i 0.2</ping_args>
|
||||||
|
<ping_packetloss_threshold>50</ping_packetloss_threshold>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="070000">
|
||||||
|
<class>Iperf</class>
|
||||||
|
<desc>iperf (DL/20Mbps/UDP)(60 sec)(single-ue profile)</desc>
|
||||||
|
<iperf_args>-u -b 20M -t 60</iperf_args>
|
||||||
|
<direction>DL</direction>
|
||||||
|
<id>nrmodule2_quectel</id>
|
||||||
|
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
||||||
|
<iperf_profile>single-ue</iperf_profile>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="070001">
|
||||||
|
<class>Iperf</class>
|
||||||
|
<desc>iperf (UL/3Mbps/UDP)(60 sec)(single-ue profile)</desc>
|
||||||
|
<iperf_args>-u -b 3M -t 60</iperf_args>
|
||||||
|
<direction>UL</direction>
|
||||||
|
<id>nrmodule2_quectel</id>
|
||||||
|
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
||||||
|
<iperf_profile>single-ue</iperf_profile>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
|
||||||
|
<testCase id="080000">
|
||||||
|
<class>Terminate_eNB</class>
|
||||||
|
<desc>Terminate eNB</desc>
|
||||||
|
<eNB_instance>0</eNB_instance>
|
||||||
|
<eNB_serverId>0</eNB_serverId>
|
||||||
|
<air_interface>lte</air_interface>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="080001">
|
||||||
|
<class>Terminate_eNB</class>
|
||||||
|
<desc>Terminate gNB</desc>
|
||||||
|
<eNB_instance>1</eNB_instance>
|
||||||
|
<eNB_serverId>1</eNB_serverId>
|
||||||
|
<air_interface>nr</air_interface>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
</testCaseList>
|
||||||
|
|
||||||
@@ -0,0 +1,125 @@
|
|||||||
|
<!--
|
||||||
|
|
||||||
|
Licensed to the OpenAirInterface (OAI) Software Alliance under one or more
|
||||||
|
contributor license agreements. See the NOTICE file distributed with
|
||||||
|
this work for additional information regarding copyright ownership.
|
||||||
|
The OpenAirInterface Software Alliance licenses this file to You under
|
||||||
|
the OAI Public License, Version 1.1 (the "License"); you may not use this file
|
||||||
|
except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.openairinterface.org/?page_id=698
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
|
||||||
|
For more information about the OpenAirInterface (OAI) Software Alliance:
|
||||||
|
contact@openairinterface.org
|
||||||
|
|
||||||
|
-->
|
||||||
|
<testCaseList>
|
||||||
|
<htmlTabRef>TEST-SA-FR1-TM1</htmlTabRef>
|
||||||
|
<htmlTabName>SA Ping DL UL with QUECTEL</htmlTabName>
|
||||||
|
<htmlTabIcon>tasks</htmlTabIcon>
|
||||||
|
<repeatCount>1</repeatCount>
|
||||||
|
<TestCaseRequestedList>
|
||||||
|
040000
|
||||||
|
000002
|
||||||
|
010000
|
||||||
|
000001
|
||||||
|
050000
|
||||||
|
000001
|
||||||
|
010002
|
||||||
|
080000
|
||||||
|
</TestCaseRequestedList>
|
||||||
|
<TestCaseExclusionList></TestCaseExclusionList>
|
||||||
|
|
||||||
|
<testCase id="010000">
|
||||||
|
<class>Initialize_UE</class>
|
||||||
|
<desc>Initialize Quectel</desc>
|
||||||
|
<id>nrmodule2_quectel</id>
|
||||||
|
<UE_Trace>yes</UE_Trace>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
|
||||||
|
<testCase id="010002">
|
||||||
|
<class>Terminate_UE</class>
|
||||||
|
<desc>Terminate Quectel</desc>
|
||||||
|
<id>nrmodule2_quectel</id>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
|
||||||
|
<testCase id="040000">
|
||||||
|
<class>Initialize_eNB</class>
|
||||||
|
<desc>Initialize gNB</desc>
|
||||||
|
<Initialize_eNB_args>-O ci-scripts/conf_files/gnb.band78.sa.fr1.106PRB.usrpn310.conf --sa -q</Initialize_eNB_args>
|
||||||
|
<eNB_instance>0</eNB_instance>
|
||||||
|
<eNB_serverId>0</eNB_serverId>
|
||||||
|
<air_interface>nr</air_interface>
|
||||||
|
<eNB_Trace>yes</eNB_Trace>
|
||||||
|
<USRP_IPAddress>192.168.18.240</USRP_IPAddress>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="000001">
|
||||||
|
<class>IdleSleep</class>
|
||||||
|
<desc>Sleep</desc>
|
||||||
|
<idle_sleep_time_in_sec>5</idle_sleep_time_in_sec>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="000002">
|
||||||
|
<class>IdleSleep</class>
|
||||||
|
<desc>Sleep</desc>
|
||||||
|
<idle_sleep_time_in_sec>20</idle_sleep_time_in_sec>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
|
||||||
|
<testCase id="050000">
|
||||||
|
<class>Ping</class>
|
||||||
|
<desc>Ping: 20pings in 20sec</desc>
|
||||||
|
<id>nrmodule2_quectel</id>
|
||||||
|
<ping_args>-c 20</ping_args>
|
||||||
|
<ping_packetloss_threshold>50</ping_packetloss_threshold>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="050001">
|
||||||
|
<class>Ping</class>
|
||||||
|
<desc>Ping: 100pings in 20sec</desc>
|
||||||
|
<id>nrmodule2_quectel</id>
|
||||||
|
<ping_args>-c 100 -i 0.2</ping_args>
|
||||||
|
<ping_packetloss_threshold>50</ping_packetloss_threshold>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="070000">
|
||||||
|
<class>Iperf</class>
|
||||||
|
<desc>iperf (DL/20Mbps/UDP)(60 sec)(single-ue profile)</desc>
|
||||||
|
<iperf_args>-u -b 20M -t 60</iperf_args>
|
||||||
|
<direction>DL</direction>
|
||||||
|
<id>nrmodule2_quectel</id>
|
||||||
|
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
||||||
|
<iperf_profile>single-ue</iperf_profile>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="070001">
|
||||||
|
<class>Iperf</class>
|
||||||
|
<desc>iperf (UL/3Mbps/UDP)(60 sec)(single-ue profile)</desc>
|
||||||
|
<iperf_args>-u -b 3M -t 60</iperf_args>
|
||||||
|
<direction>UL</direction>
|
||||||
|
<id>nrmodule2_quectel</id>
|
||||||
|
<iperf_packetloss_threshold>50</iperf_packetloss_threshold>
|
||||||
|
<iperf_profile>single-ue</iperf_profile>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
|
||||||
|
<testCase id="080000">
|
||||||
|
<class>Terminate_eNB</class>
|
||||||
|
<desc>Terminate gNB</desc>
|
||||||
|
<eNB_instance>0</eNB_instance>
|
||||||
|
<eNB_serverId>0</eNB_serverId>
|
||||||
|
<air_interface>nr</air_interface>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
</testCaseList>
|
||||||
|
|
||||||
@@ -40,18 +40,19 @@ services:
|
|||||||
private_net:
|
private_net:
|
||||||
ipv4_address: 192.168.68.3
|
ipv4_address: 192.168.68.3
|
||||||
public_net:
|
public_net:
|
||||||
ipv4_address: 192.168.61.2
|
ipv4_address: 192.168.61.194
|
||||||
environment:
|
environment:
|
||||||
|
TZ: Europe/Paris
|
||||||
REALM: openairinterface.org
|
REALM: openairinterface.org
|
||||||
HSS_FQDN: hss.openairinterface.org
|
HSS_FQDN: hss.openairinterface.org
|
||||||
PREFIX: /openair-hss/etc
|
PREFIX: /openair-hss/etc
|
||||||
cassandra_Server_IP: 192.168.68.2
|
cassandra_Server_IP: 192.168.68.2
|
||||||
OP_KEY: 1006020f0a478bf6b699f15c062e42b3
|
OP_KEY: 1006020f0a478bf6b699f15c062e42b3
|
||||||
LTE_K: fec86ba6eb707ed08905757b1bb44b8f
|
LTE_K: FEC86BA6EB707ED08905757B1BB44B8F
|
||||||
APN1: oai.ipv4
|
APN1: oai.ipv4
|
||||||
APN2: internet
|
APN2: oai2.ipv4
|
||||||
FIRST_IMSI: 222010100001120
|
FIRST_IMSI: 208990100001127
|
||||||
NB_USERS: 10
|
NB_USERS: 5
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test: /bin/bash -c "pgrep oai_hss"
|
test: /bin/bash -c "pgrep oai_hss"
|
||||||
interval: 10s
|
interval: 10s
|
||||||
@@ -65,45 +66,46 @@ services:
|
|||||||
depends_on: [oai_hss]
|
depends_on: [oai_hss]
|
||||||
networks:
|
networks:
|
||||||
public_net:
|
public_net:
|
||||||
ipv4_address: 192.168.61.3
|
ipv4_address: 192.168.61.195
|
||||||
environment:
|
environment:
|
||||||
|
TZ: Europe/Paris
|
||||||
REALM: openairinterface.org
|
REALM: openairinterface.org
|
||||||
PREFIX: /openair-mme/etc
|
PREFIX: /openair-mme/etc
|
||||||
INSTANCE: 1
|
INSTANCE: 1
|
||||||
PID_DIRECTORY: /var/run
|
PID_DIRECTORY: /var/run
|
||||||
HSS_IP_ADDR: 192.168.61.2
|
HSS_IP_ADDR: 192.168.61.194
|
||||||
HSS_HOSTNAME: hss
|
HSS_HOSTNAME: hss
|
||||||
HSS_FQDN: hss.openairinterface.org
|
HSS_FQDN: hss.openairinterface.org
|
||||||
HSS_REALM: openairinterface.org
|
HSS_REALM: openairinterface.org
|
||||||
MCC: '222'
|
MCC: '208'
|
||||||
MNC: '01'
|
MNC: '99'
|
||||||
MME_GID: 32768
|
MME_GID: 32768
|
||||||
MME_CODE: 3
|
MME_CODE: 3
|
||||||
TAC_0: 1
|
TAC_0: 1
|
||||||
TAC_1: 2
|
TAC_1: 2
|
||||||
TAC_2: 3
|
TAC_2: 3
|
||||||
MME_FQDN: mme.openairinterface.org
|
MME_FQDN: mme.openairinterface.org
|
||||||
MME_S6A_IP_ADDR: 192.168.61.3
|
MME_S6A_IP_ADDR: 192.168.61.195
|
||||||
MME_INTERFACE_NAME_FOR_S1_MME: eth0
|
MME_INTERFACE_NAME_FOR_S1_MME: eth0
|
||||||
MME_IPV4_ADDRESS_FOR_S1_MME: 192.168.61.3
|
MME_IPV4_ADDRESS_FOR_S1_MME: 192.168.61.195
|
||||||
MME_INTERFACE_NAME_FOR_S11: eth0
|
MME_INTERFACE_NAME_FOR_S11: eth0
|
||||||
MME_IPV4_ADDRESS_FOR_S11: 192.168.61.3
|
MME_IPV4_ADDRESS_FOR_S11: 192.168.61.195
|
||||||
MME_INTERFACE_NAME_FOR_S10: lo
|
MME_INTERFACE_NAME_FOR_S10: lo
|
||||||
MME_IPV4_ADDRESS_FOR_S10: 127.0.0.10
|
MME_IPV4_ADDRESS_FOR_S10: 127.0.0.10
|
||||||
OUTPUT: CONSOLE
|
OUTPUT: CONSOLE
|
||||||
SGW_IPV4_ADDRESS_FOR_S11_0: 192.168.61.4
|
SGW_IPV4_ADDRESS_FOR_S11_0: 192.168.61.196
|
||||||
PEER_MME_IPV4_ADDRESS_FOR_S10_0: 0.0.0.0
|
PEER_MME_IPV4_ADDRESS_FOR_S10_0: 0.0.0.0
|
||||||
PEER_MME_IPV4_ADDRESS_FOR_S10_1: 0.0.0.0
|
PEER_MME_IPV4_ADDRESS_FOR_S10_1: 0.0.0.0
|
||||||
MCC_SGW_0: '222'
|
MCC_SGW_0: '208'
|
||||||
MNC3_SGW_0: '001'
|
MNC3_SGW_0: '099'
|
||||||
TAC_LB_SGW_0: '01'
|
TAC_LB_SGW_0: '01'
|
||||||
TAC_HB_SGW_0: '00'
|
TAC_HB_SGW_0: '00'
|
||||||
MCC_MME_0: '222'
|
MCC_MME_0: '208'
|
||||||
MNC3_MME_0: '001'
|
MNC3_MME_0: '099'
|
||||||
TAC_LB_MME_0: '02'
|
TAC_LB_MME_0: '02'
|
||||||
TAC_HB_MME_0: '00'
|
TAC_HB_MME_0: '00'
|
||||||
MCC_MME_1: '222'
|
MCC_MME_1: '208'
|
||||||
MNC3_MME_1: '001'
|
MNC3_MME_1: '099'
|
||||||
TAC_LB_MME_1: '03'
|
TAC_LB_MME_1: '03'
|
||||||
TAC_HB_MME_1: '00'
|
TAC_HB_MME_1: '00'
|
||||||
TAC_LB_SGW_TEST_0: '03'
|
TAC_LB_SGW_TEST_0: '03'
|
||||||
@@ -122,18 +124,25 @@ services:
|
|||||||
container_name: prod-oai-spgwc
|
container_name: prod-oai-spgwc
|
||||||
networks:
|
networks:
|
||||||
public_net:
|
public_net:
|
||||||
ipv4_address: 192.168.61.4
|
ipv4_address: 192.168.61.196
|
||||||
environment:
|
environment:
|
||||||
PID_DIRECTORY: /var/run
|
TZ: Europe/Paris
|
||||||
SGW_INTERFACE_NAME_FOR_S11: eth0
|
SGW_INTERFACE_NAME_FOR_S11: eth0
|
||||||
SGW_IP_FOR_S5_S8_CP: 127.0.0.11/8
|
|
||||||
PGW_IP_FOR_S5_S8_CP: 127.0.0.12/8
|
|
||||||
PGW_INTERFACE_NAME_FOR_SX: eth0
|
PGW_INTERFACE_NAME_FOR_SX: eth0
|
||||||
DEFAULT_APN: oai.ipv4
|
|
||||||
DEFAULT_DNS_IPV4_ADDRESS: 192.168.18.129
|
DEFAULT_DNS_IPV4_ADDRESS: 192.168.18.129
|
||||||
DEFAULT_DNS_SEC_IPV4_ADDRESS: 8.8.4.4
|
DEFAULT_DNS_SEC_IPV4_ADDRESS: 8.8.4.4
|
||||||
UE_IP_ADDRESS_POOL: '12.1.1.2 - 12.1.1.254'
|
PUSH_PROTOCOL_OPTION: 'true'
|
||||||
PUSH_PROTOCOL_OPTION: 'yes'
|
APN_NI_1: oai.ipv4
|
||||||
|
APN_NI_2: oai2.ipv4
|
||||||
|
DEFAULT_APN_NI_1: oai.ipv4
|
||||||
|
UE_IP_ADDRESS_POOL_1: '12.1.1.2 - 12.1.1.254'
|
||||||
|
UE_IP_ADDRESS_POOL_2: '12.0.0.2 - 12.0.0.254'
|
||||||
|
MCC: '208'
|
||||||
|
MNC: '99'
|
||||||
|
MNC03: '099'
|
||||||
|
TAC: 1
|
||||||
|
GW_ID: 1
|
||||||
|
REALM: openairinterface.org
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test: /bin/bash -c "pgrep oai_spgwc"
|
test: /bin/bash -c "pgrep oai_spgwc"
|
||||||
interval: 10s
|
interval: 10s
|
||||||
@@ -147,45 +156,39 @@ services:
|
|||||||
depends_on: [oai_spgwc]
|
depends_on: [oai_spgwc]
|
||||||
networks:
|
networks:
|
||||||
public_net:
|
public_net:
|
||||||
ipv4_address: 192.168.61.5
|
ipv4_address: 192.168.61.197
|
||||||
environment:
|
environment:
|
||||||
|
TZ: Europe/Paris
|
||||||
PID_DIRECTORY: /var/run
|
PID_DIRECTORY: /var/run
|
||||||
INSTANCE: 1
|
INSTANCE: 1
|
||||||
SGW_INTERFACE_NAME_FOR_S1U_S12_S4_UP: eth0
|
SGW_INTERFACE_NAME_FOR_S1U_S12_S4_UP: eth0
|
||||||
PGW_INTERFACE_NAME_FOR_SGI: eth0
|
PGW_INTERFACE_NAME_FOR_SGI: eth0
|
||||||
SGW_INTERFACE_NAME_FOR_SX: eth0
|
SGW_INTERFACE_NAME_FOR_SX: eth0
|
||||||
SPGWC0_IP_ADDRESS: 192.168.61.4
|
SPGWC0_IP_ADDRESS: 192.168.61.196
|
||||||
NETWORK_UE_IP: '12.1.1.0/24'
|
NETWORK_UE_IP: '12.1.1.0/24'
|
||||||
NETWORK_UE_NAT_OPTION: 'yes'
|
NETWORK_UE_NAT_OPTION: 'yes'
|
||||||
|
MCC: '208'
|
||||||
|
MNC: '99'
|
||||||
|
MNC03: '099'
|
||||||
|
TAC: 1
|
||||||
|
GW_ID: 1
|
||||||
|
REALM: openairinterface.org
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test: /bin/bash -c "pgrep oai_spgwu"
|
test: /bin/bash -c "pgrep oai_spgwu"
|
||||||
interval: 10s
|
interval: 10s
|
||||||
timeout: 5s
|
timeout: 5s
|
||||||
retries: 5
|
retries: 5
|
||||||
|
|
||||||
flexran_rtc:
|
|
||||||
image: flexran-rtc:production
|
|
||||||
privileged: true
|
|
||||||
container_name: prod-flexran-rtc
|
|
||||||
networks:
|
|
||||||
public_net:
|
|
||||||
ipv4_address: 192.168.61.10
|
|
||||||
healthcheck:
|
|
||||||
test: /bin/bash -c "pgrep rt_controller"
|
|
||||||
interval: 10s
|
|
||||||
timeout: 5s
|
|
||||||
retries: 5
|
|
||||||
|
|
||||||
trf_gen:
|
trf_gen:
|
||||||
image: trf-gen:production
|
image: trf-gen:production
|
||||||
privileged: true
|
privileged: true
|
||||||
container_name: prod-trf-gen
|
container_name: prod-trf-gen
|
||||||
networks:
|
networks:
|
||||||
public_net:
|
public_net:
|
||||||
ipv4_address: 192.168.61.11
|
ipv4_address: 192.168.61.200
|
||||||
entrypoint: /bin/bash -c "ip route add 12.1.1.0/24 via 192.168.61.5 dev eth0; sleep infinity"
|
entrypoint: /bin/bash -c "ip route add 12.1.1.0/24 via 192.168.61.197 dev eth0; sleep infinity"
|
||||||
healthcheck:
|
healthcheck:
|
||||||
test: /bin/bash -c "ping -c 2 192.168.61.5"
|
test: /bin/bash -c "ping -c 2 192.168.61.197"
|
||||||
interval: 10s
|
interval: 10s
|
||||||
timeout: 5s
|
timeout: 5s
|
||||||
retries: 5
|
retries: 5
|
||||||
@@ -200,4 +203,4 @@ networks:
|
|||||||
name: prod-oai-public-net
|
name: prod-oai-public-net
|
||||||
ipam:
|
ipam:
|
||||||
config:
|
config:
|
||||||
- subnet: 192.168.61.0/26
|
- subnet: 192.168.61.192/26
|
||||||
|
|||||||
@@ -0,0 +1,203 @@
|
|||||||
|
version: '3.8'
|
||||||
|
|
||||||
|
services:
|
||||||
|
cassandra:
|
||||||
|
image: cassandra:2.1
|
||||||
|
container_name: prod-cassandra
|
||||||
|
networks:
|
||||||
|
private_net:
|
||||||
|
ipv4_address: 192.168.68.2
|
||||||
|
environment:
|
||||||
|
CASSANDRA_CLUSTER_NAME: "OAI HSS Cluster"
|
||||||
|
CASSANDRA_ENDPOINT_SNITCH: GossipingPropertyFileSnitch
|
||||||
|
healthcheck:
|
||||||
|
test: /bin/bash -c "nodetool status"
|
||||||
|
interval: 10s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 5
|
||||||
|
|
||||||
|
db_init:
|
||||||
|
image: cassandra:2.1
|
||||||
|
container_name: prod-db-init
|
||||||
|
depends_on: [cassandra]
|
||||||
|
deploy:
|
||||||
|
restart_policy:
|
||||||
|
condition: on-failure
|
||||||
|
max_attempts: 10
|
||||||
|
networks:
|
||||||
|
private_net:
|
||||||
|
ipv4_address: 192.168.68.4
|
||||||
|
volumes:
|
||||||
|
- ./oai_db.cql:/home/oai_db.cql
|
||||||
|
entrypoint: /bin/bash -c "cqlsh --file /home/oai_db.cql 192.168.68.2 && echo 'OK'"
|
||||||
|
|
||||||
|
oai_hss:
|
||||||
|
image: oai-hss:production
|
||||||
|
container_name: prod-oai-hss
|
||||||
|
privileged: true
|
||||||
|
depends_on: [cassandra]
|
||||||
|
networks:
|
||||||
|
private_net:
|
||||||
|
ipv4_address: 192.168.68.3
|
||||||
|
public_net:
|
||||||
|
ipv4_address: 192.168.61.2
|
||||||
|
environment:
|
||||||
|
REALM: openairinterface.org
|
||||||
|
HSS_FQDN: hss.openairinterface.org
|
||||||
|
PREFIX: /openair-hss/etc
|
||||||
|
cassandra_Server_IP: 192.168.68.2
|
||||||
|
OP_KEY: 1006020f0a478bf6b699f15c062e42b3
|
||||||
|
LTE_K: fec86ba6eb707ed08905757b1bb44b8f
|
||||||
|
APN1: oai.ipv4
|
||||||
|
APN2: internet
|
||||||
|
FIRST_IMSI: 222010100001120
|
||||||
|
NB_USERS: 10
|
||||||
|
healthcheck:
|
||||||
|
test: /bin/bash -c "pgrep oai_hss"
|
||||||
|
interval: 10s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 5
|
||||||
|
|
||||||
|
oai_mme:
|
||||||
|
image: oai-mme:production
|
||||||
|
container_name: prod-oai-mme
|
||||||
|
privileged: true
|
||||||
|
depends_on: [oai_hss]
|
||||||
|
networks:
|
||||||
|
public_net:
|
||||||
|
ipv4_address: 192.168.61.3
|
||||||
|
environment:
|
||||||
|
REALM: openairinterface.org
|
||||||
|
PREFIX: /openair-mme/etc
|
||||||
|
INSTANCE: 1
|
||||||
|
PID_DIRECTORY: /var/run
|
||||||
|
HSS_IP_ADDR: 192.168.61.2
|
||||||
|
HSS_HOSTNAME: hss
|
||||||
|
HSS_FQDN: hss.openairinterface.org
|
||||||
|
HSS_REALM: openairinterface.org
|
||||||
|
MCC: '222'
|
||||||
|
MNC: '01'
|
||||||
|
MME_GID: 32768
|
||||||
|
MME_CODE: 3
|
||||||
|
TAC_0: 1
|
||||||
|
TAC_1: 2
|
||||||
|
TAC_2: 3
|
||||||
|
MME_FQDN: mme.openairinterface.org
|
||||||
|
MME_S6A_IP_ADDR: 192.168.61.3
|
||||||
|
MME_INTERFACE_NAME_FOR_S1_MME: eth0
|
||||||
|
MME_IPV4_ADDRESS_FOR_S1_MME: 192.168.61.3
|
||||||
|
MME_INTERFACE_NAME_FOR_S11: eth0
|
||||||
|
MME_IPV4_ADDRESS_FOR_S11: 192.168.61.3
|
||||||
|
MME_INTERFACE_NAME_FOR_S10: lo
|
||||||
|
MME_IPV4_ADDRESS_FOR_S10: 127.0.0.10
|
||||||
|
OUTPUT: CONSOLE
|
||||||
|
SGW_IPV4_ADDRESS_FOR_S11_0: 192.168.61.4
|
||||||
|
PEER_MME_IPV4_ADDRESS_FOR_S10_0: 0.0.0.0
|
||||||
|
PEER_MME_IPV4_ADDRESS_FOR_S10_1: 0.0.0.0
|
||||||
|
MCC_SGW_0: '222'
|
||||||
|
MNC3_SGW_0: '001'
|
||||||
|
TAC_LB_SGW_0: '01'
|
||||||
|
TAC_HB_SGW_0: '00'
|
||||||
|
MCC_MME_0: '222'
|
||||||
|
MNC3_MME_0: '001'
|
||||||
|
TAC_LB_MME_0: '02'
|
||||||
|
TAC_HB_MME_0: '00'
|
||||||
|
MCC_MME_1: '222'
|
||||||
|
MNC3_MME_1: '001'
|
||||||
|
TAC_LB_MME_1: '03'
|
||||||
|
TAC_HB_MME_1: '00'
|
||||||
|
TAC_LB_SGW_TEST_0: '03'
|
||||||
|
TAC_HB_SGW_TEST_0: '00'
|
||||||
|
SGW_IPV4_ADDRESS_FOR_S11_TEST_0: 0.0.0.0
|
||||||
|
healthcheck:
|
||||||
|
test: /bin/bash -c "pgrep oai_mme"
|
||||||
|
interval: 10s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 5
|
||||||
|
|
||||||
|
oai_spgwc:
|
||||||
|
image: oai-spgwc:production
|
||||||
|
privileged: true
|
||||||
|
depends_on: [oai_mme]
|
||||||
|
container_name: prod-oai-spgwc
|
||||||
|
networks:
|
||||||
|
public_net:
|
||||||
|
ipv4_address: 192.168.61.4
|
||||||
|
environment:
|
||||||
|
PID_DIRECTORY: /var/run
|
||||||
|
SGW_INTERFACE_NAME_FOR_S11: eth0
|
||||||
|
SGW_IP_FOR_S5_S8_CP: 127.0.0.11/8
|
||||||
|
PGW_IP_FOR_S5_S8_CP: 127.0.0.12/8
|
||||||
|
PGW_INTERFACE_NAME_FOR_SX: eth0
|
||||||
|
DEFAULT_APN: oai.ipv4
|
||||||
|
DEFAULT_DNS_IPV4_ADDRESS: 192.168.18.129
|
||||||
|
DEFAULT_DNS_SEC_IPV4_ADDRESS: 8.8.4.4
|
||||||
|
UE_IP_ADDRESS_POOL: '12.1.1.2 - 12.1.1.254'
|
||||||
|
PUSH_PROTOCOL_OPTION: 'yes'
|
||||||
|
healthcheck:
|
||||||
|
test: /bin/bash -c "pgrep oai_spgwc"
|
||||||
|
interval: 10s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 5
|
||||||
|
|
||||||
|
oai_spgwu:
|
||||||
|
image: oai-spgwu-tiny:production
|
||||||
|
privileged: true
|
||||||
|
container_name: prod-oai-spgwu-tiny
|
||||||
|
depends_on: [oai_spgwc]
|
||||||
|
networks:
|
||||||
|
public_net:
|
||||||
|
ipv4_address: 192.168.61.5
|
||||||
|
environment:
|
||||||
|
PID_DIRECTORY: /var/run
|
||||||
|
INSTANCE: 1
|
||||||
|
SGW_INTERFACE_NAME_FOR_S1U_S12_S4_UP: eth0
|
||||||
|
PGW_INTERFACE_NAME_FOR_SGI: eth0
|
||||||
|
SGW_INTERFACE_NAME_FOR_SX: eth0
|
||||||
|
SPGWC0_IP_ADDRESS: 192.168.61.4
|
||||||
|
NETWORK_UE_IP: '12.1.1.0/24'
|
||||||
|
NETWORK_UE_NAT_OPTION: 'yes'
|
||||||
|
healthcheck:
|
||||||
|
test: /bin/bash -c "pgrep oai_spgwu"
|
||||||
|
interval: 10s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 5
|
||||||
|
|
||||||
|
flexran_rtc:
|
||||||
|
image: flexran-rtc:production
|
||||||
|
privileged: true
|
||||||
|
container_name: prod-flexran-rtc
|
||||||
|
networks:
|
||||||
|
public_net:
|
||||||
|
ipv4_address: 192.168.61.10
|
||||||
|
healthcheck:
|
||||||
|
test: /bin/bash -c "pgrep rt_controller"
|
||||||
|
interval: 10s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 5
|
||||||
|
|
||||||
|
trf_gen:
|
||||||
|
image: trf-gen:production
|
||||||
|
privileged: true
|
||||||
|
container_name: prod-trf-gen
|
||||||
|
networks:
|
||||||
|
public_net:
|
||||||
|
ipv4_address: 192.168.61.11
|
||||||
|
entrypoint: /bin/bash -c "ip route add 12.1.1.0/24 via 192.168.61.5 dev eth0; sleep infinity"
|
||||||
|
healthcheck:
|
||||||
|
test: /bin/bash -c "ping -c 2 192.168.61.5"
|
||||||
|
interval: 10s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 5
|
||||||
|
|
||||||
|
networks:
|
||||||
|
private_net:
|
||||||
|
name: prod-oai-private-net
|
||||||
|
ipam:
|
||||||
|
config:
|
||||||
|
- subnet: 192.168.68.0/26
|
||||||
|
public_net:
|
||||||
|
name: prod-oai-public-net
|
||||||
|
ipam:
|
||||||
|
config:
|
||||||
|
- subnet: 192.168.61.0/26
|
||||||
@@ -683,21 +683,7 @@ function main() {
|
|||||||
$build_dir coding \
|
$build_dir coding \
|
||||||
libcoding.so $dbin/libcoding.so
|
libcoding.so $dbin/libcoding.so
|
||||||
|
|
||||||
#check if we run inside a container or not
|
|
||||||
#IS_CONTAINER variable is defined in build_helper file
|
|
||||||
#compile nasmesh and rb_tool only if NOT running in a container
|
|
||||||
if [ $IS_CONTAINER -eq 0 ]
|
|
||||||
then
|
|
||||||
compilations \
|
|
||||||
$build_dir nasmesh \
|
|
||||||
CMakeFiles/nasmesh/nasmesh.ko $dbin/nasmesh.ko
|
|
||||||
|
|
||||||
compilations \
|
|
||||||
$build_dir rb_tool \
|
|
||||||
rb_tool $dbin/rb_tool
|
|
||||||
|
|
||||||
cp $OPENAIR_DIR/cmake_targets/tools/init_nas_nos1 $dbin
|
|
||||||
fi #IS_CONTAINER
|
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -89,7 +89,7 @@ void get_common_options(uint32_t execmask) {
|
|||||||
uint32_t online_log_messages=0;
|
uint32_t online_log_messages=0;
|
||||||
uint32_t glog_level=0 ;
|
uint32_t glog_level=0 ;
|
||||||
uint32_t start_telnetsrv = 0, start_telnetclt = 0;
|
uint32_t start_telnetsrv = 0, start_telnetclt = 0;
|
||||||
uint32_t noS1 = 0, nokrnmod = 0, nonbiot = 0;
|
uint32_t noS1 = 0, nokrnmod = 1, nonbiot = 0;
|
||||||
uint32_t rfsim = 0, basicsim = 0, do_forms = 0;
|
uint32_t rfsim = 0, basicsim = 0, do_forms = 0;
|
||||||
char *logmem_filename = NULL;
|
char *logmem_filename = NULL;
|
||||||
paramdef_t cmdline_params[] =CMDLINE_PARAMS_DESC ;
|
paramdef_t cmdline_params[] =CMDLINE_PARAMS_DESC ;
|
||||||
|
|||||||
Reference in New Issue
Block a user