[dpdk-dev] [PATCH v2 1/2] common/mlx5: support device global syntax

Slava Ovsiienko viacheslavo at nvidia.com
Mon Apr 5 12:54:38 CEST 2021


> -----Original Message-----
> From: Xueming Li <xuemingl at nvidia.com>
> Sent: Monday, January 18, 2021 17:27
> To: Slava Ovsiienko <viacheslavo at nvidia.com>
> Cc: dev at dpdk.org; Matan Azrad <matan at nvidia.com>; Shahaf Shuler
> <shahafs at nvidia.com>; NBU-Contact-Thomas Monjalon
> <thomas at monjalon.net>; Xueming(Steven) Li <xuemingl at nvidia.com>;
> Asaf Penso <asafp at nvidia.com>
> Subject: [PATCH v2 1/2] common/mlx5: support device global syntax
> 
> This patch supports new device global device syntax, resolve class type from
> "class" section if the devarg is global device syntax:
> bus=<bus>,k=v,,,/class=<cls>,k=v,,,/driver=<pmd>,k=v,,,,
> 
> To reuse class name of global device syntax, this patch also changes internal
> class name introduced by commit [1] to algin with RTE class name.
Typo: algin -> align

Beside this:
Acked-by: Viacheslav Ovsiienko <viacheslavo at nvidia.com>


> 
> [1]
> 8a41f4deccc3: common/mlx5: introduce layer for multiple class drivers
> 
> Signed-off-by: Xueming Li <xuemingl at nvidia.com>
> ---
>  drivers/common/mlx5/mlx5_common_pci.c | 6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/common/mlx5/mlx5_common_pci.c
> b/drivers/common/mlx5/mlx5_common_pci.c
> index 5208972bb6..c03bdbf4eb 100644
> --- a/drivers/common/mlx5/mlx5_common_pci.c
> +++ b/drivers/common/mlx5/mlx5_common_pci.c
> @@ -4,6 +4,7 @@
> 
>  #include <stdlib.h>
>  #include <rte_malloc.h>
> +#include <rte_class.h>
>  #include "mlx5_common_utils.h"
>  #include "mlx5_common_pci.h"
> 
> @@ -26,7 +27,7 @@ static const struct {
>  	unsigned int driver_class;
>  } mlx5_classes[] = {
>  	{ .name = "vdpa", .driver_class = MLX5_CLASS_VDPA },
> -	{ .name = "net", .driver_class = MLX5_CLASS_NET },
> +	{ .name = "eth", .driver_class = MLX5_CLASS_NET },
>  	{ .name = "regex", .driver_class = MLX5_CLASS_REGEX },  };
> 
> @@ -115,6 +116,9 @@ parse_class_options(const struct rte_devargs
> *devargs)
> 
>  	if (devargs == NULL)
>  		return 0;
> +	if (devargs->cls != NULL)
> +		/* support new global syntax */
> +		return class_name_to_value(devargs->cls->name);
>  	kvlist = rte_kvargs_parse(devargs->args, NULL);
>  	if (kvlist == NULL)
>  		return 0;
> --
> 2.25.1



More information about the dev mailing list