net/ice/base: fix adding PPPoE switch rule
[dpdk.git] / drivers / net / ice / ice_ethdev.h
index 8a52239..182c6f6 100644 (file)
 #define ICE_ETH_OVERHEAD \
        (RTE_ETHER_HDR_LEN + RTE_ETHER_CRC_LEN + ICE_VLAN_TAG_SIZE * 2)
 
+/* DDP package type */
+enum ice_pkg_type {
+       ICE_PKG_TYPE_UNKNOWN,
+       ICE_PKG_TYPE_OS_DEFAULT,
+       ICE_PKG_TYPE_COMMS,
+};
+
 struct ice_adapter;
 
 /**
@@ -263,6 +270,7 @@ struct ice_pf {
        uint16_t lan_nb_qp_max;
        uint16_t lan_nb_qps; /* The number of queue pairs of LAN */
        uint16_t base_queue; /* The base queue pairs index  in the device */
+       uint8_t *proto_xtr; /* Protocol extraction type for all queues */
        struct ice_hw_port_stats stats_offset;
        struct ice_hw_port_stats stats;
        /* internal packet statistics, it should be excluded from the total */
@@ -273,6 +281,16 @@ struct ice_pf {
        struct ice_flow_list flow_list;
 };
 
+#define ICE_MAX_QUEUE_NUM  2048
+
+/**
+ * Cache devargs parse result.
+ */
+struct ice_devargs {
+       int safe_mode_support;
+       uint8_t proto_xtr[ICE_MAX_QUEUE_NUM];
+};
+
 /**
  * Structure to store private data for each PF/VF instance.
  */
@@ -282,10 +300,14 @@ struct ice_adapter {
        struct rte_eth_dev *eth_dev;
        struct ice_pf pf;
        bool rx_bulk_alloc_allowed;
+       bool rx_vec_allowed;
+       bool tx_vec_allowed;
        bool tx_simple_allowed;
        /* ptype mapping table */
        uint32_t ptype_tbl[ICE_MAX_PKT_TYPE] __rte_cache_min_aligned;
        bool is_safe_mode;
+       struct ice_devargs devargs;
+       enum ice_pkg_type active_pkg_type; /* loaded ddp package type */
 };
 
 struct ice_vsi_vlan_pvid_info {