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

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

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

設(shè)置AMD以太網(wǎng)IP核的Pause幀處理

XILINX開發(fā)者社區(qū) ? 來源:XILINX開發(fā)者社區(qū) ? 2023-10-18 09:15 ? 次閱讀

目前 AMD以太網(wǎng) IP 核,如軟核 10G/25G,40G/50G 或者硬核 CMAC,MRMAC,DCMAC 等等,都采用的是同一種 Pause 幀處理方式。

這篇文章主要介紹了用戶應(yīng)當如何設(shè)置以太網(wǎng) IP 的相關(guān)參數(shù),使其能夠有效處理以太網(wǎng)的 Pause 幀。

按照 IEEE802.3 協(xié)議,一個 Pause 幀是一個最小長度,即 64bytes 長的以太網(wǎng)幀,目標地址(DA)為一個廣播地址 01-80-C2-00-01,Type 為 8808,Opcode 為 0001(Global)或者 0101(Priority)。具體細節(jié)請參考 IEEE802.3 協(xié)議。

PFC 結(jié)構(gòu)如下所示:

a45d6d10-6d00-11ee-939d-92fbcf53809c.png

AMD 以太網(wǎng) IP,可以靈活的設(shè)置這些以太網(wǎng) Pause 幀參數(shù)。例如通過設(shè)置如下 TX 側(cè)的參數(shù),包括 GPP(Global Pause Packet)的目標地址(DA),Ether Type,Opcode 等,這樣 IP 會產(chǎn)生你所期望的任意數(shù)據(jù)包,作為你要的 Pause 幀發(fā)送出去。

a4650412-6d00-11ee-939d-92fbcf53809c.png

同樣,IP 也需要在 RX 側(cè)做相應(yīng)的設(shè)置,這樣才能識別出 Pause 幀并進行處理。接下來重點介紹,如何在 RX 側(cè)設(shè)置 Pause 幀的處理。

首先,IP 遵循如下 3 個 Steps,對收到的以太網(wǎng)幀進行處理:

Step1,如果通過了,則該以太網(wǎng)幀被認為是控制包,進入 Step2,并且不再出現(xiàn)在用戶數(shù)據(jù)側(cè)顯示;只有將 ctl_rx_forward_control 設(shè)為 1 的時候,即使是控制包,IP 仍然會將其跟其它數(shù)據(jù)包一起輸出到 RX 用戶側(cè);如果 Step1 沒通過,則該以太網(wǎng)幀為普通 RX 數(shù)據(jù)包。

Step2,如果通過了,則該以太網(wǎng)幀被確認為全局 Pause 幀;如果沒通過,則進入 Step3。

Step3,如果通過了,則該以太網(wǎng)幀被確認為 Priority Pause 幀;如果沒通過,則不是 Pause 幀,為其它類型控制幀。

a479fb7e-6d00-11ee-939d-92fbcf53809c.png

也就是說,這里有四種特殊的以太網(wǎng)幀,分別是兩種控制包 Global Control Packet(gcp),Priority Control Packet(pcp),和兩種 Pause 幀 Global Pause Packet(gpp),Priority Pause Packet(ppp)。

IP 需要首先判斷收到的是否是控制包(即 gcp 或 pcp),如果是,則先判斷是否是 Global Pause 幀,再判斷是否是 Priority Pause 幀。這幾步判斷,IP 都給了相應(yīng)的參數(shù),供用戶設(shè)置,每一個條件,用戶都可以選擇是否要作檢查。

文檔里給出了 IP 是如何做判斷的相關(guān)代碼,如下:(由于某些新的 IP 文檔尚未完善,如 DCMAC,如果缺失這部分內(nèi)容,也是可以參考其它 IP 文檔里的這一段內(nèi)容)。

a48327b2-6d00-11ee-939d-92fbcf53809c.png

接下來,選取 Step2 中的兩句,具體解釋下,如何理解這個代碼。其它部分可以類推。

a49ac322-6d00-11ee-939d-92fbcf53809c.png

