mirror of
https://gitlab.eurecom.fr/oai/openairinterface5g.git
synced 2026-07-13 04:30:28 +00:00
Refactor GTP-U tunnel and send APIs so QFI is handled when sending packets, not stored in tunnel creation state. Update SDAP and CU-UP integration to use PDU-session keyed N3 mappings and explicit QFI-marked sends. This commit clarifies layering ownership: GTP-U stays transport-only (TEID lookup, decapsulation, extension parsing, callback dispatch), while SDAP owns QoS semantics (QFI handling, QoS-flow-to-DRB policy, default DRB behavior, and mapping updates); GTP-U does not perform runtime QFI-to-DRB mapping or synthesize QFI. Changes: - remove `outgoing_qfi` from `gtpv1u_gnb_create_tunnel_req_t` and stop storing QFI as tunnel creation metadata; `newGtpuCreateTunnel(...)` now carries only transport/tunnel identity parameters (incoming_bearer_id, outgoing_bearer_id, outgoing_teid, remote address, callbacks) - add `gtpv1uSendDirectWithQFI()` and pass QFI into `_gtpv1uSendDirect` to build UL PDU Session Container extensions - shift QFI handling from tunnel provisioning to per-packet TX APIs: QFI is passed explicitly only when sending (`gtpv1uSendDirectWithQFI(...)`) and is absent from non-SDAP/F1 sends (`gtpv1uSendDirect(...)`) - align N3 tunnel request semantics with session-level keys by setting incoming_rb_id to PDU session ID on N3 paths, while F1 paths keep DRB ID - keep `gtpv1uSendDirect()` and `gtpv1uSendDirectWithNRUSeqNum()` on `NO_QFI`, and enforce non-SDAP RX callback path only when QFI is absent - update `nr_sdap_rx_entity` to extract/validate QFI from SDAP UL headers, send UL data with `gtpv1uSendDirectWithQFI`, and use non-QFI send when SDAP header is disabled - add disabled-SDAP safety checks in SDAP entity setup/mapping to enforce single-DRB and single-flow constraints per PDU session - extend `test_gtp.cpp` with a `multi_qos_flows` scenario and QFI-aware send calls - update `nr-cuup-load-test.c` bearer setup fields and tunnel creation calls to match the new API - update tests/nr-cuup/nr-cuup-load-test.c to set explicit PDU session and QoS/SDAP parameters (sessionType, qosFlows[0], SDAP header flags), and to migrate both N3 and F1 tunnel creation calls to the new newGtpuCreateTunnel(...) signature (without outgoing_qfi) Signed-off-by: Guido Casati <guido.casati@openairinterface.org>