Message ID | 20230713105713.236883-2-het.gala@nutanix.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | migration: Modify 'migrate' and 'migrate-incoming' QAPI commands for migration | expand |
On Thu, Jul 13, 2023 at 10:57:05AM +0000, Het Gala wrote: > This patch introduces well defined MigrateAddress struct > and its related child objects. > > The existing argument of 'migrate' and 'migrate-incoming' QAPI > - 'uri' is of type string. The current implementation follows > double encoding scheme for fetching migration parameters like > 'uri' and this is not an ideal design. > > Motive for intoducing struct level design is to prevent double > encoding of QAPI arguments, as Qemu should be able to directly > use the QAPI arguments without any level of encoding. > > Note: this commit only adds the type, and actual uses comes > in later commits. > > Suggested-by: Aravind Retnakaran <aravind.retnakaran@nutanix.com> > Signed-off-by: Het Gala <het.gala@nutanix.com> > Reviewed-by: Juan Quintela <quintela@redhat.com> > Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> > Acked-by: Markus Armbruster <armbru@redhat.com> > --- > qapi/migration.json | 41 +++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 41 insertions(+) > > diff --git a/qapi/migration.json b/qapi/migration.json > index 47dfef0278..b583642c2d 100644 > --- a/qapi/migration.json > +++ b/qapi/migration.json > @@ -1417,6 +1417,47 @@ > ## > { 'command': 'migrate-continue', 'data': {'state': 'MigrationStatus'} } > > +## > +# @MigrationAddressType: > +# > +# The migration stream transport mechanisms. > +# > +# @socket: Migrate via socket. > +# > +# @exec: Direct the migration stream to another process. > +# > +# @rdma: Migrate via RDMA. > +# > +# Since 8.1 Note we're in freeze for 8.1 now, so unfortunately this series has missed the cut off. Update to 8.2 across all patches, next time you post this series. With regards, Daniel
diff --git a/qapi/migration.json b/qapi/migration.json index 47dfef0278..b583642c2d 100644 --- a/qapi/migration.json +++ b/qapi/migration.json @@ -1417,6 +1417,47 @@ ## { 'command': 'migrate-continue', 'data': {'state': 'MigrationStatus'} } +## +# @MigrationAddressType: +# +# The migration stream transport mechanisms. +# +# @socket: Migrate via socket. +# +# @exec: Direct the migration stream to another process. +# +# @rdma: Migrate via RDMA. +# +# Since 8.1 +## +{ 'enum': 'MigrationAddressType', + 'data': ['socket', 'exec', 'rdma'] } + +## +# @MigrationExecCommand: +# +# @args: command (list head) and arguments to execute. +# +# Since 8.1 +## +{ 'struct': 'MigrationExecCommand', + 'data': {'args': [ 'str' ] } } + +## +# @MigrationAddress: +# +# Migration endpoint configuration. +# +# Since 8.1 +## +{ 'union': 'MigrationAddress', + 'base': { 'transport' : 'MigrationAddressType'}, + 'discriminator': 'transport', + 'data': { + 'socket': 'SocketAddress', + 'exec': 'MigrationExecCommand', + 'rdma': 'InetSocketAddress' } } + ## # @migrate: #