X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=drivers%2Fnet%2Fiavf%2Fiavf.h;h=940d4f79ec5338baf541b44483b4047ab9328cd6;hb=7483341ae5533c5d5fa080a5d229e6f2daf03ea5;hp=feb8337b552f34a06c6a8051de0c210571a9f419;hpb=44d0a720a53863a1c9323fcded3223e4ee11ee6a;p=dpdk.git diff --git a/drivers/net/iavf/iavf.h b/drivers/net/iavf/iavf.h index feb8337b55..940d4f79ec 100644 --- a/drivers/net/iavf/iavf.h +++ b/drivers/net/iavf/iavf.h @@ -5,6 +5,8 @@ #ifndef _IAVF_ETHDEV_H_ #define _IAVF_ETHDEV_H_ +#include + #include #include @@ -69,6 +71,8 @@ #define IAVF_QUEUE_ITR_INTERVAL_DEFAULT 32 /* 32 us */ #define IAVF_QUEUE_ITR_INTERVAL_MAX 8160 /* 8160 us */ +#define IAVF_ALARM_INTERVAL 50000 /* us */ + /* The overhead from MTU to max frame size. * Considering QinQ packet, the VLAN tag needs to be counted twice. */ @@ -86,6 +90,8 @@ #define IAVF_BITS_PER_BYTE 8 +#define IAVF_VLAN_TAG_PCP_OFFSET 13 + struct iavf_adapter; struct iavf_rx_queue; struct iavf_tx_queue; @@ -165,6 +171,13 @@ struct iavf_tm_conf { bool committed; }; +/* Struct to store queue TC mapping. Queue is continuous in one TC */ +struct iavf_qtc_map { + uint8_t tc; + uint16_t start_queue_id; + uint16_t queue_count; +}; + /* Structure to store private data specific for VF instance. */ struct iavf_info { uint16_t num_queue_pairs; @@ -213,6 +226,7 @@ struct iavf_info { bool lv_enabled; struct virtchnl_qos_cap_list *qos_cap; + struct iavf_qtc_map *qtc_map; struct iavf_tm_conf tm_conf; }; @@ -325,7 +339,8 @@ _clear_cmd(struct iavf_info *vf) static inline int _atomic_set_cmd(struct iavf_info *vf, enum virtchnl_ops ops) { - int ret = rte_atomic32_cmpset(&vf->pend_cmd, VIRTCHNL_OP_UNKNOWN, ops); + int ret = rte_atomic32_cmpset((volatile uint32_t *)&vf->pend_cmd, + VIRTCHNL_OP_UNKNOWN, ops); if (!ret) PMD_DRV_LOG(ERR, "There is incomplete cmd %d", vf->pend_cmd); @@ -362,6 +377,7 @@ int iavf_config_irq_map_lv(struct iavf_adapter *adapter, uint16_t num, void iavf_add_del_all_mac_addr(struct iavf_adapter *adapter, bool add); int iavf_dev_link_update(struct rte_eth_dev *dev, __rte_unused int wait_to_complete); +void iavf_dev_alarm_handler(void *param); int iavf_query_stats(struct iavf_adapter *adapter, struct virtchnl_eth_stats **pstats); int iavf_config_promisc(struct iavf_adapter *adapter, bool enable_unicast,