Протокол IEEE 1588 Precision Time Protocol (PTP) предназначен для высокоточной синхронизации времени между устройствами в компьютерной сети.

В отличие от NTP (точность ~1-10 мс), PTP способен обеспечивать точность синхронизации на уровне единиц наносекунд.

Маршрутизаторы серии ME поддерживают работу протокола PTP начиная с версии ПО 3.9.7. Начиная с версии 3.12.0 добавлены: traceability no-override по умолчанию, локальное отображение Steps Removed. Начиная с версии 3.13.0 добавлены: holdover in/out-of-spec, non-forwardable MAC, расширенные servo-параметры.

Поддерживаемое оборудование:

МодельПоддержка PTPПорт ToD
ME5210S ДаПрисутствует
ME2001ДаПрисутствует
ME6008ДаПрисутствует

Примечание: ME5100 и ME5200 не поддерживают протокол PTP. На данный момент протокол РТР для ME6008 находится в разработке.


Профили PTP

Сейчас имеются default (базовый профиль, использующий стандарт IEEE 1588-2008 для синхронизации часов), G.8275.1, G.8275.2 и G.8265-1 packet-master.

Профиль G.8265.1 (packet-slave) находится в разработке и не доступен в версии 3.13.0.


Схемы включения

Схема 1 — ME в роли Slave

Наиболее распространённая схема — подключение маршрутизатора ME к внешним PTP Grandmaster часам. Подходит для прямого подключения, подключения через Boundary Clock (BC) и через Transparent Clock (TC). Различие — в значении Steps Removed: чем меньше промежуточных узлов — тем выше точность.

ptp
  profile-8275-2
    clock
      clock-type t-timeslave-p
      priority2 255
    exit
    ports
      clock-port 1
        interface tengigabitethernet 0/0/1.828
        port-type slave   
      exit
    exit
    uc-masters
      uc-master 1
        ip-address 10.0.0.1
        port-number 1
      exit
    exit
  exit
exit
ptp
  profile-8275-1
    clock
      clock-type t-timeslave
      clock-class 255
    exit
    ports
      clock-port 1
        interface tengigabitethernet 0/0/1
      exit
    exit
  exit
exit

Схема 2 — ME в роли Grandmaster с ToD подключением

Внешние часы → [ToD RJ45 / SMB(coax)] → ME2001/ME5210S (GM) → [te0/0/1.828] → Slave

Если добавляете ToD в конфигурацию, то необходимо дополнительно указать вход 1PPS через RJ-45 либо SMB (coax).  

ptp
  profile-8275-2
    clock
      clock-type t-grandmaster
    exit
    ports
      clock-port 1
        interface tengigabitethernet 0/0/1.828
        port-type master 
      exit
    exit
    time-config
      inputs
        one-pps
          source rj45
        exit
      exit
      time-of-day
        mode in
      exit
    exit
    uc-slaves
       uc-slave 1
        ip-address 10.0.1.2
        port-number 1
      exit 
       uc-slave 2
        ip-address 10.0.2.2
        port-number 1 
      exit 
    exit
  exit
exit
ptp
  profile-default
    clock
      clock-type ordinary-clock
    exit
    ports
      clock-port 1
        interface tengigabitethernet 0/0/1.828
        port-type master
        transmission-mode multicast
      exit
    exit
    time-config
      inputs
        one-pps
          source coax
        exit
      exit
      time-of-day
        mode in
      exit
    exit
  exit
exit

Схема 3 — ME в роли Boundary

GM → [te0/0/1] → ME2001/ME5210S (Boundary) → [te0/0/2] → Slave

ptp
  profile-default
    clock
      clock-type boundary-clock
    exit
    ports
      clock-port 1
        interface tengigabitethernet 0/0/1
        port-mode l2
        port-type slave
        transmission-mode unicast
      exit
      clock-port 2
        interface tengigabitethernet 0/0/2
        port-mode l2
        port-type master
        transmission-mode multicast mac-egress non-forwardable
      exit
    exit
  exit
exit
ptp
  profile-8275-2
    clock
      clock-type t-boundary-p
    exit
    ports
      clock-port 1
        interface tengigabitethernet 0/0/1
      exit
      clock-port 2
        interface tengigabitethernet 0/0/2
      exit
    exit
    uc-masters
      uc-master 1
        ip-address 10.0.0.1
        port-number 1
      exit
    exit
    uc-slaves
      uc-slave 1
        ip-address 10.0.1.2
        port-number 2
      exit
      uc-slave 2
        ip-address 10.0.2.2
        port-number 2
      exit
    exit
  exit
exit

Дополнительные опции конфигурации

Резерв для нескольких PTP-мастеров

Для резерва можно добавить второй clock-port в сторону GM и задать приоритеты:

GM → [te0/0/1 | te0/0/2] → ME2001/ME5210S (Boundary) → [te0/0/3] → Slave

ptp
  profile-8275-1
    clock
      clock-type t-boundary
    exit
    ports
      clock-port 1
        interface tengigabitethernet 0/0/1
        local-priority 255
        port-type slave
      exit
      clock-port 2
        interface tengigabitethernet 0/0/2
        local-priority 100
        port-type slave  
      exit
      clock-port 3
        interface tengigabitethernet 0/0/3
        port-type master 
      exit 
    exit
  exit
exit

Non-forwardable MAC (с версии 3.13.0)

