net/bonding: fix setting slave MAC addresses
Use rte_eth_dev_default_mac_addr_set() to change a slave MAC address. mac_address_set() only updates the software copy and does nothing to update the hardware. Signed-off-by: Chas Williams <chas3@att.com> Acked-by: Declan Doherty <declan.doherty@intel.com>
This commit is contained in:
parent
f10d528250
commit
aa7791ba8d
@ -424,7 +424,7 @@ __eth_bond_slave_remove_lock_free(uint16_t bonded_port_id,
|
||||
&rte_eth_devices[bonded_port_id].data->port_id);
|
||||
|
||||
/* Restore original MAC address of slave device */
|
||||
mac_address_set(&rte_eth_devices[slave_port_id],
|
||||
rte_eth_dev_default_mac_addr_set(slave_port_id,
|
||||
&(internals->slaves[slave_idx].persisted_mac_addr));
|
||||
|
||||
slave_eth_dev = &rte_eth_devices[slave_port_id];
|
||||
|
@ -1482,7 +1482,8 @@ mac_address_slaves_update(struct rte_eth_dev *bonded_eth_dev)
|
||||
case BONDING_MODE_BALANCE:
|
||||
case BONDING_MODE_BROADCAST:
|
||||
for (i = 0; i < internals->slave_count; i++) {
|
||||
if (mac_address_set(&rte_eth_devices[internals->slaves[i].port_id],
|
||||
if (rte_eth_dev_default_mac_addr_set(
|
||||
internals->slaves[i].port_id,
|
||||
bonded_eth_dev->data->mac_addrs)) {
|
||||
RTE_BOND_LOG(ERR, "Failed to update port Id %d MAC address",
|
||||
internals->slaves[i].port_id);
|
||||
@ -1500,15 +1501,16 @@ mac_address_slaves_update(struct rte_eth_dev *bonded_eth_dev)
|
||||
for (i = 0; i < internals->slave_count; i++) {
|
||||
if (internals->slaves[i].port_id ==
|
||||
internals->current_primary_port) {
|
||||
if (mac_address_set(&rte_eth_devices[internals->primary_port],
|
||||
if (rte_eth_dev_default_mac_addr_set(
|
||||
internals->primary_port,
|
||||
bonded_eth_dev->data->mac_addrs)) {
|
||||
RTE_BOND_LOG(ERR, "Failed to update port Id %d MAC address",
|
||||
internals->current_primary_port);
|
||||
return -1;
|
||||
}
|
||||
} else {
|
||||
if (mac_address_set(
|
||||
&rte_eth_devices[internals->slaves[i].port_id],
|
||||
if (rte_eth_dev_default_mac_addr_set(
|
||||
internals->slaves[i].port_id,
|
||||
&internals->slaves[i].persisted_mac_addr)) {
|
||||
RTE_BOND_LOG(ERR, "Failed to update port Id %d MAC address",
|
||||
internals->slaves[i].port_id);
|
||||
|
Loading…
Reference in New Issue
Block a user