基于资源端口的组播报文的转发方法和相关装置与流程

allin2026-08-08  6


本技术属于组播报文转发,具体涉及一种基于资源端口的组播报文的转发方法和相关装置。


背景技术:

1、组播是以太网ip报文传输的三种基本方式之一(单播、广播、组播),被广泛引用与iptv、实时数据传送和多媒体会议等网络业务中。以太网数据转发芯片对组播报文进行转发,一般转发流程是通过目的ip(或目的mac地址)确认对应的组播组id,然后根据组播组id找到对应的组播成员口,将组播报文根据成员口数量进行复制,每个成员口都复制转发一份报文。成员口可以是一般的物理实端口,也可以是链路聚合的虚端口(trunk口)。每个trunk口一般分配有唯一的trunk id。

2、为了支持高带宽、大吞吐量,数据转发芯片常采用多core转发架构,每个core只处理部分芯片业务口的数据,多个core协同工作,增加了芯片的处理带宽。但在报文转发过程中,所有组播报文会无条件送往所有core,每个core的组播处理引擎slice会对报文进行查met表处理,met表仅存储属于本slice对应的组播出端口,因此会出现部分slice查表处理后发现本slice不存在报文的组播出端口,则不进行复制转发,在此过程中浪费了met表的处理性能。

3、并且,在现有的多core转发架构中,当trunk的成员口发生更新时,需要刷新该trunk口对应的所有组播组,更新相应的met表。当系统存在的组播组数量较多时,会对系统性能造成极大负担,影响业务处理的实时性。


技术实现思路

1、本技术的目的在于提供一种基于资源端口的组播报文的转发方法和相关装置,以解决现有技术中存在的多core转发架构中,所有组播报文无条件送往所有core,存在部分core的slice查表处理后发现本slice不存在报文的组播出端口,不进行复制转发,浪费了met表的处理性能;同时当trunk的成员口发生更新时,需要刷新该trunk口对应的所有组播组,更新相应的met表会对系统性能造成极大负担,影响业务处理的实时性。

2、为了实现上述目的,本技术采用的一个技术方案是:

3、提供一种基于资源端口的组播报文的转发方法,应用于多转发架构的芯片,所述芯片配置有rportblockmask表,所述rportblockmask表用于描述报文哈希值与资源端口id的映射关系,每一所述资源端口id对应于唯一的物理端口或链路聚合组,每一所述转发架构的处理引擎配置有存储对应的资源端口id以及资源端口id与组播组id映射关系的met表;

4、所述转发方法包括:

5、基于所述met表,构建premet表,所述premet表包括所有所述转发架构对应的资源端口id以及资源端口id与组播组id映射关系;

6、接收组播报文,所述组播报文包括目的地址字段;

7、基于所述组播报文的目标组播组id查询所述premet表,得到第一资源端口信息,所述第一资源端口信息包括所有所述转发架构对应的所述目标组播组id下的资源端口id;

8、计算所述组播报文的报文哈希值,基于所述报文哈希值索引所述rportblockmask表,得到第二资源端口信息,所述第二资源端口信息包括所述组播报文对应的资源端口id;

9、基于所述第一资源端口信息和所述第二资源端口信息,得到转发架构出口信息,所述转发架构出口信息包括所述组播报文对应的的资源端口出口所属的目标转发架构;

10、基于所述转发架构出口信息,将所述组播报文发送至所述目标转发架构进行复制并转发。

11、在一个或多个实施方式中,所述第一资源端口信息包括第一位图,所述第二资源端口信息包括第二位图,所述第一位图和所述第二位图均包括多个位图区域,每一位图区域与一所述转发架构对应,且每一位图区域包括依据所述资源端口id排列的若干位,所述第一位图和第二位图的相同位对应同一所述转发架构的同一资源端口id;

12、所述转发架构对应的目标组播组id下的资源端口id中,对应于链路聚合组的资源端口id在所有对应的转发架构中的对应位全部置位,对应于物理端口的资源端口id仅在物理端口对应的转发架构中的对应位置位;

