The socket backend does not support the listen= option with -netdev.  The
problem is how the socket NetClientState lifecycle is implemented: the socket
backend waits for an incoming client connection before creating a
NetClientState.  The guest -device wants a peer= on startup, so QEMU fails with
an error about the non-existent peer.

This series makes -netdev socket,listen= work by creating the NetClientState
right away.  This allows -device peer= to find the socket backend.

This code was written by Zhi Yong Wu <wu...@linux.vnet.ibm.com>.  I have only
cleaned up and tested it.  The following work:
 * -net socket,listen=:1234 -net nic,model=virtio
 * -netdev socket,listen=:1234,id=netdev0 -device virtio-net-pci,netdev=netdev0

Zhi Yong Wu (2):
  net: fix the coding style
  net: add the support for -netdev socket, listen

 net/socket.c |   82 +++++++++++++++++++++++++++++++++++-----------------------
 1 file changed, 50 insertions(+), 32 deletions(-)

-- 
1.7.10.4


Reply via email to