一种分布式通信设备及其报文转发方法和装置与流程

文档序号:13391461阅读:158来源:国知局
一种分布式通信设备及其报文转发方法和装置与流程

本申请涉及通信技术,特别涉及分布式通信系统,具体地讲是一种分布式通信设备及其报文转发方法和装置。



背景技术:

通信设备的链路聚合组(linkaggregationgroup,lag)是多条物理链路构成的一条逻辑链路。链路聚合组的所有物理链路的物理端口构成的逻辑端口是聚合端口。每条物理链路的物理端口是聚合端口一个成员端口。每个成员端口既可以被设置为选中(selected)状态,通过所连接的链路接收和发送报文;也可以被设置为非选中(unselected)状态而不能参与报文转发。通信设备通过链路聚合组用以增加报文转发链路的带宽,并且通过同一链路聚合组的物理链路之间的动态备份,提高报文转发链路的可靠性。

分布式通信设备中,每个链路聚合组的聚合端口的选中状态的成员端口可以位于不同单板。主控板的处理单元将每个聚合端口的选中成员端口列表同步到每个单板,这样所有的那般上选中成员端口列表都是相同的。单板查找到待转发报文的目的地址匹配转发表项的出端口是一个聚合端口时,查找该聚合端口的选中端口列表,根据待报文计算的散列值(hash值)在选中端口列表中选择匹配域散列值的成员端口作为链路聚合组的聚合端口发送待转发报文的物理端口。

但存在的问题是,如果单板从选中端口列表选择的物理端口位于其他单板,需要通过分布式通信设备内部板间链路将待转发报文发送到选中物理端口所在的单板。由于在分布式通信设备只以这一种方式设置每个聚合端口的选中成员端口列表,导致以不同聚合端口作为出端口的流量在分布式通信设备都会产生跨单板转发流量,而单板之间的板间链路带宽是优先,这样分布式通信设备内部存在大量的跨单板流量,容易造成板间链路拥堵导致的报文转发时延增长,甚至还会造成板间链路丢包而影响分布式通信设备的报文转发可靠性。



技术实现要素:

本发明的目的在于提供一种分布式通信设备及其报文转发方法和装置,用于实现不同模式设置不同级别的选中成员端口列表,用以减少出端口是聚合端口的流量占用的分布式通信设备内部的板间链路的带宽。为实现上述发明目的,本发明提供了一种报文转发方法,应用于分布式通信设备,该方法包括:

主控板的cpu获取聚合端口的全部选中成员端口,基于多种转发模式中的一种,分别设置每个单板的第一选中成员端口列表以及第二选中成员端口列表;其中每个单板的第一选中成员端口列表用于执行聚合端口本地转发且优先级高于用于执行聚合端口全局转发的第二选中成员端口列表;

主控板的cpu将每个单板的第一选中成员端口列表和第二选中成员端口列表分别同步至每个单板的cpu;

每个单板各自的cpu接收同步至本单板的第一选中成员端口列表和第二选中成员端口列表并存储于各转发单元;

每个单板的各转发单元在本地存储的转发表项中查找到聚合端口为待转发报文的出端口时,从存储于本地的第一选中成员端口列表选择一个选中成员端口发送待转发报文;若任一单板的一个转发单元确定存储于本地的第一选中成员端口列表为空,则在存储于本地的第二选中成员端口列表中选择一个选中成员端口发送待转发报文。

为实现上述目的,本发明还提供了一种分布式通信设备,分布式通信设备的主控板以及多个单板之间通过板间链路连接,其中,主控板的cpu通过调用和执行主控板的存储介质的机器可执行指令,用以获取聚合端口的全部选中成员端口;基于多种转发模式中的一种,分别设置每个单板的第一选中成员端口列表以及第二选中成员端口列表;其中每个单板的第一选中成员端口列表用于执行聚合端口本地转发且优先级高于用于执行聚合端口全局转发的第二选中成员端口列表;将每个单板的第一选中成员端口列表和第二选中成员端口列表分别同步至每个单板的cpu;

每个单板各自的cpu通过调用和执行各自的存储介质的机器可执行指令,接收同步至本单板的第一选中成员端口列表和第二选中成员端口列表并存储于各转发单元;

每个单板的各转发单元在本地存储的转发表项中查找到聚合端口为待转发报文的出端口时,从存储于本地的第一选中成员端口列表选择一个选中成员端口发送待转发报文;若任一单板的一个转发单元确定存储于本地的第一选中成员端口列表为空,则在存储于本地的第二选中成员端口列表中选择一个选中成员端口发送待转发报文。

