[PATCH v2 07/12] net/cpfl: create port representor

Liu, Mingxia mingxia.liu at intel.com
Tue Sep 5 09:35:04 CEST 2023



> -----Original Message-----
> From: Xing, Beilei <beilei.xing at intel.com>
> Sent: Wednesday, August 16, 2023 11:06 PM
> To: Wu, Jingjing <jingjing.wu at intel.com>
> Cc: dev at dpdk.org; Liu, Mingxia <mingxia.liu at intel.com>; Xing, Beilei
> <beilei.xing at intel.com>; Zhang, Qi Z <qi.z.zhang at intel.com>
> Subject: [PATCH v2 07/12] net/cpfl: create port representor
> 
> From: Beilei Xing <beilei.xing at intel.com>
> 
> Track representor request in a whitelist.
> Representor will only be created for active vport.
> 
> Signed-off-by: Jingjing Wu <jingjing.wu at intel.com>
> Signed-off-by: Qi Zhang <qi.z.zhang at intel.com>
> Signed-off-by: Beilei Xing <beilei.xing at intel.com>
> ---
>  drivers/net/cpfl/cpfl_ethdev.c      | 107 ++++---
>  drivers/net/cpfl/cpfl_ethdev.h      |  34 +++
>  drivers/net/cpfl/cpfl_representor.c | 448 ++++++++++++++++++++++++++++
> drivers/net/cpfl/cpfl_representor.h |  26 ++
>  drivers/net/cpfl/meson.build        |   1 +
>  5 files changed, 573 insertions(+), 43 deletions(-)  create mode 100644
> drivers/net/cpfl/cpfl_representor.c
>  create mode 100644 drivers/net/cpfl/cpfl_representor.h
> 
> diff --git a/drivers/net/cpfl/cpfl_ethdev.h b/drivers/net/cpfl/cpfl_ethdev.h index
> 9c4d8d3ea1..d4d9727a80 100644
> --- a/drivers/net/cpfl/cpfl_ethdev.h
> +++ b/drivers/net/cpfl/cpfl_ethdev.h
> @@ -21,6 +21,7 @@
> 
>  #include "cpfl_logs.h"
>  #include "cpfl_cpchnl.h"
> +#include "cpfl_representor.h"
> 
>  /* Currently, backend supports up to 8 vports */
>  #define CPFL_MAX_VPORT_NUM	8
> @@ -60,11 +61,32 @@
>  #define IDPF_DEV_ID_CPF			0x1453
>  #define VIRTCHNL2_QUEUE_GROUP_P2P	0x100
> 
> +#define CPFL_HOST_ID_NUM	2
> +#define CPFL_PF_TYPE_NUM	2
>  #define CPFL_HOST_ID_HOST	0
>  #define CPFL_HOST_ID_ACC	1
>  #define CPFL_PF_TYPE_APF	0
>  #define CPFL_PF_TYPE_CPF	1
> 
[Liu, Mingxia] Better to use enum.

> +/* Function IDs on IMC side */
> +#define HOST0_APF	0
> +#define HOST1_APF	1
> +#define HOST2_APF	2
> +#define HOST3_APF	3
> +#define ACC_APF_ID	4
> +#define IMC_APF_ID	5
> +#define HOST0_NVME_ID	6
> +#define ACC_NVME_ID	7
> +#define HOST0_CPF_ID	8
> +#define HOST1_CPF_ID	9
> +#define HOST2_CPF_ID	10
> +#define HOST3_CPF_ID	11
> +#define ACC_CPF_ID	12
> +#define IMC_IPF_ID	13
> +#define ATE_CPF_ID	14
> +#define ACC_LCE_ID	15
[Liu, Mingxia] Better to use enum.

> +#define IMC_MBX_EFD_ID	0
> +
>  struct cpfl_vport_param {
>  	struct cpfl_adapter_ext *adapter;
>  	uint16_t devarg_id; /* arg id from user */ @@ -136,6 +158,13 @@
> struct cpfl_vport {
>  	bool p2p_manual_bind;
>  };
> 


More information about the dev mailing list