All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC PATCH 0/6] qapi: net: add unix socket type support to netdev backend
@ 2022-05-09 17:36 Laurent Vivier
  2022-05-09 17:36 ` [RFC PATCH 1/6] net: introduce convert_host_port() Laurent Vivier
                   ` (6 more replies)
  0 siblings, 7 replies; 18+ messages in thread
From: Laurent Vivier @ 2022-05-09 17:36 UTC (permalink / raw)
  To: qemu-devel
  Cc: Laurent Vivier, Ralph Schmieder, Stefano Brivio,
	Daniel P . Berrangé,
	Markus Armbruster

"-netdev socket" only supports inet sockets.

It's not a complex task to add support for unix sockets, but
the socket netdev parameters are not defined to manage well unix
socket parameters.

As discussed in:

  "socket.c added support for unix domain socket datagram transport"
  https://lore.kernel.org/qemu-devel/1C0E1BC5-904F-46B0-8044-68E43E67BE60@gmail.com/

This series adds support of unix socket type using SocketAddress QAPI structure.

A new netdev backend "socket-ng" is added, that is barely a copy of "socket"
backend but it uses the SocketAddress QAPI to provide socket parameters.
And then it also implement unix sockets (TCP and UDP).

Some examples of CLI syntax:

  for TCP:

  -netdev socket-ng,id=socket0,mode=server,addr.type=inet,addr.host=localhost,addr.port=1234
  -netdev socket-ng,id=socket0,mode=client,addr.type=inet,addr.host=localhost,addr.port=1234

  -netdev socket-ng,id=socket0,mode=dgram,\
          local.type=inet,local.host=localhost,local.port=1234,\
          remote.type=inet,remote.host=localhost,remote.port=1235

  for UNIX:

  -netdev socket-ng,id=socket0,mode=server,addr.type=unix,addr.path=/tmp/qemu0
  -netdev socket-ng,id=socket0,mode=client,addr.type=unix,addr.path=/tmp/qemu0

  -netdev socket-ng,id=socket0,mode=dgram,\
          local.type=unix,local.path=/tmp/qemu0,\
          remote.type=unix,remote.path=/tmp/qemu1

  for FD:

  -netdev socket-ng,id=socket0,mode=server,addr.type=fd,addr.str=4
  -netdev socket-ng,id=socket0,mode=client,addr.type=fd,addr.str=5

  -netdev socket-ng,id=socket0,mode=dgram,local.type=fd,addr.str=4

CC: Ralph Schmieder <ralph.schmieder@gmail.com>
CC: Stefano Brivio <sbrivio@redhat.com>
CC: Daniel P. Berrangé <berrange@redhat.com>
CC: Markus Armbruster <armbru@redhat.com>

Laurent Vivier (6):
  net: introduce convert_host_port()
  qapi: net: add socket-ng netdev
  net: socket-ng: add unix socket for server and client mode.
  net: socket-ng: make dgram_dst generic
  net: socket-ng: move mcast specific code from
    net_socket_fd_init_dgram()
  net: socket-ng: add unix socket for dgram mode

 hmp-commands.hx        |    2 +-
 include/qemu/sockets.h |    2 +
 net/clients.h          |    3 +
 net/hub.c              |    1 +
 net/meson.build        |    1 +
 net/net.c              |  123 +++--
 net/socket-ng.c        | 1060 ++++++++++++++++++++++++++++++++++++++++
 qapi/net.json          |   41 +-
 8 files changed, 1200 insertions(+), 33 deletions(-)
 create mode 100644 net/socket-ng.c

-- 
2.35.3



^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2022-05-11 15:56 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-05-09 17:36 [RFC PATCH 0/6] qapi: net: add unix socket type support to netdev backend Laurent Vivier
2022-05-09 17:36 ` [RFC PATCH 1/6] net: introduce convert_host_port() Laurent Vivier
2022-05-10 21:24   ` Stefano Brivio
2022-05-11 15:54     ` Laurent Vivier
2022-05-09 17:36 ` [RFC PATCH 2/6] qapi: net: add socket-ng netdev Laurent Vivier
2022-05-10 21:24   ` Stefano Brivio
2022-05-11 14:33     ` Laurent Vivier
2022-05-09 17:36 ` [RFC PATCH 3/6] net: socket-ng: add unix socket for server and client mode Laurent Vivier
2022-05-09 17:36 ` [RFC PATCH 4/6] net: socket-ng: make dgram_dst generic Laurent Vivier
2022-05-10 21:24   ` Stefano Brivio
2022-05-09 17:36 ` [RFC PATCH 5/6] net: socket-ng: move mcast specific code from net_socket_fd_init_dgram() Laurent Vivier
2022-05-09 17:36 ` [RFC PATCH 6/6] net: socket-ng: add unix socket for dgram mode Laurent Vivier
2022-05-10  8:26 ` [RFC PATCH 0/6] qapi: net: add unix socket type support to netdev backend Daniel P. Berrangé
2022-05-10  8:59   ` Stefano Brivio
2022-05-10  9:22     ` Daniel P. Berrangé
2022-05-10 10:09       ` Stefano Brivio
2022-05-10 10:10       ` Ralph Schmieder
2022-05-10  9:47   ` Laurent Vivier

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.