Fix incrementation of qemu mac address

Fix #501
This commit is contained in:
Julien Duponchelle committed 2016-04-25 16:36:20 +02:00
1 parent 4afbf816ab
commit 75196b8a55
4 files changed
+73 -2

No files matched your search

+3 -1
View File
@@ -40,6 +40,8 @@ from ..base_vm import BaseVM
from ...schemas.qemu import QEMU_OBJECT_SCHEMA, QEMU_PLATFORMS
from ...utils.asyncio import monitor_process
from ...utils.images import md5sum
from ...utils import macaddress_to_int, int_to_macaddress
import logging
log = logging.getLogger(__name__)
@@ -1374,7 +1376,7 @@ class QemuVM(BaseVM):
patched_qemu = True
for adapter_number, adapter in enumerate(self._ethernet_adapters):
mac = "%s%02x" % (self._mac_address[:-2], (int(self._mac_address[-2:]) + adapter_number) % 255)
mac = int_to_macaddress(macaddress_to_int(self._mac_address) + adapter_number)
nio = adapter.get_nio(0)
if self._legacy_networking:
# legacy QEMU networking syntax (-net)
+18
View File
@@ -16,6 +16,7 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
import textwrap
import posixpath
@@ -26,3 +27,20 @@ def force_unix_path(path):
path = path.replace("\\", "/")
return posixpath.normpath(path)
def macaddress_to_int(macaddress):
"""
Convert a macaddress with the format 00:0c:29:11:b0:0a to a int
:param macaddress: The mac address
:returns: Integer
"""
return int(macaddress.replace(":", ""), 16)
def int_to_macaddress(integer):
"""
Convert an integer to a macaddress
"""
return ":".join(textwrap.wrap("%012x" % (integer), width=2))