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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

-.z.Broad以太網交換芯片培訓(broad56504/56300)1、交換芯片架構交換芯片由GE/*E接口(MAC/PHY)模塊、CPU接口模塊、輸入輸出匹配/修改模塊、MMU模塊、L2轉發(fā)模塊、L3轉發(fā)模塊、安全模塊、流分類模塊等模塊組成,其結構如圖1所示:圖1交換芯片的組成56504包含24個GE端口,4個10G端口,10G端口既可以用于堆疊,也可以用于上聯/級聯。56504交換芯片與CPU的接口稱為CMIC接口。交換芯片與CPU通過PCI總線連接。其他類型交換芯片與CPU的接口可以是:SPI+MII、I2C+MII、系統(tǒng)總線+MII、SMI+MII等。交換芯片的包處理流程如圖2所示:圖2交換芯片的包處理流程簡圖包由端口進入交換芯片之后,首先進行字段匹配,為流分類做準備;然后經過一個安全引擎進行包過濾;符合安全的包進行L2交換或者L3路由,并經過流分類處理器對匹配的包做相關動作(比如丟棄、限速、修改VLAN等);對于可以轉發(fā)的包根據802.1P或DSCP放到不同隊列的buffer中,調度器根據優(yōu)先級或者WRR等算法進行隊列調度,在端口發(fā)出該包之前執(zhí)行流分類修改動作,最終從相應端口發(fā)送出去。2、L2轉發(fā)流程2.1L2轉發(fā)原理對于交換芯片來說,L2轉發(fā)是一個最基本的功能。L2功能主要包括ingress過濾、MAC學習和老化、根據MAC+VLAN轉發(fā)、廣播與洪泛、生成樹控制等基本功能。L2轉發(fā)的具體流程如圖3所示:從端口進入交換芯片的包首先檢查TAG,對于tagged包,判斷是否是802.1p的包,(802.1p的包vid為0),對于untagged的包和802.1p的包,根據系統(tǒng)配置加上tag(這些配置包括:基于MAC的vlan、基于子網的vlan、基于協(xié)議的vlan和基于端口的vlan)。經過這一步以后,到交換芯片部的包都變成802.1Q的tagged包了(vid為1-4094,4095保留),如果設置了ingress過濾,就會檢查本端口是否在該vid對應的VLAN中,對于本端口不在該vid對應的VLAN中的包就丟棄。對于沒有設置ingress過濾,或者設置ingress過濾但本端口在該vid對應的VLAN中的包進行STP端口狀態(tài)檢查,對于BPDU以外的包,只有端口處于forwarding狀態(tài),才允許包進入。然后進行原MAC地址檢查,以原MAC+VID的哈希為索引查找L2TABLE,如果沒有找到,就把這個表項(原MAC+VID)以及對應的端口寫到L2TABLE中,這個過程稱為MAC地址學習。當然地址學習的方法有很多種,可以是硬件學習,也可以是軟件學習,可以根據PORT表中的CMI字段的配置來進行。圖3L2轉發(fā)流程下一步進行目的MAC地址檢查:目的MAC地址為廣播地址(0*ffffffff)的包,在vlan廣播出去;目的MAC地址為組播地址的包,進行組播流程的處理;對于單播包,查找L2TABLE,如果沒有找到,就在vlan進行洪泛;如果找到,檢查表項中的L3bit是否設置,如果設置了L3bit,就進行L3流程的轉發(fā);否則就轉發(fā)到L2TABLE表項中的端口去,在egress方向,也有egress過濾設置(默認是使能的),如果egress端口不在vlan中也是不能轉發(fā)的。至此,L2轉發(fā)流程完成了。與地址學習相反的過程是地址老化。地址老化的機制是:ASIC部有個定時器,稱為agetimer,命令行可以對這個寄存器進行設置,每次查找L2TABLE時(包括原地址查找和目的地址查找,可以配置),如果命中,就會設置hit標志。當老化時間到后,ASIC把hit標志清除,當下一個老化時間到后,ASIC把hit為0的地址設置為無效,這就是為什么實際地址老化的時間為1~2倍agingTime的原因。2.2L2轉發(fā)相關的表項2.2.1port表圖4port表Port表是一個非常重要的表,有很多與端口相關的控制都在這里設置。每個端口對應一個表項,按端口號進行索引。下面介紹一下重要的設置:1)PVID:設置PORT_VID2)缺省優(yōu)先級:設置PORT_PRI3)流分類使能:設置FILTER_ENABLE4)VLAN轉換使能:設置VT_ENABLE和VT_MISS_DROP5)Ingress過濾使能:設置EN_IFILTER6)信任COS還是信任DSCP:對于IPV4:TRUST_DSCP_V4=0:信任COS;TRUST_DSCP_V4=1:信任DSCP,對于IPV6:同樣設置TRUST_DSCP_V6。7)Ingress方向mirror使能:設置MIRROR8)MAC地址學習方式:設置CML9)IP組播是否使用VLAN信息:設置IPMC_DO_VLAN10)L3轉發(fā)使能:設置V4L3_ENABLE和V6L3_ENABLE11)是否丟棄BPDU:設置DROP_BPDU12)控制是否轉發(fā)帶tag和不帶tag的包:設置PORT_DIS_TAG和PORT_DIS_UNTAG13)Pause幀控制:設置PASS_CONTROL_FRAMES14)基于子網的VLAN使能:設置SUBNET_BASED_VID_ENABLE15)基于MAC的VLAN使能:設置MAC_BASED_VID_ENABLE16)設置堆疊口:HIGIG_PACKET17)設置NNI口:NNI_PORT18)修改優(yōu)先級使能:MAP_TAG_PACKET_PRIORITY19)堆疊口modid設置:MY_MODID20)Outtpid設置:OUTER_TPID21)基于MAC和基于子網的VLAN優(yōu)先級設置:VLAN_PRECEDENCE22)是否允許單臂橋功能:PORT_BRIDGE23)IP組播位圖設置:IGNORE_IPMC_L2_BITMAP和IGNORE_IPMC_L3_BITMAPegressport表圖5egressport表EGR_PORT是一組寄存器,每個端口一個,用于EGRESS方向的控制,有幾個重要設置介紹如下:1)設置egress端口類型:PORT_TYPE=0,UNI端口;PORT_TYPE=1,NNI端口2)設置egress過濾:EN_EFILTER=12.2.3L圖6L2地址表

56504的L2地址表大小為16K,5630*的L2地址表大小為8K,地址表使用MAC+VID的hash值作為索引查表。實際上56504的L2地址表hash值為4K,每個hash值對應4條地址,這樣最多可以保存4條hash沖突的地址。地址表中每個表項都保存了MAC_ADDR和VLAN_ID。MAC學習的時候使用原MAC+VID的hash查表,把表中的MAC+VID與包中的MAC+VID進行比較,如果完全相等,表示找到了。然后看端口(TGID_PORT)是否相等,如果不相等表示地址發(fā)生了遷移,對于動態(tài)學習的地址需要更新port;如果相等表示命中,更新hit標志。其他幾個重要的功能介紹如下:1)設置靜態(tài)地址:STATIC_BIT=12)設置L3轉發(fā)標志:L3=13)設置本地址的包都轉發(fā)到CPU去:CPU=14)設置本地址匹配的包丟棄:SRC_DISCARD=1、DST_DISCARD=15)設置本地址匹配的包對*些端口阻塞:MAC_BLOCK_INDE*6)設置本地址匹配的包鏡像:MIRROR=17)設置組播索引:L2MC_PTR8)地址有效標志:VALID=1VLAN表Vlan表分為ingress和egress兩個部分,分別對應入口控制和出口控制。圖7ingressvlan表

IngressVlan表中主要包含了端口列表,用于ingressfilter功能。PFM是用于控制組播洪泛的開關。PFM=0,組播在vlan洪泛;PFM=1,注冊的組播按組播表轉發(fā),未注冊的組播在vlan洪泛;PFM=2,注冊的組播按組播表轉發(fā),未注冊的組播丟棄。STG用于標識本vlan所屬的生成樹組。圖8egressvlan表Egressvlan表中除了PFM和STG外,還包含了出口方向的端口位圖,以及哪些端口以untag的方式發(fā)送本vlan的包。3、L3轉發(fā)流程圖9L3轉發(fā)流程如果查目的MAC地址表的時候發(fā)現L3bit置位了,就進入到L3轉發(fā)流程。與L2交L3交換可以實現跨VLAN轉發(fā),而且它的轉發(fā)依據不是根據目的MAC地址,而是根據目的IP。L3轉發(fā)的流程是:首先對L3頭部進行校驗,校驗和錯的包直接丟棄;然后進行原IP地址查找,如果主機路由表中沒有找到,會上報給CPU,CPU會進行相應的處理,并更新接口表;下一步進行目的IP地址查找,如果主機路由表中沒有找到,就會在子網路由表中進行查找,在子網路由表中進行最長子網匹配的查找算法,如果在子網路由表中還沒有找到,也送給CPU進行處理,如果在主機路由表或子網路由表中找到了,就會得到下一跳的指針。如果ECMP使能的話,會得到ECMP的指針和ECMP的個數,從而根據hash算法得到一個下一跳指針。下一條表項中包含了下一跳的MAC地址和接口表的索引。在包轉發(fā)出去的時候,用下一跳的MAC地址替換掉包的目的MAC地址。用接口表中的MAC地址和VLAN替換掉包的原MAC地址和VLAN。與L3有關的幾個重要的表:圖10L3單播主機路由表圖11L3子網路由表圖12ECMP表圖13EGRESS下一跳表圖14接口表圖15INGRESS下一跳表4、

L2組播轉發(fā)流程在L2轉發(fā)流程中,查找目的MAC+VID的時候,如果表項的目的MAC是一個組播地址,該表項有一個組播指針指向組播表,組播表中有一個端口位圖,表示哪些端口屬于該組播組。組播組中的端口位圖與VLAN中的端口位圖相與的結果是實際轉發(fā)的端口位圖。靜態(tài)配置的或協(xié)議動態(tài)添加的組播地址通過SSP寫到MAC地址表中,組播成員通過SSP寫到組播表中。L2組播表的結構如下:圖16L2組播表5、

L3組播轉發(fā)流程

L3組播支持有源樹和共享樹。所謂有源樹是指根據源IP地址和組地址來確定一個組播組,而共享樹是指僅根據組地址來確定一個組播組。芯片也支持反向路徑檢查(ReversePathForwardingcheck),所謂反向路徑檢查是指通過檢查源IP地址確定源端口,從而不要向源端口轉發(fā)的技術。

L3組播的轉發(fā)流程是,先查L2表,對于組播地址而且是L3bit置位的,查L3表。L3表給出IPMC_INDE*。根據這個索引查L3_IPMC表,L3_IPMC表給出L2_BITMAP和L3_BITMAP。對于L2_BITMAP,按照L2組播流程轉發(fā);對于L3_BITMAP,根據IPMC_INDE*和BITMAP得到IPMC_GROUP的VLAN_INDE*,最后根據VLAN_INDE*查找IPMC_VLAN表,IPMC_VLAN表包含了VLAN的位圖,芯片在進行L3組播的時候,對VLAN的位圖中的每個成員進行組播復制。圖17L3組播表圖18L3組播復制L3單播和組播的轉發(fā)流程綜合起來,如下圖所示:圖19L3單播和組播的轉發(fā)流程IPMC轉發(fā)相關的表的結構如下:圖20L3TABLEL3TABLE表項大小8K(5650*)/2K(5630*)。圖21IPMCTABLEIPMCTABLE表項大小1K。圖22IPMC_GROUPTABLEIPMC_GROUPTABLE表項大小1K。圖23IPMC_VLANTABLEIPMC_VLANTABLE表項大小2K。6、流分類處理流程在5650*/5630*中,流分類是通過CFP實現的,CFP是ContentAwareFilterProcessor的縮寫。所謂ContentAware就是對packet的容進行智能匹配的技術。5650*/5630*中的流分類分為5個階段,流程如圖:圖24CFP流程這5個部分分別是智能協(xié)議識別選擇器、CAM查找引擎、策略引擎、meter和統(tǒng)計引擎、動作裁決引擎。在ingress端口,智能協(xié)議識別選擇器對進來的包的前128bit按照協(xié)議字段進行選擇和標記,CAM查找引擎按照用戶給的key匹配協(xié)議選擇器的容,如果找到了,就執(zhí)行策略引擎的動作,并可以實驗meter和統(tǒng)計引擎進行限速、標記顏色和統(tǒng)計。5650*有16個CAM查找引擎,5630*有8個CAM查找引擎,它們可以

溫馨提示

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

評論

0/150

提交評論