net/ice/base: allow forward to Q groups in switch rule
[dpdk.git] / drivers / net / ice / base / ice_protocol_type.h
index f96964d..38bed7a 100644 (file)
@@ -1,5 +1,5 @@
 /* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(c) 2001-2018
+ * Copyright(c) 2001-2019
  */
 
 #ifndef _ICE_PROTOCOL_TYPE_H_
@@ -35,6 +35,7 @@ enum ice_protocol_type {
        ICE_IPV6_IL,
        ICE_IPV6_OFOS,
        ICE_TCP_IL,
+       ICE_UDP_OF,
        ICE_UDP_ILOS,
        ICE_SCTP_IL,
        ICE_VXLAN,
@@ -112,6 +113,7 @@ enum ice_prot_id {
 #define ICE_IPV6_OFOS_HW       40
 #define ICE_IPV6_IL_HW         41
 #define ICE_TCP_IL_HW          49
+#define ICE_UDP_OF_HW          52
 #define ICE_UDP_ILOS_HW                53
 #define ICE_SCTP_IL_HW         96
 
@@ -188,7 +190,7 @@ struct ice_l4_hdr {
 struct ice_udp_tnl_hdr {
        u16 field;
        u16 proto_type;
-       u16 vni;
+       u32 vni;        /* only use lower 24-bits */
 };
 
 struct ice_nvgre {
@@ -223,7 +225,8 @@ struct ice_prot_lkup_ext {
        u16 prot_type;
        u8 n_val_words;
        /* create a buffer to hold max words per recipe */
-       u8 field_off[ICE_MAX_CHAIN_WORDS];
+       u16 field_off[ICE_MAX_CHAIN_WORDS];
+       u16 field_mask[ICE_MAX_CHAIN_WORDS];
 
        struct ice_fv_word fv_words[ICE_MAX_CHAIN_WORDS];
 
@@ -234,6 +237,7 @@ struct ice_prot_lkup_ext {
 struct ice_pref_recipe_group {
        u8 n_val_pairs;         /* Number of valid pairs */
        struct ice_fv_word pairs[ICE_NUM_WORDS_RECIPE];
+       u16 mask[ICE_NUM_WORDS_RECIPE];
 };
 
 struct ice_recp_grp_entry {
@@ -243,6 +247,7 @@ struct ice_recp_grp_entry {
        u16 rid;
        u8 chain_idx;
        u16 fv_idx[ICE_NUM_WORDS_RECIPE];
+       u16 fv_mask[ICE_NUM_WORDS_RECIPE];
        struct ice_pref_recipe_group r_group;
 };
 #endif /* _ICE_PROTOCOL_TYPE_H_ */