<!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>