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