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