- 31 Oct, 2025 2 commits
-
-
Nick Hedberg authored
-
Nick Hedberg authored
-
- 24 Oct, 2025 28 commits
-
-
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
-
Robert Schmidt authored
Updates for Feature Set
-
Robert Schmidt authored
-
Thomas Schlichter authored
-
Guido Casati authored
-
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
-
francescomani authored
-
Robert Schmidt authored
-
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
-
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 -
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.
-
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
-
Guido Casati authored
-
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.
-
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.
-
Guido Casati authored
-
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.
-
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
-
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
-
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.
-
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
-
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
-
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
-
francescomani authored
-
francescomani authored
-
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
-
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
-
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
-
- 23 Oct, 2025 10 commits
-
-
Robert Schmidt authored
CI: Multiple adjustments - Test with DDDSU (mixed: DDDDDDDDDDGGUU) TDD configuration in RAN-SA-B200-Module-SABOX-Container - 40 MHz TDD test * https://jenkins-oai.eurecom.fr/job/RAN-SA-B200-Module-SABOX-Container/8910/ - Update the node to localhost for RFSim and L2Sim pipelines: * https://jenkins-oai.eurecom.fr/job/RAN-RF-Sim-Test-4G/3990/ * https://jenkins-oai.eurecom.fr/job/RAN-L2-Sim-Test-4G/3056/ * https://jenkins-oai.eurecom.fr/job/RAN-RF-Sim-Test-5G/10273/ - Remove unused eNB_instance and eNB_serverId entries from XML, replace by node - Remove nssai_sd from UE configuration (default value is used instead) - Update CI configuration files
-
Robert Schmidt authored
[CI] Update the Push to DockerHub Stage This MR addresses two cases: 1. Error Handling: Ensures subsequent Image Test Processes stages continue to run even if the preceding Push to DockerHub stage fails (applies when the condition is PUSH event and doBuild is true). 2. Introduces conditional logic to correctly handle multi-architecture images: Images built for both AMD64 and Jetson ARMv8 (oai-gnb, oai-nr-ue, oai-nr-cuup) use docker buildx imagetools for push to DockerHub. All other AMD64 images are pushed using standard Docker commands. Related MR !3691
-
Robert Schmidt authored
Merge remote-tracking branch 'origin/remove-benetel-radio-drivers' into integration_2025_w43 (!3719) Remove Benetel-specific radio drivers These drivers are superseded by the O-RAN 7.2 FHI
-
Robert Schmidt authored
Add monolithic N2 handover test pipeline with B210 and Quectel The goal of this MR is to provide an automated end-to-end N2 HO validation with real RF (B210) and Quectel UE. During the testing phase a post-HO assertion failure due to uninitialized selected_plmn_identity was found: this was also fixed. CI: Add monolithic N2 handover test pipeline (B210 + Quectel) - New XML pipeline for N2 HO testing - Docker Compose for two monolithic gNBs (gNB1/gNB2) - Handover sequence: gNB1 → gNB2 → gNB1 with 5s controlled attenuation (RC4DAT). - Channel mapping: ch1-2 gNB1, ch3-4 gNB2 - Telnet server enabled for CI commands - Clean-up/reset of attenuator state included NGAP - fix PLMN/cell location for Initial UE and Uplink NAS - Prevents assertion in ngap_gNB_nas_uplink() due to uninitialized selected_plmn_identity - Initial UE Message: pass UE-selected PLMN and NR cell ID from RRC to NGAP - Uplink NAS Transport: use PLMN, TAC, and cell ID from the message - Build NR CGI as gNB ID + cell ID - Store UE-selected PLMN only in RRC UE context (for later NAS); stop storing PLMN in NGAP UE context. - PLMN validation when processing handover requests from the source gNB: when PLMN validation fails, the target gNB now properly sends NGAP_HANDOVER_FAILURE - Store serving PLMN for later use in UE context
-
Robert Schmidt authored
UE symbol based PDCCH receiver This is a partial rebase/rewrite of !2895 The goal of this MR is to check how we can merge this. The eventual result is stated in !2895. The way forward is to modify UE RX procedures to work symbol by symbol by extracting the symbol loop out of RX procedures. After all channels are modified this way, the main thread can be modified to work symbol by symbol. At this point only PDCCH was modified.
-
Shubhika Garg authored
- Push both AMD64 & ARMv8 Jetson images together for images built on both using `docker buildx imagetools` - Use standard 'docker pull and push' for images built only on AMD64.
-
Robert Schmidt authored
-
francescomani authored
-
Robert Schmidt authored
-
Robert Schmidt authored
These drivers are superseded by the O-RAN 7.2 FHI.
-