以太網(wǎng)交換芯片本文以 broadcom56504/56300 交換芯片為重點(diǎn),介紹一下交換芯片的工作原理。1、 交換芯片架構(gòu)交換芯片由 GE/XE 接口(MAC/PHY)模塊、CPU 接口模塊、輸入輸出匹配/修改模塊、 MMU 模塊、L2 轉(zhuǎn)發(fā)模塊、L3 轉(zhuǎn)發(fā)模塊、安全模塊、流分類模塊等模塊組成,其結(jié)構(gòu)如圖 1 所示:圖 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+MII 等。交換芯片的包處理流程,如圖 2 所示:圖 2 交換芯片的包處理流程簡(jiǎn)圖 包由端口進(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ō), 轉(zhuǎn)發(fā)是一個(gè)最基本的功能。 功能主要包括 ingress 過(guò)濾、 L2 L2 MAC 學(xué)習(xí)和老化、根據(jù) MAC+VLAN 轉(zhuǎn)發(fā)、廣播與洪泛、生成樹(shù)控制等基本功能。 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 為 1-4094,4095 保 留) ,如果設(shè)置了 ingress 過(guò)濾,就會(huì)檢查本端口是否在該 vid 對(duì)應(yīng)的 VLAN 中,對(duì)于本端口 不在該 vid 對(duì)應(yīng)的 VLAN 中的包就丟棄。對(duì)于沒(méi)有設(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 地址檢查,以原 MAC+VID 的哈希為索引查找 L2 TABLE,如果沒(méi)有找到,就把這個(gè)表項(xiàng)(原 MAC+VID)以及對(duì)應(yīng)的 端口寫(xiě)到 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 地址為廣播地址(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 TABLE 時(shí)(包括原地址查找和 目的地址查找,可以配置) ,如果命中,就會(huì)設(shè)置 hit 標(biāo)志。
上一篇:以太網(wǎng)交換機(jī)芯片 IT外包解決方案-新以太網(wǎng)交換機(jī)芯片服務(wù)器在數(shù)據(jù)中心的應(yīng)用
下一篇:led恒流芯片 幾種恒流電路的分析與應(yīng)用(上)