net/ice/base: add package ptype enable information
[dpdk.git] / drivers / net / ice / base / ice_flex_type.h
index 1dd57ba..9b9503b 100644 (file)
@@ -472,6 +472,25 @@ struct ice_boost_tcam_section {
        sizeof(struct ice_boost_tcam_entry), \
        sizeof(struct ice_boost_tcam_entry))
 
+/* package Marker PType TCAM entry */
+struct ice_marker_ptype_tcam_entry {
+#define ICE_MARKER_PTYPE_TCAM_ADDR_MAX 1024
+       __le16 addr;
+       __le16 ptype;
+       u8 keys[20];
+};
+
+struct ice_marker_ptype_tcam_section {
+       __le16 count;
+       __le16 reserved;
+       struct ice_marker_ptype_tcam_entry tcam[STRUCT_HACK_VAR_LEN];
+};
+
+#define ICE_MAX_MARKER_PTYPE_TCAMS_IN_BUF ICE_MAX_ENTRIES_IN_BUF( \
+       ice_struct_size((struct ice_marker_ptype_tcam_section *)0, tcam, 1) - \
+       sizeof(struct ice_marker_ptype_tcam_entry), \
+       sizeof(struct ice_marker_ptype_tcam_entry))
+
 struct ice_xlt1_section {
        __le16 count;
        __le16 offset;
@@ -516,6 +535,8 @@ struct ice_pkg_enum {
 enum ice_tunnel_type {
        TNL_VXLAN = 0,
        TNL_GENEVE,
+       TNL_ECPRI,
+       TNL_GTP,
        TNL_LAST = 0xFF,
        TNL_ALL = 0xFF,
 };
@@ -786,4 +807,30 @@ enum ice_prof_type {
        ICE_PROF_TUN_ALL = 0xE,
        ICE_PROF_ALL = 0xFF,
 };
+
+/* Number of bits/bytes contained in meta init entry. Note, this should be a
+ * multiple of 32 bits.
+ */
+#define ICE_META_INIT_BITS     192
+#define ICE_META_INIT_DW_CNT   (ICE_META_INIT_BITS / (sizeof(__le32) * \
+                                BITS_PER_BYTE))
+
+/* The meta init Flag field starts at this bit */
+#define ICE_META_FLAGS_ST              123
+
+/* The entry and bit to check for Double VLAN Mode (DVM) support */
+#define ICE_META_VLAN_MODE_ENTRY       0
+#define ICE_META_FLAG_VLAN_MODE                60
+#define ICE_META_VLAN_MODE_BIT         (ICE_META_FLAGS_ST + \
+                                        ICE_META_FLAG_VLAN_MODE)
+
+struct ice_meta_init_entry {
+       __le32 bm[ICE_META_INIT_DW_CNT];
+};
+
+struct ice_meta_init_section {
+       __le16 count;
+       __le16 offset;
+       struct ice_meta_init_entry entry[1];
+};
 #endif /* _ICE_FLEX_TYPE_H_ */