硬件表项安装方法、装置及网络设备的制作方法

文档序号:7717986阅读:84来源:国知局
专利名称:硬件表项安装方法、装置及网络设备的制作方法
技术领域
本发明涉及数据通信领域,尤其涉及一种硬件表项安装方法、装置及网络设备。
背景技术
目前ASIC交换芯片提供了对进出端口的报文进行访问控制的硬件表。其中,对于进入端口的报文,ASIC交换芯片会根据报文中的信息(例如头部字段或报文内容等)查找硬件表,当查询到硬件表中存在匹配字段与报文中的信息相同的硬件表项时,将报文进入的端口在硬件表项的端口位图(Port Bit Map ;简称为PBMP)中进行匹配,当匹配到与报文进入的端口一致的端口时,该硬件表项中的安全规则在报文进入的端口上生效,即使用该硬件表项中的安全规则对报文进行访问控制。在硬件表中对出端口的报文进行控制的硬件表项中,设置有两个字段分别为端口号字段和端口组号字段,分别用于表示该硬件表项是对一个端口生效还是对一组端口生效。当有报文要从端口转发出去时,ASIC交换芯片会根据报文中的信息进行硬件表的匹配查找,当查询到匹配字段与报文中的信息相同的硬件表项时,查询硬件表项的端口号字段和端口组号字段哪个有效。当端口号字段有效时,ASIC交换芯片将转发报文的端口(即输出报文的端口)与硬件表项的端口号字段进行比对,如果两者一致,则该硬件表项在该转发报文的端口上生效,通过该硬件表项中的安全规则对该报文进行处理后,将报文转发出去。当端口组号字段有效时,ASIC交换芯片根据端口组号字段查询端口表,并将转发报文的端口在端口表中端口组号字段与该硬件表项的端口组号字段相同的端口中进行匹配;如果匹配到与转发报文的端口一致的端口,则该硬件表项在转发报文的端口上生效,通过该硬件表项中的安全规则对该报文进行处理后,将报文转发出去。其中,当一条对出端口的报文进行控制的硬件表项同时作用于多个端口时,ASIC 交换芯片会将多个端口组成端口组,并为该端口组分配一个全局唯一的端口组号,并将多个端口组成的端口组存放到端口表中。也就是说,在端口表中,每个端口都有一个端口组号字段用于指定该端口属于哪个端口组,并且规定每个端口只能有一个端口组号,也就是说一个端口只能属于一个端口组。在实现本发明过程中,发明人发现现有技术中至少存在如下问题对出端口的报文进行控制的硬件表项,如果有两条或两条以上同时作用于多个端口的硬件表项同时作用于同一端口时,该端口将会属于不同的端口组,并被分配不同的端口组号字段。对于这种情况,无论该端口属于哪一个端口组,都将导致其他硬件表项无法在该端口上生效。

