2. Broadcom交换芯片QoS与ACL硬件架构

要理解QoS与ACL在Broadcom交换芯片中如何生效,必须先看清它们所处的硬件流水线位置。典型Broadcom芯片(如Trident、Tomahawk系列)采用多级流水线结构,报文从端口进入后,依次经过入向解析、入向ACL、入向QoS分类、MMU缓存与队列调度、出向QoS整形、出向ACL等阶段,最终从出端口发出。QoS与ACL并非独立模块,而是嵌入在流水线的不同节点上,各自承担不同的判断与动作。

入向处理流水线:分类与标记的起点

报文进入芯片后,首先由解析器(Parser)提取二层到四层头部字段,包括MAC、VLAN、IP、DSCP、TCP/UDP端口号等。解析结果送入入向ACL表(Ingress ACL Table),该表通常由TCAM实现,支持通配符匹配,用于安全过滤、重定向、镜像和优先级标记。入向ACL命中后可以执行permit、deny、copy、redirect、remark等动作,其中remark动作会修改报文的内部优先级字段(如内部TC/DP),为后续QoS调度提供依据。

紧接着是入向QoS分类阶段。芯片根据端口默认优先级、VLAN优先级、DSCP映射表或ACL remark结果,为报文分配内部优先级(Internal Priority)和丢弃优先级(Drop Precedence,DP)。这两个字段是后续MMU队列管理和调度决策的核心参数。需要注意的是,入向ACL与入向QoS分类在流水线中通常有先后顺序:ACL先执行,QoS分类再根据ACL的remark结果或原始字段做最终映射。

MMU与队列管理:缓存与调度的核心

MMU(Memory Management Unit)是芯片内部共享缓存的管理单元,负责报文缓存的分配、回收和队列调度。每个出端口对应一组队列(通常为8个或更多),每个队列又按DP分为多个子队列。MMU根据报文的内部优先级和DP,将报文放入对应的队列,并依据WRED(加权随机早期检测)或尾丢弃策略决定是否丢弃。当队列深度超过阈值时,低优先级、高DP的报文会优先被丢弃,从而保护高优先级业务。

MMU的缓存资源是全局共享的,但可以通过阈值配置为不同端口、不同队列分配不同的缓存上限。例如,可以为高优先级队列预留最小缓存保证,同时设置最大缓存上限防止低优先级队列占用过多资源。调度器则按照SP(严格优先级)、WRR(加权轮询)或混合模式,从各队列中取出报文送往出向流水线。

Broadcom交换芯片QoS与ACL流水线架构 入向流水线 (Ingress) Parser 解析器 L2/L3/L4 字段提取 Ingress ACL (TCAM) permit/deny/redirect/remark 通配符匹配 · 安全过滤 Ingress QoS 分类 DSCP/VLAN/端口映射 分配内部优先级 + DP 内部优先级 (TC) + DP 送往 MMU 队列 MMU 缓存与队列管理 共享缓存池 (Shared Buffer) 动态分配 · 阈值控制 队列组 (Queue Group) Q0~Q7 · 每队列多DP子队列 WRED / 尾丢弃策略 调度器 (Scheduler) SP / WRR / 混合调度 出向队列映射 按端口/TC/DP 入队 出向流水线 (Egress) Egress QoS 整形 Shaping · 速率限制 Egress ACL (TCAM) 出向过滤 · 标记修改 镜像 · 重定向 出向修改 (Rewrite) DSCP/VLAN/CoS 重写 端口发送 (Tx) 物理端口输出 入队 出队 资源分布: TCAM (ACL表) SRAM (QoS映射表) MMU缓存 (共享池) 出向队列/整形器 注:TCAM容量有限,ACL规则需精简规划

TCAM与SRAM资源分布:ACL与QoS的物理载体

Broadcom芯片中,ACL表通常由TCAM(Ternary Content-Addressable Memory)实现,支持三态匹配(0、1、don't care),适合通配符规则。TCAM的容量是芯片的稀缺资源,典型Trident系列每片TCAM约2K~16K条目,多个TCAM块可能被不同功能共享(如ACL、PBR、镜像、VLAN翻译)。因此,ACL规则数量必须严格规划,避免耗尽TCAM导致新规则无法下发。

QoS映射表(如DSCP到内部优先级的映射、VLAN优先级映射)通常存储在SRAM中,容量较大,访问速度略低于TCAM,但足以支撑逐包查表。MMU的缓存则是芯片内最大的共享存储资源,通常为几MB到几十MB,按端口和队列动态分配。出向队列和整形器通常位于出向流水线的SRAM中,每个端口有独立的队列状态和令牌桶参数。

QoS与ACL在流水线中的执行位置

从执行顺序看,入向ACL先于入向QoS分类,出向QoS整形先于出向ACL。这一顺序决定了动作的优先级:入向ACL的remark结果会直接影响QoS分类的输入;出向QoS整形后的报文再经过出向ACL,此时ACL可以基于整形后的队列状态或标记做最终过滤。理解这一顺序,对于规划ACL规则和QoS策略的配合至关重要。例如,若希望某类流量被标记为高优先级并保证带宽,应在入向ACL中remark其DSCP,再在入向QoS中映射为高TC,最后在MMU中为其分配高优先级队列和最小带宽保证。

规划提示:TCAM资源应优先保障安全ACL和关键业务分类规则;QoS映射表可灵活调整,但需与ACL remark动作保持一致,避免优先级标记冲突。

典型参数与资源规划示例

假设某Trident芯片有4个TCAM块,每块2K条目,总计8K ACL条目。规划时可将入向ACL分配4K条目(安全+分类),出向ACL分配2K条目(过滤+镜像),剩余2K预留。QoS映射表使用SRAM,DSCP到TC的映射表通常为64条目,VLAN优先级映射为8条目,端口默认优先级为每端口1条目。MMU缓存假设为16MB,可为高优先级队列预留20%最小保证,最大上限设为40%,低优先级队列最大上限设为10%,以防止缓存被单一队列占满。

在实际配置中,这些参数通过SDK或CLI下发到芯片寄存器。例如,设置队列最小保证可通过mmu queue min-guarantee命令,ACL规则通过acl add命令写入TCAM。规划阶段应使用芯片厂商提供的资源计算工具或SDK API查询TCAM和SRAM的剩余容量,确保规则下发不会失败。

小结

Broadcom交换芯片的QoS与ACL硬件架构可以概括为:入向解析→入向ACL→入向QoS分类→MMU队列管理→出向QoS整形→出向ACL→出向修改。TCAM承载ACL规则,SRAM承载QoS映射表,MMU共享缓存承载队列调度。理解这一流水线顺序和资源分布,是后续进行QoS策略设计和ACL规则规划的基础。