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