- 18 Sep, 2025 7 commits
-
-
Guido Casati authored
This commit introduces the NG Mobility Management Procedure known as Handover Preparation. The outbound message is sent by the source NG-RAN and is known as Handover Required. * introduce NGAP library for Mobility Management * introduce NGAP IEs encoder functions for Handover Required and relevant common IEs * handle RRC trigger in NGAP and Send NGAP Handover Required to the AMF Co-authored-by:batuhan duyuler <batuhan.duyuler@firecell.io>
-
Guido Casati authored
-
Guido Casati authored
-
Guido Casati authored
During the N2 HO review has been found that the HO context was not allocated at trigger time but later in the flow. This might lead to issues in some scenarios (e.g. in N2 HO) and it was fixed in this commit.
-
Guido Casati authored
During the review of N2 HO MR it has been found that there was no check on the absence of the neighbour and measurement section in the DU config file.
-
Robert Schmidt authored
Introduce a new timer for the use case where a UE should not be scheduled anymore after a certain time. This is the case, for instance, during handover, where the "source DU" forwards the RRCReconfiguration and should stop scheduling this UE after some time. Originally, transm_interrupt was introduced in 5c6d90aa ("Use NR_timer_t for UE transmission interrupt, e.g., RRC processing") to stop scheduling a UE. Commit 004403c8 ("Implement F1 UE Ctxt Modif Transmission Action Indicator") reused this timer in an attempt to save code with an "interrupt follow action". In commit 89ebbb41 ("Do not trigger ul failure in measgap scheduling and standardize the verification if MAC is active in other scheduling functions"), the transm_interrupt timer is used to not schedule a UE through function nr_mac_ue_is_active(). This led to the UE not being forwarded the RRCReconfiguration, effectively breaking handover, as the message never reaches the UE. By using a new timer, the intended functionality is restored. Fixes: 89ebbb41 ("Do not trigger ul failure in measgap scheduling and standardize the verification if MAC is active in other scheduling functions")
-
Robert Schmidt authored
Remove this flag, as it is not used as of this commit, and introduces confusion (see next commit: we reused the trans_interrupt timer for the transmission action indicator stop action, where the UE should stay active, while it is *not* when transm_interrupt is active).
-
- 15 Sep, 2025 2 commits
-
-
Guido Casati authored
During the review of the N2 HO MR it has been found that the wrong type plmn_identity_t (S1AP) was used in RRC. Now updated to the platform type plmn_id_t.
-
Guido Casati authored
The malloced struct is initialized to garbage and when the IE is absent, the output "PDCP reestablishment" member (allocated in the stack) is set to a random value.
-
- 12 Sep, 2025 28 commits
-
-
Robert Schmidt authored
Integration: `2025.w37` * !3514 NR UE: add support for PDSCH rate matching with NZP CSI-RS * !3630 feat(ldpc_aal): Do not try EAL init if FHI 7.2 is enabled * !3634 reset MSG3 C-RNTI flag in case of failure * !3566 fix 600 cppcheck notifications * !3633 Fix PLMN print in select_amf * !3631 Revert "Removed TRP-scheme byte from UL BF PDU to Interop with Aerial 25-1 (FAPI 10.02)" * !3622 Populate sampled_ue_antennas * !3601 gNB: adaptive DL/UL MCS based on reported SSB-SINR and measured PUSCH SNR * !3637 fix bug in computing number of LCG IDs with data at UE * !3635 Fixes and updates for UL scheduling, notably DSUUU * !3607 Reworking BWP configuration * !3531 Refactor measConfig * !3612 CI: Creation of F1 Handover pipeline * !3611 CI: Generalize PhySim tests, run PhySims on Gracehopper Closes #985 and #975 See merge request oai/openairinterface5g!3636
-
Robert Schmidt authored
Since !3531, the band is mandatory in a neighbour configuration. See also: fd4de3c7 ("Add support for band in neighbourConfiguration")
-
Robert Schmidt authored
CI: Generalize PhySim tests, run PhySims on Gracehopper This changeset generalizes/harmonizes the CI infrastructure for physim testing, and adds a new pipeline for physim tests on Gracehopper machines. Specifically: - Refactor the existing CI code for running and analyzing physical simulators. The existing code assumed those tests are deployed using OpenShift. Instead, OpenShift/Helm-specificities (e.g., running a "release") have been removed, and instead of hardcoding the deployment of the physical simulators using a script for Helm, the function takes any script that can deploy using Helm/docker/from source. The overall appearance is the same. - Add a new pipeline RAN-PhySim-GraceHopper-5G that executes physical simulators on gracehopper. Reporting is done in the same way as for existing physical simulators (e.g., like in the RAN-PhySim-Cluster-5G pipeline), but deployed in docker instead of helm. -> some tests don't work reliably on ARM yet and are skipped - the RAN-gNB-N300-Timing-Phytest-LDPC pipeline has been reworked to use the same code for testing T2 offload, with ctest, and the same reporting. - the CUDA LDPC test XML has been removed, as these tests don't work reliably. - add a new macro add_timed_physim_test() that allows to define thresholds to be checked, so that ctest will check for them. see the documentation for more information
-
Robert Schmidt authored
CI: Creation of F1 Handover pipeline In this MR we are modifying/adding all the required files (.xml, .conf, .yml) in order to create a pipeline on Jenkins that allows us to test OTA F1 handover.
-
Robert Schmidt authored
-
Robert Schmidt authored
-
Robert Schmidt authored
Move info about pipelines to the introduction instead of somewhere in the middle. Add some filler text, and fix indentation headings.
-
Robert Schmidt authored
Remove the runtime, which is not interesting, and add instead - test name and if the test failed - the threshold checks, if any, and - possible additional information about test failures.
-
Robert Schmidt authored
Prior to this change, each test would have, as label, it's description. This leads to many labels, which are normally reserved for grouping tests. Move the description into a custom property instead. Since we rely on the JSON output for the generation of HTML reports, we need to also extract the description from the generated JSON. However, custom properties are only logged starting from cmake 3.30. For back-wards compatibility, write an additional, separate environment variable TEST_DESCRIPTION from which the description can be read as a fallback. For the add_timed_physim_test(), this has been already done in a parent commit.
-
Robert Schmidt authored
A follow-up commit will introduce a change to print timing logs in the HTML (if present in the test). Prepare for this with separate box.
-
Robert Schmidt authored
-
Robert Schmidt authored
-
Robert Schmidt authored
After the parent commit, there is no need for these XML files anymore. The tests are driven by ctest instead.
-
Robert Schmidt authored
-
Robert Schmidt authored
physim script more
-
Robert Schmidt authored
Imported using commands: xmlstarlet sel -t \ -m '//testCaseList/testCase[class="Run_Physim"]' \ -v "concat('check_physim_threshold(physim.5g-offload.',physim_test,'.testX.Y \"DLSCH encoding time\" \"< ', physim_time_threshold, '\")')" \ -n t2_offload_enc_nr_dlsim.xml >> ../../openair1/SIMULATION/tests/ThresholdsOffload.cmake xmlstarlet sel -t \ -m '//testCaseList/testCase[class="Run_Physim"]' \ -v "concat('check_physim_threshold(physim.5g-offload.',physim_test,'.testX.Y \"ULSCH total decoding time\" \"< ', physim_time_threshold, '\")')" \ -n t2_offload_dec_nr_ulsim.xml >> ../../openair1/SIMULATION/tests/ThresholdsOffload.cmake -
Robert Schmidt authored
-
Robert Schmidt authored
The unit tests have been imported with this command: xmlstarlet sel -t -m '//testCaseList/testCase[class="Run_Physim"]' \ -v "concat('add_timed_physim_test(physim.5g-offload.',physim_test,'.testX.Y \"',desc,'\" ',physim_test,' ',physim_run_args,')')" \ -n t2_offload_enc_nr_dlsim.xml t2_offload_dec_nr_ulsim.xml >> ../../openair1/SIMULATION/tests/CMakeLists.txt The next commit will further cleanup this output. I commit it like this for verification purposes. -
Robert Schmidt authored
Add two new macros that allow to register physim tests for ctest, including timing thresholds that should be fulfilled. First, add_timed_physim_test() registers a new test using a helper script RunTimedTest.cmake. This is because after test execution, we need to analyze logs, and the recommended way to do multiple steps in one test is via a helper cmake script: https://cmake.org/pipermail/cmake-developers/2016-February/027816.html Second, check_physim_threshold() adds new thresholds. It takes a text to be parsed, and a condition (e.g., "< 20") to check for the number following the threshold (which is assumed to be present right after the threshold). It uses a test property to count the total number of checks (limiting them to 10), and sets environment variables for the script. I initially planned to use a test property for checks, but those are only valid in the same directory, and RunTimedTest.cmake seems to be assumed by cmake to be "elsewhere", hence I needed to resort to environment variables. RunTimedTest.cmake is called through cmake with the test parameters and checks. It re-constructs a list of checks [1], runs the test, and pipes the log into a separate script that is passed all checks (see below). Afterwards, it verifies that both the test and script passed. A script analyze-timing.sh builds an awk script from the checks passed. The script analyzes each line of the test output for the threshold, and compares against the threshold. analyze-timing.sh returns success if all checks passed. [1] I did not manage to pass a "list" of checks in a single environment variable through the check_physim_threshold(), which would be simpler.
-
Robert Schmidt authored
Many of these tests do not pass (ldpctest returns non-zero output). Moving to ctest would make all these tests and hence the pipeline fail.
-
Robert Schmidt authored
Change signature of the macro to take the full test name, a separate description (previously called a label?), and the executable and test invocation. The overall signature becomes easier. The rational for the full test name is that a later commit will introduce the possibility to define physim tests that are checked for specific times, in which case we need to reuse the test name. Thus, using the full name from the beginning leads to more clarity, even though they are a bit longer. Add an additional safety check that the given simulator is actually a target defined within the project (in other words, it actually exists). Update the documentation correspondingly.
-
Robert Schmidt authored
-
Robert Schmidt authored
-
Robert Schmidt authored
-
Robert Schmidt authored
Most (but not all) physical simulators are defined under openair1/SIMULATION/. Defining physical simulators below there seems to be the more "obvious" directory anyway, as the physical simulators are openair1/SIMULATION/tests Phy(L1) Sim tests => PhySim (tests) -
Robert Schmidt authored
-
Robert Schmidt authored
Refactor measConfig - Refactor and minor improvements in get_MeasConfig function; - Add support for band in neighbourConfiguration (It is currently possible to handover cells with different frequencies, as long as they are in the same band, but this MR allows the handover to also be done between cells in different bands).
-
Robert Schmidt authored
Reworking BWP configuration This MR reworks the configuration via fail of additional BWPs. Moreover, it allows for a single BWP to be configured for a given UE at a given time (BWP switch possible only via reconfiguration). It also reworks PTRS configuration for consistency with the BWP one.
-
- 11 Sep, 2025 3 commits
-
-
Robert Schmidt authored
Fixes and updates for UL scheduling, notably DSUUU Fix a number of problems that stem from !3521, notably regarding Msg3 scheduling, retransmissions in "UL-heavy" TDD scenarios, and BSR handling. Modify a CI test to run a UL-heavy TDD scenario, and add documentation for UL-heavy TDD scenarios.
-
Robert Schmidt authored
Check that the number of slots in period/symbols in mixed slot conforms to what is prescribed by the spec.
-
Robert Schmidt authored
Update configuration and tweak iperf thresholds accordingly. Tune some parameters for good UL reception.
-