automatic DPDK test reports
 help / color / mirror / Atom feed
* |WARNING| pw131467-131475 [PATCH] [v5, 9/9] net/cpfl: fix incorrect status calculation
@ 2023-09-15  9:40 dpdklab
  0 siblings, 0 replies; only message in thread
From: dpdklab @ 2023-09-15  9:40 UTC (permalink / raw)
  To: test-report; +Cc: dpdk-test-reports

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

_apply patch failure_

Submitter: Zhang, Yuying <yuying.zhang@intel.com>
Date: Friday, September 15 2023 10:00:47 
Applied on: CommitID:a4e700a878e7fa2651fd718e61f7228c3277e556
Apply patch set 131467-131475 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 CPFL_VPORT_LAN_PF	0
#define CPFL_VPORT_LAN_VF	1

/* bit[15:14] type
 * bit[13] host/accelerator core
 * bit[12] apf/cpf

error: patch failed: drivers/net/cpfl/cpfl_ethdev.h:77
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:99
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:165
error: while searching for:

	rte_spinlock_t repr_lock;
	struct rte_hash *repr_allowlist_hash;
};

TAILQ_HEAD(cpfl_adapter_list, cpfl_adapter_ext);

error: patch failed: drivers/net/cpfl/cpfl_ethdev.h:185
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:211
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...
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 5 rejects...
Rejected hunk #1.
Rejected hunk #2.
Rejected hunk #3.
Rejected hunk #4.
Rejected hunk #5.
Applied patch drivers/net/cpfl/cpfl_flow_parser.c cleanly.
Applied patch drivers/net/cpfl/cpfl_flow_parser.h cleanly.
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 cpfl PMD supports utilizing a JSON config file to translate rte_flow tokens into
+  low-level hardware resources.
+  Using the ``devargs`` option ``flow_parser`` the user can specify the path
+  of a 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.
 
+The json-c library must be installed to use rte_flow.
 
 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)
@@ -77,6 +77,11 @@
 #define CPFL_VPORT_LAN_PF	0
 #define CPFL_VPORT_LAN_VF	1
 
+#define CPFL_FLOW_FILE_LEN 100
+#define CPFL_INVALID_HW_ID	UINT16_MAX
+#define CPFL_META_CHUNK_LENGTH	1024
+#define CPFL_META_LENGTH	32
+
 /* bit[15:14] type
  * bit[13] host/accelerator core
  * bit[12] apf/cpf
@@ -99,6 +104,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 {
@@ -165,6 +171,20 @@ 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];
+};
+
+/**
+ * It is driver's responsibility to simlulate a metadata buffer which
+ * can be used as data source to fill the key of a flow rule.
+ */
+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;
@@ -185,6 +205,8 @@ struct cpfl_adapter_ext {
 
 	rte_spinlock_t repr_lock;
 	struct rte_hash *repr_allowlist_hash;
+
+	struct cpfl_metadata meta;
 };
 
 TAILQ_HEAD(cpfl_adapter_list, cpfl_adapter_ext);
@@ -211,4 +233,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: CPFL_HOST0_CPF_ID, acc: CPFL_ACC_CPF_ID */
+		vport_identity.pf_id = CPFL_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_flow_parser.c...
error: drivers/net/cpfl/cpfl_flow_parser.c: does not exist in index
Checking patch drivers/net/cpfl/cpfl_flow_parser.h...
error: drivers/net/cpfl/cpfl_flow_parser.h: does not exist in index
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:
	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:140
error: while searching for:
	rte_spinlock_t repr_lock;
	struct rte_hash *repr_allowlist_hash;

	struct cpfl_metadata meta;
};


error: patch failed: drivers/net/cpfl/cpfl_ethdev.h:206
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)
@@ -140,9 +140,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;
 };
 
@@ -206,6 +209,8 @@ struct cpfl_adapter_ext {
 	rte_spinlock_t repr_lock;
 	struct rte_hash *repr_allowlist_hash;
 
+	struct cpfl_flow_js_parser *flow_parser;
+
 	struct cpfl_metadata meta;
 };
 
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_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_META_CHUNK_LENGTH	1024
#define CPFL_META_LENGTH	32

/* bit[15:14] type
 * bit[13] host/accelerator core
 * bit[12] apf/cpf

error: patch failed: drivers/net/cpfl/cpfl_ethdev.h:82
error: while searching for:
	struct cpfl_flow_js_parser *flow_parser;

	struct cpfl_metadata meta;
};

TAILQ_HEAD(cpfl_adapter_list, cpfl_adapter_ext);

error: patch failed: drivers/net/cpfl/cpfl_ethdev.h:212
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:226
Checking patch drivers/net/cpfl/cpfl_rules.c...
Checking patch drivers/net/cpfl/cpfl_rules.h...
Checking patch drivers/net/cpfl/cpfl_vchnl.c...
error: drivers/net/cpfl/cpfl_vchnl.c: does not exist in index
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.
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_rules.c cleanly.
Applied patch drivers/net/cpfl/cpfl_rules.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)
@@ -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
@@ -82,6 +83,10 @@
 #define CPFL_META_CHUNK_LENGTH	1024
 #define CPFL_META_LENGTH	32
 
+#define CPFL_RX_CFGQ_NUM	4
+#define CPFL_TX_CFGQ_NUM	4
+#define CPFL_CFGQ_NUM		8
+
 /* bit[15:14] type
  * bit[13] host/accelerator core
  * bit[12] apf/cpf
@@ -212,6 +217,12 @@ struct cpfl_adapter_ext {
 	struct cpfl_flow_js_parser *flow_parser;
 
 	struct cpfl_metadata meta;
+
+	/* 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];
 };
 
 TAILQ_HEAD(cpfl_adapter_list, cpfl_adapter_ext);
@@ -226,6 +237,9 @@ 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_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);
 
 #define CPFL_DEV_TO_PCI(eth_dev)		\
 	RTE_DEV_TO_PCI((eth_dev)->device)
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:147
error: while searching for:
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);

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

error: patch failed: drivers/net/cpfl/cpfl_ethdev.h:240
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)
@@ -147,10 +147,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;
 };
 
@@ -240,6 +244,8 @@ int cpfl_cc_vport_info_get(struct cpfl_adapter_ext *adapter,
 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_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

/* bit[15:14] type

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

	struct cpfl_flow_js_parser *flow_parser;

	struct cpfl_metadata meta;


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

#endif /* _CPFL_ETHDEV_H_ */

error: patch failed: drivers/net/cpfl/cpfl_ethdev.h:312
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)
@@ -85,6 +85,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
 
 /* bit[15:14] type
@@ -219,6 +221,8 @@ struct cpfl_adapter_ext {
 	struct rte_hash *repr_allowlist_hash;
 
 	struct cpfl_flow_js_parser *flow_parser;
+	struct rte_bitmap *mod_bm;
+	void *mod_bm_mem;
 
 	struct cpfl_metadata meta;
 
@@ -312,4 +316,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:81
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)
@@ -81,6 +81,7 @@ New Features
 * **Updated Intel cpfl driver.**
 
   * Added support for port representor.
+  * Added support for rte_flow.
 
 Removed Items
 -------------
Checking patch drivers/net/cpfl/cpfl_ethdev.c...
error: drivers/net/cpfl/cpfl_ethdev.c: does not match index
hint: Use 'git am --show-current-patch' to see the failed patch

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

UNH-IOL DPDK Community Lab

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

only message in thread, other threads:[~2023-09-15  9:40 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-09-15  9:40 |WARNING| pw131467-131475 [PATCH] [v5, 9/9] net/cpfl: fix incorrect status calculation 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).