CN101848223A - 基于网络处理器实现快速报文双向转发检测的方法和装置 - Google Patents
基于网络处理器实现快速报文双向转发检测的方法和装置 Download PDFInfo
- Publication number
- CN101848223A CN101848223A CN201010186773A CN201010186773A CN101848223A CN 101848223 A CN101848223 A CN 101848223A CN 201010186773 A CN201010186773 A CN 201010186773A CN 201010186773 A CN201010186773 A CN 201010186773A CN 101848223 A CN101848223 A CN 101848223A
- Authority
- CN
- China
- Prior art keywords
- loopback
- message
- processing unit
- count value
- template message
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Abstract
本发明公开了一种基于网络处理器实现快速报文双向转发检测的方法和装置,属于数据传输通讯领域。该方法包括:在网络处理器设置环回计时器;网络处理器接收中央处理器发送的使能标识、发送模板报文、发送检测信息表和统计学习表;根据使能标识启动检测报文发送功能,根据发送模板报文启动所述环回计时器,根据发送模板报文查询发送检测信息表和统计学习表得到环回计数值;比较环回计数值和所述发送检测信息表的周期值是否相等,如果相等,则到达环回计时器的发送周期,并将发送模板报文复制一份,将其中一份发送模板报文进行环回,根据另一份发送模板报文和所述发送检测信息表生成检测报文,并输出。本发明的技术方案提高了系统的性能。
Description
技术领域
本发明涉及数据传输通讯领域,特别涉及一种基于网络处理器实现快速报文双向转发检测的方法和装置。
背景技术
问候(Hello)协议是一种网络层协议,它使得网络设备能够互相标识自己的身份,并表明自己仍然处于工作状态。网络设备在接收到Hello请求后返回Hello应答。网络设备按照指定的时间间隔发送Hello数据包,以表明自己仍处于工作状态。
双向转发检测(Bidirectional Forwarding Detection,BFD)是一套用来实现快速检测的国际标准协议,提供一种轻负荷、持续时间短的检测。与以往的其他“Hello”检测机制相比,具有许多独到的优势。
BFD协议是一个简单的“Hello”协议,在很多方面,它与那些著名的路由协议的邻居检测部分相似。一对系统在它们之间所建立的会话的通道上周期性的发送检测报文,如果某个系统在足够长的时间内没有收到对端的检测报文,则认为在这条到相邻系统的双向通道的某个部分发生了故障。系统之间的发送和接收速率需要协商。
在BFD协议的实现过程中,需要相应的状态机来存储本地会话的状态,然而,在当前的路由器和交换机的系统实现中,与状态相关的操作均由上层软件,即平台来实现。这种做法的好处是:能够很容易地实现BFD的状态切换,实现简单的BFD功能。但是有一个致命的缺陷就是:由于BFD是快速检测报文,可能每隔10ms就要发送一个数据报文,而平台使用通用的CPU来处理,由于CPU资源的限制,每台设备上最多只能同时支持5个BFD的会话(Session),否则过高CPU占用率会导致其它的功能进程无法及时地得到足够的CPU资源。
发明内容
本发明所要解决的技术问题是提供一种基于网络处理器来实现的快速报文双向转发监测的方法,简化平台的工作量,技术方案如下:
一种基于网络处理器实现快速报文双向转发检测的方法,包括:
在网络处理器设置环回计时器;
所述网络处理器接收中央处理器发送的使能标识、发送模板报文、发送检测信息表和统计学习表;
所述网络处理器根据所述使能标识启动检测报文发送功能,根据发送模板报文启动所述环回计时器,根据发送模板报文查询所述发送检测信息表和统计学习表得到环回计数值;
比较所述环回计数值和所述发送检测信息表的周期值是否相等,如果相等,则到达环回计时器的发送周期,并将所述发送模板报文复制一份,将其中一份发送模板报文进行环回,根据另一份发送模板报文和所述发送检测信息表生成检测报文,并输出。
进一步地,如果环回计数值和所述发送检测信息表的周期不相等,则将所述环回计数值变化一个数值后重新写入统计学习表。
进一步地,所述在网络处理器设置环回计时器,包括:在网络处理器的环回口上启用流量管理的整形功能,通过设置整形参数,使得从环回口出去的报文速率可控,以实现环回计时器。
进一步地,根据发送模板报文的索引查询所述发送检测信息表和统计学习表得到环回计数值,包括:
所述网络处理器根据发送报文中的索引查找发送检测信息表,获得发送报文的相关信息,并根据从发送检测信息表查到的关键字查找统计学习表,获取环回计数值。
其中,所述模板报文包括:环回模板报文的份数、定时器环回标识、用以区别使用该环回计时器的是发送模板报文还是定时检测模板报文的内部类型值、会话队列的索引和环回报文的流标识;或
所述发送检测信息表包括:查找成功或失败标识、设定的定时发送的检测周期值、发送报文的相关信息以及用以索引统计学习表的关键字;或
所述统计学习表包括:对应于当前会话的环回次数和对应于当前会话的收包计数值。
一种基于网络处理器实现快速报文双向转发检测的方法,包括:
在网络处理器设置环回计时器;
所述网络处理器接收中央处理器发送的使能标识、定时检测模板报文、发送检测信息表和统计学习表;
所述网络处理器根据所述使能标识启动定时检测报文功能,根据定时检测模板报文启动所述环回计时器,根据发送模板报文查询所述发送检测信息表和统计学习表得到环回计数值;
比较所述环回计数值和所述发送检测信息表的周期值是否相等;
如果相等,则达到环回计时器的检测周期,根据统计学习表的收包计数结果进行判断,如果收包计数结果为预设值,则将所述定时检测模板报文复制一份,其中一份用于向所述中央处理器报告检测失败信息,其中另一份进行环回。
进一步地,如果收包计数值不为所述预设值,则将所述统计学习表中的收包计数值恢复到所述预设值,并进入下一个检测周期。
一种网络处理器,包括:
设置模块,用于在网络处理器设置环回计时器;
接收模块,用于接收中央处理器发送的使能标识、发送模板报文、发送检测信息表和统计学习表;
启动和获取模块,用于根据所述使能标识启动检测报文发送功能,根据发送模板报文启动所述环回计时器,根据发送模板报文查询所述发送检测信息表和统计学习表得到环回计数值;
比较和输出模块,用于比较所述环回计数值和所述发送检测信息表的周期值是否相等,如果相等,则到达环回计时器的发送周期,并将所述发送模板报文复制一份,将其中一份发送模板报文进行环回,根据另一份发送模板报文和所述发送检测信息表生成检测报文,并输出。
进一步地,所述比较和输出模块,还用于如果环回计数值和所述发送检测信息表的周期不相等,则将所述环回计数值变化一个数值后重新写入统计学习表;或
所述设置模块,具体用于在网络处理器的环回口上启用流量管理的整形功能,通过设置整形参数,使得从环回口出去的报文速率可控,以实现环回计时器;或
所述启动和获取模块,用于根据发送报文中的索引查找发送检测信息表,获得发送报文的相关信息,并根据从发送检测信息表查到的关键字查找统计学习表,获取环回计数值。
一种网络处理器,包括:
设置模块,用于设置环回计时器;
接收模块,用于接收中央处理器发送的使能标识、定时检测模板报文、发送检测信息表和统计学习表;
启动和获取模块,用于根据所述使能标识启动定时检测报文功能,根据定时检测模板报文启动所述环回计时器,根据发送模板报文查询所述发送检测信息表和统计学习表得到环回计数值;
比较和输出模块,用于比较所述环回计数值和所述发送检测信息表的周期值是否相等;如果相等,则达到环回计时器的检测周期,根据统计学习表的收包计数结果进行判断,如果收包计数结果为预设值,则将所述定时检测模板报文复制一份,其中一份用于向所述中央处理器报告检测失败信息,其中另一份进行环回。
进一步地,所述比较和输出模块,还用于如果收包计数值不为所述预设值,则将所述统计学习表中的收包计数值恢复到所述预设值,并进入下一个检测周期。
本发明通过将BFD的发送和检测功能交由网络处理器实现,从而大大减轻了平台的负担,有利于支持更多的BFD会话,大大提高了系统的性能。
附图说明
图1是本发明实施例提供的一种于网络处理器实现快速报文双向转发检测的方法的报文发送流程图;
图2本发明实施例提供的另一种于网络处理器实现快速报文双向转发检测的方法的报文检测流程图;
图3是本发明实施例实现BFD快速检测报文发送与检测的详细流程图。
图4是本发明实施例提供的一种网络处理器的结构示意图。
图5是本发明在整个交换机体系中与各个模块之间的关系图。
具体实施方式
以下结合附图对本发明实施例进行详细的描述。
本发明第一实施例提供了一种基于网络处理器实现快速报文双向转发检测的方法,如图1所示,包括:
101,在网络处理器设置环回计时器;
102,网络处理器接收中央处理器发送的使能标识、发送模板报文、发送检测信息表和统计学习表;
103,网络处理器根据该使能标识启动检测报文发送功能,根据发送模板报文启动该环回计时器,根据发送模板报文查询该发送检测信息表和统计学习表得到环回计数值;
104,比较该环回计数值和该发送检测信息表的周期值是否相等,如果相等,则判断到达环回计时器的发送周期,并将该发送模板报文复制一份,将其中一份发送模板报文进行环回,根据另一份发送模板报文和该发送检测信息表生成检测报文,并输出。
进一步地,如果环回计数值和该发送检测信息表的周期不相等,则将该环回计数值变化一个数值后重新写入统计学习表。
进一步地,该在网络处理器设置环回计时器,包括:在网络处理器的环回口上启用流量管理的整形(shaper)功能,通过设置shaper参数,使得从环回口出去的报文速率可控,以实现环回计时器。
进一步地,根据发送模板报文的索引查询该发送检测信息表和统计学习表得到环回计数值,包括:
该网络处理器根据发送报文中的索引查找发送检测信息表,获得发送报文的相关信息,并根据从发送检测信息表查到的关键字查找统计学习表,获取环回计数值。
进一步地,该模板报文包括:环回模板报文的份数、环回定时器标识、用以区别使用该环回计时器的是发送模板报文还是定时检测模板报文的内部类型值和会话队列的索引和环回报文的流标识。
进一步地,该发送检测信息表包括:
查找成功或失败标识、设定的定时发送的检测周期值、发送报文的相关信息以及用以索引统计学习表的关键字。
进一步地,该统计学习表包括:
对应于当前会话的环回次数和对应于当前会话的收包计数值。
本发明第二实施例还提供了一种基于网络处理器实现快速报文双向转发检测的方法,如图2所示,包括:
201,在网络处理器设置环回计时器;
其中,如何设置环回计时器可以参见第一实施例的相应内容。
202,该网络处理器接收中央处理器发送的使能标识、定时检测模板报文、发送检测信息表和统计学习表;
其中,定时检测模板报文、发送检测信息表和统计学习表的内容参见第一实施例的相关内容。
203,该网络处理器根据该使能标识启动定时检测报文功能,根据定时检测模板报文启动该环回计时器,根据发送模板报文查询该发送检测信息表和统计学习表得到环回计数值;
204,比较该环回计数值和该发送检测信息表的周期值是否相等;如果相等,则判断达到环回计时器的检测周期,根据统计学习表的收包计数结果进行判断,如果收包计数结果为预设值,则将该定时检测模板报文复制一份,其中一份用于向该中央处理器报告检测失败信息,其中另一份进行环回。
进一步地,该方法还包括:如果收包计数值不为该预设值,则将该统计学习表中的收包计数值恢复到该预设值,并进入下一个检测周期。
其中,网络处理器可以适用于交换机、路由器或其它网络转发设备。
下面以当前国内设备制造厂商的主流网络处理器芯片为例,本发明实施例的具体实施方案如下:
为了在网络处理器中实现环回计时器的功能,需要对网络处理器做相应的配置,具体配置可以如下:
在网络处理器的环回(loopback)口上启用流量管理(Traffic Manager,TM)的shaper功能,通过设置shaper参数,使得从环回口出去的报文速率可控。
CPU向网络处理器发送模板报文,网络处理器中的微码将模板报文发往设置的环回口,此后模板报文不断地在网络处理器内部环回。由于环回口启了shaper功能,报文将定时地在网络处理器内部环回。Shaper功能只能配置在L0,L1,L2,L3等4个层次上。物理的环回口有3个,相当于对应的L2级别上可以有3个环回口。L3级别的shaper参数可以配置256个特征(profile)。shaper参数就配置在L3层上,每一层配置shaper参数时需要配置一个基准速率(base rate)。基准速率是LX这个级别所有的shaper参数共用的,是层级别的全局参数。在本实施例中配置的base rate=5150。由上面的参数配置可得:每次报文的环回间隔为10/1536ms,这样就实现了每一个定时器的时间单位(10ms)整个1536个BFD会话的队列均被扫描一次。需要说明的是,本示例中,网络处理器可以支持1536个会话,但在实际应用中,网络处理器可以支持的会话数可以基于网络处理器自身的能力而定,可以多于1536个,也可以少于1536个。
为了在网络处理器中实现定时发送BFD检测报文,需要预先设计好模板报文、发送检测信息表和统计学习表。
通常情况下,网络处理器只是对于接收到的数据报文进行处理,然后根据查找到的相应表项做转发处理。为了实现定时发送BFD检测报文,就需要一个内容为空白的模板报文来模拟网络处理器的收包过程,然后根据查得发送检测信息表的相关内容将数据填入模板报文发送出去,同时,将模板报文复制一份继续环回,以维持定时器的功能。其中,模板报文的结构如下:
1)环回模板报文的份数,在本示例中可以用2个字节表示,其数值可以是1。
2)定时器头部标识,用来识别该报文为环回后的模板报文,而不是从网络收到的报文。
3)内部的类型值(Packet_Type),主要是为了区别使用该环回计时器的是发送模板报文还是定时检测模板报文,例如,当内部类型值为1时,表示使用该环回计时器的是发送模板报文;当内部类型值为0时,表示使用该环回计时器的是定时检测模板报文。
4)会话队列的索引(Index),用来直接查找会话的信息。
5)环回时需要使用的流标识(FLOW ID),该标识确定的该数据流在环回过程中按照事先的配置信息以约定的速率进行传输,进而实现定时。
6)报文的内容。为了更有效地定时发送BFD检测报文,主要的内容有:用于交换网络处理器的Higig头部,目的媒体访问控制(DMAC,Destination Media Access Control)和源媒体访问控制(Source Media AccessControl,SMAC)等报文的二层和三层的内容,需要支持的是,报文的四层协议是用户数据包协议(User Datagram Protocol,UDP),而UDP协议的后面是BFD报文的控制内容,这部分内容是需要严格按照BFD协议来实现的。
对于BFD协议中定时发送检测报文和定时检测接收报文的功能,主要需要2个表项,一个是发送检测信息表,该表存储的是发送报文的信息;另一个是统计学习表,该表存储的是环回次数的信息,在每次环回扫描队列时,如果环回计数值与发送或者检测周期相等则进入发送或者检测流程,环回计数值清0;如果不等,就把环回计数值加1。需要说明的是,环回计数值只是为了举例需要,实际应用中,环回计数值的初始值也可以不是0,而是其他数值,环回计数值的变化可以不仅仅限于加1,也可以是加2、加3,并且并不限于是加法,可以是减法等其他算法,最终只要能够实现对于整个队列的遍历即可。
对于发送检测信息表,它的查找关键字就是存放在模板报文中的会话队列的索引,用该索引来查找会话的对应信息。该表内容主要包括以下部分:
键值:定时环回发送/检测模版报文中的Current BFD entry Index。
名称 | 字节偏移 | 位偏移 | 说明 |
Current BFDentry Index | 0:1 | 0 | BFD模板报文的索引 |
名称 | 字节偏移 | 位偏移 | 说明 |
valid | 0 | 0 | 有效位 |
match | 0 | 1 | 匹配位 |
Ready | 0 | 2 | 0---发送/检测未使能1----发送/检测已使能 |
SndOrChk | 0 | 3 | 0---所得表项结果为发送表项1---所得表项结果为检测表项 |
MPLS flag | 0 | 4 | 0----IP封装,1----MPLS封装 |
LabelCnt | 0 | 5:6 | MPLS要封装的标签层数 |
IPQINQ | 0 | 7 | 0---一层vlan,1---二层vlan |
MultiHop | 1 | 0 | 0---BFD为单跳,1---BFD为多跳 |
Rx flag | 1 | 1 | 0---从Tx发送BFD报文1---从Rx发送BFD报文 |
IPOption | 1 | 2 | 0---非选项包,1----选项包 |
Trunk flag | 1 | 3 | 0---非trunk,1-----trunk表 |
Rsvd | 1 | 2:7 | 保留 |
名称 | 字节偏移 | 位偏移 | 说明 |
Trigger PeriodCnt | 2:3 | 0:7 | 检测/检测周期的count计数,用户配置 |
Trunk ID | 4 | 查trunk表使用 | |
DetMulti | 5 | 发送检测倍数 | |
Type | 6 | 查找BFD计数表时使用 | |
Rsvd | 7 | 保留 | |
My Discreaminator | 8:11 | BFD会话连接本地标识符 | |
Your Discreaminator | 12:15 | BFD会话连接远端标识符 | |
Inner vlan | 16:17 | BFD报文的内层vlan | |
Out Vlan | 18:19 | 0 | BFD报文的外层vlan |
UDP SrcPort | 20:21 | 0 | UDP的源端口号,由平台下发 |
UDP DstPort | 22:23 | 0 | UDP的目的端口号,由平台下发 |
DPort | 24 | 0:7 | 出端口的Port号 |
DMod | 25 | 0:7 | 出端口的Mod号 |
Rsvd | 26:27 | 0 | 保留 |
SIP | 28:31 | 0 | 发送的BFD报文的SIP,平台下发 |
DIP | 32:35 | 0 | 发送的BFD报文的DIP,由平台下发 |
Inner Label | 36:39 | 0 | 发送MPLS封装的BFD报文时的内层标签 |
Outer Label | 40:43 | 0 | 发送MPLS封装的BFD报文时的外层标签 |
Desired Min TxInterval | 44:47 | 0 | 本地支持的最小BFD报文发送间隔 |
名称 | 字节偏移 | 位偏移 | 说明 |
Required MinRX Interval | 48:51 | 0 | 本地支持的最小BFD接收间隔 |
IpOption | 52:55 | 0 | IP选项的内容 |
DMAC | 56:61 | 发送的BFD报文的DMAC,需协商 | |
Rsvd | 62:63 | 0 | 保留 |
1)查找成功或失败标识,如果标识置位表示查找后得到有效结果,否则,表示没找到相关信息。
2)定时发送检测报文和定时检测接收报文的区别标识,可以用该标识的0和1来表示查找结果为定时发送检测报文要使用的结果还是定时检测接收报文要使用的结果,具体可以根据实际情况设定。
3)周期值,表示对于某个固定的会话用户配置或者设定的发送和检测间隔,即需要的环回计数的次数。例如:发送的周期值是3,则需要报文环回3圈之后再发送。
4)发送报文的相关信息。这部分信息主要是为了发送报文时使用的,包括报文的Higig相关信息,如mod,端口(port)等,二三层相关信息,介质访问控制(Media Access Control,MAC)和IP等,以及相关的UDP和BFD数据部分的信息,这些信息是用平台在建立会话之后传递下来的。
5)必要的进一步查找的关键字,在有些情况下,还需要使用表项的关键字进行一次查统计学习表,该关键字的内容也要存在该发送检测信息表中。
对于统计学习表而言,该表是为了记录每个会话当前以及经过了几个时间点,通过与发送检测信息表中的周期值相比较,得出是否需要进行发送或者检测操作,它的查找关键字主要是会话的两个标识以及一个用来区分是定时发送还是检测定时的字段。它主要包括以下内容:
键值:BFD会话对应的Your Discreaminator和My Discreaminator以及类型(type)
名称 | 字节偏移 | 位偏移 | 说明 |
Type | 9 | 0 | 0-表示查找发送表项1-表示查找检测表项 |
Rsvd | 8 | 保留,为了共用表号扩展了key长度 |
名称 | 字节偏移 | 位偏移 | 说明 |
My Discreaminator | 0:3 | 0 | BFD会话连接本地标识符 |
Your Discreaminator | 4:7 | BFD会话连接远端标识符 |
名称 | 字节偏移 | 位偏移 | 说明 |
Valid | 0 | 0 | 有效 |
Match | 0 | 1 | 匹配 |
Receive Ready | 0 | 2 | 0---本地BFD快速收包未使能 |
1---本地BFD快速收包已使能 | |||
SndOrChkFlg | 0 | 3 | 0---所得表项结果为发送表项1---所得表项结果为检测表项 |
Rsvd | 0 | 4:7 | 保留 |
Rsvd | 1 | ||
CurLoopCnt | 2:3 | 0 | 记录当前的环回次数 |
ReceivePacketCnt | 4:7 | 0 | 收到BFD数据包计数统计 |
Rsvd | 8:31 | 0 | 保留 |
1)对应于当前会话的环回次数,即当前经历时间的记录;
2)对应于当前会话的收包计数值,记录该会话共收到多少检测数据包。
在完成以上设置后,以下将在网络处理器上实现BFD报文的发送,接收与检测,如图4所示,具体的实现过程有如下:
CPU下发BFD功能的使能标识,模板报文和相关的BFD会话的表项。其中,BFD的使能标识表示BFD检测功能的启用,下发模板报文为启动定时器同时开始扫描整个队列,如果没有下发表项,那么队列为空,无论怎么检查都不会发送报文。当下发表项后可以根据表项的内容实现报文发送检测等功能。
处理器检测是否为BFD发送模板报文/定时检测模板报文(301),如果是不是,进入其他流程(302),因与本发明无关,在此不再赘述。然后判断BFD标识使能(303),如果否,则丢弃模板报文(304),如果是,则使用模板报文中的索引查找发送检测信息表(305),并判断发送检测信息表是否有效(306),如果有效,则根据发送检测信息表的关键字查找统计学习表(307),如果无效,则对模板报文进行环回(318)。具体地,通常当网络处理器收到模板报文时,通常为2个模板报文,一个用于定时发送检测报文,另一个用于定时接收检测报文,其中,该2个模板报文可以共用一个环回计时器通道,还可以使用不同的环回计时器通道。当网络处理器接收到发送模板报文时,会根据报文中的索引查找发送检测信息表,获得发送报文的相关信息。同时,根据查到的关键字查找统计学习表;如果没有查到发送检测信息表,则表示没有该BFD会话,直接环回模板报文即可。如果查到发送检测信息表,要先比较统计学习表中的环回计数值是否与发送检测信息表中的周期值相等(308),如果相等,则表示到达发送或者检测周期,环回计数值清0(310),否则,则表示还没有到达发送或者检测周期,此时,将环回计数值加1(309)后重新写入统计学习表中去(317),然后环回模板报文即可(318)。
网络处理器需要判断模板报文是否为定时检测模板报文(311),如果不是,则对于到达发送周期的发送模板报文,先将模板报文复制一份,这样就有了两份模板报文。其中一份根据查发送检测信息表所得的结果信息(准确吗?)封装成不同的BFD报文发送出去(312和316),另一份模板报文则进入环回队列。需要说明的是,所有环回的报文都需要在模板报文的索引加1,这样网络处理器再次接收到的模板报文的索引与上一次不同,查得的表项结果也就不同,即代表了不同的BFD会话。由于系统最多支持1536个会话,当索引的值达到1536时就自动清0,这样就形成了循环队列,根据环回计时器的设置可知,在每个10ms内,网络处理器均对整个队列的1536项扫描一次,实现了定时机制。
对于到达检测周期的定时检测模板报文,要根据统计学习表的收包计数值是否为0进行判断(313),如果收包计数值为0,表示在一定的时间内没有收到检测报文,则需要向CPU报告,此时,需要复制一份模板报文,一份用以进行环回,另一份用以报告检测失败消息(314)。如果收包计数结果不为0,则表示检测成功,便将统计学习表中的收包计数清0(315),然后更新统计学习表(317),即将统计学习表中的环回计数清0,继续下一个检测周期。
由于在BFD协议中,BFD会话的建立是由三次握手的协商过程完成的,而在会话的协商过程中,有一部分报文需要上送给CPU进行会话状态的处理。此外,在BFD的会话建立之后,还会有一些关于参数变化的报文也需要上送处理。这样接收BFD报文的处理流程主要就分为:对于已经建立会话的普通BFD报文,计数后丢弃;对于为建立会话或者会话状态不是up的报文直接上送;而对于会话建立后的一些参数变化的报文,则计数后上送。
基于与方法相同的发明构思,本发明实施例提供了一种网络处理器,该网络处理器可以适用于交换机、路由器或其它网络转发设备,如图5所示,该网络处理器包括:
设置模块,用于在网络处理器设置环回计时器;
接收模块,用于接收中央处理器发送的使能标识、发送模板报文、发送检测信息表和统计学习表;
启动和获取模块,用于根据该使能标识启动检测报文发送功能,根据发送模板报文启动该环回计时器,根据发送模板报文查询该发送检测信息表和统计学习表得到环回计数值;
比较和输出模块,用于比较该环回计数值和该发送检测信息表的周期值是否相等,如果相等,则到达环回计时器的发送周期,并将该发送模板报文复制一份,将其中一份发送模板报文进行环回,根据另一份发送模板报文和该发送检测信息表生成检测报文,并输出。
进一步地,该比较和输出模块,还用于如果环回计数值和该发送检测信息表的周期不相等,则将该环回计数值变化一个数值后重新写入统计学习表。
进一步地,该设置模块,具体用于在网络处理器的环回口上启用流量管理的shaper功能,通过设置shaper参数,使得从环回口出去的报文速率可控,以实现环回计时器。
进一步地,启动和获取模块,用于根据发送模板报文的索引查询该发送检测信息表和统计学习表得到环回计数值,包括:
该启动和获取模块根据发送报文中的索引查找发送检测信息表,获得发送报文的相关信息,并根据从发送检测信息表查到的关键字查找统计学习表,获取环回计数值。
基于与方法相同的发明构思,本发明实施例还提供了另一种网络处理器,该网络处理器可以适用于交换机、路由器或其它网络转发设备,如图4所示,该网络处理器包括:
设置模块,用于设置环回计时器;
接收模块,用于接收中央处理器发送的使能标识、定时检测模板报文、发送检测信息表和统计学习表;
启动和获取模块,用于根据该使能标识启动定时检测报文功能,根据定时检测模板报文启动该环回计时器,根据发送模板报文查询该发送检测信息表和统计学习表得到环回计数值;
比较和输出模块,用于比较该环回计数值和该发送检测信息表的周期值是否相等;如果相等,则达到环回计时器的检测周期,根据统计学习表的收包计数结果进行判断,如果收包计数结果为预设值,则将该定时检测模板报文复制一份,其中一份用于向该中央处理器报告检测失败信息,其中另一份进行环回。
进一步地,该比较和输出模块,还用于如果收包计数值不为该预设值,则将该统计学习表中的收包计数值恢复到该预设值,并进入下一个检测周期。
如图5所示,本发明与现有技术之间的不同在于,现有技术只是在上层控制层和交换芯片之间实现BFD功能,而本发明将BFD的发送和检测功能交由网络处理器实现,从而大大减轻了平台的负担,有利于支持更多的BFD会话,大大提高了系统的性能。
Claims (11)
1.一种基于网络处理器实现快速报文双向转发检测的方法,其特征在于,包括:
在网络处理器设置环回计时器;
所述网络处理器接收中央处理器发送的使能标识、发送模板报文、发送检测信息表和统计学习表;
所述网络处理器根据所述使能标识启动检测报文发送功能,根据发送模板报文启动所述环回计时器,根据发送模板报文查询所述发送检测信息表和统计学习表得到环回计数值;
比较所述环回计数值和所述发送检测信息表的周期值是否相等,如果相等,则到达环回计时器的发送周期,并将所述发送模板报文复制一份,将其中一份发送模板报文进行环回,根据另一份发送模板报文和所述发送检测信息表生成检测报文,并输出。
2.如权利要求1所述的方法,其特征在于,如果环回计数值和所述发送检测信息表的周期不相等,则将所述环回计数值变化一个数值后重新写入统计学习表。
3.如权利要求1所述的方法,其特征在于,所述在网络处理器设置环回计时器,包括:在网络处理器的环回口上启用流量管理的整形功能,通过设置整形参数,使得从环回口出去的报文速率可控,以实现环回计时器。
4.如权利要求1所述的方法,其特征在于,根据发送模板报文的索引查询所述发送检测信息表和统计学习表得到环回计数值,包括:
所述网络处理器根据发送报文中的索引查找发送检测信息表,获得发送报文的相关信息,并根据从发送检测信息表查到的关键字查找统计学习表,获取环回计数值。
5.如权利要求1-4任意一项所述的方法,其特征在于,
所述模板报文包括:环回模板报文的份数、定时器环回标识、用以区别使用该环回计时器的是发送模板报文还是定时检测模板报文的内部类型值、会话队列的索引和环回报文的流标识;或
所述发送检测信息表包括:查找成功或失败标识、设定的定时发送的检测周期值、发送报文的相关信息以及用以索引统计学习表的关键字;或
所述统计学习表包括:对应于当前会话的环回次数和对应于当前会话的收包计数值。
6.一种基于网络处理器实现快速报文双向转发检测的方法,其特征在于,包括:
在网络处理器设置环回计时器;
所述网络处理器接收中央处理器发送的使能标识、定时检测模板报文、发送检测信息表和统计学习表;
所述网络处理器根据所述使能标识启动定时检测报文功能,根据定时检测模板报文启动所述环回计时器,根据发送模板报文查询所述发送检测信息表和统计学习表得到环回计数值;
比较所述环回计数值和所述发送检测信息表的周期值是否相等;
如果相等,则达到环回计时器的检测周期,根据统计学习表的收包计数结果进行判断,如果收包计数结果为预设值,则将所述定时检测模板报文复制一份,其中一份用于向所述中央处理器报告检测失败信息,其中另一份进行环回。
7.如权利要求6所述的方法,其特征在于,还包括:如果收包计数值不为所述预设值,则将所述统计学习表中的收包计数值恢复到所述预设值,并进入下一个检测周期。
8.一种网络处理器,其特征在于,包括:
设置模块,用于在网络处理器设置环回计时器;
接收模块,用于接收中央处理器发送的使能标识、发送模板报文、发送检测信息表和统计学习表;
启动和获取模块,用于根据所述使能标识启动检测报文发送功能,根据发送模板报文启动所述环回计时器,根据发送模板报文查询所述发送检测信息表和统计学习表得到环回计数值;
比较和输出模块,用于比较所述环回计数值和所述发送检测信息表的周期值是否相等,如果相等,则到达环回计时器的发送周期,并将所述发送模板报文复制一份,将其中一份发送模板报文进行环回,根据另一份发送模板报文和所述发送检测信息表生成检测报文,并输出。
9.如权利要求8所述的网络处理器,其特征在于,所述比较和输出模块,还用于如果环回计数值和所述发送检测信息表的周期不相等,则将所述环回计数值变化一个数值后重新写入统计学习表;或
所述设置模块,具体用于在网络处理器的环回口上启用流量管理的整形功能,通过设置整形参数,使得从环回口出去的报文速率可控,以实现环回计时器;或
所述启动和获取模块,用于根据发送报文中的索引查找发送检测信息表,获得发送报文的相关信息,并根据从发送检测信息表查到的关键字查找统计学习表,获取环回计数值。
10.一种网络处理器,其特征在于,包括:
设置模块,用于设置环回计时器;
接收模块,用于接收中央处理器发送的使能标识、定时检测模板报文、发送检测信息表和统计学习表;
启动和获取模块,用于根据所述使能标识启动定时检测报文功能,根据定时检测模板报文启动所述环回计时器,根据发送模板报文查询所述发送检测信息表和统计学习表得到环回计数值;
比较和输出模块,用于比较所述环回计数值和所述发送检测信息表的周期值是否相等;如果相等,则达到环回计时器的检测周期,根据统计学习表的收包计数结果进行判断,如果收包计数结果为预设值,则将所述定时检测模板报文复制一份,其中一份用于向所述中央处理器报告检测失败信息,其中另一份进行环回。
11.如权利要求10所述的网络处理器,其特征在于,所述比较和输出模块,还用于如果收包计数值不为所述预设值,则将所述统计学习表中的收包计数值恢复到所述预设值,并进入下一个检测周期。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010186773.5A CN101848223B (zh) | 2010-05-25 | 2010-05-25 | 基于网络处理器实现快速报文双向转发检测的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010186773.5A CN101848223B (zh) | 2010-05-25 | 2010-05-25 | 基于网络处理器实现快速报文双向转发检测的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101848223A true CN101848223A (zh) | 2010-09-29 |
CN101848223B CN101848223B (zh) | 2014-08-13 |
Family
ID=42772683
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010186773.5A Expired - Fee Related CN101848223B (zh) | 2010-05-25 | 2010-05-25 | 基于网络处理器实现快速报文双向转发检测的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101848223B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102594582A (zh) * | 2011-01-14 | 2012-07-18 | 中兴通讯股份有限公司 | 一种报文环回方法及系统 |
CN102904772A (zh) * | 2012-09-26 | 2013-01-30 | 中兴通讯股份有限公司 | 一种网络设备实现吞吐量测试的方法及装置 |
WO2015149523A1 (zh) * | 2014-04-02 | 2015-10-08 | 深圳市中兴微电子技术有限公司 | 一种oam报文快速发送和检测处理的方法、装置及存储介质 |
CN105812224A (zh) * | 2016-04-20 | 2016-07-27 | 广东电网有限责任公司电力科学研究院 | 一种基于trunk协议进行网络扫描的方法及系统 |
WO2016187980A1 (zh) * | 2015-05-25 | 2016-12-01 | 中兴通讯股份有限公司 | 一种bfd建链的方法及其装置、路由器 |
WO2018050122A1 (zh) * | 2016-09-19 | 2018-03-22 | 新华三技术有限公司 | 防止故障处理延迟 |
CN108376128A (zh) * | 2018-01-19 | 2018-08-07 | 凯美瑞德(苏州)信息科技股份有限公司 | 一种通信报文的处理方法与系统 |
CN114268561A (zh) * | 2020-09-15 | 2022-04-01 | 烽火通信科技股份有限公司 | 一种bfd报文发送装置与方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101247270A (zh) * | 2008-03-19 | 2008-08-20 | 中兴通讯股份有限公司 | 一种实现双向转发检测的系统及方法 |
CN101378338A (zh) * | 2008-09-24 | 2009-03-04 | 中兴通讯股份有限公司 | 一种实现双向收发检测的方法和装置 |
CN101478421A (zh) * | 2008-12-05 | 2009-07-08 | 中兴通讯股份有限公司 | 一种oam报文定时处理系统及方法 |
-
2010
- 2010-05-25 CN CN201010186773.5A patent/CN101848223B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101247270A (zh) * | 2008-03-19 | 2008-08-20 | 中兴通讯股份有限公司 | 一种实现双向转发检测的系统及方法 |
CN101378338A (zh) * | 2008-09-24 | 2009-03-04 | 中兴通讯股份有限公司 | 一种实现双向收发检测的方法和装置 |
CN101478421A (zh) * | 2008-12-05 | 2009-07-08 | 中兴通讯股份有限公司 | 一种oam报文定时处理系统及方法 |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102594582A (zh) * | 2011-01-14 | 2012-07-18 | 中兴通讯股份有限公司 | 一种报文环回方法及系统 |
US9838293B2 (en) | 2012-09-26 | 2017-12-05 | Xi'an Zhongxing New Software Co., Ltd. | Throughput test method and apparatus |
CN102904772A (zh) * | 2012-09-26 | 2013-01-30 | 中兴通讯股份有限公司 | 一种网络设备实现吞吐量测试的方法及装置 |
EP2903213A4 (en) * | 2012-09-26 | 2016-01-20 | Zte Corp | METHOD AND APPARATUS FOR FLOW TESTING |
WO2015149523A1 (zh) * | 2014-04-02 | 2015-10-08 | 深圳市中兴微电子技术有限公司 | 一种oam报文快速发送和检测处理的方法、装置及存储介质 |
CN104980293A (zh) * | 2014-04-02 | 2015-10-14 | 深圳市中兴微电子技术有限公司 | 一种oam报文快速发送和检测处理的方法及装置 |
CN104980293B (zh) * | 2014-04-02 | 2019-05-31 | 深圳市中兴微电子技术有限公司 | 一种oam报文快速发送和检测处理的方法及装置 |
WO2016187980A1 (zh) * | 2015-05-25 | 2016-12-01 | 中兴通讯股份有限公司 | 一种bfd建链的方法及其装置、路由器 |
CN105812224A (zh) * | 2016-04-20 | 2016-07-27 | 广东电网有限责任公司电力科学研究院 | 一种基于trunk协议进行网络扫描的方法及系统 |
CN105812224B (zh) * | 2016-04-20 | 2021-07-20 | 广东电网有限责任公司电力科学研究院 | 一种基于trunk协议进行网络扫描的方法及系统 |
WO2018050122A1 (zh) * | 2016-09-19 | 2018-03-22 | 新华三技术有限公司 | 防止故障处理延迟 |
US11206176B2 (en) | 2016-09-19 | 2021-12-21 | New H3C Technologies Co., Ltd. | Preventing failure processing delay |
CN108376128A (zh) * | 2018-01-19 | 2018-08-07 | 凯美瑞德(苏州)信息科技股份有限公司 | 一种通信报文的处理方法与系统 |
CN114268561A (zh) * | 2020-09-15 | 2022-04-01 | 烽火通信科技股份有限公司 | 一种bfd报文发送装置与方法 |
CN114268561B (zh) * | 2020-09-15 | 2023-06-09 | 烽火通信科技股份有限公司 | 一种bfd报文发送装置与方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101848223B (zh) | 2014-08-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101848223B (zh) | 基于网络处理器实现快速报文双向转发检测的方法和装置 | |
CN104935516B (zh) | 基于软件定义网络的通信系统及方法 | |
CN101247308B (zh) | 基于网络处理器实现IPv6穿越IPv4的隧道报文处理方法 | |
US8634297B2 (en) | Probing specific customer flow in layer-2 multipath networks | |
CN101286990B (zh) | 二层组播的转发方法和装置 | |
RU2010136044A (ru) | Управление беспроводными ретрансляционными узлами с использованием индентификаторов | |
CN102215170A (zh) | 抑制网络风暴的方法及处理器 | |
CN101573913A (zh) | 用于多播路由选择的方法和设备 | |
CN101247253A (zh) | Ip网络中基于虚拟分发网的多播传送方法 | |
CN105634857A (zh) | 链路连通性检测方法及装置 | |
CN101247351B (zh) | 负载分担方法及装置 | |
CN103220215A (zh) | TRILL网络中FCoE报文的转发方法和装置 | |
CN100364289C (zh) | 在基于弹性分组环的网络中实现二层设备互连的方法 | |
CN103560961A (zh) | 以太网交换机主机路由表项动态更新方法及交换机 | |
CN101373556A (zh) | 低压载波集中式网络的发送方法、收发方法及其装置 | |
ATE415033T1 (de) | Vorrichtung und verfahren für ein protokoll zur auffindung von druckern | |
CN108737221A (zh) | 丢包检测方法及通信链路系统 | |
WO2014000698A1 (zh) | 基于ip层的网络拓扑识别方法和设备 | |
CN103560962A (zh) | 以太网交换机主机路由表项自动更新方法及交换机 | |
CN102801622B (zh) | 一种数据报文的转发方法及转发装置 | |
JP2008283524A (ja) | 無線通信装置 | |
CN107888711B (zh) | 一种跨网段设备搜索及通讯方法 | |
CN104378302B (zh) | 地址对应关系发送方法和路由桥设备 | |
CN104348731A (zh) | 社区虚拟网络连线建立方法及网络通信系统 | |
CN101272326A (zh) | 一种聚合链路传输报文的方法和通信设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20140813 Termination date: 20200525 |
|
CF01 | Termination of patent right due to non-payment of annual fee |