在asic中转发trill网络报文的方法及系统的制作方法

文档序号:7755768阅读:114来源:国知局
专利名称:在asic中转发trill网络报文的方法及系统的制作方法
技术领域
本发明涉及网络通信领域,尤其涉及一种在ASIC中转发TRILL网络报文的方法及系统。
背景技术
TRILL 是 Transparent Interconnection of Lots of Links,多链接透明互联的缩写,是IETF (互联网工程任务组)推荐的连接层(L2) “以太帧多路径转发”网络标准,可以克服生成树协议(STP)在规模和链路带宽利用率方面存在的问题。STP通过阻塞冗余链路来避免环路,只留一个活跃路径,而其他路径都被阻止成了闲置的带宽;当活跃路径发生故障时,网络必须在新路径上重新融合,需要花费几秒钟的时间,效率低下。TRILL通过将链路状态路由协议 IS_IS(Intermediate System to Intermediate System)引入 L2 网络,解 决了环路问题,同时保留了 L2多路径,将网络负荷分解到多个路径上,有效利用网络带宽。在TRILL网络中,运行TRILL协议的设备称为路由桥(RBridge),即具有路由转发特性的网桥设备,可交互学习各自的物理地址即介质接入地址(MAC地址)进行寻址,具有普通二层转发功能和三层路由功能。RBridge通过运行自己的链路状态协议(通过IS-IS扩展的)认知TRILL网络的拓扑,并使用最短路径树算法生成从该Rbridge到达TRILL网络里的各个Rbridge的路由转发表(称之为TRILL转发表或TRILL路由表)。在TRILL网络的入口,RBridge负责将端系统的单播、多播或广播数据帧封装成TRILL数据帧(即在原始数据帧前添加TRILL头和外部帧头)在TRILL网络里转发。在TRILL网络的出口,RBridge负责将TRILL数据帧解封装TRILL报头,获得最初进入TRILL网络的以太网数据帧,再进行转发给端系统。目前尚没有在 ASIC (Application Specific Integrated Circuit,专用集成电路)中实现TRILL网络报文转发的方法及系统。

