1. 11 Mar, 2026 1 commit
    • Robert Schmidt's avatar
      Bugfix: make longer telnet cmdfunc names · d82b5c1e
      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.
      d82b5c1e
  2. 06 Mar, 2026 9 commits
    • Jaroslava Fiedlerova's avatar
      Merge branch 'integration_2026_w10' into 'develop' · 582ce818
      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
      582ce818
    • francescomani's avatar
      Merge remote-tracking branch 'origin/unused_function_arguments' into integration_2026_w10 (!3958) · 8ad86783
      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.
      8ad86783
    • Jaroslava Fiedlerova's avatar
      Merge remote-tracking branch 'origin/change-typedef-names-for-coding-style'... · acf9c25e
      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
      acf9c25e
    • Jaroslava Fiedlerova's avatar
      Merge remote-tracking branch 'origin/uhd_priority_in_nrUE' into integration_2026_w10 (!3954) · 4e3ac9e9
      Jaroslava Fiedlerova authored
      Increase UHD streamer thread priority in nrUE
      
      This minor change allows nrUE UHD threads to inherit priority
      OAI_PRIORITY_RT_MAX.
      4e3ac9e9
    • Jaroslava Fiedlerova's avatar
      Merge remote-tracking branch 'origin/recordDb' into integration_2026_w10 (!3800) · e6105b9d
      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
      e6105b9d
    • Jaroslava Fiedlerova's avatar
      Merge remote-tracking branch 'origin/fix_db_fixed' into integration_2026_w10 (!3914) · 257de657
      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
      257de657
    • Jaroslava Fiedlerova's avatar
      Merge remote-tracking branch 'origin/issue-911-fix' into integration_2026_w10 (!3697) · ef14a2b9
      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
      ef14a2b9
    • Jaroslava Fiedlerova's avatar
      Merge remote-tracking branch 'origin/ci-add-jetson-test' into integration_2026_w10 (!3784) · 5b66b537
      Jaroslava Fiedlerova authored
      CI: Create new pipeline for testing with Aerial and Jetson
      5b66b537
    • Jaroslava Fiedlerova's avatar
      Merge remote-tracking branch 'origin/nrppa_ngap_integration' into integration_2026_w10 (!3884) · d7fc76b7
      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
      d7fc76b7
  3. 05 Mar, 2026 3 commits
    • Bartosz Podrygajlo's avatar
      Run nrue_ru_start in a high priority thread · 7d058eb0
      Bartosz Podrygajlo authored
      Launch a temporary high-priority thread to start the UE RU,
      ensuring radio library threads inherit this priority
      7d058eb0
    • Robert Schmidt's avatar
      Add T tracer to record configured events to database · 1d69eb0e
      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.
      1d69eb0e
    • Aswanth KC's avatar
      fix: issue 911 - OAI gNB hangs when AMF connection goes down · c90d7f7f
      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.
      c90d7f7f
  4. 04 Mar, 2026 11 commits
  5. 03 Mar, 2026 1 commit
  6. 02 Mar, 2026 15 commits