一种基于FPGA实现流采样的装置及方法制造方法及图纸

技术编号:13358998 阅读:73 留言:0更新日期:2016-07-17 17:09
本发明专利技术公开了一种基于FPGA实现流采样的装置及方法,涉及流采样技术领域。该装置包括网络处理器、FPGA、队列调度芯片和CPU;网络处理器用于截取每个原始报文的前128字节作为流采样报文,发送至FPGA,并将FPGA解析后重组的长包发给队列调度芯片进行队列调度;FPGA用于对收到的所有流采样报文进行初步解析,并定期将解析后流采样报文组合成长包发送至网络处理器;队列调度芯片用于对长包进行队列调度;CPU用于根据流采样报文长度计算长包中包含的流采样报文数量,依次提取相应的流采样报文做进一步解析,获取流采样所需信息。本发明专利技术能够有效降低流采样处理中CPU资源的消耗,提升流采样处理能力,满足越来越高的流采样性能要求。

【技术实现步骤摘要】

本专利技术涉及流采样
,具体来讲是一种基于FPGA(FieldProgrammableGateArray,现场可编程门阵列)实现流采样的装置及方法。
技术介绍
在实现流采样的过程中,通常需要进行流采样报文的接收和流采样报文的解析等操作。一般来说,常用的设备CPU系统通过IRQ(InterruptRequest,中断请求)和DMA(DirectMemoryAccess,直接存储器访问)方式完成流采样报文的接收;而流采样报文的解析则通过CPU上运行的软件完成。也就是说,一般情况下CPU收到IRQ(中断请求)后,会通过DMA的方式完成流采样报文接收,然后再通过CPU上运行的软件完成流采样报文的解析,整个过程都需要CPU的参与。但随着线卡容量越来越高,流采样需要CPU处理的报文越来越多,一旦出现报文包数量过大或速率过高,则会直接导致CPU中断次数过多,DMA访问频率过高,从而大量占用CPU资源;加之,CPU还需通过运行软件实现流采样报文的解析,就会进一步加剧CPU资源的使用,使得CPU负荷过大。而受制于CPU的硬件性能的限制,当前流采样方案已不足以支持流采样功能对CPU计算能力的要求,也无法胜任运营商对流采样功能的需求。因此,如何降低流采样处理中CPU资源的消耗,提升流采样处理能力,使其满足越来越高的功能需求是我们亟待解决的问题。
技术实现思路
针对现有技术中存在的缺陷,本专利技术的目的在于提供一种基于FPGA实现流采样的装置及方法,能够有效降低流采样处理中CPU资源的消耗,提升流采样处理能力,从而满足越来越高的流采样性能要求。为达到以上目的,本专利技术采取的技术方案是:提供一种基于FPGA实现流采样的装置,包括网络处理器、FPGA、队列调度芯片和CPU,网络处理器分别与FPGA、队列调度芯片、CPU相连;所述网络处理器用于:在确定获取的原始报文需要进行采用时,转发原始报文并截取每个原始报文的前128字节作为流采样报文,发送至FPGA;并将FPGA解析后重组的长包发给队列调度芯片进行队列调度;最后将队列调度后的长包发送给CPU进行处理;所述FPGA用于:对收到的所有流采样报文进行初步解析,并按照一定算法将解析后流采样报文组合成长包发送至网络处理器;所述队列调度芯片用于:对长包进行队列调度后,将长包回传至网络处理器;所述CPU用于:收到长包后,根据流采样报文长度计算长包中包含的流采样报文数量,依次提取相应的流采样报文做进一步解析,获取流采样所需信息。在上述技术方案的基础上,所述网络处理器截取原始报文时,若原始报文的长度不足128字节,无需进行截取,直接将原始报文作为流采样报文发送至FPGA。在上述技术方案的基础上,所述FPGA按照一定算法将解析后流采样报文组合成长包发送至网络处理器,具体包括以下操作:设定FPGA的超时时间;若超时时间内FPGA收到流采样报文数量小于等于10个,则FPGA按实际数量将解析后流采样报文组合成长包发送至网络处理器,并重置超时时间,开始下一轮计时;若超时时间内,FPGA收到流采样报文数量一旦达到10个,FPGA则立即将这10个解析后流采样报文组合成长包发送至网络处理器,并重置超时时间,开始下一轮计时。在上述技术方案的基础上,所述网络处理器发送流采样报文时,需将流采样报文的mac头复用为私有报头,复用的私有报头的内容包括:VRF_ID、PORT_ID、DECTEC_TYPE、PKT_TYPE、DIREC、PKT_LEN、OUTER_L2_TYPE、INNER_L2_TYPE和RESV。在上述技术方案的基础上,所述FPGA发送长包时,需在每个长包的报文头部添加私有报头,添加的私有报头的内容包括:DECTEC_TYPE和RESV;所述网络处理器将FPGA解析后重组的长包发给队列调度芯片进行队列调度时,是通过添加的私有报头识别FPGA发送来的长包。本专利技术还提供一种应用上述装置的基于FPGA实现流采样的方法,包括以下步骤:A、网络处理器在确定获取的原始报文需要进行采用时,转发原始报文并截取每个原始报文的前128字节作为流采样报文,发送至FPGA,转入步骤B;B、FPGA对收到的所有流采样报文进行初步解析,按指定格式存储每个流采样报文携带的流信息,并按照一定算法将解析后流采样报文组合成长包发送至网络处理器,转入步骤C;C、网络处理器将长包发给队列调度芯片进行队列调度,转入步骤D;D、队列调度芯片对长包进行队列调度后,将长包回传至网络处理器,转入步骤E;E、网络处理器将长包发送给CPU;CPU收到长包后,根据流采样报文长度计算长包中包含的流采样报文数量,依次提取相应的流采样报文做进一步解析,获取流采样所需信息,结束。在上述技术方案的基础上,步骤A中,若原始报文的长度不足128字节,则网络处理器直接将原始报文作为流采样报文发送至FPGA。在上述技术方案的基础上,步骤A中,网络处理器发送流采样报文时,需将流采样报文的mac头复用为私有报头,复用的私有报头的内容包括:VRF_ID、PORT_ID、DECTEC_TYPE、PKT_TYPE、DIREC、PKT_LEN、OUTER_L2_TYPE、INNER_L2_TYPE和RESV。在上述技术方案的基础上,步骤B中,FPGA按照一定算法将解析后流采样报文组合成长包发送至网络处理器,具体包括以下操作:设定FPGA的超时时间;若超时时间内FPGA收到流采样报文数量小于等于10个,则FPGA按实际数量将解析后流采样报文组合成长包发送至网络处理器,并重置超时时间,开始下一轮计时;若超时时间内,FPGA收到流采样报文数量一旦达到10个,FPGA则立即将这10个解析后流采样报文组合成长包发送至网络处理器,并重置超时时间,开始下一轮计时。在上述技术方案的基础上,步骤B中,FPGA发送长包时,需在每个长包的报文头部添加私有报头,添加的私有报头的内容包括:DECTEC_TYPE和RESV;步骤C中,网络处理器将长包发给队列调度芯片进行队列调度时,是通过添加的私有报头识别FPGA发送来的长包。本专利技术的有益效果在于:专利技术中,通过网络处理器对流采样上送报文(即原始报文)截取有用信息,再通过FPGA对流采样报文内容进行解析,并将解析后的多个报文信息封装为长包后发送给CPU,最后CPU再本文档来自技高网...

