实现双VLAN交叉转发的方法及装置转让专利

申请号 : CN201210028693.6

文献号 : CN102594674B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 黄元波杨彦波鲁鹏左越

申请人 : 烽火通信科技股份有限公司

摘要 :

本发明公开了一种在网桥中实现双VLAN交叉转发的方法及装置,该方法包括以下步骤:A10、配置VLAN转换表以及VLAN功能配置表,VLAN转换表用于将数据流携带的SVID和CVID转换为INTER_SVID和INTER_CVID;A20、配置VLAN交换模式配置表,根据VLAN交换模式配置表确定输入的数据流的转发模式,如果是传统网桥交换业务则按照传统网桥处理;否则执行步骤A30;A30、配置VLAN交叉连接表,根据各输入数据流的查找信息在VLAN交叉连接表查找相应的结果信息,如果找到则按结果信息将该数据流转发,否则按传统网桥方式处理。本发明,可以直接根据接入点的链路信息进行转发,实现点到多点的交叉连接,并基于SVID或者SVID+CVID灵活的实现不同颗粒度的交叉转发;可以根据SVID、CVID进行汇聚,完成多点到点的VLAN交叉设定。

权利要求 :

1.实现双VLAN交叉转发的方法,其特征在于,包括以下步骤:

A10、根据实际应用场景配置VLAN转换表以及各端口的VLAN功能配置表,并启动对应的查找引擎进行查找和数据输出路径的判断,所述VLAN功能配置表用于设定输入的数据流是否激活相应的端口进行VLAN转换表的查找以及查找方式,所述查找方式是指基于输入端口、数据流携带的业务虚拟局域网标识符SVID和客户虚拟局域网标识符CVID进行VLAN转换表的查找;所述VLAN转换表用于将数据流携带的SVID和CVID转换为业务虚拟局域网标识符INTER_SVID和客户虚拟局域网标识符INTER_CVID;

所述VLAN功能配置表包括Vlan_Translate_En和Vlan_Translate_Type两个参数,所述Vlan_Translate_En定义本端口输入的数据流是否激活VLAN转换表的查找,所述Vlan_Translate_Type定义此端口输入的数据流进行VLAN转换表查找的参数类型,所述参数类型包括以下几种:类型0:基于输入端口进行查找,对于此类型,从输入端口输入的任何数据流都会被定义为具备相同的内部处理VLAN,此时查找VLAN转换表的索引为输入端口;

类型1:基于输入端口和SVID,对于此类型,从输入端口输入的数据流根据自身携带的SVID转换为新的INTER_SVID和INTER_CVID,此时查找VLAN转换表的索引为输入端口+SVID;

类型2:基于输入端口+SVID+CVID,对于此类型,从输入端口输入的数据流根据自身携带的SVID和CVID转换为新的INTER_SVID和INTER_CVID,此时查找VLAN转换表的索引为输入端口+SVID+CVID;

步骤A10中,对于从一个端口输入的数据流,首先获取本端口的Vlan_Translate_En和Vlan_Translate_Type,然后根据Vlan_Translate_En和Vlan_Translate_Type参数指定的方式进行查表,得到INTER_SVID和INTER_CVID参数,将数据流中的SVID和CVID转换为INTER_SVID和INTER_CVID;

A20、根据实际应用场景配置VLAN交换模式配置表,并启动对应的查找引擎进行查找和数据输出路径的判断;根据VLAN交换模式配置表的查找结果确定输入的数据流是传统网桥交换业务还是交叉连接业务,如果是传统网桥交换业务则按照传统网桥的处理模式进行处理;如果是交叉连接业务,则执行步骤A30;

A30、配置由多条转发条目组成的VLAN交叉连接表,并启动对应的查找引擎进行查找和数据输出路径的判断;根据各输入数据流的查找信息在VLAN交叉连接表查找相应的结果信息,所述查找信息包括交叉连接类型、输入端口号和INTER_SVID、INTER_CVID,如果找到则按结果信息将该数据流转发,否则按传统网桥方式处理。

2.如权利要求1所述实现双VLAN交叉转发的方法,其特征在于,步骤A10中,根据数据流的输入端口,或者输入端口与数据流携带的SVID,或者输入端口与数据流携带的SVID和CVID确定输入数据流的转发模式。

