网络处理器的统计计数方法

文档序号:7814132阅读:196来源:国知局
网络处理器的统计计数方法
【专利摘要】本发明提供了一种网络处理器的统计计数方法,其特征在于,包括:当网络处理器启动会话时,为该会话分配统计计数器,在该会话中,统计项以统计命令的形式发送统计请求;轮询仲裁所有的统计命令,对统计项进行统计计数,同时更新统计计数器;当该会话结束后,回收所述统计计数器的地址;在统计计数的空闲时间轮询统计计数器,根据统计计数器的阈值,产生相应的统计消息。本发明中将网络处理器中复杂的统计信息封装成统计命令,统计模块以统计命令的方式进行统计计数,简化了统计计数的处理流程,硬件实现简单。
【专利说明】网络处理器的统计计数方法

【技术领域】
[0001]本发明涉及网络通讯领域,具体地,涉及一种网络处理器的统计计数方法。

【背景技术】
[0002]网络处理器在信息处理的过程中,为跟踪监测各种流量信息,如数据包基于帧或者字节的转发统计、丢弃统计等,需要对其进行相应地统计,提供必要的统计信息。然而,随着网络带宽的飞速增长,网络处理器中统计项成倍增加,导致了统计计数器的数量越来越大,种类越来越多,对统计计数的处理方式提出了更高的速度要求。
[0003]此外,为获取各个统计结果,通常采用主机直接访问统计存储器的方式来获取计数器的值。但是,随着统计计数器数量的增多,主机不间断地访问统计计数器,这将占用主机大量的处理时间,从而降低主机的执行效率,因此需要采用更有效的硬件机制向主机进行报告。


【发明内容】

[0004]针对现有技术中的缺陷,本发明的目的是提供一种网络处理器的统计计数的方法和统计消息。
[0005]网络处理器需要进行统计的信息种类很多,不同的统计类型要求不同的计数方式。为简化硬件实现过程,本发明采用统计命令的方式进行统计计数。
[0006]一帧数据进入网络处理器启动一个会话后,分配一个计数器对其进行统计计数;该会话完成后,这个计数器处于空闲状态,其存储地址也将变成空闲地址。随着网络处理器工作时间的增加,越来越多的统计计数器处于空闲状态,如果不对这些空闲的统计计数器进行回收,将会造成存储资源越来越大的浪费,因此本发明通过空闲地址队列管理机制来回收处于空闲状态的统计计数器的地址。
[0007]网络处理器在运行过程中,为防止主机频繁读取统计计数器占用带宽,可以产生统计消息来通知主机统计的结果。统计消息可以通过轮询统计计数器的方式来产生,这种以轮询方式产生统计消息的统计命令,如果和其它统计项的统计命令进行无差别的处理,将会占用大量的统计处理时间,导致其它各个统计项的统计请求不能得到及时的响应,从而降低统计计数的处理效率。本发明通过统计消息机制在空闲时间产生统计消息,隐藏了产生统计消息的处理时间,有效地提高网络处理器的处理性能。
[0008]根据本发明提供的网络处理器的统计计数方法包括如下步骤:
[0009]步骤1:当网络处理器启动会话时,为该会话分配统计计数器,在该会话中,统计项以统计命令的形式发送统计请求;轮询仲裁所有的统计命令,对统计项进行统计计数,同时更新统计计数器;当该会话结束后,回收所述统计计数器的地址;
[0010]步骤2:在统计计数的空闲时间轮询统计计数器,根据统计计数器的阈值,产生相应的统计消息。
[0011]优选地,所述统计命令包括初始化统计计数器、读统计计数器、复位统计计数器、加统计计数器和减统计计数器中任一种或任多种。
[0012]优选地,所述统计信息包括接收的队列入队信息、转发的队列出队信息、队列的长度信息和队列的丢弃信息中任一种或任多种。
[0013]优选地,所述步骤I包括如下步骤:
[0014]步骤1.1:当数据流进入网络处理器时,网络处理器启动会话,为该会话分配一个统计计数器;
[0015]步骤1.2:从空闲统计地址队列中获取一个空闲统计指针作为所述统计计数器的存储地址;
[0016]步骤1.3:在该会话中,统计项以统计命令的形式发送统计请求;轮询仲裁所有的统计命令,对统计项进行统计计数,同时更新统计计数器;
[0017]步骤1.4:当所述话结束时,启动老化机制删除流表中的表项信息,所述统计计数器的地址通过空闲地址队列管理机制重新返回空闲统计地址队列。
[0018]优选地,所述步骤3包括如下步骤:
[0019]步骤3.1:初始化统计计数器时,为每个统计计数器指定一个阈值;
[0020]步骤3.2:在统计计数的空闲时间,依次轮询所有的统计计数器,根据所述阈值,产生相应的统计消息;
[0021]优选地,空闲时间为完成了所有的统计命令的处理时,即当前没有统计请求。
[0022]优选地,初始化统计计数器具体为根据统计命令中的地址,把统计计数器的初始化值直接写入外部存储器的相应地址中;
[0023]读统计计数器具体为根据统计命令中的地址,将外部存储器中读出的统计计数器的值,返回给统计计数器;
[0024]复位统计计数器具体为把将统计计数器的值清零后直接写入外部存储器相应的地址中;
[0025]加统计计数器具体为根据统计命令中的地址,从外部存储器中读出统计计数器的值,然后把该统计计数器的值和统计命令中的操作数相加得到更新后的值,最后把更新后的值写回外部存储器相应的地址中;
[0026]减统计计数器具体为根据统计命令中的地址,从外部存储器中读出统计计数器的值,然后把该统计计数器的值和统计命令中的操作数相减得到更新后的值,最后把更新后的值写回外部存储器相应的地址中。
[0027]与现有技术相比,本发明具有如下的有益效果:
[0028]1.本发明中将网络处理器中复杂的统计信息封装成统计命令,统计模块以统计命令的方式进行统计计数,简化了统计计数的处理流程,硬件实现简单;
[0029]2.本发明采用空闲地址队列管理机制,回收表项信息被删除后的统计计数器的地址,使得统计计数器的地址可以重复使用,有效地节省了网络处理器的存储资源;
[0030]3.本发明利用统计计数的空闲时间产生统计消息,隐藏了为产生统计消息而轮询计数器的处理时间,保证了在网络处理器各个统计项发出统计请求后,能够得到及时的响应处理,有效地提高了统计计数的处理效率,进而提高网络处理器的执行效率。

