Repository navigation
P3: wire trusted SCL-assisted connect into Workbench product path #88
Copy link
Copy link
Open
Description
Goal
Make the already-implemented trusted-SCL MMS path a real Workbench product behavior, not only a core API.
P3 starts after P2's MmsTcpLiveDiscoverySession::synchronize_scl(...) contract. The application must deterministically choose the online model source and surface failures without silently changing model identity.
Product contract
Trusted SCL loaded
- A successfully loaded SCL/CID arms
MmsClientController::trustedSclPath. - Connect parses that exact engineering source, associates to the requested endpoint, and invokes
synchronize_scl(...). - Workbench tree topology/types come from the trusted SCL projection.
- Initial successful FC-root values are applied to their exact SCL leaves.
- Missing/failed FC roots do not delete SCL topology and do not shift values onto neighbouring leaves.
- The same MMS association remains usable by normal Read/Write/report workflows after the initial snapshot.
- Full NamedVariable/GVAA/DataSet discovery must not run silently on this path.
No trusted SCL loaded
- Connect uses the existing full live-discovery path.
- Clearing the trusted SCL source is the explicit user-controlled fallback from SCL-assisted mode to live discovery.
Invalid trusted SCL
- Fail closed and expose the error.
- Do not silently fall back to a different online model while an engineering source is explicitly armed.
Current implementation
Already present on PR #82 before this issue was opened:
MmsClientControllerhastrustedSclPath/trustedSclAvailable.- trusted path invokes
session->synchronize_scl(...). MmsSclClientProjection.hppbuilds the Workbench model from SCL and initial snapshot evidence.Main.qmlarms the path only aftersclWorkspace.loadedsucceeds.- model source is recorded as
Trusted SCL + initial snapshotversusLive MMS discovery.
P3 hardening added in this work:
- dedicated runtime QA
ied_mms_scl_assisted_workbench_qa.cpp; - standalone exact-product build gate under
apps/ied_simulator/tests/scl_assisted_workbench; - dedicated
SCL-Assisted Workbench CI.
Acceptance gates
- Dedicated P3 Workbench QA passes using
tests/fixtures/scl/client-workbench.scd. - It proves initial SP value mapping, preservation of an unavailable SCL-declared ST root, persistent association, explicit clear-SCL fallback, and invalid-SCL fail-closed behavior.
- Existing
IED Simulator Qt,SCL-Assisted Connect CI, C++ CI and Release Hardening stay green. - Retained Embedded Profile regression must also be green before P3 is considered internally complete.
- PR feat: lightweight IEC 61850 engineering simulator workspace #82 stays OPEN + DRAFT.
- External vendor external IEC 61850 client claims remain separately gated by real-client evidence; this issue does not close that gate.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels
Activity
masarray commentedon Sep 14, 2026
P3 implementation checkpoint
Current implementation head:
cec9ba9eea184482f6a7a8143868c53fa611d126.P3 product behavior now has an explicit regression gate:
ebca7a66...— addsied_mms_scl_assisted_workbench_qa.cppcovering trusted-SCL selection, initial snapshot projection, unavailable FC preservation, persistent association, explicit clear-SCL fallback, and invalid-SCL fail-closed behavior.3a0ec060...— standalone product-graph build for the P3 QA.392fecd9...— dedicatedSCL-Assisted Workbench CI.Retained Embedded Profile failure was traced independently of P3. The registered RCB-root smoke used BRCB
OptFlds={0x5C,0x80}while the embedded BRCB runtime requires the EntryID option bit for retention/replay.cec9ba9e...corrects only that fixture to{0x5D,0x80}; no dispatcher/BRCB runtime behavior was changed.Exact-head CI is currently queued. Keep this issue OPEN until the P3 Workbench gate, Embedded Profile, IED Simulator Qt and Release Hardening complete successfully. External vendor external IEC 61850 client acceptance remains separate.