CN104702464A - 基于fpga的100g以太网测试报文的生成***及方法 - Google Patents

基于fpga的100g以太网测试报文的生成***及方法 Download PDF

Info

Publication number
CN104702464A
CN104702464A CN201510020595.1A CN201510020595A CN104702464A CN 104702464 A CN104702464 A CN 104702464A CN 201510020595 A CN201510020595 A CN 201510020595A CN 104702464 A CN104702464 A CN 104702464A
Authority
CN
China
Prior art keywords
bag
module
passage
memory
stream number
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
Application number
CN201510020595.1A
Other languages
English (en)
Other versions
CN104702464B (zh
Inventor
朱天全
鲍胜青
郭丽娜
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing OPWILL Technologies Co Ltd
Original Assignee
Beijing OPWILL Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing OPWILL Technologies Co Ltd filed Critical Beijing OPWILL Technologies Co Ltd
Priority to CN201510020595.1A priority Critical patent/CN104702464B/zh
Publication of CN104702464A publication Critical patent/CN104702464A/zh
Application granted granted Critical
Publication of CN104702464B publication Critical patent/CN104702464B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请公开了一种基于FPGA的100G以太网测试报文的生成***及方法,包括:接口模块,用于使FPGA通过PCI总线与CPU通信;调度模块,用于配置CPU发送速率,并根据发送速率,产生调度脉冲,每产生一个调度脉冲,则生成并发送一个报文;配置和统计模块,用于读取流号、包长和帧间隔,然后生成配置数据;组包和校验模块,用于将从所述配置和统计模块模块收到的配置数据锁存起来,将校验和添加进数据包中;通道混合和mac适配模块,用于将数据包进行合并。本发明的优点是:能以100Gbps线速生成、发送测试流量,完成测试统计量的测量、路由报文的产生和报文截取,显著增加了数据包的随机性和实时性。

Description

基于FPGA的100G以太网测试报文的生成***及方法
技术领域
本发明属于通信测试领域,涉及一种基于FPGA的100G以太网测试报文的生成***及方法。
背景技术
100G以太网技术是在10/100Mb/s和1/l0Gb/s等速率以太网技术基础上发展起来的,使用IEEE802.3规范所定义的以太帧规范,和目前的IEEE 802.3规范所定义的最大、最小帧相同,最大媒介访问控制(MAC)帧长为1518bytes,最小MAC为64bytes,其主要用于高速网络互联设备的性能测试。
现有技术100G以太网测试报文的产生过程是:根据以太网格式提前产生将所要发送的测试报文,然后写进外部存储器或者内部存储器中,产生调度信号从存储器中读取数据包,由于受通信速率的限制,测试报文缺少随机性和实时性。另外,使用CPU产生报文存在占有CPU资源多,CPU处理中断和进程所占用的时间长,以及CPU处理数据的效率低和性能低等缺陷。
发明内容
本发明的目的在于克服上述不足,提供一种基于FPGA的100G以太网测试报文的生成***,其显著增加了数据包的随机性和实时性。
为了实现上述目的,本发明采用的技术方案为:一种基于FPGA的100G以太网测试报文的生成***,其特征在于,包括:接口模块,用于使FPGA通过PCI总线与CPU通信;至少一个通道的调度模块,其包括调度控制信息存储器,流号存储器,包长存储器,用于配置CPU发送速率,并根据发送速率,产生调度脉冲,每产生一个调度脉冲,则生成并发送一个报文;当调度脉冲有效时,从当前流号存储器中取出的流号,根据流号从包长存储器读取数据包的长度,将流号、包长和帧间隔写入调度控制信息存储器中;至少一 个通道的配置和统计模块,用于读取所述流号、包长和帧间隔,然后从该流号对应的报文生成配置数据,并更新该流的统计数据;至少一个通道的组包和校验模块,其包括数据存储器与控制信息存储器,用于将从所述配置和统计模块生成的配置数据锁存起来,根据配置数据组包,计算私有协议的校验和,IP包的校验和,以及TCP/UDP包的校验和,将所述校验和添加进组包后的数据中,以生成组完的数据包,将所述组完的数据包存进所述数据存储器中,包长和帧间隔存进所述控制信息存储器中;通道混合和mac适配模块,用于将所述数据存储器中组完的数据包进行合并。
本发明的另一目的在于提供一种基于FPGA的100G以太网测试报文的生成***,其特征在于,包括:接口模块,用于使FPGA通过PCI总线与CPU通信;至少一个通道的调度模块,其包括调度控制信息存储器,流号存储器,包长存储器,用于配置CPU发送速率,并根据发送速率,产生调度脉冲,每产生一个调度脉冲,则生成并发送一个报文;当调度脉冲有效时,从当前流号存储器中取出的流号,根据流号从包长存储器读取数据包的长度,将流号、包长和帧间隔写入调度控制信息存储器中;至少一个通道的配置和统计模块,用于读取所述流号、包长和帧间隔,然后从该流号对应的报文生成配置数据,并更新该流的统计数据;至少一个通道的组包和校验模块,其包括数据存储器与控制信息存储器,用于将从所述配置和统计模块生成的配置数据锁存起来,根据配置数据组包,计算私有协议的校验和,IP包的校验和,以及TCP/UDP包的校验和,将所述校验和添加进组包后的数据中,以生成组完的数据包,将所述组完的数据包存进所述数据存储器中,包长和帧间隔存进所述控制信息存储器中;环回模块,用于使CPU设置环回模式,其包括接收侧环回数据存储器,根据CPU设置的环回模式,从接收侧环回数据存储器接收报文,并进行源/目的地址的对调后,重新计算所述私有协议的校验和,IP包的校验和,TCP/UDP包的校验和,以生成环回数据包,将所述环回数据包保存到发送侧环回数据存储器;通道混合和mac适配模块,用于直接读取所述发送侧环回数据存储器中的报文,并发送出去。
本发明的又一目的在于提供一种基于FPGA的100G以太网测试报文的生成方法,其特征在于,包括:接口模块,使FPGA通过PCI总线与CPU通信;至少一个通道的调度模块,其包括调度控制信息存储器,流号存储器, 包长存储器,配置CPU发送速率,并根据发送速率,产生调度脉冲,每产生一个调度脉冲,则生成并发送一个报文;当调度脉冲有效时,从当前流号存储器中取出的流号,根据流号从包长存储器读取数据包的长度,将流号、包长和帧间隔写入调度控制信息存储器中;至少一个通道的配置和统计模块,读取所述流号、包长和帧间隔,然后从该流号对应的报文生成配置数据,并更新该流的统计数据;至少一个通道的组包和校验模块,其包括数据存储器与控制信息存储器,将从所述配置和统计模块生成的配置数据锁存起来,根据配置数据组包,计算私有协议的校验和,IP包的校验和,以及TCP/UDP包的校验和,将所述校验和添加进组包后的数据中,以生成组完的数据包,将所述组完的数据包存进所述数据存储器中,包长和帧间隔存进所述控制信息存储器中;通道混合和mac适配模块,将所述数据存储器中组完的数据包进行合并。
本发明的还一目的在于提供一种基于FPGA的100G以太网测试报文的生成方法,其特征在于,包括:接口模块,使FPGA通过PCI总线与CPU通信;至少一个通道的调度模块,其包括调度控制信息存储器,流号存储器,包长存储器,配置CPU发送速率,并根据发送速率,产生调度脉冲,每产生一个调度脉冲,则生成并发送一个报文;当调度脉冲有效时,从当前流号存储器中取出的流号,根据流号从包长存储器读取数据包的长度,将流号、包长和帧间隔写入调度控制信息存储器中;至少一个通道的配置和统计模块,读取所述流号、包长和帧间隔,然后从该流号对应的报文生成配置数据,并更新该流的统计数据;至少一个通道的组包和校验模块,其包括数据存储器与控制信息存储器,将从所述配置和统计模块生成的配置数据锁存起来,根据配置数据组包,计算私有协议的校验和,IP包的校验和,以及TCP/UDP包的校验和,将所述校验和添加进组包后的数据中,以生成组完的数据包,将所述组完的数据包存进所述数据存储器中,包长和帧间隔存进所述控制信息存储器中;环回模块,使CPU设置环回模式,其包括接收侧环回数据存储器,根据CPU设置的环回模式,从接收侧环回数据存储器接收报文,并进行源/目的地址的对调后,重新计算所述私有协议的校验和,IP包的校验和,TCP/UDP包的校验和,以生成环回数据包,将所述环回数据包保存到发送侧环回数据存储器;通道混合和mac适配模块,直接读取所述发送侧环回数据 存储器中的报文,并发送出去。
本发明的有益效果为:
第一,结构简单,包括接口模块;至少一个通道的调度模块;至少一个通道的配置和统计模块;至少一个通道的组包和校验模块,通道混合和mac适配模块,采用多个通道进行组包,克服现有技术使用CPU产生报文存在占有CPU资源多,CPU处理中断和进程所占用的时间长,以及CPU处理数据的效率低和性能低等缺陷,能够使用硬件实现测试报文的产生,显著增加了数据包的随机性和实时性。
第二,应用广泛,环回模块使CPU设置环回模式,其包括接收侧环回数据存储器,根据CPU设置的环回模式,从接收侧环回数据存储器接收报文,并进行源/目的地址的对调后,重新计算私有协议的校验和,IP包的校验和,TCP/UDP包的校验和,以生成环回数据包,将环回数据包保存到发送侧环回数据存储器。实时调整数据包的类型,能以100Gbps线速生成、发送测试流量,完成测试统计量的测量、路由报文的产生和报文截取。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是本发明的基于FPGA的100G以太网测试报文的生成***的实施例结构示意图;
图2是本发明的基于FPGA的100G以太网测试报文的生成***的另一实施例结构示意图;
图3是本发明的基于FPGA的100G以太网测试报文的生成方法的实施例流程图;
图4是本发明的基于FPGA的100G以太网测试报文的生成方法的另一实施例流程图。
具体实施方式
如在说明书及权利要求当中使用了某些词汇来指称特定组件。本领域技 术人员应可理解,硬件制造商可能会用不同名词来称呼同一个组件。本说明书及权利要求并不以名称的差异来作为区分组件的方式,而是以组件在功能上的差异来作为区分的准则。如在通篇说明书及权利要求当中所提及的“包含”为一开放式用语,故应解释成“包含但不限定于”。“大致”是指在可接收的误差范围内,本领域技术人员能够在一定误差范围内解决所述技术问题,基本达到所述技术效果。说明书后续描述为实施本申请的较佳实施方式,然所述描述乃以说明本申请的一般原则为目的,并非用以限定本申请的范围。本申请的保护范围当视所附权利要求所界定者为准。
实施例1
请参照图1,本发明的基于FPGA的100G以太网测试报文的生成***包括:接口模块,用于使FPGA通过PCI总线与CPU通信;至少一个通道的调度模块,其包括调度控制信息存储器,流号存储器,包长存储器,用于配置CPU发送速率,并根据发送速率,产生调度脉冲,每产生一个调度脉冲,则生成并发送一个报文;当调度脉冲有效时,从当前流号存储器中取出的流号,根据流号从包长存储器读取数据包的长度,将流号、包长和帧间隔写入调度控制信息存储器中;至少一个通道的配置和统计模块,用于读取所述流号、包长和帧间隔,然后从该流号对应的报文生成配置数据,并更新该流的统计数据;至少一个通道的组包和校验模块,其包括数据存储器与控制信息存储器,用于将从所述配置和统计模块生成的配置数据锁存起来,根据配置数据组包,计算私有协议的校验和,IP包的校验和,以及TCP/UDP包的校验和,将所述校验和添加进组包后的数据中,以生成组完的数据包,将所述组完的数据包存进所述数据存储器中,包长和帧间隔存进所述控制信息存储器中;通道混合和mac适配模块,用于将所述数据存储器中组完的数据包进行合并。
优选地,还包括高速以太网接口模块,其与所述通道混合和mac适配模块进行连接。
优选地,所述高速以太网接口模块包括:40G/100G物理编码子层模块,和MAC模块。
优选地,所述通道数目为5个。
作为具体的实施例,包括:通道0调度模块,通道1调度模块,通道2 调度模块,通道3调度模块,通道4调度模块。
优选地,每个通道调度模块包括调度控制信息存储器,流号存储器,包长存储器。
作为具体的实施例,包括:通道0配置及统计模块,通道1配置及统计模块,通道2配置及统计模块,通道3配置及统计模块,通道4配置及统计模块。
作为具体的实施例,包括:通道0组包模块,通道1组包模块,通道2组包模块,通道3组包模块,通道4组包模块。 
优选地,每个通道组包模块包括数据存储器与控制信息存储器。
作为具体的实施例,所述通道0组包模块,通道1组包模块,通道2组包模块,通道3组包模块,通道4组包模块连接通道混合和mac适配模块,所述通道混合和mac适配模块连接高速以太网接口模块。
优选地,每个通道的参考时钟为195.3125Mhz,处理的数据位宽为512bit。
优选地,FPGA芯片主要包括:可编程输入输出单元、基本可编程逻辑单元、时钟管理单元、嵌入块式RAM、布线单元、内嵌的底层功能单元和内嵌专用硬件模块。
优选地,FPGA利用小型查找表(16×1RAM)来实现组合逻辑,每个查找表连接到一个D触发器的输入端,触发器再来驱动其他逻辑电路或驱动I/O,由此构成了即可实现组合逻辑功能又可实现时序逻辑功能的基本逻辑单元模块,这些模块间利用金属连线互相连接或连接到I/O模块。
优选地,FPGA的逻辑是通过向内部静态存储单元加载编程数据来实现的,存储在存储器单元中的值决定了逻辑单元的逻辑功能以及个模块之间或模块与I/O间的连接方式,并最终决定了逻辑单元的逻辑功能以及各模块之间或模块与I/O间的联接方式,并最终决定了FPGA所能实现的功能,FPGA允许无限次的编程。
优选地,所述可编程输入输出单元是与外界电路的接口部分,用于完成不同电气特性下对输入/输出信号的驱动与匹配要求,通过软件的灵活配置,可适配不同的电气标准与I/O物理特性,可以调整驱动电流的大小。
优选地,外部输入信号可以通过可编程输入输出单元输入到FPGA的内部,也可以直接输入FPGA内部。
优选地,基本可编程逻辑单元包含一个可配置开关矩阵,此矩阵由4或6个输入、一些选型电路(多路复用器等)和触发器组成。
优选地,开关矩阵是高度灵活的,可以对其进行配置以便处理组合逻辑、移位寄存器或RAM。
优选地,每个基本可编程逻辑单元不仅可以用于实现组合逻辑、时序逻辑,还可以配置为分布式RAM和分布式ROM。
优选地,基本可编程逻辑单元由两个4输入的函数、进位逻辑、算术逻辑、存储逻辑和函数复用器组成。
优选地,算术逻辑包括一个异或门和一个与门,一个异或门可以实现2bit全加操作,进位逻辑由进位信号和函数复用器组成,用于实现快速的算术加减法操作;4输入函数发生器用于实现4输入LUT、分布式RAM或16比特移位寄存器。
优选地,所述进位逻辑包括两条快速进位链,用于提高基本可编程逻辑单元的处理速度。
优选地,时钟管理单元用于数字时钟管理和相位环路锁定。相位环路锁定能够提供精确的时钟综合,且能够降低抖动,并实现过滤功能。
优选地,嵌入块式RAM可被配置为单端口RAM、双端口RAM、内容地址存储器以及FIFO等存储结构。 
优选地,内容地址存储器在其内部的每个存储单元中都有一个比较逻辑,写入CAM中的数据会和内部的每一个数据进行比较,并返回与端口数据相同的所有数据的地址。
优选地,布线单元连通FPGA内部的所有单元,根据工艺、长度、宽度和分布位置的不同而划分为4类不同的类别。第一类是全局布线模块,用于芯片内部全局时钟和全局复位/置位的布线;第二类是长线模块,用以完成芯片Bank间的高速信号和第二全局时钟信号的布线;第三类是短线模块,用于完成基本逻辑单元之间的逻辑互连和布线;第四类是分布式的布线模块,用于专有时钟、复位等控制信号线。
优选地,内嵌的底层功能单元包括:DLL(Delay Locked Loop),PLL(Phase Locked Loop),DSP。用于完成时钟高精度、低抖动的倍频和分频,以及占空比调整和移相等功能。
优选地,本实施例采用的配置模式为将FPGA连接CPU,由CPU对FPGA编程。
优选地,还可采用一片FPGA加一片EPROM的配置模式。 
优选地,还可采用一片PROM编程多片FPGA的配置模式。 
优选地,还可采用串行PROM编程FPGA的配置模式。 
实施例2
请参照图2,本实施例的基于FPGA的100G以太网测试报文的生成***,包括:接口模块,用于使FPGA通过PCI总线与CPU通信;至少一个通道的调度模块,其包括调度控制信息存储器,流号存储器,包长存储器,用于配置CPU发送速率,并根据发送速率,产生调度脉冲,每产生一个调度脉冲,则生成并发送一个报文;当调度脉冲有效时,从当前流号存储器中取出的流号,根据流号从包长存储器读取数据包的长度,将流号、包长和帧间隔写入调度控制信息存储器中;至少一个通道的配置和统计模块,用于读取所述流号、包长和帧间隔,然后从该流号对应的报文生成配置数据,并更新该流的统计数据;至少一个通道的组包和校验模块,其包括数据存储器与控制信息存储器,用于将从所述配置和统计模块生成的配置数据锁存起来,根据配置数据组包,计算私有协议的校验和,IP包的校验和,以及TCP/UDP包的校验和,将所述校验和添加进组包后的数据中,以生成组完的数据包,将所述组完的数据包存进所述数据存储器中,包长和帧间隔存进所述控制信息存储器中;环回模块,用于使CPU设置环回模式,其包括接收侧环回数据存储器,根据CPU设置的环回模式,从接收侧环回数据存储器接收报文,并进行源/目的地址的对调后,重新计算所述私有协议的校验和,IP包的校验和,TCP/UDP包的校验和,以生成环回数据包,将所述环回数据包保存到发送侧环回数据存储器;通道混合和mac适配模块,用于直接读取所述发送侧环回数据存储器中的报文,并发送出去。
优选地,还包括高速以太网接口模块,其与所述通道混合和mac适配模块进行连接。
优选地,所述高速以太网接口模块包括:40G/100G物理编码子层模块,和MAC模块。
优选地,所述通道数目为5个。
作为具体的实施例,包括:通道0调度模块,通道1调度模块,通道2调度模块,通道3调度模块,通道4调度模块。 
优选地,每个通道调度模块包括调度控制信息存储器,流号存储器,包长存储器。
作为具体的实施例,包括:通道0配置及统计模块,通道1配置及统计模块,通道2配置及统计模块,通道3配置及统计模块,通道4配置及统计模块。
作为具体的实施例,包括:通道0组包模块,通道1组包模块,通道2组包模块,通道3组包模块,通道4组包模块。 
优选地,每个通道组包模块包括数据存储器与控制信息存储器。
作为具体的实施例,所述通道0组包模块,通道1组包模块,通道2组包模块,通道3组包模块,通道4组包模块连接通道混合和mac适配模块,所述通道混合和mac适配模块连接高速以太网接口模块。
优选地,每个通道的参考时钟为195.3125Mhz,处理的数据位宽为512bit。
实施例3
请参照图3,本实施例的基于FPGA的100G以太网测试报文的生成方法,包括:接口模块,使FPGA通过PCI总线与CPU通信;至少一个通道的调度模块,其包括调度控制信息存储器,流号存储器,包长存储器,配置CPU发送速率,并根据发送速率,产生调度脉冲,每产生一个调度脉冲,则生成并发送一个报文;当调度脉冲有效时,从当前流号存储器中取出的流号,根据流号从包长存储器读取数据包的长度,将流号、包长和帧间隔写入调度控制信息存储器中;至少一个通道的配置和统计模块,读取所述流号、包长和帧间隔,然后从该流号对应的报文生成配置数据,并更新该流的统计数据;至少一个通道的组包和校验模块,其包括数据存储器与控制信息存储器,将从所述配置和统计模块生成的配置数据锁存起来,根据配置数据组包,计算私有协议的校验和,IP包的校验和,以及TCP/UDP包的校验和,将所述校验和添加进组包后的数据中,以生成组完的数据包,将所述组完的数据包存进所述数据存储器中,包长和帧间隔存进所述控制信息存储器中;通道混合 和mac适配模块,将所述数据存储器中组完的数据包进行合并。
优选地,配置数据是以太网包结构中所需的头部信息,例如:源MAC地址,目的MAC地址,源IP地址,目的IP地址。
优选地,以太网的帧格式为:帧头+填充数据+帧尾,MAC目的地址,通常用十六进制表示。目的地址被用于在设备之间判断以太网帧的传递方向和路由。每一个以太网设备通常被分配一个唯一的MAC地址。
而有些特殊的MAC地址被保留,用于表示一些特殊的功能,例如,全1的地址(FF:FF:FF:FF:FF:FF)用于表示广播地址。
优选地,源地址:6字节,是指发送方的MAC地址。通常用十六进制表示。源地址一般是在生产时,由生产厂商写入设备里,MAC地址的前三个字节表示厂商代码,后三个字节表示设备序号。需要注意的是,对于某些设备,例如测试设备,它的MAC地址是可以随时设置的。
优选地,长度/类型字段:2字节,这个字段用于表示帧的长度或封装的上层数据协议类型。如果该字段小于05DC(HEX),则表示长度,如果大于0600(HEX),则表示数据域的协议类型。例如:0800HEX表示是IP协议。
优选地,数据域:46到1500字节,数据域中是需要传输的应用数据,通常包含上层协议数据,如IP数据等。
优选地,FCS帧校验序列:4字节,发送方通过计算帧中的每一个字节,得到帧校验序列,并***到帧的最后发送。接收方在接收过程中,会重新计算校验序列,并与接收帧中\最后4字节校验序列做比较。对于帧校验序列错,或丢失的以太网帧,大多数的设备会将之丢弃。
目标地址 源地址 长度/类型 填充数据域 FCS
优选地,传输协议是TCP和UDP,以下是TCP包的帧格式:
目标地址 源地址 类型 IP首部 TCP首部 填充数据 FCS
IP首部结构: 
TCP协议首部结构:
UDP首部结构
源端口(16位) 目的端口(16位) 长度域(16位) 校验和(16位)
优选地,IP头部校验和:只检验IP数据包首部,把首部以16位为单位,依次进行二进制反码求和。
优选地,TCP数据包校验和满足算法:TCP伪首部+TCP首部+数据;其中TCP伪首部为:32位源IP地址,32位目的IP地址,8位协议,16位TCP 长度。
优选地,UDP数据包校验和满足算法:UDP伪首部+UDP首部+数据;其中UDP伪首部为:32位源IP地址,32位目的IP地址,8位协议,16位UDP长度。
优选地,所述合并的步骤包括依次读取每个通道的控制信息存储器中的包长和帧间隔,根据所述包长与帧间隔的和值产生读取每个通道的数据包的信号。
优选地,采用计数器计数,当计数达到所述和值时产生读取每个通道的数据包的信号。
优选地,所述通道数目为5个。
作为具体的实施例,包括:通道0调度模块,通道1调度模块,通道2调度模块,通道3调度模块,通道4调度模块。 
优选地,每个通道调度模块包括调度控制信息存储器,流号存储器,包长存储器。
作为具体的实施例,包括:通道0配置及统计模块,通道1配置及统计模块,通道2配置及统计模块,通道3配置及统计模块,通道4配置及统计模块。
作为具体的实施例,包括:通道0组包模块,通道1组包模块,通道2组包模块,通道3组包模块,通道4组包模块。 
优选地,每个通道组包模块包括数据存储器与控制信息存储器。
作为具体的实施例,所述通道0组包模块,通道1组包模块,通道2组包模块,通道3组包模块,通道4组包模块连接通道混合和mac适配模块,所述通道混合和mac适配模块连接高速以太网接口模块。
优选地,每个通道的参考时钟为195.3125Mhz,处理的数据位宽为512bit。
实施例4
请参照图4,本实施例的基于FPGA的100G以太网测试报文的生成方法,包括:接口模块,使FPGA通过PCI总线与CPU通信;至少一个通道的调度模块,其包括调度控制信息存储器,流号存储器,包长存储器,配置CPU发送速率,并根据发送速率,产生调度脉冲,每产生一个调度脉冲,则 生成并发送一个报文;当调度脉冲有效时,从当前流号存储器中取出的流号,根据流号从包长存储器读取数据包的长度,将流号、包长和帧间隔写入调度控制信息存储器中;至少一个通道的配置和统计模块,读取所述流号、包长和帧间隔,然后从该流号对应的报文生成配置数据,并更新该流的统计数据;至少一个通道的组包和校验模块,其包括数据存储器与控制信息存储器,将从所述配置和统计模块生成的配置数据锁存起来,根据配置数据组包,计算私有协议的校验和,IP包的校验和,以及TCP/UDP包的校验和,将所述校验和添加进组包后的数据中,以生成组完的数据包,将所述组完的数据包存进所述数据存储器中,包长和帧间隔存进所述控制信息存储器中;环回模块,使CPU设置环回模式,其包括接收侧环回数据存储器,根据CPU设置的环回模式,从接收侧环回数据存储器接收报文,并进行源/目的地址的对调后,重新计算所述私有协议的校验和,IP包的校验和,TCP/UDP包的校验和,以生成环回数据包,将所述环回数据包保存到发送侧环回数据存储器;通道混合和mac适配模块,直接读取所述发送侧环回数据存储器中的报文,并发送出去。
优选地,所述通道数目为5个。
作为具体的实施例,包括:通道0调度模块,通道1调度模块,通道2调度模块,通道3调度模块,通道4调度模块。 
优选地,每个通道调度模块包括调度控制信息存储器,流号存储器,包长存储器。
作为具体的实施例,包括:通道0配置及统计模块,通道1配置及统计模块,通道2配置及统计模块,通道3配置及统计模块,通道4配置及统计模块。
作为具体的实施例,包括:通道0组包模块,通道1组包模块,通道2组包模块,通道3组包模块,通道4组包模块。 
优选地,每个通道组包模块包括数据存储器与控制信息存储器。
作为具体的实施例,所述通道0组包模块,通道1组包模块,通道2组包模块,通道3组包模块,通道4组包模块连接通道混合和mac适配模块,所述通道混合和mac适配模块连接高速以太网接口模块。
优选地,每个通道的参考时钟为195.3125Mhz,处理的数据位宽为512bit。
本发明的有益效果为:
第一,结构简单,包括接口模块;至少一个通道的调度模块;至少一个通道的配置和统计模块;至少一个通道的组包和校验模块,通道混合和mac适配模块,采用多个通道进行组包,克服现有技术使用CPU产生报文存在占有CPU资源多,CPU处理中断和进程所占用的时间长,以及CPU处理数据的效率低和性能低等缺陷,能够使用硬件实现测试报文的产生,显著增加了数据包的随机性和实时性。
第二,应用广泛,环回模块使CPU设置环回模式,其包括接收侧环回数据存储器,根据CPU设置的环回模式,从接收侧环回数据存储器接收报文,并进行源/目的地址的对调后,重新计算私有协议的校验和,IP包的校验和,TCP/UDP包的校验和,以生成环回数据包,将环回数据包保存到发送侧环回数据存储器实时调整数据包的类型,能以100Gbps线速生成、发送和接收测试流量,完成测试统计量的测量、路由报文的产生和报文截取。
上述说明示出并描述了本申请的若干优选实施例,但如前所述,应当理解本申请并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述申请构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本申请的精神和范围,则都应在本申请所附权利要求的保护范围内。

Claims (10)

1.一种基于FPGA的100G以太网测试报文的生成***,其特征在于,包括:
接口模块,用于使FPGA通过PCI总线与CPU通信;
至少一个通道的调度模块,其包括调度控制信息存储器,流号存储器,包长存储器,用于配置CPU发送速率,并根据发送速率,产生调度脉冲,每产生一个调度脉冲,则生成并发送一个报文;当调度脉冲有效时,从当前流号存储器中取出的流号,根据流号从包长存储器读取数据包的长度,将流号、包长和帧间隔写入调度控制信息存储器中;
至少一个通道的配置和统计模块,用于读取所述流号、包长和帧间隔,然后从该流号对应的报文生成配置数据,并更新该流的统计数据;
至少一个通道的组包和校验模块,其包括数据存储器与控制信息存储器,用于将从所述配置和统计模块生成的配置数据锁存起来,根据配置数据组包,计算私有协议的校验和,IP包的校验和,以及TCP/UDP包的校验和,将所述校验和添加进组包后的数据中,以生成组完的数据包,将所述组完的数据包存进所述数据存储器中,包长和帧间隔存进所述控制信息存储器中;
通道混合和mac适配模块,用于将所述数据存储器中组完的数据包进行合并。
2.一种基于FPGA的100G以太网测试报文的生成***,其特征在于,包括:
接口模块,用于使FPGA通过PCI总线与CPU通信;
至少一个通道的调度模块,其包括调度控制信息存储器,流号存储器,包长存储器,用于配置CPU发送速率,并根据发送速率,产生调度脉冲,每产生一个调度脉冲,则生成并发送一个报文;当调度脉冲有效时,从当前流号存储器中取出的流号,根据流号从包长存储器读取数据包的长度,将流号、包长和帧间隔写入调度控制信息存储器中;
至少一个通道的配置和统计模块,用于读取所述流号、包长和帧间隔,然后从该流号对应的报文生成配置数据,并更新该流的统计数据;
至少一个通道的组包和校验模块,其包括数据存储器与控制信息存储器,用于将从所述配置和统计模块生成的配置数据锁存起来,根据配置数据组包,计算私有协议的校验和,IP包的校验和,以及TCP/UDP包的校验和,将所述校验和添加进组包后的数据中,以生成组完的数据包,将所述组完的数据包存进所述数据存储器中,包长和帧间隔存进所述控制信息存储器中;
环回模块,用于使CPU设置环回模式,其包括接收侧环回数据存储器,根据CPU设置的环回模式,从接收侧环回数据存储器接收报文,并进行源/目的地址的对调后,重新计算所述私有协议的校验和,IP包的校验和,TCP/UDP包的校验和,以生成环回数据包,将所述环回数据包保存到发送侧环回数据存储器;
通道混合和mac适配模块,用于直接读取所述发送侧环回数据存储器中的报文,并发送出去。
3.根据权利要求1或2所述的基于FPGA的100G以太网测试报文的生成***,其特征在于,还包括高速以太网接口模块,其与所述通道混合和mac适配模块进行连接。
4.根据权利要求3所述的基于FPGA的100G以太网测试报文的生成***,其特征在于,所述高速以太网接口模块包括:40G/100G物理编码子层模块,和MAC模块。
5.根据权利要求1或2所述的基于FPGA的100G以太网测试报文的生成***,其特征在于,所述通道数目为5个。
6.根据权利要求5所述的基于FPGA的100G以太网测试报文的生成***,其特征在于,每个通道的参考时钟为195.3125Mhz,处理的数据位宽为512bit。
7.一种基于FPGA的100G以太网测试报文的生成方法,其特征在于,包括:
接口模块,使FPGA通过PCI总线与CPU通信;
至少一个通道的调度模块,其包括调度控制信息存储器,流号存储器,包长存储器,配置CPU发送速率,并根据发送速率,产生调度脉冲,每产生一个调度脉冲,则生成并发送一个报文;当调度脉冲有效时,从当前流号存储器中取出的流号,根据流号从包长存储器读取数据包的长度,将流号、包长和帧间隔写入调度控制信息存储器中;
至少一个通道的配置和统计模块,读取所述流号、包长和帧间隔,然后从该流号对应的报文生成配置数据,并更新该流的统计数据;
至少一个通道的组包和校验模块,其包括数据存储器与控制信息存储器,将从所述配置和统计模块生成的配置数据锁存起来,根据配置数据组包,计算私有协议的校验和,IP包的校验和,以及TCP/UDP包的校验和,将所述校验和添加进组包后的数据中,以生成组完的数据包,将所述组完的数据包存进所述数据存储器中,包长和帧间隔存进所述控制信息存储器中;
通道混合和mac适配模块,将所述数据存储器中组完的数据包进行合并。
8.根据权利要求7所述的基于FPGA的100G以太网测试报文的生成方法,其特征在于:所述合并的步骤包括依次读取每个通道的控制信息存储器中的包长和帧间隔,根据所述包长与帧间隔的和值产生读取每个通道的数据包的信号。
9.根据权利要求8所述的基于FPGA的100G以太网测试报文的生成方法,其特征在于:采用计数器计数,当计数达到所述和值时产生读取每个通道的数据包的信号。
10.一种基于FPGA的100G以太网测试报文的生成方法,其特征在于,包括:
接口模块,使FPGA通过PCI总线与CPU通信;
至少一个通道的调度模块,其包括调度控制信息存储器,流号存储器,包长存储器,配置CPU发送速率,并根据发送速率,产生调度脉冲,每产生一个调度脉冲,则生成并发送一个报文;当调度脉冲有效时,从当前流号存储器中取出的流号,根据流号从包长存储器读取数据包的长度,将流号、包长和帧间隔写入调度控制信息存储器中;
至少一个通道的配置和统计模块,读取所述流号、包长和帧间隔,然后从该流号对应的报文生成配置数据,并更新该流的统计数据;
至少一个通道的组包和校验模块,其包括数据存储器与控制信息存储器,将从所述配置和统计模块生成的配置数据锁存起来,根据配置数据组包,计算私有协议的校验和,IP包的校验和,以及TCP/UDP包的校验和,将所述校验和添加进组包后的数据中,以生成组完的数据包,将所述组完的数据包存进所述数据存储器中,包长和帧间隔存进所述控制信息存储器中;
环回模块,使CPU设置环回模式,其包括接收侧环回数据存储器,根据CPU设置的环回模式,从接收侧环回数据存储器接收报文,并进行源/目的地址的对调后,重新计算所述私有协议的校验和,IP包的校验和,TCP/UDP包的校验和,以生成环回数据包,将所述环回数据包保存到发送侧环回数据存储器;
通道混合和mac适配模块,直接读取所述发送侧环回数据存储器中的报文,并发送出去。
CN201510020595.1A 2015-01-15 2015-01-15 基于fpga的100g以太网测试报文的生成*** Active CN104702464B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510020595.1A CN104702464B (zh) 2015-01-15 2015-01-15 基于fpga的100g以太网测试报文的生成***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510020595.1A CN104702464B (zh) 2015-01-15 2015-01-15 基于fpga的100g以太网测试报文的生成***

Publications (2)

Publication Number Publication Date
CN104702464A true CN104702464A (zh) 2015-06-10
CN104702464B CN104702464B (zh) 2018-06-05

Family

ID=53349254

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510020595.1A Active CN104702464B (zh) 2015-01-15 2015-01-15 基于fpga的100g以太网测试报文的生成***

Country Status (1)

Country Link
CN (1) CN104702464B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110086669A (zh) * 2019-04-29 2019-08-02 华东师范大学 一种基于zynq的网络发包机
CN110210053A (zh) * 2019-04-24 2019-09-06 天津大学 一种基于fpga的实时数字解算器的通信接口设计方法
CN110290020A (zh) * 2019-06-17 2019-09-27 北京挚友科技有限公司 一种以太网测试仪表高精度流量百分比产生方法和装置
CN111385368A (zh) * 2018-12-27 2020-07-07 创发信息科技(苏州)有限公司 硬件辅助测速***
CN111478825A (zh) * 2020-04-10 2020-07-31 深圳市风云实业有限公司 一种可扩展的网络流量生成和分析方法及***
CN112134757A (zh) * 2020-09-21 2020-12-25 北京信而泰科技股份有限公司 一种报文生成方法及装置
CN116707639A (zh) * 2023-07-10 2023-09-05 江苏信而泰智能装备有限公司 一种基于fpga的400g以太网流量测试装置
CN117749912A (zh) * 2024-02-19 2024-03-22 浙江双元科技股份有限公司 一种基于fpga模块的数据传输控制方法及***

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101425941A (zh) * 2008-12-04 2009-05-06 北京星网锐捷网络技术有限公司 一种环网链路收敛时间或恢复时间测试***
US7869381B1 (en) * 2009-09-21 2011-01-11 Spirent Communications, Inc. Methods and apparatuses for generating network test packets and parts of network test packets
CN103685248A (zh) * 2013-12-02 2014-03-26 许继电气股份有限公司 一种过程层三网合一报文传输实时调度方法
CN103716248A (zh) * 2013-06-07 2014-04-09 潘晶 一种基于以太网交换芯片的以太网流量生成和分析的方法
CN103731321A (zh) * 2014-01-13 2014-04-16 加弘科技咨询(上海)有限公司 一种基于fpga 生成rfc2544 测试数据流的方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101425941A (zh) * 2008-12-04 2009-05-06 北京星网锐捷网络技术有限公司 一种环网链路收敛时间或恢复时间测试***
US7869381B1 (en) * 2009-09-21 2011-01-11 Spirent Communications, Inc. Methods and apparatuses for generating network test packets and parts of network test packets
CN103716248A (zh) * 2013-06-07 2014-04-09 潘晶 一种基于以太网交换芯片的以太网流量生成和分析的方法
CN103685248A (zh) * 2013-12-02 2014-03-26 许继电气股份有限公司 一种过程层三网合一报文传输实时调度方法
CN103731321A (zh) * 2014-01-13 2014-04-16 加弘科技咨询(上海)有限公司 一种基于fpga 生成rfc2544 测试数据流的方法及装置

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111385368A (zh) * 2018-12-27 2020-07-07 创发信息科技(苏州)有限公司 硬件辅助测速***
CN111385368B (zh) * 2018-12-27 2023-09-12 达发科技(苏州)有限公司 硬件辅助测速***
CN110210053A (zh) * 2019-04-24 2019-09-06 天津大学 一种基于fpga的实时数字解算器的通信接口设计方法
CN110086669A (zh) * 2019-04-29 2019-08-02 华东师范大学 一种基于zynq的网络发包机
CN110290020A (zh) * 2019-06-17 2019-09-27 北京挚友科技有限公司 一种以太网测试仪表高精度流量百分比产生方法和装置
CN111478825A (zh) * 2020-04-10 2020-07-31 深圳市风云实业有限公司 一种可扩展的网络流量生成和分析方法及***
CN111478825B (zh) * 2020-04-10 2023-04-18 深圳市风云实业有限公司 一种可扩展的网络流量生成和分析方法及***
CN112134757A (zh) * 2020-09-21 2020-12-25 北京信而泰科技股份有限公司 一种报文生成方法及装置
CN112134757B (zh) * 2020-09-21 2022-08-19 北京信而泰科技股份有限公司 一种报文生成方法及装置
CN116707639A (zh) * 2023-07-10 2023-09-05 江苏信而泰智能装备有限公司 一种基于fpga的400g以太网流量测试装置
CN117749912A (zh) * 2024-02-19 2024-03-22 浙江双元科技股份有限公司 一种基于fpga模块的数据传输控制方法及***
CN117749912B (zh) * 2024-02-19 2024-05-10 浙江双元科技股份有限公司 一种基于fpga模块的数据传输控制方法及***

Also Published As

Publication number Publication date
CN104702464B (zh) 2018-06-05

Similar Documents

Publication Publication Date Title
CN104702464A (zh) 基于fpga的100g以太网测试报文的生成***及方法
CN104660460A (zh) 一种测试以太网性能的***及方法
CN104660462B (zh) 一种万兆以太网测试设备的组包***
US9313115B2 (en) Traffic generator with priority flow control
US8175095B2 (en) Systems and methods for sending data packets between multiple FPGA devices
Stefan et al. daelite: A tdm noc supporting qos, multicast, and fast connection set-up
Zeferino et al. SoCIN: a parametric and scalable network-on-chip
CN102047618B (zh) 网络处理器单元和用于网络处理器单元的方法
EP1249978B1 (en) Device and method for transmission in a switch
US20050135355A1 (en) Switching device utilizing internal priority assignments
US7439763B1 (en) Scalable shared network memory switch for an FPGA
Braun et al. Protocol wrappers for layered network packet processing in reconfigurable hardware
WO2018187049A1 (en) Digital signature systems and methods for network path trace
WO2020142867A1 (zh) 一种流量整形方法及相关设备
US7568074B1 (en) Time based data storage for shared network memory switch
CN113438182B (zh) 一种基于信用的流量控制***和流量控制方法
EP2132905B1 (en) Frame concatenation with drop precedence assignment
CN104601307B (zh) 基于fpga万兆以太网时间戳的添加***及方法
CN100544320C (zh) 网络设备及处理数据的方法
Ding et al. The research of AFDX system simulation model
CN102932276B (zh) 计算节点集群***和数据中继器
US7730276B1 (en) Striping of data into memory of a network data switch to prevent read and write collisions
CN102195880A (zh) 一种交叉开关矩阵动态调度方法及***
US7996604B1 (en) Class queue for network data switch to identify data memory locations by arrival time
Karadeniz Hardware design and implementation of a network-on-chip based high performance crossbar switch fabric

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB03 Change of inventor or designer information

Inventor after: Guo Lina

Inventor before: Zhu Tianquan

Inventor before: Bao Shengqing

Inventor before: Guo Lina

CB03 Change of inventor or designer information
GR01 Patent grant
GR01 Patent grant