一种对协议帧的处理方法和装置与流程

文档序号:29804993发布日期:2022-04-23 21:24阅读:86来源:国知局
一种对协议帧的处理方法和装置【
技术领域
:】1.本发明涉及通信和信息处理
技术领域
:,特别是涉及一种对协议帧的处理方法和装置。
背景技术
::2.在分组交换中,通过包处理完成报文的识别和转发处理,它首先提取报文信息,进行各种类型报文的识别和解析,然后基于不同的规则进行流分类和协议帧的处理和转发,包括:vlan处理、流识别处理、转发处理和qos处理等,其中对协议帧的识别和处理是一个重要部分。网络中的协议帧大多用于网络功能的管理、控制和维护,在包处理中需要将不同的协议帧转发到不同的处理部分进行处理,或者基于网络安全需要对某些协议帧进行丢弃。3.协议帧识别是根据协议帧所携带的信息,包括目的mac(全称为:mediaaccesscontrol)地址、源mac地址、以太网类型、ip(全称为:internetprotocol)协议号、ip地址以及传送层端口号等字段,和配置的协议帧识别模板进行比较。每个协议帧识别模板可以配置选择的数据域、数据域的值,可以支持通过掩码的方式进行比较;例如可以通过tcam(全称为:ternarycontentaddressablememory)方式实现,识别协议帧后可直接配置处理行为。4.例如:802.1x协议帧可只根据以太网类型为0x888e(16进制),匹配后标记为pdu_idx0;rip(全称为:routinginformationprotocol)帧可基于udp(全称为:userdigitalprotocol)端口号为520并且dmac为0x01-00-5e-xx-xx-xx(16进制)来进行识别,xx表示不关注,匹配后标记为pdu_idx1。5.包处理中,通常通过vlan(全称为:virtuallocalareanetwork)来划分转发域,从而实现数据报文在vlan域内的交换。为了满足多业务需求,还会对网络进行业务切片,不同的网络切片对应不同的业务,切片之间互相独立,互不干扰,各切片可执行不同的处理策略。在切片情况下数据报文的交换域的数量可能会达到vlan个数×切片数,例如对于切片数为8的网络,交换域的个数会达到32k,而协议帧的种类可能有几十种。6.如果针对每个转发域(例如vlan或者每个切片下的vlan)单独控制每种协议帧的处理行为,所需要占用的表项容量就变得非常大,如何在保证设计的灵性性、适用性的情况下,降低表项的规模就变得日益重要。7.鉴于此,克服该现有技术所存在的缺陷是本
技术领域
:亟待解决的问题。技术实现要素:8.本发明要解决的技术问题是传统的处理方法是基于端口提取协议帧到cpu,由cpu进行精确处理;或者通过vlan直接进行控制,但因为vlan和协议帧种类的原因,并不能做到精确控制,例如只能基于vlan进行几种固定协议帧的识别。9.本发明采用如下技术方案:10.第一方面,本发明提供了一种对协议帧的处理方法,以协议帧类型和vlan分组作为两个维度,建立vlan对象中包含的各协议帧类型与行为矩阵中的第一索引属性的映射关系;其中,所述行为矩阵中包含的各个处理行为内容被作为所述行为矩阵的构成要素,并由所述第一索引属性和根据vlan对象确定的第二索引属性唯一确定,方法包括:11.根据获取到的vlan对象,分别确认其所归属的vlan分组和包含的协议帧类型;12.根据确认的vlan分组和包含的协议帧类型,通过所述映射关系获取包含的各个协议帧类型在行为矩阵中的第一索引值;13.根据vlan对象得到的第二索引值,并配合所述第一索引值,从所述行为矩阵中得到所述vlan对象所包含的各个协议帧的处理行为。14.优选的,所述处理行为包括丢弃、转发、复制和透传中的一种或者多种。15.优选的,一个vlan分组对应于一个或者多个vlan对象,其中,同属于一个vlan分组的各个vlan对象之间,两两都包含的协议帧类型映射到行为矩阵中的第一索引属性的第一索引值相同。16.优选的,在确认vlan对象所归属的vlan分组时,方法包括:17.根据vlan对象中所包含的协议帧种类、协议帧类型的数量、协议帧类型的排列关系,以及包含各协议帧类型的总长度中的一项或者多项决定。18.优选的,若确认当前分析的vlan对象不存在与之匹配的vlan分组时,方法还包括:19.在vlan分组中新增一临时分组;20.根据当前分析的vlan对象所包含的协议帧类型进行操作行为填写;21.分析行为矩阵中是否存在单一的第二索引值所包含的多个处理行为能够覆盖填写的操作行为,若可以覆盖则以相应第二索引值下各个处理行为所对应的第一索引值替代所述临时分组中填写的操作行为,并建立其当前分析的vlan对象与所述第二索引值的映射关系。22.优选的,方法还包括:23.分析所述临时分组是否可以与vlan分组进行合并,其中,若临时分组与vlan分组中的第一vlan分组之间存在差异的协议帧的处理方式,在选择第一vlan分组中的处理行为后,仍然能够完成临时分组中vlan对象的处理时,则将所述临时分组关联的各个vlan对象划归到第一vlan分组中处理。24.第二方面,本发明提供了一种对协议帧的处理装置,包括:协议帧识别模块、协议帧与vlan分组表维护模块、第一选择模块、vlan表维护模块、协议帧处理行为表维护模块和第二选择模块,具体的:25.所述协议帧识别模块,用于识别vlan对象中所包含的协议帧类型;26.所述协议帧类型与vlan分组表维护模块,用于管理一张由协议帧类型和vlan分组作为表的两个维度,并由协议帧处理行为表中第一索引值作为内容的二维表;27.所述第一选择模块,用于获取所述协议帧识别模块输出的协议帧标识号和vlan表维护模块输出的vlan组号,并在所述协议帧类型与vlan分组表维护模块中查找到对应的第一索引值;28.所述vlan表维护模块,用于向第一选择模块输出vlan组号,以及向第二选择模块输出第二索引值;29.所述协议帧处理行为表维护模块,用于管理一张由第二索引属性和第一索引属性作为表的两个维度,并由处理行为作为内容的二维表;30.所述第二选择模块,用于从所述vlan表维护模块获取第二索引值,从所述第一选择模块获取第一索引值,并在所述协议帧处理行为表维护模块中查找获取当前vlan下对应协议帧的处理行为。31.优选的,所述协议帧识别模块中维护有至少两个协议帧模板,并通过配对收到的协议帧与协议帧模板中的特征项,确定出当前收到的协议帧所归属的协议帧类型。32.优选的,在所述vlan表维护模块确认当前分析的vlan对象不存在与之匹配的vlan分组时,包括:33.所述协议帧与vlan分组表维护模块在vlan分组中新增一临时分组;根据当前分析的vlan对象所包含的协议帧类型进行操作行为填写;通知所述协议帧处理行为表维护模块新增了一临时分组;34.所述协议帧处理行为表维护模块,分析协议帧处理行为表中是否存在单一的第二索引值所包含的多个处理行为能够覆盖填写的操作行为,若可以覆盖则以相应第二索引值下各个处理行为所对应的第一索引值替代所述临时分组中填写的操作行为,并建立其当前分析的vlan对象与所述第二索引值的映射关系。35.优选的,所述协议帧与vlan分组表维护模块还用于:36.分析所述临时分组是否可以与vlan分组进行合并,其中,若临时分组与vlan分组中的第一vlan分组之间存在差异的协议帧的处理方式,在选择第一vlan分组中的处理行为后,仍然能够完成临时分组中vlan对象的处理时,则将所述临时分组关联的各个vlan对象划归到第一vlan分组中处理。37.第三方面,本发明还提供了一种对协议帧的处理装置,用于实现第一方面所述的对协议帧的处理方法,所述装置包括:38.至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述处理器执行,用于执行第一方面所述的对协议帧的处理方法。39.第四方面,本发明还提供了一种非易失性计算机存储介质,所述计算机存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行,用于完成第一方面所述的对协议帧的处理方法。40.本发明为了减少表项规模,采用对协议帧进行归类的方式,并结合协议帧的处理行为进行归类,可高有效的对多种协议进行了识别及处理,在减少设计规模的同时,可支持基于vlan的协议帧的灵活处理。【附图说明】41.为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍。显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。42.图1是本发明实施例提供的一种对协议帧的处理方法的流程示意图;43.图2是本发明实施例提供的一种对协议帧的处理方法的流程示意图;44.图3是本发明实施例提供的一种对协议帧的处理方法的流程示意图;45.图4是本发明实施例提供的一种对协议帧的处理架构示意图;46.图5是本发明实施例提供的一种对协议帧的处理架构中协议帧识别模块结构示意图;47.图6是本发明实施例提供的另一种对协议帧的处理架构示意图;48.图7是本发明实施例提供的一种对协议帧的处理装置的结构示意图。【具体实施方式】49.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。50.本发明具体是属于数据交换中对协议帧的处理。可应用于基于虚拟局域网(virtuallocalaccessnetwork,简写为:vlan)对协议帧处理,也可应用于类似场景,例如应用于具有切片能力的光线路终端(opticallineterminal,简写为:olt)系统中基于vlan对协议帧的处理、或基于切片对协议帧的处理。vlan对象实际表现内容就可以理解为数据包,而不同的vlan对象表现为数据包的构成要素是由不同的协议帧类型构成的,从而有了本发明实施例中相互之间的逻辑关系。51.本发明的协议帧处理是指对协议帧的转发或丢弃处理,具体的是:丢弃、提取到cpu(全称为:centralprocessunit)、copy到cpu、透传、重定向等,后面将以丢弃、转发、复制和透传作为主要处理行为描述方式进行展开,本领域技术人员可知悉,其他不同场景下可能扩展出来的处理行为因为无需创造性劳动下即可纳入到本发明实现方案中,因此,也应该被认为是本发明的合理保护范围内。52.此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。53.实施例1:54.本发明实施例1提供了一种对协议帧的处理方法,以协议帧类型和vlan分组作为两个维度,建立vlan对象中包含的各协议帧类型与行为矩阵中的第一索引属性的映射关系;其中,所述行为矩阵中包含的各个处理行为内容被作为所述行为矩阵的构成要素,并由所述第一索引属性和根据vlan对象确定的第二索引属性唯一确定,如图1所示,方法包括:55.在步骤201中,根据获取到的vlan对象,分别确认其所归属的vlan分组和包含的协议帧类型。56.例如下表1所示的示例中,pdu_vlan_group0_idx、pdu_vlan_group1_idx、pdu_vlan_group2_idx和pdu_vlan_group3_idx代表了4个vlan分组,而相应的pdu_idx列下的0-127代表了128种协议帧类型,按照相应的顺序排列,而其中表格1中除第一列和第一行以外的参数值则为上述的第一索引值。57.表1[0058][0059]在步骤202中,根据确认的vlan分组和包含的协议帧类型,通过所述映射关系获取包含的各个协议帧类型在行为矩阵中的第一索引值。[0060]在步骤203中,根据vlan对象得到的第二索引值,并配合所述第一索引值,从所述行为矩阵中得到所述vlan对象所包含的各个协议帧的处理行为。[0061]与上面示例的表格属于同一示例场景,相应的行为矩阵可以示例如下表2所示,其中,vlan_pdu_idx所代表的就是第二索引值,而上述归类0处理行为、归类1处理行为、归类2处理行为、归类3处理行为则对应上面示例表格中的第一索引值,即上面第一个表格中的表格内容3直接对应第二表格中的“归类3处理行为”所在列。其中,表2中的转发1和转发2代表了两种不同的转发行为方式,包括但不限于转发的目的不同,转发所涉及的协议修改不同,转发所涉及到内容修改不同等等。而相应的透传1和透传2也代表同一类处理行为下的两个不同处理分支,丢弃1和丢弃2也是类似的情况,例如:丢弃1和丢弃2的差异体现为部分丢弃和丢弃的内容位于数据帧上位置不同等等。[0062]表2[0063][0064]本发明实施例为了减少表项规模,采用对协议帧进行归类的方式,并结合协议帧的处理行为进行归类,可高有效的对多种协议进行了识别及处理,在减少设计规模的同时,可支持基于vlan的协议帧的灵活处理。[0065]其中,所述处理行为包括丢弃、转发、复制和透传等等。在本发明后续实施例中,为了更容易的阐述方案,将采用丢弃、转发和透传3种处理行为作为典型示例进行描述,但是作为本领域技术人员可以基于相应实施方案的阐述将处理行为扩展到可能数量以及情况中去,应当都属于本发明实施例的保护范围内。[0066]在本发明实施例中,若以丢弃、转发和透传3种处理行为作为典型示例描述行为矩阵的话,其实不能充分的展现出行为矩阵的设计意图。在具体实现过程中,处理行为类型远超上述的丢弃、转发和透传3种,因为,细分之下转发的位置也可以划分为多个情况,而对应于是上行数据还是下行数据,对应的处理行为也可能表现为不同细化分支。因此,在不去具体考量行为矩阵的设计意图时候,最为简单的行为矩阵就是采用一行由所有处理行为共同构成的数组,此时,对于vlan_pdu_idx所代表的就是第二索引值而言就只有表2中的0所代表的一行。但是,这种方式最大的问题就在于,随着处理行为的复杂度增加,相应的用表2中一行存储构成的处理行为的数组长度会越来越长,直接表现结果就是类似表2中“归类#处理行为”中的编号“#”的数值越来越大。这样采用单一行建立行为矩阵的话,随着处理行为的复杂度增加,造成的结果就是使用第一索引值查找到处理行为的效率越来越低,而本发明提出的行为矩阵,以及增加的第二索引值的意义就在于克服上述单一行建立行为矩阵的弊端。[0067]考虑到在实际实现过程中,对于不同vlan分组所对应的处理行为类型,相比较总的处理行为而言,一个vlan分组可能只占用其中的一部分处理行为,而其它处理行为在该vlan分组中可能是不涉及到,在这种情况下如何来界定行为矩阵中第二索引值的数量(即对应表2中的行数数量);对此,本发明实施例也给出来优选的实现方式如下:[0068]在对新生成的vlan分组或者本发明实施例后面将在扩展实施方式中出现的临时vlan分组,在确认其包含的协议帧类型所对应的一套处理行为后,将该套处理行为与行为矩阵中已经存在对应每一第二索引值下的一行处理行为进行匹配,若出现匹配度大于等于预设阈值(例如可设定为70%),则可通过扩展列数的方式,使得相应已经存在行为矩阵中的某一行,能有通过上述扩展列数的方式,使其能够包容进新生成的vlan分组所对应的该套处理行为。[0069]在实际实现过程中,行为矩阵的维护,也会根据处理的vlan对象效率进行统计,若处理效率上出现20%的性能浮动,则会进行相应行为矩阵行数和列数调整,即通过增加列的方式将相近的两行进行整合成一行,或者,通过减小列的方式将原本一行的拆分成两行。调整后,在通过实际的vlan对象处理效率进行验证是否最终保留。这个调整过程体现出的技术思想就是,在对于越来越多的vlan分组下,到底是通过增加列数,还是通过增加行数对整体的性能影响最小进行一个验证。而在具体实现过程中,相应取消列的操作实际上有一个隐藏的条件,这个条件不满足的情况下实际上是不会触发减小列的操作,该条件就是:通过统计,确认每一行所包含的处理行为均出现一个或者多个处理行为,在表1中未被使用(这表明,要么有一部分的vlan对象不再出现,或者一部分的vlan对象包含的协议帧类型或者数量发生了改变)。[0070]作为本发明后续实施例展开描述的一个基础理论基础,在本发明实施例中一个vlan分组对应于一个或者多个vlan对象,其中,同属于一个vlan分组的各个vlan对象之间,两两都包含的协议帧类型映射到行为矩阵中的第一索引属性的第一索引值相同。此处所谓的“两两”是指代一个vlan分组中所包含的诸多vlan对象中,任意两个组合到一起,其各自包含的协议帧类型映射到行为矩阵中的第一索引属性的第一索引值相同。[0071]作为本发明实施例提供的一种确认vlan对象所归属的vlan分组的方式,可以是根据vlan对象中所包含的协议帧种类、协议帧类型的数量、协议帧类型的排列关系,以及包含各协议帧类型的总长度中的一项或者多项决定。除此以外,也不排除通过报文的特定字段及其字段内容就能够确定vlan对象的,在本发明实施例中,只要是能够有效起到区别各种vlan对象的方式都可以组合到本发明实施例中。而上述的包含的协议帧种类、协议帧类型的数量、协议帧类型的排列关系,以及包含各协议帧类型的总长度,可以根据vlan对象数量多少和复杂度不同进行动态组合,而相应组合中融入的项数越多,自然能够适用vlan对象总数量越多和复杂度越高的场景。[0072]作为本发明实施例复杂场景实现可能遇到的情况,即初始时候所建立的vlan分组无法有效满足当前形势下的vlan对象复杂情况,此时,就可能发生新引入的vlan对象在已有的vlan分组中找不到可以归属的vlan分组,则结合本发明实施例还存在一种优选的实现过程,如图2所示,若确认当前分析的vlan对象不存在与之匹配的vlan分组时,方法还包括:[0073]在步骤301中,在vlan分组中新增一临时分组。[0074]以上述表1为例,可以呈现为下面表3中包含一临时分组的状态:[0075]表3[0076][0077]其中,表3中临时分组中标识有“待确定处理行为”的,便是接下来步骤302中所涉及的涵待操作行为填写的,而其所在的行坐标(即对应的pdu_idx)即表明了相应待填写操作行为的对应协议帧。[0078]在步骤302中,根据当前分析的vlan对象所包含的协议帧类型进行操作行为填写。[0079]对象进行操作行为填的方式包括但不限于,大数据分析后由服务器自动完成填写,并通过操作人员检验或者利用测试用例数据完成自动检验;还可以采用直接由操作人员输入的方式完成填写。[0080]为了能够将本发明扩展实施方式阐述清楚,接下来仍然延续上述表3给予的实例,以方便理解和具有典型性两方面考虑情况下,将其融入到关联性的步骤中进行过程展示。[0081]接下来用表4展现相应操作人员的填写结果,并且,需要提前说明的是,下面的填写结果是为了后面扩展实施例方式中的vlan组和临时分组合并考虑,可以将下面表4中的临时分组中对应各个协议帧的处理行为与pdu_vlan_group1_idx标识的vlan分组中各个协议帧进行一一对应表现。[0082]表4[0083][0084]在步骤303中,分析行为矩阵中是否存在单一的第二索引值所包含的多个处理行为能够覆盖填写的操作行为,若可以覆盖则以相应第二索引值下各个处理行为所对应的第一索引值替代所述临时分组中填写的操作行为,并建立其当前分析的vlan对象与所述第二索引值的映射关系。[0085]以上面表4为例,可以发现临时分组中操作行为可以通过vlan_pdu_idx取值为2完成全面覆盖;这里如何确定临时分组中的处理行为可以通过表2中哪一个vlan_pdu_idx取值来全面覆盖,采用的最简单一种方式就是遍历,具体是依次遍历表2中不同vlan_pdu_idx值,其所对应行当处理行为是否能够覆盖临时分组中“待确定处理行为”所设定的处理行为,若可以,则建立该临时分组与相应vlan_pdu_idx取值的映射关系,即在获取到临时分组中的vlan对象时,可以根据所述映射关系直接找到表2中其对应的vlan_pdu_idx取值对应行所包含的处理行为。结合表4“临时分组”列第看表2的行;因为vlan_pdu_idx取0、1时都无丢弃2,直接从vlan_pdu_idx为2开始看,推导出“临时分组”列的值为:0、3、0、1、3、1、2、3;刚好和pdu_vlan_group1_idx例的各行值相等,因此,可以删掉临时分组;若得出的值和其他已有的列的各行值不相等,则对应的新增一个pdu_vlan_group3_idx。因此,相应的临时分组在执行完上述的“以相应第二索引值下各个处理行为所对应的第一索引值替代所述临时分组中填写的操作行为”之后表现为下面的表5:[0086]表5[0087][0088]在实际情况中,上述的发生新引入的vlan对象在已有的vlan分组中找不到可以归属的vlan分组,可能是多种原因造成的。[0089]情况1、新引入的vlan对象,无法适配当前已经生成的一个或者多个vlan分组下的第一索引,例如表1中的4列所表现出的4套第一索引值组均无法和行为矩阵(如表2所示即为一种行为矩阵的实例表现)组合得到合适的处理行为结果,此时,就有必要将临时分组转化为一个常规的vlan分组。[0090]情况2、新引入的vlan对象之所以无法匹配到归属的vlan分组,原因可能只是没有预先建立归属映射关系而已,此时,可以将建立临时分组作为保证能够将过程执行下去的权宜之计,而作为优选方案则需要进一对于是否可以将临时分组中的vlan对象划归到历史建立有的vlan分组则是接下来方案所要重点描述的。需要说明的是,在上面表3-表5所呈现的实例,就是针对情况2中最为理想的一种情况而设定的。[0091]如图3所示,相当于在上述步骤303之后,还包括:[0092]在步骤304中,分析所述临时分组是否可以与vlan分组进行合并,其中,若临时分组与vlan分组中的第一vlan分组之间存在差异的协议帧的处理方式,在选择第一vlan分组中的处理行为后,仍然能够完成临时分组中vlan对象的处理时,则将所述临时分组关联的各个vlan对象划归到第一vlan分组中处理。[0093]以上述表5所示,其中的临时分组与vlan分组pdu_vlan_group1_idx具有高度一致性,可以直接将临时分组中的vlan对象划归给pdu_vlan_group1_idx分组。[0094]其中,第一vlan分组在本发明实施例中不具有特殊限定意义,只是为了表述过程中能够与其他vlan分组产生描述上的差异性,表明其是被临时分组所包含的各个vlan对象做合并的那一个vlan分组而已。因此,在解释保护范围时候,不应该对其做过多的解读。[0095]考虑到实际情况中,相应临时分组的数据总量和短时间爆发的数量是巨大的,则上述步骤304的处理过程,还可以是进行临时分组下的vlan对象的处理数量统计,若所述临时分组的处理数量统计预设时间段内并发数小于预设阈值时进行。例如,此处的预设时间可以是5分钟,10分钟,1小时等等,而相应的预设阈值则可以根据实际情况设定,在此不做特殊限定。[0096]实施例2:[0097]本发明实施例提供了一种对协议帧的处理装置,用于实现如实施例1所描述的协议帧的处理方法,如图4所示,包括:协议帧识别模块、协议帧与vlan分组表维护模块、第一选择模块、vlan表维护模块、协议帧处理行为表维护模块和第二选择模块,具体的:[0098]所述协议帧识别模块,用于识别vlan对象中所包含的协议帧类型。[0099]所述协议帧类型与vlan分组表维护模块,用于管理一张由协议帧类型和vlan分组作为表的两个维度,并由协议帧处理行为表中第一索引值作为内容的二维表。[0100]所述第一选择模块,用于获取所述协议帧识别模块输出的协议帧标识号和vlan表维护模块输出的vlan组号,并在所述协议帧类型与vlan分组表维护模块中查找到对应的第一索引值。[0101]所述vlan表维护模块,用于向第一选择模块输出vlan组号,以及向第二选择模块输出第二索引值。[0102]所述协议帧处理行为表维护模块,用于管理一张由第二索引属性和第一索引属性作为表的两个维度,并由处理行为作为内容的二维表。[0103]所述第二选择模块,用于从所述vlan表维护模块获取第二索引值,从所述第一选择模块获取第一索引值,并在所述协议帧处理行为表维护模块中查找获取当前vlan下对应协议帧的处理行为。[0104]本发明实施例为了减少表项规模,采用对协议帧进行归类的方式,并结合协议帧的处理行为进行归类,可高有效的对多种协议进行了识别及处理,在减少设计规模的同时,可支持基于vlan的协议帧的灵活处理。[0105]在本发明实施例中,所述协议帧识别模块中维护有至少两个协议帧模板,并通过配对收到的协议帧与协议帧模板中的特征项,确定出当前收到的协议帧所归属的协议帧类型。[0106]作为本发明实施例复杂场景实现可能遇到的情况,即初始时候所建立的vlan分组无法有效满足当前形势下的vlan对象复杂情况,此时,就可能发生新引入的vlan对象在已有的vlan分组中找不到可以归属的vlan分组,则结合本发明实施例还存在一种优选的实现过程,在所述vlan表维护模块确认当前分析的vlan对象不存在与之匹配的vlan分组时,包括:[0107]所述协议帧与vlan分组表维护模块在vlan分组中新增一临时分组;根据当前分析的vlan对象所包含的协议帧类型进行操作行为填写;通知所述协议帧处理行为表维护模块新增了一临时分组;[0108]所述协议帧处理行为表维护模块,分析协议帧处理行为表中是否存在单一的第二索引值所包含的多个处理行为能够覆盖填写的操作行为,若可以覆盖则以相应第二索引值下各个处理行为所对应的第一索引值替代所述临时分组中填写的操作行为,并建立其当前分析的vlan对象与所述第二索引值的映射关系。[0109]在本发明实施例中,类似实施例1中考虑的情况2:新引入的vlan对象之所以无法匹配到归属的vlan分组,原因可能只是没有预先建立归属映射关系而已,此时,可以将建立临时分组作为保证能够将过程执行下去的权宜之计,而作为优选方案则需要进一对于是否可以将临时分组中的vlan对象划归到历史建立有的vlan分组则是接下来方案所要重点描述的。所述协议帧与vlan分组表维护模块还用于:[0110]分析所述临时分组是否可以与vlan分组进行合并,其中,若临时分组与vlan分组中的第一vlan分组之间存在差异的协议帧的处理方式,在选择第一vlan分组中的处理行为后,仍然能够完成临时分组中vlan对象的处理时,则将所述临时分组关联的各个vlan对象划归到第一vlan分组中处理。[0111]本发明对协议帧进行有效的归类,使各vlan可以灵活地选择不同的协议帧类型进行处理,有效地缩减了表项。根据报文信息对协议帧进行识别,输出待处理的协议帧编码,编码的协议帧可以用于基于端口的协议帧提取或其它处理。在基于vlan进行协议帧处理时,对于编码的协议帧再次归类到多种编码组,在编码组内协议帧仍可归一,通过vlan选择编码组,并配置处理行为。[0112]本发明实施例作为实施例1在共同发明构思下的装置实施例,因此,在实施例1中涉及的相关扩展实现方式同样适用于本发明实施例,在此不一一赘述。[0113]实施例3:[0114]本发明实施例在实施例2的基础上,给予了另一种可行的架构实现方式,与实施例2中将查找(筛选)的主导权交由第一选择模块和第二选择模块不同的是,在本发明实施例中更多表现为相应数据内容的传递和过程的拆分执行。[0115]在pdu_iden(等同于实施例2中的帧协议识别模块)中对协议帧进行识别和编码,如图5所示,条目匹配后,输出协议帧的编码pdu_idx,pdu_idx的取值由待处理协议帧的数据决定,假设待处理协议帧的编号为n-1,pdu_idx的取值为0到n-1。此处的0到n-1对等于实施例1中表1中pdu_idx列的0-127.[0116]基于vlan对象的识别,进行协议帧处理,如图6所示:[0117]根据协议帧识别后输出的pdu_idx,查找pdu_vlan_group_table数据库,该数据库由n个条目组成,每个条目对应一个pdu_idx,每个条目由若干个域组成,分别是pdu_group0_idx,pdu_group1_idx,…,pdu_groupm_idx(可参考实施例1中表1,表3,表4和表5),表示具有pdu_idx的协议帧所对应的m个归类值,这m个归类值由软件进行配置,m值根据设计的具体需求确定(在表1中m设定为3)。[0118]该数据库的每一列分别称为:pdu_vlan_group0_idx,pdu_vlan_group1_idx,…,pdu_vlan_groupm_idx;协议帧根据各自的pdu_idx查找数据库后,输出pdu_group0_idx,pdu_group1_idx,…,pdu_groupm_idx到图6中的第一选择单元。需要说明书的是,本发明实施例中的第一选择单元与上面实施例2中的第一选择模块两者在功能特性上有相似性也有不同点,因此,不应该将两者直接当成相同的主体对象来看到;实施例2中的第一选择模块获取到的参数有两个,而在本实施例中第一选择单元获取到的参数是一个,但是,另一方面也多了一组数据的导入,如图6中的pdu_group0_idx,pdu_group1_idx,…,pdu_groupm_idx所示。[0119]根据输入协议帧的vlan查找vlan_table,如图6所示:[0120]其中,vlan_table包含k个条目(k的取值由需求决定),每个条目对应每个vlan,每个vlan对协议的处理内容包含{vlan_pdu_group_sel,vlan_pdu_idx},vlan_pdu_group_sel用于从该协议帧对应的pdu_group0_idx,pdu_group1_idx,…,pdu_groupm_idx中选择用于此vlan的归类pdu_group(即表1中具体哪一列参数值),vlan_pdu_idx为基于此vlan配置协议帧处理行为第二索引(即表1中除去第一行和第一列之外的表格的内容)。表1为协议帧与vlan分组表维护模块/pdu_vlan_group_table,通过坐标(pdu_idx,vlan_pdu_group_sel)取值处理。[0121]根据vlan_pdu_idx查找vlan_pdu_act_table(例如表2所示,即为一个vlan_pdu_act_table的实例),vlan_pdu_act_table包含多个表项(每一个表项表现为类似表2中的一行),每个表项包含多个域(即表2中的一个单元格),每个域可配置对协议帧的处理行为“丢弃”,“转发”,“透传”等;[0122]对于根据vlan_pdu_idx选定的vlan_pdu_act_entry条目(即选定表2中的行),根据pdu_group选择(即选定表2中的列,pdu_group表现为相应的归类#处理行为)对应的处理行为,为此协议帧对应的处理行为。例如:表2可以理解为协议帧处理行为表维护模块所维护的内容vlan_pdu_act_table,通过坐标(vlan_pdu_idx,pdu_group)取值处理,其中,pdu_group在表2中被表征为归类#处理行为,#具体取值为0,1,2,...。[0123]本发明实施例与实施例2不同之处在于,实施例2中以第一选择模块和第二选择模块获取到查表参数后,直接去相应的协议帧与vlan分组表维护模块,以及协议帧处理行为表维护模块中查询对应结果,这种模式更为常规和典型。而实施例3中,这是以部分参数推动中间查询结果输出的方式,最终基由图6中的第一选择单元和第二选择单元输出相应节点上的结果进行。相比较实施例2而言,本发明实施例会产生更多的中间数据,但是其优势也表现为对查询过程的分级,尤其适用于同一时间或者同一时间段容易出现大批量相同编号数据帧的情况,此时,采用本发明实施例实际上是可以提高查询效率的,因为,相应的pdu_vlan_group_table输出的中间数据(图6中表现为pdu_group0_idx,...,pdu_groupm_idx)是可以被缓存起来,供后续处理的。[0124]实施例4:[0125]本发明实施例,则是作为上述各实施例的一个支撑实施例表现,本发明实施例从如何完成相应表1和表2所呈现的数据库内容的建立作为阐述的重点进行呈现。[0126]在本发明实施例中假设需要支持4k个vlan,需要对128种协议帧进行处理,设计4种pdu_vlan_group,协议帧最多可以归为6类;协议帧的处理行为为“丢弃”、“转发”和“透传”。[0127]步骤401,配置第1个vlan对象(记为vlan1)对协议帧的处理行为。[0128]假设此vlan1需要对编号为0、2、4、5的协议帧(对应下面表格中的pdu_idx的值)采用相同的处理行为(比如转发1),对编号为1、3、6的协议帧采用另一个相同的处理行为(比如丢弃1),对其它编号的帧采用不同于前两个的处理行为;配置此vlan1选用pdu_vlan_group0_idx。[0129]vlan_table相关配置如下:[0130][0131][0132]pdu_vlan_group_table配置如下(其中,其他的vlan分组中的“\”表明其被预先分配了分组数量,但是,目前还未有效的被关联第一索引值赋值内容,在可选方案中,相应的pdu_vlan_group1_idx,pdu_vlan_group2_idx和pdu_vlan_group3_idx也可以不保留在下表中,而在需要时增设,在此不做限定):[0133][0134]vlan_pdu_act_table配置如下:[0135][0136]步骤402,配置第2个vlan对象(记为vlan2)对协议帧的处理行为。[0137]假设此vlan2对协议帧的分类行为和vlan1相同;但对各协议帧分类的处理行为行为不同。[0138]vlan_table相关配置如下:[0139][0140]pdu_vlan_group_table配置如下保持不变:[0141][0142]vlan_pdu_act_table配置如下:[0143][0144]步骤403,配置第3个vlan(记为vlan3)对协议帧的处理行为。[0145]假设此vlan3对协议帧的分类行为和vlan1不同,但对各协议帧分类的处理行为行为与vlan1相同。[0146]vlan_table相关配置如下,需要说明的是,此处的pdu_vlan_group1_idx类似实施例1中生成临时分组,并最终转化为vlan分组后得到,其中,跳过了相应的临时分组生成和转化为vlan分组过程,而是直接作为已经转化后结果进行描述的:[0147][0148][0149]pdu_vlan_group_table配置如下:[0150][0151]vlan_pdu_act_table配置如下:[0152][0153]步骤404,配置第4个vlan(记为vlan4)对协议帧的处理行为。[0154]假设此vlan4对协议帧的分类行为和vlan1、vlan2的pdu_vlan_group0_idx不同,但是对pdu_vlan_group1_idx在已有的vlan_pdu_idx可满足,那么需要为所述vlan4选择pdu_vlan_group1_idx,并调整与之配套相应vlan_pdu_idx为2来完成vlan4在vlan_table中的配置。[0155]vlan_table相关配置如下:[0156][0157][0158]pdu_vlan_group_table配置如下:[0159][0160]vlan_pdu_act_table配置如下:[0161][0162]步骤405,配置第5个vlan(记为vlan5)对协议帧的处理行为。[0163]假设此vlan5对协议帧的分类行为和vlan1、vlan2不同,但对分类后行为的处理同vlan1。[0164]vlan_table相关配置如下:[0165][0166][0167]pdu_vlan_group_table配置如下,需要说明的是,此处的pdu_vlan_group2_idx类似实施例1中生成临时分组,并最终转化为vlan分组后得到,其中,跳过了相应的临时分组生成和转化为vlan分组过程,而是直接作为已经转化后结果进行描述的:[0168][0169]vlan_pdu_act_table配置如下:[0170][0171]步骤406,经以上配置后,所有vlan对象的协议帧都可以工作了。[0172]本发明实施例是以实施例1中所示例的表格作为阐述对象,介绍了从表1和表2生成过程中的方法过程。在此之后,进一步的相关方法内容可借鉴实施例1中相关描述,在此不再赘述。[0173]实施例5:[0174]如图7所示,是本发明实施例的对协议帧的处理装置的架构示意图。本实施例的对协议帧的处理装置包括一个或多个处理器21以及存储器22。其中,图7中以一个处理器21为例。[0175]处理器21和存储器22可以通过总线或者其他方式连接,图7中以通过总线连接为例。[0176]存储器22作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序和非易失性计算机可执行程序,如实施例1中的对协议帧的处理方法。处理器21通过运行存储在存储器22中的非易失性软件程序和指令,从而执行对协议帧的处理方法。[0177]存储器22可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器22可选包括相对于处理器21远程设置的存储器,这些远程存储器可以通过网络连接至处理器21。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。[0178]所述程序指令/模块存储在所述存储器22中,当被所述一个或者多个处理器21执行时,执行上述实施例1中的对协议帧的处理方法,例如,执行以上描述的图1-图3所示的各个步骤。[0179]值得说明的是,上述装置和系统内的模块、单元之间的信息交互、执行过程等内容,由于与本发明的处理方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。[0180]本领域普通技术人员可以理解实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(rom,readonlymemory)、随机存取存储器(ram,randomaccessmemory)、磁盘或光盘等。[0181]以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1