From 4b859a2eb802ba8d40cf87605f950d0370771c18 Mon Sep 17 00:00:00 2001 From: Thomas Schlichter Date: Mon, 26 Aug 2024 17:08:03 +0200 Subject: [PATCH 1/7] fix sidelink UE issues found by sanitizer --- executables/nr-ue.c | 4 ++-- openair2/LAYER2/NR_MAC_UE/mac_defs_sl.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) 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 From d9648ae6b2c03da899fcd533f7a4a294539186c6 Mon Sep 17 00:00:00 2001 From: Jaroslava Fiedlerova Date: Wed, 7 Aug 2024 16:14:17 +0200 Subject: [PATCH 2/7] CI: Reduce ping time in rfsim 5G --- ci-scripts/xml_files/container_5g_fdd_rfsim.xml | 4 ++-- ci-scripts/xml_files/container_5g_rfsim.xml | 14 +++++++------- ci-scripts/xml_files/container_5g_rfsim_2x2.xml | 4 ++-- .../xml_files/container_5g_rfsim_u0_25prb.xml | 4 ++-- 4 files changed, 13 insertions(+), 13 deletions(-) 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..1709b4492d 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,7 +175,7 @@ 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 diff --git a/ci-scripts/xml_files/container_5g_rfsim_2x2.xml b/ci-scripts/xml_files/container_5g_rfsim_2x2.xml index 7899ac00c7..9cc87f830d 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,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_u0_25prb.xml b/ci-scripts/xml_files/container_5g_rfsim_u0_25prb.xml index 0540d44f1f..964e1f6ac4 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,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 From 7293741a995720327dd8ec509a87a1b13ec02756 Mon Sep 17 00:00:00 2001 From: Jaroslava Fiedlerova Date: Fri, 9 Aug 2024 22:22:42 +0200 Subject: [PATCH 3/7] CI: Reduce iperf time in RF-Sim 5G --- ci-scripts/xml_files/container_5g_f1_rfsim.xml | 4 ++-- ci-scripts/xml_files/container_5g_rfsim.xml | 4 ++-- ci-scripts/xml_files/container_5g_rfsim_24prb.xml | 4 ++-- ci-scripts/xml_files/container_5g_rfsim_2x2.xml | 4 ++-- ci-scripts/xml_files/container_5g_rfsim_fdd_phytest.xml | 4 ++-- ci-scripts/xml_files/container_5g_rfsim_u0_25prb.xml | 4 ++-- 6 files changed, 12 insertions(+), 12 deletions(-) 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_rfsim.xml b/ci-scripts/xml_files/container_5g_rfsim.xml index 1709b4492d..3751b256f2 100644 --- a/ci-scripts/xml_files/container_5g_rfsim.xml +++ b/ci-scripts/xml_files/container_5g_rfsim.xml @@ -182,7 +182,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 @@ -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 9cc87f830d..8c4aa6e2e4 100644 --- a/ci-scripts/xml_files/container_5g_rfsim_2x2.xml +++ b/ci-scripts/xml_files/container_5g_rfsim_2x2.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_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_u0_25prb.xml b/ci-scripts/xml_files/container_5g_rfsim_u0_25prb.xml index 964e1f6ac4..64f19e1314 100644 --- a/ci-scripts/xml_files/container_5g_rfsim_u0_25prb.xml +++ b/ci-scripts/xml_files/container_5g_rfsim_u0_25prb.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 From c49ed17c576dbf7e81edb74854c1ecebefda86e7 Mon Sep 17 00:00:00 2001 From: Jaroslava Fiedlerova Date: Fri, 9 Aug 2024 15:13:02 +0200 Subject: [PATCH 4/7] CI: Modify rfsim5g 2x2 testcase to use 100 MHz bandwidth --- ...nf => gnb.sa.band78.273prb.rfsim.2x2.conf} | 22 ++++++++----------- .../xml_files/container_5g_rfsim_2x2.xml | 8 +++---- .../5g_rfsimulator_2x2/docker-compose.yaml | 4 ++-- 3 files changed, 15 insertions(+), 19 deletions(-) rename ci-scripts/conf_files/{gnb.sa.band78.106prb.rfsim.2x2.conf => gnb.sa.band78.273prb.rfsim.2x2.conf} (96%) 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 5e77c29ce2..c8f038db9a 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_rfsim_2x2.xml b/ci-scripts/xml_files/container_5g_rfsim_2x2.xml index 8c4aa6e2e4..1cd9314e1b 100644 --- a/ci-scripts/xml_files/container_5g_rfsim_2x2.xml +++ b/ci-scripts/xml_files/container_5g_rfsim_2x2.xml @@ -86,8 +86,8 @@ Iperf - Iperf (DL/3Mbps/UDP)(30 sec) - -u -b 3M -t 20 -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 20 + Iperf (UL/4Mbps/UDP)(30 sec) + -u -b 4M -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: From 196051655466e4303c597de937171e20fe110cf1 Mon Sep 17 00:00:00 2001 From: Jaroslava Fiedlerova Date: Fri, 9 Aug 2024 15:13:51 +0200 Subject: [PATCH 5/7] CI: Add NTN GEO testcase to RF-Sim 5G --- .../gnb.sa.band66.ntn.25prb.rfsim.conf | 283 ++++++++++++++++++ .../xml_files/container_5g_rfsim_ntn_geo.xml | 91 ++++++ .../container_5g_rfsim_ntn_geo_down.xml | 45 +++ .../docker-compose.yaml | 145 +++++++++ 4 files changed, 564 insertions(+) create mode 100644 ci-scripts/conf_files/gnb.sa.band66.ntn.25prb.rfsim.conf create mode 100644 ci-scripts/xml_files/container_5g_rfsim_ntn_geo.xml create mode 100644 ci-scripts/xml_files/container_5g_rfsim_ntn_geo_down.xml create mode 100644 ci-scripts/yaml_files/5g_rfsimulator_ntn_geo/docker-compose.yaml 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/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/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" From fad450cbe3a63365b9a5a0b0712baeb98bd0df12 Mon Sep 17 00:00:00 2001 From: Jaroslava Fiedlerova Date: Tue, 13 Aug 2024 12:02:27 +0200 Subject: [PATCH 6/7] Skip UE Log Analysis During Sidelink Testing Bypass UE log analysis when testing sidelink, as it fails due to the absence of expected information and patterns (not present in sidelink communication). Instead, a custom command is used to verify the success of sidelink tests by checking for the presence of "PSBCH RX:OK" in the log of the second UE. --- ci-scripts/cls_oaicitest.py | 3 +++ 1 file changed, 3 insertions(+) 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: From 370062c04c1ffb1f5b60356999929e132d63dceb Mon Sep 17 00:00:00 2001 From: Jaroslava Fiedlerova Date: Fri, 9 Aug 2024 21:52:31 +0200 Subject: [PATCH 7/7] CI: Add sidelink test to RF-Sim 5G --- .../xml_files/container_5g_rfsim_sidelink.xml | 83 +++++++++++++++++++ .../container_5g_rfsim_sidelink_down.xml | 45 ++++++++++ .../docker-compose.yaml | 66 +++++++++++++++ 3 files changed, 194 insertions(+) create mode 100644 ci-scripts/xml_files/container_5g_rfsim_sidelink.xml create mode 100644 ci-scripts/xml_files/container_5g_rfsim_sidelink_down.xml create mode 100644 ci-scripts/yaml_files/5g_rfsimulator_sidelink/docker-compose.yaml 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/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"