Scenario kind pagesEdit on GitHubSource: docs/kinds/by-kind/telecom-timing.md

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

The chart the engine writes for scenarios/telecom-synce-eec.toml, kind telecom-timing

Evidence#

MODELLED 5 · VALIDATED 1: the verification matrix rows that name this kind.

  • VALIDATED The maximum time interval error and time deviation the telecom-timing scenario 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-timing kind: 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-timing scenario 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#