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