Message ID | 20181105124559.21561-11-yuval.shaia@oracle.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Add support for RDMA MAD | expand |
On 11/5/18 6:45 AM, Yuval Shaia wrote: > 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> > --- > +++ b/qapi/rdma.json > @@ -0,0 +1,34 @@ > +# -*- 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: 2.12.1 You've missed 2.12.1 by a long shot. Since we are in soft freeze and this is a new feature, the soonest this can be released is in 3.2. > +# > +# Example: > +# > +# <- { {"timestamp": {"seconds": 1540819325, "microseconds": 504544}, > +# "event": "ADDGID", "data": {"netdev": "bridge0", > +# "interface-id": 7052258031502978997, "subnet-prefix": 33022}} > +# > +## > +{ 'event': 'RDMA_GID_STATUS_CHANGED', > + 'data': { 'netdev' : 'str', > + 'gid-status' : 'bool', > + 'subnet-prefix' : 'uint64', > + 'interface-id' : 'uint64' } } >
On Mon, Nov 05, 2018 at 09:58:56AM -0600, Eric Blake wrote: > On 11/5/18 6:45 AM, Yuval Shaia wrote: > > 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> > > --- > > > +++ b/qapi/rdma.json > > @@ -0,0 +1,34 @@ > > +# -*- 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: 2.12.1 > > You've missed 2.12.1 by a long shot. Since we are in soft freeze and this is > a new feature, the soonest this can be released is in 3.2. Sure, will do the change. Thanks. > > > +# > > +# Example: > > +# > > +# <- { {"timestamp": {"seconds": 1540819325, "microseconds": 504544}, > > +# "event": "ADDGID", "data": {"netdev": "bridge0", > > +# "interface-id": 7052258031502978997, "subnet-prefix": 33022}} > > +# > > +## > > +{ 'event': 'RDMA_GID_STATUS_CHANGED', > > + 'data': { 'netdev' : 'str', > > + 'gid-status' : 'bool', > > + 'subnet-prefix' : 'uint64', > > + 'interface-id' : 'uint64' } } > > > > -- > Eric Blake, Principal Software Engineer > Red Hat, Inc. +1-919-301-3266 > Virtualization: qemu.org | libvirt.org
On Mon, Nov 05, 2018 at 09:58:56AM -0600, Eric Blake wrote: > On 11/5/18 6:45 AM, Yuval Shaia wrote: > > 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> > > --- > > > +++ b/qapi/rdma.json > > @@ -0,0 +1,34 @@ > > +# -*- 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: 2.12.1 > > You've missed 2.12.1 by a long shot. Since we are in soft freeze and this is > a new feature, the soonest this can be released is in 3.2. Sure, thanks, will adjust accordingly. > > > +# > > +# Example: > > +# > > +# <- { {"timestamp": {"seconds": 1540819325, "microseconds": 504544}, > > +# "event": "ADDGID", "data": {"netdev": "bridge0", > > +# "interface-id": 7052258031502978997, "subnet-prefix": 33022}} Also will update this example. > > +# > > +## > > +{ 'event': 'RDMA_GID_STATUS_CHANGED', > > + 'data': { 'netdev' : 'str', > > + 'gid-status' : 'bool', > > + 'subnet-prefix' : 'uint64', > > + 'interface-id' : 'uint64' } } > > > > -- > Eric Blake, Principal Software Engineer > Red Hat, Inc. +1-919-301-3266 > Virtualization: qemu.org | libvirt.org
diff --git a/MAINTAINERS b/MAINTAINERS index e087d58ac6..a149f68a8f 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -2232,6 +2232,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 b/Makefile index 94072776ff..db4ce60ee5 100644 --- a/Makefile +++ b/Makefile @@ -599,7 +599,8 @@ qapi-modules = $(SRC_PATH)/qapi/qapi-schema.json $(SRC_PATH)/qapi/common.json \ $(SRC_PATH)/qapi/tpm.json \ $(SRC_PATH)/qapi/trace.json \ $(SRC_PATH)/qapi/transaction.json \ - $(SRC_PATH)/qapi/ui.json + $(SRC_PATH)/qapi/ui.json \ + $(SRC_PATH)/qapi/rdma.json qapi/qapi-builtin-types.c qapi/qapi-builtin-types.h \ qapi/qapi-types.c qapi/qapi-types.h \ diff --git a/Makefile.objs b/Makefile.objs index cc7df3ad80..76d8028f2f 100644 --- a/Makefile.objs +++ b/Makefile.objs @@ -21,6 +21,7 @@ util-obj-y += qapi/qapi-types-tpm.o util-obj-y += qapi/qapi-types-trace.o util-obj-y += qapi/qapi-types-transaction.o util-obj-y += qapi/qapi-types-ui.o +util-obj-y += qapi/qapi-types-rdma.o util-obj-y += qapi/qapi-builtin-visit.o util-obj-y += qapi/qapi-visit.o util-obj-y += qapi/qapi-visit-block-core.o @@ -40,6 +41,7 @@ util-obj-y += qapi/qapi-visit-tpm.o util-obj-y += qapi/qapi-visit-trace.o util-obj-y += qapi/qapi-visit-transaction.o util-obj-y += qapi/qapi-visit-ui.o +util-obj-y += qapi/qapi-visit-rdma.o util-obj-y += qapi/qapi-events.o util-obj-y += qapi/qapi-events-block-core.o util-obj-y += qapi/qapi-events-block.o @@ -58,6 +60,7 @@ util-obj-y += qapi/qapi-events-tpm.o util-obj-y += qapi/qapi-events-trace.o util-obj-y += qapi/qapi-events-transaction.o util-obj-y += qapi/qapi-events-ui.o +util-obj-y += qapi/qapi-events-rdma.o util-obj-y += qapi/qapi-introspect.o chardev-obj-y = chardev/ @@ -155,6 +158,7 @@ common-obj-y += qapi/qapi-commands-tpm.o common-obj-y += qapi/qapi-commands-trace.o common-obj-y += qapi/qapi-commands-transaction.o common-obj-y += qapi/qapi-commands-ui.o +common-obj-y += qapi/qapi-commands-rdma.o common-obj-y += qapi/qapi-introspect.o common-obj-y += qmp.o hmp.o endif diff --git a/qapi/qapi-schema.json b/qapi/qapi-schema.json index 65b6dc2f6f..a650d80f83 100644 --- a/qapi/qapi-schema.json +++ b/qapi/qapi-schema.json @@ -94,3 +94,4 @@ { 'include': 'trace.json' } { 'include': 'introspect.json' } { 'include': 'misc.json' } +{ 'include': 'rdma.json' } diff --git a/qapi/rdma.json b/qapi/rdma.json new file mode 100644 index 0000000000..44d6432e8d --- /dev/null +++ b/qapi/rdma.json @@ -0,0 +1,34 @@ +# -*- 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: 2.12.1 +# +# Example: +# +# <- { {"timestamp": {"seconds": 1540819325, "microseconds": 504544}, +# "event": "ADDGID", "data": {"netdev": "bridge0", +# "interface-id": 7052258031502978997, "subnet-prefix": 33022}} +# +## +{ 'event': 'RDMA_GID_STATUS_CHANGED', + 'data': { 'netdev' : 'str', + 'gid-status' : 'bool', + 'subnet-prefix' : 'uint64', + 'interface-id' : 'uint64' } }
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> --- MAINTAINERS | 1 + Makefile | 3 ++- Makefile.objs | 4 ++++ qapi/qapi-schema.json | 1 + qapi/rdma.json | 34 ++++++++++++++++++++++++++++++++++ 5 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 qapi/rdma.json