专利名称:包上交换设备cpu的队列优化方法
包上交换设备CPU的队列优化方法
技术领域:
本发明涉及一种数据包或协议包上交换设备CPU的队列处理方法。
背景技木对于数据包或协议包(简称包)上CPU (包上CPU,即包写入CPU中),现有的应用于交换设备中的芯片都有一种默认的处理方式,即所有需要上CPU的包都通过ー个默认队列上CPU,此队列一般为数值最小的队列,即优先权最低队列。并利用队列本身的先入先出调度算法,使包直接上CPU。对于现有的芯片通过一个队列使包上CPU的方式,会让ー些并不重要的包占用CPU时间过长,而导致另外比较重要的急需CPU处理的包不能实时处理或转发。
发明内容本发明需解决的技术问题是克服上述的不足,提供一种包上交换设备CPU的队列优化方法,利用该方法使重要的包可以实时处理或转发,而不会因为普通包占用CPU时间过长,导致某些功能延迟。为解决上述的技术问题,本发明设计了ー种包上交换设备CPU的队列优化方法,其包括以下步骤Stepl :得到交换设备芯片支持包上CPU的队列个数;St印2 :确定所需的队列个数,并注册进芯片;St印3:配置队列的调度算法、各个队列写入的数据包数量的权重比率、以及设置姆个队列的PPS值;(PPS packet per second,姆秒分组数)。St印4 :确定需要上CPU的各种类型包的优先权顺序,将各种类型的包存入ニ维数组,二位数组中分为与队列个数相同的数组,各种类型包存入数组时,根据优先权顺序与数组序列号对应。St印5 :将ニ维数组中的包转换成交换设备芯片所能辨识的标识,再将标识与各个队列一一对应写入交换设备的CPU中。本发明在不修改芯片中包上CPU整体架构的基础上,通过注册多个队列的方式,根据硬件设计的队列数值越大,优先权越高的方式来调控重要的包优先上CPU进行处理。
图I是本发明包上交换设备CPU的队列优化方法的流程步骤示意图;图2是本发明实施例不同类型的包上CPU队列的示意图。其中,图2中,四个不同类型的线条代表4个主机发送的包通过4个队列上CPU的示意图。
具体实施方式
下面结合附图和实施方式对本发明作进ー步说明。如图I所示,本发明提供了一种包上交换设备CPU的队列优化方法。根据硬件设计的队列数值越大,优先权越高的方式来调控重要的包优先上CPU进行处理。本发明包上交换设备CPU的队列优化方法包括以下几个步骤Stepl :得到交换设备芯片支持包上CPU的队列个数,其可以通过芯片本身的说明书文档以及SDK代码或其他途径得到芯片支持包上CPU的队列个数。一般,交换设备的芯片支持包上CPU的队列个数为16、8或4。Step2 :确定所需的队列个数,并注册进芯片。在本发明的实施例中所选择的队列个数为4。St印3:配置队列的调度算法、各个队列写入的数据包数量的权重比率、以及设置每个队列的PPS值。调度算法包括SRR (Simple Round Robin,简单轮询调度算法),WRR (Weighted Round Robin 加权循环调度算法),SP (Strict Priority,严格优先权),或 WDRR(Weighted Deficit Round Robin,赤字加权循环调度算法)。St印4 :确定需要上CPU的各种类型包的优先权顺序,将各种类型的包存入ニ维数组,二位数组中分为与队列个数相同的数组,各种类型包存入数组时,根据优先权顺序与数组序列号对应。Step5 :将ニ维数组中的包转换成交换设备芯片所能辨识的标识,再将标识与各个队列——对应写入芯片的CPU中。如图2所示,为本发明ー种具体的实施例,四台主机A、B、C与D,与一台交换机S相连,该交换机S具有24Gbe port (24个千兆端ロ)。四个主机A、B、C与D分别通过网线与该交换机S的四个端ロ相连。该交换机S的芯片支持包上CPU的队列个数为4,将这4个队列注册进芯片,4个队列分别为 Queuel, Queue2, Queue3, Queue4。配置交換机 S 的 CMIC 端 ロ(CMIC 端 ロ即上 CPU的通道,包含队列)的调度算法为WRR,各个队列写入的数据包数量权重比率是QueUe4:QUeue3:Queue2:Queuel=4:3:2:1,相对于,队列数值越大,优先权越高。本实施例中,配置各个队列的PPS值为200。当四台主机与交换机通信时,主机A不停地姆秒发200个IGMP (Internet GroupManage Protocol,互连网组管理协议)包,主机B不停的姆秒发200个DHCP(Dynamic HostConfiguration Protocol,动态主机设置协议)包,主机C不停的姆秒发200个ARP(AddressResolution Protocol,地址解析协议)包,主机D不停的姆秒发200个BPDU (BridgeProtocol Data Unit,网桥协议数据单元)包。确定需要上CPU的各种类型包的优先权顺序主机D发送的BPDU包 > 主机C的ARP包 > 主机B的DHCP包 > 主机A的IGMP包。换句话说,主机D发送的BPDU包的重要性级别 > 主机C的ARP包 > 主机B的DHCP包 > 主机A的IGMP包。将四种不同类型的包,存入ニ维数组内中的数组,数组的个数与队列个数相同,数组包括G3,G2,Gl,GO (默认的配置方法)。四种类型包存入数组时,根据优先权顺序与数组序列号对应。优先权越大,对应的数组序号越大。因而,主机D的BPDU包存入G3,主机C的ARP包存入G2,主机B的DHCP包存入G1,主机A的IGMP包存入G0。如果四个主机发送4中以上类型的包(即包的类型大于队列个数),优先权相同或相邻的包可存入ニ维数组中的同一个数组。当包写入芯片时,需转换成芯片所能辨识的标识。在本实施例中,ニ维数组中的包通过芯片提供的API (Application Programming Interface,应用程序编程接ロ)接ロ,将IGMP, DHCP, ARP, IGMP转换成芯片所能识别的标识。例如IGMP用Oxl标识,DHCP用0x10标识,ARP用0x100标识,BPDU用0x1000标识。将标识与各个队列一一对应写入芯片的CPU中。根据各种类型数据包的重要性,将主机B的DHCP类型包标识0x10写入Queue2 ;主机C的ARP包标识0x100写入Queue3 ;主机D的BPDU包标识0x1000写入Queue4 ; Queue I留给另外的需要上CPU的数据/协议包(无需配置,默认情况下,芯片以实现此功能),主机A的IGMP协议包标识Oxl写入Queuel。根据各个队列的数据包数量权重比率,Queue4: Queue3: Queue2: Queue I =4:3:2:10则,当主机A不停地每秒发200个IGMP包,主机B不停的每秒发200个DHCP包,主机C不停的每秒发200个ARP包,主机D不停的每秒发200个BPDU包。结果可以发现, 姆秒通过四个队列上CPU的包的数量为Queue4:Queue3:Queue2:Queuel=80:60:40:20,比例为4:3:2:1。故,重要级别高的主机D发送的BPDU包上CPU的数量多,上CPU得到优先处理;次之顺序是主机C和主机B,而主机A最末。在四台主机A、B、C、D发送的包持续性上CPU时,循环持续将各种包存入ニ维数组,并转换标识,直至上CPU。本发明在不修改芯片中包上CPU整体架构的基础上,通过注册多个队列的方式,根据硬件设计的队列数值越大,优先权越高的方式来调控重要的包优先上CPU进行处理。以上所述的仅是本发明的实施方式,在此应当指出,对于本领域的普通技术人员来说,在不脱离本发明创造构思的前提下,还可以做出改进,但这些均属于本发明的保护范围。
权利要求
1.一种包上交换设备CPU的队列优化方法,其特征在于该队列优化方法包括以下步骤 Stepl :得到交换设备芯片支持包上CPU的队列个数; Step2 :确定所需的队列个数,并注册进芯片; St印3 :配置队列的调度算法、各个队列写入的数据包数量的权重比率、以及设置每个队列的PPS值; St印4 :确定需要上CPU的各种类型包的优先权顺序,将各种类型的包存入ニ维数组,ニ维数组中分为与队列个数相同的数组,各种类型包存入ニ维数组时,根据优先权顺序与数组序列号对应。
Step5 :将ニ维数组中的包转换成交换设备芯片所能辨识的标识,再将标识与各个队列——对应写入交换设备的CPU中。
2.根据权利要求I所述的包上交换设备CPU的队列优化方法,其特征在于St印4中,包的类型大于队列个数的情况时,优先权相同或相邻的包存入ニ维数组中的同一个数组。
全文摘要
本发明提供了一种包上交换设备CPU的队列优化方法,其包括以下步骤得到交换设备芯片支持包上CPU的队列个数;确定所需的队列个数,并注册进芯片;配置队列的调度算法、各个队列写入的数据包数量的权重比率、以及设置每个队列的PPS值;确定需要上CPU的各种类型包的优先权顺序,将各种类型的包存入二维数组。将二维数组中的包转换成交换设备芯片所能辨识的标识,再将标识与各个队列一一对应写入芯片的CPU中。本发明在不修改芯片中包上CPU整体架构的基础上,通过注册多个队列的方式,根据硬件设计的队列数值越大,优先权越高的方式来调控重要的包优先上CPU进行处理。
文档编号H04L12/863GK102868637SQ20121025678
公开日2013年1月9日 申请日期2012年7月23日 优先权日2012年7月23日
发明者罗敏, 车任秋, 朱家星, 王志 申请人:上海斐讯数据通信技术有限公司