automatic DPDK test reports
 help / color / mirror / Atom feed
* |WARNING| pw131185-131193 [PATCH] [v3, 9/9] app/test-pmd: refine encap content
@ 2023-09-06 10:46 dpdklab
  0 siblings, 0 replies; only message in thread
From: dpdklab @ 2023-09-06 10:46 UTC (permalink / raw)
  To: test-report; +Cc: dpdk-test-reports

Test-Label: iol-testing
Test-Status: WARNING
http://dpdk.org/patch/131185

_apply patch failure_

Submitter: Wenjing Qiao <wenjing.qiao@intel.com>
Date: Wednesday, September 06 2023 09:34:07 
Applied on: CommitID:a05350d45166e15ac040b2bf5f310b66f0dbf7c9
Apply patch set 131185-131193 failed:

Checking patch doc/guides/nics/cpfl.rst...
error: while searching for:

    -a BDF,representor=vf[0-3],representor=c1pf1


Driver compilation and testing
------------------------------

Refer to the document :doc:`build_and_test` for details.


Features
--------

error: patch failed: doc/guides/nics/cpfl.rst:128
Hunk #2 succeeded at 128 (offset -48 lines).
Checking patch drivers/net/cpfl/cpfl_ethdev.c...
Hunk #1 succeeded at 18 (offset -3 lines).
Hunk #2 succeeded at 31 (offset -4 lines).
error: while searching for:
	return 0;
}

static int
cpfl_parse_devargs(struct rte_pci_device *pci_dev, struct cpfl_adapter_ext *adapter, bool first)
{

error: patch failed: drivers/net/cpfl/cpfl_ethdev.c:1537
error: while searching for:
				 &adapter->base.is_rx_singleq);
	if (ret != 0)
		goto fail;

fail:
	rte_kvargs_free(kvlist);
	return ret;

error: patch failed: drivers/net/cpfl/cpfl_ethdev.c:1585
Checking patch drivers/net/cpfl/cpfl_ethdev.h...
error: while searching for:
#define ACC_LCE_ID	15
#define IMC_MBX_EFD_ID	0

struct cpfl_vport_param {
	struct cpfl_adapter_ext *adapter;
	uint16_t devarg_id; /* arg id from user */

error: patch failed: drivers/net/cpfl/cpfl_ethdev.h:87
error: while searching for:
	uint16_t req_vport_nb;
	uint8_t repr_args_num;
	struct rte_eth_devargs repr_args[CPFL_REPR_ARG_NUM_MAX];
};

struct p2p_queue_chunks_info {

error: patch failed: drivers/net/cpfl/cpfl_ethdev.h:100
Checking patch drivers/net/cpfl/meson.build...
Hunk #1 succeeded at 36 (offset -2 lines).
Applying patch doc/guides/nics/cpfl.rst with 1 reject...
Rejected hunk #1.
Hunk #2 applied cleanly.
Applying patch drivers/net/cpfl/cpfl_ethdev.c with 2 rejects...
Hunk #1 applied cleanly.
Hunk #2 applied cleanly.
Rejected hunk #3.
Rejected hunk #4.
Applying patch drivers/net/cpfl/cpfl_ethdev.h with 2 rejects...
Rejected hunk #1.
Rejected hunk #2.
Applied patch drivers/net/cpfl/meson.build cleanly.
hint: Use 'git am --show-current-patch' to see the failed patch
diff a/doc/guides/nics/cpfl.rst b/doc/guides/nics/cpfl.rst	(rejected hunks)
@@ -128,12 +128,24 @@ Runtime Configuration
 
     -a BDF,representor=vf[0-3],representor=c1pf1
 
+- ``flow_parser`` (default ``not enabled``)
+
+  The PMD supports using a JSON file to parse rte_flow tokens into low level hardware
+  resources defined in a DDP package file.
+
+  The user can specify the path of json file, for example::
+
+    -a ca:00.0,flow_parser="refpkg.json"
+
+  Then the PMD will load json file for device ``ca:00.0``.
+  The parameter is optional.
 
