- 08 Oct, 2025 5 commits
-
-
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.
-
- 30 Sep, 2025 2 commits
-
-
Jaroslava Fiedlerova authored
-
Jaroslava Fiedlerova authored
-
- 18 Sep, 2025 33 commits
-
-
Robert Schmidt authored
Integration: `2025.w38` Closes #954 See merge request oai/openairinterface5g!3646 * !3639 Fix error ind unpack * !3643 Fix memory allocation issue in KPM RAN function sd parameter handling * !3568 Fix UE DCI monitoring after RRC setup * !3642 Check command line for unknown options also at gNB * !3647 Add nr-cuup to run_locally.sh * !3596 L3 measurements and measReport A2 * !3648 fix MSG3 with C-RNTI failure * !3649 CI: build images on Jetson (armv8) * !3334 N2 Handover
-
Robert Schmidt authored
-
Robert Schmidt authored
define_property() has optional FULL_DOCS in cmake 3.23+, but before it's required. I did not notice when adding this.
-
Robert Schmidt authored
N2 handover This MR introduces full support for N2 handover, covering handover decision, preparation, execution, and notification between source and target NG-RAN nodes. Key features: 1. Handover Decision & Preparation: - Implement N2 handover decision based on UE measurement reports. - Generate the Handover Preparation Information message, including RRCReconfiguration. - Send Handover Required message from the source NG-RAN to the AMF. 2. Handover Execution: - Decode and handle the Handover Request on the target NG-RAN. - Process the Handover Command on the source gNB, triggering RRCReconfiguration. - Initiate Handover Notify after successful completion. 3 NGAP & RRC Enhancements: - Implement NGAP encoding/decoding functions for Handover Required, Handover Request, Handover Command, Handover Failure, and Handover Notify (3GPP TS 38.413). - Adds NG-RAN Status Transfer support (UL/DL) for PDCP COUNT preservation during mobility: - support for NGAP Uplink and Downlink RAN Status Transfer messages (TS 38.413 §9.2.3.13-14) to enable proper PDCP COUNT value transfer during handover or recovery: NGAP encoding/decoding for RAN Status Transfer, PDCP helpers to extract and apply COUNT (HFN + SN) per DRB. This aligns with TS 38.300 §9.2.3.2.1 and TS 23.502 §4.9.1.3.3, ensuring PDCP status preservation in AM. 4. Testing: - Introduce a Telnet command to manually trigger N2 handover using UE ID and neighbor PCI. - Add configuration file for testing N2 handover with a target gNB. -
Guido Casati authored
-
Robert Schmidt authored
CI: build images on Jetson (armv8) Add a new build pipeline for NVIDIA Jetson (armv8). Images have tag prefix armv8_ to distinguish from gracehopper-built images prefixed arm_ (should have maybe been better with armv9_?)
-
Robert Schmidt authored
fix MSG3 with C-RNTI failure When RA procedure with MSG3 carrying C-RNTI fails we shouldn't send an indication to RRC because it is a L2 procedure
-
Guido Casati authored
This commit completes the NGAP Mobility Management procedure for N2 handover. Upon failure on source gNB the Handover Cancel message is sent to the AMF which in return responds with an ack.
-
Guido Casati authored
Upon reception of NG RAN Status at the target CU-CP, send PDCP Status via E1 Bearer Context Modification to the target CU-UP and update PDCP Count upon reception of the message. For the sake of simplicity, re-used and extended legacy e1_send_bearer_updates. Further refactoring is not addressed in this commit.
-
Guido Casati authored
-
Guido Casati authored
source-CU-CP: trigger UL NG RAN Status Transfer upon reception of PDCP Status in E1 Bearer Context Modification Response Once fetched the PDCP Status from the PDCP entity over E1, the CU-CP triggers the NG RAN Status Transfer procedure to transfer the PDCP Status to the target CU. This commit is also introducing the RRC callback.
-
Guido Casati authored
* Check presence of PDCP Status Requested in Bearer Context Modification Request * Fetch PDCP Status from PDCP entity and fill in the Bearer Context Modification Response
-
Guido Casati authored
The E1 Bearer Context Modification Request shall send a PDCP Status Request IE during handover, e.g. the HO context is set to source, and it is not target, i.e. only in N2 not in F1. The current function "e1_send_bearer_updates" used to fill the E1 Request has been refactored only for the sake of this commit and to avoid duplicated and redundant code. The function itself deeper analysis and eventually a refactoring that will not be addressed in this commit.
-
Guido Casati authored
* Introduced nr_pdcp_count_update() to apply COUNT values to the PDCP entity: - Computes tx_next, rx_next, and rx_deliv from HFN+SN - Handles both 12-bit and 18-bit SN modes with dynamic bitmask * Introduced nr_pdcp_get_drb_count_values() to extract PDCP COUNT values from entity: - Used for building UL RAN Status Transfer on source CU side
-
Guido Casati authored
Also: * remove unused oldQosFlows IEs * adopt new enc/dec functions * fix missing return in eq_bearer_context_mod_response
-
Guido Casati authored
According to 4.9.1.3.3 of 3GPP TS 23.502: > 2a. - 2c. The S-RAN sends the Uplink RAN Status Transfer message to the S-AMF, > as specified in TS 36.300 [46] and TS 38.300 [9]. The S-RAN may omit sending > this message if none of the radio bearers of the UE shall be treated with PDCP status preservation. TS 38.300 says: > For DRBs not configured with DAPS, the source gNB sends the SN STATUS TRANSFER message to the target > gNB to convey the uplink PDCP SN receiver status and the downlink PDCP SN transmitter status of DRBs for > which PDCP status preservation applies (i.e. for RLC AM). The uplink PDCP SN receiver status includes at > least the PDCP SN of the first missing UL PDCP SDU and may include a bit map of the receive status of the out > of sequence UL PDCP SDUs that the UE needs to retransmit in the target cell, if any. The downlink PDCP SN > transmitter status indicates the next PDCP SN that the target gNB shall assign to new PDCP SDUs, not having a > PDCP SN yet. i.e., for DRBs for which PDCP status preservation applies (i.e. for RLC AM), which is is our case. This commit introduces full support for NG-RAN Status Transfer message handling (TS 38.413 §9.2.3.13-14) in CU. It enables correct state transfer of PDCP COUNT values (SN + HFN) during mobility or recovery scenarios. Summary of changes - NGAP: * Added encoding/decoding support for UL/DL RAN Status Transfer message * Defined structures for: ngap_drb_count_value_t, ngap_drb_status_t, ngap_ran_status_container_t, ngap_ran_status_transfer_t
-
Guido Casati authored
The pipeline is using the already existing conf files for the source/target gNB CUs/DUs. For the sake of simplicity, neighbour-config.conf has been rewritten and simplified in this commit, then adopted in this pipeline. The file was not used before.
-
Guido Casati authored
* the command gets in input the neighbour PCI and the UE ID * the telnet ci function to retrieve the UE context was extended in the process * add function to trigger handover on the same gNB for testing purposes Co-authored-by:batuhan duyuler <batuhan.duyuler@firecell.io>
-
Guido Casati authored
* trigger upon reception of MasterKeyUpdate * derive NH, store NH NCC and valid NH key in RRC * masterKeyUpdate: derive enc/int keys after master key update and set PDCP security for SRB1 * call nr_rrc_process_reconfiguration_v1530 before nr_rrc_ue_process_RadioBearerConfig and move dedicatedNAS_MessageList processing at the end of the flow. The sequence shall be (1) keys/security update (2) radioBearerConfig processing, with PDCP entity creation, PDCP reestablishment, SDAP entity creation (3) NAS PDUs processing, which triggers PDU Session Establishment Accept, which sets up the TUN interface. SDAP entity is a pre-requisite, therefore the radioBearerConfig has to be processed (in nr_rrc_ue_process_RadioBearerConfig, add_drb) early enough, or it may cause a race condition in SDAP.
-
Guido Casati authored
-
Guido Casati authored
* add trigger function to (1) add the callbacks and (2) initiate handover on the target NG-RAN * add handover failure callback on target NG-RAN: the Handover Failure is a procedure that belongs to the target NG-RAN and it is different from the Handover Cancel procedure Co-authored-by:batuhan duyuler <batuhan.duyuler@firecell.io>
-
Guido Casati authored
This commit introduces the NG Mobility Management Procedure known as Handover Notification. The outbound message is sent by the target NG-RAN and is known as Handover Notify. The procedure is used to indicate to the AMF that the UE has arrived to the target cell and the NG-based handover has been successfully completed * after RRCReconfiguration complete, in the N2 callback for HO success * add NGAP encoder for the message * RRC callback to trigger Handover Notify message Co-authored-by:batuhan duyuler <batuhan.duyuler@firecell.io>
-
Guido Casati authored
* add NG Handover Command message decoder * process in RRC: encode RRCReconfiguration message from the received HandoverCommandMessage * trigger RRCReconfiguration for handover Co-authored-by:batuhan duyuler <batuhan.duyuler@firecell.io>
-
Guido Casati authored
* generate Handover Command for the source NG-RAN to be added to the target to source transparent container of the Handover Acknowledge message * add Handover Acknowledge callback for N2 * send NG Handover Acknowledge to AMF Co-authored-by:batuhan duyuler <batuhan.duyuler@firecell.io>
-
Guido Casati authored
This commit completes the NG Mobility Management Procedure known as Handover Resource Allocation. The outbound message is sent by the target NG-RAN and is known as Handover Request Acknowledge. Major changes: * add RRC callback to trigger the generation of NG Handover Request Acknowledge on the target NG-RAN * add NG Handover Request Acknowledge encoder Co-authored-by:batuhan duyuler <batuhan.duyuler@firecell.io>
-
Guido Casati authored
This commit introduces the NG Mobility Management Procedure known as Handover Resource Allocation. The inbound message is sent by the AMF and is known as Handover Request. Major changes: (0) Add Handover Resource Allocation initiating message decoding * add case for NGAP initiating message and unsuccessful message decoding (1) handle Handover Request on the target NG-RAN (2) decode NG Handover Request message (3) process payload, e.g. create UE context, store IDs, set UP security and trigger bearer setup Co-authored-by:batuhan duyuler <batuhan.duyuler@firecell.io>
-
Guido Casati authored
This message is sent from the Target NG-RAN to the AMF. The commit introduces: * NGAP encoding function * N2 callback for the target gNB * handle the failure in RRC, inform NGAP * send NGAP message to AMF via SCTP Note: UE context in NGAP is fetched from the amf_ue_ngap_id Co-authored-by:batuhan duyuler <batuhan.duyuler@firecell.io>
-
Guido Casati authored
(1) add N2 ho decision based on measurements (2) add trigger for N2 HO on source CU (3) generate NG Handover Preparation Information message, including RRCReconfiguration, to be passed to the NG Handover Required message (4) call RRC callback for Handover Required message Co-authored-by:batuhan duyuler <batuhan.duyuler@firecell.io>
-
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.
-