Yuval Shaia <[email protected]> writes:
> pvrdma requires that the same GID attached to it will be attached to the
> backend device in the host.
>
> A new QMP messages is defined so pvrdma device can broadcast any change
> made to its GID table. This event is captured by libvirt which in turn
> will update the GID table in the backend device.
>
> Signed-off-by: Yuval Shaia <[email protected]>
> Reviewed-by: Marcel Apfelbaum <[email protected]>
> ---
> MAINTAINERS | 1 +
> Makefile.objs | 1 +
> qapi/qapi-schema.json | 1 +
> qapi/rdma.json | 38 ++++++++++++++++++++++++++++++++++++++
> 4 files changed, 41 insertions(+)
> create mode 100644 qapi/rdma.json
>
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 7b68080094..525bcdcf41 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -2335,6 +2335,7 @@ F: hw/rdma/*
> F: hw/rdma/vmw/*
> F: docs/pvrdma.txt
> F: contrib/rdmacm-mux/*
> +F: qapi/rdma.json
>
> Build and test automation
> -------------------------
> diff --git a/Makefile.objs b/Makefile.objs
> index 319f14d937..fe3566b797 100644
> --- a/Makefile.objs
> +++ b/Makefile.objs
> @@ -1,5 +1,6 @@
> QAPI_MODULES = block-core block char common crypto introspect job migration
> QAPI_MODULES += misc net rocker run-state sockets tpm trace transaction ui
> +QAPI_MODULES += rdma
Please keep the list of QAPI modules sorted, e.g. like this:
QAPI_MODULES = block-core block char common crypto introspect job
QAPI_MODULES += migration misc net rdma rocker run-state sockets tpm
QAPI_MODULES += trace transaction ui
>
> #######################################################################
> # Common libraries for tools and emulators
> diff --git a/qapi/qapi-schema.json b/qapi/qapi-schema.json
> index 65b6dc2f6f..3bbdfcee84 100644
> --- a/qapi/qapi-schema.json
> +++ b/qapi/qapi-schema.json
> @@ -86,6 +86,7 @@
> { 'include': 'char.json' }
> { 'include': 'job.json' }
> { 'include': 'net.json' }
> +{ 'include': 'rdma.json' }
> { 'include': 'rocker.json' }
> { 'include': 'tpm.json' }
> { 'include': 'ui.json' }
> diff --git a/qapi/rdma.json b/qapi/rdma.json
> new file mode 100644
> index 0000000000..804c68ab36
> --- /dev/null
> +++ b/qapi/rdma.json
> @@ -0,0 +1,38 @@
> +# -*- Mode: Python -*-
> +#
> +
> +##
> +# = RDMA device
> +##
> +
> +##
> +# @RDMA_GID_STATUS_CHANGED:
> +#
> +# Emitted when guest driver adds/deletes GID to/from device
> +#
> +# @netdev: RoCE Network Device name - char *
> +#
> +# @gid-status: Add or delete indication - bool
> +#
> +# @subnet-prefix: Subnet Prefix - uint64
> +#
> +# @interface-id : Interface ID - uint64
> +#
> +# Since: 3.2
> +#
> +# Example:
> +#
> +# <- {"timestamp": {"seconds": 1541579657, "microseconds": 986760},
> +# "event": "RDMA_GID_STATUS_CHANGED",
> +# "data":
> +# {"netdev": "bridge0",
> +# "interface-id": 15880512517475447892,
> +# "gid-status": true,
> +# "subnet-prefix": 33022}}
> +#
> +##
> +{ 'event': 'RDMA_GID_STATUS_CHANGED',
> + 'data': { 'netdev' : 'str',
> + 'gid-status' : 'bool',
> + 'subnet-prefix' : 'uint64',
> + 'interface-id' : 'uint64' } }
Preferably with Makefile.objs tidied up:
Acked-by: Markus Armbruster <[email protected]>