3.如权利要求1所述实现双VLAN交叉转发的方法,其特征在于,所述结果信息包括此数据流的发送端口映射信息和此数据流在转发端口的队列映射信息,其中发送端口映射信息为交换机对应的所有端口的一个比特映射表port_bit_MAP,或者定义一个点到多点的交叉连接,队列映射信息QUEUE_COS的位宽根据每个输出端口的队列数目进行确定;

如果根据交叉连接业务参数vlan_Cross_Type击中了VLAN交叉连接表的一个条目,那么输入的数据流会按照转发信息定义的队列映射信息和发送端口映射信息送到对应的输出端口的队列中,如果没有击中,则数据流会被丢弃或者送到传统网桥处理单元。

4.如权利要求1所述实现双VLAN交叉转发的方法,其特征在于,在进行VLAN转换表配置时,可以将在交叉连接业务中具有相同转发信息的不同数据流配置相同的INTER_SVID和INTER_CVID,其他数据流的INTER_SVID和INTER_CVID应该和数据流本身所携带的SVID和CVID相同。

5.实现权利要求1所述方法的装置,其特征在于,包括VLAN功能配置表查找引擎单元、VLAN转换表查找引擎单元、VLAN交换模式配置表查找引擎单元和VLAN交叉连接配置表查找引擎单元;

上述所有引擎协同流水工作,当输入的数据包达到20字节时,得到数据包的SVID和CVID参数,激活上述VLAN功能配置表查找引擎单元,当输入的数据包达到21字节时,查找到有效结果并激活VLAN转换表查找引擎单元,当输入的数据包达到23字节时,VLAN转换表查找到有效结果并激活VLAN交换模式配置表查找引擎单元,当输入的数据包达到24字节时,VLAN交换模式配置表查找到有效结果并激活VLAN交叉连接配置表查找引擎单元,当输入的数据包达到26个字节时,由VLAN交叉连接配置表查找到最终结果,完成所有查找处理工作。

说明书 :

实现双VLAN交叉转发的方法及装置

技术领域

[0001] 本发明涉及数据通信技术领域中的以太网交换技术,具体涉及实现双VLAN交叉转发的方法及装置,可用于TR101中定义的以太网汇聚网和接入结点(例如当接入结点采用GPON技术时),也可用于其它需要根据VLAN来进行数据流交换的场所。

背景技术

