Skip to content

Standalone NTP Server — local IP dropdown, live toggle and communication LED - #500

Draft
masarray wants to merge 9 commits into
feat/499-goose-engineering-workstationfrom
feat/500-standalone-sntp-ip-control
Draft

masarray wants to merge 9 commits into
feat/499-goose-engineering-workstationfrom
feat/500-standalone-sntp-ip-control

Conversation

@masarray

@masarray masarray commented Oct 10, 2026 •

Copy link
Copy Markdown
Owner

Standalone ARSAS NTP Server (managed .NET)

Draft stacked on ARSAS #499. No changes to ARIEC61850 engine, IEC 61850 Discovery, MMS reporting, GOOSE capture, device control, or installed Windows Time service. No new native code or OS service.

Minimal UI: narrow header strip [toggle] NTP Server [PC IPv4 dropdown] [traffic LED]. Tooltip-only diagnostics; no card or explanatory static text. On startup the service is OFF. PC IPv4 inventory enumerates each active non-loopback local unicast address, including aliases, and refreshes on opening the dropdown. Interface identity is preserved; stale/duplicate selections fail closed. One explicit ON action immediately starts serving UDP/123 on the chosen local address, without a single connected IED. OFF stops its socket and background workers. Switching IP while active serializes Stop → fresh route/address validation → Start. The switch remains responsive while starting; a monotonically increasing intent version rejects stale asynchronous changes.

Existing protocol engine retained: UDP socket path, optional Npcap RAW fallback, SNTP Mode 4 reply and Mode 5 broadcast, clock health guards, existing local commissioning profile, and client evidence counters remain. Windows Time is never modified. LED distinguishes OFF, idle-serving, request-without-reply, reply observed and fault. The LED is evidence of SNTP packet exchange, not proof of relay synchronization or GPS/UTC traceability.

Optimization: status from request bursts is coalesced into one pending WPF Dispatcher update; unique SNTP client log events deduplicated before scheduling UI; fast ON/OFF races serialized via gate + versioned intent. No extra network polling workers or unmanaged UI control.

Tests: local IP and alias selection, duplicate IP across NICs, loopback/unspecified rejection, missing NIC address, independent lifecycle, FAT diagnostic compatibility and native packet invariants. Exact-head Windows compile/regressions + portable smoke required. Field-test with zero IEDs: choose local IP, ON, receive Mode 3 query and Mode 4 reply, OFF, change IP and repeat; monitor Windows clock health. Keep draft / physical promotion gating intact.

@masarray masarray changed the title Standalone NTP Server: PC IPv4 picker, lightweight switch and traffic LED Standalone NTP Server — local IP dropdown, live toggle and communication LED Oct 10, 2026

Copy link
Copy Markdown
Owner Author

P8 SNTP standalone milestone — exact HEAD Windows CI qualified (2026-10-10)

HEAD 5e46dd562fc1f19f34eddc493b8c9872cb37bae6, draft #500 stacked on #499. No engine lock changes or public release.

Build ARSAS #38015752803 SUCCESS: Windows WPF/.NET build, 1,463/1,463 application regression tests PASS, portable single-EXE publish, portable smoke test and artifact upload all SUCCESS. Exact-head x64 portable artifact #11656296599.

Implementation: local IPv4 inventory including aliases, fail-closed NIC+IP validation, standalone app-controlled SNTP UDP/123 with existing optional Npcap fallback, compact toggle + PC IP dropdown + packet-status LED, default OFF, asynchronous serialized ON/OFF/rebind with monotonic intent versions, WPF status coalescing and client log deduplication. No new native code, Windows Time changes or new background service. Historical SNTP protocol/clock provenance docs preserved.

Other non-promotion checks SUCCESS (Golden Provenance, Golden Budget, Repeat-Run, Merge Execution, Production Promotion, SV, Field Capture). Mainline Readiness remains intentionally blocked by parent discovery physical qualification; do not bypass or merge. Field validation still required: 0 IED connected → choose active PC IP → ON → SNTP client Mode 3 request on UDP/123 → Mode 4 reply/LED → OFF → binding released → change PC IP → repeat. Traffic counters alone do not prove relay synchronization or GPS traceability.

This branch has not been deployed

No deployments
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