BCM56312交换芯片MMU介绍

概述

BCM56310系列交换芯片不支持HQoS,其MMU提供以下功能:

1)Ingress back pressure (IBP)

2)PAUSE metering

3)Head-of-line (HOL) blocking prevention

4)Congestion bits

本方案旨在对缓存利用增加约束条件,同时确定拥塞场景的预定义行为。芯片内部的拥塞丢包要么体现在入端口包统计,要么体现在出端口和COS队列包统计。

IBP(Ingress Back Pressure)

IBP机制的目的有两个:

1)最大限度保证不丢包;

2)尽量让各Ingress Port公平地利用缓存资源;

IBP机制包括local IBP(end-to-end IBP)和remote IBP(end-to-end flow control)。

IBP利用IBPPKTCOUNTIBPCELLCOUNT两个计数器来统计每个ingress port占用的MMU cell数和包个数。当入口拥塞时,PAUSE流控帧被用来告知对端停止发送报文,什么时候发送PAUSE流控帧取决于前述计数值和一些预定义的阈值。

IBPBKSTATUS用来跟踪ingress port是否处于back pressure状态。当ingress port处于back pressure状态时,定期发送PAUSE流控帧(timer value 0xffff)给对端,解除back pressure状态之后,发送PAUSE流控帧(timer value 0x0)给对端通知对端继续发送报文。

BCM56312交换芯片MMU介绍

当IBPCELLCOUNT超过CELLSETLIMIT时,ingress port进入back pressure状态并停止收包;当超过DISCARDSETLIMIT时,开始丢包;降至RESETLIMITSEL时,退出backpressure状态并开始收包。

IBP Cell Thresholds和Packet Thresholds任意一个满足条件,则进入back pressure状态;两者且不满足,才退出back pressure状态。

 BCM56312交换芯片MMU介绍

各阈值寄存器定义如下:

BCM56312交换芯片MMU介绍

PAUSE Metering

每个ingress port都有一个单独的漏桶(leaky bucket)用来计算端口占用的带宽。PAUSE Metering可以用来触发ingress port反压(即PAUSE流控帧),从而限制带宽。这种机制提供了入端口流量整形(rate shaping)的能力。

BCM56312交换芯片MMU介绍

 漏桶的原理是,每隔T_REFRESH时间间隙,从BUCKET_COUNT中取出REFRESHCOUNT个令牌(token),最开始,BUCKET_COUNT为0,当入端口接收报文时,令牌被放入BUCKET_COUNT中。

每发送一个cell数据,漏桶状态都会被更新。当MMU检测到达到阈值时,会在1~2个时钟周期内给入端口发送消息,入端口在完成当前数据发送之后响应。

当MMU占用资源达到DISCARD阈值时,MMU开始丢弃后续报文(同时通知ingress port丢弃后续报文),直到MMU占用资源降低到RESUME阈值。

BCM56312交换芯片MMU介绍

HOL Prevention

 

BCM56312交换芯片MMU介绍

上一篇:javascript控制开始日期,和结束日期在同一个月


下一篇:数据库管理与高可用 第五章 SQL高阶语句