PFC功能原理

       RoCE的流量需要保证运行在无损队列中,无损队列使用了PFC技术,能针对某一队列发送Pause帧,迫使上游停流。设备在进行报文转发时,根据报文的优先级进入对应映射关系的队列中进行调度转发。当某一优先级报文发送速率超过接收速率,导致接收方可用数据缓冲空间不足时,设备通过PFC PAUSE帧反馈给上一跳设备,上一跳设备收到PAUSE帧报文后停止发送本优先级报文,直到再收到PFC XON帧或经过一定的老化时间后才能恢复流量发送。本文讲解具体的PFC配置限制和设置指导。  

PFC(Priority-based Flow Control,基于优先级的流量控制)功能是一种精细的流量控制机制,可 以满足以太网流量传输的无丢包要求,通过以太网提供无损服务。 PFC 功能基于 802.1p 优先级对报文进行流量控制。如下图 所示,PFC 允许在一条以太网链路上 创建 8 个虚拟通道,并为每条虚拟通道指定一个 802.1p 优先等级。在不影响其他通道流量转发的 情况下,任意一条虚拟通道都可以单独暂停和重启。通过此机制可以实现同一接口上多种类型流量 共存、多种流量共享链路。

 

当本端发生拥塞时,设备会根据本端收到报文的 802.1p 优先级进行判别,从而确定对报文的处理
方式:
如果收到报文的 802.1p 优先级开启了 PFC 功能,则接收该报文,并向对端发送 PFC PAUSE
帧,通知对端设备暂时停止发送该类报文。对端设备在接收到 PFC PAUSE 帧后,将暂时停
止向本端发送该类报文。当拥塞仍然存在时,此过程将重复进行,直至拥塞解除。
如果收到报文的 802.1p 优先级未开启 PFC 功能,则直接将报文丢弃。

      交换芯片都有固定的Pipeline(转发流水线), Buffer管理处于入芯片流程和出芯片流程的中间位置。报文处于在这个位置上时,已经知道了该报文的入口和出口信息,因此逻辑上就可以分成入方向和出方向分别对缓存进行管理。

       PFC水线是基于入方向缓存管理进行触发的。芯片在入口方向提供了8个队列,我们可以将不同优先级的业务报文映射到不同的队列上,从而实现对不同优先级的报文提供不同的Buffer分配方案。

缓存类型

具体到每个队列,其Buffer分配根据使用场景设计为3部分:保证缓存,共享缓存,Headroom。

  • 保证缓存:每个队列的专用缓存,确保每个队列均有一定缓存以保证基本转发;
  • 共享缓存:流量突发时可以申请使用的缓存,所有队列共享;
  • Headroom:在触发PFC水线后,到服务器响应降速前,还可以继续使用的缓存。

PFC门限设置类型

通过配置PFC缓存门限可以有效解决因缓冲空间不足和入流量队列数量过大,导致发送数据缓冲区尾丢弃等问题。

为了灵活控制 PFC 功能,设备提供对 PFC 门限进行配置,合理利用接口存储空间。

PFC目前提供以下门限设置类型:

  • Headroom缓存门限(如上图中的headroom):Headroom存储空间中某802.1p优先级报文的最大使用cell资源。当达到使用的cell资源后,该接口会丢弃收到的报文。
  • 反压帧触发门限(如上图中的XOFF):Shared存储空间中某802.1p优先级报文在该存储空间使用cell资源上限。达到上限后,会触发PFC功能发送PAUSE帧。反压帧触发门限又分为动态反压帧触发门限和静态反压帧触发门限:
    • 动态反压帧触发门限:设置某802.1p优先级报文触发PFC PAUSE帧的可用cell资源的百分比。
    • 静态反压帧触发门限:设置某802.1p优先级报文触发PFC PAUSE帧的可用cell资源门限为一个固定值。
  • 反压帧停止门限与触发门限间的偏移量(如上图中的ingress-threshold-offset):当某802.1p优先级报文使用的cell资源减小了一个固定值时,停止发送PFC PAUSE帧,使对端设备恢复流量发送——从Xoff水线回落多少就可以发送Xon的偏移量[需要保证报文到达之前不欠吞吐——buffer不会过早为0]
  • PFC预留门限(如上图中的reserved-buffer):Guaranteed存储空间中为某802.1p优先级报文预留的cell资源。Guaranteed缓存是一个静态水线(固定的、独享的)。
  • Headroom最大可用的cell资源:配置Headroom存储空间某缓存池cell资源的大小。