13、所述组播报文对应的资源端口id中,对应于物理端口的资源端口id在所述第二位图中所有位图区域的对应位全部置位,对应于链路聚合组的资源端口id在所述第二位图中的目标位图区域的对应位置位,所述目标位图区域为所述链路聚合组中与所述组播报文对应的实际端口所属转发架构对应的位图区域。

14、在一个或多个实施方式中,所述转发架构出口信息包括第一出口位图,所述第一出口位图包括多个位图区域,每一位图区域与一所述转发架构对应,所述第一出口位图和所述第一位图的相同位对应同一所述转发架构的同一资源端口id,且所述第一出口位图中存在置位的位图区域对应的转发架构为所述目标转发架构;

15、所述基于所述第一资源端口信息和所述第二资源端口信息,得到转发架构出口信息的步骤包括:

16、对所述第一位图和所述第二位图进行按位与操作,得到所述第一出口位图。

17、在一个或多个实施方式中,所述基于所述转发架构出口信息,将所述组播报文发送至所述目标转发架构进行复制并转发的步骤包括:

18、在所述目标转发架构中,基于目标组播组id查询所述目标转发架构的met表,得到第三资源端口信息,所述第三资源端口信息包括所述目标转发架构对应的所述目标组播组id下的资源端口id;

19、基于所述第二资源端口信息和所述第三资源端口信息,得到资源端口出口信息,所述资源端口出口信息包括所述组播报文在所述目标转发架构中的目标出口的资源端口id;

20、基于所述资源端口出口信息对所述组播报文进行复制并转发。

21、在一个或多个实施方式中,所述第三资源端口信息包括第三位图,所述第三位图包括依据所述资源端口id排列的若干位,所述第二资源端口信息包括第二位图,所述第二位图包括多个位图区域,每一位图区域与一所述转发架构对应,且每一位图区域包括依据所述资源端口id排列的若干位;

22、其中,所述目标组播组id在所述目标转发架构中的对应资源端口id在所述第三位图中的对应位全部置位;

23、所述组播报文对应的资源端口id中,对应于物理端口的资源端口id在所述第二位图中所有位图区域的对应位全部置位,对应于链路聚合组的资源端口id在所述第二位图中的目标位图区域的对应位置位,所述目标位图区域为所述链路聚合组中与所述组播报文对应的实际端口所属转发架构对应的位图区域。

24、在一个或多个实施方式中,所述基于所述第二资源端口信息和所述第三资源端口信息,得到资源端口出口信息的步骤包括:

25、由所述第二位图中选取与所述目标转发架构对应的位图区域,并将该位图区域和所述第三位图进行按位与操作,得到所述第二出口位图,所述第二出口位图包括依据所述资源端口id排列的若干位,且所述第二出口位图中存在置位的位对应的资源端口为所述组播报文在所述目标转发架构中的目标组播出口的资源端口;

26、对所述第二出口位图进行遍历,获取所述资源端口出口信息。

27、在一个或多个实施方式中,所述转发架构的处理引擎配置有资源端口组播出口映射表、trunkportblockmask表和链路聚合映射表,所述资源端口组播出口映射表用于描述资源端口与组播出口的映射关系,所述trunkportblockmask表用于描述报文哈希值与每一所述链路聚合组的成员端口的映射关系,所述链路聚合映射表用于描述链路聚合组与成员端口的映射关系;

28、所述基于所述资源端口出口信息对所述组播报文进行复制并转发的步骤包括:

29、基于所述资源端口出口信息和所述资源端口组播出口映射表,获取所述组播报文在所述目标转发架构中的目标组播出口;

30、判断所述目标组播出口是否包括目标链路聚合组;

31、若是,基于所述目标链路聚合组查询所述链路聚合映射表,得到目标成员端口信息,所述目标成员端口信息包括所述目标链路聚合组包括的全部成员端口;

32、基于所述报文哈希值索引所述trunkportblockmask表,得到聚合组成员端口信息,所述聚合组成员端口信息包括所述报文哈希值对应的所有链路聚合组的成员端口信息;

