Broadcom以太網(wǎng)交換芯片轉(zhuǎn)發(fā)流程_第1頁(yè)
Broadcom以太網(wǎng)交換芯片轉(zhuǎn)發(fā)流程_第2頁(yè)
Broadcom以太網(wǎng)交換芯片轉(zhuǎn)發(fā)流程_第3頁(yè)
Broadcom以太網(wǎng)交換芯片轉(zhuǎn)發(fā)流程_第4頁(yè)
Broadcom以太網(wǎng)交換芯片轉(zhuǎn)發(fā)流程_第5頁(yè)
已閱讀5頁(yè),還剩13頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、Broadcom以太網(wǎng)交換芯片培訓(xùn)(broadcom56504/56300)1、   交換芯片架構(gòu) 交換芯片由GE/XE接口(MAC/PHY)模塊、CPU接口模塊、輸入輸出匹配/修改模塊、MMU模塊、L2轉(zhuǎn)發(fā)模塊、L3轉(zhuǎn)發(fā)模塊、安全模塊、流分類模塊等模塊組成,其結(jié)構(gòu)如圖1所示:                         &

2、#160;                         圖1 交換芯片的組成56504包含24個(gè)GE端口,4個(gè)10G端口,10G端口既可以用于堆疊,也可以用于上聯(lián)/級(jí)聯(lián)。56504交換芯片與CPU的接口稱為CMIC接口。交換芯片與CPU通過(guò)PCI總線連接。其他類型交換芯片與CPU的接口可以是:SPI+MII、I2C+MII、系統(tǒng)總線+MII、SMI+MI

3、I等。交換芯片的包處理流程如圖2所示:                                             圖2 交換芯片的包處理流程簡(jiǎn)圖包

4、由端口進(jìn)入交換芯片之后,首先進(jìn)行包頭字段匹配,為流分類做準(zhǔn)備;然后經(jīng)過(guò)一個(gè)安全引擎進(jìn)行包過(guò)濾;符合安全的包進(jìn)行L2交換或者L3路由,并經(jīng)過(guò)流分類處理器對(duì)匹配的包做相關(guān)動(dòng)作(比如丟棄、限速、修改VLAN等);對(duì)于可以轉(zhuǎn)發(fā)的包根據(jù)802.1P或DSCP放到不同隊(duì)列的buffer中,調(diào)度器根據(jù)優(yōu)先級(jí)或者WRR等算法進(jìn)行隊(duì)列調(diào)度,在端口發(fā)出該包之前執(zhí)行流分類修改動(dòng)作,最終從相應(yīng)端口發(fā)送出去。2、   L2轉(zhuǎn)發(fā)流程2.1 L2轉(zhuǎn)發(fā)原理對(duì)于交換芯片來(lái)說(shuō),L2轉(zhuǎn)發(fā)是一個(gè)最基本的功能。L2功能主要包括ingress過(guò)濾、MAC學(xué)習(xí)和老化、根據(jù)MAC+VLAN轉(zhuǎn)發(fā)、廣播與洪泛、生成樹(shù)控制等基

5、本功能。L2轉(zhuǎn)發(fā)的具體流程如圖3所示:    從端口進(jìn)入交換芯片的包首先檢查TAG,對(duì)于tagged包,判斷是否是802.1p的包,(802.1p的包vid為0),對(duì)于untagged的包和802.1p的包,根據(jù)系統(tǒng)配置加上tag(這些配置包括:基于MAC的vlan、基于子網(wǎng)的vlan、基于協(xié)議的vlan和基于端口的vlan)。經(jīng)過(guò)這一步以后,到交換芯片內(nèi)部的包都變成802.1Q的tagged包了(vid為14094,4095保留),如果設(shè)置了ingress過(guò)濾,就會(huì)檢查本端口是否在該vid對(duì)應(yīng)的VLAN中,對(duì)于本端口不在該vid對(duì)應(yīng)的VLAN中的包就丟棄。對(duì)于沒(méi)

