net/ice/base: add ethertype offset for QinQ dummy packet
[dpdk.git] / drivers / net / ice / base / ice_switch.h
index a3c4713..04d3c31 100644 (file)
@@ -1,5 +1,5 @@
 /* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(c) 2001-2020 Intel Corporation
+ * Copyright(c) 2001-2021 Intel Corporation
  */
 
 #ifndef _ICE_SWITCH_H_
@@ -160,6 +160,8 @@ struct ice_fltr_info {
                } mac_vlan;
                struct {
                        u16 vlan_id;
+                       u16 tpid;
+                       u8 tpid_valid;
                } vlan;
                /* Set lkup_type as ICE_SW_LKUP_ETHERTYPE
                 * if just using ethertype as filter. Set lkup_type as
@@ -199,6 +201,15 @@ struct ice_fltr_info {
        u8 lan_en;      /* Indicate if packet can be forwarded to the uplink */
 };
 
+struct ice_update_recipe_lkup_idx_params {
+       u16 rid;
+       u16 fv_idx;
+       bool ignore_valid;
+       u16 mask;
+       bool mask_valid;
+       u8 lkup_idx;
+};
+
 struct ice_adv_lkup_elem {
        enum ice_protocol_type type;
        union ice_prot_hdr h_u; /* Header values */
@@ -521,4 +532,7 @@ ice_replay_vsi_all_fltr(struct ice_hw *hw, struct ice_port_info *pi,
 void ice_rm_sw_replay_rule_info(struct ice_hw *hw, struct ice_switch_info *sw);
 void ice_rm_all_sw_replay_rule_info(struct ice_hw *hw);
 bool ice_is_prof_rule(enum ice_sw_tunnel_type type);
+enum ice_status
+ice_update_recipe_lkup_idx(struct ice_hw *hw,
+                          struct ice_update_recipe_lkup_idx_params *params);
 #endif /* _ICE_SWITCH_H_ */