qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH v2 04/16] qapi-schema: Collect sockets stuff in


From: Marc-André Lureau
Subject: Re: [Qemu-devel] [PATCH v2 04/16] qapi-schema: Collect sockets stuff in qapi/sockets.json
Date: Fri, 25 Aug 2017 11:05:46 +0000

On Thu, Aug 24, 2017 at 9:18 PM Markus Armbruster <address@hidden> wrote:

> Cc: "Daniel P. Berrange" <address@hidden>
> Cc: Gerd Hoffmann <address@hidden>
> Cc: Paolo Bonzini <address@hidden>
> Signed-off-by: Markus Armbruster <address@hidden>
>

Reviewed-by: Marc-André Lureau <address@hidden>



> ---
>  MAINTAINERS          |   1 +
>  Makefile             |   4 +-
>  qapi-schema.json     | 152
> +--------------------------------------------------
>  qapi/block-core.json |   2 +-
>  qapi/common.json     |  11 ++++
>  qapi/sockets.json    | 147
> +++++++++++++++++++++++++++++++++++++++++++++++++
>  6 files changed, 164 insertions(+), 153 deletions(-)
>  create mode 100644 qapi/sockets.json
>
> diff --git a/MAINTAINERS b/MAINTAINERS
> index ccee28b..fb90a19 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -1535,6 +1535,7 @@ M: Paolo Bonzini <address@hidden>
>  S: Maintained
>  F: include/qemu/sockets.h
>  F: util/qemu-sockets.c
> +F: qapi/sockets.json
>
>  Throttling infrastructure
>  M: Alberto Garcia <address@hidden>
> diff --git a/Makefile b/Makefile
> index 81447b1..ca4a03c 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -410,8 +410,10 @@ $(SRC_PATH)/qga/qapi-schema.json
> $(SRC_PATH)/scripts/qapi-commands.py $(qapi-py)
>
>  qapi-modules = $(SRC_PATH)/qapi-schema.json $(SRC_PATH)/qapi/common.json \
>                 $(SRC_PATH)/qapi/block.json
> $(SRC_PATH)/qapi/block-core.json \
> +               $(SRC_PATH)/qapi/crypto.json \
>                 $(SRC_PATH)/qapi/event.json
> $(SRC_PATH)/qapi/introspect.json \
> -               $(SRC_PATH)/qapi/crypto.json $(SRC_PATH)/qapi/rocker.json \
> +               $(SRC_PATH)/qapi/rocker.json \
> +               $(SRC_PATH)/qapi/sockets.json \
>                 $(SRC_PATH)/qapi/trace.json
>
>  qapi-types.c qapi-types.h :\
> diff --git a/qapi-schema.json b/qapi-schema.json
> index add4777..d69b6da 100644
> --- a/qapi-schema.json
> +++ b/qapi-schema.json
> @@ -79,6 +79,7 @@
>  # include it first in qapi-schema.json.
>
>  { 'include': 'qapi/common.json' }
> +{ 'include': 'qapi/sockets.json' }
>  { 'include': 'qapi/crypto.json' }
>  { 'include': 'qapi/block.json' }
>  { 'include': 'qapi/rocker.json' }
> @@ -1616,26 +1617,6 @@
>  { 'command': 'query-iothreads', 'returns': ['IOThreadInfo'] }
>
>  ##
> -# @NetworkAddressFamily:
> -#
> -# The network address family
> -#
> -# @ipv4: IPV4 family
> -#
> -# @ipv6: IPV6 family
> -#
> -# @unix: unix socket
> -#
> -# @vsock: vsock family (since 2.8)
> -#
> -# @unknown: otherwise
> -#
> -# Since: 2.1
> -##
> -{ 'enum': 'NetworkAddressFamily',
> -  'data': [ 'ipv4', 'ipv6', 'unix', 'vsock', 'unknown' ] }
>

This enum is actually only used in ui.json after your series. But I suppose
it makes more sense in sockets.json

