net/mlx5: make VLAN network interface thread safe
[dpdk.git] / drivers / net / bnxt / bnxt.h
index ae38428..90ced97 100644 (file)
 #define        BNXT_DEFAULT_VNIC_CHANGE_VF_ID_SFT              \
        HWRM_ASYNC_EVENT_CMPL_DEFAULT_VNIC_CHANGE_EVENT_DATA1_VF_ID_SFT
 
+#define BNXT_HWRM_CMD_TO_FORWARD(cmd)  \
+               (bp->pf->vf_req_fwd[(cmd) / 32] |= (1 << ((cmd) % 32)))
+
 struct bnxt_led_info {
        uint8_t      num_leds;
        uint8_t      led_id;
@@ -268,8 +271,8 @@ struct bnxt_pf_info {
 };
 
 /* Max wait time for link up is 10s and link down is 500ms */
-#define BNXT_LINK_UP_WAIT_CNT  200
-#define BNXT_LINK_DOWN_WAIT_CNT        10
+#define BNXT_MAX_LINK_WAIT_CNT 200
+#define BNXT_MIN_LINK_WAIT_CNT 10
 #define BNXT_LINK_WAIT_INTERVAL        50
 struct bnxt_link_info {
        uint32_t                phy_flags;
@@ -664,9 +667,10 @@ struct bnxt {
 #define BNXT_FW_CAP_IF_CHANGE          BIT(1)
 #define BNXT_FW_CAP_ERROR_RECOVERY     BIT(2)
 #define BNXT_FW_CAP_ERR_RECOVER_RELOAD BIT(3)
+#define BNXT_FW_CAP_HCOMM_FW_STATUS    BIT(4)
 #define BNXT_FW_CAP_ADV_FLOW_MGMT      BIT(5)
 #define BNXT_FW_CAP_ADV_FLOW_COUNTERS  BIT(6)
-#define BNXT_FW_CAP_HCOMM_FW_STATUS    BIT(7)
+#define BNXT_FW_CAP_LINK_ADMIN         BIT(7)
 
        pthread_mutex_t         flow_lock;
 
@@ -832,12 +836,14 @@ struct bnxt_representor {
 #define BNXT_REP_Q_F2R_VALID           BIT(2)
 #define BNXT_REP_FC_R2F_VALID          BIT(3)
 #define BNXT_REP_FC_F2R_VALID          BIT(4)
+#define BNXT_REP_BASED_PF_VALID                BIT(5)
        uint32_t                flags;
        uint16_t                fw_fid;
 #define        BNXT_DFLT_VNIC_ID_INVALID       0xFFFF
        uint16_t                dflt_vnic_id;
        uint16_t                svif;
        uint16_t                vfr_tx_cfa_action;
+       uint8_t                 parent_pf_idx; /* Logical PF index */
        uint32_t                dpdk_port_id;
        uint32_t                rep_based_pf;
        uint8_t                 rep_q_r2f;
@@ -859,7 +865,9 @@ struct bnxt_representor {
        uint64_t                rx_drop_bytes[BNXT_MAX_VF_REP_RINGS];
 };
 
-#define BNXT_REP_PF(vfr_bp)    ((vfr_bp)->flags & BNXT_REP_IS_PF)
+#define BNXT_REP_PF(vfr_bp)            ((vfr_bp)->flags & BNXT_REP_IS_PF)
+#define BNXT_REP_BASED_PF(vfr_bp)      \
+               ((vfr_bp)->flags & BNXT_REP_BASED_PF_VALID)
 
 struct bnxt_vf_rep_tx_queue {
        struct bnxt_tx_queue *txq;
@@ -882,6 +890,10 @@ void bnxt_print_link_info(struct rte_eth_dev *eth_dev);
 uint16_t bnxt_rss_hash_tbl_size(const struct bnxt *bp);
 int bnxt_link_update_op(struct rte_eth_dev *eth_dev,
                        int wait_to_complete);
+uint16_t bnxt_dummy_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts,
+                             uint16_t nb_pkts);
+uint16_t bnxt_dummy_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts,
+                             uint16_t nb_pkts);
 
 extern const struct rte_flow_ops bnxt_flow_ops;