CN102957616B - 在asic中转发trill网络报文的方法及*** - Google Patents

在asic中转发trill网络报文的方法及*** Download PDF

Info

Publication number
CN102957616B
CN102957616B CN201110237690.9A CN201110237690A CN102957616B CN 102957616 B CN102957616 B CN 102957616B CN 201110237690 A CN201110237690 A CN 201110237690A CN 102957616 B CN102957616 B CN 102957616B
Authority
CN
China
Prior art keywords
message
information
trill
outgoing interface
pet name
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.)
Active
Application number
CN201110237690.9A
Other languages
English (en)
Other versions
CN102957616A (zh
Inventor
方沛昱
廖继平
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Centec Communications Co Ltd
Original Assignee
Centec Networks Suzhou Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Centec Networks Suzhou Co Ltd filed Critical Centec Networks Suzhou Co Ltd
Priority to CN201110237690.9A priority Critical patent/CN102957616B/zh
Publication of CN102957616A publication Critical patent/CN102957616A/zh
Application granted granted Critical
Publication of CN102957616B publication Critical patent/CN102957616B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Small-Scale Networks (AREA)

Abstract

本发明提供了一种在ASIC中转发TRILL网络报文的方法及***。该方法包括以下步骤:报文解析,对接收到的报文进行解析,得到报文头信息,包括目的MAC地址、VLAN信息、入接口的配置信息,并确认接收到的报文类型;入接口信息获取,并根据入接口的配置信息进行查表;查表,用解析得到的目的MAC地址和VLAN信息在TRILL转发表中进行查找,得到出接口的配置信息;出接口信息获取,根据查表的结果,得到需要转发出去的出接口信息;报文封装,将解析后的报文封装成TRILL报文,该TRILL报文头中含有源目MAC地址,并从对应的出接口中发送出去。本发明可充分利用以太网交换芯片高带宽、低成本的优势,为构建TRILL网络的数据中心降低网络部署的成本。

Description

在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报文、OAM报文和协议报文时,进行下行报文处理,其中,所述查表步骤具体为:
邻居信息检查,检查接收到的报文的外层源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报文的目的昵称是本设备昵称,检查得到OAM报文的目的昵称是本设备昵称,则进行出接口信息获取,得到出接口信息为CPU接口,将解析后的OAM报文进行封装后转发给CPU。
根据本发明之一优选实施例,所述接收到的报文类型是协议报文时,进行下行报文处理,将协议报文转发给CPU做进一步的处理,所述协议报文包括以太网类型字段,经过解析后进行查表时,所述端口检查得到出接口信息为CPU接口,则进行出接口信息获取,将解析后的协议报文进行封装后转发给CPU。
相应地,本发明实施例提供的一种在ASIC中转发TRILL网络报文的***,包括:
用于对接收到的报文进行解析,得到报文头信息,包括目的MAC地址、VLAN信息、入接口的配置信息,并确认接收到的报文类型的模块;
用于获取入接口配置信息,并根据入接口的配置信息进行查表的模块;
用解析得到的目的MAC地址和VLAN信息在TRILL转发表中进行查找,得到出接口的配置信息的模块;
用于根据查表的结果,得到需要转发出去的出接口信息的模块;
用于将接收到的报文封装成TRILL报文,该TRILL报文头中含有源目MAC地址,并从对应的端口中发送出去的模块,
其中,查表模块包括邻居信息检查模块、端口检查模块和昵称检查模块,邻居信息检查模块检查接收到的TRILL报文的外层源MAC地址与入接口是否相匹配;端口检查模块以TRILL报文的外层目的MAC地址为关键字进行查找;昵称检查模块以TRILL报文的目的昵称为关键字进行查找。
由以上技术方案可以看出,本发明提供的一种在ASIC中转发TRILL网络报文的方法和***,解决在ASIC中TRILL网络的报文转发问题,可实现多路径转发,有效利用网络带宽。本发明将TRILL网络报文转发方法固化在ASIC中,可充分利用以太网交换芯片高带宽、低成本的优势,为构建TRILL网络的数据中心降低网络部署的成本。
附图说明
图1是TRILL网络的拓扑图;
图2是报文组成示意图;
图3是本发明在ASIC中转发TRILL网络报文的上行流程图;
图4是本发明在ASIC中转发TRILL网络报文的下行流程图;
图5是本发明在ASIC中上行转发单播报文的流程图;
图6是本发明在ASIC中上行转发组播报文的流程图;
图7是本发明在ASIC中下行转发单播报文的流程图;
图8是本发明在ASIC中下行转发组播报文的流程图;
图9是本发明在ASIC中转发TRILL网络报文的***结构图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
如图1所示,为一种典型的TRILL网络的拓扑图,本地以太网包括服务器和若干主机,通过路由桥(RBridge1、…RBridge6)连接到TRILL网络。本发明方案将以这个网络拓扑中的RBridge1为例进行介绍。
所述报文是网络中交换与传输的数据单元,包含了将要发送的完整的数据信息,是网络传输单位。在传输时不断地封装成分组、包、帧来传输,封装的方式就是添加报文头。
本发明中,待转发的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 RBridge Nickname)以及TRILL的选项(Header Options)等信息。
因而,TRILL报文中包括源目RBridge的MAC地址、VLAN(Virtual Local Area Network,虚拟局域网)信息、入接口信息(源昵称)、出接口信息(目的昵称)以及数据报文,其中,源目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报文从对应的出接口中发送出去。
为了更清楚地表述,以下针对各种转发情形做详细说明:
1,上行报文处理。
对于RBridge1来说,上行报文的处理是指将从主机收到的以太网报文转发到TRILL网络中的过程。当RBridge1收到本地以太网报文后,如果是单播报文,其处理流程如图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,下行报文处理。
和上行报文相反,对于RBridge1来说,下行报文的处理是指将从TRILL网络中收到的报文转发到本地以太网的过程。当RBridge1收到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所示,对于下行的组播报文,有可能存在两次转发的过程。图1中的RBridge1如果收到从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,用于根据查表的结果,得到需要转发出去的出接口信息。
报文封装模块308,用于将解析后的报文封装成TRILL报文,该TRILL报文头中含有源目MAC地址。
报文转发模块309,将已经封装好的TRILL报文从对应的出接口中发送出去。
所述报文解析模块301、入接口信息获取模块302、查表模块303、组播信息获取模304、解封装处理模块305、内部信息查表模块306、出接口信息获取模块307、报文封装模块308、报文转发模块309均固化于ASIC中。
针对报文上行处理:
对于RBridge1来说,上行报文的处理是指将从主机收到的以太网报文转发到TRILL网络中的过程。当RBridge1收到本地以太网报文后,如果是单播报文,其处理流程如图5所示;如果是组播报文,其处理流程如图6所示。
在ASIC中报文解析模块301对收到的报文进行解析,得到查表所需要的各种信息。入接口信息获取模块302根据入接口的配置信息来决定是否需要进行查表。在查表模块303中,用解析得到的目的MAC地址和VLAN信息作为关键字进行查表。在出接口信息获取模块307中,根据查表的结果,得到需要转发出去的端口信息。在报文封装模块308中,将原始以太网报文封装在TRILL报文中,交给报文转发模块309进行转发。
在查表模块303中,设置一条默认条目,这样在查表的时候必然可以返回结果,通过对这个默认条目的配置来实现查表无结果时候的处理,可以让报文丢弃或者上送给CPU处理,这样就避免了对查表无结果的专门处理流程。
在整个过程中,组播报文的处理和单播稍有不同。组播报文在查表模块303之后不能直接得到出接口信息,而是得到一个组播组信息。因而,还包括一个组播组信息获取模块,根据这个组播组信息再去索引所有该组播组对应的出接口信息,然后出接口信息获取模块307将原始报文进行一一复制,报文封装模块308根据不同的出接口信息进行不同的封装,最后报文转发模块309再转发多份报文出去。
针对下行报文处理:
和上行报文相反,对于RBridge1来说,下行报文的处理是指将从TRILL网络中收到的报文转发到本地以太网的过程。当RBridge1收到TRILL报文后,如果是单播报文,其处理流程如图7所示;如果是组播报文,其处理流程如图8所示。
相对于上行报文,下行报文的处理相对复杂,主要增加了几个处理TRILL报文的模块。在查表模块中包括邻居信息检查模块(图未示)、端口检查模块(图未示)和昵称检查模块(图未示)的处理。
邻居信息检查模块检查接收到的TRILL报文的外层源MAC地址与入接口是否相匹配;对于组播报文,该模块还需要检查TRILL报文中的源昵称和目的昵称与入接口是否相匹配。如果不匹配,则需要丢弃报文。
端口检查模块以TRILL报文的外层目的MAC地址为关键字进行查找,如果该MAC地址为本设备端口的MAC,则需要进一步处理;如果不是,则进入普通二层转发。
昵称检查模块以TRILL报文的目的昵称为关键字进行查找,如果该昵称是本设备昵称,则需要转发到本地以太网,需要进入解封装处理模块305处理;如果不是,则根据此次查表获得的出接口信息进行转发。此时报文的转发是基于TRILL报文的目的昵称,与普通二层转发有区别。
解封装处理模块305将TRILL报文中的外层以太网和TRILL报头剥去,露出原始的以太网数据。内部信息查表模块306以内部以太网目的MAC和VLAN为关键字查表,获得出接口信息进行二层转发。
对于下行的组播报文,存在两次转发的过程。图1中的RBridge1如果收到从RBridge4发过来的组播报文,首先需要根据TRILL报文的目的昵称转发给其他的RBirdge;其次当RBridge1存在本地组播组成员的时候,需要将该报文进行解封装处理,然后根据内部的目的MAC和VLAN转发给本地的主机。之前所有的报文转发都只有一次转发过程,但在这种情况下存在两次。因此,为了减少ASIC设计中流水线的级数,在这里设计了一个内部环回接口,通过重用之前的模块来达到两次转发的目的。
在昵称检查之后,首先获得外层转发的组播组信息,然后将报文分别进行复制,从相应的成员接口发送出去,此时完成的是基于TRILL昵称的转发。当存在本地成员的时候,不会获得出接口信息,直接转入“解封装处理”模块。解封装完成后以内部目的MAC和VLAN为关键字进行查表,获得内层转发的组播组信息,然后将解完封装的报文分别进行复制,从相应的成员接口发送出去,此时完成的是基于内层目的MAC和VLAN的转发。
本发明将介绍一种ASIC中实现TRILL报文转发的方法,主要介绍在ASIC中对TRILL报文处理的逻辑。该方法完全遵循IETF目前所制定的TRILL标准,实现TRILL报文的单播、组播以及协议报文上送CPU等一系列行为。通过逻辑固化在ASIC中后,可以实现TRILL报文的线速转发。并且,本发明作为以太网交换芯片的一个子特性,与其他以太网交换芯片的特性相结合,适用于数据中心等对TRILL有需求的以太网交换机中,降低部署TRILL的费用。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

