net/bnxt: support creating SMAC and inner DMAC filters
[dpdk.git] / drivers / net / bnxt / bnxt.h
index 818a49f..8602ab3 100644 (file)
 
 #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
@@ -436,6 +439,7 @@ struct bnxt {
 #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)
@@ -449,8 +453,12 @@ struct bnxt {
 #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;
@@ -485,7 +493,6 @@ struct bnxt {
 
        struct bnxt_irq         *irq_tbl;
 
-#define MAX_NUM_MAC_ADDR       32
        uint8_t                 mac_addr[RTE_ETHER_ADDR_LEN];
 
        uint16_t                        hwrm_cmd_seq;
@@ -519,6 +526,10 @@ struct bnxt {
        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;
@@ -547,6 +558,7 @@ struct bnxt {
 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);