Thanks for helping make precision timing easier to observe and experiment with.
- Search existing issues before opening a new one.
- For hardware or topology changes, include NIC models, drivers, LinuxPTP version, and whether ports share a PHC.
- Never assume an interface is safe to move. Management-interface protection is part of the feature, not an operator detail.
- Do not include private IP addressing, credentials, serial numbers, or raw logs that may contain sensitive host information.
npm ci
npm run devThe UI automatically enters hardware-model mode when an agent is unavailable. For a read-only live agent:
PTPBOX_ROOT=/path/to/PTPBox \
PTPBOX_WEB_ROOT="$PWD/dist-standalone" \
python3 agent/ptpbox_agent.pyRun the complete local check before opening a pull request:
make checkThis covers linting, the deployable build, rendered HTML tests, the standalone host bundle, Python syntax, and shell syntax.
- Keep each PR focused.
- Explain user impact and hardware impact separately.
- Include screenshots for visible UI changes.
- Add or update tests when behavior changes.
- Call out any command that moves interfaces, changes clock state, or requires additional privilege.
PTPBox uses a noncommercial source-available license with all commercial rights reserved to Ahmad Byagowi. By intentionally submitting a contribution for inclusion in PTPBox, you agree to Section 5 of LICENSE: you retain ownership of your work and grant Ahmad Byagowi the perpetual right to use, modify, distribute, relicense, and commercially exploit it as part of, or in connection with, PTPBox.
Do not submit a contribution if you do not own it, lack authority to grant those rights, or do not agree to those terms.
Use a short imperative subject, for example:
Add shared-PHC detection to cascade startup
Useful reports include:
- topology and physical cable order;
- NIC, firmware, driver, and PHC mapping;
ptp4l -voutput;- servo configuration;
- capture duration and sampling interval;
- per-hop RMS/MTIE/TDEV results;
- whether the trace is raw, filtered, or simulated.