It seems that we had a problem with forwarding packets. The packet would be
sent with one fragment size with size 0. The hw would than refuse to send the
packet.
Thanks
Tzachi
Index: b:/users/tzachid/projinf6/trunk/ulp/ipoib_NDIS6_CM/kernel/ipoib_port.cpp
===================================================================
--- b:/users/tzachid/projinf6/trunk/ulp/ipoib_NDIS6_CM/kernel/ipoib_port.cpp
(revision 6618)
+++ b:/users/tzachid/projinf6/trunk/ulp/ipoib_NDIS6_CM/kernel/ipoib_port.cpp
(revision 6619)
@@ -1154,7 +1154,7 @@
return status;
}
p_port->ib_mgr.qpn = qp_attr.num;
-
+
/* Register all of physical memory */
phys_create.length = MEM_REG_SIZE;
phys_create.num_ranges = 1;
@@ -4247,8 +4247,10 @@
p_desc->send_wr[0].local_ds[j].length =
p_sgl->Elements[i].Length - EthHeaderOffset - DataOffset;
p_desc->send_wr[0].local_ds[j].lkey = s_buf->p_port->ib_mgr.lkey;
+
if(p_desc->send_wr[0].local_ds[j].length > 0) {
+ j++;
+ }
i++;
- j++;
break;
}
}
@@ -4257,6 +4259,7 @@
{
p_desc->send_wr[0].local_ds[j].vaddr =
p_sgl->Elements[i].Address.QuadPart;
p_desc->send_wr[0].local_ds[j].length =
p_sgl->Elements[i].Length;
+ CL_ASSERT(p_desc->send_wr[0].local_ds[j].length >
0);
p_desc->send_wr[0].local_ds[j].lkey =
s_buf->p_port->ib_mgr.lkey;
i++;
j++;
@@ -5219,7 +5222,7 @@
p_desc->send_wr[i-1].wr.p_next = &p_desc->send_wr[i].wr;
}
}
-
+
p_desc->send_wr[p_desc->num_wrs - 1].wr.wr_id =
(uintn_t)s_buf ;
p_desc->send_wr[p_desc->num_wrs -
1].wr.send_opt |= IB_SEND_OPT_SIGNALED;
p_desc->send_wr[p_desc->num_wrs - 1].wr.p_next
= NULL;
@@ -8708,4 +8711,4 @@
}
return;
}
-#endif
\ No newline at end of file
+#endif
Index:
b:/users/tzachid/projinf6/trunk/ulp/ipoib_NDIS6_CM/kernel/ipoib_driver.cpp
===================================================================
--- b:/users/tzachid/projinf6/trunk/ulp/ipoib_NDIS6_CM/kernel/ipoib_driver.cpp
(revision 6618)
+++ b:/users/tzachid/projinf6/trunk/ulp/ipoib_NDIS6_CM/kernel/ipoib_driver.cpp
(revision 6619)
@@ -3178,9 +3178,6 @@
ipoib_port_ref( p_port, ref_send_packets );
cl_obj_unlock( &p_adapter->obj );
- if (NET_BUFFER_LIST_NEXT_NBL(net_buffer_list) != NULL) {
- cl_dbg_out("Recieved a list of NBLS
................\n");
- }
for (curr_net_buffer_list = net_buffer_list;
curr_net_buffer_list != NULL;
_______________________________________________
ofw mailing list
[email protected]
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ofw