По умолчанию используется forwardable MAC-адрес 01:1B:19:00:00:00. Он позволяет PTP-сообщениям проходить сквозь стандартное сетевое оборудование (в том числе не поддерживающее PTP), так как коммутаторы транслируют его как обычный мультикаст.
Опция non-forwardable устанавливает MAC 01:80:C2:00:00:0E. Пакеты с этим адресом не транслируются за пределы локального сегмента — аналогично BPDU коммутатор отсекает их на границе L2-сегмента. Пакеты обрабатываются только устройствами, поддерживающими PTP (в противном случае отбрасываются).

ptp
  profile-8275-1
    clock
      clock-type t-timeslave
    exit
    ports
      clock-port 1
        interface tengigabitethernet 0/0/1
        transmission-mode multicast mac-egress non-forwardable
      exit
    exit
  exit
exit

Servo

Servo-параметры можно настроить через секцию time-config внутри профиля:

ptp
  profile-8275-2
    clock
      clock-type t-timeslave-p
      priority2 255
    exit
    ports
      clock-port 1
        interface tengigabitethernet 0/0/1.828
      exit
    exit
    time-config
      servo
        frequency-lock-threshold 100000000
        frequency-unlock-threshold 100000000
        phase-lock-threshold 100000000
        phase-unlock-threshold 100000000
      exit
    exit
    uc-masters
      uc-master 1
        ip-address 10.0.0.1
        port-number 1
      exit
    exit
  exit
exit

show ptp clock

Выводит информацию по трём уровням: 1) локальные параметры текущего устройства;  2) данные вышестоящего мастера (или internal oscillator в режиме holdover); 3) характеристики grandmaster-узла в начале цепочки синхронизации.

0/ME2001:EOS# show ptp clock
  Local clock details:
  
  Clock Identity             : ec:b1:e0:ff:fe:50:6e:40
  Current Ports On Device    : 1
  Steps removed              : 1
  Clock Priority1            : 128
  Clock Priority2            : 255
  Clock Class                : 248
  Clock Accuracy             : 0xfe (Unknown)
  Scaled log                 : 0xffff
  PTP Time scale             : True
  Time traceable             : False
  Frequency Traceable        : False
  Slave only                 : False
  
  Remote clock details:
  
  Source                     : Internal Oscillator
  Steps removed              : 0
  Remote clock id            : 90:54:b7:ff:fe:f5:bd:00
  UTC offset                 : 36
  Leap-59                    : 0
  Leap-61                    : 0
  UTC valid                  : False
  Time traceable             : False
  Frequency Traceable        : False
  
  Grand master clock data:
  
  GMC ID                  : 90:54:b7:ff:fe:f5:bd:00
  GMC Class               : 248
  GMC Accuracy            : 0xfe (Unknown)
  GMC Scaled Log Variance : 0xffff
  GMC Priority1           : 128
  GMC Priority2           : 255

Ключевые поля:

show ptp all-master-clock

0/ME2001:EOS# show ptp all-master-clock
  AMC data:
  
  Interface                  : te0/0/1.828
  Remote clock identity      : 68:13:e2:ff:fe:d8:3b:00
  PTP Timescale              : True
  Transmission mode          : UC
  Step mode                  : One step
  Steps removed              : 0
  Log announce interval      : 0
  UTC Offset                 : True
  Leap-59                    : 0
  Leap-61                    : 0
  UTC valid                  : False
  Time Traceable             : False
  Frequency Traceable        : False
  
  Grand master clock data:
  GMC Source     : Internal Oscillator
  GMC ID         : 68:13:e2:ff:fe:d8:3b:00
  GMC Class      : 248
  GMC Accuracy   : 0xfe (Unknown)
  GMC Scaled log : 0xfff

Holdover in/out-of-spec

Начиная с версии 3.13.0 реализован функционал holdover in/out-of-spec. При потере связи с мастером устройство переходит в состояние holdover:

При восстановлении связи с мастером servo возвращается в состояние Fast/Normal loop.

Holdover in/out-of-spec работает для профилей G.8275.1 и G.8275.2.  На данный момент переход из состояния holdover in-spec в holdover out-of-spec занимает 4 часа — как при поддержке SyncE, так и без неё.


Traceability no-override

По умолчанию (начиная с версии 3.12.0) traceability установлена в режим no-override. В этом режиме флаги Time/Frequency traceable прозрачно передаются от мастера — какие получили, такие и передают нижестоящим устройствам.

Режим no-override корректно работает при Normal/Fast loop состоянии servo. Во время holdover флаги определяются согласно holdover in/out-of-spec.


Особенности работы


Диагностика проблем

  1. Servo state — если не переходит в Fast loop или Normal loop, проверьте доступность мастера
  2. Lock statusUnlocked означает, что фаза не захвачена
  3. Steps removed — если больше ожидаемого, возможно лишнее звено в цепочке
  4. GMC Class — должен быть 1-16 для высокоточных часов. 248 = grandmaster не найден, 135 = holdover in-spec, 165 = holdover out-of-spec
  5. Счётчики пакетов — если Sync received = 0, пакеты не доходят. Проверьте ACL, VLAN, L2-связность

При настройке PTP убедитесь, что PTP-пакеты не блокируются ACL и корректно маршрутизируются. PTP использует UDP-порты 319 (events) и 320 (general).