0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

TTE和TSN業(yè)務(wù)的保障方式及分析問題

FPGA之家 ? 來源:陳年麗 ? 2019-07-19 10:16 ? 次閱讀

第一次看到以太網(wǎng)物理地址格式時(shí),感覺很平淡。像看到IPV4和IPV6報(bào)文的標(biāo)頭部分一樣沒有感覺。但真正去理解以太網(wǎng)物理地址某些比特含義時(shí),是在幾年前的一次吹牛中體會(huì)到的。這次吹牛,差點(diǎn)毀掉了一直以來信譽(yù)良好的好名聲。

事情起源

在本文章中,曾經(jīng)提到過,TSN(Time Sensitive Networking,TSN)和TTE(Time-Triggered Ethernet)的起源及應(yīng)用領(lǐng)域,在那篇文章中,還提到了可以嘗試著把TTE看作是密閉空間內(nèi)使用的TSN的說法。事實(shí)上,這種說法是非常不準(zhǔn)確的。二者雖然都對(duì)業(yè)務(wù)進(jìn)行了是否實(shí)時(shí)性的區(qū)分,但實(shí)現(xiàn)時(shí)卻采用了截然不同的兩種方法。

TTE和TSN實(shí)時(shí)業(yè)務(wù)的保障方式

1、保障業(yè)務(wù)的實(shí)時(shí)性采用的是調(diào)度表的方式,對(duì)TT業(yè)務(wù)的收發(fā)嚴(yán)格按照調(diào)度表執(zhí)行;詳見上一篇公眾號(hào)文章:一個(gè)人,一個(gè)想法,一家公司和即將被改變的全世界網(wǎng)絡(luò)

2、TSN中對(duì)業(yè)務(wù)實(shí)時(shí)性保障的方式不是通過調(diào)度表的方式,而是提供資源預(yù)留,即流預(yù)留協(xié)議(SRP)。TSN中的流預(yù)留協(xié)議(SRP)包括廣播、注冊(cè)和解注冊(cè)三步。在流的整個(gè)傳輸路徑上采用協(xié)商機(jī)制,提前保留出流量傳輸所需要的帶寬,如果交換端口帶寬允許,則建立連接,否則連接失敗。 同時(shí)SRP協(xié)議規(guī)定將75%的帶寬分配給實(shí)時(shí)流量,25%的帶寬分配給盡力傳BE流量,所以TSN為低優(yōu)先級(jí)流量的發(fā)送提供了機(jī)會(huì),某種程度上可以緩解低優(yōu)先級(jí)流量“饑餓”現(xiàn)象。(關(guān)于TSN的帶寬預(yù)留機(jī)制可以參見IEEE 802.1Qat和Qcc標(biāo)準(zhǔn))。

而本文所說的事情就與TSN中的資源預(yù)留協(xié)議的實(shí)現(xiàn)相關(guān)。準(zhǔn)確的說是與車載時(shí)間敏感網(wǎng)絡(luò)中的IEEE802.1Qat協(xié)議相關(guān),即多流注冊(cè)協(xié)議(Multiple Stream Registration Protocol,MSRP)。

任務(wù)要求

當(dāng)時(shí)接到的任務(wù)是,通過XILINX的通用Zedboard開發(fā)平臺(tái)(本公眾號(hào)所有案例均在此平臺(tái)上實(shí)現(xiàn)),實(shí)現(xiàn)兩種數(shù)據(jù)幀的捕獲操作。

捕獲過程是指:數(shù)據(jù)幀通過網(wǎng)口進(jìn)入FPGA,然后由FPGA通過字段匹配出需要提交給CPU的某種類型的數(shù)據(jù)幀,然后將該數(shù)據(jù)幀通過中斷的方式提交給CPU進(jìn)行分析。

需要捕獲交給CPU的幀類型有兩種:1、MSRP報(bào)文:目的MAC為01-80-C2-00-00-0E,以太網(wǎng)類型為0x22EA;2、MVRP報(bào)文:目的MAC為01-80-C2-00-00-21,以太網(wǎng)類型為0x88F5;

要求:搭建一個(gè)演示平臺(tái),通過CPU可以配置FPGA內(nèi)部用來識(shí)別捕獲幀特征的寄存器,數(shù)據(jù)幀的類型和目的MAC地址可任意配置,然后將上述兩種FPGA內(nèi)部產(chǎn)生的數(shù)據(jù)幀通過捕獲通道交給CPU。

