专利名称:在asic中进行组播报文转发的方法和装置的制作方法
技术领域:
本发明涉及网络通信领域,尤其涉及在ASIC(以太网交换芯片)中通过并行查找来实现组播报文的转发方法和装置。
背景技术:
在TRILL (Transparent Interconnection of Lots of Links,多链路半透明互联),PBB(Provider Backbone Bridge,运营商骨干桥接技术)及组播VPN(Virtual PrivateNetwork,虚拟专用网络)这类应用中,原始组播报文会封装在一个外层组播报文中进行传输。比如在TRILL和PBB中,原始的二层组播报文会封装在TRILL组播报文和backbone组播报文中。在组播VPN中,原始的三层组播报文会封装在IP组播报文中。
此时,对于一个网络设备来说,接收到这样封装过的报文后,一共有两个组播转发域,即基于外层的组播转发域和基于内层的组播转发域。其中基于外层的组播转发域的目的是转发到需要接收该报文的网络设备,基于内层的组播转发域的目的是把原始的组播报文转发到真正需要接收该报文的终端设备。基于这样的转发模型,其存在两次转发的过程,首先是外层组播的转发。当有本地接收成员的时候,需要解封装,然后基于内层组播报文再进行第二次转发。现有技术方案中,首先对外层报文进行第一次转发,确认有本地接收成员之后,需要把报文进行环回,然后再用内层报文进行又一遍转发逻辑过程,实现第二次的内层报文转发。然而这样的转发过程需要对报文进行内部环回处理,这样带来的问题之一就是降低了芯片的内部带宽,比如内部处理带宽是100G,对于需要环回的报文,其处理能力就变成了50G。
发明内容
本发明的目的在于提供一种在ASIC中进行组播报文转发的方法和装置,其通过外层组播信息和内层组播信息并行查表的方法,同时实现内层和外层组播成员的转发,以节省芯片的带宽,提高芯片带宽的利用率。为实现上述目的,本发明提出如下技术方案一种在ASIC中进行组播报文转发的方法,当网络设备接收到组播报文进行转发时,通过对外层组播信息和内层组播信息分别查表的方式,获得外层组播成员列表和内层组播成员列表,并分别进行外层组播报文和内层组播报文的转发。更进一步地,所述网络设备接收到组播报文进行转发的过程包括对接收到的报文进行解析,并获取报文的入接口信息;根据外层组播组信息和内层组播组信息,分别进行组播组查找;获取查找所得的外层组播组成员和内层组播组成员的复制信息并进行组播成员的复制;对复制得到的外层组播组成员,经过报文编辑后进行组播报文的转发;对复制得到的内层组播组成员,经过解封装及编辑处理后进行组播报文的转发。其中,所述获取报文入接口信息是根据报文接收端口的配置信息判断是否需要进行所述的组播组查找。所述组播组查找后获得一个组播成员链接表的入接口地址。所述组播成员的复制是根据第一个组播成员进入地址,获取该成员的复制信息且判断是否有下一个组播成员需要处理;当处理到最后一个组播成员的时候,完成组播成员的复制过程。所述组播报文包括通过TRILL,PBB或组播VPN封装的报文。本发明还提出一种在ASIC中进行组播报文转发的装置,其包括报文解析模块,用于对接收到的报文进行解析,得到后续处理的报文信息; 入接口信息获取模块,用于根据报文接收端口的配置信息判断对报文的后续处理;组播组查找模块,用于根据外层组播组信息和内层组播组信息同时进行查找;组播成员复制模块,用于根据组播成员的进入地址,获取组播成员的复制信息;解封装模块,用于对内层组播成员去掉外层报文字段的处理;以及报文编辑模块和报文转发模块,用于对报文进行编辑并转发。更进一步地,所述报文编辑模块和转发模块分别包括对外层组播成员进行报文编辑和转发的外层报文编辑模块和外层报文转发模块,以及对内层组播成员进行报文编辑和转发的内层报文编辑模块和内层报文转发模块。所述组播组查找模块的输出是一个组播成员的进入接口地址。所述报文解析模块中接收到的报文包括通过TRILL,PBB或组播VPN封装的报文。与现有技术相比,本发明提出的在ASIC中进行组播报文转发的方法和装置,其通过外层组播信息和内层组播信息并行查表的方法,直接获得外层组播和内层组播所有的成员列表,实现内层和外层组播的同时转发,使得节芯片内部的带宽得以最大限度的利用,同时克服了现有技术中由于环回带来的带宽消耗。
图I是本发明在ASIC中进行组播报文转发的网络示意图;图2是本发明在ASIC中进行组播报文转发的流程图;图3是本发明在ASIC中进行组播报文转发的模块图。
具体实施例方式下面将结合本发明的附图,对本发明实施例的技术方案进行清楚、完整的描述。本发明所揭示的在ASIC中进行组播报文转发的方法,用于在网络设备对通过TRILL, PBB或组播VPN封装的报文的转发。如图I所示的以太网中,其包括与网络连接的网络设备I和网络设备2,网络设备I上接有接收者I和接收者2,网络设备2上接有接收者3和接收者4。当该网络接收到TRILL,PBB或组播VPN报文并进行转发时,所述网络设备I和网络设备2即外层组播成员用于外层组播报文的转发;接收者1,接收者2,接收者3和接收者4即内层组播成员用于内层组播报文的转发。在网络设备I收到了 TRILL,PBB或组播VPN报文时,首先基于外层的组播组进行转发,其共有两个成员,即网络设备2和自己,转给网络设备2的报文不需要解封装;由于网络设备I自己也是外侧组播组成员,因此需要对报文进行解封装,然后再基于内层组播组进行转发给本地的内层组播组成员接收者I和接收者2。如图2所示,本发明在处理TRILL,PBB或组播VPN这类报文时,通过增加一次并行的查表过程,以同时获得外层组播和内层组播的所有成员列表,实现外层组播成员和内层组播成员对报文的同时转发,从而省去了对报文的环回处理过程。其具体处理过程包括对接收到的报文进行报文解析,获取报文的入接口信息,然后进行组播组查找及组播成员复制,对复制出来的组播成员中的外层成员列表进行报文编辑后进行报文转发,对内层成员列表则进行报文解封装后,再经过报文编辑后进行报文转发。具体来说,当图I中的网络设备I或网络设备2接收到一个TRILL,PBB或组播VPN报文后,首先进行报文解析,以获得后续处理中所需要的各种信息后,然后根据报文接 收端口的配置信息来决定是否需要进行后续的组播组查找,以及采用什么样的关键字进行查找。接下来,进行组播组查找,即根据外层组播组信息和内层组播组信息同时进行查找,因此可以同时获取外层组播组成员和内层组播组成员,然后获得一个组播成员链接表的进入接口地址。组播成员复制时,将对所有的外层成员列表和内层成员列表都进行复制处理,且根据第一个组播成员进入地址,获取该成员的复制信息,决定该成员后续的编辑行为。同时,会决定是否有下一个组播成员需要处理。当处理到最后一个组播成员的时候,当前链表为空,表示没有后续成员需要进行复制,即完成组播成员的复制过程。经过组播成员复制过程复制出来的组播成员,都有一套单独的编辑和转发信息。对于外层组播成员,只需要经过报文编辑处理,对报文进行简单的编辑如TTL,MAC地址的编辑后,然后根据转发信息进行转发。对于内层组播成员,首先需要经过解封装处理,以去掉外层报文字段,然后再经过对内层报文的编辑后进行转发。更优地,本发明中所述的对外层组播成员和内层组播成员的处理中,包括对外层组播成员和内层组播成员的分别进行处理的并行处理和以先处理外层组播成员,再处理内层组播成员的串行处理,且以先处理外层组播成员,再处理内层组播成员的方式更以实现。本发明中所描述的同时对外层组播报文和内层组播报文的转发处理及并行处理方式包括了这里说明的两种方式,并为了区别现有的环回处理方式进行的描述。本发明还揭示了一种在ASIC中实现组播解封装报文的转发装置,以通过一次并行的查表过程,同时实现对TRILL,PBB或组播VPN报文内层和外层组播成员的转发,如图3所示,该转发装置包括报文解析模块,入接口信息获取模块,组播组查找模块,组播成员复制模块,解封装模块,报文编辑模块以及报文转发模块。其中,报文解析模块用于对网络设备接收到报文进行解析,以获得后续处理所需要的各种信息;入接口信息获取模块用于根据报文接收端口的配置信息来决定是否需要进行后续的组播组查找,以及采用什么关键字进行查找。组播组查找模块用于根据外层组播组信息和内层组播组信息同时进行查找,以同时获取外层组播组成员和内层组播组成员,而通过组播组查找模块的输出是一个组播成员链接表的进入接口地址。组播成员复制模块用于根据第一个组播成员进入地址,获取该成员的复制信息,决定该成员后续的编辑行为,同时,会决定是否有下一个组播成员需要处理。当处理到最后一个组播成员的时候,当前链表为空,表示没有后续成员需要进行复制。解封装模块用于对经过组播成员复制模块复制后内层组播成员,将报文中的外层报文字段进行去除的处理。报文编辑模块和解封装模块分别包括对外层组播成员进行报文编辑和转发处理的外层报文编辑模块和外层报文转发模块,以及对内层组播成员进行报文编辑和转发处理的内层报文编辑模块和内层报文转发模块。所述外层报文编辑模块用于对外层组播成员的报文进行简单的编辑,如TTL,MAC 地址等的处理,所述外层报文转发模块根据报文转发信息进行报文的转发。所述内层报文编辑模块用于对内层组播成员的内层报文进行编辑;所述内层报文转发模块用于根据报文转发信息进行报文转发。本发明的技术内容及技术特征已揭示如上,然而熟悉本领域的技术人员仍可能基于本发明的教示及揭示而作种种不背离本发明精神的替换及修饰,因此,本发明保护范围应不限于实施例所揭示的内容,而应包括各种不背离本发明的替换及修饰,并为本专利申请权利要求所涵盖。
权利要求
1.一种在ASIC中进行组播报文转发的方法,其特征在于当网络设备接收到组播报文进行转发时,通过对外层组播信息和内层组播信息分别查表的方式,获得外层组播成员列表和内层组播成员列表,并分别进行外层组播报文和内层组播报文的转发。
2.根据权利要求I所述的方法,其特征在于,所述网络设备接收到组播报文进行转发的过程包括 对接收到的报文进行解析,并获取报文的入接口信息; 根据外层组播组信息和内层组播组信息,分别进行组播组查找; 获取查找所得的外层组播组成员和内层组播组成员的复制信息并进行组播成员的复制; 对复制得到的外层组播组成员,经过报文编辑后进行组播报文的转发;对复制得到的内层组播组成员,经过解封装及编辑处理后进行组播报文的转发。
3.根据权利要求2所述的方法,其特征在于所述获取报文入接口信息是根据报文接收端口的配置信息判断是否需要进行所述的组播组查找。
4.根据权利要求2所述的方法,其特征在于所述组播组查找后获得一个组播成员链接表的入接口地址。
5.根据权利要求2所述的方法,其特征在于所述组播成员的复制是根据第一个组播成员进入地址,获取该成员的复制信息且判断是否有下一个组播成员需要处理;当处理到最后一个组播成员的时候,完成组播成员的复制过程。
6.根据权利要求I至5任意一项所述的方法,其特征在于所述组播报文包括通过TRILL, PBB或组播VPN封装的报文。
7.—种在ASIC中进行组播报文转发的装置,其特征在于包括 报文解析模块,用于对接收到的报文进行解析,得到后续处理的报文信息; 入接口信息获取模块,用于根据报文接收端口的配置信息判断对报文的后续处理; 组播组查找模块,用于根据外层组播组信息和内层组播组信息同时进行查找; 组播成员复制模块,用于根据组播成员的进入地址,获取组播成员的复制信息; 解封装模块,用于对内层组播成员去掉外层报文字段的处理;以及 报文编辑模块和报文转发模块,用于对报文进行编辑并转发。
8.根据权利要求7所述的装置,其特征在于所述报文编辑模块和转发模块分别包括对外层组播成员进行报文编辑和转发的外层报文编辑模块和外层报文转发模块,以及对内层组播成员进行报文编辑和转发的内层报文编辑模块和内层报文转发模块。
9.根据权利要求7所述的装置,其特征在于所述组播组查找模块的输出是一个组播成员的进入接口地址。
10.根据权利要求7所述的装置,其特征在于所述报文解析模块中接收到的报文包括通过TRILL,PBB或组播VPN封装的报文。
全文摘要
本发明揭示了一种在ASIC中进行组播报文转发的方法和装置,其在网络设备收到TRILL,PBB或组播VPN报文进行转发处理时,通过对外层组播信息和内层组播信息并行查表的方式,同时获得外层组播成员列表和内层组播成员列表,并通过复制所述外层组播成员列表和内层组播成员信息,对外层组播报文经过编辑后进行转发,对内层组播报文经过解封装处理及编辑后进行转发,省去了对报文的环回处理过程,消除了由于环回带来的带宽消耗,节省了芯片的内部带宽,提高了芯片带宽的利用率。
文档编号H04L12/761GK102970226SQ20121044923
公开日2013年3月13日 申请日期2012年11月12日 优先权日2012年11月12日
发明者方沛昱, 廖继平 申请人:盛科网络(苏州)有限公司