Just a quick one on naming before I forget: Het Gala <het.g...@nutanix.com> writes:
> Existing 'migrate' QAPI design enforces transport mechanism, ip address > of destination interface and corresponding port number in the form > of a unified string 'uri' parameter for initiating a migration stream. > This scheme has a significant flaw in it - double encoding of existing > URIs to extract migration info. > > The current patch maps QAPI uri design onto well defined MigrateChannel > struct. This modified QAPI helps in preventing multi-level uri > encodings ('uri' parameter is kept for backward compatibility). > > Reviewed-by: Eric Blake <ebl...@redhat.com> > Reviewed-by: Markus Armbruster <arm...@redhat.com> > Reviewed-by: Dr. David Alan Gilbert <dgilb...@redhat.com> > Suggested-by: Daniel P. Berrange <berra...@redhat.com> > Suggested-by: Manish Mishra <manish.mis...@nutanix.com> > Suggested-by: Aravind Retnakaran <aravind.retnaka...@nutanix.com> > Signed-off-by: Het Gala <het.g...@nutanix.com> > --- > qapi/migration.json | 129 +++++++++++++++++++++++++++++++++++++++++++- > 1 file changed, 127 insertions(+), 2 deletions(-) > > diff --git a/qapi/migration.json b/qapi/migration.json > index c84fa10e86..261a6770e7 100644 > --- a/qapi/migration.json > +++ b/qapi/migration.json > @@ -1449,12 +1449,106 @@ > ## > { 'command': 'migrate-continue', 'data': {'state': 'MigrationStatus'} } > > +## > +# @MigrateTransport: > +# > +# The supported communication transport mechanisms for migration > +# > +# @socket: Supported communication type between two devices for migration. > +# Socket is able to cover all of 'tcp', 'unix', 'vsock' and > +# 'fd' already > +# > +# @exec: Supported communication type to redirect migration stream into file. > +# > +# @rdma: Supported communication type to redirect rdma type migration stream. > +# > +# Since 8.0 > +## > +{ 'enum': 'MigrateTransport', > + 'data': ['socket', 'exec', 'rdma'] } > + > +## > +# @MigrateSocketAddr: > +# > +# To support different type of socket. > +# > +# Since 8.0 > +## > +{ 'struct': 'MigrateSocketAddr', We tend to avoid abbreviations in QAPI schema names. For instance, it's SocketAddress, not SocketAddr. Please use Address, not Addr, for consistency. > + 'data': {'data': 'SocketAddress' } } > + [...]