gPTP の流れを調べてみた

時間同期のしくみ

基本的なしくみは以下のとおり

  1. BMCA等により、Grand Master(GM)を決定する
  2. GMは、自身の正確な時刻を定期的にマルチキャスト配信
  3. 各スレーブは、メッセージ送信のDelay値を取得
  4. #2, #3 から、各スレーブは、各スレーブにおける時刻を算出

時間同期に使用されるMessage

  • Ethertype
    • gPTP: 0x88F7
  • Destination MAC Address
    • 01:80:C2:00:00:0E
      • Multicast用アドレス
      • LLDP(Link Layer Discovery Protocol) multicast addressとかぶる
      • MVRP, MSRPも同じアドレスを使用する
      • AVTP は異なるアドレスを使用
        • 91:E0:F0:01:00:00
        • MAAP によってallocate されたアドレス

Message の種類

Announce
  • network のstartup 時に、すべてのendpoint はそれぞれのcapabilityをAnnounce messageでネットワーク内のデバイスに通知する
  • BMCAにて使用
Sync/Follow up
  • Masterのタイムスタンプをネットワーク内に定期的にマルチキャスト配信 Bridge が仲介した場合は、propagation delay値分(link delay + residence delay (forwarding delay))を加算し(correction)下流におくる
  • default で 125ms 間隔
Pdelay_Req/Pdelay_Resp/Pdelay_Followup
  • 隣接するノード間の遅延値を算出するために用いる
    • 遅延値は各スレーブが保有する
  • Master がPdelay_Req を発行するケースもある。(知りたい人が発行する)
Signaling
  • TLVを用いて、Information/Request/command を運ぶ