[0002] 随着数据通信技术的迅速发展,多种多样的网络应用不断出现,例如:基本的互连网应用、娱乐视频(包括广播电视,视频点播等)、视频会议、VOIP(网络电话)、游戏以及各种商业应用等。然而,在实际的网络应用中经常会遇到这样的情况:在上行方向(即从客户侧到网络侧)同一类网络服务(例如IPTV)大多对应一个特定的宽带网关(服务器),这一类业务的数据流(例如IPTV应用的上行控制信息)都要被转发到特定的宽带网关;在下行方向(即从网络侧到客户侧)如果某个客户只从一个接入端口接入,那么可以将属于此客户的数据流直接转发到这个接入端口;或者某些商业用户希望自己的数据流被直接转发到网络的某个(或某些)结点,这些数据流类似于点到点(或多点到点)的连接。对于这种点到点(或多点到点)的连接服务,如果通过传统的基于MAC地址的学习查找进行转发,可能会占用大量的地址学习数据库空间。
[0003] 为了解决这种问题,TR101和TR156提出了VLAN交叉连接(VLAN CROSS CONNECT)技术。用VLAN标签携带链路信息,在数据交换部分根据数据流携带的VLAN标签和输入端口来决定数据流的转发路径(根据输入端口和VLAN标签进行数据交换),这个用于进行数据转发的VLAN标签可以看作VLAN交叉连接处理标志符(VXC-Identifier)。VLAN交叉连接处理标志符可以是CVID、SVID或者SVID和CVID的组合,只要输入端口唯一就可以。当采用SVID和CVID组合作为VXC-Identifier时,每个端口最多可建立4096×4096个转发路径。可见,VLAN交叉连接技术具有以下优点:
[0004] 1)减少了地址学习表条目的使用数量。
[0005] 2)是基于链路的转发,所以容易提供端到端的QOS和带宽保证,容易对传输路径进行保护。
[0006] 3)可以和传统的基于MAC地址学习和查找的桥接技术共存,可以通过数据流携带的SVID选择对数据流进行VLAN交叉连接处理,或者进行传统桥接处理。
[0007] 为了满足用户更高的要求,IEEE在IEEE802.1ad中又提出了双VLAN(Double VLAN)的概念,定义了服务提供商VLAN(S-VLAN)和客户VLAN(C-VLAN)的双层VLAN的结构,S-VLAN对应于服务提供商VLAN标签(S-TAG),C-VLAN对应于客户VLAN标签(C-TAG),服务提供商使用S-VLAN,客户使用C-VLAN。定义了服务提供商网桥(Provider Bridge)和客户网桥(Customer Bridge)的架构,客户网桥只对C-VLAN敏感,服务提供商网桥只对S-VLAN敏感。这种双VLAN结构大大扩展了VLAN的空间,扩展了以太网技术的应用。
[0008] 为了适应网络建设的新需求,DSL Forum(数字用户线论坛,制定DSL网络架构的组织)相应地在TR101中定义了采用以太网技术来构建接入汇聚网的技术标准。在该标准中采用IEEE802.1ad中定义的双VLAN进行业务的汇聚,即将具有某种特性(可以理解为同一种业务)的数据流汇聚成一个VLAN。例如可以将不同客户中某些相似的应用汇聚成一个VLAN,并作为SVID加到数据流上,这种业务流被称为N:1VLAN;还可以将单个客户的某种业务流单独标记为一个VLAN,并作为SVID加到数据流上,这种业务流称为1:1VLAN。由于客户一般对应一个端口或一个虚端口组,所以汇聚后,数据流携带两个VLAN:CVID和SVID,其中CVID携带客户消息,SVID携带业务消息。因为客户消息实际上对应端口信息。所以输入数据流的VLAN中就包含了输入端口信息和业务信息(如VOIP、IPTV)。在网络架构中接入结点(ACCESS NODE)采用服务提供商边缘网桥(Provider Edge Bridge),对SVLAN和部分CVLAN敏感,汇聚网(Aggregation Network)采用服务提供商网桥(Provider Bridge),只对SVLAN敏感。DSL Forum在TR156进一步定义了采用TR101架构,将GPON定义为接入结点,用GPON(G比特无源光网络)作为接入技术时的具体要求。
[0009] 但是,现有支持VLAN交叉连接的交换机存在以下一些问题:
[0010] (1)只支持双向VLAN点到点交叉连接,无法作到一个转发方向根据VLAN进行交叉连接,另一个方向根据地址查找进行转发。无法支持点到多点的交叉连接。
[0011] (2)交叉颗粒度不能灵活配置。对于采用SVID和CVID的组合进行交叉连接时,存在支持颗粒度的问题。即根据SVID确定采用SVID和CVID的组合进行交叉连接后,所有此SVID下的数据流都必须基于SVID和CVID组合进行交叉连接,而不能再采用传统网桥交换。
[0012] 由此可见,现有的双向VLAN交叉连接方法和装置不能很好地满足用户的使用要求。

发明内容

