Repository navigation
M1–M3 software closeout + M4 ARStack SV/PTP interop screening and quiet Validation UI - #29
Conversation
…atching per stream
…efer debug formatting
…nt scan per sample
…fabricated arrival jitter
…ading green status
… capacity evidence
…physical evidence
|
M1/M2 software acceptance checkpoint — HEAD
The branch includes bounded stream isolation, 4I+4V quality truth, PTP source/domain truth, false multi-ASDU jitter suppression, cached/stack-local hot-path projections, SCL/UI coalescing, and deterministic regression evidence. Physical ARStack canonical multicast/VLAN plus simultaneous SV/PTP soak, NIC drop telemetry, and hardware timestamp validation remain unproven and are not treated as blockers to software build testing, but are blockers to any field-readiness claim. Keep this PR draft until the remaining gates/review are resolved. |
…dant WPF paints without quantizing transients
|
M1/M2/M3 software acceptance checkpoint for HEAD
Software engineering work is in this PR. Physical canonical VLAN/multicast and concurrent SV/PTP hardware soak, profile/IED acceptance and calibrated timing are not implied by these results. PR remains draft until owner review and remaining gates/bench acceptance decisions. |
|
Final same-HEAD software gate confirmation for |
…runcating wire evidence
…e screening with honest provenance
…minute capture inspection
…r and real PTPv2 two-step wire replay
…engineer bench acceptance
…engineer bench acceptance
…t claiming live NIC performance
…e/IED acceptance runbook
…mixed SV/PTP bench
…ion without freezing WPF
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 35445df2de
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| _knownFourI4VMapping = mappingProfile is null || | ||
| (mappingProfile.Elements.Count >= 3 && mappingProfile.Elements.All(e => | ||
| e.ElementIndex >= 0 && e.ElementIndex < 16 && e.ElementIndex % 2 == 0 && | ||
| (e.SignalReference.Contains("instMag", StringComparison.OrdinalIgnoreCase) || | ||
| e.TypeText.Contains("instMag", StringComparison.OrdinalIgnoreCase)))); |
There was a problem hiding this comment.
Require positive layout evidence before decoding quality
When no SCL mapping is resolved, mappingProfile is null marks every 64-byte payload as a known 4I+4V instMag/quality layout. An unrelated 16-word DataSet can therefore have its odd words interpreted as quality flags, causing valid measurements to be cleared as Untrusted or mislabeled as quality-good. Keep the payload as unmapped raw evidence unless the exact interleaved quality layout is established.
AGENTS.md reference: src/AGENTS.md:L32-L35
Useful? React with 👍 / 👎.
| .OrderByDescending(x => x.LastAnnounceUtc.HasValue && | ||
| IsFresh(nowUtc, x.LastAnnounceUtc.Value, AnnounceFreshness)) | ||
| .ThenByDescending(x => x.LastAnnounceUtc) | ||
| .ThenByDescending(x => x.LastMessageUtc) |
There was a problem hiding this comment.
Fall back to the currently active PTP source
When one source has an expired Announce and another source has recent Sync traffic but no Announce, both fail the fresh-Announce sort key, after which the non-null stale LastAnnounceUtc wins over the active source. The resulting snapshot reports the old domain/source as timed out and hides the current Sync rate; after prioritizing fresh Announce sources, the fallback should select by recent message activity rather than stale Announce presence.
Useful? React with 👍 / 👎.
Software M1–M3 closeout + M4 ARStack interop acceptance tooling
M1 – strict protocol and correct engineering semantics
smpRate, multi-ASDU sequence/frame-rate integrity and strict PTP UDP/BER/APDU length checking.AR_DIAG_SV1diagnostic mirror.M2 – high-rate memory/CPU and bounded ownership
smpCntanomalies.M3 – quiet, context-aware WPF interface
M4 – independently reproducible interop screening
PcapInteropInspectoruses existing production decoder + existing classic-PCAP reader. Builds bounded per-stream wire facts (MAC, APPID, VLAN/PCP, confRev, nofASDU, payload dimensions, sample-counter continuity/wrap candidates and smpSynch observed bits) plus passive PTP source and two-step evidence.WIRE_FIELDS_MATCH,MIRROR_ONLY,NOT_OBSERVED,CONFLICT,INCOMPLETE_INTENT,UNRESOLVED. Each distinguishes configured intent from observed wire and capture-path limitations.tools/ProcessBus.InteropClibuilt in the main solution: offline--pcap ... --scl ... --json ...screening with local replay throughput, CPU/allocated bytes metrics and bounded maximum frames. No upload/network access.scripts/measure-m4-bench.ps1anddocs/M4_ARSTACK_INTEROP_ACCEPTANCE.mdprovide an operator-runnable 60-minute ARStack SV+PTP + TAP/SPAN + subscriber/IED acceptance checklist.Evidence boundaries / release decision
Windows CI, full xUnit, repeated RuntimeStability, CodeQL and dependency review must pass on this exact final HEAD before merge. This is a SOFTWARE checkpoint only.
Not claimed as physically completed: independent preserved-VLAN TAP/SPAN capture, measured hardware timestamps/PTP lock, concurrent 60+ minute ARStack 4000/4800 SV + PTP run, real IED subscription, and quantified CPU/GC/working-set reduction on the same hardware. Synthetic PCAP results and USB-NIC diagnostic mirrors cannot establish these facts.
Original source invariants
AGENTS.mdandsrc/AGENTS.mdremain binding. No publication/control/protection action added.