01-PFC配置
本章节下载: 01-PFC配置 (278.06 KB)
目 录
PFC(Priority-based Flow Control,基于优先级的流量控制)功能是一种精细的流量控制机制,可以满足以太网流量传输的无丢包要求,通过以太网提供无损服务。
PFC功能基于802.1p优先级对报文进行流量控制。如图1-1所示,PFC允许在一条以太网链路上创建8个虚拟通道,并为每条虚拟通道指定一个802.1p优先等级。在不影响其他通道流量转发的情况下,任意一条虚拟通道都可以单独暂停和重启。通过此机制可以实现同一接口上多种类型流量共存、多种流量共享链路。
图1-1 PFC工作原理
当本端发生拥塞时,设备会根据本端收到报文的802.1p优先级进行判别,从而确定对报文的处理方式:
· 如果收到报文的802.1p优先级开启了PFC功能,则接收该报文,并向对端发送PFC PAUSE帧,通知对端设备暂时停止发送该类报文。对端设备在接收到PFC PAUSE帧后,将暂时停止向本端发送该类报文。当拥塞仍然存在时,此过程将重复进行,直至拥塞解除。
· 如果收到报文的802.1p优先级未开启PFC功能,则直接将报文丢弃。
用户可以在系统视图和接口视图下配置以太网接口PFC功能,多次在系统视图和接口视图下配置PFC功能,最后一次配置生效。
无论端口是否配置PFC功能,端口都可以接收PFC PAUSE帧。但只有PFC功能处于开启状态时,才对收到的PFC PAUSE进行处理。所以,必须保证本端和对端的PFC功能都处于开启状态,PFC功能才能生效。
为了避免报文在传输过程中因拥塞而发生丢包,请在报文流经的所有端口上都进行相同的PFC功能配置。
在IRF组网环境中配置本功能,需要注意:
· 不建议在802.1p优先级为0、6或7时配置PFC功能,以免影响设备IRF功能及其它协议正常运行。
· 设备处于IRF模式时,IRF物理端口也需要开启PFC功能。
有关IRF相关内容的详细介绍,请参见“虚拟化技术配置指导”中的“IRF”。
在Overlay网络中,需要配置qos trust tunnel-dot1p命令,PFC功能才能生效。有关Overlay网络的详细介绍,请参见“VXLAN配置指导”中的“VXLAN”。有关qos trust tunnel-dot1p命令的详细介绍,请参见“ACL和QoS命令参考”中的“优先级映射”。
设备配置如下PFC、QoS、数据缓冲区相关命令时会导致端口流量中断,出现BFD和LLDP协议震荡。
· buffer apply
· buffer egress cell queue shared(配置本命令本身不丢包,执行buffer apply应用配置时丢包)
· qos wred apply
· qos wrr weight
· qos wrr group weight
· qos wfq byte-count
· qos wfq queue-id group { 1 | 2 } byte-count
· priority-flow-control no-drop dot1p
· priority-flow-control dot1p headroom
· priority-flow-control dot1p ingress-buffer dynamic
· priority-flow-control dot1p ingress-buffer static
· priority-flow-control dot1p ingress-threshold-offset
· priority-flow-control dot1p reserved-buffer
在报文转发过程中开启或关闭指定802.1p优先级的PFC功能时,会导致流量中断,短暂丢包。
(1) 进入系统视图。
system-view
(2) 开启所有接口的PFC功能。
priority-flow-control { auto | enable [ receive | send ] }
缺省情况下,PFC功能处于关闭状态。
(3) 开启所有接口的指定802.1p优先级的PFC功能。
priority-flow-control no-drop dot1p dot1p-list
缺省情况下,所有接口下802.1p优先级的PFC功能都处于关闭状态。
(4) 进入以太网接口视图。
interface interface-type interface-number
(5) 配置PFC功能的开启模式。
priority-flow-control { auto | enable [ receive | send ] }
缺省情况下,PFC功能处于关闭状态。
(6) 开启指定802.1p优先级的PFC功能。
priority-flow-control no-drop dot1p dot1p-list
缺省情况下,所有802.1p优先级的PFC功能都处于关闭状态。
(7) (可选)配置PFC PAUSE帧的暂停时间。
priority-flow-control pause-time time-vale
缺省情况下,PFC PAUSE帧的暂停时间为65535。
接口的存储空间分为以下几种:
· Headroom存储空间。
· Shared存储空间。
· Guaranteed存储空间。
为了灵活控制PFC功能,设备提供对PFC门限进行配置,合理利用接口存储空间。目前提供以下门限设置:
· Headroom缓存门限:Headroom存储空间中某802.1p优先级报文的最大使用cell资源。当达到使用的cell资源后,该接口会丢弃收到的报文。
· 反压帧触发门限:Shared存储空间中某802.1p优先级报文在该存储空间的使用cell资源上限。达到上限后,会触发PFC功能。反压帧触发门限又分为动态反压帧触发门限和静态反压帧触发门限:
¡ 动态反压帧触发门限:设置可用cell资源的百分比。
¡ 静态反压帧触发门限:设置可用cell资源为固定值。
· 反压帧停止门限与触发门限间的偏移量:当触发反压帧触发门限后,当某802.1p优先级报文使用的cell资源减小了一个固定值时,不会再触发PFC功能。
· PFC预留门限:Guaranteed存储空间中为某802.1p优先级报文预留的cell资源。
开启指定802.1p优先级的PFC功能后,会为PFC的各种门限设置一个缺省值,此缺省值在一般的组网环境下是效果较好的参数组合,不建议用户自行调整使用。接口PFC门限的缺省值请参见表1-1。
配置PFC门限前必须开启指定802.1p优先级的PFC功能。
表1-1 PFC门限缺省配置
PFC门限(右) 接口类型(下) |
Headroom缓存门限 |
动态反压帧触发门限 |
反压帧停止门限与触发门限间的偏移量 |
PFC预留门限 |
25GE |
125 |
5 |
12 |
20 |
100GE |
491 |
5 |
12 |
20 |
取消接口下PFC门限配置时,接口下的PFC门限配置会被恢复成只执行priority-flow-control no-drop dot1p后的状态。
本功能不支持预配置。有关预配置的详细介绍,请参见“基础配置指导”中的“预配置”。
在报文转发过程中时配置如下命令时,会导致流量中断,短暂丢包:
· priority-flow-control headroom
· priority-flow-control dot1p ingress-buffer dynamic
· priority-flow-control dot1p ingress-buffer static
· priority-flow-control dot1p ingress-threshold-offset
· priority-flow-control dot1p reserved-buffer
(1) 进入系统视图。
system-view
(2) 配置Headroom最大可用的cell资源。
priority-flow-control poolID pool-number headroom headroom-number
缺省情况下,Headroom最大可用的cell资源为28672。
(3) 进入以太网接口视图。
interface interface-type interface-number
(4) 配置Headroom缓存门限。
priority-flow-control dot1p dot1p headroom headroom-number
缺省情况请参见表1-1。
(5) 配置反压帧触发门限。
¡ 配置动态反压帧触发门限。
priority-flow-control dot1p dot1p ingress-buffer dynamic ratio
缺省情况请参见表1-1。
¡ 配置静态反压帧触发门限。
priority-flow-control dot1p dot1p ingress-buffer static threshold
缺省情况下,未配置静态反压帧触发门限。
(6) 配置反压帧停止门限与触发门限间的偏移量。
priority-flow-control dot1p dot1p ingress-threshold-offset offset-number
缺省情况请参见表1-1。
(7) 配置PFC预留门限。
priority-flow-control dot1p dot1p reserved-buffer reserved-number
缺省情况请参见表1-1。
当指定优先级的报文形成环路时,会导致数据缓冲区内报文无法转发,此时设备进入PFC死锁状态。
通过配置本功能,可以定期检测设备是否处于PFC死锁状态。在PFC死锁检测周期内,如果接口一直处于PFC XOFF状态,则设备进入PFC死锁状态。此时设备自动恢复时会在延迟周期结束后解除PFC死锁状态,恢复PFC功能和PFC死锁检测功能。在PFC死锁检测自动恢复的延迟周期内,设备将关闭PFC功能和PFC死锁检测功能,以便报文能够正常转发。
PFC死锁状态解除后,用户可采用自动或手工方式来恢复PFC死锁检测功能。恢复PFC死锁检测功能会让PFC功能继续生效。所以,通常情况下,使用自动恢复方式即可。当报文环路无法消除,设备频繁处于PFC死锁状态时,用户可以使用手工恢复方式,并尽快排除故障,再执行priority-flow-control deadlock recover命令,恢复PFC死锁检测功能和PFC功能。
指定的CoS值必须在priority-flow-control no-drop dot1p命令配置的802.1p优先级内。不同的CoS值对应不同的802.1p优先级,可以通过display qos map-table dot1p-lp命令查看。
用户需要在接口下开启PFC功能和指定802.1p优先级的PFC功能。
(1) 进入系统视图。
system-view
(2) 配置PFC死锁检测定时器的精度。
priority-flow-control deadlock precision { high | normal | low }
缺省情况下,PFC死锁检测定时器的精度为普通精度。
(3) 配置PFC死锁检测的周期。
priority-flow-control deadlock cos cos-value interval interval [ pause-recover ]
缺省情况下,未配置PFC死锁检测的周期。
通过指定pause-recover参数,设备可以根据接口收到PFC PAUSE帧的情况自动恢复PFC功能和PFC死锁检测功能:当检测周期达到时,如果接口处于PFC死锁状态,且接口仍能收到PFC PAUSE帧,则认为接口故障未恢复,接口继续处于PFC死锁状态;当检测周期达到时,如果接口处于PFC死锁状态,但接口未收到PFC PAUSE帧,则认为接口故障已恢复,自动恢复接口的PFC功能和PFC死锁检测功能。
(4) 配置PFC死锁检测自动恢复的延迟周期。
priority-flow-control deadlock auto-recover cos cos-value delay delay-time
缺省情况下,未配置PFC死锁检测的恢复周期。
(5) 配置设备在自动恢复PFC死锁检测的延迟时间内对报文的处理动作。
priority-flow-control deadlock auto-recover action { discard | forwarding }
缺省情况下,设备在自动恢复PFC死锁检测的延迟时间内转发收到的数据报文。
(6) 配置在指定周期内发生PFC死锁的上限次数。
priority-flow-control deadlock threshold cos cos-value period period count count [ down-auto-recovery | error-down ]
缺省情况下,未配置指定周期内发生PFC死锁的上限次数。
(7) 进入以太网接口视图。
interface interface-type interface-number
(8) 配置在指定周期内端口发生PFC死锁的次数达到配置值时端口的动作。
priority-flow-control deadlock threshold action { down-auto-recovery | error-down | turn-off }
缺省情况下,在指定周期内端口发生PFC死锁的次数达到配置值时端口的动作以系统视图下priority-flow-control deadlock threshold命令为准。
(9) 退回系统视图。
quit
(10) 配置指定周期内发生PFC死锁的次数达到上限导致端口被关闭,端口状态自动恢复的时长。
shutdown-interval [ priority-flow-control ] interval
缺省情况下,端口状态自动恢复的时长为30秒。
(11) 配置PFC死锁检测功能的恢复方式。
priority-flow-control deadlock recover-mode { auto | manual }
缺省情况下,PFC死锁检测功能恢复方式为自动恢复方式。
(12) 开启PFC死锁检测功能。
priority-flow-control deadlock enable
缺省情况下,PFC死锁检测功能处于关闭状态。
(13) (可选)手工恢复PFC死锁检测功能。
priority-flow-control deadlock recover
配置PFC死锁检测功能的恢复方式为manual时,只有配置本命令才能恢复PFC死锁检测功能。
设备收到报文后,会根据报文的DSCP值以及设备上dscp-dot1p的映射关系,将该报文加入指定Dot1p优先级的队列转发。当同一Dot1p优先级的流量成环,报文所经过的路径上每一个节点都出现PFC反压,导致每一个节点停止发送对应DSCP值的报文,即产生PFC死锁。为了避免以上问题,可以修改报文的DSCP值和对应的Dot1p优先级,以便修改后报文可以在新的Dot1p优先级队列中使用新的DSCP值转发,避免该DSCP值的报文持续处于PFC死锁状态。
当某一Dot1p优先级的队列的缓冲区资源消耗过快时,缓存资源容易超过PFC XOFF门限,引起PFC死锁。通过配置本功能,可以修改报文所属的Dot1p优先级,使用其他Dot1p优先级队列转发报文,预防PFC死锁,保证流量正常转发。因此,该功能也被称为PFC死锁预防功能。
配置本功能后,设备将在发送报文时更改报文的Dot1p优先级和DSCP值。
每个接口最多可配置两个映射配置,且源DSCP值必须不同。
设备仅支持配置IPv4报文的DSCP映射关系,且最大只支持四组DSCP映射,当源DSCP值、Dot1p优先级和映射的DSCP值一致时,视为一组。
本功能仅在QoS和ACL资源的共享模式为preemption模式时支持,且当配置本功能后,若要切换为非preemption模式,则需要先执行undo priority-flow-control dscp-mapping命令来删除报文的DSCP映射关系的配置。有关QoS和ACL资源的共享模式的详细介绍,请参见“ACL和QOS命令参考”中的“ACL”。
配置了DSCP映射关系的接口不支持加入聚合组,聚合组内成员端口上配置的DSCP映射关系不生效。
(1) 进入系统视图。
system-view
(2) 进入以太网接口视图。
interface interface-type interface-number
(3) 配置报文的DSCP映射关系。
priority-flow-control dscp-mapping { original-dscp original-dscp-value to priority priority [ dscp dscp-value ] }&<1-4>
缺省情况下,未配置报文的DSCP映射关系。
用户可根据实际组网情况,配置接口入方向或者出方向PFC报文的预警门限。预警门限用于PFC报文传输速率处于正常范围内,但需要提醒用户提前关注的情况。
当接口接收或发送PFC报文的速率达到预警门限时,系统会生成Trap和日志信息来提醒用户,以提前发现网络中的一些异常问题。例如:
· 对端设备网卡故障,不停地持续高速发送PFC帧,可以配置入方向预警门限进行监控。
· 本设备故障后不停发送PFC帧,可以配置出方向预警门限进行监控。
· 如果有双向监控需求的,可以在入和出方向都配置预警门限进行监控。
仅当PFC功能处于开启状态时,才会统计该接口接收和发送的PFC帧数量,本功能配置的预警门限才能生效。
(1) 进入系统视图。
system-view
(2) 进入以太网接口视图。
interface interface-type interface-number
(3) 配置入方向PFC报文的预警门限。
priority-flow-control early-warning dot1p dot1p-list inpps pps-value缺省情况下,未配置入方向PFC报文的预警门限。
(4) 配置出方向PFC报文的预警门限。
priority-flow-control early-warning dot1p dot1p-list outpps pps-value缺省情况下,未配置出方向PFC报文的预警门限。
在完成上述配置后,在任意视图下执行display命令可以显示接口的PFC信息。
表1-2 以太网接口显示和维护
操作 |
命令 |
显示接口的PFC信息 |
display priority-flow-control interface [ interface-type [ interface-number ] ] |
显示DSCP映射关系的统计信息 |
display priority-flow-control dscp-mapping statistics [ slot slot-number ] |
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!