33、基于所述目标成员端口信息和所述聚合组成员端口信息,得到目标组播出口;

34、基于所述目标组播出口,对所述组播报文进行复制和转发。

35、在一个或多个实施方式中,所述目标成员端口信息包括第四位图,所述第四位图包括所述目标链路聚合组中的全部成员端口;

36、所述聚合组成员端口信息包括第五位图,所述第五位图包括依据物理端口id排列的若干位,且所述报文哈希值对应的所有链路聚合组的成员端口在所述第五位图的对应位置位;

37、所述基于所述目标成员端口信息和所述聚合组成员端口信息,得到目标组播出口的步骤包括:

38、对所述第四位图和所述第五位图进行按位与操作,得到第三出口位图,所述第三出口位图包括依据所述组播出口id排列的若干位,且所述第三出口位图中存在置位的位对应的组播出口为所述组播报文在所述目标转发架构中的目标组播出口;

39、对所述第三出口位图进行遍历,得到目标组播出口。

40、在一个或多个实施方式中,与所述若是,基于所述目标链路聚合组查询所述链路聚合映射表,得到目标成员端口信息的步骤同步的还包括:

41、若否,基于所述目标组播出口,对所述组播报文进行复制和转发。

42、为了实现上述目的,本技术采用的另一个技术方案是:

43、提供一种基于资源端口的组播报文的转发装置,应用于多转发架构的芯片,所述芯片配置有rportblockmask表,所述rportblockmask表用于描述报文哈希值与资源端口id的映射关系,每一所述资源端口id对应于唯一的物理端口或链路聚合组,每一所述转发架构的处理引擎配置有存储对应的资源端口id以及资源端口id与组播组id映射关系的met表;

44、所述转发装置包括:

45、表构建模块,用于基于所述met表,构建premet表,所述premet表包括所有所述转发架构对应的资源端口id以及资源端口id与组播组id映射关系;

46、报文接收模块,用于接收组播报文,所述组播报文包括目的地址字段;

47、第一查询模块,用于基于所述组播报文的目标组播组id查询所述premet表,得到第一资源端口信息,所述第一资源端口信息包括所有所述转发架构对应的所述目标组播组id下的资源端口id;

48、第二查询模块,用于计算所述组播报文的报文哈希值,基于所述报文哈希值索引所述rportblockmask表,得到第二资源端口信息,所述第二资源端口信息包括所述组播报文对应的资源端口出口所属的目标转发架构;

49、架构确认模块,用于基于所述第一资源端口信息和所述第二资源端口信息,得到转发架构出口信息,所述转发架构出口信息包括所述组播报文对应的目标转发架构;

50、转发模块,用于基于所述转发架构出口信息,将所述组播报文发送至所述目标转发架构进行复制并转发。

51、为了实现上述目的,本技术采用的又一个技术方案是:

52、提供一种芯片,包括存储器和处理器,存储器用于存储指令或程序代码,处理器用于从存储器中调用并运行该指令或程序代码,以执行如上述任一实施方式所述的转发方法。

53、为了实现上述目的,本技术采用的又一个技术方案是:

54、提供一种机器可读存储介质,其存储有可执行指令,所述指令当被执行时使得所述机器执行如上述任一实施方式所述的转发方法。

55、区别于现有技术,本技术的有益效果是:

56、本技术的转发方法采用预复制确认需要复制的出口,并仅将组播报文发送至需要复制转发的slice进行查表处理,有效避免了met表处理性能的浪费;

57、本技术的转发方法提出资源端口(rport)的概念,使物理端口和trunk口共享同一个资源端口资源池进行统一管理,在trunk的成员端口发生更新时,无需刷新组播组表项对应的met表和premet表,提升了组播业务更新的实时性和系统的运行效率。


技术特征:

1.一种基于资源端口的组播报文的转发方法,其特征在于,应用于多转发架构的芯片,所述芯片配置有rportblockmask表,所述rportblockmask表用于描述报文哈希值与资源端口id的映射关系,每一所述资源端口id对应于唯一的物理端口或链路聚合组,每一所述转发架构的处理引擎配置有存储对应的资源端口id以及资源端口id与组播组id映射关系的met表;

