采用硬件扩展方式在EPON上实现IPV6组播过滤的装置
技术领域
本实用新型涉及在EPON网络上实现IPV6组播过滤的装置。
背景技术
在网络传输过程中,IP组播(将相同的信息包同时传送给多个目的地)比单播(向每个目的地单独发送一份)的效率高得多。如果网络中没有某种类型组播控制,网络将会把组播作为广播处理,这意味着目的地网络上的所有主机都必须处理发送给该网络的所有组播。在组播应用类型较多的环境中,这可能需要能够抢夺网络上所有主机CPU周期的性能,极大的影响网络的传输性能。
IGMP snooping(互连网组管理协议侦听,IPv4组播侦听的技术)和MLD snooping(IPv6组播协议侦听)技术就是为了解决二层设备在端口上过滤该端口不需要的组播数据包,防止组播包泛滥,节省端口有效带宽问题而产生的技术。
IGMP Snooping是一个用于组播组的管理和控制的技术。它使用IGMP报文。IGMP协议运行在网络层,而IGMP Snooping运行在链路层。如图1所示,IGMP Snooping允许交换机监听主机(主机1、主机2、主机3)和路由器4之间的IGMP会话。当交换机监听到主机3发往路由器4的加入某个组的IGMP报告(report)后,交换机将该主机3连接的端口编号加入到这个组的转发列表(交换机将根据这个转发列表中包含的交换机的端口对应的组播组地址,来决定从路由器发来的某个特定组播地址的数据从哪个端口上转发出去)中,同样,当交换机收听到IGMP离开(leave)消息,它就将主机3连接的端口编号从转发列表中删除。如果一段时间内没有成员的报告,交换机也会将端口从组中删除。当IGMP Snooping启动之后,组播路由器周期地向所有VLAN发送IGMP查询报文,VLAN下的主机响应查询报文,发送加入或报告报文,因此这个主机所在端口被加入到组播转发表中,其关键字是VLAN标签和组播MAC地址,当有组播数据时,直接根据组播转发表进行相应的转发,并不是向所有端口转发,因此有效地节省了交换机的带宽。
MlD snooping的基本工作原理与IGMP snooping相同,差别只在于MLD Snooping是侦听IPv6的组播包。而所谓MLD snooping,是指ONU设备通过侦听STB(机顶盒)与路由器之间的IPv6组播协议消息(MLD协议)交互,可以确定连接在自己某端口的STB当前加入的组播组,从而只转发该STB需要的组播组数据,过滤掉其余不需要的组播组数据的功能。
为了在EPON中实现MlD snooping功能,EPON除了要为每一个点到点的逻辑链路指定一个LLID(逻辑链路ID)外,还要定义一个通用的广播LLID。OLT(光线路终端)对于下行数据包,如果是单播包,就在地址表中查找对应的LLID,将对应的LLID值***到数据包中。如果这个包是一个广播包,那么就使用一个通用的广播LLID值。而ONU在接收到下行包后,要将不属于自己的数据包过滤掉。当有一个新的下行包到达时,如果该包是单播包,且LLID与ONU的LLID相匹配,就接收这个包,否则就丢弃这个包;如果该包是广播包,且LLID为通用的广播LLID,就接收这个包。
如图2所示,ONU(光网络单元)的下行端口为FE(百兆以太口)口,而EPON口的数据速率达到1G,如果不在ONU侧对不属于本ONU下属终端的组播进行过滤,就很容易在此发生端口拥塞。为实现ONU侧的组播过滤功能,现有的技术方案如下:
具有支持MLD snooping功能的交换芯片,通过硬件将数据通道中的MLD协议报文捕获后,从其指定的交换芯片上的CPU port送到ONU的CPU上进行处理,由CPU上运行的软件分析MLD协议报,从而生成IPv6组播过滤表,并根据此过滤表控制交换芯片进行下行组播数据的过滤,从而在ONU上实现MLD Snooping的功能。
虽然目前部分商用的ONU芯片内嵌了CPU,但是由于内嵌的CPU没有提供MAC网口,因此交换芯片捕获到的MLD协议报无法直接送到ONU芯片内嵌的CPU上进行处理,因此通常再增加一个具有MAC网口的CPU芯片来实现MLD Snooping功能。如图3所示。
交换芯片(如Marvell6061)对所有上行MLD协议报文进行抓包,并将这些数据通过它的CPU port向增加的CPU芯片的MAC网口送出。增加的CPU芯片根据MLD协议报文建立组播过滤表,控制交换芯片来实现IPv6组播过滤。
但是采用这种方法,需要增加一个CPU芯片,增加了设备的成本。
发明内容
本实用新型的目的在于提供一种采用硬件扩展方式在EPON上实现IPV6组播过滤的装置。
为实现上述目的,本实用新型采用如下技术方案:
一种采用硬件扩展方式在EPON上实现IPV6组播过滤的装置,包括ONU芯片、交换芯片、MAC控制器芯片,所述ONU芯片包括一内嵌CPU和控制接口,所述交换芯片包括CPU端口和控制接口,所述交换芯片的CPU端口与MAC控制器芯片相连,
所述交换芯片用于捕获MLD协议报文,并将该报文发送至所述MAC控制器芯片;
所述MAC控制器芯片用于将接收的该报文发送至ONU芯片的内嵌CPU;
所述内嵌CPU用于分析该MLD协议报文,并建立组播过滤表,实现IPV6组播过滤。
其中,所述组播过滤表为两张,其中一张表对应交换芯片端口上的组播过滤,用于指示哪个端口下的终端用户申请了哪个IPv6组播数据流;另一张表对应ONU芯片UNI口的组播过滤,用于指示下行数据方向哪些IPv6组播数据能够从UNI口通过。所述内嵌CPU通过调用ONU芯片的控制接口及交换芯片的控制接口,将各自对应的组播过滤表信息分别写入交换芯片和ONU芯片硬件寄存器中,实现对数据通道上IPv6组播流的过滤。
其中,所述ONU芯片通过内部总线(local bus)与MAC控制芯片相连,所述MAC控制芯片通过内部总线将MLD协议报文送到内嵌CPU。
一种采用硬件扩展方式在EPON上实现IPV6组播过滤的方法,其特征在于包括以下步骤:
1)交换芯片捕获数据通道中的MLD协议报文后,将该报文发给MAC控制器芯片;
2)MAC控制器芯片将该报文通过发送到ONU芯片的内嵌CPU;
3)内嵌CPU上的软件通过分析MLD协议报文,建立IPv6组播过滤表,实现IPV6组播过滤。
其中,所述步骤1)中,所述交换芯片通过CPU端口将该报文发给MAC控制器芯片;
其中,所述步骤2)中,MAC控制器芯片通过内部总线将该报文发送到ONU芯片的内嵌CPU。
其中,IPv6组播过滤表为两张,其中一张表对应交换芯片端口上的组播过滤,用于指示哪个端口下的终端用户申请了哪个IPv6组播数据流;另一张表对应ONU芯片UNI口的组播过滤,用于指示下行数据方向哪些IPv6组播数据能够从UNI口通过。内嵌CPU通过调用ONU芯片本身的控制接口API以及交换芯片的控制接口API,将各自对应的组播过滤表信息写入相应的硬件寄存器,达到对数据通道上IPv6组播流的过滤功能。
本实用新型无需单独增加一个CPU,通过扩展MAC控制器芯片,实现在ONU芯片上的MLDSnooping功能,极大的降低了成本。此外,现有技术一般只能在交换芯片上实现IPv6组播过滤,而本实用新型既可以在交换芯片上实现IPv6组播过滤,又能在ONU芯片上实现IPv6组播过滤,从而节省从ONU芯片的UNI口下行数据带宽。
以下结合附图及具体实施方式进一步说明本实用新型。
附图说明
图1为MLD和IGMP snooping实现示意图;
图2为现有无源光网络(PON)的结构图;
图3增加具有MAC网口的CPU芯片实现MLD snooping;
图4本实用新型采用硬件扩展方式在EPON上实现IPV6组播过滤的装置实施例示意图。
具体实施方式
如图4所示,一种采用硬件扩展方式在EPON上实现IPV6组播过滤的装置,包括ONU芯片(如PAS6201)、支持MLD snooping功能及VLAN功能的交换芯片(如Marvell6061)、MAC控制器芯片(可选用支持存储总线(Memory Bus)访问方式的MAC控制器芯片,如SMSC的LAN9115),所述ONU芯片包括一内嵌CPU和控制接口(管理数据输入输出接口(MDIO)),所述交换芯片包括CPU端口和控制接口,所述交换芯片的CPU端口与MAC控制器芯片相连,
所述交换芯片用于对所有上行MLD协议报文进行抓包,并将该报文数据通过其CPU端口(CPU port)发送至所述MAC控制器芯片;
所述MAC控制器芯片用于将接收的该报文发送至ONU芯片的内嵌CPU;
所述内嵌CPU用于分析该MLD协议报文,并建立组播过滤表,实现IPV6组播过滤。
其中,所述组播过滤表为两张,分别对应于交换芯片端口的组播过滤和ONU芯片UNI口的组播过滤,所述内嵌CPU通过调用ONU芯片的控制接口及交换芯片的控制接口,将各自对应的组播过滤表信息分别写入交换芯片和ONU芯片硬件寄存器中。
其中,所述ONU芯片通过内部总线(Local Bus)与MAC控制器芯片相连,所述MAC控制器芯片通过内部总线将MLD协议报文送到内嵌CPU。
上述装置中,ONU芯片可采用Passavé公司的PAS6201;交换芯片可采用支持MLD snooping功能及VLAN功能的Marvell公司的Marvell6061;MAC控制器芯片可选用支持存储总线(MemoryBus)访问方式的MAC控制器芯片,如SMSC公司的LAN9115。ONU芯片内嵌的CPU则采用访问SRAM的方式来访问MAC控制器芯片。
上述装置包括以下工作流程:
1)交换芯片捕获数据通道中的MLD协议报文后,将该报文发给MAC控制器芯片;
2)MAC控制器芯片将该报文通过发送到ONU芯片的内嵌CPU;
3)内嵌CPU上的软件通过分析MLD协议报文,建立IPv6组播过滤表,实现IPV6组播过滤。内嵌CPU将捕获的MLD协议报文按照其原来的数据流向发回到数据通道中。从而不影响网络中组播路由器与主机之间原来的MLD协议通信。
其中,所述步骤1)中,所述交换芯片通过CPU端口将该报文发给MAC控制器芯片;
其中,所述步骤2)中,MAC控制器芯片通过内部总线将该报文发送到ONU芯片的内嵌CPU。
其中,IPv6组播过滤表为两张,其中一张表对应交换芯片端口上的组播过滤,用于指示哪个端口下的终端用户申请了哪个IPv6组播数据流;另一张表对应ONU芯片UNI口的组播过滤,用于指示下行数据方向哪些IPv6组播数据能够从UNI口通过。内嵌CPU通过调用ONU芯片本身的控制接口API以及交换芯片的控制接口API,将各自对应的组播过滤表信息写入相应的硬件寄存器,达到对数据通道上IPv6组播流的过滤功能。