On Mon, 18 Jun 2018 15:27:16 +0300 Alex Kiselev <a...@therouter.net> wrote:
> +/* > + * Remove additional MAC addresses from the slave > + */ > +int > +slave_remove_mac_addresses(struct rte_eth_dev *bonded_eth_dev, > + uint16_t slave_port_id) > +{ > + int i, ret; > + struct ether_addr *mac_addr; > + > + /* add additional MACs to the slave */ > + for (i = 1; i < BOND_MAX_MAC_ADDRS; i++) { > + mac_addr = &bonded_eth_dev->data->mac_addrs[i]; > + if (is_same_ether_addr(mac_addr, &null_mac_addr)) > + break; > + > + ret = rte_eth_dev_mac_addr_remove(slave_port_id, mac_addr); > + if (ret < 0) > + return ret; > + } Not sure this is the best semantic if remove fails on one of many slaves. Perhaps it should always remove it from all slaves. Or maybe a first pass to see if the address exists, then a no-fail removal pass.