Claims (9)

1.一种在ASIC中转发TRILL网络报文的方法,包括:
报文解析,对接收到的报文进行解析,得到报文头信息,包括目的MAC地址、VLAN信息、入接口的配置信息,并确认接收到的报文类型;
入接口信息获取,并根据入接口的配置信息进行查表;
查表,用解析得到的目的MAC地址和VLAN信息在TRILL转发表中进行查找,得到出接口的配置信息;
出接口信息获取,根据查表的结果,得到需要转发出去的出接口信息;
报文封装,将解析后的报文封装成TRILL报文,该TRILL报文头中含有源目MAC地址,并从对应的出接口中发送出去;
其特征在于,
所述接收到的报文类型是以太网报文时,进行上行报文处理,将本地以太网收到的以太网报文转发至TRILL网络;
所述接收到的报文是TRILL报文、OAM报文和协议报文时,进行下行报文处理,其中,所述查表步骤具体为:
邻居信息检查,检查接收到的报文的外层源MAC地址与入接口是否相匹配,如果匹配,则进行端口检查,如果不匹配,则进行丢弃报文处理;
端口检查,检查外层目的MAC地址是否为本设备端口的MAC地址,如果是,则再进行昵称检查,如果不是,则直接进行出接口信息获取;
昵称检查,检查报文的目的昵称是否为本设备昵称。
2.根据权利要求1所述的方法,其特征在于,所述以太网报文为组播报文时,查表得到的出接口的配置信息为一个组播组信息,
相应地,在所述出接口信息获取之前还包括组播信息获取的步骤,根据所述组播组信息索引对应一个组播组的出接口信息;
并在所述报文封装时,将以太网报文一一复制,根据不同的出接口信息进行封装,得到多份报文。
3.根据权利要求1所述的方法,其特征在于,所述接收到的报文是TRILL报文时,进行下行报文处理,将TRILL网络的TRILL报文转发至本地以太网,所述TRILL报文头还包括外层源MAC地址、外层目的MAC地址和TRILL报文的目的昵称。
4.根据权利要求3所述的方法,其特征在于,所述昵称检查是检查TRILL报文的目的昵称是否为本设备昵称,如果不是,则进行出接口信息获取,如果是,则判断所述TRILL报文是否为组播报文。
5.根据权利要求4所述的方法,其特征在于,当所述TRILL报文为单播报文时,进行解封装处理和内部信息查表,具体为:
所述解封装处理是将TRILL报文中的以太网报文头和TRILL报文头去除,得到原始的以太网数据,包括以太网的目的MAC地址和VLAN信息;
所述内部信息查表是用以太网的目的MAC地址和VLAN信息进行查表,得到出接口的配置信息;
当所述TRILL报文为组播报文时,在查表后先进行组播组信息获取,根据所述组播组信息索引对应一个组播组的出接口信息,所述出接口信息为TRILL报文的目的昵称,根据TRILL报文的目的昵称在TRILL网络中进行转发;
如果TRILL报文的目的昵称存在本地组播组成员时,还将所述TRILL报文进行解封装处理和内部信息查表,其中
所述解封装处理是将TRILL报文中的以太网报文头和TRILL报文头去除,得到原始的以太网数据,包括以太网的目的MAC地址和VLAN信息;
所述内部信息查表是用以太网的目的MAC地址和VLAN信息进行查表,得到出接口的配置信息。
6.根据权利要求5所述的方法,其特征在于,所述一个组播组的出接口信息是分别进行出接口信息获取,并将TRILL报文一一复制,根据不同的出接口信息进行封装,得到多份报文。
7.根据权利要求1所述的方法,其特征在于,所述接收到的报文类型是OAM报文时,进行下行报文处理,将OAM报文转发给CPU做进一步的处理,所述OAM报文包括TRILL报文的封装,经过解析后进行查表时,所述昵称检查是检查OAM报文的目的昵称是本设备昵称,检查得到OAM报文的目的昵称是本设备昵称,则进行出接口信息获取,得到出接口信息为CPU接口,将解析后的OAM报文进行封装后转发给CPU。
8.根据权利要求1所述的方法,其特征在于,所述接收到的报文类型是协议报文时,进行下行报文处理,将协议报文转发给CPU做进一步的处理,所述协议报文包括以太网类型字段,经过解析后进行查表时,所述端口检查得到出接口信息为CPU接口,则进行出接口信息获取,将解析后的协议报文进行封装后转发给CPU。
9.一种在ASIC中转发TRILL网络报文的***,包括:
用于对接收到的报文进行解析,得到报文头信息,包括目的MAC地址、VLAN信息、入接口的配置信息,并确认接收到的报文类型的模块;
用于获取入接口配置信息,并根据入接口的配置信息进行查表的模块;
用解析得到的目的MAC地址和VLAN信息在TRILL转发表中进行查找,得到出接口的配置信息的模块;
用于根据查表的结果,得到需要转发出去的出接口信息的模块;
用于将解析后的报文封装成TRILL报文,该TRILL报文头中含有源目MAC地址,并从对应的出接口中发送出去的模块,其特征在于,
所述查表模块包括邻居信息检查模块、端口检查模块和昵称检查模块,邻居信息检查模块检查接收到的TRILL报文的外层源MAC地址与入接口是否相匹配;端口检查模块以TRILL报文的外层目的MAC地址为关键字进行查找;昵称检查模块以TRILL报文的目的昵称为关键字进行查找。
CN201110237690.9A 2011-08-18 2011-08-18 在asic中转发trill网络报文的方法及*** Active CN102957616B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110237690.9A CN102957616B (zh) 2011-08-18 2011-08-18 在asic中转发trill网络报文的方法及***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110237690.9A CN102957616B (zh) 2011-08-18 2011-08-18 在asic中转发trill网络报文的方法及***

