为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

以太网交换芯片

2011-12-28 19页 pdf 2MB 146阅读

用户头像

is_232733

暂无简介

举报
以太网交换芯片 以太网交换芯片 本文以 broadcom56504/56300交换芯片为重点,介绍一下交换芯片的工作原理。 1、 交换芯片架构 交换芯片由 GE/XE接口(MAC/PHY)模块、CPU接口模块、输入输出匹配/修改模块、 MMU模块、L2转发模块、L3转发模块、安全模块、流分类模块等模块组成,其结构如图 1所示: 图 1 交换芯片的组成 56504包含 24个 GE端口,4个 10G端口,10G端口既可以用于堆叠,也可以用于上联 /级联。56504交换芯片与 CPU的接口称为 CMIC接...
以太网交换芯片
以太网交换芯片 本文以 broadcom56504/56300交换芯片为重点,介绍一下交换芯片的工作原理。 1、 交换芯片架构 交换芯片由 GE/XE接口(MAC/PHY)模块、CPU接口模块、输入输出匹配/修改模块、 MMU模块、L2转发模块、L3转发模块、安全模块、流分类模块等模块组成,其结构如图 1所示: 图 1 交换芯片的组成 56504包含 24个 GE端口,4个 10G端口,10G端口既可以用于堆叠,也可以用于上联 /级联。56504交换芯片与 CPU的接口称为 CMIC接口。交换芯片与 CPU通过 PCI总线连接。 其他类型交换芯片与 CPU 的接口可以是:SPI+MII、I2C+MII、系统总线+MII、SMI+MII 等。交换芯片的包处理流程,如图 2所示: 图 2 交换芯片的包处理流程简图 包由端口进入交换芯片之后,首先进行包头字段匹配,为流分类做准备;然后经过一个 安全引擎进行包过滤;符合安全的包进行 L2 交换或者 L3 路由,并经过流分类处理器对匹 配的包做相关动作(比如丢弃、限速、修改 VLAN 等);对于可以转发的包根据 802.1P 或 DSCP放到不同队列的 buffer中,调度器根据优先级或者WRR等算法进行队列调度,在端 口发出该包之前执行流分类修改动作,最终从相应端口发送出去。 2、 L2转发流程 2.1 L2 转发原理 对于交换芯片来说,L2转发是一个最基本的功能。L2功能主要包括 ingress过滤、MAC 学习和老化、根据MAC+VLAN转发、广播与洪泛、生成树控制等基本功能。 L2转发的具体流程如图 3所示: 从端口进入交换芯片的包首先检查 TAG,对于 tagged 包,判断是否是 802.1p 的包, (802.1p的包 vid为 0),对于 untagged的包和 802.1p的包,根据系统配置加上 tag(这些配 置包括:基于 MAC的 vlan、基于子网的 vlan、基于的 vlan和基于端口的 vlan)。经过 这一步以后,到交换芯片内部的包都变成 802.1Q 的 tagged包了(vid为 1-4094,4095 保 留),如果设置了 ingress过滤,就会检查本端口是否在该 vid对应的 VLAN中,对于本端口 不在该 vid对应的 VLAN中的包就丢弃。对于没有设置 ingress过滤,或者设置 ingress过滤 但本端口在该 vid对应的 VLAN中的包进行 STP端口状态检查,对于 BPDU以外的包,只 有端口处于 forwarding状态,才允许包进入。然后进行原MAC地址检查,以原MAC+VID 的哈希为索引查找 L2 TABLE,如果没有找到,就把这个表项(原MAC+VID)以及对应的 端口写到 L2 TABLE中,这个过程称为MAC地址学习。当然地址学习的方法有很多种,可 以是硬件学习,也可以是软件学习,可以根据 PORT表中的 CMI字段的配置来进行。 图 3 L2转发流程 下一步进行目的MAC地址检查:目的MAC地址为广播地址(0xffffffff)的包,在 vlan 内广播出去;目的 MAC 地址为组播地址的包,进行组播流程的处理;对于单播包,查找 L2 TABLE,如果没有找到,就在 vlan内进行洪泛;如果找到,检查表项中的 L3 bit是否设 置,如果设置了 L3 bit,就进行 L3流程的转发;否则就转发到 L2 TABLE表项中的端口去, 在 egress方向,也有 egress过滤设置(默认是使能的),如果 egress端口不在 vlan中也是不 能转发的。至此,L2转发流程完成了。 与地址学习相反的过程是地址老化。地址老化的机制是:ASIC内部有个定时器,称为 age timer,命令行可以对这个寄存器进行设置,每次查找 L2 TABLE时(包括原地址查找和 目的地址查找,可以配置),如果命中,就会设置 hit 标志。当老化时间到后,ASIC 把 hit 标志清除,当下一个老化时间到后,ASIC 把 hit 为 0 的地址设置为无效,这就是为什么实 际地址老化的时间为 1~2倍 agingTime的原因。 2.2 L2 转发相关的表项 2.2.1 port表 图 4 port表 Port表是一个非常重要的表,有很多与端口相关的控制都在这里设置。每个端口对应一 个表项,按端口号进行索引。下面介绍一下重要的设置: 1) PVID:设置 PORT_VID 2) 缺省优先级:设置 PORT_PRI 3) 流分类使能:设置 FILTER_ENABLE 4) VLAN转换使能:设置 VT_ENABLE和 VT_MISS_DROP 5) Ingress过滤使能:设置 EN_IFILTER 6) 信任 COS 还是信任 DSCP:对于 IPV4: TRUST_DSCP_V4=0:信任 COS; TRUST_DSCP_V4=1:信任 DSCP,对于 IPV6:同样设置 TRUST_DSCP_V6。 7) Ingress方向 mirror使能:设置MIRROR 8) MAC地址学习方式:设置 CML 9) IP组播是否使用 VLAN信息:设置 IPMC_DO_VLAN 10) L3转发使能:设置 V4L3_ENABLE和 V6L3_ENABLE 11) 是否丢弃 BPDU:设置 DROP_BPDU 12) 控制是否转发带 tag和不带 tag的包:设置 PORT_DIS_TAG和 PORT_DIS_UNTAG 13) Pause帧控制:设置 PASS_CONTROL_FRAMES 14) 基于子网的 VLAN使能:设置 SUBNET_BASED_VID_ENABLE 15) 基于MAC的 VLAN使能:设置MAC_BASED_VID_ENABLE 16) 设置堆叠口:HIGIG_PACKET 17) 设置 NNI口:NNI_PORT 18) 修改优先级使能:MAP_TAG_PACKET_PRIORITY 19) 堆叠口 modid设置:MY_MODID 20) Out tpid设置:OUTER_TPID 21) 基于MAC和基于子网的 VLAN优先级设置:VLAN_PRECEDENCE 22) 是否允许单臂桥功能:PORT_BRIDGE 23) IP组播位图设置:IGNORE_IPMC_L2_BITMAP和 IGNORE_IPMC_L3_BITMAP 2.2.2 egress port表 图 5 egress port表 EGR_PORT是一组寄存器,每个端口一个,用于 EGRESS方向的控制,有几个重要设 置介绍如下: 1) 设置 egress端口类型:PORT_TYPE=0,UNI端口;PORT_TYPE=1,NNI端口 2) 设置 egress过滤:EN_EFILTER=1 2.2.3 L2地址表 图 6 L2地址表 56504的 L2地址表大小为 16K,5630X的 L2地址表大小为 8K,地址表使用MAC+VID 的 hash值作为索引查表。实际上 56504的 L2地址表 hash值为 4K,每个 hash值对应 4条 地址,这样最多可以保存 4 条 hash 冲突的地址。地址表中每个表项都保存了 MAC_ADDR 和 VLAN_ID。MAC学习的时候使用原MAC+VID的 hash查表,把表中的MAC+VID与包 中的 MAC+VID进行比较,如果完全相等,表示找到了。然后看端口(TGID_PORT)是否 相等,如果不相等表示地址发生了迁移,对于动态学习的地址需要更新 port;如果相等表示 命中,更新 hit标志。其他几个重要的功能介绍如下: 1) 设置静态地址:STATIC_BIT=1 2) 设置 L3转发标志:L3=1 3) 设置本地址的包都转发到 CPU去:CPU=1 4) 设置本地址匹配的包丢弃:SRC_DISCARD=1、DST_DISCARD=1 5) 设置本地址匹配的包对某些端口阻塞:MAC_BLOCK_INDEX 6) 设置本地址匹配的包镜像:MIRROR=1 7) 设置组播索引:L2MC_PTR 8) 地址有效标志:VALID=1 2.2.3 VLAN表 Vlan表分为 ingress和 egress两个部分,分别对应入口控制和出口控制。 图 7 ingress vlan表 Ingress Vlan表中主要包含了端口列表,用于 ingress filter功能。PFM是用于控制组播 洪泛的开关。PFM=0,组播在 vlan 内洪泛;PFM=1,注册的组播按组播表转发,未注册 的组播在 vlan内洪泛;PFM=2,注册的组播按组播表转发,未注册的组播丢弃。STG用于 标识本 vlan所属的生成树组。 图 8 egress vlan表 Egress vlan表中除了 PFM和 STG外,还包含了出口方向的端口位图,以及哪些端口以 untag的方式发送本 vlan的包。 3、 L3转发流程 图 9 L3转发流程 如果查目的MAC地址表的时候发现 L3 bit置位了,就进入到 L3转发流程。与 L2交换 相比,L3交换可以实现跨 VLAN转发,而且它的转发依据不是根据目的 MAC地址,而是 根据目的 IP。L3 转发的流程是:首先对 L3 头部进行校验,校验和错的包直接丢弃;然后 进行原 IP地址查找,如果主机路由表中没有找到,会上报给 CPU,CPU会进行相应的处理, 并更新接口表;下一步进行目的 IP 地址查找,如果主机路由表中没有找到,就会在子网路 由表中进行查找,在子网路由表中进行最长子网匹配的查找算法,如果在子网路由表中还没 有找到,也送给 CPU 进行处理,如果在主机路由表或子网路由表中找到了,就会得到下一 跳的指针。如果 ECMP 使能的话,会得到 ECMP 的指针和 ECMP 的个数,从而根据 hash 算法得到一个下一跳指针。下一条表项中包含了下一跳的MAC地址和接口表的索引。在包 转发出去的时候,用下一跳的 MAC 地址替换掉包的目的 MAC 地址。用接口表中的 MAC 地址和 VLAN替换掉包的原MAC地址和 VLAN。 与 L3有关的几个重要的表: 图 10 L3单播主机路由表 图 11 L3子网路由表 图 12 ECMP表 图 13 EGRESS 下一跳表 图 14 接口表 图 15 INGRESS 下一跳表 4、L2组播转发流程 在 L2转发流程中,查找目的MAC+VID的时候,如果表项的目的MAC是一个组播地 址,该表项有一个组播指针指向组播表,组播表中有一个端口位图,表示哪些端口属于该组 播组。组播组中的端口位图与 VLAN 中的端口位图相与的结果是实际转发的端口位图。静 态配置的或协议动态添加的组播地址通过 SSP 写到 MAC 地址表中,组播成员通过 SSP 写 到组播表中。L2组播表的结构如下: 图 16 L2组播表 5、L3组播转发流程 L3组播支持有源树和共享树。所谓有源树是指根据源 IP地址和组地址来确定一个组播 组,而共享树是指仅根据组地址来确定一个组播组。芯片也支持反向路径检查(Reverse Path Forwarding check),所谓反向路径检查是指通过检查源 IP 地址确定源端口,从而不要向源 端口转发的技术。 L3组播的转发流程是,先查 L2表,对于组播地址而且是 L3 bit置位的,查 L3表。L3 表给出 IPMC_INDEX。根据这个索引查 L3_IPMC 表,L3_IPMC 表给出 L2_BITMAP 和 L3_BITMAP。对于 L2_BITMAP,按照 L2 组播流程转发;对于 L3_BITMAP,根据 IPMC_INDEX和 BITMAP得到 IPMC_GROUP的 VLAN_INDEX,最后根据 VLAN_INDEX 查找 IPMC_VLAN表,IPMC_VLAN表包含了 VLAN的位图,芯片在进行 L3组播的时候, 对 VLAN的位图中的每个成员进行组播复制。 图 17 L3组播表 图 18 L3组播复制 L3单播和组播的转发流程综合起来,如下图所示: 图 19 L3单播和组播的转发流程 IPMC转发相关的表的结构如下: 图 20 L3 TABLE L3 TABLE表项大小 8K(5650X)/2K(5630X)。 图 21 IPMC TABLE IPMC TABLE表项大小 1K。 图 22 IPMC _GROUP TABLE IPMC _GROUP TABLE表项大小 1K。 图 23 IPMC _VLAN TABLE IPMC _VLAN TABLE表项大小 2K。 6、 流分类处理流程 在 5650X/5630X中,流分类是通过 CFP实现的,CFP是 ContentAware Filter Processor 的缩写。所谓 ContentAware就是对 packet的进行智能匹配的技术。5650X/5630X中的 流分类分为 5个阶段,流程如图: 图 24 CFP流程 这 5 个部分分别是智能协议识别选择器、CAM 查找引擎、策略引擎、meter 和统计引 擎、动作裁决引擎。在 ingress端口,智能协议识别选择器对进来的包的前 128bit按照协议 字段进行选择和标记,CAM查找引擎按照用户给的 key匹配协议选择器的内容,如果找到 了,就执行策略引擎的动作,并可以实验 meter和统计引擎进行限速、标记颜色和统计。5650X 有 16个 CAM查找引擎,5630X有 8个 CAM查找引擎,它们可以并行执行,执行的动作如 果有冲突的话,由动作裁决引擎进行裁决。 与协议内容识别选择器有关的表是: 图 25 协议内容识别选择器 图 26 FP_TCAM表 下面这个是策略引擎表项: 图 27 FP_TCAM_PLUS_POLICY表 下面这个是 meter表和 counter表: 图 28 FP_METER表 图 29 FP_COUNTER表 动作裁决的优先级如下: 1. DROP 2. Else REPLACE 3. Else REDIRECT 4. Then EGRESSMASK 5. Then COPY_TO_CPU 1、 交换芯片架构 2、 L2转发流程 2.1 L2转发原理 2.2 L2转发相关的表项 2.2.1 port表 2.2.2 egress port表 2.2.3 VLAN表 3、 L3转发流程 4、L2组播转发流程 5、L3组播转发流程 6、 流分类处理流程
/
本文档为【以太网交换芯片】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索