3. 端口与MAC层处理

在Broadcom高速以太网交换芯片中,端口与MAC层处理是数据帧进入和离开芯片的第一道关口。理解端口类型、MAC子层功能以及围绕端口构建的链路聚合、镜像和故障保护机制,是掌握整机转发行为的基础。本节从物理端口形态出发,逐层展开到MAC层的关键处理逻辑,再延伸到端口级的高可用与可观测性设计。

一、以太网端口类型与芯片侧接口

交换芯片的端口在逻辑上分为物理端口与逻辑端口两类。物理端口对应芯片的SerDes通道,常见速率包括1G、10G、25G、40G、50G、100G、200G和400G。在Broadcom的StrataXGS/Trident与Tomahawk系列中,物理端口通过MAC/PCS/PMA子层与外部光模块或电口PHY连接。逻辑端口则是在物理端口之上抽象出的LAG组、VLAN成员口、隧道口等,转发查表时以逻辑端口号作为出端口索引。

从芯片内部结构看,每个物理端口包含独立的MAC控制器、收发FIFO、统计计数器和流控逻辑。端口可工作在全双工模式,支持自协商、EEE节能、FEC(RS-FEC/KR-FEC)等特性。以100G端口为例,芯片侧通常采用4×25G NRZ或1×100G PAM4 SerDes,通过CAUI-4或CR4接口与模块对接。端口初始化时需要完成SerDes均衡、链路训练和FEC对齐,只有链路状态进入UP后,MAC层才开始正常收发。

二、MAC层核心功能

MAC层位于LLC子层与PHY之间,承担帧的封装/解封装、地址识别、差错检测和介质访问控制。在交换芯片中,MAC功能主要由硬件流水线实现,关键处理包括:

  • 帧定界与同步:通过前导码和SFD识别帧起始,利用IFG保证帧间间隔。
  • 地址过滤:根据目的MAC和源MAC进行单播/组播/广播判定,源MAC可用于学习。
  • CRC校验:对接收帧计算FCS,错误帧可选择丢弃或上报。
  • 流控:支持IEEE 802.3x PAUSE帧和802.1Qbb PFC,按优先级反压。
  • 统计:维护RX/TX字节数、包数、错误包、丢弃包等计数器。

接收方向,MAC将串行数据对齐为字节流,剥离前导码和FCS后送入解析器;发送方向,MAC根据调度结果插入前导码、计算FCS并驱动SerDes发送。MAC层还负责处理VLAN标签的插入与剥离,以及MTU检查,超长帧可被标记或丢弃。

端口与MAC层处理关系图 物理端口 SerDes 1G/10G/25G SerDes 40G/100G SerDes 200G/400G FEC / 自协商 光模块 / 电口PHY MAC层处理流水线 帧定界 / 前导码 / SFD / IFG 目的MAC / 源MAC 地址识别 VLAN 标签插入 / 剥离 / MTU检查 CRC / FCS 校验与错误标记 PAUSE / PFC 流控 统计计数器 RX/TX/错误/丢弃 逻辑端口与机制 LAG 链路聚合组 端口镜像 SPAN 故障保护 / 链路倒换 VLAN 成员口 隧道口 / 子接口 RX/TX 映射

三、链路聚合(LAG)

链路聚合将多条物理链路捆绑为一条逻辑链路,既提升带宽又提供冗余。Broadcom芯片支持静态LAG和动态LACP两种模式。LAG的转发核心是哈希选路:芯片提取帧的源/目的MAC、源/目的IP、源/目的端口或VLAN等字段,通过可配置的哈希算法计算出一个索引,再映射到具体成员口。哈希因子可通过寄存器选择,例如L2哈希使用SMAC+DMAC,L3哈希使用SIP+DIP,L4哈希加入SPORT+DPORT。

实际部署中,若哈希分布不均,会出现某条成员链路拥塞而其他链路空闲。此时可调整哈希种子或启用动态负载均衡。LAG成员口的增减会触发哈希重算,可能导致少量乱序,因此通常配合流量收敛时间要求进行设计。LACP协议报文由芯片或CPU处理,超时后成员口被移出聚合组,剩余成员继续转发。

四、端口镜像(SPAN)

端口镜像用于将指定端口的入向或出向流量复制到监控端口,供分析仪或采集服务器使用。Broadcom芯片支持基于端口、基于VLAN和基于流(ACL)的镜像。镜像会话包含源端口、方向(ingress/egress/both)、目的端口和可选的截断长度。芯片在转发流水线中复制帧并打上镜像头(如ERSPAN或本地镜像标签),再送往目的端口。

需要注意的是,镜像流量会占用目的端口带宽,若镜像流量超过目的端口速率,帧会被丢弃。因此工程上常采用截断(snaplen)或采样(sFlow)来降低镜像负载。此外,镜像目的端口通常不参与正常转发,需配置为镜像专用口,避免环路。

五、故障保护机制

端口级故障保护主要包括链路状态检测、快速倒换和保护倒换。芯片通过SerDes的LOS(Loss of Signal)、远端故障指示和链路训练状态判断链路是否可用。当主链路故障时,可触发以下动作:

  • LAG成员口剔除:故障成员口从聚合组移除,流量由剩余成员承担。
  • 保护倒换:在1:1或1+1保护结构中,将流量切换到备用端口或备用路径。
  • ERPS/G.8032:在环网中通过R-APS协议实现50ms级倒换。
  • 端口禁用与告警:故障端口可被自动shutdown,并上报SNMP Trap或Syslog。

以LAG保护为例,假设一个4成员100G聚合组,当成员2的SerDes失锁,芯片在检测到LOS后约10ms内将该成员置为DOWN,哈希表重算,剩余3条链路继续转发。若配置了LACP,协议会在3秒超时后确认成员失效。对于要求更高的场景,可启用BFD或硬件快速倒换,将检测时间压缩到毫秒级。

工程提示:端口镜像与LAG哈希都会消耗芯片表项和带宽资源。规划时应先确认芯片的镜像会话数、LAG组数和哈希表深度,避免因资源不足导致功能无法启用。

六、配置示例与观察要点

以下为某Broadcom平台上的端口与LAG配置片段,用于说明关键参数:

# 创建LAG组10,成员为xe0-xe3
lag 10
  member xe0
  member xe1
  member xe2
  member xe3
  hash-mode l3l4
  lacp enable

# 配置端口镜像:源xe0入向,目的xe8
mirror session 1
  source xe0 ingress
  destination xe8
  snaplen 128

# 查看端口状态与统计
show port xe0 status
show lag 10 members
show mirror session 1

观察要点:执行show port xe0 status应看到link up、speed 100G、FEC mode等字段;show lag 10 members应列出4个成员及其状态;show mirror session 1应显示源、目的和截断长度。若成员口状态为down,需检查SerDes均衡、光模块兼容性和FEC配置。镜像会话若显示inactive,通常是因为目的端口未配置为镜像专用或带宽不足。

综上,端口与MAC层处理贯穿了从物理信号到逻辑转发的完整链路。端口类型决定了芯片的接入能力,MAC层保证了帧的正确收发与统计,LAG和镜像分别解决了带宽扩展与流量可视,故障保护则确保了链路级的高可用。理解这些机制的协同关系,才能在后续的VLAN、ACL和QoS配置中做出合理决策。