Message ID | 20181122121402.13764-11-yuval.shaia@oracle.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Add support for RDMA MAD | expand |
Yuval Shaia <yuval.shaia@oracle.com> 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 <yuval.shaia@oracle.com> > Reviewed-by: Marcel Apfelbaum <marcel.apfelbaum@gmail.com> > --- > 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 <armbru@redhat.com>
On Mon, Nov 26, 2018 at 11:01:59AM +0100, Markus Armbruster wrote: > Yuval Shaia <yuval.shaia@oracle.com> 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 <yuval.shaia@oracle.com> > > Reviewed-by: Marcel Apfelbaum <marcel.apfelbaum@gmail.com> > > --- > > 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 Sure, will do. > > > > > ####################################################################### > > # 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 <armbru@redhat.com> Thanks
On 11/26/18 4:01 AM, Markus Armbruster wrote: > Yuval Shaia <yuval.shaia@oracle.com> 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 <yuval.shaia@oracle.com> >> Reviewed-by: Marcel Apfelbaum <marcel.apfelbaum@gmail.com> >> --- >> +++ 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 The next release will be 4.0, not 3.2 (we'll probably have to do a global search-and-replace in January to catch things that have slipped in, as your patch is not alone in that).
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 ####################################################################### # 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' } }