net/ice/base: init metainit table for parser
[dpdk.git] / drivers / net / ice / ice_ethdev.h
index 2b03c59..b4bf651 100644 (file)
@@ -7,7 +7,7 @@
 
 #include <rte_kvargs.h>
 
-#include <rte_ethdev_driver.h>
+#include <ethdev_driver.h>
 
 #include "base/ice_common.h"
 #include "base/ice_adminq_cmd.h"
@@ -50,7 +50,7 @@
 #define ICE_PKG_FILE_SEARCH_PATH_UPDATES "/lib/firmware/updates/intel/ice/ddp/"
 #define ICE_MAX_PKG_FILENAME_SIZE   256
 
-#define MAX_ACL_ENTRIES    512
+#define MAX_ACL_NORMAL_ENTRIES    256
 
 /**
  * vlan_id is a 12 bit number.
@@ -167,11 +167,19 @@ struct ice_mac_filter {
        struct ice_mac_filter_info mac_info;
 };
 
+struct ice_vlan {
+       uint16_t tpid;
+       uint16_t vid;
+};
+
+#define ICE_VLAN(tpid, vid) \
+       ((struct ice_vlan){ tpid, vid })
+
 /**
  * VLAN filter structure
  */
 struct ice_vlan_filter_info {
-       uint16_t vlan_id;
+       struct ice_vlan vlan;
 };
 
 TAILQ_HEAD(ice_vlan_filter_list, ice_vlan_filter);
@@ -293,8 +301,8 @@ struct ice_fdir_filter_conf {
        struct ice_fdir_counter *counter; /* flow specific counter context */
        struct rte_flow_action_count act_count;
 
-       uint64_t input_set;
-       uint64_t outer_input_set; /* only for tunnel packets outer fields */
+       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;
 };
 
@@ -400,7 +408,7 @@ struct ice_acl_conf {
 struct ice_acl_info {
        struct ice_acl_conf conf;
        struct rte_bitmap *slots;
-       uint64_t hw_entry_id[MAX_ACL_ENTRIES];
+       uint64_t hw_entry_id[MAX_ACL_NORMAL_ENTRIES];
 };
 
 struct ice_pf {
@@ -467,7 +475,6 @@ struct ice_devargs {
 struct ice_adapter {
        /* Common for both PF and VF */
        struct ice_hw hw;
-       struct rte_eth_dev *eth_dev;
        struct ice_pf pf;
        bool rx_bulk_alloc_allowed;
        bool rx_vec_allowed;
@@ -479,6 +486,12 @@ struct ice_adapter {
        struct ice_devargs devargs;
        enum ice_pkg_type active_pkg_type; /* loaded ddp package type */
        uint16_t fdir_ref_cnt;
+#ifdef RTE_ARCH_X86
+       bool rx_use_avx2;
+       bool rx_use_avx512;
+       bool tx_use_avx2;
+       bool tx_use_avx512;
+#endif
 };
 
 struct ice_vsi_vlan_pvid_info {
@@ -512,8 +525,6 @@ struct ice_vsi_vlan_pvid_info {
        (&(((struct ice_vsi *)vsi)->adapter->hw))
 #define ICE_VSI_TO_PF(vsi) \
        (&(((struct ice_vsi *)vsi)->adapter->pf))
-#define ICE_VSI_TO_ETH_DEV(vsi) \
-       (((struct ice_vsi *)vsi)->adapter->eth_dev)
 
 /* ICE_PF_TO */
 #define ICE_PF_TO_HW(pf) \
@@ -523,7 +534,8 @@ struct ice_vsi_vlan_pvid_info {
 #define ICE_PF_TO_ETH_DEV(pf) \
        (((struct ice_pf *)pf)->adapter->eth_dev)
 
-enum ice_pkg_type ice_load_pkg_type(struct ice_hw *hw);
+int
+ice_load_pkg(struct ice_adapter *adapter, bool use_dsn, uint64_t dsn);
 struct ice_vsi *
 ice_setup_vsi(struct ice_pf *pf, enum ice_vsi_type type);
 int