Browse Source

IB/mlx4: Set link type for RAW PACKET QPs in the QP context

When the link type is Ethernet, setting the link type in the QP
context will enable TCP/IP stateless offloads (checksum, LSO, RSS) for
RAW PACKET Ethernet QPs.  For IB UD QPs this worked OK since the value
assumed by the firmware for IB link layer is zero.

Signed-off-by: Eli Cohen <eli@mellanox.com>
Signed-off-by: Or Gerlitz <ogerlitz@mellanox.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
Eli Cohen 12 năm trước cách đây
mục cha
commit
3528f69637
1 tập tin đã thay đổi với 4 bổ sung0 xóa
  1. 4 0
      drivers/infiniband/hw/mlx4/qp.c

+ 4 - 0
drivers/infiniband/hw/mlx4/qp.c

@@ -1460,6 +1460,10 @@ static int __mlx4_ib_modify_qp(struct ib_qp *ibqp,
 		}
 	}
 
+	if (qp->ibqp.qp_type == IB_QPT_RAW_PACKET)
+		context->pri_path.ackto = (context->pri_path.ackto & 0xf8) |
+					MLX4_IB_LINK_TYPE_ETH;
+
 	if (cur_state == IB_QPS_RTS && new_state == IB_QPS_SQD	&&
 	    attr_mask & IB_QP_EN_SQD_ASYNC_NOTIFY && attr->en_sqd_async_notify)
 		sqd_event = 1;