From: John Daley Date: Wed, 15 Apr 2020 01:06:38 +0000 (-0700) Subject: net/enic: update flow manager API X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=6faf81f1d2c3;p=dpdk.git net/enic: update flow manager API Update the VIC Flow Manager API. The extensions 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 Reviewed-by: Hyong Youb Kim --- 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;