Commit Graph
100 Commits
Author SHA1 Message Date
Jaroslava Fiedlerova 5ec7bcdcd2 Add timing check for physim tests on GraceHopper
Update Dockerfile to pass -DPHYSIM_CHECK_FILES="ThresholdsGracehopper.cmake".
2025-10-08 19:45:14 +02:00
Jaroslava Fiedlerova bcc616e654 Increase timeout for physim deployments
Extend the timeout for physim deployments on OC to allow tests to complete
reliably.
2025-10-08 19:45:14 +02:00
Jaroslava Fiedlerova 31af716ccb Update timing thershold for offload tests on Caracal 2025-10-08 19:45:14 +02:00
Jaroslava Fiedlerova ec8efe1b7e Unify physim test definition
Replace the previous add_timed_physim_test() macro with add_physim_test()
to use a single, unified function for defining physim tests. This simplifies
the test configuration and removes redundant macro definitions while keeping
all existing functionality.

This change follows up on the earlier addition of support for including
custom timing threshold files (PHYSIM_CHECK_FILES).

Update existing tests accordingly.
2025-10-08 19:45:14 +02:00
Jaroslava Fiedlerova 8910406a9e Add support for including custom timing threshold files in physim tests
Introduce a new CMake variable PHYSIM_CHECK_FILES to specify CMake files
(semicolon-separated) containing timing thresholds for timed physim tests.
2025-10-08 19:44:35 +02:00
Jaroslava Fiedlerova 78d91db964 Include timing analysis file in physim.rhel9 image
Add missing timinig analysis scripts to RHEL9 physim docker image. These files
are now copied from the build stage to /oai-ran/openair1/SIMULATION/tests/,
where they are expected by ctest.

Resolves following issue when running ctest in docker container:
CMake Error: Error processing file: /oai-ran/openair1/SIMULATION/tests/RunTimedTest.cmake
2025-10-08 10:57:50 +02:00
Jaroslava Fiedlerova 3e79774386 Enable DLSCH performance logging in nr_dlsim 2025-09-30 14:03:20 +02:00
Jaroslava Fiedlerova ff3245ea90 Enable ULSCH performance logging in nr_ulsim 2025-09-30 14:03:20 +02:00
Jaroslava Fiedlerova f691b7f9e4 Merge remote-tracking branch 'origin/fix-run-local-ci' into integration_2025_w38 (!3647)
Add nr-cuup to run_locally.sh

E1 deploy wasn't enable in the run_locally.sh script to run the CI on a local
machine. This MR is adding it. It was validated locally.
2025-09-17 14:56:45 +02:00
Jaroslava Fiedlerova e5413dcb2d Merge remote-tracking branch 'origin/issue993' into integration_2025_w38 (!3642)
Check command line for unknown options also at gNB
2025-09-17 10:16:43 +02:00
Jaroslava Fiedlerova 44fa1c2244 Merge remote-tracking branch 'origin/issue-954-fix' into integration_2025_w38 (!3568)
Fix UE DCI monitoring after RRC setup

After the UE is configured with pdcch-Config, it continues to monitor
fallback search spaces in pdcch-ConfigCommon for DCI with C-RNTI.

The rational is that after sending RRC Setup the network won't know if
the UE has received and successfully applied it. Hence the network would
still continue to use the fallback DCI till it receives RRC setup
complete.

Closes #954
2025-09-17 10:14:57 +02:00
Jaroslava Fiedlerova a9a554508d Merge remote-tracking branch 'origin/kpm-ran-func-segfault' into integration_2025_w38 (!3643)
Fix memory allocation issue in KPM RAN function sd parameter handling

This fixes a segmentation fault in the gNB when a KPM xApp sends the sd
parameter in the subscription message.

The segmentation fault seems to occur because *sd is uninitialized when
malloc(**sd) is called. This causes a double dereference of an uninitialized
pointer - **sd reads a random memory value which becomes the size parameter
for malloc(), leading to unpredictable memory allocation and segfaults.

This fix allocates the size using malloc(sizeof(uint32_t)) instead of
dereferencing the uninitialized pointer.
2025-09-16 12:58:55 +02:00
Jaroslava Fiedlerova 2a8b89a451 Merge remote-tracking branch 'origin/fix_error_ind_unpack' into integration_2025_w38 (!3639)
Fix error ind unpack

This MR fixes an issue in which the unpacking is erroneously deemed unsuccessful
even though it succeed in pulling all the bytes, this was due to not properly
handling the return value of pull16 which is either 0 or 2, not 0 or 1.

Additionally, this MR adds the Aerial specific expected error codes, as
described here:
https://docs.nvidia.com/aerial/archive/aerial-sdk/23-3/text/cubb_release_notes/scf_fapi_support.html#additional-aerial-specific-error-codes-reported-in-error-indication-from-l1-to-l2
2025-09-16 12:55:21 +02:00
Jaroslava Fiedlerova d372aa1b50 Merge branch 'integration_2025_w36' into 'develop'
Integration: `2025.w36`

* !3613 Speedup complex rotate for aarch64
* !3614 Ldpc encoder zc384 optimization
* !3625 gNB scheduler small fixes
* !3629 Fix for gNB max feedback time parameter
* !3619 Fix RA 2-Step MgsB Ack at UE
* !3626 Upgrade CI to Aerial 25-2

See merge request oai/openairinterface5g!3627
2025-09-04 16:36:42 +00:00
Jaroslava Fiedlerova 8e32225711 Merge remote-tracking branch 'origin/aerial_25-2' into integration_2025_w36 (!3626)
Upgrade CI to Aerial 25-2

