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

文档序号:8907931阅读:513来源:国知局
Pon系统中组播级联的适配系统和方法
【技术领域】
[0001] 本发明涉及P0N(PassiveOpticalSystem,无源光网络)系统的组播级联领域,具 体来讲涉及P0N系统中组播级联的适配系统和方法。
【背景技术】
[0002] IGMP(InternetGroupManagementProtocol,互联网组管理协议)协议是TCP/ IP(TransferControlProtocol/InternetProtocol,传输控制协议 / 网际协议)协议族 中负责IP组播成员管理的协议,它用来在IP主机和与其直接相邻的组播路由器之间建立、 维护组播组成员关系。P0N系统中主要实现IGMPSnooping、IGMPProxy等二层组播协议, 通过IGMPReport/Leave/Query消息来实现组播组成员的动态加入、退出和维持。
[0003]IGMPSnooping的实现机理是:设备侦听并拦截用户主机向上级路由器的IGMP请 求,形成组播地址和设备接口的映射表。设备在收到组播数据包后,根据映射表向相应的组 成员接口转发数据包。
[0004]IGMPProxy与IGMPSnooping实现功能相同但机理相异:IGMPSnooping只是通 过侦听IGMP的消息来获取有关信息,而IGMPProxy则拦截了用户的IGMP请求并进行相关 处理后,再将它转发给上层路由器。
[0005] 随着宽带技术的发展,P0N接入设备覆盖的用户数目越来越多,单个板卡的芯片组 成结构也越来越复杂,各种类型的芯片也在板卡内部级联起来。在此情况下,当单板需要支 持组播功能时,其上的多个芯片通常也需要同时支持组播。按照现有的实现方式,需要组播 协议模块感知芯片的级联方式,一般每个芯片都运行一个组播协议模块,每个芯片都可能 有其独立的组播适配模块,导致组播协议模块和组播适配模块都比较复杂而且无法通用。
[0006] 在现有技术下,同一厂家的以太网交换芯片一般可配置级联端口,通过级联端口 连接的多个芯片的所有端口的处理方式都完全相同,就象所有端口都处于同一个芯片上一 样。例如部分厂家的以太网交换芯片提供的Hig端口级联方式。但是如果芯片不支持级 联模式、或者相应的端口不支持配置为级联模式、或者级联的芯片是功能完全不同的芯片 (例如一个是P0N芯片,另一个是以太网交换芯片等)、或者级联的芯片是不同厂家的芯片, 则均无法直接使用芯片提供的级联功能。

【发明内容】

