5 A Lustre message is a sequence of bytes. The message begins with a
6 <<lustre-message-header,Lustre Message Header>> and has between one
7 and nine subsequences called "buffers". Each buffer has a structure
8 (the size and meaning of the bytes) that corresponds to the 'struct'
9 entities in the <<data-structs,Data Structures and Defines Section>>
10 Section. The header gives the number of buffers in its 'lm_buffcount'
11 field. The first buffer in any message is always the
12 <<lustre-message-preamble,Lustre Message Preamble>>. The operation
13 code ('pb_opc' field) and the message type ('pb_type' field: request
14 or reply?) in the preamble together specify the "format" of the
15 message, where the format is the number and content of the remaining
16 buffers. As a shorthand, it is useful to name each of these formats,
17 and the following list gives all of the formats along with the number
18 and content of the buffers for messages in that format. Note that
19 while the combination of 'pb_opc' and 'pb_type' uniquely determines a
20 message's format, the reverse is not true. A given format may be used
21 in many different messages.
33 | MDS_STATFS | PTL_RPC_MSG_REQUEST
37 An 'empty' message is one that consists only of the Lustre message
38 preamble 'ptlrpc_body'. It occurs as either the request of the reply
39 (or both) in a variety of Lustre operations.
45 | ptlrpc_body | message preamble
48 The LDLM Enqueue Client Message
49 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
58 | LDLM_ENQUEUE | PTL_RPC_MSG_REQUEST
62 An 'ldlm_enqueue_client' message format is used to acquire a lock.
68 | ptlrpc_body | message preamble
69 | ldlm_request | details of the lock request
72 An 'ldlm_enqueue_client' message concatenates two data elements into a
73 single byte-stream. The two elements correspond to structures
74 detailed in the <<data-structs,Data Structures and Defines Section>>.
76 The LDLM Enqueue Server Message
77 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
86 | LDLM_ENQUEUE | PTL_RPC_MSG_REPLY
90 An 'ldlm_enqueue_server' message format is used to inform a client
91 about the status of its request for a lock.
97 | ptlrpc_body | message preamble
98 | ldlm_reply | details of the lock request
101 An 'ldlm_enqueue_server' message concatenates two data elements
102 into a single byte-stream. The three elements correspond to structures
103 detailed in the <<data-structs,Data Structures and Defines Section>>.
105 The LDLM Enqueue Server Message with LVB
106 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
108 'ldlm_enqueue_lvb_server'
109 ^^^^^^^^^^^^^^^^^^^^^^^^^
115 | LDLM_ENQUEUE | PTL_RPC_MSG_REPLY
119 An 'ldlm_enqueue_lvb_server' message format is used to inform a client
120 about the status of its request for a lock.
125 | structure | meaning
126 | ptlrpc_body | message preamble
127 | ldlm_reply | details of the lock request
128 | ost_lvb | lock value block
131 An 'ldlm_enqueue_lvb_server' message concatenates three data elements
132 into a single byte-stream. It closely resembles the
133 'ldlm_enqueue_server' message with the addition of a lock value
134 block. The three elements correspond to structures detailed in the
135 <<data-structs,Data Structures and Defines Section>>.
137 The LLog Origin Handle Create Client
138 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
140 'llog_origin_handle_create_client'
141 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
147 | LLOG_ORIGIN_HANDLE_CREATE | PTL_RPC_MSG_REQUEST
151 An 'llog_origin_handle_create_client' message format is used to
152 ask for the creation of a log entry object.
157 | structure | meaning
158 | ptlrpc_body | message preamble
159 | llogd_body | LLog description
160 | string | The name of the desired log
163 Fixme: I don't actually see where the string gets set.
165 The LLog Service (body-only) Message
166 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
175 | LLOG_ORIGIN_HANDLE_CREATE | PTL_RPC_MSG_REPLY
179 An 'llogd_body_only' message replies with information about the log.
184 | structure | meaning
185 | ptlrpc_body | message preamble
186 | llogd_body | LLog description
190 The LLog Log (header-only) Message
191 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
200 | LLOG_ORIGIN_HANDLE_READ_HEADER | PTL_RPC_MSG_REPLY
204 An 'llog_log_hdr_only' message replies with header information from
210 | structure | meaning
211 | ptlrpc_body | message preamble
212 | llog_log_hdr | LLog log header info
216 The LLog Return Next Block from Server
217 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
219 'llog_origin_handle_next_block_server'
220 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
226 | LLOG_ORIGIN_HANDLE_NEXT_BLOCK | PTL_RPC_MSG_REPLY
230 An 'llog_origin_handle_next_block_server' message replies with the
231 next block of data from the log.
236 | structure | meaning
237 | ptlrpc_body | message preamble
238 | llogd_body | LLog description
239 | eadata | variable length field for extended attributes
243 The MDS Getattr Server Message
244 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
253 | MDS_GETATTR | PTL_RPC_MSG_REPLY
256 An 'mds_getattr_server' message format is used to convey MDT data along
257 with information about the Lustre capabilities of that MDT.
262 | structure | meaning
263 | ptlrpc_body | message preamble
264 | mdt_body | Information about the MDT
265 | MDT_MD | OST stripe and index info
266 | ACL | ACLs for the fid
267 | lustre_capa | Security capa info for fid1
268 | lustre_capa | Security capa info for fid2
271 An 'mdt_getattr_server' message concatenates three data elements into
272 a single byte-stream. The three elements correspond to structures
273 detailed in the <<data-structs,Data Structures and Defines Section>>.
275 The MDT Capability Message
276 ~~~~~~~~~~~~~~~~~~~~~~~~~~
285 | MDS_GETSTATUS | PTL_RPC_MSG_REPLY
286 | MDS_GETATTR | PTL_RPC_MSG_REQUEST
289 An 'mdt_body_capa' message format is used to convey MDT data along
290 with information about the Lustre capabilities of that MDT.
295 | structure | meaning
296 | ptlrpc_body | message preamble
297 | mdt_body | Information about the MDT
298 | lustre_capa | security capa info
301 An 'mdt_body_capa' message concatenates three data elements into
302 a single byte-stream. The three elements correspond to structures
303 detailed in the <<data-structs,Data Structures and Defines Section>>.
305 The MDT "Body Only" Message
306 ~~~~~~~~~~~~~~~~~~~~~~~~~~~
315 | MDS_GETSTATUS | PTL_RPC_MSG_REQUEST
319 An 'mdt_body_only' message format is used to convey MDT data.
324 | structure | meaning
325 | ptlrpc_body | message preamble
326 | mdt_body | Information about the MDT
329 An 'mdt_body_only' message concatenates two data elements into
330 a single byte-stream. The two elements correspond to structures
331 detailed in the <<data-structs,Data Structures and Defines Section>>.
333 The MGS Config Read Client Message
334 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
336 'mgs_config_read_client'
337 ^^^^^^^^^^^^^^^^^^^^^^^^
343 | MGS_CONFIG_READ | PTL_RPC_MSG_REQUEST
346 An 'mgs_config_read_client' message requests configuration data from
352 | structure | meaning
353 | ptlrpc_body | message preamble
354 | mgs_config_body | Information about the MGS supporting the request
358 The MGS Config Read Server Message
359 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
361 'mgs_config_read_server'
362 ^^^^^^^^^^^^^^^^^^^^^^^^
368 | MGS_CONFIG_READ | PTL_RPC_MSG_REPLY
371 An 'mgs_config_read_server' message returns configuration data from
377 | structure | meaning
378 | ptlrpc_body | message preamble
379 | mgs_config_body | Information about the MGS supporting the request
383 The OBD Connect Client Message
384 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
393 | MDS_CONNECT | PTL_RPC_MSG_REQUEST
397 An 'obd_connect_client' message format is used to initiate the
398 connection from one host to a target on another host. Clients will
399 connect to the MGS, to MDTS on MDSs, and to OSTs on OSSs. Furthermore,
400 MDSs and OSSs will connect to the MGS, and MDSs will connect to OSTs
401 on OSSs. In each case the host initiating the the connection request
402 sends an 'obd_connect_client' message. The reply to this message is
403 the obd_connect_server message.
408 | structure | meaning
409 | ptlrpc_body | message preamble
410 | obd_uuid | UUID of the target
411 | obd_uuid | UUID of the client
412 | lustre_handle | connection handle
413 | obd_connect_data | connection data
416 An 'obd_connect_client' message concatenates five data elements into
417 a single byte-stream. The five elements correspond to structures
418 detailed in the <<data-structs,Data Structures and Defines Section>>.
420 The connection handle sent in a client connection request message is
421 unique to that connection. The server notes it and a connection
422 request with a new or different handle indicates that the client is
423 attempting to make a new connection (or a delayed message about an
426 The OBD Connect Server Message
427 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
429 ' obd_connect_server'
430 ^^^^^^^^^^^^^^^^^^^^^
436 | MDS_CONNECT | PTL_RPC_MSG_REPLY
439 The 'obd_connect_server' mess-sage format is sent by a server in reply
440 to an 'obd_connect_client' connection request message. to a target on
441 that server. MGSs, MDSs, and OSSs send these replies.
446 | structure | meaning
447 | ptlrpc_body | message preamble
448 | obd_connect_data | connection data
451 An 'obd_connect_server' message concatenates two data elements into a
454 The OBD Statfs Server Message
455 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
464 | MDS_STATFS | PTL_RPC_MSG_REPLY
467 The 'obd_statfs_server' message returns 'statfs' system call
468 information to the client.
473 | structure | meaning
474 | ptlrpc_body | message preamble
475 | obd_statfs | statfs system call info