发明内容
本发明提供一种硬件表项安装方法、装置及网络设备,用以解决现有技术存在的多条作用在多个端口上的硬件表项同时作用于同一端口时造成的部分硬件表项无法在端口上生效的问题。本发明提供一种硬件表项安装方法,包括
当硬件表中存在生效端口与待安装的多出方向硬件表项的生效端口有交集的已安装的多出方向硬件表项时,对所述待安装的多出方向硬件表项和所述已安装的多出方向硬件表项中至少其中之一进行拆分,使所述被拆分的多出方向硬件表项至少独立作用于所述交集中的各个端口上,所述多出方向硬件表项是指同时作用于多个端口对出端口方向的报文进行控制的硬件表项;根据拆分结果,将所述待安装的多出方向硬件表项安装到所述硬件表中。本发明提供一种硬件表项安装装置,包括拆分模块,用于在硬件表中存在生效端口与待安装的多出方向硬件表项的生效端口有交集的已安装的多出方向硬件表项时,对所述待安装的多出方向硬件表项和所述已安装的多出方向硬件表项中至少其中之一进行拆分,使所述被拆分的多出方向硬件表项至少独立作用于所述交集中的各个端口上,所述多出方向硬件表项是指同时作用于多个端口对出端口方向的报文进行控制的硬件表项;第一安装模块,用于根据拆分结果,将所述待安装的多出方向硬件表项安装到所述硬件表中。本发明提供一种网络设备,包括本发明提供的任一硬件表项安装装置。本发明的硬件表项安装方法、装置及网络设备,在安装作用于多个出端口的多出方向硬件表项时,当硬件表中存在生效端口与待安装的多出方向硬件表项的生效端口有交集的已安装的多出方向硬件表项时,通过对待安装的多出方向硬件表项和与待安装的多出方向硬件表项的生效端口有交集的已安装的多出方向硬件表项至少其中之一进行拆分,使被拆分的多出方向硬件表项至少独立作用于交集中的各个端口上,从而保证每个端口最多只能属于一个端口组,解决了现有技术中多条作用于多个端口的硬件表项同时作用于同一端口时导致的部分硬件表项无法生效的问题,使得多条硬件表项可以同时作用于同一端


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本发明一实施例提供的硬件表项安装方法的流程图;图2A为本发明另一实施例提供的硬件表项安装方法的流程图;图2B为本发明另一实施例中待安装的多出方向硬件表项和已安装的多出方向硬件表项的生效端口的交集的一种示意图;图2C为本发明另一实施例中待安装的多出方向硬件表项和已安装的多出方向硬件表项的生效端口的交集的另一种示意图;图2D为本发明另一实施例中待安装的多出方向硬件表项和已安装的多出方向硬件表项的生效端口的交集的又一种示意图;图3为本发明又一实施例提供的硬件表项安装方法的流程图;图4为本发明再一实施例提供的硬件表项安装方法的流程图5为本发明一实施例提供的硬件表项安装装置的结构示意图;图6为本发明另一实施例提供的硬件表项安装装置的结构示意图。
具体实施例方式为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。图1为本发明一实施例提供的硬件表项安装方法的流程图。如图1所示,本实施例方法包括步骤101、当硬件表中存在生效端口与待安装的多出方向硬件表项的生效端口有交集的已安装的多出方向硬件表项时,对待安装的多出方向硬件表项和生效端口与待安装的多出方向硬件表项有交集的已安装的多出方向硬件表项中至少其中之一进行拆分,使被拆分的多出方向硬件表项至少独立作用于生效端口的交集中的各个端口上。在具体实施过程中,通常会根据实际需要将硬件表项安装到ASIC交换芯片的硬件表中,以对进出端口的报文进行各种控制,例如流量控制、访问控制等。例如当硬件表项用于对报文进行访问控制时,硬件表项可以是访问控制列表(Access Control List ;简称为ACL)中的规则等。对于ASIC交换芯片而言,其知道一条硬件表项是作用于入端口还是作用于出端口,且也知道硬件表项是作用于一个端口还是作用于多个端口。其中,入端口是指ASIC交换芯片上接收报文的端口,即报文进入ASIC交换芯片的端口 ;出端口是指ASIC交换芯片上转发报文的端口,即将报文输出的端口。在本实施例及后续各实施例中,将作用于入端口的硬件表项称之为入方向硬件表项,将作用于出端口的硬件表项称之为出方向硬件表项。另外,根据出方向硬件表项作用的出端口的个数又分为多出方向硬件表项和单出方向硬件表项。即在本发明各实施例中,多出方向硬件表项是指同时作用于多个出端口的硬件表项,也就是同时作用于多个端口对出端口方向的报文进行控制的硬件表项。通常,一条硬件表项主要包括匹配字段、生效端口和安全规则等几部分。其中,匹配字段用于与进出端口的报文中的某些字段进行匹配,以判断报文属于那一种协议类型下的报文,也就是确定需要用什么样的硬件表项对报文进行处理。其中,匹配字段可以是报文中的源IP地址、目的IP地址等字段。生效端口是指该条硬件表项要作用到的端口。对于入方向硬件表项,在安装时, ASIC交换芯片根据入方向硬件表项的生效端口自动生成端口位图,端口位图是一种以比特位代表端口的表示方式。当入方向硬件表项作用于一端口时,该端口对应的比特位被置为 1,反之为0。对于出方向硬件表项,在安装时,ASIC交换芯片会根据出方向硬件表项的生效端口设置出方向硬件表项的端口号字段和端口号组字段,并会设置端口表。当出方向硬件表项为单出方向硬件表项时,ASIC交换芯片会设置端口号字段生效,并将生效端口放置在该端口字段中。当出方向硬件表项为多出方向硬件表项时,ASIC交换芯片会将多个生效端口组成端口组(P0RT_GR0UP)的形式,为端口组分配一个全局唯一的端口组号(GR0UP_ID), 同时设置端口组号字段生效,并将端口组号放置在该端口组号字段中,将生效端口和其所属端口组的对应关系存储到端口表中,即设置端口表。其中,在端口表中,为每个生效端口增设一端口组号字段用来表示生效端口和其所述端口组的对应关系。安全规则是指对报文进行处理的具体策略,例如对报文进行流量限制,对报文进行过滤、对报文进行转发或将报文送CPU等等。在本实施例中,当要安装一条多出方向硬件表项到ASIC交换芯片的硬件表中时, ASIC交换芯片首先将待安装的多出方向硬件表项的生效端口,与硬件表中的多出方向硬件表项的生效端口进行比较;判断硬件表中已经安装的多出方向硬件表项中是否存在生效端口与待安装的多出方向硬件表项的生效端口存在交集的已安装的多出方向硬件表项。如果判断结果为存在,则ASIC交换芯片对待安装的多出方向硬件表项和/或生效端口与待安装的多出方向硬件表项的生效端口存在交集的已安装的多出方向硬件表项进行拆分,使被拆分的多出方向硬件表项至少独立作用于生效端口的交集中的各个端口上。经过拆分处理后,每个出端口最多属于一个端口组,也就解决了多个作用于多个端口的多出方向硬件表项同时作用于同一端口上造成部分多出方向硬件表项无法在该端口上生效的问题。如果判断结果为不存在,则ASIC交换芯片直接将待安装的多出方向硬件表项安装到硬件表中。步骤102、根据拆分结果,将待安装的多出方向硬件表项安装到硬件表中。当ASIC交换芯片对待安装的多出方向硬件表项和/或生效端口与待安装的多出方向硬件表项的生效端口存在交集的已安装的多出方向硬件表项进行拆分处理后,根据拆分结果将待安装的多出方向硬件表项安装到硬件表中。例如当ASIC芯片对生效端口与待安装的多出方向硬件表项的生效端口存在交集的已安装的多出方向硬件表项进行拆分时, ASIC交换芯片可以直接将待安装的多出方向硬件表项作为一条硬件表项安装到硬件表中。 又例如当ASIC芯片对待安装的多出方向硬件表项进行拆分时,需要将由待安装的多出方向硬件表项拆分出的多条出方向硬件表项(这些出方向硬件表项中除了包括单出方向硬件表项之外,也可能包括多出方向硬件表项)安装到硬件表中。本实施例的硬件表项安装方法,在安装多出方向硬件表项时,当硬件表中存在生效端口与待安装的多出方向硬件表项的生效端口有交集的已安装的多出方向硬件表项时, 通过对待安装的多出方向硬件表项和与待安装的多出方向硬件表项的生效端口有交集的已安装的多出方向硬件表项至少其中之一进行拆分,使被拆分的多出方向硬件表项至少独立作用于交集中的各个端口上,从而保证每个端口最多只能属于一个端口组,解决了现有技术中多条多出方向硬件表项同时作用于同一出端口时导致的部分硬件表项无法生效的问题,使得多条硬件表项可以同时作用于同一端口。图2A为本发明另一实施例提供的硬件表项安装方法的流程图。如图2A所示,本实施例的方法包括步骤201、ASIC交换芯片将待安装的多出方向硬件表项的生效端口与硬件表中的多出方向硬件表项的生效端口进行比较,判断硬件表中的多出方向硬件表项中是否存在生效端口与待安装的多出方向硬件表项的生效端口有交集的已安装的多出方向硬件表项;如果判断结果为是,执行步骤202 ;如果判断结果为否,执行步骤205。步骤202、ASIC交换芯片获取硬件表中生效端口与待安装的多出方向硬件表项的生效端口有交集的已安装的多出方向硬件表项,并执行步骤203。步骤203、ASIC交换芯片将待安装的多出方向硬件表项拆分为独立作用于交集中的各个端口上的第一出方向硬件表项和同时作用于待安装的多出方向硬件表项的生效端口中除交集中的各个端口之外的其他端口上的第二出方向硬件表项。其中,待安装的多出方向硬件表项和从硬件表中获取的已安装的多出方向硬件表项的生效端口的交集情况主要有三种情况,分别如图2B-图2D所示。为便于表述,在本步骤以下描述中将从硬件表中获取的已安装的多出方向硬件表项简称为已安装的多出方向硬件表项。对于图2B所示的第一种情况,待安装的多出方向硬件表项和已安装的多出方向硬件表项的生效端口中存在η个相同的出端口,而待安装的多出方向硬件表项还包括ml个其他的生效端口,已安装的多出方向硬件表项还包括m2个其他的生效端口。其中n、ml和 m2分别是大于或等于1的整数。ASIC交换芯片将待安装的多出方向硬件表项拆分为独立作用于η个生效端口上的第一出方向硬件表项和同时作用于ml个生效端口上的第二出方向硬件表项。其中,第一出方向硬件表项共有η条,每条第一出方向硬件表项为单出方向硬件表项。也就是说,ASIC交换芯片将一条待安装的多出方向硬件表项拆分为了 η条单出方向硬件表项和一条第二出方向硬件表项。其中,当ml为1时,第二出方向硬件表项也是单出方向硬件表项;当ml大于1时,第二出方向硬件表项是一条多出方向硬件表项。对于图2C所示的第二种情况,待安装的多出方向硬件表项和已安装的多出方向硬件表项的生效端口中存在η个相同的出端口,而已安装的多出方向硬件表项还包括m2个其他的生效端口。其中η和m2分别是大于或等于1的整数。在该情况下,待安装的多出方向硬件表项的生效端口是已安装的多出方向硬件表项的生效端口的子集。ASIC交换芯片将待安装的多出方向硬件表项拆分为独立作用于η个生效端口上的第一出方向硬件表项。其中,第一出方向硬件表项共有η条,每个第一出方向硬件表项为单出方向硬件表项。也就是说,ASIC交换芯片将一条待安装的多出方向硬件表项拆分为了 η条单出方向硬件表项。对于图2D所示的第三种情况,待安装的多出方向硬件表项和已安装的多出方向硬件表项的生效端口中存在η个相同的出端口,而待安装的多出方向硬件表项还包括ml个其他的生效端口。其中η和ml分别是大于或等于1的整数。在该情况下,已安装的多出方向硬件表项的生效端口是待安装的多出方向硬件表项的生效端口的子集。ASIC交换芯片将待安装的多出方向硬件表项拆分为独立作用于η个生效端口上的第一出方向硬件表项和同时作用于ml个生效端口上的第二出方向硬件表项。其中,第一出方向硬件表项共有η 条,每个第一出方向硬件表项为单出方向硬件表项。也就是说,ASIC交换芯片将一条待安装的多出方向硬件表项拆分为了 η条单出方向硬件表项和一条第二出方向硬件表项。其中, 当ml为1时,第二出方向硬件表项也是单出方向硬件表项;当ml大于1时,第二出方向硬件表项是一条多出方向硬件表项。步骤204、ASIC交换芯片将第一出方向硬件表项和第二出方向硬件表项分别安装到所述硬件表中,结束此次安装操作。ASIC交换芯片将η条第一出方向硬件表项安装到硬件表中。具体的,对于每条第一出方向硬件表项,ASIC交换芯片直接将第一出方向硬件表项的匹配字段和安全规则安装到硬件表中,并设置硬件表中该第一出方向硬件表项的端口号字段生效,将第一出方向硬件表项对应的生效端口设置在端口号字段中,以完成安装第一出方向硬件表项的操作。当存在第二出方向硬件表项时,ASIC交换芯片将第二出方向硬件表项安装到硬件表中。当第二出方向硬件表项为单出方向硬件表项时,其安装操作与第一出方向硬件表项的安装操作相同,不再赘述。当第二出方向硬件表项为多出方向硬件表项时,ASIC交换芯片直接将第二出方向硬件表项的匹配字段和安全规则安装到硬件表的相应表项中,并将ml 个生效端口生成端口组,为端口组分配全局唯一性的端口组号,设置第二出方向硬件表项的端口组号字段生效,将分配的端口组号设置在端口组号字段中,同时将ml个生效端口和端口组的对应关系存储到端口表中,从而完成对第二出方向硬件表项的安装操作。步骤205、ASIC交换芯片直接将待安装的多出方向硬件表项安装到硬件表中,结束此次安装操作。当硬件表中不存在生效端口与待安装的多出方向硬件表项的生效端口有交集的已安装的多出方向硬件表项时,ASIC交换芯片可以直接将多出方向硬件表项安装到硬件表中。具体的,ASIC交换芯片将待安装的多出方向硬件表项的匹配字段和安全规则直接安装到硬件表的相应表项中,然后将n+ml个生效端口生成端口组,为端口组分配端口组号,并设置硬件表的相应表项的端口组号字段生效,将分配的端口组号设置在端口组号字段中, 同时将生效端口和所属端口组的对应关系存储到端口表中,以完成对待安装的多出方向硬件表项的安装。在将待安装的多出方向硬件表项安装到硬件表中后,当有报文需要转发时,ASIC 交换芯片根据报文的字段值进行硬件表的匹配查找,当查询到字段值与报文中的字段值相同的硬件表项时,查询硬件表项的端口号字段和端口组号字段哪个有效。当端口号字段有效时,ASIC交换芯片将转发报文的端口(即输出报文的端口)与硬件表项的端口号字段进行比对,如果两者一致,则该硬件表项在该转发报文的端口上生效,通过该硬件表项中的安全规则对该报文进行处理后,将报文转发出去。当端口组号字段有效时,ASIC交换芯片根据端口组号字段查询端口表,并将转发报文的端口在端口表中端口组号字段与该硬件表项的端口组号字段相同的端口中进行匹配;如果匹配到与转发报文的端口一致的端口,则该硬件表项在转发报文的端口上生效,通过该硬件表项中的安全规则对该报文进行处理后, 将报文转发出去。进一步说明,当报文是以组播或广播方式被转发时,报文需要从多个端口转发出去,则在本实施例中,ASIC交换芯片需要将每个端口与硬件表项中端口号字段进行比对,或者将每个端口在端口表中端口组号字段与硬件表项的端口组号字段相同的端口中进行匹配,以确定硬件表项是否在转发报文的所有端口上生效,并硬件表项生效的端口上采用安全规则对报文进行处理后将报文转发出去。本实施例的硬件表项安装方法,在安装多出方向硬件表项时,当硬件表中存在生效端口与待安装的多出方向硬件表项的生效端口有交集的已安装的多出方向硬件表项时, 通过对待安装的多出方向硬件表项进行拆分,将待安装的多出方向硬件表项拆分为多个独立作用于交集中的各个端口上的单出方向硬件表项,从而保证每个端口最多只能属于一个端口组,解决了现有技术中多条多出方向硬件表项同时作用于同一出端口时导致的部分硬件表项无法生效的问题,使得多条硬件表项可以同时作用于同一端口。另外,使用多出方向硬件表项转发报文时,在获取端口组号字段生效后,需要根据端口组号进一步去查找端口表,其转发报文的效率较低,而本实施例通过将一条多出方向硬件表项拆分为多条单出方向硬件表项,可以提高转发报文的效率。
图3为本发明又一实施例提供的硬件表项安装方法的流程图。如图3所示,本实施例的方法包括步骤301、ASIC交换芯片将待安装的多出方向硬件表项的生效端口与硬件表中的多出方向硬件表项的生效端口进行比较,判断硬件表中的多出方向硬件表项中是否存在生效端口与待安装的多出方向硬件表项的生效端口有交集的已安装的多出方向硬件表项;如果判断结果为是,执行步骤302 ;如果判断结果为否,执行步骤305。步骤302、ASIC交换芯片获取硬件表中生效端口与待安装的多出方向硬件表项的生效端口有交集的已安装的多出方向硬件表项,并执行步骤303。步骤303、ASIC交换芯片将从硬件表中获取的生效端口与待安装的多出方向硬件表项的生效端口有交集的已安装的多出方向硬件表项拆分为独立作用于交集中的各个端口上的第三出方向硬件表项和同时作用于已安装的多出方向硬件表项的生效端口中除交集中的各个端口之外的其他端口上的第四出方向硬件表项。其中,待安装的多出方向硬件表项和从硬件表中获取的已安装的多出方向硬件表项的生效端口的交集情况主要有三种情况,分别如图2B-图2D所示。为便于表述,在本步骤以下描述中将从硬件表中获取的已安装的多出方向硬件表项简称为已安装的多出方向硬件表项。对于图2B所示的第一种情况,ASIC交换芯片将已安装的多出方向硬件表项拆分为独立作用于η个生效端口上的第三出方向硬件表项和同时作用于m2个生效端口上的第四出方向硬件表项。其中,第三出方向硬件表项共有η条,每条第三出方向硬件表项为单出方向硬件表项。也就是说,ASIC交换芯片将一条已安装的多出方向硬件表项重新拆分为了 η条单出方向硬件表项和一条第四出方向硬件表项。其中,当m2为1时,第四出方向硬件表项也是单出方向硬件表项;当m2大于1时,第四出方向硬件表项是一条多出方向硬件表项。对于图2C所示的第二种情况,ASIC交换芯片将已安装的多出方向硬件表项拆分为独立作用于η个生效端口上的第三出方向硬件表项和同时作用于m2个生效端口上的第四出方向硬件表项。其中,第三出方向硬件表项共有η条,每条第三出方向硬件表项为单出方向硬件表项。也就是说,ASIC交换芯片将一条已安装的多出方向硬件表项重新拆分为了 η条单出方向硬件表项和一条第四出方向硬件表项。其中,当m2为1时,第四出方向硬件表项也是单出方向硬件表项;当m2大于1时,第四出方向硬件表项是一条多出方向硬件表项。对于图2D所示的第三种情况,ASIC交换芯片将已安装的多出方向硬件表项拆分为独立作用于η个生效端口上的第三出方向硬件表项。其中,第三出方向硬件表项共有η 条,每条第三出方向硬件表项为单出方向硬件表项。也就是说,ASIC交换芯片将一条已安装的多出方向硬件表项重新拆分为了 η条单出方向硬件表项。步骤304、ASIC交换芯片将已安装的多出方向硬件表项从硬件表中删除,并将第三出方向硬件表项和第四出方向硬件表项分别安装到硬件表中,同时将待安装的多出方向硬件表项安装到硬件表中,并结束此次安装操作。其中,第三出方向硬件表项是单出方向硬件表项,其安装过程可参见步骤204中对第一出方向硬件表项的安装过程的描述。当第四出方向硬件表项是单出方向硬件表项, 对其安装过程也可参见步骤204中对第一出方向硬件表项的安装过程的描述。当第四出方向硬件表项是多出方向硬件表项时,对第四出方向硬件表项和待安装的多出方向硬件表项安装的安装过程可参见步骤205中对待安装的多出方向硬件表项的安装过程的描述,在此不再赘述。步骤305、ASIC交换芯片直接将待安装的多出方向硬件表项安装到硬件表中,结束此次安装操作。本步骤可参见上述步骤205的描述,在此不再赘述。本实施例的硬件表项安装方法,在安装多出方向硬件表项时,当硬件表中存在生效端口与待安装的多出方向硬件表项的生效端口有交集的已安装的多出方向硬件表项时, 通过对已安装的多出方向硬件表项进行拆分,将已安装的多出方向硬件表项拆分为多个独立作用于交集中的各个端口上的单出方向硬件表项,从而保证每个端口最多只能属于一个端口组,解决了现有技术中多条多出方向硬件表项同时作用于同一出端口时导致的部分硬件表项无法生效的问题,使得多条硬件表项可以同时作用于同一端口。另外,使用多出方向硬件表项转发报文时,在获取端口组号字段生效后,需要根据端口组号进一步去查找端口表,其转发报文的效率较低,而本实施例通过将一条多出方向硬件表项拆分为多条单出方向硬件表项,可以提高转发报文的效率。图4为本发明再一实施例提供的硬件表项安装方法的流程图。如图4所示,本实施例的方法包括步骤401、ASIC交换芯片将待安装的多出方向硬件表项的生效端口与硬件表中的多出方向硬件表项的生效端口进行比较,判断硬件表中的多出方向硬件表项中是否存在生效端口与待安装的多出方向硬件表项的生效端口有交集的已安装的多出方向硬件表项;如果判断结果为是,执行步骤402 ;如果判断结果为否,执行步骤405。步骤402、ASIC交换芯片获取硬件表中生效端口与待安装的多出方向硬件表项的生效端口有交集的已安装的多出方向硬件表项,并执行步骤303。步骤403、ASIC交换芯片将待安装的多出方向硬件表项拆分为独立作用于待安装的多出方向硬件表项的生效端口中的各个端口上的第五出方向硬件表项。其中,待安装的多出方向硬件表项和从硬件表中获取的已安装的多出方向硬件表项的生效端口的交集情况主要有三种情况,分别如图2B-图2D所示。对于图2B所示的第一种情况,ASIC交换芯片将待安装的多出方向硬件表项拆分为独立作用于n+ml个生效端口上的第五出方向硬件表项。其中,第五出方向硬件表项共有 n+ml条,每条第五出方向硬件表项为单出方向硬件表项。也就是说,ASIC交换芯片将一条待安装的多出方向硬件表项拆分为了 n+ml条单出方向硬件表项。对于图2C所示的第二种情况,ASIC交换芯片将待安装的多出方向硬件表项拆分为独立作用于η个生效端口上的第五出方向硬件表项。其中,第五出方向硬件表项共有η 条,每条第五出方向硬件表项为单出方向硬件表项。也就是说,ASIC交换芯片将一条待安装的多出方向硬件表项拆分为了 η条单出方向硬件表项。对于图2D所示的第三种情况,ASIC交换芯片将待安装的多出方向硬件表项拆分为独立作用于n+ml个生效端口上的第五出方向硬件表项。其中,第五出方向硬件表项共有 n+ml条,每条第五出方向硬件表项为单出方向硬件表项。也就是说,ASIC交换芯片将一条待安装的多出方向硬件表项拆分为了 n+ml条单出方向硬件表项。步骤404、ASIC交换芯片第五出方向硬件表项分别安装到硬件表中,并结束此次安装操作。其中,第五出方向硬件表项是单出方向硬件表项,其安装过程可参见步骤204中对第一出方向硬件表项的安装过程的描述,在此不再赘述。步骤305、ASIC交换芯片直接将待安装的多出方向硬件表项安装到硬件表中,结束此次安装操作。本步骤可参见上述步骤205的描述,在此不再赘述。本实施例的硬件表项安装方法,在安装多出方向硬件表项时,当硬件表中存在生效端口与待安装的多出方向硬件表项的生效端口有交集的已安装的多出方向硬件表项时, 通过对待安装的多出方向硬件表项进行拆分,将待安装的多出方向硬件表项拆分为多个独立作用于每个生效端口上的单出方向硬件表项,从而保证每个端口最多只能属于一个端口组,解决了现有技术中多条多出方向硬件表项同时作用于同一出端口时导致的部分硬件表项无法生效的问题,使得多条硬件表项可以同时作用于同一端口。另外,使用多出方向硬件表项转发报文时,在获取端口组号字段生效后,需要根据端口组号进一步去查找端口表,其转发报文的效率较低,而本实施例通过将一条多出方向硬件表项拆分为多条单出方向硬件表项,可以提高转发报文的效率。进一步说明,除了图2A、图3和图4所示实施例提供的拆分方案之外,还可以将已安装的多出方向硬件表项拆分为独立作用于其每个生效端口上的多个单出方向硬件表项, 该拆分方案与图4所示实施例类似。进一步,还可以同时对待安装的多出方向硬件表项和已安装的多出方向硬件表项进行拆分,具体拆分方式不作限定,凡是在拆分出的硬件表项中存在多出方向硬件表项时,能够保证拆分出的多出方向硬件表项的生效端口不存在交集的拆分方式均适用于本实施例。图5为本发明一实施例提供的硬件表项安装装置的结构示意图。如图5所示,本实施例的装置包括拆分模块51和第一安装模块52。其中,拆分模块51,用于在硬件表中存在生效端口与待安装的多出方向硬件表项的生效端口有交集的已安装的多出方向硬件表项时,对待安装的多出方向硬件表项和生效端口与待安装的多出方向硬件表项的生效端口有交集的已安装的多出方向硬件表项中至少其中之一进行拆分,使被拆分的多出方向硬件表项至少独立作用于交集中的各个端口上。所述多出方向硬件表项是指同时作用于多个出端口的硬件表项,即同时作用在多个端口对出端口方向的报文进行控制的硬件表项。第一安装模块52,与拆分模块51连接,用于根据拆分模块51的拆分结果,将待安装的多出方向硬件表项安装到硬件表中。本实施例的硬件表项安装装置的上述各功能模块可用于执行图1所示的硬件表项安装方法的流程,其具体工作原理不再赘述,详见方法实施例的描述。本实施例的硬件表项安装装置,在安装作用于多个出端口的多出方向硬件表项时,当硬件表中存在生效端口与待安装的多出方向硬件表项的生效端口有交集的已安装的多出方向硬件表项时,通过对待安装的多出方向硬件表项和与待安装的多出方向硬件表项的生效端口有交集的已安装的多出方向硬件表项至少其中之一进行拆分,使被拆分的多出方向硬件表项至少独立作用于交集中的各个端口上,从而保证每个端口最多只能属于一个端口组,解决了现有技术中多条作用于多个端口的硬件表项同时作用于同一端口时导致的部分硬件表项无法生效的问题,使得多条硬件表项可以同时作用于同一端口。
图6为本发明另一实施例提供的硬件表项安装装置的结构示意图。本实施例基于图5所示实施例实现,如图6所示,本实施例的装置还包括比较判断模块61、触发模块62 和第二安装模块63。比较判断模块61,用于在拆分模块51对待安装的多出方向硬件表项和生效端口与待安装的多出方向硬件表项的生效端口有交集的已安装的多出方向硬件表项中至少其中之一进行拆分之前,将待安装的多出方向硬件表项的生效端口与硬件表中的多出方向硬件表项的生效端口进行比较,判断硬件表中是否存在生效端口与待安装的多出方向硬件表项的生效端口有交集的已安装的多出方向硬件表项。触发模块62,与比较判断模块61连接,用于在比较判断模块61的判断结果为是时,触发拆分模块51执行对待安装的多出方向硬件表项和生效端口与待安装的生效端口有交集的已安装的多出方向硬件表项中至少其中之一进行拆分,使被拆分的多出方向硬件表项至少独立作用于交集中的各个端口上的操作。第二安装模块63,与比较判断模块61连接,用于在比较判断模块61的判断结果为否时,直接将待安装的多出方向硬件表项安装到硬件表中。进一步,本实施例的拆分模块51包括第一拆分单元511。第一拆分单元511,用于将待安装的多出方向硬件表项拆分为独立作用于交集中的各个端口上的第一出方向硬件表项和同时作用于待安装的多出方向硬件表项的生效端口中除交集中的各个端口之外的其他端口上的第二出方向硬件表项。相应地,第一安装模块52包括第一安装单元521。第一安装单元521,用于将第一出方向硬件表项和第二出方向硬件表项分别安装到硬件表中。上述各功能单元可用于执行图2A所示硬件表项安装方法的流程,其具体工作原理不再赘述,详见方法实施例的描述。进一步,本实施例的拆分模块51还可以包括第二拆分单元512。第二拆分单元 512,用于将已安装的多出方向硬件表项拆分为独立作用于交集中的各个端口上的第三出方向硬件表项和同时作用于已安装的多出方向硬件表项的生效端口中除交集中的各个端口之外的其他端口上的第四出方向硬件表项。相应地,第一安装模块52包括第二安装单元522。第二安装单元522,用于将已安装的多出方向硬件表项从硬件表中删除,并将第三出方向硬件表项和第四出方向硬件表项分别安装到硬件表中,同时将待安装的多出方向硬件表项安装到硬件表中。上述各功能单元可用于执行图3所示硬件表项安装方法中的相应流程,其具体工作原理不再赘述,详见方法实施例的描述。更进一步,本实施例的拆分模块51还可以包括第三拆分单元513。第三拆分单元513,用于将待安装的多出方向硬件表项拆分为独立作用于待安装的多出方向硬件表项的生效端口中的各个端口上的第五出方向硬件表项。相应地,第一安装模块52还可以包括第三安装单元523。第三安装单元523,用于将第五出方向硬件表项安装到硬件表中。上述各功能单元可用于执行图4所示硬件表项安装方法的相应流程,其具体工作原理不再赘述,详见方法实施例的描述。在此说明,拆分模块51可以包括第一拆分单元511、第二拆分单元512和第三拆分单元513其中任一拆分单元或其组合。相应地,第一安装模块52可以包括第一安装单元521、第二安装单元522和第三安装单元523其中任一安装单元或其组合。本实施例的硬件表项安装装置,在安装多出方向硬件表项时,当硬件表中存在生效端口与待安装的多出方向硬件表项的生效端口有交集的已安装的多出方向硬件表项时, 通过对待安装的多出方向硬件表项或者对已安装的多出方向硬件表项进行拆分,将待安装的多出方向硬件表项或者将已安装的多出方向硬件表项拆分为多个独立作用于交集中的各个端口上的单出方向硬件表项,从而保证每个端口最多只能属于一个端口组,解决了现有技术中多条多出方向硬件表项同时作用于同一出端口时导致的部分硬件表项无法生效的问题,使得多条硬件表项可以同时作用于同一端口。另外,使用多出方向硬件表项转发报文时,在获取端口组号字段生效后,需要根据端口组号进一步去查找端口表,其转发报文的效率较低,而本实施例通过将一条多出方向硬件表项拆分为多条单出方向硬件表项,可以提高转发报文的效率。本发明一实施例提供一种网络设备,包括本发明上述实施例提供的硬件表项安装装置。其中,硬件表项安装装置的结构可参见图5或图6所示,其工作原理可参见图1、图 2A、图3或图4所示实施例的描述,在本实施例均不再详细描述。本实施例的网络设备可以是任何需要安装硬件表项的设备,例如交换机、路由器等。本实施例的网络设备,在硬件表中存在生效端口与待安装的多出方向硬件表项的生效端口有交集的已安装的多出方向硬件表项时,通过对待安装的多出方向硬件表项和/ 或者对已安装的多出方向硬件表项进行拆分,将待安装的多出方向硬件表项和/或者将已安装的多出方向硬件表项拆分为多个独立作用于交集中的各个端口上的单出方向硬件表项,既解决了现有技术中多条多出方向硬件表项同时作用于同一出端口时导致的部分硬件表项无法生效的问题,又有利于提高转发报文的效率。本领域普通技术人员可以理解实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括R0M、RAM、磁碟或者光盘等各种可以存储程序代码的介质。最后应说明的是以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
权利要求
1.一种硬件表项安装方法,其特征在于,包括当硬件表中存在生效端口与待安装的多出方向硬件表项的生效端口有交集的已安装的多出方向硬件表项时,对所述待安装的多出方向硬件表项和所述已安装的多出方向硬件表项中至少其中之一进行拆分,使所述被拆分的多出方向硬件表项至少独立作用于所述交集中的各个端口上,所述多出方向硬件表项是指同时作用于多个端口对出端口方向的报文进行控制的硬件表项;根据拆分结果,将所述待安装的多出方向硬件表项安装到所述硬件表中。
2.根据权利要求1所述的硬件表项安装方法,其特征在于,所述对所述待安装的多出方向硬件表项和所述已安装的多出方向硬件表项中至少其中之一进行拆分,使所述被拆分的多出方向硬件表项至少独立作用于所述交集中的各个端口上包括将所述待安装的多出方向硬件表项拆分为独立作用于所述交集中的各个端口上的第一出方向硬件表项和同时作用于所述待安装的多出方向硬件表项的生效端口中除所述交集中的各个端口之外的其他端口上的第二出方向硬件表项;所述根据拆分结果,将所述待安装的多出方向硬件表项安装到所述硬件表中包括 将所述第一出方向硬件表项和所述第二出方向硬件表项分别安装到所述硬件表中。
3.根据权利要求1所述的硬件表项安装方法,其特征在于,所述对所述待安装的多出方向硬件表项和所述已安装的多出方向硬件表项中至少其中之一进行拆分,使所述被拆分的多出方向硬件表项至少独立作用于所述交集中的各个端口上包括将所述已安装的多出方向硬件表项拆分为独立作用于所述交集中的各个端口上的第三出方向硬件表项和同时作用于所述已安装的多出方向硬件表项的生效端口中除所述交集中的各个端口之外的其他端口上的第四出方向硬件表项;所述根据拆分结果,将所述待安装的多出方向硬件表项安装到所述硬件表中包括 将所述已安装的多出方向硬件表项从所述硬件表中删除,并将所述第三出方向硬件表项和所述第四出方向硬件表项分别安装到所述硬件表中,同时将所述待安装的多出方向硬件表项安装到所述硬件表中。
4.根据权利要求1所述的硬件表项安装方法,其特征在于,所述对所述待安装的多出方向硬件表项和所述已安装的多出方向硬件表项中至少其中之一进行拆分,使所述被拆分的多出方向硬件表项至少独立作用于所述交集中的各个端口上包括将所述待安装的多出方向硬件表项拆分为独立作用于所述待安装的多出方向硬件表项的生效端口中的各个端口上的第五出方向硬件表项;所述根据拆分结果,将所述待安装的多出方向硬件表项安装到所述硬件表中包括 将所述第五出方向硬件表项安装到所述硬件表中。
5.根据权利要求1-4任一项所述的硬件表项安装方法,其特征在于,所述对所述待安装的多出方向硬件表项和所述已安装的多出方向硬件表项中至少其中之一进行拆分,使所述被拆分的多出方向硬件表项至少独立作用于所述交集中的各个端口上之前包括将所述待安装的多出方向硬件表项的生效端口与所述硬件表中的多出方向硬件表项的生效端口进行比较,判断所述硬件表中是否存在生效端口与所述待安装的多出方向硬件表项的生效端口有交集的已安装的多出方向硬件表项;当判断结果为存在时,执行对所述待安装的多出方向硬件表项和所述已安装的多出方向硬件表项中至少其中之一进行拆分,使所述被拆分的多出方向硬件表项至少独立作用于所述交集中的各个端口上的操作;当判断结果为不存在时,直接将所述待安装的多出方向硬件表项安装到所述硬件表。
6.一种硬件表项安装装置,其特征在于,包括拆分模块,用于在硬件表中存在生效端口与待安装的多出方向硬件表项的生效端口有交集的已安装的多出方向硬件表项时,对所述待安装的多出方向硬件表项和所述已安装的多出方向硬件表项中至少其中之一进行拆分,使所述被拆分的多出方向硬件表项至少独立作用于所述交集中的各个端口上,所述多出方向硬件表项是指同时作用于多个端口对出端口方向的报文进行控制的硬件表项;第一安装模块,用于根据拆分结果,将所述待安装的多出方向硬件表项安装到所述硬件表中。
7.根据权利要求6所述的硬件表项安装装置,其特征在于,所述拆分模块包括第一拆分单元,用于将所述待安装的多出方向硬件表项拆分为独立作用于所述交集中的各个端口上的第一出方向硬件表项和同时作用于所述待安装的多出方向硬件表项的生效端口中除所述交集中的各个端口之外的其他端口上的第二出方向硬件表项; 所述第一安装模块包括第一安装单元,用于将所述第一出方向硬件表项和所述第二出方向硬件表项分别安装到所述硬件表中。
8.根据权利要求6所述的硬件表项安装装置,其特征在于,所述拆分模块包括第二拆分单元,用于将所述已安装的多出方向硬件表项拆分为独立作用于所述交集中的各个端口上的第三出方向硬件表项和同时作用于所述已安装的多出方向硬件表项的生效端口中除所述交集中的各个端口之外的其他端口上的第四出方向硬件表项; 所述第一安装模块包括第二安装单元,用于将所述已安装的多出方向硬件表项从所述硬件表中删除,并将所述第三出方向硬件表项和所述第四出方向硬件表项分别安装到所述硬件表中,同时将所述待安装的多出方向硬件表项安装到所述硬件表中。
9.根据权利要求6所述的硬件表项安装装置,其特征在于,所述拆分模块包括第三拆分单元,用于将所述待安装的多出方向硬件表项拆分为独立作用于所述待安装的多出方向硬件表项的生效端口中的各个端口上的第五出方向硬件表项; 所述第一安装模块包括第三安装单元,用于将所述第五出方向硬件表项安装到所述硬件表中。
10.根据权利要求6-9任一项所述的硬件表项安装装置,其特征在于,还包括比较判断模块,用于将所述待安装的多出方向硬件表项的生效端口与所述硬件表中的多出方向硬件表项的生效端口进行比较,判断所述硬件表中是否存在生效端口与所述待安装的多出方向硬件表项的生效端口有交集的已安装的多出方向硬件表项;触发模块,用于在所述比较判断模块的判断结果为是时,触发所述拆分模块执行对所述待安装的多出方向硬件表项和所述已安装的多出方向硬件表项中至少其中之一进行拆分,使所述被拆分的多出方向硬件表项至少独立作用于所述交集中的各个端口上的操作; 第二安装模块,用于在所述比较判断模块的判断结果为否时,直接将所述待安装的多出方向硬件表项安装到所述硬件表中。
11. 一种网络设备,其特征在于,包括如权利要求6-10任一项所述的硬件表项安装装置。
全文摘要
本发明提供一种硬件表项安装方法、装置及网络设备。方法包括当硬件表中存在生效端口与待安装的多出方向硬件表项的生效端口有交集的已安装的多出方向硬件表项时,对待安装的多出方向硬件表项和已安装的多出方向硬件表项中至少其中之一进行拆分,使被拆分的多出方向硬件表项至少独立作用于交集中的各个端口上;根据拆分结果,将待安装的多出方向硬件表项安装到硬件表中。采用本发明技术方案安装多出方向硬件表项可以解决多条作用于多个端口的硬件表项同时作用于同一端口时导致的部分硬件表项无法生效的问题,使得多条硬件表项可以同时作用于同一端口。
文档编号H04L12/56GK102255806SQ201110188529
公开日2011年11月23日 申请日期2011年7月6日 优先权日2011年7月6日
发明者韩晓晨 申请人:北京星网锐捷网络技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1