diff options
Diffstat (limited to 'drivers/net/qede/qede_if.h')
-rw-r--r-- | drivers/net/qede/qede_if.h | 81 |
1 files changed, 23 insertions, 58 deletions
diff --git a/drivers/net/qede/qede_if.h b/drivers/net/qede/qede_if.h index 405c525e..9864bb44 100644 --- a/drivers/net/qede/qede_if.h +++ b/drivers/net/qede/qede_if.h @@ -50,14 +50,26 @@ struct qed_dev_info { bool geneve_enable; }; -enum qed_sb_type { - QED_SB_TYPE_L2_QUEUE, - QED_SB_TYPE_STORAGE, - QED_SB_TYPE_CNQ, +struct qed_dev_eth_info { + struct qed_dev_info common; + + uint8_t num_queues; + uint8_t num_tc; + + struct ether_addr port_mac; + uint16_t num_vlan_filters; + uint32_t num_mac_filters; + + /* Legacy VF - this affects the datapath */ + bool is_legacy; }; -enum qed_protocol { - QED_PROTOCOL_ETH, +#define INIT_STRUCT_FIELD(field, value) .field = value + +struct qed_eth_ops { + const struct qed_common_ops *common; + int (*fill_dev_info)(struct ecore_dev *edev, + struct qed_dev_eth_info *info); }; struct qed_link_params { @@ -99,64 +111,13 @@ struct qed_slowpath_params { uint8_t name[NAME_SIZE]; }; -#define ILT_PAGE_SIZE_TCFC 0x8000 /* 32KB */ - -struct qed_eth_tlvs { - u16 feat_flags; - u8 mac[3][ETH_ALEN]; - u16 lso_maxoff; - u16 lso_minseg; - bool prom_mode; - u16 num_txqs; - u16 num_rxqs; - u16 num_netqs; - u16 flex_vlan; - u32 tcp4_offloads; - u32 tcp6_offloads; - u16 tx_avg_qdepth; - u16 rx_avg_qdepth; - u8 txqs_empty; - u8 rxqs_empty; - u8 num_txqs_full; - u8 num_rxqs_full; -}; - -struct qed_tunn_update_params { - unsigned long tunn_mode_update_mask; - unsigned long tunn_mode; - u16 vxlan_udp_port; - u16 geneve_udp_port; - u8 update_rx_pf_clss; - u8 update_tx_pf_clss; - u8 update_vxlan_udp_port; - u8 update_geneve_udp_port; - u8 tunn_clss_vxlan; - u8 tunn_clss_l2geneve; - u8 tunn_clss_ipgeneve; - u8 tunn_clss_l2gre; - u8 tunn_clss_ipgre; -}; - struct qed_common_cb_ops { void (*link_update)(void *dev, struct qed_link_output *link); - void (*get_tlv_data)(void *dev, struct qed_eth_tlvs *data); -}; - -struct qed_selftest_ops { -/** - * @brief registers - Perform register tests - * - * @param edev - * - * @return 0 on success, error otherwise. - */ - int (*registers)(struct ecore_dev *edev); }; struct qed_common_ops { int (*probe)(struct ecore_dev *edev, struct rte_pci_device *pci_dev, - enum qed_protocol protocol, uint32_t dp_module, uint8_t dp_level, bool is_vf); void (*set_name)(struct ecore_dev *edev, char name[]); enum _ecore_status_t @@ -196,7 +157,7 @@ struct qed_common_ops { struct ecore_sb_info *sb_info, void *sb_virt_addr, dma_addr_t sb_phy_addr, - uint16_t sb_id, enum qed_sb_type type); + uint16_t sb_id); int (*get_sb_info)(struct ecore_dev *edev, struct ecore_sb_info *sb, u16 qid, @@ -210,4 +171,8 @@ struct qed_common_ops { int (*send_drv_state)(struct ecore_dev *edev, bool active); }; +/* Externs */ + +const struct qed_eth_ops *qed_get_eth_ops(void); + #endif /* _QEDE_IF_H */ |