Машинный перевод, не проверенный носителем языка. Эталоном служит английская версия.

Страницы видов сценариевПравить на GitHubИсточник: docs/kinds/by-kind/holdover-test.md

holdover-test (вид сценария)

Вид сценария движка v0.40.0, семейство Часы, синхронизация времени и holdover. Носит консультативный характер: результат анализа исследовательского и инженерного инструмента; это не навигационное оборудование с утверждённым типом и не служба обеспечения безопасности жизни. Каждая метка здесь принадлежит движку или матрице верификации; вид считается MODELLED, если матрица не указывает иное (как заслуживается метка: раздел Evidence в README).

Что делает#

MODELLED испытание holdover системы синхронизации времени, оцениваемое по записи ошибки времени, которую предоставляет ОПЕРАТОР (журнал linuxptp ptp4l, phc2sys или ts2phc, журнал отслеживания или статистики chrony, журнал часов TICC, TimeLab или RINEX либо пары time_s,time_error_ns). Испытание состоит из четырёх шагов, и Kshana не выполняет ни один из них: захваченный БАЗОВЫЙ режим, ОТКЛЮЧЕНИЕ GNSS оператором (антенный кабель или выход имитатора; Kshana ничего не передаёт и ничем не управляет) в заданный момент, HOLDOVER на собственном генераторе системы и ВОССТАНОВЛЕНИЕ после того, как оператор вернёт GNSS во второй заданный момент. Запись разделяется по этим двум моментам. Базовый режим: статистика ошибки времени и маски ITU-T, написанные для захваченных часов. Holdover: статистика, доля частотного смещения, которое система удерживала (прямая по методу наименьших квадратов), маски, написанные для holdover или автономных часов, огибающая holdover ePRTC-A по заданной длительности захвата и время до превышения каждого бюджета ошибки времени. Восстановление: вошла ли |TE| в заданную полосу и когда, и оставалась ли в ней, пик и наибольший скачок. Каждый предел переписан из общедоступной таблицы ITU-T (маски синхронизации в телекоммуникациях); формулировка — «измерено относительно маски», а оба момента — заявление оператора, они не проверяются. Запись, слишком короткая для маски, получает статус INCOMPLETE и никогда не экстраполируется. См. docs/TIMING-HIL.md.

Один прогон scenarios/holdover-test-ptp4l.toml даёт такую сводку: holdover-test: holdover 1795 с, макс.|TE| 59,0 нс; prtc-a PASS, eprtc-a-holdover FAIL; восстановление через 0 с после возврата GNSS (MODELLED, измерено относительно маски)

Входные параметры#

Из схемы (kshana kinds --json):

  • Обязательные поля: test, series
  • Необязательные поля: masks, budgets

Пример scenarios/holdover-test-ptp4l.toml задаёт, среди прочего:

Поле Значение Единица
kind holdover-test текст
masks [prtc-a, eprtc-a-holdover] не указано
series.clock_log.format ptp4l текст
series.clock_log.text ptp4l[1000,000]: master offset -4 s2 freq + 1200 pa текст
test.gnss_removed_s 600 s
test.gnss_restored_s 2400 s
test.locked_duration_days 5 d
test.recovery_band_ns 100 нс
test.recovery_dwell_s 60 s

Запустите#

kshana scenarios/holdover-test-ptp4l.toml

Этот вид используют 2 поставляемых сценария; остальные находятся в scenarios/.

Что он даёт#

Скалярные результаты этого прогона с единицами, которые указывает движок:

Результат Значение Единица
clock_log.clock master текст
clock_log.data phase текст
clock_log.format ptp4l текст
clock_log.gap_policy refuse текст
clock_log.n_duplicates 0 1
clock_log.n_gaps 0 1
clock_log.n_grid 600 1
clock_log.n_interpolated 0 1
clock_log.n_missing 0 1
clock_log.n_off_grid 0 1

Метка результата (от движка): MODELLED — испытание holdover, оцениваемое по записи ошибки времени, предоставленной оператором. Каждый предел переписан из названной общедоступной Рекомендации ITU-T, а результат измерен относительно маски; он ничего не говорит о том, соответствуют ли какие-либо часы или система Рекомендации, и никто не оценивал и не одобрял

График, который движок записывает для scenarios/holdover-test-ptp4l.toml, вид holdover-test

Доказательства#

MODELLED: строки матрицы верификации, называющие этот вид.

  • MODELLED Вид holdover-test: запись ошибки времени (журнал linuxptp, chrony, TICC, TimeLab или RINEX либо пары time_s,time_error_ns) разделяется по двум моментам, заявленным оператором для отключения и восстановления GNSS, на базовый режим, holdover а

