feat(ngap): qualify Modify Request Transfer root admission - #887
Open
VerifiedOrganic wants to merge 1 commit into
Open
VerifiedOrganic wants to merge 1 commit into
VerifiedOrganic wants to merge 1 commit into
Conversation
Signed-off-by: VerifiedOrganic <verifiedorganic@sent.com>
3 tasks
VerifiedOrganic
marked this pull request as ready for review
September 17, 2026 19:22
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.
Modify Request Transfer needs to preserve optional session limits and flow parameters while applying the SDK's IE selection policies. This adds bounded admission and canonical construction for optional AMBR, uplink tunnel modifications, add/modify flows and release causes. Empty transfers stay representable; conflicting QFIs fail admission and construction.
Stacked on #885. Refs #787 and #795; this is a partial NGAP slice, with response/failure transfers and enclosing Modify messages still pending.
Contract and independent evidence
max_ies, with exact input/output limits; the generic allocation budget stays advisory. Formatting is redacted. This does not add a PDU outcome or establish session ownership, request correlation, NAS-forwarding eligibility or resource effects. A typed rejection does not send the prescribed abnormal-condition response.Validation
Passed: 166 affected Rust 1.89 tests (116 NGAP, 50 fixtures), Rust 1.89/1.98 all-target/all-feature Clippy, warnings-denied MSRV rustdoc, 22 fixture contracts, byte-identical oracle regeneration, fixture drift, Python lint, formatting/shards, both Go vet/test suites and kustomize. No tracked lockfile changes.
The direct-parent API detector fails compilation. Eight injected faults fail runtime regressions: generated container receiver, mandatory AMBR, cross-list QFI conflict, Setup's security criticality, nonminimal lengths, depth undercount, retained unknown reject admission and silently dropped known fields. Sources were restored before final passing gates. The initial test's incorrect AllocationBudget literal was corrected; its compile log is retained.
Fuzz passed 191,366 executions in 61 seconds with all 380 complete independent vectors in shared replay; 1,279 additional inputs and original/resolved fuzz lockfiles are retained locally.
Hosted checks passed on the unchanged head after rerunning failed jobs (47 successful, one skipped). The original session-store snapshot-cancellation timeout remains recorded; its cause is unproven. Required full workspace/persistence checks also passed on this exact head. Ready for independent review; review remains pending.
Revisions
Public main base:
75044f43852cd816d9734d03914515395bf20c69. Direct base:57f54cd9b225901698c05fe21cac019b1fc6e0d0. Head:be0a8fe05bffe32483e9f7b706645617df47aecf; tree:206f923e923ebc952067d52ca952dc7664119d65. Published fixture head/tree:10f1aa35137864b65654b89297374175206652ba/a4387f57dc0cbe8dcb73ea102d2bc7642c68907c. Independent PDF SHA-256:21617ad6dd826e05a0e8356ef96f44199cf4c7bc1be65e6b915e9135e10b59e2. Transfer oracle SHA-256:97d75896e03618067fb2ed183218d297269db4c4f7e657050159a643bba2eb8b.