为实现上述目的,本发明还提供可以应用于分布式通信设备的单板的转发单元的报文转发方法,该方法包括,从单板的cpu接收由主控板cpu同步的第一选中成员端口列表以及第二选中成员端口列表;第一选中成员端口列表用于执行聚合端口本地转发且优先级高于用于执行聚合端口全局转发的第二选中成员端口列表;将第一选中成员端口列表以及第二选中成员端口列表存储于本地;

接收数据报文;查找到数据报文的目的地址匹配的转发表项的出端口为聚合端口;

读取聚合端口的第一选中成员端口列表;若第一选中成员端口列表不为空,则从第一选中成员端口列表选择一个选中成员端口发送数据报文;若第一选中成员端口列表为空,则从第二选中成员端口列表中选择一个聚合端口的选中成员端口发送待转发报文。

为实现上述目的,本发明还提供一种可被应用于分布式通信设备的单板的转发单元的报文转发装置,该装置包括:

同步模块,用以从单板的cpu接收的同步的第一选中成员端口列表以及第二选中成员端口列表;第一选中成员端口列表用于执行聚合端口本地转发且优先级高于用于执行聚合端口全局转发的第二选中成员端口列表;

存储模块,用以将第一选中成员端口列表以及第二选中成员端口列表存储于本地以及存储转发表项;

接收模块,用以接收数据报文;

发送模块,用以查找到数据报文的目的地址匹配的转发表项的出端口为聚合端口;读取聚合端口的第一选中成员端口列表;若第一选中成员端口列表不为空,则从第一选中成员端口列表选择一个选中成员端口发送数据报文;若第一选中成员端口列表为空,则从第二选中成员端口列表中选择一个聚合端口的选中成员端口发送数据报文。

基于以上方案,本发明的有益效果在于,分布式通信设备基于不同的方式为每个单板设置高优先级的聚合端口本地转发的选中成员端口列表以及较低优先级的聚合端口全局转发的选中成员端口列表,这样各单板优先通过聚合端口本地转发的选中成员端口发送以聚合端口作为出端口的流量,减少跨单板的流量;不具有聚合端口的选中成员端口的单板则通过聚合端口全局转发,将聚合端口为出端口的流量送往其他单板转发。因此,通过不同优先级的选中成员端口列表,减少了跨单板流量,减少板间链路拥堵,避免报文转发时延增长,避免板间链路丢包影响分布式通信设备的报文转发可靠性。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1示出了本发明实施例提供的分布式通信设备转发报文的方法的流程;

图2示出了本发明实施例提供的分布式通信设备;

图3示出了本发明提供的分布式通信设备;

图4为本发明实施例提供的应用于分布式通信设备的单板的转发单元的报文转发装置的示意图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

图1流程图示出了本发明实施例提供的分布式通信设备转发报文的流程:

步骤101,从单板的cpu接收由主控板cpu同步的第一选中成员端口列表以及第二选中成员端口列表;该第一选中成员端口列表用于执行聚合端口本地转发且优先级高于用于执行聚合端口全局转发的第二选中成员端口列表。

第一选中成员端口列表可包含位于单板的一个以上的选中成员端口;第二选中成员列表包含聚合端口的所有选中成员端口。或者,第一选中成员端口列表包含位于转发单元的一个以上的选中成员端口;第二选中成员列表包含聚合端口的所有选中成员端口。

步骤102,将第一选中成员端口列表以及第二选中成员端口列表存储于本地;

步骤103,接收数据报文;

步骤104,查找到数据报文的目的地址匹配的转发表项的出端口为聚合端口;

步骤105,读取聚合端口的第一选中成员端口列表;

步骤106,确定第一选中成员端口列表是否为空,若否,则执行步骤107;若是,则执行步骤108;

步骤107,从第一选中成员端口列表选择一个选中成员端口发送数据报文;

步骤108,从第二选中成员端口列表中选择一个选中成员端口发送待转发报文。

图1所示方法的有益效果在于,分布式通信设备的单板通过不同优先级的选中成员端口列表,优先通过聚合端口本地转发的选中成员端口发送以聚合端口作为出端口的流量,只有在单板的转发单元不具有聚合端口的选中成员端口时,再通过聚合端口全局转发,将聚合端口为出端口的流量送往其他单板转发。因此,减少了跨单板流量。

图2所示分布式通信设备中,主控板210和单板220、单板230以及单板240通过板间链路连接。单板220的转发单元222的端口224,单板230的转发单元232的端口234以及单板240的转发单元242的端口244是聚合端口的成员端口。但是端口244被设置为未选中成员端口。

