net/ice: fix secondary process Rx offload path
[dpdk.git] / drivers / net / ice / ice_ethdev.h
index 5845f44..f8d0f0c 100644 (file)
@@ -19,6 +19,7 @@
 #define ICE_ADMINQ_LEN               32
 #define ICE_SBIOQ_LEN                32
 #define ICE_MAILBOXQ_LEN             32
+#define ICE_SBQ_LEN                  64
 #define ICE_ADMINQ_BUF_SZ            4096
 #define ICE_SBIOQ_BUF_SZ             4096
 #define ICE_MAILBOXQ_BUF_SZ          4096
                       ICE_FLAG_VF_MAC_BY_PF)
 
 #define ICE_RSS_OFFLOAD_ALL ( \
-       ETH_RSS_IPV4 | \
-       ETH_RSS_FRAG_IPV4 | \
-       ETH_RSS_NONFRAG_IPV4_TCP | \
-       ETH_RSS_NONFRAG_IPV4_UDP | \
-       ETH_RSS_NONFRAG_IPV4_SCTP | \
-       ETH_RSS_NONFRAG_IPV4_OTHER | \
-       ETH_RSS_IPV6 | \
-       ETH_RSS_FRAG_IPV6 | \
-       ETH_RSS_NONFRAG_IPV6_TCP | \
-       ETH_RSS_NONFRAG_IPV6_UDP | \
-       ETH_RSS_NONFRAG_IPV6_SCTP | \
-       ETH_RSS_NONFRAG_IPV6_OTHER | \
-       ETH_RSS_L2_PAYLOAD)
+       RTE_ETH_RSS_IPV4 | \
+       RTE_ETH_RSS_FRAG_IPV4 | \
+       RTE_ETH_RSS_NONFRAG_IPV4_TCP | \
+       RTE_ETH_RSS_NONFRAG_IPV4_UDP | \
+       RTE_ETH_RSS_NONFRAG_IPV4_SCTP | \
+       RTE_ETH_RSS_NONFRAG_IPV4_OTHER | \
+       RTE_ETH_RSS_IPV6 | \
+       RTE_ETH_RSS_FRAG_IPV6 | \
+       RTE_ETH_RSS_NONFRAG_IPV6_TCP | \
+       RTE_ETH_RSS_NONFRAG_IPV6_UDP | \
+       RTE_ETH_RSS_NONFRAG_IPV6_SCTP | \
+       RTE_ETH_RSS_NONFRAG_IPV6_OTHER | \
+       RTE_ETH_RSS_L2_PAYLOAD)
 
 /**
  * The overhead from MTU to max frame size.
@@ -317,6 +318,11 @@ struct ice_fdir_filter_conf {
        uint64_t input_set_o; /* used for non-tunnel or tunnel outer fields */
        uint64_t input_set_i; /* only for tunnel inner fields */
        uint32_t mark_flag;
+
+       struct ice_parser_profile *prof;
+       bool parser_ena;
+       u8 *pkt_buf;
+       u8 pkt_len;
 };
 
 #define ICE_MAX_FDIR_FILTER_NUM                (1024 * 16)
@@ -486,6 +492,22 @@ struct ice_devargs {
        uint8_t pps_out_ena;
 };
 
+/**
+ * Structure to store fdir fv entry.
+ */
+struct ice_fdir_prof_info {
+       struct ice_parser_profile prof;
+       u64 fdir_actived_cnt;
+};
+
+/**
+ * Structure to store rss fv entry.
+ */
+struct ice_rss_prof_info {
+       struct ice_parser_profile prof;
+       bool symm;
+};
+
 /**
  * Structure to store private data for each PF/VF instance.
  */
@@ -508,11 +530,15 @@ struct ice_adapter {
        struct rte_timecounter rx_tstamp_tc;
        struct rte_timecounter tx_tstamp_tc;
        bool ptp_ena;
+       uint64_t time_hw;
+       struct ice_fdir_prof_info fdir_prof_info[ICE_MAX_PTGS];
+       struct ice_rss_prof_info rss_prof_info[ICE_MAX_PTGS];
 #ifdef RTE_ARCH_X86
        bool rx_use_avx2;
        bool rx_use_avx512;
        bool tx_use_avx2;
        bool tx_use_avx512;
+       bool rx_vec_offload_support;
 #endif
 };