common/mlx5: add Direct Verbs constants for Windows
[dpdk.git] / drivers / net / hns3 / hns3_ethdev.h
index b3ab172..f3cc88f 100644 (file)
@@ -428,6 +428,17 @@ struct hns3_reset_data {
        struct hns3_wait_data *wait_data;
 };
 
+struct hns3_hw_ops {
+       int (*add_mc_mac_addr)(struct hns3_hw *hw,
+                               struct rte_ether_addr *mac_addr);
+       int (*del_mc_mac_addr)(struct hns3_hw *hw,
+                               struct rte_ether_addr *mac_addr);
+       int (*add_uc_mac_addr)(struct hns3_hw *hw,
+                               struct rte_ether_addr *mac_addr);
+       int (*del_uc_mac_addr)(struct hns3_hw *hw,
+                               struct rte_ether_addr *mac_addr);
+};
+
 #define HNS3_INTR_MAPPING_VEC_RSV_ONE          0
 #define HNS3_INTR_MAPPING_VEC_ALL              1
 
@@ -638,6 +649,8 @@ struct hns3_hw {
        struct hns3_rss_filter_list flow_rss_list; /* flow RSS rule list */
        struct hns3_flow_mem_list flow_list;
 
+       struct hns3_hw_ops ops;
+
        /*
         * PMD setup and configuration is not thread safe. Since it is not
         * performance sensitive, it is better to guarantee thread-safety
@@ -1048,10 +1061,14 @@ void hns3vf_update_link_status(struct hns3_hw *hw, uint8_t link_status,
                          uint32_t link_speed, uint8_t link_duplex);
 void hns3_parse_devargs(struct rte_eth_dev *dev);
 void hns3vf_update_push_lsc_cap(struct hns3_hw *hw, bool supported);
-
-bool hns3_find_duplicate_mc_addr(struct hns3_hw *hw,
-                               struct rte_ether_addr *mc_addr);
-
+int hns3_configure_all_mc_mac_addr(struct hns3_adapter *hns, bool del);
+int hns3_configure_all_mac_addr(struct hns3_adapter *hns, bool del);
+int hns3_add_mac_addr(struct rte_eth_dev *dev, struct rte_ether_addr *mac_addr,
+               __rte_unused uint32_t idx, __rte_unused uint32_t pool);
+void hns3_remove_mac_addr(struct rte_eth_dev *dev, uint32_t idx);
+int hns3_set_mc_mac_addr_list(struct rte_eth_dev *dev,
+                       struct rte_ether_addr *mc_addr_set,
+                                                       uint32_t nb_mc_addr);
 int hns3_restore_ptp(struct hns3_adapter *hns);
 int hns3_mbuf_dyn_rx_timestamp_register(struct rte_eth_dev *dev,
                                    struct rte_eth_conf *conf);