Skip to content

P8 C264 P3A: context-aware exact NIC selection for same-PC GOOSE capture - #505

Closed
masarray wants to merge 1 commit into
fix/504-c264-ip-fault-checkbox-alignmentfrom
fix/505-goose-samehost-exact-nic
Closed

masarray wants to merge 1 commit into
fix/504-c264-ip-fault-checkbox-alignmentfrom
fix/505-goose-samehost-exact-nic

Conversation

@masarray

Copy link
Copy Markdown
Owner

Scope: real code, one atomic commit, no redundant CI

Baseline ARSAS #504 exact HEAD f90f4697fb1ee607bb5500119f6b5298ce01879f; source includes cumulative #501 GOOSE/NTP/Discovery improvements. Engine #157 and consumer immutable pin unchanged.

Root fix: the original LooksLikeLoopback name-substring filter falsely excluded Microsoft's KM-TEST virtual Ethernet adapter, while the fallback selected the last usable physical NIC without evidence. This branch adds a pure and replay-testable GooseAdapterSelectionPolicy:

  • Same-PC MMS target IP ownership takes precedence over the unicast route; multiple IPv4 aliases on one Windows NIC remain the same identity.
  • Npcap/Windows exact GUID is preferred, then a unique valid noncontradictory MAC; never guess from friendly-name substrings or a sole unrelated adapter.
  • Real Windows KM-TEST NIC is eligible, but dedicated Npcap NPF_Loopback pseudo-interface remains excluded from automatic Ethernet GOOSE selection (manual exploration still possible).
  • IED-card click starts read-only observation only on unique identity match; otherwise preserves one-shot manual selection/start. Status/tooltip clearly distinguishes MMS route evidence from actually observed Ethernet GOOSE packets.
  • Retains existing Npcap transport, BPF, cancellable capture, bounded UI queue and static report-only/control authority. No native code, extra scan, active publisher control, dynamic DataSet writes, timer or per-packet GUI loop.

Tests: synthetic Windows NIC/Npcap snapshots: KM-TEST same-host, conflicting/unavailable GUID/MAC, multiple aliases vs duplicate address owners, remote route, pseudo-loopback, duplicate capture adapters and UI state contracts. No raw customer IID/capture included.

Explicit boundary: This is P3A identity selection, not a proven GOOSE publisher probe or field acceptance. Need local same-PC publisher verification with actual 0x88B8 frames, optional P3B bounded probe only if field evidence demands it. P2 C264 typed FCD reporting is separate and remains open. Run only naturally-triggered exact-head Windows CI; do not manually rerun/push successive minor commits. Keep DRAFT and leave physical mainline guard in place.

Copy link
Copy Markdown
Owner Author

Exact-head qualification — 2026-10-10

HEAD: 5e55fa2022bf3f79f1d747a176e75365306bdcd9, exact parent ARSAS #504 f90f4697fb1ee607bb5500119f6b5298ce01879f (compare: 1 ahead, 0 behind, 6 scoped files).

Still required: test Windows NIC identity/capture on the operator's actual same-PC C264 simulator and confirm real 0x88B8 publisher frames (or identify a genuinely absent publisher). Identity-selected Npcap adapter is only observation readiness, not network evidence. The typed structured-FCD/report issue remains tracked in ARIEC61850 #159. Keep this PR DRAFT and do not merge/release. No manual CI reruns were performed.

Copy link
Copy Markdown
Owner Author

BCUGE field result (2026-10-10): the user-tested merged candidate 95dcb82 (from #504+#505, engine #157) successfully captured 180/180 GOOSE frames, 0 other, across 3 live streams on same-PC KM-TEST with a decoded CSWI process change. Therefore P3A NIC selection is now LAB-VERIFIED in this configuration, not a generic network guarantee. Remaining defects are presentation/event coalescing, exact stVal/q reading, inspector ergonomics and NTP settings; draft #506 implements these separately. No report/control changes or release/mainline gate waiver.

Copy link
Copy Markdown
Owner Author

Disposition: Superseded — verified stacked milestone consolidation; no mainline merge and no physical acceptance.

Canonical replacement: #543, open staged tip at 6285867780b8ea79c231d72a3819e9e5f99748d2. This PR HEAD 5e55fa2022bf3f79f1d747a176e75365306bdcd9 is a commit ancestor (verified GitHub compare: ahead=232, behind=0). Later changes in the stack can intentionally revise UI behavior; keep the canonical tip OPEN.

Unique delta: same-host smart NIC selection, capture scoping and GOOSE operator setup. Audited PR patch: 6-file patch contains GooseAdapterSelectionPolicy.cs, GOOSE_SUBSCRIBER.md and GooseAdapterSelectionPolicyTests.cs. Original changes and tests remain in reachable commit history of #543; no commit from this PR is orphaned. Historical ancestry alone does not certify current semantics, which remain subject to final exact-file and field validation at integration.

Safety: Only close the obsolete intermediate PR tracking record. The PR source branch, original commits, test/evidence history, engine lock, main, stable v1.6.42 and CI/physical gates are untouched. No release/engine authority claimed.

Follow-up: Keep NIC identity/source-binding evidence and same-host capture tests; no implicit change to physical subscription semantics. Canonical integration/qualification remains explicitly unfinished in #543 and successor release-gated workstreams.

@masarray masarray closed this Oct 25, 2026
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