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
(cherry picked from commit d79e3afc4c)
This commit is contained in:
Edan David 2016-09-01 03:46:17 -04:00 committed by Moshe Levi
parent ae45c4a72a
commit 08bda20e98
2 changed files with 7 additions and 1 deletions

View File

@ -1894,7 +1894,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

@ -813,7 +813,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)]
}