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