qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

socket.c added support for unix domain socket datagram transport


From: Ralph Schmieder
Subject: socket.c added support for unix domain socket datagram transport
Date: Fri, 23 Apr 2021 08:56:48 +0200

Hey...  new to this list.  I was looking for a way to use Unix domain sockets 
as a network transport between local VMs.

I'm part of a team where we run dozens if not hundreds of VMs on a single 
compute instance which are highly interconnected.

In the current implementation, I use UDP sockets (e.g. something like 

-netdev id=bla,type=socket,udp=localhost:1234,localaddr=localhost:5678) 

which works great.

The downside of this approach is that I need to keep track of all the UDP ports 
in use and that there's a potential for clashes.  Clearly, having Unix domain 
sockets where I could store the sockets in the VM's directory would be much 
easier to manage.

However, even though there is some AF_UNIX support in net/socket.c, it's

- not configurable
- it doesn't work

As a side note, I tried to pass in an already open FD, but that didn't work 
either.

So, I added some code which does work for me... e.g.

- can specify the socket paths like -netdev 
id=bla,type=socket,unix=/tmp/in:/tmp/out
- it does forward packets between two Qemu instances running back-to-back

I'm wondering if this is of interest for the wider community and, if so, how to 
proceed.

Thanks,
-ralph

Commit 
https://github.com/rschmied/qemu/commit/73f02114e718ec898c7cd8e855d0d5d5d7abe362




reply via email to

[Prev in Thread] Current Thread [Next in Thread]