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 sub-sequences 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 <<struct-ptlrpc-body,Lustre RPC Descriptor>>. The operation
13 code ('pb_opc' field) and the message type ('pb_type' field: request
14 or reply?) in the descriptor 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.
23 N.B. As each of the following "message formats" is introduced in the
24 context of describing "Lustre commands", the corresponding section
25 here will be deleted. These brief entries just state the name of the
26 format and its structures. That information is better included in the
27 section on the command itself. -ACU
29 The LLog Origin Handle Create Client
30 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
32 'llog_origin_handle_create_client'
33 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
39 | LLOG_ORIGIN_HANDLE_CREATE | PTL_RPC_MSG_REQUEST
43 An 'llog_origin_handle_create_client' message format is used to
44 ask for the creation of a log entry object.
50 | ptlrpc_body | RPC descriptor
51 | llogd_body | LLog description
52 | string | The name of the desired log
55 Fixme: I don't actually see where the string gets set.
57 The LLog Service (body-only) Message
58 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
67 | LLOG_ORIGIN_HANDLE_CREATE | PTL_RPC_MSG_REPLY
71 An 'llogd_body_only' message replies with information about the log.
77 | ptlrpc_body | RPC descriptor
78 | llogd_body | LLog description
82 The LLog Log (header-only) Message
83 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
92 | LLOG_ORIGIN_HANDLE_READ_HEADER | PTL_RPC_MSG_REPLY
96 An 'llog_log_hdr_only' message replies with header information from
102 | structure | meaning
103 | ptlrpc_body | RPC descriptor
104 | llog_log_hdr | LLog log header info
108 The LLog Return Next Block from Server
109 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
111 'llog_origin_handle_next_block_server'
112 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
118 | LLOG_ORIGIN_HANDLE_NEXT_BLOCK | PTL_RPC_MSG_REPLY
122 An 'llog_origin_handle_next_block_server' message replies with the
123 next block of data from the log.
128 | structure | meaning
129 | ptlrpc_body | RPC descriptor
130 | llogd_body | LLog description
131 | eadata | variable length field for extended attributes
135 The MDS Getattr Server Message
136 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
145 | MDS_GETATTR | PTL_RPC_MSG_REPLY
148 An 'mds_getattr_server' message format is used to convey MDT data along
149 with information about the Lustre capabilities of that MDT.
154 | structure | meaning
155 | ptlrpc_body | RPC descriptor
156 | mdt_body | Information about the MDT
157 | MDT_MD | OST stripe and index info
158 | ACL | ACLs for the fid
159 | lustre_capa | Security capa info for fid1
160 | lustre_capa | Security capa info for fid2
163 An 'mdt_getattr_server' message concatenates three data elements into
164 a single byte-stream. The three elements correspond to structures
165 detailed in the <<data-structs,Data Structures and Defines Section>>.
167 The MDT Capability Message
168 ~~~~~~~~~~~~~~~~~~~~~~~~~~
177 | MDS_GETSTATUS | PTL_RPC_MSG_REPLY
178 | MDS_GETATTR | PTL_RPC_MSG_REQUEST
181 An 'mdt_body_capa' message format is used to convey MDT data along
182 with information about the Lustre capabilities of that MDT.
187 | structure | meaning
188 | ptlrpc_body | RPC descriptor
189 | mdt_body | Information about the MDT
190 | lustre_capa | security capa info
193 An 'mdt_body_capa' message concatenates three data elements into
194 a single byte-stream. The three elements correspond to structures
195 detailed in the <<data-structs,Data Structures and Defines Section>>.
197 The MDT "Body Only" Message
198 ~~~~~~~~~~~~~~~~~~~~~~~~~~~
207 | MDS_GETSTATUS | PTL_RPC_MSG_REQUEST
211 An 'mdt_body_only' message format is used to convey MDT data.
216 | structure | meaning
217 | ptlrpc_body | RPC descriptor
218 | mdt_body | Information about the MDT
221 An 'mdt_body_only' message concatenates two data elements into
222 a single byte-stream. The two elements correspond to structures
223 detailed in the <<data-structs,Data Structures and Defines Section>>.
225 The MGS Config Read Client Message
226 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
228 'mgs_config_read_client'
229 ^^^^^^^^^^^^^^^^^^^^^^^^
235 | MGS_CONFIG_READ | PTL_RPC_MSG_REQUEST
238 An 'mgs_config_read_client' message requests configuration data from
244 | structure | meaning
245 | ptlrpc_body | RPC descriptor
246 | mgs_config_body | Information about the MGS supporting the request
250 The MGS Config Read Server Message
251 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
253 'mgs_config_read_server'
254 ^^^^^^^^^^^^^^^^^^^^^^^^
260 | MGS_CONFIG_READ | PTL_RPC_MSG_REPLY
263 An 'mgs_config_read_server' message returns configuration data from
269 | structure | meaning
270 | ptlrpc_body | RPC descriptor
271 | mgs_config_body | Information about the MGS supporting the request
275 The OBD Connect Client Message
276 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
285 | MDS_CONNECT | PTL_RPC_MSG_REQUEST
289 An 'obd_connect_client' message format is used to initiate the
290 connection from one host to a target on another host. Clients will
291 connect to the MGS, to MDTS on MDSs, and to OSTs on OSSs. Furthermore,
292 MDSs and OSSs will connect to the MGS, and MDSs will connect to OSTs
293 on OSSs. In each case the host initiating the the connection request
294 sends an 'obd_connect_client' message. The reply to this message is
295 the obd_connect_server message.
300 | structure | meaning
301 | ptlrpc_body | RPC descriptor
302 | obd_uuid | UUID of the target
303 | obd_uuid | UUID of the client
304 | lustre_handle | connection handle
305 | obd_connect_data | connection data
308 An 'obd_connect_client' message concatenates five data elements into
309 a single byte-stream. The five elements correspond to structures
310 detailed in the <<data-structs,Data Structures and Defines Section>>.
312 The connection handle sent in a client connection request message is
313 unique to that connection. The server notes it and a connection
314 request with a new or different handle indicates that the client is
315 attempting to make a new connection (or a delayed message about an
318 The OBD Connect Server Message
319 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
321 ' obd_connect_server'
322 ^^^^^^^^^^^^^^^^^^^^^
328 | MDS_CONNECT | PTL_RPC_MSG_REPLY
331 The 'obd_connect_server' mess-sage format is sent by a server in reply
332 to an 'obd_connect_client' connection request message. to a target on
333 that server. MGSs, MDSs, and OSSs send these replies.
338 | structure | meaning
339 | ptlrpc_body | RPC descriptor
340 | obd_connect_data | connection data
343 An 'obd_connect_server' message concatenates two data elements into a
346 The OBD Statfs Server Message
347 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
356 | MDS_STATFS | PTL_RPC_MSG_REPLY
359 The 'obd_statfs_server' message returns 'statfs' system call
360 information to the client.
365 | structure | meaning
366 | ptlrpc_body | RPC descriptor
367 | obd_statfs | statfs system call info