本發(fā)明的實(shí)施例涉及通信領(lǐng)域,尤其涉及一種報(bào)文上送方法及交換芯片。
背景技術(shù):
在交換機(jī)體系結(jié)構(gòu)中,通常都是由交換芯片和CPU(Central Processing Unit,中央處理器)組成,交換芯片負(fù)責(zé)數(shù)據(jù)報(bào)文轉(zhuǎn)發(fā),CPU負(fù)責(zé)管理和控制,交換芯片不能處理的報(bào)文都需要上交CPU處理,比如L2(層2,數(shù)據(jù)鏈路層)管理報(bào)文如BPDU(bridge protocol data unit,網(wǎng)橋協(xié)議數(shù)據(jù)單元)、GVRP(Generic Attribute Registration Protocol,通用屬性注冊(cè)協(xié)議)、ARP(Address Resolution Protocol,地址解析協(xié)議);L3(層3,網(wǎng)絡(luò)層)管理報(bào)文如RIP(Routing Information Protocol,路由信息協(xié)議)、PIM(Protocol Independent Multicast,協(xié)議無關(guān)組播)、OSPF(Open Shortest Path First,開放式最短路徑優(yōu)先)、VRRP(Virtual Router Redundancy Protocol,虛擬路由冗余協(xié)議)、IGMP(Internet Group Management Protocol,組管理協(xié)議)、ICMP(Internet Control Message Protocol,網(wǎng)絡(luò)控制報(bào)文協(xié)議);數(shù)據(jù)報(bào)文如未知單播IP(Internet Protocol,網(wǎng)絡(luò)協(xié)議)報(bào)文、未知組播報(bào)文、RPF(Reverse Path Forward,反向路徑轉(zhuǎn)發(fā))失敗報(bào)文、各種錯(cuò)誤報(bào)文。交換芯片需要對(duì)發(fā)往CPU的數(shù)據(jù)流通過隊(duì)列方式進(jìn)行分類和優(yōu)先級(jí)分級(jí)處理,以及對(duì)CPU的帶寬進(jìn)行限速,以確保在任何情況下CPU都不會(huì)出現(xiàn)負(fù)載過高的情況,從而為用戶提供一個(gè)穩(wěn)定的網(wǎng)絡(luò)環(huán)境。
交換芯片識(shí)別協(xié)議報(bào)文上送CPU的方法有很多,如BroadShield(寬盾),PDU(Protocol Data Unit,協(xié)議數(shù)據(jù)單元),L2轉(zhuǎn)發(fā)表,ACL(Access Control List,訪問控制列表)上送,其中ACL方式上送,是使用最多也是最靈活方便的方式。在實(shí)際項(xiàng)目中經(jīng)常使用,對(duì)協(xié)議報(bào)文的上送行為有copy(復(fù)制)行為和TRAP(陷阱)行為。copy行為是匹配的報(bào)文上送CPU一份然后再轉(zhuǎn)發(fā)一份,TRAP行為是報(bào)文只上送CPU,不進(jìn)行轉(zhuǎn)發(fā)。在ACL上送方式中,他們分別對(duì)應(yīng)ACL的copy to CPU(復(fù)制到CPU)和redirect(重定向)行為。在某些交換芯片中,對(duì)于ACL處的copy to CPU的行為,上送的報(bào)文只能在一個(gè)隊(duì)列中,不能區(qū)分上送CPU的隊(duì)列,而redirect行為可以指定匹配的協(xié)議報(bào)文要上送的CPU隊(duì)列。這樣對(duì)于copy to CPU的協(xié)議報(bào)文,比如DHCP,ARP,OSPF,RIP等以copy行為方式上送CPU的協(xié)議報(bào)文都不能區(qū)分優(yōu)先級(jí)隊(duì)列,不能保證協(xié)議報(bào)文的優(yōu)先級(jí)調(diào)度。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的實(shí)施例提供一種報(bào)文上送方法及交換芯片,能夠配置通過copy方式上送CPU的協(xié)議報(bào)文隊(duì)列,保證協(xié)議報(bào)文的優(yōu)先級(jí)調(diào)度。
第一方面提供一種報(bào)文上送方法,包括
交換芯片通過第一端口接收協(xié)議報(bào)文,在所述第一端口按照第一ACL規(guī)則將所述協(xié)議報(bào)文復(fù)制到目的端口,所述目的端口為所述交換芯片的內(nèi)部環(huán)回端口;
所述交換芯片在所述內(nèi)部環(huán)回端口按照第二ACL規(guī)則將所述協(xié)議報(bào)文重定向到CPU端口的指定CPU隊(duì)列。
第二方面,提供一種交換芯片,包括:第一端口、內(nèi)部環(huán)回端口和CPU端口;
所述第一端口用于接收協(xié)議報(bào)文,按照第一ACL規(guī)則將所述協(xié)議報(bào)文復(fù)制到目的端口,所述目的端口為所述交換芯片的內(nèi)部環(huán)回端口;
所述內(nèi)部環(huán)回端口用于按照第二ACL規(guī)則將所述第一端口復(fù)制的協(xié)議報(bào)文重定向到所述CPU端口的指定CPU隊(duì)列。
上述方案中,交換芯片通過第一端口接收協(xié)議報(bào)文,在第一端口按照第一ACL規(guī)則將協(xié)議報(bào)文復(fù)制到目的端口,目的端口為交換芯片的內(nèi)部環(huán)回端口;即首先按照第一ACL規(guī)則將協(xié)議報(bào)文采用copy方式復(fù)制到內(nèi)部環(huán)回端口,然后交換芯片在內(nèi)部環(huán)回端口按照第二ACL規(guī)則將協(xié)議報(bào)文重定向到CPU端口的指定CPU隊(duì)列,即通過redirect方式將內(nèi)部環(huán)回端口收到協(xié)議報(bào)文重定向至CPU端口的指定CPU隊(duì)列,由于redirect行為方式可以修改協(xié)議報(bào)文上送CPU的隊(duì)列,因此在上述過程中重配置了通過copy行為方式上送CPU的協(xié)議報(bào)文的隊(duì)列,保證了協(xié)議報(bào)文的優(yōu)先級(jí)調(diào)度。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實(shí)施例提供的通信設(shè)備的結(jié)構(gòu)圖;
圖2為本發(fā)明實(shí)施例提供的一種通信方法的流程圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
本發(fā)明實(shí)施例描述的系統(tǒng)架構(gòu)以及業(yè)務(wù)場(chǎng)景是為了更加清楚的說明本發(fā)明實(shí)施例的技術(shù)方案,并不構(gòu)成對(duì)于本發(fā)明實(shí)施例提供的技術(shù)方案的限定,本領(lǐng)域普通技術(shù)人員可知,隨著系統(tǒng)架構(gòu)的演變和新業(yè)務(wù)場(chǎng)景的出現(xiàn),本發(fā)明實(shí)施例提供的技術(shù)方案對(duì)于類似的技術(shù)問題,同樣適用。
本發(fā)明的實(shí)施例使用的技術(shù)術(shù)語包括如下:
ACL:訪問控制列表,使用交換芯片的TCAM(ternary content addressable memory,一種三態(tài)內(nèi)容尋址存儲(chǔ)器,)查找器件實(shí)現(xiàn)的報(bào)文識(shí)別功能,是一個(gè)通用的功能,不同廠商每款交換芯片功能通常都是一樣的。
內(nèi)部環(huán)回:是從交換芯片的端口發(fā)出的協(xié)議報(bào)文又被環(huán)回到交換芯片端口內(nèi)部的一種報(bào)文發(fā)送機(jī)制。
本發(fā)明的基本原理為:利用redirect行為方式可以指定匹配的報(bào)文要上送的CPU隊(duì)列的特性,首先修改copy行為方式的上送目的端口為內(nèi)部環(huán)回端口,將第一端口接收到的報(bào)文通過第一ACL規(guī)則將協(xié)議報(bào)文復(fù)制到內(nèi)部環(huán)回端口,然后再內(nèi)部環(huán)回端口通過第二ACL規(guī)則以redirect行為方式將協(xié)議報(bào)文重定向到CPU端口指定的指定CPU隊(duì)列,而在copy行為方式的上送協(xié)議報(bào)文過程中不影響將協(xié)議報(bào)文轉(zhuǎn)發(fā)至其他第二端口的行為。從而重配置了通過copy行為方式上送CPU的協(xié)議報(bào)文的隊(duì)列,保證了協(xié)議報(bào)文的優(yōu)先級(jí)調(diào)度。
下面結(jié)合具體實(shí)施例對(duì)上述方法進(jìn)行詳細(xì)描述。參照?qǐng)D1所示,本發(fā)明的實(shí)施例應(yīng)用于如下交換設(shè)備架構(gòu),包括:CPU11和交換芯片12,其中交換芯片12的CPU端口121通過PCI總線13連接至CPU11,交換芯片12還包括第一端口PORT1和第二端口PORT2、以及內(nèi)部環(huán)回端口loopback1,其中CPU端口121、第一端口PORT1、第二端口PORT2、以及內(nèi)部環(huán)回端口loopback1可以為交換芯片上無區(qū)別的端口,只是在本發(fā)明的實(shí)施例中以其功能的區(qū)別對(duì)其采用了不同的命名。
基于上述的交換設(shè)備架構(gòu),本發(fā)明的實(shí)施例提供一種報(bào)文上送方法,參照?qǐng)D2所示,包括如下步驟:
101、交換芯片通過第一端口接收協(xié)議報(bào)文,在第一端口按照第一ACL規(guī)則將協(xié)議報(bào)文復(fù)制到目的端口,目的端口為交換芯片的內(nèi)部環(huán)回端口。
其中,內(nèi)部環(huán)回端口可以是交換芯片邏輯專用的內(nèi)部環(huán)回端口,也可以是物理上空閑端口設(shè)置的內(nèi)部環(huán)回端口,其中采用空閑端口作為內(nèi)部環(huán)回端口時(shí),步驟101之前還包括100、交換芯片將交換芯片的任一空閑端口配置為內(nèi)部環(huán)回端口。
此外,步驟101為通過copy行為方式將協(xié)議報(bào)文復(fù)制到內(nèi)部環(huán)回端口,同時(shí)還會(huì)對(duì)協(xié)議報(bào)文進(jìn)行轉(zhuǎn)發(fā),具體為交換芯片在第一端口將協(xié)議報(bào)文發(fā)送至第二端口,通過第二端口將所述協(xié)議報(bào)文發(fā)送至其他設(shè)備。這樣轉(zhuǎn)發(fā)的協(xié)議報(bào)文不受影響通過第二端口正常進(jìn)行轉(zhuǎn)發(fā)。
102、交換芯片在內(nèi)部環(huán)回端口按照第二ACL規(guī)則將協(xié)議報(bào)文重定向到CPU端口的指定CPU隊(duì)列。
此外可選的,上述方案還包括交換芯片接收CPU下發(fā)的第一ACL規(guī)則和第二ACL規(guī)則,這里CPU將第一ACL規(guī)則和第二ACL規(guī)則下發(fā)至交換芯片的TCAM空間,第一ACL規(guī)則的優(yōu)先級(jí)低于第二ACL規(guī)則的優(yōu)先級(jí),即第一ACL規(guī)則應(yīng)用于整個(gè)交換芯片,并不匹配任何端口,即有任何端口接收到協(xié)議報(bào)文均可匹配第一ACL規(guī)則進(jìn)行后續(xù)處理,第二ACL規(guī)則僅應(yīng)用于內(nèi)部環(huán)回端口的入方向上,即僅在內(nèi)部環(huán)回端口執(zhí)行上述步驟102。這樣經(jīng)過步驟102的處理后交換芯片可以對(duì)識(shí)別出的不同的協(xié)議報(bào)文指定不同的CPU隊(duì)列,而不必如現(xiàn)有技術(shù)中對(duì)于ACL處的copy to CPU的行為,由于目的端口為CPU端口,上送的報(bào)文只能在一個(gè)隊(duì)列中,不能區(qū)分上送CPU的隊(duì)列(如圖1中的虛線箭頭所示)。從而確保CPU端口擁塞的情況下,丟棄低優(yōu)先級(jí)的CPU隊(duì)列的協(xié)議報(bào)文,確保高優(yōu)先級(jí)CPU隊(duì)列中的協(xié)議報(bào)文得到調(diào)度。
上述方案中,交換芯片通過第一端口接收協(xié)議報(bào)文,在第一端口按照第一ACL規(guī)則將協(xié)議報(bào)文復(fù)制到目的端口,目的端口為交換芯片的內(nèi)部環(huán)回端口;即首先按照第一ACL規(guī)則將協(xié)議報(bào)文采用copy方式復(fù)制到內(nèi)部環(huán)回端口,然后交換芯片在內(nèi)部環(huán)回端口按照第二ACL規(guī)則將協(xié)議報(bào)文重定向到CPU端口的指定CPU隊(duì)列,即通過redirect方式將內(nèi)部環(huán)回端口收到協(xié)議報(bào)文重定向至CPU端口的指定CPU隊(duì)列,由于redirect行為方式可以修改協(xié)議報(bào)文上送CPU的隊(duì)列,因此在上述過程中重配置了通過copy行為方式上送CPU的協(xié)議報(bào)文的隊(duì)列,保證了協(xié)議報(bào)文的優(yōu)先級(jí)調(diào)度。
參照?qǐng)D2所示本發(fā)明的實(shí)施例提供一種交換芯片,包括:第一端口PORT1、內(nèi)部環(huán)回端口loopback1和CPU端口PORT3;
第一端口PORT1用于接收協(xié)議報(bào)文,按照第一ACL規(guī)則將所述協(xié)議報(bào)文復(fù)制到目的端口,所述目的端口為所述交換芯片的內(nèi)部環(huán)回端口
loopback1;
內(nèi)部環(huán)回端口loopback1用于按照第二ACL規(guī)則將所述第一端口復(fù)制的協(xié)議報(bào)文重定向到所述CPU端口PORT3的指定CPU隊(duì)列。
可選的,還包括配置單元CU,用于將交換芯片的任一空閑端口配置為內(nèi)部環(huán)回端口。
可選的,交換芯片還包括,第二端口PORT2,第一端口PORT1還用于將所述協(xié)議報(bào)文發(fā)送至第二端口PORT2;所述第二端口PORT2用于將所述第一端口發(fā)送的所述協(xié)議報(bào)文發(fā)送至其他設(shè)備。
此外,所述第一ACL規(guī)則的優(yōu)先級(jí)低于所述第二ACL規(guī)則的優(yōu)先級(jí)。所述CPU端口PORT3還用于接收CPU下發(fā)的第一ACL規(guī)則和第二ACL規(guī)則。
上述方案中,交換芯片通過第一端口接收協(xié)議報(bào)文,在第一端口按照第一ACL規(guī)則將協(xié)議報(bào)文復(fù)制到目的端口,目的端口為交換芯片的內(nèi)部環(huán)回端口;即首先按照第一ACL規(guī)則將協(xié)議報(bào)文采用copy方式復(fù)制到內(nèi)部環(huán)回端口,然后交換芯片在內(nèi)部環(huán)回端口按照第二ACL規(guī)則將協(xié)議報(bào)文重定向到CPU端口的指定CPU隊(duì)列,即通過redirect方式將內(nèi)部環(huán)回端口收到協(xié)議報(bào)文重定向至CPU端口的指定CPU隊(duì)列,由于redirect行為方式可以修改協(xié)議報(bào)文上送CPU的隊(duì)列,因此在上述過程中重配置了通過copy行為方式上送CPU的協(xié)議報(bào)文的隊(duì)列,保證了協(xié)議報(bào)文的優(yōu)先級(jí)調(diào)度。
此外,還提供一種計(jì)算可讀媒體(或介質(zhì)),包括在被執(zhí)行時(shí)進(jìn)行上述實(shí)施例中的方法的操作的計(jì)算機(jī)可讀指令。
另外,還提供一種計(jì)算機(jī)程序產(chǎn)品,包括上述計(jì)算機(jī)可讀媒體(或介質(zhì))。
應(yīng)理解,在本發(fā)明的各種實(shí)施例中,上述各過程的序號(hào)的大小并不意味著執(zhí)行順序的先后,各過程的執(zhí)行順序應(yīng)以其功能和內(nèi)在邏輯確定,而不應(yīng)對(duì)本發(fā)明實(shí)施例的實(shí)施過程構(gòu)成任何限定。
本領(lǐng)域普通技術(shù)人員可以意識(shí)到,結(jié)合本文中所公開的實(shí)施例描述的各示例的單元及算法步驟,能夠以電子硬件、或者計(jì)算機(jī)軟件和電子硬件的結(jié)合來實(shí)現(xiàn)。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計(jì)約束條件。專業(yè)技術(shù)人員可以對(duì)每個(gè)特定的應(yīng)用來使用不同方法來實(shí)現(xiàn)所描述的功能,但是這種實(shí)現(xiàn)不應(yīng)認(rèn)為超出本發(fā)明的范圍。
所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡(jiǎn)潔,上述描述的系統(tǒng)、裝置和單元的具體工作過程,可以參考前述方法實(shí)施例中的對(duì)應(yīng)過程,在此不再贅述。
在本申請(qǐng)所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的系統(tǒng)、設(shè)備和方法,可以通過其它的方式實(shí)現(xiàn)。例如,以上所描述的設(shè)備實(shí)施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)單元或組件可以結(jié)合或者可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,設(shè)備或單元的間接耦合或通信連接,可以是電性,機(jī)械或其它的形式。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上。可以根據(jù)實(shí)際的需要選擇其中的部分或者全部單元來實(shí)現(xiàn)本實(shí)施例方案的目的。
另外,在本發(fā)明各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理單元中,也可以是各個(gè)單元單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)單元中。
所述功能如果以軟件功能單元的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時(shí),可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述方法的全部或部分步驟。而前述的存儲(chǔ)介質(zhì)包括:U盤、移動(dòng)硬盤、只讀存儲(chǔ)器(英文全稱:read-only memory,英文簡(jiǎn)稱:ROM)、隨機(jī)存取存儲(chǔ)器(英文全稱:random access memory,英文簡(jiǎn)稱:RAM)、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。
以上所述,僅為本發(fā)明的具體實(shí)施方式,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)以所述權(quán)利要求的保護(hù)范圍為準(zhǔn)。