[1/2] common/mlx5: get number of ports that can be bonded

Message ID 1603710656-32187-1-git-send-email-xuemingl@nvidia.com (mailing list archive)
State New, archived
Delegated to: Maxime Coquelin
Headers
Series [1/2] common/mlx5: get number of ports that can be bonded |

Checks

Context Check Description
ci/checkpatch success coding style OK

Commit Message

Xueming Li Oct. 26, 2020, 11:10 a.m. UTC
  Get HCA capability: number of physical ports that can be bonded.

Cc: stable@dpdk.org

Signed-off-by: Xueming Li <xuemingl@nvidia.com>
Acked-by: Matan Azrad <matan@nvidia.com>
---
 drivers/common/mlx5/mlx5_devx_cmds.c | 5 +++--
 drivers/common/mlx5/mlx5_devx_cmds.h | 1 +
 2 files changed, 4 insertions(+), 2 deletions(-)
  

Comments

Maxime Coquelin Oct. 28, 2020, 9:30 a.m. UTC | #1
Hi,

On 10/26/20 12:10 PM, Xueming Li wrote:
> Get HCA capability: number of physical ports that can be bonded.
> 
> Cc: stable@dpdk.org

Is that a fix or a new feature? The commit title and description seem to
indicate the former. But stable ML being cc'ed seems to indicate the
latter.

If this is a fix, please describe what it is fixing, and add Fixes tag
pointing on the commit it is fixing.

Thanks,
Maxime

> Signed-off-by: Xueming Li <xuemingl@nvidia.com>
> Acked-by: Matan Azrad <matan@nvidia.com>
> ---
>  drivers/common/mlx5/mlx5_devx_cmds.c | 5 +++--
>  drivers/common/mlx5/mlx5_devx_cmds.h | 1 +
>  2 files changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/common/mlx5/mlx5_devx_cmds.c b/drivers/common/mlx5/mlx5_devx_cmds.c
> index 8aee12d527..e748d034d0 100644
> --- a/drivers/common/mlx5/mlx5_devx_cmds.c
> +++ b/drivers/common/mlx5/mlx5_devx_cmds.c
> @@ -711,6 +711,7 @@ mlx5_devx_cmd_query_hca_attr(void *ctx,
>  	attr->non_wire_sq = MLX5_GET(cmd_hca_cap, hcattr, non_wire_sq);
>  	attr->log_max_static_sq_wq = MLX5_GET(cmd_hca_cap, hcattr,
>  					      log_max_static_sq_wq);
> +	attr->num_lag_ports = MLX5_GET(cmd_hca_cap, hcattr, num_lag_ports);
>  	attr->dev_freq_khz = MLX5_GET(cmd_hca_cap, hcattr,
>  				      device_frequency_khz);
>  	attr->scatter_fcs_w_decap_disable =
> @@ -1429,8 +1430,8 @@ mlx5_devx_cmd_create_tis(void *ctx,
>  	tis_ctx = MLX5_ADDR_OF(create_tis_in, in, ctx);
>  	MLX5_SET(tisc, tis_ctx, strict_lag_tx_port_affinity,
>  		 tis_attr->strict_lag_tx_port_affinity);
> -	MLX5_SET(tisc, tis_ctx, strict_lag_tx_port_affinity,
> -		 tis_attr->strict_lag_tx_port_affinity);
> +	MLX5_SET(tisc, tis_ctx, lag_tx_port_affinity,
> +		 tis_attr->lag_tx_port_affinity);
>  	MLX5_SET(tisc, tis_ctx, prio, tis_attr->prio);
>  	MLX5_SET(tisc, tis_ctx, transport_domain,
>  		 tis_attr->transport_domain);
> diff --git a/drivers/common/mlx5/mlx5_devx_cmds.h b/drivers/common/mlx5/mlx5_devx_cmds.h
> index abbea67784..3781fedd9e 100644
> --- a/drivers/common/mlx5/mlx5_devx_cmds.h
> +++ b/drivers/common/mlx5/mlx5_devx_cmds.h
> @@ -99,6 +99,7 @@ struct mlx5_hca_attr {
>  	uint32_t cross_channel:1;
>  	uint32_t non_wire_sq:1; /* SQ with non-wire ops is supported. */
>  	uint32_t log_max_static_sq_wq:5; /* Static WQE size SQ. */
> +	uint32_t num_lag_ports:4; /* Number of ports can be bonded. */
>  	uint32_t dev_freq_khz; /* Timestamp counter frequency, kHz. */
>  	uint32_t scatter_fcs_w_decap_disable:1;
>  	uint32_t regex:1;
>
  

Patch

diff --git a/drivers/common/mlx5/mlx5_devx_cmds.c b/drivers/common/mlx5/mlx5_devx_cmds.c
index 8aee12d527..e748d034d0 100644
--- a/drivers/common/mlx5/mlx5_devx_cmds.c
+++ b/drivers/common/mlx5/mlx5_devx_cmds.c
@@ -711,6 +711,7 @@  mlx5_devx_cmd_query_hca_attr(void *ctx,
 	attr->non_wire_sq = MLX5_GET(cmd_hca_cap, hcattr, non_wire_sq);
 	attr->log_max_static_sq_wq = MLX5_GET(cmd_hca_cap, hcattr,
 					      log_max_static_sq_wq);
+	attr->num_lag_ports = MLX5_GET(cmd_hca_cap, hcattr, num_lag_ports);
 	attr->dev_freq_khz = MLX5_GET(cmd_hca_cap, hcattr,
 				      device_frequency_khz);
 	attr->scatter_fcs_w_decap_disable =
@@ -1429,8 +1430,8 @@  mlx5_devx_cmd_create_tis(void *ctx,
 	tis_ctx = MLX5_ADDR_OF(create_tis_in, in, ctx);
 	MLX5_SET(tisc, tis_ctx, strict_lag_tx_port_affinity,
 		 tis_attr->strict_lag_tx_port_affinity);
-	MLX5_SET(tisc, tis_ctx, strict_lag_tx_port_affinity,
-		 tis_attr->strict_lag_tx_port_affinity);
+	MLX5_SET(tisc, tis_ctx, lag_tx_port_affinity,
+		 tis_attr->lag_tx_port_affinity);
 	MLX5_SET(tisc, tis_ctx, prio, tis_attr->prio);
 	MLX5_SET(tisc, tis_ctx, transport_domain,
 		 tis_attr->transport_domain);
diff --git a/drivers/common/mlx5/mlx5_devx_cmds.h b/drivers/common/mlx5/mlx5_devx_cmds.h
index abbea67784..3781fedd9e 100644
--- a/drivers/common/mlx5/mlx5_devx_cmds.h
+++ b/drivers/common/mlx5/mlx5_devx_cmds.h
@@ -99,6 +99,7 @@  struct mlx5_hca_attr {
 	uint32_t cross_channel:1;
 	uint32_t non_wire_sq:1; /* SQ with non-wire ops is supported. */
 	uint32_t log_max_static_sq_wq:5; /* Static WQE size SQ. */
+	uint32_t num_lag_ports:4; /* Number of ports can be bonded. */
 	uint32_t dev_freq_khz; /* Timestamp counter frequency, kHz. */
 	uint32_t scatter_fcs_w_decap_disable:1;
 	uint32_t regex:1;