[2/5] net/enic: flow manager API update

Message ID 20200415010641.5195-2-johndale@cisco.com (mailing list archive)
State Accepted, archived
Delegated to: Ferruh Yigit
Headers
Series [1/5] net/enic: fix action reordering |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation fail Compilation issues

Commit Message

John Daley (johndale) April 15, 2020, 1:06 a.m. UTC
  Update the VIC Flow Manager API. The extentions will allow support for:
  - Decap and strip VLAN
  - Remove outer VLAN
  - Set Egress port
  - Set VLAN when replicating encapped packets
  - RSS queue ranges on outer header

Signed-off-by: John Daley <johndale@cisco.com>
Reviewed-by: Hyong Youb Kim <hyonkim@cisco.com>
---
 drivers/net/enic/base/vnic_flowman.h | 23 ++++++++++++++++++++++-
 1 file changed, 22 insertions(+), 1 deletion(-)
  

Patch

diff --git a/drivers/net/enic/base/vnic_flowman.h b/drivers/net/enic/base/vnic_flowman.h
index 49f743f5fb..81e2cff1b0 100644
--- a/drivers/net/enic/base/vnic_flowman.h
+++ b/drivers/net/enic/base/vnic_flowman.h
@@ -236,6 +236,20 @@  enum {
 	FMOP_SET_OVLAN,
 	/* Decap when vlan_strip is off */
 	FMOP_DECAP_NOSTRIP,
+	/* Decap and strip VLAN */
+	FMOP_DECAP_STRIP,
+	/* Remove outer VLAN */
+	FMOP_POP_VLAN,
+	/* Set Egress port */
+	FMOP_SET_EGPORT,
+	/* Steer to an RQ without entering EMIT state */
+	FMOP_RQ_STEER_ONLY,
+	/* Set VLAN when replicating encapped packets */
+	FMOP_SET_ENCAP_VLAN,
+	/* Enter EMIT state */
+	FMOP_EMIT,
+	/* Enter MODIFY state */
+	FMOP_MODIFY,
 	FMOP_OP_MAX,
 };
 
@@ -260,12 +274,16 @@  struct fm_action_op {
 			uint8_t template_len;
 		} __rte_packed encap;
 		struct {
-			uint32_t rq_index;
+			uint16_t rq_index;
+			uint16_t rq_count;
 			uint64_t vnic_handle;
 		} __rte_packed rq_steer;
 		struct {
 			uint16_t vlan;
 		} __rte_packed ovlan;
+		struct {
+			uint16_t vlan;
+		} __rte_packed set_encap_vlan;
 		struct {
 			uint16_t mark;
 		} __rte_packed mark;
@@ -278,6 +296,9 @@  struct fm_action_op {
 		struct {
 			uint64_t handle;
 		} __rte_packed exact;
+		struct {
+			uint32_t egport;
+		} __rte_packed set_egport;
 	} __rte_packed;
 } __rte_packed;