发明内容
为了解决上述问题,本发明提供了一种在ASIC中转发TRILL网络报文的方法及系统,可以充分利用以太网交换芯片高带宽、低成本的优势,有效利用网络带宽。具体技术方案如下
本发明实施例提供的一种在ASIC中转发TRILL网络报文的方法,包括
报文解析,对接收到的报文进行解析,得到报文头信息,包括目的MAC地址、VLAN信息、入接口的配置信息,并确认接收到的报文类型;
入接口信息获取,并根据入接口的配置信息进行查表;
查表,用解析得到的目的MAC地址和VLAN信息在TRILL转发表中进行查找,得到出接口的配置信息;
出接口信息获取,根据查表的结果,得到需要转发出去的出接口信息;
报文封装,将接收到的报文封装成TRILL报文,该TRILL报文头中含有源目MAC地址,并从对应的端口中发送出去。根据本发明之一优选实施例,所述接收到的报文类型是以太网报文时,进行上行报文处理,将本地以太网收到的以太网报文转发至TRILL网络。
根据本发明之一优选实施例,所述以太网报文为组播报文时,查表得到的出接口的配置信息为一个组播组信息,
相应地,在所述出接口信息获取之前还包括组播信息获取的步骤,根据所述组播组信息索引对应一个组播组的出接口信息;
并在所述报文封装时,将以太网报文一一复制,根据不同的出接口信息进行封装,得到多份报文。根据本发明之一优选实施例,在进行查表时,先进行邻居信息检查,检查接收到的TRILL报文的外层源MAC地址与入接口是否相匹配,如果匹配,则进行端口检查,如果不匹配,则进行丢弃报文处理;
所述端口检查是检查外层目的MAC地址是否为本设备端口的MAC地址,如果是,则再进行昵称检查,如果不是,则直接进行出接口信息获取;
所述昵称检查是检查TRILL报文的目的昵称是否为本设备昵称,如果不是,则进行出接口信息获取,如果是,则判断所述TRILL报文是否为组播报文。根据本发明之一优选实施例,当所述TRILL报文为单播报文时,进行解封装处理和内部信息查表,具体为
所述解封装处理是将TRILL报文中的以太网报文头和TRILL报文头去除,得到原始的以太网数据,包括以太网的目的MAC地址和VLAN信息;
所述内部信息查表是用以太网的目的MAC地址和VLAN信息进行查表,得到出接口的配置信息;
当所述TRILL报文为组播报文时,在查表后先进行组播组信息获取,根据所述组播组信息索引对应一个组播组的出接口信息,所述出接口信息为TRILL报文的目的昵称,根据TRILL报文的目的昵称在TRILL网络中进行转发;
如果TRILL报文的目的昵称存在本地组播组成员时,还将所述TRILL报文进行解封装处理和内部信息查表,其中
所述解封装处理是将TRILL报文中的以太网报文头和TRILL报文头去除,得到原始的以太网数据,包括以太网的目的MAC地址和VLAN信息;
所述内部信息查表是用以太网的目的MAC地址和VLAN信息进行查表,得到出接口的配置信息。根据本发明之一优选实施例,所述一个组播组的出接口信息是分别进行出接口信息获取,并将TRILL报文一一复制,根据不同的出接口信息进行封装,得到多份报文。根据本发明之一优选实施例,所述接收到的报文类型是OAM报文时,进行下行报文处理,将OAM报文转发给CPU做进一步的处理,所述OAM报文包括TRILL报文的封装,经过解析后进行查表时,先进行邻居信息检查,检查接收到的OAM报文的外层源MAC地址与入接口是否相匹配,如果匹配,则进行端口检查,如果不匹配,则进行丢弃报文处理;
所述端口检查是检查外层目的MAC地址是否为本设备端口的MAC地址,如果是,则再进行昵称检查,如果不是,则直接进行出接口信息获取;所述昵称检查是检查OAM报文的目的昵称是本设备昵称,检查得到OAM报文的目的昵称是本设备昵称,则进行出接口信息获取,得到出接口信息为CPU接口,将解析后的OAM报文进行封装后转发给CPU。根据本发明之一优选实施例,所述接收到的报文类型是协议报文时,进行下行报文处理,将协议报文转发给CPU做进一步的处理,所述协议报文包括以太网类型字段,经过解析后进行查表时,先进行邻居信息检查,检查接收到的协议报文的外层源MAC地址与入接口是否相匹配,如果匹配,则进行端口检查,如果不匹配,则进行丢弃报文处理;
所述端口检查得到出接口信息为CPU接口,则进行出接口信息获取,将解析后的协议报文进行封装后转发给CPU。相应地,本发明实施例提供的一种在ASIC中转发TRILL网络报文的系统,包括 用于对接收到的报文进行解析,得到报文头信息,包括目的MAC地址、VLAN信息、入接
口的配置信息,并确认接收到的报文类型的模块;
用于获取入接口配置信息,并根据入接口的配置信息进行查表的模块;
用解析得到的目的MAC地址和VLAN信息在TRILL转发表中进行查找,得到出接口的配置信息的模块;
用于根据查表的结果,得到需要转发出去的出接口信息的模块;
用于将接收到的报文封装成TRILL报文,该TRILL报文头中含有源目MAC地址,并从对应的端口中发送出去的模块。由以上技术方案可以看出,本发明提供的一种在ASIC中转发TRILL网络报文的方法和系统,解决在ASIC中TRILL网络的报文转发问题,可实现多路径转发,有效利用网络带宽。本发明将TRILL网络报文转发方法固化在ASIC中,可充分利用以太网交换芯片高带宽、低成本的优势,为构建TRILL网络的数据中心降低网络部署的成本。


