发明内容
本发明的实施例提供一种报文上送方法及交换芯片,能够配置通过copy方式上送CPU的协议报文队列,保证协议报文的优先级调度。
第一方面提供一种报文上送方法,包括
交换芯片通过第一端口接收协议报文,在所述第一端口按照第一ACL规则将所述协议报文复制到目的端口,所述目的端口为所述交换芯片的内部环回端口;
所述交换芯片在所述内部环回端口按照第二ACL规则将所述协议报文重定向到CPU端口的指定CPU队列。
第二方面,提供一种交换芯片,包括:第一端口、内部环回端口和CPU端口;
所述第一端口用于接收协议报文,按照第一ACL规则将所述协议报文复制到目的端口,所述目的端口为所述交换芯片的内部环回端口;
所述内部环回端口用于按照第二ACL规则将所述第一端口复制的协议报文重定向到所述CPU端口的指定CPU队列。
上述方案中,交换芯片通过第一端口接收协议报文,在第一端口按照第一ACL规则将协议报文复制到目的端口,目的端口为交换芯片的内部环回端口;即首先按照第一ACL规则将协议报文采用copy方式复制到内部环回端口,然后交换芯片在内部环回端口按照第二ACL规则将协议报文重定向到CPU端口的指定CPU队列,即通过redirect方式将内部环回端口收到协议报文重定向至CPU端口的指定CPU队列,由于redirect行为方式可以修改协议报文上送CPU的队列,因此在上述过程中重配置了通过copy行为方式上送CPU的协议报文的队列,保证了协议报文的优先级调度。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例描述的***架构以及业务场景是为了更加清楚的说明本发明实施例的技术方案,并不构成对于本发明实施例提供的技术方案的限定,本领域普通技术人员可知,随着***架构的演变和新业务场景的出现,本发明实施例提供的技术方案对于类似的技术问题,同样适用。
本发明的实施例使用的技术术语包括如下:
ACL:访问控制列表,使用交换芯片的TCAM(ternary content addressablememory,一种三态内容寻址存储器,)查找器件实现的报文识别功能,是一个通用的功能,不同厂商每款交换芯片功能通常都是一样的。
内部环回:是从交换芯片的端口发出的协议报文又被环回到交换芯片端口内部的一种报文发送机制。
本发明的基本原理为:利用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)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。