net/ice/base: update copyright
[dpdk.git] / drivers / net / ice / base / ice_flex_type.h
index 48c1e51..b58007f 100644 (file)
@@ -1,5 +1,5 @@
 /* SPDX-License-Identifier: BSD-3-Clause
- * Copyright(c) 2001-2019
+ * Copyright(c) 2001-2020 Intel Corporation
  */
 
 #ifndef _ICE_FLEX_TYPE_H_
@@ -25,7 +25,7 @@ struct ice_fv {
 
 /* Package and segment headers and tables */
 struct ice_pkg_hdr {
-       struct ice_pkg_ver format_ver;
+       struct ice_pkg_ver pkg_format_ver;
        __le32 seg_count;
        __le32 seg_offset[1];
 };
@@ -35,9 +35,9 @@ struct ice_generic_seg_hdr {
 #define SEGMENT_TYPE_METADATA  0x00000001
 #define SEGMENT_TYPE_ICE       0x00000010
        __le32 seg_type;
-       struct ice_pkg_ver seg_ver;
+       struct ice_pkg_ver seg_format_ver;
        __le32 seg_size;
-       char seg_name[ICE_PKG_NAME_SIZE];
+       char seg_id[ICE_PKG_NAME_SIZE];
 };
 
 /* ice specific segment */
@@ -80,7 +80,7 @@ struct ice_buf_table {
 struct ice_global_metadata_seg {
        struct ice_generic_seg_hdr hdr;
        struct ice_pkg_ver pkg_ver;
-       __le32 track_id;
+       __le32 rsvd;
        char pkg_name[ICE_PKG_NAME_SIZE];
 };
 
@@ -278,6 +278,69 @@ enum ice_sect {
 #define ICE_PTYPE_IPV6_TCP_PAY         92
 #define ICE_PTYPE_IPV6_SCTP_PAY                93
 #define ICE_PTYPE_IPV6_ICMP_PAY                94
+#define ICE_MAC_IPV4_GTPC_TEID         325
+#define ICE_MAC_IPV6_GTPC_TEID         326
+#define ICE_MAC_IPV4_GTPC              327
+#define ICE_MAC_IPV6_GTPC              328
+#define ICE_MAC_IPV4_GTPU              329
+#define ICE_MAC_IPV6_GTPU              330
+#define ICE_MAC_IPV4_GTPU_IPV4_FRAG    331
+#define ICE_MAC_IPV4_GTPU_IPV4_PAY     332
+#define ICE_MAC_IPV4_GTPU_IPV4_UDP_PAY 333
+#define ICE_MAC_IPV4_GTPU_IPV4_TCP     334
+#define ICE_MAC_IPV4_GTPU_IPV4_ICMP    335
+#define ICE_MAC_IPV6_GTPU_IPV4_FRAG    336
+#define ICE_MAC_IPV6_GTPU_IPV4_PAY     337
+#define ICE_MAC_IPV6_GTPU_IPV4_UDP_PAY 338
+#define ICE_MAC_IPV6_GTPU_IPV4_TCP     339
+#define ICE_MAC_IPV6_GTPU_IPV4_ICMP    340
+#define ICE_MAC_IPV4_GTPU_IPV6_FRAG    341
+#define ICE_MAC_IPV4_GTPU_IPV6_PAY     342
+#define ICE_MAC_IPV4_GTPU_IPV6_UDP_PAY 343
+#define ICE_MAC_IPV4_GTPU_IPV6_TCP     344
+#define ICE_MAC_IPV4_GTPU_IPV6_ICMPV6  345
+#define ICE_MAC_IPV6_GTPU_IPV6_FRAG    346
+#define ICE_MAC_IPV6_GTPU_IPV6_PAY     347
+#define ICE_MAC_IPV6_GTPU_IPV6_UDP_PAY 348
+#define ICE_MAC_IPV6_GTPU_IPV6_TCP     349
+#define ICE_MAC_IPV6_GTPU_IPV6_ICMPV6  350
+
+/* Attributes that can modify PTYPE definitions.
+ *
+ * These values will represent special attributes for PTYPES, which will
+ * resolve into metadata packet flags definitions that can be used in the TCAM
+ * for identifying a PTYPE with specific characteristics.
+ */
+enum ice_ptype_attrib_type {
+       /* GTP PTYPES */
+       ICE_PTYPE_ATTR_GTP_PDU_EH,
+       ICE_PTYPE_ATTR_GTP_SESSION,
+       ICE_PTYPE_ATTR_GTP_DOWNLINK,
+       ICE_PTYPE_ATTR_GTP_UPLINK,
+};
+
+struct ice_ptype_attrib_info {
+       u16 flags;
+       u16 mask;
+};
+
+/* TCAM flag definitions */
+#define ICE_GTP_PDU                    BIT(14)
+#define ICE_GTP_PDU_LINK               BIT(13)
+
+/* GTP attributes */
+#define ICE_GTP_PDU_FLAG_MASK          (ICE_GTP_PDU)
+#define ICE_GTP_PDU_EH                 ICE_GTP_PDU
+
+#define ICE_GTP_FLAGS_MASK             (ICE_GTP_PDU | ICE_GTP_PDU_LINK)
+#define ICE_GTP_SESSION                        0
+#define ICE_GTP_DOWNLINK               ICE_GTP_PDU
+#define ICE_GTP_UPLINK                 (ICE_GTP_PDU | ICE_GTP_PDU_LINK)
+
+struct ice_ptype_attributes {
+       u16 ptype;
+       enum ice_ptype_attrib_type attrib;
+};
 
 /* Packet Type Groups (PTG) - Inner Most fields (IM) */
 #define ICE_PTG_IM_IPV4_TCP            16
@@ -468,6 +531,7 @@ struct ice_tunnel_entry {
        enum ice_tunnel_type type;
        u16 boost_addr;
        u16 port;
+       u16 ref;
        struct ice_boost_tcam_entry *boost_entry;
        u8 valid;
        u8 in_use;
@@ -530,12 +594,14 @@ struct ice_prof_map {
        u8 prof_id;
        u8 ptg_cnt;
        u8 ptg[ICE_MAX_PTG_PER_PROFILE];
+       struct ice_ptype_attrib_info attr[ICE_MAX_PTG_PER_PROFILE];
 };
 
 #define ICE_INVALID_TCAM       0xFFFF
 
 struct ice_tcam_inf {
        u16 tcam_idx;
+       struct ice_ptype_attrib_info attr;
        u8 ptg;
        u8 prof_id;
        u8 in_use;
@@ -577,8 +643,8 @@ struct ice_xlt1 {
 #define ICE_XLT2_CNT   768
 #define ICE_MAX_VSIGS  768
 
-/* Vsig bit layout:
- * [0:12]: incremental vsig index 1 to ICE_MAX_VSIGS
+/* VSIG bit layout:
+ * [0:12]: incremental VSIG index 1 to ICE_MAX_VSIGS
  * [13:15]: PF number of device
  */
 #define ICE_VSIG_IDX_M (0x1FFF)
@@ -648,7 +714,7 @@ struct ice_prof_tcam {
        u16 count;
        u16 max_prof_id;
        struct ice_prof_tcam_entry *t;
-       u8 cdid_bits; /* # cdid bits to use in key, 0, 2, 4, or 8 */
+       u8 cdid_bits; /* # CDID bits to use in key, 0, 2, 4, or 8 */
 };
 
 struct ice_prof_redir {
@@ -668,8 +734,8 @@ 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];
+#define ICE_PROF_MASK_COUNT 32
+       struct ice_mask masks[ICE_PROF_MASK_COUNT];
 };
 
 /* Tables per block */
@@ -708,6 +774,7 @@ struct ice_chs_chg {
        u16 vsig;
        u16 orig_vsig;
        u16 tcam_idx;
+       struct ice_ptype_attrib_info attr;
 };
 
 #define ICE_FLOW_PTYPE_MAX             ICE_XLT1_CNT