From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:36540) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bsYcu-0003ge-5O for qemu-devel@nongnu.org; Fri, 07 Oct 2016 13:08:05 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bsYcp-0007Yp-Qq for qemu-devel@nongnu.org; Fri, 07 Oct 2016 13:08:03 -0400 Received: from mx0a-001b2d01.pphosted.com ([148.163.156.1]:37981) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bsYcp-0007Xl-Id for qemu-devel@nongnu.org; Fri, 07 Oct 2016 13:07:59 -0400 Received: from pps.filterd (m0098396.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.16.0.17/8.16.0.17) with SMTP id u97H4jUg098276 for ; Fri, 7 Oct 2016 13:07:58 -0400 Received: from e36.co.us.ibm.com (e36.co.us.ibm.com [32.97.110.154]) by mx0a-001b2d01.pphosted.com with ESMTP id 25xcb29fwx-1 (version=TLSv1.2 cipher=AES256-SHA bits=256 verify=NOT) for ; Fri, 07 Oct 2016 13:07:58 -0400 Received: from localhost by e36.co.us.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Fri, 7 Oct 2016 11:07:57 -0600 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable From: Michael Roth In-Reply-To: <1475772018-27484-5-git-send-email-stefanha@redhat.com> References: <1475772018-27484-1-git-send-email-stefanha@redhat.com> <1475772018-27484-5-git-send-email-stefanha@redhat.com> Date: Fri, 07 Oct 2016 12:07:41 -0500 Message-Id: <20161007170741.9563.75979@loki> Subject: Re: [Qemu-devel] [PATCH 4/4] qga: add vsock-listen method List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Stefan Hajnoczi , qemu-devel@nongnu.org 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=3D3 ... > (guest)# qemu-ga -m vsock-listen -p 3:1234 > = > Signed-off-by: Stefan Hajnoczi Reviewed-by: Michael Roth 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 =3D NULL; > + SocketAddress *addr; > + char *addr_str; > + int fd; > + > + addr_str =3D g_strdup_printf("vsock:%s", path); > + addr =3D socket_parse(addr_str, &local_err); > + g_free(addr_str); > + if (local_err !=3D NULL) { > + g_critical("%s", error_get_pretty(local_err)); > + error_free(local_err); > + return false; > + } > + > + fd =3D socket_listen(addr, &local_err); > + qapi_free_SocketAddress(addr); > + if (local_err !=3D 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 o= paque); > 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 -p ] []\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 d= efault)\n" > " -p, --path device/socket path (the default for virtio-serial i= s:\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 =3D GA_CHANNEL_ISA_SERIAL; > } else if (strcmp(method, "unix-listen") =3D=3D 0) { > channel_method =3D GA_CHANNEL_UNIX_LISTEN; > + } else if (strcmp(method, "vsock-listen") =3D=3D 0) { > + channel_method =3D GA_CHANNEL_VSOCK_LISTEN; > } else { > g_critical("unsupported channel method/type: %s", method); > return false; > -- = > 2.7.4 >=20