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