On 10/20/2022 3:19 AM, Chaoyong He wrote:
Add the flow validate/create/query/destroy/flush API of nfp PMD.
The flow create API construct a control cmsg and send it to
firmware, then add this flow to the hash table.
The flow query API get flow stats from the flow_priv structure.
Note there exist an rte_spin_lock to prevent the update and query
action occur at the same time.
The flow destroy API construct a control cmsg and send it to
firmware, then adelete this flow from the hash table.
The flow flush API just iterate the flows in hash table and
call the flow destroy API.
Signed-off-by: Chaoyong He <chaoyong...@corigine.com>
Reviewed-by: Niklas Söderlund <niklas.soderl...@corigine.com>
<...>
diff --git a/drivers/net/nfp/nfp_flow.h b/drivers/net/nfp/nfp_flow.h
index e8fd22a..6fa1b3e 100644
--- a/drivers/net/nfp/nfp_flow.h
+++ b/drivers/net/nfp/nfp_flow.h
@@ -6,10 +6,36 @@
#ifndef _NFP_FLOW_H_
#define _NFP_FLOW_H_
+#include <ethdev_driver.h>
+
+#define NFP_FLOWER_LAYER_EXT_META (1 << 0)
+#define NFP_FLOWER_LAYER_PORT (1 << 1)
+#define NFP_FLOWER_LAYER_MAC (1 << 2)
+#define NFP_FLOWER_LAYER_TP (1 << 3)
+#define NFP_FLOWER_LAYER_IPV4 (1 << 4)
+#define NFP_FLOWER_LAYER_IPV6 (1 << 5)
+#define NFP_FLOWER_LAYER_CT (1 << 6)
+#define NFP_FLOWER_LAYER_VXLAN (1 << 7)
+
+#define NFP_FLOWER_LAYER2_GRE (1 << 0)
+#define NFP_FLOWER_LAYER2_QINQ (1 << 4)
+#define NFP_FLOWER_LAYER2_GENEVE (1 << 5)
+#define NFP_FLOWER_LAYER2_GENEVE_OP (1 << 6)
+#define NFP_FLOWER_LAYER2_TUN_IPV6 (1 << 7)
+
RTE_BIT32() may be used, up to you.