报文净荷透传逻辑的验证方法及装置的制作方法

文档序号:7591560阅读:152来源:国知局
专利名称:报文净荷透传逻辑的验证方法及装置的制作方法
技术领域
本发明涉及通信测试技术领域,尤指一种应用于大规模逻辑芯片中的报文净荷透传逻辑的验证方法及装置。
背景技术
现有技术中报文指的是从发送方传输到接收方的一个信息单元。报文的组成主要包括以下部分报文首部+净荷+报文尾部,例如以太网报文格式如下所示

其中目的地址、源地址和类型域为报文首部,数据域为净荷,净荷长度可变,CRC为报文尾部。
而逻辑芯片是为实现特定逻辑功能而设计的芯片,例如交换业务中采用许多大规模逻辑芯片实现交换逻辑功能。现有的许多大规模逻辑芯片对传输的报文净荷部分直接转发,即逻辑芯片对报文净荷透传而不加处理,可以利用这个特性来检验大规模逻辑芯片是否正常工作。
现有技术主要采用两种方法实现报文净荷透传逻辑的验证直接比较法和CRC32校验法(循环冗余校验法)。
采用直接净荷比较法,需首先存储逻辑芯片输入端输入的报文净荷内容,然后将逻辑芯片输出的报文净荷内容与储存的输入报文的净荷内容直接逐字节比较进行验证,经比较,若两者一致,则验证通过,否则,逻辑芯片出错。
这种报文净荷透传逻辑验证方法存在如下缺点采用直接比较法由于需要存储输入逻辑芯片的报文净荷内容,在逻辑设备输出端验证时,首先读取保存的输入报文净荷内容,再与输出的报文净荷内容进行逐字节比较,从存储设备读取保存的报文净荷内容以及输入输出报文逐字节比对等操作都比较耗时,因而影响验证速度,例如用于仿真系统中将大大降低仿真速度。
进一步可采取CRC32校验法进行报文净荷透传逻辑验证,其主要采用下述步骤实现逻辑验证首先,构造逻辑设备输入端的输入报文,其中报文净荷由两部分组成净荷最后四个字节(CRC32部分)、除净荷最后四个字节以外的所有报文净荷字节(data部分);CRC32部分的内容是由data部分内容进行CRC32计算得出的校验码,具体的,CRC校验码可由一个常数去除该数据流的二进制数值而得,商数被放弃,余数作为CRC校验码追加到数据流尾,产生新的数据流进行发送;同样,在接收端,新的数据流被同一常数去除,检查余数是否为一个常数(通常为0),若余数为一个常数,则认为传输正确,否则就认为传输中已发生差错。
采用CRC32校验法进行报文净荷透传逻辑验证存在如下缺点由于CRC32校验法要求逻辑设备输入输出端逐比特进行CRC32算法处理,由于CRC32算法处理的复杂性,实现工作量较大,另外,CRC32校验法理论上对于数据传输中小于32比特(4字节)的数据出错可以完全检测出,但对于数据传输中大于32比特(4字节)的数据出错,则不能完全检测出。

