Skip to content

add_packet_filters via async Gx CCR-U ADDITION + Update Bearer (#22 Increment 4) - #54

Closed
next-nf wants to merge 2 commits into
async-ue-bearer-22-inc3from
async-ue-bearer-22-inc4
Closed

add_packet_filters via async Gx CCR-U ADDITION + Update Bearer (#22 Increment 4)#54
next-nf wants to merge 2 commits into
async-ue-bearer-22-inc3from
async-ue-bearer-22-inc4

Conversation

@next-nf

@next-nf next-nf commented Jul 22, 2026

Copy link
Copy Markdown
Owner

Stacked on #53 (base async-ue-bearer-22-inc3). Fourth increment of #22.

Handles a UE add_packet_filters Bearer Resource Command: report the new filters' content to the PCRF over a Gx CCR-Update (Packet-Filter-Operation = ADDITION), await the rule install, and emit a PTI-echoing Update Bearer Request with the expanded TFT — replacing the true -> reject add_packet_filters hit before. An add never empties a bearer, so its outcome is always Increment 3's Update path.

Mostly reuse

The new code is narrow; the multi-await Update machinery is all Inc3:

  • 6474658smf_tft: filter_to_flow_info now carries Precedence; new flow_info_to_pf_add_group/1 remaps a flow-info map into a Gx Packet-Filter-Information ADD group — Packet-Filter-Content (the IPFilterRule, already produced by format_flow_description) + Precedence + Flow-Direction, dropping the UE's TFT id (not a PCRF SDF handle). Includes a real diameter encode/decode round-trip (diameter_Gx_SUITE) — the wire-shape validation the Inc2 mock path never exercised; it confirmed bare grouped-members encode cleanly (and gives the Inc2 delete group coverage by proxy).
  • 5dfba6fpgw_s5s8: extracts Inc3's Update path into a shared ue_update_outcome/7 (a byte-for-byte pure move; the Inc3 delete e2e is the guard), adds ue_add_filters_proc/4 (ADDITION content groups, install-only fold, unconditional Update) and the add_packet_filters dispatch arm. Reuses emit_ue_update_bearer/await_pfcp_modify/detect_modified_bearers/send_dedicated_bearers_update/br_ok/br_err/ccr_result/fold_cca verbatim.

Reviews & tests

  • Task 1 review Approved (the reviewer independently verified the bare-vs-list encoding against OTP diameter source: optional-arity fields get forgiving auto-wrap, decode always list-wraps). Task 2 review Approved (extraction confirmed a pure move; e2e non-vacuous with a genuine RED + real TAD encode/decode round-trip; the install answer's {QCI,ARP} matched to the bearer so it grows rather than creates).
  • pgw_SUITE 131/131 (130 prior + 1 new add case), independently re-run; the Inc2/Inc3 delete regression stays green (the extraction is behaviour-preserving). smf_tft_SUITE 26/26, diameter_Gx_SUITE 8/8. Default compile green.

Out of scope

replace_packet_filters (Increment 5 — needs the Gx MODIFICATION-vs-delete+add semantics grounded); requested-QoS/GBR (Increment 6). An add whose PCRF response binds a new {QCI,ARP} (→ a new bearer) is out of scope — the add proc handles add-to-existing (→ Update) and acks gracefully otherwise.

@next-nf

next-nf commented Jul 25, 2026

Copy link
Copy Markdown
Owner Author

Superseded by the async-invoke restack. This increment was re-authored onto invoke(pipeline_async) and collapsed into #56 (delete/add/replace together) on the redone #48 foundation. Closing in favor of #56.

@next-nf next-nf closed this Jul 25, 2026
@next-nf
next-nf deleted the async-ue-bearer-22-inc4 branch July 27, 2026 12:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant