CN101510855A - 一种QinQ报文的处理方法和装置 - Google Patents
一种QinQ报文的处理方法和装置 Download PDFInfo
- Publication number
- CN101510855A CN101510855A CNA2009101316250A CN200910131625A CN101510855A CN 101510855 A CN101510855 A CN 101510855A CN A2009101316250 A CNA2009101316250 A CN A2009101316250A CN 200910131625 A CN200910131625 A CN 200910131625A CN 101510855 A CN101510855 A CN 101510855A
- Authority
- CN
- China
- Prior art keywords
- qinq
- keyword
- prefix
- message
- vlan
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 32
- 238000012545 processing Methods 0.000 title abstract description 5
- 238000003672 processing method Methods 0.000 claims abstract description 19
- 230000008878 coupling Effects 0.000 claims description 50
- 238000010168 coupling process Methods 0.000 claims description 50
- 238000005859 coupling reaction Methods 0.000 claims description 50
- 230000008569 process Effects 0.000 claims description 23
- 238000004891 communication Methods 0.000 abstract description 2
- 238000006116 polymerization reaction Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 7
- 229910002056 binary alloy Inorganic materials 0.000 description 3
- 238000007726 management method Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 101100269850 Caenorhabditis elegans mask-1 gene Proteins 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 230000005641 tunneling Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4641—Virtual LANs, VLANs, e.g. virtual private networks [VPN]
- H04L12/4645—Details on frame tagging
- H04L12/465—Details on frame tagging wherein a single frame includes a plurality of VLAN tags
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开一种QinQ报文的处理方法和装置,涉及网络通信领域。该处理方法包括:根据至少QinQ报文的VLAN ID生成关键字;将关键字与QinQ接入表中的前缀/掩码进行匹配操作,获得QinQ接入表中的匹配表项;根据匹配表项的控制信息对QinQ报文进行处理。通过本发明的QinQ报文的处理方法和装置,以聚合方式将现有技术中需要占用多个QinQ接入表项的VLAN ID范围聚合为本发明中的一个QinQ接入表项,从而扩展QinQ接入表实际支持的VLAN ID用户数量,节省宝贵的QinQ接入表表项资源。
Description
技术领域
本发明涉及网络通信领域,尤其涉及一种QinQ(802.1Q in802.1Q)报文的处理方法和装置。
背景技术
随着以太网技术在运营商网络中的大量部署,利用802.1Q VLAN(Virtual Local Area Network,虚拟局域网)对用户进行隔离和标识受到很大限制,因为IEEE 802.1Q中定义的VLAN ID(标识)域只有12个比特,仅能表示4096(4K)个VLAN,这对于城域以太网中需要标识的大量用户捉襟见肘,于是QinQ技术应运而生。
QinQ协议是一种基于IEEE 802.1Q技术的二层隧道协议,是一项用来扩展VLAN空间的技术,具体通过在基于802.1Q标签报文的基础上再增加一层802.1Q的标签头,达到扩展VLAN空间的目的,实现了私网VLAN透传公网。由于在骨干网中基于这种技术进行传递的报文有两层802.1Q TAG(标签)头,即一层为公网标签(即外层标签),一层为私网标签(即内层标签),所以该技术协议被称之为QinQ协议,即,802.1Q-in-802.1Q协议。
图1示出QinQ报文格式。如图1所示,QinQ报文包括目的MAC(Media Access Control,介质访问控制)地址(DA)、源MAC地址(SA)、外层虚拟局域网标签、内层虚拟局域网标签、类型/长度(TYPE/LEN)等。其中外层虚拟局域网标签包括2字节(Byte)的ETYPE字段和2字节的TAG字段,而TAG字段又包括优先级(Priority)、CFI(Canonical Format Indicator,规范格式指示)、和VLAN ID域。VLAN ID为12个比特,可以表示4K个VLAN。内层虚拟局域网标签的格式与外层虚拟局域网标签相同。
通过QinQ技术,运营商网络可以为来自同一用户网络的不同VLAN提供一个VLAN ID,节约了运营商的VLAN ID,以解决运营商网络VLAN ID资源日益紧张的问题。
图2示出基于QinQ协议的网络结构示意图。如图2所示,交换机1上的用户CE(Customer Edge,用户边缘)VLAN 100~200(即,VLAN ID的范围可以是从100至200)从用户侧接入,在网络侧出口加上一个PE(Provider Edge,服务商边缘)VLAN 1000。QinQ报文进入路由器1时带两层VLAN ID(外层VLAN ID 1000,内层VLAN ID100~200)。路由器1根据这些信息精确查找QinQ接入表,判断是否合法报文,获取该QinQ报文后续转发需要的信息。在一些应用中,路由器1还可以根据端口信息和VLAN ID信息查找QinQ接入表,进行后续转发。
对这种用户VLAN ID属于一个范围的情况,在路由器1上可以配置一个VLAN ID范围,用户在配置的范围中规划自己使用的VLANID,而无需顾及选择的VLAN ID是否和运营商的PE VLAN ID相冲突。
但是,现有技术中存在这样的问题:为用户配置VLAN ID时,内层VLAN ID和外层VLAN ID都可以是一个范围。此时,端口号、外层VLAN ID和内层VLAN ID全部可能的组合数量太大(为端口数×4K×4K),QinQ接入表难以支持这么大的数量,所以QinQ接入表无法为每个端口分配所有可能组合的表项,导致了为用户配置的VLANID的数量受到了限制。
发明内容
为解决现有技术中为用户配置的VLAN ID的数量受到限制的问题,本发明的实施例提供了一种QinQ报文的处理方法,包括:
至少根据QinQ报文的虚拟局域网标识VLAN ID生成关键字;将关键字与QinQ接入表中的前缀/掩码进行匹配操作,获得QinQ接入表中的匹配表项;根据匹配表项获得QinQ接入表中的控制信息;根据该控制信息对QinQ报文进行处理。
本发明的另一实施例提供了一种QinQ报文的处理装置,包括:
关键字生成模块,用于接收QinQ报文,至少根据QinQ报文的VLAN ID生成关键字,发送该关键字;表项匹配模块,用于接收来自关键字生成模块的关键字,将关键字与QinQ接入表中的前缀/掩码进行匹配操作,获得QinQ接入表中匹配表项,根据匹配表项获得控制信息,发送该控制信息;报文操作模块,用于接收来自表项匹配模块的控制信息,根据该控制信息对接收的QinQ报文进行处理。
采用本发明的实施例提供的方法和装置,由于对VLAN ID进行聚合,减少了接入表中的表项,实际扩展了QinQ接入表支持的VLANID范围。
附图说明
图1示出QinQ报文格式的图示;
图2示出基于QinQ协议的网络结构示意图;
图3示出本发明的QinQ报文的处理方法的一个实施例的流程图;
图4示出本发明的QinQ报文的处理方法的另一个实施例的流程图;
图5示出本发明的QinQ报文处理装置的一个实施例的结构图;
图6示出本发明的QinQ报文处理装置的另一个实施例的结构图;
图7示出一种用于最长前缀匹配的芯片的结构示意图;
图8示出本发明的QinQ报文处理装置的又一个实施例的结构图;
图9示出本发明的QinQ报文处理装置的又一个实施例的结构图。
具体实施方式
下面参照附图对本发明实施例进行更全面的描述,其中说明本发明的示例性实施例。
本发明的实施例,采用前缀/掩码的聚合方式,将属性相同的VLAN ID范围归入一个或多个前缀/掩码。通过这样的聚合方式,可以将现有技术中需要占用多个QinQ接入表项的VLAN ID范围聚合为一个QinQ接入表项,从而扩展QinQ接入表实际支持的VLAN ID用户数量。
在本发明的实施例中,QinQ接入表的每个表项包括作为主键(primary key)的前缀/掩码,以及对应的控制信息。前缀/掩码根据VLAN ID范围配置或者自动生成,将在下文中介绍如何根据VLAN ID范围生成前缀/掩码的具体实现。控制信息包括:为转发QinQ报文需要的转发信息、或为终结QinQ报文需要的终结信息。例如,转发信息包括二层、MPLS(Multi-Protocol Label Switching,多协议标记交换)和三层转发等,终结信息包括:单层终结还是双层终结,终结的VLANID范围等。下表1示出QinQ接入表的一种简单表示:
主键 | 控制信息 |
前缀1/掩码1 | 控制信息1 |
前缀2/掩码2 | 控制信息2 |
... | ... |
表1
在一些实施例中,主键由外层前缀/掩码和内层前缀/掩码组成,此时,QinQ接入表可以如下表2所示:
表2
而在一些具体应用中,QinQ接入表还可以进一步包括前缀/掩码、与控制信息相关的地址信息或者地址索引、以及控制信息。这种情况下,可以将主键值和控制信息分别存储,例如:可以将主键值、以及与控制信息相关的地址信息或者地址索引一起存储在诸如TACM中,而将控制信息存储在普通的存储器中。当利用关键字得到与之相匹配的前缀/掩码后,就能够得到与控制信息相关的地址信息或者地址索引,而通过TCAM中存储的这些与控制信息相关的地址信息或者地址索引,就能够获得对应的控制信息。
在QinQ接入表中,每一个前缀/掩码可以采用(前缀/掩码)序偶的形式保存。假设关键字的长度为W,那么前缀和掩码分别占用W比特。对于一个前缀长度为Y(1≤Y≤W)的表项来说,前缀的前Y个比特表示该前缀的值,前缀后W-Y个比特可以是‘0’或者‘1’;掩码的前Y个比特为‘1’,而掩码的掩码位,即后面的W-Y比特为‘0’。例如,在前缀掩码占用的比特数W为6的情况下,假定一个前缀/掩码为10XXXX,此时前缀的长度Y=2,则该前缀/掩码可以用序偶(100000/110000)表示。在表项的掩码匹配查找中,判断“关键字Bitwise And掩码”是否与“前缀Bitwise And掩码”相等,如果相等表示关键字与该表项匹配;否则不匹配。其中,Bitwise And表示按位与。
当然,可以理解,掩码的前Y个比特也可以用‘0’表示,相应的,掩码的掩码位则可以用‘1’表示。在这种情况下,在表项的掩码匹配查找中,判断“关键字Bitwise OR掩码”是否与“前缀BitwiseOR掩码”相等,如果相等,表示关键字与该表项匹配;否则不匹配。其中,“Bitwise OR”表示按位或。
图3示出本发明的QinQ报文的处理方法的一个实施例的流程图。如图3所示:
S302,至少根据QinQ报文的VLAN ID生成关键字。
在一些实施例中,可以根据QinQ报文的端口标识、外层VLANID、和内层VLAN ID生成关键字;在一些实施例中,还可以根据QinQ报文的端口标识和外层VLAN ID生成关键字,或者根据QinQ报文的外层VLAN ID和内层VLAN ID生成关键字。
如,以根据QinQ报文的端口标识、外层VLAN ID、和内层VLAN ID生成关键字为例,详细介绍一种生成关键字的具体实施方式。为便于说明,假设QinQ报文中,端口标识为5,外层VLAN ID为27,内层VLAN ID为130。在本具体的实施方式中,将QinQ报文的端口标识、外层VLAN ID以及内层VLAN ID分别转换为二进制,即分别为:101、11011,10000010。将得到的二进制数顺次拼接,组合起来,得到:10111011 10000010,即为对应的关键字。
可以理解,在本具体实施方式中,是将QinQ报文中的端口标识、外层VLAN ID以及内层VLAN ID分别转换为二进制,然后再顺次拼接,形成对应的关键字。当然,生成关键字的方法并不仅限于此具体的实现方式。不管生成关键字的具体实现方式为何,本发明实施例的方法均能实现。
S304,将关键字与QinQ接入表中的前缀/掩码进行匹配,获得QinQ接入表中的匹配表项。
本实施例中,QinQ接入表可以是如前文中表1所示的形式。此时,将关键字分别和QinQ接入表每一个表项中的前缀/掩码进行按位运算。例如,当掩码的掩码位用‘0’表示时,对于每个表项,判断“关键字Bitwise AND掩码”与“前缀Bitwise AND掩码”是否相等,如果相等,则说明该关键字和该表项匹配,否则,该关键字和该表项不匹配。
S306,根据匹配表项获得该匹配表项中的控制信息。
S308,根据获得的控制信息处理QinQ报文。
本实施例中,控制信息可以是QinQ报文终结信息,或者QinQ报文后续转发需要的转发信息,例如二层转发、MPLS转发所需的转发信息等。
当然,由前面的介绍可知,QinQ接入表中,当前缀/掩码与控制信息存储在同一个存储器中时,利用关键字与QinQ接入表中的前缀/掩码进行匹配,获得QinQ接入表中的匹配表项后,就可以直接获得相应的控制信息。当与前缀/掩码一同存储的是与控制信息相关的地址信息或者地址索引时,利用关键字与QinQ接入表中的前缀/掩码进行匹配,获得QinQ接入表中的匹配表项后,需要根据与控制信息相关的地址信息或者地址索引,得到相应的控制信息。
获得控制信息之后,就可以对QinQ报文进行相应的处理,例如,根据报文终结信息进行QinQ终结操作,根据转发信息进行QinQ报文的转发操作。
在上述S304中,将关键字与QinQ接入表中的前缀/掩码进行匹配,可以通过专门的硬件执行,例如TCAM芯片,也可以通过软件和硬件结合执行,或者通过纯软件实现。
图4示出本发明的QinQ报文的处理方法的另一个实施例的流程图。如图4所示:
S402,根据QinQ报文的端口标识、外层VLAN ID和内层VLANID生成外层关键字和内层关键字。
本实施例中,可以将端口标识和外层VLAN ID一起生成外层关键字,由内层VLAN ID作为内层关键字。
具体来说,与上一实施例相类似的,可以将端口标识的二进制表示和外层VLAN ID的二进制表示拼接在一起生成外层关键字。此处不再赘述。
S404,将外层关键字和内层关键字与QinQ接入表中的外层前缀/掩码和内层前缀/掩码分别进行匹配,获得QinQ接入表中匹配表项。
本实施例中,QinQ接入表可以是如前文中表2所示的形式。此时,如果外层关键字和QinQ接入表中的外层前缀/掩码匹配,而且内层关键字和QinQ接入表中的内层前缀/掩码匹配,则该关键字和该表项匹配。
S406,根据匹配表项获得控制信息,并根据获得的控制信息处理QinQ报文。
与上一实施例相类似的,QinQ接入表中,当前缀/掩码与控制信息存储在同一个存储器中时,利用关键字与QinQ接入表中的前缀/掩码进行匹配,获得QinQ接入表中的匹配表项后,就可以直接获得相应的控制信息。当与前缀/掩码一同存储的是与控制信息相关的地址信息或者地址索引时,利用关键字与QinQ接入表中的前缀/掩码进行匹配,获得QinQ接入表中的匹配表项后,需要根据与控制信息相关的地址信息或者地址索引,得到相应的控制信息。
本发明实施例中的QinQ接入表,在使用之前需要预先配置。包括:根据用户配置的VLAN ID范围生成QinQ接入表中的前缀/掩码。而QinQ接入表中的控制信息则可以根据网络管理员对业务的配置而生成。
下面具体介绍如何根据用户配置的VLAN ID范围来生成QinQ接入表中的前缀/掩码。在下面的描述中,掩码中的掩码位用‘1’表示,或者用‘X’表示。
一种方式是用户将VLAN ID范围聚合成一个或者多个前缀/掩码。
为便于描述,假设用户配置的VLAN ID范围为24~28。则可以进行如下处理:
1)将配置的VLAN ID范围中的VLAN ID都转换为二进制表示,如表3所示;
2)将VLAN ID的二进制表示按顺序排列;
3)从该排列中选出一个最大的连续段,确定数值n;其中,数值n满足下面的条件;将该连续段中所有数字的二进制表示的低n位取出,组成一个集合,该集合正好包括了n位的二进制数的所有排列组合。
以表3为例,将VLAN ID的二进制表示中连续段24-27的二进制表示的低2位取出,组成集合{00,01,10,11},该集合正好包括了2位的二进制数的所有排列组合,所以在表3所示的情况下,满足条件的数值n=2。
4)确定数值n后,就可以将该连续段聚合为一个前缀/掩码。该前缀/掩码的低n位即为掩码位,设为1。
5)该二进制表示的连续段中,除了低n位外,前面几位是相同的,这些相同的位,就是该前缀/掩码的前缀。
具体仍以表3为例,由于n=2,因此,后2位为掩码位,即:11。除了后2位,前3位相同的是24~27的二进制表示,均为110,因此,前缀就是11000。所以,24~27就可以聚合成为一个前缀/掩码,即:(11000/00011),也就是(24/3)。而28单独形成一个前缀/掩码(28/0),其中,掩码为0表示该掩码不存在掩码位。
十进制 | 二进制 |
24 | 11000 |
25 | 11001 |
26 | 11010 |
27 | 11011 |
28 | 11100 |
表3
另一种方式是自动将配置的VLAN ID范围转换成一个或者多个前缀/掩码聚合段。
假设用户配置的VLAN ID范围表示为Rmin~Rmax,W为前缀/掩码占用的位数。通过下面的代码可以得到相应的前缀/掩码:
Range_convert_Prefix(Rmin,Rmax,Prefix[],Mask[])
{
int d=0,i;
while(Rmin<Rmax){
for(i=0;i<W;i++)
if(((Rmin不被2i+1整除)或者(Rmin+2i+1-1)>Rmax)
break;
Mask[d]=2i-1;
Prefix[d]=Rmin;
d=d+1;
Rmin=Rmin+2i;
}
仍然以用户VLAN ID的范围为24~28为例,在W取值为5的情况下,计算得出Prefix[0]=24,Mask[0]=3;Prefix[1]=28,Mask[1]=0。从而获得两个前缀/掩码(24/3)和(28/0),即110XX和11100。
通过上面的方式,用户不需要感知这种聚合转换,只配置QinQ需要支持的VLAN ID的范围,设备自动将VLAN ID范围聚合成前缀/掩码,按照聚合前缀/掩码管理QinQ表项资源,对用户透明。
需要指出,虽然在上文实施例中,描述了将用户配置的连续的VLAN ID范围聚合为一个或者多个前缀/掩码的情形。本发明实施例的方法同样适用于将用户配置的不连续的多个VLAN ID范围聚合为一个或者多个前缀/掩码的情形。
例如,用户配置的VLAN ID范围为不连续的24和26~27,且VLAN ID 25不被其他用户所占用,如果合并不会使QinQ接入表中的表项增加,则可以将用户的不连续的VLAN ID范围合并为24~27,在QinQ接入表中通过前缀/掩码为(24/3)的一个表项来表示。
在本发明的另外一些实施例中,即使用户不连续的VLAN ID范围之间的VLAN ID被其他用户所占用,也可以将用户的不连续的VLANID范围合并。例如,第一个用户的VLAN ID范围包括24和26~27,而第二个用户的VLAN ID范围是25,在这种情况下,可以将第一个用户的VLAN ID范围24和26~27合并为24~27,此时,第一个用户在QinQ接入表中对应表项的前缀/掩码为(24/3),或110XX,而第二个用户在QinQ接入表中对应表项的前缀/掩码为(25/0)(该处掩码为0表示该掩码不存在掩码位),或11001。当以24、26和27为关键字与QinQ接入表中的前缀/掩码进行匹配操作时,只与前缀/掩码为(24/3)的表项匹配;而当以25为关键字和QinQ接入表中的前缀/掩码进行匹配操作时,前缀/掩码为(24/3)和(25/0)的两个表项都匹配。
当出现这样的情况时,可以通过最长前缀匹配来解决,即本发明实施例提供的QinQ报文的处理方法,还可以包括:当存在多个匹配的前缀/掩码时,则从多个匹配的前缀/掩码中选择前缀最长的前缀/掩码对应的表项作为匹配表项。例如,在匹配的前缀/掩码为(24/3)和(25/0)的情况下,(24/3)的掩码位占2位,因此前缀长度为W-2=5-2=3,(25/0)的掩码位占0位,因此前缀长度为W-0=5-0=5,所以选择前缀长度为5的前缀/掩码(25/0)对应的表项。
下面介绍本发明实施例的QinQ报文的处理方法的一个应用例。
假定用户在一个端口5配置的外层VLAN ID范围为24~28,内层VLAN ID范围为100~150,端口号占4个比特。
根据本发明实施例的QinQ报文的处理方法,首先对用户配置的VLAN ID范围进行前缀/掩码聚合,由前述的根据用户配置的VLAN ID范围来生成QinQ接入表中的前缀/掩码的两种方式中的任意一种,外层VLAN ID被聚合为两个前缀/掩码(24/3)(即0000000110XX)和(28/0)(即000000011100),内层VLAN ID被聚合为8个前缀/掩码(100/3)(即0000011001XX)、(104/3)(即0000011010XX)、(108/3)(即0000011011XX)、(112/15)(即00000111XXXX)、(128/15)(即00001000XXXX)、(144/3)(即0000100100XX)、(148/1)(即00001001010X)、和(150/0)(即000010010110);
然后,再根据端口标识和外层VLAN ID的前缀/掩码生成外层前缀/掩码,例如,可以将端口标识的二进制表示和外层VLAN ID聚合而成的前缀/掩码的二进制表示拼接在一起,形成外层前缀/掩码,内层VLAN ID的前缀/掩码生成内层前缀/掩码。这样,在本应用中,该端口的该用户将占用QinQ接入表中的2*8=16个表项。具体端口5在QinQ接入表中占用的表项如下表4所示:
表4
其中,前缀/掩码中的’X’位为掩码位。
当端口接到QinQ报文后,获得QinQ报文的端口标识5、外层VLAN ID(假设为27)、和内层VLAN ID(假设为130);根据端口标识和外层VLAN ID生成外层关键字0101000000011011,根据内层VLAN ID生成内层关键字000010000010,其中外层关键字占用4+12=16位,内层关键字占用12位;和QinQ接入表中的外层前缀/掩码和内层前缀/掩码对应进行匹配操作,查找到的匹配表项为:
01010000000110XX | 00001000XXXX | 控制信息地址5 |
然后由匹配表项中的控制信息地址5获得对应的控制信息,根据控制信息对QinQ报文进行处理。
本发明实施例提供的QinQ报文的处理方法,预先将用户配置的VLAN ID范围聚合为前缀/掩码,并生成相应的QinQ接入表表项。当接收到QinQ报文时,生成查找关键字,与QinQ接入表表项中前缀/掩码进行匹配,获得对应的控制信息并对报文进行处理,从而扩展了QinQ接入表实际支持的VLAN ID数量。
图5示出本发明的QinQ报文处理装置的一个实施例的结构图。如图5所示,该报文处理装置包括关键字生成模块51、表项匹配模块52和报文操作模块53。其中:
关键字生成模块51,用于至少根据QinQ报文的VLAN ID生成关键字,将生成的关键字发送到表项匹配模块52;例如,根据QinQ报文的端口标识、外层VLAN ID、和内层VLAN ID生成关键字;或者,根据QinQ报文的端口标识和外层VLAN ID生成关键字;或者,根据QinQ报文的外层VLAN ID和内层VLAN ID生成关键字。
表项匹配模块52,用于接收来自关键字生成模块51的关键字,将关键字与QinQ接入表中的前缀/掩码进行匹配,获得QinQ接入表中的匹配表项,并根据匹配表项获得控制信息,将控制信息发送给报文操作模块53;例如,表项匹配模块52可以根据匹配的前缀/掩码直接获得对应表项的控制信息,或者,首先根据匹配的前缀/掩码获得与控制信息相关的地址信息或者地址索引,然后根据该地址信息或地址索引获得对应的控制信息。
报文操作模块53,用于接收来自表项匹配模块52的控制信息,根据控制信息对QinQ报文进行处理。
本发明实施例提供的QinQ报文处理装置,由于对VLAN ID进行聚合,减少了QinQ接入表中的表项,实际扩展了QinQ接入表支持的VLAN ID范围。
在本发明的QinQ报文处理装置的一些实施例中,表项匹配模块52可以包括关键字匹配单元521和控制信息获取单元522,如图6所示。其中:
关键字匹配单元521,用于将关键字与QinQ接入表中的前缀/掩码进行匹配,以获得QinQ接入表中的匹配表项。例如,关键字匹配单元521可以通过TCAM或者全相联存储器实现,用于执行QinQ接入表中前缀/掩码的存储和查找。TCAM或者全相联存储器能够在一个硬件时钟周期内完成关键字的匹配查找。TCAM只需要输入关键字的内容,就会将此关键字与TCAM中所有的表项同时进行匹配比较,最后返回匹配表项在TCAM中所对应的地址。
控制信息获取单元522,用于根据关键字匹配单元521获得的匹配表项,获得控制信息。
在本发明的QinQ报文处理装置的另一些实施例,关键字匹配单元521还可以通过用于最长前缀匹配的芯片实现。
图7示出一种用于最长前缀匹配的芯片的结构示意图。如图7所示,该芯片包括并行比较器71和优先级解码器72。其中,
并行比较器71,用于接收关键字,将关键字和所有的前缀/掩码进行并行比较,并将所有的匹配项地址输出到优先级解码器72。
优先级解码器72,用于接收匹配项地址,根据匹配项地址选择匹配的前缀/掩码。例如,优先级解码器72可以从接收的匹配项地址中选择一个地址,该地址对应于前缀最长的前缀/掩码。
从而,控制信息获取单元522就可以根据最长前缀匹配芯片的输出的结果,获得对应表项的控制信息。
进一步的,并行比较器71还用于根据前缀的长度存储前缀/掩码,例如,可以根据前缀的长度的长短按照从低到高的地址排列,即前缀长度越长的前缀/掩码的存储地址越低。或者,并行比较器71也可以根据前缀的长度的长短按照从高到低的地址排列,即前缀长度越长的前缀/掩码的存储地址越高,而优先级解码器72从接收的匹配地址中选择地址最高的地址输出,同样可以实现最长前缀匹配。
本发明实施例提供的QinQ报文处理装置,不仅扩展了QinQ接入表支持的VLAN ID范围,而且通过硬件实现前缀/掩码匹配操作,提高了系统效率。
在本发明的另一个实施例中,QinQ报文处理装置还可以包括接入表生成模块,如图8所示。接入表生成模块,用于生成QinQ接入表,其中,该QinQ接入表的表项包括:前缀/掩码以及控制信息。
具体的,如图9所示,接入表生成模块54可以包括:
前缀/掩码生成单元541,用于根据用户配置的VLAN ID范围生成前缀/掩码;
控制信息生成单元542,用于根据网络管理员对业务的配置生成控制信息。
本发明实施例提供的QinQ报文处理装置,不仅扩展了QinQ接入表支持的VLAN ID范围,而且可以根据用户配置的VLAN ID自动生成QinQ接入表,方便了用户对QinQ接入表的管理和使用
在本发明的QinQ报文处理装置的又一个实施例中,QinQ接入表的表项包括外层前缀/掩码和内层前缀/掩码。相应的,
关键字生成模块51,用于根据QinQ报文的端口标识和外层VLANID生成外层关键字,根据内层VLAN ID生成内层关键字,将生成的外层关键字和内层关键字发送到表项匹配模块52。
表项匹配模块52,用于接收来自关键字生成模块的外层关键字和内层关键字,将外层关键字和内层关键字与QinQ接入表中的外层前缀/掩码和内层前缀/掩码对应进行匹配,获得QinQ接入表中的匹配表项。例如,表项匹配模块52可以通过二级TCAM芯片结构来实现匹配。
本发明实施例提供的QinQ报文处理装置,由于对VLAN ID进行聚合,减少了QinQ接入表中的表项,实际扩展了QinQ接入表支持的VLAN ID范围。
本领域的技术人员可以理解,本发明实施例的QinQ报文处理装置中包括的各个模块,既可以通过专门的硬件实现,也可以利用普通的CPU和存储器通过软件实现,或者通过软件和硬件结合来实现。
本发明实施例的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本发明限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本发明的原理和实际应用,并且使本领域的普通技术人员能够理解本发明从而设计适于特定用途的带有各种修改的各种实施例。
Claims (15)
1.一种QinQ报文的处理方法,其特征在于,包括:
至少根据QinQ报文的虚拟局域网标识VLAN ID生成关键字;
将所述关键字与QinQ接入表中的前缀/掩码进行匹配,获得所述QinQ接入表中的匹配表项;
根据所述匹配表项获得所述QinQ接入表中的控制信息;
根据所述控制信息处理所述QinQ报文。
2.根据权利要求1所述的QinQ报文的处理方法,其特征在于,
所述至少根据QinQ报文的VLAN ID生成关键字,包括:
根据QinQ报文的端口标识和外层VLAN ID生成关键字;或者,
根据QinQ报文的外层VLAN ID和内层VLAN ID生成关键字;或者,
根据QinQ报文的端口标识、外层VLAN ID和内层VLAN ID生成关键字。
3.根据权利要求1所述的QinQ报文的处理方法,其特征在于,所述前缀/掩码包括外层前缀/掩码和内层前缀/掩码;
所述至少根据QinQ报文的VLAN ID生成关键字,包括:
根据所述QinQ报文的端口标识和外层VLAN ID生成外层关键字;
根据所述QinQ报文的内层VLAN ID生成内层关键字;
所述将所述关键字与QinQ接入表中的前缀/掩码进行匹配,包括:
将所述外层关键字和内层关键字,分别与所述QinQ接入表中的外层前缀/掩码和内层前缀/掩码对应进行匹配。
4.根据权利要求1至3中任一项所述的QinQ报文的处理方法,其特征在于,采用三元内容寻址存储器TCAM,将所述关键字与QinQ接入表中的前缀/掩码进行匹配;或者,
当所述前缀/掩码包括外层前缀/掩码和内层前缀/掩码时,采用二级TCAM,将所述外层关键字和内层关键字,与所述QinQ接入表中的外层前缀/掩码和内层前缀/掩码进行匹配。
5.根据权利要求4所述的QinQ报文的处理方法,其特征在于,当存在多个匹配的前缀/掩码时,所述将所述关键字与QinQ接入表中的前缀/掩码进行匹配,获得所述QinQ接入表中的匹配表项,包括:
将所述关键字与QinQ接入表中的前缀/掩码进行匹配;
从所述多个匹配的前缀/掩码中选择前缀最长的前缀/掩码对应的表项作为匹配表项。
6.根据权利要求1至4中任意一项所述的QinQ报文的处理方法,其特征在于,所述匹配表项的控制信息为下一跳信息,所述根据所述匹配表项的控制信息处理所述QinQ报文为转发所述QinQ报文;
或者,
所述匹配表项的控制信息为QinQ报文终结信息,所述根据所述匹配表项的控制信息处理所述QinQ报文为终结所述QinQ报文。
7.根据权利要求1至3中任意一项所述的QinQ报文的处理方法,其特征在于,还包括:
预先根据用户配置的VLAN ID范围生成所述QinQ接入表中的前缀/掩码。
8.一种QinQ报文处理装置,其特征在于,包括:
关键字生成模块,用于至少根据所述QinQ报文的虚拟局域网标识VLAN ID生成关键字,发送所述关键字;
表项匹配模块,用于接收来自所述关键字生成模块的关键字,将所述关键字与QinQ接入表中的前缀/掩码进行匹配操作,获得所述QinQ接入表中匹配表项,并根据所述匹配表项获得控制信息,发送所述控制信息;
报文操作模块,用于接收来自所述表项匹配模块的控制信息,根据所述控制信息处理所述QinQ报文。
9.根据权利要求8所述的QinQ报文处理装置,其特征在于,
所述关键字生成模块根据QinQ报文的端口标识和外层VLAN ID生成关键字;
或者,
根据QinQ报文的外层VLAN ID和内层VLAN ID生成关键字;
或者,
根据QinQ报文的端口标识、外层VLAN ID和内层VLAN ID生成关键字。
10.根据权利要求8所述的QinQ报文处理装置,其特征在于,
所述关键字生成模块用于根据QinQ报文的端口标识和外层VLANID生成外层关键字;根据内层VLAN ID生成内层关键字,发送所述外层关键字和内层关键字;
所述表项匹配模块用于接收来自所述关键字生成模块的外层关键字和内层关键字,将所述外层关键字和内层关键字与所述QinQ接入表中的外层前缀/掩码和内层前缀/掩码对应进行匹配,获得所述QinQ接入表中的匹配表项。
11.根据权利要求8至10中任一项所述的QinQ报文处理装置,其特征在于,所述表项匹配模块包括:
关键字匹配单元,用于将所述关键字与所述QinQ接入表中的前缀/掩码进行匹配,以获得QinQ接入表中的匹配表项;
控制信息获取单元,用于根据所述关键字匹配单元获得的所述匹配表项,获得控制信息。
12.根据权利要求11所述的QinQ报文处理装置,其特征在于,所述关键字匹配单元为TCAM芯片,或者二级TCAM芯片,或者最长前缀匹配芯片;
当所述关键字匹配单元为最长前缀匹配芯片时,包括:
并行比较器,用于接收所述关键字,将所述关键字和所述前缀/掩码进行并行比较,将所有的匹配项地址输出到优先级解码器;
所述优先级解码器,用于接收所述匹配项地址,根据所述匹配项地址选择匹配的前缀/掩码。
13.根据权利要求12所述的QinQ报文处理装置,其特征在于,所述并行比较器,还用于根据前缀的长度存储所述前缀/掩码。
14.根据权利要求8至10中任意一项所述的QinQ报文处理装置,其特征在于,所述装置还包括接入表生成模块,用于生成QinQ接入表,其中,所述QinQ接入表的表项包括:前缀/掩码以及控制信息。
15.根据权利要求8至13中任意一项所述的QinQ报文处理装置,其特征在于,所述匹配表项的控制信息为下一跳信息,所述报文操作模块对所述QinQ报文进行转发操作;
或者,
所述匹配表项的控制信息为QinQ报文终结信息,所述报文操作模块对所述QinQ报文进行QinQ终结操作。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009101316250A CN101510855B (zh) | 2009-04-10 | 2009-04-10 | 一种QinQ报文的处理方法和装置 |
US12/757,735 US20100260188A1 (en) | 2009-04-10 | 2010-04-09 | Method and device for processing qinq packet |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009101316250A CN101510855B (zh) | 2009-04-10 | 2009-04-10 | 一种QinQ报文的处理方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101510855A true CN101510855A (zh) | 2009-08-19 |
CN101510855B CN101510855B (zh) | 2011-06-15 |
Family
ID=41003121
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009101316250A Expired - Fee Related CN101510855B (zh) | 2009-04-10 | 2009-04-10 | 一种QinQ报文的处理方法和装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20100260188A1 (zh) |
CN (1) | CN101510855B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012159311A1 (zh) * | 2011-06-29 | 2012-11-29 | 华为技术有限公司 | 一种tcam表项的设置方法及装置 |
CN102932342A (zh) * | 2012-10-26 | 2013-02-13 | 华为技术有限公司 | 实现隔离多用户虚拟局域网的方法及网络设备 |
CN103368851A (zh) * | 2013-07-22 | 2013-10-23 | 武汉烽火网络有限责任公司 | 基于资源复用的Openflow流表存储优化方法 |
CN105656784A (zh) * | 2014-11-13 | 2016-06-08 | 中兴通讯股份有限公司 | 一种vlan转换规则的查找方法及装置 |
CN105656838A (zh) * | 2014-11-11 | 2016-06-08 | 江苏威盾网络科技有限公司 | 一种基于mac地址的二层隧道协议报文安全传输方法 |
CN107566276A (zh) * | 2017-10-24 | 2018-01-09 | 盛科网络(苏州)有限公司 | 一种精确过滤pon业务下行泛洪报文的方法及装置 |
CN111682997A (zh) * | 2020-05-15 | 2020-09-18 | 烽火通信科技股份有限公司 | 基于位图表的以太网vlan段流分类方法及系统 |
CN111865803A (zh) * | 2020-06-01 | 2020-10-30 | 锐捷网络股份有限公司 | 基于evpn的路由处理方法及装置 |
WO2021088802A1 (zh) * | 2019-11-07 | 2021-05-14 | 中兴通讯股份有限公司 | 多业务转发方法、交换机、电子设备及可读介质 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9860188B2 (en) * | 2011-12-22 | 2018-01-02 | International Business Machines Corporation | Flexible and scalable enhanced transmission selection method for network fabrics |
CN102647325B (zh) * | 2012-03-23 | 2014-11-26 | 杭州华三通信技术有限公司 | 一种实现QinQ终结的方法和装置 |
CN111614632B (zh) * | 2020-04-30 | 2022-06-14 | 深圳震有科技股份有限公司 | 一种用户数据包的隔离方法、系统及存储介质 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6208649B1 (en) * | 1998-03-11 | 2001-03-27 | Cisco Technology, Inc. | Derived VLAN mapping technique |
US7586915B1 (en) * | 2003-10-23 | 2009-09-08 | Cisco Technology, Inc. | Technique for coupling entities via virtual ports |
US7787471B2 (en) * | 2003-11-10 | 2010-08-31 | Broadcom Corporation | Field processor for a network device |
US7764688B2 (en) * | 2004-01-20 | 2010-07-27 | Nortel Networks Limited | Ethernet differentiated services |
CN100505746C (zh) * | 2004-02-07 | 2009-06-24 | 华为技术有限公司 | 实现虚拟租用线的方法 |
US7492763B1 (en) * | 2004-07-16 | 2009-02-17 | Applied Micro Circuits Corporation | User-specified key creation from attributes independent of encapsulation type |
CN1838627B (zh) * | 2005-03-22 | 2010-04-28 | 杭州华三通信技术有限公司 | 一种实现QinQ接入的方法 |
US7586895B2 (en) * | 2005-04-01 | 2009-09-08 | Cisco Technology, Inc. | Performing extended lookups on MAC-based tables including level 3 multicast group destination addresses |
CN1863133A (zh) * | 2005-07-18 | 2006-11-15 | 华为技术有限公司 | 报文转发方法及装置 |
US20100238813A1 (en) * | 2006-06-29 | 2010-09-23 | Nortel Networks Limited | Q-in-Q Ethernet rings |
US8085790B2 (en) * | 2006-07-14 | 2011-12-27 | Cisco Technology, Inc. | Ethernet layer 2 protocol packet switching |
CN100459587C (zh) * | 2006-11-02 | 2009-02-04 | 华为技术有限公司 | 一种实现灵活QinQ的方法及设备 |
IL190433A (en) * | 2007-03-26 | 2012-07-31 | Marvell Israel Misl Ltd | System and method for adjusting information pack labels |
CN101106512B (zh) * | 2007-09-03 | 2010-07-07 | 华为技术有限公司 | 一种QinQ终结配置的处理方法和设备 |
-
2009
- 2009-04-10 CN CN2009101316250A patent/CN101510855B/zh not_active Expired - Fee Related
-
2010
- 2010-04-09 US US12/757,735 patent/US20100260188A1/en not_active Abandoned
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9330760B2 (en) | 2011-06-29 | 2016-05-03 | Huawei Technologies Co., Ltd. | Method and apparatus for setting TCAM entry |
CN102986177A (zh) * | 2011-06-29 | 2013-03-20 | 华为技术有限公司 | 一种tcam表项的设置方法及装置 |
WO2012159311A1 (zh) * | 2011-06-29 | 2012-11-29 | 华为技术有限公司 | 一种tcam表项的设置方法及装置 |
CN102986177B (zh) * | 2011-06-29 | 2015-03-11 | 华为技术有限公司 | 一种tcam表项的设置方法及装置 |
CN102932342A (zh) * | 2012-10-26 | 2013-02-13 | 华为技术有限公司 | 实现隔离多用户虚拟局域网的方法及网络设备 |
CN103368851A (zh) * | 2013-07-22 | 2013-10-23 | 武汉烽火网络有限责任公司 | 基于资源复用的Openflow流表存储优化方法 |
CN103368851B (zh) * | 2013-07-22 | 2016-03-23 | 武汉烽火网络有限责任公司 | 基于资源复用的Openflow流表存储优化方法 |
CN105656838A (zh) * | 2014-11-11 | 2016-06-08 | 江苏威盾网络科技有限公司 | 一种基于mac地址的二层隧道协议报文安全传输方法 |
CN105656784A (zh) * | 2014-11-13 | 2016-06-08 | 中兴通讯股份有限公司 | 一种vlan转换规则的查找方法及装置 |
CN107566276A (zh) * | 2017-10-24 | 2018-01-09 | 盛科网络(苏州)有限公司 | 一种精确过滤pon业务下行泛洪报文的方法及装置 |
WO2021088802A1 (zh) * | 2019-11-07 | 2021-05-14 | 中兴通讯股份有限公司 | 多业务转发方法、交换机、电子设备及可读介质 |
CN111682997A (zh) * | 2020-05-15 | 2020-09-18 | 烽火通信科技股份有限公司 | 基于位图表的以太网vlan段流分类方法及系统 |
CN111865803A (zh) * | 2020-06-01 | 2020-10-30 | 锐捷网络股份有限公司 | 基于evpn的路由处理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
US20100260188A1 (en) | 2010-10-14 |
CN101510855B (zh) | 2011-06-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101510855B (zh) | 一种QinQ报文的处理方法和装置 | |
US8792497B2 (en) | Method and apparatus for performing link aggregation | |
CN105830406A (zh) | 用于支持软件定义网络中的灵活查找关键字的方法、设备和系统 | |
KR100927126B1 (ko) | 패킷 전송 속도를 개선한 mpls 네트워크의 입구 노드및 출구 노드와, mpls 네트워크 시스템의 패킷 전송속도 개선 방법 | |
WO2013143472A1 (en) | Forwarding packets in an edge device | |
CN102238083A (zh) | 用于适配分组处理流水线的系统和方法 | |
CN101573913A (zh) | 用于多播路由选择的方法和设备 | |
CN101355487B (zh) | 一种标签分发方法及装置 | |
CN107968749A (zh) | 实现QinQ路由终结的方法、交换芯片及交换机 | |
CN100364289C (zh) | 在基于弹性分组环的网络中实现二层设备互连的方法 | |
CN106713144A (zh) | 一种报文出口信息的读写方法及转发引擎 | |
CN100559772C (zh) | 混合型虚拟私有网络系统和骨干网边缘设备及其配置方法 | |
CN103701679A (zh) | 一种实现vlan转换的方法 | |
CN103502985A (zh) | 一种数据处理的方法、装置及系统 | |
CN112202670A (zh) | 一种SRv6段路由转发方法及装置 | |
US8929366B2 (en) | Method and apparatus for transporting packets with specific traffic flows having strict packet ordering requirements over a network using multipath techniques | |
CN102014065A (zh) | 报文包头的解析方法、包头解析预处理装置和网络处理器 | |
US7394810B2 (en) | Layer 2 switch and method of processing expansion VLAN tag of layer 2 frame | |
CN102340446B (zh) | VPLS网络中E-tree业务的实现方法及PE设备 | |
CN101459592B (zh) | 供应商边缘设备之间传送报文的方法、系统及设备 | |
CN108183858B (zh) | 一种路由引入方法和装置 | |
CN113726653B (zh) | 报文处理方法及装置 | |
CN102263679B (zh) | 一种处理源角色信息的方法和转发芯片 | |
CN109218176B (zh) | 一种报文处理的方法及装置 | |
CN103986714B (zh) | 将总线控制网络接入avb网络的代理实现方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20170818 Address after: 201, room 1, building A, No. 518053, front Bay Road, Qianhai, Shenzhen Shenzhen cooperation zone, Guangdong, China Patentee after: Shenzhen Zhitong World Technology Service Co. Ltd. Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Patentee before: Huawei Technologies Co., Ltd. |
|
TR01 | Transfer of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20110615 Termination date: 20200410 |
|
CF01 | Termination of patent right due to non-payment of annual fee |