mbox

[v3,0/2] support MAC changes when no live changes allowed

Message ID 1535120736-785-1-git-send-email-alejandro.lucero@netronome.com (mailing list archive)
Headers

Message

Alejandro Lucero Aug. 24, 2018, 2:25 p.m. UTC
  This is a patched to fix a functionality coming with the first public
release: changing/setting MAC address.

The original patch assumes all NICs can safely change or set the MAC
in any case. However, this is not always true. NFP depends on the firmware
capabilities and this is not always supported. There are other NICs with
this same limitation, although, as far as I know, not in DPDK. Linux kernel
has a IFF_LIVE_ADDR_CHANGE flag and two NICs are checking this flag for
allowing or not live MAC changes.

The flag proposed in this patch is just the opposite: advertise if live
change not supported and assuming it is supported other way.

Although most NICs support rte_eth_dev_default_mac_addr_set and this
function returns and error when live change is not supported, note that
this function is invoked during port start but the value returned is not
checked. It is likely this is good enough for most of the cases, but
bonding is relying on this start then mac set/change, and a PMD ports is
not properly configured for being used as an slave port in some bonding
modes.

v2:
 - add RTE_ETH_DEV_NOLIVE_MAC_ADDR comment in rte_eth_dev_default_mac_addr_set doc
 - add rte_eth_dev_start change in release API changes

v3:
 - merge doc API changes with first patch
 - comment behaviour change in rte_eth_dev_start
 - remove comment on rte_eth_dev_default_mac_addr_set