X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=drivers%2Fnet%2Fqede%2Fqede_eth_if.h;h=37b1b749f5c5972448c2fa85c49ff9a1a5e72813;hb=d411a2b5e4274492f15df1da96905172bcd84434;hp=77438c8897fc739a5cef80f87a5497566ed0dc13;hpb=2ea6f76aff402be2c7a19cd244e83b46641bced5;p=dpdk.git diff --git a/drivers/net/qede/qede_eth_if.h b/drivers/net/qede/qede_eth_if.h index 77438c8897..37b1b749f5 100644 --- a/drivers/net/qede/qede_eth_if.h +++ b/drivers/net/qede/qede_eth_if.h @@ -26,12 +26,6 @@ enum qed_filter_rx_mode_type { QED_FILTER_RX_MODE_TYPE_PROMISC, }; -enum qed_filter_xcast_params_type { - QED_FILTER_XCAST_TYPE_ADD, - QED_FILTER_XCAST_TYPE_DEL, - QED_FILTER_XCAST_TYPE_REPLACE, -}; - enum qed_filter_type { QED_FILTER_TYPE_UCAST, QED_FILTER_TYPE_MCAST, @@ -46,13 +40,11 @@ struct qed_dev_eth_info { uint8_t num_tc; struct ether_addr port_mac; - uint8_t num_vlan_filters; - uint32_t num_mac_addrs; -}; + uint16_t num_vlan_filters; + uint32_t num_mac_filters; -struct qed_update_vport_rss_params { - uint16_t rss_ind_table[128]; - uint32_t rss_key[10]; + /* Legacy VF - this affects the datapath */ + bool is_legacy; }; struct qed_stop_rxq_params { @@ -73,7 +65,7 @@ struct qed_update_vport_params { uint8_t update_accept_any_vlan_flg; uint8_t accept_any_vlan; uint8_t update_rss_flg; - struct qed_update_vport_rss_params rss_params; + uint16_t mtu; }; struct qed_start_vport_params { @@ -91,31 +83,6 @@ struct qed_stop_txq_params { uint8_t tx_queue_id; }; -struct qed_filter_ucast_params { - enum qed_filter_xcast_params_type type; - uint8_t vlan_valid; - uint16_t vlan; - uint8_t mac_valid; - unsigned char mac[ETHER_ADDR_LEN]; -}; - -struct qed_filter_mcast_params { - enum qed_filter_xcast_params_type type; - uint8_t num; - unsigned char mac[QEDE_MAX_MCAST_FILTERS][ETHER_ADDR_LEN]; -}; - -union qed_filter_type_params { - enum qed_filter_rx_mode_type accept_flags; - struct qed_filter_ucast_params ucast; - struct qed_filter_mcast_params mcast; -}; - -struct qed_filter_params { - enum qed_filter_type type; - union qed_filter_type_params filter; -}; - struct qed_eth_ops { const struct qed_common_ops *common; @@ -131,9 +98,9 @@ struct qed_eth_ops { struct qed_update_vport_params *params); int (*q_rx_start)(struct ecore_dev *cdev, - uint8_t rss_id, uint8_t rx_queue_id, - uint8_t vport_id, uint16_t sb, - uint8_t sb_index, uint16_t bd_max_bytes, + uint8_t rss_num, + struct ecore_queue_start_common_params *p_params, + uint16_t bd_max_bytes, dma_addr_t bd_chain_phys_addr, dma_addr_t cqe_pbl_addr, uint16_t cqe_pbl_size, void OSAL_IOMEM * *pp_prod); @@ -142,9 +109,8 @@ struct qed_eth_ops { struct qed_stop_rxq_params *params); int (*q_tx_start)(struct ecore_dev *edev, - uint8_t rss_id, uint16_t tx_queue_id, - uint8_t vport_id, uint16_t sb, - uint8_t sb_index, + uint8_t rss_num, + struct ecore_queue_start_common_params *p_params, dma_addr_t pbl_addr, uint16_t pbl_size, void OSAL_IOMEM * *pp_doorbell); @@ -157,20 +123,21 @@ struct qed_eth_ops { int (*fastpath_stop)(struct ecore_dev *edev); + void (*fastpath_start)(struct ecore_dev *edev); + void (*get_vport_stats)(struct ecore_dev *edev, struct ecore_eth_stats *stats); - - int (*filter_config)(struct ecore_dev *edev, - struct qed_filter_params *params); }; /* externs */ extern const struct qed_common_ops qed_common_ops_pass; -void qed_put_eth_ops(void); +const struct qed_eth_ops *qed_get_eth_ops(void); -int qed_configure_filter_rx_mode(struct ecore_dev *edev, +int qed_configure_filter_rx_mode(struct rte_eth_dev *eth_dev, enum qed_filter_rx_mode_type type); +bool qed_update_rss_parm_cmt(struct ecore_dev *edev, uint16_t *p_tbl); + #endif /* _QEDE_ETH_IF_H */