Commit Graph
28838 Commits
Author SHA1 Message Date
Robert Schmidt 99ecbad530 Merge remote-tracking branch 'origin/add_sigint_handler_nr_physimulators' into integration_2025_w12 (!3320)
Miscelaneous improvements in PHY simulators

1: Add a SIGINT handler to NR PHY simulators

When using T2 virtual functions, it is important to properly stop DPDK
and free the device.  Otherwise the virtual functions may be blocked and
a restart of the admin application is necessary.

If not carefully done, such kind of operation can lead to losing cores
to DPDK processes that cannot be stopped.  This can lead to situations
where the machine is locked and can only be unlocked by a power cycle.
Always properly stopping DPDK and freeing the device reduces the risk of
such situation to happen.

Up to now, SIGINT was shutting down the PHY simulators without freeing
the device.  This commit adds a signal handler to handle SIGINT in a way
that allow to properly free the device.

This feature is added to all the NR PHY simulators whether they use T2
or not in case it is now or later of any use.

2: Make nr_ulschsim functional

There were two issues that were making nr_ulschsim non functional:

1. The channel output was not copied to decoder input (llr array)
2. The test on decoding successful outcome was wrong

The result was that nr_ulschsim was succesfull whatever were its
arguments.  This changeset fixes the two issues so that nr_ulschsim is
now functional.
2025-03-24 14:43:57 +01:00
Robert Schmidt cd6e83e1fc Merge remote-tracking branch 'origin/Harmonize_frequency_range' into integration_2025_w12 (!3311)
Harmonize and update Frequency Range computation to the current values
specified by the standard

3GPP TS 38.101-1 Version 19.0.0 Table 5.1-1: Definition of frequency
ranges

- FR1 from 410 MHz to 7125 MHz
- FR2 from 24.25 GHz to 71 GHz
2025-03-24 14:43:15 +01:00
Robert Schmidt 3a30954e56 Merge remote-tracking branch 'origin/fix-longrach-reg' into integration_2025_w12 (!3323)
Fix long RACH regression

Add some missing functionality that was not merged in !3088.
2025-03-24 14:42:18 +01:00
Romain Beurdouche 60b04f0c82 feat(nr_unitary_defs): Apply clang-format to openair1/SIMULATION/NR_PHY/nr_unitary_defs.h 2025-03-24 09:39:36 +00:00
Romain Beurdouche a2d13f755c feat(nr_unitary_common): Add banner and apply clang-format to openair1/SIMULATION/NR_PHY/nr_unitary_common.c 2025-03-24 09:39:36 +00:00
Romain Beurdouche e68123e06d fix(NR PHY simulators): Naming coherence & NR PHY simulators common functions object
1. Change the name of `openair1/SIMULATION/NR_PHY/nr_dummy_functions.c` into `openair1/SIMULATION/NR_PHY/nr_unitary_common.c` for naming coherence after adding the SIGINT handler which is not a dummy function.
2. Instead of being built once for every NR PHY simulators, the common functions source file is built once as an object and linked to each simulator.
2025-03-24 09:36:56 +00:00
Raghavendra Dinavahi 2a2ebfe80f Initialising dl,ul freq in psbchsim 2025-03-21 16:05:30 +01:00
Robert Schmidt f6e3ea48d0 Merge remote-tracking branch 'origin/issue-920-fix-crash-sctp' into integration_2025_w12 (!3315)
SCTP: avoid assert on partial SCTP message

The receive buffer for SCTP, before this branch, is 8192. If a message
is larger, we receive only a partial message, which makes the gNB abort.
Remove the abort to not be susceptible to a message intended to crash
the gNB.

also, increase the receive buffer to be more forgiving for large messages

Closes: #920
2025-03-21 12:27:25 +01:00
Robert Schmidt 9c0eaefb93 Merge remote-tracking branch 'origin/issue-915' into integration_2025_w12 (!3319)
Disable EPS NAS security algorithms in 5GMM UE capabilities

