qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v3 08/27] migration: add helpers for creating QE


From: Dr. David Alan Gilbert
Subject: Re: [Qemu-devel] [PATCH v3 08/27] migration: add helpers for creating QEMUFile from a QIOChannel
Date: Thu, 10 Mar 2016 14:52:30 +0000
User-agent: Mutt/1.5.24 (2015-08-30)

* Daniel P. Berrange (address@hidden) wrote:
> Currently creating a QEMUFile instance from a QIOChannel is
> quite simple only requiring a single call to
> qemu_fopen_channel_input or  qemu_fopen_channel_output
> depending on the end of migration connection.
> 
> When QEMU gains TLS support, however, there will need to be
> a TLS negotiation done inbetween creation of the QIOChannel
> and creation of the final QEMUFile. Introduce some helper
> methods that will encapsulate this logic, isolating the
> migration protocol drivers from knowledge about TLS.
> 
> Signed-off-by: Daniel P. Berrange <address@hidden>
> ---
>  include/migration/migration.h |  6 ++++++
>  migration/migration.c         | 21 +++++++++++++++++++++
>  2 files changed, 27 insertions(+)
> 
> diff --git a/include/migration/migration.h b/include/migration/migration.h
> index 85b6026..35db68a 100644
> --- a/include/migration/migration.h
> +++ b/include/migration/migration.h
> @@ -177,6 +177,12 @@ void process_incoming_migration(QEMUFile *f);
>  
>  void qemu_start_incoming_migration(const char *uri, Error **errp);
>  
> +void migration_set_incoming_channel(MigrationState *s,
> +                                    QIOChannel *ioc);
> +
> +void migration_set_outgoing_channel(MigrationState *s,
> +                                    QIOChannel *ioc);
> +
>  uint64_t migrate_max_downtime(void);
>  
>  void exec_start_incoming_migration(const char *host_port, Error **errp);
> diff --git a/migration/migration.c b/migration/migration.c
> index c173b75..76a4aac 100644
> --- a/migration/migration.c
> +++ b/migration/migration.c
> @@ -419,6 +419,27 @@ void process_incoming_migration(QEMUFile *f)
>      qemu_coroutine_enter(co, f);
>  }
>  
> +
> +void migration_set_incoming_channel(MigrationState *s,
> +                                    QIOChannel *ioc)
> +{
> +    QEMUFile *f = qemu_fopen_channel_input(ioc);
> +
> +    process_incoming_migration(f);
> +}

It's a bit weird to be passing a MigrationState to an 'incoming'
but I can see in your use of it later this is just to get to
the parameters which makes sens.

Reviewed-by: Dr. David Alan Gilbert <address@hidden>

> +
> +void migration_set_outgoing_channel(MigrationState *s,
> +                                    QIOChannel *ioc)
> +{
> +    QEMUFile *f = qemu_fopen_channel_output(ioc);
> +
> +    s->to_dst_file = f;
> +
> +    migrate_fd_connect(s);
> +}
> +
> +
>  /*
>   * Send a message on the return channel back to the source
>   * of the migration.
> -- 
> 2.5.0
> 
--
Dr. David Alan Gilbert / address@hidden / Manchester, UK



reply via email to

[Prev in Thread] Current Thread [Next in Thread]