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