主控板210的cpu211获取聚合端口的选中成员端口224以及234,基于单板转发模式,将选中成员端口224设置在单板220的第一选中成员端口列表,将选中成员端口234设置在单板230的第一选中成员端口列表。单板240的第一选中成员端口列表未做设置,为空。主控板210的cpu211将全部选中成员端口224和234设置于单板220、单板230以及单板240的第二选中成员列表。

主控板210的cpu211将单板220的第一选中成员端口列表和第二选中成员端口列表同步至单板220的cpu221;单板220的cpu221接收同步至本单板的第一选中成员端口列表和第二选中成员端口列表,存储于转发单元222。

主控板210的cpu211将单板230的第一选中成员端口列表和第二选中成员端口列表同步至单板230的cpu231;单板230的cpu231接收同步至本单板的第一选中成员端口列表和第二选中成员端口列表,存储于转发单元232。

主控板210的cpu211将单板240的第一选中成员端口列表和第二选中成员端口列表同步至单板240的cpu241;单板240的cpu241接收同步至本单板的第一选中成员端口列表和第二选中成员端口列表,存储于转发单元242。

当单板220的转发单元通过端口223收到数据报文时,在存储的转发表项中查找到聚合端口是待转发的数据报文的出端口时,读取存储于本地的聚合端口的第一选中成员端口列表,选择位于选中成员端口224发送待转发的数据报文。

当单板240的转发单元242通过端口243收到数据报文时,在存储的转发表项中查找到聚合端口是待转发的数据报文的出端口时,读取存储于本地的聚合端口的第一选中成员端口列表,确定为空,则读取存储于本地的聚合端口的第二选中成员端口列表,在聚合端口的所有选中成员端口224和234中选择选中成员端口234发送待转发的数据报文。单板240的转发单元通过板间链路将带有板间报文头的数据报文发送到交换单元234,交换单元230根据板间通信头的中指示的出端口234发送剥除了板间报文头的数据报文。

图2中,cpu211通过调用和执行存储器212存储的机器可执行指令实现上述处理。同样,cpu221,cpu231以及cpu241调用和执行各自的存储器存储的机器可执行指令实现上述处理。图2中的转发单元可以是asic或fpga实现的转发芯片。

图2所示的分布式系统中,单板220的转发单元222优先通过聚合端口本地转发的选中成员端口发送,单板240的转发单元224不具有聚合端口的选中成员端口时,通过聚合端口全局转发,将报文送往所选的选中成员端口所在的单板转发。相比现有方式,减少了跨单板流量。

图3所示分布式通信设备中,主控板310和单板320、单板330以及单板340通过板间链路连接。端口325、326、334以及344是聚合端口的成员端口。但是端口344被设置为未选中成员端口。

主控板310的cpu311获取聚合端口的选中成员端口325、326以及334,基于单板转发模式,将选中成员端口325和326设置在单板320的第一选中成员端口列表,将选中成员端口334设置在单板330的第一选中成员端口列表。单板340的第一选中成员端口列表为空。主控板310的cpu311将全部选中成员端口325、326以及334设置于单板320、330以及340的第二选中成员列表。

主控板310的cpu311将单板320的第一选中成员端口列表和第二选中成员端口列表同步至单板320的cpu321;cpu321接收同步至本单板的第一选中成员端口列表和第二选中成员端口列表,分别存储于转发单元322和323。

cpu311将单板330的第一选中成员端口列表和第二选中成员端口列表同步至cpu331;cpu331接收同步至本单板的第一选中成员端口列表和第二选中成员端口列表,存储于转发单元332。

cpu311将单板340的第一选中成员端口列表和第二选中成员端口列表同步至cpu341;cpu341接收同步至本单板的第一选中成员端口列表和第二选中成员端口列表,存储于转发单元342。

当单板320的转发单元323通过端口327收到数据报文时,在存储的转发表项中查找到聚合端口是待转发的数据报文的出端口时,读取存储于本地的聚合端口的第一选中成员端口列表,选择成员端口325发送待转发的数据报文。转发单元323通过连接转发单元322的物理连接(图中未示)将数据报文以及指示出端口325的出端口信息发送到转发单元322。转发单元322通过选中成员端口325发送数据报文。

