net/i40e: fix parsing packet type for NEON
[dpdk.git] / drivers / net / ice / base / ice_switch.h
index aa44677..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_
 #define ICE_PROFID_PPPOE_IPV6_UDP      39
 #define ICE_PROFID_PPPOE_IPV6_OTHER    40
 #define ICE_PROFID_IPV4_GTPC_TEID      41
+#define ICE_PROFID_IPV4_GTPU_TEID              43
+#define ICE_PROFID_IPV6_GTPU_TEID              46
 #define ICE_PROFID_IPV4_GTPU_EH_IPV4_OTHER     47
-#define ICE_PROFID_IPV6_GTPU_IPV6_OTHER        70
+#define ICE_PROFID_IPV4_GTPU_IPV4_OTHER                48
+#define ICE_PROFID_IPV4_GTPU_EH_IPV4_UDP       49
+#define ICE_PROFID_IPV4_GTPU_IPV4_UDP          50
+#define ICE_PROFID_IPV4_GTPU_EH_IPV4_TCP       51
+#define ICE_PROFID_IPV4_GTPU_IPV4_TCP          52
+#define ICE_PROFID_IPV6_GTPU_EH_IPV4_OTHER     53
+#define ICE_PROFID_IPV6_GTPU_IPV4_OTHER                54
+#define ICE_PROFID_IPV6_GTPU_EH_IPV4_UDP       55
+#define ICE_PROFID_IPV6_GTPU_IPV4_UDP          56
+#define ICE_PROFID_IPV6_GTPU_EH_IPV4_TCP       57
+#define ICE_PROFID_IPV6_GTPU_IPV4_TCP          58
+#define ICE_PROFID_IPV4_GTPU_EH_IPV6_OTHER     59
+#define ICE_PROFID_IPV4_GTPU_IPV6_OTHER                60
+#define ICE_PROFID_IPV4_GTPU_EH_IPV6_UDP       61
+#define ICE_PROFID_IPV4_GTPU_IPV6_UDP          62
+#define ICE_PROFID_IPV4_GTPU_EH_IPV6_TCP       63
+#define ICE_PROFID_IPV4_GTPU_IPV6_TCP          64
+#define ICE_PROFID_IPV6_GTPU_EH_IPV6_OTHER     65
+#define ICE_PROFID_IPV6_GTPU_IPV6_OTHER                66
+#define ICE_PROFID_IPV6_GTPU_EH_IPV6_UDP       67
+#define ICE_PROFID_IPV6_GTPU_IPV6_UDP          68
+#define ICE_PROFID_IPV6_GTPU_EH_IPV6_TCP       69
+#define ICE_PROFID_IPV6_GTPU_IPV6_TCP          70
 #define ICE_PROFID_IPV4_ESP            71
 #define ICE_PROFID_IPV6_ESP            72
 #define ICE_PROFID_IPV4_AH             73
@@ -136,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
@@ -158,7 +184,6 @@ struct ice_fltr_info {
                 */
                u16 q_id:11;
                u16 hw_vsi_id:10;
-               u16 vsi_id:10;
                u16 vsi_list_id:10;
        } fwd_id;
 
@@ -176,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 */
@@ -394,6 +428,8 @@ ice_free_res_cntr(struct ice_hw *hw, u8 type, u8 alloc_shared, u16 num_items,
 
 /* Switch/bridge related commands */
 enum ice_status ice_update_sw_rule_bridge_mode(struct ice_hw *hw);
+enum ice_status ice_alloc_rss_global_lut(struct ice_hw *hw, bool shared_res, u16 *global_lut_id);
+enum ice_status ice_free_rss_global_lut(struct ice_hw *hw, u16 global_lut_id);
 enum ice_status
 ice_alloc_sw(struct ice_hw *hw, bool ena_stats, bool shared_res, u16 *sw_id,
             u16 *counter_id);
@@ -496,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_ */