<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="Generator" CONTENT="MS Exchange Server version 6.5.7232.36">
<TITLE>RE: [openib-general] Local QP operation err while sending packet over UD transport</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/plain format -->
<BR>

<P><FONT SIZE=2> VBabu> Thanks for your quick response.<BR>
<BR>
I'm not sure if it matters, but firmware version 5.0.1 is old -- you<BR>
might want to upgrade to 5.1.0.<BR>
<BR>
 VBabu > I will check with the vendor and findout how to upgrade the firmware.<BR>
<BR>
 Also, are you using the IB drivers<BR>
shipped with kernel 2.6.13.1, or have you updated to the OpenIB<BR>
subversion code?  There were several bugfixes to the mem-free support<BR>
since 2.6.13 was released.<BR>
<BR>
 VBabu> Currently I am just using the IB drivers shipped with kernel 2.6.13.1. I will<BR>
also try to upgrade IB drivers to the latest OpenIB subversion code.<BR>
<BR>
Per the IB spec, the opcode field is not valid if the status is not<BR>
success, so there's no point in looking at that -- it's just an<BR>
uninitialized memory location.  Also, the current driver doesn't set<BR>
the vendor_err field, so that's not useful either.<BR>
<BR>
 VBabu> Then I will ignore opcode and vendor_err fields.<BR>
<BR>
Perhaps someone from Mellanox can decode the undocumented fields of<BR>
this CQE.<BR>
<BR>
 VBabu> I will contact Mellanox FAE to decode these fields.<BR>
<BR>
One possibility that comes to mind is that you are not creating your<BR>
UD address handle correctly.  I think that could possibly cause the<BR>
error you're seeing.<BR>
<BR>
Can you post the code you're getting this error with?<BR>
<BR>
 VBabu> I am not sure I can post the whole code. But here is the part of it.<BR>
<BR>
 I am getting "dlid" and "dqpn" of the remote end and initializing it here.<BR>
<BR>
#define TLEM_SERVICE_LEVEL      0       /* TODO: Choose right QoS level */<BR>
#define TLEM_SOURCE_PATH_BITS   0       /* Offset from the source base LID */<BR>
#define TLEM_STATIC_RATE        4       /* 4x can transmit @ 10Gb/s */<BR>
<BR>
                ...<BR>
                ah_attr.dlid = dlid;<BR>
                ah_attr.sl = TLEM_SERVICE_LEVEL;<BR>
                ah_attr.src_path_bits = TLEM_SOURCE_PATH_BITS;<BR>
                ah_attr.static_rate = TLEM_STATIC_RATE;<BR>
                ah_attr.ah_flags = 0;<BR>
                ah_attr.port_num = tlem -> port;<BR>
                if (IS_ERR(tlem -> address = ib_create_ah(tlem -><BR>
                        hca_info -> pd, &ah_attr))) {<BR>
                        printk(KERN_ERR PFX "%s: Can't create address handle"<BR>
                               "ib_create_ah() returned %p", __func__,<BR>
                               tlem -> address);<BR>
                        ret = -1;<BR>
                }<BR>
                ...<BR>
                /* Describe the scatter/gather list */<BR>
                elem -> u.txwr.num_sge = n;<BR>
                elem -> u.txwr.sg_list = sglist;<BR>
<BR>
                elem -> u.txwr.wr_id = (u64) elem;<BR>
                elem -> u.txwr.imm_data = 0;<BR>
                elem -> u.txwr.send_flags = IB_SEND_SIGNALED;<BR>
                elem -> u.txwr.wr.ud.ah = tlem -> address;<BR>
                elem -> u.txwr.wr.ud.remote_qpn = dqpn;<BR>
                elem -> u.txwr.wr.ud.remote_qkey = tlem -> qkey;<BR>
<BR>
                if ((ret = ib_post_send (tlem -> qp, & elem -> u.txwr,<BR>
                        & bad_wr)) != 0)<BR>
                        printk (KERN_ERR "%s: ib_post_send failed: %d\n",<BR>
                                __func__, ret);<BR>
                else<BR>
                        printk (KERN_INFO "%s: ib_post_send okay!\n", __func__);<BR>
<BR>
</FONT>
</P>

</BODY>
</HTML>