Whamcloud - gitweb
LUDOC-270 protocol: Add a 'basement' dir with support files
[doc/protocol.git] / basement / message_formats.txt
diff --git a/basement/message_formats.txt b/basement/message_formats.txt
new file mode 100644 (file)
index 0000000..9413b01
--- /dev/null
@@ -0,0 +1,567 @@
+Each message format appears in one or more of the request message
+pairs (cf. request_message_pairs.txt).  The symbol for the format
+connects the format to its use in the request message pairs and is not
+actually used in any kind of output or reports. That is, it is a
+symbol in the source and not a string anywhere.
+
+For each format there is a sequnce of symbols starting with "RMF_",
+and each of those symbols, in turn, refers to a structure of the type
+"struct req_msg_field". Do not be mislead by the word "field" in the
+name. It is a "struct" with a collection of fields, in C source code
+terms. It is misleadingly called a "field" simply because it is a
+subsection within the definition of the message format.
+
+Every format begins with the structure "RMF_PTLRPC_BODY". That
+structure gives additional details that will assist the receiver with
+decoding the PtlRPC message. This includes, especially, the pb_opc
+field for the op code corresponding to the operation being
+requested. Thus the message format specifies a sequence of structures
+whose fields together define a sequence of bytes. Together with a
+header message (and some optional padding), this sequence of bytes
+constitutes one PtlRPC message. 
+
+There are 95 message formats, and between them they employ a total of
+66 different sturctures. See structures.txt for an alphabetic list
+that associates each messgage format symbol (RMF_*) with the structure
+definition (if any) that it corresponds to.  Note athat there is an
+imperfect mapping from the symbol used for a structure in a message
+format and the actual structure definition in the source code. A
+series of definitions in layout.c makes the connection. The details of
+all the structures along with the format for the message header are
+presented in struct_defs.txt.
+
+Note especially that when a named message pair calls for a message
+format that is "empty", that does not mean that no request is sent or
+no reply expected. The "empty" format consists of an RMF_PTLRPC_BODY
+(together with the header) and nothing else.
+empty
+       RMF_PTLRPC_BODY
+
+fld_query_client
+       RMF_PTLRPC_BODY
+       RMF_FLD_OPC
+       RMF_FLD_MDFLD
+
+fld_query_server
+       RMF_PTLRPC_BODY
+       RMF_FLD_MDFLD
+
+fld_read_client
+       RMF_PTLRPC_BODY
+       RMF_FLD_MDFLD
+
+fld_read_server
+       RMF_PTLRPC_BODY
+       RMF_GENERIC_DATA
+
+ldlm_cp_callback_client
+       RMF_PTLRPC_BODY
+       RMF_DLM_REQ
+       RMF_DLM_LVB
+
+ldlm_enqueue_client
+       RMF_PTLRPC_BODY
+       RMF_DLM_REQ
+
+ldlm_enqueue_lvb_server
+       RMF_PTLRPC_BODY
+       RMF_DLM_REP
+       RMF_DLM_LVB
+
+ldlm_enqueue_server
+       RMF_PTLRPC_BODY
+       RMF_DLM_REP
+
+ldlm_gl_callback_desc_client
+       RMF_PTLRPC_BODY
+       RMF_DLM_REQ
+       RMF_DLM_GL_DESC
+
+ldlm_gl_callback_server
+       RMF_PTLRPC_BODY
+       RMF_DLM_LVB
+
+ldlm_intent_basic_client
+       RMF_PTLRPC_BODY
+       RMF_DLM_REQ
+       RMF_LDLM_INTENT
+
+ldlm_intent_client
+       RMF_PTLRPC_BODY
+       RMF_DLM_REQ
+       RMF_LDLM_INTENT
+       RMF_REC_REINT
+
+ldlm_intent_create_client
+       RMF_PTLRPC_BODY
+       RMF_DLM_REQ
+       RMF_LDLM_INTENT
+       RMF_REC_REINT
+       RMF_CAPA1
+       RMF_NAME
+       RMF_EADATA
+
+ldlm_intent_getattr_client
+       RMF_PTLRPC_BODY
+       RMF_DLM_REQ
+       RMF_LDLM_INTENT
+       RMF_MDT_BODY
+       RMF_CAPA1
+       RMF_NAME
+
+ldlm_intent_getattr_server
+       RMF_PTLRPC_BODY
+       RMF_DLM_REP
+       RMF_MDT_BODY
+       RMF_MDT_MD
+       RMF_ACL
+       RMF_CAPA1
+
+ldlm_intent_getxattr_client
+       RMF_PTLRPC_BODY
+       RMF_DLM_REQ
+       RMF_LDLM_INTENT
+       RMF_MDT_BODY
+       RMF_CAPA1
+
+ldlm_intent_getxattr_server
+       RMF_PTLRPC_BODY
+       RMF_DLM_REP
+       RMF_MDT_BODY
+       RMF_MDT_MD
+       RMF_ACL
+       RMF_EADATA
+       RMF_EAVALS
+       RMF_EAVALS_LENS
+
+ldlm_intent_layout_client
+       RMF_PTLRPC_BODY
+       RMF_DLM_REQ
+       RMF_LDLM_INTENT
+       RMF_LAYOUT_INTENT
+       RMF_EADATA
+
+ldlm_intent_open_client
+       RMF_PTLRPC_BODY
+       RMF_DLM_REQ
+       RMF_LDLM_INTENT
+       RMF_REC_REINT
+       RMF_CAPA1
+       RMF_CAPA2
+       RMF_NAME
+       RMF_EADATA
+
+ldlm_intent_open_server
+       RMF_PTLRPC_BODY
+       RMF_DLM_REP
+       RMF_MDT_BODY
+       RMF_MDT_MD
+       RMF_ACL
+       RMF_CAPA1
+       RMF_CAPA2
+
+ldlm_intent_quota_client
+       RMF_PTLRPC_BODY
+       RMF_DLM_REQ
+       RMF_LDLM_INTENT
+       RMF_QUOTA_BODY
+
+ldlm_intent_quota_server
+       RMF_PTLRPC_BODY
+       RMF_DLM_REP
+       RMF_DLM_LVB
+       RMF_QUOTA_BODY
+
+ldlm_intent_server
+       RMF_PTLRPC_BODY
+       RMF_DLM_REP
+       RMF_MDT_BODY
+       RMF_MDT_MD
+       RMF_ACL
+
+ldlm_intent_unlink_client
+       RMF_PTLRPC_BODY
+       RMF_DLM_REQ
+       RMF_LDLM_INTENT
+       RMF_REC_REINT
+       RMF_CAPA1
+       RMF_NAME
+
+llog_log_hdr_only
+       RMF_PTLRPC_BODY
+       RMF_LLOG_LOG_HDR
+
+llog_origin_handle_create_client
+       RMF_PTLRPC_BODY
+       RMF_LLOGD_BODY
+       RMF_NAME
+
+llog_origin_handle_next_block_server
+       RMF_PTLRPC_BODY
+       RMF_LLOGD_BODY
+       RMF_EADATA
+
+llogd_body_only
+       RMF_PTLRPC_BODY
+       RMF_LLOGD_BODY
+
+llogd_conn_body_only
+       RMF_PTLRPC_BODY
+       RMF_LLOGD_CONN_BODY
+
+log_cancel_client
+       RMF_PTLRPC_BODY
+       RMF_LOGCOOKIES
+
+mds_getattr_name_client
+       RMF_PTLRPC_BODY
+       RMF_MDT_BODY
+       RMF_CAPA1
+       RMF_NAME
+
+mds_getattr_server
+       RMF_PTLRPC_BODY
+       RMF_MDT_BODY
+       RMF_MDT_MD
+       RMF_ACL
+       RMF_CAPA1
+       RMF_CAPA2
+
+mds_getinfo_client
+       RMF_PTLRPC_BODY
+       RMF_GETINFO_KEY
+       RMF_GETINFO_VALLEN
+
+mds_getinfo_server
+       RMF_PTLRPC_BODY
+       RMF_GETINFO_VAL
+
+mds_getxattr_client
+       RMF_PTLRPC_BODY
+       RMF_MDT_BODY
+       RMF_CAPA1
+       RMF_NAME
+       RMF_EADATA
+
+mds_getxattr_server
+       RMF_PTLRPC_BODY
+       RMF_MDT_BODY
+       RMF_EADATA
+
+mds_last_unlink_server
+       RMF_PTLRPC_BODY
+       RMF_MDT_BODY
+       RMF_MDT_MD
+       RMF_LOGCOOKIES
+       RMF_CAPA1
+       RMF_CAPA2
+
+mds_reint_client
+       RMF_PTLRPC_BODY
+       RMF_REC_REINT
+
+mds_reint_create_client
+       RMF_PTLRPC_BODY
+       RMF_REC_REINT
+       RMF_CAPA1
+       RMF_NAME
+
+mds_reint_create_rmt_acl_client
+       RMF_PTLRPC_BODY
+       RMF_REC_REINT
+       RMF_CAPA1
+       RMF_NAME
+       RMF_EADATA
+       RMF_DLM_REQ
+
+mds_reint_create_slave_client
+       RMF_PTLRPC_BODY
+       RMF_REC_REINT
+       RMF_CAPA1
+       RMF_NAME
+       RMF_EADATA
+       RMF_DLM_REQ
+
+mds_reint_create_sym_client
+       RMF_PTLRPC_BODY
+       RMF_REC_REINT
+       RMF_CAPA1
+       RMF_NAME
+       RMF_SYMTGT
+       RMF_DLM_REQ
+
+mds_reint_link_client
+       RMF_PTLRPC_BODY
+       RMF_REC_REINT
+       RMF_CAPA1
+       RMF_CAPA2
+       RMF_NAME
+       RMF_DLM_REQ
+
+mds_reint_open_client
+       RMF_PTLRPC_BODY
+       RMF_REC_REINT
+       RMF_CAPA1
+       RMF_CAPA2
+       RMF_NAME
+       RMF_EADATA
+
+mds_reint_open_server
+       RMF_PTLRPC_BODY
+       RMF_MDT_BODY
+       RMF_MDT_MD
+       RMF_ACL
+       RMF_CAPA1
+       RMF_CAPA2
+
+mds_reint_rename_client
+       RMF_PTLRPC_BODY
+       RMF_REC_REINT
+       RMF_CAPA1
+       RMF_CAPA2
+       RMF_NAME
+       RMF_SYMTGT
+       RMF_DLM_REQ
+
+mds_reint_setattr_client
+       RMF_PTLRPC_BODY
+       RMF_REC_REINT
+       RMF_CAPA1
+       RMF_MDT_EPOCH
+       RMF_EADATA
+       RMF_LOGCOOKIES
+       RMF_DLM_REQ
+
+mds_reint_setxattr_client
+       RMF_PTLRPC_BODY
+       RMF_REC_REINT
+       RMF_CAPA1
+       RMF_NAME
+       RMF_EADATA
+       RMF_DLM_REQ
+
+mds_reint_unlink_client
+       RMF_PTLRPC_BODY
+       RMF_REC_REINT
+       RMF_CAPA1
+       RMF_NAME
+       RMF_DLM_REQ
+
+mds_setattr_server
+       RMF_PTLRPC_BODY
+       RMF_MDT_BODY
+       RMF_MDT_MD
+       RMF_ACL
+       RMF_CAPA1
+       RMF_CAPA2
+
+mds_update_client
+       RMF_PTLRPC_BODY
+       RMF_OUT_UPDATE
+
+mds_update_server
+       RMF_PTLRPC_BODY
+       RMF_OUT_UPDATE_REPLY
+
+mdt_body_capa
+       RMF_PTLRPC_BODY
+       RMF_MDT_BODY
+       RMF_CAPA1
+
+mdt_body_only
+       RMF_PTLRPC_BODY
+       RMF_MDT_BODY
+
+mdt_close_client
+       RMF_PTLRPC_BODY
+       RMF_MDT_EPOCH
+       RMF_REC_REINT
+       RMF_CAPA1
+
+mdt_hsm_action_server
+       RMF_PTLRPC_BODY
+       RMF_MDT_BODY
+       RMF_MDS_HSM_CURRENT_ACTION
+
+mdt_hsm_ct_register
+       RMF_PTLRPC_BODY
+       RMF_MDT_BODY
+       RMF_MDS_HSM_ARCHIVE
+
+mdt_hsm_ct_unregister
+       RMF_PTLRPC_BODY
+       RMF_MDT_BODY
+
+mdt_hsm_progress
+       RMF_PTLRPC_BODY
+       RMF_MDT_BODY
+       RMF_MDS_HSM_PROGRESS
+
+mdt_hsm_request
+       RMF_PTLRPC_BODY
+       RMF_MDT_BODY
+       RMF_MDS_HSM_REQUEST
+       RMF_MDS_HSM_USER_ITEM
+       RMF_GENERIC_DATA
+
+mdt_hsm_state_get_server
+       RMF_PTLRPC_BODY
+       RMF_MDT_BODY
+       RMF_HSM_USER_STATE
+
+mdt_hsm_state_set
+       RMF_PTLRPC_BODY
+       RMF_MDT_BODY
+       RMF_CAPA1
+       RMF_HSM_STATE_SET
+
+mdt_release_close_client
+       RMF_PTLRPC_BODY
+       RMF_MDT_EPOCH
+       RMF_REC_REINT
+       RMF_CAPA1
+       RMF_CLOSE_DATA
+
+mdt_swap_layouts
+       RMF_PTLRPC_BODY
+       RMF_MDT_BODY
+       RMF_SWAP_LAYOUTS
+       RMF_CAPA1
+       RMF_CAPA2
+       RMF_DLM_REQ
+
+mgs_config_read_client
+       RMF_PTLRPC_BODY
+       RMF_MGS_CONFIG_BODY
+
+mgs_config_read_server
+       RMF_PTLRPC_BODY
+       RMF_MGS_CONFIG_RES
+
+mgs_set_info
+       RMF_PTLRPC_BODY
+       RMF_MGS_SEND_PARAM
+
+mgs_target_info_only
+       RMF_PTLRPC_BODY
+       RMF_MGS_TARGET_INFO
+
+obd_connect_client
+       RMF_PTLRPC_BODY
+       RMF_TGTUUID
+       RMF_CLUUID
+       RMF_CONN
+       RMF_CONNECT_DATA
+
+obd_connect_server
+       RMF_PTLRPC_BODY
+       RMF_CONNECT_DATA
+
+obd_idx_read_client
+       RMF_PTLRPC_BODY
+       RMF_IDX_INFO
+
+obd_idx_read_server
+       RMF_PTLRPC_BODY
+       RMF_IDX_INFO
+
+obd_lfsck_reply
+       RMF_PTLRPC_BODY
+       RMF_LFSCK_REPLY
+
+obd_lfsck_request
+       RMF_PTLRPC_BODY
+       RMF_LFSCK_REQUEST
+
+obd_set_info_client
+       RMF_PTLRPC_BODY
+       RMF_SETINFO_KEY
+       RMF_SETINFO_VAL
+
+obd_statfs_server
+       RMF_PTLRPC_BODY
+       RMF_OBD_STATFS
+
+ost_body_capa
+       RMF_PTLRPC_BODY
+       RMF_OST_BODY
+       RMF_CAPA1
+
+ost_body_only
+       RMF_PTLRPC_BODY
+       RMF_OST_BODY
+
+ost_brw_client
+       RMF_PTLRPC_BODY
+       RMF_OST_BODY
+       RMF_OBD_IOOBJ
+       RMF_NIOBUF_REMOTE
+       RMF_CAPA1
+
+ost_brw_read_server
+       RMF_PTLRPC_BODY
+       RMF_OST_BODY
+
+ost_brw_write_server
+       RMF_PTLRPC_BODY
+       RMF_OST_BODY
+       RMF_RCS
+
+ost_destroy_client
+       RMF_PTLRPC_BODY
+       RMF_OST_BODY
+       RMF_DLM_REQ
+       RMF_CAPA1
+
+ost_get_fiemap_client
+       RMF_PTLRPC_BODY
+       RMF_FIEMAP_KEY
+       RMF_FIEMAP_VAL
+
+ost_get_fiemap_server
+       RMF_PTLRPC_BODY
+       RMF_FIEMAP_VAL
+
+ost_get_info_generic_client
+       RMF_PTLRPC_BODY
+       RMF_GETINFO_KEY
+
+ost_get_info_generic_server
+       RMF_PTLRPC_BODY
+       RMF_GENERIC_DATA
+
+ost_get_last_fid_client
+       RMF_PTLRPC_BODY
+       RMF_GETINFO_KEY
+       RMF_FID
+
+ost_get_last_fid_server
+       RMF_PTLRPC_BODY
+       RMF_FID
+
+ost_get_last_id_server
+       RMF_PTLRPC_BODY
+       RMF_OBD_ID
+
+ost_grant_shrink_client
+       RMF_PTLRPC_BODY
+       RMF_SETINFO_KEY
+       RMF_OST_BODY
+
+quota_body_only
+       RMF_PTLRPC_BODY
+       RMF_QUOTA_BODY
+
+quotactl_only
+       RMF_PTLRPC_BODY
+       RMF_OBD_QUOTACTL
+
+seq_query_client
+       RMF_PTLRPC_BODY
+       RMF_SEQ_OPC
+       RMF_SEQ_RANGE
+
+seq_query_server
+       RMF_PTLRPC_BODY
+       RMF_SEQ_RANGE