Re: [Qemu-devel] unix domain socket communication with guests
On (Fri) 24 Jun 2011 [12:54:07], Joel Uckelman wrote: On Fri, Jun 24, 2011 at 4:54 AM, Amit Shah amit.s...@redhat.com wrote: I guess this means I need to get networking running on the guest so that it has a port visible to the host on which my server can listen. Is there a guide somewhere for doing that? I've not had any success in an afternoon of searching and trying. Can't say I understand what you're trying to accomplish. If you want to just pass data between a guest and host w/o networking, virtio-serial is one way of doing it. If you have networking enabled and the host and guest can talk to each other, TCP or UDP communication will work as usual. Amit I have a server which I want to run on the guest, and one or more clients which I want to run on the host. So, I need something I can bind(2) to on the guest side, and something I can connect(2) to on the host side. Is that clearer? Is this possible to do with virtio-serial? No, not possible. You could explore using virtio-9pfs with slightly different semantics. Amit
Re: [Qemu-devel] unix domain socket communication with guests
On Fri, Jun 24, 2011 at 4:54 AM, Amit Shah amit.s...@redhat.com wrote: I guess this means I need to get networking running on the guest so that it has a port visible to the host on which my server can listen. Is there a guide somewhere for doing that? I've not had any success in an afternoon of searching and trying. Can't say I understand what you're trying to accomplish. If you want to just pass data between a guest and host w/o networking, virtio-serial is one way of doing it. If you have networking enabled and the host and guest can talk to each other, TCP or UDP communication will work as usual. Amit I have a server which I want to run on the guest, and one or more clients which I want to run on the host. So, I need something I can bind(2) to on the guest side, and something I can connect(2) to on the host side. Is that clearer? Is this possible to do with virtio-serial?
Re: [Qemu-devel] unix domain socket communication with guests
On Tue, Jun 21, 2011 at 10:47 AM, Amit Shah amit.s...@redhat.com wrote: On (Mon) 20 Jun 2011 [18:24:38], Joel Uckelman wrote: I'm trying to set up a unix domain socket with a guest on one end and the host on the other, where the server is running on and bound to the socket on the guest. I've been able to get the reverse, where the server is running on the host, this way: qemu-kvm -kernel kernel -initrd initrd -hda root -device virtio-serial -serial stdio -chardev socket,path=/home/uckelman/projects/lightbox/supermin/foo,id=channel0,name=org.libguestfs.channel.0 With this, you have a virtio-serial connection between the host and the guest. The unix socket exists between a client program and the qemu invocation on the host, with the qemu end being wired to the host end of the virtio-serial connection. You cannot have a unix socket between a host and a guest, they run different kernels. Thanks for the explanation. I was mistaken about how virtio-serial worked---I thought it looked like a unix socket on both sides, and there was some cleverness between the ends to make that happen. I guess this means I need to get networking running on the guest so that it has a port visible to the host on which my server can listen. Is there a guide somewhere for doing that? I've not had any success in an afternoon of searching and trying.
Re: [Qemu-devel] unix domain socket communication with guests
On (Thu) 23 Jun 2011 [17:37:50], Joel Uckelman wrote: On Tue, Jun 21, 2011 at 10:47 AM, Amit Shah amit.s...@redhat.com wrote: On (Mon) 20 Jun 2011 [18:24:38], Joel Uckelman wrote: I'm trying to set up a unix domain socket with a guest on one end and the host on the other, where the server is running on and bound to the socket on the guest. I've been able to get the reverse, where the server is running on the host, this way: qemu-kvm -kernel kernel -initrd initrd -hda root -device virtio-serial -serial stdio -chardev socket,path=/home/uckelman/projects/lightbox/supermin/foo,id=channel0,name=org.libguestfs.channel.0 With this, you have a virtio-serial connection between the host and the guest. The unix socket exists between a client program and the qemu invocation on the host, with the qemu end being wired to the host end of the virtio-serial connection. You cannot have a unix socket between a host and a guest, they run different kernels. Thanks for the explanation. I was mistaken about how virtio-serial worked---I thought it looked like a unix socket on both sides, and there was some cleverness between the ends to make that happen. I guess this means I need to get networking running on the guest so that it has a port visible to the host on which my server can listen. Is there a guide somewhere for doing that? I've not had any success in an afternoon of searching and trying. Can't say I understand what you're trying to accomplish. If you want to just pass data between a guest and host w/o networking, virtio-serial is one way of doing it. If you have networking enabled and the host and guest can talk to each other, TCP or UDP communication will work as usual. Amit
Re: [Qemu-devel] unix domain socket communication with guests
On (Mon) 20 Jun 2011 [18:24:38], Joel Uckelman wrote: I'm trying to set up a unix domain socket with a guest on one end and the host on the other, where the server is running on and bound to the socket on the guest. I've been able to get the reverse, where the server is running on the host, this way: qemu-kvm -kernel kernel -initrd initrd -hda root -device virtio-serial -serial stdio -chardev socket,path=/home/uckelman/projects/lightbox/supermin/foo,id=channel0,name=org.libguestfs.channel.0 With this, you have a virtio-serial connection between the host and the guest. The unix socket exists between a client program and the qemu invocation on the host, with the qemu end being wired to the host end of the virtio-serial connection. You cannot have a unix socket between a host and a guest, they run different kernels. Amit