From: Mark McLoughlin <markmc@redhat.com>
To: Gleb Natapov <gleb@redhat.com>
Cc: avi@redhat.com, kvm@vger.kernel.org
Subject: Re: Add qemu_send_raw() to vlan.
Date: Thu, 15 Oct 2009 08:36:08 +0100 [thread overview]
Message-ID: <1255592168.2726.29.camel@blaa> (raw)
In-Reply-To: <20091015073312.GC30889@redhat.com>
On Thu, 2009-10-15 at 09:33 +0200, Gleb Natapov wrote:
> On Thu, Oct 15, 2009 at 08:04:45AM +0100, Mark McLoughlin wrote:
> > Hi Gleb,
> >
> > On Tue, 2009-05-26 at 13:03 +0300, Gleb Natapov wrote:
> > > It gets packet without virtio header and adds it if needed. Allows to
> > > inject packets to vlan from outside. To send gracious arp for instance.
> > ...
> > > diff --git a/net.h b/net.h
> > > index 931133b..3d0b6f2 100644
> > > --- a/net.h
> > > +++ b/net.h
> > > ...
> > > @@ -63,6 +64,7 @@ int qemu_can_send_packet(VLANClientState *vc);
> > > ssize_t qemu_sendv_packet(VLANClientState *vc, const struct iovec *iov,
> > > int iovcnt);
> > > int qemu_send_packet(VLANClientState *vc, const uint8_t *buf, int size);
> > > +void qemu_send_packet_raw(VLANClientState *vc, const uint8_t *buf, int size);
> > > void qemu_format_nic_info_str(VLANClientState *vc, uint8_t macaddr[6]);
> > > void qemu_check_nic_model(NICInfo *nd, const char *model);
> > > void qemu_check_nic_model_list(NICInfo *nd, const char * const *models,
> >
> > I've only just now noticed that we never actually made announce_self()
> > use this ... care to do that?
> >
> Something like this:
>
> ---
> Use qemu_send_packet_raw to send gracious arp. This will ensure that
> vnet header is handled properly.
>
> Signed-off-by: Gleb Natapov <gleb@redhat.com>
Acked-by: Mark McLoughlin <markmc@redhat.com>
> diff --git a/savevm.c b/savevm.c
> index 7a363b6..8ea2daf 100644
> --- a/savevm.c
> +++ b/savevm.c
> @@ -132,7 +132,7 @@ static void qemu_announce_self_once(void *opaque)
> len = announce_self_create(buf, nd_table[i].macaddr);
> vlan = nd_table[i].vlan;
> for(vc = vlan->first_client; vc != NULL; vc = vc->next) {
> - vc->receive(vc, buf, len);
> + qemu_send_packet_raw(vc, buf, len);
This makes things even more gratuitous because we're making every net
client send the packet rather than receive it, but it works fine in
practice.
Cheers,
Mark.
next prev parent reply other threads:[~2009-10-15 7:38 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-05-26 10:03 Add qemu_send_raw() to vlan Gleb Natapov
2009-05-26 10:05 ` Avi Kivity
2009-05-26 10:08 ` Gleb Natapov
2009-05-26 10:11 ` Avi Kivity
2009-05-26 10:28 ` Mark McLoughlin
2009-05-26 10:34 ` Mark McLoughlin
2009-05-26 11:15 ` Avi Kivity
2009-05-26 12:05 ` Gleb Natapov
2009-05-26 12:20 ` Avi Kivity
2009-10-15 7:04 ` Mark McLoughlin
2009-10-15 7:33 ` Gleb Natapov
2009-10-15 7:36 ` Mark McLoughlin [this message]
2009-10-15 22:46 ` Marcelo Tosatti
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1255592168.2726.29.camel@blaa \
--to=markmc@redhat.com \
--cc=avi@redhat.com \
--cc=gleb@redhat.com \
--cc=kvm@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).