The goal of this MR is to upgrade the Aerial setup to use release 25-2.
2025-09-03 17:00:43 +02:00
Jaroslava Fiedlerova 38ed261638 Merge remote-tracking branch 'origin/Fix_MsgB_Ack' into integration_2025_w36 (!3619)
Fix RA 2-Step MgsB Ack at UE

Update condition to prepare MsgB Ack the same way as Msg4 Ack
2025-09-03 12:57:00 +02:00
Jaroslava Fiedlerova 515eb988ab Merge remote-tracking branch 'origin/fix_set_max_fb_time' into integration_2025_w36 (!3629)
Fix for gNB max feedback time parameter

This bug is causing assertions like the following

Assertion (curr_pucch->active == 0) failed!
In nr_csi_meas_reporting() /oai-ran/openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_uci.c:282
CSI structure is scheduled in advance. It should be free!

because the PUCCH structure would be smaller than it should be causing
overlapping.
2025-09-03 08:43:06 +02:00
Jaroslava Fiedlerova 1271d91676 Merge remote-tracking branch 'origin/minor_sched_fixes' into integration_2025_w36 (!3625)
gNB scheduler small fixes

A couple of fixes in gNB scheduling function. Removing a superfluous input from
CCE function and adding a missing call to reset beam allocation.
2025-09-02 20:51:09 +02:00
Jaroslava Fiedlerova 774c390bbe Merge remote-tracking branch 'origin/ldpc_encoder_ZC384_optimization' into integration_2025_w36 (!3614)
Ldpc encoder zc384 optimization

This is a modification for the ldpc encoder which improves performance for
high-throughput cases. It contains a newly-generated file for innermost part of
the parity bit generation which, for AVX512, uses the mm512_permutex2var_epi8
instruction and for 128-bit (aarch64) the mm_alignr_epi8 (vextq_s8) in the
computation corresponding to each non-zero bit of the H matrix. This allows for
removing a very large memcpy and reduces the memory demand for the parity matrix
computation. For the moment this is limited to largest case in BG1, namely
Zc=384. This is the only format used when the number of segments after codeblock
segmentation is large (>8). This improves the timing required for ldpc parity
bits generation by more than a factor 2 with AVX512. This significantly reduces
the total time to generate the DLSCH/PDSCH.

See the merge request description for numbers.
2025-09-02 11:06:20 +02:00
Jaroslava Fiedlerova 9d2960eab8 Merge remote-tracking branch 'origin/cpx_rotate_aarch64' into integration_2025_w36 (!3613)
Speedup complex rotate for aarch64

This is a simple optimization for aarch64 for the "rotate_cpx_vector" used for
the phase_rotation in 5G NR. It provides a speedup of around 1.5 on high-end
aarch64 targets compared to the SIMDe translated version. It is implemented with
native NEON intrinsics and was largely inspired by suggestions from ChatGPT 5 :-)
2025-09-02 11:04:44 +02:00
Jaroslava Fiedlerova 433d5c1099 CI: update XML and yaml files for 10 UEs/process RFSim test 2025-08-27 13:15:40 +02:00
Jaroslava Fiedlerova 8f79abed2e CI: Update UHD version to 4.8 2025-08-12 22:27:29 +02:00
Jaroslava Fiedlerova 05f9c975ee Merge branch 'integration_2025_w32' into 'develop'
Integration: `2025.w32`

* !3548 NR UE: fix reliable SIB19 reception when ntn-UlSyncValidityDuration-r17 expires
* !3559 numelt in place of config_isparamset
* !3487 T hacks: add new tracer ant0 and a tool to plot ofdm data from usrp or rfsim (output or input)
* !3541 simplify and make more local variables in nr_rx_pdcch() and fix small bugs
* !3547 Add a CU-UP load tester and improve GTP performance
* !3552 CI: refactor iperf3 UDP analysis function
* !3557 Fix PDSCH rate-matching for periodic CSI in UE
* !3571 fix time manager tests in the CI
* !3344 LDPC BBDEV/AAL rework
* !3560 CI: Refactor log collection, collect also (COTS) UE logs

See merge request oai/openairinterface5g!3565
2025-08-08 10:04:17 +00:00
Jaroslava Fiedlerova 3491a044ff Merge remote-tracking branch 'origin/ci-collect-ue-logs' into integration_2025_w32 (!3560)
CI: Refactor log collection, collect also (COTS) UE logs

Refactor log handling in CI: collect according to currently used XML files. This
makes it homogeneous in the pipelines, and avoids accidental overwriting (as
happens in phytest-timing), as well as harmonizing the log placement
(e.g., no YAML lookup in Ping/Iperf).

Allow to trace and archive UE logs (e.g., Quectel via QLog, Amarisoft UE logs).
By default, no logs will be collected as of this MR, as many files are big.

Various cleanup in Jenkinsfiles, some bugfixes, add unit tests.
2025-08-07 21:40:35 +02:00
Jaroslava Fiedlerova 5ca59d0f48 Merge remote-tracking branch 'origin/ldpc-aal' into integration_2025_w32 (!3344)
LDPC BBDEV/AAL rework

This branch aims to generalize the existing LDPC T2 implementation to support
other DPDK BBDEV accelerators, e.g., Intel ACC100/200.

Differences from the current T2 implementation include:
  1. relax CMakeLists.txt checking for custom dpdk-t2 implementation,
     technically, any DPDK BBDEV should work
  2. BBDEV capability checks during init
  3. llr_scaling to scale the input llr accordingly for better decoding
     performance on the Intel ACC100/200
  4. self-managed harq buffers for the ACC200, as internal harq memory is not
     available

