mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-03 03:25:20 +00:00
Define keepalive protocol
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.
This commit is contained in:
parent
2afc5a7bbf
commit
4acd358a76
1
.gitignore
vendored
1
.gitignore
vendored
@ -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
|
||||
|
@ -285,7 +285,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.
|
||||
@ -293,6 +294,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.
|
||||
@ -1287,7 +1289,10 @@ probes.h: probes.d
|
||||
probes.o: probes.d
|
||||
$(AM_V_GEN)$(DTRACE) -o $@ -G -s $<
|
||||
|
||||
RPC_PROBE_FILES = $(srcdir)/rpc/virnetprotocol.x $(srcdir)/remote/remote_protocol.x $(srcdir)/remote/qemu_protocol.x
|
||||
RPC_PROBE_FILES = $(srcdir)/rpc/virnetprotocol.x \
|
||||
$(srcdir)/rpc/virkeepaliveprotocol.x \
|
||||
$(srcdir)/remote/remote_protocol.x \
|
||||
$(srcdir)/remote/qemu_protocol.x
|
||||
|
||||
libvirt_functions.stp: $(RPC_PROBE_FILES) $(srcdir)/rpc/gensystemtap.pl
|
||||
$(AM_V_GEN)perl -w $(srcdir)/rpc/gensystemtap.pl $(RPC_PROBE_FILES) > $@
|
||||
@ -1366,11 +1371,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)
|
||||
|
||||
@ -1378,7 +1386,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
|
||||
|
7
src/rpc/virkeepaliveprotocol.x
Normal file
7
src/rpc/virkeepaliveprotocol.x
Normal file
@ -0,0 +1,7 @@
|
||||
const KEEPALIVE_PROGRAM = 0x6b656570;
|
||||
const KEEPALIVE_PROTOCOL_VERSION = 1;
|
||||
|
||||
enum keepalive_procedure {
|
||||
KEEPALIVE_PROC_PING = 1,
|
||||
KEEPALIVE_PROC_PONG = 2
|
||||
};
|
Loading…
Reference in New Issue
Block a user