先來看圖中第二句,判斷該以太網(wǎng)數(shù)據(jù)包為 Global Pause 幀(gpp),首先要滿足 Step1,然后是由上圖中第二句代碼(assign global_pause_packet)后面的所有項“與”(&&)起來的,就是說要滿足后面所有的項,分別是 DA 符合,SA 符合,Etype 符合,Opcode 符合,并且使能了該功能(即設(shè)置ctl_rx_enable_gpp=1)。

再來看第一句,Opcode 符合(assign opcode_match_gpp),是由后面兩個條件“或”起來。這里要注意,為什么是或,第一個條件是該功能使能取反,也就是說,如果你設(shè)置使能不打開的話,這個條件是直接滿足的;這就意味著,不打開這個使能表示代碼不檢測這個條件,任意數(shù)據(jù)都會被當作滿足條件,所有數(shù)據(jù)包都會被認作 Pause 幀;使能打開后,才會要求后面的第二個條件符合才行,第二個條件即 RX 收到的數(shù)據(jù)包的該段數(shù)據(jù),滿足你設(shè)置的 ctl_rx_opcode_gpp,按照協(xié)議你應(yīng)當將其設(shè)置為 0001。

總之,在設(shè)置完這些 Pause 幀相關(guān)參數(shù)后,就可以使用以太網(wǎng) IP 的流控功能了。通過 stat_tx_pause 確認 IP 是否成功發(fā)出 Pause 幀,并通過 stat_rx_pause 確認 IP 是否能收到 Pause 幀。如果仍然無法成功接收到 Pause 幀,不要忘了將 ctl_rx_forward_control 設(shè)為 1,并在用戶側(cè)接收數(shù)據(jù)的地方,檢查 IP 實際收到的數(shù)據(jù)包,并逐條對照之前的。






審核編輯:劉清

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

    關(guān)注

    40

    文章

    5287

    瀏覽量

    169635

原文標題:開發(fā)者分享|設(shè)置 AMD 以太網(wǎng) IP 核的 Pause 幀處理

