一种处理二层广播的方法

文档序号:7666672阅读:290来源:国知局
专利名称:一种处理二层广播的方法
技术领域
本发明涉及以太网三层交换机设备交换技术,具体涉及一种基于网络处
理器和Broadcom芯片的处理二层广^番的方法。
背景技术
在由网络处理器和Broadcom专用芯片组成的以太网交换机中,由网络 处理器和Broadcom专用芯片共同完成数据包的转发处理,该交换机中包含 多个线卡,每个线卡又包含多个Broadcom芯片和网络处理器,为了在交换 机中区分各个Broadcom芯片,会为每个芯片分配一个模块号;同样为区分 各个网络处理器,也会为每个网络处理器分配一个模块号,而且网络处理器 与Broadcom芯片是分开编号的。数据包通过交换机某个线卡上的端口到达 Broadcom芯片,再由Broadcom芯片的FFP (Fast Filter Processor:快速过滤 处理器)重定向到网络处理器。如图1所示为一交换^/L的结构示意图,如果 接收到的是二层广播包,网络处理器根据广播成员(每个广播成员是一个端 口 )的个数利用其内部的Multicast Copier复制多个原数据包的拷贝。如果 广播成员属于其他Broadcom芯片,则网络处理器将一个复制出的数据包的 HiGig(内联端口)中的op设为2, HiGig是Broadcom公司的一种自定义协 议,Broadcom芯片和网络处理器之间传递的数据包的头部会带有一个HiGig 标识,这个标识的长度为12个字节,包含用于实现HiGig协议的一些控制 信息字段,其中的"op"字段用于表示Broadcom芯片需要进行的操作,将 op设为2表示做广播处理;其中的"src—mod"字段表示数据包来自哪个 Broadcom芯片。如果广4番成员端口和入端口属于同一个Broadcom芯片,这 时候的处理方法是对每个成员端口复制一份数据包,并改变复制的数据包中 的源模块号,进行多个单播。当需要复制的份数很多的时,每个复制出的包 都要经过网络处理器查表处理并发往Broadcom芯片,影响系统性能。

发明内容
本发明要解决的技术问题是提供一种处理二层广播的方法,以解决现有
技术中由网络处理器和Broadcom芯片组成的以太网交换机在处理二层广播 时影响系统性能的缺陷。
为了解决上述问题,本发明提供了一种处理二层广播的方法,当网络处 理器收到Broadcom芯片发来的二层广播包后,如果广播成员属于所述发来 二层广播包的Broadcom芯片,所述网络处理器复制一份所述二层广播包发 回所述Broadcom芯片,并告知所述Broadcom芯片估丈广^番处理。
进一步地,所述复制的二层广播包保留原二层广播包中的源模块号。
进一步地,所述网络处理器告知所述Broadcom芯片做广播处理是指 网络处理器将所述复制的二层广播包中的内联端口中的搡作字段设为广播 处理。
进一步地,所述Broadcom芯片收到所述复制的二层广播包后,对所述 Broadcom芯片的源端口实行隔离,对其余端口广播所述复制的二层广4番包;
所述源端口指收到所述二层广l番包的端口 ,所述Broadcom芯片为源才莫块。
进一步地,对所述Broadcom芯片的源端口实行隔离的方法为,所述 Broadcom芯片在开启快速过滤处理器时为所有Broadcom芯片的每个端口配 置隔离位图,当所述Broadcom芯片收到网络处理器发回的所述复制的二层 广播包后,根据其中的源模块号及源端口号查询所述源端口的隔离位图,找 出其中被隔离的端口 ,所述Broadcom芯片在向端口发出所述复制的二层广 播包时,只向所述Broadcom芯片的除所述被隔离端口之外的端口发送。
进一步地,所述为所有Broadcom芯片的每个端口配置的隔离位图由n 比特构成,若各Broadcom芯片的端口数为m, m〉=n,为源冲莫块的各端口配 置的隔离位图为当i取值为O到n-l时,将第i个端口的隔离位图中第i 位的比特值设为1,其余位的比特值设为0;当i取值为n到m-l时,将第i 个端口的隔离位图中每一位的比特值均设为0;
为所述源模块之外的模块的各端口配置的隔离位图中每一位的比特值
均设为0;
当所述Broadcom芯片收到网络处理器发回的所述复制的二层广播包 后,根据其中的源模块号及源端口号查询所述源端口的隔离位图,设源端口 号为t,因源端口的隔离位图中第t位的比特值为1,所述Broadcom芯片在 向端口发出所述复制的二层广播包时,只向除第t端口之外的端口发送。
综上所述,本发明提供了一种处理二层广播的方法,采用本发明,当二 层数据包的广播成员与源端口属于同一 Broadcom芯片时,可减少网络处理 器需要复制的数据包的数量,从而提高了系统的性能。


