PFC死锁的处理方法及装置制造方法及图纸

技术编号:33855595 阅读:24 留言:0更新日期:2022-06-18 10:43
本申请提供一种PFC死锁的处理方法及装置,所述方法应用于网络设备,所述网络设备包括第一端口,所述第一端口内设置缓存队列,所述方法包括:在硬件检测周期内,若所述第一端口已配置PFC死锁硬件检测,则判断所述缓存队列的硬件状态是否处于PFC死锁状态;若是,则获取当前检测次数,并计算所述当前检测次数与第一值的差值;判断所述差值是否等于第二值;若等于,则关闭所述第一端口已配置的PFC死锁硬件检测,并向上层软件发送第一通知报文,以使得所述缓存队列再次接收到PFC XOFF帧后,不再对所述PFC XOFF帧处理,所述上层软件根据所述第一通知报文记录已出现连续PFC死锁,并向用户显示告警提示。户显示告警提示。户显示告警提示。

【技术实现步骤摘要】
PFC死锁的处理方法及装置


[0001]本申请涉及通信
,尤其涉及一种基于优先级的流量控制(英文:Priority

Based Flow Control,简称:PFC)死锁的处理方法及装置。

技术介绍

[0002]PFC是一种基于优先级的流量控制技术。根据报文的优先级,网络设备创建8个队列缓冲区。在对报文进行转发时,根据报文的优先级,网络设备将报文分发至对应的队列缓冲区中进行调度转发。
[0003]当某一优先级报文的发送速率超过接收速率时,使得出端口拥塞。为了防止拥塞丢包,后续待发送的报文将根据自身优先级缓存至对应的队列缓冲区中。但是,每个优先级对应的队列缓冲区的存储空间有限,若出端口长时间拥塞,队列缓冲区的buffer占用将持续增长。当buffer空间使用完后,将导致丢弃报文。
[0004]为了避免出现队列缓冲区资源使用完丢包的情况,网络设备通过PFC技术解决上述问题。网络设备向上一跳网络设备发送PFC停止(PFC XOFF)帧,以通知上一跳网络设备某一优先级报文对应的队列缓冲区资源不足。上一跳网络设备接收到PFC XOFF帧后,即刻停止发送该优先级的报文。当队列缓冲区资源恢复时,网络设备再次向上一跳网络设备发送PFC启动(PFC XON)帧,以通知上一跳网络设备该优先级对应的队列缓冲区资源恢复,上一跳网络设备即可恢复该优先级的报文发送。
[0005]通过使用PFC技术,使得某一优先级报文的拥塞不会影响其他优先级报文的正常转发,从而达到同一链路上不同优先级报文的发送互不影响。
[0006]如图1所示,图1为现有组网内出现PFC死锁示意图。当指定优先级的报文形成环路时,网络设备间反复发送和接收PFC XOFF帧,导致对应的队列缓冲区资源一直被占用无法释放,此时,网络设备进入PFC死锁状态。
[0007]在图1中,指定优先级报文的转发路径为网络设备A

网络设备B

网络设备C

网络设备A。当网络设备C内该优先级对应的队列缓冲区资源不足时,网络设备C向网络设备A发送PFC XOFF帧。网络设备A继续向网络设备B发送PFC XOFF帧。网络设备B向网络设备C发送PFC XOFF帧,如此形成PFC死锁状态。
[0008]为了解决实际组网中PFC死锁导致网络设备无法正常转发报文的问题。目前,通常的方法是采用软件检测PFC死锁。在检测时间内,某一队列缓冲区持续接收PFC XOFF帧,但没有任何报文转发,则确定网络设备发生了PFC死锁。此时,设置该队列缓冲区忽略接收到的PFC XOFF帧,使得该队列缓冲区继续转发报文即可解除网络设备的PFC死锁。
[0009]上述软件检测PFC死锁的方法虽然可以检测PFC死锁,但仍具有一定的局限性:1)秒级检测时间内持续接收PFC XOFF帧却无报文转发,将造成大量丢包;2)一次满足死锁判断条件则确定发生PFC死锁,检测准确度低;3)若网络设备故障,端口没有报文转发却持续接收PFC XOFF帧,造成PFC死锁误报;4)实际组网中,可能存在某些端口、队列缓冲区并未使用PFC功能,对此类端口、队列缓冲区检测PFC死锁将耗费大量的硬件资源;5)检测方式单
一,实际组网中存在频繁发生PFC死锁的情况,此时,无法通过人工干预排除PFC死锁。

技术实现思路