[0007] 针对现有技术中存在的缺陷,本发明的目的在于提供一种P0N系统中组播级联的 适配系统和方法,适应多种以及多个芯片级联时的场景,屏蔽芯片级联信息以及各个芯片 级联方式的差异,在逻辑上使组播协议模块完全运行在一个统一的芯片上。
[0008] 为达到以上目的,本发明采取一种P0N系统中组播级联的适配系统,其特征在于, 包括一个组播协议模块、一个组播适配模块和多个芯片驱动模块,所述组播协议模块用于 按照组播协议要求处理组播协议报文;每个芯片驱动模块用于驱动一个芯片;所述组播适 配模块用于处理组播协议模块和芯片驱动模块之间的适配,屏蔽组播协议模块对于多个芯 片级联的感知;所述组播适配模块中存储第一端口信息表,包括所有端口信息,用于在添加 /删除表项适配处理时对端口的通用处理;所述组播协议模块中存储第二端口信息表,包 括去除第一端口信息表中所记录的级联端口后剩余的端口信息,用于组播协议模块对组播 协议报文的源端口、目的端口以及端口组播表项的控制;所述适配系统还包括一个注册接 口信息表,包括组播二层转发表项注册接口和组播协议报文收发注册接口两部分。
[0009] 在上述技术方案的基础上,所述第一端口信息表中,每一条记录项标识一个端口 的信息,至少包括端口编号、端口上下行属性、端口级联属性、关联端口编号,其中端口上下 行属性表示端口是上行接口还是下行接口,端口级联属性表示端口是否为级联端口;关联 端口编号中,如果该端口为级联端口,则关联端口编号为该级联端口所关联的另一个芯片 的端口编号,如果端口为非级联端口,则关联端口编号为空。
[0010] 在上述技术方案的基础上,所示第二端口信息表中,每一条记录项标识一个端口 的信息,至少包括端口编号、端口上下行属性,端口上下行属性表示端口是上行接口还是下 行接口。
[0011] 在上述技术方案的基础上,所述组播二层转发表项注册接口细分为添加组播表项 注册接口、删除组播表项注册接口;组播协议报文收发注册接口细分为报文发送注册接口、 报文接收注册接口;其中报文接收注册接口由组播适配模块向芯片驱动模块注册,其余注 册接口均由组播适配模块向组播协议模块注册。
[0012] 本发明还提供一种P0N系统中组播级联适配方法,包括步骤:
[0013]S1.将芯片驱动模块、组播适配模块、组播协议模块依次初始化;
[0014]S2.组播适配模块分别向组播协议模块、多个芯片驱动模块注册所述注册接口信 息表中的接口;
[0015]S3.芯片驱动模块接收组播协议报文,处理并获取组播协议报文的来源端口信息, 处理后的组播协议报文发送组播适配模块;
[0016]S4.组播适配模块接收组播协议报文,再次处理后发送给组播协议模块;
[0017]S5.组播协议模块接收并处理来自组播适配模块的组播协议报文,根据组播协议 报文的类型,通过组播适配模块向组播协议模块注册的接口,调用相应的适配处理接口;包 括添加表项适配、删除表项适配、报文发送适配;
[0018]S6.组播适配模块调用芯片驱动模块的接口完成添加表项、删除表项、报文发送的 功能;进入下一个周期,转入S3。
[0019] 在上述技术方案的基础上,所述S5的详细流程为:
[0020]S51.组播协议模块解析接收到的组播协议报文类型,如果是成员报告报文,进入S52;如果是离开报文,进入S54;如果是查询报文,进入S53;
[0021]S52.组播协议模块调用组播适配模块,完成添加表项的适配处理,进入S58;
[0022] S53.组播协议模块根据报文的内容,判断是否为特定查询,若是,进入S54 ;若否, 进入S57;
[0023]S54.组播协议模块做特定查询处理,进入S55;
[0024]S55.组播协议模块判断有效时间内是否收到源端口的成员报告报文,若是,结束; 若否,进入S56;
[0025]S56.组播协议模块调用组播适配模块,做删除表项适配处理,进入S58;
[0026]S57.组播协议模块做通用查询处理,进入S58;
[0027]S58.组播协议模块调用组播适配模块进行报文发送的适配处理,结束。
[0028] 在上述技术方案的基础上,组播协议模块通过注册接口传递至组播适配模块参 数,包括端口编号、组播组地址、VLAN值;S52中添加表项的适配处理具体为:
[0029]S521.组播适配模块判断该端口的上下行属性是否为上行,若是,结束,若否,进入 S522;
[0030]S522.调用对应的芯片驱动模块接口,将对应的端口编号、组播组地址、VLAN值添 加到组播二层转发表中的表项;
[0031]S523.由第一端口信息表获取对应芯片的上行端口,并获取该上行端口的关联端 P;
[0032]S524.判断关联端口是否为空,若否,进入S525;若是,结束;
[0033]S525.调用对应的芯片驱动模块的接口,将关联端口的端口号、组播组地址、VLAN 值添加到组播二层转发表中的表项;
[0034]S526?关联端口的引用计数增加1;
[0035]S527.将关联端口赋值到S521中的端口后,转入S521。
[0036] 在上述技术方案的基础上,组播协议模块通过注册接口传递至组播适配模块参 数,包括端口编号、组播组地址、VLAN值;S56中删除表项的适配处理具体为:
[0037]S561.判断该端口的上下行属性是否为上行,若是,结束,若否,进入S562;
[0038]S562.调用对应的芯片驱动模块的接口,将对应的端口编号、组播组地址、VLAN值 的组播表项删除;
[0039]S563.通过第一端口信息表获取对应芯片的上行端口,并获取上行端口的关联端 P;
[0040]S564.判断关联端口是否为空,若否,进入S565;若是,结束;
[0041]S565.将关联端口的引用计数减去1;
[0042]S566.判断引用计数是否为0,若是,进入S567;若否,进入S568;
[0043]S567.调用关联端口对应的芯片驱动模块接口,将关联端口的端口编号、组播组地 址、VLAN值的组播表删除;
[0044]S568.将关联端口的端口值赋值到S561中的端口后,转入S561。
[0045] 本发明的有益效果在于:解决
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1