專利名稱:一種處理二層廣播的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及以太網(wǎng)三層交換機(jī)設(shè)備交換技術(shù),具體涉及一種基于網(wǎng)絡(luò)處
理器和Broadcom芯片的處理二層廣^番的方法。
背景技術(shù):
在由網(wǎng)絡(luò)處理器和Broadcom專用芯片組成的以太網(wǎng)交換機(jī)中,由網(wǎng)絡(luò) 處理器和Broadcom專用芯片共同完成數(shù)據(jù)包的轉(zhuǎn)發(fā)處理,該交換機(jī)中包含 多個線卡,每個線卡又包含多個Broadcom芯片和網(wǎng)絡(luò)處理器,為了在交換 機(jī)中區(qū)分各個Broadcom芯片,會為每個芯片分配一個模塊號;同樣為區(qū)分 各個網(wǎng)絡(luò)處理器,也會為每個網(wǎng)絡(luò)處理器分配一個模塊號,而且網(wǎng)絡(luò)處理器 與Broadcom芯片是分開編號的。數(shù)據(jù)包通過交換機(jī)某個線卡上的端口到達(dá) Broadcom芯片,再由Broadcom芯片的FFP (Fast Filter Processor:快速過濾 處理器)重定向到網(wǎng)絡(luò)處理器。如圖1所示為一交換^/L的結(jié)構(gòu)示意圖,如果 接收到的是二層廣播包,網(wǎng)絡(luò)處理器根據(jù)廣播成員(每個廣播成員是一個端 口 )的個數(shù)利用其內(nèi)部的Multicast Copier復(fù)制多個原數(shù)據(jù)包的拷貝。如果 廣播成員屬于其他Broadcom芯片,則網(wǎng)絡(luò)處理器將一個復(fù)制出的數(shù)據(jù)包的 HiGig(內(nèi)聯(lián)端口)中的op設(shè)為2, HiGig是Broadcom公司的一種自定義協(xié) 議,Broadcom芯片和網(wǎng)絡(luò)處理器之間傳遞的數(shù)據(jù)包的頭部會帶有一個HiGig 標(biāo)識,這個標(biāo)識的長度為12個字節(jié),包含用于實(shí)現(xiàn)HiGig協(xié)議的一些控制 信息字段,其中的"op"字段用于表示Broadcom芯片需要進(jìn)行的操作,將 op設(shè)為2表示做廣播處理;其中的"src—mod"字段表示數(shù)據(jù)包來自哪個 Broadcom芯片。如果廣4番成員端口和入端口屬于同一個Broadcom芯片,這 時候的處理方法是對每個成員端口復(fù)制一份數(shù)據(jù)包,并改變復(fù)制的數(shù)據(jù)包中 的源模塊號,進(jìn)行多個單播。當(dāng)需要復(fù)制的份數(shù)很多的時,每個復(fù)制出的包 都要經(jīng)過網(wǎng)絡(luò)處理器查表處理并發(fā)往Broadcom芯片,影響系統(tǒng)性能。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題是提供一種處理二層廣播的方法,以解決現(xiàn)有
技術(shù)中由網(wǎng)絡(luò)處理器和Broadcom芯片組成的以太網(wǎng)交換機(jī)在處理二層廣播 時影響系統(tǒng)性能的缺陷。
為了解決上述問題,本發(fā)明提供了一種處理二層廣播的方法,當(dāng)網(wǎng)絡(luò)處 理器收到Broadcom芯片發(fā)來的二層廣播包后,如果廣播成員屬于所述發(fā)來 二層廣播包的Broadcom芯片,所述網(wǎng)絡(luò)處理器復(fù)制一份所述二層廣播包發(fā) 回所述Broadcom芯片,并告知所述Broadcom芯片估丈廣^番處理。
進(jìn)一步地,所述復(fù)制的二層廣播包保留原二層廣播包中的源模塊號。
進(jìn)一步地,所述網(wǎng)絡(luò)處理器告知所述Broadcom芯片做廣播處理是指 網(wǎng)絡(luò)處理器將所述復(fù)制的二層廣播包中的內(nèi)聯(lián)端口中的搡作字段設(shè)為廣播 處理。
進(jìn)一步地,所述Broadcom芯片收到所述復(fù)制的二層廣播包后,對所述 Broadcom芯片的源端口實(shí)行隔離,對其余端口廣播所述復(fù)制的二層廣4番包;
所述源端口指收到所述二層廣l番包的端口 ,所述Broadcom芯片為源才莫塊。
進(jìn)一步地,對所述Broadcom芯片的源端口實(shí)行隔離的方法為,所述 Broadcom芯片在開啟快速過濾處理器時為所有Broadcom芯片的每個端口配 置隔離位圖,當(dāng)所述Broadcom芯片收到網(wǎng)絡(luò)處理器發(fā)回的所述復(fù)制的二層 廣播包后,根據(jù)其中的源模塊號及源端口號查詢所述源端口的隔離位圖,找 出其中被隔離的端口 ,所述Broadcom芯片在向端口發(fā)出所述復(fù)制的二層廣 播包時,只向所述Broadcom芯片的除所述被隔離端口之外的端口發(fā)送。
進(jìn)一步地,所述為所有Broadcom芯片的每個端口配置的隔離位圖由n 比特構(gòu)成,若各Broadcom芯片的端口數(shù)為m, m〉=n,為源沖莫塊的各端口配 置的隔離位圖為當(dāng)i取值為O到n-l時,將第i個端口的隔離位圖中第i 位的比特值設(shè)為1,其余位的比特值設(shè)為0;當(dāng)i取值為n到m-l時,將第i 個端口的隔離位圖中每一位的比特值均設(shè)為0;
為所述源模塊之外的模塊的各端口配置的隔離位圖中每一位的比特值
均設(shè)為0;
當(dāng)所述Broadcom芯片收到網(wǎng)絡(luò)處理器發(fā)回的所述復(fù)制的二層廣播包 后,根據(jù)其中的源模塊號及源端口號查詢所述源端口的隔離位圖,設(shè)源端口 號為t,因源端口的隔離位圖中第t位的比特值為1,所述Broadcom芯片在 向端口發(fā)出所述復(fù)制的二層廣播包時,只向除第t端口之外的端口發(fā)送。
綜上所述,本發(fā)明提供了一種處理二層廣播的方法,采用本發(fā)明,當(dāng)二 層數(shù)據(jù)包的廣播成員與源端口屬于同一 Broadcom芯片時,可減少網(wǎng)絡(luò)處理 器需要復(fù)制的數(shù)據(jù)包的數(shù)量,從而提高了系統(tǒng)的性能。
圖l是交換機(jī)的結(jié)構(gòu)示意圖2是本發(fā)明具體實(shí)施方式
操作流程圖3是本發(fā)明具體實(shí)施方式
為交換機(jī)中所有端口配置的隔離位圖; 圖4是本發(fā)明應(yīng)用實(shí)例中為一端口配置的隔離位圖。
具體實(shí)施例方式
本發(fā)明提出 一種新的處理二層廣播包的方法,即網(wǎng)絡(luò)處理器在收到 Broadcom芯片發(fā)來的二層廣播包后,若廣播成員屬于發(fā)來數(shù)據(jù)包的 Broadcom芯片,即廣4番成員和源端口屬于同 一個Broadcom芯片,網(wǎng)絡(luò)處理 器只復(fù)制一份該數(shù)據(jù)包,然后將復(fù)制的數(shù)據(jù)包發(fā)回給該Broadcom芯片,并 告知該Broadcom芯片^f故廣寺番處理。
本實(shí)施例提供了一種處理二層廣播包的方法,如圖2所示,具體處理流 程如下
步驟201:網(wǎng)絡(luò)處理器收到Broadcom芯片發(fā)來的數(shù)據(jù)包,判斷出為二 層廣播包,如果廣播成員屬于發(fā)來數(shù)據(jù)包的Broadcom芯片則執(zhí)行步驟202;
步驟202:網(wǎng)絡(luò)處理器復(fù)制一份收到的數(shù)據(jù)包,并將其發(fā)回給所述發(fā)來 數(shù)據(jù)包的Broadcom芯片,保留復(fù)制的數(shù)據(jù)包中的源模塊號,同時告知該
Broadcom芯片對所述復(fù)制的數(shù)據(jù)包做廣播處理。其中告知該Broadcom芯片 對所述復(fù)制的數(shù)據(jù)包做廣播處理的方法可以但不限于是將復(fù)制的數(shù)據(jù)包中 的HiGig中的op設(shè)為2,即設(shè)為做廣4番處理。
步驟203: Broadcom芯片收到網(wǎng)絡(luò)處理器發(fā)來的復(fù)制的數(shù)據(jù)包,因其中 的HiGig中的op為2,則對各端口做廣播處理,但為了防止該二層廣播包 同端口進(jìn)同端口出,如圖1所示,同端口進(jìn)同端口出是指Broadcom芯片 的 一端口 (該收到數(shù)據(jù)包的端口稱為源端口 )收到 一數(shù)據(jù)包之后發(fā)送到網(wǎng)絡(luò) 處理器,經(jīng)網(wǎng)絡(luò)處理器處理后發(fā)回到該Broadcom芯片,該數(shù)據(jù)包又從該源 端口發(fā)出去,控制層面需要在開啟FFP的同時為所有Broadcom芯片的每個 端口配置隔離位圖,設(shè)各Broadcom芯片的端口數(shù)為m,每個端口的隔離位 圖由n個比特(bit)構(gòu)成,m>=n,端口號為n到m-1的端口為無效端口 ,或 稱為不可用端口,即實(shí)際可用端口為端口號為O到n-l的端口,隔離位圖可 以但不限于從右邊開始編號,且從O開始編號。
如圖3所示,是為所有Broadcom芯片即所有模塊的各端口配置隔離位 圖的示意圖,端口號也可以但不限于是從O開始編號,為所有模塊的各端口 配置隔離位圖分為為源模塊的各端口配置隔離位圖以及為其余模塊的各端 口配置隔離位圖。為源模塊號為j的各端口配置的隔離位圖為當(dāng)i取值為 0到n-l時,將第i個端口的隔離位圖中第i位的比特值設(shè)為1,其余位的比 特值設(shè)為0;當(dāng)i取值為n到m-l時,將第i個端口的隔離位圖中每一位的 比特值均設(shè)為0。而為源模塊之外的模塊的各端口配置的隔離位圖中每一位 的比特值均為0,也就是說,如果是為源模塊號為j的端口配置隔離位圖時, 只需要配置隔離位圖中模塊號為j的那部分端口 ,其余模塊的各端口的隔離 位圖的每一位直接設(shè)為0。
該隔離位圖實(shí)際表示各個端口與所在模塊其余端口間的關(guān)系圖,以第j 模塊、第i端口為例第0位為0表示端口 i與端口 0之間沒有隔離,即從 端口 i接收的數(shù)據(jù)包可以從端口 0發(fā)出去,而從右邊起第i位為l表示端口 i與端口 i之間是隔離的,即從端口 i接收的數(shù)據(jù)包不能從端口 i發(fā)出去。
為各端口配置了隔離位圖后將該隔離位圖存儲在egress—mask寄存器, 當(dāng)Broadcom芯片收到網(wǎng)絡(luò)處理器發(fā)來的復(fù)制的二層廣播包后根據(jù)數(shù)據(jù)包中 的源模塊號及源端口號查詢該源端口的隔離位圖,Broadcom芯片在向端口 發(fā)出復(fù)制的二層廣播包時,只向所述Broadcom芯片的除被隔離端口之外的 端口發(fā)送。如查到源端口號為t的端口對應(yīng)的隔離位圖中第t位的值為1, 則Broadcom芯片向端口發(fā)送復(fù)制的二層廣播包時,對第t端口不發(fā)送,而 只對其余端口發(fā)送。
當(dāng)為egress_mask寄存器配置了隔離后,有可能對三層數(shù)據(jù)包也實(shí)行隔 離,但三層數(shù)據(jù)包是允許同端口進(jìn)同端口出的,因此,為了避免對三層數(shù)據(jù) 包實(shí)行隔離,網(wǎng)絡(luò)處理器在收到Broadcom芯片發(fā)來的三層數(shù)據(jù)包后,若需 要將此數(shù)據(jù)包發(fā)回Broadcom芯片,則修改數(shù)據(jù)包中HiGig中的源模塊號, 這樣,就不會存在Broadcom芯片將源端口隔離的情況。
下面用 一應(yīng)用實(shí)例進(jìn)一 步說明本發(fā)明
本應(yīng)用實(shí)例主要說明如何配置隔離位圖,本方法的其他步驟同上所述, 因此這里不再贅述。
一個交換機(jī)中一般最多30個模塊,每個模塊最多包含29個端口 ,而且 每個端口的隔離位圖包含29個比特。
假設(shè)和網(wǎng)絡(luò)處理器相連的Broadcom芯片的模塊號是1,該Broadcom芯 片收到一二層數(shù)據(jù)包,在為該芯片配置的隔離位圖的時候,只需要配置模塊 號為1的那些條目,而那些不用的條目都配置為0。如果從這個Broadcom 芯片的端口 3接收到一個廣播包,因此為模塊號為l、端口號為3的端口配 置的隔離位圖如圖4所示。該Broadcom芯片將這個廣播包發(fā)往網(wǎng)絡(luò)處理器 時,這個數(shù)據(jù)包的HiGig中的源模塊號為1,源端口號為3,目的模塊號為 網(wǎng)絡(luò)處理器的模塊號(網(wǎng)絡(luò)處理器與Broadcom芯片是分開編號的),假設(shè)是 10,目的端口號假設(shè)為29,這里的端口號29不會和其他Broadcom芯片的 端口號重疊,所以網(wǎng)絡(luò)處理器能夠識別出這個數(shù)據(jù)包是發(fā)給網(wǎng)絡(luò)處理器的, 而不是其他的Broadcom芯片,當(dāng)目的端口號為29時,目的模塊號用來標(biāo)識 是發(fā)往哪個網(wǎng)絡(luò)處理器。
網(wǎng)絡(luò)處理器在接收到這個數(shù)據(jù)包,發(fā)往其他的Broadcom芯片時,會將
HiGig中的目的模塊號改為對應(yīng)Broadcom芯片的模塊號。所以模塊號為1 的Broadcom芯片接收到的數(shù)據(jù)包中的源模塊號為1,源端口號為3,目的模 塊號也為l,目的端口號為29,在做廣播時目的端口號是不用的,所以網(wǎng)絡(luò) 處理器也不需要修改。Broadcom芯片在將這個數(shù)據(jù)包發(fā)往本芯片的各個端 口之前,會用源模塊號,源端口號來查上面的隔離位圖,這里就是查模塊l, 端口3對應(yīng)的條目,查找到隔離位圖中第3位為1,即端口3被隔離。
對于3層數(shù)據(jù)包,網(wǎng)絡(luò)處理器發(fā)往Broadcom芯片時,將源模塊號改成 一個不使用的模塊號,比如31,則查到的條目中所有比特都為0,就不會隔 離了。
權(quán)利要求
1、一種處理二層廣播的方法,當(dāng)網(wǎng)絡(luò)處理器收到Broadcom芯片發(fā)來的二層廣播包后,如果廣播成員屬于所述發(fā)來二層廣播包的Broadcom芯片,所述網(wǎng)絡(luò)處理器復(fù)制一份所述二層廣播包發(fā)回所述Broadcom芯片,并告知所述Broadcom芯片做廣播處理。
2、 如權(quán)利要求l所述的方法,其特征在于 所述復(fù)制的二層廣播包保留原二層廣播包中的源模塊號。
3、 如權(quán)利要求1所述的方法,其特征在于所述網(wǎng)絡(luò)處理器告知所述Broadcom芯片做廣播處理是指網(wǎng)絡(luò)處理器 將所述復(fù)制的二層廣播包中的內(nèi)聯(lián)端口中的操作字段設(shè)為廣播處理。
4、 如權(quán)利要求3所述的方法,其特征在于所述Broadcom芯片收到所述復(fù)制的二層廣播包后,對所述Broadcom 芯片的源端口實(shí)行隔離,對其余端口廣播所述復(fù)制的二層廣播包;所述源端口指收到所述二層廣播包的端口,所述Broadcom芯片為源模塊。
5、 如權(quán)利要求2或4所述的方法,其特征在于對所述Broadcom芯片的源端口實(shí)行隔離的方法為,所述Broadcom芯 片在開啟快速過濾處理器時為所有Broadcom芯片的每個端口配置隔離位 圖,當(dāng)所述Broadcom芯片收到網(wǎng)絡(luò)處理器發(fā)回的所述復(fù)制的二層廣播包后, 根據(jù)其中的源模塊號及源端口號查詢所述源端口的隔離位圖,找出其中被隔 離的端口,所迷Broadcom芯片在向端口發(fā)出所述復(fù)制的二層廣播包時,只 向所述Broadcom芯片的除所述被隔離端口之外的端口發(fā)送。
6、 如權(quán)利要求5所述的方法,其特征在于所述為所有Broadcom芯片的每個端口配置的隔離位圖由n比特構(gòu)成, 若各Broadcom芯片的端口數(shù)為m, m>=n,為源模塊的各端口配置的隔離位 圖為當(dāng)i取值為O到n-1時,將第i個端口的隔離位圖中第i位的比特值設(shè) 為1 ,其余位的比特值設(shè)為0;當(dāng)i取值為n到m-l時,將第i個端口的隔離 位圖中每一位的比特值均設(shè)為0;為所述源模塊之外的模塊的各端口配置的隔離位圖中每一位的比特值 均設(shè)為0;當(dāng)所述Broadcom芯片收到網(wǎng)絡(luò)處理器發(fā)回的所述復(fù)制的二層廣播包 后,根據(jù)其中的源模塊號及源端口號查詢所述源端口的隔離位圖,設(shè)源端口號為t,因源端口的隔離位圖中第t位的比特值為1,所述Broadcom芯片在 向端口發(fā)出所述復(fù)制的二層廣播包時,只向除第t端口之外的端口發(fā)送。
全文摘要
本發(fā)明提供了一種處理二層廣播的方法,當(dāng)網(wǎng)絡(luò)處理器收到Broadcom芯片發(fā)來的二層廣播包后,如果廣播成員屬于所述發(fā)來二層廣播包的Broadcom芯片,所述網(wǎng)絡(luò)處理器復(fù)制一份所述二層廣播包發(fā)回所述Broadcom芯片,并告知所述Broadcom芯片做廣播處理。采用本發(fā)明的技術(shù)方案,當(dāng)二層數(shù)據(jù)包的廣播成員與源端口屬于同一Broadcom芯片時,可減少網(wǎng)絡(luò)處理器需要復(fù)制的數(shù)據(jù)包的數(shù)量,從而提高了系統(tǒng)的性能。
文檔編號H04L12/56GK101170508SQ20071018717
公開日2008年4月30日 申請日期2007年11月21日 優(yōu)先權(quán)日2007年11月21日
發(fā)明者鵬 周 申請人:中興通訊股份有限公司