[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH] Fix duplicate random MAC generation
# HG changeset patch # User David Edmondson <dme@xxxxxxx> # Date 1181040295 25200 # Node ID c086f2ec68056e1444a487368b67d2f4eb13576b # Parent d06cf13997038d41eb60ab9055aea94a8e3b7af0 Fix duplicate random MAC generation Ensure that HVMImageHandler and NetifController see the same random MAC address. Signed-off-by: David Edmondson <dme@xxxxxxx> diff --git a/tools/python/xen/xend/XendConfig.py b/tools/python/xen/xend/XendConfig.py --- a/tools/python/xen/xend/XendConfig.py +++ b/tools/python/xen/xend/XendConfig.py @@ -27,6 +27,7 @@ from xen.xend.XendDevices import XendDev from xen.xend.XendDevices import XendDevices from xen.xend.PrettyPrint import prettyprintstring from xen.xend.XendConstants import DOM_STATE_HALTED +from xen.xend.server.netif import randomMAC log = logging.getLogger("xend.XendConfig") log.setLevel(logging.WARN) @@ -993,6 +994,10 @@ class XendConfig(dict): else: dev_info['driver'] = 'paravirtualised' + if dev_type == 'vif': + if not dev_info.get('mac'): + dev_info['mac'] = randomMAC() + # create uuid if it doesn't exist dev_uuid = dev_info.get('uuid', None) if not dev_uuid: @@ -1051,8 +1056,9 @@ class XendConfig(dict): dev_info = {} dev_uuid = '' if dev_type == 'vif': - if cfg_xenapi.get('MAC'): # don't add if blank - dev_info['mac'] = cfg_xenapi.get('MAC') + dev_info['mac'] = cfg_xenapi.get('MAC') + if not dev_info['mac']: + dev_info['mac'] = randomMAC() # vifname is the name on the guest, not dom0 # TODO: we don't have the ability to find that out or # change it from dom0 diff --git a/tools/python/xen/xend/image.py b/tools/python/xen/xend/image.py --- a/tools/python/xen/xend/image.py +++ b/tools/python/xen/xend/image.py @@ -27,7 +27,6 @@ from xen.xend.XendError import VmError, from xen.xend.XendError import VmError, XendError, HVMRequired from xen.xend.XendLogging import log from xen.xend.XendOptions import instance as xenopts -from xen.xend.server.netif import randomMAC from xen.xend.xenstore.xswatch import xswatch from xen.xend import arch @@ -352,7 +351,7 @@ class HVMImageHandler(ImageHandler): continue mac = devinfo.get('mac') if mac is None: - mac = randomMAC() + raise VmError("MAC address not specified or generated.") bridge = devinfo.get('bridge', 'xenbr0') model = devinfo.get('model', 'rtl8139') ret.append("-net") diff --git a/tools/python/xen/xend/server/netif.py b/tools/python/xen/xend/server/netif.py --- a/tools/python/xen/xend/server/netif.py +++ b/tools/python/xen/xend/server/netif.py @@ -112,7 +112,7 @@ class NetifController(DevController): typ = xoptions.netback_type if not mac: - mac = randomMAC() + raise VmError("MAC address not specified or generated.") devid = self.allocateDeviceID() _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |