> -----Original Message-----
> From: Xing, Beilei <beilei.x...@intel.com>
> Sent: Wednesday, August 16, 2023 11:06 PM
> To: Wu, Jingjing <jingjing...@intel.com>
> Cc: dev@dpdk.org; Liu, Mingxia <mingxia....@intel.com>; Xing, Beilei
> <beilei.x...@intel.com>; Zhang, Qi Z <qi.z.zh...@intel.com>
> Subject: [PATCH v2 07/12] net/cpfl: create port representor
>
> From: Beilei Xing <beilei.x...@intel.com>
>
> Track representor request in a whitelist.
> Representor will only be created for active vport.
>
> Signed-off-by: Jingjing Wu <jingjing...@intel.com>
> Signed-off-by: Qi Zhang <qi.z.zh...@intel.com>
> Signed-off-by: Beilei Xing <beilei.x...@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;
> };
>