Расхождение в оборудовании PTP (Precision Time Protocol) Измерение точности отметки времени

Мы анализируем PTP для программного обеспечения системы управления и измеряем точность синхронизации часов PTP с помощью небольшого набора из двух персональных компьютеров, один из которых является ведущим, а другой - подчиненным. Наши текущие настройки очень грубые, и у нас еще нет гроссмейстера. Проблема состоит в том, что наши числа точности (как мы их в настоящее время измеряем, которые могут быть неверными) не соответствуют стандартным числам, указанным в протоколе PTP, и варьируются на величину 10.

В рамках анализа мы пытаемся использовать метки времени для аппаратного и программного обеспечения и пытаемся измерить точность обоих.

Мы используем инструменты ptp4l и ph2sys v1.8. Наша текущая мера точности основана на смещениях ведущий-ведомый, о которых сообщает процесс ptp4l. (ptp4l также сообщает о задержках на пути, в настоящее время мы не используем эти числа. Есть ли какое-то значение этих чисел в измерении точности?)

В Аппаратной метке времени мы получаем смещение>1000 наносекунд от ведущего, что намного больше, чем ожидаемое значение около 50 нс PTP H/W Timestamping.

Аппаратные временные смещения

Для программной метки времени мы получаем ожидаемые смещения от мастера, которые составляют<100 мкс. Программные временные смещения

Детали настройки и исполнения:

Мастер: Dell Latitude E6220 (контроллер Intel 82579LM Gigabit Ethernet) - CentOS7

Ведомый: Dell Latitude E6320 (контроллер Intel 82579LM Gigabit Ethernet) - CentOS7

Сеть: кабель Ethernet со скоростью 1 Гбит / с

Выход Ethtool:

Возможности:

hardware-transmit     (SOF_TIMESTAMPING_TX_HARDWARE)

software-transmit     (SOF_TIMESTAMPING_TX_SOFTWARE)

hardware-receive      (SOF_TIMESTAMPING_RX_HARDWARE)

software-receive      (SOF_TIMESTAMPING_RX_SOFTWARE)

software-system-clock (SOF_TIMESTAMPING_SOFTWARE)

hardware-raw-clock    (SOF_TIMESTAMPING_RAW_HARDWARE)

Аппаратные часы PTP: 0

Аппаратная передача меток времени:

off                   (HWTSTAMP_TX_OFF)

on                    (HWTSTAMP_TX_ON)

Режимы аппаратного фильтра приема:

none                  (HWTSTAMP_FILTER_NONE)

all                   (HWTSTAMP_FILTER_ALL)

ptpv1-l4-sync         (HWTSTAMP_FILTER_PTP_V1_L4_SYNC)

ptpv1-l4-delay-req    (HWTSTAMP_FILTER_PTP_V1_L4_DELAY_REQ)

ptpv2-l4-sync         (HWTSTAMP_FILTER_PTP_V2_L4_SYNC)

ptpv2-l4-delay-req    (HWTSTAMP_FILTER_PTP_V2_L4_DELAY_REQ)

ptpv2-l2-sync         (HWTSTAMP_FILTER_PTP_V2_L2_SYNC)

ptpv2-l2-delay-req    (HWTSTAMP_FILTER_PTP_V2_L2_DELAY_REQ)

ptpv2-event           (HWTSTAMP_FILTER_PTP_V2_EVENT)

ptpv2-sync            (HWTSTAMP_FILTER_PTP_V2_SYNC)

ptpv2-delay-req       (HWTSTAMP_FILTER_PTP_V2_DELAY_REQ)

Мы используем ptp4l для программной отметки времени следующим образом:

Мастер:

sudo ptp4l -i em1 -m -S

Подчиненный:

sudo ptp4l -i em1 -m  -s -S

И ptp4l и phc2sys для аппаратной отметки времени выглядят следующим образом:

Мастер:

sudo ptp4l -i em1 -m

sudo phc2sys -s CLOCK_REALTIME -c em1 -m -w 

(Поскольку в настоящее время у нас нет гроссмейстера, мы используем системные часы Мастера в качестве главных часов для phc2sys)

Подчиненный:

sudo ptp4l -i em1 -m -s

sudo phc2sys -s  em1 -c CLOCK_REALTIME -m -w

(Примечание: мы выполняем вышеуказанные команды с конфигурацией по умолчанию. Пожалуйста, дайте нам знать, если какие-либо конфигурации необходимо настроить для большей точности?)

Мы ищем помощи в выяснении причин такого несоответствия в точности меток времени оборудования и любых ошибок в наших настройках теста или методах измерения.

Спасибо,

Долли

2 ответа

Мы используем инструменты ptp4l и ph2sys v1.8.

с участием

Intel 82579LM

LinuxPTP v1.8 был выпущен в ноябре 2016 года, а в феврале 2017 года в код был добавлен патч, касающийся проблемы с частотой оборудования, которая влияет на точность аппаратных часов.

Это объясняет, почему влияет только аппаратный режим.

Использование более новой версии должно решить проблему.

Для справки, встроенные сетевые карты (также известные как LOM) той эпохи, в том числе и до i219, я полагаю, действительно имели проблемы. Я помню, как получил печально известную «тайм-аут при опросе временной метки tx» на i219, даже после настройки tx_timestamp_timeout на 20 мс или около того. i82579 (и i82580) еще старше (сняты с производства Intel на момент написания этой статьи).

У меня есть хороший опыт работы с PTP на i210 и i350, которые на данный момент являются довольно старым оборудованием. С хорошим GM (= стабильный генератор, метка времени HW) ведомый ptp4l может сходиться до низких двузначных наносекунд (ppb) с недисциплинированным генератором xtal (или буквально до нуля с тактовой частотой 25 МГц, привязанной к Rb или GPS). Я помню попытки с i82574L (= предшественником i210) и другими сетевыми адаптерами этого поколения, и, хотя аппаратная отметка времени работает, результаты, о которых сообщил ptp4l, были менее выдающимися по сравнению с поколением i210.

Также обратите внимание, что i219 интегрирован в несколько поколений и моделей наборов микросхем для ПК, и эти немного разные «выпуски» могут иметь незначительные различия в своих возможностях / производительности / ошибках аппаратной временной метки. Если были ранние ошибки, они могли быть исправлены в более поздних версиях кремния. И с каждой сетевой картой, которая делает временные метки HW, даже с i210, стабильность кристалла 25 МГц может играть роль. Чтобы получить представление, попробуйте коснуться кристалла пальцем во время работы ptp4l.

Другие вопросы по тегам