- 11 Mar, 2026 1 commit
-
-
Robert Schmidt authored
The maximum number of cmdfunc names is 20, which IMO is too low. Worse, if it's longer, nothing will warn us because C will just fill the array to it's end (without \0 at the end). To remedy this: - Allow longer names till 64 bytes (I hit the previous limit of 20) - Check that the name is within the length limit: if somebody wants a very long name, the strnlen() will return the maximum length, hitting that assertion. - When reading a command during runtime, allow the corresponding maximum length. On that occasion, also increase total number of permitted cmdfuncs.
-
- 06 Mar, 2026 9 commits
-
-
Jaroslava Fiedlerova authored
Integration `2026.w10` * !3946 UE L1 cleanup * !3929 UE: Fix if target cell during handover has SSB at a different offset as in source cell * !3961 Remove Ubuntu 20 and RHEL/Rocky 8 support, increase cmake min version * !3884 Integrate NRPPA and NGAP messages required for positioning * !3784 CI: Create new pipeline for testing with Aerial and Jetson * !3697 fix: issue 911 - OAI gNB hangs when AMF connection goes down * !3914 Fix dB_fixed() function * !3800 Add tracer to record configured events to database * !3954 UHD streamer thread priorities in nrUE * !3846 rename with distinct names structs and related typedefs, remove spread struct keyword * !3958 Remove unused function arguments Closes #911 See merge request oai/openairinterface5g!3962
-
francescomani authored
Remove unused function arguments Some of them, because there are hundreds if not thousands. Warnings at compilation time can be enabled using -Wunused-parameter.
-
Jaroslava Fiedlerova authored
Merge remote-tracking branch 'origin/change-typedef-names-for-coding-style' into integration_2026_w10 (!3846) rename with distinct names structs and related typedefs, remove spread struct keyword
-
Jaroslava Fiedlerova authored
Increase UHD streamer thread priority in nrUE This minor change allows nrUE UHD threads to inherit priority OAI_PRIORITY_RT_MAX.
-
Jaroslava Fiedlerova authored
Add tracer to record configured events to database This extends the functionality provided by record in that it allows collection of data into a Clickhouse database, allowing aggregation of data from gNB and UE for functions like channel estimation for PUSCH transmissions that did not decode successfully at the gNB. It is intended to be used in conjunction with Aerial Data Lake but is not limited to it. Data access is simpler than in !3462 (merged), but could be improved using the metadata approach from !3462 (merged). Usage is similar to the exsting record tracer: docker exec -it oai-nr-ue bash -c "record_db -on UE -off VCD -ch-droptables -off UE_PHY_UL_TICK -off UE_PHY_DL_TICK -off UE_PHY_PDSCH_IQ" Which outputs recorded data every 5 seconds: 17:35:40.945037 record_db.cpp:570 INF[main ] Initialized buffer for event_id:21 name:UE_PHY_INITIATE_RA_PROCEDURE has_frame_slot:false columns:5 17:35:40.945924 record_db.cpp:570 INF[main ] Initialized buffer for event_id:26 name:NRUE_PHY_MIB has_frame_slot:true columns:6 17:35:40.946717 record_db.cpp:570 INF[main ] Initialized buffer for event_id:53 name:NRUE_MAC_DL_PDU_WITH_DATA has_frame_slot:true columns:7 17:35:40.947467 record_db.cpp:570 INF[main ] Initialized buffer for event_id:54 name:NRUE_MAC_UL_PDU_WITH_DATA has_frame_slot:true columns:7 17:35:40.948208 record_db.cpp:570 INF[main ] Initialized buffer for event_id:55 name:NRUE_MAC_DL_RAR_PDU_WITH_DATA has_frame_slot:true columns:6 17:35:40.948912 record_db.cpp:570 INF[main ] Initialized buffer for event_id:318 name:UE_MASTER_TICK has_frame_slot:true columns:5 17:35:40.949679 record_db.cpp:570 INF[main ] Initialized buffer for event_id:321 name:UE_PHY_DLSCH_UE_DCI has_frame_slot:true columns:10 17:35:40.950397 record_db.cpp:570 INF[main ] Initialized buffer for event_id:322 name:UE_PHY_DLSCH_UE_ACK has_frame_slot:true columns:7 17:35:40.951125 record_db.cpp:570 INF[main ] Initialized buffer for event_id:323 name:UE_PHY_DLSCH_UE_NACK has_frame_slot:true columns:7 17:35:40.951903 record_db.cpp:570 INF[main ] Initialized buffer for event_id:324 name:UE_PHY_ULSCH_UE_DCI has_frame_slot:true columns:12 17:35:40.952604 record_db.cpp:570 INF[main ] Initialized buffer for event_id:325 name:UE_PHY_ULSCH_UE_ACK has_frame_slot:true columns:7 17:35:40.953305 record_db.cpp:570 INF[main ] Initialized buffer for event_id:326 name:UE_PHY_ULSCH_UE_NACK has_frame_slot:true columns:7 17:35:40.954035 record_db.cpp:570 INF[main ] Initialized buffer for event_id:327 name:UE_PHY_INPUT_SIGNAL has_frame_slot:true columns:7 17:35:40.954778 record_db.cpp:570 INF[main ] Initialized buffer for event_id:328 name:UE_PHY_DL_CHANNEL_ESTIMATE has_frame_slot:true columns:8 17:35:40.955533 record_db.cpp:570 INF[main ] Initialized buffer for event_id:329 name:UE_PHY_DL_CHANNEL_ESTIMATE_FREQ has_frame_slot:true columns:8 17:35:40.956250 record_db.cpp:570 INF[main ] Initialized buffer for event_id:330 name:UE_PHY_PDCCH_IQ has_frame_slot:false columns:5 17:35:40.957010 record_db.cpp:570 INF[main ] Initialized buffer for event_id:331 name:UE_PHY_PDCCH_ENERGY has_frame_slot:true columns:9 17:35:40.957781 record_db.cpp:570 INF[main ] Initialized buffer for event_id:333 name:UE_PHY_PDSCH_ENERGY has_frame_slot:true columns:9 17:35:40.958599 record_db.cpp:570 INF[main ] Initialized buffer for event_id:334 name:UE_PHY_PUSCH_TX_POWER has_frame_slot:true columns:10 17:35:40.959364 record_db.cpp:570 INF[main ] Initialized buffer for event_id:335 name:UE_PHY_PUCCH_TX_POWER has_frame_slot:true columns:9 17:35:40.960154 record_db.cpp:570 INF[main ] Initialized buffer for event_id:336 name:UE_PHY_MEAS has_frame_slot:true columns:12 17:35:40.961126 record_db.cpp:570 INF[main ] Initialized buffer for event_id:337 name:UE_PHY_UL_PAYLOAD_TX_BITS has_frame_slot:true columns:30 17:35:40.962126 record_db.cpp:570 INF[main ] Initialized buffer for event_id:338 name:UE_PHY_UL_SCRAMBLED_TX_BITS has_frame_slot:true columns:30 17:35:40.962455 record_db.cpp:1063 INF[main ] Tables created, waiting for messages... 17:36:00.842116 record_db.cpp:1096 INF[main ] UE_PHY_UL_SCRAMBLED_TX_BITS rows: 52 total: 119 17:36:00.842117 record_db.cpp:1096 INF[main ] UE_PHY_UL_PAYLOAD_TX_BITS rows: 55 total: 119 17:36:00.842117 record_db.cpp:1096 INF[main ] UE_PHY_MEAS rows: 5 total: 12 17:36:00.842117 record_db.cpp:1096 INF[main ] UE_PHY_PDSCH_ENERGY rows: 6 total: 29 17:36:00.842117 record_db.cpp:1096 INF[main ] NRUE_MAC_DL_PDU_WITH_DATA rows: 6 total: 28 17:36:00.842117 record_db.cpp:1096 INF[main ] NRUE_MAC_UL_PDU_WITH_DATA rows: 54 total: 118 17:36:00.842118 record_db.cpp:1096 INF[main ] NRUE_PHY_MIB rows: 260 total: 495 17:36:00.842118 record_db.cpp:1100 INF[main ] 17:36:05.861012 record_db.cpp:1096 INF[main ] UE_PHY_UL_SCRAMBLED_TX_BITS rows: 55 total: 174 17:36:05.861013 record_db.cpp:1096 INF[main ] UE_PHY_UL_PAYLOAD_TX_BITS rows: 55 total: 174 17:36:05.861013 record_db.cpp:1096 INF[main ] UE_PHY_MEAS rows: 5 total: 17 17:36:05.861013 record_db.cpp:1096 INF[main ] UE_PHY_PDSCH_ENERGY rows: 12 total: 41 17:36:05.861013 record_db.cpp:1096 INF[main ] NRUE_MAC_DL_PDU_WITH_DATA rows: 12 total: 40 17:36:05.861014 record_db.cpp:1096 INF[main ] NRUE_MAC_UL_PDU_WITH_DATA rows: 56 total: 174 17:36:05.861014 record_db.cpp:1096 INF[main ] NRUE_PHY_MIB rows: 260 total: 755 This can also be done for the L2 on the gNB side: $ docker exec -it oai-gnb-aerial bash -c "record_db -on GNB_MAC_DL_PDU_WITH_DATA" turning ON GNB_MAC_DL_PDU_WITH_DATA connecting to 127.0.0.1:2021 16:31:01.742287 record_db.cpp:1000 INF[main ] on: item: GNB_MAC_DL_PDU_WITH_DATA, on_off_name: GNB_MAC_DL_PDU_WITH_DATA, on_off_action: 1 16:31:01.742340 record_db.cpp:1011 INF[main ] No database file provided, using default: T_messages.txt 16:31:01.751101 record_db.cpp:1020 INF[main ] Number of events: 801 16:31:01.752264 record_db.cpp:439 INF[main ] ClickHouse connection initialized 16:31:01.752997 record_db.cpp:570 INF[main ] Initialized buffer for event_id:49 name:GNB_MAC_DL_PDU_WITH_DATA has_frame_slot:true columns:9 16:31:01.753065 record_db.cpp:1063 INF[main ] Tables created, waiting for messages... 16:31:07.299147 record_db.cpp:1096 INF[main ] GNB_MAC_DL_PDU_WITH_DATA rows: 1 total: 1 16:31:07.299148 record_db.cpp:1100 INF[main ] 16:31:12.299490 record_db.cpp:1096 INF[main ] GNB_MAC_DL_PDU_WITH_DATA rows: 234 total: 235 16:31:12.299491 record_db.cpp:1100 INF[main ] 16:31:17.299594 record_db.cpp:1096 INF[main ] GNB_MAC_DL_PDU_WITH_DATA rows: 260 total: 495 -
Jaroslava Fiedlerova authored
Fix dB_fixed() function - dB_fixed(0) returns 0 in develop branch; - 0 in dB is -INF, but since we're dealing with integer variables, we'll put 20*log10(2^-15) in the output of dB_fixed() function, instead of 0. - make all users use signed variables
-
Jaroslava Fiedlerova authored
fix: issue 911 - OAI gNB hangs when AMF connection goes down Once the AMF is down, based on the AMF UE NGAP ID and RAN UE NGAP ID, the UE associated with the AMF is found All the contexts related to the UE are released and the timer is started in the NGAP to look up for the SCTP association. The AMF-gNB reconnection is made if an SCTP connection is found, also the registration of multiple UE is triggered These actions are based on the reference from 4.2.6 AN release Specs TS 123 502 V16.7.0 (2021-01) When the NG-AP signalling connection is lost due to (R)AN or AMF failure, the AN release is performed locally by the AMF or the (R)AN as described in the procedure flow below without using or relying on any of the signalling shown between (R)AN and AMF. The AN release causes all UP connections of the UE to be deactivated. closes #911
-
Jaroslava Fiedlerova authored
CI: Create new pipeline for testing with Aerial and Jetson
-
Jaroslava Fiedlerova authored
Integrate NRPPA and NGAP messages required for positioning This MR integrates NRPPA and NGAP messages required for positioning. The following NGAP messages are integrated (3GPP 38.413 Version 16.0.0): NGAP UPLINK UE ASSOCIATED NRPPA TRANSPORT NGAP UPLINK NON UE ASSOCIATED NRPPA TRANSPORT NGAP DOWNLINK UE ASSOCIATED NRPPA TRANSPORT NGAP DOWNLINK NON UE ASSOCIATED NRPPA TRANSPORT The following NRPPA messages are integrated (3GPP 38.455 Version 16.7.1): TRP Information Request TRP Information Response Positioning Information Request Positioning Information Response Positioning activation request Positioning Activation Response Measurement Request Measurement Response This MR tests these messages via a standalone tester nr-cu-nrppa-test that connects to the AMF to perform NGAP enc/dec and NRPPA enc/dec Core Network: To pull the docker images: docker pull oaisoftwarealliance/ims:latest docker pull oaisoftwarealliance/oai-amf:develop docker pull oaisoftwarealliance/oai-nrf:develop docker pull oaisoftwarealliance/oai-smf:develop docker pull oaisoftwarealliance/oai-udr:develop docker pull oaisoftwarealliance/oai-upf:develop docker pull oaisoftwarealliance/oai-udm:develop docker pull oaisoftwarealliance/oai-ausf:develop docker pull oaisoftwarealliance/oai-lmf:develop openairinterface5g$ cd doc/tutorial_resources/oai-cn5g To deploy: openairinterface5g/doc/tutorial_resources/oai-cn5g$ docker compose -f docker-compose-positioning.yaml up -d To undeploy: openairinterface5g/doc/tutorial_resources/oai-cn5g$ docker compose -f docker-compose-positioning.yaml down -t 0 RAN: To compile: openairinterface5g$ mkdir build openairinterface5g$ cd build openairinterface5g/build$ cmake .. -GNinja openairinterface5g/build$ ninja nr-cu-nrppa-test To run: openairinterface5g/build$ LD_LIBRARY_PATH=. ./tests/nr-cu-nrppa/nr-cu-nrppa-test -O ../tests/nr-cu-nrppa/nr-nrppa-test.conf To initiate positioning procedure: openairinterface5g$ cd doc/tutorial_resources/positioning/ openairinterface5g/doc/tutorial_resources/positioning$ curl --http2-prior-knowledge -H "Content-Type: application/json" -d "@InputData.json" -X POST http://192.168.70.141:8080/nlmf-loc/v1/determine-location
-
- 05 Mar, 2026 3 commits
-
-
Bartosz Podrygajlo authored
Launch a temporary high-priority thread to start the UE RU, ensuring radio library threads inherit this priority
-
Robert Schmidt authored
This extends the functionality provided by record in that it allows collection of data into a Clickhouse database, allowing aggregation of data from gNB and UE for functions like channel estimation for PUSCH transmissions that did not decode successfully at the gNB. It is intended to be used in conjunction with Aerial Data Lake but is not limited to it. Data access is simpler than in !3462, but could be improved using the metadata approach from !3462. The integration uses logfmt for fast logging, and a clickhouse DB client, both integrated using CPM. This change set also adds a docker-compose file for a UE on 100MHz, to be used with Aerial configurations, and builds the tracer for Aerial and nrUE docker files.
-
Aswanth KC authored
- Extended fix to support multiple UEs instead of single UE - Actions now trigger upon AMF reconnection Per 3GPP TS 123 502 V16.7.0 (2021-01) Section 4.2.6 (AN Release): When NG-AP signalling connection is lost due to (R)AN or AMF failure, AN release is performed locally by AMF or (R)AN without relying on signalling between (R)AN and AMF. This deactivates all UP connections.
-
- 04 Mar, 2026 11 commits
-
-
Jaroslava Fiedlerova authored
Add information about the new CI setup and the RAN-SA-AERIAL-OAIUE-CN5G testing pipeline.
-
Jaroslava Fiedlerova authored
Since the setup script is available, use it to ensure the correct bandwidth configuration before each run.
-
Jaroslava Fiedlerova authored
-
Jaroslava Fiedlerova authored
Remove Ubuntu 20 and RHEL/Rocky 8 support, increase cmake min version Ubuntu 20 is EOL [1]. This was the version with the lowest CMake version, so we can increment the minimum CMake version to 3.19 as well. Increasing the minimum version will in particular help with the integration of CUDA (updates in 3.17 and 3.18), the current 3.19 brings better support for apple silicon. Some minor CMake updates (removing superfluous files and dependencies). [1] https://ubuntu.com/blog/ubuntu-20-04-lts-end-of-life-standard-support-is-coming-to-an-end-heres-how-to-prepare
-
Jaroslava Fiedlerova authored
UE: Fix if target cell during handover has SSB at a different offset as in source cell These changes fixed these observed issues: - If target cell has a different SSB position compared to source cell during ho - sync was not successful. - RAR does not get decoded if SSB position has changed on the target cell compared to source cell.
-
rmagueta authored
0 in dB is -INF, but since we're dealing with integer variables, we'll put 10*log10(2^-30) in the output, which corresponds to the symmetrical maximum output of the function.
-
rmagueta authored
-
Robert Schmidt authored
-
Jaroslava Fiedlerova authored
-
Jaroslava Fiedlerova authored
-
Jaroslava Fiedlerova authored
-
- 03 Mar, 2026 1 commit
-
-
Raghavendra Dinavahi authored
without this fix, after sync is successful, RAR is not getting decoded. PDCCH area also changes as SSB offset can change. if MAC configuration changes.
-
- 02 Mar, 2026 15 commits
-
-
Jaroslava Fiedlerova authored
UE L1 cleanup Mostly related to remove dependence from NB_ANTENNAS_RX parameter
-
Rakesh Mundlamuri authored
-
Rakesh Mundlamuri authored
-
Rakesh Mundlamuri authored
-
Rakesh Mundlamuri authored
-
Rakesh Mundlamuri authored
-
Rakesh Mundlamuri authored
-
Rakesh Mundlamuri authored
This is required for positioning as we initiate positioning procedure based on the imsi.
-
Rakesh Mundlamuri authored
-
Rakesh Mundlamuri authored
Supported TRP Information Response Types: - PCI NR - NG RAN CGI - NR ARFCN - GEOGRAPHICAL COORDINATES
-
Rakesh Mundlamuri authored
-
Rakesh Mundlamuri authored
-
Raghavendra Dinavahi authored
Actual problem is that SYNC does not happen on the target cell as frame parameters is not updated and ssb start carrier is not correct in the UE frame parameters function nr_get_ssb_start_sc to determine ssb_start_subcarrier
-
Robert Schmidt authored
-
Robert Schmidt authored
-