Pon系统中组播级联的适配系统和方法_2

文档序号:8907931阅读:来源:国知局
现有方法中不同类型芯片级联时无法统一处理,需 要组播协议模块感知芯片的级联方式、甚至每个芯片都运行一个组播协议模块的问题。组 播适配模块只需要修改初始化相应的表项信息,就可以采用通用的方法完成多个芯片级联 时的适配模块功能,能够适应多种以及多个芯片级联时的场景,保证组播级联方式的更改、 扩展均与组播功能的实现互不影响,最大限度的保证组播协议模块以及组播适配层的可扩 展性、可复用性,提高系统的稳定性和兼容性。
【附图说明】
[0046] 图1为本发明P0N系统中组播级联的适配系统示意图;
[0047] 图2为本发明实施例芯片级联硬件结构图;
[0048] 图3本发明P0N系统中组播级联适配方法流程图;
[0049] 图4为图3中组播协议报文处理流程;
[0050] 图5为添加表项的适配处理流程;
[0051] 图6为删除表项的适配处理流程。
【具体实施方式】
[0052] 以下结合附图及实施例对本发明作进一步详细说明。
[0053] 如图1所示,本发明P0N系统中组播级联的适配系统,包括一个组播协议模块、一 个组播适配模块和多个芯片驱动模块。所述组播协议模块用于按照组播协议要求处理组播 协议报文,按照协议要求完成IGMPSnooping、IGMPProxy等功能;以IGMPv2为例,处理的 协议报文包括IGMPReport/Leave/Query报文。每个芯片驱动模块对应一个芯片,并用于 完成该芯片的驱动,主要的驱动接口包括:二层组播转发表项的接口,组播协议报文的接收 和发送接口等。组播适配模块用于处理组播协议模块和芯片驱动模块之间的适配,屏蔽组 播协议模块对于多个芯片级联的感知,主要包括添加表项适配处理,删除表项适配处理以 及报文发送适配处理。
[0054] 如图2所示,本实施例中,假设设备包含四个硬件模块,分别为芯片1、芯片2、芯片 3以及CPU,其中芯片1、芯片2、芯片3既可以是同类型芯片,例如均为以太网芯片;也可以 是不同类型的芯片,例如芯片1为以太网交换芯片,芯片2和芯片3为P0N芯片等。芯片1、 芯片2、芯片3既可以是同一厂家的芯片,也可以是不同厂家的芯片,这些芯片均有对应的 接口连接到CPU,例如可以是PCIe(PeripheralComponentInterconnectExpress,快捷外 设互联标准)接口,以太网接口或者内部总线接口等;本发明组播级联的适配系统运行于 CPU中。
[0055] 为了简化描述,以P(i,j)来标识第i个芯片的第j个端口,其中i为芯片编号, i彡l,j彡1,在图1中分别为芯片1,芯片2和芯片3 ;j为每个芯片的端口编号,其中下行 端口以1,2,…,&来标识,上行端口以Ni来标识。芯片1、芯片2、芯片3通过级联方式连接 成一个树形结构。芯片1的端口P(l,l)与芯片2的端口P(2,N2)相连,芯片1的端口P(l, kj与芯片3的端口P(3,N3)相连,对芯片1来说,P(l,l)与P(l,ki)是级联端口;对芯片2 来说,P(2,N2)是级联端口;对芯片3来说,P(3,N3)是级联端口。
[0056]所述组播适配模块中存储第一端口信息表(表1),用于在添加/删除表项适配处 理时对端口的通用处理。表中的每一条记录项标识一个端口的信息,至少包括下面四个参 数:
[0057] (1)端口编号;
[0058] (2)端口上下行属性,表示端口是上行接口还是下行接口;
[0059] (3)端口级联属性,表示端口是否为级联端口;
[0060] (4)关联端口编号,如果该端口为级联端口,则关联端口编号为该级联端口所关联 的另一个芯片的端口编号;如果端口为非级联端口,则关联端口编号为空,在表1中用 标识。
[0061] 表1、第一端口信息表
[0062]
[0063] 所述组播协议模块中存储第二端口信息表(表2),表中端口是表1中端口的子集, 即去除表1中所记录的级联端口后,剩余的端口信息;用于组播协议模块对组播协议报文 的源端口、目的端口以及端口组播表项的控制。表2中每一条记录项标识一个端口的信息, 至少包括下面两个参数:
[0064] (1)端口编号;
[0065] (2)端口上下行属性,标识端口是上行接口还是下行接口。
[0066] 从组播协议模块的角度来说,多个芯片级联后可以在逻辑上看做是一个整体的芯 片,因此组播协议模块可以只感知表2,而不必关注表1中的内容。表2中的上行端口可以 是一个或者多个端口,如果存在多个端口,可将其作为一个逻辑组来处理,本发明中后续的 步骤是以端口为例来说明的,逻辑组与端口可视为等同的。
[0067] 表2、第二端口信息表
[0068]

[0069]PON系统中组播级联的适配系统中还包括一个注册接口信息表(表3),其包含组 播二层转发表项注册接口和组播协议报文收发注册接口两部分。其中,组播二层转发表项 注册接口细分为添加组播表项注册接口、删除组播表项注册接口;组播协议报文收发注册 接口细分为报文发送注册接口、报文接收注册接口;报文接收注册接口由组播适配模块向 芯片驱动模块注册,其余注册接口均由组播适配模块向组播协议模块注册。
[0070] 表3、注册接口信息表
[0071]
[0072] 组播二层转发表是组播级联中已知的表,其中每一个表项主要由三部分组成: VLAN(VirtualLocalAreaNetwork,虚拟局域网)ID、组播地址、端口编号。当设备收到组 播数据包时,会根据数据包中的组地址检索组播二层转发表,获取对应的端口集合。最后将 数据包转发到检索结果中的所有端口上。组播二层转发表的表项在组播协议模块和芯片驱 动模块中均存在。其中组播协议模块表项中的端口来自表2中的端口编号,芯片驱动模块 表项中的端口来自表1中的端口编号。
[0073] 如图3所示,本发明P0N系统中组播级联适配方法,包括步骤:
[0074]S1.按顺序将芯片驱动模块、组播适配模块、组播协议模块依次初始化,组播适配 模块包括表1和表3的初始化,组播协议模块包括表2的初始化。
[0075]S2.组播适配模块分别向组播协议模块、多个芯片驱动模块注册表3中的接口。
[0076]S3.芯片驱动模块接收到来自外部的组播协议报文,处理并获取组播协议报文的 来源端口信息,处理后的组播协议报文发送组播适配模块。
[0077]S4.组播适配模块接收处理后的组播协议报文,再次处理后发送给组播协议模块, 其方式为:通过向芯片驱动模块注册的报文接收接口来实现,并获取组播协议报文的来源 端口信息,VLAN信息等。
[0078]S5.组播协议模块接收并处理来自组播适配模块的组播协议报文,根据组播协议 报文的类型,通过组播适配模块向组播协议模块注册的接口,调用相应的适配处理接口;包 括添加表项适配、删除表项适配、报文发送适配。
[0079]S6.组播适配模块调用芯片驱动模块的接口完成添加表项、删除表项、报文发送的 功能;进入下一个周期,转入S3。
[0080] 如图4所示,S5中处理组播协议报文的详细流程如下:
[0081] S51.组播协议模块解析接收到的组播协议报文类型,如果是成员报告(IGMP Report)报文,进入S52;如果是离开(IGMPLeave)报文,进入S54;如果是查询(IGMP Query)报文,进入S53。
[0082]S52.组播协议模块调用组播适配模块,完成添加表项的适配处理,进入S58。
[0083]S53.组播协议模块根据报文的内容,判断是否为特定查询,若是,进入S54;若否, 进入S57;其中,报文中指定查询内容为特定查询,否则为通用的全部查询。
[0084]S54.组播协议模块做特定查询处理,向源端口发送特定组查询报文,进入S55。
[0085]S55.组播协议模块启动定时器,判断有效时间内是否收到源端口的成员报告报 文,若是,结束;若否,进入S56。
[0086]S56.组播协议模块调用组播适配模块,做删除表项适配处理,进入S58。
[0087]S57.组播协议模块做通用查询处理,进入S58。
[0088]S58.组播协议模块调用组播适配模块进行报文发送的适配处理,结束。
[0089] 如图5所示,为步骤S52中添加表项适配处理流程,假定组播协议模块通过注册接 口传递至组播适配模块参数,包括端口编号P(ii,j\)、组播组地址Gp VLAN值vid。
[0090] S521.组播适配模块判断端口P(ii,ji)的上下行属性是否为上行,若是,结束,若 否,进入S522。
[0091] S522.调用对应的芯片h驱动模块接口,将对应的端口编号ji、组播组地址Gp VLAN值vid添加到组播二层转发表中的表项。
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1