qemu-devel
[Top][All Lists]
Advanced

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

[RFC PATCH 0/6] qapi: net: add unix socket type support to netdev backen


From: Laurent Vivier
Subject: [RFC PATCH 0/6] qapi: net: add unix socket type support to netdev backend
Date: Mon, 9 May 2022 19:36:12 +0200

"-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




reply via email to

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