Строки, которые задействовал сам прогон, с оракулом, который указывает им матрица (публичные источники названы там):

  • MODELLED Детерминированные, хешируемые по сценарию, SBOM и кроссплатформенные эталонные проверки (golden). Оракул (ExternalDataset): соответствие SBOM официальной схеме JSON CycloneDX 1,5 (плюс допустимые идентификаторы SPDX) — внешний опубликованный стандарт, ноль ошибок валидации на всём графе зависимостей; часть о детерминизме FoM и побайтной воспроизводимости остаётся закреплённой проверкой внутренней согласованности, поэтому строка остаётся MODELLED
  • VALIDATED Максимальная ошибка временного интервала и временная девиация, которые выдаёт вид сценария telecom-timing на записи holdover в телекоммуникационном масштабе: скользящая монотонная очередь O(n). Оракул (ExternalDataset): allantools 2024,06 — независимая сторонняя библиотека стабильности частоты — mtie() и tdev() на tests/fixtures/telecom_timing/holdover_te_series.csv, ряд разобран из одного и того же текста с 17 значащими цифрами с обеих сторон; эталон записывает SHA-256 ряда и может быть воссоздан офлайн с помощью tests/fixtures/telecom_timing/generate_telecom_timing_reference.py. Проверяет ОЦЕНИВАТЕЛИ на этой записи, а не син
  • MODELLED Переписанные пределы ITU-T G.8272 (07/2025) PRTC-A/B, G.8272.1 (2024) Amd. 1 (07/2025) ePRTC в захваченном режиме и holdover ePRTC-A (включая огибающую ошибки времени таблицы 3. Оракул (InternalConsistency): переписывание названных Рекомендаций (свободно загружаемых с itu.int), каждый предел указывает свою таблицу или пункт, список со всеми неподтверждёнными или нереализованными пунктами в docs/TELECOM-TIMING.md; тождества непрерывности в точках излома, которые подразумевают таблицы, проверяются в тестах. Это переписывание стандартов с проверками внутренней согласованности, а не испытание на соответствие и не внешняя валидация. 0,30 раунд 2 (предварительно зарегистрировано
  • MODELLED Вид holdover-test: запись ошибки времени (журнал linuxptp, chrony, TICC, TimeLab или RINEX либо пары time_s,time_error_ns) разделяется по двум моментам. Оракул (InternalConsistency): ручной расчёт на записях, построенных по формулам, у которых наклон, скачок, экстремум и время восстановления известны до прогона (тесты их указывают), а также маски, огибающая и бюджеты из строк по телекоммуникационной синхронизации выше. Лабораторных измерений реального holdover не оценивалось и внешний оракул не сопоставлялся, поэтому вид не делает никаких заявлений о каких-либо часах или системе; до любого утверждения по классу часов нужен лабораторный партнёр по синхронизации

Ограничения#

Что отчёт самого прогона называет не смоделированным или не проверенным:

  • MODELLED — испытание holdover, оцениваемое по записи ошибки времени, предоставленной оператором. Каждый предел переписан из названной общедоступной Рекомендации ITU-T, а результат измерен относительно маски; он ничего не говорит о том, соответствуют ли какие-либо часы или система Рекомендации, и никто не оценивал и не одобрял его. Моменты отключения и восстановления GNSS — заявление оператора, они не проверяются. Программное обеспечение консультативного характера (результат label)
  • MODELLED испытание holdover системы синхронизации времени, оцениваемое по записи ошибки времени, которую предоставляет ОПЕРАТОР (журнал linuxptp ptp4l, phc2sys или ts2phc, журнал отслеживания или статистики chrony, журнал часов TICC, TimeLab или RINEX либо пары time_s,time_error_ns). (каталог видов (kshana kinds --json))
  • Воспроизводимость и гарантии качества ПО — MODELLED, а не validated: одно из частных утверждений проверено извне, но вся возможность составлена из смоделированных частей, поэтому возможность остаётся Modelled. (матрица верификации (docs/MODELLED-RATIONALE.md))
  • Маски телекоммуникационной синхронизации ITU-T с PASS/FAIL и запасом имеют уровень MODELLED и не подтверждены внешней проверкой: проверено по собственному тождеству в замкнутой или аналитической форме — выявляет ошибки переписывания и коэффициентов, но не является внешним оракулом. (матрица верификации (docs/MODELLED-RATIONALE.md))
  • Испытание holdover, оцениваемое по записи ошибки времени, предоставленной оператором, имеет уровень MODELLED и не подтверждено внешней проверкой: проверено по собственному тождеству в замкнутой или аналитической форме — выявляет ошибки переписывания и коэффициентов, но не является внешним оракулом. (матрица верификации (docs/MODELLED-RATIONALE.md))

См. также#