一种基于FPGA的网络报文匹配和接收单元的制作方法

文档序号:11693111阅读:694来源:国知局
一种基于FPGA的网络报文匹配和接收单元的制造方法与工艺

本发明属于一种网络报文接收单元,具体是一种基于fpga的网络报文匹配和接收单元。



背景技术:

网络测试仪是测试网络设备性能好坏的重要测量工具,很多网络设备包括交换机等性能的测试都需要依赖网络测试仪来进行测试。通常电脑的网口测试只能承受十几兆的数据传输速率,在速率过高之后会发生丢包、出现错乱报文的情况,目前市场上的以太网测试设备多出现在国外,成本较高。



技术实现要素:

本发明的目的在于提供一种基于fpga的网络报文匹配和接收单元,这种单元能实现网口报文的接收,适用于千兆百兆十兆速率的报文接收。

实现本发明目的的技术解决方案为:一种基于fpga的网络报文匹配和接收单元,包括命令解析模块、报文接收模块、报文抓取模块、报文存储模块和信息返还模块,所述的命令解析模块由fifo缓冲、计数器和命令比较模块构成,将从powerpc接收到的数据在计数器计数的情况下和设定的命令条件进行比较,完成命令的解析,解析结果包括发送给信息返还模块的信息返还命令和发送给报文抓取模块的匹配抓包要求;所述的报文接收模块由网口ip核和时钟转换模块构成,被测设备的发送报文通过网口传输进来,利用fifo对报文进行时钟域转换后送到报文抓取模块;所述的报文抓取模块由报文信息分析模块和报文匹配模块构成,将接收到的报文中的信息进行提取,按照解析模块传递的命令进行匹配,将匹配的报文送到报文存储模块;所述的报文存储模块由ram构成,将多个ram按照环回要求组成环回ram,将匹配得到的报文进行环回存储;所述的信息返还模块由字节转换和返还选择模块构成,返还的信息包括抓取的报文、报文的统计值和命令接收成功信息,根据命令解析模块的命令将信息有序的返还给powerpc。

所述的命令解析模块将从powerpc输入的命令信息进行卡板号和端口号的与判断之后存入fifo中缓冲,由计数器确定需要进判断的位置,和设定的条件比较判断后得到解析结果,包括信息返还命令和匹配抓包要求。

所述的报文接收模块收到从被测设备通过网口传输进来的报文,利用fifo对报文进行时钟域转换,然后将报文送到报文抓取模块。

报文抓取模块先统计接收到的报文数和字节数,然后将接收到的报文中的信息进行提取,按照解析模块传递的命令进行匹配,将匹配的报文送到报文存储模块中。

报文存储模块将多个ram按照环回要求组成环回ram,将匹配得到的报文进行环回存储,当收到返还要求就会输出一个报文到信息返还模块。

信息返还模块返还的信息包括抓取的报文、报文的统计值和命令接收成功信息,将所有返还信息统一转换成16字节,根据命令解析模块的命令将信息有序的返还给powerpc。

本发明与现有技术相比,其显著优点:(1)本发明可以对千兆的数据速率进行接收处理,可以确保数据的不丢失,不发生错乱。(2)本发明对于以太网口数据的接收可以进行多方面的统计,可以通过软件设置不同模式的抓包方式对网口收到的数据进行处理,选择出符合各种要求的报文,时钟频率可达200mhz,能够对高速率报文进行准确处理。

附图说明

图1是接收单元的总体结构图。

图2是命令解析模块结构图。

图3是报文接收模块结构图。

图4是报文抓取模块结构图。

图5是报文存储模块结构图。

图6是信息返还模块结构图。

图7是信息分成提取。

图8是接收发送报文选择机制。

具体实施方式

下面结合附图对本发明作进一步的详细说明。

本发明提供了一种基于fpga的网络报文匹配和接收单元,包括命令解析模块、报文接收模块、报文抓取模块、报文存储模块和信息返还模块,具体结构如图1所示。图1所示的接收单元能够处理十兆百兆千兆速率的数据,本发明以图1所示结构为例,说明发明的具体实施方式。其中上位机通过powerpc将用户的命令要求发送到fpga,数据经过命令解析模块解析完毕后传递给报文抓取模块和信息返还模块;报文接收模块通过网口接收被测网络设备发送的报文,并将接收到的报文发送到报文抓取模块;报文抓取模块将从报文接收模块接收到的报文按照命令解析模块传递的命令进行匹配,然后将匹配正确的报文发送到报文存储模块;信息返还模块将从报文存储模块接收的数据按照命令解析模块的要求有序返还给powerpc。

上位机通过powerpc将用户的命令要求发送到fpga,数据经过命令解析模块解析完毕后传递给报文抓取模块和信息返还模块;报文接收模块通过网口接收被测网络设备发送的报文,并将接收到的报文发送到报文抓取模块;报文抓取模块将从报文接收模块接收到的报文按照命令解析模块传递的命令进行匹配,然后将匹配正确的报文发送到报文存储模块;信息返还模块将从报文存储模块接收的数据按照命令解析模块的要求有序返还给powerpc。

下面对各部分结构进行详细介绍:

命令解析模块,如图2所示,由命令输入、卡板号端口号预判断、fifo缓冲区、计数器和比较判断组成。将从powerpc接收到的数据进行卡板号和端口号进行预判断之后存入fifo中缓冲,在fifo非空时开始读操作,读出的数据进行计数,在指定位置将数据和预定数据进行比较判断,得到命令解析的结果,解析结果包括发送给信息返还模块的信息返还命令和发送给报文抓取模块的匹配抓包要求。

报文接收模块,如图3所示,将从被测设备通过网口传输进来的报文通过fifo对报文进行时钟域转换,转换成125mhz的时钟,然后将报文送到报文抓取模块,从网口收到的数据最高可达千兆。

报文抓取模块,如图4所示,先统计接收到的报文数和字节数,根据报文长度对接收到的报文进行分段统计,将统计结果送到信息返还模块,然后将接收到的报文中的信息进行提取,主要包括mac地址、ip和udp等信息,按照解析模块传递的命令进行匹配,将匹配的报文送到报文存储模块中

报文存储模块,如图5所示,主要由ram构成,将多个ram按照环回要求组成环回ram,将匹配得到的报文进行环回存储,存满覆盖第一个ram继续存入,每次收到get命令按顺序读取一个报文到信息返还模块,读取之后继续存入报文,保证抓取的报文具有相邻近性。

信息返还模块,如图6所示,返还的信息包括抓取的报文、报文的统计值和命令接收成功信息,由于从网口抓取的报文位宽为8字节,报文的统计值为64字节,而返还经过serdes,要求将所有返还信息统一转换成16字节,根据命令解析模块的不同返还命令将信息有序的返还给powerpc。

信息分层提取,如图7所示,可以对mac地址层、ip层、udp层、payload层和fcs进行分层串行提取信息,首先提取mac的源地址和目的地址信息,其次提取ip报文头的长度信息、协议和目的、源地址信息,udp的报文头长度、源、目的端口信息和udp到payload的长度等,基于fpga的串行数据处理可以增加到更多层的信息处理。

接收发送报文的选择,如图8所示,在收到同时抓取自己发送的报文和接收到的报文命令时,在存有这些报文的ram模块中各自输出一个计包数的寄存器,根据这个寄存器是否大于零来判断发送哪些报文,当同时不为零时,优先发送接收到的报文。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1