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