Tested BBDEV devices:
  1. Intel ACC100
  2. Intel ACC200/VRB1
2025-08-07 12:17:11 +02:00
Jaroslava Fiedlerova 5555a465fc Merge remote-tracking branch 'origin/fix-time-manager-ci' into integration_2025_w32 (!3571)
fix time manager tests in the CI

Attempt to have less errors in the CI for the time manager module.
2025-08-06 22:54:07 +02:00
Jaroslava Fiedlerova 555e609a86 Merge remote-tracking branch 'origin/ue-fix-csi-sched' into integration_2025_w32 (!3557)
Fix PDSCH rate-matching for periodic CSI in UE

Changed the search structure to have periodic resoruce id in the outer
loop and configured resource set as inner loop to prevent configuring
resource that is not needed.

Use const for input pointers.
2025-08-06 11:37:00 +02:00
Jaroslava Fiedlerova b421bdd276 Merge remote-tracking branch 'origin/ci-iperf3-log-fix' into integration_2025_w32 (!3552)
CI: refactor iperf3 UDP analysis function

- add helper function to covert reported bitrate values to Mbps for calculations
- clean up the UDP analysis function, improve test report formatting
- fix an issue where Gbps values were incorrectly reported
  (example: https://jenkins-oai.eurecom.fr/job/RAN-SA-AERIAL-CN5G/4802/)
- update CI unit test report checks to match the new formatting
2025-08-06 11:36:02 +02:00
Jaroslava Fiedlerova d630fb2965 Merge remote-tracking branch 'origin/cuup-load-tester' into integration_2025_w32 (!3547)
Add a CU-UP load tester and improve GTP performance

This adds a simple tester program for the CU-UP. It sets up a number of
UEs/bearers in the CU-UP via the E1 interface, then streams data in
downlink/uplink (as seen by the CU-UP). More information is available in
tests/nr-cuup/README.md.

Includes some fixes to properly verify that SCTP is installed, and use
"the right cmake way" to use it in cmake code (see commit for details).
2025-08-04 23:59:05 +02:00
Jaroslava Fiedlerova de91ab6eb9 Merge remote-tracking branch 'origin/enhance-ssb-dci-processing' into integration_2025_w32 (!3541)
simplify and make more local variables in nr_rx_pdcch() and fix small bugs...

simplify and make more local variables in nr_rx_pdcch() and fix small bugs
(size 9 RE instaed of 12 RE)
2025-08-04 23:57:40 +02:00
Jaroslava Fiedlerova da2cbea5e4 Merge remote-tracking branch 'origin/record-iq' into integration_2025_w32 (!3487)
T hacks: add new tracer ant0 and a tool to plot ofdm data from usrp or rfsim
(output or input)

The tool ant0 dumps IQ data to a file (or stdout) as float complex or short.
It is needed for a student's project. (Well, we could use record/extract, but
it's simpler.) The tool ofdm-plot is used to plot output or input signal from
gnb in the frequency domain. May be useful to debug, why not.
2025-08-04 23:55:32 +02:00
Jaroslava Fiedlerova 611971c3c7 Merge remote-tracking branch 'origin/use_numet_not_config_isparamset' into integration_2025_w32 (!3559)
numelt in place of config_isparamset

config_isparamset doesn't seem to work for array types, a temporary solution is
using numelt to verify if the parameter is set in config file
2025-08-04 16:19:35 +02:00
Jaroslava Fiedlerova c29a56fd17 Merge remote-tracking branch 'origin/fix_sib19_reception' into integration_2025_w32 (!3548)
NR UE: fix reliable SIB19 reception when ntn-UlSyncValidityDuration-r17 expires

Fixes:
- gNB: fix scheduling of Rel-17 SIBs
- gNB: fix case in update_SIB1_NR_SI() when multiple Rel-17 SIBs would be defined
- NR UE: fix calculation of SI window expiry

Updating LEO scenario to test this
- set ntn-UlSyncValidityDuration-r17 to 5 seconds for LEO scenario
- NTN config: setting sib1_tda is not required anymore
2025-08-04 16:18:08 +02:00
Jaroslava Fiedlerova a9f10bd794 Add CI unit test for highrate iperf test 2025-08-01 12:45:33 +02:00
Jaroslava Fiedlerova 73cfaba2dc CI: refactor iperf3 UDP analysis function
- Add helper function to normalize bitrate values to Mbps for calculations.
- Add helper function to extract data from iperf test report.
- Clean up the UDP analysis function, improve test report formatting.
- Fix an issue where Gbps values were incorrectly reported due to inconsistent
  unit parsing.
- Update CI unit test report checks to match the new formatting.
2025-08-01 12:45:29 +02:00
Jaroslava Fiedlerova ac6561335c CI: adjust gNB conf file in OAIUE pipeline
Following frequency change in the pipeline, we observed degraded UL channel
conditions resulting in low UL throughput. Increasing attenuation on the gNB
side was found to mitigate this issue by improving UL channel quality
and reducing UL noise power.

Increase tested UL and DL bitrates in OAIUE pipeline.
2025-07-30 18:11:09 +02:00
Jaroslava Fiedlerova 6c8fc09525 CI: change frequency for AW2S pipeline 2025-07-30 10:59:47 +02:00
Jaroslava Fiedlerova 62dd459959 CI: change frequency for OAIUE pipeline 2025-07-29 09:30:23 +02:00
Jaroslava Fiedlerova 61c769f8b5 Merge branch 'integration_2025_w30' into 'develop'
Integration: `2025.w30`

* !3529 Add CI RFsim5G test for second PDU session
* !3532 Count bits in variable with mask
* !3533 CI: test T2 with DPDK 22.11
* !3535 RAN-Container-Parent: Auto-generate artifact in failure case
* !3542 bugfix: avoid segmentation fault when Redcap tries to connect to gNB
* !3543 rfsimulator: fix model name for channel
* !3540 CI: migrate RFSim4G to acamas machine

See merge request oai/openairinterface5g!3539
2025-07-23 15:13:27 +00:00
Jaroslava Fiedlerova 300060c26e Merge remote-tracking branch 'origin/ci-move-rfsim4g-to-acamas' into integration_2025_w30 (!3540)
CI: migrate RFSim4G to acamas machine
2025-07-23 16:46:21 +02:00
Jaroslava Fiedlerova fa9feda58f Merge remote-tracking branch 'origin/rfsim-test-fix' into integration_2025_w30 (!3543)
rfsimulator: fix model name for channel
2025-07-23 11:10:58 +02:00
Jaroslava Fiedlerova dcdf0d3bb5 Merge remote-tracking branch 'origin/bugfix-RA-Redcap' into integration_2025_w30 (!3542)
bugfix: avoid segmentation fault when Redcap tries to connect to gNB

bugfix: avoid segmentation fault when Redcap tries to connect to gNB
as NR_ServingCellConfig_t scd is NULL when Redcap does RA
2025-07-23 11:10:17 +02:00
Jaroslava Fiedlerova 9f5c58f358 Merge remote-tracking branch 'origin/ci-handle-no-artifact' into integration_2025_w30 (!3535)
RAN-Container-Parent: Auto-generate artifact in failure case

RAN-Container-Parent uses Jenkinsfile-GitLab-Container, which only
triggers sub pipelines, then collects their results. However, if a sub
pipeline did not generate an artifact, the result was skipped. It would
also not show it in the automatically generated result page, when it
should.

Remedy this by automatically generating a file with a link to the
pipeline if the artifact could not be retrieved, which
1. Will give a link, which is easier for developers to follow to the
   pipeline than manually clicking through Jenkins,
2. Makes the failed pipeline appear in the list of failed pipelines.
2025-07-23 11:09:32 +02:00
Jaroslava Fiedlerova c3cb3c8e91 Merge remote-tracking branch 'origin/ci-t2-dpdk-22.11' into integration_2025_w30 (!3533)
CI: test T2 with DPDK 22.11

Following the upgrade of T2 to the latest firmware, DPDK 22.11 is now required.
This MR updates the testing pipeline to ensure compatibility and deployment of
T2 physims with DPDK 22.11.
2025-07-23 11:08:53 +02:00
Jaroslava Fiedlerova 2ca61b02f1 Merge remote-tracking branch 'origin/count_bits_with_mask' into integration_2025_w30 (!3532)
Count bits in variable with mask

Adding a function to count bit using a mask to set starting and ending point
in the variable
2025-07-23 11:07:49 +02:00
Jaroslava Fiedlerova b710b7fd8c Merge remote-tracking branch 'origin/test-ci-extra-pdu-session' into integration_2025_w30 (!3529)
Add CI RFsim5G test for second PDU session

after !3486 (merged), check that a second PDU session works with OAi UE by
pinging through it.
2025-07-23 11:06:53 +02:00
c5bc949a96 rfsimulator: fix model name for channel
bridge->nb_cnx++ is done before calling snprintf(modelname,... in the function,
so we take the model name of the next channel. This commit corrects the issue by
using bridge->nb_cnx - 1, ensuring that the model name corresponds to the currently
connected client.
This bug was introduced by MR !3455.

Co-authored-by: Bartosz Podrygajlo <bartosz.podrygajlo@openairinterface.org>
Co-authored-by: Laurent THOMAS <laurent.thomas@open-cells.com>
2025-07-22 18:21:03 +02:00
Jaroslava Fiedlerova 3c03e18c23 CI: move RFSim 4G to acamas 2025-07-22 18:17:58 +02:00
Jaroslava Fiedlerova 0079c4613e CI: change frequency for phytests with USRP N310 2025-07-18 17:04:51 +02:00
Jaroslava Fiedlerova 47d857c919 CI: test T2 with DPDK 22.11
Build and run OAI physims with DPDK version 22.11 for testing with the latest
T2 firmware release. Environment variables PKG_CONFIG_PATH and LD_LIBRARY_PATH
are set to point to the custom installation path of DPDK v22.11.
2025-07-18 13:49:30 +02:00
Jaroslava Fiedlerova fb6640f0e1 CI: adjust UL throughput target for 2x2 RFSim5G test on acamas
This commit reduces the UL throughput target in the 2x2 test to align
with the host’s performance capabilities. The adjustment ensures more
reliable and consistent CI results.
2025-07-16 15:13:12 +00:00
Jaroslava Fiedlerova 7ba7017fb7 CI: add sleep after UE deployment in TDD dora test
Give more time to the gNB-UE to establish the connection before ping
test is triggered.
2025-07-16 15:13:12 +00:00
Jaroslava Fiedlerova 456d7f1aab CI: Increase sleep time in RFSim5G
Based on observations from testing on acamas, the interval between DL
disruption and the UE synch check needs to be increased - the UE takes
longer to go out of sync . A sleep of 15 seconds has proven to be a
reliable value to ensure constant results.
2025-07-16 15:10:29 +00:00
Jaroslava Fiedlerova cde021e1d9 CI: add SYS_NICE capability in some RFSim5G tests
Add SYS_NICE capability to enable setting thread priority and affinity
in rfsim5g tests. This improves execution speed in test cases with
heavier processing workloads.
2025-07-16 08:34:04 +00:00
Jaroslava Fiedlerova 3d270cf627 CI: replace nc by ncat
When migrating from RHEL (on cacofonix) to Ubuntu 22.04 (on acamas), the `nc`
command needs to be replaced by `ncat`. The version of `nc` available on Ubuntu
is the OpenBSD variant, which lacks support for some options used in our scripts.
`ncat` from the Nmap is used instead.
2025-07-16 08:20:04 +00:00
Jaroslava Fiedlerova 625c8cfd51 CI: move RFSim 5G to acamas 2025-07-11 09:59:37 +00:00
Jaroslava Fiedlerova e82fde247a Merge branch 'integration_2025_w28' into 'develop'
Integration: `2025.w28`

* !3517 CI: set interface name in UPF container for RFSim5G
* !3501 Fix automatic SSS detection logic
* !3503 DLSCH RB extraction: check DMRS bitmap only in DMRS symbols
* !3498 bugfix: UE AMBR is optional
* !3504 Improvements to the FHI for enabling further use cases

Closes #975

See merge request oai/openairinterface5g!3518
2025-07-11 08:03:04 +00:00
Jaroslava Fiedlerova bc626c3234 Merge remote-tracking branch 'origin/oran_fhi_f_dpdk_21_plus' into integration_2025_w28 (!3504)
Improvements to the FHI for enabling further use cases

These changes to the FHI were primarily thought to enable the integration of
the intel ACC ( !3344 ) in parallel of the FHI.
I preferred to make a separate MR because I believe this topic is orthogonal
enough to be handled separately and because I wanted to bring even further
improvements.
The improvements that it actually brings are:

- Enable compiling and running xran F release with DPDK 21+
- Enable including a BBDEV device in addition of the ethernet device for the
  FHI when performing EAL init, which is necessary for using the intel ACC
  with the FHI.
- Fix an issue in usage of pkgconfig in xran E and F release. This enables to
  reliably build xran with the version of DPDK requested to pkgconfig while
  before this fix xran was always selecting the headers installed in /usr/local.
2025-07-09 17:36:18 +02:00
Jaroslava Fiedlerova dc2e127c1c Merge remote-tracking branch 'origin/bugfix-ambr-is-optional' into integration_2025_w28 (!3498)
bugfix: UE AMBR is optional

This was a problem with open5gs and more than one PDU session. The core network
sets UE AMBR only once, leading to failure in the gNB for the second PDU session.
(A proper handling of AMBR has to be develop at some point in the gNB.)
2025-07-09 11:08:25 +02:00
Jaroslava Fiedlerova d71e333329 Merge branch 'ci-rfsim5g-fix' into 'develop' (!3517)
CI: set interface name in UPF container for RFSim5G

This MR addresses an issue related to CN deployment, observed in the RFSim5G CI pipeline. Specifically, the IP addresses within the UPF container were not consistently bound to the correct network interfaces. This inconsistency led to incorrect IP address assignments for the N3, N4, and N6 interfaces, resulting in connectivity issues.

See merge request oai/openairinterface5g!3517
2025-07-08 15:05:31 +00:00
Jaroslava Fiedlerova 4a169f6c8a Update documentation for RFSim5G test deployments 2025-07-08 14:05:38 +02:00
Jaroslava Fiedlerova 67474f2246 Merge remote-tracking branch 'origin/issue_975' into integration_2025_w28 (!3503)
DLSCH RB extraction: check DMRS bitmap only in DMRS symbols

Closes #975
2025-07-08 11:37:52 +02:00
Jaroslava Fiedlerova 6ff8d085fb Merge remote-tracking branch 'origin/fix-sss-detection' into integration_2025_w28 (!3501)
Fix automatic SSS detection logic

When we try to detect a specific PCI and it fails, the SSS detection returns
successful detection with wrong frequency offset.
2025-07-08 11:36:46 +02:00
Jaroslava Fiedlerova 8ef0bf8462 CI: specify interface names in UPF container 2025-07-08 11:11:58 +02:00
Jaroslava Fiedlerova 874d2b73a4 CI: reduce number of attach tries 2025-06-27 20:16:48 +02:00
Jaroslava Fiedlerova 1407784130 CI: RFSim 5G – Wait for IP address assignment before starting traffic test 2025-06-27 20:16:48 +02:00
Jaroslava Fiedlerova 136a59b42c CI: increase deployment interval for Cassandra database 2025-06-27 20:16:48 +02:00
Jaroslava Fiedlerova 63bdaaa1cb CI: remove unused attributes in cls_containerize.py 2025-06-27 20:16:48 +02:00
Jaroslava Fiedlerova f7b3e04cf9 CI: new healthcheck condition for OTA docker deployments
This modification aims to improve health status detection by using PRACH IO as
an indicator of the gNB's status (container is marked as "healthy" when the
PRACH IO value in gNB nrL1_stats.log exceeds 0.0 dB.). The new condition accounts
for scenarios where the container may not exit or produce error codes (e.g.,
“sleep” logs or "error code overflow" messages).
2025-06-27 20:16:48 +02:00
Jaroslava FiedlerovaandBartosz Podrygajlo 2d39851983 CI: adjustment of DeployObject to speedup deployment
- using docker compose up --wait instead of a custom healthcheck script

Co-authored-by: Bartosz Podrygajlo <bartosz.podrygajlo@openairinterface.org>
2025-06-27 20:16:48 +02:00
Jaroslava FiedlerovaandBartosz Podrygajlo 33d011b2cb CI: adjust YAML files to speedup deployment/undeployment in rfsim5g
- `init: true` initializes the docker container with tini or alternative - it is
  used to collect all the processes and correctly pass the termination signal to
  them, this allows the docker container to be stopped without waiting 10 seconds
  to kill the container
- speeding up the healthchecks by reducing the interval from 1-10s to 0.5s during
  start period

Co-authored-by: Bartosz Podrygajlo <bartosz.podrygajlo@openairinterface.org>
2025-06-27 20:16:43 +02:00
Jaroslava Fiedlerova 20f4951bfe CI: use CN with NAS ciphering + integrity in OAIUE and SA-2x2 pipelines 2025-06-27 11:04:37 +02:00
Jaroslava Fiedlerova a3b9db2022 Merge branch 'integration_2025_w26' into 'develop'
Integration: `2025.w26`

See merge request oai/openairinterface5g!3493

* !3435 Cleanup PDU Session Handling in RRC/NGAP
* !3371 Add NAS Authentication Reject enc/dec library and unit test
* !3490 nr pdcp security: add a 'decipher' API function
* !3477 CI: Upgrade Aerial version to 25-1
* !3491 Fix Msg3 with MAC CE for C-RNTI and RRCReestablishmentComplete
2025-06-26 15:19:26 +00:00
Jaroslava Fiedlerova 99eb6c726c Merge remote-tracking branch 'origin/Msg3_C-RNTI_RRCReestablishmentComplete' into integration_2025_w26 (!3491)
Fix Msg3 with MAC CE for C-RNTI and RRCReestablishmentComplete

- Only trigger RRCReconfiguration if UE is not performing RRCReestablishment
- The RRCReconfiguration will be triggered by the RRCReestablishmentComplete

Since this MR fixes a regression, additional info can be found in the following
closed issues and merged MR:
- #687 (closed)
- #747 (closed)
- !2600 (merged)
2025-06-25 22:33:21 +02:00
Jaroslava Fiedlerova c22e7d22c4 Merge remote-tracking branch 'origin/aerial-25_1' into integration_2025_w26 (!3477)
CI: Upgrade Aerial version to 25-1

- Update the Nvidia L1 (cuBB) from version 24-3 to 25-1
- Decrease the number of cores dedicated to the OAI gNB; testing showed
  it does not need that many
2025-06-25 12:59:54 +02:00
Jaroslava Fiedlerova c7cb7896a0 CI: add a test with AS ciphering + integrity 2025-06-24 16:43:26 +02:00
Jaroslava Fiedlerova 8db35e468d Merge remote-tracking branch 'origin/cleanup-pdu-session' into integration_2025_w26 (!3435)
Cleanup PDU Session Handling in RRC/NGAP

Currently, NGAP and RRC share the same structures and responsibilities when
handling PDU Session information: this creates tight coupling, redundancy, and
makes the code harder to maintain.

- NGAP should be responsible only for: Protocol-specific encoding/decoding
(3GPP TS 38.413)
- RRC should own: PDU Session handling and storage in the UE context

This MR is the first step in a broader refactoring of the PDU Session handling
code across NGAP and RRC layers, with the goal of splitting responsibilities
cleanly between both modules.

- Unified gtpu_tunnel_t for tunnel endpoint config (formerly f1u_tunnel_t)
- Refactored and relocated PDU Session struct definitions for better separation
  between NGAP and RRC
  - Moved pdusession_t for PDU Session handling out of NGAP, now defined and
    managed by RRC only
  - Defined 3GPP TS 38.413 message-specific structs in NGAP module
  - NGAP now decodes NGAP PDU Session Resource Setup/Modify IEs and transfers
    decoded data to RRC via ITTI
  - Add helper functions to copy from NGAP message to pdusession_t
- Introduced new encoders/decoders/helpers in NGAP for handling PDU Session
  Resource Setup/Modify procedures (e.g. decode_pdusession_transfer)
  - Migrated to NGAP and removed duplicated logic for QoS information decoding
    (fill_qos)
- Improved logging of GTP tunnel info
- Merged redundant functions (f1u_dl_gtp_update and f1u_ul_gtp_update)
- Removed unused code and obsolete types
- do free_func in seq_arr_erase_it on the provided range and updated unit test
- Other fixes and simplifications (e.g. simplified and clarified naming of
  tunnel/session parameters and structs)

This cleanup improves code readability, has a high code churn (the deletions are
~159.7% of the insertions) and prepares for better modularity before the
refactoring of PDU Session handling in RRC/NGAP.
2025-06-23 15:55:57 +02:00
Jaroslava Fiedlerova 472480f6fe Merge remote-tracking branch 'origin/pdcp-decipher-api' into integration_2025_w26 (!3490)
nr pdcp security: add a 'decipher' API function

May be needed for new algorithms where ciphering and deciphering are different
operations.
2025-06-23 15:37:54 +02:00
Jaroslava Fiedlerova 673024f587 Merge remote-tracking branch 'origin/nr-ue-nas-auth-reject' into integration_2025_w26 (!3371)
Add NAS Authentication Reject enc/dec library and unit test

This MR introduces the library for encoding/decoding of NAS Authentication
Reject (8.2.5.1 of 3GPP TS 24.501) and relevant unit test.

The message is sent by the AMF to the UE to indicate that the authentication
procedure has failed. A NAS handler was also introduced.
2025-06-23 15:36:23 +02:00
Jaroslava FiedlerovaandAlexandre Serio alexandre.j.serio@altice.pt a679a4fb7a Merge remote-tracking branch 'origin/fix-usrp-lib-time-source' into integration_2025_w25 (!3480)
USRP lib: fix incorrect config check for time_source fallback

Corrected a logic bug in usrp_lib.cpp where the code mistakenly checked
openair0_cfg[0].clock_source instead of time_source when a time_source
was already specified in usrp_args.

Also improved the warning log to clarify that the config value is being
ignored in favor of the explicit user-provided usrp_args.

Co-authored-by: Alexandre Serio alexandre.j.serio@altice.pt
2025-06-18 12:43:02 +02:00
Jaroslava Fiedlerova 8d340fca6e Merge remote-tracking branch 'origin/issue-970-meas-quantity' into integration_2025_w25 (!3484)
gNB RRC: handle optional measResultQuantity fields independently

Closes: #970
2025-06-18 12:41:14 +02:00
Jaroslava Fiedlerova 6cb9db1a9b Merge remote-tracking branch 'origin/RNTI_UE_stats' into integration_2025_w25 (!3481)
RNTI information printed in UE stats
2025-06-18 12:40:42 +02:00
Jaroslava Fiedlerova b03619ea51 Merge remote-tracking branch 'origin/reg-reject-len-check' into integration_2025_w25 (!3447)
NAS Registration Reject: Add bounds and lengths checks

This change adds lengths checks to the received registration reject
message and also performs a bounds check for the received cause.
Since the cause is not checked, any string in the memory can be
dereferenced, possibly leading to DoS.

Signed-off-by: Eduard Vlad eduard.vlad@rwth-aachen.de
2025-06-18 11:33:20 +02:00
Jaroslava Fiedlerova 5580dd21cf Merge remote-tracking branch 'origin/nfapi_dump_functions' into integration_2025_w25 (!3445)
Finalize FAPI dump functions, add Digital Beamforming Table and Precoding Matrix
Table to CONFIG.request

This MR finalizes the addition of dump utility functions for the PARAM.response,
CONFIG.request, CONFIG.response, TX_DATA.request and UCI.indication messages.

These functions are intended to be used to aid in debugging FAPI messages between
the VNF and the PNF by printing out every parameter in a more readable form,
instead of a simple hexdump. These are also used by the nFAPI Hex Parser utility,
to be able to debug an Hex dump provided from elsewhere.

Furthermore, this MR also adds the necessary logic to send/receive the Digital
Beamforming Table and Precoding Matrix Table, this in the CONFIG.request message.
This is achieved by the addition of 2 Vendor Extension TLVs (0xA002 and 0xA003),
in order to be able to reuse existing logic to pack/unpack the data. Note: The
present implementation predicts the existence of multiple instances of the
Precoding Matrix Table via the parameter num_pm_idx, whic is not present in the
SCF specification. Note: The created TLVs are only used to ease the pack/unpack
procedure, by allowing to reuse already existing logic for other TlVs, the tag
and length are not sent.

The necessary additions to the utility functions are done to account for these
table. The CONFIG.request unitary test is changed to fill these tables with
randomized data to test transport and copy.
2025-06-18 11:30:32 +02:00
Jaroslava Fiedlerova d35270bfd0 Merge remote-tracking branch 'origin/dl-nas-transport-len-check' into integration_2025_w25 (!3446)
DL NAS Transport: Fix Message Type retrieval on too short message

The change addresses the SM message type retrieval for DL NAS Transport
messages. The assumption of an offset 17 = 7 (MM Sec) + 3 (MM Plain) + 1
(IEI) + 2 (Len) + 4 (SM) is correct.

However, if the DL NAS Transport is received in a plain header, the
lengths would not add up anymore. (This is not complying with the
standard, so not allowed, but possible). The check for the length is
necessary to not process arbitrary memory contents beyond the
pdu_buffer.
2025-06-17 23:39:02 +02:00
Jaroslava Fiedlerova 547b2eaf52 Merge remote-tracking branch 'origin/UE_RB_suspend' into integration_2025_w25 (!3479)
Suspend RBs at UE

In case of suspended radio bearer (by RRC), the MAC needs to discarded received
PDUs and avoid to transmit using LCID related to that RB
2025-06-17 23:37:25 +02:00
Jaroslava Fiedlerova 6878550557 Merge remote-tracking branch 'origin/NR_RRC_UE_fallback_to_Setup_from_Reestablishment' into integration_2025_w25 (!3428)
NR UE fallback to RRCSetup from RRCReestablishment

Implementation of the procedure to handle reception of RRCSetup as response
to RRCReestablishment request
2025-06-17 10:33:15 +02:00
Jaroslava Fiedlerova 9146879207 Merge remote-tracking branch 'origin/fast-u22-build' into integration_2025_w25 (!3083)
Speed up ubuntu22 image build

Speed up softmodems build by means of:
- Avoiding the copying the repo (using bind instead)
- Creating cache directories for:
  - ccache cache
  - CPM cache
  - Same technique applied to FlexRIC build
- Make ubuntu ran-base image docker build cache friendly
2025-06-17 10:31:43 +02:00
Jaroslava Fiedlerova 27ece7e7f5 CI: update AmariUE configuration file, add RF configuration 2025-06-12 11:46:47 +02:00
Jaroslava Fiedlerova c5f5ab2820 CI: set NR RLC and NR PDCP parameters in the conf file
Default values used.
2025-06-05 14:58:37 +02:00
Jaroslava Fiedlerova a0578a5205 Merge remote-tracking branch 'origin/remove-dead-variables' into integration_2025_w23 (!3467)
remove dead globals
2025-06-03 19:00:18 +02:00
Jaroslava Fiedlerova 3bf3b78cb6 Merge remote-tracking branch 'origin/fix-msg3-datarace' into integration_2025_w23 (!3443)
Fix data race in NR UE MSG3 scheduling

Fixed a data race between DL processing of RAR and UL scheduler, which might
result in dropping MSG3.

It was possible that the UL scheduler for the UL slot which RAR indicates as
MSG3 slot was already run by the time the RAR was decoded.

Therefore when DCI for RAR is decoded, assume worst case and halt UL scheduler
for next slot until RAR is decoded solving the data race. This also in turn
halts all later scheduling due to sequential nature of the UL scheduler calls.

Closes #962
2025-06-03 18:59:16 +02:00
Jaroslava Fiedlerova 8fbee94045 Merge remote-tracking branch 'origin/imscope-csv-export' into integration_2025_w23 (!3417)
imscope updates

- Add CSV export button to imscope
- Add extra cache for IQ data in imscope record thread so that UE time domain
  data can be kept until PDSCH is decoded.
- Add metadata to UE time domain samples scope
- Add UE pdsch pre-compensation IQ and PDSCH channel estimates
2025-06-03 18:04:29 +02:00
Jaroslava Fiedlerova 4104a1fbcf Merge remote-tracking branch 'origin/relax-ue-k1k2-assert' into integration_2025_w23 (!3389)
Relax NR_UE_CAPABILITY_SLOT_RX_TO_TX asserts

Relax the UEs requirements on k1/k2 value.
2025-06-03 18:03:35 +02:00
Jaroslava Fiedlerova 404e0b3ba8 Merge remote-tracking branch 'origin/nr-rrc-config-at-mac' into integration_2025_w23 (!3463)
Move RRC radio parameters file to DU

A number of radio-related RRC parameters, e.g., CellGroupConfig, "originate" at
the DU and are sent to the CU for forwarding to the UE only. Similarly, there
are additional parameters, e.g., RLC-BearerConfig (part of CellGroupConfig),
that originate at the DU.

Hence, the DU decides about these parameters, depending on the MAC state and
capabilities. To clarify this, move the existing

openair2/RRC/NR/nr_rrc_config.{c,h} => openair2/LAYER2/NR_MAC_gNB/nr_radio_config.{c,h}

So that developers know that while those are RRC parameters, they originate at
the DU.

In other words, the CU/RRC is not supposed to use any of these functions in
the RRC. Correspondingly, includes of this file have been cleaned up (and when
they are not necessary at the MAC as well)
2025-06-03 18:00:49 +02:00
Jaroslava Fiedlerova c52e2681c2 CI: Use host network mode in NSA-B200 pipeline
Following a power cycle of the CI machines in the NSA-B200 setup, the gNB
machine encountered a networking issue. Although packets were observed leaving
and returning to the host of gNB, they failed to reach the container.

Debugging steps taken:
- upgraded the gNB machine
- reinstalled Docker
- reviewed and verified IP rules and routing settings

Setting the container to use host network mode resolved the issue.
2025-06-03 13:25:01 +02:00
Jaroslava Fiedlerova 12d3ef48eb Merge remote-tracking branch 'origin/fix-config-not-set' into integration_2025_w23 (!3465)
Fix checking that amf_ip_address section is not set.

The constructed setting path with prefix was invalid.

Closes #956
2025-06-03 10:51:46 +02:00
Jaroslava Fiedlerova 7efbdef2dc Merge remote-tracking branch 'origin/NR_bands_fix' into integration_2025_w23 (!3459)
Improvements in NR band tables according to Rel.17

Following a request in the mailing list
2025-06-03 10:50:07 +02:00
Jaroslava Fiedlerova 2b4bbf7930 Merge remote-tracking branch 'origin/bugfix-t-event-checks' into integration_2025_w23 (!3400)
T bugfix: check input data a bit better

Some small fixes in T tracers.
2025-06-02 16:44:36 +02:00
Jaroslava Fiedlerova dda3b7e88d Merge remote-tracking branch 'origin/issue-801' into integration_2025_w23 (!3302)
Enhance UE identity management in Initial UE Message and other NGAP improvements

This MR improves the Initial UE Message procedures by supporting simultaneous
presence of both 5G-S-TMSI and GUAMI. Previously, only one identity could be
used, leading to potential AMF selection failures. Now the presenceMask allows
both identities. The AMF selection is prioritizing GUAMI first, then falling
back to 5G-S-TMSI, and finally using PLMN or highest capacity.

Also, fix handling of selected PLMN identity in NGAP.

Refactoring:
- Select the AMF based on (1) absence of UE Identity (2) Presence of GUAMI
  (3) Presence of 5G-S-TMSI
- Also refactored the AMF selection logic for better readability and reliability.
- Refactor and cleanup rrc_gNB_send_NGAP_NAS_FIRST_REQ
- Replace ngap_pdu_t with byte_array_t
- Add guami_t to ngran_types.h: refactor NGAP and RRC code to use one common
  GUAMI type instead of two identical ones

Also:
- Bugfix in ngap_gNB_handle_ng_setup_response: use correct count for PLMNSupportList

Closes issue #801
2025-06-02 16:20:24 +02:00