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 :| -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list