Hi Fab, You're right although some may say chksum on receive path is not needed at all. Anyway, mthcd does not update csum_ok at all, therefore ndis checksum flags have random value in each packet. Fix is attached.
Thanks,
Anatoly.
Index: hw/mthca/kernel/mthca_cq.c
===================================================================
--- hw/mthca/kernel/mthca_cq.c (revision 1521)
+++ hw/mthca/kernel/mthca_cq.c (working copy)
@@ -579,6 +579,7 @@
entry->recv.ud.path_bits =
(uint8_t)(cl_ntoh16(cqe->sl_g_mlpath) & 0x7f);
entry->recv.ud.recv_opt |= cl_ntoh16(cqe->sl_g_mlpath)
& 0x80 ?
IB_RECV_OPT_GRH_VALID : 0;
+ entry->csum_ok = 0;
}
if (!is_send && cqe->rlid == 0){
HCA_PRINT(TRACE_LEVEL_INFORMATION,HCA_DBG_CQ,("found
rlid == 0 \n "));
Index: ulp/ipoib/kernel/ipoib_port.c
===================================================================
--- ulp/ipoib/kernel/ipoib_port.c (revision 1521)
+++ ulp/ipoib/kernel/ipoib_port.c (working copy)
@@ -3862,7 +3862,7 @@
p_desc->wr.p_next = NULL;
p_desc->wr.wr_id = (uintn_t)p_desc->p_pkt;
- if(p_port->p_adapter->params.send_chksum_offload &
+ if(p_port->p_adapter->params.send_chksum_offload &&
(pChecksumPktInfo->Transmit.NdisPacketChecksumV4 ||
pChecksumPktInfo->Transmit.NdisPacketChecksumV6))
{
// Set transimition checksum offloading
fix_ipoib_csum_offload_2.patch
Description: fix_ipoib_csum_offload_2.patch
_______________________________________________ ofw mailing list [email protected] http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ofw