当单板340的转发单元342通过端口343收到数据报文,在存储的转发表项中查找到聚合端口是待转发的数据报文的出端口时,读取存储于本地的聚合端口的第一选中成员端口列表,确定为空,则读取存储于本地的聚合端口的第二选中成员端口列表,在聚合端口的所有选中成员端口325、326以及334中选择选中成员端口326发送待转发的数据报文。单板340的转发单元通过板间链路将带有板间报文头的数据报文发送到交换单元321,交换单元321根据板间通信头的中指示的出端口326发送剥除板间报文头的数据报文。

主控板310的cpu311检测选中成员端口325切换为非选中成员端口,从单板320的第一选中成员端口列表删除非选中成员端口325;从单板320、330以及340的第二选中成员端口列表分别删除非选中成员端口325。

cpu311将删除了非选中成员端口325的第一选中成员端口列表同步至单板320的cpu321,将删除了非选中成员端口325的第二选中成员端口列表分别同步至相应的cpu321、cpu331以及cpu341。

cpu321接收同步至本单板的第一选中成员端口列表和第二选中成员端口列表,分别存储各转发单元322和323。cpu331接收同步至本单板第二选中成员端口列表,存储于转发单元332。单板340的cpu341接收同步至本单板的第二选中成员端口列表,存储于转发单元342。

在图3所示的实施例,主控板310的cpu311还可基于芯片优先模式,将选中成员端口325设置在单板320的转发单元322的第一选中成员端口列表,将全部选中成员端口325、326以及334设置于单板320的转发单元322的第二选中成员列表;将选中成员端口326设置在单板320的转发单元323的第一选中成员端口列表,将全部选中成员端口325、326以及334设置于转发单元323的第二选中成员列表。

当单板320的转发单元323通过端口327收到数据报文时,在存储的转发表项中查找到聚合端口是待转发的数据报文的出端口时,读取存储于本地的聚合端口的第一选中成员端口列表,选择本地的选中成员端口326发送待转发的数据报文。

当主控板310的cpu311检测到选中成员端口326被切换为非选中成员端口,将其从转发单元323的第一选中成员端口删除,然后同步至cpu321。cpu321接收同步的转发单元323的第一选中成员端口列表,存储在转发单元323。后续转发单元323通过端口327收到出端口是聚合端口的数据报文时,确定第一选中成员端口列表为空,则在第二选中成员端口列表中从选中成员端口325、334以及344中选择一个进行转发。

图3中,cpu311通过调用和执行存储器312存储的机器可执行指令实现上述处理。同样,cpu321,cpu331以及cpu341调用和执行各自的存储器中存储的机器可执行指令实现上述处理。图3中的转发单元可是由asic或fpga实现的转发芯片。图3中,转发芯片322还具有端口324,转发芯片332还具有端口333。

图4所示为本发明实施例提供的应用于分布式通信设备的单板转发单元的报文转发装置的示意图。该报文转发装置400被应用于分布式通信设备的单板的转发单元。转发装置400包括:同步模块410、存储模块420,接收模块430以及发送模块440。

同步模块410,从单板的cpu接收的同步的第一选中成员端口列表以及第二选中成员端口列表;其中,第一选中成员端口列表用于执行聚合端口本地转发且优先级高于用于执行聚合端口全局转发的第二选中成员端口列表。

存储模块420,存储第一选中成员端口列表以及第二选中成员端口列表以及存储转发表项。

接收模块430,接收数据报文。

发送模块440,查找到数据报文的目的地址匹配的转发表项的出端口为聚合端口;读取聚合端口的第一选中成员端口列表;若第一选中成员端口列表不为空,则从第一选中成员端口列表选择一个选中成员端口发送数据报文;若第一选中成员端口列表为空,则从第二选中成员端口列表中选择一个聚合端口的选中成员端口发送数据报文。

存储模块420存储的第一选中成员端口列表包含位于单板的一个以上的选中成员端口,存储的第二选中成员列表包含聚合端口的所有选中成员端口。

或者,存储模块420存储的第一选中成员端口列表包含位于转发单元的一个以上的选中成员端口,存储的第二选中成员列表包含聚合端口的所有选中成员端口。

图4所示的报文转发装置400可应用单板的转发单元,单板的转发单元可以是fpga或asic等芯片实现的转发芯片图4中所示的报文转发装置可使得分布式通信设备的单板通过不同优先级的选中成员端口列表,优先通过聚合端口本地转发的选中成员端口发送以聚合端口作为出端口的流量,只有在单板的转发单元不具有聚合端口的选中成员端口时,再通过聚合端口全局转发,将聚合端口为出端口的流量送往其他单板转发。因此,减少了跨单板流量。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1