Assign mac address to vf netdevice when using macvtap port

This is a workaround to libvirt issue described here:
https://bugzilla.redhat.com/show_bug.cgi?id=1372944. The problem is that
libvirt dosn't update the mac address of the netdevice, instead it uses
netlink to configure the mac address of the VF. For macvtap to work
libvirt should set the mac address on the VF net device and using
netlink. Until this is fixed we should set both of them in nova.

Change-Id: If32828840b552a73400df052fc12a8b5a24f202d
Closes-Bug: #1622292
This commit is contained in:
Edan David
2016-09-01 03:46:17 -04:00
committed by Stephen Finucane
parent 8211f36a5b
commit d79e3afc4c
2 changed files with 7 additions and 1 deletions

View File

@@ -1903,7 +1903,11 @@ def set_vf_interface_vlan(pci_addr, mac_addr, vlan=0):
run_as_root=True,
check_exit_code=exit_code)
# Bring up/down the VF's interface
# TODO(edand): The mac is assigned as a workaround for the following issue
# https://bugzilla.redhat.com/show_bug.cgi?id=1372944
# once resolved it will be removed
utils.execute('ip', 'link', 'set', vf_ifname,
'address', mac_addr,
port_state,
run_as_root=True,
check_exit_code=exit_code)

View File

@@ -839,7 +839,9 @@ class LibvirtVifTestCase(test.NoDBTestCase):
run_as_root=True,
check_exit_code=exit_code),
mock.call('ip', 'link', 'set',
'eth13', port_state,
'eth13', 'address',
self.vif_hw_veb_macvtap['address'],
port_state,
run_as_root=True,
check_exit_code=exit_code)]
}