6、有設(shè)置ingress過(guò)濾,或者設(shè)置ingress過(guò)濾但本端口在該vid對(duì)應(yīng)的VLAN中的包進(jìn)行STP端口狀態(tài)檢查,對(duì)于BPDU以外的包,只有端口處于forwarding狀態(tài),才允許包進(jìn)入。然后進(jìn)行原MAC地址檢查,以原MACVID的哈希為索引查找L2 TABLE,如果沒(méi)有找到,就把這個(gè)表項(xiàng)(原MACVID)以及對(duì)應(yīng)的端口寫到L2 TABLE中,這個(gè)過(guò)程稱為MAC地址學(xué)習(xí)。當(dāng)然地址學(xué)習(xí)的方法有很多種,可以是硬件學(xué)習(xí),也可以是軟件學(xué)習(xí),可以根據(jù)PORT表中的CMI字段的配置來(lái)進(jìn)行。 圖3 L2轉(zhuǎn)發(fā)流程     下一步進(jìn)行目的MAC地址檢查:目的MAC地址為廣

7、播地址(0xffffffff)的包,在vlan內(nèi)廣播出去;目的MAC地址為組播地址的包,進(jìn)行組播流程的處理;對(duì)于單播包,查找L2 TABLE,如果沒(méi)有找到,就在vlan內(nèi)進(jìn)行洪泛;如果找到,檢查表項(xiàng)中的L3 bit是否設(shè)置,如果設(shè)置了L3 bit,就進(jìn)行L3流程的轉(zhuǎn)發(fā);否則就轉(zhuǎn)發(fā)到L2 TABLE表項(xiàng)中的端口去,在egress方向,也有egress過(guò)濾設(shè)置(默認(rèn)是使能的),如果egress端口不在vlan中也是不能轉(zhuǎn)發(fā)的。至此,L2轉(zhuǎn)發(fā)流程完成了。與地址學(xué)習(xí)相反的過(guò)程是地址老化。地址老化的機(jī)制是:ASIC內(nèi)部有個(gè)定時(shí)器,稱為age timer,命令行可以對(duì)這個(gè)寄存器進(jìn)行設(shè)置,每次查找L2 TA

8、BLE時(shí)(包括原地址查找和目的地址查找,可以配置),如果命中,就會(huì)設(shè)置hit標(biāo)志。當(dāng)老化時(shí)間到后,ASIC把hit標(biāo)志清除,當(dāng)下一個(gè)老化時(shí)間到后,ASIC把hit為0的地址設(shè)置為無(wú)效,這就是為什么實(shí)際地址老化的時(shí)間為12倍agingTime的原因。2.2 L2轉(zhuǎn)發(fā)相關(guān)的表項(xiàng)2.2.1 port表 圖4 port表Port表是一個(gè)非常重要的表,有很多與端口相關(guān)的控制都在這里設(shè)置。每個(gè)端口對(duì)應(yīng)一個(gè)表項(xiàng),按端口號(hào)進(jìn)行索引。下面介紹一下重要的設(shè)置:1) PVID:設(shè)置PORT_VID2) 缺省優(yōu)先級(jí):設(shè)置PORT_PRI 3) 流分類使能:設(shè)置FILTER_ENABLE 4) VLAN轉(zhuǎn)換使

9、能:設(shè)置VT_ENABLE和VT_MISS_DROP 5) Ingress過(guò)濾使能:設(shè)置EN_IFILTER 6) 信任COS還是信任DSCP:對(duì)于IPV4:TRUST_DSCP_V4=0:信任COS;TRUST_DSCP_V4=1:信任DSCP,對(duì)于IPV6:同樣設(shè)置TRUST_DSCP_V6。 7) Ingress方向mirror使能:設(shè)置MIRROR 8) MAC地址學(xué)習(xí)方式:設(shè)置CML 9) IP組播是否使用VLAN信息:設(shè)置IPMC_DO_VLAN 10) L3轉(zhuǎn)發(fā)使能:設(shè)置V4L3_ENABLE和V6L3_ENABLE 11) 是否丟棄BPDU:設(shè)置DROP_BPDU 12) 控制

10、是否轉(zhuǎn)發(fā)帶tag和不帶tag的包:設(shè)置PORT_DIS_TAG和PORT_DIS_UNTAG 13) Pause幀控制:設(shè)置PASS_CONTROL_FRAMES 14) 基于子網(wǎng)的VLAN使能:設(shè)置SUBNET_BASED_VID_ENABLE 15) 基于MAC的VLAN使能:設(shè)置MAC_BASED_VID_ENABLE 16) 設(shè)置堆疊口:HIGIG_PACKET 17) 設(shè)置NNI口:NNI_PORT 18) 修改優(yōu)先級(jí)使能:MAP_TAG_PACKET_PRIORITY 19) 堆疊口modid設(shè)置:MY_MODID 20) Out tpid設(shè)置:OUTER_TPID 21) 基于M