看到了上述任務(wù)要求后感覺很簡單,這種事情做過的太多了。從HINOC項(xiàng)目到各種定制的星載交換系統(tǒng),都有類似的需求。于是在被人問需要多久做好時(shí),毫不猶豫的爽快的說道:很簡單,明天就給你!

出現(xiàn)問題

接到任務(wù)是下午,吃過晚飯后就找了兩個(gè)學(xué)生開干。Zedboard板子以及操作系統(tǒng)環(huán)境甚至連FPGA的代碼基本都是現(xiàn)成的,需要做的只是少許修改,首先要實(shí)現(xiàn)通過操作系統(tǒng)去配置FPGA上相應(yīng)的寄存器內(nèi)容(MAC地址寄存器),但就在Linux操作系統(tǒng)嘗試著通過TCP/IP協(xié)議棧配置FPGA的MAC地址時(shí)就出現(xiàn)了問題,一般的MAC地址都能很容易的配置成功,但就是前面需要捕獲給CPU的MAC,也就是MSRP報(bào)文和MVRP報(bào)文都不能配置成功。

經(jīng)過反復(fù)的嘗試,發(fā)現(xiàn)MAC地址第一個(gè)字節(jié)最低位為1的MAC地址都無法正確配置。每次都返回set mac fail。

但在設(shè)置第一個(gè)字節(jié)最低位為0的地址時(shí),都能夠設(shè)置成功。

調(diào)試中遇到問題是家常便飯,對(duì)于第一次遇見這樣奇怪的問題,一下子激起了大家的好奇心。決定一定要弄明白是怎么回事。

分析及查找問題

1、分析問題

通過Linux命令行配置目的MAC地址失敗,原因肯定在該數(shù)據(jù)的通路上。這個(gè)配置數(shù)據(jù)經(jīng)過命令行輸入后,會(huì)依次經(jīng)過TCP/IP協(xié)議棧、驅(qū)動(dòng),然后再由AXI總線寫入FPGA內(nèi)部自定義的MAC寄存器。如果出現(xiàn)問題,那么肯定是這個(gè)通路沒有走通。那到底是哪一步?jīng)]有走通呢?

2、查看FPGA內(nèi)部寄存器是否被正確寫入

為了定位問題,我們先從FPGA內(nèi)部Verilog代碼描述的專門接收操作系統(tǒng)配置下來的目的MAC寄存器查起。為了定位,我們把該寄存器及相關(guān)的寫操作及寄存器內(nèi)容都作為ChipScope的監(jiān)測(cè)信號(hào)。在命令行輸入配置信息后,看寫該寄存器的寫使能信號(hào)是否被觸發(fā),結(jié)果發(fā)現(xiàn)在寫命令輸入之后,寫使能信號(hào)沒有被觸發(fā),該寄存器值仍然是復(fù)位值。也就是說,MAC地址沒有寫入FPGA內(nèi)部的相應(yīng)寄存器中,甚至連寫該寄存器的動(dòng)作都沒有。

3、看驅(qū)動(dòng)是否接收到命令行給出的配置數(shù)據(jù)

從操作系統(tǒng)Linux命令行給出來的配置MAC指令,經(jīng)過操作系統(tǒng)處理之后,最后肯定要寫到驅(qū)動(dòng)上,由驅(qū)動(dòng)執(zhí)行寫FPGA內(nèi)部寄存器的動(dòng)作才能把數(shù)據(jù)寫入FPGA內(nèi)部寄存器。這里的驅(qū)動(dòng),屬于我們自己寫的SNMP網(wǎng)管軟件的一部分,SNMP網(wǎng)管功能主要包括驅(qū)動(dòng)和應(yīng)用程序兩個(gè)部分,這里的應(yīng)用程序大家可以簡單的理解為就是剛才的命令行輸入的配置目的MAC地址的指令。而驅(qū)動(dòng)則包括字符型驅(qū)動(dòng)和網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)兩部分。字符型驅(qū)動(dòng)一般用來與應(yīng)用程序進(jìn)行交互。而網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng),主要是插入捕獲功能等,本文開始提到的捕獲MSRP報(bào)文及MVRP報(bào)文就是通過網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)執(zhí)行的。