[0013] 针对现有技术存在的缺陷,本发明所采用的技术方案是提供一种实现双VLAN交叉转发的方法,包括以下步骤:
[0014] A10、根据实际应用场景配置VLAN转换表以及各端口的VLAN功能配置表并启动对应的查找引擎进行查找和数据输出路径的判断,所述VLAN功能配置表用于设定输入的数据流是否激活VLAN转换表的查找以及查找方式,所述查找方式是指基于输入端口、数据流携带的SVID和CVID中的哪些字段进行VLAN转换表的查找;所述VLAN转换表用于将数据流携带的SVID和CVID转换为INTER_SVID和INTER_CVID;
[0015] A20、根据实际应用场景配置VLAN交换模式配置表,并启动对应的查找引擎进行查找和数据输出路径的判断;根据VLAN交换模式配置表的查找结果确定输入的数据流是传统网桥交换业务还是交叉连接业务,如果是传统网桥交换业务则按照传统网桥的处理模式进行处理;如果是交叉连接业务,则执行步骤A30;
[0016] A30、配置由多条转发条目组成的VLAN交叉连接表,并启动对应的查找引擎进行查找和数据输出路径的判断;根据各输入数据流的查找信息在VLAN交叉连接表查找相应的结果信息,所述查找信息包括交叉连接类型、输入端口号和INTER_SVID、INTER_CVID,如果找到则按结果信息将该数据流转发,否则按传统网桥方式处理。
[0017] 在上述方法中,步骤A10中,根据数据流的输入端口,或者输入端口与数据流携带的SVID,或者输入端口与数据流携带的SVID和CVID确定输入数据流的转发模式。
[0018] 在上述方法中,所述VLAN功能配置表包括Vlan_Translate_En和Vlan_Translate_Type两个参数,所述Vlan_Translate_En定义本端口输入的数据流是否激活VLAN转换表的查找,所述Vlan_Translate_Type定义此端口输入的数据流进行VLAN转换表查找的参数类型,所述参数类型包括以下几种:
[0019] 类型0:基于输入端口进行查找,对于此类型,从输入端口输入的任何数据流都会被定义为具备相同的内部处理VLAN,此时查找VLAN转换表的索引为输入端口;
[0020] 类型1:基于输入端口和SVID,对于此类型,从输入端口输入的数据流根据自身携带的SVID转换为新的INTER_SVID和INTER_CVID,此时查找VLAN转换表的索引为输入端口+SVID;
[0021] 类型2:基于输入端口+SVID+CVID,对于此类型,从输入端口输入的数据流根据自身携带的SVID和CVID转换为新的INTER_SVID和INTER_CVID,此时查找VLAN转换表的索引为输入端口+SVID+CVID;
[0022] 步骤A10中,对于从一个端口输入的数据流,首先获取本端口的Vlan_Translate_En和Vlan_Translate_Type,然后根据Vlan_Translate_En和Vlan_Translate_Type参数指定的方式进行查表,得到INTER_SVID和INTER_CVID参数,将数据流中的SVID和CVID转换为INTER_SVID和INTER_CVID。
[0023] 在上述方法中,所述结果信息包括此数据流的发送端口映射信息和此数据流在转发端口的队列映射信息,其中发送端口映射信息为交换机对应的所有端口的一个比特映射表port_bit_MAP,或者定义一个点到多点的交叉连接,队列映射信息QUEUE_COS的位宽根据每个输出端口的队列数目进行确定;
[0024] 如果根据vlan_Cross_Type击中了VLAN交叉连接表的一个条目,那么输入的数据流会按照转发信息定义的队列映射信息和发送端口映射信息送到对应的输出端口的队列中,如果没有击中,则数据流会被丢弃或者送到传统网桥处理单元。
[0025] 在上述方案中,在进行VLAN转换表配置时,可以将在交叉连接业务中具有相同转发信息的不同数据流配置相同的INTER_SVID和INTER_CVID,其他数据流的INTER_SVID和INTER_CVID应该和数据流本身所携带的SVID和CVID相同。
[0026] 本发明还提供了一种实现上述方法的装置,包括VLAN功能配置表查找引擎单元、VLAN转换表查找引擎单元、VLAN交换模式配置表查找引擎单元和VLAN交叉连接配置表查找引擎单元,上述所有引擎协同流水工作,在输入数据包的20字节激活上述引擎中的第一个引擎,在数据帧的26个字节完成所有查找处理工作。
[0027] 本发明具有如下有益效果:
[0028] (1)、可以直接根据接入点的链路信息进行转发,可以不启动地址学习,这样就可以节省数据库地址空间。
[0029] (2)、可以基于SVID或者SVID+CVID灵活的实现不同颗粒度的交叉转发。
[0030] (3)、可以对输入帧的SVID,CVID进行汇聚处理,可以完成多点到点的VLAN交叉设定。
[0031] (4)、可以实现点到多点的交叉连接。

附图说明

[0032] 图1为本发明提供的实现VLAN交叉转发的装置结构示意图。

具体实施方式