-
> -##
>  # @VncBasicInfo:
>  #
>  # The basic information for vnc network connection
> @@ -3696,17 +3677,6 @@
>      '*vectors': 'uint32' } }
>
>  ##
> -# @String:
> -#
> -# A fat type wrapping 'str', to be embedded in lists.
> -#
> -# Since: 1.2
> -##
> -{ 'struct': 'String',
> -  'data': {
> -    'str': 'str' } }
> -
> -##
>  # @NetdevUserOptions:
>  #
>  # Use the user mode network stack which requires no administrator
> privilege to
> @@ -4157,126 +4127,6 @@
>    'data': [ 'all', 'rx', 'tx' ] }
>
>  ##
> -# @InetSocketAddressBase:
> -#
> -# @host: host part of the address
> -# @port: port part of the address
> -##
> -{ 'struct': 'InetSocketAddressBase',
> -  'data': {
> -    'host': 'str',
> -    'port': 'str' } }
> -
> -##
> -# @InetSocketAddress:
> -#
> -# Captures a socket address or address range in the Internet namespace.
> -#
> -# @numeric: true if the host/port are guaranteed to be numeric,
> -#           false if name resolution should be attempted. Defaults to
> false.
> -#           (Since 2.9)
> -#
> -# @to: If present, this is range of possible addresses, with port
> -#      between @port and @to.
> -#
> -# @ipv4: whether to accept IPv4 addresses, default try both IPv4 and IPv6
> -#
> -# @ipv6: whether to accept IPv6 addresses, default try both IPv4 and IPv6
> -#
> -# Since: 1.3
> -##
> -{ 'struct': 'InetSocketAddress',
> -  'base': 'InetSocketAddressBase',
> -  'data': {
> -    '*numeric':  'bool',
> -    '*to': 'uint16',
> -    '*ipv4': 'bool',
> -    '*ipv6': 'bool' } }
> -
> -##
> -# @UnixSocketAddress:
> -#
> -# Captures a socket address in the local ("Unix socket") namespace.
> -#
> -# @path: filesystem path to use
> -#
> -# Since: 1.3
> -##
> -{ 'struct': 'UnixSocketAddress',
> -  'data': {
> -    'path': 'str' } }
> -
> -##
> -# @VsockSocketAddress:
> -#
> -# Captures a socket address in the vsock namespace.
> -#
> -# @cid: unique host identifier
> -# @port: port
> -#
> -# Note: string types are used to allow for possible future hostname or
> -# service resolution support.
> -#
> -# Since: 2.8
> -##
> -{ 'struct': 'VsockSocketAddress',
> -  'data': {
> -    'cid': 'str',
> -    'port': 'str' } }
> -
> -##
> -# @SocketAddressLegacy:
> -#
> -# Captures the address of a socket, which could also be a named file
> descriptor
> -#
> -# Note: This type is deprecated in favor of SocketAddress.  The
> -# difference between SocketAddressLegacy and SocketAddress is that the
> -# latter is a flat union rather than a simple union. Flat is nicer
> -# because it avoids nesting on the wire, i.e. that form has fewer {}.
> -
> -#
> -# Since: 1.3
> -##
> -{ 'union': 'SocketAddressLegacy',
> -  'data': {
> -    'inet': 'InetSocketAddress',
> -    'unix': 'UnixSocketAddress',
> -    'vsock': 'VsockSocketAddress',
> -    'fd': 'String' } }
> -
> -##
> -# @SocketAddressType:
> -#
> -# Available SocketAddress types
> -#
> -# @inet:  Internet address
> -#
> -# @unix:  Unix domain socket
> -#
> -# Since: 2.9
> -##
> -{ 'enum': 'SocketAddressType',
> -  'data': [ 'inet', 'unix', 'vsock', 'fd' ] }
> -
> -##
> -# @SocketAddress:
> -#
> -# Captures the address of a socket, which could also be a named file
> -# descriptor
> -#
> -# @type:       Transport type
> -#
> -# Since: 2.9
> -##
> -{ 'union': 'SocketAddress',
> -  'base': { 'type': 'SocketAddressType' },
> -  'discriminator': 'type',
> -  'data': { 'inet': 'InetSocketAddress',
> -            'unix': 'UnixSocketAddress',
> -            'vsock': 'VsockSocketAddress',
> -            'fd': 'String' } }
> -
> -##
>  # @getfd:
>  #
>  # Receive a file descriptor via SCM rights and assign it a name
> diff --git a/qapi/block-core.json b/qapi/block-core.json
> index 833c602..5379674 100644
> --- a/qapi/block-core.json
> +++ b/qapi/block-core.json
> @@ -4,8 +4,8 @@
>  # == QAPI block core definitions (vm unrelated)
>  ##
>
> -# QAPI common definitions
>  { 'include': 'common.json' }
> +{ 'include': 'sockets.json' }
>
>  ##
>  # @SnapshotInfo:
> diff --git a/qapi/common.json b/qapi/common.json
> index 8355d5a..862e73f 100644
> --- a/qapi/common.json
> +++ b/qapi/common.json
> @@ -162,3 +162,14 @@
>  ##
>  { 'enum': 'OnOffSplit',
>    'data': [ 'on', 'off', 'split' ] }
> +
> +##
> +# @String:
> +#
> +# A fat type wrapping 'str', to be embedded in lists.
> +#
> +# Since: 1.2
> +##
> +{ 'struct': 'String',
> +  'data': {
> +    'str': 'str' } }
> diff --git a/qapi/sockets.json b/qapi/sockets.json
> new file mode 100644
> index 0000000..ac022c6
> --- /dev/null
> +++ b/qapi/sockets.json
> @@ -0,0 +1,147 @@
> +# -*- Mode: Python -*-
> +
> +##
> +# = Socket data types
> +##
> +
> +{ 'include': 'common.json' }
> +
> +##
> +# @NetworkAddressFamily:
> +#
> +# The network address family
> +#
> +# @ipv4: IPV4 family
> +#
> +# @ipv6: IPV6 family
> +#
> +# @unix: unix socket
> +#
> +# @vsock: vsock family (since 2.8)
> +#
> +# @unknown: otherwise
> +#
> +# Since: 2.1
> +##
> +{ 'enum': 'NetworkAddressFamily',
> +  'data': [ 'ipv4', 'ipv6', 'unix', 'vsock', 'unknown' ] }
> +
> +##
> +# @InetSocketAddressBase:
> +#
> +# @host: host part of the address
> +# @port: port part of the address
> +##
> +{ 'struct': 'InetSocketAddressBase',
> +  'data': {
> +    'host': 'str',
> +    'port': 'str' } }
> +
> +##
> +# @InetSocketAddress:
> +#
> +# Captures a socket address or address range in the Internet namespace.
> +#
> +# @numeric: true if the host/port are guaranteed to be numeric,
> +#           false if name resolution should be attempted. Defaults to
> false.
> +#           (Since 2.9)
> +#
> +# @to: If present, this is range of possible addresses, with port
> +#      between @port and @to.
> +#
> +# @ipv4: whether to accept IPv4 addresses, default try both IPv4 and IPv6
> +#
> +# @ipv6: whether to accept IPv6 addresses, default try both IPv4 and IPv6
> +#
> +# Since: 1.3
> +##
> +{ 'struct': 'InetSocketAddress',
> +  'base': 'InetSocketAddressBase',
> +  'data': {
> +    '*numeric':  'bool',
> +    '*to': 'uint16',
> +    '*ipv4': 'bool',
> +    '*ipv6': 'bool' } }
> +
> +##
> +# @UnixSocketAddress:
> +#
> +# Captures a socket address in the local ("Unix socket") namespace.
> +#
> +# @path: filesystem path to use
> +#
> +# Since: 1.3
> +##
> +{ 'struct': 'UnixSocketAddress',
> +  'data': {
> +    'path': 'str' } }
> +
> +##
> +# @VsockSocketAddress:
> +#
> +# Captures a socket address in the vsock namespace.
> +#
> +# @cid: unique host identifier
> +# @port: port
> +#
> +# Note: string types are used to allow for possible future hostname or
> +# service resolution support.
> +#
> +# Since: 2.8
> +##
> +{ 'struct': 'VsockSocketAddress',
> +  'data': {
> +    'cid': 'str',
> +    'port': 'str' } }
> +
> +##
> +# @SocketAddressLegacy:
> +#
> +# Captures the address of a socket, which could also be a named file
> descriptor
> +#
> +# Note: This type is deprecated in favor of SocketAddress.  The
> +# difference between SocketAddressLegacy and SocketAddress is that the
> +# latter is a flat union rather than a simple union. Flat is nicer
> +# because it avoids nesting on the wire, i.e. that form has fewer {}.
> +
> +#
> +# Since: 1.3
> +##
> +{ 'union': 'SocketAddressLegacy',
> +  'data': {
> +    'inet': 'InetSocketAddress',
> +    'unix': 'UnixSocketAddress',
> +    'vsock': 'VsockSocketAddress',
> +    'fd': 'String' } }
> +
> +##
> +# @SocketAddressType:
> +#
> +# Available SocketAddress types
> +#
> +# @inet:  Internet address
> +#
> +# @unix:  Unix domain socket
> +#
> +# Since: 2.9
> +##
> +{ 'enum': 'SocketAddressType',
> +  'data': [ 'inet', 'unix', 'vsock', 'fd' ] }
> +
> +##
> +# @SocketAddress:
> +#
> +# Captures the address of a socket, which could also be a named file
> +# descriptor
> +#
> +# @type:       Transport type
> +#
> +# Since: 2.9
> +##
> +{ 'union': 'SocketAddress',
> +  'base': { 'type': 'SocketAddressType' },
> +  'discriminator': 'type',
> +  'data': { 'inet': 'InetSocketAddress',
> +            'unix': 'UnixSocketAddress',
> +            'vsock': 'VsockSocketAddress',
> +            'fd': 'String' } }
> --
> 2.7.5
>
>
> --
Marc-André Lureau


reply via email to

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