Add src mac in input set map. If not add this, the src mac can not
be parsed and this field will be ignored.
Add outer mac as extracted key input to avoid rule conflict for VXLAN
rule when outer src mac change only.

Signed-off-by: Zhirun Yan <zhirun....@intel.com>
---
 drivers/net/ice/ice_ethdev.h      | 3 +++
 drivers/net/ice/ice_fdir_filter.c | 3 +++
 2 files changed, 6 insertions(+)

diff --git a/drivers/net/ice/ice_ethdev.h b/drivers/net/ice/ice_ethdev.h
index ec23dae665..791e8566ea 100644
--- a/drivers/net/ice/ice_ethdev.h
+++ b/drivers/net/ice/ice_ethdev.h
@@ -366,6 +366,9 @@ struct ice_fdir_fltr_pattern {
        struct ice_fdir_extra ext_data;
        struct ice_fdir_extra ext_mask;
 
+       struct ice_fdir_extra ext_data_outer;
+       struct ice_fdir_extra ext_mask_outer;
+
        enum ice_fdir_tunnel_type tunnel_type;
 };
 
diff --git a/drivers/net/ice/ice_fdir_filter.c 
b/drivers/net/ice/ice_fdir_filter.c
index 7914ba9407..4b0b6b5b23 100644
--- a/drivers/net/ice/ice_fdir_filter.c
+++ b/drivers/net/ice/ice_fdir_filter.c
@@ -919,6 +919,7 @@ ice_fdir_input_set_parse(uint64_t inset, enum 
ice_flow_field *field)
                enum ice_flow_field fld;
        };
        static const struct ice_inset_map ice_inset_map[] = {
+               {ICE_INSET_SMAC, ICE_FLOW_FIELD_IDX_ETH_SA},
                {ICE_INSET_DMAC, ICE_FLOW_FIELD_IDX_ETH_DA},
                {ICE_INSET_ETHERTYPE, ICE_FLOW_FIELD_IDX_ETH_TYPE},
                {ICE_INSET_IPV4_SRC, ICE_FLOW_FIELD_IDX_IPV4_SA},
@@ -1247,6 +1248,8 @@ ice_fdir_extract_fltr_key(struct ice_fdir_fltr_pattern 
*key,
        rte_memcpy(&key->ext_data, &input->ext_data, sizeof(key->ext_data));
        rte_memcpy(&key->ext_mask, &input->ext_mask, sizeof(key->ext_mask));
 
+       rte_memcpy(&key->ext_data_outer, &input->ext_data_outer, 
sizeof(key->ext_data_outer));
+       rte_memcpy(&key->ext_mask_outer, &input->ext_mask_outer, 
sizeof(key->ext_mask_outer));
        rte_memcpy(&key->gtpu_data, &input->gtpu_data, sizeof(key->gtpu_data));
        rte_memcpy(&key->gtpu_mask, &input->gtpu_mask, sizeof(key->gtpu_mask));
 
-- 
2.25.1

Reply via email to