CN102843269A - 一种模拟微码业务处理流程的方法及系统 - Google Patents

一种模拟微码业务处理流程的方法及系统 Download PDF

Info

Publication number
CN102843269A
CN102843269A CN2011101710269A CN201110171026A CN102843269A CN 102843269 A CN102843269 A CN 102843269A CN 2011101710269 A CN2011101710269 A CN 2011101710269A CN 201110171026 A CN201110171026 A CN 201110171026A CN 102843269 A CN102843269 A CN 102843269A
Authority
CN
China
Prior art keywords
message
relevant information
tested
business
business configuration
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
CN2011101710269A
Other languages
English (en)
Other versions
CN102843269B (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.)
ZTE Corp
Original Assignee
ZTE Corp
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 ZTE Corp filed Critical ZTE Corp
Priority to CN201110171026.9A priority Critical patent/CN102843269B/zh
Publication of CN102843269A publication Critical patent/CN102843269A/zh
Application granted granted Critical
Publication of CN102843269B publication Critical patent/CN102843269B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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 (16)

1.一种模拟微码业务处理流程的方法,应用于人机交互系统中,包括:
将待测试报文封装成指定类型的报文;
按照指定的业务类型查找该业务类型对应的业务配置相关信息,然后根据从封装后的报文的头部取出的特定字节数的数据及查找到的业务配置相关信息,发起针对该封装后的报文的业务流分类流程。
2.如权利要求1所述的方法,其特征在于,还包括:
如果至少有一个所述业务类型对应的业务配置相关信息查找不到,则提示用户重新进行所述业务配置相关信息的配置。
3.如权利要求1所述的方法,其特征在于:
所述针对该封装后的报文的业务流分类流程,具体包括:
根据所述查找到的业务配置相关信息判断是否需要对所述封装后的报文的特定域进行处理,如果需要,则提取该报文中的相关字节与业务配置相关信息进行匹配,如二者匹配则获取报文转发所需要的信息,如二者不匹配则丢弃该报文;如果不需要,直接根据所述业务配置相关信息获取并保存该报文转发所需要的信息。
4.如权利要求3所述的方法,其特征在于,还包括:
判断所述报文是否需要进行学习;如果不需要,则直接根据业务流分类信息和所述待测试报文中的相关内容查询业务配置相关信息中配置的转发表,最终获取报文的出端口;如果需要进行学习,则将待测试报文头部的第六字节到十二字节及报文的来源端口和业务流分类信息写入到相应的学习表中,之后根据业务流分类信息和报文的相关内容查询上述业务配置相关信息中配置的转发表,获取报文的出端口。
5.如权利要求4所述的方法,其特征在于:
所述判断该报文是否需要进行学习,具体包括:
判断是否所述查找到的业务配置相关信息中的学习标记被置为无效或者待测试报文的头部的6字节为特定的值;
如果是,则需要进行学习;否则,不需要进行学习。
6.如权利要求4或5所述的方法,其特征在于,还包括:
在报文的学习标记被置为有效后,还判断报文的老化时间是否有效;其中,老化时间的初始值配置在业务相关配置信息中;
如果同一个报文入口在老化时间内没有收到至少两个相同的报文,则把当前老化时间的值减1,重新进行上述判断过程;当当前老化时间值为0时,将从学习表中清除对应的转发项,并将报文的学习标记置为无效;
如果同一个报文入口在老化时间内收到了至少两个相同的报文,则更新当前老化时间的值更新为上述初始值,并保持报文的学习标记为有效。
7.如权利要求4所述的方法,其特征在于,还包括:
在为所述待测试报文找到出端口后,保存流分类输出的相关信息;
根据所述查找到的业务配置相关信息中入口和出口的相关信息以及所述流分类输出的相关信息,获取报文编辑的具体动作,并根据流分类的结果和报文的类型,获取报文编辑的具体位置,然后在相应的位置对所述待测试报文进行相应的编辑动作;
在报文头部编辑完成后,将所述待测试报文填充到一个与该报文的出口关联的结构中。
8.如权利要求7所述的方法,其特征在于,还包括:
所述人机交互系统中预存有所述待测试报文经过流分类及编辑过程后的结果;
在完成编辑后,将所述结果与经过编辑的报文进行一致性比较,并显示比较结果。
9.一种模拟微码业务处理流程的系统,应用于人机交互系统中,包括:
待测试报文生成模块,用于将待测试报文封装成指定类型的报文;
业务配置处理模块,用于按照指定的业务类型查找该业务类型对应的业务配置相关信息;
报文流分类模块,用于根据从封装后的报文的头部取出的特定字节数的数据及所述业务配置处理模块查找到的业务配置相关信息,发起针对该封装后的报文的业务流分类流程。
10.如权利要求9所述的系统,其特征在于,
所述业务配置处理模块还用于在至少有一个所述业务类型对应的业务配置相关信息查找不到时,提示用户重新进行所述业务配置相关信息的配置。
11.如权利要求9所述的系统,其特征在于,
所述报文流分类模块用于发起针对该封装后的报文的业务流分类流程,包括:
所述报文流分类模块用于根据所述查找到的业务配置相关信息判断是否需要对所述封装后的报文的特定域进行处理,如果需要,则提取该报文中的相关字节与业务配置相关信息进行匹配,如二者匹配则获取报文转发所需要的信息,如二者不匹配则丢弃该报文;如果不需要,直接根据所述业务配置相关信息获取并保存该报文转发所需要的信息。
12.如权利要求11所述的系统,其特征在于,
所述报文流分类模块还用于判断所述报文是否需要进行学习;如果不需要,则直接根据业务流分类信息和所述待测试报文中的相关内容查询业务配置相关信息中配置的转发表,最终获取报文的出端口;如果需要进行学习,则将待测试报文头部的第六字节到十二字节及报文的来源端口和业务流分类信息写入到相应的学习表中,之后根据业务流分类信息和报文的相关内容查询上述业务配置相关信息中配置的转发表,获取报文的出端口。
13.如权利要求12所述的系统,其特征在于:
所述报文流分类模块用于判断该报文是否需要进行学习,具体包括:
所述报文流分类模块用于判断是否所述查找到的业务配置相关信息中的学习标记被置为无效或者待测试报文的头部的6字节为特定的值;
如果是,则需要进行学习;否则,不需要进行学习。
14.如权利要求12或13所述的系统,其特征在于:
所述报文流分类模块还用于在报文的学习标记被置为有效后,判断报文的老化时间是否有效;其中,老化时间的初始值配置在业务相关配置信息中;
如果同一个报文入口在老化时间内没有收到至少两个相同的报文,则把当前老化时间的值减1,重新进行上述判断过程;当当前老化时间值为0时,将从学习表中清除对应的转发项,并将报文的学习标记置为无效;
如果同一个报文入口在老化时间内收到了至少两个相同的报文,则更新当前老化时间的值更新为上述初始值,并保持报文的学习标记为有效。
15.如权利要求14所述的系统,其特征在于:
所述报文流分类模块还用于在为所述待测试报文找到出端口后,保存流分类输出的相关信息;
所述系统还包括报文编辑模块,用于根据所述查找到的业务配置相关信息中入口和出口的相关信息以及所述流分类输出的相关信息,获取报文编辑的具体动作,并根据流分类的结果和报文的类型,获取报文编辑的具体位置,然后在相应的位置对所述待测试报文进行相应的编辑动作;还用于在完成报文头部编辑后,将所述待测试报文填充到一个与该报文的出口关联的结构中。
16.如权利要求15所述的系统,其特征在于,还包括:
报文验证模块,其中预存有所述待测试报文经过流分类及编辑过程后的结果;用于在所述报文编辑模块完成报文的编辑后,将所述结果与经过编辑的报文进行一致性比较,并显示比较结果。
CN201110171026.9A 2011-06-23 2011-06-23 一种模拟微码业务处理流程的方法及系统 Active CN102843269B (zh)

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 true CN102843269A (zh) 2012-12-26
CN102843269B 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)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014169765A1 (zh) * 2013-04-19 2014-10-23 中兴通讯股份有限公司 一种网络设备检测方法、装置及云检测系统
WO2015149624A1 (zh) * 2014-04-01 2015-10-08 华为技术有限公司 业务链路选择控制方法以及设备
CN112073256A (zh) * 2020-06-01 2020-12-11 新华三信息安全技术有限公司 一种丢包处理方法、装置、设备及机器可读存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1394010A (zh) * 2001-06-21 2003-01-29 华为技术有限公司 一种网络处理器微码测试方法及其使用装置
US20050281202A1 (en) * 2004-06-22 2005-12-22 Intel Corporation Monitoring instructions queueing messages
CN102075566A (zh) * 2010-12-24 2011-05-25 华为技术有限公司 业务的分流处理方法、通信设备及网络系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1394010A (zh) * 2001-06-21 2003-01-29 华为技术有限公司 一种网络处理器微码测试方法及其使用装置
US20050281202A1 (en) * 2004-06-22 2005-12-22 Intel Corporation Monitoring instructions queueing messages
CN102075566A (zh) * 2010-12-24 2011-05-25 华为技术有限公司 业务的分流处理方法、通信设备及网络系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
赵丽萍: "面向网络处理器的数据平面软件设计框架", 《计算机工程》 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014169765A1 (zh) * 2013-04-19 2014-10-23 中兴通讯股份有限公司 一种网络设备检测方法、装置及云检测系统
US10063412B2 (en) 2013-04-19 2018-08-28 Zte Corporation Network device detecting method and apparatus, and cloud detection system
WO2015149624A1 (zh) * 2014-04-01 2015-10-08 华为技术有限公司 业务链路选择控制方法以及设备
US10397120B2 (en) 2014-04-01 2019-08-27 Huawei Technologies Co., Ltd. Service link selection control method and device
US11240159B2 (en) 2014-04-01 2022-02-01 Huawei Technologies Co., Ltd. Service link selection control method and device
CN112073256A (zh) * 2020-06-01 2020-12-11 新华三信息安全技术有限公司 一种丢包处理方法、装置、设备及机器可读存储介质

