1. 03 Dec, 2025 1 commit
    • Bartosz Podrygajlo's avatar
      Add symbol timing functions for NR_DL_FRAME_PARMS · 8f88efd9
      Bartosz Podrygajlo authored
      Add two new functions for calculation symbol timestamp and symbol
      duration for NR_DL_FRAME_PARMS. These functions are not using
      the existing indirection mechanism via function pointers as this
      prevents the compiler from properly optimizing the code.
      8f88efd9
  2. 29 Nov, 2025 1 commit
    • Jaroslava Fiedlerova's avatar
      Merge branch 'integration_2025_w48' into 'develop' · 16030771
      Jaroslava Fiedlerova authored
      Integration `2025.w48`
      
      * !3778 CI: Update IP addresses in Aerial gNB config files
      * !3659 UE NTN - Epoch time handling for Target cell
      * !3772 CI: Ensure EPC is always terminated in NSA-B200 pipeline
      * !3773 Fix doc for UTC timestamp
      * !3759 NR UE: fix bug for SRS generation when freqDomainShift (n_shift) is not 0
      * !3774 Use UL functions for Qm/R determination
      * !3767 Fix DRB integrity failures during handover and re-establishment
      * !3764 Avoid measGap configuration on handover in intra-freq scenarios
      * !3768 Fix MIB encoding in F1SetupRequest: use encode_MIB_NR_setup instead of encode_MIB_NR
      * !3771 CI build analysis: print log file errors
      * !3703 Taking into account UE capabilities for TBS_lbrm layers
      * !3561 Implementation of STOP exchange
      * !3776 Fix reestablishment after handover
      * !3763 CI: Reduce the tries to attach the UE in CI runs
      * !3761 fix(FHI 7.2): PRACH frame test
      * !3616 [FHI72 M-plane] Update the M-plane support to v16.01
      * !3790 Correctly copy nFAPI messages
      * !3779 CFRA: mark RA complete when sending Msg2 - check CI
      
      Closes #563 and #1034
      
      See merge request oai/openairinterface5g!3775
      16030771
  3. 28 Nov, 2025 13 commits
    • Robert Schmidt's avatar
      Merge remote-tracking branch 'origin/cfra-no-msg3' into integration_2025_w48 · 6fe7581e
      Robert Schmidt authored
      CFRA: mark RA complete when sending Msg2
      
      The current contention-free random access forces a "Msg3" (which does
      not exist in CFRA) to be received by a UE. Sometimes, this "Msg3" is not
      received (for whatever reason), and the MAC declare that RA failed.
      
      This is problematic, as the spec says that RA is complete once Msg2 is
      received by the UE. Since the gNB cannot know when this is, simply mark
      it as complete once we sent Msg2.
      
      We still send Msg3 in CFRA, which is explained further in the commits.
      
      Also, improve logging and stabilize an RFsim test by reducing sl_ahead.
      6fe7581e
    • Jaroslava Fiedlerova's avatar
      Merge remote-tracking branch 'origin/fix-nfapi-100mhz' into integration_2025_w48 (!3790) · 2ff7a56b
      Jaroslava Fiedlerova authored
      Correctly copy nFAPI messages
      
      All nFAPI message have copy helpers, so use that for "loading" nFAPI
      messages into the L1. This also fixes a bug/error message
      
      2. 0 no corresponding tx_data.request for dl_tti.request index 11, dropping
      
      because the loop over DL_tti.request assumed that all messages are PDSCH
      PDUs, when we can have others such as PDCCH, etc. In other words, when
      looking up indices ("11" in the example above), we were checking also
      inside other messages for SSB, PDCCH, etc, which is of course wrong.
      That loop was an attempt to validate matching PDSCH PDUs with
      TX_data.requests. This check is already done inside
      phy_procedures_gNB_TX() through an assert, but this commit replaces with
      the equivalent check previously inside nr_pnf_p7_get_msgs(). This is ok,
      as the L1 cannot trust the scheduler (in monolithic) to provide the
      correct information, either.
      Fixes: eefb9da6 ("Reimplement nFAPI message exchange after msgDataTx removal")
      2ff7a56b
    • Jaroslava Fiedlerova's avatar
      Merge remote-tracking branch 'origin/mplane-v16.01' into integration_2025_w48 (!3616) · 68a4bb9a
      Jaroslava Fiedlerova authored
      [FHI72 M-plane] Update the M-plane support to v16.01
      
      - retrieve the additional hardware states (oper-state, admin-state,
        availability-state) and update according to the received notifications
      - properly configure MIMO mode if a RU supports
      - update the yang models to v16.01
      - tested with Benetel v1.4.1, and added an example run in the M-plane doc
      
      Note: backwards compatible with M-plane v05.00
      
      Also, memory leakages fixed cause by ru_session_list_t, and xml functions
      xmlReadMemory() and xmlNodeGetContent().
      68a4bb9a
    • Jaroslava Fiedlerova's avatar
      Merge remote-tracking branch 'origin/fix_prach_frame_test_fhi72' into integration_2025_w48 (!3761) · c8b4aa2a
      Jaroslava Fiedlerova authored
      fix(FHI 7.2): PRACH frame test
      
      A test was missing in the PRACH RX function of the FHI 7.2 in order to know if
      the frame had a PRACH occasion. This was leading to continuous warning messages
      as PRACH RX was triggered on frames in which PRACH was not expected by the
      scheduler.
      c8b4aa2a
    • Jaroslava Fiedlerova's avatar
      Merge remote-tracking branch 'origin/CI-ue-attach' into integration_2025_w48 (!3763) · 8300ab5a
      Jaroslava Fiedlerova authored
      CI: Reduce the tries to attach the UE in CI runs
      
      The goal of this MR is to save time in CI runs by reducing the UE attach tries
      to 3 instead of 4 and UE timeout to 20 seconds, which will be incremented after
      each fail, instead of 60 seconds.
      8300ab5a
    • Robert Schmidt's avatar
      CFRA: handle potential Msg3 · 1368bb5a
      Robert Schmidt authored
      Since the parent commit, CFRA is inconditionally marked complete on Msg3
      reception (successful or not). This works because the current
      implementation still sends a UL grant (see parent commit for details).
      
      In this commit, handle Msg3 if received in CFRA (notably for TA and
      power). Note that since we declare RA complete, UE->ra does not exist
      anymore, and so an intermediate variable is introduced to capture the
      CFRA flag. The code should be such that if we are in CFRA, we never
      access any UE->ra variable.
      1368bb5a
    • Robert Schmidt's avatar
      Correctly copy nFAPI messages · 923b2ec1
      Robert Schmidt authored
      All nFAPI message have copy helpers, so use that for "loading" nFAPI
      messages into the L1. This also fixes a bug/error message
      
          2. 0 no corresponding tx_data.request for dl_tti.request index 11, dropping
      
      because the loop over DL_tti.request assumed that all messages are PDSCH
      PDUs, when we can have others such as PDCCH, etc. In other words, when
      looking up indices ("11" in the example above), we were checking also
      inside other messages for SSB, PDCCH, etc, which is of course wrong.
      
      That loop was an attempt to validate matching PDSCH PDUs with
      TX_data.requests. This check is already done inside
      phy_procedures_gNB_TX() through an assert, but this commit replaces with
      the equivalent check previously inside nr_pnf_p7_get_msgs(). This is ok,
      as the L1 cannot trust the scheduler (in monolithic) to provide the
      correct information, either.
      
      Fixes: eefb9da6 ("Reimplement nFAPI message exchange after msgDataTx removal")
      923b2ec1
    • Reem Bahsoun's avatar
      Reduce the time given to the UE to re-attach after failure · d6e4e49f
      Reem Bahsoun authored
      Number of tries is reduced from 4 to 3
      After each failure the timeout is incremented by 20
      d6e4e49f
    • Romain Beurdouche's avatar
      fix(FHI 7.2): PRACH frame test · f6135ff1
      Romain Beurdouche authored
      A test was missing in the PRACH RX function of the FHI 7.2 in order to
      know if the frame had a PRACH occasion.
      This was leading to continuous warning messages as PRACH RX was
      triggered on frames in which PRACH was not expected by the scheduler.
      f6135ff1
    • Robert Schmidt's avatar
      CFRA: mark RA complete when sending Msg2 · 8ea95a0e
      Robert Schmidt authored
      The current contention-free random access forces a "Msg3" (which does
      not exist in CFRA) to be received by a UE. Sometimes, this "Msg3" is not
      received (for whatever reason), and the MAC declare that RA failed.
      
      This is problematic, as the spec says that RA is complete once Msg2 is
      received by the UE. To avoid this, inconditionally mark RA as complete
      as soon as we receive an indication of Msg3 (DTX or not).
      
      Note that after this change, we still send a UL grant in Msg2. This is
      because 38.321 §5.1.4 is not clear to me whether we should send UL grant
      (it does not explicitly exclude it), and it says
      
      > 3> if the Random Access Response includes a MAC subPDU with RAPID only:
      > [...]
      >   4> indicate the reception of an acknowledgement for SI request to
      >      upper layers.
      
      which is NOT the case (but then I don't know/think we can have CFRA for
      SI request?).  Since it also works with COTS UE, I leave Msg3 for the
      moment.
      
      The reason to not directly mark RA as complete when sending Msg2 is
      because of possible retransmissions in do-ra mode. In fact, in do-ra,
      there might already be data awaiting. In that case, the DLSCH scheduler
      schedules data _in the same slot as Msg2_, which the UE does not decode,
      leading to retransmissions.
      8ea95a0e
    • Robert Schmidt's avatar
      Remove duplicate of RAR log above · f0151c21
      Robert Schmidt authored
      f0151c21
    • Robert Schmidt's avatar
      Log preambles for pre-configured RA · d5eb935e
      Robert Schmidt authored
      d5eb935e
    • Robert Schmidt's avatar
  4. 27 Nov, 2025 2 commits
  5. 26 Nov, 2025 7 commits
  6. 25 Nov, 2025 5 commits
    • Jaroslava Fiedlerova's avatar
      Merge remote-tracking branch 'Rakesh_B_B/develop' into integration_2025_w48 (!3768) · 8966dc2c
      Jaroslava Fiedlerova authored
      Fix MIB encoding in F1SetupRequest: use encode_MIB_NR_setup instead of encode_MIB_NR
      
      - The DU was using encode_MIB_NR() while constructing the GNB-DU System
        Information for the F1SetupRequest.
      - encode_MIB_NR() encodes a full NR_BCCH_BCH_Message_t, causing the MIB to be
        wrapped in a BCH container.
      - This results in incorrect MIB values in the F1SetupRequest PCAP (e.g., wrong
        systemFrameNumber, SCS, DMRS position, cellBarred).
      - According to 3GPP TS 38.473, the MIB carried in F1AP must be encoded as a raw
        NR_MIB_t.
      - The correct function encode_MIB_NR_setup() encodes MIB in the required format
        but was not used.
      - This patch replaces encode_MIB_NR() with encode_MIB_NR_setup() to ensure correct
        and standards-compliant MIB encoding in the F1SetupRequest.
      
      Closes issue #1034.
      8966dc2c
    • Jaroslava Fiedlerova's avatar
      Merge remote-tracking branch 'origin/fix-drb-integrity' into integration_2025_w48 (!3767) · c87a6ecf
      Jaroslava Fiedlerova authored
      Fix DRB integrity failures during handover and re-establishment
      
      This MR fixes DRB integrity protection failures that occur during N2 handover
      and connection re-establishment scenarios. The issues were caused by incorrect
      security key handling and ciphering configuration during these procedures with
      DRB integity enabled.
      
      See merge request !3767 for more details.
      c87a6ecf
    • Jaroslava Fiedlerova's avatar
      Merge remote-tracking branch 'origin/fix-measGaps' into integration_2025_w48 (!3764) · 0c488294
      Jaroslava Fiedlerova authored
      Avoid measGap configuration on handover in intra-freq scenarios
      
      During the handover, we are incorrectly configuring the measGap, even though
      neighboring cells are on the same frequency. Since gNB is not expecting this
      measGap, the SRS scheduling is performed. Therefore, we are periodically
      receiving these logs after the handover:
      
      [NR_MAC] Invalid timing advance offset for RNTI 58e2
      [NR_MAC] Invalid timing advance offset for RNTI 58e2
      [NR_MAC] Invalid timing advance offset for RNTI 58e2
      [NR_MAC] Invalid timing advance offset for RNTI 58e2
      [NR_MAC] Invalid timing advance offset for RNTI 58e2
      [NR_MAC] Invalid timing advance offset for RNTI 58e2
      
      These logs occur at a time when UE is performing a MeasGap operation and not
      sending the SRS, while gNB thinks it will receive the SRS, but will not receive
      any SRS.
      
      This MR resolves this issue, and after the handover, these logs no longer
      appear.
      0c488294
    • Jaroslava Fiedlerova's avatar
      Merge branch 'aerial-gh1-ip-addr' into 'develop' (!3778) · 0e4ade94
      Jaroslava Fiedlerova authored
      CI: Update IP addresses in Aerial gNB config files
      
      This MR updates the NG-AMF and NG-U IP addresses in both Aerial configuration 
      files (standard and UL-heavy) following the IP address change on GH1.
      0e4ade94
    • Guido Casati's avatar
  7. 24 Nov, 2025 9 commits
  8. 21 Nov, 2025 2 commits
    • Robert Schmidt's avatar
      CI build analysis: print log file errors · bff0e536
      Robert Schmidt authored
      The generated HTML from CI builds so far only shows the number of
      errors, but not the errors themselves. This is inconvenient, as this
      means that developers have to go to the logs.
      
      This commit modifies AnalyzeBuildLogs(), which already iterates the
      entire file, to store the lines containing "error:" (as it would be
      emitted by a compiler). The callers of AnalyzeBuildLogs() now also print
      the analysis outcome in a more concise manner.
      
      Also, change the return parameter of AnalyzeBuildLogs() to a tuple to make
      the variable handling easier, and remove the unused warnings list.
      bff0e536
    • rmagueta's avatar
      Do not configure NR_MeasurementTimingConfiguration during handover when... · fea86247
      rmagueta authored
      Do not configure NR_MeasurementTimingConfiguration during handover when neighboring cells are at the same frequency
      fea86247