+ __u32 lm_bufcount; /* number of buffers in lm_buflens[] */
+ __u32 lm_secflvr; /* 0 = no crypto, or sptlrpc security flavour */
+ __u32 lm_magic; /* RPC version magic = LUSTRE_MSG_MAGIC_V2 */
+ __u32 lm_repsize; /* size of preallocated reply buffer */
+ __u32 lm_cksum; /* CRC32 of ptlrpc_body early reply messages */
+ __u32 lm_flags; /* MSGHDR_* flags */
+ __u32 lm_padding_2; /* unused */
+ __u32 lm_padding_3; /* unused */
+ __u32 lm_buflens[0]; /* length of additional buffers in bytes,
+ * padded to a multiple of 8 bytes. */
+ /*
+ * message buffers are packed after padded lm_buflens[] array,
+ * padded to a multiple of 8 bytes each to align contents.
+ */
+};
+
+/* ptlrpc_body packet pb_types */
+#define PTL_RPC_MSG_REQUEST 4711 /* normal RPC request message */
+#define PTL_RPC_MSG_ERR 4712 /* error reply if request unprocessed */
+#define PTL_RPC_MSG_REPLY 4713 /* normal RPC reply message */
+
+/* ptlrpc_body pb_version ((target_version << 16) | rpc_version) */
+#define PTLRPC_MSG_VERSION 0x00000003
+#define LUSTRE_VERSION_MASK 0xffff0000
+#define LUSTRE_OBD_VERSION 0x00010000
+#define LUSTRE_MDS_VERSION 0x00020000
+#define LUSTRE_OST_VERSION 0x00030000
+#define LUSTRE_DLM_VERSION 0x00040000
+#define LUSTRE_LOG_VERSION 0x00050000
+#define LUSTRE_MGS_VERSION 0x00060000
+
+/* pb_flags that apply to all requests */
+#define MSG_LAST_REPLAY 0x0001
+#define MSG_RESENT 0x0002
+#define MSG_REPLAY 0x0004
+/* #define MSG_AT_SUPPORT 0x0008 obsolete 1.5 */
+#define MSG_DELAY_REPLAY 0x0010
+#define MSG_VERSION_REPLAY 0x0020
+#define MSG_REQ_REPLAY_DONE 0x0040
+#define MSG_LOCK_REPLAY_DONE 0x0080
+
+/* pb_op_flags for all connect opcodes (MDS_CONNECT, OST_CONNECT) */
+#define MSG_CONNECT_RECOVERING 0x00000001
+#define MSG_CONNECT_RECONNECT 0x00000002
+#define MSG_CONNECT_REPLAYABLE 0x00000004
+/* #define MSG_CONNECT_PEER 0x00000008 removed 1.5 */
+#define MSG_CONNECT_LIBCLIENT 0x00000010
+#define MSG_CONNECT_INITIAL 0x00000020
+#define MSG_CONNECT_ASYNC 0x00000040
+#define MSG_CONNECT_NEXT_VER 0x00000080 /* use next version of lustre_msg */
+#define MSG_CONNECT_TRANSNO 0x00000100 /* report transno */
+
+/* number of previous object versions in pb_pre_versions[] */