文章出處:【微信號:gh_2d1c7e2d540e,微信公眾號:XILINX開發(fā)者社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    什么是Pause以太網(wǎng)MAC的pause流控介紹

    Pause是一種報文類型。在IEEE802.3協(xié)議中規(guī)定中,pause是一種控制,用于控制數(shù)據(jù)流停止發(fā)送,在MAC 發(fā)送側(cè)產(chǎn)生
    的頭像 發(fā)表于 09-15 10:48 ?5637次閱讀
    什么是<b class='flag-5'>Pause</b><b class='flag-5'>幀</b>?<b class='flag-5'>以太網(wǎng)</b>MAC的<b class='flag-5'>pause</b>流控介紹

    以太網(wǎng)中的格式及不同端口速率下的quanta值介紹

    PAUSE以太網(wǎng)在全雙工模式下,MAC控制子層發(fā)出的流量控制。
    的頭像 發(fā)表于 02-29 10:04 ?1657次閱讀
    <b class='flag-5'>以太網(wǎng)</b>中的<b class='flag-5'>幀</b>格式及不同端口速率下的quanta值介紹

    求助,怎樣控制altera的以太網(wǎng)IP呢?

    本人想使用altera的以太網(wǎng)IPtse,發(fā)現(xiàn)Quartus里面并沒有告訴怎樣控制這個。請問大家是怎樣控制這個
    發(fā)表于 01-22 14:55

    怎么使用以太網(wǎng)發(fā)送字節(jié)

    您好,我有一個PIC32以太網(wǎng)啟動器套件,這個套件連接到一個進行人員計數(shù)的照相機上,收集的數(shù)據(jù)是以字節(jié)為單位的的形式。我想實現(xiàn)一個代碼,在計算機上發(fā)送這些字節(jié),并使用以太網(wǎng)鏈接(T
    發(fā)表于 03-26 09:24

    使用10G以太網(wǎng)MAC IP

    您好,如果我想使用10G以太網(wǎng)MAC IP,那么可用的10G支持板。問候維諾德庫馬爾
    發(fā)表于 04-02 10:08

    vivado三速以太網(wǎng)IP怎么用

    vivado的三速以太網(wǎng)IP接口太多了,完全不知道應(yīng)該怎么用,哪位大佬能發(fā)我一份設(shè)計或者仿真嗎?簡單的就好
    發(fā)表于 04-15 12:58

    基于以太網(wǎng)接口的TCP/IP 實驗

    基于以太網(wǎng)接口的TCP/IP 實驗 一. 實驗?zāi)康倪M行一次TCP/IP 的通訊實驗,使用戶初步了解以太網(wǎng)IP、ARP、ICMP 等協(xié)議。
    發(fā)表于 09-26 16:51 ?2007次閱讀
    基于<b class='flag-5'>以太網(wǎng)</b>接口的TCP/<b class='flag-5'>IP</b> 實驗

    萊迪思和Flexibilis推出FPGA以太網(wǎng)交換IP

    萊迪思半導體公司和FLEXIBILIS Oy日前宣布了即可獲取Flexibilis以太網(wǎng)交換(FES)IP。三速(10Mbps/100Mbps/1Gbps)FES IP
    發(fā)表于 06-16 08:44 ?584次閱讀
    萊迪思和Flexibilis推出FPGA<b class='flag-5'>以太網(wǎng)</b>交換<b class='flag-5'>IP</b><b class='flag-5'>核</b>

    以太網(wǎng)結(jié)構(gòu)

    以太網(wǎng)結(jié)構(gòu)
    發(fā)表于 01-21 12:00 ?4次下載

    基于Avalon總線的非標準以太網(wǎng)控制器IP設(shè)計_薛毅

    基于Avalon總線的非標準以太網(wǎng)控制器IP設(shè)計_薛毅
    發(fā)表于 03-19 11:33 ?1次下載

    千兆以太網(wǎng)IP接口和萬兆以太網(wǎng)IP接口

    對于IP輸出數(shù)據(jù)的解析最好的工具就是其自帶的仿真文件,里面既將接收的數(shù)據(jù)進行了解析,又將發(fā)送給IP的數(shù)據(jù)進行了封裝,這對于了解數(shù)據(jù)結(jié)構(gòu)和協(xié)議是十分有幫助的,
    發(fā)表于 07-09 14:07 ?3783次閱讀

    萬兆以太網(wǎng)IP SAN的融合

    IP SAN存儲網(wǎng)融合到萬兆以太網(wǎng)絡(luò)中,將大大增加了IP SAN網(wǎng)絡(luò)的通信帶寬,提高主機訪問存儲的速度,同時由于以太網(wǎng)靈活易實施的特點,萬兆
    的頭像 發(fā)表于 01-24 15:16 ?3079次閱讀

    Xilinx平臺以太網(wǎng)接口(一)TCP/IP基礎(chǔ)

    在完成以太網(wǎng)通信實驗之前,必須要對以太網(wǎng)基礎(chǔ)知識進行了解。時間充裕的可以看看《圖解TCP/IP》作為掃盲。本文重點對以太網(wǎng)結(jié)構(gòu)進行介紹。
    的頭像 發(fā)表于 02-19 17:54 ?2196次閱讀
    Xilinx平臺<b class='flag-5'>以太網(wǎng)</b>接口(一)TCP/<b class='flag-5'>IP</b>基礎(chǔ)

    Android 9以太網(wǎng)功能移植以及設(shè)置IP地址

    基于Android 9實現(xiàn)以太網(wǎng)IP地址設(shè)置和功能實現(xiàn)
    發(fā)表于 06-20 14:42 ?2次下載

    深入探究以太網(wǎng)PAUSE處理流程及長距離鏈路控制閾值

    在產(chǎn)生PAUSE時,典型的實現(xiàn)不會嘗試猜測PAUSE的特定持續(xù)時間,而是依賴于X-ON和X-OFF的行為,這種方法必須將PAUSE中Ti
    發(fā)表于 03-11 11:32 ?1536次閱讀
    深入探究<b class='flag-5'>以太網(wǎng)</b><b class='flag-5'>PAUSE</b><b class='flag-5'>幀</b><b class='flag-5'>處理</b>流程及長距離鏈路控制閾值