fix: PFCP Session Establishment Failures with Free5GC SMF

Summary

Resolves PFCP session establishment failures between Free5GC SMF and OAI UPF by tightening QER validation so GBR and non-GBR flows follow 3GPP rules. A companion patch (provided separately) restores missing PFCP IE parsing in oai-cn5g-common-src so the SMF-provided IEs reach the UPF.

Merge Dependencies

Must merge alongside:

Combined branch for validation: https://gitlab.eurecom.fr/oai/cn5g/oai-cn5g-upf/-/tree/fix-free5gc-integration-with-qos-fix?ref_type=heads

Problem Description

SMF received CAUSE_VALUE_CONDITIONAL_IE_MISSING (67) citing IE 49 and IE 100 because the UPF lacked parsers for those IEs and treated GBR as mandatory for every QER, breaking non-GBR flows.

Root Causes

  1. Unknown PFCP IE Type 100 (common-src patch): Measurement Information IE was commented out in the shared PFCP parser
  2. Unknown PFCP IE Type 49 (common-src patch): PFCPSMReq-Flags IE was commented out in the shared PFCP parser
  3. Incorrect GBR/MBR Validation (this MR): The UPF required GBR for all QoS flows, but per 3GPP TS 23.501, only GBR QoS flows require both MBR and GBR; non-GBR flows only require MBR

Changes Made

Changes in This MR

  • Reworked QER validation (3GPP TS 23.501 5.7.3):
    • GBR flows require MBR+GBR and ensure GBR ≤ MBR
    • Non-GBR flows accept MBR only
    • Best-effort flows accept neither
    • Reject configurations that set GBR without MBR
  • Improved logging to explain enforcement decisions and missing mandatory IEs (QFI, GBR/MBR combinations).

Companion Patch (oai-cn5g-common-src)

  • Restores IE 49 (PFCPSMReq-Flags) and IE 100 (Measurement Information) parsing/encoding per 3GPP TS 29.244 8.2.31 & 8.2.68 so the Free5gc SMF messages align with the updated UPF checks.
  • Provided as measurement-ie.patch because the current oai-cn5g-common-src develop head is temporarily incompatible with UPF; see External Dependencies.

External Dependencies

  • Requires matching updates in oai-cn5g-common-src for IE 49 and IE 100 (see measurement-ie.patch).
  • Tracking issue: oai-cn5g-common-src#11 to realign the common repo with UPF.

measurement-ie.patch

Merge request reports

Loading