Headroom缓存门限设置方法

如果想要进行更精确地控制,可以根据如下方法计算Headroom缓存门限值:计算从接收端发送PFC Pause帧到发送端收到PFC Pause帧并真正停止流量发送期间,在途流量大小。公式为:在途流量(bytes)=MTUR+MTUs+Response+2*link_delay。其中,

  • MTUR:队列触发反压帧门限到发送Pause帧之间,如果芯片有大包要发,这个大包的长度。由于这个大包可能来自其它任何队列,所以这个大包的长度应该等于设备允许的最大帧长度9216字节。
  • MTUs:如果上游设备在准备停止流量发送前,刚好开始发送上一个包,这个包的长度。由于只有PFC指定优先级的报文影响接收端的门限,所以MTUs的长度应该为PFC指定优先级报文的长度。
  • Response:上游设备收到PFC Pause帧到停止发送的反应时间产生的数据长度,该值固定为3840字节。
  • 2*link_delay:线路来、回方向上缓冲的报文长度。

反压帧触发门限设置方法

对于共享缓存的设置,需要采用更为灵活的动态水线。动态水线能根据当前空闲的Buffer资源,以及当前队列已使用的Buffer资源数量来决定能否继续申请到资源。由于系统中空闲共享Buffer资源与已使用的Buffer资源都是时刻变化的,因此阈值也处于不断变动中。相对于静态水线,动态水线能更灵活、有效的利用Buffer及避免造成不必要的浪费。

PFC动态反压帧触发门限动态如下:

百分比(动态反压帧触发门限值)Alpha值(芯片寄存器配置值,表示队列中cell个数和可用cell个数比值)占可用总缓存的实际比例(alpha/(1+alpha)*100)%
01/1280.77
11/641.53
2~31/323.03
4~51/165.88
6~111/811.11
12~201/420.00
21~331/233.33
34~50150.00
51~66266.66
67~80480.00
81~100888.88

动态水线alpha值=队列可申请缓存量/剩余共享缓存量。队列的α值越大,其在共享缓存中可使用的百分数占比也就越高。队列的α值设置越小,其最大可申请的共享缓存占比就越小。当端口拥塞时就会越早触发PFC流控,PFC流控生效后队列降速,可以很好地确保网络不丢包。

但从性能的角度看,过早触发PFC流控,会导致RDMA网络吞吐下降。因此我们在MMU水线设置时需要选取一个平衡值。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Marvell交换芯片原理是通过控制和管理网络数据流,实现多端口之间的数据转发和路由。该芯片使用了Marvell动态队列限制(Dynamic Queue Limit)技术,实现高速无阻塞的4级QOS交换结构。此外,芯片还包含一个高性能地址查询引擎,能够支持多达8K个节点和1Mbit的帧缓存。内部MAC单元符合IEEE802.3标准,最大支持10KByte帧长。芯片还包含一个TCAM-based策略控制列表引擎,支持256条规则。交换芯片的RGMII(或MII/RMII)接口可以直接连接管理器件或者路由器CPU作为MAC使用。千兆SERDES接口支持SGMII、1000BASE-X和100BASE-FX等。此外,该芯片还支持802.3az节能以太网(Energy Efficient Ethernet)和帧唤醒功能,能够在连接CPU时进入睡眠模式以降低系统功耗。交换芯片也支持使用SMI接口和以太网帧进行配置,以及使用EEPROM进行配置。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [marvell万兆交换芯片参考原理图](https://download.csdn.net/download/qq_38614075/10914069)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Marvell交换芯片88E6321/88E6320驱动总结-硬件篇](https://blog.csdn.net/vesamount/article/details/86591448)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值