On 8/23/2019 2:46 PM, Wei Hu (Xavier) wrote:
> This patch adds the following mac address related operations defined in
> struct eth_dev_ops: mac_addr_add, mac_addr_remove, mac_addr_set
> and set_mc_addr_list.
> 
> Signed-off-by: Wei Hu (Xavier) <xavier.hu...@huawei.com>
> Signed-off-by: Chunsong Feng <fengchuns...@huawei.com>
> Signed-off-by: Min Hu (Connor) <humi...@huawei.com>
> Signed-off-by: Hao Chen <chenhao...@huawei.com>
> Signed-off-by: Huisong Li <lihuis...@huawei.com>

<...>

> +static int
> +hns3_set_mc_mac_addr_list(struct rte_eth_dev *dev,
> +                       struct rte_ether_addr *mc_addr_set,
> +                       uint32_t nb_mc_addr)
> +{
> +     struct hns3_hw *hw = HNS3_DEV_PRIVATE_TO_HW(dev->data->dev_private);
> +     struct rte_ether_addr reserved_addr_list[HNS3_MC_MACADDR_NUM];
> +     struct rte_ether_addr add_addr_list[HNS3_MC_MACADDR_NUM];
> +     struct rte_ether_addr rm_addr_list[HNS3_MC_MACADDR_NUM];
> +     struct rte_ether_addr *addr;
> +     int reserved_addr_num;
> +     int add_addr_num;
> +     int rm_addr_num;
> +     int mc_addr_num;
> +     int num;
> +     int ret;
> +     int i;
> +
> +     /* Check if input parameters are valid */
> +     ret = hns3_set_mc_addr_chk_param(hw, mc_addr_set, nb_mc_addr);
> +     if (ret)
> +             return ret;
> +
> +     rte_spinlock_lock(&hw->lock);

Is locking required here?

<...>

> @@ -1582,6 +2394,10 @@ hns3_dev_close(struct rte_eth_dev *eth_dev)
>  
>  static const struct eth_dev_ops hns3_eth_dev_ops = {
>       .dev_close          = hns3_dev_close,
> +     .mac_addr_add           = hns3_add_mac_addr,
> +     .mac_addr_remove        = hns3_remove_mac_addr,
> +     .mac_addr_set           = hns3_set_default_mac_addr,
> +     .set_mc_addr_list       = hns3_set_mc_mac_addr_list,
>  };

Can you please update .ini file in this patch and mark following features as
supported:
Unicast MAC filter
Multicast MAC filter

Reply via email to