[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v6 for-2.7 09/28] migration: add helpers for cre
From: |
Juan Quintela |
Subject: |
Re: [Qemu-devel] [PATCH v6 for-2.7 09/28] migration: add helpers for creating QEMUFile from a QIOChannel |
Date: |
Wed, 04 May 2016 13:02:52 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux) |
"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.
>
> Reviewed-by: Dr. David Alan Gilbert <address@hidden>
> 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 ac2c12c..e335380 100644
> --- a/include/migration/migration.h
> +++ b/include/migration/migration.h
> @@ -179,6 +179,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 4732915..794df84 100644
> --- a/migration/migration.c
> +++ b/migration/migration.c
> @@ -428,6 +428,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);
> +}
> +
> +
> +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.
Looking at its use, I will propose change of names, but it is just a
suggestion. The functions don't just set the channel, they do the
migration.
migration_proccess_outgoing()
migration_proccess_incoming()?
No, the naming for incoming was right, the one for outgoing was not.
And yes, I understand that one is asynchrconous. This is why it is just
a suggestion. Sorry for not being able to came with better naming.
Later, Juan.