net/ice/base: add routine for tunnel port query
[dpdk.git] / drivers / net / ice / base / ice_flex_type.h
index 837e1e8..3a70668 100644 (file)
@@ -490,6 +490,7 @@ struct ice_es {
        u16 count;
        u16 fvw;
        u16 *ref_count;
+       u32 *mask_ena;
        struct LIST_HEAD_TYPE prof_map;
        struct ice_fv_word *t;
        struct ice_lock prof_map_lock;  /* protect access to profiles list */
@@ -654,6 +655,21 @@ struct ice_prof_redir {
        u16 count;
 };
 
+struct ice_mask {
+       u16 mask;       /* 16-bit mask */
+       u16 idx;        /* index */
+       u16 ref;        /* reference count */
+       u8 in_use;      /* non-zero if used */
+};
+
+struct ice_masks {
+       struct ice_lock lock;  /* lock to protect this structure */
+       u16 first;      /* first mask owned by the PF */
+       u16 count;      /* number of masks owned by the PF */
+#define ICE_PROFILE_MASK_COUNT 32
+       struct ice_mask masks[ICE_PROFILE_MASK_COUNT];
+};
+
 /* Tables per block */
 struct ice_blk_info {
        struct ice_xlt1 xlt1;
@@ -661,6 +677,7 @@ struct ice_blk_info {
        struct ice_prof_tcam prof;
        struct ice_prof_redir prof_redir;
        struct ice_es es;
+       struct ice_masks masks;
        u8 overwrite; /* set to true to allow overwrite of table entries */
        u8 is_list_init;
 };
@@ -693,4 +710,12 @@ struct ice_chs_chg {
 
 #define ICE_FLOW_PTYPE_MAX             ICE_XLT1_CNT
 
+enum ice_prof_type {
+       ICE_PROF_NON_TUN = 0x1,
+       ICE_PROF_TUN_UDP = 0x2,
+       ICE_PROF_TUN_GRE = 0x4,
+       ICE_PROF_TUN_PPPOE = 0x8,
+       ICE_PROF_TUN_ALL = 0xE,
+       ICE_PROF_ALL = 0xFF,
+};
 #endif /* _ICE_FLEX_TYPE_H_ */