qapi-schema: Collect sockets stuff in qapi/sockets.json
Cc: "Daniel P. Berrange" <berrange@redhat.com> Cc: Gerd Hoffmann <kraxel@redhat.com> Cc: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Markus Armbruster <armbru@redhat.com> Message-Id: <1503602048-12268-5-git-send-email-armbru@redhat.com> Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
This commit is contained in:
parent
c7a4e0c40d
commit
a2ff5a48c4
@ -1535,6 +1535,7 @@ M: Paolo Bonzini <pbonzini@redhat.com>
|
|||||||
S: Maintained
|
S: Maintained
|
||||||
F: include/qemu/sockets.h
|
F: include/qemu/sockets.h
|
||||||
F: util/qemu-sockets.c
|
F: util/qemu-sockets.c
|
||||||
|
F: qapi/sockets.json
|
||||||
|
|
||||||
Throttling infrastructure
|
Throttling infrastructure
|
||||||
M: Alberto Garcia <berto@igalia.com>
|
M: Alberto Garcia <berto@igalia.com>
|
||||||
|
4
Makefile
4
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 \
|
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/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/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
|
$(SRC_PATH)/qapi/trace.json
|
||||||
|
|
||||||
qapi-types.c qapi-types.h :\
|
qapi-types.c qapi-types.h :\
|
||||||
|
152
qapi-schema.json
152
qapi-schema.json
@ -79,6 +79,7 @@
|
|||||||
# include it first in qapi-schema.json.
|
# include it first in qapi-schema.json.
|
||||||
|
|
||||||
{ 'include': 'qapi/common.json' }
|
{ 'include': 'qapi/common.json' }
|
||||||
|
{ 'include': 'qapi/sockets.json' }
|
||||||
{ 'include': 'qapi/crypto.json' }
|
{ 'include': 'qapi/crypto.json' }
|
||||||
{ 'include': 'qapi/block.json' }
|
{ 'include': 'qapi/block.json' }
|
||||||
{ 'include': 'qapi/rocker.json' }
|
{ 'include': 'qapi/rocker.json' }
|
||||||
@ -1615,26 +1616,6 @@
|
|||||||
##
|
##
|
||||||
{ 'command': 'query-iothreads', 'returns': ['IOThreadInfo'] }
|
{ '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' ] }
|
|
||||||
|
|
||||||
##
|
##
|
||||||
# @VncBasicInfo:
|
# @VncBasicInfo:
|
||||||
#
|
#
|
||||||
@ -3695,17 +3676,6 @@
|
|||||||
'*addr': 'str',
|
'*addr': 'str',
|
||||||
'*vectors': 'uint32' } }
|
'*vectors': 'uint32' } }
|
||||||
|
|
||||||
##
|
|
||||||
# @String:
|
|
||||||
#
|
|
||||||
# A fat type wrapping 'str', to be embedded in lists.
|
|
||||||
#
|
|
||||||
# Since: 1.2
|
|
||||||
##
|
|
||||||
{ 'struct': 'String',
|
|
||||||
'data': {
|
|
||||||
'str': 'str' } }
|
|
||||||
|
|
||||||
##
|
##
|
||||||
# @NetdevUserOptions:
|
# @NetdevUserOptions:
|
||||||
#
|
#
|
||||||
@ -4156,126 +4126,6 @@
|
|||||||
{ 'enum': 'NetFilterDirection',
|
{ 'enum': 'NetFilterDirection',
|
||||||
'data': [ 'all', 'rx', 'tx' ] }
|
'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:
|
# @getfd:
|
||||||
#
|
#
|
||||||
|
@ -4,8 +4,8 @@
|
|||||||
# == QAPI block core definitions (vm unrelated)
|
# == QAPI block core definitions (vm unrelated)
|
||||||
##
|
##
|
||||||
|
|
||||||
# QAPI common definitions
|
|
||||||
{ 'include': 'common.json' }
|
{ 'include': 'common.json' }
|
||||||
|
{ 'include': 'sockets.json' }
|
||||||
|
|
||||||
##
|
##
|
||||||
# @SnapshotInfo:
|
# @SnapshotInfo:
|
||||||
|
@ -162,3 +162,14 @@
|
|||||||
##
|
##
|
||||||
{ 'enum': 'OnOffSplit',
|
{ 'enum': 'OnOffSplit',
|
||||||
'data': [ 'on', 'off', 'split' ] }
|
'data': [ 'on', 'off', 'split' ] }
|
||||||
|
|
||||||
|
##
|
||||||
|
# @String:
|
||||||
|
#
|
||||||
|
# A fat type wrapping 'str', to be embedded in lists.
|
||||||
|
#
|
||||||
|
# Since: 1.2
|
||||||
|
##
|
||||||
|
{ 'struct': 'String',
|
||||||
|
'data': {
|
||||||
|
'str': 'str' } }
|
||||||
|
147
qapi/sockets.json
Normal file
147
qapi/sockets.json
Normal file
@ -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' } }
|
Loading…
Reference in New Issue
Block a user