先看解释:
首先是max_rd_atomic字段,如果发送端要发起read或者atomic操作,那么这个字段通常要设置为1,如果设置为0,那么即使你发起了read或者atomic操作也是不起作用的,而对于发送端来说max_dest_rd_atomic字段可以设置为0(当然,条件是它此时不会做为接收端来接收read请求或者atomic请求),max_rd_atomic字段设置为1,就说明它只能处理一次读请求或者原子请求么?经过实际的测试并不是这样的,看了一下rxe的驱动代码,发起了了一次原子请求以后(值减1),当收到ack以后,这个值又会进行了加一操作。所以一般给1就可以。
而对于接收端来说max_dest_rd_atomic字段一般设置为1就可以,而max_rd_atomic字段,可以设置为0,(当然它没有作为发送端的话)
参考:https://www.rdmamojo.com/2013/01/12/ibv_modify_qp/