diff --git a/ci-scripts/cls_oaicitest.py b/ci-scripts/cls_oaicitest.py
index 037f0fdf19..53a9aefda6 100644
--- a/ci-scripts/cls_oaicitest.py
+++ b/ci-scripts/cls_oaicitest.py
@@ -932,8 +932,11 @@ class OaiCiTest():
global_status = CONST.ALL_PROCESSES_OK
for line in ue_log_file.readlines():
result = re.search('nr_synchro_time|Starting NR UE soft modem', str(line))
+ sidelink = re.search('sl-mode', str(line))
if result is not None:
nrUEFlag = True
+ if sidelink is not None:
+ nrUEFlag = False
if nrUEFlag:
result = re.search('decode mib', str(line))
if result is not None:
diff --git a/ci-scripts/conf_files/gnb.sa.band66.ntn.25prb.rfsim.conf b/ci-scripts/conf_files/gnb.sa.band66.ntn.25prb.rfsim.conf
new file mode 100644
index 0000000000..19874563ae
--- /dev/null
+++ b/ci-scripts/conf_files/gnb.sa.band66.ntn.25prb.rfsim.conf
@@ -0,0 +1,283 @@
+Active_gNBs = ( "5G-GOA-gNB");
+# Asn1_verbosity, choice in: none, info, annoying
+Asn1_verbosity = "none";
+
+gNBs =
+(
+ {
+ ////////// Identification parameters:
+ gNB_ID = 0xe00;
+ gNB_name = "5G-GOA-gNB";
+
+ // Tracking area code, 0x0000 and 0xfffe are reserved values
+ tracking_area_code = 1;
+ plmn_list = ({ mcc = 208; mnc = 99; mnc_length = 2; snssaiList = ({ sst = 1, sd = 0xffffff }) });
+ nr_cellid = 12345678L;
+
+ ////////// Physical parameters:
+
+ sib1_tda = 5;
+ min_rxtxtime = 6;
+ disable_harq = 1;
+
+ servingCellConfigCommon = (
+ {
+ #spCellConfigCommon
+
+ physCellId = 0;
+
+# downlinkConfigCommon
+ #frequencyInfoDL
+ # this is 2150.43 MHz + 14 PRBs@15kHz SCS (same as initial BWP), points to Subcarrier 0 of RB#10 of SSB block
+ absoluteFrequencySSB = 430590;
+ dl_frequencyBand = 66;
+ # this is 2150.43 MHz
+ dl_absoluteFrequencyPointA = 430086;
+ #scs-SpecificCarrierList
+ dl_offstToCarrier = 0;
+# subcarrierSpacing
+# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
+ dl_subcarrierSpacing = 0;
+ dl_carrierBandwidth = 25;
+ #initialDownlinkBWP
+ #genericParameters
+ # this is RBstart=0,L=25 (275*(L-1))+RBstart
+ initialDLBWPlocationAndBandwidth = 6600;
+# subcarrierSpacing
+# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
+ initialDLBWPsubcarrierSpacing = 0;
+ #pdcch-ConfigCommon
+ initialDLBWPcontrolResourceSetZero = 2;
+ initialDLBWPsearchSpaceZero = 0;
+
+ #uplinkConfigCommon
+ #frequencyInfoUL
+ ul_frequencyBand = 66;
+ # this is 1750.43 MHz
+ ul_absoluteFrequencyPointA = 350086;
+ #scs-SpecificCarrierList
+ ul_offstToCarrier = 0;
+# subcarrierSpacing
+# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
+ ul_subcarrierSpacing = 0;
+ ul_carrierBandwidth = 25;
+ pMax = 20;
+ #initialUplinkBWP
+ #genericParameters
+ initialULBWPlocationAndBandwidth = 6600;
+# subcarrierSpacing
+# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
+ initialULBWPsubcarrierSpacing = 0;
+ #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 = -118;
+#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 = 4;
+#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 = 0;
+# 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 = -90;
+# 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 = 0;
+
+
+ #tdd-UL-DL-ConfigurationCommon
+# subcarrierSpacing
+# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
+ referenceSubcarrierSpacing = 0;
+ # 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;
+
+ #ext2
+ #ntn_Config_r17
+ cellSpecificKoffset_r17 = 478;
+ }
+
+ );
+
+ TIMERS :
+ {
+ sr_ProhibitTimer = 0;
+ sr_TransMax = 64;
+ sr_ProhibitTimer_v1700 = 512;
+ t300 = 2000;
+ t301 = 2000;
+ t319 = 2000;
+ };
+
+ # ------- 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.71.132"; });
+
+ NETWORK_INTERFACES :
+ {
+ GNB_IPV4_ADDRESS_FOR_NG_AMF = "192.168.71.140/26";
+ GNB_IPV4_ADDRESS_FOR_NGU = "192.168.71.140/26";
+ GNB_PORT_FOR_S1U = 2152; # Spec 2152
+ };
+
+ }
+);
+
+MACRLCs = (
+{
+ num_cc = 1;
+ tr_s_preference = "local_L1";
+ tr_n_preference = "local_RRC";
+ pusch_TargetSNRx10 = 150;
+ pucch_TargetSNRx10 = 200;
+}
+);
+
+L1s = (
+{
+ num_cc = 1;
+ tr_n_preference = "local_mac";
+ prach_dtx_threshold = 120;
+ pucch0_dtx_threshold = 150;
+ ofdm_offset_divisor = 8; #set this to UINT_MAX for offset 0
+}
+);
+
+RUs = (
+ {
+ local_rf = "yes";
+ nb_tx = 1;
+ nb_rx = 1;
+ att_tx = 0;
+ att_rx = 0;
+ bands = [7];
+ max_pdschReferenceSignalPower = -27;
+ max_rxgain = 114;
+ sf_extension = 0;
+ eNB_instances = [0];
+ ##beamforming 1x2 matrix: 1 layer x 2 antennas
+ bf_weights = [0x00007fff, 0x0000];
+ ##beamforming 1x4 matrix: 1 layer x 4 antennas
+ #bf_weights = [0x00007fff, 0x0000,0x0000, 0x0000];
+ ## beamforming 2x2 matrix:
+ # bf_weights = [0x00007fff, 0x00000000, 0x00000000, 0x00007fff];
+ ## beamforming 4x4 matrix:
+ #bf_weights = [0x00007fff, 0x0000, 0x0000, 0x0000, 0x00000000, 0x00007fff, 0x0000, 0x0000, 0x0000, 0x0000, 0x00007fff, 0x0000, 0x0000, 0x0000, 0x0000, 0x00007fff];
+ sdr_addrs = "type=x300";
+ clock_src = "internal";
+ # if_freq = 3700000000L;
+ # if_offset = 1000000;
+ }
+);
+
+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";
+ #two option for worker "WORKER_DISABLE" or "WORKER_ENABLE"
+ worker_config = "WORKER_DISABLE";
+ }
+);
+
+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 ="debug";
+ f1ap_log_level ="debug";
+};
+
diff --git a/ci-scripts/conf_files/gnb.sa.band78.106prb.rfsim.2x2.conf b/ci-scripts/conf_files/gnb.sa.band78.273prb.rfsim.2x2.conf
similarity index 96%
rename from ci-scripts/conf_files/gnb.sa.band78.106prb.rfsim.2x2.conf
rename to ci-scripts/conf_files/gnb.sa.band78.273prb.rfsim.2x2.conf
index e82bb2a098..c5c37c3eed 100644
--- a/ci-scripts/conf_files/gnb.sa.band78.106prb.rfsim.2x2.conf
+++ b/ci-scripts/conf_files/gnb.sa.band78.273prb.rfsim.2x2.conf
@@ -32,20 +32,20 @@ gNBs =
# downlinkConfigCommon
#frequencyInfoDL
# this is 3300.60 MHz + 53*12*30e-3 MHz = 3319.68
- absoluteFrequencySSB = 621312;
+ absoluteFrequencySSB = 630048;
dl_frequencyBand = 78;
# this is 3300.60 MHz
- dl_absoluteFrequencyPointA = 620040;
+ dl_absoluteFrequencyPointA = 626772;
#scs-SpecificCarrierList
dl_offstToCarrier = 0;
# subcarrierSpacing
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
dl_subcarrierSpacing = 1;
- dl_carrierBandwidth = 106;
+ dl_carrierBandwidth = 273;
#initialDownlinkBWP
#genericParameters
# this is RBstart=27,L=48 (275*(L-1))+RBstart
- initialDLBWPlocationAndBandwidth = 28875; # 6366 12925 12956 28875 12952
+ initialDLBWPlocationAndBandwidth = 1099; # 6366 12925 12956 28875 12952
# subcarrierSpacing
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
initialDLBWPsubcarrierSpacing = 1;
@@ -61,11 +61,11 @@ gNBs =
# subcarrierSpacing
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
ul_subcarrierSpacing = 1;
- ul_carrierBandwidth = 106;
+ ul_carrierBandwidth = 273;
pMax = 20;
#initialUplinkBWP
#genericParameters
- initialULBWPlocationAndBandwidth = 28875;
+ initialULBWPlocationAndBandwidth = 1099;
# subcarrierSpacing
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
initialULBWPsubcarrierSpacing = 1;
@@ -140,10 +140,10 @@ gNBs =
# 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;
+ dl_UL_TransmissionPeriodicity = 5;
+ nrofDownlinkSlots = 3;
nrofDownlinkSymbols = 6;
- nrofUplinkSlots = 2;
+ nrofUplinkSlots = 1;
nrofUplinkSymbols = 4;
ssPBCH_BlockPower = -25;
@@ -179,9 +179,6 @@ MACRLCs = (
num_cc = 1;
tr_s_preference = "local_L1";
tr_n_preference = "local_RRC";
- #pusch_TargetSNRx10 = 150;
- #pucch_TargetSNRx10 = 200;
- dl_max_mcs = 16; # there are retransmissions if more
}
);
@@ -190,7 +187,6 @@ L1s = (
num_cc = 1;
tr_n_preference = "local_mac";
prach_dtx_threshold = 120;
- #pucch0_dtx_threshold = 120;
}
);
diff --git a/ci-scripts/xml_files/container_5g_f1_rfsim.xml b/ci-scripts/xml_files/container_5g_f1_rfsim.xml
index 6c95796d87..be31c6202a 100644
--- a/ci-scripts/xml_files/container_5g_f1_rfsim.xml
+++ b/ci-scripts/xml_files/container_5g_f1_rfsim.xml
@@ -86,7 +86,7 @@
Iperf
Iperf (DL/5Mbps/UDP)(30 sec)
- -u -b 5M -t 30 -R
+ -u -b 5M -t 20 -R
rfsim5g_ue
rfsim5g_ext_dn
5
@@ -96,7 +96,7 @@
Iperf
Iperf (UL/3Mbps/UDP)(30 sec)
- -u -b 3M -t 30
+ -u -b 3M -t 20
rfsim5g_ue
rfsim5g_ext_dn
5
diff --git a/ci-scripts/xml_files/container_5g_fdd_rfsim.xml b/ci-scripts/xml_files/container_5g_fdd_rfsim.xml
index da059dadd4..92629a4700 100644
--- a/ci-scripts/xml_files/container_5g_fdd_rfsim.xml
+++ b/ci-scripts/xml_files/container_5g_fdd_rfsim.xml
@@ -72,7 +72,7 @@
Ping
Ping ext-dn from NR-UE
rfsim5g_ue
- -c 20 192.168.72.135
+ -c 20 -i 0.25 192.168.72.135
5
@@ -80,7 +80,7 @@
Ping
Ping NR-UE from ext-dn
rfsim5g_ext_dn
- -c 20 12.1.1.2
+ -c 20 -i 0.25 12.1.1.2
5
diff --git a/ci-scripts/xml_files/container_5g_rfsim.xml b/ci-scripts/xml_files/container_5g_rfsim.xml
index e3779d3e6b..3751b256f2 100644
--- a/ci-scripts/xml_files/container_5g_rfsim.xml
+++ b/ci-scripts/xml_files/container_5g_rfsim.xml
@@ -127,7 +127,7 @@
Ping
Ping ext-dn from NR-UE
rfsim5g_ue
- -c 20 192.168.72.135
+ -c 20 -i 0.25 192.168.72.135
5
@@ -135,7 +135,7 @@
Ping
Ping NR-UE from ext-dn
rfsim5g_ext_dn
- -c 20 12.1.1.2
+ -c 20 -i 0.25 12.1.1.2
5
@@ -143,7 +143,7 @@
Ping
Ping ext-dn from Second NR-UE
rfsim5g_ue
- -c 20 192.168.72.135
+ -c 20 -i 0.25 192.168.72.135
5
@@ -151,7 +151,7 @@
Ping
Ping Second NR-UE from ext-dn
rfsim5g_ext_dn
- -c 20 12.1.1.3
+ -c 20 -i 0.25 12.1.1.3
5
@@ -159,7 +159,7 @@
Ping
Ping ext-dn from both UEs
rfsim5g_ue rfsim5g_ue2
- -c 20 192.168.72.135
+ -c 20 -i 0.25 192.168.72.135
5
@@ -167,7 +167,7 @@
Ping
Ping ext-dn from both UEs
rfsim5g_ue rfsim5g_ue2
- -c 20 192.168.72.135
+ -c 20 -i 0.25 192.168.72.135
5
@@ -175,14 +175,14 @@
Ping
Ping ext-dn from all UEs
rfsim5g_ue rfsim5g_ue2 rfsim5g_ue3 rfsim5g_ue4 rfsim5g_ue5 rfsim5g_ue6 rfsim5g_ue7 rfsim5g_ue8 rfsim5g_ue9 rfsim5g_ue10
- -c 100 192.168.72.135 -i 0.2 -s 1016
+ -c 20 192.168.72.135 -i 0.25 -s 1016
5
Iperf
Iperf (DL/3Mbps/UDP)(30 sec)
- -u -b 3M -t 30 -R
+ -u -b 3M -t 20 -R
rfsim5g_ue
rfsim5g_ext_dn
5
@@ -192,7 +192,7 @@
Iperf
Iperf (UL/1Mbps/UDP)(30 sec)
- -u -b 1M -t 30
+ -u -b 1M -t 20
rfsim5g_ue
rfsim5g_ext_dn
5
diff --git a/ci-scripts/xml_files/container_5g_rfsim_24prb.xml b/ci-scripts/xml_files/container_5g_rfsim_24prb.xml
index 944d9fafc6..e970c7ae3f 100644
--- a/ci-scripts/xml_files/container_5g_rfsim_24prb.xml
+++ b/ci-scripts/xml_files/container_5g_rfsim_24prb.xml
@@ -87,7 +87,7 @@
Iperf
Iperf (DL/3Mbps/UDP)(30 sec)
- -u -b 3M -t 30 -R
+ -u -b 3M -t 20 -R
rfsim5g_ue
rfsim5g_ext_dn
5
@@ -97,7 +97,7 @@
Iperf
Iperf (UL/1Mbps/UDP)(30 sec)
- -u -b 1M -t 30
+ -u -b 1M -t 20
rfsim5g_ue
rfsim5g_ext_dn
5
diff --git a/ci-scripts/xml_files/container_5g_rfsim_2x2.xml b/ci-scripts/xml_files/container_5g_rfsim_2x2.xml
index 7899ac00c7..1cd9314e1b 100644
--- a/ci-scripts/xml_files/container_5g_rfsim_2x2.xml
+++ b/ci-scripts/xml_files/container_5g_rfsim_2x2.xml
@@ -72,7 +72,7 @@
Ping
Ping ext-dn from NR-UE
rfsim5g_ue
- -c 20 192.168.72.135
+ -c 20 -i 0.25 192.168.72.135
5
@@ -80,14 +80,14 @@
Ping
Ping NR-UE from ext-dn
rfsim5g_ext_dn
- -c 20 12.1.1.2
+ -c 20 -i 0.25 12.1.1.2
5
Iperf
- Iperf (DL/3Mbps/UDP)(30 sec)
- -u -b 3M -t 30 -R
+ Iperf (DL/10Mbps/UDP)(30 sec)
+ -u -b 10M -t 20 -R
rfsim5g_ue
rfsim5g_ext_dn
5
@@ -96,8 +96,8 @@
Iperf
- Iperf (UL/1Mbps/UDP)(30 sec)
- -u -b 1M -t 30
+ Iperf (UL/4Mbps/UDP)(30 sec)
+ -u -b 4M -t 20
rfsim5g_ue
rfsim5g_ext_dn
5
diff --git a/ci-scripts/xml_files/container_5g_rfsim_fdd_phytest.xml b/ci-scripts/xml_files/container_5g_rfsim_fdd_phytest.xml
index 3020f63055..7c50eb7fea 100644
--- a/ci-scripts/xml_files/container_5g_rfsim_fdd_phytest.xml
+++ b/ci-scripts/xml_files/container_5g_rfsim_fdd_phytest.xml
@@ -88,7 +88,7 @@
Iperf
Iperf (DL/30kbps/UDP)(30 sec)
- -u -b 0.03M -t 30 -R -c 10.0.1.1
+ -u -b 0.03M -t 20 -R -c 10.0.1.1
rfsim5g_ue
rfsim5g_gnb_nos1
5
@@ -98,7 +98,7 @@
Iperf
Iperf (UL/30kbps/UDP)(30 sec)
- -u -b 0.03M -t 30 -c 10.0.1.1
+ -u -b 0.03M -t 20 -c 10.0.1.1
rfsim5g_ue
rfsim5g_gnb_nos1
5
diff --git a/ci-scripts/xml_files/container_5g_rfsim_ntn_geo.xml b/ci-scripts/xml_files/container_5g_rfsim_ntn_geo.xml
new file mode 100644
index 0000000000..3e34d0eeed
--- /dev/null
+++ b/ci-scripts/xml_files/container_5g_rfsim_ntn_geo.xml
@@ -0,0 +1,91 @@
+
+
+ rfsim-5gnr-ntn-geo
+ Monolithic SA NTN GEO gNB
+ wrench
+ 1
+
+ 111111
+ 100001
+ 000001
+ 000002
+ 000003
+ 020001
+ 020002
+ 100001
+
+
+
+
+ Pull_Local_Registry
+ Pull Images from Local Registry
+ 0
+ oai-gnb-asan oai-nr-ue-asan
+
+
+
+ DeployGenObject
+ Deploy OAI 5G CoreNetwork
+ yaml_files/5g_rfsimulator_ntn_geo
+ mysql oai-amf oai-smf oai-upf oai-ext-dn
+ 5
+
+
+
+ DeployGenObject
+ Deploy OAI 5G gNB+nrUE RF sim SA
+ yaml_files/5g_rfsimulator_ntn_geo
+ oai-gnb oai-nr-ue
+ 7
+
+
+
+ Attach_UE
+ Attach OAI UE (Wait for IP)
+ rfsim5g_ue
+
+
+
+ Ping
+ Ping ext-dn from NR-UE
+ rfsim5g_ue
+ -c 20 -i 0.25 192.168.72.135
+ 5
+
+
+
+ Ping
+ Ping NR-UE from ext-dn
+ rfsim5g_ext_dn
+ -c 20 -i 0.25 12.1.1.2
+ 5
+
+
+
+ UndeployGenObject
+ Undeploy all OAI 5G stack
+ yaml_files/5g_rfsimulator_ntn_geo
+
+
+
diff --git a/ci-scripts/xml_files/container_5g_rfsim_ntn_geo_down.xml b/ci-scripts/xml_files/container_5g_rfsim_ntn_geo_down.xml
new file mode 100644
index 0000000000..53fa83806a
--- /dev/null
+++ b/ci-scripts/xml_files/container_5g_rfsim_ntn_geo_down.xml
@@ -0,0 +1,45 @@
+
+
+ rfsim-5gnr-ntn-geo-down
+ CleanUp SA Monolithic NTN GEO gNB
+ trash
+
+ 100002
+ 222222
+
+
+
+
+ UndeployGenObject
+ Undeploy all OAI 5G stack
+ yaml_files/5g_rfsimulator_ntn_geo
+
+
+
+ Clean_Test_Server_Images
+ Clean Test Images on Test Server
+ 0
+
+
+
diff --git a/ci-scripts/xml_files/container_5g_rfsim_sidelink.xml b/ci-scripts/xml_files/container_5g_rfsim_sidelink.xml
new file mode 100644
index 0000000000..3346ace418
--- /dev/null
+++ b/ci-scripts/xml_files/container_5g_rfsim_sidelink.xml
@@ -0,0 +1,83 @@
+
+
+ rfsim-5gnr-sidelink
+ Sidelink test
+ wrench
+ 1
+
+ 111111
+ 000002
+ 000003
+ 000004
+ 000005
+ 100001
+
+
+
+
+ Pull_Local_Registry
+ Pull Images from Local Registry
+ 0
+ oai-nr-ue-asan
+
+
+
+ DeployGenObject
+ Deploy OAI 5G UE 1
+ yaml_files/5g_rfsimulator_sidelink
+ oai-nr-ue-1
+ 1
+
+
+
+ DeployGenObject
+ Deploy OAI 5G UE 2
+ yaml_files/5g_rfsimulator_sidelink
+ oai-nr-ue-2
+ 1
+
+
+
+ IdleSleep
+ Sleep
+ 20
+
+
+
+ Custom_Command
+ Check that UE synched
+ localhost
+ docker logs rfsim5g-oai-nr-ue-2 | grep -m 1 "PSBCH RX:OK"
+ yes
+
+
+
+ UndeployGenObject
+ Undeploy all OAI 5G stack
+ yaml_files/5g_rfsimulator_sidelink
+ 1,0,0,0
+ 1,0,0,0
+
+
+
diff --git a/ci-scripts/xml_files/container_5g_rfsim_sidelink_down.xml b/ci-scripts/xml_files/container_5g_rfsim_sidelink_down.xml
new file mode 100644
index 0000000000..46661e3dc4
--- /dev/null
+++ b/ci-scripts/xml_files/container_5g_rfsim_sidelink_down.xml
@@ -0,0 +1,45 @@
+
+
+ rfsim-5gnr-sidelink-down
+ CleanUp sidelink test
+ trash
+
+ 100002
+ 222222
+
+
+
+
+ UndeployGenObject
+ Undeploy all OAI 5G stack
+ yaml_files/5g_rfsimulator_sidelink
+
+
+
+ Clean_Test_Server_Images
+ Clean Test Images on Test Server
+ 0
+
+
+
diff --git a/ci-scripts/xml_files/container_5g_rfsim_u0_25prb.xml b/ci-scripts/xml_files/container_5g_rfsim_u0_25prb.xml
index 0540d44f1f..64f19e1314 100644
--- a/ci-scripts/xml_files/container_5g_rfsim_u0_25prb.xml
+++ b/ci-scripts/xml_files/container_5g_rfsim_u0_25prb.xml
@@ -72,7 +72,7 @@
Ping
Ping ext-dn from NR-UE
rfsim5g_ue
- -c 20 192.168.72.135
+ -c 20 -i 0.25 192.168.72.135
5
@@ -80,14 +80,14 @@
Ping
Ping NR-UE from ext-dn
rfsim5g_ext_dn
- -c 20 12.1.1.2
+ -c 20 -i 0.25 12.1.1.2
5
Iperf
Iperf (DL/3Mbps/UDP)(30 sec)
- -u -b 3M -t 30 -R
+ -u -b 3M -t 20 -R
rfsim5g_ue
rfsim5g_ext_dn
5
@@ -97,7 +97,7 @@
Iperf
Iperf (UL/1Mbps/UDP)(30 sec)
- -u -b 1M -t 30
+ -u -b 1M -t 20
rfsim5g_ue
rfsim5g_ext_dn
5
diff --git a/ci-scripts/yaml_files/5g_rfsimulator_2x2/docker-compose.yaml b/ci-scripts/yaml_files/5g_rfsimulator_2x2/docker-compose.yaml
index 8cc47c77c6..29600aa655 100644
--- a/ci-scripts/yaml_files/5g_rfsimulator_2x2/docker-compose.yaml
+++ b/ci-scripts/yaml_files/5g_rfsimulator_2x2/docker-compose.yaml
@@ -94,7 +94,7 @@ services:
public_net:
ipv4_address: 192.168.71.140
volumes:
- - ../../conf_files/gnb.sa.band78.106prb.rfsim.2x2.conf:/opt/oai-gnb/etc/gnb.conf
+ - ../../conf_files/gnb.sa.band78.273prb.rfsim.2x2.conf:/opt/oai-gnb/etc/gnb.conf
healthcheck:
test: /bin/bash -c "pgrep nr-softmodem"
interval: 10s
@@ -110,7 +110,7 @@ services:
- NET_ADMIN # for interface bringup
- NET_RAW # for ping
environment:
- USE_ADDITIONAL_OPTIONS: --sa --rfsim -r 106 --numerology 1 --band 78 -C 3319680000 --ue-nb-ant-tx 2 --uicc0.imsi 208990100001100 --ue-nb-ant-rx 2 --uecap_file /opt/oai-nr-ue/etc/uecap.xml --rfsimulator.serveraddr 192.168.71.140 --log_config.global_log_options level,nocolor,time
+ USE_ADDITIONAL_OPTIONS: --sa --rfsim -r 273 --numerology 1 --band 78 -C 3450720000 --ssb 1518 --ue-nb-ant-tx 2 --uicc0.imsi 208990100001100 --ue-nb-ant-rx 2 --uecap_file /opt/oai-nr-ue/etc/uecap.xml --rfsimulator.serveraddr 192.168.71.140 --log_config.global_log_options level,nocolor,time
depends_on:
- oai-gnb
networks:
diff --git a/ci-scripts/yaml_files/5g_rfsimulator_ntn_geo/docker-compose.yaml b/ci-scripts/yaml_files/5g_rfsimulator_ntn_geo/docker-compose.yaml
new file mode 100644
index 0000000000..983969d840
--- /dev/null
+++ b/ci-scripts/yaml_files/5g_rfsimulator_ntn_geo/docker-compose.yaml
@@ -0,0 +1,145 @@
+services:
+ mysql:
+ container_name: "rfsim5g-mysql"
+ image: mysql:8.0
+ volumes:
+ - ../5g_rfsimulator/oai_db.sql:/docker-entrypoint-initdb.d/oai_db.sql
+ - ../5g_rfsimulator/mysql-healthcheck.sh:/tmp/mysql-healthcheck.sh
+ environment:
+ - TZ=Europe/Paris
+ - MYSQL_DATABASE=oai_db
+ - MYSQL_USER=test
+ - MYSQL_PASSWORD=test
+ - MYSQL_ROOT_PASSWORD=linux
+ healthcheck:
+ test: /bin/bash -c "/tmp/mysql-healthcheck.sh"
+ interval: 10s
+ timeout: 5s
+ retries: 30
+ networks:
+ public_net:
+ ipv4_address: 192.168.71.131
+ oai-amf:
+ container_name: "rfsim5g-oai-amf"
+ image: oaisoftwarealliance/oai-amf:v2.0.0
+ environment:
+ - TZ=Europe/paris
+ volumes:
+ - ../5g_rfsimulator/mini_nonrf_config.yaml:/openair-amf/etc/config.yaml
+ depends_on:
+ - mysql
+ networks:
+ public_net:
+ ipv4_address: 192.168.71.132
+ oai-smf:
+ container_name: "rfsim5g-oai-smf"
+ image: oaisoftwarealliance/oai-smf:v2.0.0
+ environment:
+ - TZ=Europe/Paris
+ volumes:
+ - ../5g_rfsimulator/mini_nonrf_config.yaml:/openair-smf/etc/config.yaml
+ depends_on:
+ - oai-amf
+ networks:
+ public_net:
+ ipv4_address: 192.168.71.133
+ oai-upf:
+ container_name: "rfsim5g-oai-upf"
+ image: oaisoftwarealliance/oai-upf:v2.0.0
+ environment:
+ - TZ=Europe/Paris
+ volumes:
+ - ../5g_rfsimulator/mini_nonrf_config.yaml:/openair-upf/etc/config.yaml
+ depends_on:
+ - oai-smf
+ cap_add:
+ - NET_ADMIN
+ - SYS_ADMIN
+ cap_drop:
+ - ALL
+ privileged: true
+ networks:
+ public_net:
+ ipv4_address: 192.168.71.134
+ traffic_net:
+ ipv4_address: 192.168.72.134
+ oai-ext-dn:
+ privileged: true
+ container_name: rfsim5g-oai-ext-dn
+ image: oaisoftwarealliance/trf-gen-cn5g:focal
+ entrypoint: /bin/bash -c \
+ "iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE;"\
+ "ip route add 12.1.1.0/24 via 192.168.72.134 dev eth0; sleep infinity"
+ depends_on:
+ - oai-upf
+ networks:
+ traffic_net:
+ ipv4_address: 192.168.72.135
+ healthcheck:
+ test: /bin/bash -c "ping -c 2 192.168.72.134"
+ interval: 10s
+ timeout: 5s
+ retries: 5
+ oai-gnb:
+ image: oaisoftwarealliance/oai-gnb:develop
+ container_name: rfsim5g-oai-gnb
+ cap_drop:
+ - ALL
+ environment:
+ USE_ADDITIONAL_OPTIONS: --sa --rfsim --rfsimulator.prop_delay 238.74 --log_config.global_log_options level,nocolor,time
+ ASAN_OPTIONS: detect_leaks=0
+ depends_on:
+ - oai-ext-dn
+ networks:
+ public_net:
+ ipv4_address: 192.168.71.140
+ volumes:
+ - ../../conf_files/gnb.sa.band66.ntn.25prb.rfsim.conf:/opt/oai-gnb/etc/gnb.conf
+ healthcheck:
+ test: /bin/bash -c "pgrep nr-softmodem"
+ interval: 10s
+ timeout: 5s
+ retries: 5
+
+ oai-nr-ue:
+ image: oaisoftwarealliance/oai-nr-ue:develop
+ container_name: rfsim5g-oai-nr-ue
+ cap_drop:
+ - ALL
+ cap_add:
+ - NET_ADMIN # for interface bringup
+ - NET_RAW # for ping
+ environment:
+ USE_ADDITIONAL_OPTIONS: --band 66 -C 2152680000 --CO -400000000 -r 25 --numerology 0 --ssb 48 --sa --rfsim --rfsimulator.prop_delay 238.74 --ntn-koffset 478 --ntn-ta-common 477.48 --rfsimulator.serveraddr 192.168.71.140 --log_config.global_log_options level,nocolor,time
+ depends_on:
+ - oai-gnb
+ networks:
+ public_net:
+ ipv4_address: 192.168.71.150
+ devices:
+ - /dev/net/tun:/dev/net/tun
+ volumes:
+ - ../../conf_files/nrue.uicc.conf:/opt/oai-nr-ue/etc/nr-ue.conf
+ healthcheck:
+ test: /bin/bash -c "pgrep nr-uesoftmodem"
+ interval: 10s
+ timeout: 5s
+ retries: 5
+
+networks:
+ public_net:
+ driver: bridge
+ name: rfsim5g-oai-public-net
+ ipam:
+ config:
+ - subnet: 192.168.71.128/26
+ driver_opts:
+ com.docker.network.bridge.name: "rfsim5g-public"
+ traffic_net:
+ driver: bridge
+ name: rfsim5g-oai-traffic-net
+ ipam:
+ config:
+ - subnet: 192.168.72.128/26
+ driver_opts:
+ com.docker.network.bridge.name: "rfsim5g-traffic"
diff --git a/ci-scripts/yaml_files/5g_rfsimulator_sidelink/docker-compose.yaml b/ci-scripts/yaml_files/5g_rfsimulator_sidelink/docker-compose.yaml
new file mode 100644
index 0000000000..684962b0a6
--- /dev/null
+++ b/ci-scripts/yaml_files/5g_rfsimulator_sidelink/docker-compose.yaml
@@ -0,0 +1,66 @@
+services:
+ oai-nr-ue-1:
+ image: oaisoftwarealliance/oai-nr-ue:develop
+ container_name: rfsim5g-oai-nr-ue-1
+ cap_drop:
+ - ALL
+ cap_add:
+ - NET_ADMIN
+ - NET_RAW
+ environment:
+ USE_ADDITIONAL_OPTIONS: --sl-mode 2 --sync-ref 4 --rfsim --rfsimulator.serveraddr server --log_config.global_log_options level,nocolor,time
+ networks:
+ public_net:
+ ipv4_address: 192.168.71.140
+ devices:
+ - /dev/net/tun:/dev/net/tun
+ volumes:
+ - ../../conf_files/nrue.uicc.conf:/opt/oai-nr-ue/etc/nr-ue.conf
+ healthcheck:
+ test: /bin/bash -c "pgrep nr-uesoftmodem"
+ interval: 10s
+ timeout: 5s
+ retries: 5
+
+ oai-nr-ue-2:
+ image: oaisoftwarealliance/oai-nr-ue:develop
+ container_name: rfsim5g-oai-nr-ue-2
+ cap_drop:
+ - ALL
+ cap_add:
+ - NET_ADMIN # for interface bringup
+ - NET_RAW # for ping
+ environment:
+ USE_ADDITIONAL_OPTIONS: --sl-mode 2 --rfsim --rfsimulator.serveraddr 192.168.71.140 --log_config.global_log_options level,nocolor,time
+ depends_on:
+ - oai-nr-ue-1
+ networks:
+ public_net:
+ ipv4_address: 192.168.71.150
+ devices:
+ - /dev/net/tun:/dev/net/tun
+ volumes:
+ - ../../conf_files/nrue.uicc.conf:/opt/oai-nr-ue/etc/nr-ue.conf
+ healthcheck:
+ test: /bin/bash -c "pgrep nr-uesoftmodem"
+ interval: 10s
+ timeout: 5s
+ retries: 5
+
+networks:
+ public_net:
+ driver: bridge
+ name: rfsim5g-oai-public-net
+ ipam:
+ config:
+ - subnet: 192.168.71.128/26
+ driver_opts:
+ com.docker.network.bridge.name: "rfsim5g-public"
+ traffic_net:
+ driver: bridge
+ name: rfsim5g-oai-traffic-net
+ ipam:
+ config:
+ - subnet: 192.168.72.128/26
+ driver_opts:
+ com.docker.network.bridge.name: "rfsim5g-traffic"
diff --git a/executables/nr-ue.c b/executables/nr-ue.c
index dca05ea36a..7d643e634e 100644
--- a/executables/nr-ue.c
+++ b/executables/nr-ue.c
@@ -802,7 +802,7 @@ void *UE_thread(void *arg)
bool syncRunning = false;
const int nb_slot_frame = fp->slots_per_frame;
- int absolute_slot = 0, decoded_frame_rx = INT_MAX, trashed_frames = 0;
+ int absolute_slot = 0, decoded_frame_rx = MAX_FRAME_NUMBER - 1, trashed_frames = 0;
int tx_wait_for_dlsch[NR_MAX_SLOTS_PER_FRAME];
int num_ind_fifo = nb_slot_frame;
@@ -897,7 +897,7 @@ void *UE_thread(void *arg)
"");
// we have the decoded frame index in the return of the synch process
// and we shifted above to the first slot of next frame
- decoded_frame_rx++;
+ decoded_frame_rx = (decoded_frame_rx + 1) % MAX_FRAME_NUMBER;
// we do ++ first in the regular processing, so it will be begin of frame;
absolute_slot = decoded_frame_rx * nb_slot_frame - 1;
if (UE->sl_mode == 2) {
diff --git a/openair2/LAYER2/NR_MAC_UE/mac_defs_sl.h b/openair2/LAYER2/NR_MAC_UE/mac_defs_sl.h
index 5960a30a46..10eaea3862 100644
--- a/openair2/LAYER2/NR_MAC_UE/mac_defs_sl.h
+++ b/openair2/LAYER2/NR_MAC_UE/mac_defs_sl.h
@@ -120,9 +120,9 @@ typedef struct sl_bch_params {
//configured from RRC
//Parameters used to determine PSBCH slot
sl_ssb_timealloc_t ssb_time_alloc;
+ uint8_t sl_mib[4] __attribute__((aligned(4)));
uint16_t slss_id;
bool status;
- uint8_t sl_mib[4];
//Parameters incremented by MAC PSBCH scheduler
//after every SSB txn/reception