rdma struct ibv_qp_attr属性timeout,retry_cnt,rnr_retry等字段含义。

news/2024/11/24 13:50:46/

如下:

struct ibv_qp_attr {//...uint8_t			timeout;uint8_t			retry_cnt;uint8_t			rnr_retry;//...
};

在这里插入图片描述
在这里插入图片描述
一:timeout字段
timeout表示等待ACK或NACK的无限时间。
这意味着如果消息中的任何包丢失,并且没有发送ACK或NACK,则不会发生重试,
QP将停止发送数据。

将该字段设置为0时,如果对端没有回复ack或者是nack,那么就不会重新发送了。

验证:
在rxe里,在接收端将这个函数进行注释,则不会回复ack,
在这里插入图片描述
此时,无论retry_cnt和rnr_retry无论设置为多少是没有意义的,
在这里插入图片描述
没有收到ack,此时由于将接收端的发送函数注释了,所以不会收到ack包,由于此时将timeout设置为0,所以不会将数据进行重新发送。

二:retry_cnt字段
含义:远端没有应答而报告错误之前,QP将尝试重发数据包的总次数。
意思就是对端没有回ack,发送端重新发送数据包的个数,此时注意timeout不要设置为0。

验证:
同样先把接收端的发送函数进行注释。
然后设置该字段的值为5。

qp_attr.retry_cnt = 5;

由于发完第一个包,在指定的时间没有回复ack以后,后面又重新发了5次。
驱动底下是用一个3bit的值表示的,所以最大的值可以给7,给7的意思是重新发送无限次。
在这里插入图片描述
三:rnr_retry字段
含义:远程QP在报告错误之前发送RNR NACK时,QP将尝试重发数据包的总次数7为特殊值,表示在RNR情况下重试无限次

这个值是对端给你回复nack包时,你要重新发送数据包的次数,那我们可以模拟一下对端回复nack的情况。
发送端下发write_imm操作,接收端如果没有下发post_recv,那么接收端就会回复nack。

验证:
设置rnr_retry的值。

qp_attr.rnr_retry = 3;

在这里插入图片描述
由于对端回复的是nack包,所以在发完第一次以后,后面又重新发了3次。


http://www.ppmy.cn/news/36680.html

相关文章

VUE强制刷新渲染DOM

开始是 将获取到的数据给到 this.$api.coreStock.GetStockID({ id: data }).then((res) > { document.getElementById("mainconbarcode").value res.data.boxCode; }); 但后面影响数据保存 就想直接给到 dataForm.mainconbarcode res.data; this.…

C++ 98/03 应该学习哪些知识14

重载、重写和覆盖 C中的重载(overloading)、重写(override)和覆盖(overriding)是三个重要的概念,它们在C语言中都有着不同的意义和用法。在本文中,我们将详细解释这三个概念的含义&…

【基础算法】哈希表

系列综述: 💞目的:本系列是个人整理为了秋招算法的,整理期间苛求每个知识点,平衡理解简易度与深入程度。 🥰来源:材料主要源于代码随想录进行的,每个算法代码参考leetcode高赞回答和…

Spring Boot Aop初接触

AOP(面向切面编程),或多或少都听过一点。名字比较怪,切面,不容易理解,但其中真正含义,无非就是旁路控制,非侵入式编码之类。比如我想加个操作日志功能,利用AOP&#xff0…

Java实现一个简单的东南西北中的面板

目录 一、前言 二、代码部分 1.代码 三、程序运行结果(面板弹出) 四、涉及到的知识点代码 一、前言 1.本代码是我在上学时写的,有一些地方没能完美实现,请包涵也请多赐教! 2.本弹窗界面可以根据简单的要求进行…

【论文速递】ACL 2022 - 查询和抽取:将事件抽取细化为面向类型的二元解码

【论文速递】ACL 2022 - 查询和抽取:将事件抽取细化为面向类型的二元解码 【论文原文】:Query and Extract: Refining Event Extraction as Type-oriented Binary Decoding 【作者信息】:Wang, Sijia and Yu, Mo and Chang, Shiyu and Sun,…

MCAL知识点(七):GPT驱动配置详解

目录 1、概述 2、EB-tresos配置 2.1、GPT配置 2.2、TOM配置 2.3、中断配置 3、代码执行

【Python4CFD】笔记step5-8

CFDpython - 12 steps to N-S equation 承接上文,这是step5-8,相当于课程的第二阶段,这一阶段主要是讲2维的,先老实把链接放在这: 课程链接CFD Python, a.k.a. the 12 steps to Navier-Stokes视频链接ME702-Youtube …