Publications (2)

Publication Number Publication Date
CN102957616A CN102957616A (zh) 2013-03-06
CN102957616B true CN102957616B (zh) 2015-09-23

Family

ID=47765866

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110237690.9A Active CN102957616B (zh) 2011-08-18 2011-08-18 在asic中转发trill网络报文的方法及***

Country Status (1)

Country Link
CN (1) CN102957616B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110177046A (zh) * 2019-04-18 2019-08-27 中国人民解放军战略支援部队信息工程大学 基于拟态思想的安全交换芯片、实现方法及网络交换设备

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103346962B (zh) * 2013-06-20 2016-08-17 杭州华三通信技术有限公司 未知单播报文转发方法及路由桥
CN104702506B (zh) * 2013-12-09 2018-10-19 华为技术有限公司 一种报文传输方法、网络节点及报文传输***
CN103701703B (zh) * 2013-12-31 2017-05-10 新华三技术有限公司 一种邻居关系管理方法及装置
CN104811386B (zh) * 2014-01-29 2018-03-16 华为技术有限公司 报文转发方法、设备及***
CN104113463B (zh) * 2014-07-24 2018-07-31 深圳市共进电子股份有限公司 一种基于网桥的数据报文处理方法、装置及网桥
CN104539545B (zh) * 2014-12-31 2018-01-12 新华三技术有限公司 Trill网络中的组播报文转发方法和设备
CN107528781A (zh) * 2016-06-22 2017-12-29 中兴通讯股份有限公司 组播报文的转发方法及装置、路由器
CN107566316A (zh) * 2016-06-30 2018-01-09 中兴通讯股份有限公司 一种报文解析方法、装置及网络处理器
CN106658236B (zh) * 2016-10-31 2020-05-05 盛科网络(苏州)有限公司 基于多层vlan标签处理的gpon业务承载芯片实现方法
CN106789644B (zh) * 2016-11-29 2020-01-07 深圳市楠菲微电子有限公司 一种trill组播报文的转发方法和装置
CN108989206B (zh) * 2018-08-22 2021-10-15 迈普通信技术股份有限公司 报文转发方法及装置
CN110852391A (zh) * 2019-11-13 2020-02-28 中国人民解放军91977部队 一种基于多种分类器的以太网报文分类方法和装置
CN117376272A (zh) * 2023-12-08 2024-01-09 广州通则康威科技股份有限公司 一种报文长度调整方法、装置、***和存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101827009A (zh) * 2009-03-04 2010-09-08 丛林网络公司 利用服务vlan标识符在trill网络中路由帧
CN101964746A (zh) * 2009-07-24 2011-02-02 丛林网络公司 在多宿的传统网桥节点的最短路径计算机网络中路由帧

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101827009A (zh) * 2009-03-04 2010-09-08 丛林网络公司 利用服务vlan标识符在trill网络中路由帧
CN101964746A (zh) * 2009-07-24 2011-02-02 丛林网络公司 在多宿的传统网桥节点的最短路径计算机网络中路由帧

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110177046A (zh) * 2019-04-18 2019-08-27 中国人民解放军战略支援部队信息工程大学 基于拟态思想的安全交换芯片、实现方法及网络交换设备

