Files
openairinterface5g/ci-scripts
Jaroslava Fiedlerova 3e5681abbd Merge remote-tracking branch 'origin/n2-handover-minor-fixes' into integration_2025_w40 (!3655)
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)
2025-10-01 18:08:28 +02:00
..
2025-09-26 14:58:47 +02:00
2025-09-23 17:43:38 +02:00
2023-02-23 17:37:31 +01:00
2023-02-24 18:19:36 +01:00
2025-09-12 14:54:49 +02:00
2025-08-06 12:21:11 +02:00
2025-09-10 16:43:16 +02:00
2025-09-10 16:43:16 +02:00
2025-09-12 14:54:49 +02:00
…
2025-09-12 14:54:49 +02:00
2025-09-16 15:34:53 +02:00

This document outlines how to use the OAI CI framework and gives a quickstart.

[[TOC]]

Quickstart

There is a script main.py that

  • reads scenario files from XML
  • executes the steps (e.g., deployment of CN/gNB/UE, attach, ping, ...)

To simplify, a script run_locally.sh can be used to run a single scenario locally. First, download images for gNB&UE (we assume you already downloaded the CN) and tag them "latest", which is expected by run_locally.sh:

docker pull oaisoftwarealliance/oai-gnb:develop
docker tag oaisoftwarealliance/oai-gnb:develop oai-gnb
docker pull oaisoftwarealliance/oai-nr-ue:develop
docker tag oaisoftwarealliance/oai-nr-ue:develop oai-nr-ue

Now, run the scenario:

cd ~/openairinterface5g/ci-scripts/
./run_locally.sh xml_files/container_5g_rfsim_simple.xml

Output should look like

[2025-08-07 18:07:49,631]     INFO: ----------------------------------------
[2025-08-07 18:07:49,631]     INFO:   Creating HTML header 
[2025-08-07 18:07:49,631]     INFO: ----------------------------------------
[2025-08-07 18:07:49,766]     INFO: ----------------------------------------
[2025-08-07 18:07:49,767]     INFO:   Starting Scenario: xml_files/container_5g_rfsim_simple.xml
[2025-08-07 18:07:49,767]     INFO: ----------------------------------------
[2025-08-07 18:07:49,767]     INFO: placing all artifacts for this run in /home/richie/oai/cmake_targets/log/container_5g_rfsim_simple.xml.d/

[...]

[2025-08-07 18:07:49,771]     INFO: ----------------------------------------
[2025-08-07 18:07:49,771]     INFO:  Test ID: 1 (#1)
[2025-08-07 18:07:49,771]     INFO:  Deploy OAI 5G CoreNetwork
[2025-08-07 18:07:49,771]     INFO: ----------------------------------------

it will run an end-to-end test, connecting one UE to the gNB, and ping, before undeploying. As shown, logs will be under /home/richie/oai/cmake_targets/log/container_5g_rfsim_simple.xml.d/. The python code also produces an HTML report in ci-scripts/test_results.html.

Running with local changes

In order to run the tests as above, with local changes, please build images locally.

It is not yet possible to override an existing image with changes made locally to a source file and run it directly through the CI framework. However, it is possible to override an existing image with local changes, and run the scenario manually following the console logs steps provided above. This is described in the 5G RFsimulator README.