Repository navigation
P0: enforce shared IEC 61850-9-3 PTP SOURCE profile before START; truthful toggle #265
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: fix/p0-ptp-start-firmware-provenance-20261020
Are you sure you want to change the base?
Changes from all commits
afd4250
4ff9cd3
7a3e862
518e227
597c4d0
795bea4
d822728
25818c3
24c64db
2908e7f
654dd42
836c881
0835dae
ef4de7a
ce5ffac
df73fea
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -253,7 +253,7 @@ def main() -> None: | |
| "main window must expose timing and frequency context controls") | ||
| require("function startPtpRole(role) { return timingPanel.startRole(role) }" in config | ||
| and "const accepted = profilePanel.startPtpRole(role)" in main_qml | ||
| and "requestStartPtpConfigured(role, panel.ptpProfile())" in expert, | ||
| and "requestStartPtpConfigured(role, panel.ptpProfile(role))" in expert, | ||
| "main PTP must reuse the existing verified Advanced profile") | ||
| require("checked = Qt.binding(function()" in tray | ||
| and "tray.controller.requestStopPtp()" in tray | ||
|
|
@@ -458,12 +458,19 @@ def main() -> None: | |
| "Installed build differs from this Studio package" in firmware_panel and | ||
| 'panel.device.ptpStatus.indexOf("PTP start failed")' in ptp_panel and | ||
| 'ptpLastStartFailure' in ptp_panel and | ||
| 'checked: false' in ptp_panel and | ||
| 'Require hardware peer-delay responses' in ptp_panel, | ||
| "Firmware tab must show exact build and SOURCE Pdelay must be explicit") | ||
| 'respondToPeerDelay: role === "SOURCE" ? true : pdelayCheck.checked' in ptp_panel and | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
This updates one structural assertion for the new role-aware AGENTS.md reference: AGENTS.md:L236-L236 Useful? React with 👍 / 👎. |
||
| 'announceIntervalMs: role === "SOURCE" ? 1000' in ptp_panel and | ||
| 'syncIntervalMs: role === "SOURCE" ? 1000' in ptp_panel and | ||
| "SOURCE profile: 1 s Announce" in ptp_panel and | ||
| "sourcePtpProfileError" in device_control_cpp and | ||
| "ptpRuntimeRunningSeen_" in device_control_cpp and | ||
| "busy: Boolean(panel.startPending)" in ptp_panel, | ||
| "Firmware tab must show build provenance and SOURCE 9-3 preflight") | ||
| ptp_firmware = (STUDIO.parent.parent / "embedded/esp32p4_smv_injector/main/ptp_lab_task.cpp").read_text(encoding="utf-8") | ||
| ptp_console = (STUDIO.parent.parent / "embedded/esp32p4_smv_injector/main/live_control.cpp").read_text(encoding="utf-8") | ||
| require('PDELAY_RX_TIMESTAMP_UNAVAILABLE' in ptp_firmware and | ||
| require('SOURCE_REQUIRES_1S_ANNOUNCE_1S_SYNC_AND_PDELAY' in ptp_firmware and | ||
| 'ar_ptp_lab_last_config_error()' in ptp_console and | ||
| 'PDELAY_RX_TIMESTAMP_UNAVAILABLE' in ptp_firmware and | ||
| 'SOURCE_TX_EVIDENCE_TIMEOUT' in ptp_firmware and | ||
| 'IEEE1588_CLOCK_UNAVAILABLE' in ptp_firmware and | ||
| 'PTP start rejected: source_reason=%s' in ptp_console and | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
When the board currently stores a RECEIVER or MONITOR profile with peer delay disabled, this call constructs a valid SOURCE profile with peer delay forced on, but
startPtpConfigured()sendsPROFILE PTPROLE SOURCEbefore sending that profile. The firmware's PTPROLE handler clones and validates the existing peer-delay-disabled configuration, so it rejects the role before the correctedPTP CONFIGcan arrive; consequently SOURCE still cannot start after using the newly supported non-SOURCE setting. Apply the target profile before role validation or make the role/profile transition atomic, and cover the RECEIVER-with-Pdelay-off to SOURCE transition in the deterministic harness.AGENTS.md reference: AGENTS.md:L232-L234
Useful? React with 👍 / 👎.