OAI nrUE is not supporting multiple RATs, therefore the EPS NAS security
algorithms bit in 5GMM UE capabilities is not relevant.

This bit is only relevant if N26 interface is supported by the AMF and
the UE is supporting S1 mode, meaning that the UE is connected to a 4G
LTE network,  via the S1 interface (eNB - MME/SGW). When the UE performs
an inter-system change from N1 mode to S1 mode, it transitions from 5GC
to the EPC: at network level this happens over the N26 interface (which
connects the 5G AMF to the 4G MME).

In this transition is where the EPS security context becomes relevant:
the UE does not know about the N26 interface, however is the AMF that
can tell the UE, e.g. during the registration procedure, if the UE sets
the S1 mode bit to "S1 mode supported" in the 5GMM capability IE, and
the AMF supports the N26 interface, the AMF will include the Selected
EPS NAS security algorithms IE in the SECURITY MODE COMMAND message,
which is what happened in #915.

Closes: #915
2025-03-21 12:26:14 +01:00
Romain Beurdouche 4971b1e62c feat(NR PHY simulators): Add a SIGINT handler to other NR PHY simulators
Even though the remaining NR PHY simulators do not use the T2, we may still feature them with a SIGINT handler for proper termination on SIGINT and for a matter of completeness.
The remaining NR PHY simulators are:
* nr_pbchsim
* nr_prachsim
* nr_psbchsim
* nr_pucchsim
2025-03-21 10:04:45 +00:00
Romain Beurdouche 0033da5611 fix(nr_ulschsim): make nr_ulschsim functional
There was two issues that were making nr_ulschsim non functional:
1. The channel output was not copied to decoder input (llr array)
2. The test on decoding successful outcome was wrong

The result was that nr_ulschsim was succesfull whatever were its arguments.
This commit fixes the two issues so that nr_ulschsim is now functional.
2025-03-21 10:04:45 +00:00
Romain Beurdouche 1fdbf2906f feat(NR PHY simulators): add a SIGINT handler to some PHY simulators
When using T2 virtual functions, it is important to properly stop DPDK and free the device.
Otherwise the virtual functions may be blocked and a restart of the admin application is necessary.

Up to now, SIGINT was shutting down the PHY simulators without freeing the device.
This commit adds a signal handler to handle SIGINT in a way that allow to properly free the device.
This feature is first added to the PHY simulators that use the T2 which are `nr_ulsim`, `nr_dlsim`, `nr_ulschsim` and `nr_dlschsim`.
2025-03-21 10:04:45 +00:00
luis_pereira87 c152177327 Harmonize and update Frequency Range computation to the current values specified by the standard
3GPP TS 38.101-1 Version 19.0.0 Table 5.1-1: Definition of frequency ranges
- FR1 from 410 MHz to 7125 MHz
- FR2 from 24.25 GHz to 71 GHz
2025-03-20 20:41:21 +00:00
Robert Schmidt 39d1e3ff4b Merge remote-tracking branch 'origin/clear_ue_unit_tests' into integration_2025_w12 (!3301)
Remove unused NR UE PHY unit tests

Old dead code that won't even compile and that is not testing anything
relevant to current state of code
2025-03-20 18:19:23 +01:00
Robert Schmidt b138b143e4 Increase SCTP receive buffer to capture large messages 2025-03-20 17:20:54 +01:00
Sakthivel Velumani e775b9ce9a Fix RA-RNTI for long prach formats 2025-03-20 11:12:00 -04:00
Sakthivel Velumani bab16b7e15 Fix long PRACH slot selection 2025-03-20 10:52:21 -04:00
Guido Casati ba22130116 Disable EPS NAS security algorithms in 5GMM UE capabilities
* this is only relevant if N26 interface is supported by the AMF
  and the UE is supporting S1

closes #915
2025-03-19 13:23:16 +01:00
Robert Schmidt ec60cc9548 SCTP: avoid assert on partial SCTP message
The receive buffer for SCTP, as of this commit, is 8192. If a message is
larger, we receive only a partial message, which makes the gNB abort.
Remove the abort to not be susceptible to a message intended to crash
the gNB.

