[Openib-windows] Bug or by design?
Saul
26oo at cox.net
Mon Aug 14 11:24:19 PDT 2006
I later discovered that you cannot go from RTS -> RTR -> RTS, so I scrapped
that idea. I made another post to the list with the "patch" that I put into
mthca_qp.c to fix things. It appears to me that there just needed to be
some required params specified for the RTS->RTS state change, just like
there are for the RTR->RTS change. Without anything being specified as
required, but with the routine mlnx_conv_qp_modify_attr() forcing
IB_QP_SQ_PSN to be required (line 743) it was a no win situation. If there
was an IB_MOD_QP_xxx flag for SQ_PSN I would be fine, but since there is not
I was stuck.
Please let me know if the changes that I made to mthca_qp.c are incorrect.
Thanks
----- Original Message -----
From: "Fabian Tillier" <ftillier at silverstorm.com>
To: "Saul" <26oo at cox.net>; "Leonid Keller" <leonid at mellanox.co.il>
Cc: <openib-windows at openib.org>
Sent: Monday, August 14, 2006 12:23 PM
Subject: Re: [Openib-windows] Bug or by design?
> Hi Saul,
>
> On 8/12/06, Saul <26oo at cox.net> wrote:
>>
>> Hello,
>>
>> I am having a problem updating the qkey of a QP that is in the RTS state.
>> The API I'm using is
>>
>> ib_modify_qp(const ib_qp_handle_t h_qp, const ib_qp_mod_t *const
>> p_qp_mod);
>>
>> 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).
>>
>> 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.
>>
>> 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?
>
> This should work. You can't move back from RTS to RTR without
> resetting the QP first and moving it back through INIT, which will
> break your connection.
>
> Leonid, can you look into this?
>
> Thanks,
>
> - Fab
>
More information about the ofw
mailing list