net/mlx5: workaround drop action with old kernel
[dpdk.git] / drivers / net / bnxt / bnxt.h
index 4286c99..494a1ef 100644 (file)
 #define        BNXT_DEFAULT_VNIC_CHANGE_VF_ID_SFT              \
        HWRM_ASYNC_EVENT_CMPL_DEFAULT_VNIC_CHANGE_EVENT_DATA1_VF_ID_SFT
 
+#define BNXT_EVENT_ERROR_REPORT_TYPE(data1)                            \
+       (((data1) &                                                     \
+         HWRM_ASYNC_EVENT_CMPL_ERROR_REPORT_BASE_EVENT_DATA1_ERROR_TYPE_MASK)  >>\
+        HWRM_ASYNC_EVENT_CMPL_ERROR_REPORT_BASE_EVENT_DATA1_ERROR_TYPE_SFT)
+
 #define BNXT_HWRM_CMD_TO_FORWARD(cmd)  \
                (bp->pf->vf_req_fwd[(cmd) / 32] |= (1 << ((cmd) % 32)))
 
@@ -292,6 +297,7 @@ struct bnxt_link_info {
        uint16_t                auto_pam4_link_speeds;
        uint16_t                support_pam4_auto_speeds;
        uint8_t                 req_signal_mode;
+       uint8_t                 module_status;
 };
 
 #define BNXT_COS_QUEUE_COUNT   8
@@ -711,8 +717,11 @@ struct bnxt {
        uint32_t                        flags2;
 #define BNXT_FLAGS2_PTP_TIMESYNC_ENABLED       BIT(0)
 #define BNXT_FLAGS2_PTP_ALARM_SCHEDULED                BIT(1)
+#define        BNXT_FLAGS2_ACCUM_STATS_EN              BIT(2)
 #define BNXT_P5_PTP_TIMESYNC_ENABLED(bp)       \
        ((bp)->flags2 & BNXT_FLAGS2_PTP_TIMESYNC_ENABLED)
+#define        BNXT_ACCUM_STATS_EN(bp)                 \
+       ((bp)->flags2 & BNXT_FLAGS2_ACCUM_STATS_EN)
 
        uint16_t                chip_num;
 #define CHIP_NUM_58818         0xd818
@@ -871,9 +880,11 @@ struct bnxt {
        uint16_t                port_svif;
 
        struct tf               tfp;
+       struct tf               tfp_shared;
        struct bnxt_ulp_context *ulp_ctx;
        struct bnxt_flow_stat_info *flow_stat;
        uint16_t                max_num_kflows;
+       uint8_t                 app_id;
        uint16_t                tx_cfa_action;
        struct bnxt_ring_stats  *prev_rx_ring_stats;
        struct bnxt_ring_stats  *prev_tx_ring_stats;
@@ -965,6 +976,20 @@ struct bnxt_vf_rep_tx_queue {
        struct bnxt_representor *bp;
 };
 
+#define I2C_DEV_ADDR_A0                        0xa0
+#define I2C_DEV_ADDR_A2                        0xa2
+#define SFF_DIAG_SUPPORT_OFFSET                0x5c
+#define SFF_MODULE_ID_SFP              0x3
+#define SFF_MODULE_ID_QSFP             0xc
+#define SFF_MODULE_ID_QSFP_PLUS                0xd
+#define SFF_MODULE_ID_QSFP28           0x11
+#define SFF8636_FLATMEM_OFFSET         0x2
+#define SFF8636_FLATMEM_MASK           0x4
+#define SFF8636_OPT_PAGES_OFFSET       0xc3
+#define SFF8636_PAGE1_MASK             0x40
+#define SFF8636_PAGE2_MASK             0x80
+#define BNXT_MAX_PHY_I2C_RESP_SIZE     64
+
 int bnxt_mtu_set_op(struct rte_eth_dev *eth_dev, uint16_t new_mtu);
 int bnxt_link_update(struct rte_eth_dev *eth_dev, int wait_to_complete,
                     bool exp_link_status);
@@ -1026,7 +1051,10 @@ int32_t
 bnxt_ulp_create_vfr_default_rules(struct rte_eth_dev *vfr_ethdev);
 int32_t
 bnxt_ulp_delete_vfr_default_rules(struct bnxt_representor *vfr);
+void bnxt_get_iface_mac(uint16_t port, enum bnxt_ulp_intf_type type,
+                       uint8_t *mac, uint8_t *parent_mac);
 uint16_t bnxt_get_vnic_id(uint16_t port, enum bnxt_ulp_intf_type type);
+uint16_t bnxt_get_parent_vnic_id(uint16_t port, enum bnxt_ulp_intf_type type);
 struct bnxt *bnxt_get_bp(uint16_t port);
 uint16_t bnxt_get_svif(uint16_t port_id, bool func_svif,
                       enum bnxt_ulp_intf_type type);