Merge remote-tracking branch 'origin/ci-fhi72-pipeline' into integration_2024_w31
This commit is contained in:
@@ -585,6 +585,29 @@ pipeline {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
stage ("SA-FHI72-CN5G") {
|
||||||
|
when { expression {do5Gtest} }
|
||||||
|
steps {
|
||||||
|
script {
|
||||||
|
triggerSlaveJob ('RAN-SA-FHI72-CN5G', 'SA-FHI72-CN5G')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
post {
|
||||||
|
always {
|
||||||
|
script {
|
||||||
|
// Using a unique variable name for each test stage to avoid overwriting on a global variable
|
||||||
|
// due to parallel-time concurrency
|
||||||
|
saFHI72Status = finalizeSlaveJob('RAN-SA-FHI72-CN5G')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
failure {
|
||||||
|
script {
|
||||||
|
currentBuild.result = 'FAILURE'
|
||||||
|
failingStages += saFHI72Status
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
stage ("SA-OAIUE-CN5G") {
|
stage ("SA-OAIUE-CN5G") {
|
||||||
when { expression {do5Gtest} }
|
when { expression {do5Gtest} }
|
||||||
steps {
|
steps {
|
||||||
|
|||||||
@@ -18,6 +18,14 @@ up2:
|
|||||||
IF: wwan0
|
IF: wwan0
|
||||||
MTU: 1500
|
MTU: 1500
|
||||||
|
|
||||||
|
up2-fhi72:
|
||||||
|
Host: up2
|
||||||
|
AttachScript: sudo /opt/mbim-fhi72/start_quectel_mbim.sh
|
||||||
|
DetachScript: sudo /opt/mbim-fhi72/stop_quectel_mbim.sh
|
||||||
|
NetworkScript: ip a show dev wwan0
|
||||||
|
IF: wwan0
|
||||||
|
MTU: 1500
|
||||||
|
|
||||||
sphex_quectel:
|
sphex_quectel:
|
||||||
Host: sphex
|
Host: sphex
|
||||||
InitScript: sudo stdbuf -oL /home/oaicicd/quectel-CM/quectel-CM -4 -s oai.ipv4 &> /tmp/quecel-cm.log &
|
InitScript: sudo stdbuf -oL /home/oaicicd/quectel-CM/quectel-CM -4 -s oai.ipv4 &> /tmp/quecel-cm.log &
|
||||||
@@ -58,9 +66,18 @@ adb_ue_2:
|
|||||||
|
|
||||||
oc-cn5g:
|
oc-cn5g:
|
||||||
Host: avra
|
Host: avra
|
||||||
|
Namespace: "oaicicd-core-for-ci-ran"
|
||||||
|
CNPath: "/opt/oai-cn5g-fed-develop-2024-april-00102"
|
||||||
NetworkScript: echo "inet 172.21.6.102"
|
NetworkScript: echo "inet 172.21.6.102"
|
||||||
RunIperf3Server: False
|
RunIperf3Server: False
|
||||||
|
|
||||||
|
oc-cn5g-20897:
|
||||||
|
Host: cacofonix
|
||||||
|
Namespace: "oaicicd-core-for-fhi72"
|
||||||
|
CNPath: "/opt/oai-cn5g-fed-develop-2024-april-20897"
|
||||||
|
NetworkScript: echo "inet 172.21.6.105"
|
||||||
|
RunIperf3Server: False
|
||||||
|
|
||||||
matix-cn5g:
|
matix-cn5g:
|
||||||
Host: matix
|
Host: matix
|
||||||
NetworkScript: docker exec prod-trf-gen ip a show dev eth0
|
NetworkScript: docker exec prod-trf-gen ip a show dev eth0
|
||||||
@@ -99,6 +116,10 @@ amarisoft_ue:
|
|||||||
Host: amariue
|
Host: amariue
|
||||||
InitScript: /root/lteue-linux-2023-10-27/ue/lteue /root/oaicicd/ran_sa_aw2s_asue_2x2/aw2s-multi-00102-2x2.cfg &
|
InitScript: /root/lteue-linux-2023-10-27/ue/lteue /root/oaicicd/ran_sa_aw2s_asue_2x2/aw2s-multi-00102-2x2.cfg &
|
||||||
TermScript: /root/2023-10-27/libs/ws.js -t 10 127.0.0.1:9002 '{"message":"quit"}' || killall -KILL lteue-avx2
|
TermScript: /root/2023-10-27/libs/ws.js -t 10 127.0.0.1:9002 '{"message":"quit"}' || killall -KILL lteue-avx2
|
||||||
|
amarisoft_ue_fhi72:
|
||||||
|
Host: amariue
|
||||||
|
InitScript: /root/lteue-linux-2023-10-27/ue/lteue /root/oaicicd/ran_sa_fhi72_asue_2x2_benetel550/fhi72-multi-20897-2x2.cfg &
|
||||||
|
TermScript: /root/2023-10-27/libs/ws.js -t 10 127.0.0.1:9002 '{"message":"quit"}' || killall -KILL lteue-avx2
|
||||||
amarisoft_ue_1:
|
amarisoft_ue_1:
|
||||||
Host: amariue
|
Host: amariue
|
||||||
AttachScript: /root/2023-10-27/libs/ws.js 127.0.0.1:9002 '{"message":"power_on","ue_id":1}'
|
AttachScript: /root/2023-10-27/libs/ws.js 127.0.0.1:9002 '{"message":"power_on","ue_id":1}'
|
||||||
|
|||||||
@@ -43,7 +43,6 @@ NAMESPACE = "oaicicd-ran"
|
|||||||
OCUrl = "https://api.oai.cs.eurecom.fr:6443"
|
OCUrl = "https://api.oai.cs.eurecom.fr:6443"
|
||||||
OCRegistry = "default-route-openshift-image-registry.apps.oai.cs.eurecom.fr/"
|
OCRegistry = "default-route-openshift-image-registry.apps.oai.cs.eurecom.fr/"
|
||||||
CI_OC_RAN_NAMESPACE = "oaicicd-ran"
|
CI_OC_RAN_NAMESPACE = "oaicicd-ran"
|
||||||
CI_OC_CORE_NAMESPACE = "oaicicd-core-for-ci-ran"
|
|
||||||
CN_IMAGES = ["mysql", "oai-nrf", "oai-amf", "oai-smf", "oai-upf", "oai-ausf", "oai-udm", "oai-udr", "oai-traffic-server"]
|
CN_IMAGES = ["mysql", "oai-nrf", "oai-amf", "oai-smf", "oai-upf", "oai-ausf", "oai-udm", "oai-udr", "oai-traffic-server"]
|
||||||
CN_CONTAINERS = ["", "-c nrf", "-c amf", "-c smf", "-c upf", "-c ausf", "-c udm", "-c udr", ""]
|
CN_CONTAINERS = ["", "-c nrf", "-c amf", "-c smf", "-c upf", "-c ausf", "-c udm", "-c udr", ""]
|
||||||
|
|
||||||
@@ -68,10 +67,9 @@ def OC_login(cmd, ocUserName, ocPassword, ocProjectName):
|
|||||||
def OC_logout(cmd):
|
def OC_logout(cmd):
|
||||||
cmd.run(f'oc logout')
|
cmd.run(f'oc logout')
|
||||||
|
|
||||||
def OC_deploy_CN(cmd, ocUserName, ocPassword):
|
def OC_deploy_CN(cmd, ocUserName, ocPassword, ocNamespace, path):
|
||||||
logging.debug('OC OAI CN5G: Deploying OAI CN5G on Openshift Cluster')
|
logging.debug(f'OC OAI CN5G: Deploying OAI CN5G on Openshift Cluster: {ocNamespace}')
|
||||||
path = "/opt/oai-cn5g-fed-develop-2024-april-00102"
|
succeeded = OC_login(cmd, ocUserName, ocPassword, ocNamespace)
|
||||||
succeeded = OC_login(cmd, ocUserName, ocPassword, CI_OC_CORE_NAMESPACE)
|
|
||||||
if not succeeded:
|
if not succeeded:
|
||||||
return False, CONST.OC_LOGIN_FAIL
|
return False, CONST.OC_LOGIN_FAIL
|
||||||
cmd.run('helm uninstall oai5gcn --wait --timeout 60s')
|
cmd.run('helm uninstall oai5gcn --wait --timeout 60s')
|
||||||
@@ -84,10 +82,9 @@ def OC_deploy_CN(cmd, ocUserName, ocPassword):
|
|||||||
OC_logout(cmd)
|
OC_logout(cmd)
|
||||||
return True, report
|
return True, report
|
||||||
|
|
||||||
def OC_undeploy_CN(cmd, ocUserName, ocPassword):
|
def OC_undeploy_CN(cmd, ocUserName, ocPassword, ocNamespace, path):
|
||||||
logging.debug('OC OAI CN5G: Terminating CN on Openshift Cluster')
|
logging.debug(f'OC OAI CN5G: Terminating CN on Openshift Cluster: {ocNamespace}')
|
||||||
path = "/opt/oai-cn5g-fed-develop-2024-april-00102"
|
succeeded = OC_login(cmd, ocUserName, ocPassword, ocNamespace)
|
||||||
succeeded = OC_login(cmd, ocUserName, ocPassword, CI_OC_CORE_NAMESPACE)
|
|
||||||
if not succeeded:
|
if not succeeded:
|
||||||
return False, CONST.OC_LOGIN_FAIL
|
return False, CONST.OC_LOGIN_FAIL
|
||||||
cmd.run(f'rm -Rf {path}/logs')
|
cmd.run(f'rm -Rf {path}/logs')
|
||||||
|
|||||||
@@ -65,6 +65,8 @@ class Module_UE:
|
|||||||
self.logStore = m.get('LogStore')
|
self.logStore = m.get('LogStore')
|
||||||
self.cmd_prefix = m.get('CmdPrefix')
|
self.cmd_prefix = m.get('CmdPrefix')
|
||||||
self.runIperf3Server = m.get('RunIperf3Server', True)
|
self.runIperf3Server = m.get('RunIperf3Server', True)
|
||||||
|
self.namespace = m.get('Namespace')
|
||||||
|
self.cnPath = m.get('CNPath')
|
||||||
logging.info(f'initialized {self.module_name}@{self.host} from {filename}')
|
logging.info(f'initialized {self.module_name}@{self.host} from {filename}')
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
@@ -190,6 +192,12 @@ class Module_UE:
|
|||||||
def getHost(self):
|
def getHost(self):
|
||||||
return self.host
|
return self.host
|
||||||
|
|
||||||
|
def getNamespace(self):
|
||||||
|
return self.namespace
|
||||||
|
|
||||||
|
def getCNPath(self):
|
||||||
|
return self.cnPath
|
||||||
|
|
||||||
def getRunIperf3Server(self):
|
def getRunIperf3Server(self):
|
||||||
return self.runIperf3Server
|
return self.runIperf3Server
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,297 @@
|
|||||||
|
Active_gNBs = ( "gNB-OAI");
|
||||||
|
# Asn1_verbosity, choice in: none, info, annoying
|
||||||
|
Asn1_verbosity = "none";
|
||||||
|
|
||||||
|
gNBs =
|
||||||
|
(
|
||||||
|
{
|
||||||
|
////////// Identification parameters:
|
||||||
|
gNB_ID = 0xe00;
|
||||||
|
gNB_name = "gNB-OAI";
|
||||||
|
|
||||||
|
// Tracking area code, 0x0000 and 0xfffe are reserved values
|
||||||
|
tracking_area_code = 1;
|
||||||
|
plmn_list = ({ mcc = 208; mnc = 97; mnc_length = 2; snssaiList = ( { sst = 1; }); });
|
||||||
|
|
||||||
|
//nr_cellid = 12345678L;
|
||||||
|
nr_cellid = 1;
|
||||||
|
|
||||||
|
////////// Physical parameters:
|
||||||
|
|
||||||
|
pdsch_AntennaPorts_XP = 2;
|
||||||
|
pdsch_AntennaPorts_N1 = 1;
|
||||||
|
maxMIMO_layers = 2;
|
||||||
|
pusch_AntennaPorts = 4;
|
||||||
|
do_CSIRS = 1;
|
||||||
|
do_SRS = 0 ;
|
||||||
|
|
||||||
|
pdcch_ConfigSIB1 = (
|
||||||
|
{
|
||||||
|
controlResourceSetZero = 11;
|
||||||
|
searchSpaceZero = 0;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
servingCellConfigCommon = (
|
||||||
|
{
|
||||||
|
#spCellConfigCommon
|
||||||
|
physCellId = 0;
|
||||||
|
# downlinkConfigCommon
|
||||||
|
#frequencyInfoDL
|
||||||
|
# this is 3450.72 MHz (center frequency)
|
||||||
|
absoluteFrequencySSB = 666624;
|
||||||
|
dl_frequencyBand = 77;
|
||||||
|
# this is 3401.58 MHz
|
||||||
|
dl_absoluteFrequencyPointA = 663348;
|
||||||
|
#scs-SpecificCarrierList
|
||||||
|
dl_offstToCarrier = 0;
|
||||||
|
# subcarrierSpacing
|
||||||
|
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||||
|
dl_subcarrierSpacing = 1;
|
||||||
|
dl_carrierBandwidth = 273;
|
||||||
|
#initialDownlinkBWP
|
||||||
|
#genericParameters
|
||||||
|
initialDLBWPlocationAndBandwidth = 1099; #38.101-1 Table 5.3.2-1
|
||||||
|
#
|
||||||
|
# subcarrierSpacing
|
||||||
|
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||||
|
initialDLBWPsubcarrierSpacing = 1;
|
||||||
|
#pdcch-ConfigCommon
|
||||||
|
initialDLBWPcontrolResourceSetZero = 11;
|
||||||
|
initialDLBWPsearchSpaceZero = 0;
|
||||||
|
|
||||||
|
#uplinkConfigCommon
|
||||||
|
#frequencyInfoUL
|
||||||
|
ul_frequencyBand = 77;
|
||||||
|
#scs-SpecificCarrierList
|
||||||
|
ul_offstToCarrier = 0;
|
||||||
|
# subcarrierSpacing
|
||||||
|
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||||
|
ul_subcarrierSpacing = 1;
|
||||||
|
ul_carrierBandwidth = 273;
|
||||||
|
pMax = 23;
|
||||||
|
#initialUplinkBWP
|
||||||
|
#genericParameters
|
||||||
|
initialULBWPlocationAndBandwidth = 1099;
|
||||||
|
# subcarrierSpacing
|
||||||
|
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||||
|
initialULBWPsubcarrierSpacing = 1;
|
||||||
|
#rach-ConfigCommon
|
||||||
|
#rach-ConfigGeneric
|
||||||
|
prach_ConfigurationIndex = 159;
|
||||||
|
#prach_msg1_FDM
|
||||||
|
#0 = one, 1=two, 2=four, 3=eight
|
||||||
|
prach_msg1_FDM = 0;
|
||||||
|
prach_msg1_FrequencyStart = 0;
|
||||||
|
zeroCorrelationZoneConfig = 0;
|
||||||
|
preambleReceivedTargetPower = -100;
|
||||||
|
#preamblTransMax (0...10) = (3,4,5,6,7,8,10,20,50,100,200)
|
||||||
|
preambleTransMax = 7;
|
||||||
|
#powerRampingStep
|
||||||
|
# 0=dB0,1=dB2,2=dB4,3=dB6
|
||||||
|
powerRampingStep = 2;
|
||||||
|
#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 = 3;
|
||||||
|
#oneHalf (0..15) 4,8,12,16,...60,64
|
||||||
|
ssb_perRACH_OccasionAndCB_PreamblesPerSSB = 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,
|
||||||
|
|
||||||
|
# this is the offset between the last PRACH preamble power and the Msg3 PUSCH, 2 times the field value in dB
|
||||||
|
msg3_DeltaPreamble = 2;
|
||||||
|
p0_NominalWithGrant = -100;
|
||||||
|
|
||||||
|
# pucch-ConfigCommon setup :
|
||||||
|
# pucchGroupHopping
|
||||||
|
# 0 = neither, 1= group hopping, 2=sequence hopping
|
||||||
|
pucchGroupHopping = 0;
|
||||||
|
hoppingId = 0;
|
||||||
|
p0_nominal = -96;
|
||||||
|
# ssb_PositionsInBurs_BitmapPR
|
||||||
|
# 1=short, 2=medium, 3=long
|
||||||
|
ssb_PositionsInBurst_PR = 2;
|
||||||
|
ssb_PositionsInBurst_Bitmap = 0x1;
|
||||||
|
|
||||||
|
# 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 = 5;
|
||||||
|
nrofDownlinkSlots = 3;
|
||||||
|
nrofDownlinkSymbols = 6;
|
||||||
|
nrofUplinkSlots = 1;
|
||||||
|
nrofUplinkSymbols = 4;
|
||||||
|
|
||||||
|
ssPBCH_BlockPower = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
# ------- SCTP definitions
|
||||||
|
SCTP :
|
||||||
|
{
|
||||||
|
# Number of streams to use in input/output
|
||||||
|
SCTP_INSTREAMS = 2;
|
||||||
|
SCTP_OUTSTREAMS = 2;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
////////// AMF parameters:
|
||||||
|
amf_ip_address = ({ ipv4 = "172.21.6.103"; });
|
||||||
|
|
||||||
|
NETWORK_INTERFACES :
|
||||||
|
{
|
||||||
|
GNB_IPV4_ADDRESS_FOR_NG_AMF = "172.21.18.20";
|
||||||
|
GNB_IPV4_ADDRESS_FOR_NGU = "172.21.18.20";
|
||||||
|
GNB_PORT_FOR_S1U = 2152; # Spec 2152
|
||||||
|
};
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
MACRLCs = (
|
||||||
|
{
|
||||||
|
num_cc = 1;
|
||||||
|
tr_s_preference = "local_L1";
|
||||||
|
tr_n_preference = "local_RRC";
|
||||||
|
pusch_TargetSNRx10 = 180;
|
||||||
|
pucch_TargetSNRx10 = 230;
|
||||||
|
ul_bler_target_upper=.35;
|
||||||
|
ul_bler_target_lower=.15;
|
||||||
|
pusch_FailureThres = 100;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
L1s = (
|
||||||
|
{
|
||||||
|
num_cc = 1;
|
||||||
|
tr_n_preference = "local_mac";
|
||||||
|
prach_dtx_threshold = 130
|
||||||
|
pucch0_dtx_threshold = 80;
|
||||||
|
pusch_dtx_threshold = -100;
|
||||||
|
tx_amp_backoff_dB = 3;
|
||||||
|
L1_rx_thread_core = 3;
|
||||||
|
L1_tx_thread_core = 4;
|
||||||
|
phase_compensation = 0; # needs to match O-RU configuration
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
RUs = (
|
||||||
|
{
|
||||||
|
local_rf = "no";
|
||||||
|
nb_tx = 4;
|
||||||
|
nb_rx = 4;
|
||||||
|
att_tx = 0
|
||||||
|
att_rx = 0;
|
||||||
|
bands = [77];
|
||||||
|
max_pdschReferenceSignalPower = -27;
|
||||||
|
max_rxgain = 75;
|
||||||
|
sf_extension = 0;
|
||||||
|
eNB_instances = [0];
|
||||||
|
ru_thread_core = 5;
|
||||||
|
sl_ahead = 5;
|
||||||
|
##beamforming 1x2 matrix: 1 layer x 2 antennas
|
||||||
|
bf_weights = [0x00007fff, 0x0000,0x00007fff, 0x0000];
|
||||||
|
clock_src = "internal";
|
||||||
|
tr_preference = "raw_if4p5"; # important: activate FHI7.2
|
||||||
|
do_precoding = 0; # needs to match O-RU configuration
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
rfsimulator :
|
||||||
|
{
|
||||||
|
serveraddr = "server";
|
||||||
|
serverport = "4043";
|
||||||
|
options = (); #("saviq"); or/and "chanmod"
|
||||||
|
modelname = "AWGN";
|
||||||
|
IQfile = "/tmp/rfsimulator.iqs";
|
||||||
|
};
|
||||||
|
|
||||||
|
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" );
|
||||||
|
|
||||||
|
# preferred integrity algorithms
|
||||||
|
# the first one of the list that an UE supports in chosen
|
||||||
|
# valid values: nia0, nia1, nia2, nia3
|
||||||
|
integrity_algorithms = ( "nia2", "nia0" );
|
||||||
|
|
||||||
|
# setting 'drb_ciphering' to "no" disables ciphering for DRBs, no matter
|
||||||
|
# what 'ciphering_algorithms' configures; same thing for 'drb_integrity'
|
||||||
|
drb_ciphering = "yes";
|
||||||
|
drb_integrity = "no";
|
||||||
|
};
|
||||||
|
|
||||||
|
log_config : {
|
||||||
|
global_log_level = "info";
|
||||||
|
hw_log_level = "info";
|
||||||
|
phy_log_level = "info";
|
||||||
|
mac_log_level = "info";
|
||||||
|
rlc_log_level = "info";
|
||||||
|
pdcp_log_level = "info";
|
||||||
|
rrc_log_level = "info";
|
||||||
|
ngap_log_level = "info";
|
||||||
|
f1ap_log_level = "info";
|
||||||
|
};
|
||||||
|
|
||||||
|
fhi_72 = {
|
||||||
|
dpdk_devices = ("0000:c3:11.0", "0000:c3:11.1");
|
||||||
|
system_core = 0;
|
||||||
|
io_core = 1;
|
||||||
|
worker_cores = (2);
|
||||||
|
du_addr = ("76:76:64:6e:00:01", "76:76:64:6e:00:01");
|
||||||
|
ru_addr = ("98:ae:71:01:c5:eb", "98:ae:71:01:c5:eb");
|
||||||
|
mtu = 9216; # check if xran uses this properly
|
||||||
|
fh_config = ({
|
||||||
|
Tadv_cp_dl = 125;
|
||||||
|
T2a_cp_dl = (285, 429); # (min, max)
|
||||||
|
T2a_cp_ul = (285, 429); # (min, max)
|
||||||
|
T2a_up = (125, 428); # (min, max)
|
||||||
|
Ta3 = (130, 170); # (min, max)
|
||||||
|
T1a_cp_dl = (285, 470); # (min, max)
|
||||||
|
T1a_cp_ul = (285, 429); # (min, max)
|
||||||
|
T1a_up = (125, 350); # (min, max)
|
||||||
|
Ta4 = (110, 180); # (min, max)
|
||||||
|
ru_config = {
|
||||||
|
iq_width = 9;
|
||||||
|
iq_width_prach = 9;
|
||||||
|
};
|
||||||
|
prach_config = {
|
||||||
|
eAxC_offset = 4;
|
||||||
|
};
|
||||||
|
});
|
||||||
|
};
|
||||||
@@ -0,0 +1,296 @@
|
|||||||
|
Active_gNBs = ( "gNB-OAI");
|
||||||
|
# Asn1_verbosity, choice in: none, info, annoying
|
||||||
|
Asn1_verbosity = "none";
|
||||||
|
|
||||||
|
gNBs =
|
||||||
|
(
|
||||||
|
{
|
||||||
|
////////// Identification parameters:
|
||||||
|
gNB_ID = 0xe00;
|
||||||
|
gNB_name = "gNB-OAI";
|
||||||
|
|
||||||
|
// Tracking area code, 0x0000 and 0xfffe are reserved values
|
||||||
|
tracking_area_code = 1;
|
||||||
|
plmn_list = ({ mcc = 208; mnc = 97; mnc_length = 2; snssaiList = ( { sst = 1; }); });
|
||||||
|
|
||||||
|
nr_cellid = 1;
|
||||||
|
|
||||||
|
////////// Physical parameters:
|
||||||
|
|
||||||
|
pdsch_AntennaPorts_XP = 2;
|
||||||
|
pdsch_AntennaPorts_N1 = 1;
|
||||||
|
maxMIMO_layers = 2;
|
||||||
|
pusch_AntennaPorts = 4;
|
||||||
|
do_CSIRS = 1;
|
||||||
|
do_SRS = 0 ;
|
||||||
|
sib1_tda = 15;
|
||||||
|
# force_UL256qam_off = 1;
|
||||||
|
|
||||||
|
pdcch_ConfigSIB1 = (
|
||||||
|
{
|
||||||
|
controlResourceSetZero = 11;
|
||||||
|
searchSpaceZero = 0;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
servingCellConfigCommon = (
|
||||||
|
{
|
||||||
|
#spCellConfigCommon
|
||||||
|
|
||||||
|
physCellId = 0;
|
||||||
|
# n_TimingAdvanceOffset = 0;
|
||||||
|
# downlinkConfigCommon
|
||||||
|
#frequencyInfoDL
|
||||||
|
# this is 3450.72 MHz (center frequency)
|
||||||
|
absoluteFrequencySSB = 623328;
|
||||||
|
dl_frequencyBand = 78;
|
||||||
|
# this is 3401.58 MHz
|
||||||
|
dl_absoluteFrequencyPointA = 620052;
|
||||||
|
#scs-SpecificCarrierList
|
||||||
|
dl_offstToCarrier = 0;
|
||||||
|
# subcarrierSpacing
|
||||||
|
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||||
|
dl_subcarrierSpacing = 1;
|
||||||
|
dl_carrierBandwidth = 273;
|
||||||
|
#initialDownlinkBWP
|
||||||
|
#genericParameters
|
||||||
|
initialDLBWPlocationAndBandwidth = 1099; #38.101-1 Table 5.3.2-1
|
||||||
|
#
|
||||||
|
# subcarrierSpacing
|
||||||
|
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||||
|
initialDLBWPsubcarrierSpacing = 1;
|
||||||
|
#pdcch-ConfigCommon
|
||||||
|
initialDLBWPcontrolResourceSetZero = 11;
|
||||||
|
initialDLBWPsearchSpaceZero = 0;
|
||||||
|
|
||||||
|
#uplinkConfigCommon
|
||||||
|
#frequencyInfoUL
|
||||||
|
ul_frequencyBand = 78;
|
||||||
|
#scs-SpecificCarrierList
|
||||||
|
ul_offstToCarrier = 0;
|
||||||
|
# subcarrierSpacing
|
||||||
|
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||||
|
ul_subcarrierSpacing = 1;
|
||||||
|
ul_carrierBandwidth = 273;
|
||||||
|
pMax = 23;
|
||||||
|
#initialUplinkBWP
|
||||||
|
#genericParameters
|
||||||
|
initialULBWPlocationAndBandwidth = 1099;
|
||||||
|
# subcarrierSpacing
|
||||||
|
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||||
|
initialULBWPsubcarrierSpacing = 1;
|
||||||
|
#rach-ConfigCommon
|
||||||
|
#rach-ConfigGeneric
|
||||||
|
prach_ConfigurationIndex = 151;
|
||||||
|
#prach_msg1_FDM
|
||||||
|
#0 = one, 1=two, 2=four, 3=eight
|
||||||
|
prach_msg1_FDM = 0;
|
||||||
|
prach_msg1_FrequencyStart = 0;
|
||||||
|
zeroCorrelationZoneConfig = 0;
|
||||||
|
preambleReceivedTargetPower = -100;
|
||||||
|
#preamblTransMax (0...10) = (3,4,5,6,7,8,10,20,50,100,200)
|
||||||
|
preambleTransMax = 8;
|
||||||
|
#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 = 3;
|
||||||
|
#oneHalf (0..15) 4,8,12,16,...60,64
|
||||||
|
ssb_perRACH_OccasionAndCB_PreamblesPerSSB = 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,
|
||||||
|
|
||||||
|
# this is the offset between the last PRACH preamble power and the Msg3 PUSCH, 2 times the field value in dB
|
||||||
|
msg3_DeltaPreamble = 2;
|
||||||
|
p0_NominalWithGrant = -96;
|
||||||
|
|
||||||
|
# pucch-ConfigCommon setup :
|
||||||
|
# pucchGroupHopping
|
||||||
|
# 0 = neither, 1= group hopping, 2=sequence hopping
|
||||||
|
pucchGroupHopping = 0;
|
||||||
|
hoppingId = 0;
|
||||||
|
p0_nominal = -96;
|
||||||
|
# ssb_PositionsInBurs_BitmapPR
|
||||||
|
# 1=short, 2=medium, 3=long
|
||||||
|
ssb_PositionsInBurst_PR = 2;
|
||||||
|
ssb_PositionsInBurst_Bitmap = 0x1;
|
||||||
|
|
||||||
|
# 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;
|
||||||
|
nrofDownlinkSymbols = 6;
|
||||||
|
nrofUplinkSlots = 2;
|
||||||
|
nrofUplinkSymbols = 4;
|
||||||
|
|
||||||
|
ssPBCH_BlockPower = -15;
|
||||||
|
}
|
||||||
|
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
# ------- SCTP definitions
|
||||||
|
SCTP :
|
||||||
|
{
|
||||||
|
# Number of streams to use in input/output
|
||||||
|
SCTP_INSTREAMS = 2;
|
||||||
|
SCTP_OUTSTREAMS = 2;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
////////// AMF parameters:
|
||||||
|
amf_ip_address = ({ ipv4 = "172.21.6.103"; });
|
||||||
|
|
||||||
|
NETWORK_INTERFACES :
|
||||||
|
{
|
||||||
|
GNB_IPV4_ADDRESS_FOR_NG_AMF = "172.21.18.20";
|
||||||
|
GNB_IPV4_ADDRESS_FOR_NGU = "172.21.18.20";
|
||||||
|
GNB_PORT_FOR_S1U = 2152; # Spec 2152
|
||||||
|
};
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
MACRLCs = (
|
||||||
|
{
|
||||||
|
num_cc = 1;
|
||||||
|
tr_s_preference = "local_L1";
|
||||||
|
tr_n_preference = "local_RRC";
|
||||||
|
pusch_TargetSNRx10 = 100;
|
||||||
|
pucch_TargetSNRx10 = 200;
|
||||||
|
dl_bler_target_upper=.35;
|
||||||
|
dl_bler_target_lower=.15;
|
||||||
|
ul_bler_target_upper=.35;
|
||||||
|
ul_bler_target_lower=.15;
|
||||||
|
pusch_FailureThres = 1000;
|
||||||
|
ul_max_mcs = 28;
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
L1s = (
|
||||||
|
{
|
||||||
|
num_cc = 1;
|
||||||
|
tr_n_preference = "local_mac";
|
||||||
|
prach_dtx_threshold = 90;
|
||||||
|
pucch0_dtx_threshold = 80;
|
||||||
|
pusch_dtx_threshold = 10;
|
||||||
|
max_ldpc_iterations = 15;
|
||||||
|
tx_amp_backoff_dB = 12; # needs to match O-RU configuration
|
||||||
|
L1_rx_thread_core = 3;
|
||||||
|
L1_tx_thread_core = 4;
|
||||||
|
phase_compensation = 0; # needs to match O-RU configuration
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
RUs = (
|
||||||
|
{
|
||||||
|
local_rf = "no";
|
||||||
|
nb_tx = 4;
|
||||||
|
nb_rx = 4;
|
||||||
|
att_tx = 0
|
||||||
|
att_rx = 0;
|
||||||
|
bands = [78];
|
||||||
|
max_pdschReferenceSignalPower = -27;
|
||||||
|
max_rxgain = 75;
|
||||||
|
sf_extension = 0;
|
||||||
|
eNB_instances = [0];
|
||||||
|
ru_thread_core = 5;
|
||||||
|
sl_ahead = 10;
|
||||||
|
##beamforming 1x2 matrix: 1 layer x 2 antennas
|
||||||
|
bf_weights = [0x00007fff, 0x0000,0x00007fff, 0x0000];
|
||||||
|
tr_preference = "raw_if4p5"; # important: activate FHI7.2
|
||||||
|
do_precoding = 0; # needs to match O-RU configuration
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
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" );
|
||||||
|
|
||||||
|
# preferred integrity algorithms
|
||||||
|
# the first one of the list that an UE supports in chosen
|
||||||
|
# valid values: nia0, nia1, nia2, nia3
|
||||||
|
integrity_algorithms = ( "nia2", "nia0" );
|
||||||
|
|
||||||
|
# setting 'drb_ciphering' to "no" disables ciphering for DRBs, no matter
|
||||||
|
# what 'ciphering_algorithms' configures; same thing for 'drb_integrity'
|
||||||
|
drb_ciphering = "yes";
|
||||||
|
drb_integrity = "no";
|
||||||
|
};
|
||||||
|
|
||||||
|
log_config :
|
||||||
|
{
|
||||||
|
global_log_level ="info";
|
||||||
|
hw_log_level ="info";
|
||||||
|
phy_log_level ="info";
|
||||||
|
mac_log_level ="info";
|
||||||
|
rlc_log_level ="info";
|
||||||
|
pdcp_log_level ="info";
|
||||||
|
rrc_log_level ="info";
|
||||||
|
ngap_log_level ="info";
|
||||||
|
f1ap_log_level ="info";
|
||||||
|
};
|
||||||
|
|
||||||
|
fhi_72 = {
|
||||||
|
dpdk_devices = ("0000:c3:11.0", "0000:c3:11.1");
|
||||||
|
system_core = 0;
|
||||||
|
io_core = 1;
|
||||||
|
worker_cores = (2);
|
||||||
|
du_addr = ("00:11:22:33:44:66", "00:11:22:33:44:67");
|
||||||
|
ru_addr = ("70:b3:d5:e1:5b:81", "70:b3:d5:e1:5b:81");
|
||||||
|
mtu = 9216;
|
||||||
|
file_prefix = "fhi_72";
|
||||||
|
fh_config = ({
|
||||||
|
Tadv_cp_dl = 125;
|
||||||
|
T2a_cp_dl = (259, 500);
|
||||||
|
T2a_cp_ul = (25, 500);
|
||||||
|
T2a_up = (134, 375);
|
||||||
|
Ta3 = (152, 160);
|
||||||
|
T1a_cp_dl = (419, 470);
|
||||||
|
T1a_cp_ul = (285, 336);
|
||||||
|
T1a_up = (294, 345);
|
||||||
|
Ta4 = (0, 200);
|
||||||
|
ru_config = {
|
||||||
|
iq_width = 9;
|
||||||
|
iq_width_prach = 9;
|
||||||
|
};
|
||||||
|
prach_config = {
|
||||||
|
eAxC_offset = 4;
|
||||||
|
};
|
||||||
|
});
|
||||||
|
};
|
||||||
+6
-2
@@ -48,6 +48,7 @@ import helpreadme as HELP
|
|||||||
import constants as CONST
|
import constants as CONST
|
||||||
import cls_cluster as OC
|
import cls_cluster as OC
|
||||||
import cls_cmd
|
import cls_cmd
|
||||||
|
import cls_module
|
||||||
#-----------------------------------------------------------
|
#-----------------------------------------------------------
|
||||||
# Class Declaration
|
# Class Declaration
|
||||||
#-----------------------------------------------------------
|
#-----------------------------------------------------------
|
||||||
@@ -75,6 +76,7 @@ class EPCManagement():
|
|||||||
self.OCRegistry = "default-route-openshift-image-registry.apps.oai.cs.eurecom.fr/"
|
self.OCRegistry = "default-route-openshift-image-registry.apps.oai.cs.eurecom.fr/"
|
||||||
self.OCUserName = ''
|
self.OCUserName = ''
|
||||||
self.OCPassword = ''
|
self.OCPassword = ''
|
||||||
|
self.cnID = ''
|
||||||
self.imageToPull = ''
|
self.imageToPull = ''
|
||||||
self.eNBSourceCodePath = ''
|
self.eNBSourceCodePath = ''
|
||||||
|
|
||||||
@@ -298,7 +300,8 @@ class EPCManagement():
|
|||||||
html_cell += '(' + res4.group('date') + ')'
|
html_cell += '(' + res4.group('date') + ')'
|
||||||
html_cell += '\n'
|
html_cell += '\n'
|
||||||
elif re.match('OC-OAI-CN5G', self.Type, re.IGNORECASE):
|
elif re.match('OC-OAI-CN5G', self.Type, re.IGNORECASE):
|
||||||
succeeded, report = OC.OC_deploy_CN(mySSH, self.OCUserName, self.OCPassword)
|
cn = cls_module.Module_UE(self.cnID)
|
||||||
|
succeeded, report = OC.OC_deploy_CN(mySSH, self.OCUserName, self.OCPassword, cn.getNamespace(), cn.getCNPath())
|
||||||
if not succeeded:
|
if not succeeded:
|
||||||
HTML.CreateHtmlTestRow('N/A', 'KO', report)
|
HTML.CreateHtmlTestRow('N/A', 'KO', report)
|
||||||
HTML.CreateHtmlTabFooter(False)
|
HTML.CreateHtmlTabFooter(False)
|
||||||
@@ -575,7 +578,8 @@ class EPCManagement():
|
|||||||
mySSH.copyin(f'{self.SourceCodePath}/logs/test_logs_CN.zip','test_logs_CN.zip')
|
mySSH.copyin(f'{self.SourceCodePath}/logs/test_logs_CN.zip','test_logs_CN.zip')
|
||||||
logging.debug(message)
|
logging.debug(message)
|
||||||
elif re.match('OC-OAI-CN5G', self.Type, re.IGNORECASE):
|
elif re.match('OC-OAI-CN5G', self.Type, re.IGNORECASE):
|
||||||
succeeded, report = OC.OC_undeploy_CN(mySSH, self.OCUserName, self.OCPassword)
|
cn = cls_module.Module_UE(self.cnID)
|
||||||
|
succeeded, report = OC.OC_undeploy_CN(mySSH, self.OCUserName, self.OCPassword, cn.getNamespace(), cn.getCNPath())
|
||||||
if not succeeded:
|
if not succeeded:
|
||||||
HTML.CreateHtmlTestRow('N/A', 'KO', report)
|
HTML.CreateHtmlTestRow('N/A', 'KO', report)
|
||||||
HTML.CreateHtmlTabFooter(False)
|
HTML.CreateHtmlTabFooter(False)
|
||||||
|
|||||||
@@ -337,11 +337,13 @@ def GetParametersFromXML(action):
|
|||||||
string_field = test.findtext('args')
|
string_field = test.findtext('args')
|
||||||
if (string_field is not None):
|
if (string_field is not None):
|
||||||
EPC.cfgDeploy = string_field
|
EPC.cfgDeploy = string_field
|
||||||
|
EPC.cnID = test.findtext('cn_id')
|
||||||
|
|
||||||
elif action == 'Terminate_5GCN':
|
elif action == 'Terminate_5GCN':
|
||||||
string_field = test.findtext('args')
|
string_field = test.findtext('args')
|
||||||
if (string_field is not None):
|
if (string_field is not None):
|
||||||
EPC.cfgUnDeploy = string_field
|
EPC.cfgUnDeploy = string_field
|
||||||
|
EPC.cnID = test.findtext('cn_id')
|
||||||
|
|
||||||
elif action == 'Deploy_Object' or action == 'Undeploy_Object':
|
elif action == 'Deploy_Object' or action == 'Undeploy_Object':
|
||||||
eNB_instance=test.findtext('eNB_instance')
|
eNB_instance=test.findtext('eNB_instance')
|
||||||
|
|||||||
@@ -0,0 +1,143 @@
|
|||||||
|
<!--
|
||||||
|
|
||||||
|
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-5g-fhi72-vvdn</htmlTabRef>
|
||||||
|
<htmlTabName>100 MHz TDD SA VVDN</htmlTabName>
|
||||||
|
<htmlTabIcon>tasks</htmlTabIcon>
|
||||||
|
<repeatCount>1</repeatCount>
|
||||||
|
<TestCaseRequestedList>
|
||||||
|
200000
|
||||||
|
110000
|
||||||
|
120000
|
||||||
|
102000
|
||||||
|
102001
|
||||||
|
100100
|
||||||
|
100010
|
||||||
|
100020
|
||||||
|
100030
|
||||||
|
100040
|
||||||
|
103000
|
||||||
|
100002
|
||||||
|
130000
|
||||||
|
</TestCaseRequestedList>
|
||||||
|
<TestCaseExclusionList></TestCaseExclusionList>
|
||||||
|
|
||||||
|
<testCase id="200000">
|
||||||
|
<class>Custom_Command</class>
|
||||||
|
<desc>Setup sriov and network interfaces VVDN</desc>
|
||||||
|
<node>cacofonix</node>
|
||||||
|
<command>/opt/FHI7.2/setup_sriov_vvdn.sh</command>
|
||||||
|
<command_fail>yes</command_fail>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="110000">
|
||||||
|
<class>Pull_Cluster_Image</class>
|
||||||
|
<desc>Pull Images from Cluster</desc>
|
||||||
|
<oc_project>oaicicd-ran</oc_project>
|
||||||
|
<images_to_pull>oai-gnb-fhi72</images_to_pull>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="120000">
|
||||||
|
<class>Deploy_Object</class>
|
||||||
|
<desc>Deploy gNB (TDD/Band78/100MHz/VVDN) in a container</desc>
|
||||||
|
<yaml_path>ci-scripts/yaml_files/sa_fhi_7.2_vvdn_gnb</yaml_path>
|
||||||
|
<eNB_instance>0</eNB_instance>
|
||||||
|
<eNB_serverId>0</eNB_serverId>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="102001">
|
||||||
|
<class>Attach_UE</class>
|
||||||
|
<desc>Attach UE</desc>
|
||||||
|
<id>up2-fhi72</id>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="100100">
|
||||||
|
<class>Ping</class>
|
||||||
|
<desc>Ping: 100 pings in 10 sec</desc>
|
||||||
|
<id>up2-fhi72</id>
|
||||||
|
<ping_args>-c 100 -i 0.1 172.21.6.104</ping_args>
|
||||||
|
<ping_packetloss_threshold>1</ping_packetloss_threshold>
|
||||||
|
<ping_rttavg_threshold>15</ping_rttavg_threshold>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="100010">
|
||||||
|
<class>Iperf</class>
|
||||||
|
<desc>iperf (DL/300Mbps/UDP)(30 sec)(multi-ue profile)</desc>
|
||||||
|
<iperf_args>-u -b 300M -t 30 -R</iperf_args>
|
||||||
|
<id>up2-fhi72</id>
|
||||||
|
<iperf_packetloss_threshold>20</iperf_packetloss_threshold>
|
||||||
|
<iperf_bitrate_threshold>80</iperf_bitrate_threshold>
|
||||||
|
<iperf_profile>balanced</iperf_profile>
|
||||||
|
<svr_id>oc-cn5g-20897</svr_id>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="100030">
|
||||||
|
<class>Iperf</class>
|
||||||
|
<desc>iperf (DL/TCP)(30 sec)(multi-ue profile)</desc>
|
||||||
|
<iperf_args>-t 30 -R</iperf_args>
|
||||||
|
<id>up2-fhi72</id>
|
||||||
|
<iperf_tcp_rate_target>40</iperf_tcp_rate_target>
|
||||||
|
<svr_id>oc-cn5g-20897</svr_id>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="100020">
|
||||||
|
<class>Iperf</class>
|
||||||
|
<desc>iperf (UL/70Mbps/UDP)(30 sec)(multi-ue profile)</desc>
|
||||||
|
<iperf_args>-u -b 70M -t 30</iperf_args>
|
||||||
|
<id>up2-fhi72</id>
|
||||||
|
<iperf_packetloss_threshold>20</iperf_packetloss_threshold>
|
||||||
|
<iperf_bitrate_threshold>80</iperf_bitrate_threshold>
|
||||||
|
<iperf_profile>balanced</iperf_profile>
|
||||||
|
<svr_id>oc-cn5g-20897</svr_id>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="100040">
|
||||||
|
<class>Iperf</class>
|
||||||
|
<desc>iperf (UL/TCP)(30 sec)(multi-ue profile)</desc>
|
||||||
|
<iperf_args>-t 30</iperf_args>
|
||||||
|
<id>up2-fhi72</id>
|
||||||
|
<iperf_tcp_rate_target>40</iperf_tcp_rate_target>
|
||||||
|
<svr_id>oc-cn5g-20897</svr_id>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="103000">
|
||||||
|
<class>Detach_UE</class>
|
||||||
|
<desc>Detach UE</desc>
|
||||||
|
<id>up2-fhi72</id>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="100002">
|
||||||
|
<class>IdleSleep</class>
|
||||||
|
<desc>Sleep</desc>
|
||||||
|
<idle_sleep_time_in_sec>5</idle_sleep_time_in_sec>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="130000">
|
||||||
|
<class>Undeploy_Object</class>
|
||||||
|
<desc>Undeploy gNB</desc>
|
||||||
|
<yaml_path>ci-scripts/yaml_files/sa_fhi_7.2_vvdn_gnb</yaml_path>
|
||||||
|
<eNB_instance>0</eNB_instance>
|
||||||
|
<eNB_serverId>0</eNB_serverId>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
</testCaseList>
|
||||||
@@ -0,0 +1,63 @@
|
|||||||
|
<!--
|
||||||
|
|
||||||
|
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>cleanup-fhi72-vvdn</htmlTabRef>
|
||||||
|
<htmlTabName>Cleanup VVDN</htmlTabName>
|
||||||
|
<htmlTabIcon>trash</htmlTabIcon>
|
||||||
|
<TestCaseRequestedList>
|
||||||
|
555555
|
||||||
|
666666
|
||||||
|
777777
|
||||||
|
888888
|
||||||
|
</TestCaseRequestedList>
|
||||||
|
<TestCaseExclusionList></TestCaseExclusionList>
|
||||||
|
|
||||||
|
<testCase id="555555">
|
||||||
|
<class>Detach_UE</class>
|
||||||
|
<desc>Detach UE</desc>
|
||||||
|
<id>up2-fhi72</id>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="666666">
|
||||||
|
<class>Undeploy_Object</class>
|
||||||
|
<desc>Undeploy gNB</desc>
|
||||||
|
<yaml_path>ci-scripts/yaml_files/sa_fhi_7.2_vvdn_gnb</yaml_path>
|
||||||
|
<eNB_instance>0</eNB_instance>
|
||||||
|
<eNB_serverId>0</eNB_serverId>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="777777">
|
||||||
|
<class>Clean_Test_Server_Images</class>
|
||||||
|
<desc>Clean Test Images on Test Server</desc>
|
||||||
|
<test_svr_id>0</test_svr_id>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
<testCase id="888888">
|
||||||
|
<class>Custom_Command</class>
|
||||||
|
<desc>Set CPU to idle state, set kernel parameters to default values</desc>
|
||||||
|
<node>cacofonix</node>
|
||||||
|
<command>/opt/FHI7.2/setup_cleanup.sh</command>
|
||||||
|
<command_fail>yes</command_fail>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
</testCaseList>
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
<!--
|
||||||
|
|
||||||
|
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>cn5g-closure</htmlTabRef>
|
||||||
|
<htmlTabName>CN5G-Closure</htmlTabName>
|
||||||
|
<htmlTabIcon>log-out</htmlTabIcon>
|
||||||
|
<TestCaseRequestedList>
|
||||||
|
060000
|
||||||
|
</TestCaseRequestedList>
|
||||||
|
<TestCaseExclusionList></TestCaseExclusionList>
|
||||||
|
|
||||||
|
<testCase id="060000">
|
||||||
|
<class>Terminate_5GCN</class>
|
||||||
|
<desc>Terminate 5G Core</desc>
|
||||||
|
<cn_id>oc-cn5g-20897</cn_id>
|
||||||
|
</testCase>
|
||||||
|
|
||||||
|
</testCaseList>
|
||||||
@@ -0,0 +1,38 @@
|
|||||||
|
<!--
|
||||||
|
|
||||||
|
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>cn5g-start-tab</htmlTabRef>
|
||||||
|
<htmlTabName>CN5G-Start</htmlTabName>
|
||||||
|
<htmlTabIcon>log-in</htmlTabIcon>
|
||||||
|
<TestCaseRequestedList>
|
||||||
|
000100
|
||||||
|
</TestCaseRequestedList>
|
||||||
|
<TestCaseExclusionList>
|
||||||
|
</TestCaseExclusionList>
|
||||||
|
|
||||||
|
<testCase id="000100">
|
||||||
|
<class>Initialize_5GCN</class>
|
||||||
|
<desc>Initialize 5G Core</desc>
|
||||||
|
<cn_id>oc-cn5g-20897</cn_id>
|
||||||
|
</testCase>
|
||||||
|
</testCaseList>
|
||||||
@@ -32,6 +32,7 @@
|
|||||||
<testCase id="060000">
|
<testCase id="060000">
|
||||||
<class>Terminate_5GCN</class>
|
<class>Terminate_5GCN</class>
|
||||||
<desc>Terminate 5G Core</desc>
|
<desc>Terminate 5G Core</desc>
|
||||||
|
<cn_id>oc-cn5g</cn_id>
|
||||||
</testCase>
|
</testCase>
|
||||||
|
|
||||||
</testCaseList>
|
</testCaseList>
|
||||||
|
|||||||
@@ -33,5 +33,6 @@
|
|||||||
<testCase id="000100">
|
<testCase id="000100">
|
||||||
<class>Initialize_5GCN</class>
|
<class>Initialize_5GCN</class>
|
||||||
<desc>Initialize 5G Core</desc>
|
<desc>Initialize 5G Core</desc>
|
||||||
|
<cn_id>oc-cn5g</cn_id>
|
||||||
</testCase>
|
</testCase>
|
||||||
</testCaseList>
|
</testCaseList>
|
||||||
|
|||||||
@@ -0,0 +1,15 @@
|
|||||||
|
<table style="border-collapse: collapse; border: none;">
|
||||||
|
<tr style="border-collapse: collapse; border: none;">
|
||||||
|
<td style="border-collapse: collapse; border: none;">
|
||||||
|
<a href="http://www.openairinterface.org/">
|
||||||
|
<img src="../../../doc/images/oai_final_logo.png" alt="" border=3 height=50 width=150>
|
||||||
|
</img>
|
||||||
|
</a>
|
||||||
|
</td>
|
||||||
|
<td style="border-collapse: collapse; border: none; vertical-align: center;">
|
||||||
|
<b><font size = "5">OAI O-RAN 7.2 Front-haul Docker Compose</font></b>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
For instructions on OAI gNB Docker deployment with FH 7.2 RU, please refer to the [README](../sa_fhi_7.2_vvdn_gnb/README.md).
|
||||||
@@ -0,0 +1,40 @@
|
|||||||
|
services:
|
||||||
|
oai-gnb:
|
||||||
|
image: oai-gnb-fhi72:latest
|
||||||
|
cap_add:
|
||||||
|
- SYS_ADMIN
|
||||||
|
- IPC_LOCK
|
||||||
|
- SYS_NICE
|
||||||
|
cap_drop:
|
||||||
|
- ALL
|
||||||
|
container_name: oai-gnb
|
||||||
|
environment:
|
||||||
|
TZ: Europe/Paris
|
||||||
|
USE_ADDITIONAL_OPTIONS: --sa --thread-pool 6,7,8,9
|
||||||
|
devices:
|
||||||
|
- /dev/vfio:/dev/vfio/
|
||||||
|
volumes:
|
||||||
|
- ../../conf_files/gnb.sa.band78.273prb.fhi72.4x4-benetel550.conf:/opt/oai-gnb/etc/gnb.conf
|
||||||
|
- /dev/hugepages:/dev/hugepages
|
||||||
|
# Please change these values based on your system
|
||||||
|
cpuset: "0,1,2,3,4,5,6,7,8,9"
|
||||||
|
networks:
|
||||||
|
oai-net:
|
||||||
|
ipv4_address: 172.21.18.20
|
||||||
|
healthcheck:
|
||||||
|
test: /bin/bash -c "pgrep nr-softmodem"
|
||||||
|
interval: 10s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 5
|
||||||
|
networks:
|
||||||
|
oai-net:
|
||||||
|
driver: macvlan
|
||||||
|
name: oai-net
|
||||||
|
ipam:
|
||||||
|
config:
|
||||||
|
- subnet: "172.21.16.0/22"
|
||||||
|
ip_range: "172.21.18.20/32"
|
||||||
|
gateway: "172.21.19.254"
|
||||||
|
driver_opts:
|
||||||
|
com.docker.network.bridge.name: "oai-net"
|
||||||
|
parent: ens7f0
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
set -e
|
||||||
|
sudo cpupower idle-set -E > /dev/null
|
||||||
|
sudo sysctl kernel.sched_rt_runtime_us=950000
|
||||||
|
sudo sysctl kernel.timer_migration=1
|
||||||
|
exit 0
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
set -e
|
||||||
|
sudo cpupower idle-set -D 0 > /dev/null
|
||||||
|
sudo sysctl kernel.sched_rt_runtime_us=-1
|
||||||
|
sudo sysctl kernel.timer_migration=0
|
||||||
|
sudo ethtool -G ens7f1 rx 8160
|
||||||
|
sudo ethtool -G ens7f1 tx 8160
|
||||||
|
sudo ifconfig ens7f1 mtu 9216
|
||||||
|
sudo sh -c 'echo 0 > /sys/class/net/ens7f1/device/sriov_numvfs'
|
||||||
|
sudo sh -c 'echo 2 > /sys/class/net/ens7f1/device/sriov_numvfs'
|
||||||
|
sudo modprobe -r iavf
|
||||||
|
sudo modprobe iavf
|
||||||
|
# this next 2 lines is for C/U planes
|
||||||
|
sudo ip link set ens7f1 vf 0 mac 00:11:22:33:44:66 vlan 3 qos 0 spoofchk off mtu 9216
|
||||||
|
sudo ip link set ens7f1 vf 1 mac 00:11:22:33:44:67 vlan 3 qos 0 spoofchk off mtu 9216
|
||||||
|
sleep 1
|
||||||
|
# These are the DPDK bindings for C/U-planes on vlan 3
|
||||||
|
sudo /usr/local/bin/dpdk-devbind.py --unbind c3:11.0
|
||||||
|
sudo /usr/local/bin/dpdk-devbind.py --unbind c3:11.1
|
||||||
|
sudo modprobe vfio-pci
|
||||||
|
sudo /usr/local/bin/dpdk-devbind.py --bind vfio-pci c3:11.0
|
||||||
|
sudo /usr/local/bin/dpdk-devbind.py --bind vfio-pci c3:11.1
|
||||||
|
exit 0
|
||||||
+15
-15
@@ -14,35 +14,35 @@
|
|||||||
|
|
||||||

|

|
||||||
|
|
||||||
This docker-compose is designed to use `OAI-gNB` with a 7.2 compatible Radio Unit. Before using this docker compose you have to configure
|
This docker-compose is designed to use `OAI-gNB` with a 7.2 compatible Radio Unit. Before using this docker compose you have to configure
|
||||||
the host machine as per the [ORAN_FHI7.2_Tutorial](../../../doc/ORAN_FHI7.2_Tutorial.md). The container image used by the docker compose file is tested only on `Ubuntu 22.04` docker host.
|
the host machine as per the [ORAN_FHI7.2_Tutorial](../../../doc/ORAN_FHI7.2_Tutorial.md). The container image used by the docker compose file is tested only on `Ubuntu 22.04` and `RHEL 9.4` docker host.
|
||||||
|
|
||||||
## Build Image (Optional)
|
## Build Image (Optional)
|
||||||
|
|
||||||
Refer to [OAI Docker/Podman Build and Usage Procedures](../../../docker/README.md)
|
Refer to [OAI Docker/Podman Build and Usage Procedures](../../../docker/README.md)
|
||||||
|
|
||||||
## Configure Networking
|
## Configure Networking
|
||||||
|
|
||||||
### SR-IOV Virtual Functions (VFs)
|
### SR-IOV Virtual Functions (VFs)
|
||||||
|
|
||||||
In docker-compose environment there is no automated method
|
In docker-compose environment there is no automated method
|
||||||
to configure the VFs on the fly. The user will have to manually configure
|
to configure the VFs on the fly. The user will have to manually configure
|
||||||
C/U plane VFs before starting the container `OAI-gNB`.
|
C/U plane VFs before starting the container `OAI-gNB`.
|
||||||
|
|
||||||
You can follow the step
|
You can follow the step
|
||||||
[configure-network-interfaces-and-dpdk-vfs](../../../doc/ORAN_FHI7.2_Tutorial.md#configure-network-interfaces-and-dpdk-vfs).
|
[configure-network-interfaces-and-dpdk-vfs](../../../doc/ORAN_FHI7.2_Tutorial.md#configure-network-interfaces-and-dpdk-vfs).
|
||||||
|
|
||||||
### Interface towards AMF (N2)
|
### Interface towards AMF (N2)
|
||||||
|
|
||||||
For `N2` interface we are using `macvlan` driver of docker.
|
For `N2` interface we are using `macvlan` driver of docker.
|
||||||
|
|
||||||
You can use the `bridge` driver, in situation
|
You can use the `bridge` driver, in situation
|
||||||
|
|
||||||
- When the core network is running on the same machine
|
- When the core network is running on the same machine
|
||||||
- or different machine but you have configured
|
- or different machine but you have configured
|
||||||
needed `ip route` and forwarding to access the core network from RAN host.
|
needed `ip route` and forwarding to access the core network from RAN host.
|
||||||
|
|
||||||
To configure docker `macvlan` network
|
To configure docker `macvlan` network
|
||||||
you need to choose `ipam.config` and `driver_opts.parent` are per your environment
|
you need to choose `ipam.config` and `driver_opts.parent` are per your environment
|
||||||
|
|
||||||
```
|
```
|
||||||
@@ -59,7 +59,7 @@ you need to choose `ipam.config` and `driver_opts.parent` are per your environme
|
|||||||
parent: enp193s0f0
|
parent: enp193s0f0
|
||||||
```
|
```
|
||||||
|
|
||||||
To configure `bridge` network you need to choose `ipam.config.subnet` as per your environment.
|
To configure `bridge` network you need to choose `ipam.config.subnet` as per your environment.
|
||||||
|
|
||||||
```
|
```
|
||||||
oai-net:
|
oai-net:
|
||||||
@@ -74,7 +74,7 @@ To configure `bridge` network you need to choose `ipam.config.subnet` as per you
|
|||||||
|
|
||||||
## Deploy OAI-gNB Container
|
## Deploy OAI-gNB Container
|
||||||
|
|
||||||
The [configuration file](../../../targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.273prb.fhi72.4x4-benetel650.conf) used by docker compose is configured for Benetel 650 RU (RAN650-1v1.0.4-dda1bf5).
|
The [configuration file](../../conf_files/gnb.sa.band77.273prb.fhi72.4x4-vvdn.conf) used by docker compose is configured for VVDN RU.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
docker-compose up -d
|
docker-compose up -d
|
||||||
+11
-5
@@ -1,17 +1,23 @@
|
|||||||
services:
|
services:
|
||||||
oai-gnb:
|
oai-gnb:
|
||||||
image: oai-gnb-fhi72:latest
|
image: oai-gnb-fhi72:latest
|
||||||
privileged: true
|
cap_add:
|
||||||
|
- SYS_ADMIN
|
||||||
|
- IPC_LOCK
|
||||||
|
- SYS_NICE
|
||||||
|
cap_drop:
|
||||||
|
- ALL
|
||||||
container_name: oai-gnb
|
container_name: oai-gnb
|
||||||
environment:
|
environment:
|
||||||
TZ: Europe/Paris
|
TZ: Europe/Paris
|
||||||
USE_ADDITIONAL_OPTIONS: --sa --thread-pool 13,14,15,16,17,18
|
USE_ADDITIONAL_OPTIONS: --sa --thread-pool 6,7,8,9
|
||||||
devices:
|
devices:
|
||||||
- /dev/vfio:/dev/vfio/
|
- /dev/vfio:/dev/vfio/
|
||||||
volumes:
|
volumes:
|
||||||
- ../../../targets/PROJECTS/GENERIC-NR-5GC/CONF/gnb.sa.band78.273prb.fhi72.4x4-benetel650.conf:/opt/oai-gnb/etc/gnb.conf
|
- ../../conf_files/gnb.sa.band77.273prb.fhi72.4x4-vvdn.conf:/opt/oai-gnb/etc/gnb.conf
|
||||||
- /dev/hugepages:/dev/hugepages
|
- /dev/hugepages:/dev/hugepages
|
||||||
cpuset: "0,1,2,8,9,10,13,14,15,16,17,18"
|
# Please change these values based on your system
|
||||||
|
cpuset: "0,1,2,3,4,5,6,7,8,9"
|
||||||
networks:
|
networks:
|
||||||
oai-net:
|
oai-net:
|
||||||
ipv4_address: 172.21.18.20
|
ipv4_address: 172.21.18.20
|
||||||
@@ -31,4 +37,4 @@ networks:
|
|||||||
gateway: "172.21.19.254"
|
gateway: "172.21.19.254"
|
||||||
driver_opts:
|
driver_opts:
|
||||||
com.docker.network.bridge.name: "oai-net"
|
com.docker.network.bridge.name: "oai-net"
|
||||||
parent: enp193s0f0
|
parent: ens7f0
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
set -e
|
||||||
|
sudo cpupower idle-set -E > /dev/null
|
||||||
|
sudo sysctl kernel.sched_rt_runtime_us=950000
|
||||||
|
sudo sysctl kernel.timer_migration=1
|
||||||
|
exit 0
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
set -e
|
||||||
|
sudo cpupower idle-set -D 0 > /dev/null
|
||||||
|
sudo sysctl kernel.sched_rt_runtime_us=-1
|
||||||
|
sudo sysctl kernel.timer_migration=0
|
||||||
|
sudo ethtool -G ens7f1 rx 8160
|
||||||
|
sudo ethtool -G ens7f1 tx 8160
|
||||||
|
sudo sh -c 'echo 0 > /sys/class/net/ens7f1/device/sriov_numvfs'
|
||||||
|
sudo sh -c 'echo 2 > /sys/class/net/ens7f1/device/sriov_numvfs'
|
||||||
|
sudo modprobe -r iavf
|
||||||
|
sudo modprobe iavf
|
||||||
|
# this next 2 lines is for C/U planes
|
||||||
|
sudo ip link set ens7f1 vf 0 mac 76:76:64:6e:00:01 vlan 4 spoofchk off mtu 9216
|
||||||
|
sudo ip link set ens7f1 vf 1 mac 76:76:64:6e:00:00 vlan 4 spoofchk off mtu 9216
|
||||||
|
sleep 1
|
||||||
|
# These are the DPDK bindings for C/U-planes on vlan 4
|
||||||
|
sudo /usr/local/bin/dpdk-devbind.py --unbind c3:11.0
|
||||||
|
sudo /usr/local/bin/dpdk-devbind.py --unbind c3:11.1
|
||||||
|
sudo modprobe vfio-pci
|
||||||
|
sudo /usr/local/bin/dpdk-devbind.py --bind vfio-pci c3:11.0
|
||||||
|
sudo /usr/local/bin/dpdk-devbind.py --bind vfio-pci c3:11.1
|
||||||
|
exit 0
|
||||||
@@ -199,6 +199,12 @@ information on how the images are built.
|
|||||||
~5G-NR
|
~5G-NR
|
||||||
- matix + N310 (gNB), up2 + COTS UE (Quectel RM520N), OAI 5GC deployed in docker on matix
|
- matix + N310 (gNB), up2 + COTS UE (Quectel RM520N), OAI 5GC deployed in docker on matix
|
||||||
- NR performance tests: 2x2 configuration, 60 MHz and 100 MHz bandwidth
|
- NR performance tests: 2x2 configuration, 60 MHz and 100 MHz bandwidth
|
||||||
|
- [RAN-SA-FHI72-CN5G](https://jenkins-oai.eurecom.fr/view/RAN/job/RAN-SA-FHI72-CN5G/)
|
||||||
|
~5G-NR
|
||||||
|
- cacofonix + FHI72 + Benetel550 (gNB), AmariUE, OAI CN5G
|
||||||
|
- cacofonix + FHI72 + VVDN (gNB), up2 (Quectel RM520N UE), OAI CN5G
|
||||||
|
- OpenShift cluster for CN deployment
|
||||||
|
- FHI 7.2 testing with 100 MHz bandwidth, 2 layers in DL
|
||||||
|
|
||||||
### RAN-CI-NSA-Trigger
|
### RAN-CI-NSA-Trigger
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user