Skip to content

P8 C264: schema-verified structured FCD report projection and rejection evidence #159

Open

Description

@masarray

Field-derived protocol job (planning gate, no engine modification yet)

Consumer ARSAS #502/#503 handoff; active GUI/NIC fix #505. This issue owns the separate engine P2 structured-FCD report projection problem and must not be conflated with GOOSE Ethernet capture or with field acceptance.

A same-computer IEC 61850 C264 simulator exposes a static report-only model. Sanitized aggregate evidence: 207 monitor points, 73 values pending at one snapshot, 29 RCB targets with only 4 exact live ingress confirmations. Some REPORT_RAW_STRUCT / REPORT_VALUE_REJECTED entries concern received structured members (e.g. Mod/PhyHealth); others may simply lack report ingress. These are different causes and neither authorizes cyclic MMS polling or made-up quality.

Current source facts (ARIEC61850 #157 baseline 8b0c0f7e695b016834e40a6f068994dcc945cb1a)

  • MmsReportSemanticProjectionContext.Create builds a typed leaf hierarchy from canonical model/DataSet member references and projected attribute paths.
  • TryExpand resolves exact member ref or index, requires unique schema and child-count equality, and flattens matching MMS Structure / Array.
  • MmsSemanticReportValueProjector retains the generic fail-closed fallback if schema is incomplete/ambiguous; it does not unconditionally coerce structured values into a scalar.
  • The current child hierarchy uses model attribute enumeration to construct order. This is an evidence question, not proof of a bug: ensure authoritative MMS/SCL child ordering is preserved and verified before accepting a positional structure mapping.

Required investigation and acceptance

  1. Build project-owned synthetic 4-child Mod and multi-LN prefix model/report fixtures; do NOT commit customer IID, raw diagnostic or captures.
  2. Reproduce distinct outcomes: no RCB ingress, received-but-unprojectable structure, missing q/t, schema ambiguity, exact valid typed expansion, and malformed/wrong-order frames.
  3. Correlate exact DataSet identity + member ordinal + LD/LN prefix/class/instance + FC + DO/DA path + wire MMS type; reject ambiguous schemas and mismatch. Preserve an explicit reason for failure.
  4. Demonstrate no wrong scalar, no fabricated Good quality/timestamp, no sibling LN collision, no loss of original report evidence. Confirm q/t companion attribution and type checking.
  5. Keep report-only static DataSet authority; no cyclic MMS process fallback, no dynamic DataSet writes. Preserve GOOSE, discovery, and safe command paths.
  6. Produce isolated engine PR based on currently verified engine stack with deterministic tests; update ARSAS immutable engine lock only after engine and combined consumer CI pass.
  7. Distinguish implemented, unit tested, and physical simulator validated gates. No release/mainline merge without field evidence.

Current status: investigation scoped only; not fixed, and no additional GitHub Actions run requested for this issue.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions