Skip to content

P0: exact MMS identity and bounded DataSet-backed LN schema closure - #182

Merged
masarray merged 4 commits into
mainfrom
feat/cpp-smart-discovery-exact-identity-dataset-closure-20261015
Oct 15, 2026
Merged

masarray merged 4 commits into
mainfrom
feat/cpp-smart-discovery-exact-identity-dataset-closure-20261015

Conversation

@masarray

Copy link
Copy Markdown
Owner

Why — verified gap in current native C++ discovery

The C++ live discovery path deduplicated MMS LN type probes by lower-casing domain/LN. The canonical model also lower-cased its FC-qualified DA identity key and type-root matcher. Real MMS identities are case-distinct; this could silently collapse model entries or borrow type evidence.

On NameList-limited IEDs, successfully decoded static DataSet directories may prove a missing ST/MX LN root, but the existing type-probe plan had no DataSet-backed closure.

Changes

  1. Exact-case type-probe identity, canonical model point/DA keys and TypeSpecification parent/child matching; retain deliberate case-insensitive heuristic terminology only.
  2. Opt-in use_verified_data_set_type_hints (default OFF for wire/backwards compatibility), enabled for native Qt Workbench live discovery. Successful MMS-observed, non-deletable DataSet directories may provide exact extra ST/MX LN GVA roots; reject spoofed domain, wrong FC, inconsistent LN and mismatched raw reference.
  3. Hard cap 48 extra roots and existing total GVAA cap; budget overflow skips the entire optional extension, not an arbitrary partial target set. Reuse the existing synchronous confirmed-exchange and one MMS association; no speculative requests, unbounded loops, polling, writes, parallel receive loop or new source of truth.
  4. Existing callers retain phase order (GVA before DataSet) and on-wire request behavior; opted-in Workbench performs directory reads before type enrichment, so directory evidence can augment the same single bounded GVA pass.
  5. Regression with a scripted MMS transport: case-distinct DA and LN root preservation, a valid late CSWI1 FCD not in NameList, foreign-domain/FC hint rejection, no extra writes/associations.

Gates and limits

  • C++ CI on exact HEAD including GCC/Clang/MSVC; native Qt Workbench CI, SCL-assisted tests, Naming Guard.
  • This is semantic accuracy and discovery coverage, NOT the separate negotiated-window pipelining milestone. Concurrent invokes need a separate association/router proof before any pipelining.
  • Synthetic tests are not physical IED acceptance; compare observed requests, LD/LN/DA/DataSet/RCB completeness and model fingerprints against a controlled same-IED capture before promotion.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 15, 2026 •

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 ✅ Completed 2026-10-15T13:14:17.539563Z 135fb73 PR opened
ℹ️ 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.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 135fb73a7a

ℹ️ 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".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread include/ariec61850/mms/live_model_chunk01.ipp
@masarray
masarray merged commit a4badba into main Oct 15, 2026
25 checks passed
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