2.根据权利要求1所述的转发方法,其特征在于,所述第一资源端口信息包括第一位图,所述第二资源端口信息包括第二位图,所述第一位图和所述第二位图均包括多个位图区域,每一位图区域与一所述转发架构对应,且每一位图区域包括依据所述资源端口id排列的若干位,所述第一位图和第二位图的相同位对应同一所述转发架构的同一资源端口id;

3.根据权利要求2所述的转发方法,其特征在于,所述转发架构出口信息包括第一出口位图,所述第一出口位图包括多个位图区域,每一位图区域与一所述转发架构对应,所述第一出口位图和所述第一位图的相同位对应同一所述转发架构的同一资源端口id,且所述第一出口位图中存在置位的位图区域对应的转发架构为所述目标转发架构;

4.根据权利要求1所述的转发方法,其特征在于,所述基于所述转发架构出口信息,将所述组播报文发送至所述目标转发架构进行复制并转发的步骤包括:

5.根据权利要求4所述的转发方法,其特征在于,所述第三资源端口信息包括第三位图,所述第三位图包括依据所述资源端口id排列的若干位,所述第二资源端口信息包括第二位图,所述第二位图包括多个位图区域,每一位图区域与一所述转发架构对应,且每一位图区域包括依据所述资源端口id排列的若干位;

6.根据权利要求5所述的转发方法,其特征在于,所述基于所述第二资源端口信息和所述第三资源端口信息,得到资源端口出口信息的步骤包括:

7.根据权利要求6所述的转发方法,其特征在于,所述转发架构的处理引擎配置有资源端口组播出口映射表、trunkportblockmask表和链路聚合映射表,所述资源端口组播出口映射表用于描述资源端口与组播出口的映射关系,所述trunkportblockmask表用于描述报文哈希值与每一所述链路聚合组的成员端口的映射关系,所述链路聚合映射表用于描述链路聚合组与成员端口的映射关系;

8.根据权利要求7所述的转发方法,其特征在于,所述目标成员端口信息包括第四位图,所述第四位图包括所述目标链路聚合组中的全部成员端口;

9.根据权利要求7所述的转发方法,其特征在于,与所述若是,基于所述目标链路聚合组查询所述链路聚合映射表,得到目标成员端口信息的步骤同步的还包括:

10.一种基于资源端口的组播报文的转发装置,其特征在于,应用于多转发架构的芯片,所述芯片配置有rportblockmask表,所述rportblockmask表用于描述报文哈希值与资源端口id的映射关系,每一所述资源端口id对应于唯一的物理端口或链路聚合组,每一所述转发架构的处理引擎配置有存储对应的资源端口id以及资源端口id与组播组id映射关系的met表;

11.一种芯片,其特征在于,包括存储器和处理器,存储器用于存储指令或程序代码,处理器用于从存储器中调用并运行该指令或程序代码,以执行如权利要求1至9任一项所述的转发方法。

12.一种机器可读存储介质,其存储有可执行指令,所述指令当被执行时使得所述机器执行如权利要求1至9任一项所述的转发方法。


技术总结
本申请公开了一种基于资源端口的组播报文的转发方法和相关装置,转发方法包括基于Met表,构建PreMet表;接收组播报文;基于组播报文的目标组播组ID查询PreMet表,得到第一资源端口信息;基于报文哈希值索引Rportblockmask表,得到第二资源端口信息;基于第一资源端口信息和第二资源端口信息,得到转发架构出口信息;将组播报文发送至目标转发架构进行复制并转发。本申请有效避免了Met表处理性能的浪费;物理端口和Trunk口共享同一个资源端口资源池进行统一管理,提升了组播业务更新的实时性和系统的运行效率。

技术研发人员:赵茂聪,杨振,何志川
受保护的技术使用者:南京盛科通信有限公司
技术研发日:
技术公布日:2024/10/31
转载请注明原文地址: https://www.8miu.com/read-30069.html

最新回复(0)