Skip to content

P0 MMS: fail-closed abbreviated DatSet/RptID cross-RCB routing (#707) - #198

Merged
masarray merged 4 commits into
stagingfrom
fix/sg7-short-dataset-rptid-conflict-20261028
Oct 27, 2026
Merged

masarray merged 4 commits into
stagingfrom
fix/sg7-short-dataset-rptid-conflict-20261028

Conversation

@masarray

Copy link
Copy Markdown
Owner

P0 reporting integrity: reject contradictory shortened DatSet identities before routing MMS Report

Reconciled evidence

ARSAS issue #707 documents a successful 2026-10-24/25 SG7 FAT (77/77, 4/4 RCB) but a later association with 56/77, 1/4. The ARSAS monitoring code and pinned ARIEC engine are byte-identical between these runs. This PR does NOT claim the missing 3 SG7 reports were received or fix the 21 pending values.

Independent source audit found an actionable correctness hole in MmsClientSession.SelectPersistentReportMonitor: a unique matching RptID with a contradictory abbreviated reported DataSet (LLN0$DS_B) could be routed to an unrelated member order (IEDLD0/LLN0.DS_A). Full domain-qualified DatSet conflicts already failed closed; short DatSet conflicts did not.

Precise fix

  • When peer advertises a domain-qualified DataSet, preserve strict exact identity.
  • When peer advertises abbreviated LN$DS, only accept an exact LN+DS suffix at an explicit / boundary, or an exact abbreviated plan.
  • When peer advertises only DS, compare its explicit tail; omitted DatSet remains legacy-RptID-compatible.
  • Keep plan member-order and RCB association immutable; never use a candidate from a conflicting DataSet.
  • No loop timers, retry, RptEna/GI/Resv writes, dynamic DataSet mutation or cyclic polling.

Regressions

MmsPersistentReportRoutingTests covers full, abbreviated, and tail-only positive compatibility; wrong DataSet/LN negative checks; and all 4 SG7 DataSet/RCB identities independently routed regardless of registration order. No private IED captures.

Exact base engine staging at f75e323e9f8443aa20e0a3818a1d5d77255b2c0f; head ca502b89989b5d5eb137ed7b1fa70b7a98eda658. Only 2 files changed. PR kept draft until real CI and review. The ARSAS app pinned-engine lock remains unchanged and no stable release or hardware acceptance is implied.

@masarray
masarray marked this pull request as ready for review October 27, 2026 23:26
@masarray
masarray merged commit 5923029 into staging Oct 27, 2026
1 check passed
@chatgpt-codex-connector

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review 🔄 Running since 2026-10-27T23:26:23.023720Z fbbee71 Draft marked ready
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

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