11、AC和基于子網(wǎng)的VLAN優(yōu)先級(jí)設(shè)置:VLAN_PRECEDENCE 22) 是否允許單臂橋功能:PORT_BRIDGE 23) IP組播位圖設(shè)置:IGNORE_IPMC_L2_BITMAP和IGNORE_IPMC_L3_BITMAP2.2.2 egress port表                           

12、0;         圖5 egress port表EGR_PORT是一組寄存器,每個(gè)端口一個(gè),用于EGRESS方向的控制,有幾個(gè)重要設(shè)置介紹如下:1) 設(shè)置egress端口類型:PORT_TYPE0,UNI端口;PORT_TYPE1,NNI端口 2) 設(shè)置egress過(guò)濾:EN_EFILTER12.2.3 L2地址表                

13、0;                             圖6 L2地址表      56504的L2地址表大小為16K,5630X的L2地址表大小為8K,地址表使用MAC+VID的hash值作為索引查表。實(shí)際上56504的L2地址表hash值為4K,每個(gè)hash值

14、對(duì)應(yīng)4條地址,這樣最多可以保存4條hash沖突的地址。地址表中每個(gè)表項(xiàng)都保存了MAC_ADDR和VLAN_ID。MAC學(xué)習(xí)的時(shí)候使用原MAC+VID的hash查表,把表中的MAC+VID與包中的MAC+VID進(jìn)行比較,如果完全相等,表示找到了。然后看端口(TGID_PORT)是否相等,如果不相等表示地址發(fā)生了遷移,對(duì)于動(dòng)態(tài)學(xué)習(xí)的地址需要更新port;如果相等表示命中,更新hit標(biāo)志。其他幾個(gè)重要的功能介紹如下:1) 設(shè)置靜態(tài)地址:STATIC_BIT1 2) 設(shè)置L3轉(zhuǎn)發(fā)標(biāo)志:L31 3) 設(shè)置本地址的包都轉(zhuǎn)發(fā)到CPU去:CPU=1 4) 設(shè)置本地址匹配的包丟棄:SRC_DISCARD=1、D

15、ST_DISCARD=1 5) 設(shè)置本地址匹配的包對(duì)某些端口阻塞:MAC_BLOCK_INDEX 6) 設(shè)置本地址匹配的包鏡像:MIRROR1 7) 設(shè)置組播索引:L2MC_PTR 8) 地址有效標(biāo)志:VALID12.2.3 VLAN表Vlan表分為ingress和egress兩個(gè)部分,分別對(duì)應(yīng)入口控制和出口控制。                       

16、0;                      圖7 ingress vlan表    Ingress Vlan表中主要包含了端口列表,用于ingress filter功能。PFM是用于控制組播洪泛的開(kāi)關(guān)。PFM0,組播在vlan內(nèi)洪泛;PFM1,注冊(cè)的組播按組播表轉(zhuǎn)發(fā),未注冊(cè)的組播在vlan內(nèi)洪泛;PFM2,注冊(cè)的組播按組播表轉(zhuǎn)發(fā),未注冊(cè)的組播丟

17、棄。STG用于標(biāo)識(shí)本vlan所屬的生成樹(shù)組。                                              圖8 egre

18、ss vlan表Egress vlan表中除了PFM和STG外,還包含了出口方向的端口位圖,以及哪些端口以u(píng)ntag的方式發(fā)送本vlan的包。3、   L3轉(zhuǎn)發(fā)流程  圖9 L3轉(zhuǎn)發(fā)流程     如果查目的MAC地址表的時(shí)候發(fā)現(xiàn)L3bit置位了,就進(jìn)入到L3轉(zhuǎn)發(fā)流程。與L2交L3交換可以實(shí)現(xiàn)跨VLAN轉(zhuǎn)發(fā),而且它的轉(zhuǎn)發(fā)依據(jù)不是根據(jù)目的MAC地址,而是根據(jù)目的IP。L3轉(zhuǎn)發(fā)的流程是:首先對(duì)L3頭部進(jìn)行校驗(yàn),校驗(yàn)和錯(cuò)的包直接丟棄;然后進(jìn)行原IP地址查找,如果主機(jī)路由表中沒(méi)有找到,會(huì)上報(bào)給CPU,CPU會(huì)進(jìn)行相應(yīng)的處理,

