delete_packet_filters Update outcome (#22 Increment 3) - #53
Closed
next-nf wants to merge 2 commits into
Closed
Conversation
Owner
Author
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Stacked on #52 (base
async-ue-bearer-22-inc2). Third increment of #22.Completes the
delete_packet_filtersprocedure Increment 2 started: a delete that leaves the bearer with surviving rules now re-provisions PFCP and emits a PTI-echoing Update Bearer Request carrying the recomputed TFT, instead of the Inc2assert_bearer_emptiedreject. Increment 2 handled the empty case (→ Delete Bearer); this handles the non-empty case (→ Update Bearer).The first multi-await
async_mprocedureue_delete_filters_procnow parks twice: Gx CCR-Uawait→ PCC remove+install fold → branch → non-empty:detect_modified_bearers(surviving descriptor) → PFCP-modifyawait→ emit the Update Bearer. Almost all reuse —detect_modified_bearers,send_dedicated_bearers_update(PTI ridesExtraIEs,Kind = rule_change), the freeensure_uplink_filter,commit_staged_descriptoron the response,create_new_tftfull-replace.Commits
876dd9a— the multi-await procedure:ue_delete_outcome/8(empty→Delete unchanged / non-empty→Update),await_pfcp_modify/1,emit_ue_update_bearer/7; folds remove and install (closes the Inc2 remove-only TODO(PGW: implement UE-requested bearer resource modification (TAD add/replace/delete) #22)); splitsbr_err(#ctx_errre-throws → FATAL stop / recoverable → Failure Indication); dropsassert_bearer_emptied; renamesbr_delete_ok→br_ok.4a8a836— stale-comment fix (br_delete_err→br_errin the Inc2 reject case).Design decisions
create_new_tftfull replace (the M3/M5 convention; inherits the free uplink-filter guarantee) over a truedelete_packet_filtersTFT delta.Kind = rule_change—handle_update_bearer_failure/4has no catch-all, so a new Kind would crash on an Update Bearer failure.Reviews & tests
br_errsplit, TFT-replace/Kind-reuse all verified).async_pendingwindow between the two parks (the Gx→PFCP transition is one uninterrupted function invocation), correct composition with delete_packet_filters -> Delete Bearer via async Gx CCR-U (#22 Increment 2) #52's fire-and-forget{'$reply'}postpone clause, working M-2 resume-re-park, and a clean PFCP-FATAL stop (no async error callbacks routing through handle_ctx_error/4 don't drain async_pending -> coarse gate can wedge #51 wedge). The multi-await pattern is validated end-to-end — the foundation's M-2 concern did not materialize.pgw_SUITE130/130 (129 prior + 1 new two-rule Update case), independently re-run. Default compile green.Out of scope
add_packet_filters/replace_packet_filters(Increment 4); requested-QoS/GBR (Increment 5).