[0010]有鉴于此,本申请提供了一种PFC死锁的处理方法及装置,用以解决现有软件检测PFC死锁方式出现的大量丢包、检测准确度低、PFC死锁误报、耗费硬件资源以及检测方式单一的问题。
[0011]第一方面,本申请提供了一种PFC死锁的处理方法,所述方法应用于网络设备,所述网络设备包括第一端口,所述第一端口内设置缓存队列,所述方法包括:
[0012]在硬件检测周期内,若所述第一端口已配置PFC死锁硬件检测,则判断所述缓存队列的硬件状态是否处于PFC死锁状态;
[0013]若是,则获取当前检测次数,并计算所述当前检测次数与第一值的差值;
[0014]判断所述差值是否等于第二值;
[0015]若等于,则关闭所述第一端口已配置的PFC死锁硬件检测,并向上层软件发送第一通知报文,以使得所述缓存队列再次接收到PFC XOFF帧后,不再对所述PFC XOFF帧处理,所述上层软件根据所述第一通知报文记录已出现连续PFC死锁,并向用户显示告警提示。
[0016]第二方面,本申请提供了一种PFC死锁的处理装置,所述装置应用于网络设备,所述网络设备包括第一端口,所述第一端口内设置缓存队列,所述装置包括:
[0017]第一判断单元,用于在硬件检测周期内,若所述第一端口已配置PFC死锁硬件检测,则判断所述缓存队列的硬件状态是否处于PFC死锁状态;
[0018]计算单元,用于若是,则获取当前检测次数,并计算所述当前检测次数与第一值的差值;
[0019]第二判断单元,用于判断所述差值是否等于第二值;
[0020]中断处理单元,用于若等于,则关闭所述第一端口已配置的PFC死锁硬件检测,并向上层软件发送第一通知报文,以使得所述缓存队列再次接收到PFC XOFF帧后,不再对所述PFC XOFF帧处理,所述上层软件根据所述第一通知报文记录已出现连续PFC死锁,并向用户显示告警提示。
[0021]第三方面,本申请提供了一种网络设备,包括处理器和机器可读存储介质,机器可读存储介质存储有能够被处理器执行的机器可执行指令,处理器被机器可执行指令促使执行本申请第一方面所提供的方法。
[0022]因此,通过应用本申请提供的PFC死锁的处理方法及装置,在硬件检测周期内,若第一端口已配置PFC死锁硬件检测,则网络设备判断缓存队列的硬件状态是否处于PFC死锁状态;若是,则网络设备获取当前检测次数,并计算当前检测次数与第一值的差值;网络设备判断差值是否等于第二值;若等于,则网络设备关闭第一端口已配置的PFC死锁硬件检测,并向上层软件发送第一通知报文,以使得缓存队列再次接收到PFC XOFF帧后,不再对PFC XOFF帧处理,上层软件根据第一通知报文记录已出现连续PFC死锁,并向用户显示告警提示。
[0023]如此,解决了现有软件检测PFC死锁方式出现的大量丢包、检测准确度低、PFC死锁误报、耗费硬件资源以及检测方式单一的问题。实现了PFC死锁快速智能检测以及软件连续多次检测PFC死锁后关闭PFC功能,上述检测方式更完善,根据组网的实际需求灵活选择多
种功能,从而更大范围地应用于组网中。
附图说明
[0024]图1为现有组网内出现PFC死锁示意图;
[0025]图2为本申请实施例提供的PFC死锁的处理方法的流程图;
[0026]图3为本申请实施例提供的PFC死锁的处理装置结构图;
[0027]图4为本申请实施例提供的网络设备硬件结构体。
具体实施方式
[0028]这里将详细地对示例性实施例进行说明,其示例表示在附图中。下本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种PFC死锁的处理方法,其特征在于,所述方法应用于网络设备,所述网络设备包括第一端口,所述第一端口内设置缓存队列,所述方法包括:在硬件检测周期内,若所述第一端口已配置PFC死锁硬件检测,则判断所述缓存队列的硬件状态是否处于PFC死锁状态;若是,则获取当前检测次数,并计算所述当前检测次数与第一值的差值;判断所述差值是否等于第二值;若等于,则关闭所述第一端口已配置的PFC死锁硬件检测,并向上层软件发送第一通知报文,以使得所述缓存队列再次接收到PFC XOFF帧后,不再对所述PFC XOFF帧处理,所述上层软件根据所述第一通知报文记录已出现连续PFC死锁,并向用户显示告警提示。2.根据权利要求1所述的方法,其特征在于,所述判断所述缓存队列的硬件状态是否处于PFC死锁状态,具体包括:获取所述缓存队列的逻辑标记位;当所述逻辑标记位为第三值时,确定所述缓存队列的硬件状态处于PFC死锁状态;当所述逻辑标记位为第四值时,确定所述缓存队列的硬件状态未处于PFC死锁状态。3.根据权利要求1所述的方法,其特征在于,所述方法还包括:若否,则获取所述当前检测次数,并将所述当前检测次数重置为预设值,等待进入下一个硬件检测周期。4.根据权利要求1所述的方法,其特征在于,所述向上层软件发送第一通知报文之后,所述方法还包括:遍历所述第一端口内设置的缓存队列;判断所述缓存队列是否已出现过PFC死锁上报且所述PFC死锁恢复时间是否已达到恢复阈值;若所述缓存队列已出现过PFC死锁上报且所述PFC死锁恢复时间已达到恢复阈值,则在所述第一端口处启动所述PFC死锁硬件检测,并向所述上层软件发送第二通知报文,以使得所述缓存队列再次接收到所述PFC XOFF帧后,缓存所述PFC XOFF帧,所述上层软件根据所述第二通知报文记录已再次启动所述PFC死锁硬件检测。5.根据权利要求1所述的方法,其特征在于,所述方法还包括:若所述第一端口已配置PFC死锁软件检测,则判断当前是否已达到软件检测时间;若已达到,则获取所述缓存队列对应的第一PFC死锁上报次数以及在上一次软件检测时间到达后所述缓存队列对应的第二PFC死锁上报次数;判断所述第一PFC死锁上报次数与所述第二PFC死锁上报次数之间的差值是否大于差值阈值;若大于,则关闭所述第一端口已配置的PFC死锁软件检测,并解除所述缓存队列的PFC死锁状态。6.根据权利要求5所述的方法,其特征在于,所述方法还包括:若所述第一端口未配置所述PFC死锁软件检测,则判断所述第一端口是否已关闭所述PFC死锁软件检测;若已关闭,则在所述第一端口处启动所述PFC死锁软件检测。7.一种PFC死锁的处理装置,其特征在于,所述装置应用于网络设备,所述网络设备包
括...

【专利技术属性】
技术研发人员:汪杰陈海粟许丹
申请(专利权)人:新华三技术有限公司合肥分公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1