一、PAUSE幀概念
PAUSE幀是以太網在全雙工模式下,MAC控制子層發出的流量控制幀。IEEE802.3協議為MAC控制子層提供了一個全雙工流量控制結構框架,MAC控制子層是介于邏輯鏈路控制子層和介質訪問控制子層間的可選功能。本文詳細介紹幀格式以及不同端口速率下的quanta 值。
交換控制電路要防止緩沖區溢出,可以利用MAC控制子層來控制以太網介質訪問控制子層的操作。當已用緩沖區容量達到一個預先設定的閾值時,端口向全雙工鏈路對方發出停止發送數據的請求,這個請求通過MAC控制子層產生的控制幀實現。
同樣,端口可以接收由其他站點MAC控制子層產生的控制幀,控制幀夾在客戶數據幀流中發送,接收方會根據幀的內容將控制幀分離出來,提交到MAC控制子層中的流量控制模塊,流量控制模塊解析控制幀的內容,提取幀中的控制參數,根據控制參數決定暫停發送的時間。
PAUSE幀中攜帶了時間參數。收到PAUSE幀的設備通過簡單的解析,就可以確定停止發送的時長。對端設備出現擁塞的通常情況下,本端端口通常會連續收到多個PAUSE幀。只要對端設備的擁塞狀態沒有解除,相關的端口就會一直發送PAUSE.
二、PAUSE幀格式
PAUSE幀的幀長為64字節,結構非常簡單。如下圖所示:
PAUSE幀的目的MAC地址是保留的MAC地址0180-C200-0001(多播地址,第一個字節最低位為1的所有地址),源MAC則是發送PAUSE幀的設備的MAC地址。
Length/Type域是十六進制數0x8808.
MAC Control Opcode域的值是0x0001.其實,PAUSE幀是MAC控制幀的一種,其他類型的MAC控制幀使用不同的opcode值,此處不做詳細說明。后面會談到和PAUSE類似的PFC幀,PFC幀中該域的取值是0x0101.
MAC Control Parameters域需要根據MAC Control Opcode的類型來解析。對于PAUSE幀而言,該域是個2字節的無符號數,取值范圍是0~65535.該域的時間單位是pause_quanta,每個pause_quanta相當于512比特時間.
以太網控制幀PAUSE幀和正常數據幀格式的區別是目的地址是全局地址且長度/類型是固定的0x8808 以識別是否是PAUSE/PFC幀。對PFC幀又分為8個優先級分類,每個2字節;以及Class-Enable-Ventor 低8bit是控制class0~7 是否反壓的使能bit位。
三、PAUSE Time
當一個設備從對端設備接收到PFC XOFF時,它將需要一些時間(稱為響應時間)來排出已經在發出的數據包。IEEE 802.3 31B.3.7定義了在一個XOFF時需要等待多少個pause_quanta。一個pause_quanta等于以MAC的數據速率傳輸一個幀的512位所需要的時間。
在不同的運行速度下,需要采取的pause_quanta不一樣。需要注意的是對于10Gb/s,如果是10GBase-T (雙絞線傳輸)協議中quanta值為74,如果不是10Gbase-T,比如10Gbase-R (光纖傳輸)quanta 值為60,這里取兩者的平均值。此外對于800Gb/s (協議標準是以太網技術聯盟制定的)未看quanta 介紹,這里定義400G的兩倍,結合25Gb/s以上的速率與quanta值的倍數關系,可以認為1810 對于800G是足夠的。
不同端口速率下 不同的 Pause quanta值,如下表所示:
PAUSE 幀這個quanta 值對于MAC 上層模塊的Buffer 的headroom設置至關重要,用以吸收路徑中流水,使得發送的數據包正常傳輸且不會丟棄。
PAUSE 處理需要注意:
1)PAUSE幀發送不能中斷當前的完整報文。
2)新的PAUSE報文暫停時間會覆蓋上一個暫停時間。
3)接受側Pause time down to 0 OR receive XON幀(quanta值為0)都可以使得XOFF->XON。
4) PAUSE幀發送間隔需由內部counting 控制,防止pause期間占用過多的端口帶寬。
5) PAUSE幀的quanta 寄存器可配置,且復位值一般為0XFFFF。
審核編輯:劉清
-
以太網
+關注
關注
40文章
5460瀏覽量
172724 -
寄存器
+關注
關注
31文章
5363瀏覽量
121158 -
光纖傳輸
+關注
關注
0文章
162瀏覽量
20323
原文標題:以太網中的Pause幀格式
文章出處:【微信號:FPGA_Study,微信公眾號:FPGA自習室】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論