Whamcloud - gitweb
LUDOC-270 protocol: Add a 'basement' dir with support files
[doc/protocol.git] / basement / message_formats.txt
1 Each message format appears in one or more of the request message
2 pairs (cf. request_message_pairs.txt).  The symbol for the format
3 connects the format to its use in the request message pairs and is not
4 actually used in any kind of output or reports. That is, it is a
5 symbol in the source and not a string anywhere.
6
7 For each format there is a sequnce of symbols starting with "RMF_",
8 and each of those symbols, in turn, refers to a structure of the type
9 "struct req_msg_field". Do not be mislead by the word "field" in the
10 name. It is a "struct" with a collection of fields, in C source code
11 terms. It is misleadingly called a "field" simply because it is a
12 subsection within the definition of the message format.
13
14 Every format begins with the structure "RMF_PTLRPC_BODY". That
15 structure gives additional details that will assist the receiver with
16 decoding the PtlRPC message. This includes, especially, the pb_opc
17 field for the op code corresponding to the operation being
18 requested. Thus the message format specifies a sequence of structures
19 whose fields together define a sequence of bytes. Together with a
20 header message (and some optional padding), this sequence of bytes
21 constitutes one PtlRPC message. 
22
23 There are 95 message formats, and between them they employ a total of
24 66 different sturctures. See structures.txt for an alphabetic list
25 that associates each messgage format symbol (RMF_*) with the structure
26 definition (if any) that it corresponds to.  Note athat there is an
27 imperfect mapping from the symbol used for a structure in a message
28 format and the actual structure definition in the source code. A
29 series of definitions in layout.c makes the connection. The details of
30 all the structures along with the format for the message header are
31 presented in struct_defs.txt.
32
33 Note especially that when a named message pair calls for a message
34 format that is "empty", that does not mean that no request is sent or
35 no reply expected. The "empty" format consists of an RMF_PTLRPC_BODY
36 (together with the header) and nothing else.
37  
38 empty
39         RMF_PTLRPC_BODY
40
41 fld_query_client
42         RMF_PTLRPC_BODY
43         RMF_FLD_OPC
44         RMF_FLD_MDFLD
45
46 fld_query_server
47         RMF_PTLRPC_BODY
48         RMF_FLD_MDFLD
49
50 fld_read_client
51         RMF_PTLRPC_BODY
52         RMF_FLD_MDFLD
53
54 fld_read_server
55         RMF_PTLRPC_BODY
56         RMF_GENERIC_DATA
57
58 ldlm_cp_callback_client
59         RMF_PTLRPC_BODY
60         RMF_DLM_REQ
61         RMF_DLM_LVB
62
63 ldlm_enqueue_client
64         RMF_PTLRPC_BODY
65         RMF_DLM_REQ
66
67 ldlm_enqueue_lvb_server
68         RMF_PTLRPC_BODY
69         RMF_DLM_REP
70         RMF_DLM_LVB
71
72 ldlm_enqueue_server
73         RMF_PTLRPC_BODY
74         RMF_DLM_REP
75
76 ldlm_gl_callback_desc_client
77         RMF_PTLRPC_BODY
78         RMF_DLM_REQ
79         RMF_DLM_GL_DESC
80
81 ldlm_gl_callback_server
82         RMF_PTLRPC_BODY
83         RMF_DLM_LVB
84
85 ldlm_intent_basic_client
86         RMF_PTLRPC_BODY
87         RMF_DLM_REQ
88         RMF_LDLM_INTENT
89
90 ldlm_intent_client
91         RMF_PTLRPC_BODY
92         RMF_DLM_REQ
93         RMF_LDLM_INTENT
94         RMF_REC_REINT
95
96 ldlm_intent_create_client
97         RMF_PTLRPC_BODY
98         RMF_DLM_REQ
99         RMF_LDLM_INTENT
100         RMF_REC_REINT
101         RMF_CAPA1
102         RMF_NAME
103         RMF_EADATA
104
105 ldlm_intent_getattr_client
106         RMF_PTLRPC_BODY
107         RMF_DLM_REQ
108         RMF_LDLM_INTENT
109         RMF_MDT_BODY
110         RMF_CAPA1
111         RMF_NAME
112
113 ldlm_intent_getattr_server
114         RMF_PTLRPC_BODY
115         RMF_DLM_REP
116         RMF_MDT_BODY
117         RMF_MDT_MD
118         RMF_ACL
119         RMF_CAPA1
120
121 ldlm_intent_getxattr_client
122         RMF_PTLRPC_BODY
123         RMF_DLM_REQ
124         RMF_LDLM_INTENT
125         RMF_MDT_BODY
126         RMF_CAPA1
127
128 ldlm_intent_getxattr_server
129         RMF_PTLRPC_BODY
130         RMF_DLM_REP
131         RMF_MDT_BODY
132         RMF_MDT_MD
133         RMF_ACL
134         RMF_EADATA
135         RMF_EAVALS
136         RMF_EAVALS_LENS
137
138 ldlm_intent_layout_client
139         RMF_PTLRPC_BODY
140         RMF_DLM_REQ
141         RMF_LDLM_INTENT
142         RMF_LAYOUT_INTENT
143         RMF_EADATA
144
145 ldlm_intent_open_client
146         RMF_PTLRPC_BODY
147         RMF_DLM_REQ
148         RMF_LDLM_INTENT
149         RMF_REC_REINT
150         RMF_CAPA1
151         RMF_CAPA2
152         RMF_NAME
153         RMF_EADATA
154
155 ldlm_intent_open_server
156         RMF_PTLRPC_BODY
157         RMF_DLM_REP
158         RMF_MDT_BODY
159         RMF_MDT_MD
160         RMF_ACL
161         RMF_CAPA1
162         RMF_CAPA2
163
164 ldlm_intent_quota_client
165         RMF_PTLRPC_BODY
166         RMF_DLM_REQ
167         RMF_LDLM_INTENT
168         RMF_QUOTA_BODY
169
170 ldlm_intent_quota_server
171         RMF_PTLRPC_BODY
172         RMF_DLM_REP
173         RMF_DLM_LVB
174         RMF_QUOTA_BODY
175
176 ldlm_intent_server
177         RMF_PTLRPC_BODY
178         RMF_DLM_REP
179         RMF_MDT_BODY
180         RMF_MDT_MD
181         RMF_ACL
182
183 ldlm_intent_unlink_client
184         RMF_PTLRPC_BODY
185         RMF_DLM_REQ
186         RMF_LDLM_INTENT
187         RMF_REC_REINT
188         RMF_CAPA1
189         RMF_NAME
190
191 llog_log_hdr_only
192         RMF_PTLRPC_BODY
193         RMF_LLOG_LOG_HDR
194
195 llog_origin_handle_create_client
196         RMF_PTLRPC_BODY
197         RMF_LLOGD_BODY
198         RMF_NAME
199
200 llog_origin_handle_next_block_server
201         RMF_PTLRPC_BODY
202         RMF_LLOGD_BODY
203         RMF_EADATA
204
205 llogd_body_only
206         RMF_PTLRPC_BODY
207         RMF_LLOGD_BODY
208
209 llogd_conn_body_only
210         RMF_PTLRPC_BODY
211         RMF_LLOGD_CONN_BODY
212
213 log_cancel_client
214         RMF_PTLRPC_BODY
215         RMF_LOGCOOKIES
216
217 mds_getattr_name_client
218         RMF_PTLRPC_BODY
219         RMF_MDT_BODY
220         RMF_CAPA1
221         RMF_NAME
222
223 mds_getattr_server
224         RMF_PTLRPC_BODY
225         RMF_MDT_BODY
226         RMF_MDT_MD
227         RMF_ACL
228         RMF_CAPA1
229         RMF_CAPA2
230
231 mds_getinfo_client
232         RMF_PTLRPC_BODY
233         RMF_GETINFO_KEY
234         RMF_GETINFO_VALLEN
235
236 mds_getinfo_server
237         RMF_PTLRPC_BODY
238         RMF_GETINFO_VAL
239
240 mds_getxattr_client
241         RMF_PTLRPC_BODY
242         RMF_MDT_BODY
243         RMF_CAPA1
244         RMF_NAME
245         RMF_EADATA
246
247 mds_getxattr_server
248         RMF_PTLRPC_BODY
249         RMF_MDT_BODY
250         RMF_EADATA
251
252 mds_last_unlink_server
253         RMF_PTLRPC_BODY
254         RMF_MDT_BODY
255         RMF_MDT_MD
256         RMF_LOGCOOKIES
257         RMF_CAPA1
258         RMF_CAPA2
259
260 mds_reint_client
261         RMF_PTLRPC_BODY
262         RMF_REC_REINT
263
264 mds_reint_create_client
265         RMF_PTLRPC_BODY
266         RMF_REC_REINT
267         RMF_CAPA1
268         RMF_NAME
269
270 mds_reint_create_rmt_acl_client
271         RMF_PTLRPC_BODY
272         RMF_REC_REINT
273         RMF_CAPA1
274         RMF_NAME
275         RMF_EADATA
276         RMF_DLM_REQ
277
278 mds_reint_create_slave_client
279         RMF_PTLRPC_BODY
280         RMF_REC_REINT
281         RMF_CAPA1
282         RMF_NAME
283         RMF_EADATA
284         RMF_DLM_REQ
285
286 mds_reint_create_sym_client
287         RMF_PTLRPC_BODY
288         RMF_REC_REINT
289         RMF_CAPA1
290         RMF_NAME
291         RMF_SYMTGT
292         RMF_DLM_REQ
293
294 mds_reint_link_client
295         RMF_PTLRPC_BODY
296         RMF_REC_REINT
297         RMF_CAPA1
298         RMF_CAPA2
299         RMF_NAME
300         RMF_DLM_REQ
301
302 mds_reint_open_client
303         RMF_PTLRPC_BODY
304         RMF_REC_REINT
305         RMF_CAPA1
306         RMF_CAPA2
307         RMF_NAME
308         RMF_EADATA
309
310 mds_reint_open_server
311         RMF_PTLRPC_BODY
312         RMF_MDT_BODY
313         RMF_MDT_MD
314         RMF_ACL
315         RMF_CAPA1
316         RMF_CAPA2
317
318 mds_reint_rename_client
319         RMF_PTLRPC_BODY
320         RMF_REC_REINT
321         RMF_CAPA1
322         RMF_CAPA2
323         RMF_NAME
324         RMF_SYMTGT
325         RMF_DLM_REQ
326
327 mds_reint_setattr_client
328         RMF_PTLRPC_BODY
329         RMF_REC_REINT
330         RMF_CAPA1
331         RMF_MDT_EPOCH
332         RMF_EADATA
333         RMF_LOGCOOKIES
334         RMF_DLM_REQ
335
336 mds_reint_setxattr_client
337         RMF_PTLRPC_BODY
338         RMF_REC_REINT
339         RMF_CAPA1
340         RMF_NAME
341         RMF_EADATA
342         RMF_DLM_REQ
343
344 mds_reint_unlink_client
345         RMF_PTLRPC_BODY
346         RMF_REC_REINT
347         RMF_CAPA1
348         RMF_NAME
349         RMF_DLM_REQ
350
351 mds_setattr_server
352         RMF_PTLRPC_BODY
353         RMF_MDT_BODY
354         RMF_MDT_MD
355         RMF_ACL
356         RMF_CAPA1
357         RMF_CAPA2
358
359 mds_update_client
360         RMF_PTLRPC_BODY
361         RMF_OUT_UPDATE
362
363 mds_update_server
364         RMF_PTLRPC_BODY
365         RMF_OUT_UPDATE_REPLY
366
367 mdt_body_capa
368         RMF_PTLRPC_BODY
369         RMF_MDT_BODY
370         RMF_CAPA1
371
372 mdt_body_only
373         RMF_PTLRPC_BODY
374         RMF_MDT_BODY
375
376 mdt_close_client
377         RMF_PTLRPC_BODY
378         RMF_MDT_EPOCH
379         RMF_REC_REINT
380         RMF_CAPA1
381
382 mdt_hsm_action_server
383         RMF_PTLRPC_BODY
384         RMF_MDT_BODY
385         RMF_MDS_HSM_CURRENT_ACTION
386
387 mdt_hsm_ct_register
388         RMF_PTLRPC_BODY
389         RMF_MDT_BODY
390         RMF_MDS_HSM_ARCHIVE
391
392 mdt_hsm_ct_unregister
393         RMF_PTLRPC_BODY
394         RMF_MDT_BODY
395
396 mdt_hsm_progress
397         RMF_PTLRPC_BODY
398         RMF_MDT_BODY
399         RMF_MDS_HSM_PROGRESS
400
401 mdt_hsm_request
402         RMF_PTLRPC_BODY
403         RMF_MDT_BODY
404         RMF_MDS_HSM_REQUEST
405         RMF_MDS_HSM_USER_ITEM
406         RMF_GENERIC_DATA
407
408 mdt_hsm_state_get_server
409         RMF_PTLRPC_BODY
410         RMF_MDT_BODY
411         RMF_HSM_USER_STATE
412
413 mdt_hsm_state_set
414         RMF_PTLRPC_BODY
415         RMF_MDT_BODY
416         RMF_CAPA1
417         RMF_HSM_STATE_SET
418
419 mdt_release_close_client
420         RMF_PTLRPC_BODY
421         RMF_MDT_EPOCH
422         RMF_REC_REINT
423         RMF_CAPA1
424         RMF_CLOSE_DATA
425
426 mdt_swap_layouts
427         RMF_PTLRPC_BODY
428         RMF_MDT_BODY
429         RMF_SWAP_LAYOUTS
430         RMF_CAPA1
431         RMF_CAPA2
432         RMF_DLM_REQ
433
434 mgs_config_read_client
435         RMF_PTLRPC_BODY
436         RMF_MGS_CONFIG_BODY
437
438 mgs_config_read_server
439         RMF_PTLRPC_BODY
440         RMF_MGS_CONFIG_RES
441
442 mgs_set_info
443         RMF_PTLRPC_BODY
444         RMF_MGS_SEND_PARAM
445
446 mgs_target_info_only
447         RMF_PTLRPC_BODY
448         RMF_MGS_TARGET_INFO
449
450 obd_connect_client
451         RMF_PTLRPC_BODY
452         RMF_TGTUUID
453         RMF_CLUUID
454         RMF_CONN
455         RMF_CONNECT_DATA
456
457 obd_connect_server
458         RMF_PTLRPC_BODY
459         RMF_CONNECT_DATA
460
461 obd_idx_read_client
462         RMF_PTLRPC_BODY
463         RMF_IDX_INFO
464
465 obd_idx_read_server
466         RMF_PTLRPC_BODY
467         RMF_IDX_INFO
468
469 obd_lfsck_reply
470         RMF_PTLRPC_BODY
471         RMF_LFSCK_REPLY
472
473 obd_lfsck_request
474         RMF_PTLRPC_BODY
475         RMF_LFSCK_REQUEST
476
477 obd_set_info_client
478         RMF_PTLRPC_BODY
479         RMF_SETINFO_KEY
480         RMF_SETINFO_VAL
481
482 obd_statfs_server
483         RMF_PTLRPC_BODY
484         RMF_OBD_STATFS
485
486 ost_body_capa
487         RMF_PTLRPC_BODY
488         RMF_OST_BODY
489         RMF_CAPA1
490
491 ost_body_only
492         RMF_PTLRPC_BODY
493         RMF_OST_BODY
494
495 ost_brw_client
496         RMF_PTLRPC_BODY
497         RMF_OST_BODY
498         RMF_OBD_IOOBJ
499         RMF_NIOBUF_REMOTE
500         RMF_CAPA1
501
502 ost_brw_read_server
503         RMF_PTLRPC_BODY
504         RMF_OST_BODY
505
506 ost_brw_write_server
507         RMF_PTLRPC_BODY
508         RMF_OST_BODY
509         RMF_RCS
510
511 ost_destroy_client
512         RMF_PTLRPC_BODY
513         RMF_OST_BODY
514         RMF_DLM_REQ
515         RMF_CAPA1
516
517 ost_get_fiemap_client
518         RMF_PTLRPC_BODY
519         RMF_FIEMAP_KEY
520         RMF_FIEMAP_VAL
521
522 ost_get_fiemap_server
523         RMF_PTLRPC_BODY
524         RMF_FIEMAP_VAL
525
526 ost_get_info_generic_client
527         RMF_PTLRPC_BODY
528         RMF_GETINFO_KEY
529
530 ost_get_info_generic_server
531         RMF_PTLRPC_BODY
532         RMF_GENERIC_DATA
533
534 ost_get_last_fid_client
535         RMF_PTLRPC_BODY
536         RMF_GETINFO_KEY
537         RMF_FID
538
539 ost_get_last_fid_server
540         RMF_PTLRPC_BODY
541         RMF_FID
542
543 ost_get_last_id_server
544         RMF_PTLRPC_BODY
545         RMF_OBD_ID
546
547 ost_grant_shrink_client
548         RMF_PTLRPC_BODY
549         RMF_SETINFO_KEY
550         RMF_OST_BODY
551
552 quota_body_only
553         RMF_PTLRPC_BODY
554         RMF_QUOTA_BODY
555
556 quotactl_only
557         RMF_PTLRPC_BODY
558         RMF_OBD_QUOTACTL
559
560 seq_query_client
561         RMF_PTLRPC_BODY
562         RMF_SEQ_OPC
563         RMF_SEQ_RANGE
564
565 seq_query_server
566         RMF_PTLRPC_BODY
567         RMF_SEQ_RANGE