Commit 157b52a0 authored by Lijun Ou's avatar Lijun Ou Committed by Jason Gunthorpe
Browse files

RDMA/hns: Configure ecn field of ip header



In order to compatible with the third party RoCE device, The hardware
modify the set method for the ecn field of ip header in new hip08
version. The high 6bit of tclass be assigned for dscp field of packet.

Signed-off-by: default avatarLijun Ou <oulijun@huawei.com>
Signed-off-by: default avatarJason Gunthorpe <jgg@mellanox.com>
parent 05ad5482
Loading
Loading
Loading
Loading
+9 −2
Original line number Diff line number Diff line
@@ -3640,8 +3640,15 @@ static int hns_roce_v2_modify_qp(struct ib_qp *ibqp,
			       V2_QPC_BYTE_24_HOP_LIMIT_M,
			       V2_QPC_BYTE_24_HOP_LIMIT_S, 0);

		roce_set_field(context->byte_24_mtu_tc, V2_QPC_BYTE_24_TC_M,
			       V2_QPC_BYTE_24_TC_S, grh->traffic_class);
		if (hr_dev->pci_dev->revision == 0x21 &&
		    gid_attr->gid_type == IB_GID_TYPE_ROCE_UDP_ENCAP)
			roce_set_field(context->byte_24_mtu_tc,
				       V2_QPC_BYTE_24_TC_M, V2_QPC_BYTE_24_TC_S,
				       grh->traffic_class >> 2);
		else
			roce_set_field(context->byte_24_mtu_tc,
				       V2_QPC_BYTE_24_TC_M, V2_QPC_BYTE_24_TC_S,
				       grh->traffic_class);
		roce_set_field(qpc_mask->byte_24_mtu_tc, V2_QPC_BYTE_24_TC_M,
			       V2_QPC_BYTE_24_TC_S, 0);
		roce_set_field(context->byte_28_at_fl, V2_QPC_BYTE_28_FL_M,