1. 31 Oct, 2025 2 commits
  2. 24 Oct, 2025 28 commits
    • Robert Schmidt's avatar
      Merge branch 'integration_2025_w43' into 'develop' · 75a68167
      Robert Schmidt authored
      Integration: `2025.w43`
      
      * !3605 Support beam index in OAI 7.2 Fronthaul Interface
      * !3709 Fixes for T-Tracer to work with NR-UE
      * !3712 Restore UE Capability IE after RRCReestablishment
      * !3716 Remove unused ULSCH measurements at gNB
      * !3603 UE symbol based PDCCH receiver
      * !3708 Add monolithic N2 handover test pipeline with B210 and Quectel
      * !3719 Remove Benetel-specific radio drivers
      * !3710 [CI] Update the Push to DockerHub Stage
      * !3711 CI: Multiple adjustments
      * !3717 Initialize NCC=0 on NGAP Initial Context Setup (3GPP TS 33.501 §6.9.2.1.1)
      * !3720 fix direct bugs of not used RU_RX_SLOT_DEPTH defined constant
      * !3714 Improve handling of selection of RSRP/SINR report via configuration file
      * !3519 Refactor SDAP adaptation work for QoS
      * !3698 Other CSI measurement fixes
      * !3699 Updates for Feature Set
      
      Closes #1008
      
      See merge request oai/openairinterface5g!3713
      75a68167
    • Robert Schmidt's avatar
      1251c44a
    • Robert Schmidt's avatar
      Update supported bandwiths · 41ce5954
      Robert Schmidt authored
      41ce5954
    • Thomas Schlichter's avatar
      Update NTN in Feature Set · a898c18d
      Thomas Schlichter authored
      a898c18d
    • Guido Casati's avatar
      Update NAS and mobility in Feature Set · 23c115dc
      Guido Casati authored
      23c115dc
    • Robert Schmidt's avatar
      Retroactively add release notes for v2.3.0 · 57e382cc
      Robert Schmidt authored
      I forgot to add this when making the release. Put it retroactively to
      have things "in order".
      
      See also:
      https://gitlab.eurecom.fr/oai/openairinterface5g/-/tags/v2.3.0
      https://gitlab.eurecom.fr/oai/openairinterface5g/-/releases/v2.3.0
      57e382cc
    • francescomani's avatar
      Update UE feature set · 66d8ada9
      francescomani authored
      66d8ada9
    • Robert Schmidt's avatar
      Updates for Feature Set · 110f5c73
      Robert Schmidt authored
      110f5c73
    • Robert Schmidt's avatar
      Merge remote-tracking branch 'origin/fix_ue_csi_meas' into integration_2025_w43 (!3698) · ef4e37d3
      Robert Schmidt authored
      Other CSI measurement fixes
      
      Errors fixed in this MR:
      
      - UE currently sends empty CSI measurement report resulting in invalid
        cqi_idx 0, default to MCS 9 at gNB because mismanagement of new L1
        measurement structure at MAC UE
      - nrofReportedRS not updated after UE capability reception at gNB
      - multiple RSRP reports multiplexed / de-multiplexed in wrong order
      ef4e37d3
    • Robert Schmidt's avatar
      Merge remote-tracking branch 'origin/sdap-qos-improvements' into integration_2025_w43 (!3519) · 35a450bd
      Robert Schmidt authored
      Refactor SDAP adaptation work for QoS
      
      This MR is an adaptation of the code introduced in !2703.
      
      The goal is a cleanup and functional refactor of the SDAP/PDCP
      integration, that is:
      
      - centralize SDAP configuration logic
      - simplify entity creation
      - improve robustness of role-based SDAP handling
      - prepare the codebase for clean support of DRB reconfiguration and
        teardown flows
      
      More concretely:
      
      1. New sdap_config_t and get_sdap_Config()
      
        - Introduced an internal struct sdap_config_t to abstract SDAP config
          input
        - Centralized SDAP config parsing into new get_sdap_Config() function
          that translates ASN.1 NR_SDAP_Config into this internal
          representation. This is called during RRC triggered
          (re)configuration procedures.
        - Enable mapping of number of QoS flows > 1
      
      2. Unified role handling with bitmasks
      
        - Added a bitmask-based entity_role field to track SDAP directions:
          SDAP_UL_RX, SDAP_UL_TX, SDAP_DL_RX, SDAP_DL_TX: header presence was
          determined by simple direction (UE vs gNB) and individual
          is_sdap_rx/tx() checks, however nr_sdap_rx_entity behaves
          differently depending on the direction of the RX entity (DL/UL),
          therefore this change can help enable a more accurate SDAP header
          handling across directions and node types.
        - Replaces old helpers is_sdap_rx() / is_sdap_tx() with internal
          checks against the role bitfield
        - QFI-to-DRB mapping is now annotated with direction for both data and
          control PDUs
      
      3. Simplified DRB and SDAP setup
      
        - add_drb() in PDCP API now delegates SDAP config processing cleanly
        - new_nr_sdap_entity() is used consistently to register a fresh SDAP
          context for the UE and PDU session.
          - Also, re-use and reconfigure existing SDAP entity if already
            exists.
        - logging has been added to trace mapped QFIs from RRC and resulting
          table entries
      
      4. Improved QFI-to-DRB management
      
        - Refactored nr_sdap_qfi2drb_map_update() to register QFIs based on
          parsed config
        - Ensures control PDUs are correctly routed even after reconfiguration
        - Extended nr_sdap_ue_qfi2drb_config: perform UL QoS flow to DRB
          mapping configuration for a SDAP entity has already been established
          according to TS 37.324, 5.3 QoS flow to DRB Mapping, 5.3.1
          Configuration Procedures. Handle both UL QoS Flows mapping rules to
          add and to remove. QFIs will now be properly unmapped if specified
          via mappedQoS_FlowsToRelease, this might prevent stale QFI mappings
          from being used incorrectly.
        - nr_sdap_qfi2drb() and sdap_map_ctrl_pdu() now strictly fallback to
          default_drb only if a QFI mapping is missing. Missing default DRB
          now triggers LOG_E() (previously silent or misrouted to DRB 0).
      
      5. Other cleanup
      
        - Remove dependencies from legacy rb_id_t
      35a450bd
    • Robert Schmidt's avatar
      Merge remote-tracking branch 'origin/improv_config_report' into integration_2025_w43 (!3714) · b7ed2583
      Robert Schmidt authored
      Improve handling of selection of RSRP/SINR report via configuration file
      
      In current develop, the selection of SSB or CRI RSRP depends on the
      do_CSIRS flag being activated. That's not wanted. CRI report for now it
      is never handled, while we need SSB RSRP report for beam switching
      regardless of CSI-RS configuration.
      b7ed2583
    • Guido Casati's avatar
      refactor: improve SDAP entity add/update flow management · 27be4e26
      Guido Casati authored
      This commit refactors the SDAP entity QoS flow to DRB mapping functionality
      to improve code organization and enhance maintainability.
      
      Key changes:
      - Split nr_sdap_qfi2drb_map_update into focused functions:
        * nr_sdap_add_qos_flows_to_drb: handles QFI addition to DRB
        * nr_sdap_rm_qos_flows_from_drb: handles QFI removal from DRB
        * nr_sdap_ue_control_pdu_config: handles UE control PDU generation
      - Consolidate add/modify logic into reusable nr_sdap_addmod_entity function
      - Remove entity existence checking and updating from new_nr_sdap_entity:
        this function should only add SDAP entities
      - Improve function separation of concerns: do SDAP entity add or update
        separately and improve modularity by splitting operations in self
        contained functions
      - At SDAP creation, do only add of QFI to DRB mapping
      - rename new_nr_sdap_entity to nr_sdap_add_entity for function naming consinstency
      27be4e26
    • Guido Casati's avatar
      PDCP: rename add_drb to nr_pdcp_add_drb · 04a1acf3
      Guido Casati authored
      04a1acf3
    • Guido Casati's avatar
      Remove rb_id parameter from SDAP TX entity - QFI determines DRB mapping · 0348aa08
      Guido Casati authored
      - Remove rb_id parameter from nr_sdap_tx_entity() function signature
      - Update tx_entity function pointer
      - Remove rb_id parameter from sdap_data_req() function signature
      - Remove unused rb_id variable from sdap_tun_read_thread
      
      The rb_id parameter was redundant since SDAP determines DRB ID
      from QFI mapping via entity->qfi2drb_map(entity, qfi). This
      simplifies the interface.
      0348aa08
    • Guido Casati's avatar
      SDAP TX: explicit check on qfi2drb_map output · d760a168
      Guido Casati authored
      Each QFI should always be mapped to a DRB. If that is not the case, we
      have an undefined behavior. This should not occur. This commit prints
      an error in tx_entity and returns.
      d760a168
    • Guido Casati's avatar
    • Guido Casati's avatar
      Refactor handling of DL/UL SDAP header in the SDAP entity · 823340a2
      Guido Casati authored
      The TX/RX entity should have different behavior according to
      5.2.1, 5.2.2, 3GPP TS 37.324, depending on whether it is UL and DL.
      
      The gNB can play a role both as UL RX entity and DL TX entity, while
      the UE can play a role both as UL TX entity and DL RX entity.
      
      The goal of this commit is to extend the information stored in the
      SDAP entity as the current code is just marking the entity as TX/RX.
      The commit introduces a bitmap to store the role of the
      entity, which can be DL RX, DL TX, UL RX and UL TX. Based on this
      the TX SDAP entity knows whether a DL/UL PDU should be build, and
      the RX SDAP entity knows whether a DL/UL PDU should be processed.
      
      See also Figure 4.2.2-1.
      
      SDAP headers are present only if enable_sdap option is used.
      823340a2
    • Guido Casati's avatar
      Refactor QFI to DRB mapping logic · 3efaafa6
      Guido Casati authored
      nr_sdap_qfi2drb_map_update function pointer should
      process QFIs to add and release from the entity mapping, therefore
      a new function pointer for QFIs to add was introduced and
      the function pointer to release the QFIs was called in the same function.
      
      Now the nr_sdap_qfi2drb_map_update is:
      (1) looping through the QFIs to add/update and store in the qfi2drb_table
      (2) looping through the QFIs to release and delete from qfi2drb_table
      
      Also:
      
      * Update the function signature to use sdap_config_t and nr_sdap_entity_t
      * log error when the update fails
      * limit the scope of the function
      * clang-formatted
      * removed limit on table entries set by AVLBL_DRB, replaced with MAX_DRBS_PER_UE
      3efaafa6
    • Guido Casati's avatar
      Refactor SDAP UL: QoS flow to DRB Mapping configuration and end-marker control PDU mapping · bae1de16
      Guido Casati authored
      The function nr_sdap_ue_qfi2drb_config should do UL QoS flow to DRB mapping configuration
      for a SDAP entity has already been established according to TS 37.324, 5.3 QoS flow to
      DRB Mapping, 5.3.1 Configuration Procedures. It should handle both mapping rules to add and to remove.
      
      To this purpose:
      
      * Simplify function signature by passing the sdap config.
      * Improve readability of the function.
      * Move handling of sdap.mappedQFIs2ReleaseCount (in nr_reconfigure_sdap_entity)
        inside the function.
      * Simplify end-marker control PDU mapping function by removing unused
        DRB ID input parameter (the function is fetching the DRB ID based on the input
        map type)
      * use int instead of legacy rb_id_t
      * limit scope of functions whenever necessary
      bae1de16
    • Guido Casati's avatar
      Refactor nr_sdap_qfi2drb_map · 7376c954
      Guido Casati authored
      The goal of this function is to return the DRB ID mapped to the input QFI, for both DL and UL.
      The function looks up the DRB that is mapped to the QFI, if no mapping rule exists
      returns the default DRB. Returns 0 If no mapping and no default DRB exists for that QFI
      
      The function should not update the stored mapping rules, that is done when receiving
      a new SDAP configuration. In this function it was removed.
      
      See TS 37.324, 5.2.1 Uplink
      > If there is no stored QoS flow to DRB mapping rule for the QoS flow as specified in the subclause 5.3,
      > map the SDAP SDU to the default DRB else, map the SDAP SDU to the DRB according to the stored QoS flow to DRB mapping rule.
      7376c954
    • Guido Casati's avatar
      Refactor new_nr_sdap_entity to use sdap_config_t and always update mapping rules · 7b42a65a
      Guido Casati authored
      * change function signature: pass the sdap_config_t
      * update qfi2drb mapping when receiving a configuration for an already existing SDAP entity
      * always update mapping rules, not only for default DRB
      7b42a65a
    • Guido Casati's avatar
      refactor: Use centralized get_sdap_Config in nr_reconfigure_sdap_entity · 68a3a849
      Guido Casati authored
      Replace inline parameter extraction with get_sdap_Config() function call to:
      - Eliminate code duplication in SDAP configuration handling
      - Streamline QFI release processing with structured config object
      - Ensure consistent SDAP configuration extraction across all SDAP operations
      68a3a849
    • Guido Casati's avatar
      Refactor processing of sdap_Config in add_drb (PDCP) · 35026346
      Guido Casati authored
      * use get_sdap_Config to process sdap_Config
      * move SDAP config logic to the scope where it is relevant
      * add SDAP entity direcly in RRC, not from PDCP
      * replaced nr_pdcp_add_drbs with single add_drb call: it was no longer
        efficient to keep it in the new logic. The addMod list can be looped directly in RRC.
      * add specific function to add bearers from addMod list in E1, NSA, and UE
      35026346
    • francescomani's avatar
      fix SINR report order at UE · 74768959
      francescomani authored
      74768959
    • francescomani's avatar
    • Robert Schmidt's avatar
      Merge remote-tracking branch 'origin/RU_RX_SLOT_DEPTH-bugs' into integration_2025_w43 (!3720) · 064d2a1e
      Robert Schmidt authored
      fix direct bugs of not used RU_RX_SLOT_DEPTH defined constant
      
      with this commit, the gNB can work if we change RU_RX_SLOT_DEPTH to
      another value than 4 but it remain not well designed
      064d2a1e
    • Robert Schmidt's avatar
      Merge remote-tracking branch 'origin/issue-1008' into integration_2025_w43 (!3717) · e8d36e8a
      Robert Schmidt authored
      Initialize NCC=0 on NGAP Initial Context Setup (3GPP TS 33.501 §6.9.2.1.1)
      
      The nhcc should be initialized to 0 upon Initial Context Setup.
      
      Also, remove unused kgnb_ncc: nh_ncc is already there.
      
      Closes #1008
      e8d36e8a
    • Laurent THOMAS's avatar
      fix direct bugs of not used RU_RX_SLOT_DEPTH defined constant · 83fed82b
      Laurent THOMAS authored
      with this commit, the gNB can work if we change RU_RX_SLOT_DEPTH to
      another value than 4 but it remain not well designed
      83fed82b
  3. 23 Oct, 2025 10 commits