【专利附图】

【附图说明】
[0031]通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
[0032]图1为本发明中封装后的统计命令的数据格式示意图;
[0033]图2为本发明中带有阈值信息的统计计数器的数据格式示意图;
[0034]图3为本发明中统计消息的数据格式示意图;
[0035]图4为本发明中网络处理器中统计计数的示意图;
[0036]图5为本发明中统计信息发送的示意图;
[0037]图6为本发明中统计命令仲裁的示意图;
[0038]图7为本发明中统计计数的示意图;
[0039]图8为本发明中空闲地址队列管理机制的示意图;
[0040]图9为本发明中统计消息产生的示意图;
[0041]图10为本发明的步骤流程图。

【具体实施方式】
[0042]下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进。这些都属于本发明的保护范围。
[0043]在本是实例中,本发明解决其技术问题所采用的技术方案是,各个统计项以统计命令的方式进行统计计数,在空闲时间产生统计消息,包括以下步骤:
[0044]步骤1:当网络处理器启动会话时,为该会话分配统计计数器,在该会话中,统计项以统计命令的形式发送统计请求;轮询仲裁所有的统计命令,对统计项进行统计计数,同时更新统计计数器;当该会话结束后,回收所述统计计数器的地址;
[0045]步骤2:在统计计数的空闲时间轮询统计计数器,根据统计计数器的阈值,产生相应的统计消息。
[0046]具体为:
[0047]对于网络处理器中的各个统计项,分别使用一个统计计数器来进行统计。数据包在网络处理器不同处理阶段产生的统计请求,以统计命令的方式通过统计信息发送模块进入统计模块中的统计命令仲裁模块,如图4所示。统计命令的格式如图1所示。其中,统计命令包括初始化统计计数器、读统计计数器、复位统计计数器、加统计计数器和减统计计数器,所述统计信息包括接收的队列入队信息、转发的队列出队信息、队列的长度信息和队列的丢弃信息等。
[0048]统计命令仲裁模块依次轮询所有的统计命令,获得应答的统计命令进入统计计数模块进行统计处理,如图6所示。
[0049]统计模块轮询所有的统计命令,依次执行各个统计项的统计命令,对不同的统计命令类型,进行相应的统计计数,同时更新统计计数器,如图7所示。其中,初始化命令执行过程是,根据统计命令中的地址,把初始化值直接写入外部存储器相应的地址中;读命令执行过程是,根据统计命令中的地址,从外部存储器中读出统计计数器的值,然后返回该统计计数器的值;复位命令执行过程是,把统计计数器的值清零后直接写入外部存储器相应的地址中;加统计计数器具体为根据统计命令中的地址,从外部存储器中读出统计计数器的值,然后把该统计计数器的值和统计命令中的操作数相加得到更新后的值,最后把更新后的值写回外部存储器相应的地址中;减统计计数器具体为根据统计命令中的地址,从外部存储器中读出统计计数器的值,然后把该统计计数器的值和统计命令中的操作数相减得到更新后的值,最后把更新后的值写回外部存储器相应的地址中。
[0050]采用空闲地址队列管理机制来回收该统计计数器的地址,如图8所示,新的数据流进入网络处理器后开始一个会话,为其分配一个统计计数器。首先从空闲统计地址队列获取一个空闲统计指针作为计数器的存储地址,当会话结束时,启动老化机制删除流表中的表项信息,这个统计计数器的地址通过空闲地址队列管理机制重新返回空闲统计地址队列。
[0051]在统计计数的空闲时间,产生相应的统计消息,如图9所示。主机初始化统计计数器时,同时为每个统计计数器指定一个阈值,阈值信息加载到统计计数器的首部,如图2所示。统计命令仲裁模块在空闲时间应答轮询统计计数器的请求,统计计数模块执行轮询请求,从外部存储器中读出各个统计计数器,根据预先设定的阈值,产生对应的统计消息,存入统计消息队列,供主机读取。统计消息的数据格式如图3所示,统计消息用来通知主机当前各个统计计数器的结果。其中,所述的空闲时间是指统计计数模块完成了所有的统计命令的处理,当前没有其它的统计请求,所述的统计消息包括接收的队列入队消息、转发的队列出队消息、队列的长度消息和队列的丢弃消息等。
[0052]以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变形或修改,这并不影响本发明的实质内容。
【权利要求】
1.一种网络处理器的统计计数方法,其特征在于,包括如下步骤: 步骤1:当网络处理器启动会话时,为该会话分配统计计数器,在该会话中,统计项以统计命令的形式发送统计请求;轮询仲裁所有的统计命令,对统计项进行统计计数,同时更新统计计数器;当该会话结束后,回收所述统计计数器的地址; 步骤2:在统计计数的空闲时间轮询统计计数器,根据统计计数器的阈值,产生相应的统计消息。
2.根据权利要求1所述的网络处理器的统计计数方法,其特征在于, 所述统计命令包括初始化统计计数器、读统计计数器、复位统计计数器、加统计计数器和减统计计数器中任一种或任多种。
3.根据权利要求1所述的网络处理器的统计计数方法,其特征在于,所述统计信息包括接收的队列入队信息、转发的队列出队信息、队列的长度信息和队列的丢弃信息中任一种或任多种。
4.根据权利要求1所述的网络处理器的统计计数方法,其特征在于,所述步骤I包括如下步骤: 步骤1.1:当数据流进入网络处理器时,网络处理器启动会话,为该会话分配一个统计计数器; 步骤1.2:从空闲统计地址队列中获取一个空闲统计指针作为所述统计计数器的存储地址; 步骤1.3:在该会话中,统计项以统计命令的形式发送统计请求;轮询仲裁所有的统计命令,对统计项进行统计计数,同时更新统计计数器; 步骤1.4:当所述话结束时,启动老化机制删除流表中的表项信息,所述统计计数器的地址通过空闲地址队列管理机制重新返回空闲统计地址队列。
5.根据权利要求2所述的网络处理器的统计计数方法,其特征在于,所述步骤3包括如下步骤: 步骤3.1:初始化统计计数器时,为每个统计计数器指定一个阈值; 步骤3.2:在统计计数的空闲时间,依次轮询所有的统计计数器,根据所述阈值,产生相应的统计消息;
6.根据权利要求1或5所述的网络处理器的统计计数方法,其特征在于,空闲时间为完成了所有的统计命令的处理时,即当前没有统计请求。
7.根据权利要求2所述的网络处理器的统计计数方法,其特征在于, 初始化统计计数器具体为根据统计命令中的地址,把统计计数器的初始化值直接写入外部存储器的相应地址中; 读统计计数器具体为根据统计命令中的地址,将外部存储器中读出的统计计数器的值,返回给统计计数器; 复位统计计数器具体为把将统计计数器的值清零后直接写入外部存储器相应的地址中; 加统计计数器具体为根据统计命令中的地址,从外部存储器中读出统计计数器的值,然后把该统计计数器的值和统计命令中的操作数相加得到更新后的值,最后把更新后的值写回外部存储器相应的地址中; 减统计计数器具体为根据统计命令中的地址,从外部存储器中读出统计计数器的值,然后把该统计计数器的值和统计命令中的操作数相减得到更新后的值,最后把更新后的值写回外部存储器相应的地址中。
【文档编号】H04L12/26GK104301172SQ201410464914
【公开日】2015年1月21日 申请日期:2014年9月12日 优先权日:2014年9月12日
【发明者】张辉, 李苗 申请人:中国电子科技集团公司第三十二研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1