 Driver compilation and testing
 ------------------------------
 
 Refer to the document :doc:`build_and_test` for details.
 
+Rte flow need to install json-c library.
 
 Features
 --------
diff a/drivers/net/cpfl/cpfl_ethdev.c b/drivers/net/cpfl/cpfl_ethdev.c	(rejected hunks)
@@ -1537,6 +1544,24 @@ parse_repr(const char *key __rte_unused, const char *value, void *args)
 	return 0;
 }
 
+#ifdef CPFL_FLOW_JSON_SUPPORT
+static int
+parse_file(const char *key, const char *value, void *args)
+{
+	char *name = args;
+
+	if (strlen(value) > CPFL_FLOW_FILE_LEN - 1) {
+		PMD_DRV_LOG(ERR, "file path(%s) is too long.", value);
+		return -1;
+	}
+
+	PMD_DRV_LOG(DEBUG, "value:\"%s\" for key:\"%s\"", value, key);
+	strlcpy(name, value, CPFL_FLOW_FILE_LEN);
+
+	return 0;
+}
+#endif
+
 static int
 cpfl_parse_devargs(struct rte_pci_device *pci_dev, struct cpfl_adapter_ext *adapter, bool first)
 {
@@ -1585,7 +1610,18 @@ cpfl_parse_devargs(struct rte_pci_device *pci_dev, struct cpfl_adapter_ext *adap
 				 &adapter->base.is_rx_singleq);
 	if (ret != 0)
 		goto fail;
-
+#ifdef CPFL_FLOW_JSON_SUPPORT
+	if (rte_kvargs_get(kvlist, CPFL_FLOW_PARSER)) {
+		ret = rte_kvargs_process(kvlist, CPFL_FLOW_PARSER,
+					 &parse_file, cpfl_args->flow_parser);
+		if (ret) {
+			PMD_DRV_LOG(ERR, "Failed to parser flow_parser, ret: %d", ret);
+			goto fail;
+		}
+	} else {
+		cpfl_args->flow_parser[0] = '\0';
+	}
+#endif
 fail:
 	rte_kvargs_free(kvlist);
 	return ret;
diff a/drivers/net/cpfl/cpfl_ethdev.h b/drivers/net/cpfl/cpfl_ethdev.h	(rejected hunks)
@@ -87,6 +87,8 @@
 #define ACC_LCE_ID	15
 #define IMC_MBX_EFD_ID	0
 
+#define CPFL_FLOW_FILE_LEN 100
+
 struct cpfl_vport_param {
 	struct cpfl_adapter_ext *adapter;
 	uint16_t devarg_id; /* arg id from user */
@@ -100,6 +102,7 @@ struct cpfl_devargs {
 	uint16_t req_vport_nb;
 	uint8_t repr_args_num;
 	struct rte_eth_devargs repr_args[CPFL_REPR_ARG_NUM_MAX];
+	char flow_parser[CPFL_FLOW_FILE_LEN];
 };
 
 struct p2p_queue_chunks_info {
Checking patch drivers/net/cpfl/cpfl_ethdev.h...
error: while searching for:

#define CPFL_FLOW_FILE_LEN 100

struct cpfl_vport_param {
	struct cpfl_adapter_ext *adapter;
	uint16_t devarg_id; /* arg id from user */

error: patch failed: drivers/net/cpfl/cpfl_ethdev.h:89
error: while searching for:
	bool func_up; /* If the represented function is up */
};

struct cpfl_adapter_ext {
	TAILQ_ENTRY(cpfl_adapter_ext) next;
	struct idpf_adapter base;

error: patch failed: drivers/net/cpfl/cpfl_ethdev.h:169
error: while searching for:

	rte_spinlock_t repr_lock;
	struct rte_hash *repr_whitelist_hash;
};

TAILQ_HEAD(cpfl_adapter_list, cpfl_adapter_ext);

error: patch failed: drivers/net/cpfl/cpfl_ethdev.h:189
error: while searching for:
#define CPFL_DEV_TO_ITF(dev)				\
	((struct cpfl_itf *)((dev)->data->dev_private))

#endif /* _CPFL_ETHDEV_H_ */

error: patch failed: drivers/net/cpfl/cpfl_ethdev.h:215
Checking patch drivers/net/cpfl/cpfl_flow_parser.c...
Checking patch drivers/net/cpfl/cpfl_flow_parser.h...
Checking patch drivers/net/cpfl/meson.build...
error: drivers/net/cpfl/meson.build: does not match index
Applying patch drivers/net/cpfl/cpfl_ethdev.h with 4 rejects...
Rejected hunk #1.
Rejected hunk #2.
Rejected hunk #3.
Rejected hunk #4.
Applied patch drivers/net/cpfl/cpfl_flow_parser.c cleanly.
Applied patch drivers/net/cpfl/cpfl_flow_parser.h cleanly.
hint: Use 'git am --show-current-patch' to see the failed patch
diff a/drivers/net/cpfl/cpfl_ethdev.h b/drivers/net/cpfl/cpfl_ethdev.h	(rejected hunks)
@@ -89,6 +89,10 @@
 
 #define CPFL_FLOW_FILE_LEN 100
 
+#define CPFL_INVALID_HW_ID	UINT16_MAX
+#define CPFL_META_CHUNK_LENGTH	1024
+#define CPFL_META_LENGTH	32
+
 struct cpfl_vport_param {
 	struct cpfl_adapter_ext *adapter;
 	uint16_t devarg_id; /* arg id from user */
@@ -169,6 +173,16 @@ struct cpfl_repr {
 	bool func_up; /* If the represented function is up */
 };
 
+struct cpfl_metadata_chunk {
+	int type;
+	uint8_t data[CPFL_META_CHUNK_LENGTH];
+};
+
+struct cpfl_metadata {
+	int length;
+	struct cpfl_metadata_chunk chunks[CPFL_META_LENGTH];
+};
+
 struct cpfl_adapter_ext {
 	TAILQ_ENTRY(cpfl_adapter_ext) next;
 	struct idpf_adapter base;
@@ -189,6 +203,8 @@ struct cpfl_adapter_ext {
 
 	rte_spinlock_t repr_lock;
 	struct rte_hash *repr_whitelist_hash;
+
+	struct cpfl_metadata meta;
 };
 
 TAILQ_HEAD(cpfl_adapter_list, cpfl_adapter_ext);
@@ -215,4 +231,58 @@ int cpfl_cc_vport_info_get(struct cpfl_adapter_ext *adapter,
 #define CPFL_DEV_TO_ITF(dev)				\
 	((struct cpfl_itf *)((dev)->data->dev_private))
 
+static inline uint16_t
+cpfl_get_port_id(struct cpfl_itf *itf)
+{
+	if (!itf)
+		return CPFL_INVALID_HW_ID;
+
+	if (itf->type == CPFL_ITF_TYPE_VPORT) {
+		struct cpfl_vport *vport = (void *)itf;
+
+		return vport->base.devarg_id;
+	}
+
+	return CPFL_INVALID_HW_ID;
+}
+
+static inline uint16_t
+cpfl_get_vsi_id(struct cpfl_itf *itf)
+{
+	struct cpfl_adapter_ext *adapter = itf->adapter;
+	struct cpfl_vport_info *info;
+	uint32_t vport_id;
+	int ret;
+	struct cpfl_vport_id vport_identity;
+
+	if (!itf)
+		return CPFL_INVALID_HW_ID;
+
+	if (itf->type == CPFL_ITF_TYPE_REPRESENTOR) {
+		struct cpfl_repr *repr = (void *)itf;
+
+		return repr->vport_info->vport_info.vsi_id;
+	} else if (itf->type == CPFL_ITF_TYPE_VPORT) {
+		vport_id = ((struct cpfl_vport *)itf)->base.vport_id;
+
+		vport_identity.func_type = CPCHNL2_FUNC_TYPE_PF;
+		/* host: HOST0_CPF_ID, acc: ACC_CPF_ID */
+		vport_identity.pf_id = ACC_CPF_ID;
+		vport_identity.vf_id = 0;
+		vport_identity.vport_id = vport_id;
+		ret = rte_hash_lookup_data(adapter->vport_map_hash,
+					   &vport_identity,
+					   (void **)&info);
+		if (ret < 0) {
+			PMD_DRV_LOG(ERR, "vport id not exist");
+			goto err;
+		}
+
+		return info->vport_info.vsi_id;
+	}
+
+err:
+	return CPFL_INVALID_HW_ID;
+}
+
 #endif /* _CPFL_ETHDEV_H_ */
Checking patch drivers/net/cpfl/cpfl_actions.h...
Checking patch drivers/net/cpfl/cpfl_controlq.c...
Checking patch drivers/net/cpfl/cpfl_controlq.h...
Checking patch drivers/net/cpfl/cpfl_rules.c...
Checking patch drivers/net/cpfl/cpfl_rules.h...
Checking patch drivers/net/cpfl/meson.build...
error: drivers/net/cpfl/meson.build: does not match index
Applied patch drivers/net/cpfl/cpfl_actions.h cleanly.
Applied patch drivers/net/cpfl/cpfl_controlq.c cleanly.
Applied patch drivers/net/cpfl/cpfl_controlq.h cleanly.
Applied patch drivers/net/cpfl/cpfl_rules.c cleanly.
Applied patch drivers/net/cpfl/cpfl_rules.h cleanly.
hint: Use 'git am --show-current-patch' to see the failed patch
Checking patch drivers/net/cpfl/cpfl_ethdev.c...
error: drivers/net/cpfl/cpfl_ethdev.c: does not match index
Checking patch drivers/net/cpfl/cpfl_ethdev.h...
error: while searching for:
#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

error: patch failed: drivers/net/cpfl/cpfl_ethdev.h:22
error: while searching for:

#define CPFL_FLOW_FILE_LEN 100

#define CPFL_INVALID_HW_ID	UINT16_MAX
#define CPFL_META_CHUNK_LENGTH	1024
#define CPFL_META_LENGTH	32

error: patch failed: drivers/net/cpfl/cpfl_ethdev.h:89
error: while searching for:
	rte_spinlock_t repr_lock;
	struct rte_hash *repr_whitelist_hash;

	struct cpfl_metadata meta;
};

TAILQ_HEAD(cpfl_adapter_list, cpfl_adapter_ext);

int cpfl_vport_info_create(struct cpfl_adapter_ext *adapter,
			   struct cpfl_vport_id *vport_identity,
			   struct cpchnl2_vport_info *vport_info);

error: patch failed: drivers/net/cpfl/cpfl_ethdev.h:204
Checking patch drivers/net/cpfl/cpfl_vchnl.c...
error: drivers/net/cpfl/cpfl_vchnl.c: does not exist in index
Applying patch drivers/net/cpfl/cpfl_ethdev.h with 3 rejects...
Rejected hunk #1.
Rejected hunk #2.
Rejected hunk #3.
hint: Use 'git am --show-current-patch' to see the failed patch
diff a/drivers/net/cpfl/cpfl_ethdev.h b/drivers/net/cpfl/cpfl_ethdev.h	(rejected hunks)
@@ -22,6 +22,7 @@
 #include "cpfl_logs.h"
 #include "cpfl_cpchnl.h"
 #include "cpfl_representor.h"
+#include "cpfl_controlq.h"
 
 /* Currently, backend supports up to 8 vports */
 #define CPFL_MAX_VPORT_NUM	8
@@ -89,6 +90,10 @@
 
 #define CPFL_FLOW_FILE_LEN 100
 
+#define CPFL_RX_CFGQ_NUM	4
+#define CPFL_TX_CFGQ_NUM	4
+#define CPFL_CFGQ_NUM		8
+
 #define CPFL_INVALID_HW_ID	UINT16_MAX
 #define CPFL_META_CHUNK_LENGTH	1024
 #define CPFL_META_LENGTH	32
@@ -204,11 +209,20 @@ struct cpfl_adapter_ext {
 	rte_spinlock_t repr_lock;
 	struct rte_hash *repr_whitelist_hash;
 
+	/* ctrl vport and ctrl queues. */
+	struct cpfl_vport ctrl_vport;
+	uint8_t ctrl_vport_recv_info[IDPF_DFLT_MBX_BUF_SIZE];
+	struct idpf_ctlq_info *ctlqp[CPFL_CFGQ_NUM];
+	struct cpfl_ctlq_create_info cfgq_info[CPFL_CFGQ_NUM];
+
 	struct cpfl_metadata meta;
 };
 
 TAILQ_HEAD(cpfl_adapter_list, cpfl_adapter_ext);
 
+int cpfl_vc_create_ctrl_vport(struct cpfl_adapter_ext *adapter);
+int cpfl_config_ctlq_rx(struct cpfl_adapter_ext *adapter);
+int cpfl_config_ctlq_tx(struct cpfl_adapter_ext *adapter);
 int cpfl_vport_info_create(struct cpfl_adapter_ext *adapter,
 			   struct cpfl_vport_id *vport_identity,
 			   struct cpchnl2_vport_info *vport_info);
Checking patch drivers/net/cpfl/cpfl_ethdev.c...
error: drivers/net/cpfl/cpfl_ethdev.c: does not match index
Checking patch drivers/net/cpfl/cpfl_ethdev.h...
error: while searching for:
	CPFL_ITF_TYPE_REPRESENTOR
};

struct cpfl_itf {
	enum cpfl_itf_type type;
	struct cpfl_adapter_ext *adapter;
	void *data;
};


error: patch failed: drivers/net/cpfl/cpfl_ethdev.h:147
error: while searching for:
	rte_spinlock_t repr_lock;
	struct rte_hash *repr_whitelist_hash;

	/* ctrl vport and ctrl queues. */
	struct cpfl_vport ctrl_vport;
	uint8_t ctrl_vport_recv_info[IDPF_DFLT_MBX_BUF_SIZE];

error: patch failed: drivers/net/cpfl/cpfl_ethdev.h:209
Checking patch drivers/net/cpfl/cpfl_flow.c...
Checking patch drivers/net/cpfl/cpfl_flow.h...
Checking patch drivers/net/cpfl/meson.build...
error: drivers/net/cpfl/meson.build: does not match index
Applying patch drivers/net/cpfl/cpfl_ethdev.h with 2 rejects...
Rejected hunk #1.
Rejected hunk #2.
Applied patch drivers/net/cpfl/cpfl_flow.c cleanly.
Applied patch drivers/net/cpfl/cpfl_flow.h cleanly.
hint: Use 'git am --show-current-patch' to see the failed patch
diff a/drivers/net/cpfl/cpfl_ethdev.h b/drivers/net/cpfl/cpfl_ethdev.h	(rejected hunks)
@@ -147,9 +147,12 @@ enum cpfl_itf_type {
 	CPFL_ITF_TYPE_REPRESENTOR
 };
 
+TAILQ_HEAD(cpfl_flow_list, rte_flow);
+
 struct cpfl_itf {
 	enum cpfl_itf_type type;
 	struct cpfl_adapter_ext *adapter;
+	struct cpfl_flow_list flow_list;
 	void *data;
 };
 
@@ -209,6 +212,8 @@ struct cpfl_adapter_ext {
 	rte_spinlock_t repr_lock;
 	struct rte_hash *repr_whitelist_hash;
 
+	struct cpfl_flow_js_parser *flow_parser;
+
 	/* ctrl vport and ctrl queues. */
 	struct cpfl_vport ctrl_vport;
 	uint8_t ctrl_vport_recv_info[IDPF_DFLT_MBX_BUF_SIZE];
Checking patch drivers/net/cpfl/cpfl_controlq.c...
error: drivers/net/cpfl/cpfl_controlq.c: does not exist in index
Checking patch drivers/net/cpfl/cpfl_controlq.h...
error: drivers/net/cpfl/cpfl_controlq.h: does not exist in index
Checking patch drivers/net/cpfl/cpfl_ethdev.c...
error: drivers/net/cpfl/cpfl_ethdev.c: does not match index
Checking patch drivers/net/cpfl/cpfl_ethdev.h...
error: while searching for:

TAILQ_HEAD(cpfl_flow_list, rte_flow);

struct cpfl_itf {
	enum cpfl_itf_type type;
	struct cpfl_adapter_ext *adapter;
	struct cpfl_flow_list flow_list;
	void *data;
};


error: patch failed: drivers/net/cpfl/cpfl_ethdev.h:149
error: while searching for:
			   struct cpchnl2_vport_id *vport_id,
			   struct cpfl_vport_id *vi,
			   struct cpchnl2_get_vport_info_response *response);

#define CPFL_DEV_TO_PCI(eth_dev)		\
	RTE_DEV_TO_PCI((eth_dev)->device)

error: patch failed: drivers/net/cpfl/cpfl_ethdev.h:238
Checking patch drivers/net/cpfl/cpfl_fxp_rule.c...
Checking patch drivers/net/cpfl/cpfl_fxp_rule.h...
Checking patch drivers/net/cpfl/meson.build...
error: drivers/net/cpfl/meson.build: does not match index
Applying patch drivers/net/cpfl/cpfl_ethdev.h with 2 rejects...
Rejected hunk #1.
Rejected hunk #2.
Applied patch drivers/net/cpfl/cpfl_fxp_rule.c cleanly.
Applied patch drivers/net/cpfl/cpfl_fxp_rule.h cleanly.
hint: Use 'git am --show-current-patch' to see the failed patch
diff a/drivers/net/cpfl/cpfl_ethdev.h b/drivers/net/cpfl/cpfl_ethdev.h	(rejected hunks)
@@ -149,10 +149,14 @@ enum cpfl_itf_type {
 
 TAILQ_HEAD(cpfl_flow_list, rte_flow);
 
+#define CPFL_FLOW_BATCH_SIZE  490
 struct cpfl_itf {
 	enum cpfl_itf_type type;
 	struct cpfl_adapter_ext *adapter;
 	struct cpfl_flow_list flow_list;
+	struct idpf_dma_mem flow_dma;
+	struct idpf_dma_mem dma[CPFL_FLOW_BATCH_SIZE];
+	struct idpf_ctlq_msg msg[CPFL_FLOW_BATCH_SIZE];
 	void *data;
 };
 
@@ -238,6 +242,8 @@ int cpfl_cc_vport_info_get(struct cpfl_adapter_ext *adapter,
 			   struct cpchnl2_vport_id *vport_id,
 			   struct cpfl_vport_id *vi,
 			   struct cpchnl2_get_vport_info_response *response);
+int cpfl_alloc_dma_mem_batch(struct idpf_dma_mem *orig_dma, struct idpf_dma_mem *dma,
+			     uint32_t size, int batch_size);
 
 #define CPFL_DEV_TO_PCI(eth_dev)		\
 	RTE_DEV_TO_PCI((eth_dev)->device)
Checking patch drivers/net/cpfl/cpfl_ethdev.h...
error: while searching for:

#define CPFL_RX_CFGQ_NUM	4
#define CPFL_TX_CFGQ_NUM	4
#define CPFL_CFGQ_NUM		8

#define CPFL_INVALID_HW_ID	UINT16_MAX

error: patch failed: drivers/net/cpfl/cpfl_ethdev.h:92
error: while searching for:
	struct rte_hash *repr_whitelist_hash;

	struct cpfl_flow_js_parser *flow_parser;

	/* ctrl vport and ctrl queues. */
	struct cpfl_vport ctrl_vport;

error: patch failed: drivers/net/cpfl/cpfl_ethdev.h:217
error: while searching for:
	return CPFL_INVALID_HW_ID;
}

#endif /* _CPFL_ETHDEV_H_ */

error: patch failed: drivers/net/cpfl/cpfl_ethdev.h:310
Checking patch drivers/net/cpfl/cpfl_flow_engine_fxp.c...
Checking patch drivers/net/cpfl/meson.build...
error: drivers/net/cpfl/meson.build: does not match index
Applying patch drivers/net/cpfl/cpfl_ethdev.h with 3 rejects...
Rejected hunk #1.
Rejected hunk #2.
Rejected hunk #3.
Applied patch drivers/net/cpfl/cpfl_flow_engine_fxp.c cleanly.
hint: Use 'git am --show-current-patch' to see the failed patch
diff a/drivers/net/cpfl/cpfl_ethdev.h b/drivers/net/cpfl/cpfl_ethdev.h	(rejected hunks)
@@ -92,6 +92,8 @@
 
 #define CPFL_RX_CFGQ_NUM	4
 #define CPFL_TX_CFGQ_NUM	4
+#define CPFL_FPCP_CFGQ_TX	0
+#define CPFL_FPCP_CFGQ_RX	1
 #define CPFL_CFGQ_NUM		8
 
 #define CPFL_INVALID_HW_ID	UINT16_MAX
@@ -217,6 +219,8 @@ struct cpfl_adapter_ext {
 	struct rte_hash *repr_whitelist_hash;
 
 	struct cpfl_flow_js_parser *flow_parser;
+	struct rte_bitmap *mod_bm;
+	void *mod_bm_mem;
 
 	/* ctrl vport and ctrl queues. */
 	struct cpfl_vport ctrl_vport;
@@ -310,4 +314,27 @@ cpfl_get_vsi_id(struct cpfl_itf *itf)
 	return CPFL_INVALID_HW_ID;
 }
 
+static inline struct cpfl_itf *
+cpfl_get_itf_by_port_id(uint16_t port_id)
+{
+	struct rte_eth_dev *dev;
+
+	if (port_id >= RTE_MAX_ETHPORTS) {
+		PMD_DRV_LOG(ERR, "port_id should be < %d.", RTE_MAX_ETHPORTS);
+		return NULL;
+	}
+
+	dev = &rte_eth_devices[port_id];
+	if (dev->state == RTE_ETH_DEV_UNUSED) {
+		PMD_DRV_LOG(ERR, "eth_dev[%d] is unused.", port_id);
+		return NULL;
+	}
+
+	if (!dev->data) {
+		PMD_DRV_LOG(ERR, "eth_dev[%d] data not be allocated.", port_id);
+		return NULL;
+	}
+
+	return CPFL_DEV_TO_ITF(dev);
+}
 #endif /* _CPFL_ETHDEV_H_ */
Checking patch doc/guides/nics/cpfl.rst...
error: doc/guides/nics/cpfl.rst: does not match index
Checking patch doc/guides/rel_notes/release_23_11.rst...
error: while searching for:
* **Updated Intel cpfl driver.**

  * Added support for port representor.

Removed Items
-------------

error: patch failed: doc/guides/rel_notes/release_23_11.rst:58
Checking patch drivers/net/cpfl/cpfl_flow_engine_fxp.c...
error: drivers/net/cpfl/cpfl_flow_engine_fxp.c: does not exist in index
Checking patch drivers/net/cpfl/cpfl_representor.c...
error: drivers/net/cpfl/cpfl_representor.c: does not exist in index
Applying patch doc/guides/rel_notes/release_23_11.rst with 1 reject...
Rejected hunk #1.
hint: Use 'git am --show-current-patch' to see the failed patch
diff a/doc/guides/rel_notes/release_23_11.rst b/doc/guides/rel_notes/release_23_11.rst	(rejected hunks)
@@ -58,6 +58,7 @@ New Features
 * **Updated Intel cpfl driver.**
 
   * Added support for port representor.
+  * Added support for rte_flow.
 
 Removed Items
 -------------

https://lab.dpdk.org/results/dashboard/patchsets/27533/

UNH-IOL DPDK Community Lab

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2023-09-06 10:46 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-09-06 10:46 |WARNING| pw131185-131193 [PATCH] [v3, 9/9] app/test-pmd: refine encap content dpdklab

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).