一种交叉芯片的组播转发方法及系统
技术领域
本发明涉及分组交换技术领域,具体涉及一种交叉芯片的组播转发方法及系统。
背景技术
组播是分组交换中一种常见的业务模型,转发节点需要完成一到多的报文复制与转发。目前在机架式设备中,分布式组播实现方法由业务芯片、交叉芯片共同完成,而交叉芯片的组播设计往往是直接和业务组播组关联起来完成芯片间的每个组播转发,从而达到转发组播业务的目的。其特点是交叉芯片的组播表与业务组播组同大小,业务有多少,交叉芯片的组播表项就需要多少,动辄几十乃至几百k的业务组播组个数。
发明内容
针对现有技术中存在的缺陷,本发明的目的在于提供一种交叉芯片的组播转发方法及系统,大大减少了交叉芯片上组播转发的设计消耗。
为达到以上目的,本发明采取的技术方案是:一种交叉芯片的组播转发方法,包括以下步骤:
创建汇聚组播组表项并配置到交叉芯片上,所述汇聚组播组表项包含所有可能的汇聚组播组,每个汇聚组播组为出方向的芯片分布组合;
根据各个业务组播组的芯片分布,得到业务组播组对应的汇聚组播组,生成业务组播组到汇聚组播组的组播映射表并配置到业务芯片;
入方向的业务芯片收到待转发业务时,查找组播映射表得到对应的汇聚组播组,在报文中的业务组播头前添加对应的汇聚组播组头,发送至交叉芯片;
交叉芯片收到报文时,根据汇聚组播组头和汇聚组播组表项进行组播转发;
出方向的业务芯片收到报文时,剥去汇聚组播组头后进行业务组播组的转发。
在上述技术方案的基础上,创建创建汇聚组播组表项时,所有可能的汇聚组播组的总数为:
在上述技术方案的基础上,所述汇聚组播组头的组成字段包括:报文类型、源芯片和汇聚组播组;所述业务组播头的组成字段包括:业务类型、业务组播组。
在上述技术方案的基础上,入方向的业务芯片根据各个业务组播组对应的芯片分布,得到业务组播组对应的汇聚组播组,包括以下步骤:
将业务多播到该业务所对应的所有芯片上;
根据标准业务组播组加入报文得到每个业务的业务组播组的所对应的芯片分布,从汇聚组播组表项中找到具有相同芯片分布的汇聚组播组,作为该业务组播组对应的汇聚组播组。
在上述技术方案的基础上,所述交叉芯片收到报文时,根据汇聚组播组头和汇聚组播组表项进行组播转发,具体包括以下步骤:
交叉芯片收到报文时,根据汇聚组播组头查找汇聚组播组表项,得到对应的汇聚组播组;
根据汇聚组播组将报文发送至对应的出方向芯片。
本发明实施例还提供一种交叉芯片的组播转发系统,包括:汇聚组播组创建模块、映射表创建模块、入方向的业务芯片、交叉芯片和出方向的业务芯片:
所述汇聚组播组创建模块用于:创建汇聚组播组表项并配置到交叉芯片上,所述汇聚组播组表项包含所有可能的汇聚组播组,每个汇聚组播组为出方向的芯片分布组合;
所述映射表创建模块用于:根据各个业务组播组的芯片分布,得到业务组播组对应的汇聚组播组,生成业务组播组到汇聚组播组的组播映射表并配置到业务芯片;
所述入方向的业务芯片用于:入方向的业务芯片收到待转发业务时,查找组播映射表得到对应的汇聚组播组,在报文中的业务组播头前添加对应的汇聚组播组头,发送至交叉芯片;
所述交叉芯片用于:收到报文时,根据汇聚组播组头和汇聚组播组表项进行组播转发;
所述出方向的业务芯片用于:收到报文时,剥去汇聚组播组头后进行业务组播组的转发。
在上述技术方案的基础上,所述汇聚组播组创建模块创建汇聚组播组表项时,所有可能的汇聚组播组的总数为:
在上述技术方案的基础上,所述汇聚组播组头的组成字段包括:报文类型、源芯片和汇聚组播组;所述业务组播头的组成字段包括:业务类型、业务组播组。
在上述技术方案的基础上,所述入方向的业务芯片根据各个业务组播组对应的芯片分布,得到业务组播组对应的汇聚组播组,包括以下步骤:
将业务多播到该业务所对应的所有芯片上;
根据标准业务组播组加入报文得到每个业务的业务组播组的所对应的芯片分布,从汇聚组播组表项中找到具有相同芯片分布的汇聚组播组,作为该业务组播组对应的汇聚组播组。
在上述技术方案的基础上,所述交叉芯片具体用于:
收到报文时,根据汇聚组播组头查找汇聚组播组表项,得到对应的汇聚组播组;
根据汇聚组播组将报文发送至对应的出方向芯片。
与现有技术相比,本发明的优点在于:
本发明在新定义汇聚组播组的情况下,用一条汇聚组播组承载多条具有相同目的芯片分布的业务组播组,大大减少了交叉芯片上组播转发的设计消耗。入方向的业务芯片收到待转发业务时,查找业务组播组到汇聚组播组的组播映射表得到对应的汇聚组播组,并在报文中的业务组播头前添加对应的汇聚组播组头;交叉芯片收到报文时,根据汇聚组播组头进行组播转发;出方向的业务芯片收到报文时,剥去汇聚组播组头后进行业务组播组的转发。本发明使交叉芯片上的组播表项变得很简单,交叉芯片不敏感业务组播任何信息,只需根据汇聚组播组头进行芯片间的组播转发,实现大大减少交叉芯片的硬件消耗同时完成组播业务的转发。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例的交叉芯片的组播转发方法的流程示意图;
图2为本发明实施例的交叉芯片的组播转发方法的原理示意图;
图3为本发明实施例的汇聚组播组头与业务组播头的示意图;
图4为本发明实施例的汇聚组播组与业务组播组映射关系示意图;
图5为本发明实施例的使用汇聚组播完成业务组播转发流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
以下结合附图对本发明的实施例作进一步详细说明。
参见图1所示,本发明实施例的实施例的交叉芯片的组播转发方法,包括以下步骤:
S1、创建汇聚组播组集合表项并配置到交叉芯片各芯片上,所述汇聚组播组表项包含所有可能的汇聚组播组,每个汇聚组播组为出方向的芯片分布组合;
S2、根据各个业务组播组的芯片分布,得到业务组播组对应的汇聚组播组,生成业务组播组到汇聚组播组的组播映射表并配置到业务芯片;
S3、入方向的业务芯片收到待转发业务时,查找组播映射表得到对应的汇聚组播组,在报文中的业务组播头前添加对应的汇聚组播组头,发送至交叉芯片;
S4、交叉芯片收到报文时,根据汇聚组播组头和汇聚组播组表项进行组播转发;
S5、出方向的业务芯片收到报文时,剥去汇聚组播组头后进行业务组播组的转发。
参见图3所示,本发明实施例新定义一种汇聚组播组头,简称为cell头,汇聚组播组头的组成字段包括:报文类型、源芯片和汇聚组播组等;本发明实施例的cell头格式具体定义如表1所示:
表1cell头格式定义表
在cell头之后,承载组播业务。参见图3所示,本发明实施例的业务组播头,业务组播头的组成字段包括业务类型、业务组播组等。业务组播头的具体定义如表2所示:
表2业务组播头格式定义表
从而实现业务组播报文承载在汇聚组播组上。
本发明实施例定义汇聚组播组用于承载多条具有相同目的芯片分布的业务组播组。每个汇聚组播组为出方向的芯片分布组合,对于一个拥有n个业务芯片的分布式系统,所用到的汇聚组播组的个数为:
以n=3为例,假设芯片为A,B,C,则汇聚组播组表项如表3所示:
表3汇聚组播组表项
所有的业务组播都承载在这7个汇聚组播组上转发,无论业务组播有多少,一定是这7个汇聚组中的一个模型。
进一步的,从汇聚组播组集合中找到具有相同芯片分布的汇聚组播组,填写在nfi上的业务组播到汇聚组播的组播映射表,组播映射表如表4所示:
表4组播映射表
参见图2所示,本发明实施例的组播汇聚的方法,包括以下步骤:
入方向的业务芯片完成cell头封装,并且映射业务组播组到汇聚组播组。
中间的交叉芯片完成汇聚组播组的转发,要求汇聚组播组表项配置在交叉芯片上,汇聚组播组表项包含所有可能的汇聚组播组,即所有可能的出方向的芯片的排列组合。
出方向的芯片完成汇聚组播组头的剥离,使用业务组播组完成业务组播的后续转发。
图4所示为汇聚组播组与业务组播组映射关系示意图。关于如何将业务组播汇聚到可承载的汇聚组播组上,包括以下步骤:
使用公式
将业务多播到该业务所对应的所有芯片上;
根据标准业务组播组加入报文得到每个业务的业务组播组的所对应的芯片分布,从汇聚组播组集合中找到具有相同芯片分布的汇聚组播组,填写在nfi上的业务组播到汇聚组播的组播映射表,参见图4所示。
在以上步骤完成之后,报文的转发如图5所示。
首先在入方向的业务芯片上查找业务组播表,得到业务组播组。
在送入交叉芯片之前,查业务组播组到汇聚组播组的组播映射表,得到汇聚组播组,添加汇聚组播组头。
在交叉芯片上根据汇聚组播组头查找汇聚组播组表项,进行汇聚组播组的转发。
报文离开交叉芯片到达出方向的业务芯片,汇聚组播组头被剥去。
出方向芯片完成后续业务组播组的转发。
本发明实施例在新定义汇聚组播组的情况下,用一条汇聚组播组承载多条具有相同目的芯片分布的业务组播组,大大减少了交叉芯片上组播转发的设计消耗。入方向的业务芯片收到待转发业务时,查找业务组播组到汇聚组播组的组播映射表得到对应的汇聚组播组,在报文中的业务组播头前添加对应的汇聚组播组头,发送至相应的交叉芯片;交叉芯片收到报文时,根据汇聚组播组头进行组播转发;出方向的业务芯片收到报文时,剥去汇聚组播组头后进行业务组播组的转发。实现大大减少交叉芯片的硬件消耗同时完成组播业务的转发。
基于同一发明构思,本发明实施例还提供一种交叉芯片的组播转发系统,包括:汇聚组播组创建模块、映射表创建模块、入方向的业务芯片、交叉芯片和出方向的业务芯片:
所述汇聚组播组创建模块用于:创建汇聚组播组表项并配置到交叉芯片上,所述汇聚组播组表项包含所有可能的汇聚组播组,每个汇聚组播组为出方向的芯片分布组合;
所述映射表创建模块用于:根据各个业务组播组的芯片分布,得到业务组播组对应的汇聚组播组,生成业务组播组到汇聚组播组的组播映射表并配置到业务芯片;
所述入方向的业务芯片用于:入方向的业务芯片收到待转发业务时,查找组播映射表得到对应的汇聚组播组,在报文中的业务组播头前添加对应的汇聚组播组头,发送至交叉芯片;
所述交叉芯片用于:收到报文时,根据汇聚组播组头和汇聚组播组表项进行组播转发;
所述出方向的业务芯片用于:收到报文时,剥去汇聚组播组头后进行业务组播组的转发。
优选的,所述汇聚组播组创建模块创建汇聚组播组表项时,所有可能的汇聚组播组的总数为:
优选的,所述汇聚组播组头的组成字段包括:报文类型、源芯片和汇聚组播组;所述业务组播头的组成字段包括:业务类型、业务组播组。
作为本发明实施例优选的实施方式,所述入方向的业务芯片根据各个业务组播组对应的芯片分布,得到业务组播组对应的汇聚组播组,包括以下步骤:
将业务多播到该业务所对应的所有芯片上;
根据标准业务组播组加入报文得到每个业务的业务组播组的所对应的芯片分布,从汇聚组播组表项中找到具有相同芯片分布的汇聚组播组,作为该业务组播组对应的汇聚组播组。
作为本发明实施例优选的实施方式,所述交叉芯片具体用于:
收到报文时,根据汇聚组播组头查找汇聚组播组表项,得到对应的汇聚组播组;
根据汇聚组播组将报文发送至对应的出方向芯片。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、服务器或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。