Closes: #920
2025-03-18 17:29:53 +01:00
Jaroslava Fiedlerova 82fb9fcc7c Merge branch 'integration_2025_w11' into 'develop'
Integration: `2025.w11`

Closes #848

See merge request oai/openairinterface5g!3309

* !3306 Add a new CI label: nrUE
* !3303 remove wrong assertion for B4 PRACH format
* !3296 fix(nrLDPC_decoder): fix numIter increment
* !3150 Rework of NR UE RA procedures
* !3305 CI: Fix timeout for OC Deployments
* !3307 Add CI UE test for RA with C-RNTI
* !3271 Handle changing N_TA_offset correctly
* !3313 Small fix for jenkins message formatting
2025-03-18 15:21:56 +00:00
Jaroslava Fiedlerova c4551fecba Merge remote-tracking branch 'origin/fix-jenkins-message-formatting' into integration_2025_w11 (!3313)
Small fix for jenkins message formatting
2025-03-18 11:03:28 +01:00
Bartosz Podrygajlo f0c926306b Small fix for jenkins message formatting 2025-03-18 10:32:55 +01:00
Robert Schmidt 11d83dd461 Merge branch 'nr-ue-ci' into 'develop'
Add a new CI label: nrUE

Added handling of the nrUE label which limits the amount of CI tests to run. Only tests that use nr-uesoftmodem or phy simulators are triggered.

See merge request oai/openairinterface5g!3306
2025-03-18 09:05:32 +00:00
Bartosz Podrygajlo 2f09727811 Add a new CI label: nrUE
Added handling of the nrUE label which limits the amount of CI tests to run.
Only tests that use nr-uesoftmodem or phy simulators are triggered.
2025-03-17 17:09:05 +01:00
francescomani 10da6aa418 Merge remote-tracking branch 'origin/add-ci-test-msg3-c-rnti-ra' into integration_2025_w11 2025-03-17 16:55:07 +01:00
Guido Casati 7ba0613ae8 Add test for C-RNTI RA trigger to 24 PRB RFSIM CI pipeline 2025-03-17 16:54:18 +01:00
Guido Casati c456d6951e Add telnet trigger to force C-RNTI RA on the UE 2025-03-17 16:54:14 +01:00
francescomani dcf7e4ddcd Merge remote-tracking branch 'origin/issue_907' into integration_2025_w11 2025-03-17 16:50:56 +01:00
Jaroslava Fiedlerova da8d00d6fa Merge remote-tracking branch 'origin/increase-build-timeouts' into integration_2025_w11 (!3305)
This merge request is for two issues:

1. Core Network Deployment/Undeployment

If the Helm release oai5gcn does not exist (e.g., it was already deleted,
failed during installation), helm uninstall will fail with a "release not
found" error. The --timeout 60s makes Helm wait up to 60 seconds for all
resources to be deleted. If cleanup takes longer (e.g., due to resources
or dependencies), the command fails with a timeout error, potentially
leaving resources in an incomplete state.

2. Increase the timeout value for OpenShift RHEL Builds

The timeout parameter is set as the maximum wait time for the jobs to complete.
If the jobs do not complete within that time, the function logs an error. The
jobs may take longer to complete, the function exits early with an error, even
if the jobs are still progressing.

So, to address both the issues:

We first list all installed Helm releases in the given namespace, returning only
their names. We then pass the release names to helm uninstall, uninstalling all
releases in the namespace. The default value for timeout is 5 minutes.

Increased the timeout value for the RHEL Builds.
2025-03-17 14:08:52 +01:00
Jaroslava Fiedlerova fe52ef2858 Merge remote-tracking branch 'origin/NR_UE_rework_RA' into integration_2025_w11 (!3150)
Rework of NR UE RA procedures

