[libvirt] [PATCH v3 01/13] Define keepalive protocol
Daniel P. Berrange
berrange at redhat.com
Tue Oct 18 09:18:27 UTC 2011
On Wed, Oct 12, 2011 at 07:16:19AM +0200, Jiri Denemark wrote:
> The keepalive program has two procedures: PING, and PONG.
> Both are used only in asynchronous messages and the sender doesn't wait
> for any reply. However, the party which receives PING messages is
> supposed to react by sending PONG message the other party, but no
> explicit binding between PING and PONG messages is made. For backward
> compatibility neither server nor client are allowed to send keepalive
> messages before checking that remote party supports them.
> ---
> Notes:
> Version 3:
> - remove ADVERTISE message which is no longer used
>
> Version 2:
> - no change
>
> .gitignore | 1 +
> src/Makefile.am | 14 ++++++++++----
> src/rpc/virkeepaliveprotocol.x | 7 +++++++
> 3 files changed, 18 insertions(+), 4 deletions(-)
> create mode 100644 src/rpc/virkeepaliveprotocol.x
>
> diff --git a/.gitignore b/.gitignore
> index 41fa50f..3859fab 100644
> --- a/.gitignore
> +++ b/.gitignore
> @@ -65,6 +65,7 @@
> /src/locking/qemu-sanlock.conf
> /src/remote/*_client_bodies.h
> /src/remote/*_protocol.[ch]
> +/src/rpc/virkeepaliveprotocol.[ch]
> /src/rpc/virnetprotocol.[ch]
> /src/util/virkeymaps.h
> /tests/*.log
> diff --git a/src/Makefile.am b/src/Makefile.am
> index 302d395..af07020 100644
> --- a/src/Makefile.am
> +++ b/src/Makefile.am
> @@ -269,7 +269,8 @@ PDWTAGS = \
> PROTOCOL_STRUCTS = \
> $(srcdir)/remote_protocol-structs \
> $(srcdir)/qemu_protocol-structs \
> - $(srcdir)/virnetprotocol-structs
> + $(srcdir)/virnetprotocol-structs \
> + $(srcdir)/virkeepaliveprotocol-structs
> if WITH_REMOTE
> # The .o file that pdwtags parses is created as a side effect of running
> # libtool; but from make's perspective we depend on the .lo file.
> @@ -277,6 +278,7 @@ $(srcdir)/%_protocol-structs: libvirt_driver_remote_la-%_protocol.lo
> $(PDWTAGS)
> $(srcdir)/virnetprotocol-structs: libvirt_net_rpc_la-virnetprotocol.lo
> $(PDWTAGS)
> +$(srcdir)/virkeepaliveprotocol-structs: libvirt_net_rpc_la-virkeepaliveprotocol.lo
> else !WITH_REMOTE
> # These generated files must live in git, because they cannot be re-generated
> # when configured --without-remote.
> @@ -1352,11 +1354,14 @@ EXTRA_DIST += \
> rpc/gendispatch.pl \
> rpc/genprotocol.pl \
> rpc/gensystemtap.pl \
> - rpc/virnetprotocol.x
> + rpc/virnetprotocol.x \
> + rpc/virkeepaliveprotocol.x
>
> VIR_NET_RPC_GENERATED = \
> $(srcdir)/rpc/virnetprotocol.h \
> - $(srcdir)/rpc/virnetprotocol.c
> + $(srcdir)/rpc/virnetprotocol.c \
> + $(srcdir)/rpc/virkeepaliveprotocol.h \
> + $(srcdir)/rpc/virkeepaliveprotocol.c
>
> BUILT_SOURCES += $(VIR_NET_RPC_GENERATED)
>
> @@ -1364,7 +1369,8 @@ libvirt_net_rpc_la_SOURCES = \
> rpc/virnetmessage.h rpc/virnetmessage.c \
> rpc/virnetprotocol.h rpc/virnetprotocol.c \
> rpc/virnetsocket.h rpc/virnetsocket.c \
> - rpc/virnettlscontext.h rpc/virnettlscontext.c
> + rpc/virnettlscontext.h rpc/virnettlscontext.c \
> + rpc/virkeepaliveprotocol.h rpc/virkeepaliveprotocol.c
> if HAVE_SASL
> libvirt_net_rpc_la_SOURCES += \
> rpc/virnetsaslcontext.h rpc/virnetsaslcontext.c
> diff --git a/src/rpc/virkeepaliveprotocol.x b/src/rpc/virkeepaliveprotocol.x
> new file mode 100644
> index 0000000..ca34825
> --- /dev/null
> +++ b/src/rpc/virkeepaliveprotocol.x
> @@ -0,0 +1,7 @@
> +const KEEPALIVE_PROGRAM = 0x6b656570;
> +const KEEPALIVE_VERSION = 1;
> +
> +enum keepalive_procedure {
> + KEEPALIVE_PROC_PING = 1,
> + KEEPALIVE_PROC_PONG = 2
> +};
ACK, if you also add rpc/virkeepaliveprotocol.x to the RPC_PROBE_FILES
in the Makefile.am, so systemtap functions are updated.
Regards,
Daniel
--
|: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org -o- http://virt-manager.org :|
|: http://autobuild.org -o- http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|
More information about the libvir-list
mailing list