net/ice: enable QinQ filter for switch
[dpdk.git] / drivers / net / ice / ice_ethdev.h
index 05218af..2b03c59 100644 (file)
@@ -11,6 +11,7 @@
 
 #include "base/ice_common.h"
 #include "base/ice_adminq_cmd.h"
+#include "base/ice_flow.h"
 
 #define ICE_VLAN_TAG_SIZE        4
 
  */
 #define ICE_ETH_OVERHEAD \
        (RTE_ETHER_HDR_LEN + RTE_ETHER_CRC_LEN + ICE_VLAN_TAG_SIZE * 2)
+#define ICE_ETH_MAX_LEN (RTE_ETHER_MTU + ICE_ETH_OVERHEAD)
 
 #define ICE_RXTX_BYTES_HIGH(bytes) ((bytes) & ~ICE_40_BIT_MASK)
 #define ICE_RXTX_BYTES_LOW(bytes) ((bytes) & ICE_40_BIT_MASK)
@@ -378,19 +380,6 @@ struct ice_fdir_info {
 #define ICE_HASH_GTPU_CTX_DW_IP_TCP    8
 #define ICE_HASH_GTPU_CTX_MAX          9
 
-enum ice_rss_hash_func {
-       ICE_RSS_HASH_TOEPLITZ                   = 0,
-       ICE_RSS_HASH_TOEPLITZ_SYMMETRIC         = 1,
-       ICE_RSS_HASH_XOR                        = 2,
-       ICE_RSS_HASH_JHASH                      = 3,
-};
-
-struct ice_rss_hash_cfg {
-       u32 addl_hdrs;
-       u64 hash_flds;
-       enum ice_rss_hash_func hash_func;
-};
-
 struct ice_hash_gtpu_ctx {
        struct ice_rss_hash_cfg ctx[ICE_HASH_GTPU_CTX_MAX];
 };
@@ -457,6 +446,7 @@ struct ice_pf {
        uint64_t old_rx_bytes;
        uint64_t old_tx_bytes;
        uint64_t supported_rxdid; /* bitmap for supported RXDID */
+       uint64_t rss_hf;
 };
 
 #define ICE_MAX_QUEUE_NUM  2048
@@ -542,9 +532,9 @@ void ice_vsi_enable_queues_intr(struct ice_vsi *vsi);
 void ice_vsi_disable_queues_intr(struct ice_vsi *vsi);
 void ice_vsi_queues_bind_intr(struct ice_vsi *vsi);
 int ice_add_rss_cfg_wrap(struct ice_pf *pf, uint16_t vsi_id,
-               uint64_t hash_fld, uint32_t pkt_hdr, bool symm);
+                        struct ice_rss_hash_cfg *cfg);
 int ice_rem_rss_cfg_wrap(struct ice_pf *pf, uint16_t vsi_id,
-               uint64_t hash_fld, uint32_t pkt_hdr);
+                        struct ice_rss_hash_cfg *cfg);
 
 static inline int
 ice_align_floor(int n)