qemu-devel
[Top][All Lists]
Advanced

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

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


From: mike
Subject: Re: [Qemu-devel] [PATCH v2] net/net: Change the default mac address of nic
Date: Tue, 15 Oct 2013 13:57:06 +0800
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130805 Thunderbird/17.0.8

On 10/15/2013 01:07 PM, Stefan Weil wrote:
Am 15.10.2013 06:17, schrieb Mike Qiu:
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;
  }
/**
There is no overflow which must be handled because a[5] is an uint8_t
value, so the assignment automatically limits the range to 0...255.
OK, you are right, but I think we'd better to ensure this,
even though a[5] is an uint8_t.
Is it reasonable to get a random mac address in your guest? I don't
think so. It would no longer be possible to connect to a guest using
ssh, restart that guest and connect again with ssh.
Why not? I have do the experiment, after reboot, the mac is not changed.
and the ip address always the same.

And can be login to the guest after reboot.

If you start more than one guest, you simply have to decide which mac
address you want and tell it on the command line.
Yes, mostly we should do this, but users sometimes not do this,
so this interface should cover this situation.

Thank
Mike

Stefan








reply via email to

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