logo资料库

Broadcom以太网交换芯片转发流程.doc

第1页 / 共18页
第2页 / 共18页
第3页 / 共18页
第4页 / 共18页
第5页 / 共18页
第6页 / 共18页
第7页 / 共18页
第8页 / 共18页
资料共18页,剩余部分请下载后查看
1、   交换芯片架构
2、   L2转发流程
2.1 L2转发原理
2.2 L2转发相关的表项
2.2.1 port表
2.2.2 egress port表
2.2.3 L2地址表
2.2.3 VLAN表
3、   L3转发流程
4、   L2组播转发流程
5、   L3组播转发流程
6、   流分类处理流程
Broadcom以太网交换芯片培训(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 字段的配置来进行。 下一步进行目的 MAC 地址检查: 图 3 L2 转发流程 目的 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 表 EGR_PORT 是一组寄存器,每个端口一个,用于 EGRESS 方向的控制,有几个重要 图 5 egress port 表 设置介绍如下: 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 地址表的时候发现 L3bit 置位了,就进入到 L3 转发流程。 与 L2 交 L3 交换可以实现跨 VLAN 转发,而且它的转发依据不是根据目的 MAC 地 址,而是根据目的 IP。L3 转发的流程是:首先对 L3 头部进行校验,校验和错的
分享到:
收藏