On Wed, Jul 08, 2020 at 09:41:26AM +0000, liweihang wrote: > Hi all, > > I'm a little confused about the role of IB_QP_CUR_STATE in the enumeration > ib_qp_attr_mask. > > In manual page of ibv_modify_qp(), comments of cur_qp_state is "Assume this > is the current QP state". Why we need to get current qp state from users > instead of drivers? > > For example, why the users are allowed to modify qp from RTR to RTS again > even if the qp's state in driver and hardware has already been RTS. > > I would be appretiate it if someone can help with this. See, IBTA section "11.2.5.2 MODIFY QUEUE PAIR", table 96. "Current QP state" is valid optional attribute in modify_qp() while transition to RTS. I guess that the reason is to sync QP states seen by SW with HW. Thanks > > Weihang