Skip to content

P10.7: BRCB SqNum/EntryID/GI triage without masking BufOvfl or changing reporting - #519

Merged
masarray merged 6 commits into
fix/512-goose-event-header-alignmentfrom
fix/p10-7-brcb-continuity-evidence
Oct 11, 2026
Merged

masarray merged 6 commits into
fix/512-goose-event-header-alignmentfrom
fix/p10-7-brcb-continuity-evidence

Conversation

@masarray

Copy link
Copy Markdown
Owner

P10.7 — READ-ONLY BRCB continuity evidence diagnostics, based on verified GE F650 milestone

Immutable milestone: ARSAS Issue #518, checkpoint/p10-6-field-verified-bcuge-parity-a8835102. Exact base a883510218c62ac02096de37e831feede389f4a1, engine lock 00ad2819b99ffe6b3f885e59aa24a6afb2b4d8e1 unchanged. The operator's two 2026-10-11 11:44/11:45 diagnostic reports prove BCUGE trusted identity, 7/7 equal semantic rows, 8 DS / 124 members, 67 values, 6/6 real RCB traffic and zero cyclic MMS polling. Do not regress these.

Root of remaining physical uncertainty

Open SCL BRCB 13 findings and three BufOvfl frames, IP Discovery BRCB seven findings and three BufOvfl frames, with 25 reports / 605 updates per ingress. Selected CSWI and EVEGGIO RCB slots differ (GW versus SOGI). SqNum frequently resets/repeats while opaque EntryID changes, sometimes GI reason is present. We cannot infer harmless GI reset or definite loss of events from these facts. Existing warnings remain warranted and active.

Implementation

  • Only change association-local, read-only Iec61850ReportContinuityInspector and DiagnosticReportBuilder. No engine, device I/O, report routing, RCB setup, data set selection or polling modifications.
  • Explicitly separate frames with any anomaly from number of findings (a single report can have BufOvfl plus SqNum discontinuity).
  • For each genuine SqNum discontinuity (not ordinary 16-bit rollover or segmentation format fault), count separately: changed versus repeated opaque EntryID, EntryID uncomparable, GI reason on that decoded frame, and BufOvfl on that decoded frame. EntryID is never interpreted numerically or as proof of event loss/harmless replay.
  • Bounded per-stream counters, saturated at long.MaxValue, no unbounded history, no extra MMS reads/writes, no GUI per-frame rerender. Reuse existing immutable snapshot publication per nonempty report slice and 64-stream limit.
  • Emit new bounded diagnostic lines Frame triage and BRCB triage, while leaving original summary, all WARN messages and classification untouched.
  • Eight focused xUnit tests for two findings on one frame, changed/same/missing EntryID, GI write without GI wire reason, healthy rollover, segmented metadata error and immutable snapshot/diagnostics.

What is NOT fixed or claimed: BufOvfl=true still means buffered continuity not qualified; whether the simulator emitted replays, IED buffers overflowed, or client received out-of-order events requires raw wire/session and 2+ controlled test sessions. This PR improves root-cause evidence only. Discovery 6400-page ceiling remains ARIEC Issue #162. GOOSE issues remain separate.

Gates: draft until exact-head Windows app regression and R7/packaging CI pass. Subsequent promotion permitted only via guarded fast-forward to ARSAS P10 staging; main, engine and public release stay blocked, physical R10 still pending.

@masarray
masarray merged commit 415d1db into fix/512-goose-event-header-alignment Oct 11, 2026
15 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