图l是交换机的结构示意图2是本发明具体实施方式
操作流程图3是本发明具体实施方式
为交换机中所有端口配置的隔离位图; 图4是本发明应用实例中为一端口配置的隔离位图。
具体实施例方式
本发明提出 一种新的处理二层广播包的方法,即网络处理器在收到 Broadcom芯片发来的二层广播包后,若广播成员属于发来数据包的 Broadcom芯片,即广4番成员和源端口属于同 一个Broadcom芯片,网络处理 器只复制一份该数据包,然后将复制的数据包发回给该Broadcom芯片,并 告知该Broadcom芯片^f故广寺番处理。
本实施例提供了一种处理二层广播包的方法,如图2所示,具体处理流 程如下
步骤201:网络处理器收到Broadcom芯片发来的数据包,判断出为二 层广播包,如果广播成员属于发来数据包的Broadcom芯片则执行步骤202;
步骤202:网络处理器复制一份收到的数据包,并将其发回给所述发来 数据包的Broadcom芯片,保留复制的数据包中的源模块号,同时告知该
Broadcom芯片对所述复制的数据包做广播处理。其中告知该Broadcom芯片 对所述复制的数据包做广播处理的方法可以但不限于是将复制的数据包中 的HiGig中的op设为2,即设为做广4番处理。
步骤203: Broadcom芯片收到网络处理器发来的复制的数据包,因其中 的HiGig中的op为2,则对各端口做广播处理,但为了防止该二层广播包 同端口进同端口出,如图1所示,同端口进同端口出是指Broadcom芯片 的 一端口 (该收到数据包的端口称为源端口 )收到 一数据包之后发送到网络 处理器,经网络处理器处理后发回到该Broadcom芯片,该数据包又从该源 端口发出去,控制层面需要在开启FFP的同时为所有Broadcom芯片的每个 端口配置隔离位图,设各Broadcom芯片的端口数为m,每个端口的隔离位 图由n个比特(bit)构成,m>=n,端口号为n到m-1的端口为无效端口 ,或 称为不可用端口,即实际可用端口为端口号为O到n-l的端口,隔离位图可 以但不限于从右边开始编号,且从O开始编号。
如图3所示,是为所有Broadcom芯片即所有模块的各端口配置隔离位 图的示意图,端口号也可以但不限于是从O开始编号,为所有模块的各端口 配置隔离位图分为为源模块的各端口配置隔离位图以及为其余模块的各端 口配置隔离位图。为源模块号为j的各端口配置的隔离位图为当i取值为 0到n-l时,将第i个端口的隔离位图中第i位的比特值设为1,其余位的比 特值设为0;当i取值为n到m-l时,将第i个端口的隔离位图中每一位的 比特值均设为0。而为源模块之外的模块的各端口配置的隔离位图中每一位 的比特值均为0,也就是说,如果是为源模块号为j的端口配置隔离位图时, 只需要配置隔离位图中模块号为j的那部分端口 ,其余模块的各端口的隔离 位图的每一位直接设为0。
该隔离位图实际表示各个端口与所在模块其余端口间的关系图,以第j 模块、第i端口为例第0位为0表示端口 i与端口 0之间没有隔离,即从 端口 i接收的数据包可以从端口 0发出去,而从右边起第i位为l表示端口 i与端口 i之间是隔离的,即从端口 i接收的数据包不能从端口 i发出去。
为各端口配置了隔离位图后将该隔离位图存储在egress—mask寄存器, 当Broadcom芯片收到网络处理器发来的复制的二层广播包后根据数据包中 的源模块号及源端口号查询该源端口的隔离位图,Broadcom芯片在向端口 发出复制的二层广播包时,只向所述Broadcom芯片的除被隔离端口之外的 端口发送。如查到源端口号为t的端口对应的隔离位图中第t位的值为1, 则Broadcom芯片向端口发送复制的二层广播包时,对第t端口不发送,而 只对其余端口发送。
当为egress_mask寄存器配置了隔离后,有可能对三层数据包也实行隔 离,但三层数据包是允许同端口进同端口出的,因此,为了避免对三层数据 包实行隔离,网络处理器在收到Broadcom芯片发来的三层数据包后,若需 要将此数据包发回Broadcom芯片,则修改数据包中HiGig中的源模块号, 这样,就不会存在Broadcom芯片将源端口隔离的情况。
下面用 一应用实例进一 步说明本发明
本应用实例主要说明如何配置隔离位图,本方法的其他步骤同上所述, 因此这里不再赘述。
一个交换机中一般最多30个模块,每个模块最多包含29个端口 ,而且 每个端口的隔离位图包含29个比特。
假设和网络处理器相连的Broadcom芯片的模块号是1,该Broadcom芯 片收到一二层数据包,在为该芯片配置的隔离位图的时候,只需要配置模块 号为1的那些条目,而那些不用的条目都配置为0。如果从这个Broadcom 芯片的端口 3接收到一个广播包,因此为模块号为l、端口号为3的端口配 置的隔离位图如图4所示。该Broadcom芯片将这个广播包发往网络处理器 时,这个数据包的HiGig中的源模块号为1,源端口号为3,目的模块号为 网络处理器的模块号(网络处理器与Broadcom芯片是分开编号的),假设是 10,目的端口号假设为29,这里的端口号29不会和其他Broadcom芯片的 端口号重叠,所以网络处理器能够识别出这个数据包是发给网络处理器的, 而不是其他的Broadcom芯片,当目的端口号为29时,目的模块号用来标识 是发往哪个网络处理器。
网络处理器在接收到这个数据包,发往其他的Broadcom芯片时,会将
HiGig中的目的模块号改为对应Broadcom芯片的模块号。所以模块号为1 的Broadcom芯片接收到的数据包中的源模块号为1,源端口号为3,目的模 块号也为l,目的端口号为29,在做广播时目的端口号是不用的,所以网络 处理器也不需要修改。Broadcom芯片在将这个数据包发往本芯片的各个端 口之前,会用源模块号,源端口号来查上面的隔离位图,这里就是查模块l, 端口3对应的条目,查找到隔离位图中第3位为1,即端口3被隔离。
对于3层数据包,网络处理器发往Broadcom芯片时,将源模块号改成 一个不使用的模块号,比如31,则查到的条目中所有比特都为0,就不会隔 离了。
权利要求
1、一种处理二层广播的方法,当网络处理器收到Broadcom芯片发来的二层广播包后,如果广播成员属于所述发来二层广播包的Broadcom芯片,所述网络处理器复制一份所述二层广播包发回所述Broadcom芯片,并告知所述Broadcom芯片做广播处理。
2、 如权利要求l所述的方法,其特征在于 所述复制的二层广播包保留原二层广播包中的源模块号。
3、 如权利要求1所述的方法,其特征在于所述网络处理器告知所述Broadcom芯片做广播处理是指网络处理器 将所述复制的二层广播包中的内联端口中的操作字段设为广播处理。
4、 如权利要求3所述的方法,其特征在于所述Broadcom芯片收到所述复制的二层广播包后,对所述Broadcom 芯片的源端口实行隔离,对其余端口广播所述复制的二层广播包;所述源端口指收到所述二层广播包的端口,所述Broadcom芯片为源模块。
5、 如权利要求2或4所述的方法,其特征在于对所述Broadcom芯片的源端口实行隔离的方法为,所述Broadcom芯 片在开启快速过滤处理器时为所有Broadcom芯片的每个端口配置隔离位 图,当所述Broadcom芯片收到网络处理器发回的所述复制的二层广播包后, 根据其中的源模块号及源端口号查询所述源端口的隔离位图,找出其中被隔 离的端口,所迷Broadcom芯片在向端口发出所述复制的二层广播包时,只 向所述Broadcom芯片的除所述被隔离端口之外的端口发送。
6、 如权利要求5所述的方法,其特征在于所述为所有Broadcom芯片的每个端口配置的隔离位图由n比特构成, 若各Broadcom芯片的端口数为m, m>=n,为源模块的各端口配置的隔离位 图为当i取值为O到n-1时,将第i个端口的隔离位图中第i位的比特值设 为1 ,其余位的比特值设为0;当i取值为n到m-l时,将第i个端口的隔离 位图中每一位的比特值均设为0;为所述源模块之外的模块的各端口配置的隔离位图中每一位的比特值 均设为0;当所述Broadcom芯片收到网络处理器发回的所述复制的二层广播包 后,根据其中的源模块号及源端口号查询所述源端口的隔离位图,设源端口号为t,因源端口的隔离位图中第t位的比特值为1,所述Broadcom芯片在 向端口发出所述复制的二层广播包时,只向除第t端口之外的端口发送。
全文摘要
本发明提供了一种处理二层广播的方法,当网络处理器收到Broadcom芯片发来的二层广播包后,如果广播成员属于所述发来二层广播包的Broadcom芯片,所述网络处理器复制一份所述二层广播包发回所述Broadcom芯片,并告知所述Broadcom芯片做广播处理。采用本发明的技术方案,当二层数据包的广播成员与源端口属于同一Broadcom芯片时,可减少网络处理器需要复制的数据包的数量,从而提高了系统的性能。
文档编号H04L12/56GK101170508SQ20071018717
公开日2008年4月30日 申请日期2007年11月21日 优先权日2007年11月21日
发明者鹏 周 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1