于是,修改C代碼,在字符驅(qū)動(dòng)相關(guān)函數(shù)中加入打印信息,命令行配置目的MAC地址后,該驅(qū)動(dòng)函數(shù)未被調(diào)用。也就是說,配置信息連驅(qū)動(dòng)層面都沒有到,下一步就猜測(cè):有可能配置的目的MAC地址被TCP/IP協(xié)議棧給過濾掉了。

定位問題

經(jīng)過上述分析和查找定位,基本上定位在配置的目的MAC地址可能被TCP/IP協(xié)議棧給過濾掉了。這個(gè)時(shí)候我們才想起來,會(huì)不會(huì)是我們給出的目的MAC地址不合法???為什么總是第一個(gè)字節(jié)最低位為1的目的MAC地址會(huì)被TCP/IP協(xié)議棧過濾掉(文中開頭提到的MVRP和MSRP報(bào)文MAC地址的第一個(gè)字節(jié)最低位都為1)呢?

我們先來看一下MAC地址的定義及每一個(gè)bit的含義吧。

MAC地址含義

1、MAC地址是48bit二進(jìn)制的地址,前24位為供應(yīng)商代碼,后24為序列號(hào);2、單播地址:第一字節(jié)最低位為0,如00-e0-fc-00-00-06;3、多播地址:第一字節(jié)最低位為1,如01-e0-fc-00-00-06;4、廣播地址:48位全1,如ff-ff-ff-ff-ff-ff。

通過上面的描述,基本確認(rèn)了問題,也就是說TCP/IP協(xié)議棧會(huì)把第一個(gè)字節(jié)最低位為1的MAC地址,也就是多播地址,自動(dòng)的給過濾掉。會(huì)把配置多播地址為某個(gè)板子的MAC地址的Linux指令定義為無效指令。

找到并定位到問題以后,已經(jīng)晚上12點(diǎn)了。。。原本以為半小時(shí)就能搞定的問題,竟然花了四個(gè)小時(shí)才定位到問題。

解決問題

既然TCP/IP協(xié)議棧會(huì)把這類MAC地址過濾掉,那么我們不走TCP/IP協(xié)議棧不就可以了嗎?

好在之前做過的項(xiàng)目中預(yù)留了可以旁路掉TCP/IP協(xié)議棧的通路,直接將配置數(shù)據(jù)交給驅(qū)動(dòng),寫進(jìn)FPGA相應(yīng)的寄存器中。

這樣,捕獲給CPU的觸發(fā)條件,也就是MAC地址就順利的配到FPGA內(nèi)部了。好在,捕獲通道很順利,很容易的就把目的地址為任意MAC地址的以太網(wǎng)幀都順利的交給CPU了。(因?yàn)楫?dāng)時(shí)未保留MVRP和MSRP報(bào)文捕獲成功的截圖,隨便找了一張上課演示的圖片)

等一切都搞定的時(shí)候,已經(jīng)到了凌晨一點(diǎn)多了。

哦,對(duì)了。本文中需要將Zedboard開發(fā)板設(shè)置為從SD卡啟動(dòng)模式,板子上的跳帽位置如下:

同時(shí),在這種模式下,不加載操作系統(tǒng)的純FPGA代碼上板調(diào)試是不受影響的。

結(jié)論

1、無論任何時(shí)候,都不要隨便的說大話。要保持低調(diào)且謙虛謹(jǐn)慎的態(tài)度去面對(duì)任何一次科學(xué)實(shí)驗(yàn);

2、MAC地址中第一個(gè)字節(jié)的最低位為1表示該地址是組播地址,是不能通過操作系統(tǒng)經(jīng)過TCP/IP協(xié)議棧配置給FGPA板子的。這是文中的結(jié)論,求大佬們給出更專業(yè)的解釋。

3、本文是日常項(xiàng)目調(diào)試中出現(xiàn)的眾多問題中非常普通的一個(gè),希望大家也能夠養(yǎng)成問題記錄的好習(xí)慣,引用一位跟我同名同姓老鄉(xiāng)的話來說就是:日有寸進(jìn),得寸進(jìn)尺,日積月累,必有所成!

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1620

    文章

    21510

    瀏覽量

    598965
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5253

    瀏覽量

    119210

