From patchwork Sun Mar 22 09:30:25 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leon Romanovsky X-Patchwork-Id: 11451607 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 81677139A for ; Sun, 22 Mar 2020 09:31:01 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 56AAF2077D for ; Sun, 22 Mar 2020 09:31:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1584869461; bh=YYHQsucDnC/2E3qSeyqr0AWH6szActMiGxMBpd2Pm14=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=vPd/xCaxwxc7g+geLzmFKcJ1+bUfG9kbmhkgadO7KTc2CiDlPq6WUqwiQB7WgCp8C gRfXxEq1BriN/STGAD+VPZTqcyxa5bkvFcYMOjvleHcOl4niTV3tbauIqbj224bG4J 1LBFwM2wP6IH5WOUN6F8B04zWJBwlBp8cNL+96Z0= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726954AbgCVJa7 (ORCPT ); Sun, 22 Mar 2020 05:30:59 -0400 Received: from mail.kernel.org ([198.145.29.99]:41842 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726789AbgCVJa7 (ORCPT ); Sun, 22 Mar 2020 05:30:59 -0400 Received: from localhost (unknown [213.57.247.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 1B27020753; Sun, 22 Mar 2020 09:30:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1584869457; bh=YYHQsucDnC/2E3qSeyqr0AWH6szActMiGxMBpd2Pm14=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=StvHzNx9j0tsBhooVf89CrA+1/P9rWfnMg3dZ6PIXf+i4MDSl6pViMpLap8u9Nevs G3X7RAXGJ/BiR679uVCfsZqJFVRZPAVL/Furv2dmkBsQTT1deUon/+zD7YYzE+0pqN QQnaiH1Ar+H6ztEqwa552SUn9oj4/MPvOLGqovn8= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Leon Romanovsky , "David S. Miller" , linux-rdma@vger.kernel.org, netdev@vger.kernel.org, Saeed Mahameed Subject: [PATCH mlx5-next v1 1/7] net/mlx5: Refactor HCA capability set flow Date: Sun, 22 Mar 2020 11:30:25 +0200 Message-Id: <20200322093031.918447-2-leon@kernel.org> X-Mailer: git-send-email 2.24.1 In-Reply-To: <20200322093031.918447-1-leon@kernel.org> References: <20200322093031.918447-1-leon@kernel.org> MIME-Version: 1.0 Sender: linux-rdma-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-rdma@vger.kernel.org From: Leon Romanovsky Reduce the amount of kzalloc/kfree cycles by allocating command structure in the parent function and leverage the knowledge that set_caps() is called for HCA capabilities only with specific HW structure as parameter to calculate mailbox size. Signed-off-by: Leon Romanovsky --- .../net/ethernet/mellanox/mlx5/core/main.c | 66 +++++++------------ 1 file changed, 24 insertions(+), 42 deletions(-) -- 2.24.1 diff --git a/drivers/net/ethernet/mellanox/mlx5/core/main.c b/drivers/net/ethernet/mellanox/mlx5/core/main.c index 6b38ec72215a..150a4a67e572 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/main.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/main.c @@ -406,20 +406,19 @@ int mlx5_core_get_caps(struct mlx5_core_dev *dev, enum mlx5_cap_type cap_type) return mlx5_core_get_caps_mode(dev, cap_type, HCA_CAP_OPMOD_GET_MAX); } -static int set_caps(struct mlx5_core_dev *dev, void *in, int in_sz, int opmod) +static int set_caps(struct mlx5_core_dev *dev, void *in, int opmod) { - u32 out[MLX5_ST_SZ_DW(set_hca_cap_out)] = {0}; + u32 out[MLX5_ST_SZ_DW(set_hca_cap_out)] = {}; MLX5_SET(set_hca_cap_in, in, opcode, MLX5_CMD_OP_SET_HCA_CAP); MLX5_SET(set_hca_cap_in, in, op_mod, opmod << 1); - return mlx5_cmd_exec(dev, in, in_sz, out, sizeof(out)); + return mlx5_cmd_exec(dev, in, MLX5_ST_SZ_BYTES(set_hca_cap_in), out, + sizeof(out)); } -static int handle_hca_cap_atomic(struct mlx5_core_dev *dev) +static int handle_hca_cap_atomic(struct mlx5_core_dev *dev, void *set_ctx) { - void *set_ctx; void *set_hca_cap; - int set_sz = MLX5_ST_SZ_BYTES(set_hca_cap_in); int req_endianness; int err; @@ -438,27 +437,19 @@ static int handle_hca_cap_atomic(struct mlx5_core_dev *dev) if (req_endianness != MLX5_ATOMIC_REQ_MODE_HOST_ENDIANNESS) return 0; - set_ctx = kzalloc(set_sz, GFP_KERNEL); - if (!set_ctx) - return -ENOMEM; - set_hca_cap = MLX5_ADDR_OF(set_hca_cap_in, set_ctx, capability); /* Set requestor to host endianness */ MLX5_SET(atomic_caps, set_hca_cap, atomic_req_8B_endianness_mode, MLX5_ATOMIC_REQ_MODE_HOST_ENDIANNESS); - err = set_caps(dev, set_ctx, set_sz, MLX5_SET_HCA_CAP_OP_MOD_ATOMIC); - - kfree(set_ctx); + err = set_caps(dev, set_ctx, MLX5_SET_HCA_CAP_OP_MOD_ATOMIC); return err; } -static int handle_hca_cap_odp(struct mlx5_core_dev *dev) +static int handle_hca_cap_odp(struct mlx5_core_dev *dev, void *set_ctx) { void *set_hca_cap; - void *set_ctx; - int set_sz; bool do_set = false; int err; @@ -470,11 +461,6 @@ static int handle_hca_cap_odp(struct mlx5_core_dev *dev) if (err) return err; - set_sz = MLX5_ST_SZ_BYTES(set_hca_cap_in); - set_ctx = kzalloc(set_sz, GFP_KERNEL); - if (!set_ctx) - return -ENOMEM; - set_hca_cap = MLX5_ADDR_OF(set_hca_cap_in, set_ctx, capability); memcpy(set_hca_cap, dev->caps.hca_cur[MLX5_CAP_ODP], MLX5_ST_SZ_BYTES(odp_cap)); @@ -504,29 +490,20 @@ static int handle_hca_cap_odp(struct mlx5_core_dev *dev) ODP_CAP_SET_MAX(dev, dc_odp_caps.atomic); if (do_set) - err = set_caps(dev, set_ctx, set_sz, - MLX5_SET_HCA_CAP_OP_MOD_ODP); - - kfree(set_ctx); + err = set_caps(dev, set_ctx, MLX5_SET_HCA_CAP_OP_MOD_ODP); return err; } -static int handle_hca_cap(struct mlx5_core_dev *dev) +static int handle_hca_cap(struct mlx5_core_dev *dev, void *set_ctx) { - void *set_ctx = NULL; struct mlx5_profile *prof = dev->profile; - int err = -ENOMEM; - int set_sz = MLX5_ST_SZ_BYTES(set_hca_cap_in); void *set_hca_cap; - - set_ctx = kzalloc(set_sz, GFP_KERNEL); - if (!set_ctx) - goto query_ex; + int err; err = mlx5_core_get_caps(dev, MLX5_CAP_GENERAL); if (err) - goto query_ex; + return err; set_hca_cap = MLX5_ADDR_OF(set_hca_cap_in, set_ctx, capability); @@ -577,37 +554,42 @@ static int handle_hca_cap(struct mlx5_core_dev *dev) num_vhca_ports, MLX5_CAP_GEN_MAX(dev, num_vhca_ports)); - err = set_caps(dev, set_ctx, set_sz, - MLX5_SET_HCA_CAP_OP_MOD_GENERAL_DEVICE); - -query_ex: - kfree(set_ctx); + err = set_caps(dev, set_ctx, MLX5_SET_HCA_CAP_OP_MOD_GENERAL_DEVICE); return err; } static int set_hca_cap(struct mlx5_core_dev *dev) { + int set_sz = MLX5_ST_SZ_BYTES(set_hca_cap_in); + void *set_ctx; int err; - err = handle_hca_cap(dev); + set_ctx = kzalloc(set_sz, GFP_KERNEL); + if (!set_ctx) + return -ENOMEM; + + err = handle_hca_cap(dev, set_ctx); if (err) { mlx5_core_err(dev, "handle_hca_cap failed\n"); goto out; } - err = handle_hca_cap_atomic(dev); + memset(set_ctx, 0, set_sz); + err = handle_hca_cap_atomic(dev, set_ctx); if (err) { mlx5_core_err(dev, "handle_hca_cap_atomic failed\n"); goto out; } - err = handle_hca_cap_odp(dev); + memset(set_ctx, 0, set_sz); + err = handle_hca_cap_odp(dev, set_ctx); if (err) { mlx5_core_err(dev, "handle_hca_cap_odp failed\n"); goto out; } out: + kfree(set_ctx); return err; } From patchwork Sun Mar 22 09:30:26 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leon Romanovsky X-Patchwork-Id: 11451597 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id A6DC917EF for ; Sun, 22 Mar 2020 09:30:55 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 84D0E20777 for ; Sun, 22 Mar 2020 09:30:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1584869455; bh=bynSzeli358DlgvplDKntDZ9PIBtHAWWNq51tsirlOY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=HPLSbCzn3BtaB/q0Oxx5D9tkhSO44TqH5ZGBSlIXoX2zMqwu/leEe1Rc4mqlZIFr2 7u8v/j1kwKdIrMDC30nzLCwPL5zixfeqGdbKiwXBtgVt4In5UkOYL+CaVBSoAqqu9f EVAlzu6z2wnL+CMg0aiq2sqrZdZCiMf0mUsqi9v0= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726925AbgCVJak (ORCPT ); Sun, 22 Mar 2020 05:30:40 -0400 Received: from mail.kernel.org ([198.145.29.99]:41580 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726789AbgCVJak (ORCPT ); Sun, 22 Mar 2020 05:30:40 -0400 Received: from localhost (unknown [213.57.247.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 14E0B20753; Sun, 22 Mar 2020 09:30:38 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1584869439; bh=bynSzeli358DlgvplDKntDZ9PIBtHAWWNq51tsirlOY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=p6C5S3dOLgrJEMWKUPasKI/1YLUIlBSAZB+QTd/wGIH6gVUtF4AWUSHkEf6uWXZDM Y7aW3uYAczXWQ4EP8F4XbJWo/zcl8pmlYOYx98yXDKohDwFl/NVdX0Z4k6Oudu+nXx Ivgtb2VxzGK63rDgu3oWla8xE5fyH1/BAPIH7J+M= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Mark Zhang , "David S. Miller" , linux-rdma@vger.kernel.org, Maor Gottlieb , netdev@vger.kernel.org, Saeed Mahameed Subject: [PATCH mlx5-next v1 2/7] net/mlx5: Enable SW-defined RoCEv2 UDP source port Date: Sun, 22 Mar 2020 11:30:26 +0200 Message-Id: <20200322093031.918447-3-leon@kernel.org> X-Mailer: git-send-email 2.24.1 In-Reply-To: <20200322093031.918447-1-leon@kernel.org> References: <20200322093031.918447-1-leon@kernel.org> MIME-Version: 1.0 Sender: linux-rdma-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-rdma@vger.kernel.org From: Mark Zhang When this is enabled, UDP source port for RoCEv2 packets are defined by software instead of firmware. Signed-off-by: Mark Zhang Reviewed-by: Maor Gottlieb Signed-off-by: Leon Romanovsky --- .../net/ethernet/mellanox/mlx5/core/main.c | 32 +++++++++++++++++++ include/linux/mlx5/mlx5_ifc.h | 5 ++- 2 files changed, 36 insertions(+), 1 deletion(-) -- 2.24.1 diff --git a/drivers/net/ethernet/mellanox/mlx5/core/main.c b/drivers/net/ethernet/mellanox/mlx5/core/main.c index 150a4a67e572..df9aa5cac2bd 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/main.c +++ b/drivers/net/ethernet/mellanox/mlx5/core/main.c @@ -558,6 +558,31 @@ static int handle_hca_cap(struct mlx5_core_dev *dev, void *set_ctx) return err; } +static int handle_hca_cap_roce(struct mlx5_core_dev *dev, void *set_ctx) +{ + void *set_hca_cap; + int err; + + if (!MLX5_CAP_GEN(dev, roce)) + return 0; + + err = mlx5_core_get_caps(dev, MLX5_CAP_ROCE); + if (err) + return err; + + if (MLX5_CAP_ROCE(dev, sw_r_roce_src_udp_port) || + !MLX5_CAP_ROCE_MAX(dev, sw_r_roce_src_udp_port)) + return 0; + + set_hca_cap = MLX5_ADDR_OF(set_hca_cap_in, set_ctx, capability); + memcpy(set_hca_cap, dev->caps.hca_cur[MLX5_CAP_ROCE], + MLX5_ST_SZ_BYTES(roce_cap)); + MLX5_SET(roce_cap, set_hca_cap, sw_r_roce_src_udp_port, 1); + + err = set_caps(dev, set_ctx, MLX5_SET_HCA_CAP_OP_MOD_ROCE); + return err; +} + static int set_hca_cap(struct mlx5_core_dev *dev) { int set_sz = MLX5_ST_SZ_BYTES(set_hca_cap_in); @@ -588,6 +613,13 @@ static int set_hca_cap(struct mlx5_core_dev *dev) goto out; } + memset(set_ctx, 0, set_sz); + err = handle_hca_cap_roce(dev, set_ctx); + if (err) { + mlx5_core_err(dev, "handle_hca_cap_roce failed\n"); + goto out; + } + out: kfree(set_ctx); return err; diff --git a/include/linux/mlx5/mlx5_ifc.h b/include/linux/mlx5/mlx5_ifc.h index 208bf1127be7..bb217c3f30da 100644 --- a/include/linux/mlx5/mlx5_ifc.h +++ b/include/linux/mlx5/mlx5_ifc.h @@ -74,6 +74,7 @@ enum { MLX5_SET_HCA_CAP_OP_MOD_GENERAL_DEVICE = 0x0, MLX5_SET_HCA_CAP_OP_MOD_ODP = 0x2, MLX5_SET_HCA_CAP_OP_MOD_ATOMIC = 0x3, + MLX5_SET_HCA_CAP_OP_MOD_ROCE = 0x4, }; enum { @@ -902,7 +903,9 @@ struct mlx5_ifc_per_protocol_networking_offload_caps_bits { struct mlx5_ifc_roce_cap_bits { u8 roce_apm[0x1]; - u8 reserved_at_1[0x1f]; + u8 reserved_at_1[0x3]; + u8 sw_r_roce_src_udp_port[0x1]; + u8 reserved_at_5[0x1b]; u8 reserved_at_20[0x60]; From patchwork Sun Mar 22 09:30:27 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leon Romanovsky X-Patchwork-Id: 11451599 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id CF8A318A4 for ; Sun, 22 Mar 2020 09:30:55 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id AE6FF20777 for ; Sun, 22 Mar 2020 09:30:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1584869455; bh=+JzgYKhY5nIBDApiyW2pHZ2/M0kvEbcJCdYn9QNagc0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=no8cVAzMlotfXwKgB9wGLa9V/2ZD59XDRn/edJy2oTuh6qXv0Y4cMmBofGbVUemtd 5iLZlaU7vFc//bn6ILAqimU4QeHtdhg1/UBCDaZXSYxXjYZw2UsqBZojMtJnuYSQAi gcjOLtv4tlOqXtDmYlGrkt9EczvKnm1z80syfOq0= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726946AbgCVJao (ORCPT ); Sun, 22 Mar 2020 05:30:44 -0400 Received: from mail.kernel.org ([198.145.29.99]:41628 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726789AbgCVJao (ORCPT ); Sun, 22 Mar 2020 05:30:44 -0400 Received: from localhost (unknown [213.57.247.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id BE95F20774; Sun, 22 Mar 2020 09:30:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1584869443; bh=+JzgYKhY5nIBDApiyW2pHZ2/M0kvEbcJCdYn9QNagc0=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=CrBSBuIoBLyUPXLa+0qo4DXQh6+9/XRW4sJKI/N1w43Hz55gIwpr9TtX5jeEEw1MW ZtfL9ZecOyibFcSE0KkXnGAdx1256ptJ2Zs6Xv05KgpDt70nEsXmR5AQqeKlgzaLoz mA49uV5t3+ItiKHnNgxKkl993HQRWqYezz+guMR4= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Mark Zhang , linux-rdma@vger.kernel.org, Maor Gottlieb Subject: [PATCH rdma-next v1 3/7] RDMA/core: Add hash functions to calculate RoCEv2 flowlabel and UDP source port Date: Sun, 22 Mar 2020 11:30:27 +0200 Message-Id: <20200322093031.918447-4-leon@kernel.org> X-Mailer: git-send-email 2.24.1 In-Reply-To: <20200322093031.918447-1-leon@kernel.org> References: <20200322093031.918447-1-leon@kernel.org> MIME-Version: 1.0 Sender: linux-rdma-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-rdma@vger.kernel.org From: Mark Zhang Add two hash functions to distribute RoCE v2 UDP source and Flowlabel symmetrically. These are user visible API and any change in the implementation needs to be tested for inter-operability between old and new variant. Signed-off-by: Mark Zhang Reviewed-by: Maor Gottlieb Signed-off-by: Leon Romanovsky --- include/rdma/ib_verbs.h | 44 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) -- 2.24.1 diff --git a/include/rdma/ib_verbs.h b/include/rdma/ib_verbs.h index 60f9969b6d83..8763d4a06eb7 100644 --- a/include/rdma/ib_verbs.h +++ b/include/rdma/ib_verbs.h @@ -4703,4 +4703,48 @@ static inline struct ib_device *rdma_device_to_ibdev(struct device *device) bool rdma_dev_access_netns(const struct ib_device *device, const struct net *net); + +#define IB_ROCE_UDP_ENCAP_VALID_PORT_MIN (0xC000) +#define IB_GRH_FLOWLABEL_MASK (0x000FFFFF) + +/** + * rdma_flow_label_to_udp_sport - generate a RoCE v2 UDP src port value based + * on the flow_label + * + * This function will convert the 20 bit flow_label input to a valid RoCE v2 + * UDP src port 14 bit value. All RoCE V2 drivers should use this same + * convention. + */ +static inline u16 rdma_flow_label_to_udp_sport(u32 fl) +{ + u32 fl_low = fl & 0x03fff, fl_high = fl & 0xFC000; + + fl_low ^= fl_high >> 14; + return (u16)(fl_low | IB_ROCE_UDP_ENCAP_VALID_PORT_MIN); +} + +/** + * rdma_calc_flow_label - generate a RDMA symmetric flow label value based on + * local and remote qpn values + * + * This function folded the multiplication results of two qpns, 24 bit each, + * fields, and converts it to a 20 bit results. + * + * This function will create symmetric flow_label value based on the local + * and remote qpn values. this will allow both the requester and responder + * to calculate the same flow_label for a given connection. + * + * This helper function should be used by driver in case the upper layer + * provide a zero flow_label value. This is to improve entropy of RDMA + * traffic in the network. + */ +static inline u32 rdma_calc_flow_label(u32 lqpn, u32 rqpn) +{ + u64 v = (u64)lqpn * rqpn; + + v ^= v >> 20; + v ^= v >> 40; + + return (u32)(v & IB_GRH_FLOWLABEL_MASK); +} #endif /* IB_VERBS_H */ From patchwork Sun Mar 22 09:30:28 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leon Romanovsky X-Patchwork-Id: 11451601 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 05958139A for ; Sun, 22 Mar 2020 09:30:56 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id D8D442077D for ; Sun, 22 Mar 2020 09:30:55 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1584869455; bh=92Fl2NMvLtf0y7rWzAO8F79vsU0RwK5UUQS9WWfWwtI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=LkcPWZD654qsKmiAY65ix3oSUw6b9d87B3WIM9k5St4SKRL1WBYk8Xv6/dd0lqtV0 DmUH1EAUbnFhhM0u1PSg/NzEt4EEmygiOCsyG+duYJ3p//vQaWsiX7xKK+npmScJRP QdUkvxtd8K2K3ksOyWMd76IJB1fYk7cDlnkyn1mk= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726951AbgCVJar (ORCPT ); Sun, 22 Mar 2020 05:30:47 -0400 Received: from mail.kernel.org ([198.145.29.99]:41662 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726789AbgCVJar (ORCPT ); Sun, 22 Mar 2020 05:30:47 -0400 Received: from localhost (unknown [213.57.247.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 688E320753; Sun, 22 Mar 2020 09:30:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1584869447; bh=92Fl2NMvLtf0y7rWzAO8F79vsU0RwK5UUQS9WWfWwtI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=qo39KecmEOQkZF/0A7zVGz4CEod6wvjlsGuEQqDBTyP/4tzwaL9cYjiVWQW8bVQOW oXWjezMq/iKwA5Hn2kyJVKLoadrhPBhi+ozFAPUFW6HnG6NYqBPX5tGK1thEi+5+j0 xyOVXz0twDDInTfnhzNturzVFOBWzacg9BOIb8wM= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Mark Zhang , linux-rdma@vger.kernel.org, Maor Gottlieb Subject: [PATCH rdma-next v1 4/7] RDMA/mlx5: Define RoCEv2 udp source port when set path Date: Sun, 22 Mar 2020 11:30:28 +0200 Message-Id: <20200322093031.918447-5-leon@kernel.org> X-Mailer: git-send-email 2.24.1 In-Reply-To: <20200322093031.918447-1-leon@kernel.org> References: <20200322093031.918447-1-leon@kernel.org> MIME-Version: 1.0 Sender: linux-rdma-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-rdma@vger.kernel.org From: Mark Zhang Calculate and set UDP source port based on the flow label. If flow label is not defined in GRH then calculate it based on lqpn/rqpn. Signed-off-by: Mark Zhang Reviewed-by: Maor Gottlieb Signed-off-by: Leon Romanovsky --- drivers/infiniband/hw/mlx5/qp.c | 30 ++++++++++++++++++++++++------ 1 file changed, 24 insertions(+), 6 deletions(-) -- 2.24.1 diff --git a/drivers/infiniband/hw/mlx5/qp.c b/drivers/infiniband/hw/mlx5/qp.c index 9c2f0cf63d1b..d3055f3eb0b6 100644 --- a/drivers/infiniband/hw/mlx5/qp.c +++ b/drivers/infiniband/hw/mlx5/qp.c @@ -2954,6 +2954,21 @@ static int modify_raw_packet_tx_affinity(struct mlx5_core_dev *dev, return err; } +static void mlx5_set_path_udp_sport(struct mlx5_qp_path *path, + const struct rdma_ah_attr *ah, + u32 lqpn, u32 rqpn) + +{ + u32 fl = ah->grh.flow_label; + u16 sport; + + if (!fl) + fl = rdma_calc_flow_label(lqpn, rqpn); + + sport = rdma_flow_label_to_udp_sport(fl); + path->udp_sport = cpu_to_be16(sport); +} + static int mlx5_set_path(struct mlx5_ib_dev *dev, struct mlx5_ib_qp *qp, const struct rdma_ah_attr *ah, struct mlx5_qp_path *path, u8 port, int attr_mask, @@ -2985,12 +3000,15 @@ static int mlx5_set_path(struct mlx5_ib_dev *dev, struct mlx5_ib_qp *qp, return -EINVAL; memcpy(path->rmac, ah->roce.dmac, sizeof(ah->roce.dmac)); - if (qp->ibqp.qp_type == IB_QPT_RC || - qp->ibqp.qp_type == IB_QPT_UC || - qp->ibqp.qp_type == IB_QPT_XRC_INI || - qp->ibqp.qp_type == IB_QPT_XRC_TGT) - path->udp_sport = - mlx5_get_roce_udp_sport(dev, ah->grh.sgid_attr); + if ((qp->ibqp.qp_type == IB_QPT_RC || + qp->ibqp.qp_type == IB_QPT_UC || + qp->ibqp.qp_type == IB_QPT_XRC_INI || + qp->ibqp.qp_type == IB_QPT_XRC_TGT) && + (grh->sgid_attr->gid_type == IB_GID_TYPE_ROCE_UDP_ENCAP) && + (attr_mask & IB_QP_DEST_QPN)) + mlx5_set_path_udp_sport(path, ah, + qp->ibqp.qp_num, + attr->dest_qp_num); path->dci_cfi_prio_sl = (sl & 0x7) << 4; gid_type = ah->grh.sgid_attr->gid_type; if (gid_type == IB_GID_TYPE_ROCE_UDP_ENCAP) From patchwork Sun Mar 22 09:30:29 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leon Romanovsky X-Patchwork-Id: 11451603 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 39E8F1983 for ; Sun, 22 Mar 2020 09:30:56 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 0E4E020777 for ; Sun, 22 Mar 2020 09:30:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1584869456; bh=BkVjZXd8YYGOkrXgzSa4jUldN7/uGzBA4r7gZjzOAt8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=d0lBKhLoeTQ8YBSIWoWe2tt/L8SSaZ3BIzqSnvDulv9IWjbf6C+rxtTdolYJgNyWL 68hze4k5xCOSW/qW8Q7jwvLq48aJSGEiXxL7d8Bg0qoV81MHlcOE55iUpLqGrcWggk vQ5JNu9VcoVNlMlFFVdVWYXgbT0r27Aoc1Mms1pk= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726953AbgCVJav (ORCPT ); Sun, 22 Mar 2020 05:30:51 -0400 Received: from mail.kernel.org ([198.145.29.99]:41758 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726789AbgCVJav (ORCPT ); Sun, 22 Mar 2020 05:30:51 -0400 Received: from localhost (unknown [213.57.247.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id EFEEE20777; Sun, 22 Mar 2020 09:30:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1584869450; bh=BkVjZXd8YYGOkrXgzSa4jUldN7/uGzBA4r7gZjzOAt8=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=rxZsYIzNpd277Mg73EBZhufAvIUdHFlsz0ymKxsVlWSBmrIh7nxmuRi9t1w0uUw9x +HFziMjmIz2GJUqwASP0JWaHiYlN9q9JwAmw2ZkPtFhm+xF4nNp6wN/n+CatbWd8iy 6gdEzyXHlUoymq8p7n9tL848eYKDNV1ndR8FtJvE= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Mark Zhang , linux-rdma@vger.kernel.org, Maor Gottlieb Subject: [PATCH rdma-next v1 5/7] RDMA/cma: Initialize the flow label of CM's route path record Date: Sun, 22 Mar 2020 11:30:29 +0200 Message-Id: <20200322093031.918447-6-leon@kernel.org> X-Mailer: git-send-email 2.24.1 In-Reply-To: <20200322093031.918447-1-leon@kernel.org> References: <20200322093031.918447-1-leon@kernel.org> MIME-Version: 1.0 Sender: linux-rdma-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-rdma@vger.kernel.org From: Mark Zhang If flow label is not set by the user or it's not IPv4, initialize it with the cma src/dst based on the "Kernighan and Ritchie's hash function". Signed-off-by: Mark Zhang Reviewed-by: Maor Gottlieb Signed-off-by: Leon Romanovsky --- drivers/infiniband/core/cma.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) -- 2.24.1 diff --git a/drivers/infiniband/core/cma.c b/drivers/infiniband/core/cma.c index a051cc169e9c..8924b2f8e299 100644 --- a/drivers/infiniband/core/cma.c +++ b/drivers/infiniband/core/cma.c @@ -2910,6 +2910,24 @@ static int iboe_tos_to_sl(struct net_device *ndev, int tos) return 0; } +static __be32 cma_get_roce_udp_flow_label(struct rdma_id_private *id_priv) +{ + struct sockaddr_in6 *addr6; + u16 dport, sport; + u32 hash, fl; + + addr6 = (struct sockaddr_in6 *)cma_src_addr(id_priv); + fl = be32_to_cpu(addr6->sin6_flowinfo) & IB_GRH_FLOWLABEL_MASK; + if ((cma_family(id_priv) != AF_INET6) || !fl) { + dport = be16_to_cpu(cma_port(cma_dst_addr(id_priv))); + sport = be16_to_cpu(cma_port(cma_src_addr(id_priv))); + hash = (u32)sport * 31 + dport; + fl = hash & IB_GRH_FLOWLABEL_MASK; + } + + return cpu_to_be32(fl); +} + static int cma_resolve_iboe_route(struct rdma_id_private *id_priv) { struct rdma_route *route = &id_priv->id.route; @@ -2976,6 +2994,11 @@ static int cma_resolve_iboe_route(struct rdma_id_private *id_priv) goto err2; } + if (rdma_protocol_roce_udp_encap(id_priv->id.device, + id_priv->id.port_num)) + route->path_rec->flow_label = + cma_get_roce_udp_flow_label(id_priv); + cma_init_resolve_route_work(work, id_priv); queue_work(cma_wq, &work->work); From patchwork Sun Mar 22 09:30:30 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leon Romanovsky X-Patchwork-Id: 11451605 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 6DF1118E8 for ; Sun, 22 Mar 2020 09:30:56 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 4283720777 for ; Sun, 22 Mar 2020 09:30:56 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1584869456; bh=+FmQ6aOAWnTu0iUIFJ9wE9hTUI97RgQ8PWKcIoZ7gBk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=TMNAx5ebSKQho+ZSm+EGbMpA5InqobEQkZeI78tM5DmKqwQvcQkPchMru+Eefkz2V Iaz5qXmjVoC0mA1+iRr4EZiLpQYeb1x8kQqxkc+MJMinVtc44RZMK8OOhak6f+1G8A TggF1hd8ZylayPYUym+IZ8+c0X2GnqQ8W07Dz5jI= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726839AbgCVJay (ORCPT ); Sun, 22 Mar 2020 05:30:54 -0400 Received: from mail.kernel.org ([198.145.29.99]:41790 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726789AbgCVJay (ORCPT ); Sun, 22 Mar 2020 05:30:54 -0400 Received: from localhost (unknown [213.57.247.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 8D8B720753; Sun, 22 Mar 2020 09:30:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1584869454; bh=+FmQ6aOAWnTu0iUIFJ9wE9hTUI97RgQ8PWKcIoZ7gBk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=FeLwL8lYq6ghNPNH+UYl4ONFHbjsAI1qM//csV760VUBxqHnqa3+SkLJIKRh135cb xyk20+5Stu3cEjkE79FIu6TZMyofvN+4scX90hV2L1smYs0woHQ2836vJUC7IQswoA HWifr6+jOEKQ4a6WfjrPrbHkfKCt3w3HQk/veIig= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Mark Zhang , linux-rdma@vger.kernel.org, Maor Gottlieb Subject: [PATCH rdma-next v1 6/7] RDMA/cm: Set flow label of recv_wc based on primary flow label Date: Sun, 22 Mar 2020 11:30:30 +0200 Message-Id: <20200322093031.918447-7-leon@kernel.org> X-Mailer: git-send-email 2.24.1 In-Reply-To: <20200322093031.918447-1-leon@kernel.org> References: <20200322093031.918447-1-leon@kernel.org> MIME-Version: 1.0 Sender: linux-rdma-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-rdma@vger.kernel.org From: Mark Zhang In the request handler of the response side, Set flow label of the recv_wc if it is not net. It will be used for all messages sent by the responder. Signed-off-by: Mark Zhang Reviewed-by: Maor Gottlieb Signed-off-by: Leon Romanovsky --- drivers/infiniband/core/cm.c | 7 +++++++ 1 file changed, 7 insertions(+) -- 2.24.1 diff --git a/drivers/infiniband/core/cm.c b/drivers/infiniband/core/cm.c index bbbfa77dbce7..4ab2f71da522 100644 --- a/drivers/infiniband/core/cm.c +++ b/drivers/infiniband/core/cm.c @@ -2039,6 +2039,7 @@ static int cm_req_handler(struct cm_work *work) struct cm_req_msg *req_msg; const struct ib_global_route *grh; const struct ib_gid_attr *gid_attr; + struct ib_grh *ibgrh; int ret; req_msg = (struct cm_req_msg *)work->mad_recv_wc->recv_buf.mad; @@ -2048,6 +2049,12 @@ static int cm_req_handler(struct cm_work *work) if (IS_ERR(cm_id_priv)) return PTR_ERR(cm_id_priv); + ibgrh = work->mad_recv_wc->recv_buf.grh; + if (!(be32_to_cpu(ibgrh->version_tclass_flow) & IB_GRH_FLOWLABEL_MASK)) + ibgrh->version_tclass_flow |= + cpu_to_be32(IBA_GET(CM_REQ_PRIMARY_FLOW_LABEL, + req_msg)); + cm_id_priv->id.remote_id = cpu_to_be32(IBA_GET(CM_REQ_LOCAL_COMM_ID, req_msg)); cm_id_priv->id.service_id = From patchwork Sun Mar 22 09:30:31 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Leon Romanovsky X-Patchwork-Id: 11451609 Return-Path: Received: from mail.kernel.org (pdx-korg-mail-1.web.codeaurora.org [172.30.200.123]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id BA7F6913 for ; Sun, 22 Mar 2020 09:31:03 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 99C0F2077D for ; Sun, 22 Mar 2020 09:31:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1584869463; bh=6AHiQaG8JZiHg9yeHChuAY5+Q4qdcFN4tzQhu4EPLAM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:List-ID:From; b=Opwo+4ocMKyzzIYIGC3D1YwN9O4cfvPmfTi5VTCSunDrl/kpLLDq1JAn7850YZ/ji BN3RurBLwrDyp0iMbSm9KZ5fGU0xoQRdZdit0sIA/8SFhDaOGsWniZ7I5Hgc19W0I6 Rgbjr+6YlqDDnqmVyEOP8g1W3Kwv+ZWbFFUfs33s= Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726976AbgCVJbC (ORCPT ); Sun, 22 Mar 2020 05:31:02 -0400 Received: from mail.kernel.org ([198.145.29.99]:41882 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726789AbgCVJbC (ORCPT ); Sun, 22 Mar 2020 05:31:02 -0400 Received: from localhost (unknown [213.57.247.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id A5EB020777; Sun, 22 Mar 2020 09:31:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1584869461; bh=6AHiQaG8JZiHg9yeHChuAY5+Q4qdcFN4tzQhu4EPLAM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=M9bhhtobUyKgOI5VqndFnSt78NA9+Ds9QxL8AT0J/RXKM4DemjsA4ivHwAi05n73o Z+wABsg9TALCuCEI83uFhD+bg9qd8kOXXYMI4UTwPo363Vq2JFX4MLmnUX6ZIUkDTn G2ApAjYM/hH8/58+1osgynXU9qS1Ox1uIZ18KlcY= From: Leon Romanovsky To: Doug Ledford , Jason Gunthorpe Cc: Mark Zhang , linux-rdma@vger.kernel.org, Maor Gottlieb Subject: [PATCH rdma-next v1 7/7] RDMA/mlx5: Set UDP source port based on the grh.flow_label Date: Sun, 22 Mar 2020 11:30:31 +0200 Message-Id: <20200322093031.918447-8-leon@kernel.org> X-Mailer: git-send-email 2.24.1 In-Reply-To: <20200322093031.918447-1-leon@kernel.org> References: <20200322093031.918447-1-leon@kernel.org> MIME-Version: 1.0 Sender: linux-rdma-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-rdma@vger.kernel.org From: Mark Zhang Calculate UDP source port based on the grh.flow_label. If grh.flow_label is not valid, we will use minimal supported UDP source port. Signed-off-by: Mark Zhang Reviewed-by: Maor Gottlieb Signed-off-by: Leon Romanovsky --- drivers/infiniband/hw/mlx5/ah.c | 21 +++++++++++++++++++-- drivers/infiniband/hw/mlx5/main.c | 4 ++-- drivers/infiniband/hw/mlx5/mlx5_ib.h | 4 ++-- 3 files changed, 23 insertions(+), 6 deletions(-) -- 2.24.1 diff --git a/drivers/infiniband/hw/mlx5/ah.c b/drivers/infiniband/hw/mlx5/ah.c index 14ad05e7c5bf..5acf1bfb73fe 100644 --- a/drivers/infiniband/hw/mlx5/ah.c +++ b/drivers/infiniband/hw/mlx5/ah.c @@ -32,6 +32,24 @@ #include "mlx5_ib.h" +static __be16 mlx5_ah_get_udp_sport(const struct mlx5_ib_dev *dev, + const struct rdma_ah_attr *ah_attr) +{ + enum ib_gid_type gid_type = ah_attr->grh.sgid_attr->gid_type; + __be16 sport; + + if ((gid_type == IB_GID_TYPE_ROCE_UDP_ENCAP) && + (rdma_ah_get_ah_flags(ah_attr) & IB_AH_GRH) && + (ah_attr->grh.flow_label & IB_GRH_FLOWLABEL_MASK)) + sport = cpu_to_be16( + rdma_flow_label_to_udp_sport(ah_attr->grh.flow_label)); + else + sport = mlx5_get_roce_udp_sport_min(dev, + ah_attr->grh.sgid_attr); + + return sport; +} + static void create_ib_ah(struct mlx5_ib_dev *dev, struct mlx5_ib_ah *ah, struct rdma_ah_attr *ah_attr) { @@ -59,8 +77,7 @@ static void create_ib_ah(struct mlx5_ib_dev *dev, struct mlx5_ib_ah *ah, memcpy(ah->av.rmac, ah_attr->roce.dmac, sizeof(ah_attr->roce.dmac)); - ah->av.udp_sport = - mlx5_get_roce_udp_sport(dev, ah_attr->grh.sgid_attr); + ah->av.udp_sport = mlx5_ah_get_udp_sport(dev, ah_attr); ah->av.stat_rate_sl |= (rdma_ah_get_sl(ah_attr) & 0x7) << 1; if (gid_type == IB_GID_TYPE_ROCE_UDP_ENCAP) #define MLX5_ECN_ENABLED BIT(1) diff --git a/drivers/infiniband/hw/mlx5/main.c b/drivers/infiniband/hw/mlx5/main.c index d57ebdba027e..66cd417f5d09 100644 --- a/drivers/infiniband/hw/mlx5/main.c +++ b/drivers/infiniband/hw/mlx5/main.c @@ -631,8 +631,8 @@ static int mlx5_ib_del_gid(const struct ib_gid_attr *attr, attr->index, NULL, NULL); } -__be16 mlx5_get_roce_udp_sport(struct mlx5_ib_dev *dev, - const struct ib_gid_attr *attr) +__be16 mlx5_get_roce_udp_sport_min(const struct mlx5_ib_dev *dev, + const struct ib_gid_attr *attr) { if (attr->gid_type != IB_GID_TYPE_ROCE_UDP_ENCAP) return 0; diff --git a/drivers/infiniband/hw/mlx5/mlx5_ib.h b/drivers/infiniband/hw/mlx5/mlx5_ib.h index 7d3e4e4942e9..85d4f3958e32 100644 --- a/drivers/infiniband/hw/mlx5/mlx5_ib.h +++ b/drivers/infiniband/hw/mlx5/mlx5_ib.h @@ -1362,8 +1362,8 @@ int mlx5_ib_get_vf_guid(struct ib_device *device, int vf, u8 port, int mlx5_ib_set_vf_guid(struct ib_device *device, int vf, u8 port, u64 guid, int type); -__be16 mlx5_get_roce_udp_sport(struct mlx5_ib_dev *dev, - const struct ib_gid_attr *attr); +__be16 mlx5_get_roce_udp_sport_min(const struct mlx5_ib_dev *dev, + const struct ib_gid_attr *attr); void mlx5_ib_cleanup_cong_debugfs(struct mlx5_ib_dev *dev, u8 port_num); void mlx5_ib_init_cong_debugfs(struct mlx5_ib_dev *dev, u8 port_num);