CN102843269B - 一种模拟微码业务处理流程的方法及系统 - Google Patents
一种模拟微码业务处理流程的方法及系统 Download PDFInfo
- Publication number
- CN102843269B CN102843269B CN201110171026.9A CN201110171026A CN102843269B CN 102843269 B CN102843269 B CN 102843269B CN 201110171026 A CN201110171026 A CN 201110171026A CN 102843269 B CN102843269 B CN 102843269B
- Authority
- CN
- China
- Prior art keywords
- message
- relevant information
- business configuration
- tested
- business
- 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
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种模拟微码业务处理流程的方法及系统,应用于人机交互系统中,该方法包括:将待测试报文封装成指定类型的报文;按照指定的业务类型查找该业务类型对应的业务配置相关信息,然后根据从封装后的报文的头部取出的特定字节数的数据及查找到的业务配置相关信息,发起针对该封装后的报文的业务流分类流程。该系统包括:待测试报文生成模块,用于将待测试报文封装成指定类型的报文;业务配置处理模块,用于按照指定的业务类型查找该业务类型对应的业务配置相关信息;报文流分类模块,用于根据从封装后的报文的头部取出的特定字节数的数据及业务配置处理模块查找到的业务配置相关信息,发起针对该封装后的报文的业务流分类流程。本发明可节约开发成本。
Description
技术领域
本发明涉及数据通讯领域,具体涉及到一种模拟微码报文处理的方法及系统。
背景技术
网络处理器器件内部通常由若干个微码处理器和若干个硬件协处理器组成,多个微码处理器在网络处理器内部并行处理,通过预先编制的微码来控制处理流程。而对于一些复杂的标准操作(如内存操作、路由表查找算法、QoS(Quality of Service,服务质量)的拥塞控制算法、流量调度算法等)则采用硬件协处理器来进一步提高处理性能,从而实现了业务灵活性和高性能的有机结合。
使用微码语言对网络处理器进行编程时,可以以线速对数据通道进行分类和分析,并且可以有条件的控制程序的走向,在报文流分类之后,还可以根据用户的配置修改报文,在实现复杂的流分类和报文编辑的前提下,可以达到极高的查找、转发性能,实现“硬转发”。
纯硬件的ASIC(Application Specific Integrated Circuit,专用集成电路)业务处理器缺乏可编程性,这使得它缺乏灵活性从而跟不上多业务处理的快速发展。虽然现代的ASIC技术提高了可编程性,但从开发难度、开发成本和开发周期方面看,仍然困难重重。
网络处理器完全支持编程,且编程模式简单,一旦有新的技术或者需求出现,可以很方便地通过微码编程来实现,特别是在新规格、新标准的支持上,提供了更快的技术、功能跟进和更加灵活的扩展能力。但是微码的开发相对复杂,而且需与具体的网络处理器类型耦合在一起,不同的网络处理器使用的微码不一样,因此使用的开发调试工具也不一样,这就增加了开发周期和开发成本。
发明内容
本发明的目的在于提供一种模拟微码业务处理流程的方法和系统,使得微码的业务流分类和报文编辑工作可以在人机交互系统上实现。
为解决上述问题,本发明提供了一种模拟微码业务处理流程的方法,应用于人机交互系统中,包括:
将待测试报文封装成指定类型的报文;
按照指定的业务类型查找该业务类型对应的业务配置相关信息,然后根据从封装后的报文的头部取出的特定字节数的数据及查找到的业务配置相关信息,发起针对该封装后的报文的业务流分类流程。
进一步地,所述方法还包括:
如果至少有一个所述业务类型对应的业务配置相关信息查找不到,则提示用户重新进行所述业务配置相关信息的配置。
进一步地,
所述针对该封装后的报文的业务流分类流程,包括:
根据所述查找到的业务配置相关信息判断是否需要对所述封装后的报文的特定域进行处理,如果需要,则提取该报文中的相关字节与业务配置相关信息进行匹配,如二者匹配则获取报文转发所需要的信息,如二者不匹配则丢弃该报文;如果不需要,直接根据所述业务配置相关信息获取并保存该报文转发所需要的信息。
进一步地,所述方法还包括:
判断所述报文是否需要进行学习;如果不需要,则直接根据业务流分类信息和所述待测试报文中的相关内容查询业务配置相关信息中配置的转发表,最终获取报文的出端口;如果需要进行学习,则将待测试报文头部的第六字节到十二字节及报文的来源端口和业务流分类信息写入到相应的学习表中,之后根据业务流分类信息和报文的相关内容查询上述业务配置相关信息中配置的转发表,获取报文的出端口。
进一步地,
所述判断该报文是否需要进行学习,具体包括:
判断是否所述查找到的业务配置相关信息中的学习标记被置为无效或者待测试报文的头部的6字节为特定的值;
如果是,则需要进行学习;否则,不需要进行学习。
进一步地,所述方法还包括:
在报文的学习标记被置为有效后,还判断报文的老化时间是否有效;其中,老化时间的初始值配置在业务相关配置信息中;
如果同一个报文入口在老化时间内没有收到至少两个相同的报文,则把当前老化时间的值减1,重新进行上述判断过程;当当前老化时间值为0时,将从学习表中清除对应的转发项,并将报文的学习标记置为无效;
如果同一个报文入口在老化时间内收到了至少两个相同的报文,则更新当前老化时间的值更新为上述初始值,并保持报文的学习标记为有效。
进一步地,所述方法还包括:
在为所述待测试报文找到出端口后,保存流分类输出的相关信息;
根据所述查找到的业务配置相关信息中入口和出口的相关信息以及所述流分类输出的相关信息,获取报文编辑的具体动作,并根据流分类的结果和报文的类型,获取报文编辑的具体位置,然后在相应的位置对所述待测试报文进行相应的编辑动作;
在报文头部编辑完成后,将所述待测试报文填充到一个与该报文的出口关联的结构中。
进一步地,所述方法还包括:
所述人机交互系统中预存有所述待测试报文经过流分类及编辑过程后的结果;
在完成编辑后,将所述结果与经过编辑的报文进行一致性比较,并显示比较结果。
相应地,本发明还提供了一种模拟微码业务处理流程的系统,应用于人机交互系统中,包括:
待测试报文生成模块,用于将待测试报文封装成指定类型的报文;
业务配置处理模块,用于按照指定的业务类型查找该业务类型对应的业务配置相关信息;
报文流分类模块,用于根据从封装后的报文的头部取出的特定字节数的数据及所述业务配置处理模块查找到的业务配置相关信息,发起针对该封装后的报文的业务流分类流程。
进一步地,
所述业务配置处理模块还用于在至少有一个所述业务类型对应的业务配置相关信息查找不到时,提示用户重新进行所述业务配置相关信息的配置。
进一步地,
所述报文流分类模块用于发起针对该封装后的报文的业务流分类流程,包括:
所述报文流分类模块用于根据所述查找到的业务配置相关信息判断是否需要对所述封装后的报文的特定域进行处理,如果需要,则提取该报文中的相关字节与业务配置相关信息进行匹配,如二者匹配则获取报文转发所需要的信息,如二者不匹配则丢弃该报文;如果不需要,直接根据所述业务配置相关信息获取并保存该报文转发所需要的信息。
进一步地,
所述报文流分类模块还用于判断所述报文是否需要进行学习;如果不需要,则直接根据业务流分类信息和所述待测试报文中的相关内容查询业务配置相关信息中配置的转发表,最终获取报文的出端口;如果需要进行学习,则将待测试报文头部的第六字节到十二字节及报文的来源端口和业务流分类信息写入到相应的学习表中,之后根据业务流分类信息和报文的相关内容查询上述业务配置相关信息中配置的转发表,获取报文的出端口。
进一步地,
所述报文流分类模块用于判断该报文是否需要进行学习,具体包括:
所述报文流分类模块用于判断是否所述查找到的业务配置相关信息中的学习标记被置为无效或者待测试报文的头部的6字节为特定的值;
如果是,则需要进行学习;否则,不需要进行学习。
进一步地,
所述报文流分类模块还用于在报文的学习标记被置为有效后,判断报文的老化时间是否有效;其中,老化时间的初始值配置在业务相关配置信息中;
如果同一个报文入口在老化时间内没有收到至少两个相同的报文,则把当前老化时间的值减1,重新进行上述判断过程;当当前老化时间值为0时,将从学习表中清除对应的转发项,并将报文的学习标记置为无效;
如果同一个报文入口在老化时间内收到了至少两个相同的报文,则更新当前老化时间的值更新为上述初始值,并保持报文的学习标记为有效。
进一步地,
所述报文流分类模块还用于在为所述待测试报文找到出端口后,保存流分类输出的相关信息;
所述系统还包括报文编辑模块,用于根据所述查找到的业务配置相关信息中入口和出口的相关信息以及所述流分类输出的相关信息,获取报文编辑的具体动作,并根据流分类的结果和报文的类型,获取报文编辑的具体位置,然后在相应的位置对所述待测试报文进行相应的编辑动作;还用于在完成报文头部编辑后,将所述待测试报文填充到一个与该报文的出口关联的结构中。
进一步地,所述系统中还包括:
报文验证模块,其中预存有所述待测试报文经过流分类及编辑过程后的结果;用于在所述报文编辑模块完成报文的编辑后,将所述结果与经过编辑的报文进行一致性比较,并显示比较结果。
本发明在人机交互系统上模拟实现微码的业务处理流程,将复杂的流分类和报文编辑工作在人机交互系统上实现,这样可以充分利用人机交互系统的资源,而又不依赖于具体使用的网络处理器类型,可以加快网络处理器微码开发的周期,对微码的仿真和调试也有较大的参考价值,很大程度节约了开发成本。
附图说明
图1为本发明测试报文产生方法实施例的流程图;
图2为本发明业务配置产生方法实施例的流程图;
图3为本发明业务流分类和报文编辑处理应用实施例的流程图;
图4为本发明业务流分类和报文编辑处理系统实施例的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
在本实施例中,一种模拟微码进行业务处理的方法,应用于人机交互系统中(如PC机),该方法包括:
步骤10、将待处理报文封装成指定类型的报文;
在具体实现时,可以由用户预先在上述人机交互系统中创建各种类型的报文的模板结构;当上述系统接收到开始进行业务处理的指令后,将待处理报文存入到上述指定类型对应的模板结构中,得到相应类型的报文;
还可以将该报文当前状态设置为准备测试状态,并初始化报文统计值;
步骤20、按照指定的业务类型查找该业务类型对应的业务配置相关信息,然后根据查找到的业务配置相关信息发起针对该封装后的报文的业务流分类流程。
其中,在上述查找过程中,需要查找到该业务类型对应的所有业务配置相关信息,如判断出至少一个信息未配置或者配置不正确,则人机交互系统提示用户重新进行配置。业务配置相关信息可以但不限于包括:报文的入口、出口等信息。
上述对封装后的报文进行业务流分类的过程,实质是从上述封装后的报文的头部取出特定字节数的数据进行分析处理的过程。其中,取出的字节数与该封装后的报文的类型有关,其取值需保证系统能根据该取出的数据完成该类型的报文的流分类操作。为实现方便,可以对各种类型的报文的头部统一取出长度为128字节的数据。
上述对特定字节数的数据分析处理的过程包括:根据上述查找到的业务配置相关信息判断是否需要对封装后的报文的特定域进行处理(即:依据业务配置相关信息中配置的是透传业务还是交换业务(或者其它业务)确定是否需要对该报文的特定域进行处理),如果需要,则提取该报文中的相关字节与业务配置相关信息进行匹配,如二者匹配则获取报文转发所需要的信息,如二者不匹配则丢弃该报文,并进行丢包统计;如果不需要,直接根据业务配置相关信息获取并保存该报文转发所需要的信息。
此后,还需要判断该报文是否需要进行学习;如果不需要,则直接根据业务配置相关信息和待测试报文中的相关内容查询业务配置相关信息中配置的转发表,最终获取报文的出端口;如果需要进行学习,则将待测试报文头部的第六字节到十二字节及报文的来源端口和业务流分类信息写入到相应的学习表中,之后根据业务流分类信息和报文的相关内容查询上述业务配置相关信息中配置的转发表,获取报文的出端口。其中,判断该报文是否需要进行学习的原则是:判断是否上述查找到的业务配置相关信息中的学习标记被置为无效或者待测试报文的头部的6字节为特定的值;如果是,则需要进行学习;否则,不需要进行学习。
在报文的学习标记被置为有效后,还需要判断报文的老化时间是否有效。其中,老化时间的初始值配置在业务配置相关信息中。如果同一个报文入口在老化时间内没有收到至少两个相同的报文,则系统将当前老化时间的值减1,重新进行上述判断过程;当检测到当前老化时间值为0时,将从学习表中清除对应的转发项,并将报文的学习标记置为无效;如果同一个报文入口在老化时间内收到了至少两个相同的报文,则更新当前老化时间的值更新为上述初始值,并保持报文的学习标记为有效。
在为待测试报文找到出端口之后,整个报文流分类的过程结束,系统还需要保存流分类输出的相关信息,设置报文流分类标识无效,并触发报文编辑的处理流程。
报文的编辑过程,包括:首先将待测试报文的头部128字节全部填充到一个256字节大小的用于报文编辑的结构中,此结构的头部64字节和最后64字节都预留出来,并设置这些位置的值为一些特定符号,即将待测试报文头部的128字节填充到此结构的中间128字节中。填充完毕后,将填充的128字节与待测试报文的头部128字节进行比较,如果内容完全相同,设置报文编辑标识为有效,否则重新将待测试报文的头部128字节拷贝到报文编辑结构的中间128字节的位置,如果出现多次拷贝不成功的情况,则丢弃此报文,并做相应的丢包统计。
此后,根据业务配置相关信息中入口和出口的相关信息以及上述流分类输出的相关信息,获取报文编辑的具体动作,如果是添加操作,从业务配置相关信息中获取添加字段的具体内容和长度,如果是删除操作,从业务配置相关信息中获取删除字段的具体内容和长度,如果是修改操作,从业务配置相关信息中获取修改字段的具体内容和长度,之后根据流分类的结果和报文的类型,获取报文编辑的具体位置,在进行报文编辑之前,首先可以设置一个指针,指向报文编辑结构中128字节的起始地址,之后根据需要编辑字段的具体内容、长度和报文编辑的具体位置调整此指针的位置,进行报文编辑工作。在进行报文编辑时,需要调整报文的长度和报文在结构中存放的位置,整个报文头部编辑完成后,将此报文填充到一个与该报文的出口关联的结构中。
当报文的出口存在多个时,需要为每个出口分配一个相应的结构,用于保存编辑好的报文,在所有的出端口的结构得到填充后,将报文编辑标识设置为无效,整个报文的编辑工作完成。
在整个报文编辑工作完成之后,需要验证经过整个流分类和报文编辑处理的报文是否符合预期的要求,如果不符合预期的要求,用户需要对整个业务处理流程进行分析,主要分析业务流分类的结果和报文编辑的结果,找到问题的根源,并进行修改,保证业务的处理流程符合预期的要求。如果最终的结果符合流分类和配置的要求,就将相应的实现方案应用到具体的硬件上,快速的实现物理层次的报文流分类和报文编辑。
本发明还提供了一种在人机交互系统上实现业务流分类和报文编辑的系统,该系统包括:
测试报文生成模块,用于接收相关的报文类型命令,根据不同的报文类型命令自动生成各种类型的测试报文,并将测试报文准备就绪状态置位;
业务配置处理模块,用于接收到业务配置命令后,判断与所述业务相关的所有信息是否都已经正确配置,若有任何一个信息未配置或者配置不正确,则显示配置下发失败,重新下发相关配置;若与所述业务相关的所有信息都已经正常配置,则显示配置下发成功。
优选地,该业务配置模块可具有如下特点:
所述业务配置处理模块,进一步用于判断所有配置信息是否都为正常配置,且各个配置信息之间的关联性都正确,若所有配置信息都为正确配置(此处所谓的正确配置是指非异常配置,比如说端口号的配置需要是一个大于0的值,如果被配置了小于0的值即认为是异常配置),且各个信息之间的关联性均正确,则将配置就绪状态设置为有效,并触发报文流分类操作。对于关联关系是否配置正确的判断可以在配置业务的时候进行检查,比如前面配置了port+vlan的业务,那么在进行下一个配置的时候会检查是否为port+vlan配置了一个交换的转发域等等,其实这些配置信息是手动在人机交互系统上一条一条配置到相应的配置结构保存的,只有当测试报文准备好了,并且配置信息(以及关联关系)下发正确才进行流分类。
报文流分类模块,用于在测试报文准备就绪状态置位和配置就绪状态有效的前提下,根据配置的信息进行报文流分类,并产生相应的流分类信息,根据报文的相应字段或报文流分类的中间结果继续进行流分类,直到获取待测试报文的出端口,整个流分类的处理流程才结束,流分类的过程中,需要保存流分类的结果,用于待测试报文的报文编辑。如果在流分类的处理过程中,发现测试的报文不符合配置的要求,丢弃待测试报文并做出相应的统计。
报文编辑模块,用于根据配置的入口和出口的相关模式信息以及流分类的结果,获取报文编辑的具体动作和需要操作字段的具体位置、内容和长度,完成整个报文的编辑工作,根据流分类的结果将修改后的报文填充到出端口对应的各个结构中。
报文验证模块,主要用于对修改后的报文与预期的报文进行比较,如果与预期的相同,则表明报文编辑正确,否则需要根据单步调试,找到报文编辑出错的位置,并进行修改,直到验证通过,整个验证工作才算结束。
本实施例中,待测试报文的产生方法,是通过建立一种数据库的机制来保证下发的命令与产生的待测试报文的类型一致,避免用户手动频繁设置待测试报文而造成产生的待测试报文与预期不符合的问题。
如图1所示,待测试报文的产生方法包括:
步骤101、接收到与待测试报文类型相关的配置命令后,生成待测试报文类型状态机,并将该待测试报文类型状态机的状态初始化为无效状态;
步骤102、在无效状态下,待测试报文类型状态机接收到待测试报文类型配置命令后,判断当前数据库中是否存在与当前待测试报文类型相同的报文类型,若数据库中没有与待测试报文类型相同的报文类型,则执行步骤103,若数据库中有有相同的报文类型,则执行步骤105;
步骤103、待测试报文类型状态机仍处于无效状态,参照报文模板,写入该待测试报文类型对应的待测试报文到数据库中,并执行步骤104;
步骤104、判断写入到数据库中的待测试报文的类型是否与待测试报文类型配置命令一致,如果一致,则执行步骤102,否则执行步骤101;
步骤105、将待测试报文类型状态机置为有效状态,并触发业务配置操作。
待测试报文类型状态机有两种状态:无效状态和有效状态。该状态机状态的变迁由相关的待测试报文类型配置命令触发,当接收到新的待测试报文类型配置命令之后,待测试报文类型状态机会判断该待测试报文类型是否已经保存在数据库中,若数据库中有与相应的待测试报文类型配置命令对应的报文后,状态机就会由无效状态迁移到有效状态,在有效状态的情况下,才能接收业务配置命令,业务配置才能正确地创建起来。
如图2所示,业务配置产生方法实施例的流程图,通过该图可清楚地理解业务配置创建的整个过程,该过程包括:
步骤201、在测试报文状态机为有效的情况下,接收相关的配置命令,并生成业务状态机,并将状态机初始化为未收齐状态;
对于每一种业务生成一个业务状态机;
步骤202、业务状态机在未收齐状态下,根据依次接收到的各条业务配置命令,进行业务配置;
步骤203、当接收到业务配置命令后,判断该业务状态机相关的所有业务配置相关信息是否都已经正常配置;对于已经正常配置的相关信息在状态机中被置为有效状态,然后再判断其他信息是否处于有效状态和各个信息之间的关联性是否正确,当所有信息均处于有效状态并且各个信息之间的关联性正确时,转入业务配置收齐状态,执行步骤205,否则该业务状态机依然处于未收齐状态,并执行步骤204;
步骤204、清除处于无效状态的业务配置信息,转入步骤202;
步骤205、业务状态机对该业务类型进行编码,记录该业务需要查询的表项的内容和次序,并放入数据库中保存。
采用业务状态机机制,可以解决许多复杂业务配置问题:1.触发点问题,因为一个完整的业务涉及到多个接口,必须关联起来一起看,只有所有的信息都全了,才可以进行后续流分类和报文编辑;2.在业务配置信息修改时,可以做到支持动态修改:若某个接口下的某条配置信息改变了,可以立刻体现到业务上,并更新相应的数据库;3.业务配置信息删除时,可同步到数据库;4.业务流分类对查表的顺序有严格的要求,将配置的表项与业务关联就可保证所有配置信息按照一定顺序下发,从而保证流分类的正确性。
如图3所示,业务流分类和报文编辑处理过程包括:
步骤301、业务状态机处于收齐状态,将当前的待测试报文的类型与使用的业务配置相关信息进行比较,执行步骤302;
步骤302、根据比较结果,如果待测试报文的类型与使用的业务配置没有对应关系(如配置了IP报文的配置相关信息,但待测试的却是非IP报文,则认为二者没有对应关系),则执行步骤303,否则执行步骤304;
步骤303、将该待测试报文丢弃,进行报文的丢包统计,并置位报文流分类状态标记为无效,报文流分类过程结束;
步骤304、依次查找数据库中记录的该业务配置的各个表项,提取待测试报文的头部128字节,根据表项的内容与报文的相应字段或流分类的结果做匹配,输出相应的匹配结果;
步骤305、在匹配结果为成功的情况下,执行步骤306,否则执行步骤303;
步骤306、判断该表项是否是报文查询的最后一个表项,如果是最后一张查询的表项,执行步骤307,如果不是查询的最后一张表项,执行步骤304;
步骤307、保留报文流分类的结果,并置位报文流分类状态标记为有效,报文流分类过程结束;
步骤308、根据报文流分类标记为有效,触发报文修改标记有效,并提取待测试报文头部128字节到256字节的报文编辑结构中,并将其填充到256字节报文的中间128字节的位置,其它位置填充为特殊标记值;
步骤309、根据待测试报文的类型、业务的配置以及流分类的结果确定报文的修改动作和需要修改的位置、内容和长度,在对报文中间字段进行操作的情况下,如果是进行添加字段的操作,需要先进行数据块的搬移,再添加相应的字段到报文中,如果是剥离字段的操作,需要先将相应的字段剥离,之后再进行数据块的搬移,如果是修改字段的操作,直接对报文的进行替换操作,在对报文的头部和尾部进行操作的情况下,直接进行报文的添加、剥离和替换操作,报文修改完毕之后,执行步骤310;
步骤310、将修改后的报文与数据库中的预期报文进行比较,并将比较结果通知给用户;
步骤311、如果通过比较发现修改后的报文与预期的报文不一致,用户需要对整个报文流分类和报文编辑的流程进行单步的调试,找到出错的位置,并进行修改后,重新执行步骤304,直到修改后的报文与预期的一致,如果发现修改后的报文与预期的报文一致,执行步骤312;
步骤312、系统判断进行流分类的多个出端口中的最后一个出端口的报文编辑是否完成,如果已经完成,将报文修改标记置位为无效,将流分类标记置位为无效,且执行步骤313,否则执行步骤309;
步骤313、完成整个流分类和报文编辑工作。
如图4所示,为本发明业务流分类和报文编辑处理系统实施例的结构示意图,该系统包括:待测试报文生成模块401、业务配置处理模块402、报文流分类和报文编辑模块403以及报文验证模块404,该测试报文生成模块可以根据接收的命令与将与该命令相对应的报文类型写入到数据库中,需要使用测试报文时直接从数据库中获取待测试报文,并将测试报文类型置位为有效状态;业务配置处理模块可以用于业务状态机在未收齐状态下,接收到业务配置命令后,判断与所述业务状态机相关的所有信息是否都已经正常配置,若有任何一个信息未配置或者配置不正确,则所述业务状态机仍处于未收齐状态;若与所述业务状态机相关的所有信息都已经正常配置,则所述业务状态机转入收齐状态,并触发业务流分类和报文的编辑处理流程。报文流分类和报文编辑模块,根据使用的测试报文类型和配置的信息进行报文流分类,并产生相应的流分类信息,根据报文的相应字段或报文流分类的中间结果继续进行流分类,直到获取待测试报文的出端口,整个流分类的处理流程才结束,报文编辑主要是根据配置的入口和出口的相关模式信息以及流分类的结果,获取报文编辑的具体动作、具体位置以及需要操作字段的具体内容和长度,完成整个报文的编辑工作,根据流分类的结果将修改后的报文填充到出端口对应的各个结构中。报文验证,主要将修改后的报文与预期的报文进行比较,如果与预期的相同,则表明报文编辑正确,否则需要进一步根据单步调试找到报文出错的位置,直到修改并验证通过,整个验证工作才算结束。
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发明不限制于任何特定形式的硬件和软件的结合。
以上所述仅为本发明的优选实施例而已,并非用于限定本发明的保护范围。根据本发明的发明内容,还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (14)
1.一种模拟微码业务处理流程的方法,应用于人机交互系统中,包括:
将待测试报文封装成指定类型的报文;
按照指定的业务类型查找该业务类型对应的业务配置相关信息,然后根据从封装后的报文的头部取出的特定字节数的数据及查找到的业务配置相关信息,发起针对该封装后的报文的业务流分类流程;
其中,所述针对该封装后的报文的业务流分类流程,具体包括:
根据所述查找到的业务配置相关信息判断是否需要对所述封装后的报文的特定域进行处理,如果需要,则提取该报文中的相关字节与业务配置相关信息进行匹配,如二者匹配则获取报文转发所需要的信息,如二者不匹配则丢弃该报文;如果不需要,直接根据所述业务配置相关信息获取并保存该报文转发所需要的信息。
2.如权利要求1所述的方法,其特征在于,还包括:
如果至少有一个所述业务类型对应的业务配置相关信息查找不到,则提示用户重新进行所述业务配置相关信息的配置。
3.如权利要求1所述的方法,其特征在于,还包括:
判断所述报文是否需要进行学习;如果不需要,则直接根据业务流分类信息和所述待测试报文中的相关内容查询业务配置相关信息中配置的转发表,最终获取报文的出端口;如果需要进行学习,则将待测试报文头部的第六字节到十二字节及报文的来源端口和业务流分类信息写入到相应的学习表中,之后根据业务流分类信息和报文的相关内容查询上述业务配置相关信息中配置的转发表,获取报文的出端口。
4.如权利要求3所述的方法,其特征在于:
所述判断该报文是否需要进行学习,具体包括:
判断是否所述查找到的业务配置相关信息中的学习标记被置为无效或者待测试报文的头部的6字节为特定的值;
如果是,则需要进行学习;否则,不需要进行学习。
5.如权利要求3或4所述的方法,其特征在于,还包括:
在报文的学习标记被置为有效后,还判断报文的老化时间是否有效;其中,老化时间的初始值配置在业务相关配置信息中;
如果同一个报文入口在老化时间内没有收到至少两个相同的报文,则把当前老化时间的值减1,重新进行上述判断过程;当当前老化时间值为0时,将从学习表中清除对应的转发项,并将报文的学习标记置为无效;
如果同一个报文入口在老化时间内收到了至少两个相同的报文,则更新当前老化时间的值更新为上述初始值,并保持报文的学习标记为有效。
6.如权利要求3所述的方法,其特征在于,还包括:
在为所述待测试报文找到出端口后,保存流分类输出的相关信息;
根据所述查找到的业务配置相关信息中入口和出口的相关信息以及所述流分类输出的相关信息,获取报文编辑的具体动作,并根据流分类的结果和报文的类型,获取报文编辑的具体位置,然后在相应的位置对所述待测试报文进行相应的编辑动作;
在报文头部编辑完成后,将所述待测试报文填充到一个与该报文的出口关联的结构中。
7.如权利要求6所述的方法,其特征在于,还包括:
所述人机交互系统中预存有所述待测试报文经过流分类及编辑过程后的结果;
在完成编辑后,将所述结果与经过编辑的报文进行一致性比较,并显示比较结果。
8.一种模拟微码业务处理流程的系统,应用于人机交互系统中,包括:
待测试报文生成模块,用于将待测试报文封装成指定类型的报文;
业务配置处理模块,用于按照指定的业务类型查找该业务类型对应的业务配置相关信息;
报文流分类模块,用于根据从封装后的报文的头部取出的特定字节数的数据及所述业务配置处理模块查找到的业务配置相关信息,发起针对该封装后的报文的业务流分类流程;
其中,所述报文流分类模块用于发起针对该封装后的报文的业务流分类流程,包括:
所述报文流分类模块用于根据所述查找到的业务配置相关信息判断是否需要对所述封装后的报文的特定域进行处理,如果需要,则提取该报文中的相关字节与业务配置相关信息进行匹配,如二者匹配则获取报文转发所需要的信息,如二者不匹配则丢弃该报文;如果不需要,直接根据所述业务配置相关信息获取并保存该报文转发所需要的信息。
9.如权利要求8所述的系统,其特征在于,
所述业务配置处理模块还用于在至少有一个所述业务类型对应的业务配置相关信息查找不到时,提示用户重新进行所述业务配置相关信息的配置。
10.如权利要求8所述的系统,其特征在于,
所述报文流分类模块还用于判断所述报文是否需要进行学习;如果不需要,则直接根据业务流分类信息和所述待测试报文中的相关内容查询业务配置相关信息中配置的转发表,最终获取报文的出端口;如果需要进行学习,则将待测试报文头部的第六字节到十二字节及报文的来源端口和业务流分类信息写入到相应的学习表中,之后根据业务流分类信息和报文的相关内容查询上述业务配置相关信息中配置的转发表,获取报文的出端口。
11.如权利要求10所述的系统,其特征在于:
所述报文流分类模块用于判断该报文是否需要进行学习,具体包括:
所述报文流分类模块用于判断是否所述查找到的业务配置相关信息中的学习标记被置为无效或者待测试报文的头部的6字节为特定的值;
如果是,则需要进行学习;否则,不需要进行学习。
12.如权利要求10或11所述的系统,其特征在于:
所述报文流分类模块还用于在报文的学习标记被置为有效后,判断报文的老化时间是否有效;其中,老化时间的初始值配置在业务相关配置信息中;
如果同一个报文入口在老化时间内没有收到至少两个相同的报文,则把当前老化时间的值减1,重新进行上述判断过程;当当前老化时间值为0时,将从学习表中清除对应的转发项,并将报文的学习标记置为无效;
如果同一个报文入口在老化时间内收到了至少两个相同的报文,则更新当前老化时间的值更新为上述初始值,并保持报文的学习标记为有效。
13.如权利要求12所述的系统,其特征在于:
所述报文流分类模块还用于在为所述待测试报文找到出端口后,保存流分类输出的相关信息;
所述系统还包括报文编辑模块,用于根据所述查找到的业务配置相关信息中入口和出口的相关信息以及所述流分类输出的相关信息,获取报文编辑的具体动作,并根据流分类的结果和报文的类型,获取报文编辑的具体位置,然后在相应的位置对所述待测试报文进行相应的编辑动作;还用于在完成报文头部编辑后,将所述待测试报文填充到一个与该报文的出口关联的结构中。
14.如权利要求13所述的系统,其特征在于,还包括:
报文验证模块,其中预存有所述待测试报文经过流分类及编辑过程后的结果;用于在所述报文编辑模块完成报文的编辑后,将所述结果与经过编辑的报文进行一致性比较,并显示比较结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110171026.9A CN102843269B (zh) | 2011-06-23 | 2011-06-23 | 一种模拟微码业务处理流程的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110171026.9A CN102843269B (zh) | 2011-06-23 | 2011-06-23 | 一种模拟微码业务处理流程的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102843269A CN102843269A (zh) | 2012-12-26 |
CN102843269B true CN102843269B (zh) | 2018-04-03 |
Family
ID=47370346
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110171026.9A Active CN102843269B (zh) | 2011-06-23 | 2011-06-23 | 一种模拟微码业务处理流程的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102843269B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104113443B (zh) * | 2013-04-19 | 2018-10-02 | 南京中兴新软件有限责任公司 | 一种网络设备检测方法、装置及云检测系统 |
CN107342952B (zh) * | 2014-04-01 | 2022-03-01 | 华为技术有限公司 | 业务链路选择控制方法以及设备 |
CN112073256B (zh) * | 2020-06-01 | 2022-07-19 | 新华三信息安全技术有限公司 | 一种丢包处理方法、装置、设备及机器可读存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1394010A (zh) * | 2001-06-21 | 2003-01-29 | 华为技术有限公司 | 一种网络处理器微码测试方法及其使用装置 |
CN102075566A (zh) * | 2010-12-24 | 2011-05-25 | 华为技术有限公司 | 业务的分流处理方法、通信设备及网络系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050281202A1 (en) * | 2004-06-22 | 2005-12-22 | Intel Corporation | Monitoring instructions queueing messages |
-
2011
- 2011-06-23 CN CN201110171026.9A patent/CN102843269B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1394010A (zh) * | 2001-06-21 | 2003-01-29 | 华为技术有限公司 | 一种网络处理器微码测试方法及其使用装置 |
CN102075566A (zh) * | 2010-12-24 | 2011-05-25 | 华为技术有限公司 | 业务的分流处理方法、通信设备及网络系统 |
Non-Patent Citations (1)
Title |
---|
面向网络处理器的数据平面软件设计框架;赵丽萍;《计算机工程》;20060331;正文第95-97页 * |
Also Published As
Publication number | Publication date |
---|---|
CN102843269A (zh) | 2012-12-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10880197B2 (en) | Methods, systems, and computer readable media for testing a network node using source code for programming a packet forwarding plane of the network node | |
CN103004158B (zh) | 具有可编程内核的网络设备 | |
US9065770B2 (en) | Traffic item impairment emulation | |
CN109739755A (zh) | 一种基于程序追踪和混合执行的模糊测试系统 | |
CN106557413A (zh) | 基于代码覆盖率获取测试用例的方法和设备 | |
US20180115466A1 (en) | Systems and methods for scalable network modeling | |
CN102291272A (zh) | 设备或网络的远程动态测试方法 | |
CN107943707A (zh) | 行为树的测试方法、装置和存储介质以及终端 | |
CN102843269B (zh) | 一种模拟微码业务处理流程的方法及系统 | |
CN110287696A (zh) | 一种反弹shell进程的检测方法、装置和设备 | |
CN106411637A (zh) | 物联网设备场景测试方法 | |
CN111935081B (zh) | 一种数据包脱敏方法和装置 | |
CN107315586A (zh) | 应用打包的方法、装置和系统 | |
CN109165363A (zh) | 一种网络数据快照的配置方法 | |
Yao et al. | Formal modeling and systematic black-box testing of sdn data plane | |
CN110298007A (zh) | 用户行为统计方法、装置、电子设备及计算机可读存储介质 | |
CN109634569A (zh) | 基于注解的流程实现方法、装置、设备及可读存储介质 | |
CN110519107A (zh) | 城域网电路扩容方法及装置 | |
CN107703773A (zh) | 一种基于硬件在环仿真系统的软件测试方法及装置 | |
CN109032941A (zh) | 测试用例驱动的可持续集成接口自动化测试方法及系统 | |
JP2002259161A (ja) | テストスクリプトの自動生成装置 | |
CN115549862B (zh) | 基于动态解析的mes系统并发性能测试数据接收方法 | |
CN103457957B (zh) | 一种具有自适应功能的网络渗透测试系统及方法 | |
Zichao et al. | Ethernet topology discovery for virtual local area networks with incomplete information | |
CN109522217A (zh) | 应用程序的内存测试方法及终端设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |