利用LinuxPTP進行時間同步(軟/硬件時間戳)

PTP的一些名詞

PTP域中的節點稱爲時鐘節點,PTP協議定義了以下三種類型的基本時鐘節點:
OC(Ordinary Clock,普通時鐘):只有一個PTP通信端口的時鐘是普通時鐘。
BC(Boundary Clock,邊界時鐘):有一個以上PTP通信端口的時鐘。
TC(Transparentclock,透明時鐘):與BC/OC相比,BC/OC需要與其它時鐘節點保持時間同步,而TC則不與其它時鐘節點保持時間同步。TC有多個PTP端口,但它只在這些端口間轉發PTP協議報文並對其進行轉發延時校正,而不會通過任何一個端口同步時間。TC包括以下兩種類型:
E2ETC(End-to-End TransparentClock,端到端透明時鐘):直接轉發網絡中非P2P(Peer-to-Peer,點到點)類型的協議報文,並參與計算整條鏈路的延時。
P2PTC(Peer-to-PeerTransparent Clock,點到點透明時鐘):只直接轉發Sync報文、Follow_Up報文和Announce報文,而終結其它PTP協議報文,並參與計算整條鏈路上每一段鏈路的延時。
一般鏈式的P2P網絡選擇E2E-TC,而從鍾節點較多的網絡考慮P2P-TC。因在 P2P 延時測量機制中,延時報文交互是在每條鏈路的兩個端口間進行的,主鍾只與直接相連的網絡交換設備有延時報文交互,因此在 P2P TC 的延時測量機制中,沒有對從鍾數量的限制。
主時鐘:一個PTP通信子網中只能有一個主時鐘。
 

2、硬件支持

查看網卡是否支持軟硬件時間戳:
sudo ethtool -T eno1

軟件時間戳需要包括參數
SOF_TIMESTAMPING_SOFTWARE
SOF_TIMESTAMPING_TX_SOFTWARE
SOF_TIMESTAMPING_RX_SOFTWARE

硬件時間戳需要包括參數
SOF_TIMESTAMPING_RAW_HARDWARE
SOF_TIMESTAMPING_TX_HARDWARE
SOF_TIMESTAMPING_RX_HARDWARE

3、LinuxPTP源碼下載

sudo git clone git://git.code.sf.net/p/linuxptp/code linuxptp
cd linuxptp
sudo make
sudo make install

 查看Usage:ptp4l -h

4、run linuxptp

  • 4.1 軟件時間戳,主從模式測試

服務端(主鍾):sudo ptp4l -i enp0s31f6 -m -S (網卡名按照對應連接的實際網卡名進行修改)

客戶端(從鍾):sudo ptp4l -i eno1 -m -S -s  (網卡名按照對應連接的實際網卡名進行修改)


運行結果:
主鍾:

從鍾:

運行一會兒以後:

log中的內容爲:

master offset : 即PTP協議中定義的主從端時間差,單位:ns
s0,s1,s2 : 表示時鐘伺服器的不同狀態,s0表示未鎖定,s1表示正在同步,s2表示鎖定,鎖定狀態表示不會再發生階躍行同步,只是緩慢調整
freq:


port 0:INITIALIZING to LISTENING on INIT_COMPLET :    本地PTP管理的Unix域socket;
port 1:new foreign … : eno1上的端口,實際主從同步端口;


從鍾端口狀態由UNCALIBRATED 變爲SLAVE時,則從鍾已經成功地與best master同步。若將主時鐘端服務退出,則從時鐘端會選擇本地時鐘作爲best master。 

  • 4.2 硬件時間戳測試


服務端(主鍾):sudo ptp4l -i enp0s31f6 -m -H

客戶端(從鍾):sudo ptp4l -i eno1 -m -H -s

運行結果:
從鍾:

顯然用硬件時間戳同步的精度高得多。

  • 4.3 透明時鐘(TC)模式測試(有問題)

TC和BC都需要及其至少有兩個interface;
執行命令:sudo ptp4l -i eno1 -m -H -t

提示無效的選項:

usage裏分明寫着 -t 是transparent clock 啊
sudo vim ptp4l.8
嗯,-f -i -m -p -l -i -A -E -P -2 -4 -6 -H -S -L -q -v -h
??就是沒有-t,不懂了

  • 強行TC/BC:需要設備有倆網卡,一個卡綁從鍾一個卡綁定主鍾,來實現TC/BC。
  • 最近開發時遇到的USRP的U L O問題:

 

 

轉自:https://blog.csdn.net/BUPTOctopus/article/details/86246335

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章