图I是TRILL网络的拓扑 图2是报文组成示意 图3是本发明在ASIC中转发TRILL网络报文的上行流程 图4是本发明在ASIC中转发TRILL网络报文的下行流程 图5是本发明在ASIC中上行转发单播报文的流程 图6是本发明在ASIC中上行转发组播报文的流程 图7是本发明在ASIC中下行转发单播报文的流程 图8是本发明在ASIC中下行转发组播报文的流程 图9是本发明在ASIC中转发TRILL网络报文的系统结构图。
具体实施例方式为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。如图I所示,为一种典型的TRILL网络的拓扑图,本地以太网包括服务器和若干主机,通过路由桥(RBridgel、…RBridge6)连接到TRILL网络。本发明方案将以这个网络拓扑中的RBridgel为例进行介绍。所述报文是网络中交换与传输的数据单元,包含了将要发送的完整的数据信息,是网络传输单位。在传输时不断地封装成分组、包、帧来传输,封装的方式就是添加报文头。本发明中,待转发的TRILL网络报文类型可以包括以太网报文、TRILL报文、OAM报文和协议报文。其中,如图2所示,以太网报文的组成包括以太网数据和目的MAC/源MAC。进行TRILL报文封装是将以太网报文封装在TRILL报文中,添加TRILL报文头信息,包括目的昵称/源昵称以及外层目的MAC/源MAC,经过TRILL封装后,在TRILL报文头的上层协议字段标识所封装的报文为以太网报文类型。TRILL报文头中包括版本(ver),组播标记(M),选项长度(Option Length),生存时间 TTL (Hop Count),目的昵称(Egress RBridge Nickname),源昵称(Ingress RBridgeNickname)以及 TRILL 的选项(Header Options)等信息。 因而,TRILL报文中包括源目 RBridge 的 MAC 地址、VLAN (Virtual Local AreaNetwork,虚拟局域网)信息、入接口信息(源昵称)、出接口信息(目的昵称)以及数据报文,其中,源目RBridge的MAC地址指示TRILL报文发出的源RBridge和目的RBridge。如图3所示,是本发明在ASIC中转发TRILL网络报文的上行流程图,该方法包括以下步骤
步骤101 :报文解析,对接收到的报文进行解析,得到报文头信息,包括目的MAC地址、VLAN信息、入接口的配置信息,并确认接收到的报文类型。对于报文解析的处理可通过寄存器配置完成,不写成固定的值。在后续标准更新后,可以不需要更换硬件设备,只需要修改软件代码,实现与最新标准的同步,提供一定的灵活性,节省网络维护的费用。步骤102,入接口信息获取,并根据入接口的配置信息进行查表。步骤103,查表,用解析得到的目的MAC地址和VLAN信息在TRILL转发表中进行查找,得到出接口的配置信息。在查表的过程中,针对查表结果的情况,设置有一条默认条目,根据该默认条目的配置可以在查表无结果时直接进行步骤108,将报文丢弃或者上送给CPU处理,这样可以节省处理流程。如果报文是单播报文,查表可以直接得到单个出接口的配置信息,直接进入步骤105。对于组播报文的情形,经过查表得到的是一个组播组信息,不能直接得到单个出接口的配置信息,则进入步骤104。步骤104,组播信息获取,用于获取组播组信息,并根据组播组信息索引对应一个组播组的出接口信息。步骤105,出接口信息获取,根据查表的结果,得到需要转发出去的出接口信息。其中,所述出接口信息是报文的目的昵称信息。步骤106,报文封装,将解析后的报文封装成TRILL报文,该TRILL报文头中含有源目MAC地址。步骤107,报文转发,将已经封装好的TRILL报文从对应的出接口中发送出去。如图4所示,是本发明在ASIC中转发TRILL网络报文的下行流程图,该方法包括以下步骤
步骤201 :报文解析,对接收到的报文进行解析,得到报文头信息,包括目的MAC地址、VLAN信息、入接口的配置信息,并确认接收到的报文类型。所述TRILL报文头还包括外层源MAC地址、外层目的MAC地址和TRILL报文的目的昵称。对于报文解析的处 理可通过寄存器配置完成,不写成固定的值。在后续标准更新后,可以不需要更换硬件设备,只需要修改软件代码,实现与最新标准的同步,提供一定的灵活性,节省网络维护的费用。步骤202,入接口信息获取,并根据入接口的配置信息进行查表。查表,用解析得到的目的MAC地址和VLAN信息在TRILL转发表中进行查找,得到出接口的配置信息。在进行查表时,先进行步骤203邻居信息检查,检查接收到的TRILL报文的外层源MAC地址与入接口是否相匹配,如果匹配,则进行步骤204,如果不匹配,则进行丢弃报文处理直接进行步骤212,将报文丢弃,这样可以节省处理流程。步骤204,端口检查,是检查外层目的MAC地址是否为本设备端口的MAC地址,如果是,则再进行步骤205,如果不是,则直接进行步骤209。步骤205,昵称检查,是检查TRILL报文的目的昵称是否为本设备昵称,如果不是,则进行步骤209,如果是,则进一步判断所述TRILL报文是否为组播报文。如果报文是单播报文,查表可以直接得到单个出接口的配置信息,直接进入步骤207。对于组播报文的情形,经过查表得到的是一个组播组信息,不能直接得到单个出接口的配置信息,则进入步骤206。步骤206,组播组信息获取,用于获取组播组信息,并根据组播组信息索引对应一个组播组的出接口信息,进入步骤209。所述出接口信息为TRILL报文的目的昵称,根据TRILL报文的目的昵称在TRILL网络中进行转发。对于组播组信息中的TRILL报文的目的昵称存在本地组播组成员时,在进入步骤209出接口信息获取后,无法得到每个出接口信息,还将所述TRILL报文进行步骤207解封装处理和步骤208内部信息查表后,找到一个组出接口信息后,再进入步骤206。步骤207,解封装处理,是将TRILL报文中的以太网报文头和TRILL报文头去除,得到原始的以太网数据,包括以太网的目的MAC地址和VLAN信息;再进行步骤208。步骤208,内部信息查表,用以太网的目的MAC地址和VLAN信息进行查表,得到出接口的配置信息,进入步骤209。步骤209,出接口信息获取,根据查表的结果,得到需要转发出去的出接口信息。其中,所述出接口信息是报文的目的昵称信息。步骤210,报文封装,将解析后的报文封装成TRILL报文,该TRILL报文头中含有源目MAC地址。步骤211,报文转发,将已经封装好的TRILL报文从对应的出接口中发送出去。为了更清楚地表述,以下针对各种转发情形做详细说明
I,上行报文处理。对于RBridgel来说,上行报文的处理是指将从主机收到的以太网报文转发到TRILL网络中的过程。当RBridgel收到本地以太网报文后,如果是单播报文,其处理流程如图5所示;如果是组播报文,其处理流程如图6所示。如图5所示,ASIC对接收到的报文依次进行步骤101,报文解析,得到报文头信息,包括目的MAC地址、VLAN信息、入接口的配置信息,并确认接收到的报文类型。步骤102,入接口信息获取,并根据入接口的配置信息进行查表。步骤103,查表,用解析得到的目的MAC地址和VLAN信息在TRILL转发表中进行查找,得到出接口的配置信息。步骤105,出接口信息获取,根据查表的结果,得到需要转发出去的出接口信息。步骤106和步骤107,报文封装和报文转发,将解析后的报文封装成TRILL报文,该TRILL报文头中含有源目MAC地址,并从对应的出接口中发送出去。如图6所示,如果以太网报文为组播报文,与图5所示的单播报文的发送方式稍有不同。组播报文在查表得到的出接口的配置信息为一个组播组信息,因而在步骤105出接口信息获取之前,还包括组播信息获取的步骤104,根据所述组播组信息索引对应一个组播组的出接口信息。对应的,步骤105出接口信息获取是逐一获取的过程,并将以太网报文一一复制后进行步骤106报文封装,根据不同的出接口信息进行封装。封装完后,进行步骤107报文转发,将多份报文分别发送出去。2,下行报文处理。和上行报文相反,对于RBridgel来说,下行报文的处理是指将从TRILL网络中收到的报文转发到本地以太网的过程。当RBridgel收到TRILL报文后,如果是单播报文,其处理流程如图7所示;如果是组播报文,其处理流程如图8所示。如图7所示,相对于上行报文,下行报文的处理相对复杂,主要增加了几个处理TRILL 报文的流程。步骤 201、202、209、210、211 与步骤 101、102、105、106、107 分别对应。在查表过程中,包括步骤203、204、205,具体是
步骤203,邻居信息检查,检查接收到的TRILL报文的外层源MAC地址与入接口是否相匹配;对于组播报文,步骤203邻居信息检查是还需要检查TRILL报文中的源昵称和目的昵称与入接口是否相匹配。如果不匹配,则进行步骤212丢弃报文。步骤204,端口检查,以TRILL报文的外层目的MAC地址为关键字进行查找,如果该MAC地址为本设备端口的MAC,则需要进入步骤205进一步处理;如果不是,则进入步骤209
进行普通二层转发。步骤205,昵称检查,以TRILL报文的目的昵称为关键字进行查找,如果该昵称是本设备昵称,则需要转发到本地以太网,需要进入步骤207处理;如果不是,则根据此次查表获得的出接口信息进入步骤209进行转发。值得一提的是,此时不是本设备昵称进行的报文转发是基于TRILL报文的目的昵称,与普通二层转发有区别,不会进行解封装的过程。步骤207,解封装处理,是将TRILL报文中的以太网报文头和TRILL报文头剥去,露出原始的以太网数据,进入步骤208。步骤208,内部信息查表,以内部以太网目的MAC和VLAN为关键字查表,获得出接口信息进行普通二层转发,进入步骤209。如图8所示,对于下行的组播报文,有可能存在两次转发的过程。图I中的RBridgel如果收到从RBridge4发过来的组播报文,首先,需要根据TRILL报文的目的昵称转发给其他的RBirdge,在步骤205昵称检查后,需要进行步骤206,组播组信息获取,用于获取组播组信息,并根据组播组信息索引对应一个组播组的出接口信息,进入步骤209。所述出接口信息为TRILL报文的目的昵称,根据TRILL报文的目的昵称在TRILL网络中进行进行基于TRILL昵称的转发。其次,对于组播组信息中的TRILL报文的目的昵称存在本地组播组成员时,在步骤209中出接口信息获取中无法得到每个出接口信息,还将所述TRILL报文进行步骤207解封装处理和步骤208内部信息查表后,再进入步骤206进行转发,此时由于目的昵称是本地,则转发给本地的主机。之前所有的报文转发都只有一次转发过程,但在这种情况下存在两次。因此,为了减少ASIC设计中流水线的级数,在这里设计了一个内部环回接口,通过重用之前步骤206、209和210等来达到两次转发的目的。在昵称检查之后,首先获得外层转发的组播组信息,然后将报文分别进行复制,从相应的成员接口发送出去,此时完成的是基于TRILL昵称的转发。当存在本地成员的时候,不会获得出接口信息,直接转入解封装处理。解封装完成后以内部目的MAC和VLAN为关键 字进行查表,获得内层转发的组播组信息,然后将解完封装的报文分别进行复制,从相应的成员接口发送出去,此时完成的是基于内层目的MAC和VLAN的转发,转发至本地主机。3,OAM报文的处理
OAM 报文(Operation Administration and Maintenance)是操作维护管理报文,属于TRILL网络,进行下行报文处理,将OAM报文转发给CPU做进一步的处理,其处理流程参见图7所示。针对OAM报文系统并不执行复杂的OAM状态机,而是通过解析报文,识别为OAM报文,然后送给CPU处理。所述OAM报文包括TRILL报文的封装,经过步骤201、202解析后进行查表时,先进行步骤203邻居信息检查,检查接收到的OAM报文的外层源MAC地址与入接口是否相匹配,如果匹配,则进行步骤204端口检查,如果不匹配,则进行丢弃报文处理。所述端口检查是检查外层目的MAC地址是否为本设备端口的MAC地址,如果是,则再进行步骤205昵称检查,如果不是,则直接进行出接口信息获取;
所述昵称检查是检查OAM报文的目的昵称是本设备昵称,检查得到OAM报文的目的昵称是本设备昵称,则进行步骤209出接口信息获取,得到出接口信息为CPU接口,将解析后的OAM报文进行封装后转发给CPU。4,协议报文的处理
所述接收到的报文类型是协议(IS-IS)报文时,属于TRILL网络,进行下行报文处理,将协议报文转发给CPU做进一步的处理,其处理流程参见图7所示。针对协议报文系统也不执行复杂的协议状态机,而是通过解析报文,识别其为协议报文,然后送给CPU处理。所述协议报文包括以太网类型字段,经过步骤201、202解析后进行查表时,先进行步骤203邻居信息检查,检查接收到的协议报文的外层源MAC地址与入接口是否相匹配,如果匹配,则进行步骤204端口检查,如果不匹配,则进行丢弃报文处理;
所述端口检查得到出接口信息为CPU接口,则进行步骤209出接口信息获取,将解析后的协议报文进行封装后转发给CPU。值得一提的是,对于从CPU下发的OAM和协议报文,尚未经过TRILL网络封装,则可以跳过之前所有的查表过程,直接TRILL转发或者普通二层转发,将报文从普通网络接口发出去即可。相应地,本发明在ASIC中转发TRILL网络报文的系统,如图9所示,包括
报文解析模块301,用于对接收到的报文进行解析,得到报文头信息,包括目的MAC地
址、VLAN信息、入接口的配置信息,并确认接收到的报文类型。入接口信息获取模块302,用于获取入接口配置信息,并根据入接口的配置信息进行查表。查表模块303,用解析得到的目的MAC地址和VLAN信息在TRILL转发表中进行查找,得到出接口的配置信息。组播信息获取模块304,当出接口的配置信息为组播组信息时,根据所述组播组信 息索引对应一个组播组的出接口信息。解封装处理模块305,用于将TRILL报文中的以太网报文头和TRILL报文头去除,得到原始的以太网数据,包括以太网的目的MAC地址和VLAN信息。内部信息查表模块306,用以太网的目的MAC地址和VLAN信息进行查表,得到出接口的配置信息。出接口信息获取模块307,用于根据查表的结果,得到需要转发出去的出接口信肩、O报文封装模块308,用于将解析后的报文封装成TRILL报文,该TRILL报文头中含有源目MAC地址。报文转发模块309,将已经封装好的TRILL报文从对应的出接口中发送出去。所述报文解析模块301、入接口信息获取模块302、查表模块303、组播信息获取模304、解封装处理模块305、内部信息查表模块306、出接口信息获取模块307、报文封装模块308、报文转发模块309均固化于ASIC中。针对报文上行处理
对于RBridgel来说,上行报文的处理是指将从主机收到的以太网报文转发到TRILL网络中的过程。当RBridgel收到本地以太网报文后,如果是单播报文,其处理流程如图5所示;如果是组播报文,其处理流程如图6所示。在ASIC中报文解析模块301对收到的报文进行解析,得到查表所需要的各种信息。入接口信息获取模块302根据入接口的配置信息来决定是否需要进行查表。在查表模块303中,用解析得到的目的MAC地址和VLAN信息作为关键字进行查表。在出接口信息获取模块307中,根据查表的结果,得到需要转发出去的端口信息。在报文封装模块308中,将原始以太网报文封装在TRILL报文中,交给报文转发模块309进行转发。在查表模块303中,设置一条默认条目,这样在查表的时候必然可以返回结果,通过对这个默认条目的配置来实现查表无结果时候的处理,可以让报文丢弃或者上送给CPU处理,这样就避免了对查表无结果的专门处理流程。在整个过程中,组播报文的处理和单播稍有不同。组播报文在查表模块303之后不能直接得到出接口信息,而是得到一个组播组信息。因而,还包括一个组播组信息获取模块,根据这个组播组信息再去索引所有该组播组对应的出接口信息,然后出接口信息获取模块307将原始报文进行一一复制,报文封装模块308根据不同的出接口信息进行不同的封装,最后报文转发模块309再转发多份报文出去。
针对下行报文处理
和上行报文相反,对于RBridgel来说,下行报文的处理是指将从TRILL网络中收到的报文转发到本地以太网的过程。当RBridgel收到TRILL报文后,如果是单播报文,其处理流程如图7所示;如果是组播报文,其处理流程如图8所示。相对于上行报文,下行报文的处理相对复杂,主要增加了几个处理TRILL报文的模块。在查表模块中包括邻居信息检查模块(图未示)、端口检查模块(图未示)和昵称检查模块(图未示)的处理。邻居信息检查模块检查接收到的TRILL报文的外层源MAC地址与入接口是否相匹配;对于组播报文,该模块还需要检查TRILL报文中的源昵称和目的昵称与入接口是否相匹配。如果不匹配,则需要丢弃报文。端口检查模块以TRILL报文的外层目的MAC地址为关键字进行查找,如果该MAC·地址为本设备端口的MAC,则需要进一步处理;如果不是,则进入普通二层转发。昵称检查模块以TRILL报文的目的昵称为关键字进行查找,如果该昵称是本设备昵称,则需要转发到本地以太网,需要进入解封装处理模块305处理;如果不是,则根据此次查表获得的出接口信息进行转发。此时报文的转发是基于TRILL报文的目的昵称,与普通二层转发有区别。解封装处理模块305将TRILL报文中的外层以太网和TRILL报头剥去,露出原始的以太网数据。内部信息查表模块306以内部以太网目的MAC和VLAN为关键字查表,获得出接口信息进行二层转发。对于下行的组播报文,存在两次转发的过程。图I中的RBridgel如果收到从RBridge4发过来的组播报文,首先需要根据TRILL报文的目的昵称转发给其他的RBirdge ;其次当RBridgel存在本地组播组成员的时候,需要将该报文进行解封装处理,然后根据内部的目的MAC和VLAN转发给本地的主机。之前所有的报文转发都只有一次转发过程,但在这种情况下存在两次。因此,为了减少ASIC设计中流水线的级数,在这里设计了一个内部环回接口,通过重用之前的模块来达到两次转发的目的。在昵称检查之后,首先获得外层转发的组播组信息,然后将报文分别进行复制,从相应的成员接口发送出去,此时完成的是基于TRILL昵称的转发。当存在本地成员的时候,不会获得出接口信息,直接转入“解封装处理”模块。解封装完成后以内部目的MAC和VLAN为关键字进行查表,获得内层转发的组播组信息,然后将解完封装的报文分别进行复制,从相应的成员接口发送出去,此时完成的是基于内层目的MAC和VLAN的转发。本发明将介绍一种ASIC中实现TRILL报文转发的方法,主要介绍在ASIC中对TRILL报文处理的逻辑。该方法完全遵循IETF目前所制定的TRILL标准,实现TRILL报文的单播、组播以及协议报文上送CPU等一系列行为。通过逻辑固化在ASIC中后,可以实现TRILL报文的线速转发。并且,本发明作为以太网交换芯片的一个子特性,与其他以太网交换芯片的特性相结合,适用于数据中心等对TRILL有需求的以太网交换机中,降低部署TRILL的费用。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
权利要求
1.一种在ASIC中转发TRILL网络报文的方法,其特征在于,包括 报文解析,对接收到的报文进行解析,得到报文头信息,包括目的MAC地址、VLAN信息、入接口的配置信息,并确认接收到的报文类型; 入接口信息获取,并根据入接口的配置信息进行查表; 查表,用解析得到的目的MAC地址和VLAN信息在TRILL转发表中进行查找,得到出接口的配置信息; 出接口信息获取,根据查表的结果,得到需要转发出去的出接口信息; 报文封装,将解析后的报文封装成TRILL报文,该TRILL报文头中含有源目MAC地址,并从对应的出接口中发送出去。
2.根据权利要求I所述的方法,其特征在于,所述接收到的报文类型是以太网报文时,进行上行报文处理,将本地以太网收到的以太网报文转发至TRILL网络。
3.根据权利要求2所述的方法,其特征在于,所述以太网报文为组播报文时,查表得到的出接口的配置信息为一个组播组信息, 相应地,在所述出接口信息获取之前还包括组播信息获取的步骤,根据所述组播组信息索引对应一个组播组的出接口信息; 并在所述报文封装时,将以太网报文一一复制,根据不同的出接口信息进行封装,得到多份报文。
4.根据权利要求I所述的方法,其特征在于,所述接收到的报文是TRILL报文时,进行下行报文处理,将TRILL网络的TRILL报文转发至本地以太网,所述TRILL报文头还包括外层源MAC地址、外层目的MAC地址和TRILL报文的目的昵称。
5.根据权利要求4所述的方法,其特征在于,在进行查表时,先进行邻居信息检查,检查接收到的TRILL报文的外层源MAC地址与入接口是否相匹配,如果匹配,则进行端口检查,如果不匹配,则进行丢弃报文处理; 所述端口检查是检查外层目的MAC地址是否为本设备端口的MAC地址,如果是,则再进行昵称检查,如果不是,则直接进行出接口信息获取; 所述昵称检查是检查TRILL报文的目的昵称是否为本设备昵称,如果不是,则进行出接口信息获取,如果是,则判断所述TRILL报文是否为组播报文。
6.根据权利要求5所述的方法,其特征在于,当所述TRILL报文为单播报文时,进行解封装处理和内部信息查表,具体为 所述解封装处理是将TRILL报文中的以太网报文头和TRILL报文头去除,得到原始的以太网数据,包括以太网的目的MAC地址和VLAN信息; 所述内部信息查表是用以太网的目的MAC地址和VLAN信息进行查表,得到出接口的配置信息; 当所述TRILL报文为组播报文时,在查表后先进行组播组信息获取,根据所述组播组信息索引对应一个组播组的出接口信息,所述出接口信息为TRILL报文的目的昵称,根据TRILL报文的目的昵称在TRILL网络中进行转发; 如果TRILL报文的目的昵称存在本地组播组成员时,还将所述TRILL报文进行解封装处理和内部信息查表,其中 所述解封装处理是将TRILL报文中的以太网报文头和TRILL报文头去除,得到原始的以太网数据,包括以太网的目的MAC地址和VLAN信息; 所述内部信息查表是用以太网的目的MAC地址和VLAN信息进行查表,得到出接口的配置信息。
7.根据权利要求6所述的方法,其特征在于,所述一个组播组的出接口信息是分别进行出接口信息获取,并将TRILL报文一一复制,根据不同的出接口信息进行封装,得到多份报文。
8.根据权利要求I所述的方法,其特征在于,所述接收到的报文类型是OAM报文时,进行下行报文处理,将OAM报文转发给CPU做进一步的处理,所述OAM报文包括TRILL报文的封装,经过解析后进行查表时,先进行邻居信息检查,检查接收到的OAM报文的外层源MAC地址与入接口是否相匹配,如果匹配,则进行端口检查,如果不匹配,则进行丢弃报文处理; 所述端口检查是检查外层目的MAC地址是否为本设备端口的MAC地址,如果是,则再进行昵称检查,如果不是,则直接进行出接口信息获取; 所述昵称检查是检查OAM报文的目的昵称是本设备昵称,检查得到OAM报文的目的昵称是本设备昵称,则进行出接口信息获取,得到出接口信息为CPU接口,将解析后的OAM报文进行封装后转发给CPU。
9.根据权利要求I所述的方法,其特征在于,所述接收到的报文类型是协议报文时,进行下行报文处理,将协议报文转发给CPU做进一步的处理,所述协议报文包括以太网类型字段,经过解析后进行查表时,先进行邻居信息检查,检查接收到的协议报文的外层源MAC地址与入接口是否相匹配,如果匹配,则进行端口检查,如果不匹配,则进行丢弃报文处理; 所述端口检查得到出接口信息为CPU接口,则进行出接口信息获取,将解析后的协议报文进行封装后转发给CPU。
10.一种在ASIC中转发TRILL网络报文的系统,其特征在于,包括 用于对接收到的报文进行解析,得到报文头信息,包括目的MAC地址、VLAN信息、入接口的配置信息,并确认接收到的报文类型的模块; 用于获取入接口配置信息,并根据入接口的配置信息进行查表的模块; 用解析得到的目的MAC地址和VLAN信息在TRILL转发表中进行查找,得到出接口的配置信息的模块; 用于根据查表的结果,得到需要转发出去的出接口信息的模块; 用于将解析后的报文封装成TRILL报文,该TRILL报文头中含有源目MAC地址,并从对应的出接口中发送出去的模块。
全文摘要
本发明提供了一种在ASIC中转发TRILL网络报文的方法及系统。该方法包括以下步骤报文解析,对接收到的报文进行解析,得到报文头信息,包括目的MAC地址、VLAN信息、入接口的配置信息,并确认接收到的报文类型;入接口信息获取,并根据入接口的配置信息进行查表;查表,用解析得到的目的MAC地址和VLAN信息在TRILL转发表中进行查找,得到出接口的配置信息;出接口信息获取,根据查表的结果,得到需要转发出去的出接口信息;报文封装,将解析后的报文封装成TRILL报文,该TRILL报文头中含有源目MAC地址,并从对应的出接口中发送出去。本发明可充分利用以太网交换芯片高带宽、低成本的优势,为构建TRILL网络的数据中心降低网络部署的成本。
文档编号H04L12/761GK102957616SQ201110237690
公开日2013年3月6日 申请日期2011年8月18日 优先权日2011年8月18日
发明者方沛昱, 廖继平 申请人:盛科网络(苏州)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1