On Mon, 18 Jun 2018 15:27:16 +0300
Alex Kiselev <a...@therouter.net> wrote:

> +static const struct ether_addr null_mac_addr;
> +
> +/*
> + * Add additional MAC addresses to the slave
> + */
> +int
> +slave_add_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_add(slave_port_id, mac_addr, 0);
> +             if (ret < 0)
> +                     return ret;
> +     }
> +
> +     return 0;
You need to unwind if adding MAC address to one of the slave devices
worked, and the second one did not.

Reply via email to