telecom-timing (scenario kind)
Scenario kind of the engine v0.38.0, family Clocks, timing and holdover. Advisory: analysis output from a research and engineering tool, not type-approved navigation equipment and not a safety-of-life service. Every label here is the engine's or the verification matrix's; a kind is MODELLED unless the matrix says otherwise (how a label is earned: the README's Evidence section).
What it does#
Telecom timing: time error, maximum time interval error (MTIE) and time deviation (TDEV) of a GNSS holdover, checked against ITU-T masks with a PASS or FAIL and a margin per mask. Input is either a SYNTHETIC HOLDOVER (an oscillator preset -- ocxo, rubidium, caesium or csac, each carrying the stability, aging and temperature figures of a named public Microchip datasheet -- plus the GNSS-loss time, record length and sample interval; the free-running clock carries white, flicker and, where the datasheet fit needs it, random-walk frequency noise, linear aging and a sinusoidal temperature term) or an INGESTED SERIES of [time_s, time_error_ns] pairs given inline (and, on native builds only, a CSV file). Masks: ITU-T G.8272 (07/2025) PRTC-A and PRTC-B (max|TE| 100 / 40 ns, MTIE Tables 1-2, TDEV Tables 3-4); G.8272.1 (2024) Amd. 1 (07/2025) ePRTC locked (30 ns, Tables 1-2) and ePRTC-A holdover (the Table 3 time-error envelope rising from 30 ns to 100 ns over the holdover period H set by the locked duration, MTIE Table 4, TDEV Table 5); G.8273.2 (2023) Amd. 2 (11/2025) T-BC/T-TSC classes A-C (max|TE|, constant time error, low-pass-filtered MTIE and TDEV) and class D (max|TE_L| 5 ns, the only class D figure not left for further study); G.8271.1 (2022) Amd. 3 (05/2025) reference point C (max|TE_L| 1100 / 600 / 100 ns with MTIE Tables 7-1 to 7-3). Every entry a Recommendation marks for further study is absent rather than filled in, and each report lists what is not implemented. Also reports the time to exceed each maximum-time-error budget (defaults: 100 ns ePRTC max|TE_HO|, 400 ns network holdover allocation, 1100 ns point C, 1.5 us class 4), the MTIE/TDEV curves as a CSV table with each mask limit, and a units-and-provenance entry per numeric field. VALIDATED: the MTIE and TDEV estimators against the allantools package on a committed holdover series. MODELLED: the mask tables are transcriptions, and a synthetic holdover is a model built from datasheet maxima, not a measurement of any unit. Not a conformance test.
One run of scenarios/telecom-synce-eec.toml summarises as: telecom-timing: max|TE| 488.2 ns over 12000 s; g8262-eec-option-1 FAIL, g8262-eec-option-2 FAIL, g8262-1-eeec FAIL (MODELLED)
Inputs#
From the schema (kshana kinds --json):
- Required fields: none
- Optional fields:
seed,masks,budgets,holdover,series
The example scenarios/telecom-synce-eec.toml sets, among others:
| Field | Value | Unit |
|---|---|---|
budgets |
[] (no elements) | not stated |
holdover.duration_s |
12000 | s |
holdover.gnss_loss_s |
0 | s |
holdover.initial_frequency_offset |
0 | 1 |
holdover.locked_te_sigma_ns |
0 | ns |
holdover.oscillator |
ocxo | text |
holdover.sample_interval_s |
1 | s |
holdover.temperature_amplitude_k |
0 | K |
holdover.temperature_period_s |
86400 | s |
kind |
telecom-timing | text |
masks |
[g8262-eec-option-1, g8262-eec-option-2, g8262-1-eeec] | not stated |
seed |
20260925 | 1 |
Run it#
kshana scenarios/telecom-synce-eec.toml
3 bundled scenarios use this kind; the others are in scenarios/.
What it gives#
The scalar results of that run, with the units the engine states:
| Result | Value | Unit |
|---|---|---|
holdover.aging_te_at_end_ns |
125 | ns |
holdover.deterministic_te_at_end_ns |
125 | ns |
holdover.gnss_loss_s |
0 | s |
holdover.holdover_duration_s |
12000 | s |
holdover.initial_frequency_offset |
0 | 1 |
holdover.locked_te_sigma_ns |
0 | ns |
holdover.temperature_amplitude_k |
0 | K |
holdover.temperature_period_s |
86400 | s |
holdover.temperature_te_peak_ns |
0 | ns |
holdover_envelope.covers_holdover_period |
false | flag |
Result label (the engine's): MODELLED — time error, MTIE and TDEV checked against transcribed ITU-T masks. The estimators are validated against allantools; the mask tables are transcriptions of the named Recommendations; a synthetic holdover is a model built from public datasheet figures, not a measurement of any unit. Not a co
Evidence#
MODELLED 5 · VALIDATED 1: the verification matrix rows that name this kind.
- VALIDATED The maximum time interval error and time deviation the
telecom-timingscenario kind reports, on a telecom-scale holdover record: an O(n) monotonic-queue sliding-window MTIE (telecom_timing::mtie_sliding, needed so a day of one-second samp Tests: telecom_timing_reference.rs. - MODELLED Transcribed limits of ITU-T G.8272 (07/2025) PRTC-A/B, G.8272.1 (2024) Amd. Tests: telecom_timing_reference.rs.
- MODELLED Seven constant-temperature MTIE and TDEV wander-generation masks for the
telecom-timingkind: G.811 (09/1997) PRC (autonomous), G.812 (06/2004) Types I, II and III, G.8262 (10/2024) EEC Options 1 and 2 and G.8262.1 (11/2025) eEEC (locked - MODELLED clock_log::read_input: one parser layer that turns a RINEX clock file (AS/AR records of one named clock, versions 2 and 3.00 to 3.04), a TimeLab-style ASCII phase or frequency log, or a TAPR TICC timestamp or interval log into a uniform pha Tests: clock_log_allantools.rs.
- and 2 more in the matrix.
The rows the run itself exercised, with the oracle the matrix gives each (the public sources are named there):
- MODELLED Deterministic, scenario-hashed, SBOM + cross-platform golden gates. Oracle (ExternalDataset): SBOM conformance to the official CycloneDX 1.5 JSON Schema (+ valid SPDX identifiers) — an external published standard, zero validation errors over the full dependency graph; the FoM-determinism / byte-reproducibility part remains a pinned self-consistency check, so the row stays MODELLED
- VALIDATED The maximum time interval error and time deviation the
telecom-timingscenario kind reports, on a telecom-scale holdover record: an O(n) monotonic-queue slidi. Oracle (ExternalDataset): allantools 2024.06 — an independent third-party frequency-stability library — mtie() and tdev() on tests/fixtures/telecom_timing/holdover_te_series.csv, the series parsed from the same 17-significant-figure text on both sides; the reference records the series' SHA-256 and is regenerable offline via tests/fixtures/telecom_timing/generate_telecom_timing_reference.py. Validates the ESTIMATORS on this record, not the syn - MODELLED Transcribed limits of ITU-T G.8272 (07/2025) PRTC-A/B, G.8272.1 (2024) Amd. 1 (07/2025) ePRTC locked and ePRTC-A holdover (including the Table 3 time-error enve. Oracle (InternalConsistency): Transcription of the named Recommendations (freely downloadable from itu.int), each limit carrying its table or clause, listed with every unconfirmed or unimplemented item in docs/TELECOM-TIMING.md; the breakpoint-continuity identities the tables imply are checked in the tests. A standards transcription with internal consistency checks, not a conformance test and not an external validation. 0.30 round 2 (pre-register
- MODELLED Four presets — OCXO (Microchip OX-208), rubidium (Microchip 8040C), caesium (Microchip 5071A high-performance tube) and CSAC (Microchip SA.45s) — each carrying . Oracle (InternalConsistency): The four named Microchip datasheets (document numbers and URLs in each preset and in docs/TELECOM-TIMING.md) for the input figures; the closed-form aging ramp and the fit's envelope property as internal checks. How the figures become a noise model — the fit, the floor rule, the 30-day month, the linear temperature reading — is a modelling choice; no preset is a measurement of a unit. 0.30 round 2, one-sided bars agai
Limitations#
What the run's own report says is not modelled or not validated:
- every requirement the Recommendations mark 'for further study' (class D beyond max|TE_L|, ePRTC-B holdover, T-BC/T-TSC holdover with both inputs lost, TDEV network limits, ePRTC-A holdover MTIE and TDEV beyond 10 000 s) (result
not_implemented[0]) - high-pass-filtered dynamic time error (dTE_H, G.8273.2 Table 7-7 and G.8271.1 clauses 7.3.2-7.3.3) (result
not_implemented[1]) - the variable-temperature MTIE of G.8273.2 Table 7-6 and the physical-layer-assisted holdover MTIE of G.8273.2 Table 7-10 (result
not_implemented[2]) - relative time error (cTE_R, dTE_R,L) between two outputs (result
not_implemented[3]) - the moving-average packet filter G.8272 and G.8272.1 state for PTP interfaces: the series is treated as one pulse per second time interval error (result
not_implemented[4]) - MODELLED — time error, MTIE and TDEV checked against transcribed ITU-T masks. The estimators are validated against allantools; the mask tables are transcriptions of the named Recommendations; a synthetic holdover is a model built from public datasheet figures, not a measurement of any unit. Not a conformance test. (result
label) - MODELLED: the mask tables are transcriptions, and a synthetic holdover is a model built from datasheet maxima, not a measurement of any unit. (kind catalogue (
kshana kinds --json)) - The clock: the OCXO preset (Microchip OX-208 datasheet, Rev 12-1-2021), free-running from the first sample with white, flicker and (where the fit needs it) random-walk frequency noise fitted to the datasheet's Allan-deviation maxima, and its linear aging. The temperature is held constant (amplitude 0 K), as the masks assume. (scenario file comment, lines 12 to 15)
See also#
- Family page: Clocks, timing and holdover
- All kinds: KINDS.md
- Topic page: CLOCK-LOG-FORMATS.md
- Topic page: LEO-PNT.md