激励报文的产生方法、装置以及逻辑检测设备的制作方法

文档序号:7593017阅读:141来源:国知局
专利名称:激励报文的产生方法、装置以及逻辑检测设备的制作方法
技术领域
本发明涉及网络通信技术领域,具体涉及一种激励报文的产生方法、装置以及一种逻辑检测设备。
背景技术
随着网络通信技术的发展,出现了各种不同的网络,这些网络采用各自不同的协议报文来进行信息传输,报文种类繁多,各种报文具有不同的数据结构,比如图1示出了三种不同报文的数据结构(1)以太网报文,包含了目的地址、源地址、类型、数据和CRC共5个报文结构域。
(2)PPP(点到点协议)报文,包含了标志字节、地址、控制、协议、信息、CRC和标志共7个报文结构域,其中,标志域为7E,指示一个帧的开始或结束;地址域为FF,是标准的广播地址,PPP不指定单个工作站的地址;控制域为03,表示无编号的消息;协议域用于标识封装在帧的信息域中的协议类型;数据域长度为零或多个字节,最多为1500字节,包含符合协议域中指定协议的数据报;帧检测序列通常为2个字节。
(3)802.3Snap(子网接入协议)报文,包含了目的地址、源地址、长度、SNAP、数据和CRC共6个报文结构域。
在类似上述报文的传输过程中,通常采用逻辑芯片实现报文的处理转发功能。在利用FPGA/ASIC(现场可编程逻辑芯片/专用逻辑芯片)实现报文处理类逻辑芯片的开发过程中,需要验证实现逻辑的正确性,即通过构造相应的报文作为激励输入逻辑,分析逻辑输出的正确性。在上述过程中,需要构造激励报文参与报文的转发和逻辑验证。激励报文的构造通常有以下方式
(1)对于每种协议类型的报文分别编写不同的激励产生函数。这样,由于报文数据类型繁多,需要编写太多的激励产生函数,无法在不同报文之间实现激励产生函数的重用。
(2)由于IP协议的广泛应用,很多报文数据域包括IP报文,同时,有很多不同报文的CRC域按照相同的多项式产生,因此,目前也有一些公共函数,如IP报文产生函数、CRC产生函数,在芯片逻辑的验证中,可以根据需要重用这些公共函数来构造所需的激励报文。这种方式虽然在一定程度上实现了激励产生函数的重用,但是针对每一种激励仍然需要编写相应的激励产生函数,所以不同结构的报文的激励产生函数重用性还是很差。
由此可见,以上两种方式都会增加构造激励报文的工作量,开发效率较低。

发明内容
本发明的目的是提供一种激励报文的产生方法、装置以及一种逻辑检测设备,以便有效地重用激励函数产生代码,提高开发效率。
本发明的目的是通过以下方案实现的一种激励报文的产生方法,其特征在于,包括A、将报文分解为不同的数据结构域;B、建立所述不同数据结构域的公用函数;C、根据所述公用函数建立不同数据结构域的属性文档;D、根据所述属性文档生成激励报文。
所述步骤B包括B1、设定所述数据结构域的属性;B2、根据所述设定的数据结构域的属性建立公用函数。
所述数据结构域包括报文首部、净荷和报文尾部。
所述步骤C包括
C1、建立报文长度属性文档;C2、建立报文首部属性文档;C3、建立报文净荷属性文档;C4、建立报文尾部属性文档。
所述步骤D包括分别根据所述建立的报文首部属性文档、报文尾部属性文档生成报文首部数据和报文尾部数据;根据报文净荷属性文档和报文长度属性文档生成一定长度的报文净荷数据。
所述数据结构域的属性包括域数据产生模式,域数据产生单位,域数据来源,域数据范围。
一种激励报文产生装置,其特征在于,包括公用函数模块,用于提供激励报文不同数据结构域的公用函数;激励配置模块,用于配置所述激励报文不同数据结构域的属性;激励产生模块,用于根据配置的激励报文不同数据结构域的属性调用所述公用函数生成激励报文。
所述公用函数模块包括随机数产生模块,用于提供所述激励报文不同数据结构域的随机数据;循环冗余校验码产生模块,用于提供所述激励报文不同数据结构域的循环冗余校验码;校验和产生模块,用于提供所述激励报文不同数据结构域的校验和。
所述激励配置模块包括模式配置模块,用于配置所述激励报文不同数据结构域的数据产生模式;长度配置模块,用于配置所述激励报文不同数据结构域的数据长度;数据源配置模块,用于配置所述激励报文不同数据结构域的数据来源;
范围配置模块,用于配置所述激励报文不同数据结构域的数据范围。
一种逻辑检测设备,包括设备配置装置,激励报文产生装置,结果分析装置,其特征在于,所述激励报文产生装置包括公用函数模块,用于提供激励报文不同数据结构域的公用函数;激励配置模块,用于配置所述激励报文不同数据结构域的属性;激励产生模块,用于根据配置的激励报文不同数据结构域的属性调用所述公用函数生成激励报文。
由以上本发明提供的技术方案可以看出,将不同的报文数据结构划分为相同的三部分,首先,按照数据产生模式和数据产生单位建立激励产生所需的各种公用函数,然后,根据各种不同报文的结构特点,由建立的激励产生所需的各种公用函数生成逻辑验证所需的激励函数,最大程度地实现了报文激励产生函数的重用,减少了验证时的激励报文开发工作量,提高了开发效率。利用本发明装置可以产生各种不同结构的激励报文,用于逻辑检测设备中,可以提高逻辑检测设备对不同逻辑验证的适用性。


图1是三种不同报文的数据结构;图2是本发明方法的流程图;图3是本发明方法中将以太网报文分解为不同的数据结构域示意图;图4是本发明方法中将PPP报文分解为不同的数据结构域示意图;图5是本发明方法中将802.3Snap报文分解为不同的数据结构域示意图;图6是本发明激励报文的产生装置的结构示意图;图7是使用本发明装置的逻辑检测设备的结构示意图。
具体实施例方式
本发明的核心在于将不同的报文数据结构划分为相同的三部分,首先,按照数据产生模式和数据产生单位建立激励产生所需的各种公用函数,使报文激励函数和报文的具体数据结构无关,然后,根据各种不同报文的结构特点,由建立的激励产生所需的各种公用函数生成逻辑验证所需的激励函数。
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和实施方式对本发明作进一步的详细说明。
参照图2,图2示出了本发明方法的流程,包括以下步骤步骤201将报文分解为不同的数据结构域,所述数据结构域包括报文首部、净荷和报文尾部。也就是说,不管报文的具体结构如何,都将其看作包括报文首部、净荷和报文尾部这三部分的结构形式,具体到不同的报文,只是这三个结构域中的数据有所不同。
步骤202设定数据结构域的属性。
综合各种不同报文中数据的特点,将所述数据结构域的属性概括为域数据产生模式,包括填充型、随机型、函数型、从文件中读取数据型、递增型;域数据产生单位,包括以字节为单位的大于或等于1的正整数、净荷域;域数据来源,包括填充模型、随机种子、函数名、文件名、递增初始值;域数据范围,包括域数据最小值、域数据最大值。
步骤203根据设定的数据结构域的属性建立公用函数。
比如,对于填充型数据,可设定填充模型,由填充模型提供填充所需数据;对于随机型数据,可设定随机种子,并提供随机数产生函数,根据设定的随机种子及提供的随机数产生函数产生所需数据;对于函数型数据,可预先建立不同的函数;对于需要从文件中读取的数据,预先建立数据文件;对于递增型数据,通过提供递增初始值来获取所需数据。
步骤204根据公用函数建立不同数据结构域的属性文档。根据已建立的公用函数模式,再根据所需激励报文中各数据结构域中的数据结构,建立不同数据结构域的属性文档。因为各种报文的长度不同,因此,需要首先建立一个报文长度属性文档,其次,还要分别建立报文首部属性文档、报文净荷属性文档、报文尾部属性文档。
步骤205根据属性文档生成激励报文,具体为分别根据所述建立的报文首部属性文档、报文尾部属性文档生成报文首部数据和报文尾部数据;根据报文净荷属性文档和报文长度属性文档生成一定长度的报文净荷数据。
由以上本发明的流程可以看出,在本发明中,激励报文产生过程中并不关注报文的具体数据结构,仅需调用产生通用的数据包含的公用函数,直接按照结构域属性文档即可产生报文。
下面分别以图1所示的三种报文为例,对本发明方法作进一步的说明。
1、以太网激励报文产生过程如下将以太网报文数据结构划分为报文首部、净荷、报文尾部三部分,如图3所示首先,建立报文长度属性文件#域数据产生模式域数据产生单位来源范围1范围22 2 0x1264 1518该文件表示根据随机种子0x12,随机产生范围为[64,1518]内的2个字节的随机数。
按此报文长度属性文件产生一个报文长度文件len.dat,用于确定激励报文的长度,该数据文件的每一行代表一个报文的长度。
然后,建立报文首部属性文件假设目的地址域前4个字节为填充模式0x35462334,后两个字节为随机产生;源地址域6个字节为从smac.dat文件中读取数据;类型域中的2个字节为从type.dat文件中读取数据,建立的报文首部属性文件为#域数据产生模式域数据产生单位来源 范围1范围21 4 0x35462334002 2 0x34 0655354 6 smac.dat 004 2 type.dat 00按此报文首部属性文件产生报文首部。
建立报文净荷属性文件假设报文净荷为递增型数据,起始数据为0x0,报文净荷的长度来自上述建立的数据文件len.dat,则建立的报文净荷属性文件为#域数据产生模式域数据产生单位来源范围1范围25 -10x0 00按此报文净荷属性文件产生报文净荷。
建立报文尾部属性文件假设报文尾部的4个字节的CRC校验值为按照函数crc32产生的数据,输入值为报文的数据域,则建立的报文尾部属性文件为#域数据产生模式域数据产生单位来源范围1范围23 4 crc32 00按此报文尾部属性文件产生报文尾部。
根据上述建立的属性文件,由报文首部属性文件产生报文首部,包括6个字节的目的地址、6个字节的源地址和2个字节的类型指示数据;由报文净荷属性文件产生46~1500字节的报文净荷,每个报文净荷的长度由文件len.dat来确定;由报文尾部属性文件产生4个字节的CRC校验值。然后,将产生的报文首部、净荷和报文尾部顺序排列,就生成了一个完整的以太网报文。
2、PPP激励报文产生过程如下将PPP报文数据结构划分为报文首部、净荷、报文尾部三部分,如图4所示首先,建立报文长度属性文件#域数据产生模式域数据产生单位来源范围1范围22 2 0x3 81508该文件表示根据随机种子0x3,随机产生范围为
内的2个字节的随机数。
按此报文长度属性文件产生一个报文长度文件len.dat,用于确定激励报文的长度,该数据文件的每一行代表一个报文的长度。
然后,建立报文首部属性文件标志域为填充模式0x7E,地址域为填充模式0xFF,控制域为填充模式0x03,协议域中的2个字节为从protocol.dat文件中读取数据(包括0x0021、0xc021,0x8021三种数据),建立的报文首部属性文件为#域数据产生模式域数据产生单位来源范围1范围21 1 0x7E001 1 0xFF001 1 0x03004 2 protocol.dat00按此报文首部属性文件产生报文首部。
建立报文净荷属性文件假设报文净荷为递增型数据,起始数据为0x20,报文净荷的长度来自上述建立的数据文件len.dat,则建立的报文净荷属性文件为#域数据产生模式域数据产生单位来源范围1范围25 -10x2000按此报文净荷属性文件产生报文净荷。
建立报文尾部属性文件假设报文尾部CRC域为按照函数crc16产生的数据,标志域为填充模式0x7E,则建立的报文尾部属性文件为#域数据产生模式域数据产生单位来源范围1范围23 2 crc16 001 1 0x7E00按此报文尾部属性文件产生报文尾部。
根据上述建立的属性文件,由报文首部属性文件产生报文首部,包括1字节标志域,1字节地址域,1字节控制域,2字节协议域;由报文净荷属性文件产生0~1500字节的报文净荷,每个报文净荷的长度由文件len.dat来确定;由报文尾部属性文件产生2个字节的CRC校验值和1字节的标志域。然后,将产生的报文首部、净荷和报文尾部顺序排列,就生成了一个完整的PPP报文。
3、802.3Snap激励报文产生过程如下将802.3Snap报文数据结构划分为报文首部、净荷、报文尾部三部分,如图5所示首先,建立报文长度属性文件#域数据产生模式域数据产生单位来源范围1范围22 2 0x2 64 1518该文件表示根据随机种子0x2,随机产生范围为[64,1518]内的2个字节的随机数。
按此报文长度属性文件产生一个报文长度文件len.dat,用于确定激励报文的长度,该数据文件的每一行代表一个报文的长度。
然后,建立报文首部属性文件假设目的地址域前4个字节为填充模式0x11462334,后两个字节为随机产生;源地址域6个字节为从smac.dat文件中读取数据;类型域中的2个字节为从type.dat文件中读取数据,SNAP域为从snap.dat文件中读取数据,建立的报文首部属性文件为#域数据产生模式域数据产生单位来源 范围1范围21 4 0x11462334002 2 0x10 38 655354 6 smac.dat 004 2 type.dat 004 8 snap.dat 00按此报文首部属性文件产生报文首部。
建立报文净荷属性文件假设报文净荷为递增型数据,起始数据为0x0,报文净荷的长度来自上述建立的数据文件len.dat,则建立的报文净荷属性文件为#域数据产生模式域数据产生单位来源范围1范围25 -10x0 00按此报文净荷属性文件产生报文净荷。
建立报文尾部属性文件假设报文尾部的4个字节的CRC校验值为按照函数crc32产生的数据,输入值为报文的数据域,则建立的报文尾部属性文件为#域数据产生模式域数据产生单位来源范围1范围23 4 crc32 00按此报文尾部属性文件产生报文尾部。
根据上述建立的属性文件,由报文首部属性文件产生报文首部,包括6个字节的目的地址、6个字节的源地址和2个字节的类型指示以及8个字节的snap域;由报文净荷属性文件产生38~1492字节的报文净荷,每个报文净荷的长度由文件len.dat来确定;由报文尾部属性文件产生4个字节的CRC校验值。然后,将产生的报文首部、净荷和报文尾部顺序排列,就生成了一个完整的802.3Snap报文。
图6示出了本发明激励报文的产生装置的结构,包括以下部分公用函数模块601、激励配置模块602和激励产生模块603。其中,公用函数模块601,用于提供激励报文不同数据结构域的公用函数,包括随机数产生模块,用于提供所述激励报文不同数据结构域的随机数据;循环冗余校验码产生模块,用于提供所述激励报文不同数据结构域的循环冗余校验码;校验和产生模块,用于提供所述激励报文不同数据结构域的校验和。
激励配置模块602用于配置所述激励报文不同数据结构域的属性,模式配置模块,用于配置所述激励报文不同数据结构域的数据产生模式;长度配置模块,用于配置所述激励报文不同数据结构域的数据长度;数据源配置模块,用于配置所述激励报文不同数据结构域的数据来源;范围配置模块,用于配置所述激励报文不同数据结构域的数据范围。
激励产生模块603用于根据配置的激励报文不同数据结构域的属性调用所述公用函数生成激励报文。
例如,如果需要产生图3所示的以太网激励报文,则首先由激励配置模块配置报文长度属性,由激励产生模块根据配置的报文长度属性调用公用函数模块提供的不同数据产生模块建立报文长度属性文件,然后,再由激励配置模块配置报文各数据域的属性,由激励产生模块根据配置的各数据域的属性调用公用函数模块提供的不同数据产生所需的激励报文。由于报文净荷部分为46~1500字节的不定长的数据,因此,在生成所需的激励报文时,其长度依照已建立的报文长度属性文件设定。
将本发明装置用于逻辑检测设备中,如图7所示,该逻辑检测设备包括设备配置装置71、激励报文产生装置72和结果分析装置73。其中,激励报文产生装置72包括公用函数模块721,用于提供激励报文不同数据结构域的公用函数;激励配置模块722,用于配置所述激励报文不同数据结构域的属性;激励产生模块723,用于根据配置的激励报文不同数据结构域的属性调用所述公用函数生成激励报文。
在进行逻辑检测时,首先由设备配置装置完成设备的参数配置;然后,根据验证该逻辑所需报文的具体格式由激励报文产生装置产生所需的激励报文,并将其发送到待测逻辑;再由结果分析装置根据待测逻辑输出的报文完成结果分析。
虽然通过实施例描绘了本发明,本领域普通技术人员知道,本发明有许多变形和变化而不脱离本发明的精神,希望所附的权利要求包括这些变形和变化而不脱离本发明的精神。
权利要求
1.一种激励报文的产生方法,其特征在于,包括A、将报文分解为不同的数据结构域;B、建立所述不同数据结构域的公用函数;C、根据所述公用函数建立不同数据结构域的属性文档;D、根据所述属性文档生成激励报文。
2.如权利要求1所述的激励报文的产生方法,其特征在于,所述步骤B包括B1、设定所述数据结构域的属性;B2、根据所述设定的数据结构域的属性建立公用函数。
3.如权利要求1或2所述的激励报文的产生方法,其特征在于,所述数据结构域包括报文首部、净荷和报文尾部。
4.如权利要求3所述的激励报文的产生方法,其特征在于,所述步骤C包括C1、建立报文长度属性文档;C2、建立报文首部属性文档;C3、建立报文净荷属性文档;C4、建立报文尾部属性文档。
5.如权利要求4所述的激励报文的产生方法,其特征在于,所述步骤D包括分别根据所述建立的报文首部属性文档、报文尾部属性文档生成报文首部数据和报文尾部数据;根据报文净荷属性文档和报文长度属性文档生成一定长度的报文净荷数据。
6.如权利要求2所述的激励报文的产生方法,其特征在于,所述数据结构域的属性包括域数据产生模式,域数据产生单位,域数据来源,域数据范围。
7.一种激励报文产生装置,其特征在于,包括公用函数模块,用于提供激励报文不同数据结构域的公用函数;激励配置模块,用于配置所述激励报文不同数据结构域的属性;激励产生模块,用于根据配置的激励报文不同数据结构域的属性调用所述公用函数生成激励报文。
8.如权利要求7所述的激励报文产生装置,其特征在于,所述公用函数模块包括随机数产生模块,用于提供所述激励报文不同数据结构域的随机数据;循环冗余校验码产生模块,用于提供所述激励报文不同数据结构域的循环冗余校验码;校验和产生模块,用于提供所述激励报文不同数据结构域的校验和。
9.如权利要求7或8所述的激励报文产生装置,其特征在于,所述激励配置模块包括模式配置模块,用于配置所述激励报文不同数据结构域的数据产生模式;长度配置模块,用于配置所述激励报文不同数据结构域的数据长度;数据源配置模块,用于配置所述激励报文不同数据结构域的数据来源;范围配置模块,用于配置所述激励报文不同数据结构域的数据范围。
10.一种逻辑检测设备,包括设备配置装置,激励报文产生装置,结果分析装置,其特征在于,所述激励报文产生装置包括公用函数模块,用于提供激励报文不同数据结构域的公用函数;激励配置模块,用于配置所述激励报文不同数据结构域的属性;激励产生模块,用于根据配置的激励报文不同数据结构域的属性调用所述公用函数生成激励报文。
全文摘要
本发明公开了一种激励报文的产生方法、装置以及一种逻辑检测设备,所述方法包括将报文分解为不同的数据结构域;建立不同数据结构域的公用函数;根据公用函数建立不同数据结构域的属性文档;根据属性文档生成激励报文。本发明装置包括公用函数模块,激励配置模块,激励产生模块。利用本发明,可以最大程度地实现报文激励产生函数的重用,减少逻辑验证中激励函数开发的工作量,将本发明装置用于逻辑检测设备中,可以提高设备的适用性。
文档编号H04L12/26GK1708016SQ20041004651
公开日2005年12月14日 申请日期2004年6月8日 优先权日2004年6月8日
发明者唐亮 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1