@@ -328,6 +328,33 @@ cnxk_flow_isolate(struct rte_eth_dev *dev __rte_unused, int enable __rte_unused,
return -rte_errno;
}
+static int
+cnxk_flow_dev_dump(struct rte_eth_dev *dev, struct rte_flow *flow,
+ FILE *file, struct rte_flow_error *error)
+{
+ struct cnxk_eth_dev *hw = dev->data->dev_private;
+ struct roc_npc *npc = &hw->npc;
+
+ if (file == NULL) {
+ rte_flow_error_set(error, EINVAL,
+ RTE_FLOW_ERROR_TYPE_UNSPECIFIED, NULL,
+ "Invalid file");
+ return -rte_errno;
+ }
+
+ if (flow != NULL) {
+ rte_flow_error_set(error, EINVAL,
+ RTE_FLOW_ERROR_TYPE_HANDLE,
+ NULL,
+ "Invalid argument");
+ return -EINVAL;
+ }
+
+ roc_npc_flow_dump(file, npc);
+
+ return 0;
+}
+
const struct rte_flow_ops cnxk_flow_ops = {
.validate = cnxk_flow_validate,
.create = cnxk_flow_create,
@@ -335,4 +362,5 @@ const struct rte_flow_ops cnxk_flow_ops = {
.flush = cnxk_flow_flush,
.query = cnxk_flow_query,
.isolate = cnxk_flow_isolate,
+ .dev_dump = cnxk_flow_dev_dump,
};