These two patches are the v2 of a single patch that I sent last
week:
https://www.redhat.com/archives/libvir-list/2015-August/msg00889.html
At the time I sent that patch, I had no hardware to test it on, but
was operating on a misunderstood assumption - someone in the know had
told me that libvirt didn't need to save/restore the MAC address of
VFs for 802.1Qbh macvtap passthrough, and I extrapolated from there
that we didn't need to *set* the MAC address of the VF either. This
makes sense, since that is what happens for 802.1Qbh *device*
passthrough, but based on my own tests the 802.1Qbh "associate" fails
unless libvirt sets the VF's MAC address prior to associate.
So this patch takes a different approach from V1 - instead of
completely skipping the save/set/restore of MAC address for VFs that
are using 802.1Qbh, it still does it, but uses the "old" method of
ioctl(SIOCGIFHWADDR) and ioctl(SIOCSIFHWADDR).
I *did* have the proper hardware to test this time, and it works (both
for a Cisco VMFEX card using 802.1Qbh and for an Intel 82576 card with
straight macvtap passthrough).
Laine Stump (2):
util: make virNetDev(Replace|Restore)MacAddress public functions
util: don't use netlink to save/set mac for
macvtap+passthrough+802.1Qbh
src/libvirt_private.syms | 2 +
src/util/virnetdev.c | 172 ++++++++++++++++++++++----------------------
src/util/virnetdev.h | 10 +++
src/util/virnetdevmacvlan.c | 26 +++++--
4 files changed, 121 insertions(+), 89 deletions(-)