[v2] bonding: change mac_addr filled position
Checks
Commit Message
When mac_address update in bond_mode_8023ad_mac_address_update,
bonding port's mac_addr should update also.
Signed-off-by: Liang Zhang <zhangliang@bigo.sg>
---
drivers/net/bonding/rte_eth_bond_8023ad.c | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
@@ -791,8 +791,11 @@ rx_machine_update(struct bond_dev_private *internals, uint8_t slave_id,
RTE_ASSERT(lacp->lacpdu.subtype == SLOW_SUBTYPE_LACP);
partner = &lacp->lacpdu.partner;
- if (is_same_ether_addr(&partner->port_params.system, &internals->mode4.mac_addr)) {
- /* This is LACP frame to the bonding port so pass it to rx_machine */
+ if (is_same_ether_addr(&partner->port_params.system,
+ &internals->mode4.mac_addr)) {
+ /* This LACP frame is sending to the bonding port
+ * so pass it to rx_machine.
+ */
rx_machine(internals, slave_id, &lacp->lacpdu);
}
rte_pktmbuf_free(lacp_pkt);
@@ -1144,7 +1147,6 @@ bond_mode_8023ad_setup(struct rte_eth_dev *dev,
bond_mode_8023ad_conf_assign(mode4, conf);
mode4->slowrx_cb = conf->slowrx_cb;
mode4->agg_selection = AGG_STABLE;
- rte_eth_macaddr_get(internals->port_id, &mode4->mac_addr);
if (dev->data->dev_started)
bond_mode_8023ad_start(dev);
@@ -1170,6 +1172,7 @@ bond_mode_8023ad_start(struct rte_eth_dev *bond_dev)
struct mode8023ad_private *mode4 = &internals->mode4;
static const uint64_t us = BOND_MODE_8023AX_UPDATE_TIMEOUT_MS * 1000;
+ rte_eth_macaddr_get(internals->port_id, &mode4->mac_addr);
if (mode4->slowrx_cb)
return rte_eal_alarm_set(us, &bond_mode_8023ad_ext_periodic_cb,
bond_dev);