[libvirt-users] virtio channel socket bind error

Michal Privoznik mprivozn at redhat.com
Thu Sep 26 07:37:39 UTC 2013


On 25.09.2013 19:17, Chunduru Venkata, Ravi wrote:
> Hi All,
>   My intent is to make virtio unix channel work. I could configure the
> XML and launch VM and could see the port in /dev/virtio-ports
> 
>    <channel type='unix'>
>       <source mode='bind' path='/tmp/appl_port'/>
>       <target type='virtio' name='appl_port'/>
>       <address type='virtio-serial' controller='0' bus='0' port='1'/>
>     </channel>
> 
> When I see on the host, the unix socket is already binded and is in
> listening state.
> 
> echo "test this" > /tmp/appl_port
> bash: /tmp/appl_port: No such device or address
> 
> netstat -nax | grep appl_port
> unix  2      [ ACC ]     STREAM     LISTENING     15302258 /tmp/appl_port
> 
> 1) Can some one please have a look and help me fix this.

There's nothing to fix. This works as expected.

> 2) if I don't set source mode to 'bind', it gets set to 'connect' in xml
> and VM fails to boot up. I would like to understand the different types
> of source mode.

There are two modes: 'bind' and 'connect'. They represent the UNIX
sockets modes. Either an application connects to something ('connect')
using the socket path as unique identifier telling where to connect, or
an application listens for incoming connections, again using the socket
path as unique identifier. Hence, if you want to use 'connect' mode, you
already need to have an application listening on the socket path when
starting up a domain. Otherwise the domain will get an error while
connecting to the socket. Or, you have to tell you application to
connect to the socket created by 'bind' mode once the domain is started.

Michal




More information about the libvirt-users mailing list