Closes #848
2025-03-14 18:22:18 +01:00
Jaroslava Fiedlerova 830ceac0ab Merge remote-tracking branch 'origin/fix_numIter' into integration_2025_w11 (!3296)
fix(nrLDPC_decoder): fix numIter increment

The logs of ./nr_ulsim -n100 -m19 -s12 -S12 -z2 -L4 were showing that sometimes
the decoding of one segment was failing while the CRC check succeeded. This was
happening because the iteration counter numIter was not properly managed so that
when the last iteration was successful to decode the segment still numIter at
the exit was equal to numMaxIter plus 1 so that decoding was considered to have
failed. In other words the last iteration if it occured was always wasted.

This commit offers to solve this problem by simply moving the iteration counter
increment at the end of the iteration loop while remaining careful at fixing the
tests relying on this counter.

Post-Scriptum:
After a first review, we decided to make the counter more standard from a C code
perspective. The counter now counts from 0 to numMaxIter minus 1. If it reaches
numMaxIter, it means that decoding was unsuccessful.
2025-03-14 15:50:12 +01:00
Jaroslava Fiedlerova 950ee0a47f Merge remote-tracking branch 'origin/remove_b4_assertion' into integration_2025_w11 !3303
remove wrong assertion for B4 PRACH format

Introduced in !3088 (merged)
2025-03-14 15:47:46 +01:00
francescomani 44692187b8 use sleep to delay UE to allow the convergence of the IIR filter on PRACH noise measurements at gNB side instead of counting frames 2025-03-13 11:53:58 +01:00
francescomani 7ecedfced0 UE fix when completing RA with C-RNTI in MSG3 2025-03-13 11:53:58 +01:00
francescomani 39920eb337 L2 indication to prepare MSG3 payload in advance
This is required to comply with the standard to flush MSG3 buffer in some occasions and to keep preparing MSG3 payload in advance
2025-03-13 11:53:55 +01:00
Jaroslava Fiedlerova b9a4ebd11f CI: increase timeout for OC RHEL builds 2025-03-13 10:01:32 +01:00
Jaroslava Fiedlerova 4f9a152f6b CI: remove timeout for OC CN deployments/undeployments
Default value of timeout is 5 minutes.
2025-03-13 10:01:25 +01:00
francescomani 4b191b7d07 error for ra-responsewindow exceeding 10ms instead of assertion (CI test with FAPI would fail otherwise) 2025-03-12 10:30:18 +01:00
francescomani fc0d762407 move MSG3-C-RNTI flag from RA to MAC structure otherwise it would be reset by RA initialization 2025-03-12 10:30:18 +01:00
francescomani 96f1a2d474 implementation of RAR response window timer suspension
(this is needed because it might expire while MSG2 is being decoded despite being received inside the window)
2025-03-12 10:30:17 +01:00
francescomani 3f35d462e9 separate DL and UL timers at UE 2025-03-12 10:30:17 +01:00
francescomani 65bc749ee6 start the rar reception window in PRACH slots but take into account the additional slots difference wrt when we actually would need to start it (in first DCI occasion) 2025-03-12 10:30:17 +01:00
francescomani 5df6153024 remove unnecessary nr_ue_manage_ra_procedure function 2025-03-12 10:30:17 +01:00
francescomani dcc17a9d70 signaling RRC RA problems (leading to possible radio link failure) 2025-03-12 10:30:17 +01:00
francescomani e958822a73 Procedures for Contention Resolution 2025-03-12 10:21:27 +01:00
francescomani cc154da549 Procedures for Random Access Response reception 2025-03-12 10:21:27 +01:00
francescomani 108fdae159 removing unnecessary nr_Msg1_transmitted function 2025-03-12 10:15:49 +01:00
francescomani 878bbc65ad assertion for handling of RO mask 2025-03-12 10:15:49 +01:00
francescomani 9f3f7b041c clearing old structures and functions for rach occasions 2025-03-12 10:15:49 +01:00
francescomani 24fed617b5 reworking prach scheduler to use new rach occasion information 2025-03-12 10:15:49 +01:00