qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH v2] net/net: Change the default mac address of nic


From: Mike Qiu
Subject: [Qemu-devel] [PATCH v2] net/net: Change the default mac address of nic
Date: Tue, 15 Oct 2013 00:17:57 -0400

Changelog to v1:
        Find remainder of macaddr->a[5] by modulo 256,
        otherwise it may be overflow by add index++.

The default mac address is 52:54:00:12:34:56 + index, this will
cause problem that when we boot up more than one guest with all
mac addresses unset by default, assume that each guest has one
nic. In this situation, all the guest's nic has the same mac address.

This patch is to solve this bug.

Signed-off-by: Mike Qiu <address@hidden>
---
 net/net.c | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/net/net.c b/net/net.c
index c330c9a..9e72764 100644
--- a/net/net.c
+++ b/net/net.c
@@ -21,6 +21,8 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  * THE SOFTWARE.
  */
+#include <time.h>
+
 #include "config-host.h"
 
 #include "net/net.h"
@@ -147,12 +149,13 @@ void qemu_macaddr_default_if_unset(MACAddr *macaddr)
 
     if (memcmp(macaddr, &zero, sizeof(zero)) != 0)
         return;
+    srand((unsigned)time(NULL));
     macaddr->a[0] = 0x52;
     macaddr->a[1] = 0x54;
     macaddr->a[2] = 0x00;
-    macaddr->a[3] = 0x12;
-    macaddr->a[4] = 0x34;
-    macaddr->a[5] = 0x56 + index++;
+    macaddr->a[3] = rand() % 256;
+    macaddr->a[4] = rand() % 256;
+    macaddr->a[5] = (rand() % 256 + index++) % 256;
 }
 
 /**
-- 
1.8.3.1




reply via email to

[Prev in Thread] Current Thread [Next in Thread]