CN115988105B - 通用流比对方法、验证平台、存储介质及电子设备 - Google Patents
通用流比对方法、验证平台、存储介质及电子设备 Download PDFInfo
- Publication number
- CN115988105B CN115988105B CN202211363921.5A CN202211363921A CN115988105B CN 115988105 B CN115988105 B CN 115988105B CN 202211363921 A CN202211363921 A CN 202211363921A CN 115988105 B CN115988105 B CN 115988105B
- Authority
- CN
- China
- Prior art keywords
- message
- matching
- item
- result
- output
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 68
- 238000012795 verification Methods 0.000 title claims abstract description 59
- 230000004044 response Effects 0.000 claims abstract description 8
- 230000006399 behavior Effects 0.000 claims description 43
- 238000012360 testing method Methods 0.000 claims description 38
- 230000000875 corresponding effect Effects 0.000 claims description 35
- 230000009471 action Effects 0.000 claims description 24
- 238000013461 design Methods 0.000 claims description 19
- 238000012544 monitoring process Methods 0.000 claims description 19
- 238000012986 modification Methods 0.000 claims description 16
- 230000004048 modification Effects 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 11
- 238000007726 management method Methods 0.000 description 13
- 238000004891 communication Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000000638 solvent extraction Methods 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000001583 randomness test Methods 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000010998 test method Methods 0.000 description 1
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供一种通用流比对方法、验证平台、存储介质及电子设备,所述方法包括:获取报文,解析报文中的字段信息,所述字段信息包括当前报文匹配条目;将所述当前报文匹配条目与预存的报文匹配条目进行匹配,生成匹配结果;响应于所述匹配结果为存在至少一条预存的报文匹配条目匹配成功,根据所述报文信息,执行已匹配成功的报文匹配条目的场景类型,生成结果报文;所述场景类型包括:报文是否丢弃、报文转发至指定端口、报文是否修改以及报文是否拷贝;响应于收到出口报文,将所述出口报文与所述结果报文进行比对。本发明可以实现报文各种场景下的比对,大大节省了验证工程师的时间和精力。同时,也能适用于随机场景,保证了验证的完备性。
Description
技术领域
本申请属于网络传输的技术领域,涉及一种比对验证方法,特别是涉及一种通用流比对方法、验证平台、存储介质及电子设备。
背景技术
在网络中,交换机是一种硬件设备,用于过滤和转发网络数据包,从一个网络设备(交换机、路由器、计算机、服务器等)到另一个设备。它广泛用于LAN(局域网,Local AreaNetwork),通过查看MAC地址(Media Access Control Address,物理设备地址或称媒体访问控制地址)来发送每个传入的信息帧。
随着交换机的性能和功能不断提高,验证工作作为芯片研发过程中的重要一环已经出现了逐渐乏力的态势,传统的验证手段要么使用直接测试的方法,验证工程师们需要编写大量定向测试用例来满足验证的需求,或者根据特定设计同等功能的参考模型来进行等价校验,这些手段对验证人员的挑战很大。
传统EDA(Electronic design automation,电子设计自动化)针对交换机的各种转发场景验证要做到准确包比对无非就两种手段:第一种手段是根据spec编写功能点相同的参考模型,在出端口进行包比对;第二种手段是编写定向测试用例让报文转发到固定的端口,然后进行包内容的验证。
第一种手段要求验证工程师花费大量的时间去开发复杂的参考模型,一旦中途设计有任何修改,验证工程师需要花精力去同步参考模型,保证参考模型和DUT(DesignUnder Test,测试中设计)的一致性,这大大考验验证工程师的能力和耐力。第二种手段对验证完备性是一个考验,对于复杂交换机的验证,如果没有复杂的随机性测试,必然需要大量的定向测试用例来保证验证的完备性,这工作量是巨大的,也是危险的。
发明内容
本申请的目的在于提供一种通用流比对方法、验证平台、存储介质及电子设备,用于解决在实现报文各种场景下的比对时,验证工程师需耗费大量的时间和精力编写参考模型和无法随机场景测试的痛点
第一方面,本申请提供一种通用流比对方法,所述方法包括:获取报文,解析报文中的字段信息,所述字段信息包括当前报文匹配条目;将所述当前报文匹配条目与预存的报文匹配条目进行匹配,生成匹配结果;响应于所述匹配结果为存在至少一条预存的报文匹配条目匹配成功,根据所述报文信息,执行已匹配成功的报文匹配条目的场景类型,生成结果报文;所述场景类型包括:报文是否丢弃、报文转发至指定端口、报文是否修改以及报文是否拷贝;响应于收到出口报文,将所述出口报文与所述结果报文进行比对。
本申请中,可以实现报文各种场景下的比对,大大节省了验证工程师的时间和精力。同时,也能适用于随机场景,保证了验证的完备性。
在第一方面的一种实现方式中,预存的报文匹配条目存放于一队列中;所述将所述当前报文匹配条目与预存的报文匹配条目进行匹配,生成匹配结果的步骤,包括:查看存放所述报文匹配条目的队列,是否存在与所述当前报文匹配条目相匹配的报文匹配条目,生成匹配结果。
在第一方面的一种实现方式中,所述预存的报文匹配条目包括第一条目、第二条目、第三条目和第四条目;所述响应于所述匹配结果为存在至少一条预存的报文匹配条目匹配成功,根据所述报文信息,执行已匹配成功的报文匹配条目的场景类型的步骤,包括:响应于所述匹配结果为与所述第一条目匹配成功,根据所述报文信息,执行报文是否丢弃的行为;响应于所述匹配结果为与所述第二条目匹配成功,根据所述报文信息,执行报文转发至指定端口的行为;响应于所述匹配结果为与所述第三条目匹配成功,根据所述报文信息,执行报文是否修改的行为;响应于所述匹配结果为与所述第四条目匹配成功,根据所述报文信息,执行报文是否拷贝的行为。
本实现方式中,将流分类和访问控制技术技术引入验证平台来解决各种场景下报文比对。根据某些自定义的匹配规则将流区分成为不同的类,从而达到精确的流控制。设备根据这些规则筛出特定的报文,根据对应的执行场景来控制报文的转发行为。
在第一方面的一种实现方式中,在所述获取报文的步骤之前,所述方法还包括:在测试用例中下发所述第一条目,所述第一条目的匹配内容包括预设端口号和报文丢弃行为;在测试用例中下发所述第二条目,所述第二条目的匹配内容包括预设端口号、目的mac地址和报文转发至目的端口行为;在测试用例中下发所述第三条目,所述第三条目的匹配内容包括预设端口号、报文修改行为和修改内容;在测试用例中下发所述第四条目,所述第四条目的匹配内容包括预设端口号、目的mac地址、报文发送至目的端口行为和拷贝份数。
在第一方面的一种实现方式中,在所述执行已匹配成功的报文匹配条目的场景类型,生成结果报文的步骤之后,响应于收到出口报文的步骤之前,所述方法还包括:将所述结果报文存放至对应的待比对队列中,以在收到出口报文后,由所述待比对队列中取出所述结果报文进行比对。
在第一方面的一种实现方式中,所述方法还包括:响应于所述匹配结果为不存在任何可匹配的预存的报文匹配条目,对所述报文进行正常学习转发操作。
第二方面,本申请提供一种验证平台,所述验证平台包括:输入监控单元,被配置为收集并发送报文;报文管理单元,被配置为获取所述输入监控单元发送的报文,解析报文中的字段信息,所述字段信息包括当前报文匹配条目;将所述当前报文匹配条目与预存的报文匹配条目进行匹配,生成匹配结果;响应于所述匹配结果为存在至少一条预存的报文匹配条目匹配成功,根据所述报文信息,执行已匹配成功的报文匹配条目的场景类型,生成结果报文;所述场景类型包括:报文是否丢弃、报文转发至指定端口、报文是否修改以及报文是否拷贝;输出监控单元,被配置为收集所述出口报文,发送所述出口报文;比较单元,被配置为响应于收到出口报文,接收所述报文管理单元的结果报文与所述输出监控单元的出口报文,将所述出口报文与所述结果报文进行比对。
本申请中,结合随机测试能更好的遍历测试场景,节省了编写大量定向测试案例的时间。
在第二方面的一种实现方式中,所述验证平台还包括:待测试设计单元,被配置为接收报文,且令所述报文执行不同场景类型对应的行为,生成所述出口报文;响应于所述报文在所述待测试设计单元中执行的场景类型的行为正确,则验证结果为所述出口报文与所述结果报文一致;响应于所述报文在所述待测试设计单元中执行的场景类型的行为不正确,则验证结果为所述出口报文与所述结果报文不一致。
第三方面,本申请提供一种电子设备,包括:处理器及存储器;所述存储器用于存储计算机程序,所述处理器用于执行所述存储器存储的计算机程序,以使所述电子设备执行所述的方法。
第四方面,本申请提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现所述的方法。
如上所述,本申请所述的通用流比对方法、验证平台、存储介质及电子设备,具有以下
有益效果:
本申请提供了一种通用的适合交换芯片验证报文对比的手段,可以很轻松的实现报文各种场景下的比对,大大节省了验证工程师的时间和精力。同时,也能适用于随机场景,保证了验证的完备性。本申请代码量大大减少,因此可以节省时间,使得验证工程师可以有更多的时间来构造复杂测试用例来发现bug,加速了芯片问题的收敛,提高验证质量。
附图说明
图1显示为本申请实施例所述的通用流比对方法的应用框架图。
图2显示为本申请实施例所述的通用流比对方法的原理流程图。
图3显示为本申请实施例所述的通用流比对方法的单播示意图。
图4显示为本申请实施例所述的通用流比对方法的广播示意图。
图5显示为本申请实施例所述的通用流比对方法的多播示意图。
图6显示为本申请实施例所述的通用流比对方法的比对流程图。
图7显示为本申请实施例所述的通用流比对方法的整体比对流程图。
图8显示为本申请实施例所述的验证平台的结构原理图。
图9显示为本申请实施例所述的通用流比对方法的原理流程图。
元件标号说明
10 交换机
20 计算设备
8 验证平台
81 输入监控单元
82 报文管理单元
83 输出监控单元
84 比较单元
85 待测试设计单元
9 电子设备
91 处理器
92 存储器
93 通信接口
94 系统总线
S21~S24 步骤
具体实施方式
以下通过特定的具体实例说明本申请的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本申请的其他优点与功效。本申请还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本申请的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
需要说明的是,以下实施例中所提供的图示仅以示意方式说明本申请的基本构想,遂图式中仅显示与本申请中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
本申请以下实施例提供了通用流比对方法、验证平台、存储介质及电子设备,包括但不限于从一个交换机、路由器、计算机、服务器等网络设备传输另一个设备的比对方法,以下将通用流比对方法的应用框架为例进行描述。
如图1所示,本实施例提供一种通用流比对方法的应用框架,交换机10的端口x接收报文,一方面在交换机10内执行相应的行为生成出口报文,出口报文可传输至另一设备的端口;另一方面交换机10将报文传输至计算设备20,在计算设备20内执行与交换机10一致的行为生成结果报文,通过验证结果报文和出口报文的一致性实现本申请的通用流比对方法。
本申请具体是为了解决以太网交换机芯片EDA验证时无法灵活配合随机测试来进行准确的报文比对的痛点。为了解决这个问题,本申请将流分类和ACL(Access ControlLists,访问控制列表)技术引入验证平台来解决各种场景下报文比对。
于实际应用中,网络中一组报文进入交换机会发生以下10种场景:1.入口被判定丢弃;2.Da没有命中进行洪泛;3.单播转发;4.多播转发;5.广播转发;6.出口丢弃;7.镜像拷贝;8.Vlan(Virtual Local Area Network,虚拟局域网)隔离;9.报文Vlan头部修改;10.报文TOS服务类型/TC报文收发计数字段的修改。以验证工程师的报文比对的角度进行分析,以上场景可以整理归纳成以下4种场景:丢弃、单/多口转发、出端口报文拷贝以及报文字段修改。
任何一份报文进入交换机都会根据自身特性执行丢弃、单/多口转发、出端口报文拷贝以及报文字段修改这4种action(行为)的至少一种。不同的流执行不同的行为,以此可以做到类似交换机的宏观模型。其中分为2大块:流分类和流控制。其中,流分类技术(traffic classifier),就是根据某些自定义的匹配规则将流区分成为不同的class(类),从而达到精确的流控制。流控制即利用访问控制列表(ACL),是一系列规则加动作的组合,不同的规则对应不同的行为。设备根据这些规则筛出特定的报文,再根据对应行为来决定允许不允许通过。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行详细描述。
如图2所示,本实施例提供一种通用流比对方法,所述方法具体包括以下步骤:
S21,获取报文,解析报文中的字段信息,所述字段信息包括当前报文匹配条目。
具体地,从解析的所有字段信息中,挑选出和预存报文匹配条目中所填字段同类型的字段,组成当前报文匹配条目,利用当前报文匹配条目和预存报文匹配条目进行匹配。
S22,将所述当前报文匹配条目与预存的报文匹配条目进行匹配,生成匹配结果。
于一实施例中,预存的报文匹配条目存放于一队列中;步骤S22具体包括:查看存放所述报文匹配条目的队列,是否存在与所述当前报文匹配条目相匹配的报文匹配条目,生成匹配结果。
S23,响应于所述匹配结果为存在至少一条预存的报文匹配条目匹配成功,根据所述报文信息,执行已匹配成功的报文匹配条目的场景类型,生成结果报文;所述场景类型包括:报文是否丢弃、报文转发至指定端口、报文是否修改以及报文是否拷贝。
于一实施例中,所述预存的报文匹配条目包括第一条目、第二条目、第三条目和第四条目;步骤S23具体包括以下步骤:
响应于所述匹配结果为与所述第一条目匹配成功,根据所述报文信息,执行报文是否丢弃的行为。
响应于所述匹配结果为与所述第二条目匹配成功,根据所述报文信息,执行报文转发至指定端口的行为。其中,转发可以是单播、广播和多播的一种,如图3至图5所示,示出了单播、广播和多播的示意图。
响应于所述匹配结果为与所述第三条目匹配成功,根据所述报文信息,执行报文是否修改的行为。
响应于所述匹配结果为与所述第四条目匹配成功,根据所述报文信息,执行报文是否拷贝的行为。
S24,响应于收到出口报文,将所述出口报文与所述结果报文进行比对。
于一实施例中,在步骤S21之前,所述方法还包括:
(1)在测试用例中下发所述第一条目,所述第一条目的匹配内容包括预设端口号和报文丢弃行为。
于实际应用中,针对丢弃这一场景进行具体描述:
例如当交换机芯片某个端口(假设是0口)处于关闭状态时,进入该端口0的报文都会被丢弃掉;此时为了达到准确验证的目的需要在测试用例中下发一个描述该行为的报文匹配条目,该条目匹配内容是该端口号0,行为是丢弃;报文管理单元收到端口0来的报文,并立即开始解析报文,得到报文匹配条目所需要的所有字段,其中就有端口号;查看存放报文匹配条目的队列,里面是否有报文匹配条目,如果没有则走正常的学习转发流程;此时里面是有一个条目的;查看该条目,对比条目的匹配端口号和报文解析的端口号,发现是匹配的执行条目中对应的行为,判定是丢弃;如果DUT的行为正确,那么在出口是没有报文输出的,相反如果DUT出口有报文输出,而报文管理单元已经判定丢弃了那么记分板必定会报错。
(2)在测试用例中下发所述第二条目,所述第二条目的匹配内容包括预设端口号、目的mac地址和报文转发至目的端口行为。
于实际应用中,针对单/多口转发这一场景进行具体描述:
例如当交换机芯片某个端口(假设是0口)进入一个多播报文,其目的mac地址是0x01000000000f,该报文要转发到1,2,3口;此时为了达到准确验证的目的需要在测试用例中下发一个描述该行为的报文匹配条目,该条目匹配内容是端口号0,目的mac地址是0x01000000000f,行为是发送到1,2,3口;报文管理单元收到端口0来的报文,并立即开始解析报文,得到报文匹配条目所需要的所有字段,其中就有端口号,目的mac地址;查看存放报文匹配条目的队列,里面是否有报文匹配条目,如果没有则走正常的学习转发流程;此时里面是有一个条目的;查看该条目,对比条目的匹配端口号和报文解析的端口号,以及条目的目的mac地址和报文解析出的目的mac地址,发现是匹配的执行条目中对应的行为,判定是转发1,2,3口,把这一份报文分别放入对应端口的待比较队列中;如果DUT的行为正确,那么在出口1,2,3会有相同内容的报文输出,相反如果DUT出口1,2,3没有输出该报文,而对应的待比较队列中有该报文,那么scoreboard必定会报错。
(3)在测试用例中下发所述第三条目,所述第三条目的匹配内容包括预设端口号、报文修改行为和修改内容。
于实际应用中,针对报文字段修改这一场景进行具体描述:
例如当交换机芯片某个端口(假设是0口)开启了添加一层vlan头功能,进入端口0的报文要在源mac地址字段后面加上一层12byte的vlan头;此时为了达到准确验证的目的需要在测试用例中下发一个描述该行为的报文匹配条目,该条目匹配内容是端口号0,行为是报文修改,修改内容是vlan增加一层;报文管理单元收到0口来的报文,并立即开始解析报文,得到报文匹配条目所需要的所有字段,其中就有端口号;查看存放报文匹配条目的队列,里面是否有报文匹配条目,如果没有则走正常的学习转发流程;此时里面是有一个条目的;查看该条目,对比条目的匹配端口号和报文解析的端口号,发现是匹配的执行条目中对应的行为,判定是报文修改,修改内容是vlan增加一层,把这一份修改后的报文放入对应端口的待比较队列中;如果DUT的行为正确,那么在出口输出的来自于端口0的报文会增加一层vlan头,否则scoreboard必定会报错。
(4)在测试用例中下发所述第四条目,所述第四条目的匹配内容包括预设端口号、目的mac地址、报文发送至目的端口行为和拷贝份数。
于实际应用中,针对出端口报文拷贝这一场景进行具体描述:
例如当交换机芯片某个端口(假设是0口)开启了镜像功能,进入端口0的报文要被镜像到端口1,同时进入0口的报文其目的mac地址是0x000000000001,对应的是端口1,所以在出端口1会收到两份来自于端口0的报文;此时为了达到准确验证的目的需要在测试用例中下发一个描述该行为的报文匹配条目,该条目匹配内容是端口号0,目的mac地址是0x010000000001,行为是发送到1口,且copy num(拷贝份数)是1;报文管理单元收到端0来的报文,并立即开始解析报文,得到报文匹配条目所需要的所有字段,其中就有端口号,目的mac地址;查看存放报文匹配条目的队列,里面是否有报文匹配条目,如果没有则走正常的学习转发流程;此时里面是有一个条目的;查看该条目,对比条目的匹配端口号和报文解析的端口号,以及条目的目的mac地址和报文解析出的目的mac地址,发现是匹配的执行条目中对应的行为,判定是转发1口,且需要拷贝1份,把这两份报文放入对应端口1的待比较队列中;如果DUT的行为正确,那么在出口1会有两份相同内容的报文输出,相反如果DUT出口1没有输出2份该报文,那么记分板必定会报错。
需要说明的是,所述预存的报文匹配条目包括第一条目、第二条目、第三条目和第四条目仅作为本申请条目数量的其中一个实施例,并不是固定4个,除此之外,于不同的应用中,预存的报文匹配条目可能有N条(例如10条,100条…),每个条目里的匹配字段可能都不一样,而每个条目的执行场景可以是四种场景下的任何一种或多种。当前报文会轮寻所有预存的报文匹配条目,查看每个预存匹配条目中所需要的字段(每个条目可以多个字段),同时提取当前报文的与之对应的字段,然后比较预存条目中这些字段的值是否和当前报文的字段值一致,如果一致就执行这条预存条目对应的执行场景。接着查看下一条预存报文匹配条目。
需要说明的是,上述在测试用例中下发不同的条目,以及不同条目的匹配内容所包括的内容信息仅为本申请为原理说明例举的其中一种实施方式,不是固定行为:于不同应用中,条目号和执行场景也可以不是完全绑定的,即不一定第一条目匹配内容是端口号,执行场景也不一定是丢弃。
于一实施例中,在步骤S23之后,步骤S24之前,所述方法还包括:将所述结果报文存放至对应的待比对队列中,以在收到出口报文后,由所述待比对队列中取出所述结果报文进行比对。
于一实施例中,所述方法还包括:响应于所述匹配结果为不存在任何可匹配的预存的报文匹配条目,对所述报文进行正常学习转发操作。
如图6所示,于一实施例中,本申请所述的通用流比对方法的流程包括:
(1)获取报文,并立即开始解析报文,得到报文匹配条目所需要的所有字段。
(2)查看存放报文匹配条目的队列,里面是否有报文匹配条目,如果没有则走正常的学习转发流程。
(3)如果有报文匹配条目则先查看第一条目,对比条目的内容和该报文解析出的字段,如果匹配则执行条目中对应的行为,判定是否丢弃、转发到哪些端口、报文是否修改或者报文是否拷贝。然后再继续查看下一个报文匹配条目。
(4)如果没有匹配,则继续查看下一个报文匹配条目。
(5)最后把结果报文存放到对应的待比对队列中。
(6)等到出口报文到来,取出对应队列中的结果报文,与出口报文进行对比。
如图7所示,于一实施例中,针对报文转发至指定端口以及报文拷贝这一特定场景,一份报文从0口进入,其目的mac地址为0x01000000000f,经过交换机要多播到1,2,3口,同时0口报文开启镜像,把报文镜像拷贝到3口,这样3口就要出2份报文,1,2口各出一份。本申请所述的通用流比对方法的流程具体包括:
(1)在测试用例中新建一个报文匹配条目,它里面的内容是源端口是0,同时da的mac地址是0x01000000000f。
(2)配置报文匹配条目对应的action内容为转发到1,2,3口,同时3口要拷贝一份,也就是要下发两份报文。
(3)将报文匹配条目放入记分板的队列中。
(4)测试用例随机发送报文,da的mac也是随机的,其中0口报文包含着这da的mac等于0x01000000000f的报文。
(5)输入监控单元收集所有入口报文送到记分板。
(6)记分板收到入口报文,就会进行报文匹配条目轮询查看是否匹配。此时除了0口da的mac为0x01000000000f的报文会命中这个报文匹配条目,其他报文都不会命中。
(7)0口da的mac为0x01000000000f的报文命中报文匹配条目,并查看action内容,发现要转发到1,2,3口,且3口要出两份报文,那么将0口进入的这份报文存放到待比较队列exp_compare_q[port_num]中,这些队列对应出口1,2,3,其中3口队列放两份。
(8)等待DUT的1,2,3出口出了该报文,输出监控单元收集以后发送给记分板。
(9)记分板得到出口报文后就去对应的待比较队列exp_compare_q[port_num]中取出一份报文和DUT的报文进行比较,匹配上就通过,否则就报错误。
本申请实施例所述的通用流比对方法的保护范围不限于本实施例列举的步骤执行顺序,凡是根据本申请的原理所做的现有技术的步骤增减、步骤替换所实现的方案都包括在本申请的保护范围内。
本申请实施例还提供一种验证平台,所述验证平台可以实现本申请所述的通用流比对方法,但本申请所述的通用流比对方法的实现装置包括但不限于本实施例列举的验证平台的结构,凡是根据本申请的原理所做的现有技术的结构变形和替换,都包括在本申请的保护范围内。
如图8所示,本实施例提供一种验证平台,所述验证平台8包括:输入监控单元81、报文管理单元82、输出监控单元83和比较单元84。
所述输入监控单元81被配置为收集并发送报文。
所述报文管理单元82被配置为获取所述输入监控单元81发送的报文,解析报文中的字段信息,所述字段信息包括当前报文匹配条目;将所述当前报文匹配条目与预存的报文匹配条目进行匹配,生成匹配结果;响应于所述匹配结果为存在至少一条预存的报文匹配条目匹配成功,根据所述报文信息,执行已匹配成功的报文匹配条目的场景类型,生成结果报文;所述场景类型包括:报文是否丢弃、报文转发至指定端口、报文是否修改以及报文是否拷贝。
所述输出监控单元83被配置为收集所述出口报文,发送所述出口报文。
所述比较单元84被配置为响应于收到出口报文,接收所述报文管理单元82的结果报文与所述输出监控单元83的出口报文,将所述出口报文与所述结果报文进行比对。
于一实施例中,所述验证平台还包括:待测试设计单元85。
所述待测试设计单元85被配置为接收报文81,且令所述报文执行不同场景类型对应的行为,生成所述出口报文。
响应于所述报文在所述待测试设计单元85中执行的场景类型的行为正确,则验证结果为所述出口报文与所述结果报文一致;响应于所述报文在所述待测试设计单元85中执行的场景类型的行为不正确,则验证结果为所述出口报文与所述结果报文不一致。
如图8所示,验证平台可以在scoreboard(记分板)定义一个class队列用于存放各种报文匹配条目,并且每个报文匹配条目都有对应的actions(行为),testcase(测试用例)中可以根据随机结果自动下发对应的报文匹配条目,然后在scoreboard中根据预存匹配报文条目的队列深度决定是否有报文匹配条目需要查看,报文被in_monitor(输入监控单元)收集送到scoreboard的pkt_manage(报文管理单元)线程,pkt_manage(报文管理单元)去轮询所有报文匹配条目,一旦其命中了其中某个报文匹配条目,就需要执行报文匹配条目中的actions。最后经过处理好的报文存放进决策后的队列中等待被取出比对。而out_mirror(输出监控单元)组件收集出口报文送到compare(比较)线程去和对应的队列的期望值做对比。进一步地,Pkt_manage(报文管理单元)依次轮询报文匹配条目然后执行不同action的具体流程如图6所示。
在本申请所提供的几个实施例中,应该理解到,所揭露的验证平台或方法,可以通过其它的方式实现。例如,以上所描述的验证平台实施例仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本申请实施例的目的。例如,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块/单元中。
本领域普通技术人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本发明结合随机测试能更好的遍历测试场景,节省了编写大量定向测试案例的时间。
发明人意识到,针对一款交换芯片,验证工程师编写参考模型所需要的时间大概占了整个芯片开发流程的1/6,因为理论上参考模型就是和DUT等价的设计,其功能点需要和DUT保持一致,验证工程师需要根据设计方案设计一个功能等价但实现不一样的模型,这个模型的代码量往往也是很大的,很消耗时间和精力的,这时间对验证工作来说特别宝贵,后续如果DUT(Design Under Test)有改动,验证工程师还需要抽时间来实时维护参考模型。本申请可以使代码量大大减少,因为报文解析模块和scoreboard基本都是现成的组件,而核心的匹配代码和action代码设计也是相对简单的,这样就可以节省时间,使得验证工程师可以有更多的时间来构造复杂测试用例来发现bug,加速了芯片问题的收敛,提高验证质量。本申请结合随机测试能更好的遍历测试场景,节省了编写大量定向测试案例的时间。
如图9所示,本发明的电子设备9包括:处理器91、存储器92、通信接口93或/和系统总线94。存储器92和通信接口93通过系统总线94与处理器91连接并完成相互间的通信,存储器92用于存储计算机程序,通信接口93用于和其他设备进行通信,处理器91用于运行计算机程序,使所述电子设备9执行所述通用流的比对方法的各个步骤。
上述的处理器91可以是通用处理器,包括中央处理器(Central ProcessingUnit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(扫描应用程序licationSpecific Integrated Circuit,简称ASIC)、现场可编程门阵列(Field ProgrammableGate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
上述的存储器92可能包含随机存取存储器(Random Access Memory,简称RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
上述提到的系统总线94可以是外设部件互连标准(Peripheral ComponentInterconnect,简称PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,简称EISA)总线等。该系统总线94可以分为地址总线、数据总线、控制总线等。通信接口用于实现数据库访问装置与其他设备(如客户端、读写库和只读库)之间的通信。
于实际应用中,所述电子设备包括但不限于如台式电脑、笔记本电脑等个人电脑。在另一些实施方式中,所述电子设备还可以是服务器,所述服务器可以根据功能、负载等多种因素布置在一个或多个实体服务器上,也可以是由分布的或集中的服务器集群构成的云服务器,本实施例不作限定。
本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现所述的方法。本领域普通技术人员可以理解实现上述实施例的方法中的全部或部分步骤是可以通过程序来指令处理器完成,所述的程序可以存储于计算机可读存储介质中,所述存储介质是非短暂性(non-transitory)介质,例如随机存取存储器,只读存储器,快闪存储器,硬盘,固态硬盘,磁带(magnetic tape),软盘(floppydisk),光盘(optical disc)及其任意组合。上述存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如数字视频光盘(digital videodisc,DVD))、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
上述各个附图对应的流程或结构的描述各有侧重,某个流程或结构中没有详述的部分,可以参见其他流程或结构的相关描述。
上述实施例仅例示性说明本申请的原理及其功效,而非用于限制本申请。任何熟悉此技术的人士皆可在不违背本申请的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本申请所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本申请的权利要求所涵盖。
Claims (10)
1.一种通用流比对方法,其特征在于,所述方法包括:
获取报文,解析报文中的字段信息,所述字段信息包括当前报文匹配条目,所述当前报文匹配条目的获取方法包括:从解析的所有字段信息中,挑选出和预存报文匹配条目中所填字段同类型的字段,组成所述当前报文匹配条目;
将所述当前报文匹配条目与预存的报文匹配条目进行匹配,生成匹配结果,其中,所述预存的报文匹配条目包括第一条目、第二条目、第三条目和第四条目;
响应于所述匹配结果为存在至少一条预存的报文匹配条目匹配成功,根据所述报文信息,执行已匹配成功的报文匹配条目的场景类型,生成结果报文;所述场景类型包括:报文是否丢弃、报文转发至指定端口、报文是否修改以及报文是否拷贝;
响应于收到出口报文,其中,所述出口报文是交换机的端口接收报文后,在所述交换机内执行相应的行为生成的,生成所述出口报文的执行行为与生成所述结果报文的执行行为一致;
将所述出口报文与所述结果报文进行比对,验证所述结果报文和所述出口报文的一致性。
2.根据权利要求1所述的方法,其特征在于,预存的报文匹配条目存放于一队列中;所述将所述当前报文匹配条目与预存的报文匹配条目进行匹配,生成匹配结果的步骤,包括:
查看存放所述报文匹配条目的队列,是否存在与所述当前报文匹配条目相匹配的报文匹配条目,生成匹配结果。
3.根据权利要求1所述的方法,其特征在于,所述预存的报文匹配条目包括第一条目、第二条目、第三条目和第四条目;所述响应于所述匹配结果为存在至少一条预存的报文匹配条目匹配成功,根据所述报文信息,执行已匹配成功的报文匹配条目的场景类型的步骤,包括:
响应于所述匹配结果为与所述第一条目匹配成功,根据所述报文信息,执行报文是否丢弃的行为;
响应于所述匹配结果为与所述第二条目匹配成功,根据所述报文信息,执行报文转发至指定端口的行为;
响应于所述匹配结果为与所述第三条目匹配成功,根据所述报文信息,执行报文是否修改的行为;
响应于所述匹配结果为与所述第四条目匹配成功,根据所述报文信息,执行报文是否拷贝的行为。
4.根据权利要求3所述的方法,其特征在于,在所述获取报文的步骤之前,所述方法还包括:
在测试用例中下发所述第一条目,所述第一条目的匹配内容包括预设端口号和报文丢弃行为;
在测试用例中下发所述第二条目,所述第二条目的匹配内容包括预设端口号、目的mac地址和报文转发至目的端口行为;
在测试用例中下发所述第三条目,所述第三条目的匹配内容包括预设端口号、报文修改行为和修改内容;
在测试用例中下发所述第四条目,所述第四条目的匹配内容包括预设端口号、目的mac地址、报文发送至目的端口行为和拷贝份数。
5.根据权利要求1所述的方法,其特征在于,在所述执行已匹配成功的报文匹配条目的场景类型,生成结果报文的步骤之后,响应于收到出口报文的步骤之前,所述方法还包括:
将所述结果报文存放至对应的待比对队列中,以在收到出口报文后,由所述待比对队列中取出所述结果报文进行比对。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
响应于所述匹配结果为不存在任何可匹配的预存的报文匹配条目,对所述报文进行正常学习转发操作。
7.一种验证平台,其特征在于,所述验证平台包括:
输入监控单元,被配置为收集并发送报文;
报文管理单元,被配置为获取所述输入监控单元发送的报文,解析报文中的字段信息,所述字段信息包括当前报文匹配条目,所述当前报文匹配条目的获取方法包括:从解析的所有字段信息中,挑选出和预存报文匹配条目中所填字段同类型的字段,组成所述当前报文匹配条目;将所述当前报文匹配条目与预存的报文匹配条目进行匹配,生成匹配结果,其中,所述预存的报文匹配条目包括第一条目、第二条目、第三条目和第四条目;响应于所述匹配结果为存在至少一条预存的报文匹配条目匹配成功,根据所述报文信息,执行已匹配成功的报文匹配条目的场景类型,生成结果报文;所述场景类型包括:报文是否丢弃、报文转发至指定端口、报文是否修改以及报文是否拷贝;
输出监控单元,被配置为收集出口报文,发送所述出口报文;
比较单元,被配置为响应于收到出口报文,接收所述报文管理单元的结果报文与所述输出监控单元的出口报文,其中,所述出口报文是交换机的端口接收报文后,在所述交换机内执行相应的行为生成的,生成所述出口报文的执行行为与生成所述结果报文的执行行为一致;将所述出口报文与所述结果报文进行比对,验证所述结果报文和所述出口报文的一致性。
8.根据权利要求7所述的验证平台,其特征在于,所述验证平台还包括:
待测试设计单元,被配置为接收报文,且令所述报文执行不同场景类型对应的行为,生成所述出口报文;
响应于所述报文在所述待测试设计单元中执行的场景类型的行为正确,则验证结果为所述出口报文与所述结果报文一致;响应于所述报文在所述待测试设计单元中执行的场景类型的行为不正确,则验证结果为所述出口报文与所述结果报文不一致。
9.一种电子设备,其特征在于,包括:处理器及存储器;
所述存储器用于存储计算机程序,所述处理器用于执行所述存储器存储的计算机程序,以使所述电子设备执行如权利要求1至6中任一项所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211363921.5A CN115988105B (zh) | 2022-11-02 | 2022-11-02 | 通用流比对方法、验证平台、存储介质及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211363921.5A CN115988105B (zh) | 2022-11-02 | 2022-11-02 | 通用流比对方法、验证平台、存储介质及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115988105A CN115988105A (zh) | 2023-04-18 |
CN115988105B true CN115988105B (zh) | 2023-11-07 |
Family
ID=85963609
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211363921.5A Active CN115988105B (zh) | 2022-11-02 | 2022-11-02 | 通用流比对方法、验证平台、存储介质及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115988105B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103841083A (zh) * | 2012-11-22 | 2014-06-04 | 华为技术有限公司 | 增强报文识别能力的方法及装置 |
CN104065536A (zh) * | 2014-07-02 | 2014-09-24 | 浪潮集团有限公司 | 基于uvm验证方法的以太网交换机fpga验证方法 |
CN105376159A (zh) * | 2014-08-25 | 2016-03-02 | 深圳市中兴微电子技术有限公司 | 报文处理转发装置及方法 |
CN112491647A (zh) * | 2020-11-13 | 2021-03-12 | 苏州浪潮智能科技有限公司 | 一种交换机报文测试方法、系统及相关装置 |
CN114640503A (zh) * | 2022-02-22 | 2022-06-17 | 中国建设银行股份有限公司 | 应用系统的验证方法、装置、计算机设备和存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11099973B2 (en) * | 2019-01-28 | 2021-08-24 | Salesforce.Com, Inc. | Automated test case management systems and methods |
-
2022
- 2022-11-02 CN CN202211363921.5A patent/CN115988105B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103841083A (zh) * | 2012-11-22 | 2014-06-04 | 华为技术有限公司 | 增强报文识别能力的方法及装置 |
CN104065536A (zh) * | 2014-07-02 | 2014-09-24 | 浪潮集团有限公司 | 基于uvm验证方法的以太网交换机fpga验证方法 |
CN105376159A (zh) * | 2014-08-25 | 2016-03-02 | 深圳市中兴微电子技术有限公司 | 报文处理转发装置及方法 |
CN112491647A (zh) * | 2020-11-13 | 2021-03-12 | 苏州浪潮智能科技有限公司 | 一种交换机报文测试方法、系统及相关装置 |
CN114640503A (zh) * | 2022-02-22 | 2022-06-17 | 中国建设银行股份有限公司 | 应用系统的验证方法、装置、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115988105A (zh) | 2023-04-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11848849B1 (en) | Testing computer networks in real time | |
US20200313999A1 (en) | Network testing using a programmable packet engine | |
US10897524B1 (en) | Integrated packet generator and checker | |
US8345558B2 (en) | Packet-based memory test of a network device | |
JP4995310B2 (ja) | 送信先違いパケットの検出装置および検出方法 | |
US8553696B1 (en) | Method and system for processing a network packet | |
EP2868045B1 (en) | A method of and network server for detecting data patterns in an input data stream | |
US10659571B1 (en) | Network device with integrated packet generators or packet checkers | |
CN103004158A (zh) | 具有可编程内核的网络设备 | |
US20140198790A1 (en) | Data link layer analysis with packet trace replay | |
CN106789652A (zh) | 业务分流方法及装置 | |
CN110061999A (zh) | 一种基于zynq的网络数据安全分析辅助设备 | |
CN115988105B (zh) | 通用流比对方法、验证平台、存储介质及电子设备 | |
US20220014457A1 (en) | Methods, systems and computer readable media for stateless service traffic generation | |
CN116684358B (zh) | 一种可编程网元设备的流表管理系统及方法 | |
Helmy et al. | Simulation-based'STRESS'testing case study: a multicast routing protocol | |
US10630596B1 (en) | Forwarding action redirection | |
Yao et al. | On-line Detection and Localization of DoS Attacks in NoC | |
US20140198668A1 (en) | Data link layer switch frame forwarding analysis | |
CN115514683A (zh) | 丢包原因确定方法、装置、交换芯片及存储介质 | |
CN113238897B (zh) | 芯片的系统级测试方法、装置、计算机设备及存储介质 | |
WO2021128936A1 (zh) | 报文的处理方法及装置 | |
Zhang et al. | Toward comprehensive network verification: Practices, challenges and beyond | |
Hu et al. | Everyone in SDN Contributes: Fault localization via well-designed rules | |
CN112187568B (zh) | 一种报文传输方法、设备及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |