Skip to content

Commit 3f3a36c

Browse files
committed
docs(interop): track global-standard PTP/SV software evidence separately from physical claims
1 parent 724ce40 commit 3f3a36c

1 file changed

Lines changed: 56 additions & 0 deletions

File tree

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
# IEC 61850 PTP + SV interoperability — software-only evidence matrix
2+
3+
Status: **in progress, not a conformance certificate.** This matrix is designed for teams without a reference IED or timing analyzer. A passing host/ESP-IDF build demonstrates software consistency, not physical accuracy or relay synchronization.
4+
5+
## Sources and version boundaries
6+
7+
- [IEC/IEEE 61850-9-3:2016](https://webstore.iec.ch/en/publication/24998): IEEE 1588-2008 L2 PTP / peer-to-peer delay profile.
8+
- [IEC 61850-9-2:2011 + AMD1:2020](https://webstore.iec.ch/en/publication/66549): Sampled Values Ethernet mapping.
9+
- [IEC 61869-9:2016](https://webstore.iec.ch/en/publication/24602): digital interfaces for instrument transformers and application-specific synchronization/sample behavior.
10+
- Later drafts or secondary summaries cannot silently override the approved 2016/2020 baselines. Verify profile-specific interpretations against controlled standards copies before making claims.
11+
12+
## Evidence taxonomy
13+
14+
- `STATIC`: inspected source and build configuration.
15+
- `SOFTWARE TEST`: decoded-wire regression driven by the actual portable encoder.
16+
- `EMBEDDED CI`: compilation for pinned ESP-IDF/ESP32-P4 SDK.
17+
- `PHYSICAL`: needs hardware/reference clock/IED; **not available in this phase**.
18+
- `GAP`: known missing/incomplete implementation or evidence; do not market as IEC conformance.
19+
20+
| Feature / condition | Required contract or expectation | Evidence / state |
21+
| --- | --- | --- |
22+
| PTP transport | Ethernet L2 EtherType 0x88F7, multicast, v2 | SOFTWARE TEST: portable PTP frame roundtrip and Ethernet destination |
23+
| PTP delay mechanism | Peer-to-peer delay; reply carries valid RX and TX hardware timestamps | STATIC: Pdelay response path; SOFTWARE TEST frame fields; PHYSICAL pending |
24+
| Announce and Sync | 1 Hz nominal defaults (logMessageInterval=0) | STATIC + SOFTWARE TEST: both 1000 ms |
25+
| Pdelay_Req rate | Receiver requests 1 Hz; SOURCE answers correctly | STATIC for receiver and source; PHY timestamp proof pending |
26+
| PTP domain | Default 0, must match subscriber; 93 is a documented alternative to avoid collisions | STATIC + SOFTWARE TEST, never force one domain universally |
27+
| PTP transportSpecific/VLAN | Must agree with IED and network/engineering plan | Configuration preserved in codecs; no universal nibble or VLAN assumption |
28+
| Clock identity | Stable and nonzero source identity; Follow_Up sequence matches Sync | SOFTWARE TEST |
29+
| Clock class / traceability | No unproven grandmaster quality: lab oscillator is class 248, clockAccuracy unknown | STATIC, checked against encoded Announce |
30+
| PTP timescale and UTC properties | Valid PTP/TAI epoch, UTC offset flags and source provenance must agree | **GAP**: current LAB_SOURCE seeds EMAC from system UTC seconds, does not establish a proven TAI/UTC epoch or truthfully encoded timescale. Never claim 9-3 conformance yet |
31+
| Full PTP ordinary-clock/BMCA behavior | Select/announce/step/holdover/recover according to applicable clock type | **GAP** for a standards-complete Grandmaster; current LAB_SOURCE is a limited laboratory source |
32+
| SV canonical Ethernet stream | 0x88BA, engineered destination, APPID, svID, confRev, VLAN, dataset ordering | Portable codec/profile tests exist; independent canonical-wire acceptance pending |
33+
| 4000/4800 sampling | Correct rational cadence and modulus for the **explicitly chosen** 80-samples/cycle family | SOFTWARE TEST: 120 s mathematical schedule, zero accumulated tick drift |
34+
| Higher IEC 61869-9 profiles | Correct samples/sec vs ASDUs/frame distinction, engineered nofASDU & payload type | **GAP** for embedded runtime generality. 4000 fps/1 ASDU is not a universal IEC 61869-9 profile |
35+
| Counter epoch | `smpCnt=0` at valid profile-specific synchronization event; consistent on loss/restart | M1 only coarse first-arm to EMAC second; **GAP** continuous timebase tracking |
36+
| `smpSynch` declaration | May not claim local/global qualified synchronization solely from PTP packet/clock lock | SOFTWARE TEST: AUTO fail-closed until sample phase is qualified |
37+
| SV hardware TX timing | Measured sample deadline vs actual MAC departure, including P95/P99 and drift | **GAP** without device timestamped SV evidence |
38+
| Actual IED acceptance/no alarm | Vendor IED locks PTP and accepts canonical SV continuously | PHYSICAL pending; cannot be inferred from builds or synthetic PCAP alone |
39+
40+
## Software-only acceptance for the current PR
41+
42+
1. Linux GCC and Clang; Windows MSVC: portable PTP, PTP power-profile wire test, epoch/schedule and sync-gate regressions.
43+
2. ESP32-P4 build matrices: normal SV + PTP enabled, SOURCE/RECEIVER/monitor variants, validated firmware contract.
44+
3. Native Qt ARStack Studio Windows build and installer packaging.
45+
4. Static checks: default Source Sync/Announce/Pdelay are 1 s, source class remains 248, AUTO `smpSynch` is fail-closed.
46+
5. No merged `main` or public title such as "fully 9-3 compliant" until remaining GAPs are fixed and physical evidence exists.
47+
48+
## Next coding tranche, ordered by standards risk
49+
50+
1. **PTP time-properties correctness:** explicitly model PTP/TAI epoch, trusted UTC-offset provenance, Announce timescale/timeTraceable/currentUtcOffsetValid flags, source clock quality; never silently convert an uninitialized system clock to a traceable Grandmaster.
51+
2. **Reusable PTP/SV timeline authority:** continuously compare and correct GPTimer phase against EMAC hardware time at a bounded rate; handle drift, clock steps, PTP restart, source switches, and holdover without pretending alignment.
52+
3. **Profile-targeted SV compiler:** exact profile-specific sample counter reset, ASDU grouping, nofASDU, dataset layout and scaling from SCL + documented source profile. Do not hard-code 4000/4800 for arbitrary SCL.
53+
4. **Passive interoperability fixtures:** anonymous golden frames/PCAP and independent decoder checks for 9-2LE-compatible streams and a separately supported IEC 61869-9 variant. Report mismatches rather than automatic coercion.
54+
5. Hardware acceptance only when equipment becomes available.
55+
56+
**Source-of-truth policy:** a standards-oriented claim is never promoted from STATIC/CI to PHYSICAL. The laboratory fallback `smpSynch=0` is deliberate and must not be overridden to silence an IED alarm.

0 commit comments

Comments
 (0)