Skip to content

P10.9H — IEC-aware diagnosis: same-NIC IP aliases + late BRCB continuity context - #534

Merged
masarray merged 2 commits into
fix/512-goose-event-header-alignmentfrom
fix/p10-9h-iec-context-aware-diagnostics
Oct 12, 2026
Merged

masarray merged 2 commits into
fix/512-goose-event-header-alignmentfrom
fix/p10-9h-iec-context-aware-diagnostics

Conversation

@masarray

Copy link
Copy Markdown
Owner

Genuine verified usability defect + IEC 61850 causal diagnostics, tightly scoped

2026-10-12 field BCUGE Discovery report (engine d700b0df) has 67/67 displayed, 6/6 exact static RCBs, 0 cyclic polling, 80 reports, 27 BRCB sequence discontinuities and BufOvfl=2. Crucially, CSWI GW experienced a fresh SqNum 4→1 reset 48.6 seconds after report activation, not only at startup. It also names five "matching adapters" although all matching IPv4 addresses (192.16.1.13, .33, .115, .158, .175) are aliases on one KM_Test adapter, and the IED target 192.16.1.33 is an address installed on the same PC. The old route diagnostic falsely advised operators to disable adapters or change metrics.

Actual application fix (no new engine revision)

  • Count distinct NetworkInterface.Id values, not matching IP addresses or their display names. ExplainIpv4Route now correctly distinguishes multi-IP/same NIC, same-host address (possible local MMS simulator), real competing NICs even when their friendly names match, and gateway-routed reachability. Preserve full per-address network matrix, actual OS-chosen UDP source, and TCP probe; diagnosis is explicit that Windows route remains authoritative. No gratuitous adapter disabling advice.
  • ExplainBrcbContinuity reuses existing bounded per-RCB timestamps/sequence/GI/BufOvfl evidence to expose confirmed GI-tagged discontinuities vs discontinuities without confirmed GI reason; output precise last anomaly ms after RCB start and recognize late >5-second recurrence (rather than erroneously labelling "startup-only"). No inference of event loss, harmless GI resets, on-wire order or root cause; missing/reversed timestamps remain UNKNOWN.
  • Seven deterministic regression tests cover five aliases/one interface, local target, duplicate friendly name but two GUIDs, no direct subnet/gateway possibility, exact BCUGE 48.575s late-GI shape and actual diagnostic output, startup-window caution, and missing/reversed timestamps. Two files only: Services/DiagnosticReportBuilder.cs and tests/ARSAS.Tests/ContextAwareIec61850DiagnosisTests.cs. No change to MMS transport, engine pinned SHA d700b0df741b466afb8abe6cee1d70b1619d7b4d, data/report decoder, GI, RCB, SCL, GOOSE, cyclic polling, UI control or main.

Gates and limitations

Source base P10.9G verified ARSAS staging 80d1a894b1c909b61ccbe36440528c5ef32ee388. Reuse existing canonical Windows Build, native bridge, report regression, SCL/R7, IO/SV, Field Capture, installer and mainline/physical-provenance workflow gates. Do not create redundant workflows or rerun jobs gratuitously. Merge only after complete exact-head all-green, immutable checkpoint + guarded non-force FF. Parent PR #512 remains draft, mains/release untouched.

BCUGE BRCB server/wire anomaly #520 stays OPEN. This PR makes ARSAS context aware and eliminates a real false-positive network troubleshooting instruction, but does not claim the GE/same-PC simulator's 27 SqNum discontinuities and 2 BufOvfl were fixed. Physical SOE completeness requires causally independent evidence, not suppressing warnings or repeating identical two diagnostic logs.

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