【技术保护点】
一种基于FPGA实现流采样的装置,其特征在于:该装置包括网络处理器、FPGA、队列调度芯片和CPU,网络处理器分别与FPGA、队列调度芯片、CPU相连;所述网络处理器用于:在确定获取的原始报文需要进行采用时,转发原始报文并截取每个原始报文的前128字节作为流采样报文,发送至FPGA;并将FPGA解析后重组的长包发给队列调度芯片进行队列调度;最后将队列调度后的长包发送给CPU进行处理;所述FPGA用于:对收到的所有流采样报文进行初步解析,并按照一定算法将解析后流采样报文组合成长包发送至网络处理器;所述队列调度芯片用于:对长包进行队列调度后,将长包回传至网络处理器;所述CPU用于:收到长包后,根据流采样报文长度计算长包中包含的流采样报文数量,依次提取相应的流采样报文做进一步解析,获取流采样所需信息。

【技术特征摘要】
1.一种基于FPGA实现流采样的装置,其特征在于:该装置包
括网络处理器、FPGA、队列调度芯片和CPU,网络处理器分别与
FPGA、队列调度芯片、CPU相连;
所述网络处理器用于:在确定获取的原始报文需要进行采用时,
转发原始报文并截取每个原始报文的前128字节作为流采样报文,发
送至FPGA;并将FPGA解析后重组的长包发给队列调度芯片进行队
列调度;最后将队列调度后的长包发送给CPU进行处理;
所述FPGA用于:对收到的所有流采样报文进行初步解析,并按
照一定算法将解析后流采样报文组合成长包发送至网络处理器;
所述队列调度芯片用于:对长包进行队列调度后,将长包回传至
网络处理器;
所述CPU用于:收到长包后,根据流采样报文长度计算长包中
包含的流采样报文数量,依次提取相应的流采样报文做进一步解析,
获取流采样所需信息。
2.如权利要求1所述的基于FPGA实现流采样的装置,其特征
在于:所述网络处理器截取原始报文时,若原始报文的长度不足128
字节,无需进行截取,直接将原始报文作为流采样报文发送至FPGA。
3.如权利要求1所述的基于FPGA实现流采样的装置,其特征
在于:所述FPGA按照一定算法将解析后流采样报文组合成长包发送
至网络处理器,具体包括以下操作:设定FPGA的超时时间;若超时
时间内FPGA收到流采样报文数量小于等于10个,则FPGA按实际
数量将解析后流采样报文组合成长包发送至网络处理器,并重置超时
时间,开始下一轮计时;若超时时间内,FPGA收到流采样报文数量
一旦达到10个,FPGA则立即将这10个解析后流采样报文组合成长

\t包发送至网络处理器,并重置超时时间,开始下一轮计时。
4.如权利要求1所述的基于FPGA实现流采样的装置,其特征
在于:所述网络处理器发送流采样报文时,需将流采样报文的mac
头复用为私有报头,复用的私有报头的内容包括:VRF_ID、PORT_ID、
DECTEC_TYPE、PKT_TYPE、DIREC、PKT_LEN、OUTER_L2_TYPE、
INNER_L2_TYPE和RESV。
5.如权利要求1所述的基于FPGA实现流采样的装置,其特征
在于:所述FPGA发送长包时,需在每个长包的报文头部添加私有报
头,添加的私有报头的内容包括:DECTEC_TYPE和RESV;所述网
络处理器将FPGA解析后重组的长包发给队列调度芯片进行队列调
度时,是通过添加的私有报头识别FPGA发送来的...

【专利技术属性】
技术研发人员:朱哲邓卉文
申请(专利权)人:烽火通信科技股份有限公司
类型:发明
国别省市:湖北;42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1