#define BNXT_MAX_MTU 9574
#define VLAN_TAG_SIZE 4
+#define BNXT_NUM_VLANS 2
+#define BNXT_MAX_PKT_LEN (BNXT_MAX_MTU + RTE_ETHER_HDR_LEN +\
+ RTE_ETHER_CRC_LEN +\
+ (BNXT_NUM_VLANS * VLAN_TAG_SIZE))
#define BNXT_VF_RSV_NUM_RSS_CTX 1
#define BNXT_VF_RSV_NUM_L2_CTX 4
/* TODO: For now, do not support VMDq/RFS on VFs. */
#define BNXT_VF_RSV_NUM_VNIC 1
#define BNXT_MAX_LED 4
-#define BNXT_NUM_VLANS 2
#define BNXT_MIN_RING_DESC 16
#define BNXT_MAX_TX_RING_DESC 4096
#define BNXT_MAX_RX_RING_DESC 8192
struct bnxt_vnic_info *vnic;
};
+#define BNXT_PTP_FLAGS_PATH_TX 0x0
+#define BNXT_PTP_FLAGS_PATH_RX 0x1
+#define BNXT_PTP_FLAGS_CURRENT_TIME 0x2
+
struct bnxt_ptp_cfg {
#define BNXT_GRCPF_REG_WINDOW_BASE_OUT 0x400
#define BNXT_GRCPF_REG_SYNC_TIME 0x480
uint32_t rx_mapped_regs[BNXT_PTP_RX_REGS];
uint32_t tx_regs[BNXT_PTP_TX_REGS];
uint32_t tx_mapped_regs[BNXT_PTP_TX_REGS];
+
+ /* On Thor, the Rx timestamp is present in the Rx completion record */
+ uint64_t rx_timestamp;
};
struct bnxt_coal {
#define BNXT_FLAG_EXT_STATS_SUPPORTED BIT(22)
#define BNXT_FLAG_NEW_RM BIT(23)
#define BNXT_FLAG_INIT_DONE BIT(24)
+#define BNXT_FLAG_FW_CAP_ONE_STEP_TX_TS BIT(25)
+#define BNXT_FLAG_ADV_FLOW_MGMT BIT(26)
#define BNXT_PF(bp) (!((bp)->flags & BNXT_FLAG_VF))
#define BNXT_VF(bp) ((bp)->flags & BNXT_FLAG_VF)
#define BNXT_NPAR(bp) ((bp)->port_partition_type)
#define BNXT_HAS_NQ(bp) BNXT_CHIP_THOR(bp)
#define BNXT_HAS_RING_GRPS(bp) (!BNXT_CHIP_THOR(bp))
+ uint32_t flow_flags;
+#define BNXT_FLOW_FLAG_L2_HDR_SRC_FILTER_EN BIT(0)
+
unsigned int rx_nr_rings;
unsigned int rx_cp_nr_rings;
+ unsigned int rx_num_qs_per_vnic;
struct bnxt_rx_queue **rx_queues;
const void *rx_mem_zone;
struct rx_port_stats *hw_rx_port_stats;
struct bnxt_irq *irq_tbl;
-#define MAX_NUM_MAC_ADDR 32
uint8_t mac_addr[RTE_ETHER_ADDR_LEN];
uint16_t hwrm_cmd_seq;
uint16_t max_stat_ctx;
uint16_t first_vf_id;
uint16_t vlan;
+#define BNXT_OUTER_TPID_MASK 0x0000ffff
+#define BNXT_OUTER_TPID_BD_MASK 0xffff0000
+#define BNXT_OUTER_TPID_BD_SHFT 16
+ uint32_t outer_tpid_bd;
struct bnxt_pf_info pf;
uint8_t port_partition_type;
uint8_t dev_stopped;
int bnxt_link_update_op(struct rte_eth_dev *eth_dev, int wait_to_complete);
int bnxt_rcv_msg_from_vf(struct bnxt *bp, uint16_t vf_id, void *msg);
int is_bnxt_in_error(struct bnxt *bp);
+uint16_t bnxt_rss_ctxts(const struct bnxt *bp);
int bnxt_map_fw_health_status_regs(struct bnxt *bp);
uint32_t bnxt_read_fw_status_reg(struct bnxt *bp, uint32_t index);