Also Published As

Publication number Publication date
CN102843269B (zh) 2018-04-03

Similar Documents

Publication Publication Date Title
CN107908541B (zh) 接口测试方法、装置、计算机设备及存储介质
US10237172B2 (en) Using headerspace analysis to identify flow entry reachability
US9787558B2 (en) Identifying configuration inconsistency in edge-based software defined networks (SDN)
CN110224878A (zh) 网关配置更新方法、装置和服务器
CN110928772A (zh) 一种测试方法及装置
AU2017345769B2 (en) Systems and methods for scalable network modeling
US20220094614A1 (en) Systems for and methods of modelling, analysis and management of data networks
JP2009017298A (ja) データ分析装置
CN108595187A (zh) 安卓安装包集成软件开发工具包的法、装置及存储介质
WO2017020459A1 (zh) 一种为宿主配置插件包的方法与装置
CN109495293B (zh) 一种交换机控制面的测试方法、系统、设备及存储介质
US10830818B2 (en) Ensuring completeness of interface signal checking in functional verification
CN110278272B (zh) 模拟Socket请求的通用方法
CN105446952A (zh) 用于处理语义片段的方法和系统
CN103984633B (zh) 一种银行主机下传作业的自动化测试系统
CN102843269A (zh) 一种模拟微码业务处理流程的方法及系统
WO2020069647A1 (en) System for deploying incremental network updates
CN104836686B (zh) 一种生成服务器的配置文件的方法及装置
CN113919158A (zh) 一种用于飞行控制面板的仿真方法、装置及存储介质
JP2002259161A (ja) テストスクリプトの自動生成装置
Zaitsev et al. Simulating telecommunication systems with CPN Tools
US20230041718A1 (en) Automated code generation based on pseudo-code
CN115604343A (zh) 一种数据传输方法、系统、电子设备和存储介质
TWI756867B (zh) 在作業系統標記物件標籤及產生安全政策的方法及系統
CN107589966A (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