发明内容
本发明解决的技术问题是提供一种校验准确、且检验速度较快的报文净荷透传逻辑的验证方法及装置,采用所述方法及装置,大规模逻辑芯片的报文净荷透传逻辑验证将更加快速准确。
为解决上述问题,本发明的报文净荷透传逻辑的验证方法,包括如下步骤A、按照预定算法产生逻辑设备输入端输入报文的各个净荷值;B、根据所述预定算法依次验证所述逻辑设备输出端输出报文的各个净荷值,若输出报文的各个净荷值符合所述预定算法,则确认验证通过,否则,确认所述逻辑设备逻辑出错。
其中,步骤A所述输入报文为一个流的报文,该流的相邻报文之间的净荷值也按照所述预定算法产生。
其中,步骤B中所述验证具体包括步骤B1、读取一个净荷值;B2、继续读取下一个净荷值;B3、判断前一净荷值与后一净荷值是否符合所述预定算法,若符合所述预定算法,则进入B4,否则,进入B5;B4、判断输出报文的各个净荷值是否已全部验证完,若全部验证完,则确认验证通过,否则,保留后一净荷值,然后返回B2;B5、确认逻辑设备逻辑出错,退出验证。
其中,所述步骤A中输入报文的各个净荷值是按照字节、字或双字产生的。
其中,所述预定算法为递增算法。
相应的,本发明的报文净荷透传逻辑的验证装置,包括逻辑验证报文产生单元,与逻辑设备输入端相连,用于按照预定算法产生逻辑设备输入端输入报文的各个净荷值;逻辑验证单元,与逻辑设备输出端相连,用于根据所述预定算法验证所述逻辑设备输出端输出报文的各个净荷值,若输出报文的各个净荷值符合所述预定算法,则确认验证通过,否则,确认所述逻辑设备逻辑出错。
其中,所述输入报文为一个流的报文,该流的相邻报文之间的净荷值也按照所述预定算法产生。
其中,所述逻辑验证单元包括读取模块,用于依次读取输出报文的各个净荷值;第一判断模块,用于判断所述读取模块读取的一个净荷值,以及读取模块后续继续读取的下一个净荷值是否符合预定算法,若符合预定算法,则判断为真,否则判断为假,确认逻辑设备逻辑出错;
第二判断模块,若所述第一判断模块判断为真,则进一步判断输出报文的各个净荷值是否已全部验证完,若全部验证完,则确认验证通过,否则,保留后一净荷值,由所述读取模块继续读取下一净荷值交由第一判断模块继续判断。
其中,所述逻辑验证报文产生单元按照字节、字或双字产生输入报文的各个净荷值。
其中,所述预定算法为递增算法。
与现有技术相比,本发明具有以下优点一方面,相对于直接比较法,本发明不需要保存逻辑设备输入端的输入报文,不需要读取输入报文的操作,也不需要输入报文和输出报文净荷内容之间的逐字节比较的操作,因而可提高验证速度,若应用于逻辑验证仿真和测试中,其测试速度将大大快于直接比较法;另一方面,相对于CRC32算法,本发明只需在逻辑设备输入端对数据进行预定算法处理,而在输出端只是验证输出报文的各个净荷值是否符合预定算法即可确定逻辑设备逻辑是否正确,由于避免了CRC32算法需分别在逻辑设备输入输出端对数据处理的繁琐处理操作,可提高验证速度;进一步,本发明根据预定算法检测输出报文净荷可以完全保证校验是正确的,因此,避免了CRC32算法从理论上只有在逻辑设备数据转发过程中出错小于32比特(4字节)的情况下,才能确保检测出错误的缺点。


图1是本发明报文净荷透传逻辑的验证装置组成示意图;图2是图1所示逻辑验证单元的组成示意图;图3是本发明报文净荷透传逻辑的验证方法具体实施例流程图。
具体实施例方式
参考图1,图1是本发明报文净荷透传逻辑的验证装置组成示意图,所述验证装置主要包括逻辑验证报文产生单元11和逻辑验证单元12,分别说明如下逻辑验证报文产生单元11,其主要用于按照预定算法产生逻辑设备输入端输入报文的各个净荷值,可以是按字节,也可以是按字或双字为单位产生所述输入报文净荷,所述预定算法可采取增量算法等;逻辑验证单元12,其主要用于根据所述预定算法验证所述逻辑设备输出端输出报文的各个净荷值,若输出报文的各个净荷值符合所述预定算法,则确认验证通过,否则,确认所述逻辑设备逻辑出错。
优化的,逻辑验证报文产生单元11产生报文净荷时,若输入报文为一个流的报文,按照所述预定算法产生该流的报文的各个净荷值,另外,该流的相邻报文之间的净荷值也按照所述预定算法产生,即需保证同一报文的净荷值符合所述预定算法,同一个流的前一报文的最后一个净荷值与紧接的后一报文的最前一个净荷值也符合所述预定算法。
下面说明逻辑验证单元12,参考图2,所述逻辑验证单元12主要包括读取模块121、第一判断模块122以及第二判断模块123,具体说明如下读取模块121,主要用于依次读取输出报文的各个净荷值;第一判断模块122,主要用于判断所述读取模块121读取的一个净荷值,以及读取模块121后续继续读取的下一个净荷值是否符合预定算法,若符合预定算法,则判断为真,否则判断为假,确认逻辑设备逻辑出错;第二判断模块123,若所述第一判断模块122判断为真,则进一步判断输出报文的各个净荷值是否已全部验证完,若全部验证完,则确认验证通过,否则,保留后一净荷值,由所述读取模块121继续读取下一净荷值交由第一判断模块122继续判断。
下面举一较简单的例子对本发明报文净荷透传逻辑的验证方法进行说明。
假设逻辑设备输入端的输入报文为pkt1,经逻辑处理后在逻辑设备输出端输出的报文为pkt2,首先按照预定算法产生所述输入报文pkt1的各个净荷值,产生的同一报文的净荷值符合所述预定算法,作为举例,所述预定算法可采用增量算法next_data=data+1,按照所述算法产生的输入报文的各个净荷值如下pkt10、1、2。。。14进一步,在逻辑设备输出端按照所述预定算法对输出报文的各个净荷值进行验证,即验证报文pkt1经逻辑处理输出后的报文的净荷值是否符合预定算法,若符合所述预定算法,则报文净荷没有被逻辑芯片处理过,则可确定逻辑芯片的报文净荷透传逻辑正确,即输出报文净荷与输入报文净荷相同,输出报文pkt2的各个净荷值如下所示pkt20、1、2、3。。。14若输出报文净荷值发生改变,例如所述输出报文pkt2的净荷值2改变为3,如下所示pkt20、1、3、3。。。14则由于前一净荷值为3,后一净荷值也为3,则不符合预定算法(3=2+1),因此,可确定逻辑芯片出错,芯片报文净荷透传逻辑出错。
继续说明本发明的方法,对于同一个流的报文本发明同样适用,所述流指具有某些相同特征的多个报文;如对于前面的以太网报文,可以将DMAC值相同的报文当作一个流,应用本发明方法时,所述流的同一报文的各个净荷值符合所述预定算法,同一个流的前一报文的最后一个净荷值与紧接其后面的后一报文的第一个值净荷也符合所述预定算法。
参考图3,以一典型实施例进行说明,所述预定算法仍采用增量算法next_data=data+1假设逻辑设备输入端输入的同一个流的5个报文为pkt1~pkt5,在步骤31,按照增量算法产生5个输入报文的净荷,各个报文净荷的净荷值分别为pkt10、1、2。。。14pkt215、16、17、18。。。89pkt390、91、92、93。。。123pkt4124、125、126。。。174pkt5175、176、177。。。247上述各个报文的净荷值符合增量算法,如16=15+1,17=16+1;同一个流的报文之间的净荷值也符合增量算法,如15=14+1,90=89+1。
这样,经逻辑设备处理后,在步骤32,当在逻辑设备输出端输出报文时,根据所述增量算法对输出报文的各个净荷值进行验证,验证主要包括以下流程在步骤s321,读取一个净荷值;然后在步骤s322,继续读取下一个净荷值;进而在步骤s323判断前一净荷值与后一净荷值是否符合所述预定算法,若符合所述预定算法,则进入步骤s324,否则,进入步骤s325,确认逻辑设备逻辑出错,退出验证;其中步骤s324,判断输出报文的各个净荷值是否已全部验证完,若全部验证完,则进入步骤s326,确认验证通过,否则,在步骤s327,仅保留后一净荷值,然后返回步骤s322。
例如1)假设pkt2的净荷值17经逻辑处理后被改变为其他值如45,由于不符合45=16+1,故可判断净荷值45不正确,逻辑设备出错;2)假设pkt2的净荷值16丢弃,由于不符合17=15+1,故可判断净荷值17不正确,逻辑设备出错;3)假设pkt2整个报文被丢弃,由于不符合90=14+1,故可判断净荷值90不正确,逻辑设备出错。
可以看出,本发明可以方便准确的判断逻辑设备对报文净荷处理是否正确,同时不需要将输出的报文净荷内容与输入端的报文净荷内容的逐字节比较。
上述实施例预定算法采用增量算法为例进行说明。事实上,本发明中还可采用其他算法,例如递减算法或者随机函数rand( )算法,其实现原理与上述递增算法类似,由于具体算法不是本发明的关键,且无法进行穷举,这里不再赘述。
另外,上述按照预定算法产生输入报文净荷可以是按字节、字、双字为单位,相应验证时也以所述单位进行验证。
本发明报文净荷透传逻辑的验证方法主要通过预定算法产生逻辑设备输入端的输入报文的各个净荷值,进而利用所述预定算法验证逻辑设备输出端的输出报文的净荷,若输出报文的各个净荷值符合所述预定算法,则确认验证通过,否则,确定报文净荷透传逻辑出错。由于不需输入报文净荷内容和输出报文净荷内容之间按照逐字节比较的方式进行验证,同时没有CRC32算法的繁琐处理,可保证逻辑验证仿真和测试的速度优于现有技术。
上述仅以优选实施例对本发明进行说明,非因此即局限本发明的权利范围,因此,在不脱离本发明思想的情况下,凡运用本发明说明书及附图内容所为的等效变化,均理同包含于本发明的权利要求范围内。
权利要求
1.一种报文净荷透传逻辑的验证方法,其特征在于,所述的方法包括如下步骤A、按照预定算法产生逻辑设备输入端输入报文的各个净荷值;B、根据所述预定算法依次验证所述逻辑设备输出端输出报文的各个净荷值,若输出报文的各个净荷值符合所述预定算法,则确认验证通过,否则,确认所述逻辑设备逻辑出错。
2.根据权利要求1所述的报文净荷透传逻辑的验证方法,其特征在于,步骤A所述输入报文为一个流的报文,该流的相邻报文之间的净荷值也按照所述预定算法产生。
3.根据权利要求1或2所述的报文净荷透传逻辑的验证方法,其特征在于,步骤B中所述验证具体包括如下步骤B1、读取一个净荷值;B2、继续读取下一个净荷值;B3、判断前一净荷值与后一净荷值是否符合所述预定算法,若符合所述预定算法,则进入B4,否则,进入B5;B4、判断输出报文的各个净荷值是否已全部验证完,若全部验证完,则确认验证通过,否则,保留后一净荷值,然后返回B2;B5、确认逻辑设备逻辑出错,退出验证。
4.根据权利要求3所述的报文净荷透传逻辑的验证方法,其特征在于,所述步骤A中输入报文的各个净荷值是按照字节、字或双字产生的。
5.根据权利要求3所述的报文净荷透传逻辑的验证方法,其特征在于,所述预定算法为递增算法。
6.一种报文净荷透传逻辑的验证装置,其特征在于,包括逻辑验证报文产生单元,与逻辑设备输入端相连,用于按照预定算法产生逻辑设备输入端输入报文的各个净荷值;逻辑验证单元,与逻辑设备输出端相连,用于根据所述预定算法验证所述逻辑设备输出端输出报文的各个净荷值,若输出报文的各个净荷值符合所述预定算法,则确认验证通过,否则,确认所述逻辑设备逻辑出错。
7.根据权利要求6所述的报文净荷透传逻辑的验证装置,其特征在于,所述输入报文为一个流的报文,该流的相邻报文之间的净荷值也按照所述预定算法产生。
8.根据权利要求6或7所述的报文净荷透传逻辑的验证装置,其特征在于,所述逻辑验证单元包括读取模块,用于依次读取输出报文的各个净荷值;第一判断模块,用于判断所述读取模块读取的一个净荷值,以及读取模块后续继续读取的下一个净荷值是否符合预定算法,若符合预定算法,则判断为真,否则判断为假,确认逻辑设备逻辑出错;第二判断模块,若所述第一判断模块判断为真,则进一步判断输出报文的各个净荷值是否已全部验证完,若全部验证完,则确认验证通过,否则,保留后一净荷值,由所述读取模块继续读取下一净荷值交由第一判断模块继续判断。
9.根据权利要求8所述的报文净荷透传逻辑的验证装置,其特征在于,所述逻辑验证报文产生单元按照字节、字或双字产生输入报文的各个净荷值。
10.根据权利要求8所述的报文净荷透传逻辑的验证装置,其特征在于,所述预定算法为递增算法。
全文摘要
本发明公开一种报文净荷透传逻辑的验证方法及装置,所述方法主要包括按照预定算法产生逻辑设备输入端输入报文的各个净荷值;根据所述预定算法依次验证逻辑设备输出端输出报文的各个净荷值,若输出报文的各个净荷值符合所述预定算法,则确认验证通过,否则,确认所述逻辑设备逻辑出错。所述装置主要包括逻辑验证报文产生单元和逻辑验证单元。本发明由于只需在逻辑设备输入端对数据进行预定算法处理,而在输出端只是验证输出报文的各个净荷值是否符合预定算法即可确定逻辑设备逻辑是否正确,可提高验证速度且校验准确。
文档编号H04L12/26GK1691610SQ20041003396
公开日2005年11月2日 申请日期2004年4月20日 优先权日2004年4月20日
发明者唐亮 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1