[0033] 下面结合说明书附图和具体实施例对本发明作出详细的说明。
[0034] 本发明中,以下术语如下定义:
[0035] SVID:输入数据流上携带的业务(外层)虚拟局域网标识符,根据数值的不同,可以表示为SVID1,SVID2,SVID3等;
[0036] CVID:输入数据流携带的客户(内层)虚拟局域网标识符,根据数值的不同,可以表示为CVID1,CVID2,CVID3等;
[0037] INTER_SVID:本发明定义的业务(外层)虚拟局域网标识符;
[0038] INTER_CVID:本发明定义的客户(内层)虚拟局域网标识符;
[0039] 本实施例以一个用于8端口交换机的交叉转发装置为例进行说明,定义以下数据流:
[0040] 数据流1,从1号端口输入,携带SVID1,需要进行传统桥接,可以根据地址学习,数据送往其他任何端口。
[0041] 数据流2,从1号端口输入携带SVID2和CVID2,需要进行透明VLAN交叉连接,并且不兼容传统桥接。数据送到端口2的0号队列。
[0042] 数据流3,从1号端口输入携带SVID3和CVID4,需要进行VLAN交叉连接,数据分别送到端口3、4的7号队列,SVID3空间下的CVID不等于CVID4的业务按照传统桥接处理。
[0043] 数据流4,从1号端口输入携带SVID4和CVID6,需要进行VLAN交叉连接,数据分别送到端口3、4的7号队列,SVID4空间的CVID不等于CVID6的业务按照传统桥接处理。
[0044] 如图1、图2所示,本发明提供的实现双VLAN交叉转发的方法包括以下步骤:
[0045] A10、根据实际应用场景配置VLAN转换表以及各端口的VLAN功能配置表,然后启动对应的查找引擎进行查找和数据输出路径的判断。
[0046] VLAN功能配置表中包括Vlan_Translate_En和Vlan_Translate_Type两个变量以及查找信息和结果信息。所有端口共用一个VLAN转换表,查找信息为{Vlan_Translate_Type、输入端口、SVID和CVID},结果信息为{INTER_SVID,INTER_CVID}[0047] 所述Vlan_Translate_En定义本端口输入的数据流是否激活VLAN转换表的查找,将此参数配置为激活状态。所述Vlan_Translate_Type定义此端口输入的数据流进行VLAN转换表查找的参数类型,所述参数类型包括以下几种:
[0048] 类型0:基于输入端口进行查找,对于此类型,从输入端口输入的任何数据流自身携带的SVID,CVID都会被忽略,此时查找VLAN转换表的索引为输入端口;
[0049] 类型1:基于输入端口和SVID,对于此类型,从输入端口输入的数据流根据自身携带的SVID转换为新的INTER_SVID和INTER_CVID,此时查找VLAN转换表的索引为输入端口+SVID;
[0050] 类型2:基于输入端口+SVID+CVID,对于此类型,从输入端口输入的数据流根据自身携带的SVID和CVID转换为新的INTER_SVID和INTER_CVID,此时查找VLAN转换表的索引为输入端口+SVID+CVID。
[0051] 在进行VLAN转换表配置时,可以将在交叉连接业务中具有相同转发信息的不同数据流配置相同的INTER_SVID和INTER_CVID,其他数据流的INTER_SVID和INTER_CVID应该和数据流本身所携带的SVID和CVID相同。
[0052] VLAN功能配置表用于设定输入的数据流是否激活相应的端口进行VLAN转换表查找以及查找方式。
[0053] 所述查找方式是指根据数据流的输入端口,或者输入端口与数据流携带的SVID,或者输入端口与数据流携带的SVID和CVID确定输入数据流的转发模式是传统网桥交换业务还是交叉连接业务。这样,可以将传统网桥交换业务基于端口,或者基于SVLAN区域进行识别,使传统网桥交换业务平面和VLAN交叉业务平面同时激活,互不干扰。
[0054] VLAN转换表的查找流程如下:输入数据流会激活VLAN转换表查找引擎,VLAN转换表查找引擎首先获取输入数据流对应输入端口的Vlan_Translate_En和Vlan_Translate_Type变量,如果Vlan_Translate_En使能,则根据Vlan_Translate_Type定义的参数查找VLAN转换表,如果找到则用VLAN转换表中的INTER_SVID和INTER_CVID替换原数据流携带的SVID和CVID,如果没有找到,则认为查找不匹配,使用数据流自身携带的SVID和CVID作为INTER_SVID,INTER_CVID。
[0055] 其中,具有相同转发信息的不同数据流可以根据在VLAN转换表的配置转换为相同的INTER_SVID和INTER_CVID,上述实施例中,数据流3、4定义为一条交叉连接,则可以分配相同的INTER_SVID和INTER_CVID。
[0056] 针对本实施例,首先使能1号端口Vlan_Translate_En参数,对输入的数据流进行vlan转换表查找,Vlan_Translate_Type为类型2(基于端口、SVID和CVID进行查找),在vlan转换表中配置以下条目。
[0057] 条目1的查找信息为:Vlan_Translate_Type、输入端口、SVID3和CVID3信息,结果信息为INTER_SVID0和INTER_CVID0。
[0058] 条目2的查找信息为:Vlan_Translate_Type、输入端口、SVID4和CVID6信息,结果信息为INTER_SVID0和INTER_CVID0。
[0059] 条目3的查找信息为:Vlan_Translate_Type、输入端口、SVID2和CVID2信息,结果信息为INTER_SVID2和INTER_CVID2。
[0060] VLAN转换表查找引擎对VLAN转换表进行查找,
[0061] 数据流1没有击中任何查找条目,INTER_SVID,INTER_CVID等于数据流本身的SVID,CVID。
[0062] 数据流2击中了条目3,INTER_SVID=INTER_SVID2,INTER_CVID=INTER_CVID2;
[0063] 数据流3击中了条目1,INTER_SVID=INTER_SVID0,INTER_CVID=INTER_CVID0;
[0064] 数据流4击中了条目2,INTER_SVID=INTER_SVID0,INTER_CVID=INTER_CVID0;
[0065] A20、根据实际应用场景配置VLAN交换模式配置表,并启动对应的查找引擎进行查找和数据输出路径的判断;根据VLAN交换模式配置表的查找结果确定输入的数据流的工作模式(是传统网桥交换业务还是交叉连接业务),如果是传统网桥交换业务按照传统网桥的处理模式进行处理,如果是交叉连接业务,则执行步骤A30。
[0066] VLAN交换模式配置表的表项内容包含以下参数:
[0067] 查找信息:{INTER_SVID}
[0068] 结果信息:{vlan_Cross_Type,vlan_Cross_drop}
[0069] 结果信息参数定义如下表所示:
[0070]vlan_Cross_Type vlan_Cross_drop 数据流工作模式定义
0 0 传统桥接模式
0 1 传统桥接模式
1 0 VLAN交叉连接模式
1 1 兼容模式
[0071] 输入数据流会触发VLAN交换模式配置表的查找引擎,得到此表的结果信息,送到后续对应的查找处理引擎。
[0072] 本具体实施例中,对应的VLAN交换模式配置表如下:
[0073]
[0074] A30、配置由多条转发条目组成的VLAN交叉连接表,并启动对应的查找引擎进行查找和数据输出路径的判断,根据各输入数据流的查找信息在VLAN交叉连接表查找相应的结果信息,确定数据流最后的转发路径。此步骤对应的VLAN交叉连接表的表项包含以下参数:
[0075] 查找信息为{INTER_SVID、INTER_CVID}
[0076] 结果信息为{PORT_BIT_MAP,QUEUE_COS}
[0077] 其中参数PORT_BIT_MAP消息为交换机对应的所有端口的一个比特映射表。指示输入的数据流可以转发到哪些输出端口。
[0078] 参数QUEUE_COS为队列映射消息,位宽根据每个输出端口的队列数目进行确定,可以为3比特位宽对应8个队列,也可以使用大于3比特的位宽支持更多的队列。
[0079] 从A30步骤输入的数据流包含以下参数{vlan_Cross_Type,vlan_Cross_drop},如果vlan_Cross_Type等于1,则VLAN交叉连接表查找引擎被激活。查找引擎根据查找信息在VLAN交叉连接表查找匹配项。如果击中,则得到PORT_BIT_MAP,QUEUE_COS,后续可以根据此信息进行转发处理。
[0080] 如果没有击中,则分析此数据流是否是工作在兼容模式,如果为兼容模式,则此数据流会送到传统桥接引擎进行处理。否则此数据流会被丢弃。
[0081] 本具体实施例中,对应的VLAN交叉连接表配置如下:
[0082]
[0083] 本发明还提供了一种实现上述方法的装置,该装置可以实现上述双VLAN交叉转发,包括VLAN功能配置表和对应查找引擎,VLAN转换表和对应查找引擎,VLAN交换模式配置表和对应查找引擎,VLAN交叉连接配置表和对应查找引擎。上述所有引擎协同流水工作,在输入数据包的20字节激活上述引擎中的第一个引擎,在数据帧的26个字节完成所有查找处理工作。
[0084] 参见图1,对于从路径1输入的数据流,因为是以太网数据包,一个数据包的长度在64字节到1518字节之间,其中SVLAN和CVLAN在13到20字节。当一个输入的数据包达到20字节后,提取出SVLAN区域和CVLAN区域,得到数据包的SVID和CVID参数。
[0085] 触发VLAN功能配置表查找引擎得到对应的查找结果,如果查找结果是不激活VLAN转换,则此数据包送到路径3,使用数据包自身的SVID进行VLAN交换模式配置表的查找。如果激活了VLAN转换表,则此数据包送到路径2,激活VLAN转换表的查找。VLAN功能配置表的条目数和整个装置的端口数一致。此表的查找采用基于端口的顺序查表。在电路的一个时钟周期可以完成相关的查找操作,在输入数据流的21字节,得到查找结果。
[0086] 参见图1,对于路径2,当一个输入的数据包达到21字节后,触发VLAN转换表查找引擎,VLAN转换表根据端口数目和应用场景的需要,条目数可以从1024到16M.此应用场景,可以设定条目数为4096条。
[0087] 为了使查表的电路实现更加方便,在具体电路实现时,首先利用{Vlan_Translate_Type、输入端口、SVID和CVID}构建一个KEY(查表关键字段)。对于8端口的交叉连接装置,此关键字段的位宽为29比特(Vlan_Translate_Type2比特,输入端口3比特,SVID12比特,CVID12比特)。将此KEY首部填0,扩展为32比特位宽,利用多项式CRC16(G(x)=x16+x15+x2+1),得到一个12比特的CRC_KEY,利用此CRC_KEY对VLAN转换表进行顺序查找,提取出VLAN转换表的条目内容:
[0088] 查找信息为{Vlan_Translate_Type、输入端口、SVID和CVID}
[0089] 结果信息为{INTER_SVID,INTER_CVID}
[0090] 如果key的内容和查找信息一致,则认为查找成功,转到路径4。否则查找失败,输出到路径9。
[0091] 上述查找需要经过CRC16的计算和顺序查找两个步骤,在电路的2个时钟周期可以完成相关的查找操作,在输入数据包的23字节,得到查找结果.
[0092] 所以路径4、路径9均在数据包的23字节输出有效结果。
[0093] 参见图1,对于路径3、4、9均送到VLAN交换模式配置表查找引擎。
[0094] 此查找引擎在数据包的23字节激活查找,VLAN交换模式配置表的条目数为4096条,采用顺序查找方式。查表使用的KEY在路径4为VLAN转换表输出的INTER_SVID,在路径3、9为数据包本身的SVID。在电路的一个时钟周期可以完成相关的查找操作。在输入数据流的24字节,得到查找结果。如果查找结果启动了VLAN交叉连接,则送到路径5,否则送到路径6。
[0095] 参见图1,对于路径5的输入数据帧,在数据帧的24字节,启动VLAN交叉连接配置表的查找。VLAN交叉连接配置表根据端口数目和应用场景的需要,条目数可以从1024到16M.此应用场景,可以设定条目数为4096条。
[0096] 为了使查表的电路实现更加方便,在具体电路实现时,首先利用查找信息{INTER_SVID,INTER_CVID}构建一个KEY(查表关键字段)。此关键字段的位宽为24比特(INTER_SVID12比特,INTER_CVID12比特)。利用多项式CRC16(G(x)=x16+x15+x2+1),得到一个12比特的CRC_KEY,利用此CRC_KEY对VLAN交叉连接配置表进行顺序查找,提取出条目内容:
[0097] 查找信息为{INTER_SVID、INTER_CVID}
[0098] 结果信息为{PORT_BIT_MAP,QUEUE_COS}
[0099] 如果key的内容和查找信息一致,则认为查找成功,转到路径8。如果查找不成功,但引擎工作在兼容模式,则转到路径7。否则数据包终结,不会送到后续处理电路。
[0100] 上述查找需要经过CRC16的计算和顺序查找两个步骤,在电路的2个时钟周期可以完成相关的查找操作,在输入数据包的26字节,得到最终的查找结果。
[0101] 上图的传统桥接和后续输出队列处理不属于本专利的阐述范围。
[0102] 本发明不局限于上述最佳实施方式,任何人应该得知在本发明的启示下作出的结构变化,凡是与本发明具有相同或相近的技术方案,均落入本发明的保护范围之内。