具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,下面结合附图,并举实施例,对本发明的技术方案进行详细说明。
参见图2,图2是本发明实施例实现QinQ终结的方法流程图,该方法应用于主接口,已经预先为该主接口分配了一级接口表,该方法包括以下步骤:
步骤201、接收到针对所述主接口的任一子接口配置的QinQ终结时,确定接收到的QinQ终结的第一层VLAN ID对应的一级接口表项,按照预设规则对接收到的QinQ终结的所有第二层VLAN ID进行VLAN ID分组,针对每个VLAN ID组,生成该组VLAN ID对应的关联于该一级接口表项的多级子接口表,将所述任一子接口的业务存储到该多级子接口表中。
步骤202、在所述主接口上接收到需要进行QinQ终结处理的报文时,确定报文的第一层VLAN ID对应的一级接口表项,确定报文的第二层VLAN ID所属VLAN ID组对应的关联于该一级接口表项的多级子接口表,根据该多级子接口表中存储的子接口业务对报文进行QinQ终结处理。
在上述本发明实施例中,按照预设规则对接收到的QinQ终结的所有第二层VLAN ID进行VLAN ID分组的方法可以有以下两种:
第一种:根据QinQ终结的第二层VLAN ID的分布情况,将满足一定条件的所有VLAN ID划分到同一组,这种情况下,针对每组VLAN ID生成的多级子接口表的级数是不固定的,最小可能级数为1级,最大可能级数为n级,根据实际情况而定,其中,n为预设最大多级子接口表级数。
这种情况下,所述按照预设规则接收到的QinQ终结的所有第二层VLAN ID进行VLAN ID分组的方法具体可以为:
确定该QinQ终结的所有第二层VLAN ID中是否存在满足第1条件的一组或多组VLAN ID,如果是,则将满足第1条件的每组VLAN ID划分为一组;
确定该QinQ终结的所有第二层VLAN ID中除上述满足第1条件的一组或多组VLAN ID外是否存在满足第2条件的一组或多组VLAN ID,如果是,则将满足第2条件的每组VLAN ID划分为一组;
依次类推,直到将该QinQ终结的所有第二层VLAN ID全部划分完毕;
其中,第i条件为:该QinQ终结的第二层VLAN ID集合除满足第1条件、...第i-1条件的一组或多组VLAN ID外存在高(L1+...+Li)个bit位相同,且低(Li+1+...+Ln)个bit位的值分别为从0到(T-1)的T个VLAN ID;T的值为2的(Li+1+...+Ln)次方;L1+L2+...Ln=L,L为一个VLAN ID占用的bit位数;Li为第i预设bit位长,i=1、...n。
相应地,
在步骤201中,所述针对每个VLAN ID组,生成该组VLAN ID对应的关联于该一级接口表项的多级子接口表,将所述任一子接口的业务存储到该多级子接口表中的方法具体可以为:
假设该组VLAN ID满足第j条件,则当该一级接口表项下挂有第1级子接口表时,确定该第1级子接口表为该组VLAN ID对应的第1级子接口表,当该一级接口表项未下挂第1级子接口表时,生成该组VLAN ID对应的第1级子接口表,并将该第1级子接口表下挂到该一级接口表项;确定该组VLAN ID对应的第1级子接口表项,当该第1级子接口表项下挂有第2级子接口表时,确定该第2级子接口表为该组VLAN ID对应的第2级子接口表,当该第1级子接口表项未下挂第2级子接口表时,生成该组VLAN ID对应的第2级子接口表,并将该第2级子接口表下挂到该第1级子接口表项;依次类推,直到确定该组VLANID对应的第j级子接口表项,将所述任一子接口的业务存储到该第j级子接口表项中;其中,j=1、...、n。
在步骤202中,所述确定报文的第二层VLAN ID所属VLAN ID组对应的关联于该一级接口表项的多级子接口表,根据该多级子接口表中存储的子接口业务对报文进行QinQ终结处理的方法为:确定该一级接口表项下挂的第1级子接口表以及报文的第二层VLAN ID对应的第1级子接口表项,判断该第1级子接口表项中是否存储有子接口业务,若是,则根据该子接口业务对报文进行QinQ终结处理,若否,则确定该第1级子接口表项下挂的第2级子接口表以及报文的第二层VLAN ID对应的第2级子接口表项,并再次判断该第2级子接口表项中是否存储有子接口业务,依次类推,直到确定报文的第二层VLAN ID对应的存储有子接口业务的子接口表项,并根据该子接口表项中存储的子接口业务对报文进行QinQ终结处理。
第二种:不考虑QinQ终结的第二层VLAN ID的分布情况,直接将每个VLAN ID看作一组,各VLAN ID之间互不影响,这种情况下,针对每组VLANID生成的多级子接口表的级数是固定的,均为n级。
这种情况下,所述按照预设规则接收到的QinQ终结的所有第二层VLAN ID进行VLAN ID分组的方法具体可以为:将该QinQ终结的所有第二层VLAN ID中的每个VLAN ID划分为一组;
相应地,
在步骤201中,所述针对每个VLAN ID组,生成该组VLAN ID对应的关联于该一级接口表项的多级子接口表,将所述任一子接口的业务存储到该多级子接口表中的方法具体可以为:
当该一级接口表项下挂有第1级子接口表时,将该第1级子接口表确定为该VLAN ID对应的第1级子接口表,当该一级接口表项未下挂第1级子接口表时,生成该VLAN ID对应的第1级子接口表,将该第1级子接口表下挂到该一级接口表项;确定该VLAN ID对应的第1级子接口表项;
当该第1级子接口表项下挂有第2级子接口表时,将该第2级子接口表确定为该VLAN ID对应的第2级子接口表,当该第1级子接口表项未下挂第2级子接口表时,生成该VLAN ID对应的第2级子接口表,将该第2级子接口表下挂到该第1级子接口表项;再次确定该VLAN ID对应的第2级子接口表项;
依次类推,直到确定该VLAN ID对应的第n级子接口表项,并将所述任一子接口的业务存储到该第n级子接口表项;其中,n为预设最大子接口表级数。
在步骤202中,所述所述确定报文的第二层VLAN ID所属VLAN ID组对应的关联于该一级接口表项的多级子接口表,根据该多级子接口表中存储的子接口业务对报文进行QinQ终结处理的方法为:确定该一级接口表项下挂的第1级子接口表以及报文的第二层VLAN ID对应的第1级子接口表项;确定该第1级子接口表项下挂的第2级子接口表以及报文的第二层VLAN ID对应的第2级子接口表项;依次类推,直到确定报文的第二层VLAN ID对应的第n级子接口表项,并根据该第n级子接口表项中存储的子接口业务对报文进行QinQ终结处理。
在实际应用中,配置在子接口上的QinQ终结是可以变化的,当用户需要改变原有的QinQ终结,可以针对该子接口重新配置QinQ终结并下发。用户针对任一子接口新配置的QinQ终结和该子接口上已配置的QinQ终结之间存在两种情况:
第一种情况:新配置的QinQ终结的第一层VLAN ID与已配置的QinQ终结的第一层VLAN ID不相同。这种情况下,需要返回告警信息给用户,如果用户确认新配置的QinQ终结无误,则需要先删除已配置在该子接口上的QinQ终结,然后再重新下发新配置的QinQ终结。可以通过发送针对该子接口上的QinQ终结的删除命令的方式删除已配置在该子接口上的QinQ终结。
第二种情况:新配置的QinQ终结的第一层VLAN ID和已配置的QinQ终结的第二层VLAN ID相同。这种情况下,新配置的QinQ终结的第二层VLAN ID包括已配置的QinQ终结的所有VLAN ID以及新增的第二层VLAN ID;需要对新增的所有第二层VLAN ID进行VLAN ID分组,针对每组VLAN ID,生成该组VLAN ID对应的多级子接口表,并存储该子接口的业务到该多级子接口表中。
因此,在步骤201中,所述接收到针对所述主接口的任一子接口配置的QinQ终结之后,确定接收到的QinQ终结的第一层VLAN ID对应的一级接口表项之前,还需要进一步包括:
判断所述任一子接口上是否已配置QinQ终结,如果否,则确定接收到的QinQ终结的第一层VLAN ID对应的一级接口表项;如果是,则判断接收到的QinQ终结和已配置的QinQ终结的第一层VLAN ID是否相同,若否,则返回告警消息,若是,则将新增的所有第二层VLAN ID进行VLAN ID分组,针对每组VLAN ID,生成该组VLAN ID对应的关联于该一级接口表项的多级子接口表,并存储所述任一子接口的业务到该多级子接口表中。
实际上,如果是采用第一种按照预设规则对新增的第二层VLAN ID进行VLAN ID分组的方法,则在生成每组VLAN ID对应的多级子接口表,并存储所述任一子接口的业务到该多级子接口表中的过程中,还需要涉及到子接口表的删除操作。
具体地,当确定接收到QinQ终结的第一层VLAN ID和已配置的QinQ终结的第一层VLAN ID相同之后,可以将接收到的QinQ终结的所有第二层VLANID中除已配置的QinQ终结的所有第二层VLAN ID外的所有VLAN ID记为新增第二层VLAN ID,将新增的所有第二层VLAN ID进行VLAN ID分组,针对每个VLAN ID组,生成该组VLAN ID对应的关联于该一级接口表项的多级子接口表,将该多级子接口表的最后一级子接口表记为第x级子接口表,判断该第x级子接口表中除该组VLAN ID对应的子接口表项外是否存在未存储有所述任一子接口的业务的子接口表项,若是,则将所述任一子接口的业务存储到该组VLANID对应的第x级子接口表项中,若否,则确定下挂该第x级子接口表的第x-1级子接口表项,并删除该第x级子接口表,再次判断该第x-1级子接口表中中除该组VLAN ID对应的子接口表项外是否存在未存储有所述任一子接口的业务的子接口表项,依次类推,直到确定第x’级子接口表,该第x’级子接口表中除该组VLAN ID对应的子接口表项外存在未存储所述任一子接口的业务的子接口表项,将所述任一子接口的业务存储到该组VLANID对应的第x’级子接口表项中;其中,x’为小于或者等于x的自然数,x为大于1,且小于或者等于n的自然数。
如果是采用第二种按照预设规则对新增的第二层VLAN ID进行VLAN ID分组的方法,则在生成每组VLAN ID对应的多级子接口表,并存储所述任一子接口的业务到该多级子接口表中的过程中,不涉及到子接口表的删除操作。
具体地,当确定接收到QinQ终结的第一层VLAN ID和已配置的QinQ终结的第一层VLAN ID相同之后,可以将接收到的QinQ终结的所有第二层VLANID中除已配置的QinQ终结的所有第二层VLAN ID外的所有VLAN ID记为新增第二层VLAN ID,将新增的所有第二层VLAN ID的每个VLAN ID划分为一组,针对每个VLAN ID组,生成该组VLAN ID对应的关联于该一级接口表项的多级子接口表,并将所述任一子接口的业务存储到该组VLAN ID对应的多级子接口表中。
在上述本发明实施例中,当确定接收到针对任一子接口配置的QinQ终结与所述任一子接口上已配置的QinQ终结的第一层VLAN ID不相同之后,如果用户确定需要将接收到的QinQ终结生效,则需要先发送针对所述任一子接口上已配置的QinQ终结的删除命令。
这样,当接收到用户的针对所述任一子接口上已配置的QinQ终结的删除命令,则可以对已配置的QinQ终结执行删除操作,具体包括:确定已配置的QinQ终结的第一层VLAN ID确定对应的一级接口表项,针对已配置的QinQ终结的所有第二层VLAN ID划分后的每个VLAN ID组,确定该组VLAN ID对应的关联于该一级接口表项的多级子接口表,将该多级子接口表的最后一级子接口表记为第y级子接口表,删除该组VLAN ID对应的第y级子接口表项中存储的所述任一子接口的业务,判断该第y级子接口表中是否存在存储有其他子接口业务或下挂有第y+1级子接口表的子接口表项,若否,则确定下挂该第y级子接口表的第y-1级子接口表项,并删除该第y级子接口表,再次判断该第y-1级子接口表中是否存在存储有其他子接口业务或下挂有第y级子接口表的子接口表项,依次类推,直到确定存在存储有其他子接口业务或下挂有下级子接口表的子接口表;其中,y为大于1,且小于或者等于n的自然数。
在上述本发明实施例中,所述生成该组VLAN ID对应的第i级子接口表的方法具体可以为:根据第i预设bit串长Li,生成包含2的Li次方个第i级子接口表项的子接口表。所述确定该组VLAN ID对应的第i级子接口表项的方法具体可以为:确定该组VLAN ID对应于第i预设bit串长Li的bit串值,将该bit串值对应的第i级子接口表项确定为该组VLAN ID对应的第i级子接口表项。
下面结合图3、4、5,以最大预设子接口表级数n为2,且第1预设bit串长L1和第2预设bit串长L2均为6,并采用第一种按照预设规则对第二层VLAN ID进行VLAN ID分组的方法为例,对图2所示本发明实施例进行举例说明。
图3是本发明实施例在子接口上配置明确的QinQ终结时实现QinQ终结的方法示意图。假设在主接口上配置有子接口1,已经为主接口分配了一级接口表,如果接收到针对子接口1配置的明确的QinQ终结,且该明确的QinQ终结的第一层VLAN ID为1,第二层VLAN ID为65,则:
首先确定该QinQ终结的第一层VLAN ID对应的一级接口表项:
第一层VLAN ID为1,因此对应的一级接口表项为图3的一级接口表中VLAN ID=1所代表的一级接口表项(这里假设该一级接口表项未下挂第1级子接口表);
接着,再对该QinQ终结的所有第二层VLAN ID进行VLAN ID分组,得到满足第2条件的一组VLAN ID,该组VLAN ID中只有一个VLAN ID:65,可以生成该组VLAN ID对应的关联于一级接口表中VLAN ID=1所代表的一级接口表项的多级子接口表,具体过程为:
65所占用的12个bit位000001000001,因此,对应于第1预设bit串长Li的bit串为000001,值为1;对应于第2预设bit串长L2的bit串为000001值为1。
先生成第1级子接口表,包括2的6次方个第1级子接口表项,并将该第1级子接口表下挂到VLAN ID=1所代表的一级接口表项;由于对应于第1预设bit串长的bit串值为1,因该组VLAN ID对应的第1级子接口表项为图3的第1级接口表中VLAN ID=1所代表的第1级子接口表项;
再继续生成第2级子接口表,包括2的6次方个第2级子接口表项,并将该第2级子接口表下挂到VLAN ID=1所代表的第1级子接口表项;由于对应于第2预设bit串长的bit串值为1,因此该组VLAN ID对应的第2级子接口表项为图3的第2级接口表中VLAN ID=1所代表的第2级子接口表项;至此,多级子接口表生成,需要将子接口1的业务存储到该第2级子接口表项中。
这样,当在主接口上接收到第一层VLAN ID为1,第二层VLAN ID为65的报文时,可以通过查表定位到该第2级子接口表项,并根据该第2级子接口表项中存储的子接口业务对报文进行QinQ终结处理。
图4是本发明实施例在子接口上配置模糊的QinQ终结时实现QinQ终结的方法示意图。假设已经为主接口分配了一级接口表,如果接收到针对子接口1配置的模糊的QinQ终结,且该QinQ终结的第一层VLAN ID为1,第二层VLAN ID包括65-127,则:
首先确定该QinQ终结的第一层VLAN ID对应的一级接口表项为图4的一级接口表中VLAN ID=1所代表的一级接口表项;
接着,再对该QinQ终结的所有第二层VLAN ID进行VLAN ID分组,65-127共63个VLAN ID中,不存在满足第1条件的一组或多组VLAN ID,共有满足第2条件的63组VLAN ID,针对每组VLAN ID,生成该VLAN ID对应的关联于该一级接口表项的多级子接口表并存储接口1的业务的原理与图3中生成每组VLAN ID对应的多级接口表并存储子接口1的业务的原理相同。最终,生成的多级子接口表如图4所示,其中,各组VLAN ID对应的第1级子接口表和第1级子接口表项均相同,为图4的第1级子接口表中VLAN ID=1所代表的第1级子接口表项(如图4的第1级子接口表中划斜线的子接口表项所示),各组VLAN ID对应的第2级子接口表相同,第2级子接口表项分别为第2级子接口表中VLAN ID=1到VLAN ID=63之间的第2级子接口表项(如图4的第2级子接口表中划斜线的部分子接口表项所示)。
这样,当接收到第一层VLAN ID为1,第二层VLAN ID为65-127中的任一个的报文时,均能最终确定对应的第2级子接口表中的第2级子接口表项,并根据相应的第2级子接口表项中存储的子接口1的业务,对报文执行QinQ终结处理。
图5是本发明实施例在子接口上先后两次配置QinQ终结时实现QinQ终结的数据架构示意图。假设已经为主接口1分配了一级接口表,如果先接收到针对子接口1配置的模糊的QinQ终结,且该QinQ终结的第一层VLAN ID为1,第二层VLAN ID包括65-127,且已经确定该QinQ终结的第一层VLANID对应的一级接口表项,并生成了划分该QinQ终结的所有第二层VLAN ID得到的每组VLAN ID对应的关联于该一级接口表项的多级子接口表,详细过程请参见图4所示本发明实施例。
再次接收到针对子接口1上配置的QinQ终结时,假设该QinQ终结为模糊的QinQ终结,第一层VLAN ID为1,第二层VLAN ID包括:64-127,则,由于接收到的QinQ终结和已配置的QinQ终结的第一层VLAN ID相同,因此,需要确定新增的第二层VLAN ID为64、分组后得到满足第2条件的只包括64的一组VLAN ID,需要针对该组VLAN ID生成多级子接口表。
其中,该组VLAN ID对应的第1级子接口表和第2级子接口表均已经存在,该组VLAN ID对应的第1级子接口表项为图5所示的第1级子接口表中VLAN ID=1的子接口表项,该组VLAN ID对应的第2级子接口表项为图5所示的第2级子接口表中VLAN ID=0的子接口表项,除了该VLAN=0的第2级子接口表项外,该第2级子接口表中的所有其他第2级子接口表项中均存储有子接口1的业务,因此,需要确定下挂该第2级子接口表的第1级子接口表项,并删除该第2级子接口表(图5中的第2级子接口表用虚线画出,表示该第2级子接口表最终被删除),将子接口1的业务存储到该第1级子接口表项。
这样,当接收到第一层VLAN ID为1,第二层VLAN ID为64-127中的任一个的报文时,均能最终确定对应的存储有子接口1的业务的子接口表项为图5所示的第1级子接口表中VLAN ID=1的第1级子接口表项,并根据该子接口表项中存储的子接口1的业务,对报文执行QinQ终结处理。
以上对本发明实现QinQ终结的方法进行了详细说明,本发明还提供了一种实现QinQ的装置。
参见图6,图6是本发明实施例实现QinQ终结的装置结构图,该装置包括:存储单元601、收发单元602、建表单元603、查表单元604;其中,
存储单元601,用于预先为所述主接口分配一级接口表以及各级子接口表;
收发单元602、用于接收针对所述主接口的任一子接口配置的QinQ终结;用于在所述主接口上接收需要进行QinQ终结处理的报文;
建表单元603,用于在收发单元602接收到针对所述主接口的任一子接口配置的QinQ终结后,确定接收到的QinQ终结的第一层VLAN ID对应的一级接口表项,按照预设规则接收到的QinQ终结的所有第二层VLAN ID进行VLANID分组,针对每个VLAN ID组,生成该组VLAN ID对应的关联于该一级接口表项的多级子接口表,将所述任一子接口的业务存储到该多级子接口表中;
查表单元604,用于在收发单元602在所述主接口上接收到需要进行QinQ终结处理的报文后,确定报文的第一层VLAN ID对应的一级接口表项,确定报文的第二层VLAN ID所属VLAN ID组对应的关联于该一级接口表项的多级子接口表,根据该多级子接口表中存储的子接口业务对报文进行QinQ终结处理。
在上述装置中,
所述建表单元603在按照预设规则接收到的QinQ终结的所有第二层VLANID进行VLAN ID分组时,用于:
确定该QinQ终结的所有第二层VLAN ID中是否存在满足第1条件的一组或多组VLAN ID,如果是,则将满足第1条件的每组VLAN ID划分为一组;
确定该QinQ终结的所有第二层VLAN ID中除上述满足第1条件的一组或多组VLAN ID外是否存在满足第2条件的一组或多组VLAN ID,如果是,则将满足第2条件的每组VLAN ID划分为一组;
依次类推,直到将该QinQ终结的所有第二层VLAN ID全部划分完毕;
其中,第i条件为:该QinQ终结的第二层VLAN ID集合除满足第1条件、...第i-1条件的一组或多组VLAN ID外存在高(L1+...+Li)个bit位相同,且低(Li+1+...+Ln)个bit位的值分别为从0到(T-1)的T个VLAN ID;T的值为2的(Li+1+...+Ln)次方;L1+L2+...Ln=L,L为一个VLAN ID占用的bit位数;Li为第i预设bit位长,i=1、...n;n为预设最大子接口表级数;
所述建表单元603在针对每个VLAN ID组,生成该组VLAN ID对应的关联于该一级接口表项的多级子接口表,将所述任一子接口的业务存储到该多级子接口表中时,用于:
假设该组VLAN ID满足第j条件,则当该一级接口表项下挂有第1级子接口表时,确定该第1级子接口表为该组VLAN ID对应的第1级子接口表,当该一级接口表项未下挂第1级子接口表时,生成该组VLAN ID对应的第1级子接口表,并将该第1级子接口表下挂到该一级接口表项;确定该组VLAN ID对应的第1级子接口表项,当该第1级子接口表项下挂有第2级子接口表时,确定该第2级子接口表为该组VLAN ID对应的第2级子接口表,当该第1级子接口表项未下挂第2级子接口表时,生成该组VLAN ID对应的第2级子接口表,并将该第2级子接口表下挂到该第1级子接口表项;依次类推,直到确定该组VLANID对应的第j级子接口表项,将所述任一子接口的业务存储到该第j级子接口表项中;其中,j=1、...、n。
所述建表单元603在收发单元602接收到针对所述任一子接口配置的QinQ终结之后,确定接收到的QinQ终结的第一层VLAN ID对应的一级接口表项之前,进一步用于:
判断所述任一子接口上是否已配置QinQ终结,如果否,则确定接收到的QinQ终结的第一层VLAN ID对应的一级接口表项;如果是,则判断接收到的QinQ终结和已配置的QinQ终结的第一层VLAN ID是否相同,若否,则通知收发单元602返回告警消息,若是,则将接收到的QinQ终结的所有第二层VLANID中除已配置的QinQ终结的所有第二层VLAN ID外的所有VLAN ID记为新增第二层VLAN ID,将新增的所有第二层VLAN ID进行VLAN ID分组,针对每个VLAN ID组,生成该组VLAN ID对应的关联于该一级接口表项的多级子接口表,将该多级子接口表的最后一级子接口表记为第x级子接口表,判断该第x级子接口表中除该组VLAN ID对应的子接口表项外是否存在未存储有所述任一子接口的业务的子接口表项,若是,则将所述任一子接口的业务存储到该组VLANID对应的第x级子接口表项中,若否,则确定下挂该第x级子接口表的第x-1级子接口表项,并删除该第x级子接口表,再次判断该第x-1级子接口表中中除该组VLAN ID对应的子接口表项外是否存在未存储有所述任一子接口的业务的子接口表项,依次类推,直到确定第x’级子接口表,该第x’级子接口表中除该组VLAN ID对应的子接口表项外的存在未存储所述任一子接口的业务的子接口表项,将所述任一子接口的业务存储到该组VLANID对应的第x’级子接口表项中;其中,x’为小于或者等于x的自然数,x为大于1,且小于或者等于n的自然数;
所述收发单元602,用于根据建表单元603的通知返回告警信息。
所述查表单元604在确定报文的第二层VLAN ID所属VLAN ID组对应的关联于该一级接口表项的多级子接口表,根据该多级子接口表中存储的子接口业务对报文进行QinQ终结处理时,用于:确定该一级接口表项下挂的第1级子接口表以及报文的第二层VLAN ID对应的第1级子接口表项,判断该第1级子接口表项中是否存储有子接口业务,若是,则根据该子接口业务对报文进行QinQ终结处理,若否,则确定该第1级子接口表项下挂的第2级子接口表以及报文的第二层VLAN ID对应的第2级子接口表项,并再次判断该第2级子接口表项中是否存储有子接口业务,依次类推,直到确定报文的第二层VLAN ID对应的存储有子接口业务的子接口表项,并根据该子接口表项中存储的子接口业务对报文进行QinQ终结处理。
在上述装置中,所述建表单元603在按照预设规则接收到的QinQ终结的所有第二层VLAN ID进行VLAN ID分组时,用于:将该QinQ终结的所有第二层VLAN ID中的每个VLAN ID划分为一组;
所述建表单元603在针对每个VLAN ID组,生成该组VLAN ID对应的关联于该一级接口表项的多级子接口表,将所述任一子接口的业务存储到该多级子接口表中时,用于:
当该一级接口表项下挂有第1级子接口表时,将该第1级子接口表确定为该VLAN ID对应的第1级子接口表,当该一级接口表项未下挂第1级子接口表时,生成该VLAN ID对应的第1级子接口表,将该第1级子接口表下挂到该一级接口表项;确定该VLAN ID对应的第1级子接口表项;
当该第1级子接口表项下挂有第2级子接口表时,将该第2级子接口表确定为该VLAN ID对应的第2级子接口表,当该第1级子接口表项未下挂第2级子接口表时,生成该VLAN ID对应的第2级子接口表,将该第2级子接口表下挂到该第1级子接口表项;再次确定该VLAN ID对应的第2级子接口表项;
依次类推,直到确定该VLAN ID对应的第n级子接口表项,并将所述任一子接口的业务存储到该第n级子接口表项;其中,n为预设最大子接口表级数。
所述建表单元603在收发单元602接收到针对所述任一子接口配置的QinQ终结之后,确定接收到的QinQ终结的第一层VLAN ID对应的一级接口表项之前,进一步用于:
判断所述任一子接口上是否已配置QinQ终结,如果否,则确定接收到的QinQ终结的第一层VLAN ID对应的一级接口表项;如果是,则判断接收到的QinQ终结和已配置的QinQ终结的第一层VLAN ID是否相同,若否,则通知收发单元602返回告警消息,若是,则将接收到的QinQ终结的所有第二层VLANID中除已配置的QinQ终结的所有第二层VLAN ID外的所有VLAN ID记为新增第二层VLAN ID,将新增的所有第二层VLAN ID的每个VLAN ID划分为一组,针对每个VLAN ID组,生成该组VLAN ID对应的关联于该一级接口表项的多级子接口表,并将所述任一子接口的业务存储到该组VLAN ID对应的多级子接口表中;
所述收发单元602,用于根据建表单元603的通知返回告警信息。
所述查表单元604在确定报文的第二层VLAN ID所属VLAN ID组对应的关联于该一级接口表项的多级子接口表,根据该多级子接口表中存储的子接口业务对报文进行QinQ终结处理时,用于:确定该一级接口表项下挂的第1级子接口表以及报文的第二层VLAN ID对应的第1级子接口表项;确定该第1级子接口表项下挂的第2级子接口表以及报文的第二层VLAN ID对应的第2级子接口表项;依次类推,直到确定报文的第二层VLAN ID对应的第n级子接口表项,并根据该第n级子接口表项中存储的子接口业务对报文进行QinQ终结处理。
所述收发单元602在根据建表单元603的通知返回告警信息之后,进一步用于:接收针对所述任一子接口上已配置的QinQ终结的删除命令;
所述建表单元603在确定所述任一子接口上已配置的QinQ终结和接收到的QinQ终结的第一层VLAN ID不相同,并通知收发单元602返回告警消息之后,进一步用于:如果收发单元602接收到针对所述任一子接口上已配置的QinQ终结的删除命令,则确定已配置的QinQ终结的第一层VLAN ID确定对应的一级接口表项,针对已配置的QinQ终结的所有第二层VLAN ID划分后的每个VLANID组,确定该组VLAN ID对应的关联于该一级接口表项的多级子接口表,将该多级子接口表的最后一级子接口表记为第y级子接口表,删除该组VLAN ID对应的第y级子接口表项中存储的所述任一子接口的业务,判断该第y级子接口表中是否存在存储有其他子接口业务或下挂有第y+1级子接口表的子接口表项,若否,则确定下挂该第y级子接口表的第y-1级子接口表项,并删除该第y级子接口表,再次判断该第y-1级子接口表中是否存在存储有其他子接口业务或下挂有第y级子接口表的子接口表项,依次类推,直到确定存在存储有其他子接口业务或下挂有下级子接口表的子接口表;其中,y为大于1,且小于或者等于n的自然数。
所述建表单元603在生成该组VLAN ID对应的第i级子接口表时,用于:根据第i预设bit串长Li,生成包含2的Li次方个第i级子接口表项的子接口表;
所述建表单元603在确定该组VLAN ID对应的第i级子接口表项时,用于:确定该组VLAN ID对应于第i预设bit串长Li的bit串值,将该bit串值对应的第i级子接口表项确定为该组VLAN ID对应的第i级子接口表项。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。