[libvirt] [PATCH 4/4] Cleanup remote protocol definitions

Daniel P. Berrange berrange at redhat.com
Mon Jun 27 14:24:39 UTC 2011


The standard remote protocol for libvirtd no longer needs to
include definitions of the generic message header/error structs
or status codes. This is all defined in the generic RPC protocol

* src/remote/remote_protocol.x: Remove all RPC message definitions
* src/remote/remote_protocol.h, src/remote/remote_protocol.c:
  Re-generate
* daemon/remote_generate_stubs.pl: Delete obsolete script
---
 src/remote/remote_protocol.x |  115 ------------------------------------------
 1 files changed, 0 insertions(+), 115 deletions(-)

diff --git a/src/remote/remote_protocol.x b/src/remote/remote_protocol.x
index ee08b82..342f392 100644
--- a/src/remote/remote_protocol.x
+++ b/src/remote/remote_protocol.x
@@ -60,15 +60,6 @@
 
 /*----- Data types. -----*/
 
-/* Maximum total message size (serialised). */
-const REMOTE_MESSAGE_MAX = 262144;
-
-/* Size of struct remote_message_header (serialized)*/
-const REMOTE_MESSAGE_HEADER_MAX = 24;
-
-/* Size of message payload */
-const REMOTE_MESSAGE_PAYLOAD_MAX = 262120;
-
 /* Length of long, but not unbounded, strings.
  * This is an arbitrary limit designed to stop the decoder from trying
  * to allocate unbounded amounts of memory when fed with a bad message.
@@ -2409,109 +2400,3 @@ enum remote_procedure {
      * <offset> specifies at which offset the stream parameter is inserted
      * in the function parameter list. */
 };
-
-/*
- * RPC wire format
- *
- * Each message consists of:
- *
- *    Name    | Type                  | Description
- * -----------+-----------------------+------------------
- *    Length  | int                   | Total number of bytes in message _including_ length.
- *    Header  | remote_message_header | Control information about procedure call
- *    Payload | -                     | Variable payload data per procedure
- *
- * In header, the 'serial' field varies according to:
- *
- *  - type == REMOTE_CALL
- *      * serial is set by client, incrementing by 1 each time
- *
- *  - type == REMOTE_REPLY
- *      * serial matches that from the corresponding REMOTE_CALL
- *
- *  - type == REMOTE_MESSAGE
- *      * serial is always zero
- *
- *  - type == REMOTE_STREAM
- *      * serial matches that from the corresponding REMOTE_CALL
- *
- * and the 'status' field varies according to:
- *
- *  - type == REMOTE_CALL
- *     * REMOTE_OK always
- *
- *  - type == REMOTE_REPLY
- *     * REMOTE_OK if RPC finished successfully
- *     * REMOTE_ERROR if something failed
- *
- *  - type == REMOTE_MESSAGE
- *     * REMOTE_OK always
- *
- *  - type == REMOTE_STREAM
- *     * REMOTE_CONTINUE if more data is following
- *     * REMOTE_OK if stream is complete
- *     * REMOTE_ERROR if stream had an error
- *
- * Payload varies according to type and status:
- *
- *  - type == REMOTE_CALL
- *          XXX_args  for procedure
- *
- *  - type == REMOTE_REPLY
- *     * status == REMOTE_OK
- *          XXX_ret         for procedure
- *     * status == REMOTE_ERROR
- *          remote_error    Error information
- *
- *  - type == REMOTE_MESSAGE
- *     * status == REMOTE_OK
- *          XXX_args        for procedure
- *     * status == REMOTE_ERROR
- *          remote_error    Error information
- *
- *  - type == REMOTE_STREAM
- *     * status == REMOTE_CONTINUE
- *          byte[]       raw stream data
- *     * status == REMOTE_ERROR
- *          remote_error error information
- *     * status == REMOTE_OK
- *          <empty>
- */
-enum remote_message_type {
-    /* client -> server. args from a method call */
-    REMOTE_CALL = 0,
-    /* server -> client. reply/error from a method call */
-    REMOTE_REPLY = 1,
-    /* either direction. async notification */
-    REMOTE_MESSAGE = 2,
-    /* either direction. stream data packet */
-    REMOTE_STREAM = 3
-};
-
-enum remote_message_status {
-    /* Status is always REMOTE_OK for calls.
-     * For replies, indicates no error.
-     */
-    REMOTE_OK = 0,
-
-    /* For replies, indicates that an error happened, and a struct
-     * remote_error follows.
-     */
-    REMOTE_ERROR = 1,
-
-    /* For streams, indicates that more data is still expected
-     */
-    REMOTE_CONTINUE = 2
-};
-
-/* 4 byte length word per header */
-const REMOTE_MESSAGE_HEADER_XDR_LEN = 4;
-
-struct remote_message_header {
-    unsigned prog;              /* REMOTE_PROGRAM */
-    unsigned vers;              /* REMOTE_PROTOCOL_VERSION */
-    int proc;      /* REMOTE_PROC_x */
-    remote_message_type type;
-    unsigned serial;            /* Serial number of message. */
-    remote_message_status status;
-};
-- 
1.7.4.4




More information about the libvir-list mailing list