<div dir="ltr"><div class="gmail_extra"><br></div><div class="gmail_extra"><div class="" style="font-family:arial,sans-serif;font-size:14px"><div class="im"><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div>> I have installed the latest OFED-3.5-2 daily software on SLES 11.2 x86-64<br>> with Mellanox Technologies MT26428 [ConnectX VPI. PCIe 2.0 5GT/s - IB QDR /<br>> 10GigE].<br>> When MT26428 is in IB mode, all works fine. But when it switches into the<br>
> ethernet mode becoming a RoCE card, some error comes out. If the server<br>> application program uses rdma cm APIs (rdma_bind and rdma_listen) listening on<br>> IPv6 address like "::", it will refuse the connection launched by rdma_connect.<br>
> The errno is set to be ECONNREFUSED. However, if server listens on IPv4 address<br>> like "0.0.0.0" or "0", the connection is successful.<br>> I've found some patch:<br>> <a href="http://comments.gmane.org/gmane.linux.drivers.rdma/16448" target="_blank">http://comments.gmane.org/gmane.linux.drivers.rdma/16448</a><br>
> But I'm not sure whether it's relevant to the issue I experienced above.<br>> Has any one seen this bug ?<br><br></div>I don't recall that patch series touching anything outside of iwarp, so it shouldn't be relevant. Do you know if this worked in the previous version of OFED?<br>
<br>I recall some patches on the mail list regarding how RoCE formed GIDs. I don't know if those were pulled into 3.5-2 or not.<br><br>- Seans<br></blockquote></div><br></div></div></div><div class="gmail_extra" style="font-family:arial,sans-serif;font-size:14px">
I thought that patch series are relevant because in the kernel the handler functions of rdma_listen behave differently between ib and ethernet. </div><div class="gmail_extra" style="font-family:arial,sans-serif;font-size:14px">
int rdma_listen(struct rdma_cm_id *id, int backlog)<br> {<br> ...<br><br> if (id->device) {<br> switch (rdma_node_get_transport(id->device->node_type)) {<br> case RDMA_TRANSPORT_IB: // in IB mode<br>
ret = cma_ib_listen(id_priv);<br> if (ret)<br> goto err;<br> break;<br> case RDMA_TRANSPORT_IWARP: // in Ethernet mode<br>
ret = cma_iw_listen(id_priv, backlog);<br> if (ret)<br> goto err;<br> break;<br> default:<br> ret = -ENOSYS;<br> goto err;<br>
}<br> }</div><div class="gmail_extra" style="font-family:arial,sans-serif;font-size:14px"> ...<br> }</div><div class="gmail_extra" style="font-family:arial,sans-serif;font-size:14px"> I've tested OFED-3.5 and OFED-3.5-2, both failed.</div>
<div class="gmail_extra" style="font-family:arial,sans-serif;font-size:14px"> Besides, I've done some other tests. Once I set sin_family to be AF_INET6 before rdma_bind and rdma_listen, the server will refuse the connection request. It seems that Ethernet mode can not handle IPv6 address. </div>
<br></div></div>