]> Git Repo - qemu.git/commitdiff
net: use qemu_send_packet_raw() in qemu_announce_self()
authorGleb Natapov <[email protected]>
Thu, 22 Oct 2009 16:43:43 +0000 (17:43 +0100)
committerAnthony Liguori <[email protected]>
Tue, 27 Oct 2009 17:29:01 +0000 (12:29 -0500)
Use qemu_send_packet_raw to send gratuitous arp. This will ensure that
vnet header is handled properly.

Also, avoid sending the gratuitous packet to the guest. There doesn't
appear to be any reason for doing that and the code will currently just
crash if the NIC is not associated with a vlan.

Signed-off-by: Gleb Natapov <[email protected]>
Signed-off-by: Mark McLoughlin <[email protected]>
Signed-off-by: Anthony Liguori <[email protected]>
savevm.c

index 95b77f36834a913159a2a2445b6413ee8ae04502..b7abf43cee77f33c4f7812878efad2afafe74243 100644 (file)
--- a/savevm.c
+++ b/savevm.c
@@ -126,8 +126,6 @@ static int announce_self_create(uint8_t *buf,
 static void qemu_announce_self_once(void *opaque)
 {
     int i, len;
-    VLANState *vlan;
-    VLANClientState *vc;
     uint8_t buf[60];
     static int count = SELF_ANNOUNCE_ROUNDS;
     QEMUTimer *timer = *(QEMUTimer **)opaque;
@@ -136,10 +134,7 @@ static void qemu_announce_self_once(void *opaque)
         if (!nd_table[i].used)
             continue;
         len = announce_self_create(buf, nd_table[i].macaddr);
-        vlan = nd_table[i].vlan;
-        QTAILQ_FOREACH(vc, &vlan->clients, next) {
-            vc->receive(vc, buf, len);
-        }
+        qemu_send_packet_raw(nd_table[i].vc, buf, len);
     }
     if (--count) {
         /* delay 50ms, 150ms, 250ms, ... */
This page took 0.023941 seconds and 4 git commands to generate.