原文標(biāo)題:從一次TSN相關(guān)協(xié)議實(shí)現(xiàn)中了解以太網(wǎng)MAC地址的含義

文章出處:【微信號(hào):zhuyandz,微信公眾號(hào):FPGA之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    什么是R&TTE指令?

    R&TTE認(rèn)證包括兩個(gè)方面,一是RE:Radio Equipment 無線產(chǎn)品(比如手機(jī));二是TTE:Telecommunication Terminal Equipment 電信終端設(shè)備
    發(fā)表于 12-08 16:18

    R&TTE認(rèn)證的指令是什么?

    在通訊終端設(shè)備和無線產(chǎn)品能夠合法地在歐盟國家銷售之前,必須根據(jù)R&TTE指令執(zhí)行測(cè)試取得認(rèn)可,同時(shí)也必須擁有CE-mark。無線遙控產(chǎn)品、通訊產(chǎn)品,必須符合R&TTE的認(rèn)證指令(無線電及通訊
    發(fā)表于 12-23 14:59

    CE認(rèn)證中R&TTE指令是什么?

    CE認(rèn)證中R&TTE指令其實(shí)也是強(qiáng)制性的認(rèn)證指令。 R&TTE:( Radio and Telecommunications Terminal Equipment Directive
    發(fā)表于 05-27 10:09

    新指令RED與舊指令R&TTE的差異分析

    新指令RED與舊指令R&TTE的差異分析謝工 ***QQ28503937031. 指令簡稱不一樣。原來的是R&TTE指令(1999/5/EC),現(xiàn)在更新后的是RED指令(2014
    發(fā)表于 12-14 14:09

    數(shù)據(jù)分析報(bào)表無法響應(yīng)業(yè)務(wù)變化?

    而有效地推進(jìn)業(yè)務(wù)落地。隨時(shí)隨地,想怎么分析就怎么分析,隨時(shí)響應(yīng)業(yè)務(wù)變化當(dāng)瀏覽者想要就業(yè)務(wù)新增變化進(jìn)行了解,在任意終端上都能通過觸屏操作的
    發(fā)表于 06-09 17:21

    TSN 和現(xiàn)場(chǎng)總線:選型要點(diǎn)

    不同的方式提供冗余。TSN 使用平行冗余協(xié)議 (PRP) 和 IEC 62439-3 中定義的高可用性無縫冗余 (HSR) 協(xié)議等技術(shù)實(shí)現(xiàn)零損耗冗余。 TSN 不包括應(yīng)用層,也不在應(yīng)用層面上挑戰(zhàn)現(xiàn)場(chǎng)
    發(fā)表于 01-06 13:48

    基于信息技術(shù)的軍械保障業(yè)務(wù)流程再造研究

    為了適應(yīng)信息化戰(zhàn)爭所引起的編制體制、指揮控制、保障內(nèi)涵等方面的變革,提高軍械保障效率,文中闡述了軍械保障業(yè)務(wù)流程再造的本質(zhì),系統(tǒng)分析了信息技
    發(fā)表于 01-31 14:37 ?0次下載
    基于信息技術(shù)的軍械<b class='flag-5'>保障</b><b class='flag-5'>業(yè)務(wù)</b>流程再造研究

    02:基于Armv8平臺(tái)軟件及TSN端點(diǎn)和TSN交換機(jī)的解決方案

    工作的方式。了解更多有關(guān)恩智浦針對(duì)TSN端點(diǎn)和TSN交換機(jī)的解決方案,以及各種基于Arm?v8平臺(tái)的軟件支持。
    的頭像 發(fā)表于 01-21 07:20 ?4602次閱讀
    02:基于Armv8平臺(tái)軟件及<b class='flag-5'>TSN</b>端點(diǎn)和<b class='flag-5'>TSN</b>交換機(jī)的解決方案

    01:恩智浦針對(duì)TSN端點(diǎn)和TSN交換機(jī)的解決方案

    工作的方式。了解更多有關(guān)恩智浦針對(duì)TSN端點(diǎn)和TSN交換機(jī)的解決方案,以及各種基于Arm?v8平臺(tái)的軟件支持。
    的頭像 發(fā)表于 01-18 07:24 ?1.1w次閱讀
    01:恩智浦針對(duì)<b class='flag-5'>TSN</b>端點(diǎn)和<b class='flag-5'>TSN</b>交換機(jī)的解決方案

    EVAL-猛禽-TSNEK RapID 平臺(tái) - TSN 評(píng)估套件

    TSN 評(píng)估套件經(jīng)配置后可以提供 TSN 網(wǎng)關(guān)功能,以便快速評(píng)估 TSN 特性和功能并有效地了解 TSN 的工作方式。通過這種
    發(fā)表于 05-29 18:17 ?13次下載
    EVAL-猛禽-TSNEK RapID 平臺(tái) - <b class='flag-5'>TSN</b> 評(píng)估套件

    華為智能業(yè)務(wù)分析網(wǎng)絡(luò)解決方案實(shí)時(shí)保障業(yè)務(wù)的極致體驗(yàn)

    華為智能業(yè)務(wù)分析網(wǎng)絡(luò)解決方案,為數(shù)據(jù)中心網(wǎng)絡(luò)提供網(wǎng)絡(luò)風(fēng)險(xiǎn)提前預(yù)測(cè),業(yè)務(wù)流量一鍵診斷,網(wǎng)絡(luò)故障自動(dòng)定位三大能力,實(shí)時(shí)保障業(yè)務(wù)的極致體驗(yàn)。
    發(fā)表于 10-20 10:46 ?713次閱讀

    虹科RELY-TSN-REC:檢查、標(biāo)記和記錄常規(guī)以太網(wǎng)和時(shí)間敏感網(wǎng)絡(luò)(TSN)流量

    時(shí)間敏感型網(wǎng)絡(luò)(TSN)是是滿足關(guān)鍵領(lǐng)域以太網(wǎng)融合需求的有效解決方案。但是,由于TSN網(wǎng)絡(luò)的復(fù)雜性,技術(shù)人員必須能夠在幀級(jí)別分析網(wǎng)絡(luò)通信以進(jìn)行協(xié)議驗(yàn)證、性能分析、一致性測(cè)試和取證。虹科
    的頭像 發(fā)表于 10-29 18:12 ?832次閱讀
    虹科RELY-<b class='flag-5'>TSN</b>-REC:檢查、標(biāo)記和記錄常規(guī)以太網(wǎng)和時(shí)間敏感網(wǎng)絡(luò)(<b class='flag-5'>TSN</b>)流量

    基于TSN 802.1AS協(xié)議的時(shí)間同步分析(7種延時(shí),1次厘清)

    本文通過介紹TSN Tools中各個(gè)802.1AS分析器的功能及使用方法,展示了TSN Box結(jié)合TSN Tools所提供的強(qiáng)大的時(shí)間同步分析
    的頭像 發(fā)表于 08-01 14:14 ?1937次閱讀
    基于<b class='flag-5'>TSN</b> 802.1AS協(xié)議的時(shí)間同步<b class='flag-5'>分析</b>(7種延時(shí),1次厘清)

    虹科教您 | 虹科TSN配置軟件RELY-TSN-Configurator基本操作指南

    當(dāng)TSN網(wǎng)絡(luò)中存在多個(gè)設(shè)備的時(shí)候,使用CNC配置工具會(huì)比單獨(dú)配置更加高效。虹科RELY-TSN-Configurator是一款能夠?qū)Σ煌愋偷木W(wǎng)絡(luò)進(jìn)行模擬、建模和后期分析的工具,允許在確定網(wǎng)絡(luò)拓?fù)?/div>
    的頭像 發(fā)表于 09-08 09:33 ?979次閱讀
    虹科教您 | 虹科<b class='flag-5'>TSN</b>配置軟件RELY-<b class='flag-5'>TSN</b>-Configurator基本操作指南

    TSN時(shí)間敏感網(wǎng)絡(luò)技術(shù)入門級(jí)解決方案TSN?BasicSolution

    隨著TSN技術(shù)獲得越來越多的關(guān)注和廣泛應(yīng)用,TSN Systems公司推出了一款入門級(jí)的解決方案TSN?BasicSolution,通過簡化的方式為用戶提供關(guān)鍵功能,基于硬件與軟件的無
    的頭像 發(fā)表于 08-16 08:58 ?1483次閱讀
    <b class='flag-5'>TSN</b>時(shí)間敏感網(wǎng)絡(luò)技術(shù)入門級(jí)解決方案<b class='flag-5'>TSN</b>?BasicSolution