91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Linux下如何調試1588單步時間戳報文

發布時間:2021-07-09 16:50:57 來源:億速云 閱讀:746 作者:chen 欄目:互聯網科技

本篇內容介紹了“Linux下如何調試1588單步時間戳報文”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!


這幾天在為一個網絡控制器實現IEEE 1588單步時間戳的驅動,幾經調試終于完工了。順便分享一下調試方法,當然如果你想玩1588的單步時間戳,首先得有支持這個功能的硬件平臺。如果對1588報文單步時間戳不了解,可以查看我之前的文章“IEEE 1588 Sync報文單步時間戳”。

 

平臺和工具

我用的平臺就不透露了,測試使用兩塊板子,網口直連。用到的軟件包括,

  • Linux:這是我板子的OS,包含我要驗證的驅動。
  • tcpdump:抓包工具,位于板子的文件系統。
  • linuxptp:開源PTP軟件,位于板子的文件系統。
  • Wireshark,Windows電腦上的軟件,用來查看抓包文件。
 

調試方法

  1. 兩個板子網口直連,啟動Linux。
  2. 配置IP地址,確保兩個網口能ping通。
  3. 一個板子做接收,運行tcpdump抓包,可直接查看,也可以保存成pcap文件在Wireshark中打開查看。
  4. 另一個板子做發送,運行ptp4l做master,發送單步Sync報文。

 

發送方命令

使用L2 Ethernet協議,運行ptp4l做master,發送單步時間戳Sync報文

# ptp4l -i eth0 -m --twoStepFlag=0 -2
ptp4l[613.615]: selected /dev/ptp0 as PTP clock
ptp4l[613.652]: port 1: INITIALIZING to LISTENING on INIT_COMPLETE
ptp4l[613.653]: port 0: INITIALIZING to LISTENING on INIT_COMPLETE
ptp4l[619.801]: port 1: LISTENING to MASTER on ANNOUNCE_RECEIPT_TIMEOUT_EXPIRES
ptp4l[619.802]: selected local clock 00e00c.fffe.001600 as best master
ptp4l[619.802]: port 1: assuming the grand master role
 

使用UDP/IPv4協議,運行ptp4l做master,發送單步時間戳Sync報文

# ptp4l -i eth0 -m --twoStepFlag=0
ptp4l[636.150]: selected /dev/ptp0 as PTP clock
ptp4l[636.152]: port 1: INITIALIZING to LISTENING on INIT_COMPLETE
ptp4l[636.153]: port 0: INITIALIZING to LISTENING on INIT_COMPLETE
ptp4l[643.497]: port 1: LISTENING to MASTER on ANNOUNCE_RECEIPT_TIMEOUT_EXPIRES
ptp4l[643.497]: selected local clock 00e00c.fffe.001600 as best master
ptp4l[643.497]: port 1: assuming the grand master role
     

接收方命令和結果

使用tcpdump直接查看接收報文完整的數據

# tcpdump -i eth0 -xx
 

可以看到對L2 Ethernet報文和UDP/IPv4報文,PTP消息的correctionField和originTimestamp字段的數值,直接就解析出來了。

L2 Ethernet:

Linux下如何調試1588單步時間戳報文

UDP/IPv4:

Linux下如何調試1588單步時間戳報文

 

結束語

Sync報文發送的硬件時間戳應該是originTimestamp和correctionField相加。根據1588標準的規定,originTimestamp和實際發送硬件時間戳差值不能超過1s,所以對具體的硬件,如果originTimestamp是在發送報文前由軟件填寫的,那么一定要在填寫后立即發送,使得correctionField不能超過1s。當前驗證的硬件就是這種實現,所以correctionField在2us多,應該還是合理的。如果硬件做單步時間戳的同時,又支持回寫時間戳,那就可以拿回寫時間戳和單步時間戳(originTimestamp + correctionField)比較。如果相等,就說明硬件工作沒有問題。

“Linux下如何調試1588單步時間戳報文”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

大洼县| 新平| 湘潭市| 宜黄县| 仙游县| 思南县| 哈巴河县| 镇坪县| 曲阳县| 甘德县| 宾川县| 江门市| 普定县| 淮南市| 苏尼特左旗| 土默特右旗| 榆社县| 泸西县| 肇东市| 镶黄旗| 谷城县| 台北县| 五原县| 萍乡市| 毕节市| 聂拉木县| 武强县| 万盛区| 同心县| 察哈| 台湾省| 安庆市| 开鲁县| 安泽县| 新宾| 黄龙县| 易门县| 六枝特区| 安塞县| 灵宝市| 大石桥市|