Skip to content

M2.17-F: in-place GOOSE Subscribe and verified/unbound allData display - #611

Closed
masarray wants to merge 5 commits into
fix/m217e-goose-ttl-browser-acceptance-20261016from
fix/m217f-inline-goose-stream-browser-20261016
Closed

masarray wants to merge 5 commits into
fix/m217e-goose-ttl-browser-acceptance-20261016from
fix/m217f-inline-goose-stream-browser-20261016

Conversation

@masarray

@masarray masarray commented Oct 16, 2026 •

Copy link
Copy Markdown
Owner

M2.17-F — in-place GOOSE inspection, exact wire values, model-safe late binding

Base: stacked draft #610 at exact e110c63f962b0a113a7c2bb543c0e7d4fd28ed15. Do not merge to main or repin ARIEC/native bridge.

Physical BCUGE reproduction supplied by operator

reference IEC client shows two distinct GoCBs: LLN0.BCU publishes LLN0.GOOSE1 with its own GoID/APPID; LLN0.BCU03GE publishes LLN0.GOOSE2 with another identity. The ARSAS Browser selected LLN0.BCU, has accepted MMS GoEna/ndsCom, and shows "No uniquely verified matching frame / No exact DataSet directory" although the shared subscriber can receive frames. Browser Subscribe incorrectly navigates to GOOSE Sniff. Do not conflate BCU with BCU03GE or promote a raw GOOSE value as an MMS Read/Report observation.

Main fixes

  • Browser GoCB toolbar now owns its own compact adapter selector + Subscribe/View + Stop controls without switching tabs. It invokes the existing RefreshGooseAdapters, exact ResolveGooseAdapterForIed, StartGooseSubscriber_Click and StopGooseSubscriberAsync; no second network path or decoder. Unresolved adapter selection remains explicit in Browser and never auto-chooses a lone unrelated NIC. IED-card quick-start and direct GOOSE Sniff workflows stay untouched.
  • Accept a uniquely matched fully qualified wire GoCbRef even if MMS GetNameList does not expose GoCB DatSet / publisher model is still unbound, while still strictly checking any known IED, GoID, AppID, confRev or DataSet. Different GoCB, wrong known DataSet, conflicting model IED and multiple same-GoCB publishers fail closed. Such wire evidence is labelled unbound rather than an authenticated publisher.
  • Show the actually received wire GoID, datSet, APPID and confRev explicitly with passive-wire provenance. Missing static MMS fields are not overwritten with defaults.
  • On first matching frame, resolve the received wire DataSet reference exactly against the selected IED live/SCL DataSet inventory and domain (never infer by GoID or index). If the existing subscriber's leaf references/FC/count verify in full, append exact named FCDA rows. Otherwise show a bounded maximum 128 raw allData slots, labelled unbound with real received rendered wire values and no fabricated signal names, FCs, q/t or LiveValues insertion. Rows update in place on existing UI coalescing tick; no polling, tree rebuild or shadow cache.
  • Existing M2.17-E: GOOSE Browser TTL correctness and passive acceptance diagnostics #610 TTL rule still fences all raw/named values; stop/expired/no unique match resets prior passive values to Not current, not seemingly live stale data.
  • Regression additions cover fully qualified unbound GoCB and duplicate publisher refusal, exact wire DataSet/domain, inline subscriber handoff, raw fallback provenance and old M2.17-D CTA contract update.

Not claimed

No report on physical acceptance of this new build yet; CI is not an IEC 61850 hardware proof. Screenshot data from the previous artifact is the evidence driving this patch. Verify specifically whether the exact BCU vs BCU03GE GoCbRef is emitted and whether corresponding datSet references are discoverable. Keep source/engine pin unchanged and PR draft; BCUGE field follow-up is separate.

@masarray masarray changed the title M2.17-F: in-place GOOSE Browser subscribe with verified/untagged allData projection M2.17-F: in-place GOOSE Subscribe and verified/unbound allData display Oct 16, 2026

Copy link
Copy Markdown
Owner Author

D27 historical stack reconciled with integrated RC. Exact ancestry: 80bc2dab2d807c5636f86ffe244337daf97b93d9..d4598619b1b8fc21487cf5beb83a8a8284d0e9cf gives ahead_by=1222, behind_by=0. Every historical HEAD commit is included in RC staging #727, with no loss from closing this old PR as absorbed/superseded. This is not a direct PR merge, mainline promotion #729 remains blocked and field physical IEC 61850 R7/R10 acceptance unchanged.

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