Whamcloud - gitweb
LU-1347 style: removes obsolete EXPORT_SYMTAB macros
[fs/lustre-release.git] / lustre / contrib / packet-lustre.c
1 /* packet-lustre.c
2  * Lustre 1.6 dissection (http://www.lustre.org/)
3  * Author: Laurent George <george@ocre.cea.fr>
4  * based on packet-agentx.c and packet-afs.c
5  * partially generated by Pidl
6  * 20080903
7  * Wireshark - Network traffic analyzer
8  * By Gerald Combs <gerald@wireshark.org>
9  * Copyright 1999 Gerald Combs
10  *
11  * This program is free software; you can redistribute it and/or
12  * modify it under the terms of the GNU General Public License
13  * as published by the Free Software Foundation; either version 2
14  * of the License, or (at your option) any later version.
15  *
16  * This program is distributed in the hope that it will be useful,
17  * but WITHOUT ANY WARRANTY; without even the implied warranty of
18  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
19  * GNU General Public License for more details.
20  *
21  * You should have received a copy of the GNU General Public License
22  * along with this program; if not, write to the Free Software
23  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
24  */
25
26 #ifdef HAVE_CONFIG_H
27 #include "config.h"
28 #endif
29
30
31 #include <glib.h>
32 #include <string.h>
33 #include <epan/packet.h>
34
35 #include <epan/dissectors/packet-windows-common.h>
36 #include <plugins/lnet/packet-lnet.h>
37
38
39 /* --------------------------------------------------------------------------------------- */
40 /* def and macro to know where we are the the lustre payload */
41 #define LUSTRE_MAGIC_OFFSET 8
42 #define LUSTRE_MSG_MAGIC_V1 0x0BD00BD0
43 #define LUSTRE_MSG_MAGIC_V2 0x0BD00BD3
44
45 #define LUSTRE_BUFCOUNT_OFF ((tvb_get_letohl(tvb, LUSTRE_MAGIC_OFFSET)== LUSTRE_MSG_MAGIC_V2) ? 0 : 60)
46 #define LUSTRE_BUFCOUNT ((tvb_get_letohl(tvb, LUSTRE_MAGIC_OFFSET)== LUSTRE_MSG_MAGIC_V2) \
47     ? (tvb_get_letohl(tvb, LUSTRE_BUFCOUNT_OFF)) : ((tvb_get_letohl(tvb, LUSTRE_BUFCOUNT_OFF))) )
48 /* remark : BUFLENOFF don't have the same meaning if it's for v1 or v2
49  * v1 : LUSTRE_BUFLEN_OFF = offset buflen[0] - 4 bytes.
50  * v2 : LUSTRE_BUFLEN_OFF = offset buflen[0]
51  */
52 #define LUSTRE_BUFLEN_OFF ((tvb_get_letohl(tvb, LUSTRE_MAGIC_OFFSET)== LUSTRE_MSG_MAGIC_V2) ? 32 : 60)
53
54 #define LUSTRE_REQ_REC_OFF                     1 /* normal request record offset */
55 #define LUSTRE_REPLY_REC_OFF                   1 /* normal reply record offset */
56
57 #define LUSTRE_DLM_INTENT_IT_OFF               2 /* intent lock it offset */
58 #define LUSTRE_DLM_INTENT_REC_OFF              3 /* intent lock record offset */
59 #define LUSTRE_DLM_LOCKREPLY_OFF               1 /* lockrep offset */
60 #define LUSTRE_DLM_REPLY_REC_OFF               2 /* reply record offset */
61 /* --------------------------------------------------------------------------------------- */
62
63
64 #define LUSTRE_PTLRPC_MSG_VERSION  0x00000003
65 #define LUSTRE_VERSION_MASK 0xffff0000
66 #define LUSTRE_OBD_VERSION  0x00010000
67 #define LUSTRE_MDS_VERSION  0x00020000
68 #define LUSTRE_OST_VERSION  0x00030000
69 #define LUSTRE_DLM_VERSION  0x00040000
70 #define LUSTRE_LOG_VERSION  0x00050000
71 #define LUSTRE_MGS_VERSION  0x00060000
72
73
74
75 #define LOV_MAGIC_V1      0x0BD10BD0
76 #define LOV_MAGIC         LOV_MAGIC_V1
77 #define LOV_MAGIC_JOIN_V1 0x0BD20BD0
78
79 typedef enum {
80   OST_REPLY      =  0,       /* reply ? */
81   OST_GETATTR    =  1,
82   OST_SETATTR    =  2,
83   OST_READ       =  3,
84   OST_WRITE      =  4,
85   OST_CREATE     =  5,
86   OST_DESTROY    =  6,
87   OST_GET_INFO   =  7,
88   OST_CONNECT    =  8,
89   OST_DISCONNECT =  9,
90   OST_PUNCH      = 10,
91   OST_OPEN       = 11,
92   OST_CLOSE      = 12,
93   OST_STATFS     = 13,
94   /*      OST_SAN_READ   = 14,    deprecated */
95   /*      OST_SAN_WRITE  = 15,    deprecated */
96   OST_SYNC       = 16,
97   OST_SET_INFO   = 17,
98   OST_QUOTACHECK = 18,
99   OST_QUOTACTL   = 19,
100   OST_QUOTA_ADJUST_QUNIT = 20,
101   OST_LAST_OPC
102 } ost_cmd_t ;
103
104
105 typedef enum {
106   OBD_PING = 400,
107   OBD_LOG_CANCEL,
108   OBD_QC_CALLBACK,
109   OBD_LAST_OPC
110 } obd_cmd_t;
111 #define OBD_FIRST_OPC OBD_PING
112
113 typedef enum {
114   MDS_GETATTR      = 33,
115   MDS_GETATTR_NAME = 34,
116   MDS_CLOSE        = 35,
117   MDS_REINT        = 36,
118   MDS_READPAGE     = 37,
119   MDS_CONNECT      = 38,
120   MDS_DISCONNECT   = 39,
121   MDS_GETSTATUS    = 40,
122   MDS_STATFS       = 41,
123   MDS_PIN          = 42,
124   MDS_UNPIN        = 43,
125   MDS_SYNC         = 44,
126   MDS_DONE_WRITING = 45,
127   MDS_SET_INFO     = 46,
128   MDS_QUOTACHECK   = 47,
129   MDS_QUOTACTL     = 48,
130   MDS_GETXATTR     = 49,
131   MDS_SETXATTR     = 50,
132   MDS_WRITEPAGE    = 51,
133   MDS_IS_SUBDIR    = 52,
134   MDS_GET_INFO     = 53,
135   MDS_LAST_OPC
136 } mds_cmd_t;
137
138 #define IT_OPEN     0x0001
139 #define IT_CREAT    0x0002
140 #define IT_READDIR  0x0004
141 #define IT_GETATTR  0x0008
142 #define IT_LOOKUP   0x0010
143 #define IT_UNLINK   0x0020
144 #define IT_GETXATTR 0x0040
145 #define IT_EXEC     0x0080
146 #define IT_PIN      0x0100
147
148
149
150 #define MDS_FIRST_OPC MDS_GETATTR
151 #define LDLM_FIRST_OPC LDLM_ENQUEUE
152
153 typedef enum {
154   REINT_SETATTR  = 1,
155   REINT_CREATE   = 2,
156   REINT_LINK     = 3,
157   REINT_UNLINK   = 4,
158   REINT_RENAME   = 5,
159   REINT_OPEN     = 6,
160   REINT_SETXATTR = 7,
161   //      REINT_CLOSE    = 8,
162   //      REINT_WRITE    = 9,
163   REINT_MAX
164 } mds_reint_t;
165
166 typedef enum {
167   LDLM_ENQUEUE     = 101,
168   LDLM_CONVERT     = 102,
169   LDLM_CANCEL      = 103,
170   LDLM_BL_CALLBACK = 104,
171   LDLM_CP_CALLBACK = 105,
172   LDLM_GL_CALLBACK = 106,
173   LDLM_LAST_OPC
174 } ldlm_cmd_t;
175 #define LDLM_FIRST_OPC LDLM_ENQUEUE
176
177 #define LDLM_FL_LOCK_CHANGED                      0x000001
178 #define LDLM_FL_BLOCK_GRANTED                     0x000002
179 #define LDLM_FL_BLOCK_CONV                        0x000004
180 #define LDLM_FL_BLOCK_WAIT                        0x000008
181 #define LDLM_FL_CBPENDING                         0x000010
182 #define LDLM_FL_AST_SENT                          0x000020
183 #define LDLM_FL_WAIT_NOREPROC                     0x000040
184 #define LDLM_FL_CANCEL                            0x000080
185 #define LDLM_FL_REPLAY                            0x000100
186 #define LDLM_FL_INTENT_ONLY                       0x000200
187 #define LDLM_FL_LOCAL_ONLY                        0x000400
188 #define LDLM_FL_FAILED                            0x000800
189 #define LDLM_FL_HAS_INTENT                        0x001000
190 #define LDLM_FL_CANCELING                         0x002000
191 #define LDLM_FL_LOCAL                             0x004000
192 #define LDLM_FL_WARN                              0x008000
193 #define LDLM_FL_DISCARD_DATA                      0x010000
194 #define LDLM_FL_NO_TIMEOUT                        0x020000
195 #define LDLM_FL_BLOCK_NOWAIT                      0x040000
196 #define LDLM_FL_TEST_LOCK                         0x080000
197 #define LDLM_FL_LVB_READY                         0x100000
198 #define LDLM_FL_KMS_IGNORE                        0x200000
199 #define LDLM_FL_NO_LRU                            0x400000
200 #define LDLM_FL_CANCEL_ON_BLOCK                   0x800000
201 #define LDLM_FL_CP_REQD                          0x1000000
202 #define LDLM_FL_CLEANED                          0x2000000
203 #define LDLM_FL_ATOMIC_CB                        0x4000000
204 #define LDLM_FL_BL_AST                          0x10000000
205 #define LDLM_FL_BL_DONE                         0x20000000
206 #define LDLM_FL_DENY_ON_CONTENTION              0x40000000
207 #define LDLM_AST_DISCARD_DATA                   0x80000000
208
209
210
211 #define LDLM_ENQUEUE (101)
212 #define LDLM_CONVERT (102)
213 #define LDLM_CANCEL (103)
214 #define LDLM_BL_CALLBACK (104)
215 #define LDLM_CP_CALLBACK (105)
216 #define LDLM_GL_CALLBACK (106)
217 #define LCK_MINMODE (0)
218 #define LCK_EX (1)
219 #define LCK_PW (2)
220 #define LCK_PR (4)
221 #define LCK_CW (8)
222 #define LCK_CR (16)
223 #define LCK_NL (32)
224 #define LCK_GROUP (64)
225 #define LDLM_PLAIN (10)
226 #define LDLM_EXTENT (11)
227 #define LDLM_FLOCK (12)
228 #define LDLM_IBITS (13)
229 //#define MGS_CONNECT (250)
230 #define OBD_PING (400)
231
232 /*
233  * Opcodes for mountconf (mgs and mgc)
234  */
235 typedef enum {
236   MGS_CONNECT = 250,
237   MGS_DISCONNECT,
238   MGS_EXCEPTION,         /* node died, etc. */
239   MGS_TARGET_REG,        /* whenever target starts up */
240   MGS_TARGET_DEL,
241   MGS_SET_INFO,
242   MGS_LAST_OPC
243 } mgs_cmd_t;
244 #define MGS_FIRST_OPC MGS_CONNECT
245
246 /* llog protocol */
247 typedef enum {
248   LLOG_ORIGIN_HANDLE_CREATE       = 501,
249   LLOG_ORIGIN_HANDLE_NEXT_BLOCK   = 502,
250   LLOG_ORIGIN_HANDLE_READ_HEADER  = 503,
251   LLOG_ORIGIN_HANDLE_WRITE_REC    = 504,
252   LLOG_ORIGIN_HANDLE_CLOSE        = 505,
253   LLOG_ORIGIN_CONNECT             = 506,
254   LLOG_CATINFO                    = 507,  /* for lfs catinfo */
255   LLOG_ORIGIN_HANDLE_PREV_BLOCK   = 508,
256   LLOG_ORIGIN_HANDLE_DESTROY      = 509,  /* for destroy llog object*/
257   LLOG_LAST_OPC
258 } llog_cmd_t;
259
260 #define LLOG_FIRST_OPC LLOG_ORIGIN_HANDLE_CREATE
261 /*flag for the LLOG*/
262 #define LLOG_OP_MAGIC 0x10600000
263 #define LLOG_OP_MASK  0xfff00000
264
265 typedef enum {
266   LLOG_PAD_MAGIC   = LLOG_OP_MAGIC | 0x00000,
267   OST_SZ_REC       = LLOG_OP_MAGIC | 0x00f00,
268   OST_RAID1_REC    = LLOG_OP_MAGIC | 0x01000,
269   MDS_UNLINK_REC   = LLOG_OP_MAGIC | 0x10000 | (MDS_REINT << 8) | REINT_UNLINK,
270   MDS_SETATTR_REC  = LLOG_OP_MAGIC | 0x10000 | (MDS_REINT << 8) | REINT_SETATTR,
271   OBD_CFG_REC      = LLOG_OP_MAGIC | 0x20000,
272   PTL_CFG_REC      = LLOG_OP_MAGIC | 0x30000, /* obsolete */
273   LLOG_GEN_REC     = LLOG_OP_MAGIC | 0x40000,
274   LLOG_JOIN_REC    = LLOG_OP_MAGIC | 0x50000, /* obsolete */
275   LLOG_HDR_MAGIC   = LLOG_OP_MAGIC | 0x45539,
276   LLOG_LOGID_MAGIC = LLOG_OP_MAGIC | 0x4553b,
277 } llog_op_type;
278
279 /* LLOG flag */
280 /*defined in lustre/include/lustre/lustre_idl.h*/
281 #define LLOG_F_ZAP_WHEN_EMPTY   0x1
282 #define LLOG_F_IS_CAT           0x2
283 #define LLOG_F_IS_PLAIN         0x4
284
285 #define PTL_RPC_MSG_REQUEST 4711
286 #define PTL_RPC_MSG_ERR 4712
287 #define PTL_RPC_MSG_REPLY 4713
288
289
290 /* Ett declarations */
291 static gint ett_lustre_llog_log_llh_flags = -1 ;
292 static gint ett_lustre = -1;
293 static gint ett_lustre_lustre_handle_cookie = -1;
294 static gint ett_lustre_lustre_msg_v1 = -1;
295 static gint ett_lustre_lustre_handle_v1 = -1;
296 static gint ett_lustre_lustre_msg_v2 = -1;
297 static gint ett_lustre_ptlrpc_body = -1;
298 static gint ett_lustre_lustre_handle_v2 = -1;
299 static gint ett_lustre_obd_connect_data = -1;
300 static gint ett_lustre_lov_mds_md_v1 = -1;
301 static gint ett_lustre_lov_ost_data_v1 = -1;
302 static gint ett_lustre_obd_statfs = -1;
303 static gint ett_lustre_obd_ioobj = -1;
304 static gint ett_lustre_niobuf_remote = -1;
305 static gint ett_lustre_ost_lvb = -1;
306 static gint ett_lustre_ll_fid = -1;
307 static gint ett_lustre_mdt_body = -1;
308 static gint ett_lustre_mdt_rec_setattr = -1;
309 static gint ett_lustre_mdt_rec_create = -1;
310 static gint ett_lustre_mdt_rec_link = -1;
311 static gint ett_lustre_mdt_rec_unlink = -1;
312 static gint ett_lustre_mdt_rec_rename = -1;
313 static gint ett_lustre_mdt_rec_setxattr = -1;
314 static gint ett_lustre_obd_quotactl = -1;
315 static gint ett_lustre_obd_dqinfo = -1;
316 static gint ett_lustre_obd_dqblk = -1;
317 static gint ett_lustre_quota_adjust_qunit = -1;
318 static gint ett_lustre_lov_desc = -1;
319 static gint ett_lustre_obd_uuid = -1;
320 static gint ett_lustre_ldlm_res_id = -1;
321 static gint ett_lustre_ldlm_extent = -1;
322 static gint ett_lustre_ldlm_inodebits = -1;
323 static gint ett_lustre_ldlm_flock = -1;
324 static gint ett_lustre_ldlm_intent_opc = -1;
325 static gint ett_lustre_ldlm_resource_desc = -1;
326 static gint ett_lustre_ldlm_lock_desc = -1;
327 static gint ett_lustre_ldlm_request = -1;
328 static gint ett_lustre_lustre_handle = -1;
329 static gint ett_lustre_ldlm_reply = -1;
330 static gint ett_lustre_mgs_send_param = -1;
331 static gint ett_lustre_mgs_target_info = -1;
332 static gint ett_lustre_cfg_marker = -1;
333 static gint ett_lustre_llog_catid = -1;
334 static gint ett_lustre_llog_rec_hdr = -1;
335 static gint ett_lustre_llog_logid_rec = -1;
336 static gint ett_lustre_llog_logid = -1;
337 static gint ett_lustre_llog_rec_tail = -1;
338 static gint ett_lustre_lov_mds_md = -1;
339 static gint ett_lustre_llog_create_rec = -1;
340 static gint ett_lustre_llog_orphan_rec = -1;
341 static gint ett_lustre_llog_unlink_rec = -1;
342 static gint ett_lustre_llog_setattr_rec = -1;
343 static gint ett_lustre_llog_size_change_rec = -1;
344 static gint ett_lustre_llog_gen_rec = -1;
345 static gint ett_lustre_llog_log_hdr = -1;
346 static gint ett_lustre_llog_cookie = -1;
347 static gint ett_lustre_llogd_body = -1;
348 static gint ett_lustre_llogd_conn_body = -1;
349 static gint ett_lustre_llog_gen = -1;
350 static gint ett_lustre_obdo = -1;
351 static gint ett_lustre_ost_body = -1;
352 static gint ett_lustre_qunit_data = -1;
353 static gint ett_lustre_qunit_data_old2 = -1;
354 static gint ett_lustre_qunit_data_old = -1;
355 static gint ett_lustre_ldlm_lock_flags = -1 ;
356
357 /* -----------------------------------------------*/
358 /* Header field declarations */
359 static int hf_lustre_ptlrpc_body_pb = -1 ;
360 static int hf_lustre_ost_body = -1 ;
361 static int hf_lustre_obd_statfs = -1 ;
362 static int hf_lustre_obd_quotactl = -1 ;
363 static int hf_lustre_quota_adjust_qunit = -1 ;
364 static int hf_lustre_extra_padding = -1 ;
365 static int hf_lustre_ldlm_reply = -1 ;
366 static int hf_lustre_ldlm_request = -1 ;
367 static int hf_lustre_obd_uuid = -1 ;
368 static int hf_lustre_obd_connect_data = -1 ;
369 static int hf_lustre_ldlm_intent = -1;
370 static int hf_lustre_obd_ioobj = -1 ;
371 static int hf_lustre_niobuf_remote = -1 ;
372 static int hf_lustre_ost_key = -1 ;
373 static int hf_lustre_nio= -1 ;
374 static int hf_lustre_ost_val= -1;
375 static int hf_lustre_llogd_body = -1;
376 static int hf_lustre_llogd_log_hdr= -1;
377 static int hf_lustre_llog_logid_rec =-1 ;
378 static int hf_lustre_llogd_chunk= -1;
379 static int hf_lustre_llogd_keyword= -1;
380 static int hf_lustre_llogd_client= -1;
381 static int hf_lustre_llogd_name= -1;
382
383 static int hf_lustre_mds_xattr_name = -1;
384 static int hf_lustre_lov_mds_md_v1= -1;
385 static int hf_lustre_llog_cookie= -1;
386 static int hf_lustre_mds_md_data= -1;
387 static int hf_lustre_mds_reint_opcode= -1;
388 static int hf_lustre_mds_xattr_eadata = -1;
389
390 static int hf_lustre_reint_name= -1;
391 static int hf_lustre_reint_old_name= -1;
392 static int hf_lustre_reint_new_name= -1;
393
394 static int hf_lustre_mgs_target_info = -1 ;
395 static int hf_lustre_mgs_send_param = -1;
396
397 static int hf_lustre_ost_lvb = -1 ;
398
399 static int hf_lustre_ldlm_fl_lock_changed        = -1;
400 static int hf_lustre_ldlm_fl_block_granted       = -1;
401 static int hf_lustre_ldlm_fl_block_conv          = -1;
402 static int hf_lustre_ldlm_fl_block_wait          = -1;
403 static int hf_lustre_ldlm_fl_cbpending           = -1;
404 static int hf_lustre_ldlm_fl_ast_sent            = -1;
405 static int hf_lustre_ldlm_fl_wait_noreproc       = -1;
406 static int hf_lustre_ldlm_fl_cancel              = -1;
407 static int hf_lustre_ldlm_fl_replay              = -1;
408 static int hf_lustre_ldlm_fl_intent_only         = -1;
409 static int hf_lustre_ldlm_fl_local_only          = -1;
410 static int hf_lustre_ldlm_fl_failed              = -1;
411 static int hf_lustre_ldlm_fl_has_intent          = -1;
412 static int hf_lustre_ldlm_fl_canceling           = -1;
413 static int hf_lustre_ldlm_fl_local               = -1;
414 static int hf_lustre_ldlm_fl_warn                = -1;
415 static int hf_lustre_ldlm_fl_discard_data        = -1;
416 static int hf_lustre_ldlm_fl_no_timeout          = -1;
417 static int hf_lustre_ldlm_fl_block_nowait        = -1;
418 static int hf_lustre_ldlm_fl_test_lock           = -1;
419 static int hf_lustre_ldlm_fl_lvb_ready           = -1;
420 static int hf_lustre_ldlm_fl_kms_ignore          = -1;
421 static int hf_lustre_ldlm_fl_no_lru              = -1;
422 static int hf_lustre_ldlm_fl_cancel_on_block     = -1;
423 static int hf_lustre_ldlm_fl_cp_reqd             = -1;
424 static int hf_lustre_ldlm_fl_cleaned             = -1;
425 static int hf_lustre_ldlm_fl_atomic_cb           = -1;
426 static int hf_lustre_ldlm_fl_bl_ast              = -1;
427 static int hf_lustre_ldlm_fl_bl_done             = -1;
428 static int hf_lustre_ldlm_fl_deny_on_contention  = -1;
429 static int hf_lustre_ldlm_ast_discard_data       = -1;
430
431 static int hf_lustre_mdt_body = -1 ;
432 static int hf_lustre_mdt_body_fid1 = -1;
433 static int hf_lustre_mdt_body_fid2 = -1;
434 static int hf_lustre_mdt_body_handle = -1;
435 static int hf_lustre_mdt_body_valid = -1;
436 static int hf_lustre_mdt_body_size = -1;
437 static int hf_lustre_mdt_body_mtime = -1;
438 static int hf_lustre_mdt_body_atime = -1;
439 static int hf_lustre_mdt_body_ctime = -1;
440 static int hf_lustre_mdt_body_blocks = -1;
441 static int hf_lustre_mdt_body_ioepoch = -1;
442 static int hf_lustre_mdt_body_ino = -1;
443 static int hf_lustre_mdt_body_fsuid = -1;
444 static int hf_lustre_mdt_body_fsgid = -1;
445 static int hf_lustre_mdt_body_capability = -1;
446 static int hf_lustre_mdt_body_mode = -1;
447 static int hf_lustre_mdt_body_uid = -1;
448 static int hf_lustre_mdt_body_gid = -1;
449 static int hf_lustre_mdt_body_flags = -1;
450 static int hf_lustre_mdt_body_rdev = -1;
451 static int hf_lustre_mdt_body_nlink = -1;
452 static int hf_lustre_mdt_body_generation = -1;
453 static int hf_lustre_mdt_body_suppgid = -1;
454 static int hf_lustre_mdt_body_eadatasize = -1;
455 static int hf_lustre_mdt_body_aclsize = -1;
456 static int hf_lustre_mdt_body_max_mdsize = -1;
457 static int hf_lustre_mdt_body_max_cookiesize = -1;
458 static int hf_lustre_mdt_body_uid_h = -1;
459 static int hf_lustre_mdt_body_gid_h = -1;
460 static int hf_lustre_mdt_body_padding_5 = -1;
461 static int hf_lustre_mdt_body_padding_6 = -1;
462 static int hf_lustre_mdt_body_padding_7 = -1;
463 static int hf_lustre_mdt_body_padding_8 = -1;
464 static int hf_lustre_mdt_body_padding_9 = -1;
465 static int hf_lustre_mdt_body_padding_10 = -1;
466
467 static int hf_lustre_mdt_rec_setattr = -1 ;
468 static int hf_lustre_mdt_rec_setattr_sa_opcode = -1;
469 static int hf_lustre_mdt_rec_setattr_sa_cap = -1;
470 static int hf_lustre_mdt_rec_setattr_sa_fsuid = -1;
471 static int hf_lustre_mdt_rec_setattr_sa_fsuid_h = -1;
472 static int hf_lustre_mdt_rec_setattr_sa_fsgid = -1;
473 static int hf_lustre_mdt_rec_setattr_sa_fsgid_h = -1;
474 static int hf_lustre_mdt_rec_setattr_sa_suppgid = -1;
475 static int hf_lustre_mdt_rec_setattr_sa_suppgid_h = -1;
476 static int hf_lustre_mdt_rec_setattr_sa_padding_1 = -1;
477 static int hf_lustre_mdt_rec_setattr_sa_padding_1_h = -1;
478 static int hf_lustre_mdt_rec_setattr_sa_fid = -1;
479 static int hf_lustre_mdt_rec_setattr_sa_valid = -1;
480 static int hf_lustre_mdt_rec_setattr_sa_uid = -1;
481 static int hf_lustre_mdt_rec_setattr_sa_gid = -1;
482 static int hf_lustre_mdt_rec_setattr_sa_size = -1;
483 static int hf_lustre_mdt_rec_setattr_sa_blocks = -1;
484 static int hf_lustre_mdt_rec_setattr_sa_mtime = -1;
485 static int hf_lustre_mdt_rec_setattr_sa_atime = -1;
486 static int hf_lustre_mdt_rec_setattr_sa_ctime = -1;
487 static int hf_lustre_mdt_rec_setattr_sa_attr_flags = -1;
488 static int hf_lustre_mdt_rec_setattr_sa_mode = -1;
489 static int hf_lustre_mdt_rec_setattr_sa_padding_2 = -1;
490 static int hf_lustre_mdt_rec_setattr_sa_padding_3 = -1;
491 static int hf_lustre_mdt_rec_setattr_sa_padding_4 = -1;
492 static int hf_lustre_mdt_rec_setattr_sa_padding_5 = -1;
493
494 static int hf_lustre_mdt_rec_create = -1 ;
495 static int hf_lustre_mdt_rec_create_cr_opcode = -1;
496 static int hf_lustre_mdt_rec_create_cr_cap = -1;
497 static int hf_lustre_mdt_rec_create_cr_fsuid = -1;
498 static int hf_lustre_mdt_rec_create_cr_fsuid_h = -1;
499 static int hf_lustre_mdt_rec_create_cr_fsgid = -1;
500 static int hf_lustre_mdt_rec_create_cr_fsgid_h = -1;
501 static int hf_lustre_mdt_rec_create_cr_suppgid1 = -1;
502 static int hf_lustre_mdt_rec_create_cr_suppgid1_h = -1;
503 static int hf_lustre_mdt_rec_create_cr_suppgid2 = -1;
504 static int hf_lustre_mdt_rec_create_cr_suppgid2_h = -1;
505 static int hf_lustre_mdt_rec_create_cr_fid1 = -1;
506 static int hf_lustre_mdt_rec_create_cr_fid2 = -1;
507 static int hf_lustre_mdt_rec_create_cr_old_handle = -1;
508 static int hf_lustre_mdt_rec_create_cr_time = -1;
509 static int hf_lustre_mdt_rec_create_cr_rdev = -1;
510 static int hf_lustre_mdt_rec_create_cr_cr_ioepoch = -1;
511 static int hf_lustre_mdt_rec_create_cr_padding_1 = -1;
512 static int hf_lustre_mdt_rec_create_cr_mode = -1;
513 static int hf_lustre_mdt_rec_create_cr_bias = -1;
514 static int hf_lustre_mdt_rec_create_cr_flags_l = -1;
515 static int hf_lustre_mdt_rec_create_cr_flags_h = -1;
516 static int hf_lustre_mdt_rec_create_cr_padding_3 = -1;
517 static int hf_lustre_mdt_rec_create_cr_padding_4 = -1;
518
519 static int hf_lustre_mdt_rec_link = -1 ;
520 static int hf_lustre_mdt_rec_link_lk_opcode = -1;
521 static int hf_lustre_mdt_rec_link_lk_cap = -1;
522 static int hf_lustre_mdt_rec_link_lk_fsuid = -1;
523 static int hf_lustre_mdt_rec_link_lk_fsuid_h = -1;
524 static int hf_lustre_mdt_rec_link_lk_fsgid = -1;
525 static int hf_lustre_mdt_rec_link_lk_fsgid_h = -1;
526 static int hf_lustre_mdt_rec_link_lk_suppgid1 = -1;
527 static int hf_lustre_mdt_rec_link_lk_suppgid1_h = -1;
528 static int hf_lustre_mdt_rec_link_lk_suppgid2 = -1;
529 static int hf_lustre_mdt_rec_link_lk_suppgid2_h = -1;
530 static int hf_lustre_mdt_rec_link_lk_fid1 = -1;
531 static int hf_lustre_mdt_rec_link_lk_fid2 = -1;
532 static int hf_lustre_mdt_rec_link_lk_time = -1;
533 static int hf_lustre_mdt_rec_link_lk_padding_1 = -1;
534 static int hf_lustre_mdt_rec_link_lk_padding_2 = -1;
535 static int hf_lustre_mdt_rec_link_lk_padding_3 = -1;
536 static int hf_lustre_mdt_rec_link_lk_padding_4 = -1;
537 static int hf_lustre_mdt_rec_link_lk_bias = -1;
538 static int hf_lustre_mdt_rec_link_lk_padding_5 = -1;
539 static int hf_lustre_mdt_rec_link_lk_padding_6 = -1;
540 static int hf_lustre_mdt_rec_link_lk_padding_7 = -1;
541 static int hf_lustre_mdt_rec_link_lk_padding_8 = -1;
542 static int hf_lustre_mdt_rec_link_lk_padding_9 = -1;
543
544 static int hf_lustre_mdt_rec_unlink = -1 ;
545 static int hf_lustre_mdt_rec_unlink_ul_opcode = -1;
546 static int hf_lustre_mdt_rec_unlink_ul_cap = -1;
547 static int hf_lustre_mdt_rec_unlink_ul_fsuid = -1;
548 static int hf_lustre_mdt_rec_unlink_ul_fsuid_h = -1;
549 static int hf_lustre_mdt_rec_unlink_ul_fsgid = -1;
550 static int hf_lustre_mdt_rec_unlink_ul_fsgid_h = -1;
551 static int hf_lustre_mdt_rec_unlink_ul_suppgid1 = -1;
552 static int hf_lustre_mdt_rec_unlink_ul_suppgid1_h = -1;
553 static int hf_lustre_mdt_rec_unlink_ul_suppgid2 = -1;
554 static int hf_lustre_mdt_rec_unlink_ul_suppgid2_h = -1;
555 static int hf_lustre_mdt_rec_unlink_ul_fid1 = -1;
556 static int hf_lustre_mdt_rec_unlink_ul_fid2 = -1;
557 static int hf_lustre_mdt_rec_unlink_ul_time = -1;
558 static int hf_lustre_mdt_rec_unlink_ul_padding_2 = -1;
559 static int hf_lustre_mdt_rec_unlink_ul_padding_3 = -1;
560 static int hf_lustre_mdt_rec_unlink_ul_padding_4 = -1;
561 static int hf_lustre_mdt_rec_unlink_ul_padding_5 = -1;
562 static int hf_lustre_mdt_rec_unlink_ul_bias = -1;
563 static int hf_lustre_mdt_rec_unlink_ul_mode = -1;
564 static int hf_lustre_mdt_rec_unlink_ul_padding_6 = -1;
565 static int hf_lustre_mdt_rec_unlink_ul_padding_7 = -1;
566 static int hf_lustre_mdt_rec_unlink_ul_padding_8 = -1;
567 static int hf_lustre_mdt_rec_unlink_ul_padding_9 = -1;
568
569 static int hf_lustre_mdt_rec_rename = -1 ;
570 static int hf_lustre_mdt_rec_rename_rn_opcode = -1;
571 static int hf_lustre_mdt_rec_rename_rn_cap = -1;
572 static int hf_lustre_mdt_rec_rename_rn_fsuid = -1;
573 static int hf_lustre_mdt_rec_rename_rn_fsuid_h = -1;
574 static int hf_lustre_mdt_rec_rename_rn_fsgid = -1;
575 static int hf_lustre_mdt_rec_rename_rn_fsgid_h = -1;
576 static int hf_lustre_mdt_rec_rename_rn_suppgid1 = -1;
577 static int hf_lustre_mdt_rec_rename_rn_suppgid1_h = -1;
578 static int hf_lustre_mdt_rec_rename_rn_suppgid2 = -1;
579 static int hf_lustre_mdt_rec_rename_rn_suppgid2_h = -1;
580 static int hf_lustre_mdt_rec_rename_rn_fid1 = -1;
581 static int hf_lustre_mdt_rec_rename_rn_fid2 = -1;
582 static int hf_lustre_mdt_rec_rename_rn_time = -1;
583 static int hf_lustre_mdt_rec_rename_rn_padding_1 = -1;
584 static int hf_lustre_mdt_rec_rename_rn_padding_2 = -1;
585 static int hf_lustre_mdt_rec_rename_rn_padding_3 = -1;
586 static int hf_lustre_mdt_rec_rename_rn_padding_4 = -1;
587 static int hf_lustre_mdt_rec_rename_rn_bias = -1;
588 static int hf_lustre_mdt_rec_rename_rn_mode = -1;
589 static int hf_lustre_mdt_rec_rename_rn_padding_5 = -1;
590 static int hf_lustre_mdt_rec_rename_rn_padding_6 = -1;
591 static int hf_lustre_mdt_rec_rename_rn_padding_7 = -1;
592 static int hf_lustre_mdt_rec_rename_rn_padding_8 = -1;
593
594 static int hf_lustre_mdt_rec_setxattr = -1 ;
595 static int hf_lustre_mdt_rec_setxattr_sx_opcode = -1;
596 static int hf_lustre_mdt_rec_setxattr_sx_cap = -1;
597 static int hf_lustre_mdt_rec_setxattr_sx_fsuid = -1;
598 static int hf_lustre_mdt_rec_setxattr_sx_fsuid_h = -1;
599 static int hf_lustre_mdt_rec_setxattr_sx_fsgid = -1;
600 static int hf_lustre_mdt_rec_setxattr_sx_fsgid_h = -1;
601 static int hf_lustre_mdt_rec_setxattr_sx_suppgid1 = -1;
602 static int hf_lustre_mdt_rec_setxattr_sx_suppgid1_h = -1;
603 static int hf_lustre_mdt_rec_setxattr_sx_suppgid2 = -1;
604 static int hf_lustre_mdt_rec_setxattr_sx_suppgid2_h = -1;
605 static int hf_lustre_mdt_rec_setxattr_sx_fid = -1;
606 static int hf_lustre_mdt_rec_setxattr_sx_padding_1 = -1;
607 static int hf_lustre_mdt_rec_setxattr_sx_padding_2 = -1;
608 static int hf_lustre_mdt_rec_setxattr_sx_padding_3 = -1;
609 static int hf_lustre_mdt_rec_setxattr_sx_valid = -1;
610 static int hf_lustre_mdt_rec_setxattr_sx_time = -1;
611 static int hf_lustre_mdt_rec_setxattr_sx_padding_5 = -1;
612 static int hf_lustre_mdt_rec_setxattr_sx_padding_6 = -1;
613 static int hf_lustre_mdt_rec_setxattr_sx_padding_7 = -1;
614 static int hf_lustre_mdt_rec_setxattr_sx_size = -1;
615 static int hf_lustre_mdt_rec_setxattr_sx_flags = -1;
616 static int hf_lustre_mdt_rec_setxattr_sx_padding_8 = -1;
617 static int hf_lustre_mdt_rec_setxattr_sx_padding_9 = -1;
618 static int hf_lustre_mdt_rec_setxattr_sx_padding_10 = -1;
619 static int hf_lustre_mdt_rec_setxattr_sx_padding_11 = -1;
620
621 static int hf_lustre_lustre_handle_cookie = -1;
622 static int hf_lustre_ptlrpc_body_pb_last_committed = -1;
623 static int hf_lustre_ptlrpc_body_pb_version = -1;
624 static int hf_lustre_lustre_msg_v1_lm_bufcount = -1;
625 static int hf_lustre_obd_ioobj_ioo_id = -1;
626 static int hf_lustre_ptlrpc_body_pb_slv = -1;
627 static int hf_lustre_lustre_msg_v1_lm_handle = -1;
628 static int hf_lustre_ost_lvb_lvb_atime = -1;
629 static int hf_lustre_ptlrpc_body_pb_timeout = -1;
630 static int hf_lustre_obd_statfs_os_bavail = -1;
631 static int hf_lustre_obd_statfs_os_bsize = -1;
632 static int hf_lustre_lustre_msg_v2_lm_repsize = -1;
633 static int hf_lustre_lov_mds_md_v1_lmm_stripe_size = -1;
634 static int hf_lustre_lustre_msg_v1_lm_last_xid = -1;
635 static int hf_lustre_ll_fid_f_type = -1;
636 static int hf_lustre_lustre_msg_v2_lm_cksum = -1;
637 static int hf_lustre_lustre_msg_v2_lm_buflens = -1;
638 static int hf_lustre_lustre_msg_v1_lm_status = -1;
639 static int hf_lustre_lustre_msg_v1_lm_type = -1;
640 static int hf_lustre_niobuf_remote_len = -1;
641 static int hf_lustre_lov_mds_md_v1_lmm_magic = -1;
642 static int hf_lustre_ptlrpc_body_pb_op_flags = -1;
643 static int hf_lustre_ost_lvb_lvb_ctime = -1;
644 static int hf_lustre_ptlrpc_body_pb_type = -1;
645 static int hf_lustre_obd_connect_data_ocd_nllg = -1;
646 static int hf_lustre_obd_connect_data_ocd_nllu = -1;
647 static int hf_lustre_ll_fid_generation = -1;
648 static int hf_lustre_ost_lvb_lvb_mtime = -1;
649 static int hf_lustre_obd_connect_data_ocd_ibits_known = -1;
650 static int hf_lustre_lustre_msg_v2_lm_padding_3 = -1;
651 static int hf_lustre_ptlrpc_body_pb_flags = -1;
652 static int hf_lustre_obd_statfs_os_spare4 = -1;
653 static int hf_lustre_obd_connect_data_ocd_group = -1;
654 static int hf_lustre_lov_ost_data_v1_l_object_seq = -1;
655 static int hf_lustre_lov_mds_md_v1_lmm_object_seq = -1;
656 static int hf_lustre_obd_connect_data_ocd_brw_size = -1;
657 static int hf_lustre_ptlrpc_body_pb_limit = -1;
658 static int hf_lustre_obd_statfs_os_maxbytes = -1;
659 static int hf_lustre_obd_statfs_os_spare5 = -1;
660 static int hf_lustre_lustre_msg_v2_lm_flags = -1;
661 static int hf_lustre_obd_statfs_os_ffree = -1;
662 static int hf_lustre_obd_statfs_os_files = -1;
663 static int hf_lustre_lov_mds_md_v1_lmm_stripe_count = -1;
664 static int hf_lustre_lustre_msg_v1_lm_flags = -1;
665 static int hf_lustre_lustre_msg_v1_lm_last_committed = -1;
666 static int hf_lustre_obd_statfs_os_spare9 = -1;
667 static int hf_lustre_obd_connect_data_ocd_index = -1;
668 static int hf_lustre_opnum = -1;
669 static int hf_lustre_lustre_msg_v1_lm_buflens = -1;
670 static int hf_lustre_obd_statfs_os_spare1 = -1;
671 static int hf_lustre_obd_statfs_os_spare8 = -1;
672 static int hf_lustre_lustre_msg_v1_lm_conn_cnt = -1;
673 static int hf_lustre_ptlrpc_body_pb_transno = -1;
674 static int hf_lustre_ptlrpc_body_pb_service_time = -1;
675 static int hf_lustre_ptlrpc_body_pb_conn_cnt = -1;
676 static int hf_lustre_ptlrpc_body_pb_opc = -1;
677 static int hf_lustre_obd_connect_data_ocd_connect_flags = -1;
678 static int hf_lustre_lov_ost_data_v1_l_object_id = -1;
679 static int hf_lustre_lov_ost_data_v1_l_ost_gen = -1;
680 static int hf_lustre_obd_statfs_os_bfree = -1;
681 static int hf_lustre_obd_connect_data_ocd_version = -1;
682 static int hf_lustre_lov_mds_md_v1_lmm_objects = -1;
683 static int hf_lustre_obd_statfs_os_namelen = -1;
684 static int hf_lustre_obd_statfs_os_blocks = -1;
685 static int hf_lustre_lustre_msg_v2_lm_secflvr = -1;
686 static int hf_lustre_lustre_msg_v1_lm_transno = -1;
687 static int hf_lustre_lov_mds_md_v1_lmm_pattern = -1;
688 static int hf_lustre_lustre_msg_v1_lm_opc = -1;
689 static int hf_lustre_obd_connect_data_ocd_grant = -1;
690 static int hf_lustre_obd_ioobj_ioo_bufcnt = -1;
691 static int hf_lustre_lustre_msg_v1_lm_version = -1;
692 static int hf_lustre_obd_statfs_os_spare7 = -1;
693 static int hf_lustre_obd_statfs_os_fsid = -1;
694 static int hf_lustre_obd_connect_data_ocd_cksum_types = -1;
695 static int hf_lustre_ost_lvb_lvb_size = -1;
696 static int hf_lustre_obd_statfs_os_type = -1;
697 static int hf_lustre_obd_statfs_os_spare6 = -1;
698 static int hf_lustre_obd_statfs_os_state = -1;
699 static int hf_lustre_obd_statfs_os_spare3 = -1;
700 static int hf_lustre_lustre_msg_v2_lm_magic = -1;
701 static int hf_lustre_lov_mds_md_v1_lmm_object_id = -1;
702 static int hf_lustre_ptlrpc_body_pb_last_seen = -1;
703 static int hf_lustre_obd_ioobj_ioo_type = -1;
704 static int hf_lustre_ptlrpc_body_pb_last_xid = -1;
705 static int hf_lustre_ptlrpc_body_pb_status = -1;
706 static int hf_lustre_niobuf_remote_flags = -1;
707 static int hf_lustre_ll_fid_id = -1;
708 static int hf_lustre_ost_lvb_lvb_blocks = -1;
709 static int hf_lustre_lustre_msg_v2_lm_padding_2 = -1;
710 static int hf_lustre_obd_connect_data_padding1 = -1;
711 static int hf_lustre_lov_ost_data_v1_l_ost_idx = -1;
712 static int hf_lustre_obd_connect_data_padding2 = -1;
713 static int hf_lustre_obd_ioobj_ioo_seq = -1;
714 static int hf_lustre_niobuf_remote_offset=-1;
715 static int hf_lustre_obd_statfs_os_spare2 = -1;
716 static int hf_lustre_lustre_msg_v2_lm_bufcount = -1;
717 static int hf_lustre_ptlrpc_body_pb_handle = -1;
718 static int hf_lustre_obd_connect_data_ocd_transno = -1;
719 static int hf_lustre_lustre_msg_v1_lm_magic = -1;
720 static int hf_lustre_llog_unlink_rec_lur_tail = -1;
721 static int hf_lustre_llog_size_change_rec_lsc_io_epoch = -1;
722 static int hf_lustre_mgs_target_info_mti_flags = -1;
723 static int hf_lustre_ldlm_reply_lock_policy_res1 = -1;
724 static int hf_lustre_llogd_body_lgd_len = -1;
725 static int hf_lustre_qunit_data_old_qd_id = -1;
726 static int hf_lustre_llog_logid_rec_padding1 = -1;
727 static int hf_lustre_quota_adjust_qunit_padding1 = -1;
728 static int hf_lustre_llog_size_change_rec_lsc_fid = -1;
729 static int hf_lustre_llog_rec_hdr_padding = -1;
730 static int hf_lustre_obdo_o_nlink = -1;
731 static int hf_lustre_ldlm_extent_gid = -1;
732 static int hf_lustre_obdo_o_uid = -1;
733 static int hf_lustre_obdo_o_valid = -1;
734 static int hf_lustre_ldlm_reply_lock_flags = -1;
735 static int hf_lustre_obdo_o_misc = -1;
736
737 static int hf_lustre_ldlm_request_lock_handle = -1;
738 static int hf_lustre_llog_logid_lgl_oid = -1;
739 static int hf_lustre_ldlm_inodebits_bits = -1;
740 static int hf_lustre_llog_log_hdr_llh_count = -1;
741 static int hf_lustre_llog_gen_rec_lgr_tail = -1;
742 static int hf_lustre_llog_catid_lci_padding3 = -1;
743 static int hf_lustre_qunit_data_qd_qunit = -1;
744 static int hf_lustre_llog_setattr_rec_padding = -1;
745 static int hf_lustre_llog_cookie_lgc_lgl = -1;
746 static int hf_lustre_obd_quotactl_qc_dqinfo = -1;
747 static int hf_lustre_llog_log_hdr_llh_bitmap = -1;
748 static int hf_lustre_obd_quotactl_qc_stat = -1;
749 static int hf_lustre_qunit_data_old2_qd_id = -1;
750 static int hf_lustre_llog_logid_rec_padding2 = -1;
751 static int hf_lustre_llog_orphan_rec_lor_tail = -1;
752 static int hf_lustre_llog_logid_rec_padding5 = -1;
753 static int hf_lustre_ldlm_intent_opc = -1;
754 static int hf_lustre_llog_rec_hdr_lrh_type = -1;
755 static int hf_lustre_llog_rec_hdr_lrh_len = -1;
756 static int hf_lustre_llog_setattr_rec_lsr_uid = -1;
757 static int hf_lustre_lov_desc_ld_padding_1 = -1;
758 static int hf_lustre_obdo_o_padding_4 = -1;
759 static int hf_lustre_mgs_target_info_padding = -1;
760 static int hf_lustre_obd_quotactl_qc_dqblk = -1;
761 static int hf_lustre_llogd_conn_body_lgdc_gen = -1;
762 static int hf_lustre_llog_log_hdr_llh_tail = -1;
763 static int hf_lustre_obdo_o_size = -1;
764 static int hf_lustre_ldlm_extent_start = -1;
765 static int hf_lustre_llog_size_change_rec_lsc_hdr = -1;
766 static int hf_lustre_llog_create_rec_lcr_tail = -1;
767 static int hf_lustre_llog_logid_lgl_oseq = -1;
768 static int hf_lustre_llog_create_rec_lcr_hdr = -1;
769 static int hf_lustre_llog_cookie_lgc_padding = -1;
770 static int hf_lustre_qunit_data_old_qd_type = -1;
771 static int hf_lustre_ldlm_flock_blocking_export = -1;
772 static int hf_lustre_lov_desc_ld_pattern = -1;
773 static int hf_lustre_qunit_data_qd_id = -1;
774 static int hf_lustre_mgs_target_info_mti_fsname = -1;
775 static int hf_lustre_ldlm_request_lock_flags = -1;
776 static int hf_lustre_obdo_o_mode = -1;
777 static int hf_lustre_mgs_target_info_mti_svname = -1;
778 static int hf_lustre_llogd_body_lgd_logid = -1;
779 static int hf_lustre_llog_log_hdr_llh_size = -1;
780 static int hf_lustre_llog_create_rec_padding = -1;
781 static int hf_lustre_obdo_o_handle = -1;
782 static int hf_lustre_obdo_o_atime = -1;
783 static int hf_lustre_quota_adjust_qunit_qaq_id = -1;
784 static int hf_lustre_ldlm_lock_desc_l_policy_data = -1;
785 static int hf_lustre_obd_quotactl_qc_cmd = -1;
786 static int hf_lustre_qunit_data_padding = -1;
787 static int hf_lustre_quota_adjust_qunit_qaq_flags = -1;
788 static int hf_lustre_ldlm_lock_desc_l_granted_mode = -1;
789 static int hf_lustre_obdo_o_seq = -1;
790 static int hf_lustre_obdo_o_gid = -1;
791 static int hf_lustre_llog_catid_lci_logid = -1;
792 static int hf_lustre_llog_rec_tail_lrt_index = -1;
793 static int hf_lustre_lov_desc_ld_default_stripe_count = -1;
794 static int hf_lustre_ldlm_resource_desc_lr_padding = -1;
795 static int hf_lustre_cfg_marker_cm_vers = -1;
796 static int hf_lustre_llog_unlink_rec_lur_hdr = -1;
797 static int hf_lustre_llogd_body_lgd_index = -1;
798 static int hf_lustre_cfg_marker_cm_tgtname = -1;
799 static int hf_lustre_llog_setattr_rec_lsr_ogen = -1;
800 static int hf_lustre_llog_logid_rec_lid_hdr = -1;
801 static int hf_lustre_obdo_o_ioepoch = -1;
802 static int hf_lustre_ost_body_oa = -1;
803 static int hf_lustre_llog_logid_rec_padding3 = -1;
804 static int hf_lustre_llog_log_hdr_llh_flags = -1;
805 static int hf_lustre_llog_setattr_rec_lsr_oid = -1;
806 static int hf_lustre_llog_size_change_rec_padding = -1;
807 static int hf_lustre_mgs_target_info_mti_config_ver = -1;
808 static int hf_lustre_cfg_marker_cm_createtime = -1;
809 static int hf_lustre_qunit_data_old_qd_count = -1;
810 static int hf_lustre_llog_catid_lci_padding1 = -1;
811 static int hf_lustre_lov_desc_ld_active_tgt_count = -1;
812 static int hf_lustre_obdo_o_lcookie = -1;
813 static int hf_lustre_llog_gen_rec_lgr_gen = -1;
814 static int hf_lustre_obdo_o_id = -1;
815 static int hf_lustre_mgs_target_info_mti_uuid = -1;
816 static int hf_lustre_llog_rec_hdr_lrh_index = -1;
817 static int hf_lustre_llog_setattr_rec_lsr_hdr = -1;
818 static int hf_lustre_mgs_target_info_mti_stripe_index = -1;
819 static int hf_lustre_llog_gen_conn_cnt = -1;
820 static int hf_lustre_obdo_o_padding_6 = -1;
821 static int hf_lustre_llog_cookie_lgc_index = -1;
822 static int hf_lustre_lov_desc_ld_uuid = -1;
823 static int hf_lustre_llog_create_rec_lcr_oid = -1;
824 static int hf_lustre_ldlm_reply_lock_desc = -1;
825 static int hf_lustre_lov_desc_ld_padding_0 = -1;
826 static int hf_lustre_llog_unlink_rec_lur_ogen = -1;
827 static int hf_lustre_llog_orphan_rec_lor_hdr = -1;
828 static int hf_lustre_cfg_marker_cm_flags = -1;
829 static int hf_lustre_obdo_o_padding_3 = -1;
830 static int hf_lustre_ldlm_request_lock_desc = -1;
831 static int hf_lustre_llog_orphan_rec_padding = -1;
832 static int hf_lustre_obdo_o_flags = -1;
833 static int hf_lustre_mgs_target_info_mti_params = -1;
834 static int hf_lustre_llog_logid_lgl_ogen = -1;
835 static int hf_lustre_cfg_marker_cm_comment = -1;
836 static int hf_lustre_llog_unlink_rec_lur_oid = -1;
837 static int hf_lustre_qunit_data_qd_count = -1;
838 static int hf_lustre_obdo_o_mtime = -1;
839 static int hf_lustre_obdo_o_blksize = -1;
840 static int hf_lustre_ldlm_res_id_name = -1;
841 static int hf_lustre_ldlm_reply_lock_handle = -1;
842 static int hf_lustre_llogd_body_lgd_saved_index = -1;
843 static int hf_lustre_qunit_data_old_qd_isblk = -1;
844 static int hf_lustre_obdo_o_blocks = -1;
845 static int hf_lustre_lov_desc_ld_padding_2 = -1;
846 static int hf_lustre_llog_logid_rec_lid_tail = -1;
847 static int hf_lustre_obdo_o_grant = -1;
848 static int hf_lustre_obdo_o_padding_2 = -1;
849 static int hf_lustre_quota_adjust_qunit_qaq_iunit_sz = -1;
850 static int hf_lustre_llog_unlink_rec_padding = -1;
851 static int hf_lustre_ldlm_lock_desc_l_req_mode = -1;
852 static int hf_lustre_ldlm_extent_end = -1;
853 static int hf_lustre_llog_gen_rec_lgr_hdr = -1;
854 static int hf_lustre_llog_orphan_rec_lor_ogen = -1;
855 static int hf_lustre_llogd_body_lgd_llh_flags = -1;
856 static int hf_lustre_llog_log_hdr_llh_cat_idx = -1;
857 static int hf_lustre_llog_log_hdr_llh_bitmap_offset=-1;
858 static int hf_lustre_llog_orphan_rec_lor_oid = -1;
859 static int hf_lustre_ldlm_reply_lock_padding = -1;
860 static int hf_lustre_obd_quotactl_qc_id = -1;
861 static int hf_lustre_llog_logid_rec_padding4 = -1;
862 static int hf_lustre_llog_setattr_rec_lsr_gid = -1;
863 static int hf_lustre_obd_quotactl_qc_type = -1;
864 static int hf_lustre_cfg_marker_padding = -1;
865 static int hf_lustre_mgs_target_info_mti_nids = -1;
866 static int hf_lustre_obdo_o_stripe_idx = -1;
867 static int hf_lustre_llogd_conn_body_lgdc_logid = -1;
868 static int hf_lustre_ldlm_flock_blocking_pid = -1;
869 static int hf_lustre_lov_desc_ld_tgt_count = -1;
870 static int hf_lustre_llogd_body_lgd_cur_offset=-1;
871 static int hf_lustre_llog_create_rec_lcr_ogen = -1;
872 static int hf_lustre_qunit_data_old2_qd_count = -1;
873 static int hf_lustre_qunit_data_old2_qd_flags = -1;
874 static int hf_lustre_ldlm_flock_start = -1;
875 static int hf_lustre_quota_adjust_qunit_qaq_bunit_sz = -1;
876 static int hf_lustre_ldlm_flock_pid = -1;
877 static int hf_lustre_lov_desc_ld_default_stripe_size = -1;
878 static int hf_lustre_llog_log_hdr_llh_tgtuuid = -1;
879 static int hf_lustre_cfg_marker_cm_step = -1;
880 static int hf_lustre_mgs_send_param_mgs_param = -1;
881 static int hf_lustre_llog_create_rec_lcr_fid = -1;
882 static int hf_lustre_lov_desc_ld_default_stripe_offset=-1;
883 static int hf_lustre_ldlm_resource_desc_lr_name = -1;
884 static int hf_lustre_llog_rec_tail_lrt_len = -1;
885 static int hf_lustre_llog_log_hdr_llh_timestamp = -1;
886 static int hf_lustre_llog_catid_lci_padding2 = -1;
887 static int hf_lustre_llogd_conn_body_lgdc_ctxt_idx = -1;
888 static int hf_lustre_cfg_marker_cm_canceltime = -1;
889 static int hf_lustre_mgs_target_info_mti_lustre_ver = -1;
890 static int hf_lustre_obdo_o_parent_ver = -1;
891 static int hf_lustre_qunit_data_qd_flags = -1;
892 static int hf_lustre_llog_logid_rec_lid_id = -1;
893 static int hf_lustre_obdo_o_parent_oid = -1;
894 static int hf_lustre_llog_gen_mnt_cnt = -1;
895 static int hf_lustre_llog_size_change_rec_lsc_tail = -1;
896 static int hf_lustre_obdo_o_padding_5 = -1;
897 static int hf_lustre_ldlm_lock_desc_l_resource = -1;
898 static int hf_lustre_obdo_o_parent_seq = -1;
899 static int hf_lustre_ldlm_request_lock_count = -1;
900 static int hf_lustre_ldlm_flock_end = -1;
901 static int hf_lustre_mgs_target_info_mti_nid_count = -1;
902 static int hf_lustre_obdo_o_ctime = -1;
903 static int hf_lustre_ldlm_reply_lock_policy_res2 = -1;
904 static int hf_lustre_llogd_body_lgd_ctxt_idx = -1;
905 static int hf_lustre_lov_desc_ld_qos_maxage = -1;
906 static int hf_lustre_ldlm_resource_desc_lr_type = -1;
907 static int hf_lustre_llog_setattr_rec_lsr_tail = -1;
908 static int hf_lustre_llog_cookie_lgc_subsys = -1;
909 static int hf_lustre_llog_log_hdr_llh_hdr = -1;
910 static int hf_lustre_llog_log_hdr_llh_reserved = -1;
911
912 /* Header field declarations for field from lustre_user.h*/
913 static int hf_lustre_obd_dqinfo_dqi_valid = -1;
914 static int hf_lustre_obd_dqblk_dqb_isoftlimit = -1;
915 static int hf_lustre_obd_dqblk_dqb_bhardlimit = -1;
916 static int hf_lustre_obd_dqblk_dqb_curspace = -1;
917 static int hf_lustre_obd_dqblk_dqb_itime = -1;
918 static int hf_lustre_obd_dqblk_dqb_valid = -1;
919 static int hf_lustre_obd_dqinfo_dqi_igrace = -1;
920 static int hf_lustre_obd_dqinfo_dqi_bgrace = -1;
921 static int hf_lustre_obd_dqblk_padding = -1;
922 static int hf_lustre_obd_dqblk_dqb_curinodes = -1;
923 static int hf_lustre_obd_dqblk_dqb_bsoftlimit = -1;
924 static int hf_lustre_obd_dqinfo_dqi_flags = -1;
925 static int hf_lustre_obd_dqblk_dqb_btime = -1;
926 static int hf_lustre_obd_dqblk_dqb_ihardlimit = -1;
927 static int hf_lustre_ldlm_intent_opc_open     = -1 ;
928 static int hf_lustre_ldlm_intent_opc_creat    = -1;
929 static int hf_lustre_ldlm_intent_opc_readdir  = -1;
930 static int hf_lustre_ldlm_intent_opc_getattr  = -1;
931 static int hf_lustre_ldlm_intent_opc_lookup   = -1;
932 static int hf_lustre_ldlm_intent_opc_unlink   = -1;
933 static int hf_lustre_ldlm_intent_opc_getxattr = -1;
934 static int hf_lustre_ldlm_intent_opc_exec     = -1;
935 static int hf_lustre_ldlm_intent_opc_pin      = -1;
936 static int hf_lustre_llog_hdr_llh_flag_zap_when_empty = -1;
937 static int hf_lustre_llog_hdr_llh_flag_is_cat = -1;
938 static int hf_lustre_llog_hdr_llh_flag_is_play = -1;
939 /* --------------------------------------------------------------------*/
940
941
942 /* proto declaration */
943 static gint proto_lustre = -1;
944
945
946
947
948 static int ldlm_opcode_process(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree * tree _U_, guint64 intent_opc _U_) ;
949 static int lustre_dissect_element_ldlm_lock_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, int hf_index _U_);
950 static int add_extra_padding(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree * tree _U_) ;
951
952
953 /* ======================================================================== */
954 /*the value_string*/
955 const value_string lustre_ldlm_opcode[] = {
956   { IT_OPEN    ,   "IT_OPEN    "},
957   { IT_CREAT   ,   "IT_CREAT   "},
958   { IT_READDIR ,   "IT_READDIR "},
959   { IT_GETATTR ,   "IT_GETATTR "},
960   { IT_LOOKUP  ,   "IT_LOOKUP  "},
961   { IT_UNLINK  ,   "IT_UNLINK  "},
962   { IT_GETXATTR,   "IT_GETXATTR"},
963   { IT_EXEC    ,   "IT_EXEC    "},
964   { IT_PIN     ,   "IT_PIN     "},
965   { 0, NULL }
966 };
967
968 const value_string lustre_lov_magic[] = {
969   { LOV_MAGIC_V1,   "LOV_MAGIC_V1" },
970   {0, NULL}
971 };
972
973 const value_string lustre_ldlm_flags_vals[] = {
974   {0x000001 , "LDLM_FL_LOCK_CHANGED"},
975   {0x000002 , "LDLM_FL_BLOCK_GRANTED"},
976   {0x000004 , "LDLM_FL_BLOCK_CONV"},
977   {0x000008 , "LDLM_FL_BLOCK_WAIT"},
978   {0x000010 , "LDLM_FL_CBPENDING"},
979   {0x000020 , "LDLM_FL_AST_SENT"},
980   {0x000040 , "LDLM_FL_WAIT_NOREPROC"},
981   {0x000080 , "LDLM_FL_CANCEL"},
982   {0x000100 , "LDLM_FL_REPLAY"},
983   {0x000200 , "LDLM_FL_INTENT_ONLY"},
984   {0x000400 , "LDLM_FL_LOCAL_ONLY"},
985   {0x000800 , "LDLM_FL_FAILED"},
986   {0x001000 , "LDLM_FL_HAS_INTENT"},
987   {0x002000 , "LDLM_FL_CANCELING"},
988   {0x004000 , "LDLM_FL_LOCAL"},
989   {0x008000 , "LDLM_FL_WARN"},
990   {0x010000 , "LDLM_FL_DISCARD_DATA"},
991   {0x020000 , "LDLM_FL_NO_TIMEOUT"},
992   {0x040000 , "LDLM_FL_BLOCK_NOWAIT"},
993   {0x080000 , "LDLM_FL_TEST_LOCK"},
994   {0x100000 , "LDLM_FL_LVB_READY"},
995   {0x200000 , "LDLM_FL_KMS_IGNORE"},
996   {0x400000 , "LDLM_FL_NO_LRU"},
997   {0x800000 , "LDLM_FL_CANCEL_ON_BLOCK"},
998   {0x1000000 , "LDLM_FL_CP_REQD"},
999   {0x2000000 , "LDLM_FL_CLEANED"},
1000   {0x4000000 , "LDLM_FL_ATOMIC_CB"},
1001   {0x10000000 , "LDLM_FL_BL_AST"},
1002   {0x20000000 , "LDLM_FL_BL_DONE"},
1003   {0x40000000 , "LDLM_FL_DENY_ON_CONTENTION"},
1004   {0x80000000 , "LDLM_AST_DISCARD_DATA"},
1005   { 0, NULL }
1006 };
1007
1008 const value_string lustre_llog_op_type[] = {
1009   {LLOG_PAD_MAGIC   ,"LLOG_PAD_MAGIC  "},
1010   {OST_SZ_REC       ,"OST_SZ_REC      "},
1011   {OST_RAID1_REC    ,"OST_RAID1_REC   "},
1012   {MDS_UNLINK_REC   ,"MDS_UNLINK_REC  "},
1013   {MDS_SETATTR_REC  ,"MDS_SETATTR_REC "},
1014   {OBD_CFG_REC      ,"OBD_CFG_REC     "},
1015   {PTL_CFG_REC      ,"PTL_CFG_REC     "},
1016   {LLOG_GEN_REC     ,"LLOG_GEN_REC    "},
1017   {LLOG_JOIN_REC    ,"LLOG_JOIN_REC   "},
1018   {LLOG_HDR_MAGIC   ,"LLOG_HDR_MAGIC  "},
1019   {LLOG_LOGID_MAGIC ,"LLOG_LOGID_MAGIC"},
1020   { 0, NULL }
1021 };
1022
1023 const value_string lustre_llog_hdr_llh_flags[]= {
1024   {LLOG_F_ZAP_WHEN_EMPTY , "LLOhdr_llh_G_F_ZAP_WHEN_EMPTY"},
1025   {LLOG_F_IS_CAT         , "LLOhdr_llh_G_F_IS_CAT"},
1026   {LLOG_F_IS_PLAIN       , "LLOG_F_IS_PLAIN"},
1027   { 0, NULL }
1028 };
1029
1030 const value_string lustre_mds_flags_vals[] = {
1031   {0x1,        "LUSTRE_BFLAG_UNCOMMITTED_WRITES"},
1032   {0x80000000, "LUSTRE_BFLAG_EXT_FLAGS"},   /* == EXT3_RESERVED_FL */
1033   {0x00000008, "LUSTRE_SYNC_FL        "},   /* Synchronous updates */
1034   {0x00000010, "LUSTRE_IMMUTABLE_FL   "},   /* Immutable file */
1035   {0x00000020, "LUSTRE_APPEND_FL      "},   /* writes to file may only append */
1036   {0x00000080, "LUSTRE_NOATIME_FL     "},   /* do not update atime */
1037   {0x00010000, "LUSTRE_DIRSYNC_FL     "},   /* dirsync behaviour (dir only) */
1038   { 0, NULL }
1039 };
1040
1041 const value_string lustre_LMTypes[] = {
1042   { PTL_RPC_MSG_REQUEST, "request"},
1043   { PTL_RPC_MSG_ERR , "error"},
1044   { PTL_RPC_MSG_REPLY , "reply"},
1045   { 0, NULL }
1046 };
1047
1048 const value_string lustre_mds_reint_t_vals[] = {
1049   { REINT_SETATTR, "REINT_SETATTR" },
1050   { REINT_CREATE, "REINT_CREATE" },
1051   { REINT_LINK, "REINT_LINK" },
1052   { REINT_UNLINK, "REINT_UNLINK" },
1053   { REINT_RENAME, "REINT_RENAME" },
1054   { REINT_OPEN, "REINT_OPEN" },
1055   { REINT_SETXATTR, "REINT_SETXATTR" },
1056   { 0, NULL }
1057 };
1058 const value_string lustre_op_codes[] = {
1059   /*OST Opcodes*/
1060   {0 , "OST_REPLY"},
1061   {1 , "OST_GETATTR"},
1062   {2 , "OST_SETATTR"},
1063   {3 , "OST_READ"},
1064   {4 , "OST_WRITE"},
1065   {5 , "OST_CREATE"},
1066   {6 , "OST_DESTROY"},
1067   {7 , "OST_GET_INFO"},
1068   {8 , "OST_CONNECT"},
1069   {9 , "OST_DISCONNECT"},
1070   {10 , "OST_PUNCH"},
1071   {11 , "OST_OPEN"},
1072   {12 , "OST_CLOSE"},
1073   {13 , "OST_STATFS"},
1074   {14 , "OST_SAN_READ(deprecated)"},
1075   {15 , "OST_SAN_WRITE(deprecated)"},
1076   {16 , "OST_SYNC"},
1077   {17 , "OST_SET_INFO"},
1078   {18 , "OST_QUOTACHECK"},
1079   {19 , "OST_QUOTACTL"},
1080   {20 , "OST_LAST_OPC"},
1081   /*MDS Opcodes*/
1082   {33 , "MDS_GETATTR"},
1083   {34 , "MDS_GETATTR_NAME"},
1084   {35 , "MDS_CLOSE"},
1085   {36 , "MDS_REINT"},
1086   {37 , "MDS_READPAGE"},
1087   {38 , "MDS_CONNECT"},
1088   {39 , "MDS_DISCONNECT"},
1089   {40 , "MDS_GETSTATUS"},
1090   {41 , "MDS_STATFS"},
1091   {42 , "MDS_PIN"},
1092   {43 , "MDS_UNPIN"},
1093   {44 , "MDS_SYNC"},
1094   {45 , "MDS_DONE_WRITING"},
1095   {46 , "MDS_SET_INFO"},
1096   {47 , "MDS_QUOTACHECK"},
1097   {48 , "MDS_QUOTACTL"},
1098   {49 , "MDS_GETXATTR"},
1099   {50 , "MDS_SETXATTR"},
1100   {51 , "MDS_LAST_OPC"},
1101   /*LDLM Opcodes*/
1102   {101 , "LDLM_ENQUEUE"},
1103   {102 , "LDLM_CONVERT"},
1104   {103 , "LDLM_CANCEL"},
1105   {104 , "LDLM_BL_CALLBACK"},
1106   {105 , "LDLM_CP_CALLBACK"},
1107   {106 , "LDLM_GL_CALLBACK"},
1108   {107 , "LDLM_LAST_OPC"},
1109   /*MGS Opcodes*/
1110   {250 , "MGS_CONNECT"},
1111   {251 , "MGS_DISCONNECT"},
1112   {252 , "MGS_EXCEPTION"},
1113   {253 , "MGS_TARGET_REG"},
1114   {254 , "MGS_TARGET_DEL"},
1115   {255 , "MGS_SET_INFO"},
1116   {256 , "MGS_LAST_OPC"},
1117   /*OBD Opcodes*/
1118   {400 , "OBD_PING"},
1119   {401 , "OBD_LOG_CANCEL"},
1120   {402 , "OBD_QC_CALLBACK"},
1121   {403 , "OBD_LAST_OPC"},
1122   /* LLOG opcodes */
1123   { 501, "LLOG_ORIGIN_HANDLE_CREATE"},
1124   { 502, "LLOG_ORIGIN_HANDLE_NEXT_BLOCK"},
1125   { 503, "LLOG_ORIGIN_HANDLE_READ_HEADER"},
1126   { 504, "LLOG_ORIGIN_HANDLE_WRITE_REC"},
1127   { 505, "LLOG_ORIGIN_HANDLE_CLOSE"},
1128   { 506, "LLOG_ORIGIN_CONNECT"},
1129   { 507, "LLOG_CATINFO"},
1130   { 508, "LLOG_ORIGIN_HANDLE_PREV_BLOCK"},
1131   { 509, "LLOG_ORIGIN_HANDLE_DESTROY"},
1132   { 0, NULL }
1133 };
1134 /*const value_string lustre_ldlm_mode_t_vals[] = {*/
1135 /*    { LCK_MINMODE, "MINMODE" },*/
1136 /*    { LCK_EX, "EX" },*/
1137 /*    { LCK_PW, "PW" },*/
1138 /*    { LCK_PR, "PR" },*/
1139 /*    { LCK_CW, "CW" },*/
1140 /*    { LCK_CR, "CR" },*/
1141 /*    { LCK_NL, "NL" },*/
1142 /*    { LCK_GROUP, "GROUP" },*/
1143 /*    { 0, NULL }*/
1144 /*};*/
1145
1146 /* detailled version the information came from : http://wiki.lustre.org/images/e/e5/LustreInternals_Architecture.pdf */
1147 const value_string lustre_ldlm_mode_t_vals[] = {
1148   { LCK_MINMODE, "MINMODE" },
1149   { LCK_EX, "Exclusive" },
1150   { LCK_PW, "Protected Write" },
1151   { LCK_PR, "Protected Read" },
1152   { LCK_CW, "Concurrent Write" },
1153   { LCK_CR, "Concurrent Read" },
1154   { LCK_NL, "Null" },
1155   { LCK_GROUP, "GROUP" },
1156   { 0, NULL }
1157 };
1158
1159 const value_string lustre_ldlm_type_t_vals[] = {
1160   { LDLM_PLAIN, "LDLM_PLAIN" },
1161   { LDLM_EXTENT,"LDLM_EXTENT" },
1162   { LDLM_FLOCK, "LDLM_FLOCK" },
1163   { LDLM_IBITS, "LDLM_IBITS" },
1164   { 0, NULL }
1165 };
1166
1167
1168 const value_string lustre_llog_cmd_t_vals[] = {
1169   { LLOG_ORIGIN_HANDLE_CREATE, "LLOG_ORIGIN_HANDLE_CREATE" },
1170   { LLOG_ORIGIN_HANDLE_NEXT_BLOCK, "LLOG_ORIGIN_HANDLE_NEXT_BLOCK" },
1171   { LLOG_ORIGIN_HANDLE_READ_HEADER, "LLOG_ORIGIN_HANDLE_READ_HEADER" },
1172   { LLOG_ORIGIN_HANDLE_WRITE_REC, "LLOG_ORIGIN_HANDLE_WRITE_REC" },
1173   { LLOG_ORIGIN_HANDLE_CLOSE, "LLOG_ORIGIN_HANDLE_CLOSE" },
1174   { LLOG_ORIGIN_CONNECT, "LLOG_ORIGIN_CONNECT" },
1175   { LLOG_CATINFO, "LLOG_CATINFO" },
1176   { LLOG_ORIGIN_HANDLE_PREV_BLOCK, "LLOG_ORIGIN_HANDLE_PREV_BLOCK" },
1177   { LLOG_ORIGIN_HANDLE_DESTROY, "LLOG_ORIGIN_HANDLE_DESTROY" },
1178   { 0, NULL }
1179 };
1180
1181
1182 /* ------------------------------------------------------------------- */
1183 /*                display  functions                                   */
1184 /* ------------------------------------------------------------------- */
1185 /* display str in left corner and in COL */
1186 /* TODO : do we need to use inline here ?*/
1187 /* @gint col :  the col where we add the information */
1188 inline static void display_info_str(proto_item *pi, column_info *cinfo, gint col, const gchar* str)
1189 {
1190   if (NULL !=pi)
1191     proto_item_append_text(pi, str);
1192
1193   if (NULL !=cinfo)
1194     if (check_col(cinfo, col))
1195       col_append_str(cinfo, col, str);
1196 }
1197
1198 /*
1199  * Need to be (re)written
1200  */
1201 static void display_info_fstr(proto_item *pi, column_info *cinfo, gint col, const char* format, const gchar * str){
1202
1203   if (NULL !=pi){
1204     //va_start(ap, format);
1205     proto_item_append_text(pi, format, str);
1206     //va_end(ap);
1207   }
1208
1209   if (NULL !=cinfo){
1210     if (check_col(cinfo, col)){
1211       //   va_list ap;
1212       //  va_start(ap, format);
1213       col_append_fstr(cinfo, col,  format, str);
1214       // va_end(ap);
1215     }
1216   }
1217 }
1218
1219
1220 /* ------------------------------ basic dissect functions ------------------------      */
1221 static int
1222 dissect_uint64
1223 (tvbuff_t *tvb, gint offset, packet_info *pinfo _U_, proto_tree *tree, int hfindex)
1224 {
1225   proto_tree_add_item(tree, hfindex, tvb, offset, 8, TRUE);
1226   return offset+8;
1227 }
1228
1229 static int
1230 dissect_uint32
1231 (tvbuff_t *tvb, gint offset, packet_info *pinfo _U_, proto_tree *tree, int hfindex)
1232 {
1233   proto_tree_add_item(tree, hfindex, tvb, offset, 4, TRUE);
1234   return offset+4;
1235 }
1236
1237 static int
1238 dissect_uint8
1239 (tvbuff_t *tvb, gint offset, packet_info *pinfo _U_, proto_tree *tree, int hfindex)
1240 {
1241   proto_tree_add_item(tree, hfindex, tvb, offset, 1, TRUE);
1242   return offset+1;
1243 }
1244 /* -------------------------------------------------------------------------    */
1245
1246
1247
1248
1249 /* IDL: struct lustre_handle { */
1250 /* IDL:         uint64 cookie; */
1251 /* IDL: } */
1252
1253 static int
1254 lustre_dissect_element_handle_cookie(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
1255 {
1256   offset=dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_lustre_handle_cookie);
1257
1258   return offset;
1259 }
1260
1261 int
1262 lustre_dissect_struct_handle_cookie(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, int hf_index _U_)
1263 {
1264   proto_item *item = NULL;
1265   proto_tree *tree = NULL;
1266   int old_offset;
1267
1268   old_offset=offset;
1269
1270   if (parent_tree) {
1271     item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
1272     tree = proto_item_add_subtree(item, ett_lustre_lustre_handle_cookie);
1273   }
1274
1275   offset=lustre_dissect_element_handle_cookie(tvb, offset, pinfo, tree);
1276
1277
1278   proto_item_set_len(item, offset-old_offset);
1279
1280   return offset;
1281 }
1282
1283 /* IDL: struct obd_connect_data { */
1284 /* IDL:         uint64 ocd_connect_flags; */
1285 /* IDL:         uint32 ocd_version; */
1286 /* IDL:         uint32 ocd_grant; */
1287 /* IDL:         uint32 ocd_index; */
1288 /* IDL:         uint32 ocd_brw_size; */
1289 /* IDL:         uint64 ocd_ibits_known; */
1290 /* IDL:         uint32 ocd_nllu; */
1291 /* IDL:         uint32 ocd_nllg; */
1292 /* IDL:         uint64 ocd_transno; */
1293 /* IDL:         uint32 ocd_group; */
1294 /* IDL:         uint32 ocd_cksum_types; */
1295 /* IDL:         uint64 padding1; */
1296 /* IDL:         uint64 padding2; */
1297 /* IDL: } */
1298
1299 static int
1300 lustre_dissect_element_obd_connect_data_ocd_connect_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
1301 {
1302   offset=dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_obd_connect_data_ocd_connect_flags);
1303
1304   return offset;
1305 }
1306
1307 static int
1308 lustre_dissect_element_obd_connect_data_ocd_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
1309 {
1310   offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_obd_connect_data_ocd_version);
1311
1312   return offset;
1313 }
1314
1315 static int
1316 lustre_dissect_element_obd_connect_data_ocd_grant(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
1317 {
1318   offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_obd_connect_data_ocd_grant);
1319
1320   return offset;
1321 }
1322
1323 static int
1324 lustre_dissect_element_obd_connect_data_ocd_index(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
1325 {
1326   offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_obd_connect_data_ocd_index);
1327
1328   return offset;
1329 }
1330
1331 static int
1332 lustre_dissect_element_obd_connect_data_ocd_brw_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
1333 {
1334   offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_obd_connect_data_ocd_brw_size);
1335
1336   return offset;
1337 }
1338
1339 static int
1340 lustre_dissect_element_obd_connect_data_ocd_ibits_known(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
1341 {
1342   offset=dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_obd_connect_data_ocd_ibits_known);
1343
1344   return offset;
1345 }
1346
1347 static int
1348 lustre_dissect_element_obd_connect_data_ocd_nllu(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
1349 {
1350   offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_obd_connect_data_ocd_nllu);
1351
1352   return offset;
1353 }
1354
1355 static int
1356 lustre_dissect_element_obd_connect_data_ocd_nllg(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
1357 {
1358   offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_obd_connect_data_ocd_nllg);
1359
1360   return offset;
1361 }
1362
1363 static int
1364 lustre_dissect_element_obd_connect_data_ocd_transno(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
1365 {
1366   offset=dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_obd_connect_data_ocd_transno);
1367
1368   return offset;
1369 }
1370
1371 static int
1372 lustre_dissect_element_obd_connect_data_ocd_group(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
1373 {
1374   offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_obd_connect_data_ocd_group);
1375
1376   return offset;
1377 }
1378
1379 static int
1380 lustre_dissect_element_obd_connect_data_ocd_cksum_types(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
1381 {
1382   offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_obd_connect_data_ocd_cksum_types);
1383
1384   return offset;
1385 }
1386
1387 static int
1388 lustre_dissect_element_obd_connect_data_padding1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
1389 {
1390   offset=dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_obd_connect_data_padding1);
1391
1392   return offset;
1393 }
1394
1395 static int
1396 lustre_dissect_element_obd_connect_data_padding2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
1397 {
1398   offset=dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_obd_connect_data_padding2);
1399
1400   return offset;
1401 }
1402
1403 static int
1404 lustre_dissect_struct_obd_connect_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, int hf_index _U_)
1405 {
1406   proto_item *item = NULL;
1407   proto_tree *tree = NULL;
1408   int old_offset;
1409
1410
1411
1412   old_offset=offset;
1413
1414   if (parent_tree) {
1415     item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
1416     tree = proto_item_add_subtree(item, ett_lustre_obd_connect_data);
1417   }
1418
1419   offset=lustre_dissect_element_obd_connect_data_ocd_connect_flags(tvb, offset, pinfo, tree);
1420
1421   offset=lustre_dissect_element_obd_connect_data_ocd_version(tvb, offset, pinfo, tree);
1422
1423   offset=lustre_dissect_element_obd_connect_data_ocd_grant(tvb, offset, pinfo, tree);
1424
1425   offset=lustre_dissect_element_obd_connect_data_ocd_index(tvb, offset, pinfo, tree);
1426
1427   offset=lustre_dissect_element_obd_connect_data_ocd_brw_size(tvb, offset, pinfo, tree);
1428
1429   offset=lustre_dissect_element_obd_connect_data_ocd_ibits_known(tvb, offset, pinfo, tree);
1430
1431   offset=lustre_dissect_element_obd_connect_data_ocd_nllu(tvb, offset, pinfo, tree);
1432
1433   offset=lustre_dissect_element_obd_connect_data_ocd_nllg(tvb, offset, pinfo, tree);
1434
1435   offset=lustre_dissect_element_obd_connect_data_ocd_transno(tvb, offset, pinfo, tree);
1436
1437   offset=lustre_dissect_element_obd_connect_data_ocd_group(tvb, offset, pinfo, tree);
1438
1439   offset=lustre_dissect_element_obd_connect_data_ocd_cksum_types(tvb, offset, pinfo, tree);
1440
1441   offset=lustre_dissect_element_obd_connect_data_padding1(tvb, offset, pinfo, tree);
1442
1443   offset=lustre_dissect_element_obd_connect_data_padding2(tvb, offset, pinfo, tree);
1444
1445
1446   proto_item_set_len(item, offset-old_offset);
1447
1448   return offset;
1449 }
1450
1451
1452 /* IDL: struct lov_ost_data_v1 { */
1453 /* IDL:         uint64 l_object_id; */
1454 /* IDL:         uint64 l_object_seq; */
1455 /* IDL:         uint32 l_ost_gen; */
1456 /* IDL:         uint32 l_ost_idx; */
1457 /* IDL: } */
1458
1459 static int
1460 lustre_dissect_element_lov_ost_data_v1_l_object_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
1461 {
1462   offset=dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_lov_ost_data_v1_l_object_id);
1463
1464   return offset;
1465 }
1466
1467 static int
1468 lustre_dissect_element_lov_ost_data_v1_l_object_seq(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
1469 {
1470   offset=dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_lov_ost_data_v1_l_object_seq);
1471
1472   return offset;
1473 }
1474
1475 static int
1476 lustre_dissect_element_lov_ost_data_v1_l_ost_gen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
1477 {
1478   offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_lov_ost_data_v1_l_ost_gen);
1479
1480   return offset;
1481 }
1482
1483 static int
1484 lustre_dissect_element_lov_ost_data_v1_l_ost_idx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
1485 {
1486   offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_lov_ost_data_v1_l_ost_idx);
1487
1488   return offset;
1489 }
1490
1491 int
1492 lustre_dissect_struct_lov_ost_data_v1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, int hf_index _U_)
1493 {
1494   proto_item *item = NULL;
1495   proto_tree *tree = NULL;
1496   int old_offset;
1497
1498
1499
1500   old_offset=offset;
1501
1502   if (parent_tree) {
1503     item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
1504     tree = proto_item_add_subtree(item, ett_lustre_lov_ost_data_v1);
1505   }
1506
1507   offset=lustre_dissect_element_lov_ost_data_v1_l_object_id(tvb, offset, pinfo, tree);
1508
1509   offset=lustre_dissect_element_lov_ost_data_v1_l_object_seq(tvb, offset, pinfo, tree);
1510
1511   offset=lustre_dissect_element_lov_ost_data_v1_l_ost_gen(tvb, offset, pinfo, tree);
1512
1513   offset=lustre_dissect_element_lov_ost_data_v1_l_ost_idx(tvb, offset, pinfo, tree);
1514
1515
1516   proto_item_set_len(item, offset-old_offset);
1517
1518   return offset;
1519 }
1520
1521 /* IDL: struct lov_mds_md_v1 { */
1522 /* IDL:         uint32 lmm_magic; */
1523 /* IDL:         uint32 lmm_pattern; */
1524 /* IDL:         uint64 lmm_object_id; */
1525 /* IDL:         uint64 lmm_object_seq; */
1526 /* IDL:         uint32 lmm_stripe_size; */
1527 /* IDL:         uint32 lmm_stripe_count; */
1528 /* IDL:         struct lov_ost_data_v1 { */
1529 /* IDL: } lmm_objects[0]; <-- en fait on en a lmm_stripe_count */
1530 /* IDL: } */
1531
1532 static int
1533 lustre_dissect_element_lov_mds_md_v1_lmm_magic(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
1534 {
1535   offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_lov_mds_md_v1_lmm_magic);
1536
1537   return offset;
1538 }
1539
1540 static int
1541 lustre_dissect_element_lov_mds_md_v1_lmm_pattern(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
1542 {
1543   offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_lov_mds_md_v1_lmm_pattern);
1544
1545   return offset;
1546 }
1547
1548 static int
1549 lustre_dissect_element_lov_mds_md_v1_lmm_object_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
1550 {
1551   offset=dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_lov_mds_md_v1_lmm_object_id);
1552
1553   return offset;
1554 }
1555
1556 static int
1557 lustre_dissect_element_lov_mds_md_v1_lmm_object_seq(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
1558 {
1559   offset=dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_lov_mds_md_v1_lmm_object_seq);
1560
1561   return offset;
1562 }
1563
1564 static int
1565 lustre_dissect_element_lov_mds_md_v1_lmm_stripe_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
1566 {
1567   offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_lov_mds_md_v1_lmm_stripe_size);
1568
1569   return offset;
1570 }
1571
1572 static int
1573 lustre_dissect_element_lov_mds_md_v1_lmm_stripe_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
1574 {
1575   offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_lov_mds_md_v1_lmm_stripe_count);
1576
1577   return offset;
1578 }
1579
1580 static int
1581 lustre_dissect_element_lov_mds_md_v1_lmm_objects_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
1582 {
1583   offset=lustre_dissect_struct_lov_ost_data_v1(tvb,offset,pinfo,tree,hf_lustre_lov_mds_md_v1_lmm_objects);
1584   return offset;
1585 }
1586
1587 static int
1588 lustre_dissect_element_lov_mds_md_v1_lmm_objects(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int num)
1589 {
1590   int i;
1591   /*g_print("num = %d", num);*/
1592   for (i = 0; i < num; i++){
1593     offset=lustre_dissect_element_lov_mds_md_v1_lmm_objects_(tvb, offset, pinfo, tree);
1594   }
1595
1596   return offset;
1597 }
1598
1599
1600
1601 int
1602 lustre_dissect_struct_lov_mds_md_v1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, int hf_index _U_)
1603 {
1604   proto_item *item = NULL;
1605   proto_tree *tree = NULL;
1606   int old_offset;
1607
1608   guint32 stripe_count ;
1609
1610
1611   old_offset=offset;
1612
1613   if (parent_tree) {
1614     item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
1615     tree = proto_item_add_subtree(item, ett_lustre_lov_mds_md_v1);
1616   }
1617
1618   offset=lustre_dissect_element_lov_mds_md_v1_lmm_magic(tvb, offset, pinfo, tree);
1619
1620   offset=lustre_dissect_element_lov_mds_md_v1_lmm_pattern(tvb, offset, pinfo, tree);
1621
1622   offset=lustre_dissect_element_lov_mds_md_v1_lmm_object_id(tvb, offset, pinfo, tree);
1623
1624   offset=lustre_dissect_element_lov_mds_md_v1_lmm_object_seq(tvb, offset, pinfo, tree);
1625
1626   offset=lustre_dissect_element_lov_mds_md_v1_lmm_stripe_size(tvb, offset, pinfo, tree);
1627
1628   stripe_count = tvb_get_letohl(tvb,offset);
1629   offset=lustre_dissect_element_lov_mds_md_v1_lmm_stripe_count(tvb, offset, pinfo, tree);
1630
1631   offset=lustre_dissect_element_lov_mds_md_v1_lmm_objects(tvb, offset, pinfo, tree, stripe_count);
1632
1633
1634   proto_item_set_len(item, offset-old_offset);
1635
1636   return offset;
1637 }
1638
1639
1640
1641 /* IDL: struct obd_statfs { */
1642 /* IDL:         uint64 os_type; */
1643 /* IDL:         uint64 os_blocks; */
1644 /* IDL:         uint64 os_bfree; */
1645 /* IDL:         uint64 os_bavail; */
1646 /* IDL:         uint64 os_files; */
1647 /* IDL:         uint64 os_ffree; */
1648 /* IDL:         uint8 os_fsid[40]; */
1649 /* IDL:         uint32 os_bsize; */
1650 /* IDL:         uint32 os_namelen; */
1651 /* IDL:         uint64 os_maxbytes; */
1652 /* IDL:         uint32 os_state; */
1653 /* IDL:         uint32 os_spare1; */
1654 /* IDL:         uint32 os_spare2; */
1655 /* IDL:         uint32 os_spare3; */
1656 /* IDL:         uint32 os_spare4; */
1657 /* IDL:         uint32 os_spare5; */
1658 /* IDL:         uint32 os_spare6; */
1659 /* IDL:         uint32 os_spare7; */
1660 /* IDL:         uint32 os_spare8; */
1661 /* IDL:         uint32 os_spare9; */
1662 /* IDL: } */
1663
1664 static int
1665 lustre_dissect_element_obd_statfs_os_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
1666 {
1667   offset=dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_obd_statfs_os_type);
1668
1669   return offset;
1670 }
1671
1672 static int
1673 lustre_dissect_element_obd_statfs_os_blocks(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
1674 {
1675   offset=dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_obd_statfs_os_blocks);
1676
1677   return offset;
1678 }
1679
1680 static int
1681 lustre_dissect_element_obd_statfs_os_bfree(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
1682 {
1683   offset=dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_obd_statfs_os_bfree);
1684
1685   return offset;
1686 }
1687
1688 static int
1689 lustre_dissect_element_obd_statfs_os_bavail(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
1690 {
1691   offset=dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_obd_statfs_os_bavail);
1692
1693   return offset;
1694 }
1695
1696 static int
1697 lustre_dissect_element_obd_statfs_os_files(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
1698 {
1699   offset=dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_obd_statfs_os_files);
1700
1701   return offset;
1702 }
1703
1704 static int
1705 lustre_dissect_element_obd_statfs_os_ffree(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
1706 {
1707   offset=dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_obd_statfs_os_ffree);
1708
1709   return offset;
1710 }
1711
1712 static int
1713 lustre_dissect_element_obd_statfs_os_fsid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
1714 {
1715   offset=dissect_uint8(tvb, offset, pinfo, tree, hf_lustre_obd_statfs_os_fsid);
1716
1717   return offset;
1718 }
1719
1720 static int
1721 lustre_dissect_element_obd_statfs_os_fsid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
1722 {
1723   int i;
1724   for (i = 0; i < 40; i++)
1725     offset=lustre_dissect_element_obd_statfs_os_fsid_(tvb, offset, pinfo, tree);
1726
1727   return offset;
1728 }
1729
1730
1731
1732 static int
1733 lustre_dissect_element_obd_statfs_os_bsize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
1734 {
1735   offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_obd_statfs_os_bsize);
1736
1737   return offset;
1738 }
1739
1740 static int
1741 lustre_dissect_element_obd_statfs_os_namelen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
1742 {
1743   offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_obd_statfs_os_namelen);
1744
1745   return offset;
1746 }
1747
1748 static int
1749 lustre_dissect_element_obd_statfs_os_maxbytes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
1750 {
1751   offset=dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_obd_statfs_os_maxbytes);
1752
1753   return offset;
1754 }
1755
1756 static int
1757 lustre_dissect_element_obd_statfs_os_state(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
1758 {
1759   offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_obd_statfs_os_state);
1760
1761   return offset;
1762 }
1763
1764 static int
1765 lustre_dissect_element_obd_statfs_os_spare1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
1766 {
1767   offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_obd_statfs_os_spare1);
1768
1769   return offset;
1770 }
1771
1772 static int
1773 lustre_dissect_element_obd_statfs_os_spare2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
1774 {
1775   offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_obd_statfs_os_spare2);
1776
1777   return offset;
1778 }
1779
1780 static int
1781 lustre_dissect_element_obd_statfs_os_spare3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
1782 {
1783   offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_obd_statfs_os_spare3);
1784
1785   return offset;
1786 }
1787
1788 static int
1789 lustre_dissect_element_obd_statfs_os_spare4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
1790 {
1791   offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_obd_statfs_os_spare4);
1792
1793   return offset;
1794 }
1795
1796 static int
1797 lustre_dissect_element_obd_statfs_os_spare5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
1798 {
1799   offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_obd_statfs_os_spare5);
1800
1801   return offset;
1802 }
1803
1804 static int
1805 lustre_dissect_element_obd_statfs_os_spare6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
1806 {
1807   offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_obd_statfs_os_spare6);
1808
1809   return offset;
1810 }
1811
1812 static int
1813 lustre_dissect_element_obd_statfs_os_spare7(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
1814 {
1815   offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_obd_statfs_os_spare7);
1816
1817   return offset;
1818 }
1819
1820 static int
1821 lustre_dissect_element_obd_statfs_os_spare8(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
1822 {
1823   offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_obd_statfs_os_spare8);
1824
1825   return offset;
1826 }
1827
1828 static int
1829 lustre_dissect_element_obd_statfs_os_spare9(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
1830 {
1831   offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_obd_statfs_os_spare9);
1832
1833   return offset;
1834 }
1835
1836 int
1837 lustre_dissect_struct_obd_statfs(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, int hf_index _U_)
1838 {
1839   proto_item *item = NULL;
1840   proto_tree *tree = NULL;
1841   int old_offset;
1842
1843
1844
1845   old_offset=offset;
1846
1847   if (parent_tree) {
1848     item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
1849     tree = proto_item_add_subtree(item, ett_lustre_obd_statfs);
1850   }
1851
1852   offset=lustre_dissect_element_obd_statfs_os_type(tvb, offset, pinfo, tree);
1853
1854   offset=lustre_dissect_element_obd_statfs_os_blocks(tvb, offset, pinfo, tree);
1855
1856   offset=lustre_dissect_element_obd_statfs_os_bfree(tvb, offset, pinfo, tree);
1857
1858   offset=lustre_dissect_element_obd_statfs_os_bavail(tvb, offset, pinfo, tree);
1859
1860   offset=lustre_dissect_element_obd_statfs_os_files(tvb, offset, pinfo, tree);
1861
1862   offset=lustre_dissect_element_obd_statfs_os_ffree(tvb, offset, pinfo, tree);
1863
1864   offset=lustre_dissect_element_obd_statfs_os_fsid(tvb, offset, pinfo, tree);
1865
1866   offset=lustre_dissect_element_obd_statfs_os_bsize(tvb, offset, pinfo, tree);
1867
1868   offset=lustre_dissect_element_obd_statfs_os_namelen(tvb, offset, pinfo, tree);
1869
1870   offset=lustre_dissect_element_obd_statfs_os_maxbytes(tvb, offset, pinfo, tree);
1871
1872   offset=lustre_dissect_element_obd_statfs_os_state(tvb, offset, pinfo, tree);
1873
1874   offset=lustre_dissect_element_obd_statfs_os_spare1(tvb, offset, pinfo, tree);
1875
1876   offset=lustre_dissect_element_obd_statfs_os_spare2(tvb, offset, pinfo, tree);
1877
1878   offset=lustre_dissect_element_obd_statfs_os_spare3(tvb, offset, pinfo, tree);
1879
1880   offset=lustre_dissect_element_obd_statfs_os_spare4(tvb, offset, pinfo, tree);
1881
1882   offset=lustre_dissect_element_obd_statfs_os_spare5(tvb, offset, pinfo, tree);
1883
1884   offset=lustre_dissect_element_obd_statfs_os_spare6(tvb, offset, pinfo, tree);
1885
1886   offset=lustre_dissect_element_obd_statfs_os_spare7(tvb, offset, pinfo, tree);
1887
1888   offset=lustre_dissect_element_obd_statfs_os_spare8(tvb, offset, pinfo, tree);
1889
1890   offset=lustre_dissect_element_obd_statfs_os_spare9(tvb, offset, pinfo, tree);
1891
1892
1893   proto_item_set_len(item, offset-old_offset);
1894
1895   return offset;
1896 }
1897
1898 /* IDL: struct obd_ioobj { */
1899 /* IDL:         uint64 ioo_id; */
1900 /* IDL:         uint64 ioo_seq; */
1901 /* IDL:         uint32 ioo_type; */
1902 /* IDL:         uint32 ioo_bufcnt; */
1903 /* IDL: } */
1904
1905 static int
1906 lustre_dissect_element_obd_ioobj_ioo_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
1907 {
1908   offset=dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_obd_ioobj_ioo_id);
1909
1910   return offset;
1911 }
1912
1913 static int
1914 lustre_dissect_element_obd_ioobj_ioo_seq(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
1915 {
1916   offset=dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_obd_ioobj_ioo_seq);
1917
1918   return offset;
1919 }
1920
1921 static int
1922 lustre_dissect_element_obd_ioobj_ioo_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
1923 {
1924   offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_obd_ioobj_ioo_type);
1925
1926   return offset;
1927 }
1928
1929 static int
1930 lustre_dissect_element_obd_ioobj_ioo_bufcnt(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
1931 {
1932   offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_obd_ioobj_ioo_bufcnt);
1933
1934   return offset;
1935 }
1936
1937 int
1938 lustre_dissect_struct_obd_ioobj(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, int hf_index _U_)
1939 {
1940   proto_item *item = NULL;
1941   proto_tree *tree = NULL;
1942   int old_offset;
1943
1944
1945
1946   old_offset=offset;
1947
1948   if (parent_tree) {
1949     item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
1950     tree = proto_item_add_subtree(item, ett_lustre_obd_ioobj);
1951   }
1952
1953   offset=lustre_dissect_element_obd_ioobj_ioo_id(tvb, offset, pinfo, tree);
1954
1955   offset=lustre_dissect_element_obd_ioobj_ioo_seq(tvb, offset, pinfo, tree);
1956
1957   offset=lustre_dissect_element_obd_ioobj_ioo_type(tvb, offset, pinfo, tree);
1958
1959   offset=lustre_dissect_element_obd_ioobj_ioo_bufcnt(tvb, offset, pinfo, tree);
1960
1961
1962   proto_item_set_len(item, offset-old_offset);
1963
1964   return offset;
1965 }
1966
1967 /* IDL: struct niobuf_remote { */
1968 /* IDL:         uint64 offset; */
1969 /* IDL:         uint32 len; */
1970 /* IDL:         uint32 flags; */
1971 /* IDL: } */
1972
1973 static int
1974 lustre_dissect_element_niobuf_remote_offset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
1975 {
1976   offset=dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_niobuf_remote_offset);
1977
1978   return offset;
1979 }
1980
1981 static int
1982 lustre_dissect_element_niobuf_remote_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
1983 {
1984   offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_niobuf_remote_len);
1985
1986   return offset;
1987 }
1988
1989 static int
1990 lustre_dissect_element_niobuf_remote_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
1991 {
1992   offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_niobuf_remote_flags);
1993
1994   return offset;
1995 }
1996
1997 int
1998 lustre_dissect_struct_niobuf_remote(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, int hf_index _U_)
1999 {
2000   proto_item *item = NULL;
2001   proto_tree *tree = NULL;
2002   int old_offset;
2003
2004
2005
2006   old_offset=offset;
2007
2008   if (parent_tree) {
2009     item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
2010     tree = proto_item_add_subtree(item, ett_lustre_niobuf_remote);
2011   }
2012
2013   offset=lustre_dissect_element_niobuf_remote_offset(tvb, offset, pinfo, tree);
2014
2015   offset=lustre_dissect_element_niobuf_remote_len(tvb, offset, pinfo, tree);
2016
2017   offset=lustre_dissect_element_niobuf_remote_flags(tvb, offset, pinfo, tree);
2018
2019
2020   proto_item_set_len(item, offset-old_offset);
2021
2022   return offset;
2023 }
2024
2025 /* IDL: struct ost_lvb { */
2026 /* IDL:         uint64 lvb_size; */
2027 /* IDL:         uint64 lvb_mtime; */
2028 /* IDL:         uint64 lvb_atime; */
2029 /* IDL:         uint64 lvb_ctime; */
2030 /* IDL:         uint64 lvb_blocks; */
2031 /* IDL: } */
2032
2033 static int
2034 lustre_dissect_element_ost_lvb_lvb_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
2035 {
2036   offset=dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_ost_lvb_lvb_size);
2037
2038   return offset;
2039 }
2040
2041 static int
2042 lustre_dissect_element_ost_lvb_lvb_mtime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
2043 {
2044   nstime_t ns;
2045   /* timestamp */
2046   ns.secs = tvb_get_letohl(tvb,offset);
2047   ns.nsecs=0;
2048   proto_tree_add_time(tree, hf_lustre_ost_lvb_lvb_mtime, tvb, offset, 8, &ns );
2049   offset+=8;
2050   return offset;
2051 }
2052
2053 static int
2054 lustre_dissect_element_ost_lvb_lvb_atime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
2055 {
2056   nstime_t ns;
2057   /* timestamp */
2058   ns.secs = tvb_get_letohl(tvb,offset);
2059   ns.nsecs=0;
2060   proto_tree_add_time(tree, hf_lustre_ost_lvb_lvb_atime, tvb, offset, 8, &ns );
2061   offset+=8;
2062   return offset;
2063
2064   return offset;
2065 }
2066
2067 static int
2068 lustre_dissect_element_ost_lvb_lvb_ctime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
2069 {
2070   nstime_t ns;
2071   /* timestamp */
2072   ns.secs = tvb_get_letohl(tvb,offset);
2073   ns.nsecs=0;
2074   proto_tree_add_time(tree, hf_lustre_ost_lvb_lvb_ctime, tvb, offset, 8, &ns );
2075   offset+=8;
2076   return offset;
2077
2078   return offset;
2079 }
2080
2081 static int
2082 lustre_dissect_element_ost_lvb_lvb_blocks(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
2083 {
2084   offset=dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_ost_lvb_lvb_blocks);
2085
2086   return offset;
2087 }
2088
2089 int
2090 lustre_dissect_struct_ost_lvb(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, int hf_index _U_)
2091 {
2092   proto_item *item = NULL;
2093   proto_tree *tree = NULL;
2094   int old_offset;
2095
2096
2097
2098   old_offset=offset;
2099
2100   if (parent_tree) {
2101     item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
2102     tree = proto_item_add_subtree(item, ett_lustre_ost_lvb);
2103   }
2104
2105   offset=lustre_dissect_element_ost_lvb_lvb_size(tvb, offset, pinfo, tree);
2106
2107   offset=lustre_dissect_element_ost_lvb_lvb_mtime(tvb, offset, pinfo, tree);
2108
2109   offset=lustre_dissect_element_ost_lvb_lvb_atime(tvb, offset, pinfo, tree);
2110
2111   offset=lustre_dissect_element_ost_lvb_lvb_ctime(tvb, offset, pinfo, tree);
2112
2113   offset=lustre_dissect_element_ost_lvb_lvb_blocks(tvb, offset, pinfo, tree);
2114
2115
2116   proto_item_set_len(item, offset-old_offset);
2117
2118   return offset;
2119 }
2120
2121
2122 /* IDL: struct ll_fid { */
2123 /* IDL:         uint64 id; */
2124 /* IDL:         uint32 generation; */
2125 /* IDL:         uint32 f_type; */
2126 /* IDL: } */
2127
2128 static int
2129 lustre_dissect_element_ll_fid_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
2130 {
2131   offset=dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_ll_fid_id);
2132
2133   return offset;
2134 }
2135
2136 static int
2137 lustre_dissect_element_ll_fid_generation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
2138 {
2139   offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ll_fid_generation);
2140
2141   return offset;
2142 }
2143
2144 static int
2145 lustre_dissect_element_ll_fid_f_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
2146 {
2147   offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ll_fid_f_type);
2148
2149   return offset;
2150 }
2151
2152 int
2153 lustre_dissect_struct_lu_fid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, int hf_index _U_)
2154 {
2155   proto_item *item = NULL;
2156   proto_tree *tree = NULL;
2157   int old_offset;
2158
2159
2160
2161   old_offset=offset;
2162
2163   if (parent_tree) {
2164     item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
2165     tree = proto_item_add_subtree(item, ett_lustre_ll_fid);
2166   }
2167
2168   offset=lustre_dissect_element_ll_fid_id(tvb, offset, pinfo, tree);
2169
2170   offset=lustre_dissect_element_ll_fid_generation(tvb, offset, pinfo, tree);
2171
2172   offset=lustre_dissect_element_ll_fid_f_type(tvb, offset, pinfo, tree);
2173
2174
2175   proto_item_set_len(item, offset-old_offset);
2176
2177   return offset;
2178 }
2179
2180 /* IDL: struct obd_dqinfo { */
2181 /* IDL:   uint64 dqi_bgrace; */
2182 /* IDL:   uint64 dqi_igrace; */
2183 /* IDL:   uint32 dqi_flags; */
2184 /* IDL:   uint32 dqi_valid; */
2185 /* IDL: } */
2186
2187 static int
2188 lustre_dissect_element_obd_dqinfo_dqi_bgrace(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
2189 {
2190   offset = dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_obd_dqinfo_dqi_bgrace);
2191
2192   return offset;
2193 }
2194
2195 static int
2196 lustre_dissect_element_obd_dqinfo_dqi_igrace(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
2197 {
2198   offset = dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_obd_dqinfo_dqi_igrace);
2199
2200   return offset;
2201 }
2202
2203 static int
2204 lustre_dissect_element_obd_dqinfo_dqi_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
2205 {
2206   offset = dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_obd_dqinfo_dqi_flags);
2207
2208   return offset;
2209 }
2210
2211 static int
2212 lustre_dissect_element_obd_dqinfo_dqi_valid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
2213 {
2214   offset = dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_obd_dqinfo_dqi_valid);
2215
2216   return offset;
2217 }
2218
2219 int
2220 lustre_dissect_struct_obd_dqinfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, int hf_index _U_)
2221 {
2222   proto_item *item = NULL;
2223   proto_tree *tree = NULL;
2224   int old_offset;
2225
2226
2227
2228   old_offset = offset;
2229
2230   if (parent_tree) {
2231     item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
2232     tree = proto_item_add_subtree(item, ett_lustre_obd_dqinfo);
2233   }
2234
2235   offset = lustre_dissect_element_obd_dqinfo_dqi_bgrace(tvb, offset, pinfo, tree);
2236
2237   offset = lustre_dissect_element_obd_dqinfo_dqi_igrace(tvb, offset, pinfo, tree);
2238
2239   offset = lustre_dissect_element_obd_dqinfo_dqi_flags(tvb, offset, pinfo, tree);
2240
2241   offset = lustre_dissect_element_obd_dqinfo_dqi_valid(tvb, offset, pinfo, tree);
2242
2243
2244   proto_item_set_len(item, offset-old_offset);
2245
2246   return offset;
2247 }
2248
2249 /* IDL: struct obd_dqblk { */
2250 /* IDL:         uint64 dqb_bhardlimit; */
2251 /* IDL:         uint64 dqb_bsoftlimit; */
2252 /* IDL:         uint64 dqb_curspace; */
2253 /* IDL:         uint64 dqb_ihardlimit; */
2254 /* IDL:         uint64 dqb_isoftlimit; */
2255 /* IDL:         uint64 dqb_curinodes; */
2256 /* IDL:         uint64 dqb_btime; */
2257 /* IDL:         uint64 dqb_itime; */
2258 /* IDL:         uint32 dqb_valid; */
2259 /* IDL:         uint32 padding; */
2260 /* IDL: } */
2261
2262 static int
2263 lustre_dissect_element_obd_dqblk_dqb_bhardlimit(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
2264 {
2265   offset = dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_obd_dqblk_dqb_bhardlimit);
2266
2267   return offset;
2268 }
2269
2270 static int
2271 lustre_dissect_element_obd_dqblk_dqb_bsoftlimit(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
2272 {
2273   offset = dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_obd_dqblk_dqb_bsoftlimit);
2274
2275   return offset;
2276 }
2277
2278 static int
2279 lustre_dissect_element_obd_dqblk_dqb_curspace(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
2280 {
2281   offset = dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_obd_dqblk_dqb_curspace);
2282
2283   return offset;
2284 }
2285
2286 static int
2287 lustre_dissect_element_obd_dqblk_dqb_ihardlimit(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
2288 {
2289   offset = dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_obd_dqblk_dqb_ihardlimit);
2290
2291   return offset;
2292 }
2293
2294 static int
2295 lustre_dissect_element_obd_dqblk_dqb_isoftlimit(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
2296 {
2297   offset = dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_obd_dqblk_dqb_isoftlimit);
2298
2299   return offset;
2300 }
2301
2302 static int
2303 lustre_dissect_element_obd_dqblk_dqb_curinodes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
2304 {
2305   offset = dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_obd_dqblk_dqb_curinodes);
2306
2307   return offset;
2308 }
2309
2310 static int
2311 lustre_dissect_element_obd_dqblk_dqb_btime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
2312 {
2313
2314   nstime_t ns;
2315   /* timestamp */
2316   ns.secs = tvb_get_letohl(tvb,offset);
2317   ns.nsecs=0;
2318   proto_tree_add_time(tree, hf_lustre_obd_dqblk_dqb_btime, tvb, offset, 8, &ns );
2319   offset+=8;
2320   return offset;
2321 }
2322
2323 static int
2324 lustre_dissect_element_obd_dqblk_dqb_itime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
2325 {
2326   nstime_t ns;
2327   /* timestamp */
2328   ns.secs = tvb_get_letohl(tvb,offset);
2329   ns.nsecs=0;
2330   proto_tree_add_time(tree, hf_lustre_obd_dqblk_dqb_itime, tvb, offset, 8, &ns );
2331   offset+=8;
2332
2333   return offset;
2334 }
2335
2336 static int
2337 lustre_dissect_element_obd_dqblk_dqb_valid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
2338 {
2339   offset = dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_obd_dqblk_dqb_valid);
2340
2341   return offset;
2342 }
2343
2344 static int
2345 lustre_dissect_element_obd_dqblk_padding(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
2346 {
2347   offset = dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_obd_dqblk_padding);
2348
2349   return offset;
2350 }
2351
2352 int
2353 lustre_dissect_struct_obd_dqblk(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, int hf_index _U_)
2354 {
2355   proto_item *item = NULL;
2356   proto_tree *tree = NULL;
2357   int old_offset;
2358
2359
2360
2361   old_offset = offset;
2362
2363   if (parent_tree) {
2364     item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
2365     tree = proto_item_add_subtree(item, ett_lustre_obd_dqblk);
2366   }
2367
2368   offset = lustre_dissect_element_obd_dqblk_dqb_bhardlimit(tvb, offset, pinfo, tree);
2369
2370   offset = lustre_dissect_element_obd_dqblk_dqb_bsoftlimit(tvb, offset, pinfo, tree);
2371
2372   offset = lustre_dissect_element_obd_dqblk_dqb_curspace(tvb, offset, pinfo, tree);
2373
2374   offset = lustre_dissect_element_obd_dqblk_dqb_ihardlimit(tvb, offset, pinfo, tree);
2375
2376   offset = lustre_dissect_element_obd_dqblk_dqb_isoftlimit(tvb, offset, pinfo, tree);
2377
2378   offset = lustre_dissect_element_obd_dqblk_dqb_curinodes(tvb, offset, pinfo, tree);
2379
2380   offset = lustre_dissect_element_obd_dqblk_dqb_btime(tvb, offset, pinfo, tree);
2381
2382   offset = lustre_dissect_element_obd_dqblk_dqb_itime(tvb, offset, pinfo, tree);
2383
2384   offset = lustre_dissect_element_obd_dqblk_dqb_valid(tvb, offset, pinfo, tree);
2385
2386   offset = lustre_dissect_element_obd_dqblk_padding(tvb, offset, pinfo, tree);
2387
2388
2389   proto_item_set_len(item, offset-old_offset);
2390
2391   return offset;
2392 }
2393
2394
2395 /* IDL: struct obd_quotactl { */
2396 /* IDL:         uint32 qc_cmd; */
2397 /* IDL:         uint32 qc_type; */
2398 /* IDL:         uint32 qc_id; */
2399 /* IDL:         uint32 qc_stat; */
2400 /* IDL:         struct obd_dqinfo { */
2401 /* IDL: } qc_dqinfo; */
2402 /* IDL:         struct obd_dqblk { */
2403 /* IDL: } qc_dqblk; */
2404 /* IDL: } */
2405
2406 static int
2407 lustre_dissect_element_obd_quotactl_qc_cmd(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
2408 {
2409   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_obd_quotactl_qc_cmd);
2410
2411   return offset;
2412 }
2413
2414 static int
2415 lustre_dissect_element_obd_quotactl_qc_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
2416 {
2417   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_obd_quotactl_qc_type);
2418
2419   return offset;
2420 }
2421
2422 static int
2423 lustre_dissect_element_obd_quotactl_qc_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
2424 {
2425   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_obd_quotactl_qc_id);
2426
2427   return offset;
2428 }
2429
2430 static int
2431 lustre_dissect_element_obd_quotactl_qc_stat(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
2432 {
2433   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_obd_quotactl_qc_stat);
2434
2435   return offset;
2436 }
2437
2438
2439
2440 static int
2441 lustre_dissect_element_obd_quotactl_qc_dqblk(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
2442 {
2443   offset=lustre_dissect_struct_obd_dqblk(tvb,offset,pinfo,tree,hf_lustre_obd_quotactl_qc_dqblk);
2444   return offset;
2445 }
2446
2447 static int
2448 lustre_dissect_element_obd_quotactl_qc_dqinfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
2449 {
2450   offset=lustre_dissect_struct_obd_dqinfo(tvb,offset,pinfo,tree,hf_lustre_obd_quotactl_qc_dqinfo);
2451   return offset;
2452 }
2453
2454 int
2455 lustre_dissect_struct_obd_quotactl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, int hf_index _U_)
2456 {
2457   proto_item *item = NULL;
2458   proto_tree *tree = NULL;
2459   int old_offset;
2460
2461   old_offset=offset;
2462
2463   if (parent_tree) {
2464     item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
2465     tree = proto_item_add_subtree(item, ett_lustre_obd_quotactl);
2466   }
2467
2468   offset=lustre_dissect_element_obd_quotactl_qc_cmd(tvb, offset, pinfo, tree);
2469
2470   offset=lustre_dissect_element_obd_quotactl_qc_type(tvb, offset, pinfo, tree);
2471
2472   offset=lustre_dissect_element_obd_quotactl_qc_id(tvb, offset, pinfo, tree);
2473
2474   offset=lustre_dissect_element_obd_quotactl_qc_stat(tvb, offset, pinfo, tree);
2475
2476   offset=lustre_dissect_element_obd_quotactl_qc_dqinfo(tvb, offset, pinfo, tree);
2477
2478   offset=lustre_dissect_element_obd_quotactl_qc_dqblk(tvb, offset, pinfo, tree);
2479
2480
2481   proto_item_set_len(item, offset-old_offset);
2482
2483   return offset;
2484 }
2485
2486
2487 /* IDL: struct quota_adjust_qunit { */
2488 /* IDL:         uint32 qaq_flags; */
2489 /* IDL:         uint32 qaq_id; */
2490 /* IDL:         uint64 qaq_bunit_sz; */
2491 /* IDL:         uint64 qaq_iunit_sz; */
2492 /* IDL:         uint64 padding1; */
2493 /* IDL: } */
2494
2495 static int
2496 lustre_dissect_element_quota_adjust_qunit_qaq_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
2497 {
2498   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_quota_adjust_qunit_qaq_flags);
2499
2500   return offset;
2501 }
2502
2503 static int
2504 lustre_dissect_element_quota_adjust_qunit_qaq_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
2505 {
2506   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_quota_adjust_qunit_qaq_id);
2507
2508   return offset;
2509 }
2510
2511 static int
2512 lustre_dissect_element_quota_adjust_qunit_qaq_bunit_sz(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
2513 {
2514   offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_quota_adjust_qunit_qaq_bunit_sz);
2515
2516   return offset;
2517 }
2518
2519 static int
2520 lustre_dissect_element_quota_adjust_qunit_qaq_iunit_sz(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
2521 {
2522   offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_quota_adjust_qunit_qaq_iunit_sz);
2523
2524   return offset;
2525 }
2526
2527 static int
2528 lustre_dissect_element_quota_adjust_qunit_padding1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
2529 {
2530   offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_quota_adjust_qunit_padding1);
2531
2532   return offset;
2533 }
2534
2535 int
2536 lustre_dissect_struct_quota_adjust_qunit(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, int hf_index _U_)
2537 {
2538   proto_item *item = NULL;
2539   proto_tree *tree = NULL;
2540   int old_offset;
2541
2542
2543
2544   old_offset=offset;
2545
2546   if (parent_tree) {
2547     item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
2548     tree = proto_item_add_subtree(item, ett_lustre_quota_adjust_qunit);
2549   }
2550
2551   offset=lustre_dissect_element_quota_adjust_qunit_qaq_flags(tvb, offset, pinfo, tree);
2552
2553   offset=lustre_dissect_element_quota_adjust_qunit_qaq_id(tvb, offset, pinfo, tree);
2554
2555   offset=lustre_dissect_element_quota_adjust_qunit_qaq_bunit_sz(tvb, offset, pinfo, tree);
2556
2557   offset=lustre_dissect_element_quota_adjust_qunit_qaq_iunit_sz(tvb, offset, pinfo, tree);
2558
2559   offset=lustre_dissect_element_quota_adjust_qunit_padding1(tvb, offset, pinfo, tree);
2560
2561
2562   proto_item_set_len(item, offset-old_offset);
2563
2564   return offset;
2565 }
2566
2567 /* IDL: struct mdt_body { */
2568 /* IDL:         struct lu_fid { */
2569 /* IDL: } fid1; */
2570 /* IDL:         struct lu_fid { */
2571 /* IDL: } fid2; */
2572 /* IDL:         struct lustre_handle { */
2573 /* IDL: } handle; */
2574 /* IDL:         uint64 valid; */
2575 /* IDL:         uint64 size; */
2576 /* IDL:         uint64 mtime; */
2577 /* IDL:         uint64 atime; */
2578 /* IDL:         uint64 ctime; */
2579 /* IDL:         uint64 blocks; */
2580 /* IDL:         uint64 ioepoch; */
2581 /* IDL:         uint64 ino; */
2582 /* IDL:         uint32 fsuid; */
2583 /* IDL:         uint32 fsgid; */
2584 /* IDL:         uint32 capability; */
2585 /* IDL:         uint32 mode; */
2586 /* IDL:         uint32 uid; */
2587 /* IDL:         uint32 gid; */
2588 /* IDL:         uint32 flags; */
2589 /* IDL:         uint32 rdev; */
2590 /* IDL:         uint32 nlink; */
2591 /* IDL:         uint32 generation; */
2592 /* IDL:         uint32 suppgid; */
2593 /* IDL:         uint32 eadatasize; */
2594 /* IDL:         uint32 aclsize; */
2595 /* IDL:         uint32 max_mdsize; */
2596 /* IDL:         uint32 max_cookiesize; */
2597 /* IDL:         uint32 uid_h; */
2598 /* IDL:         uint32 gid_h; */
2599 /* IDL:         uint32 padding_5; */
2600 /* IDL:         uint64 padding_6; */
2601 /* IDL:         uint64 padding_7; */
2602 /* IDL:         uint64 padding_8; */
2603 /* IDL:         uint64 padding_9; */
2604 /* IDL:         uint64 padding_10; */
2605 /* IDL: } */
2606
2607 static int
2608 lustre_dissect_element_mdt_body_fid1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
2609 {
2610   offset=lustre_dissect_struct_lu_fid(tvb,offset,pinfo,tree,hf_lustre_mdt_body_fid1);
2611   return offset;
2612 }
2613
2614 static int
2615 lustre_dissect_element_mdt_body_fid2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
2616 {
2617   offset=lustre_dissect_struct_lu_fid(tvb,offset,pinfo,tree,hf_lustre_mdt_body_fid2);
2618   return offset;
2619 }
2620
2621 static int
2622 lustre_dissect_element_mdt_body_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
2623 {
2624   offset=lustre_dissect_struct_handle_cookie(tvb,offset,pinfo,tree,hf_lustre_mdt_body_handle);
2625
2626   return offset;
2627 }
2628
2629 static int
2630 lustre_dissect_element_mdt_body_valid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
2631 {
2632   offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_mdt_body_valid);
2633
2634   return offset;
2635 }
2636
2637 static int
2638 lustre_dissect_element_mdt_body_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
2639 {
2640   offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_mdt_body_size);
2641
2642   return offset;
2643 }
2644
2645 static int
2646 lustre_dissect_element_mdt_body_mtime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
2647 {
2648   nstime_t ns;
2649   /* timestamp */
2650   ns.secs = tvb_get_letohl(tvb,offset);
2651   ns.nsecs=0;
2652   proto_tree_add_time(tree, hf_lustre_mdt_body_mtime, tvb, offset, 8, &ns );
2653   offset+=8;
2654   return offset;
2655 }
2656
2657 static int
2658 lustre_dissect_element_mdt_body_atime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
2659 {
2660   nstime_t ns;
2661   /* timestamp */
2662   ns.secs = tvb_get_letohl(tvb,offset);
2663   ns.nsecs=0;
2664   proto_tree_add_time(tree, hf_lustre_mdt_body_atime, tvb, offset, 8, &ns );
2665   offset+=8;
2666
2667   return offset;
2668 }
2669
2670 static int
2671 lustre_dissect_element_mdt_body_ctime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
2672 {
2673   nstime_t ns;
2674   /* timestamp */
2675   ns.secs = tvb_get_letohl(tvb,offset);
2676   ns.nsecs=0;
2677   proto_tree_add_time(tree, hf_lustre_mdt_body_ctime, tvb, offset, 8, &ns );
2678   offset+=8;
2679   return offset;
2680 }
2681
2682 static int
2683 lustre_dissect_element_mdt_body_blocks(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
2684 {
2685   offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_mdt_body_blocks);
2686
2687   return offset;
2688 }
2689
2690 static int
2691 lustre_dissect_element_mdt_body_ioepoch(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
2692 {
2693   offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_mdt_body_ioepoch);
2694
2695   return offset;
2696 }
2697
2698 static int
2699 lustre_dissect_element_mdt_body_ino(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
2700 {
2701   offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_mdt_body_ino);
2702
2703   return offset;
2704 }
2705
2706 static int
2707 lustre_dissect_element_mdt_body_fsuid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
2708 {
2709   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_body_fsuid);
2710
2711   return offset;
2712 }
2713
2714 static int
2715 lustre_dissect_element_mdt_body_fsgid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
2716 {
2717   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_body_fsgid);
2718
2719   return offset;
2720 }
2721
2722 static int
2723 lustre_dissect_element_mdt_body_capability(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
2724 {
2725   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_body_capability);
2726
2727   return offset;
2728 }
2729
2730 static int
2731 lustre_dissect_element_mdt_body_mode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
2732 {
2733   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_body_mode);
2734
2735   return offset;
2736 }
2737
2738 static int
2739 lustre_dissect_element_mdt_body_uid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
2740 {
2741   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_body_uid);
2742
2743   return offset;
2744 }
2745
2746 static int
2747 lustre_dissect_element_mdt_body_gid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
2748 {
2749   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_body_gid);
2750
2751   return offset;
2752 }
2753
2754 static int
2755 lustre_dissect_element_mdt_body_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
2756 {
2757   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_body_flags);
2758
2759   return offset;
2760 }
2761
2762 static int
2763 lustre_dissect_element_mdt_body_rdev(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
2764 {
2765   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_body_rdev);
2766
2767   return offset;
2768 }
2769
2770 static int
2771 lustre_dissect_element_mdt_body_nlink(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
2772 {
2773   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_body_nlink);
2774
2775   return offset;
2776 }
2777
2778 static int
2779 lustre_dissect_element_mdt_body_generation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
2780 {
2781   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_body_generation);
2782
2783   return offset;
2784 }
2785
2786 static int
2787 lustre_dissect_element_mdt_body_suppgid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
2788 {
2789   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_body_suppgid);
2790
2791   return offset;
2792 }
2793
2794 static int
2795 lustre_dissect_element_mdt_body_eadatasize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
2796 {
2797   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_body_eadatasize);
2798
2799   return offset;
2800 }
2801
2802 static int
2803 lustre_dissect_element_mdt_body_aclsize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
2804 {
2805   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_body_aclsize);
2806
2807   return offset;
2808 }
2809
2810 static int
2811 lustre_dissect_element_mdt_body_max_mdsize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
2812 {
2813   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_body_max_mdsize);
2814
2815   return offset;
2816 }
2817
2818 static int
2819 lustre_dissect_element_mdt_body_max_cookiesize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
2820 {
2821   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_body_max_cookiesize);
2822
2823   return offset;
2824 }
2825
2826 static int
2827 lustre_dissect_element_mdt_body_uid_h(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
2828 {
2829   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_body_uid_h);
2830
2831   return offset;
2832 }
2833
2834 static int
2835 lustre_dissect_element_mdt_body_gid_h(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
2836 {
2837   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_body_gid_h);
2838
2839   return offset;
2840 }
2841
2842 static int
2843 lustre_dissect_element_mdt_body_padding_5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
2844 {
2845   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_body_padding_5);
2846
2847   return offset;
2848 }
2849
2850 static int
2851 lustre_dissect_element_mdt_body_padding_6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
2852 {
2853   offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_mdt_body_padding_6);
2854
2855   return offset;
2856 }
2857
2858 static int
2859 lustre_dissect_element_mdt_body_padding_7(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
2860 {
2861   offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_mdt_body_padding_7);
2862
2863   return offset;
2864 }
2865
2866 static int
2867 lustre_dissect_element_mdt_body_padding_8(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
2868 {
2869   offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_mdt_body_padding_8);
2870
2871   return offset;
2872 }
2873
2874 static int
2875 lustre_dissect_element_mdt_body_padding_9(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
2876 {
2877   offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_mdt_body_padding_9);
2878
2879   return offset;
2880 }
2881
2882 static int
2883 lustre_dissect_element_mdt_body_padding_10(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
2884 {
2885   offset=dissect_uin64(tvb, offset, pinfo, tree,  hf_lustre_mdt_body_padding_10);
2886
2887   return offset;
2888 }
2889
2890 int
2891 lustre_dissect_struct_mdt_body(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, int hf_index _U_)
2892 {
2893   proto_item *item = NULL;
2894   proto_tree *tree = NULL;
2895   int old_offset;
2896
2897
2898   old_offset=offset;
2899
2900   if (parent_tree) {
2901     item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
2902     tree = proto_item_add_subtree(item, ett_lustre_mdt_body);
2903   }
2904
2905   offset=lustre_dissect_element_mdt_body_fid1(tvb, offset, pinfo, tree);
2906
2907   offset=lustre_dissect_element_mdt_body_fid2(tvb, offset, pinfo, tree);
2908
2909   offset=lustre_dissect_element_mdt_body_handle(tvb, offset, pinfo, tree);
2910
2911   offset=lustre_dissect_element_mdt_body_valid(tvb, offset, pinfo, tree);
2912
2913   offset=lustre_dissect_element_mdt_body_size(tvb, offset, pinfo, tree);
2914
2915   offset=lustre_dissect_element_mdt_body_mtime(tvb, offset, pinfo, tree);
2916
2917   offset=lustre_dissect_element_mdt_body_atime(tvb, offset, pinfo, tree);
2918
2919   offset=lustre_dissect_element_mdt_body_ctime(tvb, offset, pinfo, tree);
2920
2921   offset=lustre_dissect_element_mdt_body_blocks(tvb, offset, pinfo, tree);
2922
2923   offset=lustre_dissect_element_mdt_body_ioepoch(tvb, offset, pinfo, tree);
2924
2925   offset=lustre_dissect_element_mdt_body_ino(tvb, offset, pinfo, tree);
2926
2927   offset=lustre_dissect_element_mdt_body_fsuid(tvb, offset, pinfo, tree);
2928
2929   offset=lustre_dissect_element_mdt_body_fsgid(tvb, offset, pinfo, tree);
2930
2931   offset=lustre_dissect_element_mdt_body_capability(tvb, offset, pinfo, tree);
2932
2933   offset=lustre_dissect_element_mdt_body_mode(tvb, offset, pinfo, tree);
2934
2935   offset=lustre_dissect_element_mdt_body_uid(tvb, offset, pinfo, tree);
2936
2937   offset=lustre_dissect_element_mdt_body_gid(tvb, offset, pinfo, tree);
2938
2939   offset=lustre_dissect_element_mdt_body_flags(tvb, offset, pinfo, tree);
2940
2941   offset=lustre_dissect_element_mdt_body_rdev(tvb, offset, pinfo, tree);
2942
2943   offset=lustre_dissect_element_mdt_body_nlink(tvb, offset, pinfo, tree);
2944
2945   offset=lustre_dissect_element_mdt_body_generation(tvb, offset, pinfo, tree);
2946
2947   offset=lustre_dissect_element_mdt_body_suppgid(tvb, offset, pinfo, tree);
2948
2949   offset=lustre_dissect_element_mdt_body_eadatasize(tvb, offset, pinfo, tree);
2950
2951   offset=lustre_dissect_element_mdt_body_aclsize(tvb, offset, pinfo, tree);
2952
2953   offset=lustre_dissect_element_mdt_body_max_mdsize(tvb, offset, pinfo, tree);
2954
2955   offset=lustre_dissect_element_mdt_body_max_cookiesize(tvb, offset, pinfo, tree);
2956
2957   offset=lustre_dissect_element_mdt_body_uid_h(tvb, offset, pinfo, tree);
2958
2959   offset=lustre_dissect_element_mdt_body_gid_h(tvb, offset, pinfo, tree);
2960
2961   offset=lustre_dissect_element_mdt_body_padding_5(tvb, offset, pinfo, tree);
2962
2963   offset=lustre_dissect_element_mdt_body_padding_6(tvb, offset, pinfo, tree);
2964
2965   offset=lustre_dissect_element_mdt_body_padding_7(tvb, offset, pinfo, tree);
2966
2967   offset=lustre_dissect_element_mdt_body_padding_8(tvb, offset, pinfo, tree);
2968
2969   offset=lustre_dissect_element_mdt_body_padding_9(tvb, offset, pinfo, tree);
2970
2971   offset=lustre_dissect_element_mdt_body_padding_10(tvb, offset, pinfo, tree);
2972
2973
2974   proto_item_set_len(item, offset-old_offset);
2975
2976   return offset;
2977 }
2978
2979 /* I don't find where this struct appear on wire.. need to search mdc_setattr_pack() */
2980 /* IDL: struct mdt_rec_setattr { */
2981 /* IDL:         uint32 sa_opcode; */
2982 /* IDL:         uint32 sa_cap; */
2983 /* IDL:         uint32 sa_fsuid; */
2984 /* IDL:         uint32 sa_fsuid_h; */
2985 /* IDL:         uint32 sa_fsgid; */
2986 /* IDL:         uint32 sa_fsgid_h; */
2987 /* IDL:         uint32 sa_suppgid; */
2988 /* IDL:         uint32 sa_suppgid_h; */
2989 /* IDL:         uint32 sa_padding_1; */
2990 /* IDL:         uint32 sa_padding_1_h; */
2991 /* IDL:         struct lu_fid { */
2992 /* IDL: } sa_fid; */
2993 /* IDL:         uint64 sa_valid; */
2994 /* IDL:         uint32 sa_uid; */
2995 /* IDL:         uint32 sa_gid; */
2996 /* IDL:         uint64 sa_size; */
2997 /* IDL:         uint64 sa_blocks; */
2998 /* IDL:         uint64 sa_mtime; */
2999 /* IDL:         uint64 sa_atime; */
3000 /* IDL:         uint64 sa_ctime; */
3001 /* IDL:         uint32 sa_attr_flags; */
3002 /* IDL:         uint32 sa_mode; */
3003 /* IDL:         uint32 sa_padding_2; */
3004 /* IDL:         uint32 sa_padding_3; */
3005 /* IDL:         uint32 sa_padding_4; */
3006 /* IDL:         uint32 sa_padding_5; */
3007 /* IDL: } */
3008
3009 static int
3010 lustre_dissect_element_mdt_rec_setattr_sa_opcode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
3011 {
3012   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_setattr_sa_opcode);
3013
3014   return offset;
3015 }
3016
3017 static int
3018 lustre_dissect_element_mdt_rec_setattr_sa_cap(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
3019 {
3020   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_setattr_sa_cap);
3021
3022   return offset;
3023 }
3024
3025 static int
3026 lustre_dissect_element_mdt_rec_setattr_sa_fsuid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
3027 {
3028   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_setattr_sa_fsuid);
3029
3030   return offset;
3031 }
3032
3033 static int
3034 lustre_dissect_element_mdt_rec_setattr_sa_fsuid_h(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
3035 {
3036   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_setattr_sa_fsuid_h);
3037
3038   return offset;
3039 }
3040
3041 static int
3042 lustre_dissect_element_mdt_rec_setattr_sa_fsgid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
3043 {
3044   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_setattr_sa_fsgid);
3045
3046   return offset;
3047 }
3048
3049 static int
3050 lustre_dissect_element_mdt_rec_setattr_sa_fsgid_h(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
3051 {
3052   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_setattr_sa_fsgid_h);
3053
3054   return offset;
3055 }
3056
3057 static int
3058 lustre_dissect_element_mdt_rec_setattr_sa_suppgid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
3059 {
3060   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_setattr_sa_suppgid);
3061
3062   return offset;
3063 }
3064
3065 static int
3066 lustre_dissect_element_mdt_rec_setattr_sa_suppgid_h(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
3067 {
3068   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_setattr_sa_suppgid_h);
3069
3070   return offset;
3071 }
3072
3073 static int
3074 lustre_dissect_element_mdt_rec_setattr_sa_padding_1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
3075 {
3076   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_setattr_sa_padding_1);
3077
3078   return offset;
3079 }
3080
3081 static int
3082 lustre_dissect_element_mdt_rec_setattr_sa_padding_1_h(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
3083 {
3084   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_setattr_sa_padding_1_h);
3085
3086   return offset;
3087 }
3088
3089 static int
3090 lustre_dissect_element_mdt_rec_setattr_sa_fid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
3091 {
3092   offset=lustre_dissect_struct_lu_fid(tvb,offset,pinfo,tree,hf_lustre_mdt_rec_setattr_sa_fid);
3093
3094   return offset;
3095 }
3096
3097 static int
3098 lustre_dissect_element_mdt_rec_setattr_sa_valid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
3099 {
3100   offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_setattr_sa_valid);
3101
3102   return offset;
3103 }
3104
3105 static int
3106 lustre_dissect_element_mdt_rec_setattr_sa_uid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
3107 {
3108   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_setattr_sa_uid);
3109
3110   return offset;
3111 }
3112
3113 static int
3114 lustre_dissect_element_mdt_rec_setattr_sa_gid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
3115 {
3116   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_setattr_sa_gid);
3117
3118   return offset;
3119 }
3120
3121 static int
3122 lustre_dissect_element_mdt_rec_setattr_sa_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
3123 {
3124   offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_setattr_sa_size);
3125
3126   return offset;
3127 }
3128
3129 static int
3130 lustre_dissect_element_mdt_rec_setattr_sa_blocks(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
3131 {
3132   offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_setattr_sa_blocks);
3133
3134   return offset;
3135 }
3136
3137 static int
3138 lustre_dissect_element_mdt_rec_setattr_sa_mtime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
3139 {
3140
3141   nstime_t ns;
3142   /* timestamp */
3143   ns.secs = tvb_get_letohl(tvb,offset);
3144   ns.nsecs=0;
3145   proto_tree_add_time(tree, hf_lustre_mdt_rec_setattr_sa_mtime, tvb, offset, 8, &ns );
3146   offset+=8;
3147   return offset;
3148 }
3149
3150 static int
3151 lustre_dissect_element_mdt_rec_setattr_sa_atime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
3152 {
3153   nstime_t ns;
3154   /* timestamp */
3155   ns.secs = tvb_get_letohl(tvb,offset);
3156   ns.nsecs=0;
3157   proto_tree_add_time(tree, hf_lustre_mdt_rec_setattr_sa_atime, tvb, offset, 8, &ns );
3158   offset+=8;
3159   return offset;
3160 }
3161
3162 static int
3163 lustre_dissect_element_mdt_rec_setattr_sa_ctime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
3164 {
3165   nstime_t ns;
3166   /* timestamp */
3167   ns.secs = tvb_get_letohl(tvb,offset);
3168   ns.nsecs=0;
3169   proto_tree_add_time(tree, hf_lustre_mdt_rec_setattr_sa_ctime, tvb, offset, 8, &ns );
3170   offset+=8;
3171   return offset;
3172 }
3173
3174 static int
3175 lustre_dissect_element_mdt_rec_setattr_sa_attr_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
3176 {
3177   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_setattr_sa_attr_flags);
3178
3179   return offset;
3180 }
3181
3182 static int
3183 lustre_dissect_element_mdt_rec_setattr_sa_mode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
3184 {
3185   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_setattr_sa_mode);
3186
3187   return offset;
3188 }
3189
3190 static int
3191 lustre_dissect_element_mdt_rec_setattr_sa_padding_2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
3192 {
3193   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_setattr_sa_padding_2);
3194
3195   return offset;
3196 }
3197
3198 static int
3199 lustre_dissect_element_mdt_rec_setattr_sa_padding_3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
3200 {
3201   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_setattr_sa_padding_3);
3202
3203   return offset;
3204 }
3205
3206 static int
3207 lustre_dissect_element_mdt_rec_setattr_sa_padding_4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
3208 {
3209   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_setattr_sa_padding_4);
3210
3211   return offset;
3212 }
3213
3214 static int
3215 lustre_dissect_element_mdt_rec_setattr_sa_padding_5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
3216 {
3217   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_setattr_sa_padding_5);
3218
3219   return offset;
3220 }
3221
3222 int
3223 lustre_dissect_struct_mdt_rec_setattr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, int hf_index _U_)
3224 {
3225   proto_item *item = NULL;
3226   proto_tree *tree = NULL;
3227   int old_offset;
3228
3229   guint32 sa_opcode ;
3230
3231
3232   old_offset=offset;
3233
3234   if (parent_tree) {
3235     item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
3236     tree = proto_item_add_subtree(item, ett_lustre_mdt_rec_setattr);
3237   }
3238   sa_opcode=tvb_get_letohl(tvb,offset);
3239   display_info_fstr(parent_tree->parent, pinfo->cinfo, COL_INFO, "[%s]", val_to_str(sa_opcode, lustre_mds_reint_t_vals, "Unknown sa_opc"));
3240
3241   offset=lustre_dissect_element_mdt_rec_setattr_sa_opcode(tvb, offset, pinfo, tree);
3242
3243   offset=lustre_dissect_element_mdt_rec_setattr_sa_cap(tvb, offset, pinfo, tree);
3244
3245   offset=lustre_dissect_element_mdt_rec_setattr_sa_fsuid(tvb, offset, pinfo, tree);
3246
3247   offset=lustre_dissect_element_mdt_rec_setattr_sa_fsuid_h(tvb, offset, pinfo, tree);
3248
3249   offset=lustre_dissect_element_mdt_rec_setattr_sa_fsgid(tvb, offset, pinfo, tree);
3250
3251   offset=lustre_dissect_element_mdt_rec_setattr_sa_fsgid_h(tvb, offset, pinfo, tree);
3252
3253   offset=lustre_dissect_element_mdt_rec_setattr_sa_suppgid(tvb, offset, pinfo, tree);
3254
3255   offset=lustre_dissect_element_mdt_rec_setattr_sa_suppgid_h(tvb, offset, pinfo, tree);
3256
3257   offset=lustre_dissect_element_mdt_rec_setattr_sa_padding_1(tvb, offset, pinfo, tree);
3258
3259   offset=lustre_dissect_element_mdt_rec_setattr_sa_padding_1_h(tvb, offset, pinfo, tree);
3260
3261   offset=lustre_dissect_element_mdt_rec_setattr_sa_fid(tvb, offset, pinfo, tree);
3262
3263   offset=lustre_dissect_element_mdt_rec_setattr_sa_valid(tvb, offset, pinfo, tree);
3264
3265   offset=lustre_dissect_element_mdt_rec_setattr_sa_uid(tvb, offset, pinfo, tree);
3266
3267   offset=lustre_dissect_element_mdt_rec_setattr_sa_gid(tvb, offset, pinfo, tree);
3268
3269   offset=lustre_dissect_element_mdt_rec_setattr_sa_size(tvb, offset, pinfo, tree);
3270
3271   offset=lustre_dissect_element_mdt_rec_setattr_sa_blocks(tvb, offset, pinfo, tree);
3272
3273   offset=lustre_dissect_element_mdt_rec_setattr_sa_mtime(tvb, offset, pinfo, tree);
3274
3275   offset=lustre_dissect_element_mdt_rec_setattr_sa_atime(tvb, offset, pinfo, tree);
3276
3277   offset=lustre_dissect_element_mdt_rec_setattr_sa_ctime(tvb, offset, pinfo, tree);
3278
3279   offset=lustre_dissect_element_mdt_rec_setattr_sa_attr_flags(tvb, offset, pinfo, tree);
3280
3281   offset=lustre_dissect_element_mdt_rec_setattr_sa_mode(tvb, offset, pinfo, tree);
3282
3283   offset=lustre_dissect_element_mdt_rec_setattr_sa_padding_2(tvb, offset, pinfo, tree);
3284
3285   offset=lustre_dissect_element_mdt_rec_setattr_sa_padding_3(tvb, offset, pinfo, tree);
3286
3287   offset=lustre_dissect_element_mdt_rec_setattr_sa_padding_4(tvb, offset, pinfo, tree);
3288
3289   offset=lustre_dissect_element_mdt_rec_setattr_sa_padding_5(tvb, offset, pinfo, tree);
3290
3291
3292   proto_item_set_len(item, offset-old_offset);
3293
3294   return offset;
3295 }
3296
3297 /* IDL: struct mdt_rec_create { */
3298 /* IDL:         uint32 cr_opcode; */
3299 /* IDL:         uint32 cr_cap; */
3300 /* IDL:         uint32 cr_fsuid; */
3301 /* IDL:         uint32 cr_fsuid_h; */
3302 /* IDL:         uint32 cr_fsgid; */
3303 /* IDL:         uint32 cr_fsgid_h; */
3304 /* IDL:         uint32 cr_suppgid1; */
3305 /* IDL:         uint32 cr_suppgid1_h; */
3306 /* IDL:         uint32 cr_suppgid2; */
3307 /* IDL:         uint32 cr_suppgid2_h; */
3308 /* IDL:         struct lu_fid { */
3309 /* IDL: } cr_fid1; */
3310 /* IDL:         struct lu_fid { */
3311 /* IDL: } cr_fid2; */
3312 /* IDL:         struct lustre_handle { */
3313 /* IDL: } cr_old_handle; */
3314 /* IDL:         uint64 cr_time; */
3315 /* IDL:         uint64 cr_rdev; */
3316 /* IDL:         uint64 cr_ioepoch; */
3317 /* IDL:         uint64 cr_padding_1; */
3318 /* IDL:         uint32 cr_mode; */
3319 /* IDL:         uint32 cr_bias; */
3320 /* IDL:         uint32 cr_flags_l; */
3321 /* IDL:         uint32 cr_flags_h; */
3322 /* IDL:         uint32 cr_padding_3; */
3323 /* IDL:         uint32 cr_padding_4; */
3324 /* IDL: } */
3325
3326 static int
3327 lustre_dissect_element_mdt_rec_create_cr_opcode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
3328 {
3329   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_create_cr_opcode);
3330
3331   return offset;
3332 }
3333
3334 static int
3335 lustre_dissect_element_mdt_rec_create_cr_cap(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
3336 {
3337   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_create_cr_cap);
3338
3339   return offset;
3340 }
3341
3342 static int
3343 lustre_dissect_element_mdt_rec_create_cr_fsuid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
3344 {
3345   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_create_cr_fsuid);
3346
3347   return offset;
3348 }
3349
3350 static int
3351 lustre_dissect_element_mdt_rec_create_cr_fsuid_h(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
3352 {
3353   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_create_cr_fsuid_h);
3354
3355   return offset;
3356 }
3357
3358 static int
3359 lustre_dissect_element_mdt_rec_create_cr_fsgid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
3360 {
3361   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_create_cr_fsgid);
3362
3363   return offset;
3364 }
3365
3366 static int
3367 lustre_dissect_element_mdt_rec_create_cr_fsgid_h(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
3368 {
3369   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_create_cr_fsgid_h);
3370
3371   return offset;
3372 }
3373
3374 static int
3375 lustre_dissect_element_mdt_rec_create_cr_suppgid1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
3376 {
3377   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_create_cr_suppgid1);
3378
3379   return offset;
3380 }
3381
3382 static int
3383 lustre_dissect_element_mdt_rec_create_cr_suppgid1_h(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
3384 {
3385   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_create_cr_suppgid1_h);
3386
3387   return offset;
3388 }
3389
3390 static int
3391 lustre_dissect_element_mdt_rec_create_cr_suppgid2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
3392 {
3393   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_create_cr_suppgid2);
3394
3395   return offset;
3396 }
3397
3398 static int
3399 lustre_dissect_element_mdt_rec_create_cr_suppgid2_h(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
3400 {
3401   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_create_cr_suppgid2_h);
3402
3403   return offset;
3404 }
3405
3406 static int
3407 lustre_dissect_element_mdt_rec_create_cr_fid1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
3408 {
3409   offset=lustre_dissect_struct_lu_fid(tvb,offset,pinfo,tree,hf_lustre_mdt_rec_create_cr_fid1);
3410   return offset;
3411 }
3412
3413 static int
3414 lustre_dissect_element_mdt_rec_create_cr_fid2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
3415 {
3416   offset=lustre_dissect_struct_lu_fid(tvb,offset,pinfo,tree,hf_lustre_mdt_rec_create_cr_fid2);
3417   return offset;
3418 }
3419
3420 static int
3421 lustre_dissect_element_mdt_rec_create_cr_old_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
3422 {
3423   offset=lustre_dissect_struct_handle_cookie(tvb,offset,pinfo,tree,hf_lustre_mdt_rec_create_cr_old_handle);
3424   return offset;
3425 }
3426
3427 static int
3428 lustre_dissect_element_mdt_rec_create_cr_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
3429 {
3430   nstime_t ns;
3431   /* timestamp */
3432   ns.secs = tvb_get_letohl(tvb,offset);
3433   ns.nsecs=0;
3434   proto_tree_add_time(tree, hf_lustre_mdt_rec_create_cr_time, tvb, offset, 8, &ns );
3435   offset+=8;
3436   return offset;
3437
3438 }
3439
3440 static int
3441 lustre_dissect_element_mdt_rec_create_cr_rdev(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
3442 {
3443   offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_create_cr_rdev);
3444
3445   return offset;
3446 }
3447
3448 static int
3449 lustre_dissect_element_mdt_rec_create_cr_ioepoch(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
3450 {
3451   offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_create_cr_ioepoch);
3452
3453   return offset;
3454 }
3455
3456 static int
3457 lustre_dissect_element_mdt_rec_create_cr_padding_1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
3458 {
3459   offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_create_cr_padding_1);
3460
3461   return offset;
3462 }
3463
3464 static int
3465 lustre_dissect_element_mdt_rec_create_cr_mode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
3466 {
3467   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_create_cr_mode);
3468
3469   return offset;
3470 }
3471
3472 static int
3473 lustre_dissect_element_mdt_rec_create_cr_bias(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
3474 {
3475   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_create_cr_bias);
3476
3477   return offset;
3478 }
3479
3480 static int
3481 lustre_dissect_element_mdt_rec_create_cr_flags_l(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
3482 {
3483   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_create_cr_flags_l);
3484
3485   return offset;
3486 }
3487
3488 static int
3489 lustre_dissect_element_mdt_rec_create_cr_flags_h(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
3490 {
3491   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_create_cr_flags_h);
3492
3493   return offset;
3494 }
3495
3496 static int
3497 lustre_dissect_element_mdt_rec_create_cr_padding_3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
3498 {
3499   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_create_cr_padding_3);
3500
3501   return offset;
3502 }
3503
3504 static int
3505 lustre_dissect_element_mdt_rec_create_cr_padding_4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
3506 {
3507   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_create_cr_padding_4);
3508
3509   return offset;
3510 }
3511
3512 int
3513 lustre_dissect_struct_mdt_rec_create(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, int hf_index _U_)
3514 {
3515   proto_item *item = NULL;
3516   proto_tree *tree = NULL;
3517   int old_offset;
3518   guint32 cr_opcode ;
3519
3520
3521
3522   old_offset=offset;
3523
3524   if (parent_tree) {
3525     item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
3526     tree = proto_item_add_subtree(item, ett_lustre_mdt_rec_create);
3527   }
3528   cr_opcode=tvb_get_letohl(tvb,offset);
3529   display_info_fstr(parent_tree->parent, pinfo->cinfo, COL_INFO, "[%s]", val_to_str(cr_opcode, lustre_mds_reint_t_vals, "Unknown cr_opc"));
3530
3531   offset=lustre_dissect_element_mdt_rec_create_cr_opcode(tvb, offset, pinfo, tree);
3532
3533   offset=lustre_dissect_element_mdt_rec_create_cr_cap(tvb, offset, pinfo, tree);
3534
3535   offset=lustre_dissect_element_mdt_rec_create_cr_fsuid(tvb, offset, pinfo, tree);
3536
3537   offset=lustre_dissect_element_mdt_rec_create_cr_fsuid_h(tvb, offset, pinfo, tree);
3538
3539   offset=lustre_dissect_element_mdt_rec_create_cr_fsgid(tvb, offset, pinfo, tree);
3540
3541   offset=lustre_dissect_element_mdt_rec_create_cr_fsgid_h(tvb, offset, pinfo, tree);
3542
3543   offset=lustre_dissect_element_mdt_rec_create_cr_suppgid1(tvb, offset, pinfo, tree);
3544
3545   offset=lustre_dissect_element_mdt_rec_create_cr_suppgid1_h(tvb, offset, pinfo, tree);
3546
3547   offset=lustre_dissect_element_mdt_rec_create_cr_suppgid2(tvb, offset, pinfo, tree);
3548
3549   offset=lustre_dissect_element_mdt_rec_create_cr_suppgid2_h(tvb, offset, pinfo, tree);
3550
3551   offset=lustre_dissect_element_mdt_rec_create_cr_fid1(tvb, offset, pinfo, tree);
3552
3553   offset=lustre_dissect_element_mdt_rec_create_cr_fid2(tvb, offset, pinfo, tree);
3554
3555   offset=lustre_dissect_element_mdt_rec_create_cr_old_handle(tvb, offset, pinfo, tree);
3556
3557   offset=lustre_dissect_element_mdt_rec_create_cr_time(tvb, offset, pinfo, tree);
3558
3559   offset=lustre_dissect_element_mdt_rec_create_cr_rdev(tvb, offset, pinfo, tree);
3560
3561   offset=lustre_dissect_element_mdt_rec_create_cr_ioepoch(tvb, offset, pinfo, tree);
3562
3563   offset=lustre_dissect_element_mdt_rec_create_cr_padding_1(tvb, offset, pinfo, tree);
3564
3565   offset=lustre_dissect_element_mdt_rec_create_cr_mode(tvb, offset, pinfo, tree);
3566
3567   offset=lustre_dissect_element_mdt_rec_create_cr_bias(tvb, offset, pinfo, tree);
3568
3569   offset=lustre_dissect_element_mdt_rec_create_cr_flags_l(tvb, offset, pinfo, tree);
3570
3571   offset=lustre_dissect_element_mdt_rec_create_cr_flags_h(tvb, offset, pinfo, tree);
3572
3573   offset=lustre_dissect_element_mdt_rec_create_cr_padding_3(tvb, offset, pinfo, tree);
3574
3575   offset=lustre_dissect_element_mdt_rec_create_cr_padding_4(tvb, offset, pinfo, tree);
3576
3577
3578   proto_item_set_len(item, offset-old_offset);
3579
3580
3581   return offset;
3582 }
3583
3584 /* TODO : find where this structure appear ! */
3585 /* IDL: struct mdt_rec_link { */
3586 /* IDL:         uint32 lk_opcode; */
3587 /* IDL:         uint32 lk_cap; */
3588 /* IDL:         uint32 lk_fsuid; */
3589 /* IDL:         uint32 lk_fsuid_h; */
3590 /* IDL:         uint32 lk_fsgid; */
3591 /* IDL:         uint32 lk_fsgid_h; */
3592 /* IDL:         uint32 lk_suppgid1; */
3593 /* IDL:         uint32 lk_suppgid1_h; */
3594 /* IDL:         uint32 lk_suppgid2; */
3595 /* IDL:         uint32 lk_suppgid2_h; */
3596 /* IDL:         struct lu_fid { */
3597 /* IDL: } lk_fid1; */
3598 /* IDL:         struct lu_fid { */
3599 /* IDL: } lk_fid2; */
3600 /* IDL:         uint64 lk_time; */
3601 /* IDL:         uint64 lk_padding_1; */
3602 /* IDL:         uint64 lk_padding_2; */
3603 /* IDL:         uint64 lk_padding_3; */
3604 /* IDL:         uint64 lk_padding_4; */
3605 /* IDL:         uint32 lk_bias; */
3606 /* IDL:         uint32 lk_padding_5; */
3607 /* IDL:         uint32 lk_padding_6; */
3608 /* IDL:         uint32 lk_padding_7; */
3609 /* IDL:         uint32 lk_padding_8; */
3610 /* IDL:         uint32 lk_padding_9; */
3611 /* IDL: } */
3612
3613 static int
3614 lustre_dissect_element_mdt_rec_link_lk_opcode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
3615 {
3616   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_link_lk_opcode);
3617
3618   return offset;
3619 }
3620
3621 static int
3622 lustre_dissect_element_mdt_rec_link_lk_cap(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
3623 {
3624   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_link_lk_cap);
3625
3626   return offset;
3627 }
3628
3629 static int
3630 lustre_dissect_element_mdt_rec_link_lk_fsuid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
3631 {
3632   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_link_lk_fsuid);
3633
3634   return offset;
3635 }
3636
3637 static int
3638 lustre_dissect_element_mdt_rec_link_lk_fsuid_h(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
3639 {
3640   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_link_lk_fsuid_h);
3641
3642   return offset;
3643 }
3644
3645 static int
3646 lustre_dissect_element_mdt_rec_link_lk_fsgid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
3647 {
3648   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_link_lk_fsgid);
3649
3650   return offset;
3651 }
3652
3653 static int
3654 lustre_dissect_element_mdt_rec_link_lk_fsgid_h(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
3655 {
3656   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_link_lk_fsgid_h);
3657
3658   return offset;
3659 }
3660
3661 static int
3662 lustre_dissect_element_mdt_rec_link_lk_suppgid1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
3663 {
3664   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_link_lk_suppgid1);
3665
3666   return offset;
3667 }
3668
3669 static int
3670 lustre_dissect_element_mdt_rec_link_lk_suppgid1_h(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
3671 {
3672   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_link_lk_suppgid1_h);
3673
3674   return offset;
3675 }
3676
3677 static int
3678 lustre_dissect_element_mdt_rec_link_lk_suppgid2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
3679 {
3680   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_link_lk_suppgid2);
3681
3682   return offset;
3683 }
3684
3685 static int
3686 lustre_dissect_element_mdt_rec_link_lk_suppgid2_h(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
3687 {
3688   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_link_lk_suppgid2_h);
3689
3690   return offset;
3691 }
3692
3693 static int
3694 lustre_dissect_element_mdt_rec_link_lk_fid1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
3695 {
3696   offset=lustre_dissect_struct_lu_fid(tvb,offset,pinfo,tree,hf_lustre_mdt_rec_link_lk_fid1);
3697   return offset;
3698 }
3699
3700 static int
3701 lustre_dissect_element_mdt_rec_link_lk_fid2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
3702 {
3703   offset=lustre_dissect_struct_lu_fid(tvb,offset,pinfo,tree,hf_lustre_mdt_rec_link_lk_fid2);
3704   return offset;
3705 }
3706
3707 static int
3708 lustre_dissect_element_mdt_rec_link_lk_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
3709 {
3710   nstime_t ns;
3711   /* timestamp */
3712   ns.secs = tvb_get_letohl(tvb,offset);
3713   ns.nsecs=0;
3714   proto_tree_add_time(tree, hf_lustre_mdt_rec_link_lk_time, tvb, offset, 8, &ns );
3715   offset+=8;
3716   return offset;
3717 }
3718
3719 static int
3720 lustre_dissect_element_mdt_rec_link_lk_padding_1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
3721 {
3722   offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_link_lk_padding_1);
3723
3724   return offset;
3725 }
3726
3727 static int
3728 lustre_dissect_element_mdt_rec_link_lk_padding_2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
3729 {
3730   offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_link_lk_padding_2);
3731
3732   return offset;
3733 }
3734
3735 static int
3736 lustre_dissect_element_mdt_rec_link_lk_padding_3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
3737 {
3738   offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_link_lk_padding_3);
3739
3740   return offset;
3741 }
3742
3743 static int
3744 lustre_dissect_element_mdt_rec_link_lk_padding_4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
3745 {
3746   offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_link_lk_padding_4);
3747
3748   return offset;
3749 }
3750
3751 static int
3752 lustre_dissect_element_mdt_rec_link_lk_bias(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
3753 {
3754   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_link_lk_bias);
3755
3756   return offset;
3757 }
3758
3759 static int
3760 lustre_dissect_element_mdt_rec_link_lk_padding_5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
3761 {
3762   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_link_lk_padding_5);
3763
3764   return offset;
3765 }
3766
3767 static int
3768 lustre_dissect_element_mdt_rec_link_lk_padding_6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
3769 {
3770   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_link_lk_padding_6);
3771
3772   return offset;
3773 }
3774
3775 static int
3776 lustre_dissect_element_mdt_rec_link_lk_padding_7(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
3777 {
3778   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_link_lk_padding_7);
3779
3780   return offset;
3781 }
3782
3783 static int
3784 lustre_dissect_element_mdt_rec_link_lk_padding_8(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
3785 {
3786   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_link_lk_padding_8);
3787
3788   return offset;
3789 }
3790
3791 static int
3792 lustre_dissect_element_mdt_rec_link_lk_padding_9(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
3793 {
3794   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_link_lk_padding_9);
3795
3796   return offset;
3797 }
3798
3799 int
3800 lustre_dissect_struct_mdt_rec_link(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, int hf_index _U_)
3801 {
3802   proto_item *item = NULL;
3803   proto_tree *tree = NULL;
3804   int old_offset;
3805
3806   guint32 lk_opcode ;
3807
3808
3809   old_offset=offset;
3810
3811   if (parent_tree) {
3812     item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
3813     tree = proto_item_add_subtree(item, ett_lustre_mdt_rec_link);
3814   }
3815   lk_opcode=tvb_get_letohl(tvb,offset);
3816   display_info_fstr(parent_tree->parent, pinfo->cinfo, COL_INFO, "[%s]", val_to_str(lk_opcode, lustre_mds_reint_t_vals, "Unknown lk_opc"));
3817
3818   offset=lustre_dissect_element_mdt_rec_link_lk_opcode(tvb, offset, pinfo, tree);
3819
3820   offset=lustre_dissect_element_mdt_rec_link_lk_cap(tvb, offset, pinfo, tree);
3821
3822   offset=lustre_dissect_element_mdt_rec_link_lk_fsuid(tvb, offset, pinfo, tree);
3823
3824   offset=lustre_dissect_element_mdt_rec_link_lk_fsuid_h(tvb, offset, pinfo, tree);
3825
3826   offset=lustre_dissect_element_mdt_rec_link_lk_fsgid(tvb, offset, pinfo, tree);
3827
3828   offset=lustre_dissect_element_mdt_rec_link_lk_fsgid_h(tvb, offset, pinfo, tree);
3829
3830   offset=lustre_dissect_element_mdt_rec_link_lk_suppgid1(tvb, offset, pinfo, tree);
3831
3832   offset=lustre_dissect_element_mdt_rec_link_lk_suppgid1_h(tvb, offset, pinfo, tree);
3833
3834   offset=lustre_dissect_element_mdt_rec_link_lk_suppgid2(tvb, offset, pinfo, tree);
3835
3836   offset=lustre_dissect_element_mdt_rec_link_lk_suppgid2_h(tvb, offset, pinfo, tree);
3837
3838   offset=lustre_dissect_element_mdt_rec_link_lk_fid1(tvb, offset, pinfo, tree);
3839
3840   offset=lustre_dissect_element_mdt_rec_link_lk_fid2(tvb, offset, pinfo, tree);
3841
3842   offset=lustre_dissect_element_mdt_rec_link_lk_time(tvb, offset, pinfo, tree);
3843
3844   offset=lustre_dissect_element_mdt_rec_link_lk_padding_1(tvb, offset, pinfo, tree);
3845
3846   offset=lustre_dissect_element_mdt_rec_link_lk_padding_2(tvb, offset, pinfo, tree);
3847
3848   offset=lustre_dissect_element_mdt_rec_link_lk_padding_3(tvb, offset, pinfo, tree);
3849
3850   offset=lustre_dissect_element_mdt_rec_link_lk_padding_4(tvb, offset, pinfo, tree);
3851
3852   offset=lustre_dissect_element_mdt_rec_link_lk_bias(tvb, offset, pinfo, tree);
3853
3854   offset=lustre_dissect_element_mdt_rec_link_lk_padding_5(tvb, offset, pinfo, tree);
3855
3856   offset=lustre_dissect_element_mdt_rec_link_lk_padding_6(tvb, offset, pinfo, tree);
3857
3858   offset=lustre_dissect_element_mdt_rec_link_lk_padding_7(tvb, offset, pinfo, tree);
3859
3860   offset=lustre_dissect_element_mdt_rec_link_lk_padding_8(tvb, offset, pinfo, tree);
3861
3862   offset=lustre_dissect_element_mdt_rec_link_lk_padding_9(tvb, offset, pinfo, tree);
3863
3864
3865   proto_item_set_len(item, offset-old_offset);
3866
3867   return offset;
3868 }
3869
3870 /* IDL: struct mdt_rec_unlink { */
3871 /* IDL:         uint32 ul_opcode; */
3872 /* IDL:         uint32 ul_cap; */
3873 /* IDL:         uint32 ul_fsuid; */
3874 /* IDL:         uint32 ul_fsuid_h; */
3875 /* IDL:         uint32 ul_fsgid; */
3876 /* IDL:         uint32 ul_fsgid_h; */
3877 /* IDL:         uint32 ul_suppgid1; */
3878 /* IDL:         uint32 ul_suppgid1_h; */
3879 /* IDL:         uint32 ul_suppgid2; */
3880 /* IDL:         uint32 ul_suppgid2_h; */
3881 /* IDL:         struct lu_fid { */
3882 /* IDL: } ul_fid1; */
3883 /* IDL:         struct lu_fid { */
3884 /* IDL: } ul_fid2; */
3885 /* IDL:         uint64 ul_time; */
3886 /* IDL:         uint64 ul_padding_2; */
3887 /* IDL:         uint64 ul_padding_3; */
3888 /* IDL:         uint64 ul_padding_4; */
3889 /* IDL:         uint64 ul_padding_5; */
3890 /* IDL:         uint32 ul_bias; */
3891 /* IDL:         uint32 ul_mode; */
3892 /* IDL:         uint32 ul_padding_6; */
3893 /* IDL:         uint32 ul_padding_7; */
3894 /* IDL:         uint32 ul_padding_8; */
3895 /* IDL:         uint32 ul_padding_9; */
3896 /* IDL: } */
3897
3898 static int
3899 lustre_dissect_element_mdt_rec_unlink_ul_opcode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
3900 {
3901   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_unlink_ul_opcode);
3902
3903   return offset;
3904 }
3905
3906 static int
3907 lustre_dissect_element_mdt_rec_unlink_ul_cap(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
3908 {
3909   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_unlink_ul_cap);
3910
3911   return offset;
3912 }
3913
3914 static int
3915 lustre_dissect_element_mdt_rec_unlink_ul_fsuid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
3916 {
3917   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_unlink_ul_fsuid);
3918
3919   return offset;
3920 }
3921
3922 static int
3923 lustre_dissect_element_mdt_rec_unlink_ul_fsuid_h(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
3924 {
3925   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_unlink_ul_fsuid_h);
3926
3927   return offset;
3928 }
3929
3930 static int
3931 lustre_dissect_element_mdt_rec_unlink_ul_fsgid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
3932 {
3933   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_unlink_ul_fsgid);
3934
3935   return offset;
3936 }
3937
3938 static int
3939 lustre_dissect_element_mdt_rec_unlink_ul_fsgid_h(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
3940 {
3941   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_unlink_ul_fsgid_h);
3942
3943   return offset;
3944 }
3945
3946 static int
3947 lustre_dissect_element_mdt_rec_unlink_ul_suppgid1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
3948 {
3949   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_unlink_ul_suppgid1);
3950
3951   return offset;
3952 }
3953
3954 static int
3955 lustre_dissect_element_mdt_rec_unlink_ul_suppgid1_h(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
3956 {
3957   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_unlink_ul_suppgid1_h);
3958
3959   return offset;
3960 }
3961
3962 static int
3963 lustre_dissect_element_mdt_rec_unlink_ul_suppgid2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
3964 {
3965   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_unlink_ul_suppgid2);
3966
3967   return offset;
3968 }
3969
3970 static int
3971 lustre_dissect_element_mdt_rec_unlink_ul_suppgid2_h(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
3972 {
3973   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_unlink_ul_suppgid2_h);
3974
3975   return offset;
3976 }
3977
3978 static int
3979 lustre_dissect_element_mdt_rec_unlink_ul_fid1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
3980 {
3981   offset=lustre_dissect_struct_lu_fid(tvb,offset,pinfo,tree,hf_lustre_mdt_rec_unlink_ul_fid1);
3982   return offset;
3983 }
3984
3985 static int
3986 lustre_dissect_element_mdt_rec_unlink_ul_fid2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
3987 {
3988   offset=lustre_dissect_struct_lu_fid(tvb,offset,pinfo,tree,hf_lustre_mdt_rec_unlink_ul_fid2);
3989   return offset;
3990 }
3991
3992 static int
3993 lustre_dissect_element_mdt_rec_unlink_ul_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
3994 {
3995   nstime_t ns;
3996   /* timestamp */
3997   ns.secs = tvb_get_letohl(tvb,offset);
3998   ns.nsecs=0;
3999   proto_tree_add_time(tree,hf_lustre_mdt_rec_unlink_ul_time , tvb, offset, 8, &ns );
4000   offset+=8;
4001   return offset;
4002 }
4003
4004 static int
4005 lustre_dissect_element_mdt_rec_unlink_ul_padding_2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
4006 {
4007   offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_unlink_ul_padding_2);
4008
4009   return offset;
4010 }
4011
4012 static int
4013 lustre_dissect_element_mdt_rec_unlink_ul_padding_3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
4014 {
4015   offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_unlink_ul_padding_3);
4016
4017   return offset;
4018 }
4019
4020 static int
4021 lustre_dissect_element_mdt_rec_unlink_ul_padding_4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
4022 {
4023   offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_unlink_ul_padding_4);
4024
4025   return offset;
4026 }
4027
4028 static int
4029 lustre_dissect_element_mdt_rec_unlink_ul_padding_5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
4030 {
4031   offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_unlink_ul_padding_5);
4032
4033   return offset;
4034 }
4035
4036 static int
4037 lustre_dissect_element_mdt_rec_unlink_ul_bias(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
4038 {
4039   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_unlink_ul_bias);
4040
4041   return offset;
4042 }
4043
4044 static int
4045 lustre_dissect_element_mdt_rec_unlink_ul_mode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
4046 {
4047   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_unlink_ul_mode);
4048
4049   return offset;
4050 }
4051
4052 static int
4053 lustre_dissect_element_mdt_rec_unlink_ul_padding_6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
4054 {
4055   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_unlink_ul_padding_6);
4056
4057   return offset;
4058 }
4059
4060 static int
4061 lustre_dissect_element_mdt_rec_unlink_ul_padding_7(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
4062 {
4063   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_unlink_ul_padding_7);
4064
4065   return offset;
4066 }
4067
4068 static int
4069 lustre_dissect_element_mdt_rec_unlink_ul_padding_8(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
4070 {
4071   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_unlink_ul_padding_8);
4072
4073   return offset;
4074 }
4075
4076 static int
4077 lustre_dissect_element_mdt_rec_unlink_ul_padding_9(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
4078 {
4079   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_unlink_ul_padding_9);
4080
4081   return offset;
4082 }
4083
4084 int
4085 lustre_dissect_struct_mdt_rec_unlink(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, int hf_index _U_)
4086 {
4087   proto_item *item = NULL;
4088   proto_tree *tree = NULL;
4089   int old_offset;
4090
4091   guint32 ul_opcode ;
4092
4093
4094   old_offset=offset;
4095
4096   if (parent_tree) {
4097     item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
4098     tree = proto_item_add_subtree(item, ett_lustre_mdt_rec_unlink);
4099   }
4100
4101   ul_opcode=tvb_get_letohl(tvb,offset);
4102   display_info_fstr(parent_tree->parent, pinfo->cinfo, COL_INFO, "[%s]", val_to_str(ul_opcode, lustre_mds_reint_t_vals, "Unknown ul_opc"));
4103
4104   offset=lustre_dissect_element_mdt_rec_unlink_ul_opcode(tvb, offset, pinfo, tree);
4105
4106   offset=lustre_dissect_element_mdt_rec_unlink_ul_cap(tvb, offset, pinfo, tree);
4107
4108   offset=lustre_dissect_element_mdt_rec_unlink_ul_fsuid(tvb, offset, pinfo, tree);
4109
4110   offset=lustre_dissect_element_mdt_rec_unlink_ul_fsuid_h(tvb, offset, pinfo, tree);
4111
4112   offset=lustre_dissect_element_mdt_rec_unlink_ul_fsgid(tvb, offset, pinfo, tree);
4113
4114   offset=lustre_dissect_element_mdt_rec_unlink_ul_fsgid_h(tvb, offset, pinfo, tree);
4115
4116   offset=lustre_dissect_element_mdt_rec_unlink_ul_suppgid1(tvb, offset, pinfo, tree);
4117
4118   offset=lustre_dissect_element_mdt_rec_unlink_ul_suppgid1_h(tvb, offset, pinfo, tree);
4119
4120   offset=lustre_dissect_element_mdt_rec_unlink_ul_suppgid2(tvb, offset, pinfo, tree);
4121
4122   offset=lustre_dissect_element_mdt_rec_unlink_ul_suppgid2_h(tvb, offset, pinfo, tree);
4123
4124   offset=lustre_dissect_element_mdt_rec_unlink_ul_fid1(tvb, offset, pinfo, tree);
4125
4126   offset=lustre_dissect_element_mdt_rec_unlink_ul_fid2(tvb, offset, pinfo, tree);
4127
4128   offset=lustre_dissect_element_mdt_rec_unlink_ul_time(tvb, offset, pinfo, tree);
4129
4130   offset=lustre_dissect_element_mdt_rec_unlink_ul_padding_2(tvb, offset, pinfo, tree);
4131
4132   offset=lustre_dissect_element_mdt_rec_unlink_ul_padding_3(tvb, offset, pinfo, tree);
4133
4134   offset=lustre_dissect_element_mdt_rec_unlink_ul_padding_4(tvb, offset, pinfo, tree);
4135
4136   offset=lustre_dissect_element_mdt_rec_unlink_ul_padding_5(tvb, offset, pinfo, tree);
4137
4138   offset=lustre_dissect_element_mdt_rec_unlink_ul_bias(tvb, offset, pinfo, tree);
4139
4140   offset=lustre_dissect_element_mdt_rec_unlink_ul_mode(tvb, offset, pinfo, tree);
4141
4142   offset=lustre_dissect_element_mdt_rec_unlink_ul_padding_6(tvb, offset, pinfo, tree);
4143
4144   offset=lustre_dissect_element_mdt_rec_unlink_ul_padding_7(tvb, offset, pinfo, tree);
4145
4146   offset=lustre_dissect_element_mdt_rec_unlink_ul_padding_8(tvb, offset, pinfo, tree);
4147
4148   offset=lustre_dissect_element_mdt_rec_unlink_ul_padding_9(tvb, offset, pinfo, tree);
4149
4150
4151   proto_item_set_len(item, offset-old_offset);
4152
4153   return offset;
4154 }
4155
4156 /* IDL: struct mdt_rec_rename { */
4157 /* IDL:         uint32 rn_opcode; */
4158 /* IDL:         uint32 rn_fsuid; */
4159 /* IDL:         uint32 rn_fsgid; */
4160 /* IDL:         uint32 rn_cap; */
4161 /* IDL:         uint32 rn_suppgid1; */
4162 /* IDL:         uint32 rn_suppgid2; */
4163 /* IDL:         struct ll_fid { */
4164 /* IDL: } rn_fid1; */
4165 /* IDL:         struct ll_fid { */
4166 /* IDL: } rn_fid2; */
4167 /* IDL:         uint64 rn_time; */
4168 /* IDL:         uint32 rn_padding_1; */
4169 /* IDL:         uint32 rn_padding_2; */
4170 /* IDL:         uint32 rn_padding_3; */
4171 /* IDL:         uint32 rn_padding_4; */
4172 /* IDL: } */
4173
4174 static int
4175 lustre_dissect_element_mdt_rec_rename_rn_opcode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
4176 {
4177   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_rename_rn_opcode);
4178
4179   return offset;
4180 }
4181
4182 static int
4183 lustre_dissect_element_mdt_rec_rename_rn_cap(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
4184 {
4185   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_rename_rn_cap);
4186
4187   return offset;
4188 }
4189
4190 static int
4191 lustre_dissect_element_mdt_rec_rename_rn_fsuid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
4192 {
4193   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_rename_rn_fsuid);
4194
4195   return offset;
4196 }
4197
4198 static int
4199 lustre_dissect_element_mdt_rec_rename_rn_fsuid_h(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
4200 {
4201   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_rename_rn_fsuid_h);
4202
4203   return offset;
4204 }
4205
4206 static int
4207 lustre_dissect_element_mdt_rec_rename_rn_fsgid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
4208 {
4209   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_rename_rn_fsgid);
4210
4211   return offset;
4212 }
4213
4214 static int
4215 lustre_dissect_element_mdt_rec_rename_rn_fsgid_h(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
4216 {
4217   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_rename_rn_fsgid_h);
4218
4219   return offset;
4220 }
4221
4222 static int
4223 lustre_dissect_element_mdt_rec_rename_rn_suppgid1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
4224 {
4225   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_rename_rn_suppgid1);
4226
4227   return offset;
4228 }
4229
4230 static int
4231 lustre_dissect_element_mdt_rec_rename_rn_suppgid1_h(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
4232 {
4233   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_rename_rn_suppgid1_h);
4234
4235   return offset;
4236 }
4237
4238 static int
4239 lustre_dissect_element_mdt_rec_rename_rn_suppgid2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
4240 {
4241   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_rename_rn_suppgid2);
4242
4243   return offset;
4244 }
4245
4246 static int
4247 lustre_dissect_element_mdt_rec_rename_rn_suppgid2_h(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
4248 {
4249   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_rename_rn_suppgid2_h);
4250
4251   return offset;
4252 }
4253
4254 static int
4255 lustre_dissect_element_mdt_rec_rename_rn_fid1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
4256 {
4257   offset=lustre_dissect_struct_lu_fid(tvb,offset,pinfo,tree,hf_lustre_mdt_rec_rename_rn_fid1);
4258   return offset;
4259 }
4260
4261 static int
4262 lustre_dissect_element_mdt_rec_rename_rn_fid2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
4263 {
4264   offset=lustre_dissect_struct_lu_fid(tvb,offset,pinfo,tree,hf_lustre_mdt_rec_rename_rn_fid2);
4265   return offset;
4266 }
4267
4268 static int
4269 lustre_dissect_element_mdt_rec_rename_rn_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
4270 {
4271   nstime_t ns;
4272   /* timestamp */
4273   ns.secs = tvb_get_letohl(tvb,offset);
4274   ns.nsecs=0;
4275   proto_tree_add_time(tree, hf_lustre_mdt_rec_rename_rn_time, tvb, offset, 8, &ns );
4276   offset+=8;
4277   return offset;
4278 }
4279
4280 static int
4281 lustre_dissect_element_mdt_rec_rename_rn_padding_1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
4282 {
4283   offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_rename_rn_padding_1);
4284
4285   return offset;
4286 }
4287
4288 static int
4289 lustre_dissect_element_mdt_rec_rename_rn_padding_2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
4290 {
4291   offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_rename_rn_padding_2);
4292
4293   return offset;
4294 }
4295
4296 static int
4297 lustre_dissect_element_mdt_rec_rename_rn_padding_3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
4298 {
4299   offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_rename_rn_padding_3);
4300
4301   return offset;
4302 }
4303
4304 static int
4305 lustre_dissect_element_mdt_rec_rename_rn_padding_4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
4306 {
4307   offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_rename_rn_padding_4);
4308
4309   return offset;
4310 }
4311
4312 static int
4313 lustre_dissect_element_mdt_rec_rename_rn_bias(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
4314 {
4315   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_rename_rn_bias);
4316
4317   return offset;
4318 }
4319
4320 static int
4321 lustre_dissect_element_mdt_rec_rename_rn_mode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
4322 {
4323   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_rename_rn_mode);
4324
4325   return offset;
4326 }
4327
4328 static int
4329 lustre_dissect_element_mdt_rec_rename_rn_padding_5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
4330 {
4331   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_rename_rn_padding_5);
4332
4333   return offset;
4334 }
4335
4336 static int
4337 lustre_dissect_element_mdt_rec_rename_rn_padding_6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
4338 {
4339   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_rename_rn_padding_6);
4340
4341   return offset;
4342 }
4343
4344 static int
4345 lustre_dissect_element_mdt_rec_rename_rn_padding_7(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
4346 {
4347   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_rename_rn_padding_7);
4348
4349   return offset;
4350 }
4351
4352 static int
4353 lustre_dissect_element_mdt_rec_rename_rn_padding_8(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
4354 {
4355   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_rename_rn_padding_8);
4356
4357   return offset;
4358 }
4359
4360 int
4361 lustre_dissect_struct_mdt_rec_rename(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, int hf_index _U_)
4362 {
4363   proto_item *item = NULL;
4364   proto_tree *tree = NULL;
4365   int old_offset;
4366
4367   guint32 rn_opcode ;
4368
4369
4370   old_offset=offset;
4371
4372   if (parent_tree) {
4373     item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
4374     tree = proto_item_add_subtree(item, ett_lustre_mdt_rec_rename);
4375   }
4376
4377   rn_opcode=tvb_get_letohl(tvb,offset);
4378   display_info_fstr(parent_tree->parent, pinfo->cinfo, COL_INFO, "[%s]", val_to_str(rn_opcode, lustre_mds_reint_t_vals, "Unknown rn_opc"));
4379
4380   offset=lustre_dissect_element_mdt_rec_rename_rn_opcode(tvb, offset, pinfo, tree);
4381
4382   offset=lustre_dissect_element_mdt_rec_rename_rn_cap(tvb, offset, pinfo, tree);
4383
4384   offset=lustre_dissect_element_mdt_rec_rename_rn_fsuid(tvb, offset, pinfo, tree);
4385
4386   offset=lustre_dissect_element_mdt_rec_rename_rn_fsuid_h(tvb, offset, pinfo, tree);
4387
4388   offset=lustre_dissect_element_mdt_rec_rename_rn_fsgid(tvb, offset, pinfo, tree);
4389
4390   offset=lustre_dissect_element_mdt_rec_rename_rn_fsgid_h(tvb, offset, pinfo, tree);
4391
4392   offset=lustre_dissect_element_mdt_rec_rename_rn_suppgid1(tvb, offset, pinfo, tree);
4393
4394   offset=lustre_dissect_element_mdt_rec_rename_rn_suppgid1_h(tvb, offset, pinfo, tree);
4395
4396   offset=lustre_dissect_element_mdt_rec_rename_rn_suppgid2(tvb, offset, pinfo, tree);
4397
4398   offset=lustre_dissect_element_mdt_rec_rename_rn_suppgid2_h(tvb, offset, pinfo, tree);
4399
4400   offset=lustre_dissect_element_mdt_rec_rename_rn_fid1(tvb, offset, pinfo, tree);
4401
4402   offset=lustre_dissect_element_mdt_rec_rename_rn_fid2(tvb, offset, pinfo, tree);
4403
4404   offset=lustre_dissect_element_mdt_rec_rename_rn_time(tvb, offset, pinfo, tree);
4405
4406   offset=lustre_dissect_element_mdt_rec_rename_rn_padding_1(tvb, offset, pinfo, tree);
4407
4408   offset=lustre_dissect_element_mdt_rec_rename_rn_padding_2(tvb, offset, pinfo, tree);
4409
4410   offset=lustre_dissect_element_mdt_rec_rename_rn_padding_3(tvb, offset, pinfo, tree);
4411
4412   offset=lustre_dissect_element_mdt_rec_rename_rn_padding_4(tvb, offset, pinfo, tree);
4413
4414   offset=lustre_dissect_element_mdt_rec_rename_rn_bias(tvb, offset, pinfo, tree);
4415
4416   offset=lustre_dissect_element_mdt_rec_rename_rn_mode(tvb, offset, pinfo, tree);
4417
4418   offset=lustre_dissect_element_mdt_rec_rename_rn_padding_5(tvb, offset, pinfo, tree);
4419
4420   offset=lustre_dissect_element_mdt_rec_rename_rn_padding_6(tvb, offset, pinfo, tree);
4421
4422   offset=lustre_dissect_element_mdt_rec_rename_rn_padding_7(tvb, offset, pinfo, tree);
4423
4424   offset=lustre_dissect_element_mdt_rec_rename_rn_padding_8(tvb, offset, pinfo, tree);
4425
4426
4427   proto_item_set_len(item, offset-old_offset);
4428
4429   return offset;
4430 }
4431
4432 /* I don't find where this struct appear on wire.. need to search mdc_setxattr_pack() */
4433 /* IDL: struct mdt_rec_setxattr { */
4434 /* IDL:         uint32 sx_opcode; */
4435 /* IDL:         uint32 sx_cap; */
4436 /* IDL:         uint32 sx_fsuid; */
4437 /* IDL:         uint32 sx_fsuid_h; */
4438 /* IDL:         uint32 sx_fsgid; */
4439 /* IDL:         uint32 sx_fsgid_h; */
4440 /* IDL:         uint32 sx_suppgid1; */
4441 /* IDL:         uint32 sx_suppgid1_h; */
4442 /* IDL:         uint32 sx_suppgid2; */
4443 /* IDL:         uint32 sx_suppgid2_h; */
4444 /* IDL:         struct lu_fid { */
4445 /* IDL: } sx_fid; */
4446 /* IDL:         uint64 sx_padding_1; */
4447 /* IDL:         uint32 sx_padding_2; */
4448 /* IDL:         uint32 sx_padding_3; */
4449 /* IDL:         uint64 sx_valid; */
4450 /* IDL:         uint64 sx_time; */
4451 /* IDL:         uint64 sx_padding_5; */
4452 /* IDL:         uint64 sx_padding_6; */
4453 /* IDL:         uint64 sx_padding_7; */
4454 /* IDL:         uint32 sx_size; */
4455 /* IDL:         uint32 sx_flags; */
4456 /* IDL:         uint32 sx_padding_8; */
4457 /* IDL:         uint32 sx_padding_9; */
4458 /* IDL:         uint32 sx_padding_10; */
4459 /* IDL:         uint32 sx_padding_11; */
4460 /* IDL: } */
4461
4462 static int
4463 lustre_dissect_element_mdt_rec_setxattr_sx_opcode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
4464 {
4465   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_setxattr_sx_opcode);
4466
4467   return offset;
4468 }
4469
4470 static int
4471 lustre_dissect_element_mdt_rec_setxattr_sx_cap(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
4472 {
4473   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_setxattr_sx_cap);
4474
4475   return offset;
4476 }
4477
4478 static int
4479 lustre_dissect_element_mdt_rec_setxattr_sx_fsuid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
4480 {
4481   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_setxattr_sx_fsuid);
4482
4483   return offset;
4484 }
4485
4486 static int
4487 lustre_dissect_element_mdt_rec_setxattr_sx_fsuid_h(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
4488 {
4489   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_setxattr_sx_fsuid_h);
4490
4491   return offset;
4492 }
4493
4494 static int
4495 lustre_dissect_element_mdt_rec_setxattr_sx_fsgid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
4496 {
4497   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_setxattr_sx_fsgid);
4498
4499   return offset;
4500 }
4501
4502 static int
4503 lustre_dissect_element_mdt_rec_setxattr_sx_fsgid_h(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
4504 {
4505   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_setxattr_sx_fsgid_h);
4506
4507   return offset;
4508 }
4509
4510 static int
4511 lustre_dissect_element_mdt_rec_setxattr_sx_suppgid1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
4512 {
4513   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_setxattr_sx_suppgid1);
4514
4515   return offset;
4516 }
4517
4518 static int
4519 lustre_dissect_element_mdt_rec_setxattr_sx_suppgid1_h(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
4520 {
4521   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_setxattr_sx_suppgid1_h);
4522
4523   return offset;
4524 }
4525
4526 static int
4527 lustre_dissect_element_mdt_rec_setxattr_sx_suppgid2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
4528 {
4529   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_setxattr_sx_suppgid2);
4530
4531   return offset;
4532 }
4533
4534 static int
4535 lustre_dissect_element_mdt_rec_setxattr_sx_suppgid2_h(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
4536 {
4537   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_setxattr_sx_suppgid2_h);
4538
4539   return offset;
4540 }
4541
4542 static int
4543 lustre_dissect_element_mdt_rec_setxattr_sx_fid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
4544 {
4545   offset=lustre_dissect_struct_lu_fid(tvb,offset,pinfo,tree,hf_lustre_mdt_rec_setxattr_sx_fid);
4546
4547   return offset;
4548 }
4549
4550 static int
4551 lustre_dissect_element_mdt_rec_setxattr_sx_padding_1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
4552 {
4553   offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_setxattr_sx_padding_1);
4554
4555   return offset;
4556 }
4557
4558 static int
4559 lustre_dissect_element_mdt_rec_setxattr_sx_padding_2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
4560 {
4561   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_setxattr_sx_padding_2);
4562
4563   return offset;
4564 }
4565
4566 static int
4567 lustre_dissect_element_mdt_rec_setxattr_sx_padding_3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
4568 {
4569   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_setxattr_sx_padding_3);
4570
4571   return offset;
4572 }
4573
4574 static int
4575 lustre_dissect_element_mdt_rec_setxattr_sx_valid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
4576 {
4577   offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_setxattr_sx_valid);
4578
4579   return offset;
4580 }
4581
4582 static int
4583 lustre_dissect_element_mdt_rec_setxattr_sx_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
4584 {
4585
4586   nstime_t ns;
4587   /* timestamp */
4588   ns.secs = tvb_get_letohl(tvb,offset);
4589   ns.nsecs=0;
4590   proto_tree_add_time(tree, hf_lustre_mdt_rec_setxattr_sx_time, tvb, offset, 8, &ns );
4591   offset+=8;
4592   return offset;
4593 }
4594
4595 static int
4596 lustre_dissect_element_mdt_rec_setxattr_sx_padding_5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
4597 {
4598   offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_setxattr_sx_padding_5);
4599
4600   return offset;
4601 }
4602
4603 static int
4604 lustre_dissect_element_mdt_rec_setxattr_sx_padding_6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
4605 {
4606   offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_setxattr_sx_padding_6);
4607
4608   return offset;
4609 }
4610
4611 static int
4612 lustre_dissect_element_mdt_rec_setxattr_sx_padding_7(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
4613 {
4614   offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_setxattr_sx_padding_7);
4615
4616   return offset;
4617 }
4618
4619 static int
4620 lustre_dissect_element_mdt_rec_setxattr_sx_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
4621 {
4622   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_setxattr_sx_size);
4623
4624   return offset;
4625 }
4626
4627 static int
4628 lustre_dissect_element_mdt_rec_setxattr_sx_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
4629 {
4630   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_setxattr_sx_flags);
4631
4632   return offset;
4633 }
4634
4635 static int
4636 lustre_dissect_element_mdt_rec_setxattr_sx_padding_8(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
4637 {
4638   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_setxattr_sx_padding_8);
4639
4640   return offset;
4641 }
4642
4643 static int
4644 lustre_dissect_element_mdt_rec_setxattr_sx_padding_9(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
4645 {
4646   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_setxattr_sx_padding_9);
4647
4648   return offset;
4649 }
4650
4651 static int
4652 lustre_dissect_element_mdt_rec_setxattr_sx_padding_10(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
4653 {
4654   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_setxattr_sx_padding_10);
4655
4656   return offset;
4657 }
4658
4659 static int
4660 lustre_dissect_element_mdt_rec_setxattr_sx_padding_11(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
4661 {
4662   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_setxattr_sx_padding_11);
4663
4664   return offset;
4665 }
4666
4667 int
4668 lustre_dissect_struct_mdt_rec_setxattr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, int hf_index _U_)
4669 {
4670   proto_item *item = NULL;
4671   proto_tree *tree = NULL;
4672   int old_offset;
4673
4674   guint32 sx_opcode ;
4675
4676
4677   old_offset=offset;
4678
4679   if (parent_tree) {
4680     item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
4681     tree = proto_item_add_subtree(item, ett_lustre_mdt_rec_setxattr);
4682   }
4683   sx_opcode=tvb_get_letohl(tvb,offset);
4684   display_info_fstr(parent_tree->parent, pinfo->cinfo, COL_INFO, "[%s]", val_to_str(sx_opcode, lustre_mds_reint_t_vals, "Unknown sx_opc"));
4685
4686   offset=lustre_dissect_element_mdt_rec_setxattr_sx_opcode(tvb, offset, pinfo, tree);
4687
4688   offset=lustre_dissect_element_mdt_rec_setxattr_sx_cap(tvb, offset, pinfo, tree);
4689
4690   offset=lustre_dissect_element_mdt_rec_setxattr_sx_fsuid(tvb, offset, pinfo, tree);
4691
4692   offset=lustre_dissect_element_mdt_rec_setxattr_sx_fsuid_h(tvb, offset, pinfo, tree);
4693
4694   offset=lustre_dissect_element_mdt_rec_setxattr_sx_fsgid(tvb, offset, pinfo, tree);
4695
4696   offset=lustre_dissect_element_mdt_rec_setxattr_sx_fsgid_h(tvb, offset, pinfo, tree);
4697
4698   offset=lustre_dissect_element_mdt_rec_setxattr_sx_suppgid1(tvb, offset, pinfo, tree);
4699
4700   offset=lustre_dissect_element_mdt_rec_setxattr_sx_suppgid1_h(tvb, offset, pinfo, tree);
4701
4702   offset=lustre_dissect_element_mdt_rec_setxattr_sx_suppgid2(tvb, offset, pinfo, tree);
4703
4704   offset=lustre_dissect_element_mdt_rec_setxattr_sx_suppgid2_h(tvb, offset, pinfo, tree);
4705
4706   offset=lustre_dissect_element_mdt_rec_setxattr_sx_fid(tvb, offset, pinfo, tree);
4707
4708   offset=lustre_dissect_element_mdt_rec_setxattr_sx_padding_1(tvb, offset, pinfo, tree);
4709
4710   offset=lustre_dissect_element_mdt_rec_setxattr_sx_padding_2(tvb, offset, pinfo, tree);
4711
4712   offset=lustre_dissect_element_mdt_rec_setxattr_sx_padding_3(tvb, offset, pinfo, tree);
4713
4714   offset=lustre_dissect_element_mdt_rec_setxattr_sx_valid(tvb, offset, pinfo, tree);
4715
4716   offset=lustre_dissect_element_mdt_rec_setxattr_sx_time(tvb, offset, pinfo, tree);
4717
4718   offset=lustre_dissect_element_mdt_rec_setxattr_sx_padding_5(tvb, offset, pinfo, tree);
4719
4720   offset=lustre_dissect_element_mdt_rec_setxattr_sx_padding_6(tvb, offset, pinfo, tree);
4721
4722   offset=lustre_dissect_element_mdt_rec_setxattr_sx_padding_7(tvb, offset, pinfo, tree);
4723
4724   offset=lustre_dissect_element_mdt_rec_setxattr_sx_size(tvb, offset, pinfo, tree);
4725
4726   offset=lustre_dissect_element_mdt_rec_setxattr_sx_flags(tvb, offset, pinfo, tree);
4727
4728   offset=lustre_dissect_element_mdt_rec_setxattr_sx_padding_8(tvb, offset, pinfo, tree);
4729
4730   offset=lustre_dissect_element_mdt_rec_setxattr_sx_padding_9(tvb, offset, pinfo, tree);
4731
4732   offset=lustre_dissect_element_mdt_rec_setxattr_sx_padding_10(tvb, offset, pinfo, tree);
4733
4734   offset=lustre_dissect_element_mdt_rec_setxattr_sx_padding_11(tvb, offset, pinfo, tree);
4735
4736
4737   proto_item_set_len(item, offset-old_offset);
4738
4739   return offset;
4740 }
4741
4742
4743 /* TODO : find where this structure appear */
4744
4745 /* IDL: struct lov_desc { */
4746 /* IDL:         uint32 ld_tgt_count; */
4747 /* IDL:         uint32 ld_active_tgt_count; */
4748 /* IDL:         uint32 ld_default_stripe_count; */
4749 /* IDL:         uint32 ld_pattern; */
4750 /* IDL:         uint64 ld_default_stripe_size; */
4751 /* IDL:         uint64 ld_default_stripe_offset; */
4752 /* IDL:         uint32 ld_padding_0; */
4753 /* IDL:         uint32 ld_qos_maxage; */
4754 /* IDL:         uint32 ld_padding_1; */
4755 /* IDL:         uint32 ld_padding_2; */
4756 /* IDL:         struct obd_uuid { */
4757 /* IDL: } ld_uuid; */
4758 /* IDL: } */
4759
4760 static int
4761 lustre_dissect_element_lov_desc_ld_tgt_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
4762 {
4763   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_lov_desc_ld_tgt_count);
4764
4765   return offset;
4766 }
4767
4768 static int
4769 lustre_dissect_element_lov_desc_ld_active_tgt_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
4770 {
4771   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_lov_desc_ld_active_tgt_count);
4772
4773   return offset;
4774 }
4775
4776 static int
4777 lustre_dissect_element_lov_desc_ld_default_stripe_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
4778 {
4779   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_lov_desc_ld_default_stripe_count);
4780
4781   return offset;
4782 }
4783
4784 static int
4785 lustre_dissect_element_lov_desc_ld_pattern(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
4786 {
4787   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_lov_desc_ld_pattern);
4788
4789   return offset;
4790 }
4791
4792 static int
4793 lustre_dissect_element_lov_desc_ld_default_stripe_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
4794 {
4795   offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_lov_desc_ld_default_stripe_size);
4796
4797   return offset;
4798 }
4799
4800 static int
4801 lustre_dissect_element_lov_desc_ld_default_stripe_offset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
4802 {
4803   offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_lov_desc_ld_default_stripe_offset);
4804
4805   return offset;
4806 }
4807
4808 static int
4809 lustre_dissect_element_lov_desc_ld_padding_0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
4810 {
4811   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_lov_desc_ld_padding_0);
4812
4813   return offset;
4814 }
4815
4816 static int
4817 lustre_dissect_element_lov_desc_ld_qos_maxage(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
4818 {
4819   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_lov_desc_ld_qos_maxage);
4820
4821   return offset;
4822 }
4823
4824 static int
4825 lustre_dissect_element_lov_desc_ld_padding_1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
4826 {
4827   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_lov_desc_ld_padding_1);
4828
4829   return offset;
4830 }
4831
4832 static int
4833 lustre_dissect_element_lov_desc_ld_padding_2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
4834 {
4835   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_lov_desc_ld_padding_2);
4836
4837   return offset;
4838 }
4839
4840 static int
4841 lustre_dissect_element_lov_desc_ld_uuid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
4842 {
4843   //offset=lustre_dissect_struct_HASH(0x85bade8)(tvb,offset,pinfo,tree,hf_lustre_lov_desc_ld_uuid);
4844   return offset;
4845 }
4846
4847 int
4848 lustre_dissect_struct_lov_desc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, int hf_index _U_)
4849 {
4850   proto_item *item = NULL;
4851   proto_tree *tree = NULL;
4852   int old_offset;
4853
4854
4855
4856   old_offset=offset;
4857
4858   if (parent_tree) {
4859     item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
4860     tree = proto_item_add_subtree(item, ett_lustre_lov_desc);
4861   }
4862
4863   offset=lustre_dissect_element_lov_desc_ld_tgt_count(tvb, offset, pinfo, tree);
4864
4865   offset=lustre_dissect_element_lov_desc_ld_active_tgt_count(tvb, offset, pinfo, tree);
4866
4867   offset=lustre_dissect_element_lov_desc_ld_default_stripe_count(tvb, offset, pinfo, tree);
4868
4869   offset=lustre_dissect_element_lov_desc_ld_pattern(tvb, offset, pinfo, tree);
4870
4871   offset=lustre_dissect_element_lov_desc_ld_default_stripe_size(tvb, offset, pinfo, tree);
4872
4873   offset=lustre_dissect_element_lov_desc_ld_default_stripe_offset(tvb, offset, pinfo, tree);
4874
4875   offset=lustre_dissect_element_lov_desc_ld_padding_0(tvb, offset, pinfo, tree);
4876
4877   offset=lustre_dissect_element_lov_desc_ld_qos_maxage(tvb, offset, pinfo, tree);
4878
4879   offset=lustre_dissect_element_lov_desc_ld_padding_1(tvb, offset, pinfo, tree);
4880
4881   offset=lustre_dissect_element_lov_desc_ld_padding_2(tvb, offset, pinfo, tree);
4882
4883   offset=lustre_dissect_element_lov_desc_ld_uuid(tvb, offset, pinfo, tree);
4884
4885
4886   proto_item_set_len(item, offset-old_offset);
4887
4888   return offset;
4889 }
4890
4891 /* IDL: struct obd_uuid { */
4892 /*        char uuid[40]; */
4893 /* IDL: } */
4894
4895 static int
4896 lustre_dissect_struct_obd_uuid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, int hf_index _U_)
4897 {
4898
4899   /* the lenght of the string is 40 bytes max, with  \0 inside */
4900
4901   proto_tree_add_item(parent_tree, hf_index, tvb, offset, 40, TRUE);
4902
4903
4904   offset+=40;
4905   return offset;
4906 }
4907
4908
4909
4910 /* IDL: struct ldlm_res_id { */
4911 /* IDL:         uint64 name[4]; */
4912 /* IDL: } */
4913
4914 static int
4915 lustre_dissect_element_ldlm_res_id_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
4916 {
4917   offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_ldlm_res_id_name);
4918
4919   return offset;
4920 }
4921
4922 static int
4923 lustre_dissect_element_ldlm_res_id_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
4924 {
4925   int i;
4926   for (i = 0; i < 4; i++)
4927     offset=lustre_dissect_element_ldlm_res_id_name_(tvb, offset, pinfo, tree);
4928
4929   return offset;
4930 }
4931
4932
4933
4934 int
4935 lustre_dissect_struct_ldlm_res_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, int hf_index _U_)
4936 {
4937   proto_item *item = NULL;
4938   proto_tree *tree = NULL;
4939   int old_offset;
4940
4941
4942
4943   old_offset=offset;
4944
4945   if (parent_tree) {
4946     item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
4947     tree = proto_item_add_subtree(item, ett_lustre_ldlm_res_id);
4948   }
4949
4950   offset=lustre_dissect_element_ldlm_res_id_name(tvb, offset, pinfo, tree);
4951
4952
4953   proto_item_set_len(item, offset-old_offset);
4954
4955   return offset;
4956 }
4957
4958
4959 /* IDL: enum { */
4960 /* IDL:         LCK_MINMODE=0, */
4961 /* IDL:         LCK_EX=1, */
4962 /* IDL:         LCK_PW=2, */
4963 /* IDL:         LCK_PR=4, */
4964 /* IDL:         LCK_CW=8, */
4965 /* IDL:         LCK_CR=16, */
4966 /* IDL:         LCK_NL=32, */
4967 /* IDL:         LCK_GROUP=64, */
4968 /* IDL:         LCK_MAXMODE, */
4969 /* IDL: } */
4970
4971 int
4972 lustre_dissect_enum_ldlm_mode_t(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_)
4973 {
4974   offset=dissect_uint32(tvb, offset, pinfo, tree, hf_index);
4975   return offset;
4976 }
4977
4978
4979 /* IDL: enum { */
4980 /* IDL:         LDLM_PLAIN=10, */
4981 /* IDL:         LDLM_EXTENT=11, */
4982 /* IDL:         LDLM_FLOCK=12, */
4983 /* IDL:         LDLM_IBITS=13, */
4984 /* IDL:         LDLM_MAX_TYPE, */
4985 /* IDL: } */
4986
4987 int
4988 lustre_dissect_enum_ldlm_type_t(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_)
4989 {
4990   offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_resource_desc_lr_type );
4991   return offset;
4992 }
4993
4994 /* IDL: struct ldlm_extent { */
4995 /* IDL:         uint64 start; */
4996 /* IDL:         uint64 end; */
4997 /* IDL:         uint64 gid; */
4998 /* IDL: } */
4999
5000 static int
5001 lustre_dissect_element_ldlm_extent_start(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
5002 {
5003   offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_ldlm_extent_start);
5004
5005   return offset;
5006 }
5007
5008 static int
5009 lustre_dissect_element_ldlm_extent_end(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
5010 {
5011   offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_ldlm_extent_end);
5012
5013   return offset;
5014 }
5015
5016 static int
5017 lustre_dissect_element_ldlm_extent_gid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
5018 {
5019   offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_ldlm_extent_gid);
5020
5021   return offset;
5022 }
5023
5024 int
5025 lustre_dissect_struct_ldlm_extent(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, int hf_index _U_)
5026 {
5027   proto_item *item = NULL;
5028   proto_tree *tree = NULL;
5029   int old_offset;
5030
5031
5032
5033   old_offset=offset;
5034
5035   if (parent_tree) {
5036     item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
5037     tree = proto_item_add_subtree(item, ett_lustre_ldlm_extent);
5038   }
5039
5040   offset=lustre_dissect_element_ldlm_extent_start(tvb, offset, pinfo, tree);
5041
5042   offset=lustre_dissect_element_ldlm_extent_end(tvb, offset, pinfo, tree);
5043
5044   offset=lustre_dissect_element_ldlm_extent_gid(tvb, offset, pinfo, tree);
5045
5046
5047   proto_item_set_len(item, offset-old_offset);
5048
5049   return offset;
5050 }
5051
5052 /* IDL: struct ldlm_inodebits { */
5053 /* IDL:         uint64 bits; */
5054 /* IDL: } */
5055
5056 static int
5057 lustre_dissect_element_ldlm_inodebits_bits(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
5058 {
5059   offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_ldlm_inodebits_bits);
5060
5061   return offset;
5062 }
5063
5064 int
5065 lustre_dissect_struct_ldlm_inodebits(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, int hf_index _U_)
5066 {
5067   proto_item *item = NULL;
5068   proto_tree *tree = NULL;
5069   int old_offset;
5070
5071
5072
5073   old_offset=offset;
5074
5075   if (parent_tree) {
5076     item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
5077     tree = proto_item_add_subtree(item, ett_lustre_ldlm_inodebits);
5078   }
5079
5080   offset=lustre_dissect_element_ldlm_inodebits_bits(tvb, offset, pinfo, tree);
5081
5082
5083   proto_item_set_len(item, offset-old_offset);
5084
5085   return offset;
5086 }
5087
5088 /* IDL: struct ldlm_flock { */
5089 /* IDL:         uint64 start; */
5090 /* IDL:         uint64 end; */
5091 /* IDL:         uint64 blocking_export; */
5092 /* IDL:         uint32 blocking_pid; */
5093 /* IDL:         uint32 pid; */
5094 /* IDL: } */
5095
5096 static int
5097 lustre_dissect_element_ldlm_flock_start(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
5098 {
5099   offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_ldlm_flock_start);
5100
5101   return offset;
5102 }
5103
5104 static int
5105 lustre_dissect_element_ldlm_flock_end(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
5106 {
5107   offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_ldlm_flock_end);
5108
5109   return offset;
5110 }
5111
5112 static int
5113 lustre_dissect_element_ldlm_flock_blocking_export(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
5114 {
5115   offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_ldlm_flock_blocking_export);
5116
5117   return offset;
5118 }
5119
5120 static int
5121 lustre_dissect_element_ldlm_flock_blocking_pid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
5122 {
5123   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_ldlm_flock_blocking_pid);
5124
5125   return offset;
5126 }
5127
5128 static int
5129 lustre_dissect_element_ldlm_flock_pid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
5130 {
5131   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_ldlm_flock_pid);
5132
5133   return offset;
5134 }
5135
5136 int
5137 lustre_dissect_struct_ldlm_flock(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, int hf_index _U_)
5138 {
5139   proto_item *item = NULL;
5140   proto_tree *tree = NULL;
5141   int old_offset;
5142
5143
5144
5145   old_offset=offset;
5146
5147   if (parent_tree) {
5148     item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
5149     tree = proto_item_add_subtree(item, ett_lustre_ldlm_flock);
5150   }
5151
5152   offset=lustre_dissect_element_ldlm_flock_start(tvb, offset, pinfo, tree);
5153
5154   offset=lustre_dissect_element_ldlm_flock_end(tvb, offset, pinfo, tree);
5155
5156   offset=lustre_dissect_element_ldlm_flock_blocking_export(tvb, offset, pinfo, tree);
5157
5158   offset=lustre_dissect_element_ldlm_flock_blocking_pid(tvb, offset, pinfo, tree);
5159
5160   offset=lustre_dissect_element_ldlm_flock_pid(tvb, offset, pinfo, tree);
5161
5162
5163   proto_item_set_len(item, offset-old_offset);
5164
5165   return offset;
5166 }
5167
5168 /* IDL: struct ldlm_intent { */
5169 /* IDL:         uint64 opc; */
5170 /* IDL: } */
5171
5172 static int
5173 lustre_dissect_element_ldlm_intent_opc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
5174 {
5175   guint32 opcode;
5176   /* this opcode is like a flag*/
5177   dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_intent_opc_open    );
5178   dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_intent_opc_creat   );
5179   dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_intent_opc_readdir );
5180   dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_intent_opc_getattr );
5181   dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_intent_opc_lookup  );
5182   dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_intent_opc_unlink  );
5183   dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_intent_opc_getxattr);
5184   dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_intent_opc_exec    );
5185   dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_intent_opc_pin     );
5186   opcode = tvb_get_letohl(tvb,offset);
5187
5188   display_info_str(tree->parent, pinfo->cinfo, COL_INFO, "[ intent :");
5189   if(opcode & IT_OPEN    ){
5190     display_info_str(tree->parent, pinfo->cinfo, COL_INFO, " open");
5191     proto_item_append_text(tree, " open" );
5192   }
5193   if(opcode & IT_CREAT   ){
5194     display_info_str(tree->parent, pinfo->cinfo, COL_INFO, " create");
5195     proto_item_append_text(tree, " create" );
5196   }
5197   if(opcode & IT_READDIR ){
5198     display_info_str(tree->parent, pinfo->cinfo, COL_INFO, " readdir");
5199     proto_item_append_text(tree, " readdir" );
5200   }
5201   if(opcode & IT_GETATTR ){
5202     display_info_str(tree->parent, pinfo->cinfo, COL_INFO, " getattr");
5203     proto_item_append_text(tree, " getattr" );
5204   }
5205   if(opcode & IT_LOOKUP  ){
5206     display_info_str(tree->parent, pinfo->cinfo, COL_INFO, " lookup");
5207     proto_item_append_text(tree, " lookup" );
5208   }
5209   if(opcode & IT_UNLINK  ){
5210     display_info_str(tree->parent, pinfo->cinfo, COL_INFO, " unlink");
5211     proto_item_append_text(tree, " unlink" );
5212   }
5213   if(opcode & IT_GETXATTR){
5214     display_info_str(tree->parent, pinfo->cinfo, COL_INFO, " getxattr");
5215     proto_item_append_text(tree, " getxattr" );
5216   }
5217   if(opcode & IT_EXEC    ){
5218     display_info_str(tree->parent, pinfo->cinfo, COL_INFO, " exec");
5219     proto_item_append_text(tree, " exec" );
5220   }
5221   if(opcode & IT_PIN     ){
5222     display_info_str(tree->parent, pinfo->cinfo, COL_INFO, " pin");
5223     proto_item_append_text(tree, " pin" );
5224   }
5225
5226   display_info_str(tree->parent, pinfo->cinfo, COL_INFO, " ]");
5227   offset+=8;
5228   return offset;
5229 }
5230
5231 int
5232 lustre_dissect_struct_ldlm_intent(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, int hf_index _U_)
5233 {
5234   // proto_item *item = NULL;
5235   //proto_tree *tree = NULL;
5236   int old_offset;
5237   guint64 intent_opc;
5238   proto_item * opcode_item = NULL;
5239   proto_tree * opcode_tree = NULL;
5240
5241   old_offset=offset;
5242   // if (parent_tree) {
5243   //     item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
5244   //     tree = proto_item_add_subtree(item, ett_lustre_ldlm_intent);
5245   //     //tree = parent_tree; /* TODO : !!!!!!!!!!!!!!! ATTENTIon Ã  revoir,
5246   //     //fait rapidement pour ne pas avoir le subtree */
5247   // }
5248
5249
5250   intent_opc = tvb_get_letoh64(tvb,offset);
5251   if (parent_tree){
5252     opcode_item = proto_tree_add_item(parent_tree, hf_lustre_ldlm_intent_opc, tvb, offset, 8, TRUE);
5253     opcode_tree = proto_item_add_subtree(opcode_item, ett_lustre_ldlm_intent_opc);
5254   }
5255
5256   offset=lustre_dissect_element_ldlm_intent_opc(tvb, offset, pinfo, opcode_tree);
5257
5258   offset=ldlm_opcode_process(tvb, offset, pinfo, parent_tree, intent_opc);
5259
5260
5261
5262   return offset;
5263 }
5264
5265 /* IDL: struct ldlm_resource_desc { */
5266 /* IDL:         ldlm_type_t lr_type; */
5267 /* IDL:         uint32 lr_padding; */
5268 /* IDL:         struct ldlm_res_id { */
5269 /* IDL: } lr_name; */
5270 /* IDL: } */
5271
5272 static int
5273 lustre_dissect_element_ldlm_resource_desc_lr_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
5274 {
5275   /*    offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_ldlm_resource_desc_lr_type);*/
5276   offset=lustre_dissect_enum_ldlm_type_t(tvb, offset, pinfo, tree,  hf_lustre_ldlm_resource_desc_lr_type);
5277   return offset;
5278 }
5279
5280 static int
5281 lustre_dissect_element_ldlm_resource_desc_lr_padding(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
5282 {
5283   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_ldlm_resource_desc_lr_padding);
5284
5285   return offset;
5286 }
5287
5288 static int
5289 lustre_dissect_element_ldlm_resource_desc_lr_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
5290 {
5291   offset=lustre_dissect_struct_ldlm_res_id(tvb,offset,pinfo,tree,hf_lustre_ldlm_resource_desc_lr_name);
5292   return offset;
5293 }
5294
5295 int
5296 lustre_dissect_struct_ldlm_resource_desc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, int hf_index _U_)
5297 {
5298   proto_item *item = NULL;
5299   proto_tree *tree = NULL;
5300   int old_offset;
5301
5302
5303
5304   old_offset=offset;
5305
5306   if (parent_tree) {
5307     item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
5308     tree = proto_item_add_subtree(item, ett_lustre_ldlm_resource_desc);
5309   }
5310
5311   offset=lustre_dissect_element_ldlm_resource_desc_lr_type(tvb, offset, pinfo, tree);
5312
5313   offset=lustre_dissect_element_ldlm_resource_desc_lr_padding(tvb, offset, pinfo, tree);
5314
5315   offset=lustre_dissect_element_ldlm_resource_desc_lr_name(tvb, offset, pinfo, tree);
5316
5317
5318   proto_item_set_len(item, offset-old_offset);
5319
5320   return offset;
5321 }
5322
5323
5324 /* IDL: struct ldlm_lock_desc { */
5325 /* IDL:         struct ldlm_resource_desc { */
5326 /* IDL: } l_resource; */
5327 /* IDL:         ldlm_mode_t l_req_mode; */
5328 /* IDL:         ldlm_mode_t l_granted_mode; */
5329 /* IDL:         ldlm_policy_data_t l_policy_data; */
5330 /* IDL: } */
5331
5332 static int
5333 lustre_dissect_element_ldlm_lock_desc_l_resource(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
5334 {
5335   offset=lustre_dissect_struct_ldlm_resource_desc(tvb,offset,pinfo,tree,hf_lustre_ldlm_lock_desc_l_resource);
5336   return offset;
5337 }
5338
5339 static int
5340 lustre_dissect_element_ldlm_lock_desc_l_req_mode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
5341 {
5342   offset=lustre_dissect_enum_ldlm_mode_t(tvb, offset, pinfo, tree,  hf_lustre_ldlm_lock_desc_l_req_mode);
5343
5344   return offset;
5345 }
5346
5347 static int
5348 lustre_dissect_element_ldlm_lock_desc_l_granted_mode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
5349 {
5350   offset=lustre_dissect_enum_ldlm_mode_t(tvb, offset, pinfo, tree,  hf_lustre_ldlm_lock_desc_l_granted_mode);
5351
5352   return offset;
5353 }
5354
5355 static int
5356 lustre_dissect_element_ldlm_lock_desc_l_policy_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
5357 {
5358
5359   guint32 lr_type; /* type of the lock */
5360
5361   lr_type = tvb_get_letohl(tvb,offset - 48 ); /* TODO  : find another way that using -48 */
5362
5363   /* this section must be check with lustre code, possible mistake here */
5364   switch(lr_type){
5365     case LDLM_PLAIN:
5366     case LDLM_FLOCK:
5367       offset=lustre_dissect_struct_ldlm_flock(tvb,offset,pinfo,tree,hf_lustre_ldlm_lock_desc_l_policy_data);
5368       break;
5369     case LDLM_EXTENT :
5370       offset= lustre_dissect_struct_ldlm_extent(tvb,offset,pinfo,tree,hf_lustre_ldlm_lock_desc_l_policy_data);
5371       /* add an extra padding 8 bytes */
5372       offset=dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_extra_padding);
5373       break;
5374     case LDLM_IBITS:
5375       offset=lustre_dissect_struct_ldlm_inodebits(tvb,offset,pinfo,tree,hf_lustre_ldlm_lock_desc_l_policy_data);
5376       /* add an extra padding 24 bytes */
5377       offset=dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_extra_padding);
5378       offset=dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_extra_padding);
5379       offset=dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_extra_padding);
5380       break;
5381     default:
5382       offset=dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_extra_padding);
5383       offset=dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_extra_padding);
5384       offset=dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_extra_padding);
5385       offset=dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_extra_padding);
5386       break;
5387   }
5388   return offset;
5389 }
5390
5391 int
5392 lustre_dissect_struct_ldlm_lock_desc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, int hf_index _U_)
5393 {
5394   proto_item *item = NULL;
5395   proto_tree *tree = NULL;
5396   int old_offset;
5397
5398   guint32 lock_req_mode;
5399
5400
5401   old_offset=offset;
5402
5403   if (parent_tree) {
5404     item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
5405     tree = proto_item_add_subtree(item, ett_lustre_ldlm_lock_desc);
5406   }
5407
5408   offset=lustre_dissect_element_ldlm_lock_desc_l_resource(tvb, offset, pinfo, tree);
5409
5410   lock_req_mode = tvb_get_letohl(tvb,offset);
5411
5412   display_info_fstr(parent_tree->parent, pinfo->cinfo, COL_INFO, "[%s]", val_to_str(lock_req_mode, lustre_ldlm_mode_t_vals, "Unknown lock"));
5413
5414   offset=lustre_dissect_element_ldlm_lock_desc_l_req_mode(tvb, offset, pinfo, tree);
5415
5416   offset=lustre_dissect_element_ldlm_lock_desc_l_granted_mode(tvb, offset, pinfo, tree);
5417
5418   offset=lustre_dissect_element_ldlm_lock_desc_l_policy_data(tvb, offset, pinfo, tree);
5419
5420
5421   proto_item_set_len(item, offset-old_offset);
5422
5423   return offset;
5424 }
5425
5426
5427 /* IDL: struct ldlm_request { */
5428 /* IDL:         uint32 lock_flags; */
5429 /* IDL:         uint32 lock_count; */
5430 /* IDL:         struct ldlm_lock_desc { */
5431 /* IDL: } lock_desc; */
5432 /* IDL:         struct lustre_handle { */
5433 /* IDL: } lock_handle[2]; */
5434 /* IDL: } */
5435
5436
5437
5438 static int
5439 lustre_dissect_element_ldlm_request_lock_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
5440 {
5441   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_ldlm_request_lock_count);
5442
5443   return offset;
5444 }
5445
5446 static int
5447 lustre_dissect_element_ldlm_request_lock_desc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
5448 {
5449   offset=lustre_dissect_struct_ldlm_lock_desc(tvb,offset,pinfo,tree,hf_lustre_ldlm_request_lock_desc);
5450   return offset;
5451 }
5452
5453
5454
5455 static int
5456 lustre_dissect_element_ldlm_request_lock_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
5457 {
5458   /*if (check_col(pinfo->cinfo, COL_INFO)) */
5459   /*    col_append_fstr(pinfo->cinfo, COL_INFO, " ldlm cookie : %" G_GINT64_MODIFIER "u", tvb_get_letoh64(tvb,offset) );*/
5460
5461   offset=lustre_dissect_struct_handle_cookie(tvb,offset,pinfo,tree,hf_lustre_ldlm_request_lock_handle);
5462   return offset;
5463 }
5464
5465 static int
5466 lustre_dissect_element_ldlm_request_lock_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
5467 {
5468   int i;
5469   for (i = 0; i < 2; i++)
5470     offset=lustre_dissect_element_ldlm_request_lock_handle_(tvb, offset, pinfo, tree);
5471
5472   return offset;
5473 }
5474
5475 int
5476 lustre_dissect_struct_ldlm_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, int hf_index _U_)
5477 {
5478   proto_item *item = NULL;
5479   proto_tree *tree = NULL;
5480   int old_offset;
5481   guint32 lock_flag ;
5482   guint32 ldlm_type;
5483
5484   old_offset=offset;
5485
5486   if (parent_tree) {
5487     item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
5488     tree = proto_item_add_subtree(item, ett_lustre_ldlm_request);
5489   }
5490
5491   lock_flag = tvb_get_letohl(tvb,offset);
5492   offset=lustre_dissect_element_ldlm_lock_flags(tvb, offset, pinfo, tree, hf_lustre_ldlm_request_lock_flags);
5493
5494   offset=lustre_dissect_element_ldlm_request_lock_count(tvb, offset, pinfo, tree);
5495
5496   /* ldlm_type = (EXTENT, PLAIN, ou IBITS) */
5497   ldlm_type = tvb_get_letohl(tvb,offset);
5498   offset=lustre_dissect_element_ldlm_request_lock_desc(tvb, offset, pinfo, tree);
5499   offset=lustre_dissect_element_ldlm_request_lock_handle(tvb, offset, pinfo, tree);
5500
5501   proto_item_set_len(item, offset-old_offset);
5502
5503   return offset;
5504 }
5505
5506
5507
5508
5509 /* IDL: struct ldlm_reply { */
5510 /* IDL:         uint32 lock_flags; */
5511 /* IDL:         uint32 lock_padding; */
5512 /* IDL:         struct ldlm_lock_desc { */
5513 /* IDL: } lock_desc; */
5514 /* IDL:         struct lustre_handle { */
5515 /* IDL: } lock_handle; */
5516 /* IDL:         uint64 lock_policy_res1; */
5517 /* IDL:         uint64 lock_policy_res2; */
5518 /* IDL: } */
5519
5520
5521 static int
5522 lustre_dissect_element_ldlm_lock_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, int hf_index _U_)
5523 {
5524   proto_item *item = NULL;
5525   proto_tree *tree = NULL;
5526
5527   if (parent_tree) {
5528     item = proto_tree_add_item(parent_tree,hf_index, tvb, offset, 4, TRUE);
5529     tree = proto_item_add_subtree(item, ett_lustre_ldlm_lock_flags);
5530   }
5531   dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_ast_discard_data);
5532   dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_fl_deny_on_contention);
5533   dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_fl_bl_done           );
5534   dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_fl_bl_ast            );
5535   dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_fl_atomic_cb         );
5536   dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_fl_cleaned           );
5537   dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_fl_cp_reqd           );
5538   dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_fl_cancel_on_block   );
5539   dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_fl_no_lru            );
5540   dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_fl_kms_ignore        );
5541   dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_fl_lvb_ready         );
5542   dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_fl_test_lock         );
5543   dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_fl_block_nowait      );
5544   dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_fl_no_timeout        );
5545   dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_fl_discard_data      );
5546   dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_fl_warn              );
5547   dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_fl_local             );
5548   dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_fl_canceling         );
5549   dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_fl_has_intent        );
5550   dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_fl_failed            );
5551   dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_fl_local_only        );
5552   dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_fl_intent_only       );
5553   dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_fl_replay            );
5554   dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_fl_cancel            );
5555   dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_fl_wait_noreproc     );
5556   dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_fl_ast_sent          );
5557   dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_fl_cbpending         );
5558   dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_fl_block_wait        );
5559   dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_fl_block_conv        );
5560   dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_fl_block_granted     );
5561   offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_fl_lock_changed      );
5562   return offset;
5563 }
5564
5565 static int
5566 lustre_dissect_element_ldlm_reply_lock_padding(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
5567 {
5568   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_ldlm_reply_lock_padding);
5569
5570   return offset;
5571 }
5572
5573 static int
5574 lustre_dissect_element_ldlm_reply_lock_desc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
5575 {
5576   offset=lustre_dissect_struct_ldlm_lock_desc(tvb,offset,pinfo,tree,hf_lustre_ldlm_reply_lock_desc);
5577   return offset;
5578 }
5579
5580 static int
5581 lustre_dissect_element_ldlm_reply_lock_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
5582 {
5583   /*if (check_col(pinfo->cinfo, COL_INFO)) */
5584   /*        col_append_fstr(pinfo->cinfo, COL_INFO, " ldlm cookie : %" G_GINT64_MODIFIER "u", tvb_get_letoh64(tvb,offset) );*/
5585
5586   offset=lustre_dissect_struct_handle_cookie(tvb,offset,pinfo,tree,hf_lustre_ldlm_reply_lock_handle);
5587   return offset;
5588 }
5589
5590 static int
5591 lustre_dissect_element_ldlm_reply_lock_policy_res1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
5592 {
5593   offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_ldlm_reply_lock_policy_res1);
5594
5595   return offset;
5596 }
5597
5598 static int
5599 lustre_dissect_element_ldlm_reply_lock_policy_res2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
5600 {
5601   offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_ldlm_reply_lock_policy_res2);
5602
5603   return offset;
5604 }
5605
5606 int
5607 lustre_dissect_struct_ldlm_reply(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, int hf_index _U_, guint32 * ldlm_type _U_ )
5608 {
5609   proto_item *item = NULL;
5610   proto_tree *tree = NULL;
5611   int old_offset;
5612
5613   guint32 lock_flag ;
5614
5615   old_offset=offset;
5616
5617   if (parent_tree) {
5618     item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
5619     tree = proto_item_add_subtree(item, ett_lustre_ldlm_reply);
5620   }
5621
5622   lock_flag = tvb_get_letohl(tvb,offset);
5623   offset=lustre_dissect_element_ldlm_lock_flags(tvb, offset, pinfo, tree, hf_lustre_ldlm_reply_lock_flags);
5624
5625   offset=lustre_dissect_element_ldlm_reply_lock_padding(tvb, offset, pinfo, tree);
5626
5627   if (ldlm_type != NULL)
5628     *ldlm_type = tvb_get_letohl(tvb,offset);
5629   offset=lustre_dissect_element_ldlm_reply_lock_desc(tvb, offset, pinfo, tree);
5630
5631   offset=lustre_dissect_element_ldlm_reply_lock_handle(tvb, offset, pinfo, tree);
5632
5633   offset=lustre_dissect_element_ldlm_reply_lock_policy_res1(tvb, offset, pinfo, tree);
5634
5635   offset=lustre_dissect_element_ldlm_reply_lock_policy_res2(tvb, offset, pinfo, tree);
5636
5637   proto_item_set_len(item, offset-old_offset);
5638
5639   return offset;
5640 }
5641
5642
5643
5644
5645 /* IDL: struct mgs_send_param { */
5646 /* IDL:         uint8 mgs_param[1024]; */
5647 /* IDL: } */
5648
5649
5650
5651 static int
5652 lustre_dissect_element_mgs_send_param_mgs_param_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
5653 {
5654   offset=dissect_uint8(tvb, offset, pinfo, tree,  hf_lustre_mgs_send_param_mgs_param);
5655
5656   return offset;
5657 }
5658
5659 static int
5660 lustre_dissect_element_mgs_send_param_mgs_param(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
5661 {
5662   int i;
5663   for (i = 0; i < 1024; i++)
5664     offset=lustre_dissect_element_mgs_send_param_mgs_param_(tvb, offset, pinfo, tree);
5665
5666   return offset;
5667 }
5668
5669 int
5670 lustre_dissect_struct_mgs_send_param(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, int hf_index _U_)
5671 {
5672   proto_item *item = NULL;
5673   proto_tree *tree = NULL;
5674   int old_offset;
5675
5676
5677   old_offset=offset;
5678
5679   if (parent_tree) {
5680     item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
5681     tree = proto_item_add_subtree(item, ett_lustre_mgs_send_param);
5682   }
5683
5684   offset=lustre_dissect_element_mgs_send_param_mgs_param(tvb, offset, pinfo, tree);
5685
5686
5687   proto_item_set_len(item, offset-old_offset);
5688
5689   return offset;
5690 }
5691
5692 /* IDL: struct mgs_target_info { */
5693 /* IDL:         uint32 mti_lustre_ver; */
5694 /* IDL:         uint32 mti_stripe_index; */
5695 /* IDL:         uint32 mti_config_ver; */
5696 /* IDL:         uint32 mti_flags; */
5697 /* IDL:         uint32 mti_nid_count; */
5698 /* IDL:         uint32 padding; */
5699 /* IDL:         uint8 mti_fsname[64]; */
5700 /* IDL:         uint8 mti_svname[64]; */
5701 /* IDL:         uint8 mti_uuid[40]; */
5702 /* IDL:         uint64 mti_nids[32]; */
5703 /* IDL:         uint8 mti_params[4096]; */
5704 /* IDL: } */
5705
5706 static int
5707 lustre_dissect_element_mgs_target_info_mti_lustre_ver(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
5708 {
5709   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mgs_target_info_mti_lustre_ver);
5710
5711   return offset;
5712 }
5713
5714 static int
5715 lustre_dissect_element_mgs_target_info_mti_stripe_index(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
5716 {
5717   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mgs_target_info_mti_stripe_index);
5718
5719   return offset;
5720 }
5721
5722 static int
5723 lustre_dissect_element_mgs_target_info_mti_config_ver(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
5724 {
5725   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mgs_target_info_mti_config_ver);
5726
5727   return offset;
5728 }
5729
5730 static int
5731 lustre_dissect_element_mgs_target_info_mti_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
5732 {
5733   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mgs_target_info_mti_flags);
5734
5735   return offset;
5736 }
5737
5738 static int
5739 lustre_dissect_element_mgs_target_info_mti_nid_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
5740 {
5741   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mgs_target_info_mti_nid_count);
5742
5743   return offset;
5744 }
5745
5746 static int
5747 lustre_dissect_element_mgs_target_info_padding(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
5748 {
5749   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mgs_target_info_padding);
5750
5751   return offset;
5752 }
5753
5754 static int
5755 lustre_dissect_element_mgs_target_info_mti_fsname_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
5756 {
5757   offset=dissect_uint8(tvb, offset, pinfo, tree,  hf_lustre_mgs_target_info_mti_fsname);
5758
5759   return offset;
5760 }
5761
5762 static int
5763 lustre_dissect_element_mgs_target_info_mti_fsname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
5764 {
5765   int i;
5766   for (i = 0; i < 64; i++)
5767     offset=lustre_dissect_element_mgs_target_info_mti_fsname_(tvb, offset, pinfo, tree);
5768
5769   return offset;
5770 }
5771
5772
5773
5774
5775
5776 static int
5777 lustre_dissect_element_mgs_target_info_mti_svname_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
5778 {
5779   offset=dissect_uint8(tvb, offset, pinfo, tree,  hf_lustre_mgs_target_info_mti_svname);
5780
5781   return offset;
5782 }
5783
5784 static int
5785 lustre_dissect_element_mgs_target_info_mti_svname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
5786 {
5787   int i;
5788   for (i = 0; i < 64; i++)
5789     offset=lustre_dissect_element_mgs_target_info_mti_svname_(tvb, offset, pinfo, tree);
5790
5791   return offset;
5792 }
5793
5794 static int
5795 lustre_dissect_element_mgs_target_info_mti_uuid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
5796 {
5797   offset=dissect_uint8(tvb, offset, pinfo, tree,  hf_lustre_mgs_target_info_mti_uuid);
5798
5799   return offset;
5800 }
5801
5802 static int
5803 lustre_dissect_element_mgs_target_info_mti_uuid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
5804 {
5805   int i;
5806   for (i = 0; i < 40; i++)
5807     offset=lustre_dissect_element_mgs_target_info_mti_uuid_(tvb, offset, pinfo, tree);
5808
5809   return offset;
5810 }
5811
5812
5813
5814
5815
5816 static int
5817 lustre_dissect_element_mgs_target_info_mti_nids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
5818 {
5819   offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_mgs_target_info_mti_nids);
5820
5821   return offset;
5822 }
5823
5824 static int
5825 lustre_dissect_element_mgs_target_info_mti_nids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
5826 {
5827   int i;
5828   for (i = 0; i < 32; i++)
5829     offset=lustre_dissect_element_mgs_target_info_mti_nids_(tvb, offset, pinfo, tree);
5830
5831   return offset;
5832 }
5833
5834
5835
5836 static int
5837 lustre_dissect_element_mgs_target_info_mti_params_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
5838 {
5839   offset=dissect_uint8(tvb, offset, pinfo, tree,  hf_lustre_mgs_target_info_mti_params);
5840
5841   return offset;
5842 }
5843
5844 static int
5845 lustre_dissect_element_mgs_target_info_mti_params(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
5846 {
5847   int i;
5848   for (i = 0; i < 4096; i++)
5849     offset=lustre_dissect_element_mgs_target_info_mti_params_(tvb, offset, pinfo, tree);
5850
5851   return offset;
5852 }
5853
5854 int
5855 lustre_dissect_struct_mgs_target_info(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, int hf_index _U_)
5856 {
5857   proto_item *item = NULL;
5858   proto_tree *tree = NULL;
5859   int old_offset;
5860
5861
5862
5863   old_offset=offset;
5864
5865   if (parent_tree) {
5866     item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
5867     tree = proto_item_add_subtree(item, ett_lustre_mgs_target_info);
5868   }
5869
5870   offset=lustre_dissect_element_mgs_target_info_mti_lustre_ver(tvb, offset, pinfo, tree);
5871
5872   offset=lustre_dissect_element_mgs_target_info_mti_stripe_index(tvb, offset, pinfo, tree);
5873
5874   offset=lustre_dissect_element_mgs_target_info_mti_config_ver(tvb, offset, pinfo, tree);
5875
5876   offset=lustre_dissect_element_mgs_target_info_mti_flags(tvb, offset, pinfo, tree);
5877
5878   offset=lustre_dissect_element_mgs_target_info_mti_nid_count(tvb, offset, pinfo, tree);
5879
5880   offset=lustre_dissect_element_mgs_target_info_padding(tvb, offset, pinfo, tree);
5881
5882   offset=lustre_dissect_element_mgs_target_info_mti_fsname(tvb, offset, pinfo, tree);
5883
5884   offset=lustre_dissect_element_mgs_target_info_mti_svname(tvb, offset, pinfo, tree);
5885
5886   offset=lustre_dissect_element_mgs_target_info_mti_uuid(tvb, offset, pinfo, tree);
5887
5888   offset=lustre_dissect_element_mgs_target_info_mti_nids(tvb, offset, pinfo, tree);
5889
5890   offset=lustre_dissect_element_mgs_target_info_mti_params(tvb, offset, pinfo, tree);
5891
5892
5893   proto_item_set_len(item, offset-old_offset);
5894
5895   return offset;
5896 }
5897
5898 /* IDL: struct cfg_marker { */
5899 /* IDL:         uint32 cm_step; */
5900 /* IDL:         uint32 cm_flags; */
5901 /* IDL:         uint32 cm_vers; */
5902 /* IDL:         uint32 padding; */
5903 /* IDL:         time_t cm_createtime; */
5904 /* IDL:         time_t cm_canceltime; */
5905 /* IDL:         uint8 cm_tgtname[64]; */
5906 /* IDL:         uint8 cm_comment[64]; */
5907 /* IDL: } */
5908
5909 static int
5910 lustre_dissect_element_cfg_marker_cm_step(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
5911 {
5912   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_cfg_marker_cm_step);
5913
5914   return offset;
5915 }
5916
5917 static int
5918 lustre_dissect_element_cfg_marker_cm_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
5919 {
5920   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_cfg_marker_cm_flags);
5921
5922   return offset;
5923 }
5924
5925 static int
5926 lustre_dissect_element_cfg_marker_cm_vers(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
5927 {
5928   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_cfg_marker_cm_vers);
5929
5930   return offset;
5931 }
5932
5933 static int
5934 lustre_dissect_element_cfg_marker_padding(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
5935 {
5936   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_cfg_marker_padding);
5937
5938   return offset;
5939 }
5940
5941 static int
5942 lustre_dissect_element_cfg_marker_cm_createtime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
5943 {
5944   //offset=dissect_ndr_time_t(tvb, offset, pinfo,tree,  hf_lustre_cfg_marker_cm_createtime );
5945   /*g_print("function lustre_dissect_element_cfg_marker_cm_createtime don't work\n");*/
5946   return offset;
5947 }
5948
5949 static int
5950 lustre_dissect_element_cfg_marker_cm_canceltime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
5951 {
5952   //offset=dissect_ndr_time_t(tvb, offset, pinfo,tree,  hf_lustre_cfg_marker_cm_canceltime);
5953
5954   /*g_print("element_cfg_marker_cm_canceltime\n");*/
5955   return offset;
5956 }
5957
5958
5959
5960 static int
5961 lustre_dissect_element_cfg_marker_cm_tgtname_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
5962 {
5963   offset=dissect_uint8(tvb, offset, pinfo, tree,  hf_lustre_cfg_marker_cm_tgtname);
5964
5965   return offset;
5966 }
5967
5968 static int
5969 lustre_dissect_element_cfg_marker_cm_tgtname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
5970 {
5971   int i;
5972   for (i = 0; i < 64; i++)
5973     offset=lustre_dissect_element_cfg_marker_cm_tgtname_(tvb, offset, pinfo, tree);
5974
5975   return offset;
5976 }
5977
5978
5979
5980 static int
5981 lustre_dissect_element_cfg_marker_cm_comment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
5982 {
5983   offset=dissect_uint8(tvb, offset, pinfo, tree,  hf_lustre_cfg_marker_cm_comment);
5984
5985   return offset;
5986 }
5987
5988 static int
5989 lustre_dissect_element_cfg_marker_cm_comment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
5990 {
5991   int i;
5992   for (i = 0; i < 64; i++)
5993     offset=lustre_dissect_element_cfg_marker_cm_comment_(tvb, offset, pinfo, tree);
5994
5995   return offset;
5996 }
5997
5998 int
5999 lustre_dissect_struct_cfg_marker(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, int hf_index _U_)
6000 {
6001   proto_item *item = NULL;
6002   proto_tree *tree = NULL;
6003   int old_offset;
6004
6005
6006
6007   old_offset=offset;
6008
6009   if (parent_tree) {
6010     item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
6011     tree = proto_item_add_subtree(item, ett_lustre_cfg_marker);
6012   }
6013
6014   offset=lustre_dissect_element_cfg_marker_cm_step(tvb, offset, pinfo, tree);
6015
6016   offset=lustre_dissect_element_cfg_marker_cm_flags(tvb, offset, pinfo, tree);
6017
6018   offset=lustre_dissect_element_cfg_marker_cm_vers(tvb, offset, pinfo, tree);
6019
6020   offset=lustre_dissect_element_cfg_marker_padding(tvb, offset, pinfo, tree);
6021
6022   offset=lustre_dissect_element_cfg_marker_cm_createtime(tvb, offset, pinfo, tree);
6023
6024   offset=lustre_dissect_element_cfg_marker_cm_canceltime(tvb, offset, pinfo, tree);
6025
6026   offset=lustre_dissect_element_cfg_marker_cm_tgtname(tvb, offset, pinfo, tree);
6027
6028   offset=lustre_dissect_element_cfg_marker_cm_comment(tvb, offset, pinfo, tree);
6029
6030
6031   proto_item_set_len(item, offset-old_offset);
6032
6033   return offset;
6034 }
6035
6036
6037
6038 /* IDL: struct llog_logid { */
6039 /* IDL:         uint64 lgl_oid; */
6040 /* IDL:         uint64 lgl_oseq; */
6041 /* IDL:         uint32 lgl_ogen; */
6042 /* IDL: } */
6043
6044 static int
6045 lustre_dissect_element_llog_logid_lgl_oid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
6046 {
6047   offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_llog_logid_lgl_oid);
6048
6049   return offset;
6050 }
6051
6052 static int
6053 lustre_dissect_element_llog_logid_lgl_oseq(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
6054 {
6055   offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_llog_logid_lgl_oseq);
6056
6057   return offset;
6058 }
6059
6060 static int
6061 lustre_dissect_element_llog_logid_lgl_ogen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
6062 {
6063   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_llog_logid_lgl_ogen);
6064
6065   return offset;
6066 }
6067
6068 int
6069 lustre_dissect_struct_llog_logid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, int hf_index _U_)
6070 {
6071   proto_item *item = NULL;
6072   proto_tree *tree = NULL;
6073   int old_offset;
6074
6075
6076
6077   old_offset=offset;
6078
6079   if (parent_tree) {
6080     item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
6081     tree = proto_item_add_subtree(item, ett_lustre_llog_logid);
6082   }
6083
6084   offset=lustre_dissect_element_llog_logid_lgl_oid(tvb, offset, pinfo, tree);
6085
6086   offset=lustre_dissect_element_llog_logid_lgl_oseq(tvb, offset, pinfo, tree);
6087
6088   offset=lustre_dissect_element_llog_logid_lgl_ogen(tvb, offset, pinfo, tree);
6089
6090
6091   proto_item_set_len(item, offset-old_offset);
6092
6093   return offset;
6094 }
6095
6096 /* I don't know when this structure is used on network */
6097 /* IDL: struct llog_catid { */
6098 /* IDL:         struct llog_logid { */
6099 /* IDL: } lci_logid; */
6100 /* IDL:         uint32 lci_padding1; */
6101 /* IDL:         uint32 lci_padding2; */
6102 /* IDL:         uint32 lci_padding3; */
6103 /* IDL: } */
6104
6105 static int
6106 lustre_dissect_element_llog_catid_lci_logid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
6107 {
6108   //offset=lustre_dissect_struct_HASH(0x85cc76c)(tvb,offset,pinfo,tree,hf_lustre_llog_catid_lci_logid);
6109
6110   /*g_print("llog_catid_lci_logid bug\n");*/
6111   return offset;
6112 }
6113
6114 static int
6115 lustre_dissect_element_llog_catid_lci_padding1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
6116 {
6117   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_llog_catid_lci_padding1);
6118
6119   return offset;
6120 }
6121
6122 static int
6123 lustre_dissect_element_llog_catid_lci_padding2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
6124 {
6125   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_llog_catid_lci_padding2);
6126
6127   return offset;
6128 }
6129
6130 static int
6131 lustre_dissect_element_llog_catid_lci_padding3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
6132 {
6133   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_llog_catid_lci_padding3);
6134
6135   return offset;
6136 }
6137
6138 int
6139 lustre_dissect_struct_llog_catid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, int hf_index _U_)
6140 {
6141   proto_item *item = NULL;
6142   proto_tree *tree = NULL;
6143   int old_offset;
6144
6145
6146
6147   old_offset=offset;
6148
6149   if (parent_tree) {
6150     item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
6151     tree = proto_item_add_subtree(item, ett_lustre_llog_catid);
6152   }
6153
6154   offset=lustre_dissect_element_llog_catid_lci_logid(tvb, offset, pinfo, tree);
6155
6156   offset=lustre_dissect_element_llog_catid_lci_padding1(tvb, offset, pinfo, tree);
6157
6158   offset=lustre_dissect_element_llog_catid_lci_padding2(tvb, offset, pinfo, tree);
6159
6160   offset=lustre_dissect_element_llog_catid_lci_padding3(tvb, offset, pinfo, tree);
6161
6162
6163   proto_item_set_len(item, offset-old_offset);
6164
6165   return offset;
6166 }
6167
6168 /* IDL: struct llog_rec_hdr { */
6169 /* IDL:         uint32 lrh_len; */
6170 /* IDL:         uint32 lrh_index; */
6171 /* IDL:         uint32 lrh_type; */
6172 /* IDL:         uint32 padding; */
6173 /* IDL: } */
6174
6175 static int
6176 lustre_dissect_element_llog_rec_hdr_lrh_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
6177 {
6178   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_llog_rec_hdr_lrh_len);
6179
6180   return offset;
6181 }
6182
6183 static int
6184 lustre_dissect_element_llog_rec_hdr_lrh_index(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
6185 {
6186   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_llog_rec_hdr_lrh_index);
6187
6188   return offset;
6189 }
6190
6191 static int
6192 lustre_dissect_element_llog_rec_hdr_lrh_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
6193 {
6194   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_llog_rec_hdr_lrh_type);
6195
6196   return offset;
6197 }
6198
6199 static int
6200 lustre_dissect_element_llog_rec_hdr_padding(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
6201 {
6202   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_llog_rec_hdr_padding);
6203
6204   return offset;
6205 }
6206
6207 int
6208 lustre_dissect_struct_llog_rec_hdr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, int hf_index _U_)
6209 {
6210   proto_item *item = NULL;
6211   proto_tree *tree = NULL;
6212   int old_offset;
6213
6214
6215
6216   old_offset=offset;
6217
6218   if (parent_tree) {
6219     item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
6220     tree = proto_item_add_subtree(item, ett_lustre_llog_rec_hdr);
6221   }
6222
6223   offset=lustre_dissect_element_llog_rec_hdr_lrh_len(tvb, offset, pinfo, tree);
6224
6225   offset=lustre_dissect_element_llog_rec_hdr_lrh_index(tvb, offset, pinfo, tree);
6226
6227   offset=lustre_dissect_element_llog_rec_hdr_lrh_type(tvb, offset, pinfo, tree);
6228
6229   offset=lustre_dissect_element_llog_rec_hdr_padding(tvb, offset, pinfo, tree);
6230
6231
6232   proto_item_set_len(item, offset-old_offset);
6233
6234   return offset;
6235 }
6236
6237 /* IDL: struct llog_rec_tail { */
6238 /* IDL:         uint32 lrt_len; */
6239 /* IDL:         uint32 lrt_index; */
6240 /* IDL: } */
6241
6242 static int
6243 lustre_dissect_element_llog_rec_tail_lrt_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
6244 {
6245   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_llog_rec_tail_lrt_len);
6246
6247   return offset;
6248 }
6249
6250 static int
6251 lustre_dissect_element_llog_rec_tail_lrt_index(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
6252 {
6253   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_llog_rec_tail_lrt_index);
6254
6255   return offset;
6256 }
6257
6258 int
6259 lustre_dissect_struct_llog_rec_tail(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, int hf_index _U_)
6260 {
6261   proto_item *item = NULL;
6262   proto_tree *tree = NULL;
6263   int old_offset;
6264
6265
6266
6267   old_offset=offset;
6268
6269   if (parent_tree) {
6270     item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
6271     tree = proto_item_add_subtree(item, ett_lustre_llog_rec_tail);
6272   }
6273
6274   offset=lustre_dissect_element_llog_rec_tail_lrt_len(tvb, offset, pinfo, tree);
6275
6276   offset=lustre_dissect_element_llog_rec_tail_lrt_index(tvb, offset, pinfo, tree);
6277
6278
6279   proto_item_set_len(item, offset-old_offset);
6280
6281   return offset;
6282 }
6283
6284 /* IDL: struct llog_logid_rec { */
6285 /* IDL:         struct llog_rec_hdr { */
6286 /* IDL: } lid_hdr; */
6287 /* IDL:         struct llog_logid { */
6288 /* IDL: } lid_id; */
6289 /* IDL:         uint32 padding1; */
6290 /* IDL:         uint32 padding2; */
6291 /* IDL:         uint32 padding3; */
6292 /* IDL:         uint32 padding4; */
6293 /* IDL:         uint32 padding5; */
6294 /* IDL:         struct llog_rec_tail { */
6295 /* IDL: } lid_tail; */
6296 /* IDL: } */
6297
6298 static int
6299 lustre_dissect_element_llog_logid_rec_lid_hdr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
6300 {
6301   offset=lustre_dissect_struct_llog_rec_hdr(tvb,offset,pinfo,tree,hf_lustre_llog_logid_rec_lid_hdr);
6302   return offset;
6303 }
6304
6305 static int
6306 lustre_dissect_element_llog_logid_rec_lid_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
6307 {
6308   offset=lustre_dissect_struct_llog_logid(tvb,offset,pinfo,tree,hf_lustre_llog_logid_rec_lid_id);
6309   return offset;
6310 }
6311
6312 static int
6313 lustre_dissect_element_llog_logid_rec_padding1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
6314 {
6315   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_llog_logid_rec_padding1);
6316
6317   return offset;
6318 }
6319
6320 static int
6321 lustre_dissect_element_llog_logid_rec_padding2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
6322 {
6323   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_llog_logid_rec_padding2);
6324
6325   return offset;
6326 }
6327
6328 static int
6329 lustre_dissect_element_llog_logid_rec_padding3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
6330 {
6331   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_llog_logid_rec_padding3);
6332
6333   return offset;
6334 }
6335
6336 static int
6337 lustre_dissect_element_llog_logid_rec_padding4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
6338 {
6339   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_llog_logid_rec_padding4);
6340
6341   return offset;
6342 }
6343
6344 static int
6345 lustre_dissect_element_llog_logid_rec_padding5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
6346 {
6347   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_llog_logid_rec_padding5);
6348
6349   return offset;
6350 }
6351
6352 static int
6353 lustre_dissect_element_llog_logid_rec_lid_tail(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
6354 {
6355   offset=lustre_dissect_struct_llog_rec_tail(tvb,offset,pinfo,tree,hf_lustre_llog_logid_rec_lid_tail);
6356   return offset;
6357 }
6358
6359 int
6360 lustre_dissect_struct_llog_logid_rec(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, int hf_index _U_)
6361 {
6362   proto_item *item = NULL;
6363   proto_tree *tree = NULL;
6364   int old_offset;
6365
6366
6367
6368   old_offset=offset;
6369
6370   if (parent_tree) {
6371     item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
6372     tree = proto_item_add_subtree(item, ett_lustre_llog_logid_rec);
6373   }
6374
6375   offset=lustre_dissect_element_llog_logid_rec_lid_hdr(tvb, offset, pinfo, tree);
6376
6377   offset=lustre_dissect_element_llog_logid_rec_lid_id(tvb, offset, pinfo, tree);
6378
6379   offset=lustre_dissect_element_llog_logid_rec_padding1(tvb, offset, pinfo, tree);
6380
6381   offset=lustre_dissect_element_llog_logid_rec_padding2(tvb, offset, pinfo, tree);
6382
6383   offset=lustre_dissect_element_llog_logid_rec_padding3(tvb, offset, pinfo, tree);
6384
6385   offset=lustre_dissect_element_llog_logid_rec_padding4(tvb, offset, pinfo, tree);
6386
6387   offset=lustre_dissect_element_llog_logid_rec_padding5(tvb, offset, pinfo, tree);
6388
6389   offset=lustre_dissect_element_llog_logid_rec_lid_tail(tvb, offset, pinfo, tree);
6390
6391
6392   proto_item_set_len(item, offset-old_offset);
6393
6394   return offset;
6395 }
6396
6397 /* IDL: struct llog_create_rec { */
6398 /* IDL:         struct llog_rec_hdr { */
6399 /* IDL: } lcr_hdr; */
6400 /* IDL:         struct ll_fid { */
6401 /* IDL: } lcr_fid; */
6402 /* IDL:         uint64 lcr_oid; */
6403 /* IDL:         uint32 lcr_ogen; */
6404 /* IDL:         uint32 padding; */
6405 /* IDL:         struct llog_rec_tail { */
6406 /* IDL: } lcr_tail; */
6407 /* IDL: } */
6408
6409 static int
6410 lustre_dissect_element_llog_create_rec_lcr_hdr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
6411 {
6412   //offset=lustre_dissect_struct_HASH(0x85d56e0)(tvb,offset,pinfo,tree,hf_lustre_llog_create_rec_lcr_hdr);
6413
6414   return offset;
6415 }
6416
6417 static int
6418 lustre_dissect_element_llog_create_rec_lcr_fid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
6419 {
6420   //offset=lustre_dissect_struct_HASH(0x85d5830)(tvb,offset,pinfo,tree,hf_lustre_llog_create_rec_lcr_fid);
6421
6422   return offset;
6423 }
6424
6425 static int
6426 lustre_dissect_element_llog_create_rec_lcr_oid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
6427 {
6428   offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_llog_create_rec_lcr_oid);
6429
6430   return offset;
6431 }
6432
6433 static int
6434 lustre_dissect_element_llog_create_rec_lcr_ogen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
6435 {
6436   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_llog_create_rec_lcr_ogen);
6437
6438   return offset;
6439 }
6440
6441 static int
6442 lustre_dissect_element_llog_create_rec_padding(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
6443 {
6444   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_llog_create_rec_padding);
6445
6446   return offset;
6447 }
6448
6449 static int
6450 lustre_dissect_element_llog_create_rec_lcr_tail(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
6451 {
6452   //offset=lustre_dissect_struct_HASH(0x85d69dc)(tvb,offset,pinfo,tree,hf_lustre_llog_create_rec_lcr_tail);
6453
6454   return offset;
6455 }
6456
6457 int
6458 lustre_dissect_struct_llog_create_rec(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, int hf_index _U_)
6459 {
6460   proto_item *item = NULL;
6461   proto_tree *tree = NULL;
6462   int old_offset;
6463
6464
6465
6466   old_offset=offset;
6467
6468   if (parent_tree) {
6469     item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
6470     tree = proto_item_add_subtree(item, ett_lustre_llog_create_rec);
6471   }
6472
6473   offset=lustre_dissect_element_llog_create_rec_lcr_hdr(tvb, offset, pinfo, tree);
6474
6475   offset=lustre_dissect_element_llog_create_rec_lcr_fid(tvb, offset, pinfo, tree);
6476
6477   offset=lustre_dissect_element_llog_create_rec_lcr_oid(tvb, offset, pinfo, tree);
6478
6479   offset=lustre_dissect_element_llog_create_rec_lcr_ogen(tvb, offset, pinfo, tree);
6480
6481   offset=lustre_dissect_element_llog_create_rec_padding(tvb, offset, pinfo, tree);
6482
6483   offset=lustre_dissect_element_llog_create_rec_lcr_tail(tvb, offset, pinfo, tree);
6484
6485
6486   proto_item_set_len(item, offset-old_offset);
6487
6488   return offset;
6489 }
6490
6491
6492
6493
6494 /* IDL: struct llog_orphan_rec { */
6495 /* IDL:         struct llog_rec_hdr { */
6496 /* IDL: } lor_hdr; */
6497 /* IDL:         uint64 lor_oid; */
6498 /* IDL:         uint32 lor_ogen; */
6499 /* IDL:         uint32 padding; */
6500 /* IDL:         struct llog_rec_tail { */
6501 /* IDL: } lor_tail; */
6502 /* IDL: } */
6503
6504 static int
6505 lustre_dissect_element_llog_orphan_rec_lor_hdr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
6506 {
6507   //offset=lustre_dissect_struct_HASH(0x85d767c)(tvb,offset,pinfo,tree,hf_lustre_llog_orphan_rec_lor_hdr);
6508
6509   return offset;
6510 }
6511
6512 static int
6513 lustre_dissect_element_llog_orphan_rec_lor_oid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
6514 {
6515   offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_llog_orphan_rec_lor_oid);
6516
6517   return offset;
6518 }
6519
6520 static int
6521 lustre_dissect_element_llog_orphan_rec_lor_ogen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
6522 {
6523   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_llog_orphan_rec_lor_ogen);
6524
6525   return offset;
6526 }
6527
6528 static int
6529 lustre_dissect_element_llog_orphan_rec_padding(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
6530 {
6531   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_llog_orphan_rec_padding);
6532
6533   return offset;
6534 }
6535
6536 static int
6537 lustre_dissect_element_llog_orphan_rec_lor_tail(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
6538 {
6539   //offset=lustre_dissect_struct_HASH(0x85d8550)(tvb,offset,pinfo,tree,hf_lustre_llog_orphan_rec_lor_tail);
6540   return offset;
6541 }
6542
6543 int
6544 lustre_dissect_struct_llog_orphan_rec(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, int hf_index _U_)
6545 {
6546   proto_item *item = NULL;
6547   proto_tree *tree = NULL;
6548   int old_offset;
6549
6550
6551
6552   old_offset=offset;
6553
6554   if (parent_tree) {
6555     item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
6556     tree = proto_item_add_subtree(item, ett_lustre_llog_orphan_rec);
6557   }
6558
6559   offset=lustre_dissect_element_llog_orphan_rec_lor_hdr(tvb, offset, pinfo, tree);
6560
6561   offset=lustre_dissect_element_llog_orphan_rec_lor_oid(tvb, offset, pinfo, tree);
6562
6563   offset=lustre_dissect_element_llog_orphan_rec_lor_ogen(tvb, offset, pinfo, tree);
6564
6565   offset=lustre_dissect_element_llog_orphan_rec_padding(tvb, offset, pinfo, tree);
6566
6567   offset=lustre_dissect_element_llog_orphan_rec_lor_tail(tvb, offset, pinfo, tree);
6568
6569
6570   proto_item_set_len(item, offset-old_offset);
6571
6572   return offset;
6573 }
6574
6575
6576
6577 /* IDL: struct llog_unlink_rec { */
6578 /* IDL:         struct llog_rec_hdr { */
6579 /* IDL: } lur_hdr; */
6580 /* IDL:         uint64 lur_oid; */
6581 /* IDL:         uint32 lur_ogen; */
6582 /* IDL:         uint32 padding; */
6583 /* IDL:         struct llog_rec_tail { */
6584 /* IDL: } lur_tail; */
6585 /* IDL: } */
6586
6587 static int
6588 lustre_dissect_element_llog_unlink_rec_lur_hdr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
6589 {
6590   //offset=lustre_dissect_struct_HASH(0x85d8730)(tvb,offset,pinfo,tree,hf_lustre_llog_unlink_rec_lur_hdr);
6591   return offset;
6592 }
6593
6594 static int
6595 lustre_dissect_element_llog_unlink_rec_lur_oid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
6596 {
6597   offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_llog_unlink_rec_lur_oid);
6598
6599   return offset;
6600 }
6601
6602 static int
6603 lustre_dissect_element_llog_unlink_rec_lur_ogen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
6604 {
6605   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_llog_unlink_rec_lur_ogen);
6606
6607   return offset;
6608 }
6609
6610 static int
6611 lustre_dissect_element_llog_unlink_rec_padding(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
6612 {
6613   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_llog_unlink_rec_padding);
6614
6615   return offset;
6616 }
6617
6618 static int
6619 lustre_dissect_element_llog_unlink_rec_lur_tail(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
6620 {
6621   //offset=lustre_dissect_struct_HASH(0x85d9664)(tvb,offset,pinfo,tree,hf_lustre_llog_unlink_rec_lur_tail);
6622   return offset;
6623 }
6624
6625 int
6626 lustre_dissect_struct_llog_unlink_rec(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, int hf_index _U_)
6627 {
6628   proto_item *item = NULL;
6629   proto_tree *tree = NULL;
6630   int old_offset;
6631
6632
6633
6634   old_offset=offset;
6635
6636   if (parent_tree) {
6637     item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
6638     tree = proto_item_add_subtree(item, ett_lustre_llog_unlink_rec);
6639   }
6640
6641   offset=lustre_dissect_element_llog_unlink_rec_lur_hdr(tvb, offset, pinfo, tree);
6642
6643   offset=lustre_dissect_element_llog_unlink_rec_lur_oid(tvb, offset, pinfo, tree);
6644
6645   offset=lustre_dissect_element_llog_unlink_rec_lur_ogen(tvb, offset, pinfo, tree);
6646
6647   offset=lustre_dissect_element_llog_unlink_rec_padding(tvb, offset, pinfo, tree);
6648
6649   offset=lustre_dissect_element_llog_unlink_rec_lur_tail(tvb, offset, pinfo, tree);
6650
6651
6652   proto_item_set_len(item, offset-old_offset);
6653
6654   return offset;
6655 }
6656
6657
6658
6659 /* IDL: struct llog_setattr_rec { */
6660 /* IDL:         struct llog_rec_hdr { */
6661 /* IDL: } lsr_hdr; */
6662 /* IDL:         uint64 lsr_oid; */
6663 /* IDL:         uint32 lsr_ogen; */
6664 /* IDL:         uint32 lsr_uid; */
6665 /* IDL:         uint32 lsr_gid; */
6666 /* IDL:         uint32 padding; */
6667 /* IDL:         struct llog_rec_tail { */
6668 /* IDL: } lsr_tail; */
6669 /* IDL: } */
6670
6671 static int
6672 lustre_dissect_element_llog_setattr_rec_lsr_hdr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
6673 {
6674   //offset=lustre_dissect_struct_HASH(0x85da2f0)(tvb,offset,pinfo,tree,hf_lustre_llog_setattr_rec_lsr_hdr);
6675   return offset;
6676 }
6677
6678 static int
6679 lustre_dissect_element_llog_setattr_rec_lsr_oid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
6680 {
6681   offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_llog_setattr_rec_lsr_oid);
6682
6683   return offset;
6684 }
6685
6686 static int
6687 lustre_dissect_element_llog_setattr_rec_lsr_ogen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
6688 {
6689   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_llog_setattr_rec_lsr_ogen);
6690
6691   return offset;
6692 }
6693
6694 static int
6695 lustre_dissect_element_llog_setattr_rec_lsr_uid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
6696 {
6697   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_llog_setattr_rec_lsr_uid);
6698
6699   return offset;
6700 }
6701
6702 static int
6703 lustre_dissect_element_llog_setattr_rec_lsr_gid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
6704 {
6705   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_llog_setattr_rec_lsr_gid);
6706
6707   return offset;
6708 }
6709
6710 static int
6711 lustre_dissect_element_llog_setattr_rec_padding(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
6712 {
6713   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_llog_setattr_rec_padding);
6714
6715   return offset;
6716 }
6717
6718 static int
6719 lustre_dissect_element_llog_setattr_rec_lsr_tail(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
6720 {
6721   //offset=lustre_dissect_struct_HASH(0x85db3d4)(tvb,offset,pinfo,tree,hf_lustre_llog_setattr_rec_lsr_tail);
6722   return offset;
6723 }
6724
6725 int
6726 lustre_dissect_struct_llog_setattr_rec(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, int hf_index _U_)
6727 {
6728   proto_item *item = NULL;
6729   proto_tree *tree = NULL;
6730   int old_offset;
6731
6732
6733
6734   old_offset=offset;
6735
6736   if (parent_tree) {
6737     item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
6738     tree = proto_item_add_subtree(item, ett_lustre_llog_setattr_rec);
6739   }
6740
6741   offset=lustre_dissect_element_llog_setattr_rec_lsr_hdr(tvb, offset, pinfo, tree);
6742
6743   offset=lustre_dissect_element_llog_setattr_rec_lsr_oid(tvb, offset, pinfo, tree);
6744
6745   offset=lustre_dissect_element_llog_setattr_rec_lsr_ogen(tvb, offset, pinfo, tree);
6746
6747   offset=lustre_dissect_element_llog_setattr_rec_lsr_uid(tvb, offset, pinfo, tree);
6748
6749   offset=lustre_dissect_element_llog_setattr_rec_lsr_gid(tvb, offset, pinfo, tree);
6750
6751   offset=lustre_dissect_element_llog_setattr_rec_padding(tvb, offset, pinfo, tree);
6752
6753   offset=lustre_dissect_element_llog_setattr_rec_lsr_tail(tvb, offset, pinfo, tree);
6754
6755
6756   proto_item_set_len(item, offset-old_offset);
6757
6758   return offset;
6759 }
6760
6761
6762
6763
6764 /* IDL: struct llog_size_change_rec { */
6765 /* IDL:         struct llog_rec_hdr { */
6766 /* IDL: } lsc_hdr; */
6767 /* IDL:         struct ll_fid { */
6768 /* IDL: } lsc_fid; */
6769 /* IDL:         uint32 lsc_io_epoch; */
6770 /* IDL:         uint32 padding; */
6771 /* IDL:         struct llog_rec_tail { */
6772 /* IDL: } lsc_tail; */
6773 /* IDL: } */
6774
6775 static int
6776 lustre_dissect_element_llog_size_change_rec_lsc_hdr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
6777 {
6778   //offset=lustre_dissect_struct_HASH(0x85dc458)(tvb,offset,pinfo,tree,hf_lustre_llog_size_change_rec_lsc_hdr);
6779   return offset;
6780 }
6781
6782 static int
6783 lustre_dissect_element_llog_size_change_rec_lsc_fid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
6784 {
6785   //offset=lustre_dissect_struct_HASH(0x85dc5a8)(tvb,offset,pinfo,tree,hf_lustre_llog_size_change_rec_lsc_fid);
6786   return offset;
6787 }
6788
6789 static int
6790 lustre_dissect_element_llog_size_change_rec_lsc_io_epoch(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
6791 {
6792   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_llog_size_change_rec_lsc_io_epoch);
6793
6794   return offset;
6795 }
6796
6797 static int
6798 lustre_dissect_element_llog_size_change_rec_padding(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
6799 {
6800   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_llog_size_change_rec_padding);
6801
6802   return offset;
6803 }
6804
6805 static int
6806 lustre_dissect_element_llog_size_change_rec_lsc_tail(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
6807 {
6808   //offset=lustre_dissect_struct_HASH(0x85dd384)(tvb,offset,pinfo,tree,hf_lustre_llog_size_change_rec_lsc_tail);
6809   // TODO: to be corrected !
6810   return offset;
6811 }
6812
6813 int
6814 lustre_dissect_struct_llog_size_change_rec(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, int hf_index _U_)
6815 {
6816   proto_item *item = NULL;
6817   proto_tree *tree = NULL;
6818   int old_offset;
6819
6820
6821
6822   old_offset=offset;
6823
6824   if (parent_tree) {
6825     item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
6826     tree = proto_item_add_subtree(item, ett_lustre_llog_size_change_rec);
6827   }
6828
6829   offset=lustre_dissect_element_llog_size_change_rec_lsc_hdr(tvb, offset, pinfo, tree);
6830
6831   offset=lustre_dissect_element_llog_size_change_rec_lsc_fid(tvb, offset, pinfo, tree);
6832
6833   offset=lustre_dissect_element_llog_size_change_rec_lsc_io_epoch(tvb, offset, pinfo, tree);
6834
6835   offset=lustre_dissect_element_llog_size_change_rec_padding(tvb, offset, pinfo, tree);
6836
6837   offset=lustre_dissect_element_llog_size_change_rec_lsc_tail(tvb, offset, pinfo, tree);
6838
6839
6840   proto_item_set_len(item, offset-old_offset);
6841
6842   return offset;
6843 }
6844
6845
6846
6847
6848 /* IDL: struct llog_gen { */
6849 /* IDL:         uint64 mnt_cnt; */
6850 /* IDL:         uint64 conn_cnt; */
6851 /* IDL: } */
6852
6853 static int
6854 lustre_dissect_element_llog_gen_mnt_cnt(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
6855 {
6856   offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_llog_gen_mnt_cnt);
6857
6858   return offset;
6859 }
6860
6861 static int
6862 lustre_dissect_element_llog_gen_conn_cnt(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
6863 {
6864   offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_llog_gen_conn_cnt);
6865
6866   return offset;
6867 }
6868
6869 int
6870 lustre_dissect_struct_llog_gen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, int hf_index _U_)
6871 {
6872   proto_item *item = NULL;
6873   proto_tree *tree = NULL;
6874   int old_offset;
6875
6876
6877
6878   old_offset=offset;
6879
6880   if (parent_tree) {
6881     item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
6882     tree = proto_item_add_subtree(item, ett_lustre_llog_gen);
6883   }
6884
6885   offset=lustre_dissect_element_llog_gen_mnt_cnt(tvb, offset, pinfo, tree);
6886
6887   offset=lustre_dissect_element_llog_gen_conn_cnt(tvb, offset, pinfo, tree);
6888
6889
6890   proto_item_set_len(item, offset-old_offset);
6891
6892   return offset;
6893 }
6894
6895 /* IDL: struct llog_gen_rec { */
6896 /* IDL:         struct llog_rec_hdr { */
6897 /* IDL: } lgr_hdr; */
6898 /* IDL:         struct llog_gen { */
6899 /* IDL: } lgr_gen; */
6900 /* IDL:         struct llog_rec_tail { */
6901 /* IDL: } lgr_tail; */
6902 /* IDL: } */
6903
6904 static int
6905 lustre_dissect_element_llog_gen_rec_lgr_hdr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
6906 {
6907   //offset=lustre_dissect_struct_HASH(0x85de2e4)(tvb,offset,pinfo,tree,hf_lustre_llog_gen_rec_lgr_hdr);
6908   // TODO: to be corrected !
6909   return offset;
6910 }
6911
6912 static int
6913 lustre_dissect_element_llog_gen_rec_lgr_gen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
6914 {
6915   //offset=lustre_dissect_struct_HASH(0x85de434)(tvb,offset,pinfo,tree,hf_lustre_llog_gen_rec_lgr_gen);
6916   // TODO: to be corrected !
6917   return offset;
6918 }
6919
6920 static int
6921 lustre_dissect_element_llog_gen_rec_lgr_tail(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
6922 {
6923   //offset=lustre_dissect_struct_HASH(0x85df3f8)(tvb,offset,pinfo,tree,hf_lustre_llog_gen_rec_lgr_tail);
6924   // TODO: to be corrected !
6925   return offset;
6926 }
6927
6928 int
6929 lustre_dissect_struct_llog_gen_rec(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, int hf_index _U_)
6930 {
6931   proto_item *item = NULL;
6932   proto_tree *tree = NULL;
6933   int old_offset;
6934
6935
6936
6937   old_offset=offset;
6938
6939   if (parent_tree) {
6940     item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
6941     tree = proto_item_add_subtree(item, ett_lustre_llog_gen_rec);
6942   }
6943
6944   offset=lustre_dissect_element_llog_gen_rec_lgr_hdr(tvb, offset, pinfo, tree);
6945
6946   offset=lustre_dissect_element_llog_gen_rec_lgr_gen(tvb, offset, pinfo, tree);
6947
6948   offset=lustre_dissect_element_llog_gen_rec_lgr_tail(tvb, offset, pinfo, tree);
6949
6950
6951   proto_item_set_len(item, offset-old_offset);
6952
6953   return offset;
6954 }
6955
6956
6957
6958
6959 /* IDL: struct llog_log_hdr { */
6960 /* IDL:         struct llog_rec_hdr { */
6961 /* IDL: } llh_hdr; */
6962 /* IDL:         uint64 llh_timestamp; */
6963 /* IDL:         uint32 llh_count; */
6964 /* IDL:         uint32 llh_bitmap_offset; */
6965 /* IDL:         uint32 llh_size; */
6966 /* IDL:         uint32 llh_flags; */
6967 /* IDL:         uint32 llh_cat_idx; */
6968 /* IDL:         struct obd_uuid { */
6969 /* IDL: } llh_tgtuuid; */
6970 /* IDL:         uint32 llh_reserved[1]; */
6971 /* IDL:         uint32 llh_bitmap[2024]; */
6972 /* IDL:         struct llog_rec_tail { */
6973 /* IDL: } llh_tail; */
6974 /* IDL: } */
6975
6976 static int
6977 lustre_dissect_element_llog_log_hdr_llh_hdr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
6978 {
6979   offset=lustre_dissect_struct_llog_rec_hdr(tvb,offset,pinfo,tree,hf_lustre_llog_log_hdr_llh_hdr);
6980   return offset;
6981 }
6982
6983 static int
6984 lustre_dissect_element_llog_log_hdr_llh_timestamp(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
6985 {
6986   nstime_t ns;
6987   ns.secs = tvb_get_letohl(tvb,offset);
6988   ns.nsecs=0;
6989   proto_tree_add_time(tree, hf_lustre_llog_log_hdr_llh_timestamp, tvb, offset, 8, &ns );
6990   offset+=8;
6991   return offset;
6992 }
6993
6994 static int
6995 lustre_dissect_element_llog_log_hdr_llh_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
6996 {
6997   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_llog_log_hdr_llh_count);
6998
6999   return offset;
7000 }
7001
7002 static int
7003 lustre_dissect_element_llog_log_hdr_llh_bitmap_offset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
7004 {
7005   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_llog_log_hdr_llh_bitmap_offset);
7006
7007   return offset;
7008 }
7009
7010 static int
7011 lustre_dissect_element_llog_log_hdr_llh_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
7012 {
7013   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_llog_log_hdr_llh_size);
7014
7015   return offset;
7016 }
7017
7018
7019
7020 static int
7021 lustre_dissect_element_llog_log_llh_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, int hf_index _U_)
7022 {
7023   proto_item *item = NULL;
7024   proto_tree *tree = NULL;
7025
7026   if (parent_tree) {
7027     item = proto_tree_add_item(parent_tree,hf_index, tvb, offset, 4, TRUE);
7028     tree = proto_item_add_subtree(item, ett_lustre_llog_log_llh_flags);
7029   }
7030   dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_llog_hdr_llh_flag_zap_when_empty);
7031   dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_llog_hdr_llh_flag_is_cat);
7032   dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_llog_hdr_llh_flag_is_play);
7033
7034   offset+=4;
7035   return offset;
7036 }
7037
7038 static int
7039 lustre_dissect_element_llog_log_hdr_llh_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
7040 {
7041   //    offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_llog_log_hdr_llh_flags);
7042   offset=lustre_dissect_element_llog_log_llh_flags(tvb, offset, pinfo, tree, hf_lustre_llog_log_hdr_llh_flags);
7043   return offset;
7044 }
7045
7046 static int
7047 lustre_dissect_element_llog_log_hdr_llh_cat_idx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
7048 {
7049   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_llog_log_hdr_llh_cat_idx);
7050
7051   return offset;
7052 }
7053
7054 static int
7055 lustre_dissect_element_llog_log_hdr_llh_tgtuuid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
7056 {
7057   offset=lustre_dissect_struct_obd_uuid(tvb,offset,pinfo,tree,hf_lustre_llog_log_hdr_llh_tgtuuid);
7058   return offset;
7059 }
7060
7061 static int
7062 lustre_dissect_element_llog_log_hdr_llh_reserved_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
7063 {
7064   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_llog_log_hdr_llh_reserved);
7065
7066   return offset;
7067 }
7068
7069 static int
7070 lustre_dissect_element_llog_log_hdr_llh_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
7071 {
7072   int i;
7073   for (i = 0; i < 1; i++)
7074     offset=lustre_dissect_element_llog_log_hdr_llh_reserved_(tvb, offset, pinfo, tree);
7075
7076   return offset;
7077 }
7078
7079 static int
7080 lustre_dissect_element_llog_log_hdr_llh_bitmap_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
7081 {
7082   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_llog_log_hdr_llh_bitmap);
7083
7084   return offset;
7085 }
7086
7087
7088 static int
7089 lustre_dissect_element_llog_log_hdr_llh_bitmap(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
7090 {
7091   int i;
7092   for (i = 0; i < 2024; i++)
7093     offset=lustre_dissect_element_llog_log_hdr_llh_bitmap_(tvb, offset, pinfo, tree);
7094
7095   return offset;
7096 }
7097
7098
7099
7100 static int
7101 lustre_dissect_element_llog_log_hdr_llh_tail(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
7102 {
7103   offset=lustre_dissect_struct_llog_rec_tail(tvb,offset,pinfo,tree,hf_lustre_llog_log_hdr_llh_tail);
7104   return offset;
7105 }
7106
7107 int
7108 lustre_dissect_struct_llog_log_hdr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, int hf_index _U_)
7109 {
7110   proto_item *item = NULL;
7111   proto_tree *tree = NULL;
7112   int old_offset;
7113
7114
7115
7116   old_offset=offset;
7117
7118   if (parent_tree) {
7119     item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
7120     tree = proto_item_add_subtree(item, ett_lustre_llog_log_hdr);
7121   }
7122
7123   offset=lustre_dissect_element_llog_log_hdr_llh_hdr(tvb, offset, pinfo, tree);
7124
7125   offset=lustre_dissect_element_llog_log_hdr_llh_timestamp(tvb, offset, pinfo, tree);
7126
7127   offset=lustre_dissect_element_llog_log_hdr_llh_count(tvb, offset, pinfo, tree);
7128
7129   offset=lustre_dissect_element_llog_log_hdr_llh_bitmap_offset(tvb, offset, pinfo, tree);
7130
7131   offset=lustre_dissect_element_llog_log_hdr_llh_size(tvb, offset, pinfo, tree);
7132
7133   offset=lustre_dissect_element_llog_log_hdr_llh_flags(tvb, offset, pinfo, tree);
7134
7135   offset=lustre_dissect_element_llog_log_hdr_llh_cat_idx(tvb, offset, pinfo, tree);
7136
7137   offset=lustre_dissect_element_llog_log_hdr_llh_tgtuuid(tvb, offset, pinfo, tree);
7138
7139   offset=lustre_dissect_element_llog_log_hdr_llh_reserved(tvb, offset, pinfo, tree);
7140
7141   offset=lustre_dissect_element_llog_log_hdr_llh_bitmap(tvb, offset, pinfo, tree);
7142
7143   offset=lustre_dissect_element_llog_log_hdr_llh_tail(tvb, offset, pinfo, tree);
7144
7145
7146   proto_item_set_len(item, offset-old_offset);
7147
7148   return offset;
7149 }
7150
7151
7152
7153
7154 /* IDL: struct llog_cookie { */
7155 /* IDL:         struct llog_logid { */
7156 /* IDL: } lgc_lgl; */
7157 /* IDL:         uint32 lgc_subsys; */
7158 /* IDL:         uint32 lgc_index; */
7159 /* IDL:         uint32 lgc_padding; */
7160 /* IDL: } */
7161
7162 static int
7163 lustre_dissect_element_llog_cookie_lgc_lgl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
7164 {
7165   offset=lustre_dissect_struct_llog_logid(tvb,offset,pinfo,tree,hf_lustre_llog_cookie_lgc_lgl);
7166   return offset;
7167 }
7168
7169 static int
7170 lustre_dissect_element_llog_cookie_lgc_subsys(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
7171 {
7172   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_llog_cookie_lgc_subsys);
7173
7174   return offset;
7175 }
7176
7177 static int
7178 lustre_dissect_element_llog_cookie_lgc_index(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
7179 {
7180   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_llog_cookie_lgc_index);
7181
7182   return offset;
7183 }
7184
7185 static int
7186 lustre_dissect_element_llog_cookie_lgc_padding(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
7187 {
7188   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_llog_cookie_lgc_padding);
7189
7190   return offset;
7191 }
7192
7193 int
7194 lustre_dissect_struct_llog_cookie(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, int hf_index _U_)
7195 {
7196   proto_item *item = NULL;
7197   proto_tree *tree = NULL;
7198   int old_offset;
7199
7200
7201
7202   old_offset=offset;
7203
7204   if (parent_tree) {
7205     item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
7206     tree = proto_item_add_subtree(item, ett_lustre_llog_cookie);
7207   }
7208
7209   offset=lustre_dissect_element_llog_cookie_lgc_lgl(tvb, offset, pinfo, tree);
7210
7211   offset=lustre_dissect_element_llog_cookie_lgc_subsys(tvb, offset, pinfo, tree);
7212
7213   offset=lustre_dissect_element_llog_cookie_lgc_index(tvb, offset, pinfo, tree);
7214
7215   offset=lustre_dissect_element_llog_cookie_lgc_padding(tvb, offset, pinfo, tree);
7216
7217
7218   proto_item_set_len(item, offset-old_offset);
7219
7220   return offset;
7221 }
7222
7223
7224
7225 /* IDL: struct llogd_body { */
7226 /* IDL:         struct llog_logid { */
7227 /* IDL: } lgd_logid; */
7228 /* IDL:         uint32 lgd_ctxt_idx; */
7229 /* IDL:         uint32 lgd_llh_flags; */
7230 /* IDL:         uint32 lgd_index; */
7231 /* IDL:         uint32 lgd_saved_index; */
7232 /* IDL:         uint32 lgd_len; */
7233 /* IDL:         uint64 lgd_cur_offset; */
7234 /* IDL: } */
7235
7236 static int
7237 lustre_dissect_element_llogd_body_lgd_logid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
7238 {
7239   offset=lustre_dissect_struct_llog_logid(tvb,offset,pinfo,tree,hf_lustre_llogd_body_lgd_logid);
7240   return offset;
7241 }
7242
7243 static int
7244 lustre_dissect_element_llogd_body_lgd_ctxt_idx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
7245 {
7246   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_llogd_body_lgd_ctxt_idx);
7247
7248   return offset;
7249 }
7250
7251 static int
7252 lustre_dissect_element_llogd_body_lgd_llh_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
7253 {
7254   //offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_llogd_body_lgd_llh_flags);
7255
7256   offset=lustre_dissect_element_llog_log_llh_flags(tvb, offset, pinfo, tree, hf_lustre_llogd_body_lgd_llh_flags);
7257
7258   return offset;
7259 }
7260
7261 static int
7262 lustre_dissect_element_llogd_body_lgd_index(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
7263 {
7264   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_llogd_body_lgd_index);
7265
7266   return offset;
7267 }
7268
7269 static int
7270 lustre_dissect_element_llogd_body_lgd_saved_index(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
7271 {
7272   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_llogd_body_lgd_saved_index);
7273
7274   return offset;
7275 }
7276
7277 static int
7278 lustre_dissect_element_llogd_body_lgd_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
7279 {
7280   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_llogd_body_lgd_len);
7281
7282   return offset;
7283 }
7284
7285 static int
7286 lustre_dissect_element_llogd_body_lgd_cur_offset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
7287 {
7288   offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_llogd_body_lgd_cur_offset);
7289
7290   return offset;
7291 }
7292
7293 int
7294 lustre_dissect_struct_llogd_body(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, int hf_index _U_)
7295 {
7296   proto_item *item = NULL;
7297   proto_tree *tree = NULL;
7298   int old_offset;
7299
7300
7301
7302   old_offset=offset;
7303
7304   if (parent_tree) {
7305     item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
7306     tree = proto_item_add_subtree(item, ett_lustre_llogd_body);
7307   }
7308
7309   offset=lustre_dissect_element_llogd_body_lgd_logid(tvb, offset, pinfo, tree);
7310
7311   offset=lustre_dissect_element_llogd_body_lgd_ctxt_idx(tvb, offset, pinfo, tree);
7312
7313   offset=lustre_dissect_element_llogd_body_lgd_llh_flags(tvb, offset, pinfo, tree);
7314
7315   offset=lustre_dissect_element_llogd_body_lgd_index(tvb, offset, pinfo, tree);
7316
7317   offset=lustre_dissect_element_llogd_body_lgd_saved_index(tvb, offset, pinfo, tree);
7318
7319   offset=lustre_dissect_element_llogd_body_lgd_len(tvb, offset, pinfo, tree);
7320
7321   offset=lustre_dissect_element_llogd_body_lgd_cur_offset(tvb, offset, pinfo, tree);
7322
7323
7324   proto_item_set_len(item, offset-old_offset);
7325
7326   return offset;
7327 }
7328
7329
7330 /* TODO : find when this Structure appear on the wire */
7331 /* IDL: struct llogd_conn_body { */
7332 /* IDL:         struct llog_gen { */
7333 /* IDL: } lgdc_gen; */
7334 /* IDL:         struct llog_logid { */
7335 /* IDL: } lgdc_logid; */
7336 /* IDL:         uint32 lgdc_ctxt_idx; */
7337 /* IDL: } */
7338
7339 static int
7340 lustre_dissect_element_llogd_conn_body_lgdc_gen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
7341 {
7342   //offset=lustre_dissect_struct_HASH(0x85e6038)(tvb,offset,pinfo,tree,hf_lustre_llogd_conn_body_lgdc_gen);
7343   return offset;
7344 }
7345
7346 static int
7347 lustre_dissect_element_llogd_conn_body_lgdc_logid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
7348 {
7349   //offset=lustre_dissect_struct_HASH(0x85e6188)(tvb,offset,pinfo,tree,hf_lustre_llogd_conn_body_lgdc_logid);
7350   return offset;
7351 }
7352
7353 static int
7354 lustre_dissect_element_llogd_conn_body_lgdc_ctxt_idx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
7355 {
7356   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_llogd_conn_body_lgdc_ctxt_idx);
7357
7358   return offset;
7359 }
7360
7361 int
7362 lustre_dissect_struct_llogd_conn_body(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, int hf_index _U_)
7363 {
7364   proto_item *item = NULL;
7365   proto_tree *tree = NULL;
7366   int old_offset;
7367
7368
7369
7370   old_offset=offset;
7371
7372   if (parent_tree) {
7373     item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
7374     tree = proto_item_add_subtree(item, ett_lustre_llogd_conn_body);
7375   }
7376
7377   offset=lustre_dissect_element_llogd_conn_body_lgdc_gen(tvb, offset, pinfo, tree);
7378
7379   offset=lustre_dissect_element_llogd_conn_body_lgdc_logid(tvb, offset, pinfo, tree);
7380
7381   offset=lustre_dissect_element_llogd_conn_body_lgdc_ctxt_idx(tvb, offset, pinfo, tree);
7382
7383
7384   proto_item_set_len(item, offset-old_offset);
7385
7386   return offset;
7387 }
7388
7389 /* IDL: struct obdo { */
7390 /* IDL:         uint64 o_valid; */
7391 /* IDL:         uint64 o_id; */
7392 /* IDL:         uint64 o_seq; */
7393 /* IDL:         uint64 o_parent_seq; */
7394 /* IDL:         uint64 o_size; */
7395 /* IDL:         uint64 o_mtime; */
7396 /* IDL:         uint64 o_atime; */
7397 /* IDL:         uint64 o_ctime; */
7398 /* IDL:         uint64 o_blocks; */
7399 /* IDL:         uint64 o_grant; */
7400 /* IDL:         uint32 o_blksize; */
7401 /* IDL:         uint32 o_mode; */
7402 /* IDL:         uint32 o_uid; */
7403 /* IDL:         uint32 o_gid; */
7404 /* IDL:         uint32 o_flags; */
7405 /* IDL:         uint32 o_nlink; */
7406 /* IDL:         uint32 o_parent_oid; */
7407 /* IDL:         uint32 o_misc; */
7408 /* IDL:         uint64 o_ioepoch; */
7409 /* IDL:         uint32 o_stripe_idx; */
7410 /* IDL:         uint32 o_parent_ver; */
7411 /* IDL:         struct lustre_handle { */
7412 /* IDL: } o_handle; */
7413 /* IDL:         struct llog_cookie { */
7414 /* IDL: } o_lcookie; */
7415 /* IDL:         uint64 o_padding_2; */
7416 /* IDL:         uint64 o_padding_3; */
7417 /* IDL:         uint64 o_padding_4; */
7418 /* IDL:         uint64 o_padding_5; */
7419 /* IDL:         uint64 o_padding_6; */
7420 /* IDL: } */
7421
7422 static int
7423 lustre_dissect_element_obdo_o_valid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
7424 {
7425   offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_obdo_o_valid);
7426
7427   return offset;
7428 }
7429
7430 static int
7431 lustre_dissect_element_obdo_o_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
7432 {
7433   offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_obdo_o_id);
7434
7435   return offset;
7436 }
7437
7438 static int
7439 lustre_dissect_element_obdo_o_seq(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
7440 {
7441   offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_obdo_o_seq);
7442
7443   return offset;
7444 }
7445
7446 static int
7447 lustre_dissect_element_obdo_o_parent_seq(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
7448 {
7449   offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_obdo_o_parent_seq);
7450
7451   return offset;
7452 }
7453
7454 static int
7455 lustre_dissect_element_obdo_o_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
7456 {
7457   offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_obdo_o_size);
7458
7459   return offset;
7460 }
7461
7462 static int
7463 lustre_dissect_element_obdo_o_mtime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
7464 {
7465   nstime_t ns;
7466   /* timestamp */
7467   ns.secs = tvb_get_letohl(tvb,offset);
7468   ns.nsecs=0;
7469   proto_tree_add_time(tree, hf_lustre_obdo_o_mtime, tvb, offset, 8, &ns );
7470   offset+=8;
7471   return offset;
7472 }
7473
7474 static int
7475 lustre_dissect_element_obdo_o_atime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
7476 {
7477   nstime_t ns;
7478   /* timestamp */
7479   ns.secs = tvb_get_letohl(tvb,offset);
7480   ns.nsecs=0;
7481   proto_tree_add_time(tree, hf_lustre_obdo_o_atime, tvb, offset, 8, &ns );
7482   offset+=8;
7483   return offset;
7484
7485 }
7486
7487 static int
7488 lustre_dissect_element_obdo_o_ctime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
7489 {
7490   nstime_t ns;
7491   /* timestamp */
7492   ns.secs = tvb_get_letohl(tvb,offset);
7493   ns.nsecs=0;
7494   proto_tree_add_time(tree, hf_lustre_obdo_o_ctime, tvb, offset, 8, &ns );
7495   offset+=8;
7496   return offset;
7497 }
7498
7499 static int
7500 lustre_dissect_element_obdo_o_blocks(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
7501 {
7502   offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_obdo_o_blocks);
7503
7504   return offset;
7505 }
7506
7507 static int
7508 lustre_dissect_element_obdo_o_grant(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
7509 {
7510   offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_obdo_o_grant);
7511
7512   return offset;
7513 }
7514
7515 static int
7516 lustre_dissect_element_obdo_o_blksize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
7517 {
7518   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_obdo_o_blksize);
7519
7520   return offset;
7521 }
7522
7523 static int
7524 lustre_dissect_element_obdo_o_mode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
7525 {
7526   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_obdo_o_mode);
7527
7528   return offset;
7529 }
7530
7531 static int
7532 lustre_dissect_element_obdo_o_uid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
7533 {
7534   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_obdo_o_uid);
7535
7536   return offset;
7537 }
7538
7539 static int
7540 lustre_dissect_element_obdo_o_gid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
7541 {
7542   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_obdo_o_gid);
7543
7544   return offset;
7545 }
7546
7547 static int
7548 lustre_dissect_element_obdo_o_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
7549 {
7550   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_obdo_o_flags);
7551   /* TODO rajouter Ã§a  , faire une fonction générique qui s'occupe de tous les flags d'un tableau. */
7552   /*   LOBDFlags = {*/
7553   /*0x00000001 : "OBD_FL_INLINEDATA",*/
7554   /*0x00000002 : "OBD_FL_OBDMDEXISTS",*/
7555   /*0x00000004 : "OBD_FL_DELORPHAN",*/
7556   /*0x00000008 : "OBD_FL_NORPC",*/
7557   /*0x00000010 : "OBD_FL_IDONLY",*/
7558   /*0x00000020 : "OBD_FL_RECREATE_OBJS",*/
7559   /*0x00000040 : "OBD_FL_DEBUG_CHECK",*/
7560   /*0x00000100 : "OBD_FL_NO_USRQUOTA",*/
7561   /*0x00000200 : "OBD_FL_NO_GRPQUOTA",*/
7562   /*0x00000400 : "OBD_FL_CREATE_CROW",*/
7563   /*0x00000800 : "OBD_FL_SRVLOCK",*/
7564   //}
7565   return offset;
7566 }
7567
7568 static int
7569 lustre_dissect_element_obdo_o_nlink(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
7570 {
7571   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_obdo_o_nlink);
7572
7573   return offset;
7574 }
7575
7576 static int
7577 lustre_dissect_element_obdo_o_parent_oid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
7578 {
7579   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_obdo_o_parent_oid);
7580
7581   return offset;
7582 }
7583
7584 static int
7585 lustre_dissect_element_obdo_o_misc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
7586 {
7587   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_obdo_o_misc);
7588
7589   return offset;
7590 }
7591
7592 static int
7593 lustre_dissect_element_obdo_o_ioepoch(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
7594 {
7595   offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_obdo_o_ioepoch);
7596
7597   return offset;
7598 }
7599
7600 static int
7601 lustre_dissect_element_obdo_o_stripe_idx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
7602 {
7603   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_obdo_o_stripe_idx);
7604
7605   return offset;
7606 }
7607
7608 static int
7609 lustre_dissect_element_obdo_o_parent_ver(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
7610 {
7611   offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_obdo_o_parent_ver);
7612
7613   return offset;
7614 }
7615
7616 static int
7617 lustre_dissect_element_obdo_o_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
7618 {
7619   offset=lustre_dissect_struct_handle_cookie(tvb,offset,pinfo,tree,hf_lustre_obdo_o_handle);
7620   return offset;
7621 }
7622
7623 static int
7624 lustre_dissect_element_obdo_o_lcookie(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
7625 {
7626   offset=lustre_dissect_struct_llog_cookie(tvb,offset,pinfo,tree,hf_lustre_obdo_o_lcookie);
7627   return offset;
7628 }
7629
7630 static int
7631 lustre_dissect_element_obdo_o_padding_2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
7632 {
7633   offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_obdo_o_padding_2);
7634
7635   return offset;
7636 }
7637
7638 static int
7639 lustre_dissect_element_obdo_o_padding_3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
7640 {
7641   offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_obdo_o_padding_3);
7642
7643   return offset;
7644 }
7645
7646 static int
7647 lustre_dissect_element_obdo_o_padding_4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
7648 {
7649   offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_obdo_o_padding_4);
7650
7651   return offset;
7652 }
7653
7654 static int
7655 lustre_dissect_element_obdo_o_padding_5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
7656 {
7657   offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_obdo_o_padding_5);
7658
7659   return offset;
7660 }
7661
7662 static int
7663 lustre_dissect_element_obdo_o_padding_6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
7664 {
7665   offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_obdo_o_padding_6);
7666
7667   return offset;
7668 }
7669
7670 int
7671 lustre_dissect_struct_obdo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, int hf_index _U_)
7672 {
7673   proto_item *item = NULL;
7674   proto_tree *tree = NULL;
7675   int old_offset;
7676
7677
7678
7679   old_offset=offset;
7680
7681   if (parent_tree) {
7682     item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
7683     tree = proto_item_add_subtree(item, ett_lustre_obdo);
7684   }
7685
7686   offset=lustre_dissect_element_obdo_o_valid(tvb, offset, pinfo, tree);
7687
7688   offset=lustre_dissect_element_obdo_o_id(tvb, offset, pinfo, tree);
7689
7690   offset=lustre_dissect_element_obdo_o_seq(tvb, offset, pinfo, tree);
7691
7692   offset=lustre_dissect_element_obdo_o_parent_seq(tvb, offset, pinfo, tree);
7693
7694   offset=lustre_dissect_element_obdo_o_size(tvb, offset, pinfo, tree);
7695
7696   offset=lustre_dissect_element_obdo_o_mtime(tvb, offset, pinfo, tree);
7697
7698   offset=lustre_dissect_element_obdo_o_atime(tvb, offset, pinfo, tree);
7699
7700   offset=lustre_dissect_element_obdo_o_ctime(tvb, offset, pinfo, tree);
7701
7702   offset=lustre_dissect_element_obdo_o_blocks(tvb, offset, pinfo, tree);
7703
7704   offset=lustre_dissect_element_obdo_o_grant(tvb, offset, pinfo, tree);
7705
7706   offset=lustre_dissect_element_obdo_o_blksize(tvb, offset, pinfo, tree);
7707
7708   offset=lustre_dissect_element_obdo_o_mode(tvb, offset, pinfo, tree);
7709
7710   offset=lustre_dissect_element_obdo_o_uid(tvb, offset, pinfo, tree);
7711
7712   offset=lustre_dissect_element_obdo_o_gid(tvb, offset, pinfo, tree);
7713
7714   offset=lustre_dissect_element_obdo_o_flags(tvb, offset, pinfo, tree);
7715
7716   offset=lustre_dissect_element_obdo_o_nlink(tvb, offset, pinfo, tree);
7717
7718   offset=lustre_dissect_element_obdo_o_parent_oid(tvb, offset, pinfo, tree);
7719
7720   offset=lustre_dissect_element_obdo_o_misc(tvb, offset, pinfo, tree);
7721
7722   offset=lustre_dissect_element_obdo_o_ioepoch(tvb, offset, pinfo, tree);
7723
7724   offset=lustre_dissect_element_obdo_o_stripe_idx(tvb, offset, pinfo, tree);
7725
7726   offset=lustre_dissect_element_obdo_o_parent_ver(tvb, offset, pinfo, tree);
7727
7728   offset=lustre_dissect_element_obdo_o_handle(tvb, offset, pinfo, tree);
7729
7730   offset=lustre_dissect_element_obdo_o_lcookie(tvb, offset, pinfo, tree);
7731
7732   offset=lustre_dissect_element_obdo_o_padding_2(tvb, offset, pinfo, tree);
7733
7734   offset=lustre_dissect_element_obdo_o_padding_3(tvb, offset, pinfo, tree);
7735
7736   offset=lustre_dissect_element_obdo_o_padding_4(tvb, offset, pinfo, tree);
7737
7738   offset=lustre_dissect_element_obdo_o_padding_5(tvb, offset, pinfo, tree);
7739
7740   offset=lustre_dissect_element_obdo_o_padding_6(tvb, offset, pinfo, tree);
7741
7742
7743   proto_item_set_len(item, offset-old_offset);
7744
7745   return offset;
7746 }
7747
7748
7749
7750 /* IDL: struct ost_body { */
7751 /* IDL:         struct obdo { */
7752 /* IDL: } oa; */
7753 /* IDL: } */
7754
7755 static int
7756 lustre_dissect_element_ost_body_oa(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
7757 {
7758   offset=lustre_dissect_struct_obdo(tvb,offset,pinfo,tree,hf_lustre_ost_body_oa);
7759   return offset;
7760 }
7761
7762 int
7763 lustre_dissect_struct_ost_body(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, int hf_index _U_)
7764 {
7765   proto_item *item = NULL;
7766   proto_tree *tree = NULL;
7767   int old_offset;
7768
7769
7770
7771   old_offset=offset;
7772
7773   if (parent_tree) {
7774     item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
7775     tree = proto_item_add_subtree(item, ett_lustre_ost_body);
7776   }
7777
7778   offset=lustre_dissect_element_ost_body_oa(tvb, offset, pinfo, tree);
7779
7780
7781   proto_item_set_len(item, offset-old_offset);
7782
7783   return offset;
7784 }
7785
7786
7787 /* TODO : find when this Structure appear on the wire */
7788 /* IDL: struct qunit_data { */
7789 /* IDL:         uint32 qd_id; */
7790 /* IDL:         uint32 qd_flags; */
7791 /* IDL:         uint64 qd_count; */
7792 /* IDL:         uint64 qd_qunit; */
7793 /* IDL:         uint64 padding; */
7794 /* IDL: } */
7795
7796 static int
7797 lustre_dissect_element_qunit_data_qd_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
7798 {
7799   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_qunit_data_qd_id);
7800
7801   return offset;
7802 }
7803
7804 static int
7805 lustre_dissect_element_qunit_data_qd_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
7806 {
7807   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_qunit_data_qd_flags);
7808
7809   return offset;
7810 }
7811
7812 static int
7813 lustre_dissect_element_qunit_data_qd_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
7814 {
7815   offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_qunit_data_qd_count);
7816
7817   return offset;
7818 }
7819
7820 static int
7821 lustre_dissect_element_qunit_data_qd_qunit(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
7822 {
7823   offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_qunit_data_qd_qunit);
7824
7825   return offset;
7826 }
7827
7828 static int
7829 lustre_dissect_element_qunit_data_padding(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
7830 {
7831   offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_qunit_data_padding);
7832
7833   return offset;
7834 }
7835
7836 int
7837 lustre_dissect_struct_qunit_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, int hf_index _U_)
7838 {
7839   proto_item *item = NULL;
7840   proto_tree *tree = NULL;
7841   int old_offset;
7842
7843
7844
7845   old_offset=offset;
7846
7847   if (parent_tree) {
7848     item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
7849     tree = proto_item_add_subtree(item, ett_lustre_qunit_data);
7850   }
7851
7852   offset=lustre_dissect_element_qunit_data_qd_id(tvb, offset, pinfo, tree);
7853
7854   offset=lustre_dissect_element_qunit_data_qd_flags(tvb, offset, pinfo, tree);
7855
7856   offset=lustre_dissect_element_qunit_data_qd_count(tvb, offset, pinfo, tree);
7857
7858   offset=lustre_dissect_element_qunit_data_qd_qunit(tvb, offset, pinfo, tree);
7859
7860   offset=lustre_dissect_element_qunit_data_padding(tvb, offset, pinfo, tree);
7861
7862
7863   proto_item_set_len(item, offset-old_offset);
7864
7865   return offset;
7866 }
7867
7868 /* TODO : find when this Structure appear on the wire */
7869 /* IDL: struct qunit_data_old2 { */
7870 /* IDL:         uint32 qd_id; */
7871 /* IDL:         uint32 qd_flags; */
7872 /* IDL:         uint64 qd_count; */
7873 /* IDL: } */
7874
7875 static int
7876 lustre_dissect_element_qunit_data_old2_qd_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
7877 {
7878   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_qunit_data_old2_qd_id);
7879
7880   return offset;
7881 }
7882
7883 static int
7884 lustre_dissect_element_qunit_data_old2_qd_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
7885 {
7886   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_qunit_data_old2_qd_flags);
7887
7888   return offset;
7889 }
7890
7891 static int
7892 lustre_dissect_element_qunit_data_old2_qd_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
7893 {
7894   offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_qunit_data_old2_qd_count);
7895
7896   return offset;
7897 }
7898
7899 int
7900 lustre_dissect_struct_qunit_data_old2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, int hf_index _U_)
7901 {
7902   proto_item *item = NULL;
7903   proto_tree *tree = NULL;
7904   int old_offset;
7905
7906
7907
7908   old_offset=offset;
7909
7910   if (parent_tree) {
7911     item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
7912     tree = proto_item_add_subtree(item, ett_lustre_qunit_data_old2);
7913   }
7914
7915   offset=lustre_dissect_element_qunit_data_old2_qd_id(tvb, offset, pinfo, tree);
7916
7917   offset=lustre_dissect_element_qunit_data_old2_qd_flags(tvb, offset, pinfo, tree);
7918
7919   offset=lustre_dissect_element_qunit_data_old2_qd_count(tvb, offset, pinfo, tree);
7920
7921
7922   proto_item_set_len(item, offset-old_offset);
7923
7924   return offset;
7925 }
7926
7927 /* TODO : find when this Structure appear on the wire */
7928 /* IDL: struct qunit_data_old { */
7929 /* IDL:         uint32 qd_id; */
7930 /* IDL:         uint32 qd_type; */
7931 /* IDL:         uint32 qd_count; */
7932 /* IDL:         uint32 qd_isblk; */
7933 /* IDL: } */
7934
7935 static int
7936 lustre_dissect_element_qunit_data_old_qd_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
7937 {
7938   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_qunit_data_old_qd_id);
7939
7940   return offset;
7941 }
7942
7943 static int
7944 lustre_dissect_element_qunit_data_old_qd_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
7945 {
7946   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_qunit_data_old_qd_type);
7947
7948   return offset;
7949 }
7950
7951 static int
7952 lustre_dissect_element_qunit_data_old_qd_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
7953 {
7954   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_qunit_data_old_qd_count);
7955
7956   return offset;
7957 }
7958
7959 static int
7960 lustre_dissect_element_qunit_data_old_qd_isblk(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
7961 {
7962   offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_qunit_data_old_qd_isblk);
7963
7964   return offset;
7965 }
7966
7967 int
7968 lustre_dissect_struct_qunit_data_old(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, int hf_index _U_)
7969 {
7970   proto_item *item = NULL;
7971   proto_tree *tree = NULL;
7972   int old_offset;
7973
7974
7975
7976   old_offset=offset;
7977
7978   if (parent_tree) {
7979     item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
7980     tree = proto_item_add_subtree(item, ett_lustre_qunit_data_old);
7981   }
7982
7983   offset=lustre_dissect_element_qunit_data_old_qd_id(tvb, offset, pinfo, tree);
7984
7985   offset=lustre_dissect_element_qunit_data_old_qd_type(tvb, offset, pinfo, tree);
7986
7987   offset=lustre_dissect_element_qunit_data_old_qd_count(tvb, offset, pinfo, tree);
7988
7989   offset=lustre_dissect_element_qunit_data_old_qd_isblk(tvb, offset, pinfo, tree);
7990
7991
7992   proto_item_set_len(item, offset-old_offset);
7993
7994   return offset;
7995 }
7996
7997
7998 /* ------------------------------------------------------------------------- */
7999 /* dissect string .
8000  * the length of the string is the current buflen
8001  * @tvb the packet buff
8002  * @offset the current offset
8003  * @pinfo
8004  * @parent_tree
8005  * @hf_index : the corresponding header field
8006  * @buf_num  : the corresponding bufnumber of the string (we use it to
8007  * determine the string length), must respect : 0<bufnum<=bufmax_in_paquet
8008  */
8009 static int
8010 lustre_dissect_element_string (tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, int hf_index _U_, guint32 buf_num)
8011 {
8012   proto_item *item = NULL;
8013
8014   int old_offset;
8015   guint32 string_len;
8016
8017   old_offset=offset;
8018
8019   // if (parent_tree) { item = proto_tree_add_item(parent_tree, hf_index, tvb,
8020   // offset, -1, TRUE); //     tree = proto_item_add_subtree(item,
8021   // ett_lustre); }
8022
8023   if(buf_num+1>LUSTRE_BUFCOUNT)
8024     return offset;
8025
8026   string_len = tvb_get_letohl(tvb, LUSTRE_BUFLEN_OFF + 4 * buf_num) ; /* 4 because a buflen is on a guint32 */
8027   proto_tree_add_item(parent_tree, hf_index, tvb, offset, string_len, TRUE);
8028   if(string_len>1)
8029     display_info_fstr(parent_tree, pinfo->cinfo, COL_INFO, " filename : %s", tvb_get_string(tvb,offset,string_len) );
8030
8031   offset+=string_len;
8032   proto_item_set_len(item, offset-old_offset);
8033   offset=add_extra_padding(tvb,offset,pinfo,parent_tree); /* after a string we must be aligned to 8 bytes. */
8034
8035
8036   return offset;
8037 }
8038
8039 /* ------------------------------------------------------------------------- */
8040 /* dissect raw data */
8041 static int
8042 lustre_dissect_element_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, int hf_index _U_, guint32 buf_num)
8043 {
8044   proto_item *item = NULL;
8045
8046   guint32 data_len ;
8047   int old_offset;
8048
8049   old_offset=offset;
8050   if(buf_num+1>LUSTRE_BUFCOUNT)
8051     return offset;
8052
8053   data_len = tvb_get_letohl(tvb, LUSTRE_BUFLEN_OFF + 4 * buf_num) ; /* 4 because a buflen is on a guint32 */
8054   proto_tree_add_item(parent_tree, hf_index, tvb, offset, data_len, TRUE);
8055
8056   offset+=data_len;
8057   proto_item_set_len(item, offset-old_offset);
8058   offset=add_extra_padding(tvb,offset,pinfo,parent_tree); /* align on 8 bytes */
8059
8060   return offset;
8061 }
8062 /* ------------------------------------------------------------------------ */
8063
8064
8065 static int reint_opcode_process(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree * tree _U_)
8066 {
8067   guint32 opcode  ;
8068
8069   opcode = tvb_get_letohl(tvb,offset);
8070
8071   switch(opcode){
8072     case  REINT_SETATTR:
8073       /* [eadata][cookie_data][ldlm_request] */
8074       offset=lustre_dissect_struct_mdt_rec_setattr(tvb, offset, pinfo, tree, hf_lustre_mdt_rec_setattr);
8075       offset=lustre_dissect_struct_ldlm_request(tvb, offset, pinfo, tree,
8076           hf_lustre_ldlm_request) ;
8077       break;
8078     case REINT_CREATE :
8079       /* [rec_create][filename][tgt.. Ã  0 pour l'instant][ldlm_request] */
8080       offset=lustre_dissect_struct_mdt_rec_create(tvb, offset, pinfo, tree, hf_lustre_mdt_rec_create);
8081       offset=lustre_dissect_element_string(tvb, offset, pinfo, tree, hf_lustre_reint_name, LUSTRE_REQ_REC_OFF+1);
8082       offset=lustre_dissect_element_string(tvb, offset, pinfo, tree, hf_lustre_reint_name, LUSTRE_REQ_REC_OFF+2);  /* this string is all the time =="\0"*/
8083       offset=lustre_dissect_struct_ldlm_request(tvb, offset, pinfo, tree,
8084           hf_lustre_ldlm_request) ;
8085       break;
8086     case  REINT_LINK   :
8087       /*[mdt_rec_link][filename][ldlm_req] */
8088       offset=lustre_dissect_struct_mdt_rec_link(tvb, offset, pinfo, tree, hf_lustre_mdt_rec_link);
8089       offset=lustre_dissect_struct_ldlm_request(tvb, offset, pinfo, tree,
8090           hf_lustre_ldlm_request) ;
8091       /*TODO : need to be check*/
8092       break;
8093     case  REINT_UNLINK : /* mds_unlink_unpack : [mdt_rec_unlink][filename][ldlm_req] */
8094       /* [mdt_rec_unlink][filename][ldlm_req][..]*/
8095       offset=lustre_dissect_struct_mdt_rec_unlink(tvb, offset, pinfo, tree, hf_lustre_mdt_rec_unlink);
8096       offset=lustre_dissect_element_string(tvb, offset, pinfo, tree, hf_lustre_reint_name, LUSTRE_REQ_REC_OFF+1);
8097       if ( (tvb_get_letohl(tvb,LUSTRE_BUFLEN_OFF+4*(LUSTRE_REQ_REC_OFF +2))) == 112) /* TODO : ugly .. but
8098                                                                                         for now we have to do this */
8099         offset=lustre_dissect_struct_obd_quotactl(tvb, offset, pinfo, tree, hf_lustre_obd_quotactl);
8100       else
8101         offset=lustre_dissect_struct_ldlm_request(tvb, offset, pinfo, tree, hf_lustre_ldlm_request) ;
8102
8103       break;
8104     case  REINT_RENAME : /*mds_rename_unpack : [mdt_rec_rename][filename source][filename target_name][ldlm_request] */
8105       offset=lustre_dissect_struct_mdt_rec_rename(tvb, offset, pinfo, tree, hf_lustre_mdt_rec_rename);
8106       offset=lustre_dissect_element_string(tvb, offset, pinfo, tree, hf_lustre_reint_old_name, LUSTRE_REQ_REC_OFF+1);
8107       offset=lustre_dissect_element_string(tvb, offset, pinfo, tree, hf_lustre_reint_new_name, LUSTRE_REQ_REC_OFF+2);
8108       offset=lustre_dissect_struct_ldlm_request(tvb, offset, pinfo, tree, hf_lustre_ldlm_request) ;
8109       break;
8110     case  REINT_OPEN   : /* [rec_create][filename][eadata] */
8111       offset=lustre_dissect_struct_mdt_rec_create(tvb, offset, pinfo, tree, hf_lustre_mdt_rec_create);
8112       offset=lustre_dissect_element_string(tvb, offset, pinfo, tree, hf_lustre_reint_name, LUSTRE_REQ_REC_OFF+1);
8113       offset=lustre_dissect_element_data(tvb, offset, pinfo, tree, hf_lustre_mds_xattr_eadata, LUSTRE_REQ_REC_OFF+2); /* TODO : replace with hf_eadata */
8114       break;
8115     case  REINT_SETXATTR :
8116       /* [eadata][cookie_data][ldlm_request] */
8117       offset=lustre_dissect_struct_mdt_rec_setxattr(tvb, offset, pinfo, tree, hf_lustre_mdt_rec_setxattr);
8118       offset=lustre_dissect_struct_ldlm_request(tvb, offset, pinfo, tree,
8119           hf_lustre_ldlm_request) ;
8120       break;
8121     default:
8122       break;
8123
8124   }
8125
8126   return offset ;
8127 }
8128
8129
8130 /* dissect a connect message */
8131 static int
8132 lustre_dissect_generic_connect(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
8133 {
8134   /*TODO : add a cuuid and target uid */
8135   offset=lustre_dissect_struct_obd_uuid(tvb, offset, pinfo, tree, hf_lustre_obd_uuid);
8136   offset=lustre_dissect_struct_obd_uuid(tvb, offset, pinfo, tree, hf_lustre_obd_uuid);
8137   offset=lustre_dissect_struct_handle_cookie(tvb,offset,pinfo,tree,hf_lustre_mdt_body_handle);
8138   offset=lustre_dissect_struct_obd_connect_data(tvb,offset,pinfo,tree,hf_lustre_obd_connect_data);
8139   return offset;
8140 }
8141
8142 static int
8143 lustre_ost_opcode_process(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree * tree _U_, guint32 opc _U_, guint32 pb_type)
8144 {
8145   guint32 i ;
8146
8147   switch (opc){
8148     case OST_REPLY: /* obsolete so nothing */
8149       break;
8150     case OST_GETATTR:
8151       offset=lustre_dissect_struct_ost_body(tvb, offset, pinfo, tree, hf_lustre_ost_body) ;
8152       break;
8153     case OST_SETATTR:
8154       offset=lustre_dissect_struct_ost_body(tvb, offset, pinfo, tree, hf_lustre_ost_body) ;
8155       break;
8156     case OST_READ: /* [OST_BODY][obd_ioobj][niobuf_remote] for request, [OST_BODY] for reply */
8157       offset=lustre_dissect_struct_ost_body(tvb, offset, pinfo, tree, hf_lustre_ost_body) ;
8158       if(pb_type==PTL_RPC_MSG_REQUEST){
8159         offset=lustre_dissect_struct_obd_ioobj(tvb, offset, pinfo, tree,   hf_lustre_obd_ioobj);
8160         offset=lustre_dissect_struct_niobuf_remote(tvb,offset,pinfo, tree, hf_lustre_niobuf_remote);
8161       }
8162       break;
8163     case OST_WRITE:
8164       offset=lustre_dissect_struct_ost_body(tvb, offset, pinfo,
8165           tree, hf_lustre_ost_body) ;  /* [ost_body] in both case */
8166       if(pb_type==PTL_RPC_MSG_REQUEST)
8167       {
8168         for (i=0;i<tvb_get_letohl(tvb,LUSTRE_BUFLEN_OFF+ 4*(LUSTRE_REQ_REC_OFF+1))/24;i++)
8169           offset=lustre_dissect_struct_obd_ioobj(tvb, offset, pinfo, tree, hf_lustre_obd_ioobj);
8170         offset=lustre_dissect_struct_niobuf_remote(tvb,offset,pinfo, tree, hf_lustre_obd_ioobj);
8171       }
8172       if(pb_type==PTL_RPC_MSG_REPLY) /* niocount *[uint32], but niocount is in request message, so
8173                                         we use the bufcount */
8174       {
8175         for (i=0;i<tvb_get_letohl(tvb, LUSTRE_BUFCOUNT_OFF)-2;i++) /* -2 because we have already dissect 2 buffers : ptl + ost */
8176           offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_nio);
8177         if (i & 1 ) /* if odd we add extra padding */
8178           offset=dissect_uint32(tvb, offset, pinfo, tree,
8179               hf_lustre_extra_padding);
8180       }
8181       break;
8182     case OST_CREATE:
8183       offset=lustre_dissect_struct_ost_body(tvb, offset, pinfo, tree, hf_lustre_ost_body) ;
8184       break;
8185     case OST_DESTROY:
8186       offset=lustre_dissect_struct_ost_body(tvb, offset, pinfo, tree, hf_lustre_ost_body) ;
8187       if(pb_type==PTL_RPC_MSG_REQUEST) /* [ost_body][-si buf- ldlm_request] */
8188         if ( (tvb_get_letohl(tvb,LUSTRE_BUFLEN_OFF+4*(LUSTRE_REQ_REC_OFF +1))) != 0)
8189           offset=lustre_dissect_struct_ldlm_request(tvb, offset, pinfo, tree, hf_lustre_ost_body);
8190       /* TODO : test that */
8191       break;
8192     case OST_GET_INFO:
8193       if(pb_type==PTL_RPC_MSG_REQUEST) /* [key] */
8194       {
8195         offset=lustre_dissect_element_string(tvb, offset, pinfo, tree, hf_lustre_ost_key, LUSTRE_REQ_REC_OFF+1);
8196       }
8197       if (pb_type==PTL_RPC_MSG_REPLY)
8198       {
8199         offset=lustre_dissect_element_string(tvb, offset, pinfo, tree, hf_lustre_ost_val, LUSTRE_REQ_REC_OFF); /* val */
8200       }
8201
8202       break;
8203     case OST_CONNECT:
8204       if (pb_type==PTL_RPC_MSG_REQUEST) /* [targetuuid][clientuuid][lustre_handle][obd_connect_data] */
8205         offset=lustre_dissect_generic_connect(tvb,offset,pinfo,tree);
8206       if (pb_type==PTL_RPC_MSG_REPLY)
8207         offset=lustre_dissect_struct_obd_connect_data(tvb,offset,pinfo,tree,hf_lustre_obd_connect_data);
8208       break;
8209     case OST_DISCONNECT: /* [nothing] */
8210       break;
8211     case OST_PUNCH: /* [ost_body] */
8212       offset=lustre_dissect_struct_ost_body(tvb, offset, pinfo, tree, hf_lustre_ost_body) ;
8213       break;
8214     case OST_OPEN: /* [nothing] in the code maybee obsolete */
8215       break;
8216     case OST_CLOSE: /* [nothing] in the code maybee obsolete */
8217       break;
8218     case OST_STATFS: /* [obd_statfs] check that : TODO */
8219       if(LUSTRE_BUFCOUNT>=2)
8220         offset=lustre_dissect_struct_obd_statfs(tvb, offset, pinfo, tree, hf_lustre_obd_statfs) ;
8221       break;
8222     case OST_SYNC:
8223       /*[ost_body] in both case */
8224       offset=lustre_dissect_struct_ost_body(tvb, offset, pinfo, tree, hf_lustre_ost_body) ;
8225       break;
8226     case OST_SET_INFO:
8227       if(pb_type==PTL_RPC_MSG_REQUEST)
8228       {
8229         offset=lustre_dissect_element_string(tvb, offset, pinfo, tree, hf_lustre_ost_key,LUSTRE_REQ_REC_OFF); /* key  */
8230         offset=lustre_dissect_element_string(tvb, offset, pinfo, tree, hf_lustre_ost_val, LUSTRE_REQ_REC_OFF+1); /* val */
8231       }
8232       /* if Key = "evict_by_nid" --> need to be process.. TODO */
8233       break;
8234     case OST_QUOTACHECK:
8235       if(pb_type==PTL_RPC_MSG_REQUEST)
8236         offset=lustre_dissect_struct_obd_quotactl(tvb, offset, pinfo, tree, hf_lustre_obd_quotactl) ;
8237       /* nothing in reply */
8238       break;
8239     case OST_QUOTACTL:
8240       /*[obd_quotactl in both case]*/
8241       offset=lustre_dissect_struct_obd_quotactl(tvb, offset, pinfo, tree, hf_lustre_obd_quotactl) ;
8242     case OST_QUOTA_ADJUST_QUNIT:
8243       /* [quota_adjust_qunit] in both case ? */
8244       offset=lustre_dissect_struct_quota_adjust_qunit(tvb, offset, pinfo, tree, hf_lustre_quota_adjust_qunit) ;
8245   };
8246
8247   return offset;
8248 }
8249
8250 static int
8251 lustre_mds_opcode_process(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree * tree _U_, guint32 opc _U_, guint32 pb_type)
8252 {
8253   switch (opc){
8254     case MDS_DISCONNECT:
8255       /*[nothing]*/
8256       break;
8257     case MDS_GETSTATUS:
8258       /*[mds body]*/
8259       offset=lustre_dissect_struct_mdt_body(tvb, offset, pinfo, tree, hf_lustre_mdt_body) ;
8260       break;
8261     case MDS_SETXATTR:
8262       if(pb_type==PTL_RPC_MSG_REQUEST)
8263         /* [mds body] */
8264         offset=lustre_dissect_struct_mdt_body(tvb, offset, pinfo, tree, hf_lustre_mdt_body) ;
8265       /*if(reply) : [nothing]*/
8266       break;
8267     case MDS_GETXATTR:
8268       offset=lustre_dissect_struct_mdt_body(tvb, offset, pinfo, tree, hf_lustre_mdt_body) ;
8269       if(pb_type==PTL_RPC_MSG_REQUEST)
8270         /*[string_xattr_name]*/
8271         offset=lustre_dissect_element_string(tvb, offset, pinfo, tree, hf_lustre_mds_xattr_name, LUSTRE_REQ_REC_OFF+1);
8272       if(pb_type==PTL_RPC_MSG_REPLY)
8273         /*[eada]*/
8274         offset=lustre_dissect_element_data(tvb, offset, pinfo, tree, hf_lustre_mds_xattr_eadata, LUSTRE_REQ_REC_OFF+1);
8275       break;
8276     case MDS_GETATTR:
8277       offset=lustre_dissect_struct_mdt_body(tvb, offset, pinfo, tree, hf_lustre_mdt_body) ;
8278       /* TODO [ something ??? ] */
8279       break;
8280     case MDS_GETATTR_NAME:
8281       if(pb_type==PTL_RPC_MSG_REQUEST)
8282         /*[mdt_body]*/
8283         offset=lustre_dissect_struct_mdt_body(tvb, offset, pinfo, tree, hf_lustre_mdt_body) ;
8284       /*[nothing in reply]*/
8285       break;
8286     case MDS_DONE_WRITING:
8287       /*[mdt_body]*/
8288       offset=lustre_dissect_struct_mdt_body(tvb, offset, pinfo, tree, hf_lustre_mdt_body) ;
8289       break;
8290     case MDS_PIN: /* repbody.. */
8291       /*[mdt_body]*/
8292       offset=lustre_dissect_struct_mdt_body(tvb, offset, pinfo, tree, hf_lustre_mdt_body) ;
8293       break;
8294     case MDS_SYNC:
8295       /*[mdt_body]*/
8296       offset=lustre_dissect_struct_mdt_body(tvb, offset, pinfo, tree, hf_lustre_mdt_body) ;
8297       break;
8298
8299     case MDS_CLOSE: /* TODO : check the corresponding structure in lustre code */
8300       if(pb_type==PTL_RPC_MSG_REQUEST)
8301       { /* [mdt_body] [lov_mds_md][log_cookie] */
8302         offset=lustre_dissect_struct_mdt_body(tvb, offset, pinfo, tree, hf_lustre_mdt_body) ;
8303         if(LUSTRE_BUFCOUNT>=3)
8304           offset=lustre_dissect_struct_lov_mds_md_v1(tvb,offset,pinfo,tree,hf_lustre_lov_mds_md_v1);
8305         if(LUSTRE_BUFCOUNT>=4)
8306           if( tvb_get_letohl(tvb,LUSTRE_BUFLEN_OFF+4*(LUSTRE_REQ_REC_OFF+2)) > 0)
8307             offset=lustre_dissect_struct_llog_cookie(tvb,offset,pinfo,tree,hf_lustre_llog_cookie);
8308       }
8309       if(pb_type==PTL_RPC_MSG_REPLY)
8310       { /* [mdt_body][md][cookie] TODO : check that (reread the code about shrink in lustre) */
8311         offset=lustre_dissect_struct_mdt_body(tvb, offset, pinfo, tree, hf_lustre_mdt_body) ;
8312         if(tvb_get_letohl(tvb,LUSTRE_BUFLEN_OFF+4*(LUSTRE_REQ_REC_OFF+1)) > 0)
8313           offset=lustre_dissect_element_string(tvb, offset, pinfo, tree, hf_lustre_mds_md_data,LUSTRE_REQ_REC_OFF+1); /* key  */
8314         if(tvb_get_letohl(tvb,LUSTRE_BUFLEN_OFF+4*(LUSTRE_REQ_REC_OFF+2)) > 0)
8315           offset=lustre_dissect_struct_llog_cookie(tvb,offset,pinfo,tree,hf_lustre_llog_cookie);
8316       }
8317       break;
8318
8319     case MDS_STATFS:
8320       if(pb_type==PTL_RPC_MSG_REPLY)
8321         /*[obd_statfs]*/
8322         offset=lustre_dissect_struct_obd_statfs(tvb, offset, pinfo, tree, hf_lustre_obd_statfs) ;
8323       /*in request : [nothing]*/
8324       break;
8325
8326     case MDS_READPAGE:
8327       /* [mdt_body] but with some different interpration, need to modify the hf :  TODO  */
8328       offset=lustre_dissect_struct_mdt_body(tvb, offset, pinfo, tree, hf_lustre_mdt_body) ;
8329       break;
8330
8331     case MDS_REINT:
8332       /* the structure depend on the intent_opcode */
8333       if(pb_type==PTL_RPC_MSG_REQUEST)
8334         offset=reint_opcode_process(tvb, offset, pinfo, tree);
8335       if(pb_type==PTL_RPC_MSG_REPLY)
8336       {
8337         /*[mdt_body][??][llog_logid_rec] */
8338         offset=lustre_dissect_struct_mdt_body(tvb, offset, pinfo, tree, hf_lustre_mdt_body) ;
8339         if(tvb_get_letohl(tvb,LUSTRE_BUFLEN_OFF+4*(LUSTRE_REQ_REC_OFF+1)) > 0){
8340           /* OPEN, RENAME, and UNLINK */
8341           if(tvb_get_letohl(tvb, LUSTRE_BUFLEN_OFF+4*(LUSTRE_REQ_REC_OFF+1)) > 0){ /* rec_unlink or rec_rename */
8342             offset=lustre_dissect_element_data(tvb, offset, pinfo, tree, hf_lustre_mds_xattr_eadata,
8343                 LUSTRE_REQ_REC_OFF+1); // replace by eadata TODO TODO //
8344             if(tvb_get_letohl(tvb,LUSTRE_BUFLEN_OFF+4*(LUSTRE_REQ_REC_OFF+2)) > 0) /* with unlink or rename we have 4 buffers handler.c line 1691*/
8345               offset=lustre_dissect_element_data(tvb, offset, pinfo, tree,
8346                   hf_lustre_mds_xattr_eadata, LUSTRE_REQ_REC_OFF+2); // replace withe eadata TODO TODO //
8347           }
8348         }
8349
8350       }
8351       break;
8352     case MDS_SET_INFO:
8353       if(pb_type==PTL_RPC_MSG_REQUEST){
8354         /*[key][val]*/
8355         offset=lustre_dissect_element_string(tvb, offset, pinfo, tree, hf_lustre_ost_key,LUSTRE_REQ_REC_OFF); /* key  */
8356         offset=lustre_dissect_element_string(tvb, offset, pinfo, tree, hf_lustre_ost_val, LUSTRE_REQ_REC_OFF+1); /* val */
8357         //offset=add_extra_padding(tvb,offset,pinfo,tree);
8358       }
8359       /*nothing en reply*/
8360       break;
8361     case MDS_QUOTACHECK:
8362       /* [obd_quotactl] */
8363       if(pb_type==PTL_RPC_MSG_REQUEST)
8364         offset=lustre_dissect_struct_obd_quotactl(tvb, offset, pinfo, tree, hf_lustre_obd_quotactl) ;
8365       break;
8366     case MDS_QUOTACTL:
8367       /* [obd_quotactl] in both case*/
8368       offset=lustre_dissect_struct_obd_quotactl(tvb, offset, pinfo, tree, hf_lustre_obd_quotactl) ;
8369       break;
8370     case MDS_CONNECT:
8371       if (pb_type==PTL_RPC_MSG_REQUEST) /* [targetuuid][clientuuid][lustre_handle][obd_connect_data] */
8372         offset=lustre_dissect_generic_connect(tvb,offset,pinfo,tree);
8373       if (pb_type==PTL_RPC_MSG_REPLY) /*[obd_connect_data]*/
8374         offset=lustre_dissect_struct_obd_connect_data(tvb,offset,pinfo,tree,hf_lustre_obd_connect_data);
8375       break;
8376     default:
8377       break;
8378   };
8379
8380   return offset;
8381
8382 }
8383
8384
8385 static int
8386 lustre_ldlm_opcode_process(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree * tree _U_, guint32 opc _U_, guint32 pb_type)
8387 {
8388
8389   switch (opc)
8390   {
8391     case LDLM_ENQUEUE:
8392       /*[ldlm_request] if we have one more buffer it's [intent_opcode] and the opcode give us the
8393        * corresponding intent structure [intent] */
8394       if(pb_type==PTL_RPC_MSG_REQUEST)
8395       {
8396         offset=lustre_dissect_struct_ldlm_request(tvb, offset, pinfo, tree, hf_lustre_ldlm_request) ;
8397         if (LUSTRE_BUFCOUNT>=3)
8398           offset=lustre_dissect_struct_ldlm_intent(tvb, offset, pinfo, tree, hf_lustre_ldlm_intent);
8399       }
8400       if(pb_type==PTL_RPC_MSG_REPLY)
8401       {
8402         guint32 ldlm_type;
8403         guint32 magic;
8404         /*[ldlm_reply]*/
8405         offset=lustre_dissect_struct_ldlm_reply(tvb, offset, pinfo, tree, hf_lustre_ldlm_reply,&ldlm_type) ;
8406         if(LUSTRE_BUFCOUNT>2 && (tvb_get_letohl(tvb,LUSTRE_BUFLEN_OFF+4*2) == 40))
8407           /* TODO :this code need to be check and test, the lustre corresponding code is'nt explicit, so
8408            * not sure to have this buffer, but in example it works fine
8409            */
8410           offset=lustre_dissect_struct_ost_lvb(tvb, offset, pinfo, tree, hf_lustre_ost_lvb);
8411         else
8412           if(LUSTRE_BUFCOUNT>2)
8413           {
8414             offset=lustre_dissect_struct_mdt_body(tvb, offset, pinfo, tree, hf_lustre_mdt_body) ;
8415             /*g_print("buflen_off+4*3 = %d", tvb_get_letohl(tvb,LUSTRE_BUFLEN_OFF+4*LUSTRE_DLM_INTENT_REC_OFF));*/
8416             if(LUSTRE_BUFCOUNT>2 &&
8417                 (tvb_get_letohl(tvb,LUSTRE_BUFLEN_OFF+4*LUSTRE_DLM_INTENT_REC_OFF) > 0))
8418             {
8419               magic=tvb_get_letohl(tvb, offset); /* TODO : replace this with a macro */
8420               switch(magic)
8421               {
8422                 case LOV_MAGIC_V1:
8423                   offset=lustre_dissect_struct_lov_mds_md_v1(tvb,offset,pinfo,tree,hf_lustre_lov_mds_md_v1);
8424                   break;
8425                 default:
8426                   offset=lustre_dissect_element_data(tvb, offset, pinfo, tree,
8427                       hf_lustre_extra_padding, LUSTRE_DLM_INTENT_REC_OFF);
8428                   break;
8429               };
8430             }
8431           }
8432       }
8433       break;
8434
8435     case LDLM_CONVERT:
8436       if(pb_type==PTL_RPC_MSG_REQUEST)
8437         /*[ldlm_request]*/
8438         offset=lustre_dissect_struct_ldlm_request(tvb, offset, pinfo, tree, hf_lustre_ldlm_request) ;
8439       if(pb_type==PTL_RPC_MSG_REPLY)
8440         /*[ldlm_reply]*/
8441         offset=lustre_dissect_struct_ldlm_reply(tvb, offset, pinfo, tree, hf_lustre_ldlm_reply, NULL) ;
8442       break;
8443
8444     case LDLM_CANCEL:
8445       if(pb_type==PTL_RPC_MSG_REQUEST)
8446         /*[ldlm_request]*/
8447         offset=lustre_dissect_struct_ldlm_request(tvb, offset, pinfo, tree, hf_lustre_ldlm_request) ;
8448       /*[nothing en reply]*/
8449       break;
8450
8451     case LDLM_BL_CALLBACK: /* TODO : check the corresponding code in lustre*/
8452       if(pb_type==PTL_RPC_MSG_REQUEST)
8453         /*[ldlm_request]*/
8454         offset=lustre_dissect_struct_ldlm_request(tvb, offset, pinfo, tree, hf_lustre_ldlm_request) ;
8455       break;
8456
8457     case LDLM_CP_CALLBACK:
8458       if(pb_type==PTL_RPC_MSG_REQUEST){
8459         /*[ldlm_request] if the third buffer exist we have [lvb data] so it's [ost_lvb] : TODO :
8460          * check that */
8461         offset=lustre_dissect_struct_ldlm_request(tvb, offset, pinfo, tree, hf_lustre_ldlm_request) ;
8462         if(LUSTRE_BUFCOUNT>=3)
8463           offset=lustre_dissect_struct_ost_lvb(tvb,offset,pinfo,tree,hf_lustre_ost_lvb);
8464       }
8465       /*reply : [nothing] */
8466       break;
8467
8468     case LDLM_GL_CALLBACK:
8469       if(pb_type==PTL_RPC_MSG_REQUEST)
8470         /*[ldlm_request] */
8471         offset=lustre_dissect_struct_ldlm_request(tvb, offset, pinfo, tree, hf_lustre_ldlm_request) ;
8472       else
8473         if(pb_type==PTL_RPC_MSG_REPLY)
8474           /*reply : [ost_lvb] <-- need to be check*/
8475           offset=lustre_dissect_struct_ost_lvb(tvb, offset, pinfo, tree, hf_lustre_ost_lvb);
8476       break;
8477
8478     default :
8479       break;
8480   }
8481   return offset;
8482 }
8483
8484 static int
8485 lustre_mgs_opcode_process(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree * tree _U_, guint32 opc _U_, guint32 pb_type)
8486 {
8487   switch (opc){
8488     case MGS_CONNECT :
8489       if (pb_type==PTL_RPC_MSG_REQUEST) /* [targetuuid][clientuuid][lustre_handle][obd_connect_data] */
8490         offset=lustre_dissect_generic_connect(tvb,offset,pinfo,tree);
8491       if (pb_type==PTL_RPC_MSG_REPLY) /*[obd_connect_data]*/
8492         offset=lustre_dissect_struct_obd_connect_data(tvb,offset,pinfo,tree,hf_lustre_obd_connect_data);
8493       break;
8494     case MGS_DISCONNECT :
8495       /*[nothing]*/
8496       break;
8497     case MGS_EXCEPTION :        /* node died, etc. */
8498       /*[nothing]*/
8499       break;
8500     case MGS_TARGET_REG:
8501       /*[mgs_target_info], mgs_handler.c mgs_handle_target_reg()  called whenever a target startup*/
8502       offset=lustre_dissect_struct_mgs_target_info(tvb, offset, pinfo, tree, hf_lustre_mgs_target_info);
8503       break;
8504     case MGS_TARGET_DEL:
8505       /*[nothing]*/
8506       break;
8507     case MGS_SET_INFO:
8508       /*[mgs_send_param], mgs_set_info_rpc()*/
8509       offset=lustre_dissect_struct_mgs_send_param(tvb,offset,pinfo,tree,hf_lustre_mgs_send_param);
8510       break;
8511     default:
8512       break;
8513   };
8514   return offset;
8515 }
8516
8517 static int
8518 lustre_odb_opcode_process(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree * tree _U_, guint32 opc _U_, guint32 pb_type)
8519 {
8520   switch(opc){
8521     case OBD_PING :
8522       /*[nothing]*/
8523       break;
8524     case OBD_LOG_CANCEL:
8525       /*[nothing]*/
8526       break;
8527     case OBD_QC_CALLBACK:
8528       if(pb_type==PTL_RPC_MSG_REQUEST)
8529         offset=lustre_dissect_struct_obd_quotactl(tvb, offset, pinfo, tree, hf_lustre_obd_quotactl);
8530       /*if (request)  : [nothing]*/
8531       break;
8532     default:
8533       break;
8534   };
8535   return offset;
8536 }
8537
8538 static int
8539 lustre_llog_opcode_process(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree * tree _U_, guint32 opc _U_, guint32 pb_type)
8540 {
8541   switch(opc){
8542     case LLOG_ORIGIN_HANDLE_CREATE     : /* in handler.c */
8543       /*[llogd_body]  (reply and request)*/
8544       offset=lustre_dissect_struct_llogd_body(tvb, offset, pinfo, tree, hf_lustre_llogd_body);
8545       if(pb_type==PTL_RPC_MSG_REQUEST) /*[filename] */
8546         if (LUSTRE_BUFCOUNT>2)
8547           offset=lustre_dissect_element_string(tvb, offset, pinfo, tree, hf_lustre_llogd_name,
8548               LUSTRE_REQ_REC_OFF+1);
8549       break;
8550     case LLOG_ORIGIN_HANDLE_NEXT_BLOCK :/* in handler.c */
8551       /* [llogd_body][???]
8552        * the size of second buf is LLOG_CHKUNK_SIZE, so it's maybee only bulk data */
8553       offset=lustre_dissect_struct_llogd_body(tvb, offset, pinfo, tree, hf_lustre_llogd_body);
8554       offset=lustre_dissect_element_data(tvb, offset, pinfo, tree, hf_lustre_llogd_chunk,
8555           LUSTRE_REQ_REC_OFF + 1 );
8556       break;
8557     case LLOG_ORIGIN_HANDLE_READ_HEADER:/* in handler.c */
8558       if(pb_type==PTL_RPC_MSG_REQUEST){
8559         /* [llogd_body][llog_log_hdr] */
8560         offset=lustre_dissect_struct_llogd_body(tvb, offset, pinfo, tree, hf_lustre_llogd_body);
8561         if(LUSTRE_BUFCOUNT>2)
8562           offset=lustre_dissect_struct_llog_log_hdr(tvb, offset, pinfo, tree,
8563               hf_lustre_llogd_log_hdr);
8564       }
8565       if(pb_type==PTL_RPC_MSG_REPLY) /* [llog_log_hdr] */
8566         offset=lustre_dissect_struct_llog_log_hdr(tvb, offset, pinfo, tree,
8567             hf_lustre_llogd_log_hdr);
8568       break;
8569     case LLOG_ORIGIN_HANDLE_WRITE_REC  : /* I think this is obsolete */
8570       /*[nothing]*/
8571       break;
8572     case LLOG_ORIGIN_HANDLE_CLOSE      :/* handler.c */
8573       /*[nothing]*/
8574       break;
8575     case LLOG_ORIGIN_CONNECT           : /* ost_handler.c */
8576       /*[nothing]*/
8577     case LLOG_CATINFO                  : /*in handler.c */
8578       if(pb_type==PTL_RPC_MSG_REQUEST){
8579         /* [keyword][if keyword=config  [char*] else [nothing]] */
8580         offset=lustre_dissect_element_string(tvb, offset, pinfo, tree, hf_lustre_llogd_keyword,
8581             LUSTRE_REQ_REC_OFF);
8582         if(strcmp(tvb_get_string(tvb, LUSTRE_REQ_REC_OFF, tvb_get_letohl(tvb,
8583                   LUSTRE_BUFLEN_OFF+4*LUSTRE_REQ_REC_OFF)), "config")==0) /*  if(keyword ==
8584                                                                               "config") */
8585           offset=lustre_dissect_element_string(tvb, offset, pinfo, tree, hf_lustre_llogd_client,
8586               LUSTRE_REQ_REC_OFF+1);
8587       }
8588       if(pb_type==PTL_RPC_MSG_REPLY)
8589         /*[buf] sizeof =  llog_chunk_size*/
8590         offset=lustre_dissect_element_data(tvb, offset, pinfo, tree, hf_lustre_llogd_chunk,
8591             LUSTRE_REQ_REC_OFF + 1 );
8592       /* TODO TODO : check if it's note a catid */
8593       break;
8594     case LLOG_ORIGIN_HANDLE_PREV_BLOCK : /* in handler.c */
8595       /* [llogd_body] in both case */
8596       offset=lustre_dissect_struct_llogd_body(tvb, offset, pinfo, tree, hf_lustre_llogd_body);
8597       if(pb_type==PTL_RPC_MSG_REPLY)
8598         /*[buf] size of llog_chunk_size*/
8599         offset=lustre_dissect_element_data(tvb, offset, pinfo, tree, hf_lustre_llogd_chunk,
8600             LUSTRE_REQ_REC_OFF + 1 );
8601       break;
8602     case LLOG_ORIGIN_HANDLE_DESTROY    : /* in handler.c */
8603       /*[llogd_body] in both case*/
8604       offset=lustre_dissect_struct_llogd_body(tvb, offset, pinfo, tree, hf_lustre_llogd_body);
8605       break;
8606     default:
8607       break;
8608   };
8609
8610   return offset;
8611 }
8612
8613 /* process lustre opcode :
8614    check if opcode is in range_opcode, and call the corresponding opcode process function */
8615 static int
8616 lustre_opcode_process(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree * tree _U_, guint32 opc _U_, guint32 pb_type)
8617 {
8618   if (opc <= OST_LAST_OPC) /* OST opcodes */
8619     offset=lustre_ost_opcode_process( tvb , offset ,pinfo ,  tree , opc , pb_type) ;
8620
8621   if ( (opc >= MDS_FIRST_OPC) &&  (opc < MDS_LAST_OPC )) /* MDS opcodes */
8622     offset=lustre_mds_opcode_process( tvb , offset ,pinfo ,  tree , opc , pb_type) ;
8623
8624   if ( (opc >= LDLM_FIRST_OPC) && (opc < LDLM_LAST_OPC) ) /*LDLM Opcodes*/
8625     offset=lustre_ldlm_opcode_process( tvb , offset ,pinfo ,  tree , opc , pb_type) ;
8626
8627   if( (opc>= MGS_FIRST_OPC) && (opc <= MGS_LAST_OPC)) /* MGS Opcodes */
8628     offset=lustre_mgs_opcode_process( tvb , offset ,pinfo ,  tree , opc , pb_type) ;
8629
8630   if( (opc>= OBD_FIRST_OPC) && (opc<=OBD_LAST_OPC)) /* ODB Opcodes */
8631     offset=lustre_odb_opcode_process( tvb , offset ,pinfo ,  tree , opc , pb_type) ;
8632
8633   if( (opc>=LLOG_FIRST_OPC) && (opc<=LLOG_LAST_OPC)) /* LLOG Opcodes */
8634     offset=lustre_llog_opcode_process( tvb , offset ,pinfo ,  tree , opc , pb_type) ;
8635
8636   return offset ;
8637 }
8638
8639 /* ----------------------------------------------- */
8640 /* add an extra padding to be aligned to 8bytes */
8641 static int
8642 add_extra_padding(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree * tree _U_)
8643 {
8644   guint32 padding_len;
8645
8646   padding_len = (8- offset%8)%8;
8647   if(padding_len){
8648     proto_tree_add_item(tree, hf_lustre_extra_padding , tvb, offset, padding_len, TRUE);
8649     offset+=padding_len;
8650   }
8651   return offset;
8652 }
8653 /* ----------------------------------------------- */
8654
8655 static int
8656 ldlm_opcode_process(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree * tree _U_, guint64 intent_opc _U_)
8657 {
8658   /* all corresponding code is in mdc_locks.c in function mdc_enqueue() */
8659   /* if 0x0003 we have CREAT + OPEN
8660   */
8661   if (intent_opc & IT_OPEN) {
8662     /* mdc_intent_open_pack(), d'où [opcode][mdc_rec_create][name][eada] */
8663     offset=lustre_dissect_struct_mdt_rec_create(tvb, offset, pinfo, tree, hf_lustre_mdt_rec_create);
8664     offset=lustre_dissect_element_string(tvb, offset, pinfo, tree, hf_lustre_reint_name, LUSTRE_DLM_INTENT_REC_OFF+1);
8665     offset=lustre_dissect_element_data(tvb, offset, pinfo, tree, hf_lustre_mds_xattr_eadata,
8666         LUSTRE_DLM_INTENT_REC_OFF+2); /* TODO : replace hf with eada hf */
8667
8668   }
8669   if (intent_opc & IT_UNLINK){
8670     /* mdc_intent_unlink_pack(), d'où [opcode][mdt_rec_unlink][name] */
8671     offset=lustre_dissect_struct_mdt_rec_unlink(tvb, offset, pinfo, tree, hf_lustre_mdt_rec_unlink);
8672     offset=lustre_dissect_element_string(tvb, offset, pinfo, tree, hf_lustre_reint_name, LUSTRE_DLM_INTENT_REC_OFF+1);
8673   }
8674   if (intent_opc & IT_GETATTR){
8675     /* mdc_intent_lookup_pack, d'où [mdt_body][name] */
8676     offset=lustre_dissect_struct_mdt_body(tvb, offset, pinfo, tree, hf_lustre_mdt_body) ;
8677     offset=lustre_dissect_element_string(tvb, offset, pinfo, tree, hf_lustre_reint_name, LUSTRE_DLM_INTENT_REC_OFF+1);
8678   }
8679
8680   if (intent_opc & IT_LOOKUP){
8681     /* mdc_intent_lookup_pack, d'où [mdt_body][name] */
8682     offset=lustre_dissect_struct_mdt_body(tvb, offset, pinfo, tree, hf_lustre_mdt_body) ;
8683     offset=lustre_dissect_element_string(tvb, offset, pinfo, tree, hf_lustre_reint_name, LUSTRE_DLM_INTENT_REC_OFF+1);
8684   }
8685   return offset;
8686 }
8687
8688
8689
8690 /* ----------------------------------------------- */
8691 /* function to test if the packet is entirely dissected  add BUG in PROTOCOL COL when it's not*/
8692 static void
8693 sanity_check(tvbuff_t *tvb, packet_info *pinfo, guint32 val_offset _U_)
8694 {
8695   guint32 magic_number ;
8696   guint32 somme_buflen = 0 ;
8697   guint32 i ;
8698
8699   magic_number = tvb_get_letohl(tvb, 8);
8700
8701
8702   for (i=0;i<LUSTRE_BUFCOUNT;i++)
8703     somme_buflen += tvb_get_letohl(tvb, LUSTRE_BUFLEN_OFF +
8704         4 * i ) + (8- tvb_get_letohl(tvb, LUSTRE_BUFLEN_OFF+4 * i)%8)%8; /* we add the
8705                                                                             corresponding
8706                                                                             extra padding,
8707                                                                             because extra
8708                                                                             padding isn't
8709                                                                             count in buflen
8710                                                                             */
8711
8712   if(val_offset!=somme_buflen){
8713     /*g_print("somme_buflen=%d, val_offset = %d \n",somme_buflen,val_offset);*/
8714     if (check_col(pinfo->cinfo, COL_INFO)) {
8715       col_append_str(pinfo->cinfo, COL_PROTOCOL, "BUG");
8716     }
8717   }
8718
8719 }
8720
8721
8722 /* IDL: struct lustre_msg_v1 { */
8723 /* IDL:   struct lustre_handle { */
8724 /* IDL: } lm_handle; */
8725 /* IDL:   uint32 lm_magic; */
8726 /* IDL:   uint32 lm_type; */
8727 /* IDL:   uint32 lm_version; */
8728 /* IDL:   uint32 lm_opc; */
8729 /* IDL:   uint64 lm_last_xid; */
8730 /* IDL:   uint64 lm_last_committed; */
8731 /* IDL:   uint64 lm_transno; */
8732 /* IDL:   uint32 lm_status; */
8733 /* IDL:   uint32 lm_flags; */
8734 /* IDL:   uint32 lm_conn_cnt; */
8735 /* IDL:   uint32 lm_bufcount; */
8736 /* IDL:   uint32 lm_buflens[0]; */
8737 /* IDL: } */
8738
8739
8740 static int
8741 lustre_dissect_element_msg_v1_lm_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
8742 {
8743   /*TODO : replace with a v1 handle*/
8744   offset=lustre_dissect_struct_handle_cookie(tvb,offset,pinfo,tree,hf_lustre_lustre_msg_v1_lm_handle);
8745   return offset;
8746 }
8747
8748 static int
8749 lustre_dissect_element_msg_v1_lm_magic(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
8750 {
8751   offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_lustre_msg_v1_lm_magic);
8752
8753   return offset;
8754 }
8755
8756 static int
8757 lustre_dissect_element_msg_v1_lm_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
8758 {
8759   offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_lustre_msg_v1_lm_type);
8760
8761   return offset;
8762 }
8763
8764 static int
8765 lustre_dissect_element_msg_v1_lm_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
8766 {
8767   offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_lustre_msg_v1_lm_version);
8768
8769   return offset;
8770 }
8771
8772 static int
8773 lustre_dissect_element_msg_v1_lm_opc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
8774 {
8775   offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_lustre_msg_v1_lm_opc);
8776
8777   return offset;
8778 }
8779
8780 static int
8781 lustre_dissect_element_msg_v1_lm_last_xid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
8782 {
8783   offset=dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_lustre_msg_v1_lm_last_xid);
8784
8785   return offset;
8786 }
8787
8788 static int
8789 lustre_dissect_element_msg_v1_lm_last_committed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
8790 {
8791   offset=dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_lustre_msg_v1_lm_last_committed);
8792
8793   return offset;
8794 }
8795
8796 static int
8797 lustre_dissect_element_msg_v1_lm_transno(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
8798 {
8799   offset=dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_lustre_msg_v1_lm_transno);
8800
8801   return offset;
8802 }
8803
8804 static int
8805 lustre_dissect_element_msg_v1_lm_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
8806 {
8807   offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_lustre_msg_v1_lm_status);
8808
8809   return offset;
8810 }
8811
8812 static int
8813 lustre_dissect_element_msg_v1_lm_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
8814 {
8815   offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_lustre_msg_v1_lm_flags);
8816
8817   return offset;
8818 }
8819
8820 static int
8821 lustre_dissect_element_msg_v1_lm_conn_cnt(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
8822 {
8823   offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_lustre_msg_v1_lm_conn_cnt);
8824
8825   return offset;
8826 }
8827
8828 static int
8829 lustre_dissect_element_msg_v1_lm_bufcount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
8830 {
8831   offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_lustre_msg_v1_lm_bufcount);
8832
8833   return offset;
8834 }
8835
8836 static int
8837 lustre_dissect_element_msg_v1_lm_buflens_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
8838 {
8839   offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_lustre_msg_v1_lm_buflens);
8840
8841   return offset;
8842 }
8843
8844 static int
8845 lustre_dissect_element_msg_v1_lm_buflens(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
8846 {
8847   guint32 bufcount ;
8848   gboolean extra_padding ;
8849   guint i;
8850
8851   bufcount=tvb_get_letohl(tvb, offset-4); /* TODO : replace with a macro */
8852
8853   if (bufcount & 1) /* we add an extra padding if bufcount is odd */
8854     extra_padding = 1 ;
8855   else
8856     extra_padding = 0 ;
8857
8858   for (i=0;i<bufcount;i++) {
8859     offset=lustre_dissect_element_msg_v1_lm_buflens_(tvb, offset, pinfo, tree);
8860   }
8861   if (extra_padding)
8862   {
8863     offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_extra_padding);
8864   }
8865
8866   return offset;
8867 }
8868
8869
8870
8871 int
8872 lustre_dissect_struct_msg_v1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, int hf_index _U_)
8873 {
8874   proto_item *item = NULL;
8875   proto_tree *tree = NULL;
8876   int old_offset;
8877   guint32 opc ; /* opcode */
8878   guint32 pb_type; /* type : {request, reply, error} */
8879
8880
8881
8882   old_offset=offset;
8883   tree=parent_tree;
8884   // if (parent_tree) {
8885   //     item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
8886   //     tree = proto_item_add_subtree(item, ett_lustre_lustre_msg_v1);
8887   // }
8888
8889   offset=lustre_dissect_element_msg_v1_lm_handle(tvb, offset, pinfo, tree);
8890
8891   offset=lustre_dissect_element_msg_v1_lm_magic(tvb, offset, pinfo, tree);
8892
8893   pb_type = tvb_get_letohl(tvb, offset);
8894   offset=lustre_dissect_element_msg_v1_lm_type(tvb, offset, pinfo, tree);
8895
8896   offset=lustre_dissect_element_msg_v1_lm_version(tvb, offset, pinfo, tree);
8897   opc = tvb_get_letohl(tvb, offset);
8898   offset=lustre_dissect_element_msg_v1_lm_opc(tvb, offset, pinfo, tree);
8899
8900   offset=lustre_dissect_element_msg_v1_lm_last_xid(tvb, offset, pinfo, tree);
8901
8902   offset=lustre_dissect_element_msg_v1_lm_last_committed(tvb, offset, pinfo, tree);
8903
8904   offset=lustre_dissect_element_msg_v1_lm_transno(tvb, offset, pinfo, tree);
8905
8906   offset=lustre_dissect_element_msg_v1_lm_status(tvb, offset, pinfo, tree);
8907
8908   offset=lustre_dissect_element_msg_v1_lm_flags(tvb, offset, pinfo, tree);
8909
8910   offset=lustre_dissect_element_msg_v1_lm_conn_cnt(tvb, offset, pinfo, tree);
8911
8912   offset=lustre_dissect_element_msg_v1_lm_bufcount(tvb, offset, pinfo, tree);
8913
8914   offset=lustre_dissect_element_msg_v1_lm_buflens(tvb, offset, pinfo, tree);
8915
8916
8917   proto_item_set_len(item, offset-old_offset);
8918
8919   /* display some nice infos */
8920   display_info_str(parent_tree, pinfo->cinfo, COL_INFO, val_to_str(opc, lustre_op_codes, "Unknown"));
8921   display_info_fstr(parent_tree, pinfo->cinfo,COL_INFO, " %s ", val_to_str(pb_type, lustre_LMTypes, "Unknown"));
8922
8923   offset=lustre_opcode_process(tvb, offset, pinfo, tree, opc, pb_type);
8924
8925   return offset;
8926 }
8927
8928 /* IDL: struct ptlrpc_body { */
8929 /* IDL:   struct lustre_handle { */
8930 /* IDL: } pb_handle; */
8931 /* IDL:   uint32 pb_type; */
8932 /* IDL:   uint32 pb_version; */
8933 /* IDL:   uint32 pb_opc; */
8934 /* IDL:   uint32 pb_status; */
8935 /* IDL:   uint64 pb_last_xid; */
8936 /* IDL:   uint64 pb_last_seen; */
8937 /* IDL:   uint64 pb_last_committed; */
8938 /* IDL:   uint64 pb_transno; */
8939 /* IDL:   uint32 pb_flags; */
8940 /* IDL:   uint32 pb_op_flags; */
8941 /* IDL:   uint32 pb_conn_cnt; */
8942 /* IDL:   uint32 pb_timeout; */
8943 /* IDL:   uint32 pb_service_time; */
8944 /* IDL:   uint32 pb_limit; */
8945 /* IDL:   uint64 pb_slv; */
8946 /* IDL: } */
8947
8948 static int
8949 lustre_dissect_element_ptlrpc_body_pb_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
8950 {
8951   offset=lustre_dissect_struct_handle_cookie(tvb,offset,pinfo,tree,hf_lustre_ptlrpc_body_pb_handle);
8952
8953   return offset;
8954 }
8955
8956 static int
8957 lustre_dissect_element_ptlrpc_body_pb_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
8958 {
8959   offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ptlrpc_body_pb_type);
8960
8961   return offset;
8962 }
8963
8964 static int
8965 lustre_dissect_element_ptlrpc_body_pb_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
8966 {
8967   offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ptlrpc_body_pb_version);
8968
8969   return offset;
8970 }
8971
8972 static int
8973 lustre_dissect_element_ptlrpc_body_pb_opc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
8974 {
8975   offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ptlrpc_body_pb_opc);
8976
8977   return offset;
8978 }
8979
8980 static int
8981 lustre_dissect_element_ptlrpc_body_pb_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
8982 {
8983   offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ptlrpc_body_pb_status);
8984
8985   return offset;
8986 }
8987
8988 static int
8989 lustre_dissect_element_ptlrpc_body_pb_last_xid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
8990 {
8991   offset=dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_ptlrpc_body_pb_last_xid);
8992
8993   return offset;
8994 }
8995
8996 static int
8997 lustre_dissect_element_ptlrpc_body_pb_last_seen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
8998 {
8999   offset=dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_ptlrpc_body_pb_last_seen);
9000
9001   return offset;
9002 }
9003
9004 static int
9005 lustre_dissect_element_ptlrpc_body_pb_last_committed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
9006 {
9007   offset=dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_ptlrpc_body_pb_last_committed);
9008
9009   return offset;
9010 }
9011
9012 static int
9013 lustre_dissect_element_ptlrpc_body_pb_transno(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
9014 {
9015   offset=dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_ptlrpc_body_pb_transno);
9016
9017   return offset;
9018 }
9019
9020 static int
9021 lustre_dissect_element_ptlrpc_body_pb_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
9022 {
9023   offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ptlrpc_body_pb_flags);
9024
9025   return offset;
9026 }
9027
9028 static int
9029 lustre_dissect_element_ptlrpc_body_pb_op_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
9030 {
9031   offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ptlrpc_body_pb_op_flags);
9032
9033   return offset;
9034 }
9035
9036 static int
9037 lustre_dissect_element_ptlrpc_body_pb_conn_cnt(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
9038 {
9039   offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ptlrpc_body_pb_conn_cnt);
9040
9041   return offset;
9042 }
9043
9044 static int
9045 lustre_dissect_element_ptlrpc_body_pb_timeout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
9046 {
9047   offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ptlrpc_body_pb_timeout);
9048
9049   return offset;
9050 }
9051
9052 static int
9053 lustre_dissect_element_ptlrpc_body_pb_service_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
9054 {
9055   offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ptlrpc_body_pb_service_time);
9056
9057   return offset;
9058 }
9059
9060 static int
9061 lustre_dissect_element_ptlrpc_body_pb_limit(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
9062 {
9063   offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ptlrpc_body_pb_limit);
9064
9065   return offset;
9066 }
9067
9068 static int
9069 lustre_dissect_element_ptlrpc_body_pb_slv(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
9070 {
9071   offset=dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_ptlrpc_body_pb_slv);
9072
9073   return offset;
9074 }
9075
9076 static int
9077 lustre_dissect_struct_ptlrpc_body(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, int hf_index _U_, guint32 buf_len _U_ )
9078 {
9079   proto_item *item = NULL;
9080   proto_tree *tree = NULL;
9081   int old_offset;
9082
9083   guint32 opc, pb_type;
9084
9085
9086   old_offset=offset;
9087
9088
9089   if (parent_tree) {
9090     item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
9091     tree = proto_item_add_subtree(item, ett_lustre_ptlrpc_body);
9092   }
9093
9094   offset=lustre_dissect_element_ptlrpc_body_pb_handle(tvb, offset, pinfo, tree);
9095
9096   pb_type = tvb_get_letohl(tvb, offset);
9097   //g_print("msg_v2_lm_type_offset = %d \n" , offset) ;
9098
9099   offset=lustre_dissect_element_ptlrpc_body_pb_type(tvb, offset, pinfo, tree);
9100
9101   offset=lustre_dissect_element_ptlrpc_body_pb_version(tvb, offset, pinfo, tree);
9102
9103   // g_print("msg_v2_opcode_offset %d  \n", offset);
9104   opc = tvb_get_letohl(tvb, offset);
9105   offset=lustre_dissect_element_ptlrpc_body_pb_opc(tvb, offset, pinfo, tree);
9106
9107   offset=lustre_dissect_element_ptlrpc_body_pb_status(tvb, offset, pinfo, tree);
9108
9109   offset=lustre_dissect_element_ptlrpc_body_pb_last_xid(tvb, offset, pinfo, tree);
9110
9111   offset=lustre_dissect_element_ptlrpc_body_pb_last_seen(tvb, offset, pinfo, tree);
9112
9113   offset=lustre_dissect_element_ptlrpc_body_pb_last_committed(tvb, offset, pinfo, tree);
9114
9115   offset=lustre_dissect_element_ptlrpc_body_pb_transno(tvb, offset, pinfo, tree);
9116
9117   offset=lustre_dissect_element_ptlrpc_body_pb_flags(tvb, offset, pinfo, tree);
9118
9119   offset=lustre_dissect_element_ptlrpc_body_pb_op_flags(tvb, offset, pinfo, tree);
9120
9121   offset=lustre_dissect_element_ptlrpc_body_pb_conn_cnt(tvb, offset, pinfo, tree);
9122
9123   offset=lustre_dissect_element_ptlrpc_body_pb_timeout(tvb, offset, pinfo, tree);
9124
9125   offset=lustre_dissect_element_ptlrpc_body_pb_service_time(tvb, offset, pinfo, tree);
9126
9127   offset=lustre_dissect_element_ptlrpc_body_pb_limit(tvb, offset, pinfo, tree);
9128
9129   offset=lustre_dissect_element_ptlrpc_body_pb_slv(tvb, offset, pinfo, tree);
9130
9131
9132
9133   proto_item_set_len(item, offset-old_offset);
9134
9135   /* display some nice infos */
9136   display_info_str(parent_tree, pinfo->cinfo, COL_INFO, val_to_str(opc, lustre_op_codes, "Unknown"));
9137   display_info_fstr(parent_tree, pinfo->cinfo,COL_INFO, " %s ", val_to_str(pb_type, lustre_LMTypes, "Unknown"));
9138
9139   /* on utilise parent_tree pour bien distinguer les différents buffers (relatifs Ã  bufcount + buflen), il s'agit d'un choix de présentation */
9140   offset=lustre_opcode_process(tvb, offset, pinfo, parent_tree, opc, pb_type);
9141
9142   sanity_check(tvb,pinfo,offset-old_offset);
9143   return offset;
9144 }
9145
9146
9147
9148 /* IDL: struct lustre_msg_v2 { */
9149 /* IDL:   uint32 lm_bufcount; */
9150 /* IDL:   uint32 lm_secflvr; */
9151 /* IDL:   uint32 lm_magic; */
9152 /* IDL:   uint32 lm_repsize; */
9153 /* IDL:   uint32 lm_cksum; */
9154 /* IDL:   uint32 lm_flags; */
9155 /* IDL:   uint32 lm_padding_2; */
9156 /* IDL:   uint32 lm_padding_3; */
9157 /* IDL:   uint32 lm_buflens[0]; */
9158 /* IDL: } */
9159
9160 static int
9161 lustre_dissect_element_msg_v2_lm_bufcount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
9162 {
9163   proto_tree_add_item(tree, hf_lustre_lustre_msg_v2_lm_bufcount, tvb, offset, 4, TRUE);
9164   offset += 4 ;
9165   return offset;
9166 }
9167
9168 static int
9169 lustre_dissect_element_msg_v2_lm_secflvr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
9170 {
9171   offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_lustre_msg_v2_lm_secflvr);
9172
9173   return offset;
9174 }
9175
9176 static int
9177 lustre_dissect_element_msg_v2_lm_magic(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
9178 {
9179   offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_lustre_msg_v2_lm_magic);
9180
9181   return offset;
9182 }
9183
9184 static int
9185 lustre_dissect_element_msg_v2_lm_repsize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
9186 {
9187   offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_lustre_msg_v2_lm_repsize);
9188
9189   return offset;
9190 }
9191
9192 static int
9193 lustre_dissect_element_msg_v2_lm_cksum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
9194 {
9195   offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_lustre_msg_v2_lm_cksum);
9196
9197   return offset;
9198 }
9199
9200 static int
9201 lustre_dissect_element_msg_v2_lm_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
9202 {
9203   offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_lustre_msg_v2_lm_flags);
9204
9205   return offset;
9206 }
9207
9208 static int
9209 lustre_dissect_element_msg_v2_lm_padding_2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
9210 {
9211   offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_lustre_msg_v2_lm_padding_2);
9212
9213   return offset;
9214 }
9215
9216 static int
9217 lustre_dissect_element_msg_v2_lm_padding_3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
9218 {
9219   offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_lustre_msg_v2_lm_padding_3);
9220
9221   return offset;
9222 }
9223
9224
9225
9226 static int
9227 lustre_dissect_element_msg_v2_lm_buflens_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
9228 {
9229   offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_lustre_msg_v2_lm_buflens);
9230
9231   return offset;
9232 }
9233
9234 int
9235 lustre_dissect_struct_msg_v2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, int hf_index _U_)
9236 {
9237   proto_item *item = NULL;
9238   proto_tree *tree = NULL;
9239   guint32 bufcount ;
9240   int old_offset;
9241   guint32 i ;
9242   guint32 buf_len_offset;
9243   guint32 current_buf_len ;
9244   gboolean extra_padding ;
9245
9246
9247   old_offset=offset;
9248   /* to get a light display */
9249   tree=parent_tree;
9250   //  if (parent_tree) {
9251   //      item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
9252   //      tree = proto_item_add_subtree(item, ett_lustre_lustre_msg_v2);
9253   //  }
9254
9255   bufcount = tvb_get_letohl(tvb,offset);
9256   offset=lustre_dissect_element_msg_v2_lm_bufcount(tvb, offset, pinfo, tree);
9257
9258   offset=lustre_dissect_element_msg_v2_lm_secflvr(tvb, offset, pinfo, tree);
9259
9260   offset=lustre_dissect_element_msg_v2_lm_magic(tvb, offset, pinfo, tree);
9261
9262   offset=lustre_dissect_element_msg_v2_lm_repsize(tvb, offset, pinfo, tree);
9263
9264   offset=lustre_dissect_element_msg_v2_lm_cksum(tvb, offset, pinfo, tree);
9265
9266   offset=lustre_dissect_element_msg_v2_lm_flags(tvb, offset, pinfo, tree);
9267
9268   offset=lustre_dissect_element_msg_v2_lm_padding_2(tvb, offset, pinfo, tree);
9269
9270   offset=lustre_dissect_element_msg_v2_lm_padding_3(tvb, offset, pinfo, tree);
9271
9272
9273
9274   if (bufcount & 1) /* we add an extra padding if bufcount is odd */
9275     extra_padding = 1 ;
9276   else
9277     extra_padding = 0 ;
9278
9279   buf_len_offset=offset ;
9280   for (i=0;i<bufcount;i++) {
9281     offset=lustre_dissect_element_msg_v2_lm_buflens_(tvb, offset, pinfo, tree);
9282   }
9283
9284   if (extra_padding)
9285   {
9286     offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_extra_padding);
9287   }
9288
9289
9290
9291   current_buf_len = tvb_get_letohl(tvb, buf_len_offset);
9292   offset=lustre_dissect_struct_ptlrpc_body(tvb,offset, pinfo, tree, hf_lustre_ptlrpc_body_pb, current_buf_len);
9293
9294   proto_item_set_len(item, offset-old_offset);
9295
9296   return offset;
9297 }
9298
9299
9300
9301
9302 static void
9303 dissect_lustre(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
9304 {
9305   if (check_col(pinfo->cinfo, COL_PROTOCOL))
9306     col_set_str(pinfo->cinfo, COL_PROTOCOL, "Lustre");
9307
9308   /*light display*/
9309   if (check_col(pinfo->cinfo, COL_INFO))
9310     col_set_str(pinfo->cinfo, COL_INFO, "");
9311   /*    guint32 magic_number ; */
9312   /*    magic_number = tvb_get_letohl(tvb, LUSTRE_MAGIC_OFFSET);   */
9313   /*    switch (magic_number)*/
9314   /*    {*/
9315   /*        case LUSTRE_MSG_MAGIC_V1:*/
9316   /*            col_append_fstr(pinfo->cinfo, COL_INFO, " V1 ");*/
9317   /*            break;*/
9318   /*        case LUSTRE_MSG_MAGIC_V2:*/
9319   /*            col_append_fstr(pinfo->cinfo, COL_INFO, " V2 ");*/
9320   /*            break;*/
9321   /*        default:*/
9322   /*            break;*/
9323   /*    }*/
9324
9325   if (tree) {
9326
9327     guint32 magic_number ;
9328     guint32 offset;
9329     proto_item *ti  = NULL ;
9330     proto_tree * lustre_tree = NULL ;
9331
9332
9333     ti = proto_tree_add_item(tree,proto_lustre,tvb,0,-1,FALSE);
9334     lustre_tree = proto_item_add_subtree(ti,ett_lustre);
9335
9336
9337     magic_number = tvb_get_letohl(tvb, 8);
9338
9339
9340     switch (magic_number){
9341       case LUSTRE_MSG_MAGIC_V1:
9342         /* put some nice info*/
9343         proto_item_append_text(lustre_tree, " V1 ");
9344         offset=lustre_dissect_struct_msg_v1(tvb, 0, pinfo, lustre_tree, proto_lustre ) ;
9345         break;
9346       case LUSTRE_MSG_MAGIC_V2:
9347         /* put some nice info*/
9348         proto_item_append_text(lustre_tree, " V2 ");
9349         offset=lustre_dissect_struct_msg_v2(tvb, 0, pinfo, lustre_tree,  proto_lustre ) ;
9350         break;
9351       default:
9352         break;
9353     }
9354
9355   }
9356 }
9357
9358 void proto_register_dcerpc_lustre(void)
9359 {
9360   static hf_register_info hf[] = {
9361     { &hf_lustre_mdt_body,
9362       { "mdt body", "lustre.mdt_body", FT_NONE, BASE_NONE, NULL , 0 , "", HFILL }},
9363     { &hf_lustre_mdt_body_fid1,
9364       { "Fid1", "lustre.mdt_body.fid1", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }},
9365     { &hf_lustre_mdt_body_fid2,
9366       { "Fid2", "lustre.mdt_body.fid2", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }},
9367     { &hf_lustre_mdt_body_handle,
9368       { "Handle", "lustre.mdt_body.handle", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }},
9369     { &hf_lustre_mdt_body_valid,
9370       { "Valid", "lustre.mdt_body.valid", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }},
9371     { &hf_lustre_mdt_body_size,
9372       { "Size", "lustre.mdt_body.size", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }},
9373     { &hf_lustre_mdt_body_mtime,
9374       { "Mtime", "lustre.mdt_body.mtime",FT_ABSOLUTE_TIME, BASE_DEC, NULL, 0, "", HFILL }},
9375     { &hf_lustre_mdt_body_atime,
9376       { "Atime", "lustre.mdt_body.atime",FT_ABSOLUTE_TIME, BASE_DEC, NULL, 0, "", HFILL }},
9377     { &hf_lustre_mdt_body_ctime,
9378       { "Ctime", "lustre.mdt_body.ctime",FT_ABSOLUTE_TIME, BASE_DEC, NULL, 0, "", HFILL }},
9379     { &hf_lustre_mdt_body_blocks,
9380       { "Blocks", "lustre.mdt_body.blocks", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }},
9381     { &hf_lustre_mdt_body_ioepoch,
9382       { "Ioepoch", "lustre.mdt_body.ioepoch", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }},
9383     { &hf_lustre_mdt_body_ino,
9384       { "Ino", "lustre.mdt_body.ino", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }},
9385     { &hf_lustre_mdt_body_fsuid,
9386       { "Fsuid", "lustre.mdt_body.fsuid", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9387     { &hf_lustre_mdt_body_fsgid,
9388       { "Fsgid", "lustre.mdt_body.fsgid", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9389     { &hf_lustre_mdt_body_capability,
9390       { "Capability", "lustre.mdt_body.capability", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9391     { &hf_lustre_mdt_body_mode,
9392       { "Mode", "lustre.mdt_body.mode", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9393     { &hf_lustre_mdt_body_uid,
9394       { "Uid", "lustre.mdt_body.uid", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9395     { &hf_lustre_mdt_body_gid,
9396       { "Gid", "lustre.mdt_body.gid", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9397     { &hf_lustre_mdt_body_flags,
9398       { "Flags", "lustre.mdt_body.flags", FT_UINT32, BASE_HEX, VALS(lustre_mds_flags_vals) , 0, "", HFILL }},
9399     { &hf_lustre_mdt_body_rdev,
9400       { "Rdev", "lustre.mdt_body.rdev", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9401     { &hf_lustre_mdt_body_nlink,
9402       { "Nlink", "lustre.mdt_body.nlink", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9403     { &hf_lustre_mdt_body_generation,
9404       { "Generation", "lustre.mdt_body.generation", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9405     { &hf_lustre_mdt_body_suppgid,
9406       { "Suppgid", "lustre.mdt_body.suppgid", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9407     { &hf_lustre_mdt_body_eadatasize,
9408       { "Eadatasize", "lustre.mdt_body.eadatasize", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9409     { &hf_lustre_mdt_body_aclsize,
9410       { "Aclsize", "lustre.mdt_body.aclsize", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9411     { &hf_lustre_mdt_body_max_mdsize,
9412       { "Max Mdsize", "lustre.mdt_body.max_mdsize", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9413     { &hf_lustre_mdt_body_max_cookiesize,
9414       { "Max Cookiesize", "lustre.mdt_body.max_cookiesize", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9415     { &hf_lustre_mdt_body_uid_h,
9416       { "Uid H", "lustre.mdt_body.uid_h", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9417     { &hf_lustre_mdt_body_gid_h,
9418       { "Gid H", "lustre.mdt_body.gid_h", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9419     { &hf_lustre_mdt_body_padding_5,
9420       { "Padding 5", "lustre.mdt_body.padding_5", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9421     { &hf_lustre_mdt_body_padding_6,
9422       { "Padding 6", "lustre.mdt_body.padding_6", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }},
9423     { &hf_lustre_mdt_body_padding_7,
9424       { "Padding 7", "lustre.mdt_body.padding_7", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }},
9425     { &hf_lustre_mdt_body_padding_8,
9426       { "Padding 8", "lustre.mdt_body.padding_8", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }},
9427     { &hf_lustre_mdt_body_padding_9,
9428       { "Padding 9", "lustre.mdt_body.padding_9", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }},
9429     { &hf_lustre_mdt_body_padding_10,
9430       { "Padding 10", "lustre.mdt_body.padding_10", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }},
9431
9432     { &hf_lustre_mdt_rec_setattr,
9433       { "mdt rec setattr", "lustre.mdt_rec_setattr", FT_NONE, BASE_NONE, NULL , 0 , "", HFILL}},
9434     { &hf_lustre_mdt_rec_setattr_sa_opcode,
9435       { "Sa Opcode", "lustre.mdt_rec_setattr.sa_opcode", FT_UINT32, BASE_DEC, VALS(lustre_mds_reint_t_vals), 0, "", HFILL }},
9436     { &hf_lustre_mdt_rec_setattr_sa_cap,
9437       { "Sa Cap", "lustre.mdt_rec_setattr.sa_cap", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9438     { &hf_lustre_mdt_rec_setattr_sa_fsuid,
9439       { "Sa Fsuid", "lustre.mdt_rec_setattr.sa_fsuid", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9440     { &hf_lustre_mdt_rec_setattr_sa_fsuid_h,
9441       { "Sa Fsuid H", "lustre.mdt_rec_setattr.sa_fsuid_h", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9442     { &hf_lustre_mdt_rec_setattr_sa_fsgid,
9443       { "Sa Fsgid", "lustre.mdt_rec_setattr.sa_fsgid", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9444     { &hf_lustre_mdt_rec_setattr_sa_fsgid_h,
9445       { "Sa Fsgid H", "lustre.mdt_rec_setattr.sa_fsgid_h", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9446     { &hf_lustre_mdt_rec_setattr_sa_suppgid,
9447       { "Sa Suppgid", "lustre.mdt_rec_setattr.sa_suppgid", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9448     { &hf_lustre_mdt_rec_setattr_sa_suppgid_h,
9449       { "Sa Suppgid H", "lustre.mdt_rec_setattr.sa_suppgid_h", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9450     { &hf_lustre_mdt_rec_setattr_sa_padding_1,
9451       { "Sa Padding 1", "lustre.mdt_rec_setattr.sa_padding_1", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9452     { &hf_lustre_mdt_rec_setattr_sa_padding_1_h,
9453       { "Sa Padding 1 H", "lustre.mdt_rec_setattr.sa_padding_1_h", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9454     { &hf_lustre_mdt_rec_setattr_sa_fid,
9455       { "Sa Fid", "lustre.mdt_rec_setattr.sa_fid", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }},
9456     { &hf_lustre_mdt_rec_setattr_sa_valid,
9457       { "Sa Valid", "lustre.mdt_rec_setattr.sa_valid", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }},
9458     { &hf_lustre_mdt_rec_setattr_sa_uid,
9459       { "Sa Uid", "lustre.mdt_rec_setattr.sa_uid", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9460     { &hf_lustre_mdt_rec_setattr_sa_gid,
9461       { "Sa Gid", "lustre.mdt_rec_setattr.sa_gid", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9462     { &hf_lustre_mdt_rec_setattr_sa_size,
9463       { "Sa Size", "lustre.mdt_rec_setattr.sa_size", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }},
9464     { &hf_lustre_mdt_rec_setattr_sa_blocks,
9465       { "Sa Blocks", "lustre.mdt_rec_setattr.sa_blocks", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }},
9466     { &hf_lustre_mdt_rec_setattr_sa_mtime,
9467       { "Sa Mtime", "lustre.mdt_rec_setattr.sa_mtime",FT_ABSOLUTE_TIME, BASE_DEC, NULL, 0, "", HFILL }},
9468     { &hf_lustre_mdt_rec_setattr_sa_atime,
9469       { "Sa Atime", "lustre.mdt_rec_setattr.sa_atime",FT_ABSOLUTE_TIME, BASE_DEC, NULL, 0, "", HFILL }},
9470     { &hf_lustre_mdt_rec_setattr_sa_ctime,
9471       { "Sa Ctime", "lustre.mdt_rec_setattr.sa_ctime",FT_ABSOLUTE_TIME, BASE_DEC, NULL, 0, "", HFILL }},
9472     { &hf_lustre_mdt_rec_setattr_sa_attr_flags,
9473       { "Sa Attr Flags", "lustre.mdt_rec_setattr.sa_attr_flags", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9474     { &hf_lustre_mdt_rec_setattr_sa_mode,
9475       { "Sa Mode", "lustre.mdt_rec_setattr.sa_mode", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9476     { &hf_lustre_mdt_rec_setattr_sa_padding_2,
9477       { "Sa Padding 2", "lustre.mdt_rec_setattr.sa_padding_2", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9478     { &hf_lustre_mdt_rec_setattr_sa_padding_3,
9479       { "Sa Padding 3", "lustre.mdt_rec_setattr.sa_padding_3", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9480     { &hf_lustre_mdt_rec_setattr_sa_padding_4,
9481       { "Sa Padding 4", "lustre.mdt_rec_setattr.sa_padding_4", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9482     { &hf_lustre_mdt_rec_setattr_sa_padding_5,
9483       { "Sa Padding 5", "lustre.mdt_rec_setattr.sa_padding_5", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9484
9485     { &hf_lustre_mdt_rec_create,
9486       { "mdt rec create", "lustre.mdt_rec_create", FT_NONE, BASE_NONE, NULL , 0 , "", HFILL}},
9487     { &hf_lustre_mdt_rec_create_cr_opcode,
9488       { "Cr Opcode", "lustre.mdt_rec_create.cr_opcode", FT_UINT32, BASE_DEC, VALS(lustre_mds_reint_t_vals), 0, "", HFILL }},
9489     { &hf_lustre_mdt_rec_create_cr_cap,
9490       { "Cr Cap", "lustre.mdt_rec_create.cr_cap", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9491     { &hf_lustre_mdt_rec_create_cr_fsuid,
9492       { "Cr Fsuid", "lustre.mdt_rec_create.cr_fsuid", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9493     { &hf_lustre_mdt_rec_create_cr_fsuid_h,
9494       { "Cr Fsuid H", "lustre.mdt_rec_create.cr_fsuid_h", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9495     { &hf_lustre_mdt_rec_create_cr_fsgid,
9496       { "Cr Fsgid", "lustre.mdt_rec_create.cr_fsgid", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9497     { &hf_lustre_mdt_rec_create_cr_fsgid_h,
9498       { "Cr Fsgid H", "lustre.mdt_rec_create.cr_fsgid_h", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9499     { &hf_lustre_mdt_rec_create_cr_suppgid1,
9500       { "Cr Suppgid1", "lustre.mdt_rec_create.cr_suppgid1", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9501     { &hf_lustre_mdt_rec_create_cr_suppgid1_h,
9502       { "Cr Suppgid1 H", "lustre.mdt_rec_create.cr_suppgid1_h", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9503     { &hf_lustre_mdt_rec_create_cr_suppgid2,
9504       { "Cr Suppgid2", "lustre.mdt_rec_create.cr_suppgid2", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9505     { &hf_lustre_mdt_rec_create_cr_suppgid2_h,
9506       { "Cr Suppgid2 H", "lustre.mdt_rec_create.cr_suppgid2_h", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9507     { &hf_lustre_mdt_rec_create_cr_fid1,
9508       { "Cr Fid1", "lustre.mdt_rec_create.cr_fid1", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }},
9509     { &hf_lustre_mdt_rec_create_cr_fid2,
9510       { "Cr Fid2", "lustre.mdt_rec_create.cr_fid2", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }},
9511     { &hf_lustre_mdt_rec_create_cr_old_handle,
9512       { "Cr Old Handle", "lustre.mdt_rec_create.cr_old_handle", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }},
9513     { &hf_lustre_mdt_rec_create_cr_time,
9514       { "Cr Time", "lustre.mdt_rec_create.cr_time",FT_ABSOLUTE_TIME, BASE_DEC, NULL, 0, "", HFILL }},
9515     { &hf_lustre_mdt_rec_create_cr_rdev,
9516       { "Cr Rdev", "lustre.mdt_rec_create.cr_rdev", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }},
9517     { &hf_lustre_mdt_rec_create_cr_ioepoch,
9518       { "Cr Ioepoch", "lustre.mdt_rec_create.cr_ioepoch", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }},
9519     { &hf_lustre_mdt_rec_create_cr_padding_1,
9520       { "Cr Padding 1", "lustre.mdt_rec_create.cr_padding_1", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9521     { &hf_lustre_mdt_rec_create_cr_mode,
9522       { "Cr Mode", "lustre.mdt_rec_create.cr_mode", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9523     { &hf_lustre_mdt_rec_create_cr_bias,
9524       { "Cr Bias", "lustre.mdt_rec_create.cr_bias", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9525     { &hf_lustre_mdt_rec_create_cr_flags_l,
9526       { "Cr Flags L", "lustre.mdt_rec_create.cr_flags_l", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9527     { &hf_lustre_mdt_rec_create_cr_flags_h,
9528       { "Cr Flags H", "lustre.mdt_rec_create.cr_flags_h", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9529     { &hf_lustre_mdt_rec_create_cr_padding_3,
9530       { "Cr Padding 3", "lustre.mdt_rec_create.cr_padding_3", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9531     { &hf_lustre_mdt_rec_create_cr_padding_4,
9532       { "Cr Padding 4", "lustre.mdt_rec_create.cr_padding_4", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9533
9534     { &hf_lustre_mdt_rec_link,
9535       { "mdt rec link", "lustre.mdt_rec_link", FT_NONE, BASE_NONE, NULL , 0 , "", HFILL}},
9536     { &hf_lustre_mdt_rec_link_lk_opcode,
9537       { "Lk Opcode", "lustre.mdt_rec_link.lk_opcode", FT_UINT32, BASE_DEC,VALS(lustre_mds_reint_t_vals) , 0, "", HFILL }},
9538     { &hf_lustre_mdt_rec_link_lk_cap,
9539       { "Lk Cap", "lustre.mdt_rec_link.lk_cap", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9540     { &hf_lustre_mdt_rec_link_lk_fsuid,
9541       { "Lk Fsuid", "lustre.mdt_rec_link.lk_fsuid", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9542     { &hf_lustre_mdt_rec_link_lk_fsuid_h,
9543       { "Lk Fsuid H", "lustre.mdt_rec_link.lk_fsuid_h", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9544     { &hf_lustre_mdt_rec_link_lk_fsgid,
9545       { "Lk Fsgid", "lustre.mdt_rec_link.lk_fsgid", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9546     { &hf_lustre_mdt_rec_link_lk_fsgid_h,
9547       { "Lk Fsgid H", "lustre.mdt_rec_link.lk_fsgid_h", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9548     { &hf_lustre_mdt_rec_link_lk_suppgid1,
9549       { "Lk Suppgid1", "lustre.mdt_rec_link.lk_suppgid1", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9550     { &hf_lustre_mdt_rec_link_lk_suppgid1_h,
9551       { "Lk Suppgid1 H", "lustre.mdt_rec_link.lk_suppgid1_h", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9552     { &hf_lustre_mdt_rec_link_lk_suppgid2,
9553       { "Lk Suppgid2", "lustre.mdt_rec_link.lk_suppgid2", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9554     { &hf_lustre_mdt_rec_link_lk_suppgid2_h,
9555       { "Lk Suppgid2 H", "lustre.mdt_rec_link.lk_suppgid2_h", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9556     { &hf_lustre_mdt_rec_link_lk_fid1,
9557       { "Lk Fid1", "lustre.mdt_rec_link.lk_fid1", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }},
9558     { &hf_lustre_mdt_rec_link_lk_fid2,
9559       { "Lk Fid2", "lustre.mdt_rec_link.lk_fid2", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }},
9560     { &hf_lustre_mdt_rec_link_lk_time,
9561       { "Lk Time", "lustre.mdt_rec_link.lk_time",FT_ABSOLUTE_TIME, BASE_DEC, NULL, 0, "", HFILL }},
9562     { &hf_lustre_mdt_rec_link_lk_padding_1,
9563       { "Lk Padding 1", "lustre.mdt_rec_link.lk_padding_1", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9564     { &hf_lustre_mdt_rec_link_lk_padding_2,
9565       { "Lk Padding 2", "lustre.mdt_rec_link.lk_padding_2", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9566     { &hf_lustre_mdt_rec_link_lk_padding_3,
9567       { "Lk Padding 3", "lustre.mdt_rec_link.lk_padding_3", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9568     { &hf_lustre_mdt_rec_link_lk_padding_4,
9569       { "Lk Padding 4", "lustre.mdt_rec_link.lk_padding_4", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9570     { &hf_lustre_mdt_rec_link_lk_bias,
9571       { "Lk Bias", "lustre.mdt_rec_link.lk_bias", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9572     { &hf_lustre_mdt_rec_link_lk_padding_5,
9573       { "Lk Padding 5", "lustre.mdt_rec_link.lk_padding_5", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9574     { &hf_lustre_mdt_rec_link_lk_padding_6,
9575       { "Lk Padding 6", "lustre.mdt_rec_link.lk_padding_6", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9576     { &hf_lustre_mdt_rec_link_lk_padding_7,
9577       { "Lk Padding 7", "lustre.mdt_rec_link.lk_padding_7", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9578     { &hf_lustre_mdt_rec_link_lk_padding_8,
9579       { "Lk Padding 8", "lustre.mdt_rec_link.lk_padding_8", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9580     { &hf_lustre_mdt_rec_link_lk_padding_9,
9581       { "Lk Padding 9", "lustre.mdt_rec_link.lk_padding_9", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9582
9583     { &hf_lustre_mdt_rec_unlink,
9584       { "mdt rec unlink", "lustre.mdt_rec_unlink", FT_NONE, BASE_NONE, NULL , 0 , "", HFILL}},
9585     { &hf_lustre_mdt_rec_unlink_ul_opcode,
9586       { "Ul Opcode", "lustre.mdt_rec_unlink.ul_opcode", FT_UINT32, BASE_DEC, VALS(lustre_mds_reint_t_vals) , 0, "", HFILL }},
9587     { &hf_lustre_mdt_rec_unlink_ul_cap,
9588       { "Ul Cap", "lustre.mdt_rec_unlink.ul_cap", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9589     { &hf_lustre_mdt_rec_unlink_ul_fsuid,
9590       { "Ul Fsuid", "lustre.mdt_rec_unlink.ul_fsuid", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9591     { &hf_lustre_mdt_rec_unlink_ul_fsuid_h,
9592       { "Ul Fsuid H", "lustre.mdt_rec_unlink.ul_fsuid_h", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9593     { &hf_lustre_mdt_rec_unlink_ul_fsgid,
9594       { "Ul Fsgid", "lustre.mdt_rec_unlink.ul_fsgid", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9595     { &hf_lustre_mdt_rec_unlink_ul_fsgid_h,
9596       { "Ul Fsgid H", "lustre.mdt_rec_unlink.ul_fsgid_h", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9597     { &hf_lustre_mdt_rec_unlink_ul_suppgid1,
9598       { "Ul Suppgid1", "lustre.mdt_rec_unlink.ul_suppgid1", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9599     { &hf_lustre_mdt_rec_unlink_ul_suppgid1_h,
9600       { "Ul Suppgid1 H", "lustre.mdt_rec_unlink.ul_suppgid1_h", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9601     { &hf_lustre_mdt_rec_unlink_ul_suppgid2,
9602       { "Ul Suppgid2", "lustre.mdt_rec_unlink.ul_suppgid2", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9603     { &hf_lustre_mdt_rec_unlink_ul_suppgid2_h,
9604       { "Ul Suppgid2 H", "lustre.mdt_rec_unlink.ul_suppgid2_h", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9605     { &hf_lustre_mdt_rec_unlink_ul_fid1,
9606       { "Ul Fid1", "lustre.mdt_rec_unlink.ul_fid1", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }},
9607     { &hf_lustre_mdt_rec_unlink_ul_fid2,
9608       { "Ul Fid2", "lustre.mdt_rec_unlink.ul_fid2", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }},
9609     { &hf_lustre_mdt_rec_unlink_ul_time,
9610       { "Ul Time", "lustre.mdt_rec_unlink.ul_time",FT_ABSOLUTE_TIME, BASE_DEC, NULL, 0, "", HFILL }},
9611     { &hf_lustre_mdt_rec_unlink_ul_padding_2,
9612       { "Ul Padding 2", "lustre.mdt_rec_unlink.ul_padding_2", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9613     { &hf_lustre_mdt_rec_unlink_ul_padding_3,
9614       { "Ul Padding 3", "lustre.mdt_rec_unlink.ul_padding_3", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9615     { &hf_lustre_mdt_rec_unlink_ul_padding_4,
9616       { "Ul Padding 4", "lustre.mdt_rec_unlink.ul_padding_4", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9617     { &hf_lustre_mdt_rec_unlink_ul_padding_5,
9618       { "Ul Padding 5", "lustre.mdt_rec_unlink.ul_padding_5", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9619     { &hf_lustre_mdt_rec_unlink_ul_bias,
9620       { "Ul Bias", "lustre.mdt_rec_unlink.ul_bias", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9621     { &hf_lustre_mdt_rec_unlink_ul_mode,
9622       { "Ul Mode", "lustre.mdt_rec_unlink.ul_mode", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9623     { &hf_lustre_mdt_rec_unlink_ul_padding_6,
9624       { "Ul Padding 6", "lustre.mdt_rec_unlink.ul_padding_6", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9625     { &hf_lustre_mdt_rec_unlink_ul_padding_7,
9626       { "Ul Padding 7", "lustre.mdt_rec_unlink.ul_padding_7", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9627     { &hf_lustre_mdt_rec_unlink_ul_padding_8,
9628       { "Ul Padding 8", "lustre.mdt_rec_unlink.ul_padding_8", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9629     { &hf_lustre_mdt_rec_unlink_ul_padding_9,
9630       { "Ul Padding 9", "lustre.mdt_rec_unlink.ul_padding_9", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9631
9632     { &hf_lustre_mdt_rec_rename,
9633       { "mdt rec rename", "lustre.mdt_rec_rename", FT_NONE, BASE_NONE, NULL , 0 , "", HFILL}},
9634     { &hf_lustre_mdt_rec_rename_rn_opcode,
9635       { "Rn Opcode", "lustre.mdt_rec_rename.rn_opcode", FT_UINT32, BASE_DEC, VALS(lustre_mds_reint_t_vals) , 0, "", HFILL }},
9636     { &hf_lustre_mdt_rec_rename_rn_cap,
9637       { "Rn Cap", "lustre.mdt_rec_rename.rn_cap", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9638     { &hf_lustre_mdt_rec_rename_rn_fsuid,
9639       { "Rn Fsuid", "lustre.mdt_rec_rename.rn_fsuid", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9640     { &hf_lustre_mdt_rec_rename_rn_fsuid_h,
9641       { "Rn Fsuid H", "lustre.mdt_rec_rename.rn_fsuid_h", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9642     { &hf_lustre_mdt_rec_rename_rn_fsgid,
9643       { "Rn Fsgid", "lustre.mdt_rec_rename.rn_fsgid", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9644     { &hf_lustre_mdt_rec_rename_rn_fsgid_h,
9645       { "Rn Fsgid H", "lustre.mdt_rec_rename.rn_fsgid_h", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9646     { &hf_lustre_mdt_rec_rename_rn_suppgid1,
9647       { "Rn Suppgid1", "lustre.mdt_rec_rename.rn_suppgid1", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9648     { &hf_lustre_mdt_rec_rename_rn_suppgid1_h,
9649       { "Rn Suppgid1 H", "lustre.mdt_rec_rename.rn_suppgid1_h", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9650     { &hf_lustre_mdt_rec_rename_rn_suppgid2,
9651       { "Rn Suppgid2", "lustre.mdt_rec_rename.rn_suppgid2", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9652     { &hf_lustre_mdt_rec_rename_rn_suppgid2_h,
9653       { "Rn Suppgid2 H", "lustre.mdt_rec_rename.rn_suppgid2_h", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9654     { &hf_lustre_mdt_rec_rename_rn_fid1,
9655       { "Rn Fid1", "lustre.mdt_rec_rename.rn_fid1", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }},
9656     { &hf_lustre_mdt_rec_rename_rn_fid2,
9657       { "Rn Fid2", "lustre.mdt_rec_rename.rn_fid2", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }},
9658     { &hf_lustre_mdt_rec_rename_rn_time,
9659       { "Rn Time", "lustre.mdt_rec_rename.rn_time",FT_ABSOLUTE_TIME, BASE_DEC, NULL, 0, "", HFILL }},
9660     { &hf_lustre_mdt_rec_rename_rn_padding_1,
9661       { "Rn Padding 1", "lustre.mdt_rec_rename.rn_padding_1", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9662     { &hf_lustre_mdt_rec_rename_rn_padding_2,
9663       { "Rn Padding 2", "lustre.mdt_rec_rename.rn_padding_2", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9664     { &hf_lustre_mdt_rec_rename_rn_padding_3,
9665       { "Rn Padding 3", "lustre.mdt_rec_rename.rn_padding_3", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9666     { &hf_lustre_mdt_rec_rename_rn_padding_4,
9667       { "Rn Padding 4", "lustre.mdt_rec_rename.rn_padding_4", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9668     { &hf_lustre_mdt_rec_rename_rn_bias,
9669       { "Rn Bias", "lustre.mdt_rec_rename.rn_bias", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9670     { &hf_lustre_mdt_rec_rename_rn_mode,
9671       { "Rn Mode", "lustre.mdt_rec_rename.rn_mode", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9672     { &hf_lustre_mdt_rec_rename_rn_padding_5,
9673       { "Rn Padding 5", "lustre.mdt_rec_rename.rn_padding_5", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9674     { &hf_lustre_mdt_rec_rename_rn_padding_6,
9675       { "Rn Padding 6", "lustre.mdt_rec_rename.rn_padding_6", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9676     { &hf_lustre_mdt_rec_rename_rn_padding_7,
9677       { "Rn Padding 7", "lustre.mdt_rec_rename.rn_padding_7", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9678     { &hf_lustre_mdt_rec_rename_rn_padding_8,
9679       { "Rn Padding 8", "lustre.mdt_rec_rename.rn_padding_8", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9680
9681     { &hf_lustre_mdt_rec_setxattr,
9682       { "mdt rec setxattr", "lustre.mdt_rec_setxattr", FT_NONE, BASE_NONE, NULL , 0 , "", HFILL}},
9683     { &hf_lustre_mdt_rec_setxattr_sx_opcode,
9684       { "Sx Opcode", "lustre.mdt_rec_setxattr.sx_opcode", FT_UINT32, BASE_DEC, VALS(lustre_mds_reint_t_vals), 0, "", HFILL }},
9685     { &hf_lustre_mdt_rec_setxattr_sx_cap,
9686       { "Sx Cap", "lustre.mdt_rec_setxattr.sx_cap", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9687     { &hf_lustre_mdt_rec_setxattr_sx_fsuid,
9688       { "Sx Fsuid", "lustre.mdt_rec_setxattr.sx_fsuid", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9689     { &hf_lustre_mdt_rec_setxattr_sx_fsuid_h,
9690       { "Sx Fsuid H", "lustre.mdt_rec_setxattr.sx_fsuid_h", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9691     { &hf_lustre_mdt_rec_setxattr_sx_fsgid,
9692       { "Sx Fsgid", "lustre.mdt_rec_setxattr.sx_fsgid", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9693     { &hf_lustre_mdt_rec_setxattr_sx_fsgid_h,
9694       { "Sx Fsgid H", "lustre.mdt_rec_setxattr.sx_fsgid_h", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9695     { &hf_lustre_mdt_rec_setxattr_sx_suppgid1,
9696       { "Sx Suppgid1", "lustre.mdt_rec_setxattr.sx_suppgid", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9697     { &hf_lustre_mdt_rec_setxattr_sx_suppgid1_h,
9698       { "Sx Suppgid1 H", "lustre.mdt_rec_setxattr.sx_suppgid_h", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9699     { &hf_lustre_mdt_rec_setxattr_sx_suppgid2,
9700       { "Sx Suppgid2", "lustre.mdt_rec_setxattr.sx_suppgid2", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9701     { &hf_lustre_mdt_rec_setxattr_sx_suppgid2_h,
9702       { "Sx Suppgid2 H", "lustre.mdt_rec_setxattr.sx_suppgid2_h", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9703     { &hf_lustre_mdt_rec_setxattr_sx_fid,
9704       { "Sx Fid", "lustre.mdt_rec_setxattr.sx_fid", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }},
9705     { &hf_lustre_mdt_rec_setxattr_sx_padding_1,
9706       { "Sx Padding 1", "lustre.mdt_rec_setxattr.sx_padding_1", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9707     { &hf_lustre_mdt_rec_setxattr_sx_padding_2,
9708       { "Sx Padding 2", "lustre.mdt_rec_setxattr.sx_padding_2", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9709     { &hf_lustre_mdt_rec_setxattr_sx_padding_3,
9710       { "Sx Padding 3", "lustre.mdt_rec_setxattr.sx_padding_3", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9711     { &hf_lustre_mdt_rec_setxattr_sx_valid,
9712       { "Sx Valid", "lustre.mdt_rec_setxattr.sx_valid", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }},
9713     { &hf_lustre_mdt_rec_setxattr_sx_time,
9714       { "Sx Time", "lustre.mdt_rec_setxattr.sx_time",FT_ABSOLUTE_TIME, BASE_DEC, NULL, 0, "", HFILL }},
9715     { &hf_lustre_mdt_rec_setxattr_sx_padding_5,
9716       { "Sx Padding 5", "lustre.mdt_rec_setxattr.sx_padding_5", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9717     { &hf_lustre_mdt_rec_setxattr_sx_padding_6,
9718       { "Sx Padding 6", "lustre.mdt_rec_setxattr.sx_padding_6", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9719     { &hf_lustre_mdt_rec_setxattr_sx_padding_7,
9720       { "Sx Padding 7", "lustre.mdt_rec_setxattr.sx_padding_7", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9721     { &hf_lustre_mdt_rec_setxattr_sx_size,
9722       { "Sx Size", "lustre.mdt_rec_setxattr.sx_size", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }},
9723     { &hf_lustre_mdt_rec_setxattr_sx_flgas,
9724       { "Sx Flags", "lustre.mdt_rec_setxattr.sx_flags", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }},
9725     { &hf_lustre_mdt_rec_setxattr_sx_padding_8,
9726       { "Sx Padding 8", "lustre.mdt_rec_setxattr.sx_padding_8", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9727     { &hf_lustre_mdt_rec_setxattr_sx_padding_9,
9728       { "Sx Padding 9", "lustre.mdt_rec_setxattr.sx_padding_9", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9729     { &hf_lustre_mdt_rec_setxattr_sx_padding_10,
9730       { "Sx Padding 10", "lustre.mdt_rec_setxattr.sx_padding_10", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9731     { &hf_lustre_mdt_rec_setxattr_sx_padding_11,
9732       { "Sx Padding 11", "lustre.mdt_rec_setxattr.sx_padding_11", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9733
9734     { &hf_lustre_lustre_handle_cookie,
9735       { "Cookie", "lustre.lustre_handle.cookie", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }},
9736     { &hf_lustre_ptlrpc_body_pb_last_committed,
9737       { "Pb Last Committed", "lustre.ptlrpc_body.pb_last_committed", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }},
9738     { &hf_lustre_ptlrpc_body_pb_version,
9739       { "Pb Version", "lustre.ptlrpc_body.pb_version", FT_UINT32, BASE_DEC, NULL, ~LUSTRE_VERSION_MASK, "", HFILL }},
9740     { &hf_lustre_lustre_msg_v1_lm_bufcount,
9741       { "Lm Bufcount", "lustre.lustre_msg_v1.lm_bufcount", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9742     { &hf_lustre_obd_ioobj_ioo_id,
9743       { "Ioo Id", "lustre.obd_ioobj.ioo_id", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }},
9744     { &hf_lustre_ptlrpc_body_pb_slv,
9745       { "Pb Slv", "lustre.ptlrpc_body.pb_slv", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }},
9746     { &hf_lustre_lustre_msg_v1_lm_handle,
9747       { "Lm Handle", "lustre.lustre_msg_v1.lm_handle", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }},
9748     { &hf_lustre_ost_lvb_lvb_atime,
9749       { "Lvb Atime", "lustre.ost_lvb.lvb_atime",FT_ABSOLUTE_TIME, BASE_DEC, NULL, 0, "", HFILL }},
9750     { &hf_lustre_ptlrpc_body_pb_timeout,
9751       { "Pb Timeout", "lustre.ptlrpc_body.pb_timeout", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9752     { &hf_lustre_obd_statfs_os_bavail,
9753       { "Os Bavail", "lustre.obd_statfs.os_bavail", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }},
9754     { &hf_lustre_obd_statfs_os_bsize,
9755       { "Os Bsize", "lustre.obd_statfs.os_bsize", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9756     { &hf_lustre_lustre_msg_v2_lm_repsize,
9757       { "Lm Repsize", "lustre.lustre_msg_v2.lm_repsize", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9758     { &hf_lustre_lov_mds_md_v1_lmm_stripe_size,
9759       { "Lmm Stripe Size", "lustre.lov_mds_md_v1.lmm_stripe_size", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9760     { &hf_lustre_lustre_msg_v1_lm_last_xid,
9761       { "Lm Last Xid", "lustre.lustre_msg_v1.lm_last_xid", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }},
9762     { &hf_lustre_ll_fid_f_type,
9763       { "F Type", "lustre.ll_fid.f_type", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9764     { &hf_lustre_lustre_msg_v2_lm_cksum,
9765       { "Lm Cksum", "lustre.lustre_msg_v2.lm_cksum", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9766     { &hf_lustre_lustre_msg_v2_lm_buflens,
9767       { "Lm Buflens", "lustre.lustre_msg_v2.lm_buflens", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9768     { &hf_lustre_lustre_msg_v1_lm_status,
9769       { "Lm Status", "lustre.lustre_msg_v1.lm_status", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9770     { &hf_lustre_lustre_msg_v1_lm_type,
9771       { "Lm Type", "lustre.lustre_msg_v1.lm_type", FT_UINT32, BASE_DEC, VALS(lustre_LMTypes), 0, "", HFILL }},
9772     { &hf_lustre_niobuf_remote_len,
9773       { "Len", "lustre.niobuf_remote.len", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9774     { &hf_lustre_lov_mds_md_v1_lmm_magic,
9775       { "Lmm Magic", "lustre.lov_mds_md_v1.lmm_magic", FT_UINT32, BASE_HEX, VALS(lustre_lov_magic) , 0, "", HFILL }},
9776     { &hf_lustre_ptlrpc_body_pb_op_flags,
9777       { "Pb Op Flags", "lustre.ptlrpc_body.pb_op_flags", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9778     { &hf_lustre_ost_lvb_lvb_ctime,
9779       { "Lvb Ctime", "lustre.ost_lvb.lvb_ctime",FT_ABSOLUTE_TIME, BASE_DEC, NULL, 0, "", HFILL }},
9780     { &hf_lustre_ptlrpc_body_pb_type,
9781       { "Pb Type", "lustre.ptlrpc_body.pb_type", FT_UINT32, BASE_DEC, VALS(lustre_LMTypes), 0, "", HFILL }},
9782     { &hf_lustre_obd_connect_data_ocd_nllg,
9783       { "Ocd Nllg", "lustre.obd_connect_data.ocd_nllg", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9784     { &hf_lustre_obd_connect_data_ocd_nllu,
9785       { "Ocd Nllu", "lustre.obd_connect_data.ocd_nllu", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9786     { &hf_lustre_ll_fid_generation,
9787       { "Generation", "lustre.ll_fid.generation", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9788     { &hf_lustre_ost_lvb_lvb_mtime,
9789       { "Lvb Mtime", "lustre.ost_lvb.lvb_mtime",FT_ABSOLUTE_TIME, BASE_NONE, NULL, 0, "", HFILL }},
9790     { &hf_lustre_obd_connect_data_ocd_ibits_known,
9791       { "Ocd Ibits Known", "lustre.obd_connect_data.ocd_ibits_known", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }},
9792     { &hf_lustre_lustre_msg_v2_lm_padding_3,
9793       { "Lm Padding 3", "lustre.lustre_msg_v2.lm_padding_3", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9794     { &hf_lustre_ptlrpc_body_pb_flags,
9795       { "Pb Flags", "lustre.ptlrpc_body.pb_flags", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9796     { &hf_lustre_obd_statfs_os_spare4,
9797       { "Os Spare4", "lustre.obd_statfs.os_spare4", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9798     { &hf_lustre_obd_connect_data_ocd_group,
9799       { "Ocd Group", "lustre.obd_connect_data.ocd_group", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9800     { &hf_lustre_lov_ost_data_v1_l_object_seq,
9801       { "L Object SEQ", "lustre.lov_ost_data_v1.l_object_seq", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }},
9802     { &hf_lustre_lov_mds_md_v1_lmm_object_seq,
9803       { "Lmm Object SEQ", "lustre.lov_mds_md_v1.lmm_object_seq", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }},
9804     { &hf_lustre_obd_connect_data_ocd_brw_size,
9805       { "Ocd Brw Size", "lustre.obd_connect_data.ocd_brw_size", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9806     { &hf_lustre_ptlrpc_body_pb_limit,
9807       { "Pb Limit", "lustre.ptlrpc_body.pb_limit", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9808     { &hf_lustre_obd_statfs_os_maxbytes,
9809       { "Os Maxbytes", "lustre.obd_statfs.os_maxbytes", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }},
9810     { &hf_lustre_obd_statfs_os_spare5,
9811       { "Os Spare5", "lustre.obd_statfs.os_spare5", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9812     { &hf_lustre_lustre_msg_v2_lm_flags,
9813       { "Lm Flags", "lustre.lustre_msg_v2.lm_flags", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9814     { &hf_lustre_obd_statfs_os_ffree,
9815       { "Os Ffree", "lustre.obd_statfs.os_ffree", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }},
9816     { &hf_lustre_obd_statfs_os_files,
9817       { "Os Files", "lustre.obd_statfs.os_files", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }},
9818     { &hf_lustre_lov_mds_md_v1_lmm_stripe_count,
9819       { "Lmm Stripe Count", "lustre.lov_mds_md_v1.lmm_stripe_count", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9820     { &hf_lustre_lustre_msg_v1_lm_flags,
9821       { "Lm Flags", "lustre.lustre_msg_v1.lm_flags", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9822     { &hf_lustre_lustre_msg_v1_lm_last_committed,
9823       { "Lm Last Committed", "lustre.lustre_msg_v1.lm_last_committed", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }},
9824     { &hf_lustre_obd_statfs_os_spare9,
9825       { "Os Spare9", "lustre.obd_statfs.os_spare9", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9826     { &hf_lustre_obd_connect_data_ocd_index,
9827       { "Ocd Index", "lustre.obd_connect_data.ocd_index", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9828     { &hf_lustre_lustre_msg_v1_lm_buflens,
9829       { "Lm Buflens", "lustre.lustre_msg_v1.lm_buflens", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9830     { &hf_lustre_obd_statfs_os_spare1,
9831       { "Os Spare1", "lustre.obd_statfs.os_spare1", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9832     { &hf_lustre_obd_statfs_os_spare8,
9833       { "Os Spare8", "lustre.obd_statfs.os_spare8", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9834     { &hf_lustre_lustre_msg_v1_lm_conn_cnt,
9835       { "Lm Conn Cnt", "lustre.lustre_msg_v1.lm_conn_cnt", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9836     { &hf_lustre_ptlrpc_body_pb_transno,
9837       { "Pb Transno", "lustre.ptlrpc_body.pb_transno", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }},
9838     { &hf_lustre_ptlrpc_body_pb_service_time,
9839       { "Pb Service Time", "lustre.ptlrpc_body.pb_service_time",FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9840     { &hf_lustre_ptlrpc_body_pb_conn_cnt,
9841       { "Pb Conn Cnt", "lustre.ptlrpc_body.pb_conn_cnt", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9842     { &hf_lustre_ptlrpc_body_pb_opc,
9843       { "Pb Opc", "lustre.ptlrpc_body.pb_opc", FT_UINT32, BASE_DEC, VALS(lustre_op_codes), 0, "", HFILL }},
9844     { &hf_lustre_obd_connect_data_ocd_connect_flags,
9845       { "Ocd Connect Flags", "lustre.obd_connect_data.ocd_connect_flags", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }},
9846     { &hf_lustre_lov_ost_data_v1_l_object_id,
9847       { "L Object Id", "lustre.lov_ost_data_v1.l_object_id", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }},
9848     { &hf_lustre_lov_ost_data_v1_l_ost_gen,
9849       { "L Ost Gen", "lustre.lov_ost_data_v1.l_ost_gen", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9850     { &hf_lustre_obd_statfs_os_bfree,
9851       { "Os Bfree", "lustre.obd_statfs.os_bfree", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }},
9852     { &hf_lustre_obd_connect_data_ocd_version,
9853       { "Ocd Version", "lustre.obd_connect_data.ocd_version", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9854     { &hf_lustre_lov_mds_md_v1_lmm_objects,
9855       { "Lmm Objects", "lustre.lov_mds_md_v1.lmm_objects", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }},
9856     { &hf_lustre_obd_statfs_os_namelen,
9857       { "Os Namelen", "lustre.obd_statfs.os_namelen", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9858     { &hf_lustre_obd_statfs_os_blocks,
9859       { "Os Blocks", "lustre.obd_statfs.os_blocks", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }},
9860     { &hf_lustre_lustre_msg_v2_lm_secflvr,
9861       { "Lm Secflvr", "lustre.lustre_msg_v2.lm_secflvr", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9862     { &hf_lustre_lustre_msg_v1_lm_transno,
9863       { "Lm Transno", "lustre.lustre_msg_v1.lm_transno", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }},
9864     { &hf_lustre_lov_mds_md_v1_lmm_pattern,
9865       { "Lmm Pattern", "lustre.lov_mds_md_v1.lmm_pattern", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9866     { &hf_lustre_lustre_msg_v1_lm_opc,
9867       { "Lm Opc", "lustre.lustre_msg_v1.lm_opc", FT_UINT32, BASE_DEC, VALS(lustre_op_codes), 0, "", HFILL }},
9868     { &hf_lustre_obd_connect_data_ocd_grant,
9869       { "Ocd Grant", "lustre.obd_connect_data.ocd_grant", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9870     { &hf_lustre_obd_ioobj_ioo_bufcnt,
9871       { "Ioo Bufcnt", "lustre.obd_ioobj.ioo_bufcnt", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9872     { &hf_lustre_lustre_msg_v1_lm_version,
9873       { "Lm Version", "lustre.lustre_msg_v1.lm_version", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9874     { &hf_lustre_obd_statfs_os_spare7,
9875       { "Os Spare7", "lustre.obd_statfs.os_spare7", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9876     { &hf_lustre_obd_statfs_os_fsid,
9877       { "Os Fsid", "lustre.obd_statfs.os_fsid", FT_UINT8, BASE_DEC, NULL, 0, "", HFILL }},
9878     { &hf_lustre_obd_connect_data_ocd_cksum_types,
9879       { "Ocd Cksum Types", "lustre.obd_connect_data.ocd_cksum_types", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9880     { &hf_lustre_ost_lvb_lvb_size,
9881       { "Lvb Size", "lustre.ost_lvb.lvb_size", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }},
9882     { &hf_lustre_obd_statfs_os_type,
9883       { "Os Type", "lustre.obd_statfs.os_type", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }},
9884     { &hf_lustre_obd_statfs_os_spare6,
9885       { "Os Spare6", "lustre.obd_statfs.os_spare6", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9886     { &hf_lustre_obd_statfs_os_state,
9887       { "Os State", "lustre.obd_statfs.os_state", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9888     { &hf_lustre_obd_statfs_os_spare3,
9889       { "Os Spare3", "lustre.obd_statfs.os_spare3", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9890     { &hf_lustre_lustre_msg_v2_lm_magic,
9891       { "Lm Magic", "lustre.lustre_msg_v2.lm_magic", FT_UINT32, BASE_HEX, NULL, 0, "", HFILL }},
9892     { &hf_lustre_lov_mds_md_v1_lmm_object_id,
9893       { "Lmm Object Id", "lustre.lov_mds_md_v1.lmm_object_id", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }},
9894     { &hf_lustre_ptlrpc_body_pb_last_seen,
9895       { "Pb Last Seen", "lustre.ptlrpc_body.pb_last_seen", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }},
9896     { &hf_lustre_obd_ioobj_ioo_type,  /* TODO : create the corresponding value_string */
9897       { "Ioo Type", "lustre.obd_ioobj.ioo_type", FT_UINT32, BASE_HEX, NULL, 0, "", HFILL }},
9898     { &hf_lustre_ptlrpc_body_pb_last_xid,
9899       { "Pb Last Xid", "lustre.ptlrpc_body.pb_last_xid", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }},
9900     { &hf_lustre_ptlrpc_body_pb_status,
9901       { "Pb Status", "lustre.ptlrpc_body.pb_status", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9902     { &hf_lustre_niobuf_remote_flags,
9903       { "Flags", "lustre.niobuf_remote.flags", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9904     { &hf_lustre_ll_fid_id,
9905       { "Id", "lustre.ll_fid.id", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }},
9906     { &hf_lustre_ost_lvb_lvb_blocks,
9907       { "Lvb Blocks", "lustre.ost_lvb.lvb_blocks", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }},
9908     { &hf_lustre_lustre_msg_v2_lm_padding_2,
9909       { "Lm Padding 2", "lustre.lustre_msg_v2.lm_padding_2", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9910     { &hf_lustre_obd_connect_data_padding1,
9911       { "Padding1", "lustre.obd_connect_data.padding1", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }},
9912     { &hf_lustre_lov_ost_data_v1_l_ost_idx,
9913       { "L Ost Idx", "lustre.lov_ost_data_v1.l_ost_idx", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9914     { &hf_lustre_obd_connect_data_padding2,
9915       { "Padding2", "lustre.obd_connect_data.padding2", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }},
9916     { &hf_lustre_obd_ioobj_ioo_seq,
9917       { "Ioo Gr", "lustre.obd_ioobj.ioo_seq", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }},
9918     { &hf_lustre_niobuf_remote_offset,
9919       { "Offset", "lustre.niobuf_remote.offset", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }},
9920     { &hf_lustre_obd_statfs_os_spare2,
9921       { "Os Spare2", "lustre.obd_statfs.os_spare2", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9922     { &hf_lustre_lustre_msg_v2_lm_bufcount,
9923       { "Lm Bufcount", "lustre.lustre_msg_v2.lm_bufcount", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9924     { &hf_lustre_ptlrpc_body_pb_handle,
9925       { "Pb Handle", "lustre.ptlrpc_body.pb_handle", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }},
9926     { &hf_lustre_obd_connect_data_ocd_transno,
9927       { "Ocd Transno", "lustre.obd_connect_data.ocd_transno", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }},
9928     { &hf_lustre_lustre_msg_v1_lm_magic,
9929       { "Lm Magic", "lustre.lustre_msg_v1.lm_magic", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9930     { &hf_lustre_ptlrpc_body_pb,
9931       { "ptl rpc", "lustre.ptlrpc_body", FT_NONE, BASE_NONE, NULL , 0 , "", HFILL }},
9932
9933     { &hf_lustre_obd_uuid,
9934       { "obd uid name", "lustre.obd_uid", FT_STRING, BASE_NONE, NULL , 0 , "", HFILL}},
9935     { &hf_lustre_obd_connect_data ,
9936       { "obd connect data", "lustre.obd_connect_data", FT_NONE, BASE_NONE, NULL , 0 , "", HFILL}},
9937
9938     { &hf_lustre_ldlm_intent,
9939       { "ldlm intent", "lustre.ldlm_intent", FT_NONE, BASE_NONE, NULL , 0 , "", HFILL}},
9940
9941     { &hf_lustre_obd_ioobj,
9942       { "lustre obd ioobj", "lustre.obd_ioobj", FT_NONE, BASE_NONE, NULL , 0 , "", HFILL}},
9943     { &hf_lustre_niobuf_remote,
9944       { "lustre niobuf remote", "lustre.niobuf_remote", FT_NONE, BASE_NONE, NULL , 0 , "", HFILL}},
9945     { &hf_lustre_ost_key,
9946       { "lustre ost key", "lustre.ost_key", FT_STRING, BASE_NONE, NULL , 0 , "", HFILL}},
9947     { &hf_lustre_ost_val,
9948       { "lustre ost val", "lustre.ost_val", FT_STRING, BASE_NONE, NULL , 0 , "", HFILL}},
9949     { &hf_lustre_llogd_chunk,
9950       { "lustre llogd chunk", "lustre.llogd_chunk", FT_NONE, BASE_NONE, NULL , 0 , "", HFILL}},
9951     { &hf_lustre_llogd_keyword,
9952       { "lustre llogd keyword", "lustre.llogd_keyword", FT_STRING, BASE_NONE, NULL , 0 , "", HFILL}},
9953     { &hf_lustre_llogd_client,
9954       { "lustre llogd client", "lustre.llogd_client", FT_STRING, BASE_NONE, NULL , 0 , "", HFILL}},
9955     { &hf_lustre_llogd_name,
9956       { "lustre llogd name", "lustre.llogd_name", FT_STRING, BASE_NONE, NULL , 0 , "", HFILL}},
9957     { &hf_lustre_llogd_log_hdr,
9958       { "lustre llogd log hdr", "lustre.llogd_log_hdr", FT_NONE, BASE_NONE, NULL , 0 , "", HFILL}},
9959     { &hf_lustre_llog_logid_rec,
9960       { "lustre llog logid rec", "lustre.llog_logid_rec", FT_NONE, BASE_NONE, NULL , 0 , "", HFILL}},
9961
9962     { &hf_lustre_llogd_body,
9963       { "lustre llogd body", "lustre.llogd_body", FT_NONE, BASE_NONE, NULL , 0 , "", HFILL}},
9964     { &hf_lustre_nio,
9965       { "lustre nio", "lustre.nio", FT_STRING, BASE_NONE, NULL , 0 , "", HFILL}},
9966     { &hf_lustre_ost_body,
9967       { "ost body", "lustre.ost_body", FT_NONE, BASE_NONE, NULL , 0 , "", HFILL }},
9968     { &hf_lustre_obd_statfs,
9969       { "obd statfs", "lustre.obd_statfs", FT_NONE, BASE_NONE, NULL , 0 , "", HFILL }},
9970     { &hf_lustre_obd_quotactl,
9971       { "obd quotactl", "lustre.obd_quotacl", FT_NONE, BASE_NONE, NULL , 0 , "", HFILL }},
9972     { &hf_lustre_quota_adjust_qunit,
9973       { "obd quota adjust qunit", "lustre.quota_adjust_qunit", FT_NONE, BASE_NONE, NULL , 0 , "", HFILL }},
9974     { &hf_lustre_llog_unlink_rec_lur_tail,
9975       { "Lur Tail", "lustre.llog_unlink_rec.lur_tail", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }},
9976     { &hf_lustre_llog_size_change_rec_lsc_io_epoch,
9977       { "Lsc Io Epoch", "lustre.llog_size_change_rec.lsc_io_epoch", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9978     { &hf_lustre_mgs_target_info_mti_flags,
9979       { "Mti Flags", "lustre.mgs_target_info.mti_flags", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9980     { &hf_lustre_ldlm_reply_lock_policy_res1,
9981       { "Lock Policy Res1", "lustre.ldlm_reply.lock_policy_res1", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }},
9982     { &hf_lustre_llogd_body_lgd_len,
9983       { "Lgd Len", "lustre.llogd_body.lgd_len", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9984     { &hf_lustre_qunit_data_old_qd_id,
9985       { "Qd Id", "lustre.qunit_data_old.qd_id", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9986     { &hf_lustre_llog_logid_rec_padding1,
9987       { "Padding1", "lustre.llog_logid_rec.padding1", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9988     { &hf_lustre_quota_adjust_qunit_padding1,
9989       { "Padding1", "lustre.quota_adjust_qunit.padding1", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }},
9990     { &hf_lustre_llog_size_change_rec_lsc_fid,
9991       { "Lsc Fid", "lustre.llog_size_change_rec.lsc_fid", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }},
9992     { &hf_lustre_llog_rec_hdr_padding,
9993       { "Padding", "lustre.llog_rec_hdr.padding", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9994     { &hf_lustre_obdo_o_nlink,
9995       { "O Nlink", "lustre.obdo.o_nlink", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
9996     { &hf_lustre_ldlm_extent_gid,
9997       { "Gid", "lustre.ldlm_extent.gid", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }},
9998     { &hf_lustre_obdo_o_uid,
9999       { "O Uid", "lustre.obdo.o_uid", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
10000     { &hf_lustre_mds_xattr_name,
10001       { "mds xattr name", "lustre.mds_xattr_name", FT_STRING, BASE_NONE, NULL, 0, "", HFILL }},
10002     { &hf_lustre_lov_mds_md_v1,
10003       { "lov mds md v1", "lustre.lov_mds_md_v1", FT_NONE, BASE_NONE, NULL, 0, "", HFILL }},
10004     { &hf_lustre_llog_cookie,
10005       { "llog cookie", "lustre.llog_cookie", FT_NONE, BASE_NONE, NULL, 0, "", HFILL }},
10006     { &hf_lustre_mds_md_data,
10007       { "mds md data", "lustre.mds_md_data", FT_NONE, BASE_NONE, NULL, 0, "", HFILL }},
10008     { &hf_lustre_mds_reint_opcode,
10009       { "mds reint opcode", "lustre.mds_reint_opcode", FT_STRING, BASE_NONE, NULL, 0, "", HFILL }},
10010     { &hf_lustre_mds_xattr_eadata,
10011       { "mds xattr eadata", "lustre.mds_xattr_eadata", FT_NONE, BASE_NONE, NULL, 0, "", HFILL }},
10012     { &hf_lustre_reint_name,
10013       { "mds reint name", "lustre.mds_reint_name", FT_STRING, BASE_NONE, NULL, 0, "", HFILL }},
10014     { &hf_lustre_reint_old_name,
10015       { "mds reint old name", "lustre.mds_reint_old_name", FT_STRING, BASE_NONE, NULL, 0, "", HFILL }},
10016     { &hf_lustre_reint_new_name,
10017       { "mds reint new name", "lustre.mds_reint_new_name", FT_STRING, BASE_NONE, NULL, 0, "", HFILL }},
10018
10019
10020
10021     { &hf_lustre_obdo_o_valid,
10022       { "O Valid", "lustre.obdo.o_valid", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }},
10023     { &hf_lustre_ldlm_reply_lock_flags,
10024       { "Lock Flags", "lustre.ldlm_reply.lock_flags", FT_UINT32,BASE_HEX, NULL, 0, "", HFILL }},
10025
10026     {&hf_lustre_ldlm_fl_lock_changed, {"LDLM_FL_LOCK_CHANGED", "lustre.ldlm_fl_lock_changed", FT_BOOLEAN, 32, TFS(&flags_set_truth), LDLM_FL_LOCK_CHANGED, "", HFILL}},
10027     {&hf_lustre_ldlm_fl_block_granted, {"LDLM_FL_BLOCK_GRANTED", "lustre.ldlm_fl_block_granted", FT_BOOLEAN, 32, TFS(&flags_set_truth), LDLM_FL_BLOCK_GRANTED, "", HFILL}},
10028     {&hf_lustre_ldlm_fl_block_conv, {"LDLM_FL_BLOCK_CONV", "lustre.ldlm_fl_block_conv", FT_BOOLEAN, 32, TFS(&flags_set_truth), LDLM_FL_BLOCK_CONV, "", HFILL}},
10029     {&hf_lustre_ldlm_fl_block_wait, {"LDLM_FL_BLOCK_WAIT", "lustre.ldlm_fl_block_wait", FT_BOOLEAN, 32, TFS(&flags_set_truth), LDLM_FL_BLOCK_WAIT, "", HFILL}},
10030     {&hf_lustre_ldlm_fl_cbpending, {"LDLM_FL_CBPENDING", "lustre.ldlm_fl_cbpending", FT_BOOLEAN, 32, TFS(&flags_set_truth), LDLM_FL_CBPENDING, "", HFILL}},
10031     {&hf_lustre_ldlm_fl_ast_sent, {"LDLM_FL_AST_SENT", "lustre.ldlm_fl_ast_sent", FT_BOOLEAN, 32, TFS(&flags_set_truth), LDLM_FL_AST_SENT, "", HFILL}},
10032     {&hf_lustre_ldlm_fl_wait_noreproc, {"LDLM_FL_WAIT_NOREPROC", "lustre.ldlm_fl_wait_noreproc", FT_BOOLEAN, 32, TFS(&flags_set_truth), LDLM_FL_WAIT_NOREPROC, "", HFILL}},
10033     {&hf_lustre_ldlm_fl_cancel, {"LDLM_FL_CANCEL", "lustre.ldlm_fl_cancel", FT_BOOLEAN, 32, TFS(&flags_set_truth), LDLM_FL_CANCEL, "", HFILL}},
10034     {&hf_lustre_ldlm_fl_replay, {"LDLM_FL_REPLAY", "lustre.ldlm_fl_replay", FT_BOOLEAN, 32, TFS(&flags_set_truth), LDLM_FL_REPLAY, "", HFILL}},
10035     {&hf_lustre_ldlm_fl_intent_only, {"LDLM_FL_INTENT_ONLY", "lustre.ldlm_fl_intent_only", FT_BOOLEAN, 32, TFS(&flags_set_truth), LDLM_FL_INTENT_ONLY, "", HFILL}},
10036     {&hf_lustre_ldlm_fl_local_only, {"LDLM_FL_LOCAL_ONLY", "lustre.ldlm_fl_local_only", FT_BOOLEAN, 32, TFS(&flags_set_truth), LDLM_FL_LOCAL_ONLY, "", HFILL}},
10037     {&hf_lustre_ldlm_fl_failed, {"LDLM_FL_FAILED", "lustre.ldlm_fl_failed", FT_BOOLEAN, 32, TFS(&flags_set_truth), LDLM_FL_FAILED, "", HFILL}},
10038     {&hf_lustre_ldlm_fl_has_intent, {"LDLM_FL_HAS_INTENT", "lustre.ldlm_fl_has_intent", FT_BOOLEAN, 32, TFS(&flags_set_truth), LDLM_FL_HAS_INTENT, "", HFILL}},
10039     {&hf_lustre_ldlm_fl_canceling, {"LDLM_FL_CANCELING", "lustre.ldlm_fl_canceling", FT_BOOLEAN, 32, TFS(&flags_set_truth), LDLM_FL_CANCELING, "", HFILL}},
10040     {&hf_lustre_ldlm_fl_local, {"LDLM_FL_LOCAL", "lustre.ldlm_fl_local", FT_BOOLEAN, 32, TFS(&flags_set_truth), LDLM_FL_LOCAL, "", HFILL}},
10041     {&hf_lustre_ldlm_fl_warn, {"LDLM_FL_WARN", "lustre.ldlm_fl_warn", FT_BOOLEAN, 32, TFS(&flags_set_truth), LDLM_FL_WARN, "", HFILL}},
10042     {&hf_lustre_ldlm_fl_discard_data, {"LDLM_FL_DISCARD_DATA", "lustre.ldlm_fl_discard_data", FT_BOOLEAN, 32, TFS(&flags_set_truth), LDLM_FL_DISCARD_DATA, "", HFILL}},
10043     {&hf_lustre_ldlm_fl_no_timeout, {"LDLM_FL_NO_TIMEOUT", "lustre.ldlm_fl_no_timeout", FT_BOOLEAN, 32, TFS(&flags_set_truth), LDLM_FL_NO_TIMEOUT, "", HFILL}},
10044     {&hf_lustre_ldlm_fl_block_nowait, {"LDLM_FL_BLOCK_NOWAIT", "lustre.ldlm_fl_block_nowait", FT_BOOLEAN, 32, TFS(&flags_set_truth), LDLM_FL_BLOCK_NOWAIT, "", HFILL}},
10045     {&hf_lustre_ldlm_fl_test_lock, {"LDLM_FL_TEST_LOCK", "lustre.ldlm_fl_test_lock", FT_BOOLEAN, 32, TFS(&flags_set_truth), LDLM_FL_TEST_LOCK, "", HFILL}},
10046     {&hf_lustre_ldlm_fl_lvb_ready, {"LDLM_FL_LVB_READY", "lustre.ldlm_fl_lvb_ready", FT_BOOLEAN, 32, TFS(&flags_set_truth), LDLM_FL_LVB_READY, "", HFILL}},
10047     {&hf_lustre_ldlm_fl_kms_ignore, {"LDLM_FL_KMS_IGNORE", "lustre.ldlm_fl_kms_ignore", FT_BOOLEAN, 32, TFS(&flags_set_truth), LDLM_FL_KMS_IGNORE, "", HFILL}},
10048     {&hf_lustre_ldlm_fl_no_lru, {"LDLM_FL_NO_LRU", "lustre.ldlm_fl_no_lru", FT_BOOLEAN, 32, TFS(&flags_set_truth), LDLM_FL_NO_LRU, "", HFILL}},
10049     {&hf_lustre_ldlm_fl_cancel_on_block, {"LDLM_FL_CANCEL_ON_BLOCK", "lustre.ldlm_fl_cancel_on_block", FT_BOOLEAN, 32, TFS(&flags_set_truth), LDLM_FL_CANCEL_ON_BLOCK, "", HFILL}},
10050     {&hf_lustre_ldlm_fl_cp_reqd, {"LDLM_FL_CP_REQD", "lustre.ldlm_fl_cp_reqd", FT_BOOLEAN, 32, TFS(&flags_set_truth), LDLM_FL_CP_REQD, "", HFILL}},
10051     {&hf_lustre_ldlm_fl_cleaned, {"LDLM_FL_CLEANED", "lustre.ldlm_fl_cleaned", FT_BOOLEAN, 32, TFS(&flags_set_truth), LDLM_FL_CLEANED, "", HFILL}},
10052     {&hf_lustre_ldlm_fl_atomic_cb, {"LDLM_FL_ATOMIC_CB", "lustre.ldlm_fl_atomic_cb", FT_BOOLEAN, 32, TFS(&flags_set_truth), LDLM_FL_ATOMIC_CB, "", HFILL}},
10053     {&hf_lustre_ldlm_fl_bl_ast, {"LDLM_FL_BL_AST", "lustre.ldlm_fl_bl_ast", FT_BOOLEAN, 32, TFS(&flags_set_truth), LDLM_FL_BL_AST, "", HFILL}},
10054     {&hf_lustre_ldlm_fl_bl_done, {"LDLM_FL_BL_DONE", "lustre.ldlm_fl_bl_done", FT_BOOLEAN, 32, TFS(&flags_set_truth), LDLM_FL_BL_DONE, "", HFILL}},
10055     {&hf_lustre_ldlm_fl_deny_on_contention, {"LDLM_FL_DENY_ON_CONTENTION", "lustre.ldlm_fl_deny_on_contention", FT_BOOLEAN, 32, TFS(&flags_set_truth), LDLM_FL_DENY_ON_CONTENTION, "", HFILL}},
10056     {&hf_lustre_ldlm_ast_discard_data, {"LDLM_AST_DISCARD_DATA", "lustre.ldlm_ast_discard_data", FT_BOOLEAN, 32, TFS(&flags_set_truth), LDLM_AST_DISCARD_DATA, "", HFILL}},
10057
10058
10059     { &hf_lustre_obdo_o_misc,
10060       { "O Misc", "lustre.obdo.o_misc", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
10061     { &hf_lustre_ldlm_request_lock_handle,
10062       { "Lock Handle", "lustre.ldlm_request.lock_handle", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }},
10063     { &hf_lustre_llog_logid_lgl_oid,
10064       { "Lgl Oid", "lustre.llog_logid.lgl_oid", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }},
10065     { &hf_lustre_ldlm_inodebits_bits,
10066       { "Bits", "lustre.ldlm_inodebits.bits", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }},
10067     { &hf_lustre_llog_log_hdr_llh_count,
10068       { "Llh Count", "lustre.llog_log_hdr.llh_count", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
10069     { &hf_lustre_llog_gen_rec_lgr_tail,
10070       { "Lgr Tail", "lustre.llog_gen_rec.lgr_tail", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }},
10071     { &hf_lustre_llog_catid_lci_padding3,
10072       { "Lci Padding3", "lustre.llog_catid.lci_padding3", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
10073     { &hf_lustre_qunit_data_qd_qunit,
10074       { "Qd Qunit", "lustre.qunit_data.qd_qunit", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }},
10075     { &hf_lustre_llog_setattr_rec_padding,
10076       { "Padding", "lustre.llog_setattr_rec.padding", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
10077     { &hf_lustre_llog_cookie_lgc_lgl,
10078       { "Lgc Lgl", "lustre.llog_cookie.lgc_lgl", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }},
10079     { &hf_lustre_obd_quotactl_qc_dqinfo,
10080       { "Qc Dqinfo", "lustre.obd_quotactl.qc_dqinfo", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }},
10081     { &hf_lustre_llog_log_hdr_llh_bitmap,
10082       { "Llh Bitmap", "lustre.llog_log_hdr.llh_bitmap", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
10083     { &hf_lustre_obd_quotactl_qc_stat,
10084       { "Qc Stat", "lustre.obd_quotactl.qc_stat", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
10085     { &hf_lustre_qunit_data_old2_qd_id,
10086       { "Qd Id", "lustre.qunit_data_old2.qd_id", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
10087     { &hf_lustre_llog_logid_rec_padding2,
10088       { "Padding2", "lustre.llog_logid_rec.padding2", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
10089     { &hf_lustre_llog_orphan_rec_lor_tail,
10090       { "Lor Tail", "lustre.llog_orphan_rec.lor_tail", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }},
10091     { &hf_lustre_llog_logid_rec_padding5,
10092       { "Padding5", "lustre.llog_logid_rec.padding5", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
10093     /*-------------------------------------------------------------------------------------------------------------*/
10094     /*all this flags are uint64, but I don't find the way to use something like TFS() with a Uint64*/
10095     { &hf_lustre_ldlm_intent_opc_open,
10096       { "open", "lustre.ldlm_intent.opc_open", FT_BOOLEAN, 32, TFS(&flags_set_truth), IT_OPEN,  "", HFILL}},
10097     { &hf_lustre_ldlm_intent_opc_creat,
10098       { "creat", "lustre.ldlm_intent.opc_creat", FT_BOOLEAN, 32, TFS(&flags_set_truth), IT_CREAT  ,  "", HFILL}},
10099     { &hf_lustre_ldlm_intent_opc_readdir,
10100       { "readdir", "lustre.ldlm_intent.opc_readdir", FT_BOOLEAN, 32, TFS(&flags_set_truth), IT_READDIR  ,  "", HFILL}},
10101     { &hf_lustre_ldlm_intent_opc_getattr,
10102       { "getattr", "lustre.ldlm_intent.opc_getattr", FT_BOOLEAN, 32, TFS(&flags_set_truth), IT_GETATTR,  "", HFILL}},
10103     { &hf_lustre_ldlm_intent_opc_lookup,
10104       { "lookup", "lustre.ldlm_intent.opc_lookup", FT_BOOLEAN, 32, TFS(&flags_set_truth), IT_LOOKUP ,  "", HFILL}},
10105     { &hf_lustre_ldlm_intent_opc_unlink,
10106       { "unlink", "lustre.ldlm_intent.opc_unlink", FT_BOOLEAN, 32, TFS(&flags_set_truth), IT_UNLINK ,  "", HFILL}},
10107     { &hf_lustre_ldlm_intent_opc_getxattr,
10108       { "getxattr", "lustre.ldlm_intent.opc_getxattr", FT_BOOLEAN, 32, TFS(&flags_set_truth), IT_GETXATTR ,  "", HFILL}},
10109     { &hf_lustre_ldlm_intent_opc_exec,
10110       { "exec", "lustre.ldlm_intent.opc_exec", FT_BOOLEAN, 32, TFS(&flags_set_truth), IT_EXEC ,  "", HFILL}},
10111     { &hf_lustre_ldlm_intent_opc_pin,
10112       { "pin", "lustre.ldlm_intent.opc_pin", FT_BOOLEAN, 32, TFS(&flags_set_truth), IT_PIN ,  "", HFILL}},
10113     /*-------------------------------------------------------------------------------------------------------------*/
10114     { &hf_lustre_ldlm_intent_opc,
10115       { "intent opcode", "lustre.ldlm_intent.opc", FT_NONE, BASE_NONE, NULL, 0,  "", HFILL}},
10116     { &hf_lustre_llog_rec_hdr_lrh_type,
10117       { "Lrh Type", "lustre.llog_rec_hdr.lrh_type", FT_UINT32, BASE_HEX, VALS(lustre_llog_op_type), 0, "", HFILL }},
10118     { &hf_lustre_llog_rec_hdr_lrh_len,
10119       { "Lrh Len", "lustre.llog_rec_hdr.lrh_len", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
10120     { &hf_lustre_llog_setattr_rec_lsr_uid,
10121       { "Lsr Uid", "lustre.llog_setattr_rec.lsr_uid", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
10122     { &hf_lustre_lov_desc_ld_padding_1,
10123       { "Ld Padding 1", "lustre.lov_desc.ld_padding_1", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
10124     { &hf_lustre_obdo_o_padding_4,
10125       { "O Padding 4", "lustre.obdo.o_padding_4", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }},
10126     { &hf_lustre_mgs_target_info_padding,
10127       { "Padding", "lustre.mgs_target_info.padding", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
10128     { &hf_lustre_obd_quotactl_qc_dqblk,
10129       { "Qc Dqblk", "lustre.obd_quotactl.qc_dqblk", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }},
10130     { &hf_lustre_llogd_conn_body_lgdc_gen,
10131       { "Lgdc Gen", "lustre.llogd_conn_body.lgdc_gen", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }},
10132     { &hf_lustre_llog_log_hdr_llh_tail,
10133       { "Llh Tail", "lustre.llog_log_hdr.llh_tail", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }},
10134     { &hf_lustre_obdo_o_size,
10135       { "O Size", "lustre.obdo.o_size", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }},
10136     { &hf_lustre_ldlm_extent_start,
10137       { "Start", "lustre.ldlm_extent.start", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }},
10138     { &hf_lustre_llog_size_change_rec_lsc_hdr,
10139       { "Lsc Hdr", "lustre.llog_size_change_rec.lsc_hdr", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }},
10140     { &hf_lustre_llog_create_rec_lcr_tail,
10141       { "Lcr Tail", "lustre.llog_create_rec.lcr_tail", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }},
10142     { &hf_lustre_llog_logid_lgl_oseq,
10143       { "Lgl SEQ", "lustre.llog_logid.lgl_oseq", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }},
10144     { &hf_lustre_llog_create_rec_lcr_hdr,
10145       { "Lcr Hdr", "lustre.llog_create_rec.lcr_hdr", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }},
10146     { &hf_lustre_llog_cookie_lgc_padding,
10147       { "Lgc Padding", "lustre.llog_cookie.lgc_padding", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
10148     { &hf_lustre_qunit_data_old_qd_type,
10149       { "Qd Type", "lustre.qunit_data_old.qd_type", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
10150     { &hf_lustre_ldlm_flock_blocking_export,
10151       { "Blocking Export", "lustre.ldlm_flock.blocking_export", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }},
10152     { &hf_lustre_lov_desc_ld_pattern,
10153       { "Ld Pattern", "lustre.lov_desc.ld_pattern", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
10154     { &hf_lustre_qunit_data_qd_id,
10155       { "Qd Id", "lustre.qunit_data.qd_id", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
10156     { &hf_lustre_mgs_target_info_mti_fsname,
10157       { "Mti Fsname", "lustre.mgs_target_info.mti_fsname", FT_UINT8, BASE_DEC, NULL, 0, "", HFILL }},
10158     { &hf_lustre_ldlm_request_lock_flags,
10159       { "Lock Flags", "lustre.ldlm_request.lock_flags", FT_UINT32, BASE_HEX, NULL, 0 , "", HFILL }},
10160     { &hf_lustre_obdo_o_mode,
10161       { "O Mode", "lustre.obdo.o_mode", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
10162     { &hf_lustre_mgs_target_info_mti_svname,
10163       { "Mti Svname", "lustre.mgs_target_info.mti_svname", FT_UINT8, BASE_DEC, NULL, 0, "", HFILL }},
10164     { &hf_lustre_llogd_body_lgd_logid,
10165       { "Lgd Logid", "lustre.llogd_body.lgd_logid", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }},
10166     { &hf_lustre_llog_log_hdr_llh_size,
10167       { "Llh Size", "lustre.llog_log_hdr.llh_size", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
10168     { &hf_lustre_llog_create_rec_padding,
10169       { "Padding", "lustre.llog_create_rec.padding", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
10170     { &hf_lustre_obdo_o_handle,
10171       { "O Handle", "lustre.obdo.o_handle", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }},
10172     { &hf_lustre_obdo_o_atime,
10173       { "O Atime", "lustre.obdo.o_atime",FT_ABSOLUTE_TIME, BASE_DEC, NULL, 0, "", HFILL }},
10174     { &hf_lustre_quota_adjust_qunit_qaq_id,
10175       { "Qaq Id", "lustre.quota_adjust_qunit.qaq_id", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
10176     { &hf_lustre_ldlm_lock_desc_l_policy_data,
10177       { "L Policy Data", "lustre.ldlm_lock_desc.l_policy_data", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }},
10178     { &hf_lustre_obd_quotactl_qc_cmd,
10179       { "Qc Cmd", "lustre.obd_quotactl.qc_cmd", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
10180     { &hf_lustre_qunit_data_padding,
10181       { "Padding", "lustre.qunit_data.padding", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }},
10182     { &hf_lustre_quota_adjust_qunit_qaq_flags,
10183       { "Qaq Flags", "lustre.quota_adjust_qunit.qaq_flags", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
10184     { &hf_lustre_ldlm_lock_desc_l_granted_mode,
10185       { "L Granted Mode", "lustre.ldlm_lock_desc.l_granted_mode", FT_UINT16, BASE_DEC, VALS(lustre_ldlm_mode_t_vals), 0, "", HFILL }},
10186     { &hf_lustre_obdo_o_seq,
10187       { "O SEQ", "lustre.obdo.o_seq", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }},
10188     { &hf_lustre_obdo_o_gid,
10189       { "O Gid", "lustre.obdo.o_gid", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
10190     { &hf_lustre_llog_catid_lci_logid,
10191       { "Lci Logid", "lustre.llog_catid.lci_logid", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }},
10192     { &hf_lustre_llog_rec_tail_lrt_index,
10193       { "Lrt Index", "lustre.llog_rec_tail.lrt_index", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
10194     { &hf_lustre_lov_desc_ld_default_stripe_count,
10195       { "Ld Default Stripe Count", "lustre.lov_desc.ld_default_stripe_count", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
10196     { &hf_lustre_ldlm_resource_desc_lr_padding,
10197       { "Lr Padding", "lustre.ldlm_resource_desc.lr_padding", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
10198     { &hf_lustre_cfg_marker_cm_vers,
10199       { "Cm Vers", "lustre.cfg_marker.cm_vers", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
10200     { &hf_lustre_llog_unlink_rec_lur_hdr,
10201       { "Lur Hdr", "lustre.llog_unlink_rec.lur_hdr", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }},
10202     { &hf_lustre_llogd_body_lgd_index,
10203       { "Lgd Index", "lustre.llogd_body.lgd_index", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
10204     { &hf_lustre_cfg_marker_cm_tgtname,
10205       { "Cm Tgtname", "lustre.cfg_marker.cm_tgtname", FT_UINT8, BASE_DEC, NULL, 0, "", HFILL }},
10206     { &hf_lustre_llog_setattr_rec_lsr_ogen,
10207       { "Lsr Ogen", "lustre.llog_setattr_rec.lsr_ogen", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
10208     { &hf_lustre_llog_logid_rec_lid_hdr,
10209       { "Lid Hdr", "lustre.llog_logid_rec.lid_hdr", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }},
10210     { &hf_lustre_obdo_o_ioepoch,
10211       { "O IOEpoch", "lustre.obdo.o_ioepoch", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }},
10212     { &hf_lustre_ost_body_oa,
10213       { "Oa", "lustre.ost_body.oa", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }},
10214     { &hf_lustre_llog_logid_rec_padding3,
10215       { "Padding3", "lustre.llog_logid_rec.padding3", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
10216     { &hf_lustre_llog_log_hdr_llh_flags,
10217       { "Llh Flags", "lustre.llog_log_hdr.llh_flags", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
10218     {&hf_lustre_llog_hdr_llh_flag_zap_when_empty,
10219       {"LLOG_F_ZAP_WHEN_EMPTY","lustre.lustre.llog_log_hdr.llh_flag_zap",FT_BOOLEAN,32,TFS(&flags_set_truth),LLOG_F_ZAP_WHEN_EMPTY,"",HFILL}},
10220     {&hf_lustre_llog_hdr_llh_flag_is_cat,
10221       {"LLOG_F_IS_CAT","lustre.lustre.llog_log_hdr.llh_flag_cat",FT_BOOLEAN,32,TFS(&flags_set_truth),LLOG_F_IS_CAT,"",HFILL}},
10222     {&hf_lustre_llog_hdr_llh_flag_is_play,
10223       {"LOG_F_IS_PLAIN","lustre.lustre.llog_log_hdr.llh_flag_play",FT_BOOLEAN,32,TFS(&flags_set_truth),LLOG_F_IS_PLAIN,"",HFILL}},
10224
10225     { &hf_lustre_llog_setattr_rec_lsr_oid,
10226       { "Lsr Oid", "lustre.llog_setattr_rec.lsr_oid", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }},
10227     { &hf_lustre_llog_size_change_rec_padding,
10228       { "Padding", "lustre.llog_size_change_rec.padding", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
10229     { &hf_lustre_mgs_target_info_mti_config_ver,
10230       { "Mti Config Ver", "lustre.mgs_target_info.mti_config_ver", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
10231     { &hf_lustre_cfg_marker_cm_createtime,
10232       { "Cm Createtime", "lustre.cfg_marker.cm_createtime",FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
10233     { &hf_lustre_qunit_data_old_qd_count,
10234       { "Qd Count", "lustre.qunit_data_old.qd_count", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
10235     { &hf_lustre_llog_catid_lci_padding1,
10236       { "Lci Padding1", "lustre.llog_catid.lci_padding1", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
10237     { &hf_lustre_lov_desc_ld_active_tgt_count,
10238       { "Ld Active Tgt Count", "lustre.lov_desc.ld_active_tgt_count", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
10239     { &hf_lustre_obdo_o_lcookie,
10240       { "O Lcookie", "lustre.obdo.o_lcookie", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }},
10241     { &hf_lustre_llog_gen_rec_lgr_gen,
10242       { "Lgr Gen", "lustre.llog_gen_rec.lgr_gen", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }},
10243     { &hf_lustre_obdo_o_id,
10244       { "O Id", "lustre.obdo.o_id", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }},
10245     { &hf_lustre_mgs_target_info_mti_uuid,
10246       { "Mti Uuid", "lustre.mgs_target_info.mti_uuid", FT_UINT8, BASE_DEC, NULL, 0, "", HFILL }},
10247     { &hf_lustre_llog_rec_hdr_lrh_index,
10248       { "Lrh Index", "lustre.llog_rec_hdr.lrh_index", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
10249     { &hf_lustre_llog_setattr_rec_lsr_hdr,
10250       { "Lsr Hdr", "lustre.llog_setattr_rec.lsr_hdr", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }},
10251     { &hf_lustre_mgs_target_info_mti_stripe_index,
10252       { "Mti Stripe Index", "lustre.mgs_target_info.mti_stripe_index", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
10253     { &hf_lustre_llog_gen_conn_cnt,
10254       { "Conn Cnt", "lustre.llog_gen.conn_cnt", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }},
10255     { &hf_lustre_obdo_o_padding_6,
10256       { "O Padding 6", "lustre.obdo.o_padding_6", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }},
10257     { &hf_lustre_llog_cookie_lgc_index,
10258       { "Lgc Index", "lustre.llog_cookie.lgc_index", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
10259     { &hf_lustre_lov_desc_ld_uuid,
10260       { "Ld Uuid", "lustre.lov_desc.ld_uuid", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }},
10261     { &hf_lustre_llog_create_rec_lcr_oid,
10262       { "Lcr Oid", "lustre.llog_create_rec.lcr_oid", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }},
10263     { &hf_lustre_ldlm_reply_lock_desc,
10264       { "Lock Desc", "lustre.ldlm_reply.lock_desc", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }},
10265     { &hf_lustre_lov_desc_ld_padding_0,
10266       { "Ld Padding 0", "lustre.lov_desc.ld_padding_0", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
10267     { &hf_lustre_llog_unlink_rec_lur_ogen,
10268       { "Lur Ogen", "lustre.llog_unlink_rec.lur_ogen", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
10269     { &hf_lustre_llog_orphan_rec_lor_hdr,
10270       { "Lor Hdr", "lustre.llog_orphan_rec.lor_hdr", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }},
10271     { &hf_lustre_cfg_marker_cm_flags,
10272       { "Cm Flags", "lustre.cfg_marker.cm_flags", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
10273     { &hf_lustre_obdo_o_padding_3,
10274       { "O Padding 3", "lustre.obdo.o_padding_3", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }},
10275     { &hf_lustre_ldlm_request_lock_desc,
10276       { "Lock Desc", "lustre.ldlm_request.lock_desc", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }},
10277     { &hf_lustre_llog_orphan_rec_padding,
10278       { "Padding", "lustre.llog_orphan_rec.padding", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
10279     { &hf_lustre_obdo_o_flags,
10280       { "O Flags", "lustre.obdo.o_flags", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
10281     { &hf_lustre_mgs_target_info_mti_params,
10282       { "Mti Params", "lustre.mgs_target_info.mti_params", FT_UINT8, BASE_DEC, NULL, 0, "", HFILL }},
10283     { &hf_lustre_llog_logid_lgl_ogen,
10284       { "Lgl Ogen", "lustre.llog_logid.lgl_ogen", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
10285     { &hf_lustre_cfg_marker_cm_comment,
10286       { "Cm Comment", "lustre.cfg_marker.cm_comment", FT_UINT8, BASE_DEC, NULL, 0, "", HFILL }},
10287     { &hf_lustre_llog_unlink_rec_lur_oid,
10288       { "Lur Oid", "lustre.llog_unlink_rec.lur_oid", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }},
10289     { &hf_lustre_qunit_data_qd_count,
10290       { "Qd Count", "lustre.qunit_data.qd_count", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }},
10291     { &hf_lustre_obdo_o_mtime,
10292       { "O Mtime", "lustre.obdo.o_mtime",FT_ABSOLUTE_TIME, BASE_DEC, NULL, 0, "", HFILL }},
10293     { &hf_lustre_obdo_o_blksize,
10294       { "O Blksize", "lustre.obdo.o_blksize", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
10295     { &hf_lustre_ldlm_res_id_name,
10296       { "Name", "lustre.ldlm_res_id.name", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }},
10297     { &hf_lustre_ldlm_reply_lock_handle,
10298       { "Lock Handle", "lustre.ldlm_reply.lock_handle", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }},
10299     { &hf_lustre_llogd_body_lgd_saved_index,
10300       { "Lgd Saved Index", "lustre.llogd_body.lgd_saved_index", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
10301     { &hf_lustre_qunit_data_old_qd_isblk,
10302       { "Qd Isblk", "lustre.qunit_data_old.qd_isblk", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
10303     { &hf_lustre_obdo_o_blocks,
10304       { "O Blocks", "lustre.obdo.o_blocks", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }},
10305     { &hf_lustre_lov_desc_ld_padding_2,
10306       { "Ld Padding 2", "lustre.lov_desc.ld_padding_2", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
10307     { &hf_lustre_llog_logid_rec_lid_tail,
10308       { "Lid Tail", "lustre.llog_logid_rec.lid_tail", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }},
10309     { &hf_lustre_obdo_o_grant,
10310       { "O Grant", "lustre.obdo.o_grant", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }},
10311     { &hf_lustre_obdo_o_padding_2,
10312       { "O Padding 2", "lustre.obdo.o_padding_2", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }},
10313     { &hf_lustre_quota_adjust_qunit_qaq_iunit_sz,
10314       { "Qaq Iunit Sz", "lustre.quota_adjust_qunit.qaq_iunit_sz", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }},
10315     { &hf_lustre_llog_unlink_rec_padding,
10316       { "Padding", "lustre.llog_unlink_rec.padding", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
10317     { &hf_lustre_ldlm_lock_desc_l_req_mode,
10318       { "L Req Mode", "lustre.ldlm_lock_desc.l_req_mode", FT_UINT16, BASE_DEC, VALS(lustre_ldlm_mode_t_vals), 0, "", HFILL }},
10319     { &hf_lustre_ldlm_extent_end,
10320       { "End", "lustre.ldlm_extent.end", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }},
10321     { &hf_lustre_llog_gen_rec_lgr_hdr,
10322       { "Lgr Hdr", "lustre.llog_gen_rec.lgr_hdr", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }},
10323     { &hf_lustre_llog_orphan_rec_lor_ogen,
10324       { "Lor Ogen", "lustre.llog_orphan_rec.lor_ogen", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
10325     { &hf_lustre_llogd_body_lgd_llh_flags,
10326       { "Lgd Llh Flags", "lustre.llogd_body.lgd_llh_flags", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
10327     { &hf_lustre_llog_log_hdr_llh_cat_idx,
10328       { "Llh Cat Idx", "lustre.llog_log_hdr.llh_cat_idx", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
10329     { &hf_lustre_llog_log_hdr_llh_bitmap_offset,
10330       { "Llh Bitmap Offset", "lustre.llog_log_hdr.llh_bitmap_offset", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
10331     { &hf_lustre_llog_orphan_rec_lor_oid,
10332       { "Lor Oid", "lustre.llog_orphan_rec.lor_oid", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }},
10333     { &hf_lustre_ldlm_reply_lock_padding,
10334       { "Lock Padding", "lustre.ldlm_reply.lock_padding", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
10335     { &hf_lustre_obd_quotactl_qc_id,
10336       { "Qc Id", "lustre.obd_quotactl.qc_id", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
10337     { &hf_lustre_llog_logid_rec_padding4,
10338       { "Padding4", "lustre.llog_logid_rec.padding4", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
10339     { &hf_lustre_llog_setattr_rec_lsr_gid,
10340       { "Lsr Gid", "lustre.llog_setattr_rec.lsr_gid", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
10341     { &hf_lustre_obd_quotactl_qc_type,
10342       { "Qc Type", "lustre.obd_quotactl.qc_type", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
10343     { &hf_lustre_cfg_marker_padding,
10344       { "Padding", "lustre.cfg_marker.padding", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
10345     { &hf_lustre_mgs_target_info_mti_nids,
10346       { "Mti Nids", "lustre.mgs_target_info.mti_nids", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }},
10347     { &hf_lustre_obdo_o_stripe_idx,
10348       { "O Stripe Idx", "lustre.obdo.o_stripe_idx", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
10349     { &hf_lustre_llogd_conn_body_lgdc_logid,
10350       { "Lgdc Logid", "lustre.llogd_conn_body.lgdc_logid", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }},
10351     { &hf_lustre_ldlm_flock_blocking_pid,
10352       { "Blocking Pid", "lustre.ldlm_flock.blocking_pid", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
10353     { &hf_lustre_lov_desc_ld_tgt_count,
10354       { "Ld Tgt Count", "lustre.lov_desc.ld_tgt_count", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
10355     { &hf_lustre_llogd_body_lgd_cur_offset,
10356       { "Lgd Cur Offset", "lustre.llogd_body.lgd_cur_offset", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }},
10357     { &hf_lustre_llog_create_rec_lcr_ogen,
10358       { "Lcr Ogen", "lustre.llog_create_rec.lcr_ogen", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
10359     { &hf_lustre_qunit_data_old2_qd_count,
10360       { "Qd Count", "lustre.qunit_data_old2.qd_count", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }},
10361     { &hf_lustre_opnum,
10362       { "Operation", "lustre.opnum", FT_UINT16, BASE_DEC, NULL, 0, "", HFILL }},
10363     { &hf_lustre_qunit_data_old2_qd_flags,
10364       { "Qd Flags", "lustre.qunit_data_old2.qd_flags", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
10365     { &hf_lustre_ldlm_flock_start,
10366       { "Start", "lustre.ldlm_flock.start", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }},
10367     { &hf_lustre_quota_adjust_qunit_qaq_bunit_sz,
10368       { "Qaq Bunit Sz", "lustre.quota_adjust_qunit.qaq_bunit_sz", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }},
10369     { &hf_lustre_ldlm_flock_pid,
10370       { "Pid", "lustre.ldlm_flock.pid", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
10371     { &hf_lustre_lov_desc_ld_default_stripe_size,
10372       { "Ld Default Stripe Size", "lustre.lov_desc.ld_default_stripe_size", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }},
10373     { &hf_lustre_llog_log_hdr_llh_tgtuuid,
10374       { "Llh Tgtuuid", "lustre.llog_log_hdr.llh_tgtuuid", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }},
10375     { &hf_lustre_cfg_marker_cm_step,
10376       { "Cm Step", "lustre.cfg_marker.cm_step", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
10377     { &hf_lustre_mgs_send_param_mgs_param,
10378       { "Mgs Param", "lustre.mgs_send_param.mgs_param", FT_UINT8, BASE_DEC, NULL, 0, "", HFILL }},
10379     { &hf_lustre_llog_create_rec_lcr_fid,
10380       { "Lcr Fid", "lustre.llog_create_rec.lcr_fid", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }},
10381     { &hf_lustre_lov_desc_ld_default_stripe_offset,
10382       { "Ld Default Stripe Offset", "lustre.lov_desc.ld_default_stripe_offset", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }},
10383     { &hf_lustre_ldlm_resource_desc_lr_name,
10384       { "Lr Name", "lustre.ldlm_resource_desc.lr_name", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }},
10385     { &hf_lustre_llog_rec_tail_lrt_len,
10386       { "Lrt Len", "lustre.llog_rec_tail.lrt_len", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
10387     { &hf_lustre_llog_log_hdr_llh_timestamp,
10388       { "Llh Timestamp", "lustre.llog_log_hdr.llh_timestamp", FT_ABSOLUTE_TIME, BASE_DEC, NULL, 0, "", HFILL }},
10389     { &hf_lustre_llog_catid_lci_padding2,
10390       { "Lci Padding2", "lustre.llog_catid.lci_padding2", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
10391     { &hf_lustre_llogd_conn_body_lgdc_ctxt_idx,
10392       { "Lgdc Ctxt Idx", "lustre.llogd_conn_body.lgdc_ctxt_idx", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
10393     { &hf_lustre_cfg_marker_cm_canceltime,
10394       { "Cm Canceltime", "lustre.cfg_marker.cm_canceltime",FT_ABSOLUTE_TIME, BASE_DEC, NULL, 0, "", HFILL }},
10395     { &hf_lustre_mgs_target_info_mti_lustre_ver,
10396       { "Mti Lustre Ver", "lustre.mgs_target_info.mti_lustre_ver", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
10397     { &hf_lustre_obdo_o_parent_ver,
10398       { "O Parent VER", "lustre.obdo.o_parent_ver", FT_UINT32, BASE_HEX, NULL, 0, "", HFILL }},
10399     { &hf_lustre_qunit_data_qd_flags,
10400       { "Qd Flags", "lustre.qunit_data.qd_flags", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
10401     { &hf_lustre_llog_logid_rec_lid_id,
10402       { "Lid Id", "lustre.llog_logid_rec.lid_id", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }},
10403     { &hf_lustre_obdo_o_parent_oid,
10404       { "O Parent OID", "lustre.obdo.o_parent_oid", FT_UINT32, BASE_HEX, NULL, 0, "", HFILL }},
10405     { &hf_lustre_llog_gen_mnt_cnt,
10406       { "Mnt Cnt", "lustre.llog_gen.mnt_cnt", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }},
10407     { &hf_lustre_llog_size_change_rec_lsc_tail,
10408       { "Lsc Tail", "lustre.llog_size_change_rec.lsc_tail", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }},
10409     { &hf_lustre_obdo_o_padding_5,
10410       { "O Padding 5", "lustre.obdo.o_padding_5", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }},
10411     { &hf_lustre_ldlm_lock_desc_l_resource,
10412       { "L Resource", "lustre.ldlm_lock_desc.l_resource", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }},
10413     { &hf_lustre_obdo_o_parent_seq,
10414       { "O Parent SEQ", "lustre.obdo.o_parent_seq", FT_UINT64, BASE_HEX, NULL, 0, "", HFILL }},
10415     { &hf_lustre_ldlm_request_lock_count,
10416       { "Lock Count", "lustre.ldlm_request.lock_count", FT_UINT32, BASE_HEX_DEC, NULL, 0, "", HFILL }},
10417     { &hf_lustre_ldlm_flock_end,
10418       { "End", "lustre.ldlm_flock.end", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }},
10419     { &hf_lustre_mgs_target_info_mti_nid_count,
10420       { "Mti Nid Count", "lustre.mgs_target_info.mti_nid_count", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
10421     /* ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- */
10422     { &hf_lustre_mgs_target_info,
10423       { "mgs target info", "lustre.mgs_target_info", FT_NONE, BASE_NONE, NULL, 0, "", HFILL }},
10424     { &hf_lustre_mgs_send_param,
10425       { "mgs send param", "lustre.mgs_send_param", FT_NONE, BASE_NONE, NULL, 0, "", HFILL }},
10426     /* ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- */
10427     { &hf_lustre_ost_lvb,
10428       { "ost lvb data", "lustre.ost_lvb", FT_NONE, BASE_NONE, NULL, 0, "", HFILL }},
10429
10430     { &hf_lustre_obdo_o_ctime,
10431       { "O Ctime", "lustre.obdo.o_ctime",FT_ABSOLUTE_TIME, BASE_DEC, NULL, 0, "", HFILL }},
10432     { &hf_lustre_ldlm_reply_lock_policy_res2,
10433       { "Lock Policy Res2", "lustre.ldlm_reply.lock_policy_res2", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }},
10434     { &hf_lustre_llogd_body_lgd_ctxt_idx,
10435       { "Lgd Ctxt Idx", "lustre.llogd_body.lgd_ctxt_idx", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
10436     { &hf_lustre_lov_desc_ld_qos_maxage,
10437       { "Ld Qos Maxage", "lustre.lov_desc.ld_qos_maxage", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
10438     { &hf_lustre_ldlm_resource_desc_lr_type,
10439       { "Lr Type", "lustre.ldlm_resource_desc.lr_type", FT_UINT16, BASE_DEC, VALS(lustre_ldlm_type_t_vals), 0, "", HFILL }},
10440     { &hf_lustre_llog_setattr_rec_lsr_tail,
10441       { "Lsr Tail", "lustre.llog_setattr_rec.lsr_tail", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }},
10442     { &hf_lustre_llog_cookie_lgc_subsys,
10443       { "Lgc Subsys", "lustre.llog_cookie.lgc_subsys", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
10444     { &hf_lustre_llog_log_hdr_llh_hdr,
10445       { "Llh Hdr", "lustre.llog_log_hdr.llh_hdr", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }},
10446     { &hf_lustre_llog_log_hdr_llh_reserved,
10447       { "Llh Reserved", "lustre.llog_log_hdr.llh_reserved", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
10448
10449     { &hf_lustre_extra_padding,
10450       { "extra padding", "lustre.msg_v2_extra_padding", FT_NONE, BASE_NONE, NULL, 0, "", HFILL}},
10451     { &hf_lustre_ldlm_reply,
10452       { "ldlm reply", "lustre.ldlm_reply", FT_NONE, BASE_NONE, NULL, 0, "", HFILL}},
10453     { &hf_lustre_ldlm_request,
10454       { "ldlm request", "lustre.ldlm_request", FT_NONE, BASE_NONE, NULL, 0, "", HFILL}},
10455
10456     /* add for lustre_user.h */
10457     { &hf_lustre_obd_dqinfo_dqi_valid,
10458       { "Dqi Valid", "lustre.obd_dqinfo.dqi_valid", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
10459     { &hf_lustre_obd_dqblk_dqb_isoftlimit,
10460       { "Dqb Isoftlimit", "lustre.obd_dqblk.dqb_isoftlimit", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }},
10461     { &hf_lustre_obd_dqblk_dqb_bhardlimit,
10462       { "Dqb Bhardlimit", "lustre.obd_dqblk.dqb_bhardlimit", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }},
10463     { &hf_lustre_obd_dqblk_dqb_curspace,
10464       { "Dqb Curspace", "lustre.obd_dqblk.dqb_curspace", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }},
10465     { &hf_lustre_obd_dqblk_dqb_itime,
10466       { "Dqb Itime", "lustre.obd_dqblk.dqb_itime", FT_ABSOLUTE_TIME, BASE_DEC, NULL, 0, "", HFILL }},
10467     { &hf_lustre_obd_dqblk_dqb_valid,
10468       { "Dqb Valid", "lustre.obd_dqblk.dqb_valid", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
10469     { &hf_lustre_obd_dqinfo_dqi_igrace,
10470       { "Dqi Igrace", "lustre.obd_dqinfo.dqi_igrace", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }},
10471     { &hf_lustre_obd_dqinfo_dqi_bgrace,
10472       { "Dqi Bgrace", "lustre.obd_dqinfo.dqi_bgrace", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }},
10473     { &hf_lustre_obd_dqblk_padding,
10474       { "Padding", "lustre.obd_dqblk.padding", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
10475     { &hf_lustre_obd_dqblk_dqb_curinodes,
10476       { "Dqb Curinodes", "lustre.obd_dqblk.dqb_curinodes", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }},
10477     { &hf_lustre_obd_dqblk_dqb_bsoftlimit,
10478       { "Dqb Bsoftlimit", "lustre.obd_dqblk.dqb_bsoftlimit", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }},
10479     { &hf_lustre_obd_dqinfo_dqi_flags,
10480       { "Dqi Flags", "lustre.obd_dqinfo.dqi_flags", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }},
10481     { &hf_lustre_obd_dqblk_dqb_btime,
10482       { "Dqb Btime", "lustre.obd_dqblk.dqb_btime", FT_ABSOLUTE_TIME, BASE_DEC, NULL, 0, "", HFILL }},
10483     { &hf_lustre_obd_dqblk_dqb_ihardlimit,
10484       { "Dqb Ihardlimit", "lustre.obd_dqblk.dqb_ihardlimit", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }}
10485
10486   };
10487
10488
10489   static gint *ett[] = {
10490     &ett_lustre,
10491     &ett_lustre_lustre_handle_cookie,
10492     &ett_lustre_lustre_msg_v1,
10493     &ett_lustre_lustre_handle_v1,
10494     &ett_lustre_lustre_msg_v2,
10495     &ett_lustre_ptlrpc_body,
10496     &ett_lustre_lustre_handle_v2,
10497     &ett_lustre_obd_connect_data,
10498     &ett_lustre_lov_mds_md_v1,
10499     &ett_lustre_lov_ost_data_v1,
10500     &ett_lustre_obd_statfs,
10501     &ett_lustre_obd_ioobj,
10502     &ett_lustre_niobuf_remote,
10503     &ett_lustre_ost_lvb,
10504     &ett_lustre_ll_fid,
10505     &ett_lustre_obd_quotactl,
10506     &ett_lustre_obd_dqinfo,
10507     &ett_lustre_obd_dqblk,
10508     &ett_lustre_quota_adjust_qunit,
10509     &ett_lustre_mdt_body,
10510     &ett_lustre_mdt_rec_setattr,
10511     &ett_lustre_mdt_rec_create,
10512     &ett_lustre_mdt_rec_link,
10513     &ett_lustre_mdt_rec_unlink,
10514     &ett_lustre_mdt_rec_rename,
10515     &ett_lustre_mdt_rec_setxattr,
10516     &ett_lustre_lov_desc,
10517     &ett_lustre_obd_uuid,
10518     &ett_lustre_ldlm_res_id,
10519     &ett_lustre_ldlm_extent,
10520     &ett_lustre_ldlm_inodebits,
10521     &ett_lustre_ldlm_flock,
10522     &ett_lustre_ldlm_intent_opc,
10523     &ett_lustre_ldlm_resource_desc,
10524     &ett_lustre_ldlm_res_id,
10525     &ett_lustre_ldlm_lock_desc,
10526     &ett_lustre_ldlm_resource_desc,
10527     &ett_lustre_ldlm_request,
10528     &ett_lustre_ldlm_lock_desc,
10529     &ett_lustre_lustre_handle,
10530     &ett_lustre_ldlm_reply,
10531     &ett_lustre_ldlm_lock_desc,
10532     &ett_lustre_lustre_handle,
10533     &ett_lustre_mgs_send_param,
10534     &ett_lustre_mgs_target_info,
10535     &ett_lustre_cfg_marker,
10536     &ett_lustre_llog_logid,
10537     &ett_lustre_llog_catid,
10538     &ett_lustre_llog_logid,
10539     &ett_lustre_lov_mds_md,
10540     &ett_lustre_llog_logid,
10541     &ett_lustre_llog_rec_hdr,
10542     &ett_lustre_llog_rec_tail,
10543     &ett_lustre_llog_logid_rec,
10544     &ett_lustre_llog_rec_hdr,
10545     &ett_lustre_llog_logid,
10546     &ett_lustre_llog_rec_tail,
10547     &ett_lustre_lov_mds_md,
10548     &ett_lustre_llog_rec_hdr,
10549     &ett_lustre_llog_rec_tail,
10550     &ett_lustre_llog_create_rec,
10551     &ett_lustre_llog_rec_hdr,
10552     &ett_lustre_ll_fid,
10553     &ett_lustre_llog_rec_tail,
10554     &ett_lustre_llog_orphan_rec,
10555     &ett_lustre_llog_rec_hdr,
10556     &ett_lustre_llog_rec_tail,
10557     &ett_lustre_llog_unlink_rec,
10558     &ett_lustre_llog_rec_hdr,
10559     &ett_lustre_llog_rec_tail,
10560     &ett_lustre_llog_setattr_rec,
10561     &ett_lustre_llog_rec_hdr,
10562     &ett_lustre_llog_rec_tail,
10563     &ett_lustre_llog_size_change_rec,
10564     &ett_lustre_llog_rec_hdr,
10565     &ett_lustre_ll_fid,
10566     &ett_lustre_llog_rec_tail,
10567     &ett_lustre_llog_gen,
10568     &ett_lustre_llog_gen_rec,
10569     &ett_lustre_llog_rec_hdr,
10570     &ett_lustre_llog_gen,
10571     &ett_lustre_llog_rec_tail,
10572     &ett_lustre_llog_log_hdr,
10573     &ett_lustre_llog_rec_hdr,
10574     &ett_lustre_obd_uuid,
10575     &ett_lustre_llog_rec_tail,
10576     &ett_lustre_llog_cookie,
10577     &ett_lustre_llog_logid,
10578     &ett_lustre_llogd_body,
10579     &ett_lustre_llog_logid,
10580     &ett_lustre_llogd_conn_body,
10581     &ett_lustre_llog_gen,
10582     &ett_lustre_llog_logid,
10583     &ett_lustre_llog_logid,
10584     &ett_lustre_obdo,
10585     &ett_lustre_lustre_handle,
10586     &ett_lustre_llog_cookie,
10587     &ett_lustre_ost_body,
10588     &ett_lustre_obdo,
10589     &ett_lustre_qunit_data,
10590     &ett_lustre_qunit_data_old2,
10591     &ett_lustre_qunit_data_old,
10592     &ett_lustre_ldlm_lock_flags,
10593     &ett_lustre_llog_log_llh_flags,
10594
10595   };
10596
10597   proto_lustre = proto_register_protocol("Lustre", "lustre", "lustre");
10598   proto_register_field_array(proto_lustre, hf, array_length (hf));
10599   proto_register_subtree_array(ett, array_length(ett));
10600 }
10601
10602
10603 void proto_reg_handoff_lustre(void)
10604 {
10605   dissector_handle_t lustre_handle;
10606   lustre_handle=create_dissector_handle(dissect_lustre, proto_lustre);
10607   /* we use Lustre only if we get ptl_index = One of this code (we have removed the bulk code) */
10608   /* in LNET we test if the message is a put or not before adding an lnet.ptl_index value */
10609   dissector_add("lnet.ptl_index", MDC_REPLY_PORTAL          , lustre_handle);
10610   dissector_add("lnet.ptl_index", CONNMGR_REQUEST_PORTAL    , lustre_handle);
10611   dissector_add("lnet.ptl_index", CONNMGR_REPLY_PORTAL      , lustre_handle);
10612   dissector_add("lnet.ptl_index", OSC_REPLY_PORTAL          , lustre_handle);
10613   dissector_add("lnet.ptl_index", OST_IO_PORTAL             , lustre_handle);
10614   dissector_add("lnet.ptl_index", OST_CREATE_PORTAL         , lustre_handle);
10615   dissector_add("lnet.ptl_index", MDC_REPLY_PORTAL          , lustre_handle);
10616   dissector_add("lnet.ptl_index", MDS_REQUEST_PORTAL        , lustre_handle);
10617   dissector_add("lnet.ptl_index", LDLM_CB_REQUEST_PORTAL    , lustre_handle);
10618   dissector_add("lnet.ptl_index", LDLM_CB_REPLY_PORTAL      , lustre_handle);
10619   dissector_add("lnet.ptl_index", LDLM_CANCEL_REQUEST_PORTAL, lustre_handle);
10620   dissector_add("lnet.ptl_index", LDLM_CANCEL_REPLY_PORTAL  , lustre_handle);
10621   dissector_add("lnet.ptl_index", MDS_SETATTR_PORTAL        , lustre_handle);
10622   dissector_add("lnet.ptl_index", MDS_READPAGE_PORTAL       , lustre_handle);
10623   dissector_add("lnet.ptl_index", MGC_REPLY_PORTAL          , lustre_handle);
10624   dissector_add("lnet.ptl_index", MGS_REQUEST_PORTAL        , lustre_handle);
10625   dissector_add("lnet.ptl_index", MGS_REPLY_PORTAL          , lustre_handle);
10626   dissector_add("lnet.ptl_index", OST_REQUEST_PORTAL        , lustre_handle);
10627 }