qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Michael Roth <mdroth@linux.vnet.ibm.com>
To: Stefan Hajnoczi <stefanha@redhat.com>, qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] [PATCH 4/4] qga: add vsock-listen method
Date: Fri, 07 Oct 2016 12:07:41 -0500	[thread overview]
Message-ID: <20161007170741.9563.75979@loki> (raw)
In-Reply-To: <1475772018-27484-5-git-send-email-stefanha@redhat.com>

Quoting Stefan Hajnoczi (2016-10-06 11:40:18)
> Add AF_VSOCK (virtio-vsock) support as an alternative to virtio-serial.
> 
>   $ qemu-system-x86_64 -device vhost-vsock-pci,guest-cid=3 ...
>   (guest)# qemu-ga -m vsock-listen -p 3:1234
> 
> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>

Reviewed-by: Michael Roth <mdroth@linux.vnet.ibm.com>

I still need to get a vsock environment set up to test with, but looks
good other than minor comments in patch 3.

> ---
>  qga/channel-posix.c | 25 +++++++++++++++++++++++++
>  qga/channel.h       |  1 +
>  qga/main.c          |  6 ++++--
>  3 files changed, 30 insertions(+), 2 deletions(-)
> 
> diff --git a/qga/channel-posix.c b/qga/channel-posix.c
> index 579891d..71582e0 100644
> --- a/qga/channel-posix.c
> +++ b/qga/channel-posix.c
> @@ -193,6 +193,31 @@ static gboolean ga_channel_open(GAChannel *c, const gchar *path, GAChannelMethod
>          ga_channel_listen_add(c, fd, true);
>          break;
>      }
> +    case GA_CHANNEL_VSOCK_LISTEN: {
> +        Error *local_err = NULL;
> +        SocketAddress *addr;
> +        char *addr_str;
> +        int fd;
> +
> +        addr_str = g_strdup_printf("vsock:%s", path);
> +        addr = socket_parse(addr_str, &local_err);
> +        g_free(addr_str);
> +        if (local_err != NULL) {
> +            g_critical("%s", error_get_pretty(local_err));
> +            error_free(local_err);
> +            return false;
> +        }
> +
> +        fd = socket_listen(addr, &local_err);
> +        qapi_free_SocketAddress(addr);
> +        if (local_err != NULL) {
> +            g_critical("%s", error_get_pretty(local_err));
> +            error_free(local_err);
> +            return false;
> +        }
> +        ga_channel_listen_add(c, fd, true);
> +        break;
> +    }
>      default:
>          g_critical("error binding/listening to specified socket");
>          return false;
> diff --git a/qga/channel.h b/qga/channel.h
> index ae8cf0f..8fd0c8f 100644
> --- a/qga/channel.h
> +++ b/qga/channel.h
> @@ -19,6 +19,7 @@ typedef enum {
>      GA_CHANNEL_VIRTIO_SERIAL,
>      GA_CHANNEL_ISA_SERIAL,
>      GA_CHANNEL_UNIX_LISTEN,
> +    GA_CHANNEL_VSOCK_LISTEN,
>  } GAChannelMethod;
> 
>  typedef gboolean (*GAChannelCallback)(GIOCondition condition, gpointer opaque);
> diff --git a/qga/main.c b/qga/main.c
> index 0b9d04e..6caf215 100644
> --- a/qga/main.c
> +++ b/qga/main.c
> @@ -190,8 +190,8 @@ static void usage(const char *cmd)
>  "Usage: %s [-m <method> -p <path>] [<options>]\n"
>  "QEMU Guest Agent %s\n"
>  "\n"
> -"  -m, --method      transport method: one of unix-listen, virtio-serial, or\n"
> -"                    isa-serial (virtio-serial is the default)\n"
> +"  -m, --method      transport method: one of unix-listen, virtio-serial,\n"
> +"                    isa-serial, or vsock-listen (virtio-serial is the default)\n"
>  "  -p, --path        device/socket path (the default for virtio-serial is:\n"
>  "                    %s,\n"
>  "                    the default for isa-serial is:\n"
> @@ -659,6 +659,8 @@ static gboolean channel_init(GAState *s, const gchar *method, const gchar *path)
>          channel_method = GA_CHANNEL_ISA_SERIAL;
>      } else if (strcmp(method, "unix-listen") == 0) {
>          channel_method = GA_CHANNEL_UNIX_LISTEN;
> +    } else if (strcmp(method, "vsock-listen") == 0) {
> +        channel_method = GA_CHANNEL_VSOCK_LISTEN;
>      } else {
>          g_critical("unsupported channel method/type: %s", method);
>          return false;
> -- 
> 2.7.4
> 

  reply	other threads:[~2016-10-07 17:08 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-10-06 16:40 [Qemu-devel] [PATCH 0/4] qga: add vsock-listen Stefan Hajnoczi
2016-10-06 16:40 ` [Qemu-devel] [PATCH 1/4] qga: drop unused sockaddr in accept(2) call Stefan Hajnoczi
2016-10-07 16:01   ` Michael Roth
2016-10-06 16:40 ` [Qemu-devel] [PATCH 2/4] qga: drop unnecessary GA_CHANNEL_UNIX_LISTEN checks Stefan Hajnoczi
2016-10-07 16:04   ` Michael Roth
2016-10-06 16:40 ` [Qemu-devel] [PATCH 3/4] sockets: add AF_VSOCK support Stefan Hajnoczi
2016-10-06 18:14   ` Eric Blake
2016-10-07 12:21     ` Stefan Hajnoczi
2016-10-07 16:42   ` Michael Roth
2016-10-12 15:06     ` Stefan Hajnoczi
2016-10-13 20:20       ` Michael Roth
2016-10-06 16:40 ` [Qemu-devel] [PATCH 4/4] qga: add vsock-listen method Stefan Hajnoczi
2016-10-07 17:07   ` Michael Roth [this message]
2016-10-12 15:07     ` Stefan Hajnoczi
2016-10-13 20:29       ` Michael Roth

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=20161007170741.9563.75979@loki \
    --to=mdroth@linux.vnet.ibm.com \
    --cc=qemu-devel@nongnu.org \
    --cc=stefanha@redhat.com \
    /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).