bonding: use existing enslaved device queues
[dpdk.git] / drivers / net / i40e / i40e_ethdev.h
index a9b805e..ce945fe 100644 (file)
@@ -53,6 +53,9 @@
 #define I40E_DEFAULT_QP_NUM_FDIR  1
 #define I40E_UINT32_BIT_SIZE      (CHAR_BIT * sizeof(uint32_t))
 #define I40E_VFTA_SIZE            (4096 / I40E_UINT32_BIT_SIZE)
+/* Maximun number of MAC addresses */
+#define I40E_NUM_MACADDR_MAX       64
+
 /*
  * vlan_id is a 12 bit number.
  * The VFTA array is actually a 4096 bit array, 128 of 32bit elements.
@@ -364,6 +367,8 @@ struct i40e_fdir_info {
        struct i40e_rx_queue *rxq;
        void *prg_pkt;                 /* memory for fdir program packet */
        uint64_t dma_addr;             /* physic address of packet memory*/
+       /* input set bits for each pctype */
+       uint64_t input_set[I40E_FILTER_PCTYPE_MAX];
        /*
         * the rule how bytes stream is extracted as flexible payload
         * for each payload layer, the setting can up to three elements
@@ -411,7 +416,7 @@ struct i40e_pf {
 
        struct rte_eth_dev_data *dev_data; /* Pointer to the device data */
        struct ether_addr dev_addr; /* PF device mac address */
-       uint64_t flags; /* PF featuer flags */
+       uint64_t flags; /* PF feature flags */
        /* All kinds of queue pair setting for different VSIs */
        struct i40e_pf_vf *vfs;
        uint16_t vf_num;
@@ -430,6 +435,8 @@ struct i40e_pf {
        uint16_t fdir_qp_offset;
 
        uint16_t hash_lut_size; /* The size of hash lookup table */
+       /* input set bits for each pctype */
+       uint64_t hash_input_set[I40E_FILTER_PCTYPE_MAX];
        /* store VXLAN UDP ports */
        uint16_t vxlan_ports[I40E_MAX_PF_UDP_OFFLOAD_PORTS];
        uint16_t vxlan_bitmap; /* Vxlan bit mask */
@@ -497,7 +504,9 @@ struct i40e_vf {
        bool link_up;
        bool vf_reset;
        volatile uint32_t pend_cmd; /* pending command not finished yet */
+       uint32_t cmd_retval; /* return value of the cmd response from PF */
        u16 pend_msg; /* flags indicates events from pf not handled yet */
+       uint8_t *aq_resp; /* buffer to store the adminq response from PF */
 
        /* VSI info */
        struct i40e_virtchnl_vf_resource *vf_res; /* All VSIs */
@@ -573,9 +582,10 @@ int i40e_fdir_ctrl_func(struct rte_eth_dev *dev,
 int i40e_select_filter_input_set(struct i40e_hw *hw,
                                 struct rte_eth_input_set_conf *conf,
                                 enum rte_filter_type filter);
-int i40e_filter_inset_select(struct i40e_hw *hw,
-                            struct rte_eth_input_set_conf *conf,
-                            enum rte_filter_type filter);
+int i40e_hash_filter_inset_select(struct i40e_hw *hw,
+                            struct rte_eth_input_set_conf *conf);
+int i40e_fdir_filter_inset_select(struct i40e_pf *pf,
+                            struct rte_eth_input_set_conf *conf);
 
 void i40e_rxq_info_get(struct rte_eth_dev *dev, uint16_t queue_id,
        struct rte_eth_rxq_info *qinfo);