19、并更新接口表;下一步進(jìn)行目的IP地址查找,如果主機(jī)路由表中沒(méi)有找到,就會(huì)在子網(wǎng)路由表中進(jìn)行查找,在子網(wǎng)路由表中進(jìn)行最長(zhǎng)子網(wǎng)匹配的查找算法,如果在子網(wǎng)路由表中還沒(méi)有找到,也送給CPU進(jìn)行處理,如果在主機(jī)路由表或子網(wǎng)路由表中找到了,就會(huì)得到下一跳的指針。如果ECMP使能的話,會(huì)得到ECMP的指針和ECMP的個(gè)數(shù),從而根據(jù)hash算法得到一個(gè)下一跳指針。下一條表項(xiàng)中包含了下一跳的MAC地址和接口表的索引。在包轉(zhuǎn)發(fā)出去的時(shí)候,用下一跳的MAC地址替換掉包的目的MAC地址。用接口表中的MAC地址和VLAN替換掉包的原MAC地址和VLAN。與L3有關(guān)的幾個(gè)重要的表:   &#

20、160;                                         圖10 L3單播主機(jī)路由表   圖11 L3子網(wǎng)路由表  圖

21、12 ECMP表 圖13 EGRESS 下一跳表 圖14 接口表                                           

22、   圖15 INGRESS 下一跳表4、   L2組播轉(zhuǎn)發(fā)流程 在L2轉(zhuǎn)發(fā)流程中,查找目的MACVID的時(shí)候,如果表項(xiàng)的目的MAC是一個(gè)組播地址,該表項(xiàng)有一個(gè)組播指針指向組播表,組播表中有一個(gè)端口位圖,表示哪些端口屬于該組播組。組播組中的端口位圖與VLAN中的端口位圖相與的結(jié)果是實(shí)際轉(zhuǎn)發(fā)的端口位圖。靜態(tài)配置的或協(xié)議動(dòng)態(tài)添加的組播地址通過(guò)SSP寫到MAC地址表中,組播成員通過(guò)SSP寫到組播表中。L2組播表的結(jié)構(gòu)如下:圖16 L2組播表5、   L3組播轉(zhuǎn)發(fā)流程       

23、L3組播支持有源樹(shù)和共享樹(shù)。所謂有源樹(shù)是指根據(jù)源IP地址和組地址來(lái)確定一個(gè)組播組,而共享樹(shù)是指僅根據(jù)組地址來(lái)確定一個(gè)組播組。芯片也支持反向路徑檢查(Reverse Path Forwarding check),所謂反向路徑檢查是指通過(guò)檢查源IP地址確定源端口,從而不要向源端口轉(zhuǎn)發(fā)的技術(shù)。       L3組播的轉(zhuǎn)發(fā)流程是,先查L(zhǎng)2表,對(duì)于組播地址而且是L3 bit置位的,查L(zhǎng)3表。L3表給出IPMC_INDEX。根據(jù)這個(gè)索引查L(zhǎng)3_IPMC表,L3_IPMC表給出L2_BITMAP和L3_BITMAP。對(duì)于L2_BITMAP,按照L2組播流程轉(zhuǎn)

24、發(fā);對(duì)于L3_BITMAP,根據(jù)IPMC_INDEX和BITMAP得到IPMC_GROUP的VLAN_INDEX,最后根據(jù)VLAN_INDEX查找IPMC_VLAN表,IPMC_VLAN表包含了VLAN的位圖,芯片在進(jìn)行L3組播的時(shí)候,對(duì)VLAN的位圖中的每個(gè)成員進(jìn)行組播復(fù)制。 圖17 L3組播表 圖18 L3組播復(fù)制 L3單播和組播的轉(zhuǎn)發(fā)流程綜合起來(lái),如下圖所示:                 

25、;                             圖19 L3單播和組播的轉(zhuǎn)發(fā)流程IPMC轉(zhuǎn)發(fā)相關(guān)的表的結(jié)構(gòu)如下:                &#

26、160;                              圖20 L3 TABLEL3 TABLE表項(xiàng)大小8K(5650X)/2K(5630X)。             

27、;                                  圖21 IPMC TABLEIPMC TABLE表項(xiàng)大小1K。圖22 IPMC _GROUP TABLEIPMC _GROUP TABLE表項(xiàng)大小1K。圖23 IPMC _VLAN TABLEIPMC _

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論