[12/19] net: use qemu_send_packet_raw() in qemu_announce_self()

Submitted by Mark McLoughlin on Oct. 22, 2009, 4:43 p.m.

Details

Message ID 1256229830-28066-13-git-send-email-markmc@redhat.com
State New
Headers show

Commit Message

Mark McLoughlin Oct. 22, 2009, 4:43 p.m.
From: Gleb Natapov <gleb@redhat.com>

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 <gleb@redhat.com>
Signed-off-by: Mark McLoughlin <markmc@redhat.com>
---
 savevm.c |    7 +------
 1 files changed, 1 insertions(+), 6 deletions(-)

Patch hide | download patch | download mbox

diff --git a/savevm.c b/savevm.c
index 99aa15a..ac1ef42 100644
--- a/savevm.c
+++ b/savevm.c
@@ -114,8 +114,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[256];
     static int count = SELF_ANNOUNCE_ROUNDS;
     QEMUTimer *timer = *(QEMUTimer **)opaque;
@@ -124,10 +122,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--) {
 	    qemu_mod_timer(timer, qemu_get_clock(rt_clock) + 100);