Also Published As

Publication number Publication date
CN102957616A (zh) 2013-03-06

Similar Documents

Publication Publication Date Title
CN102957616B (zh) 在asic中转发trill网络报文的方法及***
US9019976B2 (en) Redundant host connection in a routed network
CN101296186B (zh) 一种路由交换设备、方法和交换线卡板
CN102868614B (zh) Trill网络中的报文转发方法和路由网桥
CN103929461B (zh) 堆叠***中的mac地址信息同步方法及装置
CN101573913B (zh) 用于多播路由选择的方法和设备
CN101877671B (zh) 镜像报文的发送方法、交换芯片及以太网路由器
CN100531138C (zh) 运营商边界节点、虚拟专用局域网服务通信方法及***
CN100407704C (zh) 媒体接入控制层地址的动态学习方法
CN101848186B (zh) 一种塑料光纤三层以太网交换机
CN102368727A (zh) 跨ip网络的trill网络通信方法、***和设备
CN102143026A (zh) 一种在虚拟二层网络中避免环路的方法
CN101640703A (zh) 二层mac清除/重路由
CN102724131B (zh) 一种ip报文等价路由均衡实现的方法及装置
US20140086100A1 (en) Multi-Chassis Cluster Synchronization Using Shortest Path Bridging (SPB) Service Instance Identifier (I-SID) Trees
US20070217438A1 (en) Ring node device and method of connecting terminal to ring node device
CN102801622B (zh) 一种数据报文的转发方法及转发装置
CN103841013A (zh) Trill网络中的报文转发方法及设备
JP4953360B2 (ja) 運用保守管理フレームを処理する通信装置及びプログラム
CN102769567B (zh) 一种多链接透明互联网络数据帧的转发方法和装置
CN113630345A (zh) 一种国产化24端口6u_vpx三层千兆网络交换模块
CN101729361A (zh) 报文处理的方法和装置
CN102857417A (zh) Trill网络中数据的传输方法及***
GB2514634A (en) Dynamic multicast state aggregation in transport networks
CN112543142B (zh) 基于fpga实现rstp环网协议的方法和装置

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
CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: 215000 unit 13 / 16, 4th floor, building B, No.5 Xinghan street, Suzhou Industrial Park, Jiangsu Province

Patentee after: Suzhou Shengke Communication Co.,Ltd.

Address before: 215021 unit 13 / 16, floor 4, building B, No. 5, Xinghan street, Suzhou Industrial Park, Suzhou, Jiangsu

Patentee before: CENTEC NETWORKS (SU ZHOU) Co.,Ltd.