<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 6.00.2900.2912" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV><FONT face=Arial size=2>Hello,</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>I am having a problem updating the qkey of a QP
that is in the RTS state. The API I'm using is </FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>ib_modify_qp(const ib_qp_handle_t h_qp, const
ib_qp_mod_t *const p_qp_mod);</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>I set qp_mod.req_state (to IB_QPS_RTS),
qp_mod.state.rts.qkey (to my new qkey) and qp_mod.state.rts.opts (to
IB_MOD_QP_KEY).</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>The problem is that down in the mthca driver it
uses the integer style attribute mask. In the routine
mlnx_conv_qp_modify_attr() the code adds the attribute flag IB_QP_SQ_PSN as a
required flag. I can set this field in qp_mod without any problem but
there is no IB_MOD_QP_xxx flag that maps to IB_QP_SQ_PSN. Therefore the
check at line 562 in mthca_qp.c fails the operation.</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>So my question is: is this supposed to
operate this way? Can I not call ib_modify_qp() while at RTS if I want to
stay at RTS? I would think that this is ok because it is not flagged as an
invalid state transition in the driver. Is there some other API that I
should use to perform this qkey update? Or do I need to transition to RTR,
then back to RTS to avoid this?</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>Thank you</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV></BODY></HTML>