diff --git a/ci-scripts/Jenkinsfile-GitLab-Container b/ci-scripts/Jenkinsfile-GitLab-Container
index 8a3fc8f9e2..b1bf895111 100644
--- a/ci-scripts/Jenkinsfile-GitLab-Container
+++ b/ci-scripts/Jenkinsfile-GitLab-Container
@@ -562,6 +562,29 @@ pipeline {
}
}
}
+ stage ("SA-2x2-Module-CN5G") {
+ when { expression {do5Gtest} }
+ steps {
+ script {
+ triggerSlaveJob ('RAN-SA-2x2-Module-CN5G', 'SA-2x2-Module-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
+ saTDD2x2Status = finalizeSlaveJob('RAN-SA-2x2-Module-CN5G')
+ }
+ }
+ failure {
+ script {
+ currentBuild.result = 'FAILURE'
+ failingStages += saTDD2x2Status
+ }
+ }
+ }
+ }
stage ("SA-OAIUE-CN5G") {
when { expression {do5Gtest} }
steps {
diff --git a/ci-scripts/ci_infra.yaml b/ci-scripts/ci_infra.yaml
index 8142e960dd..e91b43cbb1 100644
--- a/ci-scripts/ci_infra.yaml
+++ b/ci-scripts/ci_infra.yaml
@@ -61,6 +61,12 @@ oc-cn5g:
NetworkScript: echo "inet 172.21.6.102"
RunIperf3Server: False
+matix-cn5g:
+ Host: matix
+ NetworkScript: docker exec prod-trf-gen ip a show dev eth0
+ CmdPrefix: docker exec prod-trf-gen
+ RunIperf3Server: False
+
porcepix-cn4g:
Host: porcepix
NetworkScript: docker exec prod-trf-gen ip a show dev eth0
diff --git a/ci-scripts/conf_files/gnb.sa.band77.162prb.usrpn310.2x2.conf b/ci-scripts/conf_files/gnb.sa.band77.162prb.usrpn310.2x2.conf
new file mode 100644
index 0000000000..fb19d44985
--- /dev/null
+++ b/ci-scripts/conf_files/gnb.sa.band77.162prb.usrpn310.2x2.conf
@@ -0,0 +1,260 @@
+Active_gNBs = ( "gNB-OAI");
+# Asn1_verbosity, choice in: none, info, annoying
+Asn1_verbosity = "none";
+
+sa = 1;
+usrp-tx-thread-config = 1;
+tune-offset = 30720000;
+
+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;
+
+ ////////// Physical parameters:
+
+ ssb_SubcarrierOffset = 0;
+ pdsch_AntennaPorts_XP = 2;
+ pusch_AntennaPorts = 2;
+ do_CSIRS = 1;
+ do_SRS = 1;
+
+ servingCellConfigCommon = (
+ {
+ #spCellConfigCommon
+
+ physCellId = 0;
+
+# downlinkConfigCommon
+ #frequencyInfoDL
+ # this is 3300.60 MHz + 81*12*30e-3 MHz = 3329.76
+ absoluteFrequencySSB = 673344;
+ # this is 3300.60 MHz
+ dl_absoluteFrequencyPointA = 671400;
+ dl_frequencyBand = 77;
+ #scs-SpecificCarrierList
+ dl_offstToCarrier = 0;
+# subcarrierSpacing
+# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
+ dl_subcarrierSpacing = 1;
+ dl_carrierBandwidth = 162;
+ #initialDownlinkBWP
+ #genericParameters
+ # this is RBstart=0,L=162 (275*(275-L+1))+(274-RBstart))
+ initialDLBWPlocationAndBandwidth = 31624;
+ #
+# subcarrierSpacing
+# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
+ initialDLBWPsubcarrierSpacing = 1;
+ #pdcch-ConfigCommon
+ initialDLBWPcontrolResourceSetZero = 12;
+ 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 = 162;
+ pMax = 20;
+ #initialUplinkBWP
+ #genericParameters
+ initialULBWPlocationAndBandwidth = 31624;
+# 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 = 12;
+ preambleReceivedTargetPower = -96;
+#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 = 4;
+#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,
+
+ msg3_DeltaPreamble = 1;
+ p0_NominalWithGrant =-90;
+
+# pucch-ConfigCommon setup :
+# pucchGroupHopping
+# 0 = neither, 1= group hopping, 2=sequence hopping
+ pucchGroupHopping = 0;
+ hoppingId = 40;
+ p0_nominal = -70;
+# ssb_PositionsInBurs_BitmapPR
+# 1=short, 2=medium, 3=long
+ ssb_PositionsInBurst_PR = 2;
+ ssb_PositionsInBurst_Bitmap = 1;
+
+# 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 = 2;
+ nrofDownlinkSymbols = 6;
+ nrofUplinkSlots = 2;
+ nrofUplinkSymbols = 4;
+
+ ssPBCH_BlockPower = -20;
+ }
+
+ );
+
+
+ # ------- SCTP definitions
+ SCTP :
+ {
+ # Number of streams to use in input/output
+ SCTP_INSTREAMS = 2;
+ SCTP_OUTSTREAMS = 2;
+ };
+
+
+ ////////// AMF parameters:
+ amf_ip_address = ( { ipv4 = "192.168.61.132";
+ ipv6 = "192:168:30::17";
+ active = "yes";
+ preference = "ipv4";
+ }
+ );
+
+
+ NETWORK_INTERFACES :
+ {
+ GNB_INTERFACE_NAME_FOR_NG_AMF = "demo-oai";
+ GNB_IPV4_ADDRESS_FOR_NG_AMF = "192.168.61.129/26";
+ GNB_INTERFACE_NAME_FOR_NGU = "demo-oai";
+ GNB_IPV4_ADDRESS_FOR_NGU = "192.168.61.129/26";
+ GNB_PORT_FOR_S1U = 2152; # Spec 2152
+ };
+
+ }
+);
+
+MACRLCs = (
+{
+ num_cc = 1;
+ tr_s_preference = "local_L1";
+ tr_n_preference = "local_RRC";
+ pusch_TargetSNRx10 = 300;
+ pucch_TargetSNRx10 = 300;
+ ulsch_max_frame_inactivity = 0;
+ pusch_FailureThres = 100;
+ ul_max_mcs = 28;
+}
+);
+
+L1s = (
+{
+ num_cc = 1;
+ tr_n_preference = "local_mac";
+ prach_dtx_threshold = 120;
+ pusch_dtx_threshold = 20;
+ max_ldpc_iterations = 20;
+}
+);
+
+RUs = (
+{
+ local_rf = "yes"
+ nb_tx = 2;
+ nb_rx = 2;
+ att_tx = 0;
+ att_rx = 0;
+ bands = [77];
+ max_pdschReferenceSignalPower = -27;
+ max_rxgain = 72;
+ eNB_instances = [0];
+ ##beamforming 1x2 matrix: 1 layer x 2 antennas
+ bf_weights = [0x00007fff, 0x0000];
+ #clock_src = "internal";
+ sdr_addrs = "addr=192.168.80.53, clock_source=internal,time_source=internal"
+
+}
+);
+
+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 ="debug";
+ f1ap_log_level ="debug";
+};
diff --git a/ci-scripts/conf_files/gnb.sa.band77.273prb.usrpn310.2x2.conf b/ci-scripts/conf_files/gnb.sa.band77.273prb.usrpn310.2x2.conf
new file mode 100644
index 0000000000..efe4bbcec8
--- /dev/null
+++ b/ci-scripts/conf_files/gnb.sa.band77.273prb.usrpn310.2x2.conf
@@ -0,0 +1,257 @@
+Active_gNBs = ( "gNB-OAI");
+# Asn1_verbosity, choice in: none, info, annoying
+Asn1_verbosity = "none";
+
+sa = 1;
+usrp-tx-thread-config = 1;
+
+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;
+
+ ////////// Physical parameters:
+
+ pdsch_AntennaPorts_XP = 2;
+ pusch_AntennaPorts = 2;
+ do_CSIRS = 1;
+ do_SRS = 1;
+ ul_prbblacklist = "135,136,137,138"
+
+ servingCellConfigCommon = (
+ {
+ # spCellConfigCommon
+
+ physCellId = 0;
+
+ # downlinkConfigCommon
+ # frequencyInfoDL
+ # this is 3900.60 MHz + (134 PRBs + 4 SCs)@30kHz SCS (GSCN: 8158)
+ absoluteFrequencySSB = 673344;
+ dl_frequencyBand = 77;
+ # this is 3900.60 MHz
+ dl_absoluteFrequencyPointA = 670068;
+
+ # scs-SpecificCarrierList
+ dl_offstToCarrier = 0;
+ # 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
+ dl_subcarrierSpacing = 1;
+ dl_carrierBandwidth = 273;
+
+ # initialDownlinkBWP
+ # genericParameters
+ initialDLBWPlocationAndBandwidth = 1099;
+ # subcarrierSpacing
+ # 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
+ initialDLBWPsubcarrierSpacing = 1;
+
+ # pdcch-ConfigCommon
+ initialDLBWPcontrolResourceSetZero = 12;
+ 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 = 20;
+
+ # initialUplinkBWP
+ # genericParameters
+ initialULBWPlocationAndBandwidth = 1099;
+ # 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 = 12;
+ preambleReceivedTargetPower = -90;
+ # 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 = 4;
+ # 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,
+ msg3_DeltaPreamble = 1;
+ p0_NominalWithGrant =-90;
+
+ # pucch-ConfigCommon
+ # pucchGroupHopping
+ # 0 = neither, 1= group hopping, 2=sequence hopping
+ pucchGroupHopping = 0;
+ hoppingId = 40;
+ p0_nominal = -70;
+
+ # dmrs_TypeA_position
+ # 0 = pos2, 1 = pos3
+ dmrs_TypeA_Position = 0;
+
+ # subcarrierSpacing
+ # 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
+ subcarrierSpacing = 1;
+
+
+ # ssb_PositionsInBurs_BitmapPR
+ # 1=short, 2=medium, 3=long
+ ssb_PositionsInBurst_PR = 2;
+ ssb_PositionsInBurst_Bitmap = 1;
+ # ssb_periodicityServingCell
+ # 0 = ms5, 1=ms10, 2=ms20, 3=ms40, 4=ms80, 5=ms160, 6=spare2, 7=spare1
+ ssb_periodicityServingCell = 2;
+
+ #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 = -25;
+ }
+ );
+
+
+ # ------- SCTP definitions
+ SCTP :
+ {
+ # Number of streams to use in input/output
+ SCTP_INSTREAMS = 2;
+ SCTP_OUTSTREAMS = 2;
+ };
+
+
+ ////////// AMF parameters:
+ amf_ip_address = (
+ {
+ ipv4 = "192.168.61.132";
+ ipv6 = "192:168:30::17";
+ active = "yes";
+ preference = "ipv4";
+ }
+ );
+
+ NETWORK_INTERFACES :
+ {
+ GNB_INTERFACE_NAME_FOR_NG_AMF = "demo-oai";
+ GNB_IPV4_ADDRESS_FOR_NG_AMF = "192.168.61.129/24";
+ GNB_INTERFACE_NAME_FOR_NGU = "demo-oai";
+ GNB_IPV4_ADDRESS_FOR_NGU = "192.168.61.129/24";
+ GNB_PORT_FOR_S1U = 2152; # Spec 2152
+ }
+
+}
+);
+
+MACRLCs = (
+{
+ num_cc = 1;
+ tr_s_preference = "local_L1";
+ tr_n_preference = "local_RRC";
+ pusch_TargetSNRx10 = 200;
+ pucch_TargetSNRx10 = 200;
+ pusch_FailureThres = 1000;
+ ulsch_max_frame_inactivity = 0;
+ ul_max_mcs = 25;
+}
+);
+
+L1s = (
+{
+ num_cc = 1;
+ tr_n_preference = "local_mac";
+ prach_dtx_threshold = 120;
+ max_ldpc_iterations = 15;
+ pucch0_dtx_threshold = 80;
+}
+);
+
+RUs = (
+{
+ local_rf = "yes"
+ nb_tx = 2;
+ nb_rx = 2;
+ att_tx = 12;
+ att_rx = 0;
+ bands = [77];
+ max_pdschReferenceSignalPower = -27;
+ max_rxgain = 72;
+ eNB_instances = [0];
+ ##beamforming 1x2 matrix: 1 layer x 2 antennas
+ bf_weights = [0x00007fff, 0x0000];
+ #clock_src = "internal";
+ sdr_addrs = "addr=192.168.80.53,clock_source=internal,time_source=internal"
+}
+);
+
+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 ="debug";
+ f1ap_log_level ="debug";
+};
diff --git a/ci-scripts/epc.py b/ci-scripts/epc.py
index b2434e196a..c5a35c59a3 100644
--- a/ci-scripts/epc.py
+++ b/ci-scripts/epc.py
@@ -594,6 +594,8 @@ class EPCManagement():
message = 'UE requested ' + str(mySSH.getBefore().count('Tracking area update request')) + 'Tracking area update request(s)'
else:
message = 'No Tracking area update request'
+ mySSH.run(f'cd {self.SourceCodePath}/logs && zip -r -qq test_logs_CN.zip *.log')
+ mySSH.copyin(f'{self.SourceCodePath}/logs/test_logs_CN.zip','test_logs_CN.zip')
logging.debug(message)
elif re.match('OC-OAI-CN5G', self.Type, re.IGNORECASE):
logging.debug('Terminating OAI CN5G on Openshift Cluster')
diff --git a/ci-scripts/xml_files/container_sa_n310_2X2_100MHz_cleanup.xml b/ci-scripts/xml_files/container_sa_n310_2X2_100MHz_cleanup.xml
new file mode 100644
index 0000000000..eb62cdbdd3
--- /dev/null
+++ b/ci-scripts/xml_files/container_sa_n310_2X2_100MHz_cleanup.xml
@@ -0,0 +1,55 @@
+
+
+ test-cleanup
+ CleanUp SA 2x2
+ trash
+
+ 011111
+ 022222
+ 033333
+
+
+
+
+ Detach_UE
+ Detach UE
+ up2
+
+
+
+ Undeploy_Object
+ Undeploy gNB
+ ci-scripts/yaml_files/5g_sa_n310_2x2_100MHz
+ 0
+ 0
+ oai-gnb
+
+
+
+ Clean_Test_Server_Images
+ Clean Test Images on Test Server
+ 0
+
+
+
diff --git a/ci-scripts/xml_files/container_sa_n310_2X2_100MHz_quectel.xml b/ci-scripts/xml_files/container_sa_n310_2X2_100MHz_quectel.xml
new file mode 100644
index 0000000000..ba6f0dc6fa
--- /dev/null
+++ b/ci-scripts/xml_files/container_sa_n310_2X2_100MHz_quectel.xml
@@ -0,0 +1,147 @@
+
+
+ TEST-SA-FR1-N310-2x2-100MHz
+ 100 MHz TDD SA 2x2
+ tasks
+ 1
+
+ 100000
+ 111111
+ 010010
+ 040101
+ 010001
+ 051001
+ 071100
+ 071101
+ 071002
+ 010010
+ 000001
+ 040201
+ 200000
+
+
+
+
+ Pull_Cluster_Image
+ Pull Images from Cluster
+ oai-gnb
+ matix
+
+
+
+ Custom_Command
+ Disable Sleep States
+ matix
+ sudo cpupower idle-set -D 0
+
+
+
+ Custom_Command
+ Enable Sleep States
+ matix
+ sudo cpupower idle-set -E
+
+
+
+ Attach_UE
+ Attach UE
+ up2
+
+
+
+ Detach_UE
+ Detach UE
+ up2
+
+
+
+ Deploy_Object
+ Deploy gNB (TDD/Band77/100MHz/N310) in a container
+ ci-scripts/yaml_files/5g_sa_n310_2x2_100MHz
+ 0
+ 0
+
+
+
+ IdleSleep
+ Sleep
+ 5
+
+
+
+ IdleSleep
+ Sleep
+ 10
+
+
+
+ Ping
+ Ping: 100pings in 20sec
+ up2
+ -c 100 -i 0.2 %cn_ip%
+ 1
+ 15
+
+
+
+ Iperf
+ iperf (DL/500Mbps/UDP)(30 sec)(single-ue profile)
+ -u -b 500M -t 30 -R -O 10 -l 9000
+ matix-cn5g
+ up2
+ 25
+ 50
+
+
+
+ Iperf
+ iperf (UL/40Mbps/UDP)(30 sec)(single-ue profile)
+ -u -b 40M -t 30 -O 10
+ matix-cn5g
+ up2
+ 10
+ 80
+
+
+
+ Iperf
+ iperf (BIDIR TCP)(30 sec)(single-ue profile)
+ -t 30 --bidir
+ matix-cn5g
+ up2
+
+
+
+ Undeploy_Object
+ Undeploy gNB
+ ci-scripts/yaml_files/5g_sa_n310_2x2_100MHz
+ 0
+ 0
+ oai-gnb
+ 10,100,100,100
+ 10,100,100,100
+
+
+
+
diff --git a/ci-scripts/xml_files/container_sa_n310_2X2_60MHz_cleanup.xml b/ci-scripts/xml_files/container_sa_n310_2X2_60MHz_cleanup.xml
new file mode 100644
index 0000000000..3efd2f7be8
--- /dev/null
+++ b/ci-scripts/xml_files/container_sa_n310_2X2_60MHz_cleanup.xml
@@ -0,0 +1,55 @@
+
+
+ test-cleanup
+ CleanUp SA 2x2
+ trash
+
+ 111111
+ 222222
+ 333333
+
+
+
+
+ Detach_UE
+ Detach UE
+ up2
+
+
+
+ Undeploy_Object
+ Undeploy gNB
+ ci-scripts/yaml_files/5g_sa_n310_2x2_60MHz
+ 0
+ 0
+ oai-gnb
+
+
+
+ Clean_Test_Server_Images
+ Clean Test Images on Test Server
+ 0
+
+
+
diff --git a/ci-scripts/xml_files/container_sa_n310_2X2_60MHz_quectel.xml b/ci-scripts/xml_files/container_sa_n310_2X2_60MHz_quectel.xml
new file mode 100644
index 0000000000..8514cea272
--- /dev/null
+++ b/ci-scripts/xml_files/container_sa_n310_2X2_60MHz_quectel.xml
@@ -0,0 +1,147 @@
+
+
+ TEST-SA-FR1-N310-2x2-60MHz
+ 60 MHz 2x2 TDD SA
+ tasks
+ 1
+
+ 100000
+ 111111
+ 010010
+ 030101
+ 010001
+ 050001
+ 071000
+ 071001
+ 070002
+ 010010
+ 000001
+ 030201
+ 200000
+
+
+
+
+ Pull_Cluster_Image
+ Pull Images from Cluster
+ oai-gnb
+ matix
+
+
+
+ Custom_Command
+ Disable Sleep States
+ matix
+ sudo cpupower idle-set -D 0
+
+
+
+ Custom_Command
+ Enable Sleep States
+ matix
+ sudo cpupower idle-set -E
+
+
+
+ Attach_UE
+ Attach UE
+ up2
+
+
+
+ Detach_UE
+ Detach UE
+ up2
+
+
+
+ Deploy_Object
+ Deploy gNB (TDD/Band77/60MHz/N310) in a container
+ ci-scripts/yaml_files/5g_sa_n310_2x2_60MHz
+ 0
+ 0
+
+
+
+ IdleSleep
+ Sleep
+ 5
+
+
+
+ IdleSleep
+ Sleep
+ 10
+
+
+
+ Ping
+ Ping: 100pings in 20sec
+ up2
+ -c 100 -i 0.2 %cn_ip%
+ 1
+ 15
+
+
+
+ Iperf
+ iperf (DL/200Mbps/UDP)(30 sec)(single-ue profile)
+ -u -b 200M -t 30 -R
+ matix-cn5g
+ up2
+ 25
+ 80
+
+
+
+ Iperf
+ iperf (UL/130Mbps/UDP)(30 sec)(single-ue profile)
+ -u -b 130M -t 30
+ matix-cn5g
+ up2
+ 10
+ 70
+
+
+
+ Iperf
+ iperf (BIDIR TCP)(30 sec)(single-ue profile)
+ -t 30 --bidir
+ matix-cn5g
+ up2
+
+
+
+ Undeploy_Object
+ Undeploy gNB
+ ci-scripts/yaml_files/5g_sa_n310_2x2_60MHz
+ 0
+ 0
+ oai-gnb
+ 10,100,100,100
+ 10,100,100,100
+
+
+
+
diff --git a/ci-scripts/xml_files/fr1_cn5g_basic_undeploy.xml b/ci-scripts/xml_files/fr1_cn5g_basic_undeploy.xml
index 592a60c620..190b58ac1b 100644
--- a/ci-scripts/xml_files/fr1_cn5g_basic_undeploy.xml
+++ b/ci-scripts/xml_files/fr1_cn5g_basic_undeploy.xml
@@ -21,8 +21,8 @@
-->
- cn5g-start-tab
- CN5G-Start
+ cn5g-stop-tab
+ CN5G-Stop
log-in
000300
diff --git a/ci-scripts/yaml_files/5g_sa_n310_2x2_100MHz/docker-compose.yml b/ci-scripts/yaml_files/5g_sa_n310_2x2_100MHz/docker-compose.yml
new file mode 100644
index 0000000000..9be2d550c0
--- /dev/null
+++ b/ci-scripts/yaml_files/5g_sa_n310_2x2_100MHz/docker-compose.yml
@@ -0,0 +1,16 @@
+services:
+ oai-gnb:
+ image: oai-gnb:latest
+ privileged: true
+ network_mode: "host"
+ container_name: oai-gnb
+ environment:
+ TZ: Europe/Paris
+ USE_ADDITIONAL_OPTIONS: --log_config.global_log_options level,nocolor,time
+ volumes:
+ - ../../conf_files/gnb.sa.band77.273prb.usrpn310.2x2.conf:/opt/oai-gnb/etc/gnb.conf
+ healthcheck:
+ test: /bin/bash -c "pgrep nr-softmodem"
+ interval: 10s
+ timeout: 5s
+ retries: 5
diff --git a/ci-scripts/yaml_files/5g_sa_n310_2x2_60MHz/docker-compose.yml b/ci-scripts/yaml_files/5g_sa_n310_2x2_60MHz/docker-compose.yml
new file mode 100644
index 0000000000..d970d96e33
--- /dev/null
+++ b/ci-scripts/yaml_files/5g_sa_n310_2x2_60MHz/docker-compose.yml
@@ -0,0 +1,16 @@
+services:
+ oai-gnb:
+ image: oai-gnb:latest
+ privileged: true
+ network_mode: "host"
+ container_name: oai-gnb
+ environment:
+ TZ: Europe/Paris
+ USE_ADDITIONAL_OPTIONS: --log_config.global_log_options level,nocolor,time
+ volumes:
+ - ../../conf_files/gnb.sa.band77.162prb.usrpn310.2x2.conf:/opt/oai-gnb/etc/gnb.conf
+ healthcheck:
+ test: /bin/bash -c "pgrep nr-softmodem"
+ interval: 10s
+ timeout: 5s
+ retries: 5