- 24 Oct, 2025 3 commits
-
-
Robert Schmidt authored
I forgot to add this when making the release. Put it retroactively to have things "in order". See also: https://gitlab.eurecom.fr/oai/openairinterface5g/-/tags/v2.3.0 https://gitlab.eurecom.fr/oai/openairinterface5g/-/releases/v2.3.0
-
francescomani authored
-
Robert Schmidt authored
-
- 09 Oct, 2025 4 commits
-
-
Robert Schmidt authored
Integration `2025.w41` * !3472 Replace int16 min when obvious * !3689 Fix OAI UE memory leaks * !3675 fix RSRP computation at UE * !3688 Fixes to prevent assertion due to 0 PRB allocation * !3680 OC PhySim deployment: always undeploy safely * !3471 SRS noise power * !3679 CI: Enable Physim threshold check for tests on Caracal and GH * reduce RFsim F1 throughput after handover Closes #828 See merge request oai/openairinterface5g!3692
-
Robert Schmidt authored
Reduce throughput requirement, as this fails once two DUs are connected to a UE, which creates more load on the machine and frequently fails with low throughput.
-
Robert Schmidt authored
CI: Enable Physim threshold check for tests on Caracal and GH This MR adds support for configurable timing threshold files in PhySim tests. - Introduces a new CMake cache variable PHYSIM_CHECK_FILES to specify one or more timing threshold files (semicolon-separated). - Enables optional enforcement of timing thresholds check in PhySim tests without changing existing test definitions. - Defines timing thresholds for LDPC encoding/decoding in nr_ulsim, nr_dlsim and ldpctest on Caracal and GH machines.
-
Robert Schmidt authored
SRS noise power This MR implements the calculation of the noise power based on SRS in a different way, and check whether SNR is more accurate or not. This MR is built on top of the MR: !3460 A graph was added in T_Tracer to observe UL-SNR calculated using SRS. See merge request description for measurement results.
-
- 08 Oct, 2025 11 commits
-
-
Jaroslava Fiedlerova authored
-
Jaroslava Fiedlerova authored
Update Dockerfile to pass -DPHYSIM_CHECK_FILES="ThresholdsGracehopper.cmake".
-
Jaroslava Fiedlerova authored
Extend the timeout for physim deployments on OC to allow tests to complete reliably.
-
Jaroslava Fiedlerova authored
-
Jaroslava Fiedlerova authored
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.
-
Jaroslava Fiedlerova authored
Introduce a new CMake variable PHYSIM_CHECK_FILES to specify CMake files (semicolon-separated) containing timing thresholds for timed physim tests.
-
Jaroslava Fiedlerova authored
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
-
Robert Schmidt authored
For some physical simulators, we have multiple SNR iterations. The previous version of the script correctly retained only the last measurement, but if a previous measurement condition set RC=1, the script would fail although the final "good" run might fulfil the measurement condition (IOW, it would show SUCCESS, but still fail on the check). Instead, check if all measurement lines finish on SUCCESS, which handles the above case.
-
Robert Schmidt authored
The awk script in analyze-timing.sh used syntax that works with gawk but fails on systems where mawk is the default implementation, producing errors such as: awk: /dev/fd/3: line 6: syntax error at or near , -- test command finished with SIGPIPE Concretely, the match(text, pattern, variable) function does not exist in mawk, as it cannot capture matches in variables. Work around by substituing strings, and force a numeric comparison.
-
Jaroslava Fiedlerova authored
OC PhySim deployment: always undeploy safely Always undeploy physim safely. See commits for more details
-
Jaroslava Fiedlerova authored
Fixes to prevent assertion due to 0 PRB allocation Assertion (NPRB>0 && (NPRB + RBstart <= BWPsize)) failed! In PRBalloc_to_locationandbandwidth0() /home/user/openairinterface5g/common/utils/nr/nr_common.c:506 Illegal NPRB/RBstart Configuration (0,51) for BWPsize 51 Probably caused by missing safeguards to prevent computing TBS with 0 PRB as input.
-
- 07 Oct, 2025 4 commits
-
-
Jaroslava Fiedlerova authored
Fix OAI UE memory leaks Fix 1: Replaced asn1cFreeStruc with ASN_STRUCT_FREE in MAC layer to properly free nested ASN.1 structures in cell group configuration. Fix 2: Removed premature nullification of dedicatedNAS_Message->buf in dlInformationTransfer processing to allow proper ASN.1 cleanup. Fix 3: Fixed memory ownership in nr_rrc_process_dedicatedNAS_MessageList by copying OCTET_STRING data instead of transferring ownership, preventing ASN.1 cleanup from losing track of allocated memory Closes #828 -
Jaroslava Fiedlerova authored
fix RSRP computation at UE Conflicts between !3595 (merged) and !3596 (merged) leading to double conversion of RSRP into index in L1 and L2. With this fix it is only converted in L2.
-
Jaroslava Fiedlerova authored
Merge remote-tracking branch 'origin/replace-INT16_MIN-when-obvious' into integration_2025_w41 (!3472) Replace int16 min when obvious INT16_MIN doesn't have a opposite value on 16 bits, so SIMD abs (absolute()), or simple C operations doesn't make the expected result. example: (gdb) p (short)-(short)-32768 $4 = -32768 (gdb) This MR replaces constants INT16_MIN by -INT16_MAX (so -32767) in places where it used for mathematical operations. This is not perfect, nevertheless reduces overflow probability. We saw in some places a dirty case: code do first calls to _mm_adds_epi16 (or subs), so because of the saturated operations, the probability to reach 32767 and -32768 is higher than the other numbers but, _mm_abs_epi16(), or negate operations (conjugate) can follow, that is making strong error as abs(-32768)=-32768
-
Jaroslava Fiedlerova authored
Also, don't use "set -x" debugging for oc login command: ci-scripts/cls_cmd.py:242 sets BASH_XTRACEFD=1, which makes that all "set -x" output is in stdout, leading to a redirect to the file into which we redirect. This would lead to the following error with unsuccessfull oc login: error: You are not a member of project "****-core-for-ci-ran". Error from server (Forbidden): imagestreams.image.openshift.io "oai-physim" is forbidden: User "system:anonymous" cannot get resource "imagestreams" in API group "image.openshift.io" in the namespace "****-ran"
-
- 06 Oct, 2025 2 commits
-
-
Robert Schmidt authored
This fixes basically two problems. First, remove "set -e", which leads to the script exiting on error. For instance, there was the sleep which should account for the time of the pod being in "ContainerCreating", but might not be enough. In that case, the script would exit, leaving the pod deployed. Second, a fixed time is not good, as it can be too short and unduly prolong waiting time. Replace with a loop.
-
francescomani authored
-
- 03 Oct, 2025 5 commits
-
-
Guido Casati authored
- Remove unnecessary NULL assignment for dedicatedNAS_Message->buf - The original buffer is copied and transfered to NAS, so it can be properly freed by ASN.1 structure cleanup Root cause: Code was nullifying dedicatedNAS_Message->buf pointer before ASN.1 cleanup could free the original allocation, causing the leak from OCTET_STRING_decode_uper. AddressSanitizer leak trace (FIXED): Direct leak of 119 byte(s) in 3 object(s) allocated from: /#0 0x7ec2a42b4c38 in __interceptor_realloc /#1 0x555fade852e0 in OCTET_STRING_decode_uper /#9 0x555fadb48b11 in nr_rrc_ue_decode_dcch. -
Guido Casati authored
The leak was caused by improper memory ownership handling in the dedicatedNAS_MessageList processing. The function was transferring buffer ownership to NAS messages and then preventing ASN.1 cleanup from freeing the original allocations by setting list.count = 0, causing a memory leak. Leak trace: Direct leak of 40 byte(s) in 1 object(s) allocated from: /#0 0x7f2ce3ab4a57 in __interceptor_calloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:154 /#1 0x567907083f0f in OCTET_STRING_decode_uper /cmake_targets/ran_build/build/openair2/RRC/LTE/MESSAGES/OCTET_STRING_uper.c:89 /#2 0x5679070ed5e6 in SET_OF_decode_uper /cmake_targets/ran_build/build/openair2/RRC/NR/MESSAGES/constr_SET_OF_uper.c:70 /#3 0x56790707b6dc in SEQUENCE_decode_uper /cmake_targets/ran_build/build/openair2/RRC/LTE/MESSAGES/constr_SEQUENCE_uper.c:118 /#4 0x56790707b6dc in SEQUENCE_decode_uper /cmake_targets/ran_build/build/openair2/RRC/LTE/MESSAGES/constr_SEQUENCE_uper.c:118 /#5 0x56790709a403 in CHOICE_decode_uper /cmake_targets/ran_build/build/openair2/RRC/LTE/MESSAGES/constr_CHOICE_uper.c:84 /#6 0x56790707b6dc in SEQUENCE_decode_uper /cmake_targets/ran_build/build/openair2/RRC/LTE/MESSAGES/constr_SEQUENCE_uper.c:118 /#7 0x56790709a403 in CHOICE_decode_uper /cmake_targets/ran_build/build/openair2/RRC/LTE/MESSAGES/constr_CHOICE_uper.c:84 /#8 0x56790709a403 in CHOICE_decode_uper /cmake_targets/ran_build/build/openair2/RRC/LTE/MESSAGES/constr_CHOICE_uper.c:84 /#9 0x56790707b6dc in SEQUENCE_decode_uper /cmake_targets/ran_build/build/openair2/RRC/LTE/MESSAGES/constr_SEQUENCE_uper.c:118 /#10 0x56790708b5f1 in uper_decode /cmake_targets/ran_build/build/openair2/RRC/LTE/MESSAGES/uper_decoder.c:83 /#11 0x567906d44b4b in nr_rrc_ue_decode_dcch /openair2/RRC/NR_UE/rrc_UE.c:2212 /#12 0x567906d520a3 in rrc_nrue /openair2/RRC/NR_UE/rrc_UE.c:2615 /#13 0x567906d5f77e in rrc_nrue_task /openair2/RRC/NR_UE/rrc_UE.c:2501 /#14 0x7f2ce2494ac2 in start_thread nptl/pthread_create.c:442 Fix: - Copy OCTET_STRING data instead of transferring ownership - Allow ASN.1 cleanup to properly free original allocations This fixes the leak that occurred during rrcReconfiguration message processing when dedicatedNAS_MessageList was present. Closes #828 -
Guido Casati authored
- Replace asn1cFreeStruc with ASN_STRUCT_FREE in MAC layer cleanup - Fixes improper memory management of NR_CellGroupConfig structures Root cause: asn1cFreeStruc only calls ASN_STRUCT_RESET + free(), which doesn't properly free nested ASN.1 allocations. ASN_STRUCT_FREE frees all nested structures completely. AddressSanitizer leak trace: Direct leak of 288 byte(s) in 1 object(s) allocated from: /#0 0x7fb72bab4a57 in __interceptor_calloc /#1 0x593752b28d0d in SEQUENCE_decode_uper /#2 0x593752b9a546 in SET_OF_decode_uper /#3 0x593752b2863c in SEQUENCE_decode_uper /#4 0x593752b47363 in CHOICE_decode_uper /#5 0x593752b2863c in SEQUENCE_decode_uper /#6 0x593752b2863c in SEQUENCE_decode_uper /#7 0x593752b2863c in SEQUENCE_decode_uper /#8 0x593752b2863c in SEQUENCE_decode_uper /#9 0x593752b2863c in SEQUENCE_decode_uper /#10 0x593752b38551 in uper_decode /#11 0x5937527d859f in nr_rrc_ue_process_masterCellGroup /#12 0x5937527d9408 in nr_rrc_process_reconfiguration_v1530 /#13 0x5937527dd5bb in nr_rrc_ue_process_rrcReconfiguration /#14 0x5937527f5e6b in nr_rrc_ue_decode_dcch /#15 0x5937527ff003 in rrc_nrue /#16 0x59375280c6de in rrc_nrue_task -
Laurent THOMAS authored
this MR replaces constants INT16_MIN by -INT16_MAX (so -32767) in places where it used for mathematical operations
-
francescomani authored
-
- 02 Oct, 2025 3 commits
-
-
rmagueta authored
-
rmagueta authored
-
Jaroslava Fiedlerova authored
Integration: `2025.w40` * !3672 \[ci\] Fix MissingPropertyException - COTS-UE by binding OAI_Registry globally * !3609 BWP with no PRACH occasions * !3657 do not assert for mismatched TBS in phy-test mode * !3667 CI: Updates for HO and AW2S pipeline * !3674 NR UE: remove function get_nr_RSRP() and get_nr_rx_total_gain_dB() for cleanup * !3478 NR UE: add UCI (HARQ-ACK/NACK) on PUSCH support at PHY * !3664 modulation LUTs size was wrong, and remove inconsistent test of SSE2 enable * !3665 Make all targets compile * !3554 Handle failures in RRCReconfiguration encoding gracefully * !3655 Improvements to N2 handover * !3678 Add OAIUE longrun pipeline * !3628 Update documentation Closes #979, #726, #959, #967, and #930 See merge request oai/openairinterface5g!3676
-
- 01 Oct, 2025 8 commits
-
-
Robert Schmidt authored
Update documentation
-
Robert Schmidt authored
Add OAIUE longrun pipeline Add a new XML file for OAIUE longrun. - Test description: * 40 MHz BW, n78 * gNB with USRP N310, UE with USRP N310 * CN deployed on OC - Test duration: 1 hour - Test scenario: 3x DL 10 min test (20 Mbps) + 3x UL 10 min test (5 Mbps)
-
Robert Schmidt authored
pods deployed through helm occasionally take more time, leading to errors such as Error from server (BadRequest): container "physim" in pod "oai-physims-4g-sczvl" is waiting to start: ContainerCreating Give a bit more time before checking the logs. We cannot wait too much, as the container will just end on FINISHED in running state, so the logs will always be there. -
Jaroslava Fiedlerova authored
The goal of this MR is to resolve memory leaks, prevent crashes, and improve code quality. Bug Fixes: - Fix crash in get_du_for_ue when F1 UE data doesn't exist during N2 handover - Fix memory leaks in handover preparation and UE context cleanup - Fix duplicate handover request handling with proper UE context validation Code Quality Improvements: - Prevent ASN.1 double-free bug in NGAP memory management (caller ownership principle) - Fix hardcoded instance 0 bug in UE context release command - Refactor e1_send_bearer_updates into three specialized functions with extracted common code - Replace impossible ID mismatch checks with DevAssert statements - Fix inconsistent equality checking patterns in E1AP bearer context management - Improve error message consistency across NGAP handover functions - Optimize PLMN identity assignment using struct copies Documentation Enhancements: - Improve RRC neighbor configuration documentation with actual parameter names - Add same-machine setup guidance for N2 handover with network configuration notes - Fix grammar errors and standardize naming conventions Follow up to !3334 (merged)
-
calvin_peyron authored
-
calvin_peyron authored
-
calvin_peyron authored
-
calvin_peyron authored
-