Whamcloud - gitweb
LU-6353 contrib: Remove wireshark plugin 02/30602/5
authorNathaniel Clark <nathaniel.l.clark@intel.com>
Tue, 9 Jan 2018 13:04:29 +0000 (08:04 -0500)
committerOleg Drokin <oleg.drokin@intel.com>
Fri, 9 Feb 2018 05:58:10 +0000 (05:58 +0000)
Wireshark dissection has been pushed upstream:
https://code.wireshark.org/review/24795 [lnet]
https://code.wireshark.org/review/24800 [lustre]

Both patches have landed to wireshark master.

Dissectors were ported to wireshark master and significantly expaneded
and cleaned up.

Test-Parameters: trivial
Signed-off-by: Nathaniel Clark <nathaniel.l.clark@intel.com>
Change-Id: I0a9d54634599cdb7f9169f1186c58fa96666b246
Reviewed-on: https://review.whamcloud.com/30602
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Reviewed-by: Doug Oucharek <dougso@me.com>
contrib/scripts/gerrit_checkpatch.py
lustre/contrib/wireshark/Makefile [deleted file]
lustre/contrib/wireshark/README [deleted file]
lustre/contrib/wireshark/lustre-wireshark-plugins-template.spec [deleted file]
lustre/contrib/wireshark/lustre_dlm_flags_wshark.c [deleted file]
lustre/contrib/wireshark/packet-lnet.c [deleted file]
lustre/contrib/wireshark/packet-lustre.c [deleted file]
lustre/contrib/wireshark/wireshark-compat.h [deleted file]
lustre/contrib/wireshark/wsbuild [deleted file]
lustre/contrib/wireshark/wsconfig.sh [deleted file]

index cd77982..28b0073 100755 (executable)
@@ -73,7 +73,6 @@ GERRIT_CHANGE_NUMBER = os.getenv('GERRIT_CHANGE_NUMBER', None)
 CHECKPATCH_PATHS = _getenv_list('CHECKPATCH_PATHS', ['checkpatch.pl'])
 CHECKPATCH_ARGS = os.getenv('CHECKPATCH_ARGS','--show-types -').split(' ')
 CHECKPATCH_IGNORED_FILES = _getenv_list('CHECKPATCH_IGNORED_FILES', [
-        'lustre/contrib/wireshark/packet-lustre.c',
         'lustre/ptlrpc/wiretest.c',
         'lustre/utils/wiretest.c',
         '*.patch'])
diff --git a/lustre/contrib/wireshark/Makefile b/lustre/contrib/wireshark/Makefile
deleted file mode 100644 (file)
index 885319f..0000000
+++ /dev/null
@@ -1,130 +0,0 @@
-# Makefile to create the Lustre/LNet plugins for Wireshark.
-# It is intended to be used by script `wsbuild´ that will buil
-# a RPM for wireshark and a separate RPM for the Lustre/LNet plugins.
-#
-# All configuration should be performed with help of shell script
-# `wsconfigs.sh' (see can-edit sections).
-#
-# When using as a stand-alone makefile, set the macros WS_HOME,
-# PLUGIN_DIR and PLUGIN_COMPILE_FLAGS to the values associated with
-# your wireshark installation.
-# Alternatively modify `wsconfigs.sh´ accordingly to your wireshar
-# installation, source wsconfigs.sh and build with help of:
-#
-#      make -e -f Makefile
-#
-
-#
-# Minimum Wireshark Version - This should match the README file.
-#
-MIN_WIRESHARK_VERSION=1.6.8
-
-# Installation directory of the Wireshark source code
-#    Note: Leave the macro undefined when using the wsbuild script.
-#
-# WS_HOME =
-WS_HOME = 
-
-# Installation directory for the (compiled) Wireshark plugins
-#    Change the value of the following macro to the installation directory
-#    of the Wireshark plugins for your installation 
-#
-#    Note: When using the cbuild script leave the macro undefined
-#    (default: /usr/lib/wireshark/plugins/$(WS_VERSION))
-#
-#    For non-root and  non-rpmbuilds you might want to set the value to
-#        ${HOME}/.wireshark/plugins
-PLUGIN_DIR =
-
-CFLAGS = -DINET6 -D_U_=__attribute__\(\(unused\)\) -Wall -Wpointer-arith -g \
-       -DXTHREADS -D_REENTRANT -DXUSE_MTSAFE_API -fPIC -DPIC
-
-ifdef WS_HOME
-#INCS = $(shell echo "-I${WS_HOME} `./wsconfig.sh --libs --cflags glib-2.0`")
-INCS := $(shell echo "-I${WS_HOME} $(PLUGIN_COMPILE_FLAGS)") -DHAVE_CONFIG_H 
-
-else
-INCS := $(shell ./wsconfig.sh --libs --cflags wireshark) \
-       $(shell ./wsconfig.sh --libs --cflags glib-2.0) \
-       -I../../include \
-       $(shell echo "$(PLUGIN_COMPILE_FLAGS)") -DHAVE_CONFIG_H
-WS_VERSION := $(shell ./wsconfig.sh --modversion wireshark)
-LIBDIR := $(shell ./wsconfig.sh --variable=libdir wireshark)
-CHECK=./wsconfig.sh --atleast-version=${MIN_WIRESHARK_VERSION} wireshark
-endif
-
-CFLAGS += $(INCS)
-
-SRCS_LNET = packet-lnet.c
-SRCS_LUSTRE = packet-lustre.c
-
-CC   = gcc
-
-OBJS_LNET := $(foreach src, $(SRCS_LNET), $(src:.c=.o))
-OBJS_LUSTRE := $(foreach src, $(SRCS_LUSTRE), $(src:.c=.o))
-
-PLUGINS=lnet.so lustre.so
-
-ifeq (${CHECK},)
-       CHECK=true
-endif
-
-ifneq ($(shell id -u), 0)
-  ifndef DESTDIR
-    PLUGIN_DIR = ${HOME}/.wireshark/plugins
-  endif
-endif
-
-ifndef PLUGIN_DIR
-  ifndef WS_VERSION
-    ifndef WS_HOME
-      $(error "WS_HOME not defined")
-    endif
-    WS_CONFIG=$(WS_HOME)/config.h
-    WS_VERSION:=$(shell sed "s/^.define[[:space:]]*VERSION[[:space:]]*\"\(.*\)\"/\1/p;d" ${WS_CONFIG})
-  endif
-  ifeq (${LIBDIR},)
-    ifeq ($(shell if [ -r /etc/SuSE-release ] ; then echo 0; else echo 1; fi ), 0)
-      LIBDIR=/usr/lib64
-    else
-      LIBDIR=/usr/lib
-    endif
-  endif
-  PLUGIN_DIR = $(DESTDIR)$(LIBDIR)/wireshark/plugins/$(WS_VERSION)
-endif
-
-
-all: check $(PLUGINS) lustre_dlm_flags_wshark.c
-
-lustre_dlm_flags_wshark.c :
-       cd ../../../contrib/bit-masks ; \
-       make
-       test -f lustre_dlm_flags_wshark.c
-
-check:
-       @if ! ${CHECK}; then\
-               echo "Wireshark must be at least version ${MIN_WIRESHARK_VERSION} (installed ${WS_VERSION})";\
-               false; \
-       fi
-
-lustre.so: $(OBJS_LUSTRE)
-       $(CC) -shared $(OBJS_LUSTRE) -o $@
-
-lnet.so: $(OBJS_LNET)
-       $(CC) -shared $(OBJS_LNET) -o $@
-
-install: all
-       mkdir -p $(PLUGIN_DIR)
-       install $(PLUGINS) $(PLUGIN_DIR)/
-
-help:
-       @echo "Includes:    "$(INCS)
-       @echo "Install Dir: "$(PLUGIN_DIR)
-
-clean:
-       rm -f $(PLUGINS) $(OBJS_LNET) $(OBJS_LUSTRE)
-
-extraclean: clean
-       (cd $(PLUGIN_DIR)/; rm -f $(PLUGINS))
-
-.PHONEY: check help install extraclean clean all
diff --git a/lustre/contrib/wireshark/README b/lustre/contrib/wireshark/README
deleted file mode 100644 (file)
index 780e6b9..0000000
+++ /dev/null
@@ -1,92 +0,0 @@
-Instructions for Building Lustre/LNet Wireshark Support
--------------------------------------------------------
-
-To compile the RPMs for Wireshark and the Lustre/LNet wireshark
-plugins, please follow the instruction in paragraph
-'Build with packaging support'.
-
-In case you prefer a lightweight compilation and installation without
-any packging 'overhead', please follow the instruction in paragraph 
-'Build without packaging support'.
-
-
-Supported distributions:
-
-    CentOS 6.3   i686, x86_64
-    SLES 11 SP1        x86_64
-    SLES 11 SP2        x86_64
-
-
-Software Pre-requisits:
-To run and compile wirkshark the following software needs to be installed
-    gtk2
-    gtk2-devel
-    glib2
-    libpcap
-    libpcap-devel
-    perl
-
-
-Build with packaging support
--------------------------------
-Simply type ./wsbuild on a node that match one of the disribution specified
-above to create the RPMs for wirkshark and the associated Lustre/LNet plugins.
-
-Upon success the build results can be found in directory
-'wireshark-<version>/packaging/rpm/RPMS/x86_64' relative to this directory.
-The RPMs are:
-
-    wireshark-<version>-2.x86_64.rpm
-    lustre-wireshark-plugins-<version>-2.x86_64.rpm
-
-If one of the software components that need to be available for
-compilation (see 'Software Pre-requisits:' above) is missing the script will
-print an appropiate error message. The wireshark 'configure' script might also
-detect missing pre-requisite software. In both cases the software needs to be
-installed before.
-
-The build can be configured with help of the source file 'wsconfig.sh', but should
-out of the box.
-
-
-Build without packaging support
--------------------------------
-Pre-requisits:
-
-- source tree for Wireshark (recommend version 1.6.8)
-- build Wireshark according to the instruction in the source tree.
-- install Wireshark (usually "make install")
-
-Building Lustre/LNet Dissectors:
-
-- edit the Makefile in the same directory as this README.
-- change this line to reflect where your Wireshark source tree is:
-
-INCS = -I$(HOME)/wireshark-1.6.8 `pkg-config --libs --cflags glib-2.0`
-
-- change this line to reflect where the Wireshark plugin directory is:
-
-PLUGIN_DIR  = /usr/local/lib/wireshark/plugins/1.6.8
-
-- save the Makefile after these changes.
-- run "make".  (you may need to be "root" for this as it will try to copy the
-  dissectors to the Wireshark plugin directory.
-
-As long as the make builds with no errors, you should have the dissectors built
-and installed for your version of Wireshark.
-
-To verify that the plugins are installed:
-- run wirewhark (typing "wireshark" from the command line is usually good
-  enough).
-- Select "About Wireshark" from the Help menu.
-- Click on the "Plugins" tab of the About window.
-- Look in the list for the Lustre and LNet plugins.
-
-If they are there, the plugins are installed.  If not, something went wrong
-in the build process.
-
-Note:  You can use tcpdump to capture packets on an Ethernet network, or
-ibdump to capture packets on an Infiniband network.  Tcpdump is usually already
-installed on most Linux distros.  You can get ibdump from this link:
-
-http://www.mellanox.com/content/pages.php?pg=products_dyn&product_family=110&menu_section=34
diff --git a/lustre/contrib/wireshark/lustre-wireshark-plugins-template.spec b/lustre/contrib/wireshark/lustre-wireshark-plugins-template.spec
deleted file mode 100644 (file)
index 54b830a..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-%define ver      XXX-LUSTRE-PLUGIN-VERSION-XXX
-%define rel      2
-%define prefix   /usr
-
-Summary:        Lustre plugins for wireshark
-Name:           XXX-LUSTRE-PLUGIN-RPM-NAME-XXX
-Version:        %ver
-Release:        %rel
-License:        GPL
-Group:          Networking/Utilities
-Source:         %{name}-%{version}.tar.bz2
-URL:            https://wiki.hpdd.intel.com/
-BuildRoot:      %{_tmpdir}/lustre-wireshark-%{PACKAGE_VERSION}-root
-Requires:       wireshark >= 1.6.8
-BuildRequires: wireshark-devel
-
-%description
-Plugins for wireshark to enable monitoring of Lustre/LNet network traffic.
-
-%prep
-%setup
-make -e -f Makefile all > make-plugins.log 2>&1
-
-%install
-rm -rf \${RPM_BUILD_ROOT}
-make DESTDIR=\${RPM_BUILD_ROOT} -e -f Makefile install
-
-%clean
-rm -rf \${RPM_BUILD_ROOT}
-
-%files
-%defattr(-, root, root)
-%doc README
-%{_libdir}/wireshark/plugins/*/*.so
-
-%changelog
diff --git a/lustre/contrib/wireshark/lustre_dlm_flags_wshark.c b/lustre/contrib/wireshark/lustre_dlm_flags_wshark.c
deleted file mode 100644 (file)
index c94867e..0000000
+++ /dev/null
@@ -1,364 +0,0 @@
-/**
- * \file lustre_dlm_flags_wshark.c
- *
- * wireshark definitions.  This file contains the ldlm lock flag bits
- * that can be transmitted over the wire.  There are many other bits,
- * but they are not transmitted and not handled here.
- */
-#ifdef WSHARK_HEAD
-
-static int hf_lustre_ldlm_fl_lock_changed        = -1;
-static int hf_lustre_ldlm_fl_block_granted       = -1;
-static int hf_lustre_ldlm_fl_block_conv          = -1;
-static int hf_lustre_ldlm_fl_block_wait          = -1;
-static int hf_lustre_ldlm_fl_speculative         = -1;
-static int hf_lustre_ldlm_fl_ast_sent            = -1;
-static int hf_lustre_ldlm_fl_replay              = -1;
-static int hf_lustre_ldlm_fl_intent_only         = -1;
-static int hf_lustre_ldlm_fl_has_intent          = -1;
-static int hf_lustre_ldlm_fl_flock_deadlock      = -1;
-static int hf_lustre_ldlm_fl_discard_data        = -1;
-static int hf_lustre_ldlm_fl_no_timeout          = -1;
-static int hf_lustre_ldlm_fl_block_nowait        = -1;
-static int hf_lustre_ldlm_fl_test_lock           = -1;
-static int hf_lustre_ldlm_fl_cancel_on_block     = -1;
-static int hf_lustre_ldlm_fl_cos_incompat        = -1;
-static int hf_lustre_ldlm_fl_no_expansion        = -1;
-static int hf_lustre_ldlm_fl_deny_on_contention  = -1;
-static int hf_lustre_ldlm_fl_ast_discard_data    = -1;
-
-const value_string lustre_ldlm_flags_vals[] = {
-  {LDLM_FL_LOCK_CHANGED,        "LDLM_FL_LOCK_CHANGED"},
-  {LDLM_FL_BLOCK_GRANTED,       "LDLM_FL_BLOCK_GRANTED"},
-  {LDLM_FL_BLOCK_CONV,          "LDLM_FL_BLOCK_CONV"},
-  {LDLM_FL_BLOCK_WAIT,          "LDLM_FL_BLOCK_WAIT"},
-  {LDLM_FL_SPECULATIVE,         "LDLM_FL_SPECULATIVE"},
-  {LDLM_FL_AST_SENT,            "LDLM_FL_AST_SENT"},
-  {LDLM_FL_REPLAY,              "LDLM_FL_REPLAY"},
-  {LDLM_FL_INTENT_ONLY,         "LDLM_FL_INTENT_ONLY"},
-  {LDLM_FL_HAS_INTENT,          "LDLM_FL_HAS_INTENT"},
-  {LDLM_FL_FLOCK_DEADLOCK,      "LDLM_FL_FLOCK_DEADLOCK"},
-  {LDLM_FL_DISCARD_DATA,        "LDLM_FL_DISCARD_DATA"},
-  {LDLM_FL_NO_TIMEOUT,          "LDLM_FL_NO_TIMEOUT"},
-  {LDLM_FL_BLOCK_NOWAIT,        "LDLM_FL_BLOCK_NOWAIT"},
-  {LDLM_FL_TEST_LOCK,           "LDLM_FL_TEST_LOCK"},
-  {LDLM_FL_CANCEL_ON_BLOCK,     "LDLM_FL_CANCEL_ON_BLOCK"},
-  {LDLM_FL_COS_INCOMPAT,        "LDLM_FL_COS_INCOMPAT"},
-  {LDLM_FL_NO_EXPANSION,        "LDLM_FL_NO_EXPANSION"},
-  {LDLM_FL_DENY_ON_CONTENTION,  "LDLM_FL_DENY_ON_CONTENTION"},
-  {LDLM_FL_AST_DISCARD_DATA,    "LDLM_FL_AST_DISCARD_DATA"},
-  { 0, NULL }
-};
-
-/* IDL: struct ldlm_reply { */
-/* IDL:        uint32 lock_flags; */
-/* IDL:        uint32 lock_padding; */
-/* IDL:        struct ldlm_lock_desc { */
-/* IDL: } lock_desc; */
-/* IDL:        struct lustre_handle { */
-/* IDL: } lock_handle; */
-/* IDL:        uint64 lock_policy_res1; */
-/* IDL:        uint64 lock_policy_res2; */
-/* IDL: } */
-
-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_)
-{
-  proto_item *item = NULL;
-  proto_tree *tree = NULL;
-
-  if (parent_tree) {
-    item = proto_tree_add_item(parent_tree,hf_index, tvb, offset, 4, TRUE);
-    tree = proto_item_add_subtree(item, ett_lustre_ldlm_lock_flags);
-  }
-  dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_fl_lock_changed);
-  dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_fl_block_granted);
-  dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_fl_block_conv);
-  dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_fl_block_wait);
-  dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_fl_speculative);
-  dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_fl_ast_sent);
-  dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_fl_replay);
-  dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_fl_intent_only);
-  dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_fl_has_intent);
-  dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_fl_flock_deadlock);
-  dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_fl_discard_data);
-  dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_fl_no_timeout);
-  dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_fl_block_nowait);
-  dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_fl_test_lock);
-  dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_fl_cancel_on_block);
-  dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_fl_cos_incompat);
-  dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_fl_no_expansion);
-  dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_fl_deny_on_contention);
-  return
-    dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_fl_ast_discard_data);
-}
-#endif /* WSHARK_HEAD */
-
-#ifdef WSHARK_INIT_DATA
-  {
-    /* p_id    */ &hf_lustre_ldlm_fl_lock_changed,
-    /* hfinfo  */ {
-      /* name    */ "LDLM_FL_LOCK_CHANGED",
-      /* abbrev  */ "lustre.ldlm_fl_lock_changed",
-      /* type    */ FT_BOOLEAN,
-      /* display */ 32,
-      /* strings */ TFS(&lnet_flags_set_truth),
-      /* bitmask */ LDLM_FL_LOCK_CHANGED,
-      /* blurb   */ "extent, mode, or resource changed",
-      /* id      */ HFILL
-    }
-  },
-  {
-    /* p_id    */ &hf_lustre_ldlm_fl_block_granted,
-    /* hfinfo  */ {
-      /* name    */ "LDLM_FL_BLOCK_GRANTED",
-      /* abbrev  */ "lustre.ldlm_fl_block_granted",
-      /* type    */ FT_BOOLEAN,
-      /* display */ 32,
-      /* strings */ TFS(&lnet_flags_set_truth),
-      /* bitmask */ LDLM_FL_BLOCK_GRANTED,
-      /* blurb   */ "Server placed lock on granted list, or a recovering client wants\n"
-       "the lock added to the granted list, no questions asked.",
-      /* id      */ HFILL
-    }
-  },
-  {
-    /* p_id    */ &hf_lustre_ldlm_fl_block_conv,
-    /* hfinfo  */ {
-      /* name    */ "LDLM_FL_BLOCK_CONV",
-      /* abbrev  */ "lustre.ldlm_fl_block_conv",
-      /* type    */ FT_BOOLEAN,
-      /* display */ 32,
-      /* strings */ TFS(&lnet_flags_set_truth),
-      /* bitmask */ LDLM_FL_BLOCK_CONV,
-      /* blurb   */ "Server placed lock on conv list, or a recovering client wants the lock\n"
-       "added to the conv list, no questions asked.",
-      /* id      */ HFILL
-    }
-  },
-  {
-    /* p_id    */ &hf_lustre_ldlm_fl_block_wait,
-    /* hfinfo  */ {
-      /* name    */ "LDLM_FL_BLOCK_WAIT",
-      /* abbrev  */ "lustre.ldlm_fl_block_wait",
-      /* type    */ FT_BOOLEAN,
-      /* display */ 32,
-      /* strings */ TFS(&lnet_flags_set_truth),
-      /* bitmask */ LDLM_FL_BLOCK_WAIT,
-      /* blurb   */ "Server placed lock on wait list, or a recovering client wants\n"
-       "the lock added to the wait list, no questions asked.",
-      /* id      */ HFILL
-    }
-  },
-  {
-    /* p_id    */ &hf_lustre_ldlm_fl_speculative,
-    /* hfinfo  */ {
-      /* name    */ "LDLM_FL_SPECULATIVE",
-      /* abbrev  */ "lustre.ldlm_fl_speculative",
-      /* type    */ FT_BOOLEAN,
-      /* display */ 32,
-      /* strings */ TFS(&lnet_flags_set_truth),
-      /* bitmask */ LDLM_FL_SPECULATIVE,
-      /* blurb   */ "Lock request is speculative/asynchronous, and cannot\n"
-       "wait for any reason.  Fail the lock request if any blocking locks\n"
-       "encountered."
-      /* id      */ HFILL
-    }
-  },
-  {
-    /* p_id    */ &hf_lustre_ldlm_fl_ast_sent,
-    /* hfinfo  */ {
-      /* name    */ "LDLM_FL_AST_SENT",
-      /* abbrev  */ "lustre.ldlm_fl_ast_sent",
-      /* type    */ FT_BOOLEAN,
-      /* display */ 32,
-      /* strings */ TFS(&lnet_flags_set_truth),
-      /* bitmask */ LDLM_FL_AST_SENT,
-      /* blurb   */ "blocking or cancel packet was queued for sending.",
-      /* id      */ HFILL
-    }
-  },
-  {
-    /* p_id    */ &hf_lustre_ldlm_fl_replay,
-    /* hfinfo  */ {
-      /* name    */ "LDLM_FL_REPLAY",
-      /* abbrev  */ "lustre.ldlm_fl_replay",
-      /* type    */ FT_BOOLEAN,
-      /* display */ 32,
-      /* strings */ TFS(&lnet_flags_set_truth),
-      /* bitmask */ LDLM_FL_REPLAY,
-      /* blurb   */ "Lock is being replayed.  This could probably be implied by the fact that\n"
-       "one of BLOCK_{GRANTED,CONV,WAIT} is set, but that is pretty dangerous.",
-      /* id      */ HFILL
-    }
-  },
-  {
-    /* p_id    */ &hf_lustre_ldlm_fl_intent_only,
-    /* hfinfo  */ {
-      /* name    */ "LDLM_FL_INTENT_ONLY",
-      /* abbrev  */ "lustre.ldlm_fl_intent_only",
-      /* type    */ FT_BOOLEAN,
-      /* display */ 32,
-      /* strings */ TFS(&lnet_flags_set_truth),
-      /* bitmask */ LDLM_FL_INTENT_ONLY,
-      /* blurb   */ "Don't grant lock, just do intent.",
-      /* id      */ HFILL
-    }
-  },
-  {
-    /* p_id    */ &hf_lustre_ldlm_fl_has_intent,
-    /* hfinfo  */ {
-      /* name    */ "LDLM_FL_HAS_INTENT",
-      /* abbrev  */ "lustre.ldlm_fl_has_intent",
-      /* type    */ FT_BOOLEAN,
-      /* display */ 32,
-      /* strings */ TFS(&lnet_flags_set_truth),
-      /* bitmask */ LDLM_FL_HAS_INTENT,
-      /* blurb   */ "lock request has intent",
-      /* id      */ HFILL
-    }
-  },
-  {
-    /* p_id    */ &hf_lustre_ldlm_fl_flock_deadlock,
-    /* hfinfo  */ {
-      /* name    */ "LDLM_FL_FLOCK_DEADLOCK",
-      /* abbrev  */ "lustre.ldlm_fl_flock_deadlock",
-      /* type    */ FT_BOOLEAN,
-      /* display */ 32,
-      /* strings */ TFS(&lnet_flags_set_truth),
-      /* bitmask */ LDLM_FL_FLOCK_DEADLOCK,
-      /* blurb   */ "flock deadlock detected",
-      /* id      */ HFILL
-    }
-  },
-  {
-    /* p_id    */ &hf_lustre_ldlm_fl_discard_data,
-    /* hfinfo  */ {
-      /* name    */ "LDLM_FL_DISCARD_DATA",
-      /* abbrev  */ "lustre.ldlm_fl_discard_data",
-      /* type    */ FT_BOOLEAN,
-      /* display */ 32,
-      /* strings */ TFS(&lnet_flags_set_truth),
-      /* bitmask */ LDLM_FL_DISCARD_DATA,
-      /* blurb   */ "discard (no writeback) on cancel",
-      /* id      */ HFILL
-    }
-  },
-  {
-    /* p_id    */ &hf_lustre_ldlm_fl_no_timeout,
-    /* hfinfo  */ {
-      /* name    */ "LDLM_FL_NO_TIMEOUT",
-      /* abbrev  */ "lustre.ldlm_fl_no_timeout",
-      /* type    */ FT_BOOLEAN,
-      /* display */ 32,
-      /* strings */ TFS(&lnet_flags_set_truth),
-      /* bitmask */ LDLM_FL_NO_TIMEOUT,
-      /* blurb   */ "Blocked by group lock - wait indefinitely",
-      /* id      */ HFILL
-    }
-  },
-  {
-    /* p_id    */ &hf_lustre_ldlm_fl_block_nowait,
-    /* hfinfo  */ {
-      /* name    */ "LDLM_FL_BLOCK_NOWAIT",
-      /* abbrev  */ "lustre.ldlm_fl_block_nowait",
-      /* type    */ FT_BOOLEAN,
-      /* display */ 32,
-      /* strings */ TFS(&lnet_flags_set_truth),
-      /* bitmask */ LDLM_FL_BLOCK_NOWAIT,
-      /* blurb   */ "Server told not to wait if blocked. For AGL, OST will not send\n"
-       "glimpse callback.",
-      /* id      */ HFILL
-    }
-  },
-  {
-    /* p_id    */ &hf_lustre_ldlm_fl_test_lock,
-    /* hfinfo  */ {
-      /* name    */ "LDLM_FL_TEST_LOCK",
-      /* abbrev  */ "lustre.ldlm_fl_test_lock",
-      /* type    */ FT_BOOLEAN,
-      /* display */ 32,
-      /* strings */ TFS(&lnet_flags_set_truth),
-      /* bitmask */ LDLM_FL_TEST_LOCK,
-      /* blurb   */ "return blocking lock",
-      /* id      */ HFILL
-    }
-  },
-  {
-    /* p_id    */ &hf_lustre_ldlm_fl_cancel_on_block,
-    /* hfinfo  */ {
-      /* name    */ "LDLM_FL_CANCEL_ON_BLOCK",
-      /* abbrev  */ "lustre.ldlm_fl_cancel_on_block",
-      /* type    */ FT_BOOLEAN,
-      /* display */ 32,
-      /* strings */ TFS(&lnet_flags_set_truth),
-      /* bitmask */ LDLM_FL_CANCEL_ON_BLOCK,
-      /* blurb   */ "Immediatelly cancel such locks when they block some other locks. Send\n"
-       "cancel notification to original lock holder, but expect no reply. This is\n"
-       "for clients (like liblustre) that cannot be expected to reliably response\n"
-       "to blocking AST.",
-      /* id      */ HFILL
-    }
-  },
-  {
-    /* p_id    */ &hf_lustre_ldlm_fl_cos_incompat,
-    /* hfinfo  */ {
-      /* name    */ "LDLM_FL_COS_INCOMPAT",
-      /* abbrev  */ "lustre.ldlm_fl_cos_incompat",
-      /* type    */ FT_BOOLEAN,
-      /* display */ 32,
-      /* strings */ TFS(&lnet_flags_set_truth),
-      /* bitmask */ LDLM_FL_COS_INCOMPAT,
-      /* blurb   */ "Flag whether a lock is enqueued from a distributed transaction, and the\n"
-       "requesting lock mode is PW/EX, if so, it will check compatibility with COS\n"
-       "locks, and different from original COS semantic, transactions from the same\n"
-       "client is also treated as lock conflict.",
-      /* id      */ HFILL
-    }
-  },
-  {
-    /* p_id    */ &hf_lustre_ldlm_fl_no_expansion,
-    /* hfinfo  */ {
-      /* name    */ "LDLM_FL_NO_EXPANSION",
-      /* abbrev  */ "lustre.ldlm_fl_NO_EXPANSION",
-      /* type    */ FT_BOOLEAN,
-      /* display */ 32,
-      /* strings */ TFS(&lnet_flags_set_truth),
-      /* bitmask */ LDLM_FL_NO_EXPANSION,
-      /* blurb   */ "Do not expand this lock.  Grant it only on the extent\n"
-       "requested. Used for manually requested locks from the client\n"
-       "(LU_LADVISE_LOCKAHEAD)."
-      /* id      */ HFILL
-    }
-  },
-  {
-    /* p_id    */ &hf_lustre_ldlm_fl_deny_on_contention,
-    /* hfinfo  */ {
-      /* name    */ "LDLM_FL_DENY_ON_CONTENTION",
-      /* abbrev  */ "lustre.ldlm_fl_deny_on_contention",
-      /* type    */ FT_BOOLEAN,
-      /* display */ 32,
-      /* strings */ TFS(&lnet_flags_set_truth),
-      /* bitmask */ LDLM_FL_DENY_ON_CONTENTION,
-      /* blurb   */ "measure lock contention and return -EUSERS if locking contention is high",
-      /* id      */ HFILL
-    }
-  },
-  {
-    /* p_id    */ &hf_lustre_ldlm_fl_ast_discard_data,
-    /* hfinfo  */ {
-      /* name    */ "LDLM_FL_AST_DISCARD_DATA",
-      /* abbrev  */ "lustre.ldlm_fl_ast_discard_data",
-      /* type    */ FT_BOOLEAN,
-      /* display */ 32,
-      /* strings */ TFS(&lnet_flags_set_truth),
-      /* bitmask */ LDLM_FL_AST_DISCARD_DATA,
-      /* blurb   */ "These are flags that are mapped into the flags and ASTs of blocking locks\n"
-       "Add FL_DISCARD to blocking ASTs",
-      /* id      */ HFILL
-    }
-  },
-
-#endif /* WSHARK_INIT_DATA */
diff --git a/lustre/contrib/wireshark/packet-lnet.c b/lustre/contrib/wireshark/packet-lnet.c
deleted file mode 100644 (file)
index 1462618..0000000
+++ /dev/null
@@ -1,1067 +0,0 @@
-/* packet-lnet.c
- * Lnet packet dissection
- * Author: Laurent George <george@ocre.cea.fr>
- * based on packet-agentx.c and packet-afs.c
- * 20080903
- *
- * Wireshark - Network traffic analyzer
- * By Gerald Combs <gerald@wireshark.org>
- * Copyright 1999 Gerald Combs
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
- *
- * Copyright (c) 2012, 2017, Intel Corporation.
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <ctype.h>
-#include <time.h>
-#include <string.h>
-#include <glib.h>
-
-#include <epan/packet.h>
-#include <epan/conversation.h>
-#include <epan/prefs.h>
-#include <epan/emem.h>
-#include <epan/to_str.h>
-#include <epan/dissectors/packet-tcp.h>
-#include <epan/dissectors/packet-infiniband.h>
-
-#include "wireshark-compat.h"
-
-/* This value inidcates whether we are processing an Infiniband packet, or
-   TCP.  It gets set to the extra bytes the IB header requires if IB,
-   or zero if TCP. */
-static guint ib_lnd_extra_bytes;
-
-/* How much data has at least to be available to be able to determine the
- * length of the lnet message.
- * Note: This is only used for TCP-based LNet packets.  Not used for Infiniband.
- */
-#define LNET_HEADER_LEN 52
-#define LNET_NID_DEST_OFFSET (24 + ib_lnd_extra_bytes)
-#define LNET_NID_SRC_OFFSET (32 + ib_lnd_extra_bytes)
-#define LNET_MSG_TYPE_OFFSET (48 + ib_lnd_extra_bytes)
-#define LNET_PTL_INDEX_OFFSET_PUT (88 + ib_lnd_extra_bytes)
-
-#define EXTRA_IB_HEADER_SIZE 24
-
-/* TCP ports used for LNet. */
-static guint global_lnet_tcp_port = 988;
-static guint lnet_tcp_port = 988;
-
-void proto_reg_handoff_lnet(void);
-
-/* Define the lnet proto */
-static int proto_lnet = -1;
-
-static int hf_lnet_src_nid = -1 ;
-static int hf_lnet_src_nid_addr = -1 ;
-static int hf_lnet_src_nid_lnet_type = -1;
-static int hf_lnet_src_nid_interface = -1  ;
-
-static int hf_lnet_ksm_type = -1;
-static int hf_lnet_ksm_csum = -1;
-static int hf_lnet_ksm_zc_req_cookie = -1;
-static int hf_lnet_ksm_zc_ack_cookie = -1;
-
-static int hf_lnet_ib_magic = -1;
-static int hf_lnet_ib_version = -1;
-static int hf_lnet_ib_type = -1;
-static int hf_lnet_ib_credits = -1;
-static int hf_lnet_ib_nob = -1;
-static int hf_lnet_ib_csum = -1;
-static int hf_lnet_ib_srcstamp = -1;
-static int hf_lnet_ib_dststamp = -1;
-
-static int hf_lnet_dest_nid = -1 ;
-static int hf_lnet_dest_nid_addr = -1 ;
-static int hf_lnet_dest_nid_lnet_type = -1 ; 
-static int hf_lnet_dest_nid_interface = -1 ;
-
-static int hf_lnet_dest_pid = -1 ; 
-static int hf_lnet_src_pid = -1 ;
-
-static int hf_lnet_msg_type = -1 ;
-static int hf_lnet_payload_length = -1;
-static int hf_lnet_payload = -1 ;
-static int hf_lnet_msg_header = -1 ; 
-static int hf_lnet_msg_filler = -1 ;
-
-static int hf_dst_wmd = -1 ;   
-static int hf_dst_wmd_interface = -1 ;   
-static int hf_dst_wmd_object = -1 ;   
-
-static int hf_match_bits = -1 ; 
-static int hf_mlength = -1 ; 
-
-static int hf_hdr_data = -1 ;
-static int hf_ptl_index = -1 ;
-static int hf_offset = -1 ;
-static gint ett_lnet = -1;
-
-static int hf_src_offset = -1;
-static int hf_sink_length = -1;
-
-static int hf_hello_incarnation = -1 ;
-static int hf_hello_type = -1 ; 
-
-static gint ett_lnet_dest_nid= -1;
-static gint ett_lnet_src_nid= -1;
-
-tvbuff_t *next_tvb;
-
-/* Breakdown of a NID. */
-typedef struct t_nid {
-       guint32 addr;
-       guint16 interface;
-       guint16 proto;
-} t_nid ;
-
-/*static heur_dissector_list_t heur_subdissector_list; */
-static dissector_table_t subdissector_table;
-
-static const value_string lndnames[] = {
-       { 1, "QSWLND   "},
-       { 2, "SOCKLND  "},
-       { 3, "GMLND    "},
-       { 4, "PTLLND   "},
-       { 5, "O2IBLND  "},
-       { 6, "CIBLND   "},
-       { 7, "OPENIBLND"}, 
-       { 8, "IIBLND   "},
-       { 9, "LOLND    "},
-       { 10,"RALND    "},
-       { 11,"VIBLND   "},
-       { 12,"MXLND    "} 
-};
-
-enum MSG_type{
-       LNET_MSG_ACK = 0,
-       LNET_MSG_PUT,
-       LNET_MSG_GET,
-       LNET_MSG_REPLY,
-       LNET_MSG_HELLO,
-} ;
-
-static const value_string lnet_msg_type_t[] = {
-       { LNET_MSG_ACK  , "ACK"},  
-       { LNET_MSG_PUT  , "PUT"},  
-       { LNET_MSG_GET  , "GET"},  
-       { LNET_MSG_REPLY, "REPLY"},  
-       { LNET_MSG_HELLO, "HELLO"} 
-};
-
-/* Port Index numbers.  Defined in lustre/include/lustre/lustre_idl.h */
-static const value_string portal_indices[] = {
-       { 0 , "LNET_RESERVED_PORTAL"},
-       { 1 , "CONNMGR_REQUEST_PORTAL"},
-       { 2 , "CONNMGR_REPLY_PORTAL"},
-       { 3 , "OSC_REQUEST_PORTAL(obsolete)"},
-       { 4 , "OSC_REPLY_PORTAL"},
-       { 5 , "OSC_BULK_PORTAL(obsolete)"},
-       { 6 , "OST_IO_PORTAL"},
-       { 7 , "OST_CREATE_PORTAL"},
-       { 8 , "OST_BULK_PORTAL"},
-       { 9 , "MDC_REQUEST_PORTAL(obsolete)"},
-       { 10 , "MDC_REPLY_PORTAL"},
-       { 11 , "MDC_BULK_PORTAL(obsolete)"},
-       { 12 , "MDS_REQUEST_PORTAL"},
-       { 13 , "MDS_REPLY_PORTAL(obsolete)"},
-       { 14 , "MDS_BULK_PORTAL"},
-       { 15 , "LDLM_CB_REQUEST_PORTAL"},
-       { 16 , "LDLM_CB_REPLY_PORTAL"},
-       { 17 , "LDLM_CANCEL_REQUEST_PORTAL"},
-       { 18 , "LDLM_CANCEL_REPLY_PORTAL"},
-       { 19 , "PTLBD_REQUEST_PORTAL(obsolete)"},
-       { 20 , "PTLBD_REPLY_PORTAL(obsolete)"},
-       { 21 , "PTLBD_BULK_PORTAL(obsolete)"},
-       { 22 , "MDS_SETATTR_PORTAL"},
-       { 23 , "MDS_READPAGE_PORTAL"},
-       { 24 , "MDS_MDS_PORTAL"},
-       { 25 , "MGC_REPLY_PORTAL"},
-       { 26 , "MGS_REQUEST_PORTAL"},
-       { 27 , "MGS_REPLY_PORTAL"},
-       { 28 , "OST_REQUEST_PORTAL"},
-       { 29 , "FLD_REQUEST_PORTAL"},
-       { 30 , "SEQ_METADATA_PORTAL"},
-       { 31 , "SEQ_DATA_PORTAL"},
-       { 32 , "SEQ_CONTROLLER_PORTAL"},
-       { 33 , "MGS_BULK_PORTAL"},
-       { 50 , "SRPC_REQUEST_PORTAL"},
-       { 51 , "SRPC_FRAMEWORK_REQUEST_PORTAL"},
-       { 52 , "SRPC_RDMA_PORTAL"}
-};
-
-/* SOCKLND constants. */
-#define KSOCK_MSG_NOOP          0xc0            /* ksm_u empty */ 
-#define KSOCK_MSG_LNET          0xc1            /* lnet msg */
-
-static const value_string ksm_type_t[] = {
-       {0xc0, "KSOCK_MSG_NOOP"},/* ksm_u empty */ 
-       {0xc1, "KSOCK_MSG_LNET"} /* lnet msg */
-};
-
-/* O2IBLND constants. */
-#define LNET_PROTO_IB_MAGIC    0x0be91b91
-
-static const value_string ib_version_t[] = {
-       {0x11, "1"},
-       {0x12, "2"}
-};
-
-#define IBLND_MSG_CONNREQ      0xc0    /* connection request */
-#define IBLND_MSG_CONNACK      0xc1    /* connection acknowledge */
-#define IBLND_MSG_NOOP         0xd0    /* nothing (just credits) */
-#define IBLND_MSG_IMMEDIATE    0xd1    /* immediate */
-#define IBLND_MSG_PUT_REQ      0xd2    /* putreq (src->sink) */
-#define IBLND_MSG_PUT_NAK      0xd3    /* completion (sink->src) */
-#define IBLND_MSG_PUT_ACK      0xd4    /* putack (sink->src) */
-#define IBLND_MSG_PUT_DONE     0xd5    /* completion (src->sink) */
-#define IBLND_MSG_GET_REQ      0xd6    /* getreq (sink->src) */
-#define IBLND_MSG_GET_DONE     0xd7    /* completion (src->sink: all OK) */
-
-static const value_string ib_type_t[] = {
-       {0xc0, "IBLND_MSG_CONNREQ"},
-       {0xc1, "IBLND_MSG_CONNACK"},
-       {0xd0, "IBLND_MSG_NOOP"},
-       {0xd1, "IBLND_MSG_IMMEDIATE"},
-       {0xd2, "IBLND_MSG_PUT_REQ"},
-       {0xd3, "IBLND_MSG_PUT_NAK"},
-       {0xd4, "IBLND_MSG_PUT_ACK"},
-       {0xd5, "IBLND_MSG_PUT_DONE"},
-       {0xd6, "IBLND_MSG_GET_REQ"},
-       {0xd7, "IBLND_MSG_GET_DONE"}
-};
-
-static gboolean little_endian = TRUE;
-
-#ifndef ENABLE_STATIC
-const gchar version[] = VERSION;
-
-/* Start the functions we need for the plugin stuff */
-
-void
-plugin_register(void)
-{
-       extern void proto_register_lnet(void);
-
-       proto_register_lnet();
-}
-
-void
-plugin_reg_handoff(void)
-{
-       extern void proto_reg_handoff_lnet(void);
-
-       proto_reg_handoff_lnet();
-}
-#endif
-
-static t_nid
-get_nid(tvbuff_t *tvb, gint offset)
-{
-       t_nid nid ;
-
-       nid.addr = g_htonl(tvb_get_ipv4(tvb, offset));
-       nid.interface = tvb_get_letohs(tvb, offset + 4);
-       nid.proto = tvb_get_letohs(tvb, offset + 6);
-       return nid ;
-}
-
-static int dissect_csum(tvbuff_t * tvb, proto_tree *tree, int offset)
-{
-       guint32 csum;
-       csum = tvb_get_letohl(tvb, offset);
-       if (!csum)
-               proto_tree_add_text(tree, tvb, offset, 4, "Checksum Disabled");
-       else {
-               if (ib_lnd_extra_bytes)
-                       proto_tree_add_item(tree, hf_lnet_ib_csum, tvb, offset,
-                                           4, little_endian);
-               else
-                       proto_tree_add_item(tree, hf_lnet_ksm_csum, tvb, offset,
-                                           4, little_endian);
-       }
-
-       return offset + 4;
-}
-
-
-static int dissect_req_cookie(tvbuff_t * tvb, proto_tree *tree, int offset)
-{
-       guint32 req;
-       req= tvb_get_letoh64(tvb, offset);
-       if (!req)
-               proto_tree_add_text(tree, tvb, offset, 8, "Ack not required");
-       else
-               proto_tree_add_item(tree, hf_lnet_ksm_zc_req_cookie, tvb, offset, 8, little_endian);
-       return offset + 8;
-}
-
-static int dissect_ack_cookie(tvbuff_t * tvb, proto_tree *tree, int offset)
-{
-       guint32 ack;
-       ack= tvb_get_letoh64(tvb, offset);
-       if (!ack)
-               proto_tree_add_text(tree, tvb, offset, 8, "Not ack");
-       else
-               proto_tree_add_item(tree, hf_lnet_ksm_zc_ack_cookie, tvb, offset, 8, little_endian);
-       return offset + 8;
-}
-
-#ifdef WIRESHARK_COMPAT
-static void
-dissect_ksock_msg_noop(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
-#else
-static int
-dissect_ksock_msg_noop(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree,
-                      void *ignored)
-#endif
-{
-       guint32 offset;
-       offset=0;
-       proto_tree_add_item(tree, hf_lnet_ksm_type, tvb, offset, 4, TRUE);offset+=4;
-       offset=dissect_csum(tvb,tree,offset);
-       offset=dissect_req_cookie(tvb, tree, offset);
-       offset=dissect_ack_cookie(tvb,tree,offset);
-#ifndef WIRESHARK_COMPAT
-       return offset;
-#endif
-}
-
-
-static int dissect_ksock_msg(tvbuff_t * tvb, proto_tree *tree, int offset)
-{
-       proto_tree_add_item(tree, hf_lnet_ksm_type, tvb, offset, 4, TRUE);offset+=4;
-       offset=dissect_csum(tvb,tree,offset);
-       offset=dissect_req_cookie(tvb, tree, offset);
-       offset=dissect_ack_cookie(tvb,tree,offset);
-       return offset;
-}
-
-static int
-dissect_ib_msg(tvbuff_t *tvb, proto_tree *tree, int offset)
-{
-       /* typedef struct
-        * {
-        *      __u32             ibm_magic;            * I'm an ibnal message *
-        *      __u16             ibm_version;          * this is my version *
-
-        *      __u8              ibm_type;             * msg type *
-        *      __u8              ibm_credits;          * returned credits *
-        *      __u32             ibm_nob;              * # bytes in message *
-        *      __u32             ibm_cksum;            * checksum (0 == no
-        *                                                checksum) *
-        *      __u64             ibm_srcnid;           * sender's NID *
-        *      __u64             ibm_srcstamp;         * sender's incarnation *
-        *      __u64             ibm_dstnid;           * destination's NID *
-        *      __u64             ibm_dststamp;         * destination's
-        *                                                incarnation *
-
-        *      union {
-        *              kib_connparams_t      connparams;
-        *              kib_immediate_msg_t   immediate;
-        *              kib_putreq_msg_t      putreq;
-        *              kib_putack_msg_t      putack;
-        *              kib_get_msg_t         get;
-        *              kib_completion_msg_t  completion;
-        *      } WIRE_ATTR ibm_u;
-        *} WIRE_ATTR kib_msg_t;   */
-
-       t_nid src_nid;
-       t_nid dst_nid;
-       guint8 msg_type;
-
-       proto_tree_add_item(tree, hf_lnet_ib_magic, tvb, offset, 4,
-                           little_endian);
-       offset += 4;
-       proto_tree_add_item(tree, hf_lnet_ib_version, tvb, offset, 2,
-                           little_endian);
-       offset += 2;
-       msg_type = tvb_get_guint8(tvb, offset);
-       proto_tree_add_item(tree, hf_lnet_ib_type, tvb, offset, 1,
-                           little_endian);
-       offset += 1;
-       proto_tree_add_item(tree, hf_lnet_ib_credits, tvb, offset, 1,
-                           little_endian);
-       offset += 1;
-       proto_tree_add_item(tree, hf_lnet_ib_nob, tvb, offset, 4,
-                           little_endian);
-       offset += 4;
-       offset = dissect_csum(tvb, tree, offset);
-
-       src_nid = get_nid(tvb, offset);
-       proto_tree_add_text(tree, tvb, offset, 8, "src_nid = %s@tcp%d",
-                           ip_to_str((guint8 *) &src_nid.addr),
-                           src_nid.interface);
-       offset += 8;
-       proto_tree_add_item(tree, hf_lnet_ib_srcstamp, tvb, offset, 8,
-                           little_endian);
-       offset += 8;
-
-       dst_nid = get_nid(tvb, offset);
-       proto_tree_add_text(tree, tvb, offset, 8, "dst_nid = %s@tcp%d",
-                           ip_to_str((guint8 *) &dst_nid.addr),
-                           dst_nid.interface);
-       offset += 8;
-       proto_tree_add_item(tree, hf_lnet_ib_dststamp, tvb,offset, 8,
-                           little_endian);
-       offset += 8;
-
-       /* LNet payloads only exist when the LND msg type is IMMEDIATE.
-          Return a zero offset for all other types. */
-       return (msg_type == IBLND_MSG_IMMEDIATE) ? offset : 0;
-}
-
-static int dissect_dest_nid(tvbuff_t * tvb, proto_tree *tree, int offset)
-{
-       proto_tree_add_item(tree, hf_lnet_dest_nid_addr, tvb, offset, 4, TRUE);offset+=4;
-       proto_tree_add_item(tree, hf_lnet_dest_nid_interface, tvb, offset, 2, TRUE);offset+=2;
-       proto_tree_add_item(tree, hf_lnet_dest_nid_lnet_type, tvb, offset, 2, TRUE);offset+=2;
-       return offset;
-}
-
-
-static int dissect_src_nid(tvbuff_t * tvb, proto_tree *tree, int offset)
-{
-       proto_tree_add_item(tree, hf_lnet_src_nid_addr, tvb, offset, 4, TRUE);offset+=4;
-       proto_tree_add_item(tree, hf_lnet_src_nid_interface, tvb, offset, 2, TRUE);offset+=2;
-       proto_tree_add_item(tree, hf_lnet_src_nid_lnet_type, tvb, offset, 2, TRUE);offset+=2;
-       return offset;
-}
-
-static int dissect_lnet_put(tvbuff_t * tvb, proto_tree *tree, int offset, packet_info *pinfo _U_)
-{
-       /* typedef struct lnet_put {
-                lnet_handle_wire_t  ack_wmd;
-                __u64               match_bits;
-                __u64               hdr_data;
-                __u32               ptl_index;
-                __u32               offset;
-                } WIRE_ATTR lnet_put_t; */
-
-       proto_tree_add_item(tree,hf_dst_wmd_interface,tvb,offset,8,little_endian); offset+=8;
-       proto_tree_add_item(tree,hf_dst_wmd_object,tvb,offset,8,little_endian);offset+=8;
-
-       proto_tree_add_item(tree,hf_match_bits,tvb,offset,8,little_endian);offset+=8;
-       proto_tree_add_item(tree,hf_hdr_data,tvb,offset,8,little_endian);offset+=8;
-       col_append_sep_str(pinfo->cinfo, COL_INFO, ", ",
-                          val_to_str(tvb_get_letohl(tvb, offset),
-                                     portal_indices,
-                                     "Unknown")); /* add some nice value  */
-       proto_item_append_text(tree, ", %s" , val_to_str(tvb_get_letohl(tvb,
-                                                                       offset),
-                                                        portal_indices,
-                                                        "Unknown"));
-                                                        /* print ptl_index */
-       proto_tree_add_item(tree,hf_ptl_index,tvb,offset,4,little_endian);offset+=4;
-       proto_tree_add_item(tree,hf_offset,tvb,offset,4,little_endian);offset+=4;
-       return offset ; 
-}
-
-static int dissect_lnet_get(tvbuff_t * tvb, proto_tree *tree, int offset, packet_info *pinfo _U_)
-{
-       /* typedef struct lnet_get {
-          lnet_handle_wire_t  return_wmd;
-          __u64               match_bits;
-          __u32               ptl_index;
-          __u32               src_offset;
-          __u32               sink_length;
-          } WIRE_ATTR lnet_get_t;
-       */
-
-       proto_tree_add_item(tree, hf_dst_wmd_interface,
-                           tvb, offset, 8, little_endian);
-       offset += 8;
-       proto_tree_add_item(tree, hf_dst_wmd_object, tvb, offset, 8,
-                           little_endian);
-       offset += 8;
-       proto_tree_add_item(tree, hf_match_bits, tvb, offset, 8, little_endian);
-       offset += 8;
-       col_append_sep_str(pinfo->cinfo, COL_INFO, ", ",
-                          val_to_str(tvb_get_letohl(tvb, offset),
-                                     portal_indices, "Unknown"));
-       proto_item_append_text(tree, ", %s",
-                              val_to_str(tvb_get_letohl(tvb, offset),
-                                         portal_indices, "Unknown"));
-       proto_tree_add_item(tree, hf_ptl_index, tvb, offset, 4, little_endian);
-       offset += 4;
-       proto_tree_add_item(tree, hf_src_offset, tvb, offset, 4, little_endian);
-       offset += 4;
-       proto_tree_add_item(tree, hf_sink_length, tvb, offset, 4,
-                           little_endian);
-       offset += 4;
-       return offset;
-}
-
-static int dissect_lnet_reply(tvbuff_t * tvb, proto_tree *tree, int offset)
-{
-       /* typedef struct lnet_reply {
-                lnet_handle_wire_t  dst_wmd;
-                } WIRE_ATTR lnet_reply_t; */
-
-       proto_tree_add_item(tree,hf_dst_wmd_interface,tvb,offset,8,little_endian);offset+=8; 
-       proto_tree_add_item(tree,hf_dst_wmd_object,tvb,offset,8,little_endian);offset+=8;
-
-       return offset;
-}
-
-
-static int dissect_lnet_hello(tvbuff_t * tvb, proto_tree *tree, int offset)
-{
-       /* typedef struct lnet_hello {
-                __u64              incarnation;
-                __u32              type;
-                } WIRE_ATTR lnet_hello_t; */
-
-       proto_tree_add_item(tree,hf_hello_incarnation,tvb,offset,8,little_endian); offset+=8;
-       proto_tree_add_item(tree,hf_hello_type,tvb,offset,4,little_endian); offset+=4;
-       return offset; 
-}
-
-static int dissect_lnet_ack(tvbuff_t * tvb, proto_tree *tree, int offset, packet_info *pinfo _U_)
-{
-       /* typedef struct lnet_ack {
-                lnet_handle_wire_t  dst_wmd;
-                __u64               match_bits;
-                __u32               mlength;
-                } WIRE_ATTR lnet_ack_t; */
-
-       proto_tree_add_item(tree,hf_dst_wmd_interface,tvb,offset,8,TRUE); offset+=8;
-       proto_tree_add_item(tree,hf_dst_wmd_object,tvb,offset,8,TRUE);offset+=8;
-       proto_tree_add_item(tree,hf_match_bits,tvb,offset,8, little_endian);offset+=8;
-       proto_tree_add_item(tree,hf_mlength, tvb,offset,4, little_endian); offset+=4;
-       return offset ; 
-} 
-
-#ifdef WIRESHARK_COMPAT
-static void dissect_lnet_message(tvbuff_t *, packet_info *, proto_tree *);
-#else
-static int dissect_lnet_message(tvbuff_t *, packet_info *, proto_tree *, void*);
-#endif
-
-/* The next two length getting routines are only used for KSOCK LNK messages. */
-static guint 
-get_lnet_message_len(packet_info  __attribute__((__unused__))*pinfo, tvbuff_t *tvb, int offset) 
-{ 
-       guint32 plen;
-
-       /* Get the payload length */
-       plen = tvb_get_letohl(tvb, offset + 28 + 24 + ib_lnd_extra_bytes);
-                                                 /* 24 = ksm header,
-                                                    28 = the rest of the
-                                                         headers */
-
-       /* That length doesn't include the header; add that in. */
-       return plen + 72 + 24 + ib_lnd_extra_bytes; /*  +24 == ksock msg
-                                                       header.. :D */
-
-}
-
-static guint
-get_noop_message_len(packet_info  __attribute__((__unused__))*pinfo, tvbuff_t *tvb, int offset)
-{
-       return 24;
-}
-
-static void 
-dissect_lnet(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)  
-{
-       /* TODO : correct this, now we do a difference between packet with
-          NOOP and others ..  but I don't find how to use pdu_dissect with
-          a variable length<=LNET_HEADER_LEN */
-       ib_lnd_extra_bytes = 0;
-       switch (tvb_get_letohl(tvb, 0)) {
-       case KSOCK_MSG_NOOP:
-#ifdef WIRESHARK_COMPAT
-               tcp_dissect_pdus(tvb, pinfo, tree, TRUE, 0,
-                                get_noop_message_len,
-                                dissect_ksock_msg_noop);
-#else
-               tcp_dissect_pdus(tvb, pinfo, tree, TRUE, 0,
-                                get_noop_message_len,
-                                dissect_ksock_msg_noop, NULL);
-#endif
-               break;
-       case KSOCK_MSG_LNET:
-#ifdef WIRESHARK_COMPAT
-               tcp_dissect_pdus(tvb, pinfo, tree, TRUE, LNET_HEADER_LEN,
-                                get_lnet_message_len,
-                                dissect_lnet_message);
-#else
-               tcp_dissect_pdus(tvb, pinfo, tree, TRUE, LNET_HEADER_LEN,
-                                get_lnet_message_len,
-                                dissect_lnet_message, NULL);
-#endif
-               break;
-       }
-}
-
-static int
-#ifdef WIRESHARK_COMPAT
-dissect_ib_lnet(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
-#else
-dissect_ib_lnet(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
-#endif
-{
-       /* We can tell if this is an LNet payload by looking at the first
-        * 32-bit word for our magic number. */
-       if (tvb_get_letohl(tvb, 0) != LNET_PROTO_IB_MAGIC) {
-               /* Not an LNet payload. */
-               return 0;
-       }
-
-       ib_lnd_extra_bytes = EXTRA_IB_HEADER_SIZE;
-#ifdef WIRESHARK_COMPAT
-       tcp_dissect_pdus(tvb, pinfo, tree, TRUE, LNET_HEADER_LEN,
-                        get_lnet_message_len, dissect_lnet_message);
-#else
-       tcp_dissect_pdus(tvb, pinfo, tree, TRUE, LNET_HEADER_LEN,
-                        get_lnet_message_len, dissect_lnet_message, NULL);
-#endif
-       return tvb_length(tvb);
-}
-
-/*----------------------------------------------------------- */
-/* For the conversation */
-
-typedef struct {
-       guint64 match_bits;
-} my_entry_t;
-
-
-typedef struct lnet_request_key {
-       guint64 match_bits ;
-       guint32 conversation;
-} lnet_request_key_t;
-
-typedef struct lnet_request_val {
-       guint64 match_bits;
-       guint32 packet_num_parent;
-} lnet_request_val_t;
-
-
-static GHashTable *lnet_request_hash;
-
-/*
- * Hash Functions
- */
-static gint
-lnet_equal(gconstpointer v, gconstpointer w)
-{
-       const struct lnet_request_key *v1 = (const struct lnet_request_key *)v;
-       const struct lnet_request_key *v2 = (const struct lnet_request_key *)w;
-
-       if (v1 -> conversation == v2 -> conversation &&
-                       v1 -> match_bits == v2 -> match_bits)
-       {
-
-               return 1;
-       }
-
-       return 0;
-}
-
-static guint
-lnet_hash (gconstpointer v)
-{
-       const struct lnet_request_key *key = (const struct lnet_request_key *)v;
-       return key -> conversation + key -> match_bits;
-}
-
-
-static void
-lnet_init_protocol(void)
-{
-       if (lnet_request_hash)
-               g_hash_table_destroy(lnet_request_hash);
-
-       lnet_request_hash = g_hash_table_new(lnet_hash, lnet_equal);
-}
-
-
-static lnet_request_val_t*
-get_lnet_conv(packet_info * pinfo , GHashTable * lnet_hash_table,  guint64 match_bits )
-{
-       conversation_t *  conversation ; 
-       lnet_request_key_t request_key, *new_request_key;
-       lnet_request_val_t *request_val=NULL ;
-
-       conversation = find_conversation(pinfo->fd->num, &pinfo->src, &pinfo->dst, pinfo->ptype, pinfo->srcport, pinfo->destport, 0);
-
-
-       if (NULL == conversation)
-               /* It's not part of any conversation - create a new one. */
-               conversation = conversation_new(pinfo->fd->num,  &pinfo->src, &pinfo->dst, proto_lnet,
-                               pinfo->srcport, pinfo->destport, 0);
-
-       request_key.conversation = conversation->index;
-       request_key.match_bits = match_bits;
-
-       request_val = (struct lnet_request_val * ) g_hash_table_lookup(lnet_hash_table, &request_key);
-       if(!request_val){
-               new_request_key = se_alloc(sizeof(struct lnet_request_key));
-               *new_request_key = request_key;
-               request_val = se_alloc(sizeof(struct lnet_request_val));
-               request_val -> match_bits = match_bits;
-               request_val -> packet_num_parent = pinfo->fd->num ;
-               /*request_val -> filename = "test" ; */
-               g_hash_table_insert(lnet_hash_table, new_request_key, request_val);
-
-       }
-
-       return request_val ;
-
-}
-
-
-
-/*----------------------------------------------------------- */
-#ifdef WIRESHARK_COMPAT
-static void
-dissect_lnet_message(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
-#else
-static int
-dissect_lnet_message(tvbuff_t *tvb, packet_info *pinfo,
-                    proto_tree *tree, void *data)
-#endif
-{
-       guint64 match;
-       guint32 msg_type;
-       gint offset = 0;
-       t_nid dest_nid; /* nid value */
-       t_nid src_nid;
-       proto_item *ti = NULL; /* principal  node */
-       proto_tree *lnet_tree = NULL; /* principal tree */
-       proto_tree *lnet_nid_src_tree = NULL; /*subtree for the nids*/
-       proto_tree *lnet_nid_dest_tree = NULL;
-       proto_item *ti_src_nid; /* node for the nids */
-       proto_item *ti_dest_nid;
-       guint32 payload_length;
-       guint32 msg_filler_length;
-
-       /* lnet_request_val_t* conversation_val ; */
-       col_set_str(pinfo->cinfo, COL_PROTOCOL, "Lnet");
-
-       msg_type = tvb_get_letohl(tvb, LNET_MSG_TYPE_OFFSET);
-       /* We delete the entire line and add LNET  + msg_type */
-       col_add_fstr(pinfo->cinfo, COL_INFO, "LNET_%s",
-                    (msg_type < sizeof(lnet_msg_type_t)/sizeof(value_string))
-                    ? lnet_msg_type_t[msg_type].strptr
-                    : "Unknown");
-
-       if (tree == NULL)
-               goto out;
-
-       /* principal node */
-       ti = proto_tree_add_item(tree, proto_lnet, tvb, 0, -1, FALSE);
-
-       lnet_tree = proto_item_add_subtree(ti, ett_lnet);
-
-       if (ib_lnd_extra_bytes) {
-               offset = dissect_ib_msg(tvb, lnet_tree, offset);
-               if (offset == 0) {
-                       /*  There was no LNet payload, only ob2lnd. */
-                       goto out;
-               }
-       } else {
-               /* dissect the first 24 bytes (ksock_msg_t in
-                * lnet/socklnd.h
-                */
-               offset = dissect_ksock_msg(tvb, lnet_tree, offset);
-       }
-
-       /* Dest nid */
-       dest_nid = get_nid(tvb, offset);
-       ti_dest_nid = proto_tree_add_text(lnet_tree, tvb, offset, 8,
-                                         "dest_nid = %s@tcp%d",
-                                         ip_to_str((guint8 *) &dest_nid.addr),
-                                         dest_nid.interface);
-       lnet_nid_dest_tree = proto_item_add_subtree(ti_dest_nid,
-                                                   ett_lnet_dest_nid);
-       offset = dissect_dest_nid(tvb, lnet_nid_dest_tree, offset);
-
-       /* Same for src_nid */
-       src_nid = get_nid(tvb, offset);
-       ti_src_nid = proto_tree_add_text(lnet_tree, tvb, offset, 8,
-                                        "src_nid = %s@tcp%d",
-                                        ip_to_str((guint8 *) &src_nid.addr),
-                                        src_nid.interface);
-       lnet_nid_src_tree = proto_item_add_subtree(ti_src_nid,
-                                                  ett_lnet_src_nid);
-       offset = dissect_src_nid(tvb, lnet_nid_src_tree, offset);
-
-       /* pid */
-       proto_tree_add_item(lnet_tree, hf_lnet_src_pid, tvb, offset, 4, TRUE);
-       offset += 4;
-       proto_tree_add_item(lnet_tree, hf_lnet_dest_pid, tvb, offset, 4, TRUE);
-       offset += 4;
-
-       /* message_type (32 bits) */
-       msg_type = tvb_get_letohl(tvb, offset+0);
-       /* put some nice info on lnet line */
-       proto_item_append_text(ti, " %s",
-                              (msg_type <
-                               sizeof(lnet_msg_type_t)/sizeof(value_string))
-                              ? lnet_msg_type_t[msg_type].strptr
-                              : "Unknow");
-       proto_tree_add_item(lnet_tree, hf_lnet_msg_type, tvb,
-                           offset, 4, TRUE);
-       offset += 4;
-
-       /* payload data (to follow) length :*/
-       payload_length = tvb_get_letohl(tvb, offset+0);
-       proto_tree_add_item(lnet_tree, hf_lnet_payload_length, tvb,
-                           offset, 4, TRUE);
-       offset += 4;
-
-       /* here offset = 24+8+8+4+4+4+4 = 56 */
-       match = 0;
-       switch (msg_type) {
-       case LNET_MSG_ACK:
-               offset = dissect_lnet_ack(tvb, lnet_tree, offset, pinfo);
-               match = tvb_get_letoh64(tvb, 72);
-               break;
-       case LNET_MSG_PUT:
-               offset = dissect_lnet_put(tvb, lnet_tree, offset, pinfo);
-               match = tvb_get_letoh64(tvb, 72);
-               break;
-       case LNET_MSG_GET:
-               offset = dissect_lnet_get(tvb, lnet_tree, offset, pinfo);
-               match = tvb_get_letoh64(tvb, 72);
-               break;
-       case LNET_MSG_REPLY:
-               offset = dissect_lnet_reply(tvb, lnet_tree, offset);
-               break;
-       case LNET_MSG_HELLO:
-               offset = dissect_lnet_hello(tvb, lnet_tree, offset);
-               break;
-       default:
-               break;
-       }
-
-       /* conversation_val = */
-       get_lnet_conv(pinfo, lnet_request_hash, match);
-       /*      proto_tree_add_text(tree, tvb, 0 , 0, "match = %"
-        *      G_GINT64_MODIFIER "u parent = %d",
-        *      conversation_val -> match_bits ,
-        *      conversation_val -> packet_num_parent);
-        */
-
-       /* padding */
-       msg_filler_length = 72 - offset + 24 + ib_lnd_extra_bytes;
-       if (msg_filler_length > 72)
-               goto out;
-       /*  +24 : ksosck_message take 24bytes, and allready in offset  */
-
-       proto_tree_add_item(lnet_tree, hf_lnet_msg_filler, tvb, offset,
-                           msg_filler_length, little_endian);
-       offset += msg_filler_length;
-
-       if (payload_length > 0) {
-               /* display of payload */
-               proto_tree_add_item(lnet_tree, hf_lnet_payload, tvb,
-                                   offset, payload_length,
-                                   little_endian);
-
-               next_tvb = tvb_new_subset(tvb, offset,
-                                         payload_length, payload_length);
-               if (msg_type == LNET_MSG_PUT)
-                       dissector_try_uint(subdissector_table,
-                               tvb_get_letohl(tvb, LNET_PTL_INDEX_OFFSET_PUT),
-                               next_tvb, pinfo, tree);
-
-       }
-
-       offset += payload_length;
-
-out:
-#ifdef WIRESHARK_COMPAT
-       return;
-#else
-       return offset;
-#endif
-}
-
-void
-proto_register_lnet(void)
-{
-       static hf_register_info hf[] = {
-               { &hf_lnet_ksm_type           , 
-                       { "Type of socklnd message"   , "lnet.ksm_type"                , FT_UINT32 , BASE_HEX     , VALS(ksm_type_t)      , 0x0 , ""         , HFILL }} , 
-               { &hf_lnet_ksm_csum           , 
-                       { "Checksum"                  , "lnet.ksm_csum"                , FT_UINT32 , BASE_DEC     , NULL                  , 0x0 , ""         , HFILL }} , 
-               { &hf_lnet_ksm_zc_req_cookie  , 
-                       { "Ack required"              , "lnet.ksm_zc_req_cookie"       , FT_UINT64 , BASE_HEX     , NULL                  , 0x0 , ""         , HFILL }} , 
-               { &hf_lnet_ksm_zc_ack_cookie  , 
-                       { "Ack"                       , "lnet.ksm_zc_ack_cookie"       , FT_UINT64 , BASE_HEX     , NULL                  , 0x0 , ""         , HFILL }} , 
-               { &hf_lnet_ib_magic,
-                       { "Magic of IB message", "lnet.ib.magic", FT_UINT32,
-                         BASE_HEX, NULL, 0x0, "", HFILL} },
-               { &hf_lnet_ib_version,
-                       { "Version", "lnet.ib.version", FT_UINT16, BASE_HEX,
-                         VALS(ib_version_t), 0x0, "", HFILL} },
-               { &hf_lnet_ib_type,
-                       { "Type of IB message", "lnet.ib.type", FT_UINT8,
-                         BASE_HEX, VALS(ib_type_t), 0x0, "", HFILL} },
-               { &hf_lnet_ib_credits,
-                       { "Returned Credits", "lnet.ib.credits", FT_UINT8,
-                         BASE_DEC, NULL, 0x0, "", HFILL} },
-               { &hf_lnet_ib_nob,
-                       { "Number of Bytes", "lnet.ib.nob", FT_UINT32,
-                         BASE_DEC, NULL, 0x0, "", HFILL} },
-               { &hf_lnet_ib_csum,
-                       { "Checksum", "lnet.ib_csum", FT_UINT32, BASE_DEC,
-                         NULL, 0x0, "", HFILL} },
-               { &hf_lnet_ib_srcstamp,
-                       { "Sender Timestamp", "lnet.ib.srcstamp",
-                         FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0x0,
-                         "", HFILL} },
-               { &hf_lnet_ib_dststamp,
-                       { "Destination Timestamp", "lnet.ib.dststamp",
-                         FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0x0,
-                         "", HFILL} },
-
-               { &hf_lnet_src_nid            , 
-                       { "Src nid"                   , "lnet.src_nid"                 , FT_UINT64 , BASE_HEX     , NULL                  , 0x0 , "src nid"  , HFILL }} , 
-               { &hf_lnet_src_nid_addr       , 
-                       { "Src nid"                   , "lnet.src_nid_addr"            , FT_IPv4   , BASE_NONE    , NULL                  , 0x0 , ""         , HFILL }} , 
-               { &hf_lnet_src_nid_lnet_type  , 
-                       { "lnd network type"          , "lnet.src_nid_type"            , FT_UINT16 , BASE_DEC     , VALS(lndnames)       , 0x0 , ""         , HFILL} },
-               { &hf_lnet_src_nid_interface  , 
-                       { "lnd network interface"     , "lnet.src_nid_net_interface"   , FT_UINT16 , BASE_DEC     , NULL                  , 0x0 , NULL       , HFILL }} , 
-
-               { &hf_lnet_dest_nid           , 
-                       { "Dest nid"                  , "lnet.dest_nid"                , FT_UINT64 , BASE_HEX     , NULL                  , 0x0 , ""         , HFILL }} , 
-
-               { &hf_lnet_dest_nid_addr      , 
-                       { "Destination nid"           , "lnet.dest_nid_addr"           , FT_IPv4   , BASE_NONE    , NULL                  , 0x0 , ""         , HFILL }} , 
-               { &hf_lnet_dest_nid_lnet_type , 
-                       { "lnd network type"          , "lnet.dest_nid_type"           , FT_UINT16 , BASE_DEC     , VALS(lndnames)       , 0x0 , ""         , HFILL} },
-               { &hf_lnet_dest_nid_interface , 
-                       { "lnd network interface"     , "lnet.dest_nid_net_interface"  , FT_UINT16 , BASE_DEC     , NULL                  , 0x0 , NULL       , HFILL }} , 
-
-               { &hf_lnet_dest_pid           , 
-                       { "Dest pid"                  , "lnet.dest_pid"                , FT_UINT32 , BASE_DEC_HEX , NULL                  , 0x0 , "dest pid" , HFILL }} , 
-               { &hf_lnet_src_pid            , 
-                       { "Src pid"                   , "lnet.src_pid"                 , FT_UINT32 , BASE_DEC_HEX , NULL                  , 0x0 , "src nid"  , HFILL }} , 
-
-               { &hf_lnet_msg_type           , 
-                       { "Message type"              , "lnet.msg_type"                , FT_UINT32 , BASE_DEC     , VALS(lnet_msg_type_t) , 0x0 , "msg type" , HFILL }} , 
-               { &hf_lnet_payload_length     , 
-                       { "Payload length"            , "lnet.payload_length"          , FT_UINT32 , BASE_DEC     , NULL                  , 0x0 , ""         , HFILL }} , 
-               { &hf_lnet_payload            , 
-                       { "Payload"                   , "lnet.payload"                 , FT_NONE   , BASE_NONE    , NULL                  , 0x0 , ""         , HFILL }} , 
-
-               {&hf_dst_wmd                  , 
-                       { "DST MD index "             , "lnet.msg_dst_cookie"          , FT_BYTES  , BASE_NONE    , NULL                  , 0x0 , ""         , HFILL }} , 
-               { &hf_dst_wmd_interface       , 
-                       { "DST MD index interface"    , "lnet.msg_dst_inteface_cookie" , FT_UINT64 , BASE_HEX_DEC , NULL                  , 0x0 , ""         , HFILL }} , 
-               { &hf_dst_wmd_object          , 
-                       { "DST MD index object"       , "lnet.msg_dst_object_cookie"   , FT_UINT64 , BASE_HEX_DEC , NULL                  , 0x0 , ""         , HFILL }} , 
-               { &hf_match_bits              , 
-                       { "Match bits"                , "lnet.msg_dst_match_bits"      , FT_UINT64 , BASE_HEX_DEC , NULL                  , 0x0 , ""         , HFILL}}  , 
-               { &hf_mlength                 , 
-                       { "Message length"            , "lnet.msg_length"              , FT_UINT32 , BASE_DEC     , NULL                  , 0x0 , ""         , HFILL}}  , 
-
-
-               /* Put */
-               { &hf_hdr_data                , 
-                       { "hdr data"                  , "lnet.msg_hdr_data"            , FT_UINT64 , BASE_HEX_DEC , NULL                  , 0x0 , ""         , HFILL}}  , 
-               { &hf_ptl_index               , 
-                       { "ptl index"                 , "lnet.ptl_index"               , FT_UINT32 , BASE_DEC     , VALS(portal_indices)  , 0x0 , ""         , HFILL}}  , 
-               { &hf_offset                  , 
-                       { "offset"                    , "lnet.offset"                  , FT_UINT32 , BASE_DEC     , NULL                  , 0x0 , ""         , HFILL}}  , 
-
-               /* Get*/
-               { &hf_src_offset              , 
-                       { "src offset"                , "lnet.src_offset"              , FT_UINT32 , BASE_DEC     , NULL                  , 0x0 , ""         , HFILL}}  , 
-               { &hf_sink_length             , 
-                       { "sink length"               , "lnet.sink_length"             , FT_UINT32 , BASE_DEC     , NULL                  , 0x0 , ""         , HFILL}}  , 
-
-               /* Hello*/
-               { &hf_hello_incarnation       , 
-                       { "hello incarnation "        , "lnet.hello_incarnation"       , FT_UINT64 , BASE_HEX_DEC , NULL                  , 0x0 , ""         , HFILL}}  , 
-               { &hf_hello_type              , 
-                       { "hello type"                , "lnet.hello_type"              , FT_UINT32 , BASE_DEC     , NULL                  , 0x0 , ""         , HFILL}}  , 
-
-               { &hf_lnet_msg_header         , 
-                       { "ptl header"                , "lnet.ptl_header"              , FT_NONE   , BASE_NONE    , NULL                  , 0x0 , ""         , HFILL}}  , 
-
-               { &hf_lnet_msg_filler         , 
-                       { "msg filler (padding)"      , "lnet.ptl_filler"              , FT_NONE   , BASE_NONE    , NULL                  , 0x0 , ""         , HFILL}}  , 
-
-               /* Add more fields here */
-       };
-
-       static gint *ett[] = {
-               &ett_lnet,
-               &ett_lnet_dest_nid,
-               &ett_lnet_src_nid
-       };
-
-
-       module_t *lnet_module;
-
-       proto_lnet = proto_register_protocol("Lnet", /*name*/
-                       "Lnet",  /*short name*/
-                       "lnet"); /*abbrev*/
-
-       proto_register_field_array(proto_lnet, hf, array_length(hf));
-       proto_register_subtree_array(ett, array_length(ett));
-
-       lnet_module = prefs_register_protocol(proto_lnet, proto_reg_handoff_lnet);
-
-       prefs_register_uint_preference(lnet_module, "tcp.lnet_port",
-                       "Lnet listener TCP Port",
-                       "Set the TCP port for Lnet"
-                       "(if other than the default of 988)",
-                       10, &global_lnet_tcp_port);
-
-       subdissector_table = register_dissector_table("lnet.ptl_index", "lnet portal index", FT_UINT32 , BASE_DEC);
-
-       register_init_routine(&lnet_init_protocol);
-
-}
-
-
-/* The registration hand-off routine */
-void
-proto_reg_handoff_lnet(void)
-{
-       static int lnet_prefs_initialized = FALSE;
-       static dissector_handle_t lnet_handle;
-
-       if(!lnet_prefs_initialized) {
-               heur_dissector_add("infiniband.payload", dissect_ib_lnet,
-                                  proto_lnet);
-               heur_dissector_add("infiniband.mad.cm.private",
-                                  dissect_ib_lnet, proto_lnet);
-               lnet_handle = create_dissector_handle(dissect_lnet, proto_lnet);
-               lnet_prefs_initialized = TRUE;
-       }
-       else
-               dissector_delete_uint("tcp.port", global_lnet_tcp_port, lnet_handle);
-
-       lnet_tcp_port = global_lnet_tcp_port;
-
-       dissector_add_uint("tcp.port", lnet_tcp_port, lnet_handle);
-}
diff --git a/lustre/contrib/wireshark/packet-lustre.c b/lustre/contrib/wireshark/packet-lustre.c
deleted file mode 100644 (file)
index 0d1f578..0000000
+++ /dev/null
@@ -1,12226 +0,0 @@
-/* packet-lustre.c
- * Lustre 1.6 dissection (http://www.lustre.org/)
- * Author: Laurent George <george@ocre.cea.fr>
- * based on packet-agentx.c and packet-afs.c
- * partially generated by Pidl
- * 20080903
- * Wireshark - Network traffic analyzer
- * By Gerald Combs <gerald@wireshark.org>
- * Copyright 1999 Gerald Combs
- *
- * C-Syle: 2 space indents
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
- *
- * Copyright (c) 2011, 2017, Intel Corporation.
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-#endif
-
-
-#include <glib.h>
-#include <string.h>
-#include <epan/packet.h>
-
-#include "wireshark-compat.h"
-
-#include <epan/dissectors/packet-windows-common.h>
-#include "lustre_dlm_flags.h"
-
-const true_false_string lnet_flags_set_truth = { "Set", "Unset" };
-
-/* --------------------------------------------------------------------------------------- */
-/* def and macro to know where we are the the lustre payload */
-#define LUSTRE_MAGIC_OFFSET 8
-#define LUSTRE_MSG_MAGIC_V1 0x0BD00BD0
-#define LUSTRE_MSG_MAGIC_V2 0x0BD00BD3
-
-#define LUSTRE_BUFCOUNT_OFF ((tvb_get_letohl(tvb, LUSTRE_MAGIC_OFFSET)== LUSTRE_MSG_MAGIC_V2) ? 0 : 60)
-#define LUSTRE_BUFCOUNT ((tvb_get_letohl(tvb, LUSTRE_MAGIC_OFFSET)== LUSTRE_MSG_MAGIC_V2) \
-    ? (tvb_get_letohl(tvb, LUSTRE_BUFCOUNT_OFF)) : ((tvb_get_letohl(tvb, LUSTRE_BUFCOUNT_OFF))) )
-/* remark : BUFLENOFF don't have the same meaning if it's for v1 or v2
- * v1 : LUSTRE_BUFLEN_OFF = offset buflen[0] - 4 bytes.
- * v2 : LUSTRE_BUFLEN_OFF = offset buflen[0]
- */
-#define LUSTRE_BUFLEN_OFF ((tvb_get_letohl(tvb, LUSTRE_MAGIC_OFFSET)== LUSTRE_MSG_MAGIC_V2) ? 32 : 60)
-
-/* LUSTRE_BUFFER_LEN(buffnum) */
-#define LUSTRE_BUFFER_LEN(_n) (LUSTRE_BUFCOUNT <= (_n) ? 0 \
-                              : tvb_get_letohl(tvb, LUSTRE_BUFLEN_OFF+\
-                                               sizeof(guint32)*(_n)))
-
-#define LUSTRE_REQ_REC_OFF                     1 /* normal request record offset */
-#define LUSTRE_REPLY_REC_OFF                   1 /* normal reply record offset */
-
-#define LUSTRE_DLM_INTENT_IT_OFF               2 /* intent lock it offset */
-#define LUSTRE_DLM_INTENT_REC_OFF              3 /* intent lock record offset */
-#define LUSTRE_DLM_LOCKREPLY_OFF               1 /* lockrep offset */
-#define LUSTRE_DLM_REPLY_REC_OFF               2 /* reply record offset */
-/* --------------------------------------------------------------------------------------- */
-
-
-#define LUSTRE_PTLRPC_MSG_VERSION  0x00000003
-#define LUSTRE_VERSION_MASK 0xffff0000
-#define LUSTRE_OBD_VERSION  0x00010000
-#define LUSTRE_MDS_VERSION  0x00020000
-#define LUSTRE_OST_VERSION  0x00030000
-#define LUSTRE_DLM_VERSION  0x00040000
-#define LUSTRE_LOG_VERSION  0x00050000
-#define LUSTRE_MGS_VERSION  0x00060000
-
-
-
-#define LOV_MAGIC_V1    0x0BD10BD0
-#define LOV_MAGIC_V3   0x0BD30BD0
-
-/* defined in lustre/include/lustre/lustre_user.h */
-#define LOV_MAXPOOLNAME 15
-
-/* defined in lustre/include/lustre/lustre_idl.h */
-typedef enum {
-       CONNMGR_REQUEST_PORTAL = 1,
-       CONNMGR_REPLY_PORTAL = 2,
-       OSC_REQUEST_PORTAL = 3,
-       OSC_REPLY_PORTAL = 4,
-       OSC_BULK_PORTAL = 5,
-       OST_IO_PORTAL = 6,
-       OST_CREATE_PORTAL = 7,
-       OST_BULK_PORTAL = 8,
-       MDC_REQUEST_PORTAL = 9,
-       MDC_REPLY_PORTAL = 10,
-       MDC_BULK_PORTAL = 11,
-       MDS_REQUEST_PORTAL = 12,
-       MDS_REPLY_PORTAL = 13,
-       MDS_BULK_PORTAL = 14,
-       LDLM_CB_REQUEST_PORTAL = 15,
-       LDLM_CB_REPLY_PORTAL = 16,
-       LDLM_CANCEL_REQUEST_PORTAL = 17,
-       LDLM_CANCEL_REPLY_PORTAL = 18,
-       PTLBD_REQUEST_PORTAL = 19,
-       PTLBD_REPLY_PORTAL = 20,
-       PTLBD_BULK_PORTAL = 21,
-       MDS_SETATTR_PORTAL = 22,
-       MDS_READPAGE_PORTAL = 23,
-       MDS_MDS_PORTAL = 24,
-       MGC_REPLY_PORTAL = 25,
-       MGS_REQUEST_PORTAL = 26,
-       MGS_REPLY_PORTAL = 27,
-       OST_REQUEST_PORTAL = 28,
-       FLD_REQUEST_PORTAL = 29,
-       SEQ_METADATA_PORTAL = 30,
-       SEQ_DATA_PORTAL = 31,
-       SEQ_CONTROLLER_PORTAL = 32,
-       MGS_BULK_PORTAL = 33
-} portal_index_t;
-
-static const value_string portal_indices[] = {
-       { CONNMGR_REQUEST_PORTAL, "CONNMGR_REQUEST_PORTAL"},
-       { CONNMGR_REPLY_PORTAL , "CONNMGR_REPLY_PORTAL"},
-       { OSC_REQUEST_PORTAL , "OSC_REQUEST_PORTAL(obsolete)"},
-       { OSC_REPLY_PORTAL , "OSC_REPLY_PORTAL"},
-       { OSC_BULK_PORTAL , "OSC_BULK_PORTAL(obsolete)"},
-       { OST_IO_PORTAL , "OST_IO_PORTAL"},
-       { OST_CREATE_PORTAL , "OST_CREATE_PORTAL"},
-       { OST_BULK_PORTAL , "OST_BULK_PORTAL"},
-       { MDC_REQUEST_PORTAL , "MDC_REQUEST_PORTAL(obsolete)"},
-       { MDC_REPLY_PORTAL , "MDC_REPLY_PORTAL"},
-       { MDC_BULK_PORTAL , "MDC_BULK_PORTAL(obsolete)"},
-       { MDS_REQUEST_PORTAL , "MDS_REQUEST_PORTAL"},
-       { MDS_REPLY_PORTAL , "MDS_REPLY_PORTAL(obsolete)"},
-       { MDS_BULK_PORTAL , "MDS_BULK_PORTAL"},
-       { LDLM_CB_REQUEST_PORTAL , "LDLM_CB_REQUEST_PORTAL"},
-       { LDLM_CB_REPLY_PORTAL , "LDLM_CB_REPLY_PORTAL"},
-       { LDLM_CANCEL_REQUEST_PORTAL , "LDLM_CANCEL_REQUEST_PORTAL"},
-       { LDLM_CANCEL_REPLY_PORTAL , "LDLM_CANCEL_REPLY_PORTAL"},
-       { PTLBD_REQUEST_PORTAL , "PTLBD_REQUEST_PORTAL(obsolete)"},
-       { PTLBD_REPLY_PORTAL , "PTLBD_REPLY_PORTAL(obsolete)"},
-       { PTLBD_BULK_PORTAL , "PTLBD_BULK_PORTAL(obsolete)"},
-       { MDS_SETATTR_PORTAL , "MDS_SETATTR_PORTAL"},
-       { MDS_READPAGE_PORTAL , "MDS_READPAGE_PORTAL"},
-       { MDS_MDS_PORTAL, "MDS_MDS_PORTAL"},
-       { MGC_REPLY_PORTAL , "MGC_REPLY_PORTAL"},
-       { MGS_REQUEST_PORTAL , "MGS_REQUEST_PORTAL"},
-       { MGS_REPLY_PORTAL , "MGS_REPLY_PORTAL"},
-       { OST_REQUEST_PORTAL , "OST_REQUEST_PORTAL"},
-       { FLD_REQUEST_PORTAL , "FLD_REQUEST_PORTAL"},
-       { SEQ_METADATA_PORTAL, "SEQ_METADATA_PORTAL"},
-       { SEQ_DATA_PORTAL, "SEQ_DATA_PORTAL"},
-       { SEQ_CONTROLLER_PORTAL, "SEQ_CONTROLLER_PORTAL"},
-       { MGS_BULK_PORTAL, "MGS_BULK_PORTAL"}
-};
-
-typedef enum {
-  OST_REPLY      =  0,       /* reply ? */
-  OST_GETATTR    =  1,
-  OST_SETATTR    =  2,
-  OST_READ       =  3,
-  OST_WRITE      =  4,
-  OST_CREATE     =  5,
-  OST_DESTROY    =  6,
-  OST_GET_INFO   =  7,
-  OST_CONNECT    =  8,
-  OST_DISCONNECT =  9,
-  OST_PUNCH      = 10,
-  OST_OPEN       = 11,
-  OST_CLOSE      = 12,
-  OST_STATFS     = 13,
-  /*      OST_SAN_READ   = 14,    deprecated */
-  /*      OST_SAN_WRITE  = 15,    deprecated */
-  OST_SYNC       = 16,
-  OST_SET_INFO   = 17,
-  OST_QUOTACHECK = 18,
-  OST_QUOTACTL   = 19,
-  OST_QUOTA_ADJUST_QUNIT = 20,
-  OST_LADVISE = 21,
-  OST_LAST_OPC
-} ost_cmd_t ;
-
-
-typedef enum {
-  OBD_PING = 400,
-  OBD_LOG_CANCEL,
-  OBD_QC_CALLBACK,
-  OBD_LAST_OPC
-} obd_cmd_t;
-#define OBD_FIRST_OPC OBD_PING
-
-/* must be coherent with same declaration
- * in lustre/include/lustre/lustre_idl.h
- */
-typedef enum {
-       MDS_GETATTR             = 33,
-       MDS_GETATTR_NAME        = 34,
-       MDS_CLOSE               = 35,
-       MDS_REINT               = 36,
-       MDS_READPAGE            = 37,
-       MDS_CONNECT             = 38,
-       MDS_DISCONNECT          = 39,
-       MDS_GET_ROOT            = 40,
-       MDS_STATFS              = 41,
-       MDS_PIN                 = 42,
-       MDS_UNPIN               = 43,
-       MDS_SYNC                = 44,
-       MDS_DONE_WRITING        = 45,
-       MDS_SET_INFO            = 46,
-       MDS_QUOTACHECK          = 47,
-       MDS_QUOTACTL            = 48,
-       MDS_GETXATTR            = 49,
-       MDS_SETXATTR            = 50,
-       MDS_WRITEPAGE           = 51,
-       MDS_IS_SUBDIR           = 52,
-       MDS_GET_INFO            = 53,
-       MDS_HSM_STATE_GET       = 54,
-       MDS_HSM_STATE_SET       = 55,
-       MDS_HSM_ACTION          = 56,
-       MDS_HSM_PROGRESS        = 57,
-       MDS_HSM_REQUEST         = 58,
-       MDS_HSM_CT_REGISTER     = 59,
-       MDS_HSM_CT_UNREGISTER   = 60,
-       MDS_SWAP_LAYOUTS        = 61,
-       MDS_LAST_OPC
-} mds_cmd_t;
-#define MDS_FIRST_OPC MDS_GETATTR
-
-enum {
-       LAYOUT_INTENT_ACCESS    = 0,
-       LAYOUT_INTENT_READ      = 1,
-       LAYOUT_INTENT_WRITE     = 2,
-       LAYOUT_INTENT_GLIMPSE   = 3,
-       LAYOUT_INTENT_TRUNC     = 4,
-       LAYOUT_INTENT_RELEASE   = 5,
-       LAYOUT_INTENT_RESTORE   = 6
-};
-
-static const value_string lustre_layout_intent_opc_values[] = {
-       { LAYOUT_INTENT_ACCESS,         "ACCESS"},
-       { LAYOUT_INTENT_READ,           "READ"},
-       { LAYOUT_INTENT_WRITE,          "WRITE"},
-       { LAYOUT_INTENT_GLIMPSE,        "GLIMPSE"},
-       { LAYOUT_INTENT_TRUNC,          "TRUNC"},
-       { LAYOUT_INTENT_RELEASE,        "RELEASE"},
-       { LAYOUT_INTENT_RESTORE,        "RESTORE"},
-       { 0, NULL },
-};
-
-/* From lustre/include/obd.h */
-#define IT_OPEN     0x0001
-#define IT_CREAT    0x0002
-#define IT_READDIR  0x0004
-#define IT_GETATTR  0x0008
-#define IT_LOOKUP   0x0010
-#define IT_UNLINK   0x0020
-#define IT_TRUNC       0x0040
-#define IT_GETXATTR    0x0080
-#define IT_EXEC                0x0100
-#define IT_PIN         0x0200
-#define IT_LAYOUT      0x0400
-#define IT_QUOTA_DQACQ 0x0800
-#define IT_QUOTA_CONN  0x1000
-#define IT_SETXATTR    0x2000
-
-/* lustre/include/uapi/linux/lustre/lustre_idl.h */
-enum mds_reint_op {
-  REINT_SETATTR  = 1,
-  REINT_CREATE   = 2,
-  REINT_LINK     = 3,
-  REINT_UNLINK   = 4,
-  REINT_RENAME   = 5,
-  REINT_OPEN     = 6,
-  REINT_SETXATTR = 7,
-  REINT_RMENTRY  = 8,
-  REINT_MIGRATE  = 9,
-  REINT_MAX
-};
-
-enum ldlm_cmd {
-  LDLM_ENQUEUE     = 101,
-  LDLM_CONVERT     = 102,
-  LDLM_CANCEL      = 103,
-  LDLM_BL_CALLBACK = 104,
-  LDLM_CP_CALLBACK = 105,
-  LDLM_GL_CALLBACK = 106,
-  LDLM_SET_INFO    = 107,
-  LDLM_LAST_OPC
-};
-#define LDLM_FIRST_OPC LDLM_ENQUEUE
-
-enum seq_rpc_opc {
-  SEQ_QUERY        = 700,
-  SEQ_LAST_OPC,
-  SEQ_FIRST_OPC    = SEQ_QUERY
-};
-
-enum fld_rpc_opc {
-  FLD_QUERY        = 900,
-  FLD_LAST_OPC,
-  FLD_FIRST_OPC    = FLD_QUERY
-};
-
-#define LDLM_ENQUEUE (101)
-#define LDLM_CONVERT (102)
-#define LDLM_CANCEL (103)
-#define LDLM_BL_CALLBACK (104)
-#define LDLM_CP_CALLBACK (105)
-#define LDLM_GL_CALLBACK (106)
-#define LCK_MINMODE (0)
-#define LCK_EX (1)
-#define LCK_PW (2)
-#define LCK_PR (4)
-#define LCK_CW (8)
-#define LCK_CR (16)
-#define LCK_NL (32)
-#define LCK_GROUP (64)
-#define LDLM_PLAIN (10)
-#define LDLM_EXTENT (11)
-#define LDLM_FLOCK (12)
-#define LDLM_IBITS (13)
-//#define MGS_CONNECT (250)
-#define OBD_PING (400)
-
-/*
- * Opcodes for mountconf (mgs and mgc)
- */
-typedef enum {
-  MGS_CONNECT = 250,
-  MGS_DISCONNECT,
-  MGS_EXCEPTION,         /* node died, etc. */
-  MGS_TARGET_REG,        /* whenever target starts up */
-  MGS_TARGET_DEL,
-  MGS_SET_INFO,
-  MGS_CONFIG_READ,
-  MGS_LAST_OPC
-} mgs_cmd_t;
-#define MGS_FIRST_OPC MGS_CONNECT
-
-/* llog protocol */
-typedef enum {
-  LLOG_ORIGIN_HANDLE_CREATE       = 501,
-  LLOG_ORIGIN_HANDLE_NEXT_BLOCK   = 502,
-  LLOG_ORIGIN_HANDLE_READ_HEADER  = 503,
-  LLOG_ORIGIN_HANDLE_WRITE_REC    = 504,
-  LLOG_ORIGIN_HANDLE_CLOSE        = 505,
-  LLOG_ORIGIN_CONNECT             = 506,
-  LLOG_CATINFO                    = 507,  /* for lfs catinfo */
-  LLOG_ORIGIN_HANDLE_PREV_BLOCK   = 508,
-  LLOG_ORIGIN_HANDLE_DESTROY      = 509,  /* for destroy llog object*/
-  LLOG_LAST_OPC
-} llog_cmd_t;
-
-#define LLOG_FIRST_OPC LLOG_ORIGIN_HANDLE_CREATE
-/*flag for the LLOG*/
-#define LLOG_OP_MAGIC 0x10600000
-#define LLOG_OP_MASK  0xfff00000
-
-typedef enum {
-  LLOG_PAD_MAGIC   = LLOG_OP_MAGIC | 0x00000,
-  OST_SZ_REC       = LLOG_OP_MAGIC | 0x00f00,
-  OST_RAID1_REC    = LLOG_OP_MAGIC | 0x01000,
-  MDS_UNLINK_REC   = LLOG_OP_MAGIC | 0x10000 | (MDS_REINT << 8) | REINT_UNLINK,
-  MDS_SETATTR_REC  = LLOG_OP_MAGIC | 0x10000 | (MDS_REINT << 8) | REINT_SETATTR,
-  OBD_CFG_REC      = LLOG_OP_MAGIC | 0x20000,
-  PTL_CFG_REC      = LLOG_OP_MAGIC | 0x30000, /* obsolete */
-  LLOG_GEN_REC     = LLOG_OP_MAGIC | 0x40000,
-  LLOG_JOIN_REC    = LLOG_OP_MAGIC | 0x50000, /* obsolete */
-  LLOG_HDR_MAGIC   = LLOG_OP_MAGIC | 0x45539,
-  LLOG_LOGID_MAGIC = LLOG_OP_MAGIC | 0x4553b,
-} llog_op_type;
-
-/* LLOG flag */
-/*defined in lustre/include/lustre/lustre_idl.h*/
-#define LLOG_F_ZAP_WHEN_EMPTY   0x1
-#define LLOG_F_IS_CAT           0x2
-#define LLOG_F_IS_PLAIN         0x4
-
-#define PTL_RPC_MSG_REQUEST 4711
-#define PTL_RPC_MSG_ERR 4712
-#define PTL_RPC_MSG_REPLY 4713
-
-/* Connect flags from lustre_idl.h */
-#define OBD_CONNECT_RDONLY                0x1ULL /*client has read-only access*/
-#define OBD_CONNECT_INDEX                 0x2ULL /*connect specific LOV idx */
-#define OBD_CONNECT_MDS                   0x4ULL /*connect from MDT to OST */
-#define OBD_CONNECT_GRANT                 0x8ULL /*OSC gets grant at connect */
-#define OBD_CONNECT_SRVLOCK              0x10ULL /*server takes locks for cli */
-#define OBD_CONNECT_VERSION              0x20ULL /*Lustre versions in ocd */
-#define OBD_CONNECT_REQPORTAL            0x40ULL /*Separate non-IO req portal */
-#define OBD_CONNECT_ACL                  0x80ULL /*access control lists */
-#define OBD_CONNECT_XATTR               0x100ULL /*client use extended attr */
-#define OBD_CONNECT_CROW                0x200ULL /*MDS+OST create obj on write*/
-#define OBD_CONNECT_TRUNCLOCK           0x400ULL /*locks on server for punch */
-#define OBD_CONNECT_TRANSNO             0x800ULL /*replay sends init transno */
-#define OBD_CONNECT_IBITS              0x1000ULL /*support for inodebits locks*/
-#define OBD_CONNECT_JOIN               0x2000ULL /*files can be concatenated.
-                                                 *We do not support JOIN FILE
-                                                 *anymore, reserve this flags
-                                                 *just for preventing such bit
-                                                 *to be reused.*/
-#define OBD_CONNECT_ATTRFID            0x4000ULL /*Server can GetAttr By Fid*/
-#define OBD_CONNECT_NODEVOH            0x8000ULL /*No open hndl on specl nodes*/
-#define OBD_CONNECT_RMT_CLIENT        0x10000ULL /*Remote client */
-#define OBD_CONNECT_RMT_CLIENT_FORCE  0x20000ULL /*Remote client by force */
-#define OBD_CONNECT_BRW_SIZE          0x40000ULL /*Max bytes per rpc */
-#define OBD_CONNECT_QUOTA64           0x80000ULL /*Not used since 2.4 */
-#define OBD_CONNECT_MDS_CAPA         0x100000ULL /*MDS capability */
-#define OBD_CONNECT_OSS_CAPA         0x200000ULL /*OSS capability */
-#define OBD_CONNECT_CANCELSET        0x400000ULL /*Early batched cancels. */
-#define OBD_CONNECT_SOM              0x800000ULL /*Size on MDS */
-#define OBD_CONNECT_AT              0x1000000ULL /*client uses AT */
-#define OBD_CONNECT_LRU_RESIZE      0x2000000ULL /*LRU resize feature. */
-#define OBD_CONNECT_MDS_MDS         0x4000000ULL /*MDS-MDS connection */
-#define OBD_CONNECT_REAL            0x8000000ULL /*real connection */
-#define OBD_CONNECT_CHANGE_QS      0x10000000ULL /*Not used since 2.4 */
-#define OBD_CONNECT_CKSUM          0x20000000ULL /*support several cksum algos*/
-#define OBD_CONNECT_FID            0x40000000ULL /*FID is supported by server */
-#define OBD_CONNECT_VBR            0x80000000ULL /*version based recovery */
-
-/* Ett declarations */
-static gint ett_lustre_llog_log_llh_flags = -1 ;
-static gint ett_lustre = -1;
-static gint ett_lustre_lustre_handle_cookie = -1;
-static gint ett_lustre_lustre_msg_v1 = -1;
-static gint ett_lustre_lustre_handle_v1 = -1;
-static gint ett_lustre_lustre_msg_v2 = -1;
-static gint ett_lustre_ptlrpc_body = -1;
-static gint ett_lustre_lustre_handle_v2 = -1;
-static gint ett_lustre_obd_connect_data = -1;
-static gint ett_lustre_lov_mds_md_v1 = -1;
-static gint ett_lustre_lov_mds_md_v3 = -1;
-static gint ett_lustre_lov_ost_data_v1 = -1;
-static gint ett_lustre_obd_statfs = -1;
-static gint ett_lustre_obd_ioobj = -1;
-static gint ett_lustre_niobuf_remote = -1;
-static gint ett_lustre_ost_lvb = -1;
-static gint ett_lustre_ll_fid = -1;
-static gint ett_lustre_mdt_body = -1;
-static gint ett_lustre_mdt_rec_setattr = -1;
-static gint ett_lustre_mdt_rec_create = -1;
-static gint ett_lustre_mdt_rec_link = -1;
-static gint ett_lustre_mdt_rec_unlink = -1;
-static gint ett_lustre_mdt_rec_rename = -1;
-static gint ett_lustre_mdt_rec_setxattr = -1;
-static gint ett_lustre_obd_quotactl = -1;
-static gint ett_lustre_obd_dqinfo = -1;
-static gint ett_lustre_obd_dqblk = -1;
-static gint ett_lustre_quota_adjust_qunit = -1;
-static gint ett_lustre_lov_desc = -1;
-static gint ett_lustre_obd_uuid = -1;
-static gint ett_lustre_ldlm_res_id = -1;
-static gint ett_lustre_ldlm_extent = -1;
-static gint ett_lustre_ldlm_inodebits = -1;
-static gint ett_lustre_ldlm_flock = -1;
-static gint ett_lustre_ldlm_intent_opc = -1;
-static gint ett_lustre_ldlm_resource_desc = -1;
-static gint ett_lustre_ldlm_lock_desc = -1;
-static gint ett_lustre_ldlm_request = -1;
-static gint ett_lustre_lustre_handle = -1;
-static gint ett_lustre_ldlm_reply = -1;
-static gint ett_lustre_mgs_send_param = -1;
-static gint ett_lustre_mgs_target_info = -1;
-static gint ett_lustre_mgs_config_body = -1;
-static gint ett_lustre_mgs_config_res = -1;
-static gint ett_lustre_cfg_marker = -1;
-static gint ett_lustre_llog_catid = -1;
-static gint ett_lustre_llog_rec_hdr = -1;
-static gint ett_lustre_llog_logid_rec = -1;
-static gint ett_lustre_llog_logid = -1;
-static gint ett_lustre_llog_rec_tail = -1;
-static gint ett_lustre_lov_mds_md = -1;
-static gint ett_lustre_llog_unlink_rec = -1;
-static gint ett_lustre_llog_setattr_rec = -1;
-static gint ett_lustre_llog_size_change_rec = -1;
-static gint ett_lustre_llog_gen_rec = -1;
-static gint ett_lustre_llog_log_hdr = -1;
-static gint ett_lustre_llog_cookie = -1;
-static gint ett_lustre_llogd_body = -1;
-static gint ett_lustre_llogd_conn_body = -1;
-static gint ett_lustre_llog_gen = -1;
-static gint ett_lustre_obdo = -1;
-static gint ett_lustre_ost_body = -1;
-static gint ett_lustre_qunit_data = -1;
-static gint ett_lustre_qunit_data_old2 = -1;
-static gint ett_lustre_qunit_data_old = -1;
-static gint ett_lustre_ldlm_lock_flags = -1 ;
-static gint ett_lustre_seq_range = -1;
-static gint ett_lustre_fld_range = -1;
-static gint ett_lustre_mdt_ioepoch = -1;
-static gint ett_lustre_capa = -1;
-static gint ett_lustre_close_data = -1;
-static gint ett_lustre_acl = -1;
-static gint ett_lustre_ladvise = -1;
-static gint ett_lustre_hsm_request = -1;
-static gint ett_lustre_hsm_user_item = -1;
-static gint ett_lustre_hsm_extent = -1;
-static gint ett_lustre_hsm_progress = -1;
-static gint ett_lustre_hsm_user_state = -1;
-static gint ett_lustre_quota_body = -1;
-static gint ett_lustre_lquota_id = -1;
-static gint ett_lustre_layout_intent = -1;
-static gint ett_lustre_xattrs = -1;
-static gint ett_lustre_ost_id = -1;
-
-/* -----------------------------------------------*/
-/* Header field declarations */
-static int hf_lustre_ptlrpc_body_pb = -1 ;
-static int hf_lustre_ost_body = -1 ;
-static int hf_lustre_obd_statfs = -1 ;
-static int hf_lustre_obd_quotactl = -1 ;
-static int hf_lustre_quota_adjust_qunit = -1 ;
-static int hf_lustre_extra_padding = -1 ;
-static int hf_lustre_ldlm_reply = -1 ;
-static int hf_lustre_ldlm_request = -1 ;
-static int hf_lustre_obd_uuid = -1 ;
-static int hf_lustre_obd_connect_data = -1 ;
-static int hf_lustre_ldlm_intent = -1;
-static int hf_lustre_obd_ioobj = -1 ;
-static int hf_lustre_niobuf_remote = -1 ;
-static int hf_lustre_ost_key = -1 ;
-static int hf_lustre_nio= -1 ;
-static int hf_lustre_ost_val= -1;
-static int hf_lustre_llogd_body = -1;
-static int hf_lustre_llogd_log_hdr= -1;
-static int hf_lustre_llog_logid_rec =-1 ;
-static int hf_lustre_llogd_chunk= -1;
-static int hf_lustre_llogd_keyword= -1;
-static int hf_lustre_llogd_client= -1;
-static int hf_lustre_llogd_name= -1;
-
-static int hf_lustre_mds_xattr_name = -1;
-static int hf_lustre_lov_mds_md_v1= -1;
-static int hf_lustre_llog_cookie= -1;
-static int hf_lustre_mds_md_data= -1;
-static int hf_lustre_mds_reint_opcode= -1;
-static int hf_lustre_mds_xattr_eadata = -1;
-static int hf_lustre_mds_xattr_eadata_str = -1;
-
-static int hf_lustre_reint_name= -1;
-static int hf_lustre_reint_old_name= -1;
-static int hf_lustre_reint_new_name= -1;
-
-static int hf_lustre_mgs_target_info = -1 ;
-static int hf_lustre_mgs_send_param = -1;
-
-static int hf_lustre_mgs_config_body = -1;
-static int hf_lustre_mgs_config_body_name = -1;
-static int hf_lustre_mgs_config_body_offset = -1;
-static int hf_lustre_mgs_config_body_type = -1;
-static int hf_lustre_mgs_config_body_reserved = -1;
-static int hf_lustre_mgs_config_body_bits = -1;
-static int hf_lustre_mgs_config_body_units = -1;
-
-static int hf_lustre_mgs_config_res = -1;
-static int hf_lustre_mgs_config_res_offset = -1;
-static int hf_lustre_mgs_config_res_size = -1;
-
-static int hf_lustre_ost_lvb = -1 ;
-
-#define hf_lustre_ldlm_ast_discard_data hf_lustre_ldlm_fl_ast_discard_data
-
-static int hf_lustre_mdt_body = -1 ;
-static int hf_lustre_mdt_body_fid1 = -1;
-static int hf_lustre_mdt_body_fid2 = -1;
-static int hf_lustre_mdt_body_handle = -1;
-static int hf_lustre_mdt_body_valid = -1;
-static int hf_lustre_mdt_body_size = -1;
-static int hf_lustre_mdt_body_mtime = -1;
-static int hf_lustre_mdt_body_atime = -1;
-static int hf_lustre_mdt_body_ctime = -1;
-static int hf_lustre_mdt_body_blocks = -1;
-static int hf_lustre_mdt_body_ioepoch = -1;
-static int hf_lustre_mdt_body_ino = -1;
-static int hf_lustre_mdt_body_fsuid = -1;
-static int hf_lustre_mdt_body_fsgid = -1;
-static int hf_lustre_mdt_body_capability = -1;
-static int hf_lustre_mdt_body_mode = -1;
-static int hf_lustre_mdt_body_uid = -1;
-static int hf_lustre_mdt_body_gid = -1;
-static int hf_lustre_mdt_body_flags = -1;
-static int hf_lustre_mdt_body_rdev = -1;
-static int hf_lustre_mdt_body_nlink = -1;
-static int hf_lustre_mdt_body_generation = -1;
-static int hf_lustre_mdt_body_suppgid = -1;
-static int hf_lustre_mdt_body_eadatasize = -1;
-static int hf_lustre_mdt_body_aclsize = -1;
-static int hf_lustre_mdt_body_max_mdsize = -1;
-static int hf_lustre_mdt_body_max_cookiesize = -1;
-static int hf_lustre_mdt_body_uid_h = -1;
-static int hf_lustre_mdt_body_gid_h = -1;
-static int hf_lustre_mdt_body_padding_5 = -1;
-static int hf_lustre_mdt_body_padding_6 = -1;
-static int hf_lustre_mdt_body_padding_7 = -1;
-static int hf_lustre_mdt_body_padding_8 = -1;
-static int hf_lustre_mdt_body_padding_9 = -1;
-static int hf_lustre_mdt_body_padding_10 = -1;
-
-static int hf_lustre_mdt_rec_setattr = -1 ;
-static int hf_lustre_mdt_rec_setattr_sa_opcode = -1;
-static int hf_lustre_mdt_rec_setattr_sa_cap = -1;
-static int hf_lustre_mdt_rec_setattr_sa_fsuid = -1;
-static int hf_lustre_mdt_rec_setattr_sa_fsuid_h = -1;
-static int hf_lustre_mdt_rec_setattr_sa_fsgid = -1;
-static int hf_lustre_mdt_rec_setattr_sa_fsgid_h = -1;
-static int hf_lustre_mdt_rec_setattr_sa_suppgid = -1;
-static int hf_lustre_mdt_rec_setattr_sa_suppgid_h = -1;
-static int hf_lustre_mdt_rec_setattr_sa_padding_1 = -1;
-static int hf_lustre_mdt_rec_setattr_sa_padding_1_h = -1;
-static int hf_lustre_mdt_rec_setattr_sa_fid = -1;
-static int hf_lustre_mdt_rec_setattr_sa_valid = -1;
-static int hf_lustre_mdt_rec_setattr_sa_uid = -1;
-static int hf_lustre_mdt_rec_setattr_sa_gid = -1;
-static int hf_lustre_mdt_rec_setattr_sa_size = -1;
-static int hf_lustre_mdt_rec_setattr_sa_blocks = -1;
-static int hf_lustre_mdt_rec_setattr_sa_mtime = -1;
-static int hf_lustre_mdt_rec_setattr_sa_atime = -1;
-static int hf_lustre_mdt_rec_setattr_sa_ctime = -1;
-static int hf_lustre_mdt_rec_setattr_sa_attr_flags = -1;
-static int hf_lustre_mdt_rec_setattr_sa_mode = -1;
-static int hf_lustre_mdt_rec_setattr_sa_padding_2 = -1;
-static int hf_lustre_mdt_rec_setattr_sa_projid = -1;
-static int hf_lustre_mdt_rec_setattr_sa_padding_4 = -1;
-static int hf_lustre_mdt_rec_setattr_sa_padding_5 = -1;
-
-static int hf_lustre_mdt_rec_create = -1 ;
-static int hf_lustre_mdt_rec_create_cr_opcode = -1;
-static int hf_lustre_mdt_rec_create_cr_cap = -1;
-static int hf_lustre_mdt_rec_create_cr_fsuid = -1;
-static int hf_lustre_mdt_rec_create_cr_fsuid_h = -1;
-static int hf_lustre_mdt_rec_create_cr_fsgid = -1;
-static int hf_lustre_mdt_rec_create_cr_fsgid_h = -1;
-static int hf_lustre_mdt_rec_create_cr_suppgid1 = -1;
-static int hf_lustre_mdt_rec_create_cr_suppgid1_h = -1;
-static int hf_lustre_mdt_rec_create_cr_suppgid2 = -1;
-static int hf_lustre_mdt_rec_create_cr_suppgid2_h = -1;
-static int hf_lustre_mdt_rec_create_cr_fid1 = -1;
-static int hf_lustre_mdt_rec_create_cr_fid2 = -1;
-static int hf_lustre_mdt_rec_create_cr_old_handle = -1;
-static int hf_lustre_mdt_rec_create_cr_time = -1;
-static int hf_lustre_mdt_rec_create_cr_rdev = -1;
-static int hf_lustre_mdt_rec_create_cr_ioepoch = -1;
-static int hf_lustre_mdt_rec_create_cr_padding_1 = -1;
-static int hf_lustre_mdt_rec_create_cr_mode = -1;
-static int hf_lustre_mdt_rec_create_cr_bias = -1;
-static int hf_lustre_mdt_rec_create_cr_flags_l = -1;
-static int hf_lustre_mdt_rec_create_cr_flags_h = -1;
-static int hf_lustre_mdt_rec_create_cr_umask = -1;
-static int hf_lustre_mdt_rec_create_cr_padding_4 = -1;
-
-static int hf_lustre_mdt_rec_link = -1 ;
-static int hf_lustre_mdt_rec_link_lk_opcode = -1;
-static int hf_lustre_mdt_rec_link_lk_cap = -1;
-static int hf_lustre_mdt_rec_link_lk_fsuid = -1;
-static int hf_lustre_mdt_rec_link_lk_fsuid_h = -1;
-static int hf_lustre_mdt_rec_link_lk_fsgid = -1;
-static int hf_lustre_mdt_rec_link_lk_fsgid_h = -1;
-static int hf_lustre_mdt_rec_link_lk_suppgid1 = -1;
-static int hf_lustre_mdt_rec_link_lk_suppgid1_h = -1;
-static int hf_lustre_mdt_rec_link_lk_suppgid2 = -1;
-static int hf_lustre_mdt_rec_link_lk_suppgid2_h = -1;
-static int hf_lustre_mdt_rec_link_lk_fid1 = -1;
-static int hf_lustre_mdt_rec_link_lk_fid2 = -1;
-static int hf_lustre_mdt_rec_link_lk_time = -1;
-static int hf_lustre_mdt_rec_link_lk_padding_1 = -1;
-static int hf_lustre_mdt_rec_link_lk_padding_2 = -1;
-static int hf_lustre_mdt_rec_link_lk_padding_3 = -1;
-static int hf_lustre_mdt_rec_link_lk_padding_4 = -1;
-static int hf_lustre_mdt_rec_link_lk_bias = -1;
-static int hf_lustre_mdt_rec_link_lk_padding_5 = -1;
-static int hf_lustre_mdt_rec_link_lk_padding_6 = -1;
-static int hf_lustre_mdt_rec_link_lk_padding_7 = -1;
-static int hf_lustre_mdt_rec_link_lk_padding_8 = -1;
-static int hf_lustre_mdt_rec_link_lk_padding_9 = -1;
-
-static int hf_lustre_mdt_rec_unlink = -1 ;
-static int hf_lustre_mdt_rec_unlink_ul_opcode = -1;
-static int hf_lustre_mdt_rec_unlink_ul_cap = -1;
-static int hf_lustre_mdt_rec_unlink_ul_fsuid = -1;
-static int hf_lustre_mdt_rec_unlink_ul_fsuid_h = -1;
-static int hf_lustre_mdt_rec_unlink_ul_fsgid = -1;
-static int hf_lustre_mdt_rec_unlink_ul_fsgid_h = -1;
-static int hf_lustre_mdt_rec_unlink_ul_suppgid1 = -1;
-static int hf_lustre_mdt_rec_unlink_ul_suppgid1_h = -1;
-static int hf_lustre_mdt_rec_unlink_ul_suppgid2 = -1;
-static int hf_lustre_mdt_rec_unlink_ul_suppgid2_h = -1;
-static int hf_lustre_mdt_rec_unlink_ul_fid1 = -1;
-static int hf_lustre_mdt_rec_unlink_ul_fid2 = -1;
-static int hf_lustre_mdt_rec_unlink_ul_time = -1;
-static int hf_lustre_mdt_rec_unlink_ul_padding_2 = -1;
-static int hf_lustre_mdt_rec_unlink_ul_padding_3 = -1;
-static int hf_lustre_mdt_rec_unlink_ul_padding_4 = -1;
-static int hf_lustre_mdt_rec_unlink_ul_padding_5 = -1;
-static int hf_lustre_mdt_rec_unlink_ul_bias = -1;
-static int hf_lustre_mdt_rec_unlink_ul_mode = -1;
-static int hf_lustre_mdt_rec_unlink_ul_padding_6 = -1;
-static int hf_lustre_mdt_rec_unlink_ul_padding_7 = -1;
-static int hf_lustre_mdt_rec_unlink_ul_padding_8 = -1;
-static int hf_lustre_mdt_rec_unlink_ul_padding_9 = -1;
-
-static int hf_lustre_mdt_rec_rename = -1 ;
-static int hf_lustre_mdt_rec_rename_rn_opcode = -1;
-static int hf_lustre_mdt_rec_rename_rn_cap = -1;
-static int hf_lustre_mdt_rec_rename_rn_fsuid = -1;
-static int hf_lustre_mdt_rec_rename_rn_fsuid_h = -1;
-static int hf_lustre_mdt_rec_rename_rn_fsgid = -1;
-static int hf_lustre_mdt_rec_rename_rn_fsgid_h = -1;
-static int hf_lustre_mdt_rec_rename_rn_suppgid1 = -1;
-static int hf_lustre_mdt_rec_rename_rn_suppgid1_h = -1;
-static int hf_lustre_mdt_rec_rename_rn_suppgid2 = -1;
-static int hf_lustre_mdt_rec_rename_rn_suppgid2_h = -1;
-static int hf_lustre_mdt_rec_rename_rn_fid1 = -1;
-static int hf_lustre_mdt_rec_rename_rn_fid2 = -1;
-static int hf_lustre_mdt_rec_rename_rn_time = -1;
-static int hf_lustre_mdt_rec_rename_rn_padding_1 = -1;
-static int hf_lustre_mdt_rec_rename_rn_padding_2 = -1;
-static int hf_lustre_mdt_rec_rename_rn_padding_3 = -1;
-static int hf_lustre_mdt_rec_rename_rn_padding_4 = -1;
-static int hf_lustre_mdt_rec_rename_rn_bias = -1;
-static int hf_lustre_mdt_rec_rename_rn_mode = -1;
-static int hf_lustre_mdt_rec_rename_rn_padding_5 = -1;
-static int hf_lustre_mdt_rec_rename_rn_padding_6 = -1;
-static int hf_lustre_mdt_rec_rename_rn_padding_7 = -1;
-static int hf_lustre_mdt_rec_rename_rn_padding_8 = -1;
-
-static int hf_lustre_mdt_rec_setxattr = -1 ;
-static int hf_lustre_mdt_rec_setxattr_sx_opcode = -1;
-static int hf_lustre_mdt_rec_setxattr_sx_cap = -1;
-static int hf_lustre_mdt_rec_setxattr_sx_fsuid = -1;
-static int hf_lustre_mdt_rec_setxattr_sx_fsuid_h = -1;
-static int hf_lustre_mdt_rec_setxattr_sx_fsgid = -1;
-static int hf_lustre_mdt_rec_setxattr_sx_fsgid_h = -1;
-static int hf_lustre_mdt_rec_setxattr_sx_suppgid1 = -1;
-static int hf_lustre_mdt_rec_setxattr_sx_suppgid1_h = -1;
-static int hf_lustre_mdt_rec_setxattr_sx_suppgid2 = -1;
-static int hf_lustre_mdt_rec_setxattr_sx_suppgid2_h = -1;
-static int hf_lustre_mdt_rec_setxattr_sx_fid = -1;
-static int hf_lustre_mdt_rec_setxattr_sx_padding_1 = -1;
-static int hf_lustre_mdt_rec_setxattr_sx_padding_2 = -1;
-static int hf_lustre_mdt_rec_setxattr_sx_padding_3 = -1;
-static int hf_lustre_mdt_rec_setxattr_sx_valid = -1;
-static int hf_lustre_mdt_rec_setxattr_sx_time = -1;
-static int hf_lustre_mdt_rec_setxattr_sx_padding_5 = -1;
-static int hf_lustre_mdt_rec_setxattr_sx_padding_6 = -1;
-static int hf_lustre_mdt_rec_setxattr_sx_padding_7 = -1;
-static int hf_lustre_mdt_rec_setxattr_sx_size = -1;
-static int hf_lustre_mdt_rec_setxattr_sx_flags = -1;
-static int hf_lustre_mdt_rec_setxattr_sx_padding_8 = -1;
-static int hf_lustre_mdt_rec_setxattr_sx_padding_9 = -1;
-static int hf_lustre_mdt_rec_setxattr_sx_padding_10 = -1;
-static int hf_lustre_mdt_rec_setxattr_sx_padding_11 = -1;
-
-static int hf_lustre_mdt_getinfo_key = -1;
-static int hf_lustre_mdt_getinfo_vallen = -1;
-static int hf_lustre_mdt_getinfo_data = -1;
-
-static int hf_lustre_close_data = -1;
-static int hf_lustre_close_fid = -1;
-static int hf_lustre_close_data_ver = -1;
-static int hf_lustre_close_reserved = -1;
-
-static int hf_lustre_seq_opc = -1;
-static int hf_lustre_seq_range = -1;
-static int hf_lustre_seq_range_start = -1;
-static int hf_lustre_seq_range_end = -1;
-static int hf_lustre_seq_range_index = -1;
-static int hf_lustre_seq_range_flags = -1;
-
-static int hf_lustre_fld_opc = -1;
-static int hf_lustre_fld_range = -1;
-static int hf_lustre_fld_range_start = -1;
-static int hf_lustre_fld_range_end = -1;
-static int hf_lustre_fld_range_index = -1;
-static int hf_lustre_fld_range_flags = -1;
-
-static int hf_lustre_mdt_ioepoch = -1;
-static int hf_lustre_mdt_ioepoch_handle = -1;
-static int hf_lustre_mdt_ioepoch_ioepoch = -1;
-static int hf_lustre_mdt_ioepoch_flags = -1;
-static int hf_lustre_mdt_ioepoch_padding = -1;
-
-static int hf_lustre_capa = -1;
-static int hf_lustre_capa_fid = -1;
-static int hf_lustre_capa_opc = -1;
-static int hf_lustre_capa_uid = -1;
-static int hf_lustre_capa_gid = -1;
-static int hf_lustre_capa_flags = -1;
-static int hf_lustre_capa_keyid = -1;
-static int hf_lustre_capa_timeout = -1;
-static int hf_lustre_capa_expiry = -1;
-static int hf_lustre_capa_hmac = -1;
-
-static int hf_lustre_acl = -1;
-
-static int hf_lustre_ost_lvb_lvb_size = -1;
-static int hf_lustre_ost_lvb_lvb_mtime = -1;
-static int hf_lustre_ost_lvb_lvb_atime = -1;
-static int hf_lustre_ost_lvb_lvb_ctime = -1;
-static int hf_lustre_ost_lvb_lvb_blocks = -1;
-static int hf_lustre_ost_lvb_lvb_mtime_ns = -1;
-static int hf_lustre_ost_lvb_lvb_atime_ns = -1;
-static int hf_lustre_ost_lvb_lvb_ctime_ns = -1;
-static int hf_lustre_ost_lvb_lvb_padding = -1;
-
-static int hf_lustre_xattrs = -1;
-static int hf_lustre_xattrs_name = -1;
-static int hf_lustre_xattrs_data = -1;
-static int hf_lustre_xattrs_size = -1;
-
-static int hf_lustre_lustre_handle_cookie = -1;
-static int hf_lustre_ptlrpc_body_pb_last_committed = -1;
-static int hf_lustre_ptlrpc_body_pb_version = -1;
-static int hf_lustre_lustre_msg_v1_lm_bufcount = -1;
-static int hf_lustre_obd_ioobj_ioo_id = -1;
-static int hf_lustre_ptlrpc_body_pb_slv = -1;
-static int hf_lustre_ptlrpc_body_pb_pre_version = -1;
-static int hf_lustre_ptlrpc_body_pb_padding = -1;
-static int hf_lustre_ptlrpc_body_pb_jobid = -1;
-static int hf_lustre_lustre_msg_v1_lm_handle = -1;
-static int hf_lustre_ptlrpc_body_pb_timeout = -1;
-static int hf_lustre_obd_statfs_os_bavail = -1;
-static int hf_lustre_obd_statfs_os_bsize = -1;
-static int hf_lustre_lustre_msg_v2_lm_repsize = -1;
-static int hf_lustre_lustre_msg_v1_lm_last_xid = -1;
-static int hf_lustre_ll_fid_f_type = -1;
-static int hf_lustre_lustre_msg_v2_lm_cksum = -1;
-static int hf_lustre_lustre_msg_v2_lm_buflens = -1;
-static int hf_lustre_lustre_msg_v1_lm_status = -1;
-static int hf_lustre_lustre_msg_v1_lm_type = -1;
-static int hf_lustre_niobuf_remote_len = -1;
-static int hf_lustre_ptlrpc_body_pb_op_flags = -1;
-static int hf_lustre_ptlrpc_body_pb_type = -1;
-static int hf_lustre_obd_connect_data_ocd_nllg = -1;
-static int hf_lustre_obd_connect_data_ocd_nllu = -1;
-static int hf_lustre_ll_fid_generation = -1;
-static int hf_lustre_obd_connect_data_ocd_ibits_known = -1;
-static int hf_lustre_lustre_msg_v2_lm_padding_3 = -1;
-static int hf_lustre_ptlrpc_body_pb_flags = -1;
-static int hf_lustre_obd_statfs_os_spare4 = -1;
-static int hf_lustre_obd_connect_data_ocd_group = -1;
-static int hf_lustre_lov_ost_data_v1_l_object_seq = -1;
-static int hf_lustre_obd_connect_data_ocd_brw_size = -1;
-static int hf_lustre_ptlrpc_body_pb_limit = -1;
-static int hf_lustre_obd_statfs_os_maxbytes = -1;
-static int hf_lustre_obd_statfs_os_spare5 = -1;
-static int hf_lustre_lustre_msg_v2_lm_flags = -1;
-static int hf_lustre_obd_statfs_os_ffree = -1;
-static int hf_lustre_obd_statfs_os_files = -1;
-static int hf_lustre_lustre_msg_v1_lm_flags = -1;
-static int hf_lustre_lustre_msg_v1_lm_last_committed = -1;
-static int hf_lustre_obd_statfs_os_spare9 = -1;
-static int hf_lustre_obd_connect_data_ocd_index = -1;
-static int hf_lustre_opnum = -1;
-static int hf_lustre_lustre_msg_v1_lm_buflens = -1;
-static int hf_lustre_obd_statfs_os_spare1 = -1;
-static int hf_lustre_obd_statfs_os_spare8 = -1;
-static int hf_lustre_lustre_msg_v1_lm_conn_cnt = -1;
-static int hf_lustre_ptlrpc_body_pb_transno = -1;
-static int hf_lustre_ptlrpc_body_pb_service_time = -1;
-static int hf_lustre_ptlrpc_body_pb_conn_cnt = -1;
-static int hf_lustre_ptlrpc_body_pb_opc = -1;
-static int hf_lustre_obd_connect_data_ocd_connect_flags = -1;
-static int hf_lustre_lov_ost_data_v1_l_object_id = -1;
-static int hf_lustre_lov_ost_data_v1_l_ost_gen = -1;
-static int hf_lustre_obd_statfs_os_bfree = -1;
-static int hf_lustre_obd_connect_data_ocd_version = -1;
-static int hf_lustre_obd_statfs_os_namelen = -1;
-static int hf_lustre_obd_statfs_os_blocks = -1;
-static int hf_lustre_lustre_msg_v2_lm_secflvr = -1;
-static int hf_lustre_lustre_msg_v1_lm_transno = -1;
-static int hf_lustre_lustre_msg_v1_lm_opc = -1;
-static int hf_lustre_obd_connect_data_ocd_grant = -1;
-static int hf_lustre_obd_ioobj_ioo_bufcnt = -1;
-static int hf_lustre_lustre_msg_v1_lm_version = -1;
-static int hf_lustre_obd_statfs_os_spare7 = -1;
-static int hf_lustre_obd_statfs_os_fsid = -1;
-static int hf_lustre_obd_connect_data_ocd_cksum_types = -1;
-static int hf_lustre_obd_connect_data_ocd_max_easize = -1;
-static int hf_lustre_obd_connect_data_ocd_instance = -1;
-static int hf_lustre_obd_connect_data_ocd_maxbytes = -1;
-static int hf_lustre_obd_connect_data_ocd_maxmodrpcs = -1;
-static int hf_lustre_obd_statfs_os_type = -1;
-static int hf_lustre_obd_statfs_os_spare6 = -1;
-static int hf_lustre_obd_statfs_os_state = -1;
-static int hf_lustre_obd_statfs_os_spare3 = -1;
-static int hf_lustre_lustre_msg_v2_lm_magic = -1;
-static int hf_lustre_ptlrpc_body_pb_last_seen = -1;
-static int hf_lustre_obd_ioobj_ioo_max_brw = -1;
-static int hf_lustre_ptlrpc_body_pb_last_xid = -1;
-static int hf_lustre_ptlrpc_body_pb_status = -1;
-static int hf_lustre_niobuf_remote_flags = -1;
-static int hf_lustre_ll_fid_id = -1;
-static int hf_lustre_lustre_msg_v2_lm_padding_2 = -1;
-static int hf_lustre_lov_ost_data_v1_l_ost_idx = -1;
-static int hf_lustre_obd_ioobj_ioo_seq = -1;
-static int hf_lustre_niobuf_remote_offset=-1;
-static int hf_lustre_obd_statfs_os_spare2 = -1;
-static int hf_lustre_lustre_msg_v2_lm_bufcount = -1;
-static int hf_lustre_ptlrpc_body_pb_handle = -1;
-static int hf_lustre_obd_connect_data_ocd_transno = -1;
-static int hf_lustre_lustre_msg_v1_lm_magic = -1;
-static int hf_lustre_llog_unlink_rec_lur_tail = -1;
-static int hf_lustre_llog_size_change_rec_lsc_io_epoch = -1;
-static int hf_lustre_mgs_target_info_mti_flags = -1;
-static int hf_lustre_ldlm_reply_lock_policy_res1 = -1;
-static int hf_lustre_llogd_body_lgd_len = -1;
-static int hf_lustre_qunit_data_old_qd_id = -1;
-static int hf_lustre_llog_logid_rec_padding1 = -1;
-static int hf_lustre_quota_adjust_qunit_padding1 = -1;
-static int hf_lustre_llog_size_change_rec_lsc_fid = -1;
-static int hf_lustre_llog_rec_hdr_padding = -1;
-static int hf_lustre_obdo_o_nlink = -1;
-static int hf_lustre_ldlm_extent_gid = -1;
-static int hf_lustre_obdo_o_uid = -1;
-static int hf_lustre_obdo_o_valid = -1;
-static int hf_lustre_ldlm_reply_lock_flags = -1;
-static int hf_lustre_obdo_o_misc = -1;
-
-static int hf_lustre_ldlm_request_lock_handle = -1;
-static int hf_lustre_llog_logid_lgl_oid = -1;
-static int hf_lustre_ldlm_inodebits_bits = -1;
-static int hf_lustre_llog_log_hdr_llh_count = -1;
-static int hf_lustre_llog_gen_rec_lgr_tail = -1;
-static int hf_lustre_llog_catid_lci_padding3 = -1;
-static int hf_lustre_qunit_data_qd_qunit = -1;
-static int hf_lustre_llog_setattr_rec_padding = -1;
-static int hf_lustre_llog_cookie_lgc_lgl = -1;
-static int hf_lustre_obd_quotactl_qc_dqinfo = -1;
-static int hf_lustre_llog_log_hdr_llh_bitmap = -1;
-static int hf_lustre_obd_quotactl_qc_stat = -1;
-static int hf_lustre_qunit_data_old2_qd_id = -1;
-static int hf_lustre_llog_logid_rec_padding2 = -1;
-static int hf_lustre_llog_logid_rec_padding5 = -1;
-static int hf_lustre_ldlm_intent_opc = -1;
-static int hf_lustre_llog_rec_hdr_lrh_type = -1;
-static int hf_lustre_llog_rec_hdr_lrh_len = -1;
-static int hf_lustre_llog_setattr_rec_lsr_uid = -1;
-static int hf_lustre_lov_desc_ld_padding_1 = -1;
-static int hf_lustre_obdo_o_padding_4 = -1;
-static int hf_lustre_mgs_target_info_padding = -1;
-static int hf_lustre_obd_quotactl_qc_dqblk = -1;
-static int hf_lustre_llogd_conn_body_lgdc_gen = -1;
-static int hf_lustre_llog_log_hdr_llh_tail = -1;
-static int hf_lustre_obdo_o_size = -1;
-static int hf_lustre_ldlm_extent_start = -1;
-static int hf_lustre_llog_size_change_rec_lsc_hdr = -1;
-static int hf_lustre_llog_logid_lgl_oseq = -1;
-static int hf_lustre_llog_cookie_lgc_padding = -1;
-static int hf_lustre_qunit_data_old_qd_type = -1;
-static int hf_lustre_ldlm_flock_blocking_export = -1;
-static int hf_lustre_lov_desc_ld_pattern = -1;
-static int hf_lustre_qunit_data_qd_id = -1;
-static int hf_lustre_mgs_target_info_mti_fsname = -1;
-static int hf_lustre_ldlm_request_lock_flags = -1;
-static int hf_lustre_obdo_o_mode = -1;
-static int hf_lustre_mgs_target_info_mti_svname = -1;
-static int hf_lustre_llogd_body_lgd_logid = -1;
-static int hf_lustre_llog_log_hdr_llh_size = -1;
-static int hf_lustre_obdo_o_handle = -1;
-static int hf_lustre_obdo_o_atime = -1;
-static int hf_lustre_quota_adjust_qunit_qaq_id = -1;
-static int hf_lustre_ldlm_lock_desc_l_policy_data = -1;
-static int hf_lustre_obd_quotactl_qc_cmd = -1;
-static int hf_lustre_qunit_data_padding = -1;
-static int hf_lustre_quota_adjust_qunit_qaq_flags = -1;
-static int hf_lustre_ldlm_lock_desc_l_granted_mode = -1;
-static int hf_lustre_obdo_o_seq = -1;
-static int hf_lustre_obdo_o_gid = -1;
-static int hf_lustre_llog_catid_lci_logid = -1;
-static int hf_lustre_llog_rec_tail_lrt_index = -1;
-static int hf_lustre_lov_desc_ld_default_stripe_count = -1;
-static int hf_lustre_ldlm_resource_desc_lr_padding = -1;
-static int hf_lustre_cfg_marker_cm_vers = -1;
-static int hf_lustre_llog_unlink_rec_lur_hdr = -1;
-static int hf_lustre_llogd_body_lgd_index = -1;
-static int hf_lustre_cfg_marker_cm_tgtname = -1;
-static int hf_lustre_llog_setattr_rec_lsr_ogen = -1;
-static int hf_lustre_llog_logid_rec_lid_hdr = -1;
-static int hf_lustre_obdo_o_ioepoch = -1;
-static int hf_lustre_ost_body_oa = -1;
-static int hf_lustre_llog_logid_rec_padding3 = -1;
-static int hf_lustre_llog_log_hdr_llh_flags = -1;
-static int hf_lustre_llog_setattr_rec_lsr_oid = -1;
-static int hf_lustre_llog_size_change_rec_padding = -1;
-static int hf_lustre_mgs_target_info_mti_config_ver = -1;
-static int hf_lustre_cfg_marker_cm_createtime = -1;
-static int hf_lustre_qunit_data_old_qd_count = -1;
-static int hf_lustre_llog_catid_lci_padding1 = -1;
-static int hf_lustre_lov_desc_ld_active_tgt_count = -1;
-static int hf_lustre_obdo_o_lcookie = -1;
-static int hf_lustre_llog_gen_rec_lgr_gen = -1;
-static int hf_lustre_obdo_o_id = -1;
-static int hf_lustre_mgs_target_info_mti_uuid = -1;
-static int hf_lustre_llog_rec_hdr_lrh_index = -1;
-static int hf_lustre_llog_setattr_rec_lsr_hdr = -1;
-static int hf_lustre_mgs_target_info_mti_stripe_index = -1;
-static int hf_lustre_llog_gen_conn_cnt = -1;
-static int hf_lustre_obdo_o_padding_6 = -1;
-static int hf_lustre_llog_cookie_lgc_index = -1;
-static int hf_lustre_lov_desc_ld_uuid = -1;
-static int hf_lustre_ldlm_reply_lock_desc = -1;
-static int hf_lustre_lov_desc_ld_padding_0 = -1;
-static int hf_lustre_llog_unlink_rec_lur_ogen = -1;
-static int hf_lustre_cfg_marker_cm_flags = -1;
-static int hf_lustre_obdo_o_padding_3 = -1;
-static int hf_lustre_ldlm_request_lock_desc = -1;
-static int hf_lustre_obdo_o_flags = -1;
-static int hf_lustre_mgs_target_info_mti_params = -1;
-static int hf_lustre_llog_logid_lgl_ogen = -1;
-static int hf_lustre_cfg_marker_cm_comment = -1;
-static int hf_lustre_llog_unlink_rec_lur_oid = -1;
-static int hf_lustre_qunit_data_qd_count = -1;
-static int hf_lustre_obdo_o_mtime = -1;
-static int hf_lustre_obdo_o_blksize = -1;
-static int hf_lustre_ldlm_res_id_name = -1;
-static int hf_lustre_ldlm_reply_lock_handle = -1;
-static int hf_lustre_llogd_body_lgd_saved_index = -1;
-static int hf_lustre_qunit_data_old_qd_isblk = -1;
-static int hf_lustre_obdo_o_blocks = -1;
-static int hf_lustre_lov_desc_ld_padding_2 = -1;
-static int hf_lustre_llog_logid_rec_lid_tail = -1;
-static int hf_lustre_obdo_o_grant = -1;
-static int hf_lustre_obdo_o_uid_h = -1;
-static int hf_lustre_obdo_o_gid_h = -1;
-static int hf_lustre_quota_adjust_qunit_qaq_iunit_sz = -1;
-static int hf_lustre_llog_unlink_rec_padding = -1;
-static int hf_lustre_ldlm_lock_desc_l_req_mode = -1;
-static int hf_lustre_ldlm_extent_end = -1;
-static int hf_lustre_llog_gen_rec_lgr_hdr = -1;
-static int hf_lustre_llogd_body_lgd_llh_flags = -1;
-static int hf_lustre_llog_log_hdr_llh_cat_idx = -1;
-static int hf_lustre_llog_log_hdr_llh_bitmap_offset=-1;
-static int hf_lustre_ldlm_reply_lock_padding = -1;
-static int hf_lustre_obd_quotactl_qc_id = -1;
-static int hf_lustre_llog_logid_rec_padding4 = -1;
-static int hf_lustre_llog_setattr_rec_lsr_gid = -1;
-static int hf_lustre_obd_quotactl_qc_type = -1;
-static int hf_lustre_cfg_marker_padding = -1;
-static int hf_lustre_mgs_target_info_mti_nids = -1;
-static int hf_lustre_obdo_o_stripe_idx = -1;
-static int hf_lustre_llogd_conn_body_lgdc_logid = -1;
-static int hf_lustre_ldlm_flock_blocking_pid = -1;
-static int hf_lustre_lov_desc_ld_tgt_count = -1;
-static int hf_lustre_llogd_body_lgd_cur_offset=-1;
-static int hf_lustre_qunit_data_old2_qd_count = -1;
-static int hf_lustre_qunit_data_old2_qd_flags = -1;
-static int hf_lustre_ldlm_flock_start = -1;
-static int hf_lustre_quota_adjust_qunit_qaq_bunit_sz = -1;
-static int hf_lustre_ldlm_flock_pid = -1;
-static int hf_lustre_lov_desc_ld_default_stripe_size = -1;
-static int hf_lustre_llog_log_hdr_llh_tgtuuid = -1;
-static int hf_lustre_cfg_marker_cm_step = -1;
-static int hf_lustre_mgs_send_param_mgs_param = -1;
-static int hf_lustre_lov_desc_ld_default_stripe_offset=-1;
-static int hf_lustre_ldlm_resource_desc_lr_name = -1;
-static int hf_lustre_llog_rec_tail_lrt_len = -1;
-static int hf_lustre_llog_log_hdr_llh_timestamp = -1;
-static int hf_lustre_llog_catid_lci_padding2 = -1;
-static int hf_lustre_llogd_conn_body_lgdc_ctxt_idx = -1;
-static int hf_lustre_cfg_marker_cm_canceltime = -1;
-static int hf_lustre_mgs_target_info_mti_lustre_ver = -1;
-static int hf_lustre_obdo_o_parent_ver = -1;
-static int hf_lustre_qunit_data_qd_flags = -1;
-static int hf_lustre_llog_logid_rec_lid_id = -1;
-static int hf_lustre_obdo_o_parent_oid = -1;
-static int hf_lustre_llog_gen_mnt_cnt = -1;
-static int hf_lustre_llog_size_change_rec_lsc_tail = -1;
-static int hf_lustre_obdo_o_padding_5 = -1;
-static int hf_lustre_ldlm_lock_desc_l_resource = -1;
-static int hf_lustre_obdo_o_parent_seq = -1;
-static int hf_lustre_ldlm_request_lock_count = -1;
-static int hf_lustre_ldlm_flock_end = -1;
-static int hf_lustre_mgs_target_info_mti_nid_count = -1;
-static int hf_lustre_obdo_o_ctime = -1;
-static int hf_lustre_ldlm_reply_lock_policy_res2 = -1;
-static int hf_lustre_llogd_body_lgd_ctxt_idx = -1;
-static int hf_lustre_lov_desc_ld_qos_maxage = -1;
-static int hf_lustre_ldlm_resource_desc_lr_type = -1;
-static int hf_lustre_llog_setattr_rec_lsr_tail = -1;
-static int hf_lustre_llog_cookie_lgc_subsys = -1;
-static int hf_lustre_llog_log_hdr_llh_hdr = -1;
-static int hf_lustre_llog_log_hdr_llh_reserved = -1;
-
-/* Header field declarations for field from lustre_user.h*/
-static int hf_lustre_obd_dqinfo_dqi_valid = -1;
-static int hf_lustre_obd_dqblk_dqb_isoftlimit = -1;
-static int hf_lustre_obd_dqblk_dqb_bhardlimit = -1;
-static int hf_lustre_obd_dqblk_dqb_curspace = -1;
-static int hf_lustre_obd_dqblk_dqb_itime = -1;
-static int hf_lustre_obd_dqblk_dqb_valid = -1;
-static int hf_lustre_obd_dqinfo_dqi_igrace = -1;
-static int hf_lustre_obd_dqinfo_dqi_bgrace = -1;
-static int hf_lustre_obd_dqblk_padding = -1;
-static int hf_lustre_obd_dqblk_dqb_curinodes = -1;
-static int hf_lustre_obd_dqblk_dqb_bsoftlimit = -1;
-static int hf_lustre_obd_dqinfo_dqi_flags = -1;
-static int hf_lustre_obd_dqblk_dqb_btime = -1;
-static int hf_lustre_obd_dqblk_dqb_ihardlimit = -1;
-static int hf_lustre_ldlm_intent_opc_open     = -1 ;
-static int hf_lustre_ldlm_intent_opc_creat    = -1;
-static int hf_lustre_ldlm_intent_opc_readdir  = -1;
-static int hf_lustre_ldlm_intent_opc_getattr  = -1;
-static int hf_lustre_ldlm_intent_opc_lookup   = -1;
-static int hf_lustre_ldlm_intent_opc_unlink   = -1;
-static int hf_lustre_ldlm_intent_opc_trunc    = -1;
-static int hf_lustre_ldlm_intent_opc_getxattr = -1;
-static int hf_lustre_ldlm_intent_opc_exec     = -1;
-static int hf_lustre_ldlm_intent_opc_pin      = -1;
-static int hf_lustre_ldlm_intent_opc_layout   = -1;
-static int hf_lustre_ldlm_intent_opc_q_dqacq  = -1;
-static int hf_lustre_ldlm_intent_opc_q_conn   = -1;
-static int hf_lustre_ldlm_intent_opc_setxattr = -1;
-static int hf_lustre_llog_hdr_llh_flag_zap_when_empty = -1;
-static int hf_lustre_llog_hdr_llh_flag_is_cat = -1;
-static int hf_lustre_llog_hdr_llh_flag_is_play = -1;
-static int hf_lustre_lu_ladvise = -1;
-static int hf_lustre_lu_ladvise_lla_start = -1;
-static int hf_lustre_lu_ladvise_lla_end = -1;
-static int hf_lustre_lu_ladvise_lla_advice = -1;
-static int hf_lustre_lu_ladvise_lla_padding = -1;
-
-static int hf_lustre_ldlm_key = -1;
-static int hf_lustre_ldlm_value = -1;
-
-static int hf_lustre_hsm_request = -1;
-static int hf_lustre_hsm_req_action = -1;
-static int hf_lustre_hsm_req_archive_id = -1;
-static int hf_lustre_hsm_req_flags = -1;
-static int hf_lustre_hsm_req_itemcount = -1;
-static int hf_lustre_hsm_req_data_len = -1;
-
-static int hf_lustre_hsm_user_item = -1;
-static int hf_lustre_hsm_user_item_fid = -1;
-static int hf_lustre_hsm_user_item_extent = -1;
-
-static int hf_lustre_hsm_extent = -1;
-static int hf_lustre_hsm_extent_offset = -1;
-static int hf_lustre_hsm_extent_length = -1;
-
-static int hf_lustre_hsm_progress = -1;
-static int hf_lustre_hsm_prog_fid = -1;
-static int hf_lustre_hsm_prog_cookie = -1;
-static int hf_lustre_hsm_prog_extent = -1;
-static int hf_lustre_hsm_prog_flags = -1;
-static int hf_lustre_hsm_prog_errval = -1;
-static int hf_lustre_hsm_prog_data_ver = -1;
-
-static int hf_lustre_hsm_state_get = -1;
-static int hf_lustre_hsm_us_states = -1;
-static int hf_lustre_hsm_us_archive_id = -1;
-static int hf_lustre_hsm_us_in_prog_state = -1;
-static int hf_lustre_hsm_us_in_prog_action = -1;
-static int hf_lustre_hsm_us_in_prog_location = -1;
-static int hf_lustre_hsm_us_ext_info = -1;
-
-/* Quota Body */
-static int hf_lustre_qb = -1;
-static int hf_lustre_qb_fid = -1;
-static int hf_lustre_qb_id = -1;
-static int hf_lustre_qb_flags = -1;
-static int hf_lustre_qb_padding = -1;
-static int hf_lustre_qb_count = -1;
-static int hf_lustre_qb_usage = -1;
-static int hf_lustre_qb_slv_ver = -1;
-static int hf_lustre_qb_lockh = -1;
-static int hf_lustre_qb_glb_lockh = -1;
-
-static int hf_lustre_qid_fid = -1;
-static int hf_lustre_qid_uid = -1;
-static int hf_lustre_qid_gid = -1;
-
-/* Layout Intent */
-static int hf_lustre_layout_intent = -1;
-static int hf_lustre_layout_intent_opc = -1;
-static int hf_lustre_layout_intent_flags = -1;
-static int hf_lustre_layout_intent_start = -1;
-static int hf_lustre_layout_intent_end = -1;
-
-/* mds md v1 and v3 */
-static int hf_lustre_lov_mds_md_lmm_magic = -1;
-static int hf_lustre_lov_mds_md_lmm_pattern = -1;
-static int hf_lustre_lov_mds_md_lmm_object_id = -1;    /* v1 only */
-static int hf_lustre_lov_mds_md_lmm_oi = -1;           /* v3 only */
-static int hf_lustre_lov_mds_md_lmm_object_seq = -1;   /* v1 only */
-static int hf_lustre_lov_mds_md_lmm_stripe_size = -1;
-static int hf_lustre_lov_mds_md_lmm_stripe_count = -1;
-static int hf_lustre_lov_mds_md_lmm_layout_gen = -1;
-static int hf_lustre_lov_mds_md_lmm_pool_name = -1;    /* v3 only */
-static int hf_lustre_lov_mds_md_lmm_objects = -1;
-
-/* struct ost_id */
-static int hf_lustre_ost_id_oi_id = -1;
-static int hf_lustre_ost_id_oi_seq = -1;
-
-static int hf_lustre_generic_data = -1;
-/* --------------------------------------------------------------------*/
-
-
-/* proto declaration */
-static gint proto_lustre = -1;
-
-typedef int (dissect_func)(
-    tvbuff_t *tvb, gint offset, packet_info *pinfo _U_, proto_tree *tree,
-    int hfindex);
-
-static dissect_func dissect_uint64, dissect_uint32, dissect_uint16, dissect_uint8;
-
-#define  WSHARK_HEAD
-#include "lustre_dlm_flags_wshark.c"
-#undef   WSHARK_HEAD
-
-static int ldlm_opcode_process(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree * tree _U_, guint64 intent_opc _U_) ;
-static int add_extra_padding(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree * tree _U_) ;
-
-
-/* ======================================================================== */
-/*the value_string*/
-const value_string lustre_ldlm_opcode[] = {
-  { IT_OPEN    ,   "IT_OPEN    "},
-  { IT_CREAT   ,   "IT_CREAT   "},
-  { IT_READDIR ,   "IT_READDIR "},
-  { IT_GETATTR ,   "IT_GETATTR "},
-  { IT_LOOKUP  ,   "IT_LOOKUP  "},
-  { IT_UNLINK  ,   "IT_UNLINK  "},
-  { IT_GETXATTR,   "IT_GETXATTR"},
-  { IT_EXEC    ,   "IT_EXEC    "},
-  { IT_PIN     ,   "IT_PIN     "},
-  { 0, NULL }
-};
-
-const value_string lustre_lov_magic[] = {
-  { LOV_MAGIC_V1,   "LOV_MAGIC_V1" },
-  { LOV_MAGIC_V3,   "LOV_MAGIC_V3" },
-  {0, NULL}
-};
-
-const value_string lustre_llog_op_type[] = {
-  {LLOG_PAD_MAGIC   ,"LLOG_PAD_MAGIC  "},
-  {OST_SZ_REC       ,"OST_SZ_REC      "},
-  {OST_RAID1_REC    ,"OST_RAID1_REC   "},
-  {MDS_UNLINK_REC   ,"MDS_UNLINK_REC  "},
-  {MDS_SETATTR_REC  ,"MDS_SETATTR_REC "},
-  {OBD_CFG_REC      ,"OBD_CFG_REC     "},
-  {PTL_CFG_REC      ,"PTL_CFG_REC     "},
-  {LLOG_GEN_REC     ,"LLOG_GEN_REC    "},
-  {LLOG_JOIN_REC    ,"LLOG_JOIN_REC   "},
-  {LLOG_HDR_MAGIC   ,"LLOG_HDR_MAGIC  "},
-  {LLOG_LOGID_MAGIC ,"LLOG_LOGID_MAGIC"},
-  { 0, NULL }
-};
-
-const value_string lustre_llog_hdr_llh_flags[]= {
-  {LLOG_F_ZAP_WHEN_EMPTY , "LLOhdr_llh_G_F_ZAP_WHEN_EMPTY"},
-  {LLOG_F_IS_CAT         , "LLOhdr_llh_G_F_IS_CAT"},
-  {LLOG_F_IS_PLAIN       , "LLOG_F_IS_PLAIN"},
-  { 0, NULL }
-};
-
-const value_string lustre_mds_flags_vals[] = {
-  {0x00000008, "LUSTRE_SYNC_FL        "},   /* Synchronous updates */
-  {0x00000010, "LUSTRE_IMMUTABLE_FL   "},   /* Immutable file */
-  {0x00000020, "LUSTRE_APPEND_FL      "},   /* writes to file may only append */
-  {0x00000040, "LUSTRE_NODUMP_FL      "},   /* do not dump file */
-  {0x00000080, "LUSTRE_NOATIME_FL     "},   /* do not update atime */
-  {0x00001000, "LUSTRE_INDEX_FL       "},   /* hash-indexed directory */
-  {0x00010000, "LUSTRE_DIRSYNC_FL     "},   /* dirsync behaviour (dir only) */
-  {0x00020000, "LUSTRE_TOPDIR_FL      "},   /* Top of directory hierarchies */
-  {0x00100000, "LUSTRE_DIRECTIO_FL    "},   /* Use direct i/o */
-  {0x10000000, "LUSTRE_INLINE_DATA_FL "},   /* Inode has inline data. */
-  { 0, NULL }
-};
-
-const value_string lustre_mgs_config_body_types[] = {
-  { 0, "CONFIG" },
-  { 1, "SPTLRPC" },
-  { 2, "RECOVER" },
-  { 3, "MAX" },
-  { 0, NULL }
-};
-
-const value_string lustre_LMTypes[] = {
-  { PTL_RPC_MSG_REQUEST, "request"},
-  { PTL_RPC_MSG_ERR , "error"},
-  { PTL_RPC_MSG_REPLY , "reply"},
-  { 0, NULL }
-};
-
-const value_string lustre_mds_reint_op_vals[] = {
-  { REINT_SETATTR, "REINT_SETATTR" },
-  { REINT_CREATE, "REINT_CREATE" },
-  { REINT_LINK, "REINT_LINK" },
-  { REINT_UNLINK, "REINT_UNLINK" },
-  { REINT_RENAME, "REINT_RENAME" },
-  { REINT_OPEN, "REINT_OPEN" },
-  { REINT_SETXATTR, "REINT_SETXATTR" },
-  { REINT_RMENTRY, "REINT_RMENTRY" },
-  { REINT_MIGRATE, "REINT_MIGRATE" },
-  { 0, NULL }
-};
-const value_string lustre_op_codes[] = {
-  /*OST Opcodes*/
-  {0 , "OST_REPLY"},
-  {1 , "OST_GETATTR"},
-  {2 , "OST_SETATTR"},
-  {3 , "OST_READ"},
-  {4 , "OST_WRITE"},
-  {5 , "OST_CREATE"},
-  {6 , "OST_DESTROY"},
-  {7 , "OST_GET_INFO"},
-  {8 , "OST_CONNECT"},
-  {9 , "OST_DISCONNECT"},
-  {10 , "OST_PUNCH"},
-  {11 , "OST_OPEN"},
-  {12 , "OST_CLOSE"},
-  {13 , "OST_STATFS"},
-  {14 , "OST_SAN_READ(deprecated)"},
-  {15 , "OST_SAN_WRITE(deprecated)"},
-  {16 , "OST_SYNC"},
-  {17 , "OST_SET_INFO"},
-  {18 , "OST_QUOTACHECK"},
-  {19 , "OST_QUOTACTL"},
-  {20 , "OST_QUOTA_ADJUST_QUNIT"},
-  {21 , "OST_LADVISE"},
-  {22 , "OST_LAST_OPC"},
-  /*MDS Opcodes*/
-  {33 , "MDS_GETATTR"},
-  {34 , "MDS_GETATTR_NAME"},
-  {35 , "MDS_CLOSE"},
-  {36 , "MDS_REINT"},
-  {37 , "MDS_READPAGE"},
-  {38 , "MDS_CONNECT"},
-  {39 , "MDS_DISCONNECT"},
-  {40 , "MDS_GET_ROOT"},
-  {41 , "MDS_STATFS"},
-  {42 , "MDS_PIN"},
-  {43 , "MDS_UNPIN"},
-  {44 , "MDS_SYNC"},
-  {45 , "MDS_DONE_WRITING"},
-  {46 , "MDS_SET_INFO"},
-  {47 , "MDS_QUOTACHECK"},
-  {48 , "MDS_QUOTACTL"},
-  {49 , "MDS_GETXATTR"},
-  {50 , "MDS_SETXATTR"},
-  {51 , "MDS_WRITEPAGE"},
-  {52 , "MDS_IS_SUBDIR"},
-  {53 , "MDS_GET_INFO"},
-  {54 , "MDS_HSM_STATE_GET"},
-  {55 , "MDS_HSM_STATE_SET"},
-  {56 , "MDS_HSM_ACTION"},
-  {57 , "MDS_HSM_PROGRESS"},
-  {58 , "MDS_HSM_REQUEST"},
-  {59 , "MDS_HSM_CT_REGISTER"},
-  {60 , "MDS_HSM_CT_UNREGISTER"},
-  {61 , "MDS_SWAP_LAYOUTS"},
-  {62 , "MDS_LAST_OPC"},
-  /*LDLM Opcodes*/
-  {101 , "LDLM_ENQUEUE"},
-  {102 , "LDLM_CONVERT"},
-  {103 , "LDLM_CANCEL"},
-  {104 , "LDLM_BL_CALLBACK"},
-  {105 , "LDLM_CP_CALLBACK"},
-  {106 , "LDLM_GL_CALLBACK"},
-  {107 , "LDLM_SET_INFO"},
-  {108 , "LDLM_LAST_OPC"},
-  /*MGS Opcodes*/
-  {250 , "MGS_CONNECT"},
-  {251 , "MGS_DISCONNECT"},
-  {252 , "MGS_EXCEPTION"},
-  {253 , "MGS_TARGET_REG"},
-  {254 , "MGS_TARGET_DEL"},
-  {255 , "MGS_SET_INFO"},
-  {256 , "MGS_CONFIG_READ"},
-  {257 , "MGS_LAST_OPC"},
-  /*OBD Opcodes*/
-  {400 , "OBD_PING"},
-  {401 , "OBD_LOG_CANCEL"},
-  {402 , "OBD_QC_CALLBACK"},
-  {403 , "OBD_LAST_OPC"},
-  /* LLOG opcodes */
-  { 501, "LLOG_ORIGIN_HANDLE_CREATE"},
-  { 502, "LLOG_ORIGIN_HANDLE_NEXT_BLOCK"},
-  { 503, "LLOG_ORIGIN_HANDLE_READ_HEADER"},
-  { 504, "LLOG_ORIGIN_HANDLE_WRITE_REC"},
-  { 505, "LLOG_ORIGIN_HANDLE_CLOSE"},
-  { 506, "LLOG_ORIGIN_CONNECT"},
-  { 507, "LLOG_CATINFO"},
-  { 508, "LLOG_ORIGIN_HANDLE_PREV_BLOCK"},
-  { 509, "LLOG_ORIGIN_HANDLE_DESTROY"},
-  /* SEQ RPC opcodes */
-  { 700, "SEQ_QUERY"},
-  { 701, "SEQ_LAST_OPC"},
-  /* FLD RPC opcodes */
-  { 900, "FLD_QUERY"},
-  { 901, "FLD_LAST_OPC"},
-  { 0, NULL }
-};
-
-/* detailled version the information came from : http://wiki.lustre.org/images/e/e5/LustreInternals_Architecture.pdf */
-const value_string lustre_ldlm_mode_vals[] = {
-  { LCK_MINMODE, "MINMODE" },
-  { LCK_EX, "Exclusive" },
-  { LCK_PW, "Protected Write" },
-  { LCK_PR, "Protected Read" },
-  { LCK_CW, "Concurrent Write" },
-  { LCK_CR, "Concurrent Read" },
-  { LCK_NL, "Null" },
-  { LCK_GROUP, "GROUP" },
-  { 0, NULL }
-};
-
-const value_string lustre_ldlm_type_vals[] = {
-  { LDLM_PLAIN, "LDLM_PLAIN" },
-  { LDLM_EXTENT,"LDLM_EXTENT" },
-  { LDLM_FLOCK, "LDLM_FLOCK" },
-  { LDLM_IBITS, "LDLM_IBITS" },
-  { 0, NULL }
-};
-
-
-const value_string lustre_llog_cmd_t_vals[] = {
-  { LLOG_ORIGIN_HANDLE_CREATE, "LLOG_ORIGIN_HANDLE_CREATE" },
-  { LLOG_ORIGIN_HANDLE_NEXT_BLOCK, "LLOG_ORIGIN_HANDLE_NEXT_BLOCK" },
-  { LLOG_ORIGIN_HANDLE_READ_HEADER, "LLOG_ORIGIN_HANDLE_READ_HEADER" },
-  { LLOG_ORIGIN_HANDLE_WRITE_REC, "LLOG_ORIGIN_HANDLE_WRITE_REC" },
-  { LLOG_ORIGIN_HANDLE_CLOSE, "LLOG_ORIGIN_HANDLE_CLOSE" },
-  { LLOG_ORIGIN_CONNECT, "LLOG_ORIGIN_CONNECT" },
-  { LLOG_CATINFO, "LLOG_CATINFO" },
-  { LLOG_ORIGIN_HANDLE_PREV_BLOCK, "LLOG_ORIGIN_HANDLE_PREV_BLOCK" },
-  { LLOG_ORIGIN_HANDLE_DESTROY, "LLOG_ORIGIN_HANDLE_DESTROY" },
-  { 0, NULL }
-};
-
-/* from lustre_user.h */
-enum hsm_user_action {
-        HUA_NONE    =  1, /* no action (noop) */
-        HUA_ARCHIVE = 10, /* copy to hsm */
-        HUA_RESTORE = 11, /* prestage */
-        HUA_RELEASE = 12, /* drop ost objects */
-        HUA_REMOVE  = 13, /* remove from archive */
-        HUA_CANCEL  = 14  /* cancel a request */
-};
-const value_string lustre_hsm_user_action_t_vals[] = {
-  { HUA_NONE,          "NOOP" },
-  { HUA_ARCHIVE,       "ARCHIVE" },
-  { HUA_RESTORE,       "RESTORE" },
-  { HUA_RELEASE,       "RELEASE" },
-  { HUA_REMOVE,                "REMOVE" },
-  { HUA_CANCEL,                "CANCEL" },
-};
-
-enum hsm_states {
-       HS_EXISTS       = 0x00000001,
-       HS_DIRTY        = 0x00000002,
-       HS_RELEASED     = 0x00000004,
-       HS_ARCHIVED     = 0x00000008,
-       HS_NORELEASE    = 0x00000010,
-       HS_NOARCHIVE    = 0x00000020,
-       HS_LOST         = 0x00000040,
-};
-const value_string lustre_hsm_states_t_vals[] = {
-  { HS_EXISTS,         "EXISTS" },
-  { HS_DIRTY,          "DIRTY" },
-  { HS_RELEASED,       "RELEASED" },
-  { HS_ARCHIVED,       "ARCHIVED" },
-  { HS_NORELEASE,      "NORELEASED" },
-  { HS_NOARCHIVE,      "NOARCHIVED" },
-  { HS_LOST,           "LOST" },
-};
-
-enum hsm_progress_states {
-       HPS_WAITING     = 1,
-       HPS_RUNNING     = 2,
-       HPS_DONE        = 3,
-};
-const value_string lustre_hsm_progress_state_t_vals[] = {
-  { HPS_WAITING,       "WAITING" },
-  { HPS_RUNNING,       "RUNNING" },
-  { HPS_DONE,          "DONE" },
-};
-
-#ifndef ENABLE_STATIC
-const gchar version[] = VERSION;
-
-/* Start the functions we need for the plugin stuff */
-
-void
-plugin_register(void)
-{
-       extern void proto_register_dcerpc_lustre(void);
-
-       proto_register_dcerpc_lustre();
-}
-
-void
-plugin_reg_handoff(void)
-{
-       extern void proto_reg_handoff_lustre(void);
-
-       proto_reg_handoff_lustre();
-}
-#endif
-
-
-/* ------------------------------------------------------------------- */
-/*                display  functions                                   */
-/* ------------------------------------------------------------------- */
-/* display str in left corner and in COL */
-/* @gint col :  the col where we add the information */
-static void display_info_str(proto_item *pi, column_info *cinfo, gint col,
-                            const gchar *str)
-{
-       if (NULL != pi)
-               proto_item_append_text(pi, str);
-
-       if (NULL != cinfo)
-               col_append_str(cinfo, col, str);
-}
-
-/*
- * Need to be (re)written
- */
-static void display_info_fstr(proto_item *pi, column_info *cinfo, gint col,
-                             const char *format, const gchar *str)
-{
-       if (NULL != pi)
-               proto_item_append_text(pi, format, str);
-
-       if (NULL != cinfo)
-               col_append_fstr(cinfo, col, format, str);
-}
-
-
-/* -------------------------- basic dissect functions -------------------     */
-static int dissect_uint64(tvbuff_t *tvb, gint offset, packet_info *pinfo _U_,
-                         proto_tree *tree, int hfindex)
-{
-  proto_tree_add_item(tree, hfindex, tvb, offset, 8, TRUE);
-  return offset+8;
-}
-
-static int
-dissect_uint32(tvbuff_t *tvb, gint offset, packet_info *pinfo _U_,
-              proto_tree *tree, int hfindex)
-{
-  proto_tree_add_item(tree, hfindex, tvb, offset, 4, TRUE);
-  return offset+4;
-}
-
-static int
-dissect_uint16
-(tvbuff_t *tvb, gint offset, packet_info *pinfo _U_, proto_tree *tree, int hfindex)
-{
-  proto_tree_add_item(tree, hfindex, tvb, offset, 2, TRUE);
-  return offset+2;
-}
-
-static int
-dissect_uint8
-(tvbuff_t *tvb, gint offset, packet_info *pinfo _U_, proto_tree *tree, int hfindex)
-{
-  proto_tree_add_item(tree, hfindex, tvb, offset, 1, TRUE);
-  return offset+1;
-}
-
-/* -------------------------------------------------------------------------    */
-
-/* dissect raw data */
-static int
-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)
-{
-  proto_item *item = NULL;
-
-  guint32 data_len;
-  int old_offset;
-
-  old_offset = offset;
-
-  data_len = LUSTRE_BUFFER_LEN(buf_num);
-  if (data_len == 0)
-    return offset;
-
-  item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, data_len, TRUE);
-
-  offset += data_len;
-  proto_item_set_len(item, offset-old_offset);
-  offset = add_extra_padding(tvb, offset, pinfo, parent_tree);
-
-  return offset;
-}
-
-static int
-lustre_dissect_struct_element_data(tvbuff_t *tvb _U_, int offset _U_,
-                                  packet_info *pinfo _U_, proto_tree *parent_tree _U_,
-                                  int hf_index _U_, guint32 data_len)
-{
-  proto_item *item = NULL;
-
-  if (data_len == 0)
-    return offset;
-
-  item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, data_len, TRUE);
-
-  offset += data_len;
-  proto_item_set_len(item, data_len);
-  offset = add_extra_padding(tvb, offset, pinfo, parent_tree);
-
-  return offset;
-}
-
-int
-lustre_dissect_struct_hmac(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_,
-                          proto_tree *parent_tree _U_, int hf_index _U_, int max_length)
-{
-  int i;
-  int val;
-  proto_item *item = NULL;
-
-  item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, 0, TRUE);
-  for (i=0; i < max_length; ++i) {
-    val = tvb_get_guint8(tvb, offset+i);
-    proto_item_append_text(item, (i) ? "%02x" : ": %#02x", val);
-  }
-
-  offset += max_length;
-  proto_item_set_len(item, max_length);
-  return offset;
-}
-
-/* struct ost_id { */
-/*     union { */
-/*             struct { */
-/*                     __u64   oi_id; */
-/*                     __u64   oi_seq; */
-/*             } oi; */
-/*             struct lu_fid oi_fid; */
-/*     }; */
-/* }; */
-int
-lustre_dissect_struct_ostid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_,
-                           proto_tree *parent_tree _U_, int hf_index _U_)
-{
-  proto_item *item = NULL;
-  proto_tree *tree = NULL;
-  int old_offset;
-
-  old_offset=offset;
-
-  if (parent_tree) {
-    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
-    tree = proto_item_add_subtree(item, ett_lustre_ost_id);
-  }
-
-  offset = dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_ost_id_oi_id);
-  offset = dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_ost_id_oi_seq);
-
-  proto_item_set_len(item, offset-old_offset);
-
-  return offset;
-}
-/* ------------------------------------------------------------------------ */
-
-
-
-/* IDL: struct lustre_handle { */
-/* IDL:        uint64 cookie; */
-/* IDL: } */
-
-static int
-lustre_dissect_element_handle_cookie(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_lustre_handle_cookie);
-
-  return offset;
-}
-
-int
-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_)
-{
-  proto_item *item = NULL;
-  proto_tree *tree = NULL;
-  int old_offset;
-
-  old_offset=offset;
-
-  if (parent_tree) {
-    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
-    tree = proto_item_add_subtree(item, ett_lustre_lustre_handle_cookie);
-  }
-
-  offset=lustre_dissect_element_handle_cookie(tvb, offset, pinfo, tree);
-
-
-  proto_item_set_len(item, offset-old_offset);
-
-  return offset;
-}
-
-/* IDL: struct obd_connect_data { */
-/* IDL:        uint64 ocd_connect_flags; */
-/* IDL:        uint32 ocd_version; */
-/* IDL:        uint32 ocd_grant; */
-/* IDL:        uint32 ocd_index; */
-/* IDL:        uint32 ocd_brw_size; */
-/* IDL:        uint64 ocd_ibits_known; */
-/* IDL:        uint32 ocd_nllu; */
-/* IDL:        uint32 ocd_nllg; */
-/* IDL:        uint64 ocd_transno; */
-/* IDL:        uint32 ocd_group; */
-/* IDL:        uint32 ocd_cksum_types; */
-/* IDL:        uint64 padding1; */
-/* IDL:        uint64 padding2; */
-/* IDL: } */
-
-static int
-lustre_dissect_element_obd_connect_data_ocd_connect_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_obd_connect_data_ocd_connect_flags);
-  return offset;
-}
-
-static int
-lustre_dissect_element_obd_connect_data_ocd_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-       guint32 version;
-       guint32 major, minor, patch, fix;
-       proto_item *item;
-
-       version = tvb_get_letohl(tvb, offset);
-       fix = version & 0xff;
-       version >>= 8;
-       patch = version & 0xff;
-       version >>= 8;
-       minor = version & 0xff;
-       version >>= 8;
-       major = version & 0xff;
-
-       item = proto_tree_add_item(tree, hf_lustre_obd_connect_data_ocd_version,
-                                  tvb, offset, 0, TRUE);
-       proto_item_append_text(item,  ": %d.%d.%d.%d",
-                              major, minor, patch, fix);
-       proto_item_set_len(item, 4);
-
-       offset += 4;
-       return offset;
-}
-
-static int
-lustre_dissect_element_obd_connect_data_ocd_grant(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_obd_connect_data_ocd_grant);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_obd_connect_data_ocd_index(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_obd_connect_data_ocd_index);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_obd_connect_data_ocd_brw_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_obd_connect_data_ocd_brw_size);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_obd_connect_data_ocd_ibits_known(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_obd_connect_data_ocd_ibits_known);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_obd_connect_data_ocd_nllu(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_obd_connect_data_ocd_nllu);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_obd_connect_data_ocd_cksum_types(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_obd_connect_data_ocd_cksum_types);
-
-  return offset;
-}
-
-static int
-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_, guint32 buf_num)
-{
-       proto_item *item = NULL;
-       proto_tree *tree = NULL;
-       int old_offset;
-       int data_len;
-
-       data_len = LUSTRE_BUFFER_LEN(buf_num);
-       if (data_len == 0)
-               return offset;
-
-       old_offset = offset;
-
-       if (parent_tree) {
-               item = proto_tree_add_item(parent_tree, hf_index, tvb,
-                                          offset, -1, TRUE);
-               tree = proto_item_add_subtree(item,
-                                             ett_lustre_obd_connect_data);
-       }
-
-       /* ocd_connect_flags = get_... */
-       offset = lustre_dissect_element_obd_connect_data_ocd_connect_flags(tvb,
-                       offset, pinfo, tree);
-
-       offset = lustre_dissect_element_obd_connect_data_ocd_version(tvb,
-                       offset, pinfo, tree);
-
-       offset = lustre_dissect_element_obd_connect_data_ocd_grant(tvb,
-                       offset, pinfo, tree);
-
-       offset = lustre_dissect_element_obd_connect_data_ocd_index(tvb,
-                       offset, pinfo, tree);
-
-       offset = lustre_dissect_element_obd_connect_data_ocd_brw_size(tvb,
-                       offset, pinfo, tree);
-
-       offset = lustre_dissect_element_obd_connect_data_ocd_ibits_known(tvb,
-                       offset, pinfo, tree);
-
-       if (data_len == 72) {
-               offset = lustre_dissect_element_obd_connect_data_ocd_nllu(tvb,
-                               offset, pinfo, tree);
-
-       } else { /* if data_len == 192 */
-               /* Actually blocksize, inodespace, grant_extent */
-               offset = lustre_dissect_element_obd_connect_data_ocd_nllu(tvb,
-                               offset, pinfo, tree);
-       }
-
-       offset = dissect_uint32(tvb, offset, pinfo, tree,
-                       hf_lustre_obd_connect_data_ocd_nllg);
-       offset = dissect_uint64(tvb, offset, pinfo, tree,
-                       hf_lustre_obd_connect_data_ocd_transno);
-       offset = dissect_uint32(tvb, offset, pinfo, tree,
-                       hf_lustre_obd_connect_data_ocd_group);
-       offset = lustre_dissect_element_obd_connect_data_ocd_cksum_types(tvb,
-                       offset, pinfo, tree);
-
-       /* if (ocd_connect_flags & OBD_CONNECT_MAX_EASIZE) */
-       offset = dissect_uint32(tvb, offset, pinfo, tree,
-                       hf_lustre_obd_connect_data_ocd_max_easize);
-
-       offset = dissect_uint32(tvb, offset, pinfo, tree,
-                       hf_lustre_obd_connect_data_ocd_instance);
-       /* if (ocd_connect_flags & OBD_CONNECT_MAXBYTES) */
-       offset = dissect_uint64(tvb, offset, pinfo, tree,
-                       hf_lustre_obd_connect_data_ocd_maxbytes);
-       if (data_len >= 74) /* && (flags & OBD_CONNECT_MULTIMODRPCS) */
-               offset = dissect_uint16(tvb, offset, pinfo, tree,
-                               hf_lustre_obd_connect_data_ocd_maxmodrpcs);
-
-       if (old_offset+data_len > offset) {
-               proto_tree_add_item(tree, hf_lustre_extra_padding,
-                       tvb, offset, (old_offset+data_len)-offset, TRUE);
-               offset = old_offset+data_len;
-       }
-
-       proto_item_set_len(item, offset-old_offset);
-
-       return offset;
-}
-
-
-/* IDL: struct lov_ost_data_v1 { */
-/* IDL:        uint64 l_object_id; */
-/* IDL:        uint64 l_object_seq; */
-/* IDL:        uint32 l_ost_gen; */
-/* IDL:        uint32 l_ost_idx; */
-/* IDL: } */
-
-static int
-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_)
-{
-  offset=dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_lov_ost_data_v1_l_object_id);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_lov_ost_data_v1_l_object_seq(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_lov_ost_data_v1_l_object_seq);
-
-  return offset;
-}
-
-static int
-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_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_lov_ost_data_v1_l_ost_gen);
-
-  return offset;
-}
-
-static int
-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_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_lov_ost_data_v1_l_ost_idx);
-
-  return offset;
-}
-
-int
-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_)
-{
-  proto_item *item = NULL;
-  proto_tree *tree = NULL;
-  int old_offset;
-
-
-
-  old_offset=offset;
-
-  if (parent_tree) {
-    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
-    tree = proto_item_add_subtree(item, ett_lustre_lov_ost_data_v1);
-  }
-
-  offset=lustre_dissect_element_lov_ost_data_v1_l_object_id(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_lov_ost_data_v1_l_object_seq(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_lov_ost_data_v1_l_ost_gen(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_lov_ost_data_v1_l_ost_idx(tvb, offset, pinfo, tree);
-
-
-  proto_item_set_len(item, offset-old_offset);
-
-  return offset;
-}
-
-/* IDL: struct lov_mds_md_v1 { */
-/* IDL:        uint32 lmm_magic; */
-/* IDL:        uint32 lmm_pattern; */
-/* IDL:        uint64 lmm_object_id; */
-/* IDL:        uint64 lmm_object_seq; */
-/* IDL:        uint32 lmm_stripe_size; */
-/* IDL:        uint16 lmm_stripe_count; */
-/* IDL:        uint16 lmm_layout_gen; */
-/* IDL:        struct lov_ost_data_v1 { */
-/* IDL: } lmm_objects[0]; <-- en fait on en a lmm_stripe_count */
-/* IDL: } */
-
-int
-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_)
-{
-       proto_item *item = NULL;
-       proto_tree *tree = NULL;
-       int old_offset, i;
-
-       guint16 stripe_count;
-
-       old_offset=offset;
-
-       if (parent_tree) {
-               item = proto_tree_add_item(parent_tree, hf_index,
-                                          tvb, offset, -1, TRUE);
-               tree = proto_item_add_subtree(item, ett_lustre_lov_mds_md_v1);
-       }
-
-       offset = dissect_uint32(tvb, offset, pinfo, tree,
-                               hf_lustre_lov_mds_md_lmm_magic);
-       offset = dissect_uint32(tvb, offset, pinfo, tree,
-                               hf_lustre_lov_mds_md_lmm_pattern);
-       offset = dissect_uint64(tvb, offset, pinfo, tree,
-                               hf_lustre_lov_mds_md_lmm_object_id);
-       offset = dissect_uint64(tvb, offset, pinfo, tree,
-                               hf_lustre_lov_mds_md_lmm_object_seq);
-       offset = dissect_uint32(tvb, offset, pinfo, tree,
-                               hf_lustre_lov_mds_md_lmm_stripe_size);
-
-       stripe_count = tvb_get_letohs(tvb, offset);
-       offset = dissect_uint16(tvb, offset, pinfo, tree,
-                               hf_lustre_lov_mds_md_lmm_stripe_count);
-       offset = dissect_uint16(tvb, offset, pinfo, tree,
-                               hf_lustre_lov_mds_md_lmm_layout_gen);
-
-       for (i = 0; i < stripe_count; ++i)
-               offset = lustre_dissect_struct_lov_ost_data_v1(tvb, offset,
-                               pinfo, tree, hf_lustre_lov_mds_md_lmm_objects);
-
-       proto_item_set_len(item, offset-old_offset);
-
-       return offset;
-}
-
-
-/* struct lov_mds_md_v3 {            /\* LOV EA mds/wire data (little-endian) *\/ */
-/*     __u32 lmm_magic;          /\* magic number = LOV_MAGIC_V3 *\/ */
-/*     __u32 lmm_pattern;        /\* LOV_PATTERN_RAID0, LOV_PATTERN_RAID1 *\/ */
-/*     struct ost_id   lmm_oi;   /\* LOV object ID *\/ */
-/*     __u32 lmm_stripe_size;    /\* size of stripe in bytes *\/ */
-/*     /\* lmm_stripe_count used to be __u32 *\/ */
-/*     __u16 lmm_stripe_count;   /\* num stripes in use for this object *\/ */
-/*     __u16 lmm_layout_gen;     /\* layout generation number *\/ */
-/*     char  lmm_pool_name[LOV_MAXPOOLNAME + 1]; /\* must be 32bit aligned *\/ */
-/*     struct lov_ost_data_v1 lmm_objects[0]; /\* per-stripe data *\/ */
-/* }; */
-
-int
-lustre_dissect_struct_lov_mds_md_v3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, int hf_index _U_)
-{
-       proto_item *item = NULL;
-       proto_tree *tree = NULL;
-       int old_offset, i;
-
-       guint16 stripe_count;
-
-       old_offset=offset;
-
-       if (parent_tree) {
-               item = proto_tree_add_item(parent_tree, hf_index,
-                                          tvb, offset, -1, TRUE);
-               tree = proto_item_add_subtree(item, ett_lustre_lov_mds_md_v3);
-       }
-
-       offset = dissect_uint32(tvb, offset, pinfo, tree,
-                               hf_lustre_lov_mds_md_lmm_magic);
-       offset = dissect_uint32(tvb, offset, pinfo, tree,
-                               hf_lustre_lov_mds_md_lmm_pattern);
-       offset = lustre_dissect_struct_ostid(tvb, offset, pinfo, tree,
-                               hf_lustre_lov_mds_md_lmm_oi);
-       offset = dissect_uint32(tvb, offset, pinfo, tree,
-                               hf_lustre_lov_mds_md_lmm_stripe_size);
-
-       stripe_count = tvb_get_letohs(tvb, offset);
-       offset = dissect_uint16(tvb, offset, pinfo, tree,
-                               hf_lustre_lov_mds_md_lmm_stripe_count);
-       offset = dissect_uint16(tvb, offset, pinfo, tree,
-                               hf_lustre_lov_mds_md_lmm_layout_gen);
-       offset = lustre_dissect_struct_element_data(tvb, offset, pinfo, tree,
-                               hf_lustre_lov_mds_md_lmm_pool_name,
-                               LOV_MAXPOOLNAME+1);
-
-       for (i = 0; i < stripe_count; ++i)
-               offset = lustre_dissect_struct_lov_ost_data_v1(tvb, offset,
-                               pinfo, tree, hf_lustre_lov_mds_md_lmm_objects);
-
-       proto_item_set_len(item, offset-old_offset);
-
-       return offset;
-}
-
-int
-lustre_dissect_struct_lov_mds_md(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_,
-                                proto_tree *parent_tree _U_,
-                                int hf_index _U_, int buff_num _U_)
-{
-  int magic;
-
-  if(LUSTRE_BUFFER_LEN(buff_num) == 0)
-    return offset;
-
-  magic=tvb_get_letohl(tvb, offset); /* TODO : replace this with a macro */
-  switch(magic) {
-  case LOV_MAGIC_V1:
-    offset=lustre_dissect_struct_lov_mds_md_v1(tvb,offset,pinfo,parent_tree,
-                                              hf_index);
-    break;
-  case LOV_MAGIC_V3:
-    offset=lustre_dissect_struct_lov_mds_md_v3(tvb,offset,pinfo,parent_tree,
-                                              hf_index);
-    break;
-  default:
-    offset=lustre_dissect_element_data(tvb, offset, pinfo, parent_tree,
-                                      hf_lustre_generic_data, buff_num);
-    break;
-  };
-
-  return offset;
-}
-
-
-
-/* IDL: struct obd_statfs { */
-/* IDL:        uint64 os_type; */
-/* IDL:        uint64 os_blocks; */
-/* IDL:        uint64 os_bfree; */
-/* IDL:        uint64 os_bavail; */
-/* IDL:        uint64 os_files; */
-/* IDL:        uint64 os_ffree; */
-/* IDL:        uint8 os_fsid[40]; */
-/* IDL:        uint32 os_bsize; */
-/* IDL:        uint32 os_namelen; */
-/* IDL:        uint64 os_maxbytes; */
-/* IDL:        uint32 os_state; */
-/* IDL:        uint32 os_spare1; */
-/* IDL:        uint32 os_spare2; */
-/* IDL:        uint32 os_spare3; */
-/* IDL:        uint32 os_spare4; */
-/* IDL:        uint32 os_spare5; */
-/* IDL:        uint32 os_spare6; */
-/* IDL:        uint32 os_spare7; */
-/* IDL:        uint32 os_spare8; */
-/* IDL:        uint32 os_spare9; */
-/* IDL: } */
-
-static int
-lustre_dissect_element_obd_statfs_os_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_obd_statfs_os_type);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_obd_statfs_os_blocks(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_obd_statfs_os_blocks);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_obd_statfs_os_bfree(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_obd_statfs_os_bfree);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_obd_statfs_os_bavail(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_obd_statfs_os_bavail);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_obd_statfs_os_files(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_obd_statfs_os_files);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_obd_statfs_os_ffree(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_obd_statfs_os_ffree);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_obd_statfs_os_fsid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint8(tvb, offset, pinfo, tree, hf_lustre_obd_statfs_os_fsid);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_obd_statfs_os_fsid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  int i;
-  for (i = 0; i < 40; i++)
-    offset=lustre_dissect_element_obd_statfs_os_fsid_(tvb, offset, pinfo, tree);
-
-  return offset;
-}
-
-
-
-static int
-lustre_dissect_element_obd_statfs_os_bsize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_obd_statfs_os_bsize);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_obd_statfs_os_namelen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_obd_statfs_os_namelen);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_obd_statfs_os_maxbytes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_obd_statfs_os_maxbytes);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_obd_statfs_os_state(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_obd_statfs_os_state);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_obd_statfs_os_spare1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_obd_statfs_os_spare1);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_obd_statfs_os_spare2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_obd_statfs_os_spare2);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_obd_statfs_os_spare3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_obd_statfs_os_spare3);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_obd_statfs_os_spare4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_obd_statfs_os_spare4);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_obd_statfs_os_spare5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_obd_statfs_os_spare5);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_obd_statfs_os_spare6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_obd_statfs_os_spare6);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_obd_statfs_os_spare7(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_obd_statfs_os_spare7);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_obd_statfs_os_spare8(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_obd_statfs_os_spare8);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_obd_statfs_os_spare9(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_obd_statfs_os_spare9);
-
-  return offset;
-}
-
-int
-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_)
-{
-  proto_item *item = NULL;
-  proto_tree *tree = NULL;
-  int old_offset;
-
-
-
-  old_offset=offset;
-
-  if (parent_tree) {
-    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
-    tree = proto_item_add_subtree(item, ett_lustre_obd_statfs);
-  }
-
-  offset=lustre_dissect_element_obd_statfs_os_type(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_obd_statfs_os_blocks(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_obd_statfs_os_bfree(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_obd_statfs_os_bavail(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_obd_statfs_os_files(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_obd_statfs_os_ffree(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_obd_statfs_os_fsid(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_obd_statfs_os_bsize(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_obd_statfs_os_namelen(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_obd_statfs_os_maxbytes(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_obd_statfs_os_state(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_obd_statfs_os_spare1(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_obd_statfs_os_spare2(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_obd_statfs_os_spare3(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_obd_statfs_os_spare4(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_obd_statfs_os_spare5(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_obd_statfs_os_spare6(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_obd_statfs_os_spare7(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_obd_statfs_os_spare8(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_obd_statfs_os_spare9(tvb, offset, pinfo, tree);
-
-
-  proto_item_set_len(item, offset-old_offset);
-
-  return offset;
-}
-
-/* IDL: struct obd_ioobj { */
-/* IDL:        uint64 ioo_id; */
-/* IDL:        uint64 ioo_seq; */
-/* IDL:        uint32 ioo_max_brw; */
-/* IDL:        uint32 ioo_bufcnt; */
-/* IDL: } */
-
-static int
-lustre_dissect_element_obd_ioobj_ioo_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_obd_ioobj_ioo_id);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_obd_ioobj_ioo_seq(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_obd_ioobj_ioo_seq);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_obd_ioobj_ioo_max_brw(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_obd_ioobj_ioo_max_brw);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_obd_ioobj_ioo_bufcnt(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_obd_ioobj_ioo_bufcnt);
-
-  return offset;
-}
-
-int
-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_)
-{
-  proto_item *item = NULL;
-  proto_tree *tree = NULL;
-  int old_offset;
-
-
-
-  old_offset=offset;
-
-  if (parent_tree) {
-    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
-    tree = proto_item_add_subtree(item, ett_lustre_obd_ioobj);
-  }
-
-  offset=lustre_dissect_element_obd_ioobj_ioo_id(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_obd_ioobj_ioo_seq(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_obd_ioobj_ioo_max_brw(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_obd_ioobj_ioo_bufcnt(tvb, offset, pinfo, tree);
-
-
-  proto_item_set_len(item, offset-old_offset);
-
-  return offset;
-}
-
-/* IDL: struct niobuf_remote { */
-/* IDL:        uint64 offset; */
-/* IDL:        uint32 len; */
-/* IDL:        uint32 flags; */
-/* IDL: } */
-
-static int
-lustre_dissect_element_niobuf_remote_offset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_niobuf_remote_offset);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_niobuf_remote_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_niobuf_remote_len);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_niobuf_remote_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_niobuf_remote_flags);
-
-  return offset;
-}
-
-int
-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_)
-{
-  proto_item *item = NULL;
-  proto_tree *tree = NULL;
-  int old_offset;
-
-
-
-  old_offset=offset;
-
-  if (parent_tree) {
-    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
-    tree = proto_item_add_subtree(item, ett_lustre_niobuf_remote);
-  }
-
-  offset=lustre_dissect_element_niobuf_remote_offset(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_niobuf_remote_len(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_niobuf_remote_flags(tvb, offset, pinfo, tree);
-
-
-  proto_item_set_len(item, offset-old_offset);
-
-  return offset;
-}
-
-/* IDL: struct ost_lvb { */
-/* IDL:        uint64 lvb_size; */
-/* IDL:        uint64 lvb_mtime; */
-/* IDL:        uint64 lvb_atime; */
-/* IDL:        uint64 lvb_ctime; */
-/* IDL:        uint64 lvb_blocks; */
-/* v1 of this type ends here */
-/*             uint32 lvb_mtime_ns; */
-/*             uint32 lvb_atime_ns; */
-/*             uint32 lvb_ctime_ns; */
-/*             uint32 lvb_padding; */
-/* IDL: } */
-
-static int
-lustre_dissect_element_ost_lvb_lvb_time(tvbuff_t *tvb _U_, int offset _U_,
-                                       packet_info *pinfo _U_,
-                                       proto_tree *tree _U_,
-                                       int hf_index _U_, int ns_offset _U_)
-{
-       nstime_t ns;
-       /* timestamp */
-       ns.secs = tvb_get_letoh64(tvb, offset);
-       if (ns_offset != 0)
-               ns.nsecs = tvb_get_letohl(tvb, offset+ns_offset);
-       proto_tree_add_time(tree, hf_index, tvb, offset, 8, &ns);
-       offset += 8;
-       return offset;
-}
-
-int
-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_, int buff_num _U_)
-{
-       proto_item *item = NULL;
-       proto_tree *tree = NULL;
-       int old_offset;
-       int buff_len;
-
-       buff_len = LUSTRE_BUFFER_LEN(buff_num);
-
-       if (buff_len == 0)
-               return offset;
-
-       old_offset=offset;
-
-       if (parent_tree) {
-               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
-               tree = proto_item_add_subtree(item, ett_lustre_ost_lvb);
-       }
-
-       /* v1 format size is 40
-        * v2 format size is 56 w/ ns for times
-        */
-
-       offset = dissect_uint64(tvb, offset, pinfo, tree,
-                               hf_lustre_ost_lvb_lvb_size);
-
-       offset = lustre_dissect_element_ost_lvb_lvb_time(tvb, offset,
-                       pinfo, tree, hf_lustre_ost_lvb_lvb_mtime,
-                       (buff_len >= 56) ?32 :0);
-
-       offset = lustre_dissect_element_ost_lvb_lvb_time(tvb, offset,
-                       pinfo, tree, hf_lustre_ost_lvb_lvb_atime,
-                       (buff_len >= 56) ?28 :0);
-
-       offset = lustre_dissect_element_ost_lvb_lvb_time(tvb, offset,
-                       pinfo, tree, hf_lustre_ost_lvb_lvb_ctime,
-                       (buff_len >= 56) ?24 :0);
-
-       offset = dissect_uint64(tvb, offset, pinfo, tree,
-                               hf_lustre_ost_lvb_lvb_blocks);
-
-       /* post-v1 format */
-       if (buff_len >= 56) {
-               offset = dissect_uint32(tvb, offset, pinfo, tree,
-                                       hf_lustre_ost_lvb_lvb_mtime_ns);
-               offset = dissect_uint32(tvb, offset, pinfo, tree,
-                                       hf_lustre_ost_lvb_lvb_atime_ns);
-               offset = dissect_uint32(tvb, offset, pinfo, tree,
-                                       hf_lustre_ost_lvb_lvb_ctime_ns);
-               offset = dissect_uint32(tvb, offset, pinfo, tree,
-                                       hf_lustre_ost_lvb_lvb_padding);
-       }
-       proto_item_set_len(item, offset-old_offset);
-
-       return offset;
-}
-
-
-/* IDL: struct ll_fid { */
-/* IDL:        uint64 id; */
-/* IDL:        uint32 generation; */
-/* IDL:        uint32 f_type; */
-/* IDL: } */
-
-static int
-lustre_dissect_element_ll_fid_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_ll_fid_id);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_ll_fid_generation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ll_fid_generation);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_ll_fid_f_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ll_fid_f_type);
-
-  return offset;
-}
-
-int
-lustre_dissect_struct_lu_fid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, int hf_index _U_)
-{
-  proto_item *item = NULL;
-  proto_tree *tree = NULL;
-  int old_offset;
-
-  old_offset=offset;
-
-  if (parent_tree) {
-    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
-    tree = proto_item_add_subtree(item, ett_lustre_ll_fid);
-  }
-
-  offset=lustre_dissect_element_ll_fid_id(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_ll_fid_generation(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_ll_fid_f_type(tvb, offset, pinfo, tree);
-
-
-  proto_item_set_len(item, offset-old_offset);
-
-  return offset;
-}
-
-/* IDL: struct obd_dqinfo { */
-/* IDL:   uint64 dqi_bgrace; */
-/* IDL:   uint64 dqi_igrace; */
-/* IDL:   uint32 dqi_flags; */
-/* IDL:   uint32 dqi_valid; */
-/* IDL: } */
-
-static int
-lustre_dissect_element_obd_dqinfo_dqi_bgrace(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset = dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_obd_dqinfo_dqi_bgrace);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_obd_dqinfo_dqi_igrace(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset = dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_obd_dqinfo_dqi_igrace);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_obd_dqinfo_dqi_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset = dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_obd_dqinfo_dqi_flags);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_obd_dqinfo_dqi_valid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset = dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_obd_dqinfo_dqi_valid);
-
-  return offset;
-}
-
-int
-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_)
-{
-  proto_item *item = NULL;
-  proto_tree *tree = NULL;
-  int old_offset;
-
-
-
-  old_offset = offset;
-
-  if (parent_tree) {
-    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
-    tree = proto_item_add_subtree(item, ett_lustre_obd_dqinfo);
-  }
-
-  offset = lustre_dissect_element_obd_dqinfo_dqi_bgrace(tvb, offset, pinfo, tree);
-
-  offset = lustre_dissect_element_obd_dqinfo_dqi_igrace(tvb, offset, pinfo, tree);
-
-  offset = lustre_dissect_element_obd_dqinfo_dqi_flags(tvb, offset, pinfo, tree);
-
-  offset = lustre_dissect_element_obd_dqinfo_dqi_valid(tvb, offset, pinfo, tree);
-
-
-  proto_item_set_len(item, offset-old_offset);
-
-  return offset;
-}
-
-/* IDL: struct obd_dqblk { */
-/* IDL:        uint64 dqb_bhardlimit; */
-/* IDL:        uint64 dqb_bsoftlimit; */
-/* IDL:        uint64 dqb_curspace; */
-/* IDL:        uint64 dqb_ihardlimit; */
-/* IDL:        uint64 dqb_isoftlimit; */
-/* IDL:        uint64 dqb_curinodes; */
-/* IDL:        uint64 dqb_btime; */
-/* IDL:        uint64 dqb_itime; */
-/* IDL:        uint32 dqb_valid; */
-/* IDL:        uint32 padding; */
-/* IDL: } */
-
-static int
-lustre_dissect_element_obd_dqblk_dqb_bhardlimit(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset = dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_obd_dqblk_dqb_bhardlimit);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_obd_dqblk_dqb_bsoftlimit(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset = dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_obd_dqblk_dqb_bsoftlimit);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_obd_dqblk_dqb_curspace(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset = dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_obd_dqblk_dqb_curspace);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_obd_dqblk_dqb_ihardlimit(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset = dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_obd_dqblk_dqb_ihardlimit);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_obd_dqblk_dqb_isoftlimit(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset = dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_obd_dqblk_dqb_isoftlimit);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_obd_dqblk_dqb_curinodes(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset = dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_obd_dqblk_dqb_curinodes);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_obd_dqblk_dqb_btime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-
-  nstime_t ns;
-  /* timestamp */
-  ns.secs = tvb_get_letohl(tvb,offset);
-  ns.nsecs=0;
-  proto_tree_add_time(tree, hf_lustre_obd_dqblk_dqb_btime, tvb, offset, 8, &ns );
-  offset+=8;
-  return offset;
-}
-
-static int
-lustre_dissect_element_obd_dqblk_dqb_itime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  nstime_t ns;
-  /* timestamp */
-  ns.secs = tvb_get_letohl(tvb,offset);
-  ns.nsecs=0;
-  proto_tree_add_time(tree, hf_lustre_obd_dqblk_dqb_itime, tvb, offset, 8, &ns );
-  offset+=8;
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_obd_dqblk_dqb_valid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset = dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_obd_dqblk_dqb_valid);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_obd_dqblk_padding(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset = dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_obd_dqblk_padding);
-
-  return offset;
-}
-
-int
-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_)
-{
-  proto_item *item = NULL;
-  proto_tree *tree = NULL;
-  int old_offset;
-
-
-
-  old_offset = offset;
-
-  if (parent_tree) {
-    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
-    tree = proto_item_add_subtree(item, ett_lustre_obd_dqblk);
-  }
-
-  offset = lustre_dissect_element_obd_dqblk_dqb_bhardlimit(tvb, offset, pinfo, tree);
-
-  offset = lustre_dissect_element_obd_dqblk_dqb_bsoftlimit(tvb, offset, pinfo, tree);
-
-  offset = lustre_dissect_element_obd_dqblk_dqb_curspace(tvb, offset, pinfo, tree);
-
-  offset = lustre_dissect_element_obd_dqblk_dqb_ihardlimit(tvb, offset, pinfo, tree);
-
-  offset = lustre_dissect_element_obd_dqblk_dqb_isoftlimit(tvb, offset, pinfo, tree);
-
-  offset = lustre_dissect_element_obd_dqblk_dqb_curinodes(tvb, offset, pinfo, tree);
-
-  offset = lustre_dissect_element_obd_dqblk_dqb_btime(tvb, offset, pinfo, tree);
-
-  offset = lustre_dissect_element_obd_dqblk_dqb_itime(tvb, offset, pinfo, tree);
-
-  offset = lustre_dissect_element_obd_dqblk_dqb_valid(tvb, offset, pinfo, tree);
-
-  offset = lustre_dissect_element_obd_dqblk_padding(tvb, offset, pinfo, tree);
-
-
-  proto_item_set_len(item, offset-old_offset);
-
-  return offset;
-}
-
-
-/* IDL: struct obd_quotactl { */
-/* IDL:        uint32 qc_cmd; */
-/* IDL:        uint32 qc_type; */
-/* IDL:        uint32 qc_id; */
-/* IDL:        uint32 qc_stat; */
-/* IDL:        struct obd_dqinfo { */
-/* IDL: } qc_dqinfo; */
-/* IDL:        struct obd_dqblk { */
-/* IDL: } qc_dqblk; */
-/* IDL: } */
-
-static int
-lustre_dissect_element_obd_quotactl_qc_cmd(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_obd_quotactl_qc_cmd);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_obd_quotactl_qc_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_obd_quotactl_qc_type);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_obd_quotactl_qc_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_obd_quotactl_qc_id);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_obd_quotactl_qc_stat(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_obd_quotactl_qc_stat);
-
-  return offset;
-}
-
-
-
-static int
-lustre_dissect_element_obd_quotactl_qc_dqblk(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=lustre_dissect_struct_obd_dqblk(tvb,offset,pinfo,tree,hf_lustre_obd_quotactl_qc_dqblk);
-  return offset;
-}
-
-static int
-lustre_dissect_element_obd_quotactl_qc_dqinfo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=lustre_dissect_struct_obd_dqinfo(tvb,offset,pinfo,tree,hf_lustre_obd_quotactl_qc_dqinfo);
-  return offset;
-}
-
-int
-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_)
-{
-  proto_item *item = NULL;
-  proto_tree *tree = NULL;
-  int old_offset;
-
-  old_offset=offset;
-
-  if (parent_tree) {
-    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
-    tree = proto_item_add_subtree(item, ett_lustre_obd_quotactl);
-  }
-
-  offset=lustre_dissect_element_obd_quotactl_qc_cmd(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_obd_quotactl_qc_type(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_obd_quotactl_qc_id(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_obd_quotactl_qc_stat(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_obd_quotactl_qc_dqinfo(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_obd_quotactl_qc_dqblk(tvb, offset, pinfo, tree);
-
-
-  proto_item_set_len(item, offset-old_offset);
-
-  return offset;
-}
-
-
-/* IDL: struct quota_adjust_qunit { */
-/* IDL:        uint32 qaq_flags; */
-/* IDL:        uint32 qaq_id; */
-/* IDL:        uint64 qaq_bunit_sz; */
-/* IDL:        uint64 qaq_iunit_sz; */
-/* IDL:        uint64 padding1; */
-/* IDL: } */
-
-static int
-lustre_dissect_element_quota_adjust_qunit_qaq_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_quota_adjust_qunit_qaq_flags);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_quota_adjust_qunit_qaq_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_quota_adjust_qunit_qaq_id);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_quota_adjust_qunit_qaq_bunit_sz(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_quota_adjust_qunit_qaq_bunit_sz);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_quota_adjust_qunit_qaq_iunit_sz(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_quota_adjust_qunit_qaq_iunit_sz);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_quota_adjust_qunit_padding1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_quota_adjust_qunit_padding1);
-
-  return offset;
-}
-
-int
-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_)
-{
-  proto_item *item = NULL;
-  proto_tree *tree = NULL;
-  int old_offset;
-
-
-
-  old_offset=offset;
-
-  if (parent_tree) {
-    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
-    tree = proto_item_add_subtree(item, ett_lustre_quota_adjust_qunit);
-  }
-
-  offset=lustre_dissect_element_quota_adjust_qunit_qaq_flags(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_quota_adjust_qunit_qaq_id(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_quota_adjust_qunit_qaq_bunit_sz(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_quota_adjust_qunit_qaq_iunit_sz(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_quota_adjust_qunit_padding1(tvb, offset, pinfo, tree);
-
-
-  proto_item_set_len(item, offset-old_offset);
-
-  return offset;
-}
-
-/* IDL: struct mdt_body { */
-/* IDL:        struct lu_fid { */
-/* IDL: } fid1; */
-/* IDL:        struct lu_fid { */
-/* IDL: } fid2; */
-/* IDL:        struct lustre_handle { */
-/* IDL: } handle; */
-/* IDL:        uint64 valid; */
-/* IDL:        uint64 size; */
-/* IDL:        uint64 mtime; */
-/* IDL:        uint64 atime; */
-/* IDL:        uint64 ctime; */
-/* IDL:        uint64 blocks; */
-/* IDL:        uint64 ioepoch; */
-/* IDL:        uint64 ino; */
-/* IDL:        uint32 fsuid; */
-/* IDL:        uint32 fsgid; */
-/* IDL:        uint32 capability; */
-/* IDL:        uint32 mode; */
-/* IDL:        uint32 uid; */
-/* IDL:        uint32 gid; */
-/* IDL:        uint32 flags; */
-/* IDL:        uint32 rdev; */
-/* IDL:        uint32 nlink; */
-/* IDL:        uint32 generation; */
-/* IDL:        uint32 suppgid; */
-/* IDL:        uint32 eadatasize; */
-/* IDL:        uint32 aclsize; */
-/* IDL:        uint32 max_mdsize; */
-/* IDL:        uint32 max_cookiesize; */
-/* IDL:        uint32 uid_h; */
-/* IDL:        uint32 gid_h; */
-/* IDL:        uint32 padding_5; */
-/* IDL:        uint64 padding_6; */
-/* IDL:        uint64 padding_7; */
-/* IDL:        uint64 padding_8; */
-/* IDL:        uint64 padding_9; */
-/* IDL:        uint64 padding_10; */
-/* IDL: } */
-
-static int
-lustre_dissect_element_mdt_body_fid1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=lustre_dissect_struct_lu_fid(tvb,offset,pinfo,tree,hf_lustre_mdt_body_fid1);
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_body_fid2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=lustre_dissect_struct_lu_fid(tvb,offset,pinfo,tree,hf_lustre_mdt_body_fid2);
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_body_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=lustre_dissect_struct_handle_cookie(tvb,offset,pinfo,tree,hf_lustre_mdt_body_handle);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_body_valid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_mdt_body_valid);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_body_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_mdt_body_size);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_body_mtime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  nstime_t ns;
-  /* timestamp */
-  ns.secs = tvb_get_letohl(tvb,offset);
-  ns.nsecs=0;
-  proto_tree_add_time(tree, hf_lustre_mdt_body_mtime, tvb, offset, 8, &ns );
-  offset+=8;
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_body_atime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  nstime_t ns;
-  /* timestamp */
-  ns.secs = tvb_get_letohl(tvb,offset);
-  ns.nsecs=0;
-  proto_tree_add_time(tree, hf_lustre_mdt_body_atime, tvb, offset, 8, &ns );
-  offset+=8;
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_body_ctime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  nstime_t ns;
-  /* timestamp */
-  ns.secs = tvb_get_letohl(tvb,offset);
-  ns.nsecs=0;
-  proto_tree_add_time(tree, hf_lustre_mdt_body_ctime, tvb, offset, 8, &ns );
-  offset+=8;
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_body_blocks(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_mdt_body_blocks);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_body_ioepoch(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_mdt_body_ioepoch);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_body_ino(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_mdt_body_ino);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_body_fsuid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_body_fsuid);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_body_fsgid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_body_fsgid);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_body_capability(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_body_capability);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_body_mode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_body_mode);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_body_uid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_body_uid);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_body_gid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_body_gid);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_body_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_body_flags);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_body_rdev(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_body_rdev);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_body_nlink(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_body_nlink);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_body_generation(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_body_generation);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_body_suppgid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_body_suppgid);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_body_eadatasize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_body_eadatasize);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_body_aclsize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_body_aclsize);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_body_max_mdsize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_body_max_mdsize);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_body_max_cookiesize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_body_max_cookiesize);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_body_uid_h(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_body_uid_h);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_body_gid_h(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_body_gid_h);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_body_padding_5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_body_padding_5);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_body_padding_6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_mdt_body_padding_6);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_body_padding_7(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_mdt_body_padding_7);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_body_padding_8(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_mdt_body_padding_8);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_body_padding_9(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_mdt_body_padding_9);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_body_padding_10(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset= dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_mdt_body_padding_10);
-
-  return offset;
-}
-
-int
-lustre_dissect_struct_mdt_body(tvbuff_t *tvb _U_, int offset _U_,
-                              packet_info *pinfo _U_,
-                              proto_tree *parent_tree _U_,
-                              int hf_index _U_)
-{
-  proto_item *item = NULL;
-  proto_tree *tree = NULL;
-  int old_offset;
-
-
-  old_offset=offset;
-
-  if (parent_tree) {
-    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
-    tree = proto_item_add_subtree(item, ett_lustre_mdt_body);
-  }
-
-  offset=lustre_dissect_element_mdt_body_fid1(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_body_fid2(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_body_handle(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_body_valid(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_body_size(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_body_mtime(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_body_atime(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_body_ctime(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_body_blocks(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_body_ioepoch(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_body_ino(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_body_fsuid(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_body_fsgid(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_body_capability(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_body_mode(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_body_uid(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_body_gid(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_body_flags(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_body_rdev(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_body_nlink(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_body_generation(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_body_suppgid(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_body_eadatasize(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_body_aclsize(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_body_max_mdsize(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_body_max_cookiesize(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_body_uid_h(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_body_gid_h(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_body_padding_5(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_body_padding_6(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_body_padding_7(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_body_padding_8(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_body_padding_9(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_body_padding_10(tvb, offset, pinfo, tree);
-
-
-  proto_item_set_len(item, offset-old_offset);
-
-  return offset;
-}
-
-/* I don't find where this struct appear on wire.. need to search mdc_setattr_pack() */
-/* IDL: struct mdt_rec_setattr { */
-/* IDL:        uint32 sa_opcode; */
-/* IDL:        uint32 sa_cap; */
-/* IDL:        uint32 sa_fsuid; */
-/* IDL:        uint32 sa_fsuid_h; */
-/* IDL:        uint32 sa_fsgid; */
-/* IDL:        uint32 sa_fsgid_h; */
-/* IDL:        uint32 sa_suppgid; */
-/* IDL:        uint32 sa_suppgid_h; */
-/* IDL:        uint32 sa_padding_1; */
-/* IDL:        uint32 sa_padding_1_h; */
-/* IDL:        struct lu_fid { */
-/* IDL: } sa_fid; */
-/* IDL:        uint64 sa_valid; */
-/* IDL:        uint32 sa_uid; */
-/* IDL:        uint32 sa_gid; */
-/* IDL:        uint64 sa_size; */
-/* IDL:        uint64 sa_blocks; */
-/* IDL:        uint64 sa_mtime; */
-/* IDL:        uint64 sa_atime; */
-/* IDL:        uint64 sa_ctime; */
-/* IDL:        uint32 sa_attr_flags; */
-/* IDL:        uint32 sa_mode; */
-/* IDL:        uint32 sa_padding_2; */
-/* IDL:        uint32 sa_projid; */
-/* IDL:        uint32 sa_padding_4; */
-/* IDL:        uint32 sa_padding_5; */
-/* IDL: } */
-
-static int
-lustre_dissect_element_mdt_rec_setattr_sa_opcode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_setattr_sa_opcode);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_setattr_sa_cap(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_setattr_sa_cap);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_setattr_sa_fsuid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_setattr_sa_fsuid);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_setattr_sa_fsuid_h(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_setattr_sa_fsuid_h);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_setattr_sa_fsgid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_setattr_sa_fsgid);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_setattr_sa_fsgid_h(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_setattr_sa_fsgid_h);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_setattr_sa_suppgid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_setattr_sa_suppgid);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_setattr_sa_suppgid_h(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_setattr_sa_suppgid_h);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_setattr_sa_padding_1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_setattr_sa_padding_1);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_setattr_sa_padding_1_h(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_setattr_sa_padding_1_h);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_setattr_sa_fid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=lustre_dissect_struct_lu_fid(tvb,offset,pinfo,tree,hf_lustre_mdt_rec_setattr_sa_fid);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_setattr_sa_valid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_setattr_sa_valid);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_setattr_sa_uid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_setattr_sa_uid);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_setattr_sa_gid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_setattr_sa_gid);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_setattr_sa_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_setattr_sa_size);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_setattr_sa_blocks(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_setattr_sa_blocks);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_setattr_sa_mtime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-
-  nstime_t ns;
-  /* timestamp */
-  ns.secs = tvb_get_letohl(tvb,offset);
-  ns.nsecs=0;
-  proto_tree_add_time(tree, hf_lustre_mdt_rec_setattr_sa_mtime, tvb, offset, 8, &ns );
-  offset+=8;
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_setattr_sa_atime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  nstime_t ns;
-  /* timestamp */
-  ns.secs = tvb_get_letohl(tvb,offset);
-  ns.nsecs=0;
-  proto_tree_add_time(tree, hf_lustre_mdt_rec_setattr_sa_atime, tvb, offset, 8, &ns );
-  offset+=8;
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_setattr_sa_ctime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  nstime_t ns;
-  /* timestamp */
-  ns.secs = tvb_get_letohl(tvb,offset);
-  ns.nsecs=0;
-  proto_tree_add_time(tree, hf_lustre_mdt_rec_setattr_sa_ctime, tvb, offset, 8, &ns );
-  offset+=8;
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_setattr_sa_attr_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_setattr_sa_attr_flags);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_setattr_sa_mode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_setattr_sa_mode);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_setattr_sa_padding_2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_setattr_sa_padding_2);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_setattr_sa_projid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_setattr_sa_projid);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_setattr_sa_padding_4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_setattr_sa_padding_4);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_setattr_sa_padding_5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_setattr_sa_padding_5);
-
-  return offset;
-}
-
-int
-lustre_dissect_struct_mdt_rec_setattr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, int hf_index _U_)
-{
-  proto_item *item = NULL;
-  proto_tree *tree = NULL;
-  int old_offset;
-
-  guint32 sa_opcode ;
-
-
-  old_offset=offset;
-
-  if (parent_tree) {
-    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
-    tree = proto_item_add_subtree(item, ett_lustre_mdt_rec_setattr);
-  }
-  sa_opcode=tvb_get_letohl(tvb,offset);
-  display_info_fstr(parent_tree->parent, pinfo->cinfo, COL_INFO, "[%s]", val_to_str(sa_opcode, lustre_mds_reint_op_vals, "Unknown sa_opc"));
-
-  offset=lustre_dissect_element_mdt_rec_setattr_sa_opcode(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_setattr_sa_cap(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_setattr_sa_fsuid(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_setattr_sa_fsuid_h(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_setattr_sa_fsgid(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_setattr_sa_fsgid_h(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_setattr_sa_suppgid(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_setattr_sa_suppgid_h(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_setattr_sa_padding_1(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_setattr_sa_padding_1_h(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_setattr_sa_fid(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_setattr_sa_valid(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_setattr_sa_uid(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_setattr_sa_gid(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_setattr_sa_size(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_setattr_sa_blocks(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_setattr_sa_mtime(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_setattr_sa_atime(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_setattr_sa_ctime(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_setattr_sa_attr_flags(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_setattr_sa_mode(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_setattr_sa_padding_2(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_setattr_sa_projid(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_setattr_sa_padding_4(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_setattr_sa_padding_5(tvb, offset, pinfo, tree);
-
-
-  proto_item_set_len(item, offset-old_offset);
-
-  return offset;
-}
-
-/* IDL: struct mdt_rec_create { */
-/* IDL:        uint32 cr_opcode; */
-/* IDL:        uint32 cr_cap; */
-/* IDL:        uint32 cr_fsuid; */
-/* IDL:        uint32 cr_fsuid_h; */
-/* IDL:        uint32 cr_fsgid; */
-/* IDL:        uint32 cr_fsgid_h; */
-/* IDL:        uint32 cr_suppgid1; */
-/* IDL:        uint32 cr_suppgid1_h; */
-/* IDL:        uint32 cr_suppgid2; */
-/* IDL:        uint32 cr_suppgid2_h; */
-/* IDL:        struct lu_fid { */
-/* IDL: } cr_fid1; */
-/* IDL:        struct lu_fid { */
-/* IDL: } cr_fid2; */
-/* IDL:        struct lustre_handle { */
-/* IDL: } cr_old_handle; */
-/* IDL:        uint64 cr_time; */
-/* IDL:        uint64 cr_rdev; */
-/* IDL:        uint64 cr_ioepoch; */
-/* IDL:        uint64 cr_padding_1; */
-/* IDL:        uint32 cr_mode; */
-/* IDL:        uint32 cr_bias; */
-/* IDL:        uint32 cr_flags_l; */
-/* IDL:        uint32 cr_flags_h; */
-/* IDL:        uint32 cr_umask; */
-/* IDL:        uint32 cr_padding_4; */
-/* IDL: } */
-
-static int
-lustre_dissect_element_mdt_rec_create_cr_opcode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_create_cr_opcode);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_create_cr_cap(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_create_cr_cap);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_create_cr_fsuid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_create_cr_fsuid);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_create_cr_fsuid_h(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_create_cr_fsuid_h);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_create_cr_fsgid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_create_cr_fsgid);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_create_cr_fsgid_h(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_create_cr_fsgid_h);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_create_cr_suppgid1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_create_cr_suppgid1);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_create_cr_suppgid1_h(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_create_cr_suppgid1_h);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_create_cr_suppgid2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_create_cr_suppgid2);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_create_cr_suppgid2_h(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_create_cr_suppgid2_h);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_create_cr_fid1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=lustre_dissect_struct_lu_fid(tvb,offset,pinfo,tree,hf_lustre_mdt_rec_create_cr_fid1);
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_create_cr_fid2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=lustre_dissect_struct_lu_fid(tvb,offset,pinfo,tree,hf_lustre_mdt_rec_create_cr_fid2);
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_create_cr_old_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=lustre_dissect_struct_handle_cookie(tvb,offset,pinfo,tree,hf_lustre_mdt_rec_create_cr_old_handle);
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_create_cr_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  nstime_t ns;
-  /* timestamp */
-  ns.secs = tvb_get_letohl(tvb,offset);
-  ns.nsecs=0;
-  proto_tree_add_time(tree, hf_lustre_mdt_rec_create_cr_time, tvb, offset, 8, &ns );
-  offset+=8;
-  return offset;
-
-}
-
-static int
-lustre_dissect_element_mdt_rec_create_cr_rdev(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_create_cr_rdev);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_create_cr_ioepoch(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_create_cr_ioepoch);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_create_cr_padding_1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_create_cr_padding_1);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_create_cr_mode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_create_cr_mode);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_create_cr_bias(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_create_cr_bias);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_create_cr_flags_l(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_create_cr_flags_l);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_create_cr_flags_h(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_create_cr_flags_h);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_create_cr_umask(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_create_cr_umask);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_create_cr_padding_4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_create_cr_padding_4);
-
-  return offset;
-}
-
-int
-lustre_dissect_struct_mdt_rec_create(tvbuff_t *tvb _U_, int offset _U_,
-                                    packet_info *pinfo _U_,
-                                    proto_tree *parent_tree _U_,
-                                    int hf_index _U_)
-{
-  proto_item *item = NULL;
-  proto_tree *tree = NULL;
-  int old_offset;
-  guint32 cr_opcode ;
-
-  old_offset=offset;
-
-  if (parent_tree) {
-    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
-    tree = proto_item_add_subtree(item, ett_lustre_mdt_rec_create);
-  }
-  cr_opcode=tvb_get_letohl(tvb,offset);
-  display_info_fstr(parent_tree->parent, pinfo->cinfo, COL_INFO, "[%s]", val_to_str(cr_opcode, lustre_mds_reint_op_vals, "Unknown cr_opc"));
-
-  offset=lustre_dissect_element_mdt_rec_create_cr_opcode(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_create_cr_cap(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_create_cr_fsuid(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_create_cr_fsuid_h(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_create_cr_fsgid(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_create_cr_fsgid_h(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_create_cr_suppgid1(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_create_cr_suppgid1_h(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_create_cr_suppgid2(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_create_cr_suppgid2_h(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_create_cr_fid1(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_create_cr_fid2(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_create_cr_old_handle(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_create_cr_time(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_create_cr_rdev(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_create_cr_ioepoch(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_create_cr_padding_1(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_create_cr_mode(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_create_cr_bias(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_create_cr_flags_l(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_create_cr_flags_h(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_create_cr_umask(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_create_cr_padding_4(tvb, offset, pinfo, tree);
-
-  proto_item_set_len(item, offset-old_offset);
-
-  return offset;
-}
-
-/* TODO : find where this structure appear ! */
-/* IDL: struct mdt_rec_link { */
-/* IDL:        uint32 lk_opcode; */
-/* IDL:        uint32 lk_cap; */
-/* IDL:        uint32 lk_fsuid; */
-/* IDL:        uint32 lk_fsuid_h; */
-/* IDL:        uint32 lk_fsgid; */
-/* IDL:        uint32 lk_fsgid_h; */
-/* IDL:        uint32 lk_suppgid1; */
-/* IDL:        uint32 lk_suppgid1_h; */
-/* IDL:        uint32 lk_suppgid2; */
-/* IDL:        uint32 lk_suppgid2_h; */
-/* IDL:        struct lu_fid { */
-/* IDL: } lk_fid1; */
-/* IDL:        struct lu_fid { */
-/* IDL: } lk_fid2; */
-/* IDL:        uint64 lk_time; */
-/* IDL:        uint64 lk_padding_1; */
-/* IDL:        uint64 lk_padding_2; */
-/* IDL:        uint64 lk_padding_3; */
-/* IDL:        uint64 lk_padding_4; */
-/* IDL:        uint32 lk_bias; */
-/* IDL:        uint32 lk_padding_5; */
-/* IDL:        uint32 lk_padding_6; */
-/* IDL:        uint32 lk_padding_7; */
-/* IDL:        uint32 lk_padding_8; */
-/* IDL:        uint32 lk_padding_9; */
-/* IDL: } */
-
-static int
-lustre_dissect_element_mdt_rec_link_lk_opcode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_link_lk_opcode);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_link_lk_cap(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_link_lk_cap);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_link_lk_fsuid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_link_lk_fsuid);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_link_lk_fsuid_h(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_link_lk_fsuid_h);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_link_lk_fsgid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_link_lk_fsgid);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_link_lk_fsgid_h(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_link_lk_fsgid_h);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_link_lk_suppgid1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_link_lk_suppgid1);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_link_lk_suppgid1_h(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_link_lk_suppgid1_h);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_link_lk_suppgid2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_link_lk_suppgid2);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_link_lk_suppgid2_h(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_link_lk_suppgid2_h);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_link_lk_fid1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=lustre_dissect_struct_lu_fid(tvb,offset,pinfo,tree,hf_lustre_mdt_rec_link_lk_fid1);
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_link_lk_fid2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=lustre_dissect_struct_lu_fid(tvb,offset,pinfo,tree,hf_lustre_mdt_rec_link_lk_fid2);
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_link_lk_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  nstime_t ns;
-  /* timestamp */
-  ns.secs = tvb_get_letohl(tvb,offset);
-  ns.nsecs=0;
-  proto_tree_add_time(tree, hf_lustre_mdt_rec_link_lk_time, tvb, offset, 8, &ns );
-  offset+=8;
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_link_lk_padding_1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_link_lk_padding_1);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_link_lk_padding_2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_link_lk_padding_2);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_link_lk_padding_3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_link_lk_padding_3);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_link_lk_padding_4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_link_lk_padding_4);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_link_lk_bias(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_link_lk_bias);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_link_lk_padding_5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_link_lk_padding_5);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_link_lk_padding_6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_link_lk_padding_6);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_link_lk_padding_7(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_link_lk_padding_7);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_link_lk_padding_8(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_link_lk_padding_8);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_link_lk_padding_9(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_link_lk_padding_9);
-
-  return offset;
-}
-
-int
-lustre_dissect_struct_mdt_rec_link(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, int hf_index _U_)
-{
-  proto_item *item = NULL;
-  proto_tree *tree = NULL;
-  int old_offset;
-
-  guint32 lk_opcode ;
-
-
-  old_offset=offset;
-
-  if (parent_tree) {
-    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
-    tree = proto_item_add_subtree(item, ett_lustre_mdt_rec_link);
-  }
-  lk_opcode=tvb_get_letohl(tvb,offset);
-  display_info_fstr(parent_tree->parent, pinfo->cinfo, COL_INFO, "[%s]", val_to_str(lk_opcode, lustre_mds_reint_op_vals, "Unknown lk_opc"));
-
-  offset=lustre_dissect_element_mdt_rec_link_lk_opcode(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_link_lk_cap(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_link_lk_fsuid(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_link_lk_fsuid_h(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_link_lk_fsgid(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_link_lk_fsgid_h(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_link_lk_suppgid1(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_link_lk_suppgid1_h(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_link_lk_suppgid2(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_link_lk_suppgid2_h(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_link_lk_fid1(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_link_lk_fid2(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_link_lk_time(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_link_lk_padding_1(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_link_lk_padding_2(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_link_lk_padding_3(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_link_lk_padding_4(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_link_lk_bias(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_link_lk_padding_5(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_link_lk_padding_6(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_link_lk_padding_7(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_link_lk_padding_8(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_link_lk_padding_9(tvb, offset, pinfo, tree);
-
-
-  proto_item_set_len(item, offset-old_offset);
-
-  return offset;
-}
-
-/* IDL: struct mdt_rec_unlink { */
-/* IDL:        uint32 ul_opcode; */
-/* IDL:        uint32 ul_cap; */
-/* IDL:        uint32 ul_fsuid; */
-/* IDL:        uint32 ul_fsuid_h; */
-/* IDL:        uint32 ul_fsgid; */
-/* IDL:        uint32 ul_fsgid_h; */
-/* IDL:        uint32 ul_suppgid1; */
-/* IDL:        uint32 ul_suppgid1_h; */
-/* IDL:        uint32 ul_suppgid2; */
-/* IDL:        uint32 ul_suppgid2_h; */
-/* IDL:        struct lu_fid { */
-/* IDL: } ul_fid1; */
-/* IDL:        struct lu_fid { */
-/* IDL: } ul_fid2; */
-/* IDL:        uint64 ul_time; */
-/* IDL:        uint64 ul_padding_2; */
-/* IDL:        uint64 ul_padding_3; */
-/* IDL:        uint64 ul_padding_4; */
-/* IDL:        uint64 ul_padding_5; */
-/* IDL:        uint32 ul_bias; */
-/* IDL:        uint32 ul_mode; */
-/* IDL:        uint32 ul_padding_6; */
-/* IDL:        uint32 ul_padding_7; */
-/* IDL:        uint32 ul_padding_8; */
-/* IDL:        uint32 ul_padding_9; */
-/* IDL: } */
-
-static int
-lustre_dissect_element_mdt_rec_unlink_ul_opcode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_unlink_ul_opcode);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_unlink_ul_cap(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_unlink_ul_cap);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_unlink_ul_fsuid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_unlink_ul_fsuid);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_unlink_ul_fsuid_h(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_unlink_ul_fsuid_h);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_unlink_ul_fsgid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_unlink_ul_fsgid);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_unlink_ul_fsgid_h(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_unlink_ul_fsgid_h);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_unlink_ul_suppgid1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_unlink_ul_suppgid1);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_unlink_ul_suppgid1_h(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_unlink_ul_suppgid1_h);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_unlink_ul_suppgid2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_unlink_ul_suppgid2);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_unlink_ul_suppgid2_h(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_unlink_ul_suppgid2_h);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_unlink_ul_fid1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=lustre_dissect_struct_lu_fid(tvb,offset,pinfo,tree,hf_lustre_mdt_rec_unlink_ul_fid1);
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_unlink_ul_fid2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=lustre_dissect_struct_lu_fid(tvb,offset,pinfo,tree,hf_lustre_mdt_rec_unlink_ul_fid2);
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_unlink_ul_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  nstime_t ns;
-  /* timestamp */
-  ns.secs = tvb_get_letohl(tvb,offset);
-  ns.nsecs=0;
-  proto_tree_add_time(tree,hf_lustre_mdt_rec_unlink_ul_time , tvb, offset, 8, &ns );
-  offset+=8;
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_unlink_ul_padding_2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_unlink_ul_padding_2);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_unlink_ul_padding_3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_unlink_ul_padding_3);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_unlink_ul_padding_4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_unlink_ul_padding_4);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_unlink_ul_padding_5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_unlink_ul_padding_5);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_unlink_ul_bias(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_unlink_ul_bias);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_unlink_ul_mode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_unlink_ul_mode);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_unlink_ul_padding_6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_unlink_ul_padding_6);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_unlink_ul_padding_7(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_unlink_ul_padding_7);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_unlink_ul_padding_8(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_unlink_ul_padding_8);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_unlink_ul_padding_9(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_unlink_ul_padding_9);
-
-  return offset;
-}
-
-int
-lustre_dissect_struct_mdt_rec_unlink(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, int hf_index _U_)
-{
-  proto_item *item = NULL;
-  proto_tree *tree = NULL;
-  int old_offset;
-
-  guint32 ul_opcode ;
-
-
-  old_offset=offset;
-
-  if (parent_tree) {
-    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
-    tree = proto_item_add_subtree(item, ett_lustre_mdt_rec_unlink);
-  }
-
-  ul_opcode=tvb_get_letohl(tvb,offset);
-  display_info_fstr(parent_tree->parent, pinfo->cinfo, COL_INFO, "[%s]", val_to_str(ul_opcode, lustre_mds_reint_op_vals, "Unknown ul_opc"));
-
-  offset=lustre_dissect_element_mdt_rec_unlink_ul_opcode(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_unlink_ul_cap(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_unlink_ul_fsuid(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_unlink_ul_fsuid_h(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_unlink_ul_fsgid(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_unlink_ul_fsgid_h(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_unlink_ul_suppgid1(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_unlink_ul_suppgid1_h(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_unlink_ul_suppgid2(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_unlink_ul_suppgid2_h(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_unlink_ul_fid1(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_unlink_ul_fid2(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_unlink_ul_time(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_unlink_ul_padding_2(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_unlink_ul_padding_3(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_unlink_ul_padding_4(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_unlink_ul_padding_5(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_unlink_ul_bias(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_unlink_ul_mode(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_unlink_ul_padding_6(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_unlink_ul_padding_7(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_unlink_ul_padding_8(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_unlink_ul_padding_9(tvb, offset, pinfo, tree);
-
-
-  proto_item_set_len(item, offset-old_offset);
-
-  return offset;
-}
-
-/* IDL: struct mdt_rec_rename { */
-/* IDL:        uint32 rn_opcode; */
-/* IDL:        uint32 rn_fsuid; */
-/* IDL:        uint32 rn_fsgid; */
-/* IDL:        uint32 rn_cap; */
-/* IDL:        uint32 rn_suppgid1; */
-/* IDL:        uint32 rn_suppgid2; */
-/* IDL:        struct ll_fid { */
-/* IDL: } rn_fid1; */
-/* IDL:        struct ll_fid { */
-/* IDL: } rn_fid2; */
-/* IDL:        uint64 rn_time; */
-/* IDL:        uint32 rn_padding_1; */
-/* IDL:        uint32 rn_padding_2; */
-/* IDL:        uint32 rn_padding_3; */
-/* IDL:        uint32 rn_padding_4; */
-/* IDL: } */
-
-static int
-lustre_dissect_element_mdt_rec_rename_rn_opcode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_rename_rn_opcode);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_rename_rn_cap(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_rename_rn_cap);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_rename_rn_fsuid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_rename_rn_fsuid);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_rename_rn_fsuid_h(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_rename_rn_fsuid_h);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_rename_rn_fsgid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_rename_rn_fsgid);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_rename_rn_fsgid_h(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_rename_rn_fsgid_h);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_rename_rn_suppgid1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_rename_rn_suppgid1);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_rename_rn_suppgid1_h(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_rename_rn_suppgid1_h);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_rename_rn_suppgid2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_rename_rn_suppgid2);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_rename_rn_suppgid2_h(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_rename_rn_suppgid2_h);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_rename_rn_fid1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=lustre_dissect_struct_lu_fid(tvb,offset,pinfo,tree,hf_lustre_mdt_rec_rename_rn_fid1);
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_rename_rn_fid2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=lustre_dissect_struct_lu_fid(tvb,offset,pinfo,tree,hf_lustre_mdt_rec_rename_rn_fid2);
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_rename_rn_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  nstime_t ns;
-  /* timestamp */
-  ns.secs = tvb_get_letohl(tvb,offset);
-  ns.nsecs=0;
-  proto_tree_add_time(tree, hf_lustre_mdt_rec_rename_rn_time, tvb, offset, 8, &ns );
-  offset+=8;
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_rename_rn_padding_1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_rename_rn_padding_1);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_rename_rn_padding_2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_rename_rn_padding_2);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_rename_rn_padding_3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_rename_rn_padding_3);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_rename_rn_padding_4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_rename_rn_padding_4);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_rename_rn_bias(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_rename_rn_bias);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_rename_rn_mode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_rename_rn_mode);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_rename_rn_padding_5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_rename_rn_padding_5);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_rename_rn_padding_6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_rename_rn_padding_6);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_rename_rn_padding_7(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_rename_rn_padding_7);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_rename_rn_padding_8(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_rename_rn_padding_8);
-
-  return offset;
-}
-
-int
-lustre_dissect_struct_mdt_rec_rename(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, int hf_index _U_)
-{
-  proto_item *item = NULL;
-  proto_tree *tree = NULL;
-  int old_offset;
-
-  guint32 rn_opcode ;
-
-
-  old_offset=offset;
-
-  if (parent_tree) {
-    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
-    tree = proto_item_add_subtree(item, ett_lustre_mdt_rec_rename);
-  }
-
-  rn_opcode=tvb_get_letohl(tvb,offset);
-  display_info_fstr(parent_tree->parent, pinfo->cinfo, COL_INFO, "[%s]", val_to_str(rn_opcode, lustre_mds_reint_op_vals, "Unknown rn_opc"));
-
-  offset=lustre_dissect_element_mdt_rec_rename_rn_opcode(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_rename_rn_cap(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_rename_rn_fsuid(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_rename_rn_fsuid_h(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_rename_rn_fsgid(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_rename_rn_fsgid_h(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_rename_rn_suppgid1(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_rename_rn_suppgid1_h(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_rename_rn_suppgid2(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_rename_rn_suppgid2_h(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_rename_rn_fid1(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_rename_rn_fid2(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_rename_rn_time(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_rename_rn_padding_1(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_rename_rn_padding_2(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_rename_rn_padding_3(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_rename_rn_padding_4(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_rename_rn_bias(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_rename_rn_mode(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_rename_rn_padding_5(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_rename_rn_padding_6(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_rename_rn_padding_7(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_rename_rn_padding_8(tvb, offset, pinfo, tree);
-
-
-  proto_item_set_len(item, offset-old_offset);
-
-  return offset;
-}
-
-/* I don't find where this struct appear on wire.. need to search mdc_setxattr_pack() */
-/* IDL: struct mdt_rec_setxattr { */
-/* IDL:        uint32 sx_opcode; */
-/* IDL:        uint32 sx_cap; */
-/* IDL:        uint32 sx_fsuid; */
-/* IDL:        uint32 sx_fsuid_h; */
-/* IDL:        uint32 sx_fsgid; */
-/* IDL:        uint32 sx_fsgid_h; */
-/* IDL:        uint32 sx_suppgid1; */
-/* IDL:        uint32 sx_suppgid1_h; */
-/* IDL:        uint32 sx_suppgid2; */
-/* IDL:        uint32 sx_suppgid2_h; */
-/* IDL:        struct lu_fid { */
-/* IDL: } sx_fid; */
-/* IDL:        uint64 sx_padding_1; */
-/* IDL:        uint32 sx_padding_2; */
-/* IDL:        uint32 sx_padding_3; */
-/* IDL:        uint64 sx_valid; */
-/* IDL:        uint64 sx_time; */
-/* IDL:        uint64 sx_padding_5; */
-/* IDL:        uint64 sx_padding_6; */
-/* IDL:        uint64 sx_padding_7; */
-/* IDL:        uint32 sx_size; */
-/* IDL:        uint32 sx_flags; */
-/* IDL:        uint32 sx_padding_8; */
-/* IDL:        uint32 sx_padding_9; */
-/* IDL:        uint32 sx_padding_10; */
-/* IDL:        uint32 sx_padding_11; */
-/* IDL: } */
-
-static int
-lustre_dissect_element_mdt_rec_setxattr_sx_opcode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_setxattr_sx_opcode);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_setxattr_sx_cap(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_setxattr_sx_cap);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_setxattr_sx_fsuid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_setxattr_sx_fsuid);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_setxattr_sx_fsuid_h(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_setxattr_sx_fsuid_h);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_setxattr_sx_fsgid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_setxattr_sx_fsgid);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_setxattr_sx_fsgid_h(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_setxattr_sx_fsgid_h);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_setxattr_sx_suppgid1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_setxattr_sx_suppgid1);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_setxattr_sx_suppgid1_h(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_setxattr_sx_suppgid1_h);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_setxattr_sx_suppgid2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_setxattr_sx_suppgid2);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_setxattr_sx_suppgid2_h(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_setxattr_sx_suppgid2_h);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_setxattr_sx_fid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=lustre_dissect_struct_lu_fid(tvb,offset,pinfo,tree,hf_lustre_mdt_rec_setxattr_sx_fid);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_setxattr_sx_padding_1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_setxattr_sx_padding_1);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_setxattr_sx_padding_2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_setxattr_sx_padding_2);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_setxattr_sx_padding_3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_setxattr_sx_padding_3);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_setxattr_sx_valid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_setxattr_sx_valid);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_setxattr_sx_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-
-  nstime_t ns;
-  /* timestamp */
-  ns.secs = tvb_get_letohl(tvb,offset);
-  ns.nsecs=0;
-  proto_tree_add_time(tree, hf_lustre_mdt_rec_setxattr_sx_time, tvb, offset, 8, &ns );
-  offset+=8;
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_setxattr_sx_padding_5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_setxattr_sx_padding_5);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_setxattr_sx_padding_6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_setxattr_sx_padding_6);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_setxattr_sx_padding_7(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_setxattr_sx_padding_7);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_setxattr_sx_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_setxattr_sx_size);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_setxattr_sx_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_setxattr_sx_flags);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_setxattr_sx_padding_8(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_setxattr_sx_padding_8);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_setxattr_sx_padding_9(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_setxattr_sx_padding_9);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_setxattr_sx_padding_10(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_setxattr_sx_padding_10);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mdt_rec_setxattr_sx_padding_11(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mdt_rec_setxattr_sx_padding_11);
-
-  return offset;
-}
-
-int
- lustre_dissect_struct_mdt_rec_setxattr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, int hf_index _U_)
-{
-  proto_item *item = NULL;
-  proto_tree *tree = NULL;
-  int old_offset;
-
-  guint32 sx_opcode ;
-
-
-  old_offset=offset;
-
-  if (parent_tree) {
-    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
-    tree = proto_item_add_subtree(item, ett_lustre_mdt_rec_setxattr);
-  }
-  sx_opcode=tvb_get_letohl(tvb,offset);
-  display_info_fstr(parent_tree->parent, pinfo->cinfo, COL_INFO, "[%s]", val_to_str(sx_opcode, lustre_mds_reint_op_vals, "Unknown sx_opc"));
-
-  offset=lustre_dissect_element_mdt_rec_setxattr_sx_opcode(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_setxattr_sx_cap(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_setxattr_sx_fsuid(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_setxattr_sx_fsuid_h(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_setxattr_sx_fsgid(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_setxattr_sx_fsgid_h(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_setxattr_sx_suppgid1(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_setxattr_sx_suppgid1_h(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_setxattr_sx_suppgid2(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_setxattr_sx_suppgid2_h(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_setxattr_sx_fid(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_setxattr_sx_padding_1(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_setxattr_sx_padding_2(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_setxattr_sx_padding_3(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_setxattr_sx_valid(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_setxattr_sx_time(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_setxattr_sx_padding_5(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_setxattr_sx_padding_6(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_setxattr_sx_padding_7(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_setxattr_sx_size(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_setxattr_sx_flags(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_setxattr_sx_padding_8(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_setxattr_sx_padding_9(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_setxattr_sx_padding_10(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mdt_rec_setxattr_sx_padding_11(tvb, offset, pinfo, tree);
-
-
-  proto_item_set_len(item, offset-old_offset);
-
-  return offset;
-}
-
-
-/* TODO : find where this structure appear */
-
-/* IDL: struct lov_desc { */
-/* IDL:        uint32 ld_tgt_count; */
-/* IDL:        uint32 ld_active_tgt_count; */
-/* IDL:        uint32 ld_default_stripe_count; */
-/* IDL:        uint32 ld_pattern; */
-/* IDL:        uint64 ld_default_stripe_size; */
-/* IDL:        uint64 ld_default_stripe_offset; */
-/* IDL:        uint32 ld_padding_0; */
-/* IDL:        uint32 ld_qos_maxage; */
-/* IDL:        uint32 ld_padding_1; */
-/* IDL:        uint32 ld_padding_2; */
-/* IDL:        struct obd_uuid { */
-/* IDL: } ld_uuid; */
-/* IDL: } */
-
-static int
-lustre_dissect_element_lov_desc_ld_tgt_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_lov_desc_ld_tgt_count);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_lov_desc_ld_active_tgt_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_lov_desc_ld_active_tgt_count);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_lov_desc_ld_default_stripe_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_lov_desc_ld_default_stripe_count);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_lov_desc_ld_pattern(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_lov_desc_ld_pattern);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_lov_desc_ld_default_stripe_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_lov_desc_ld_default_stripe_size);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_lov_desc_ld_default_stripe_offset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_lov_desc_ld_default_stripe_offset);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_lov_desc_ld_padding_0(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_lov_desc_ld_padding_0);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_lov_desc_ld_qos_maxage(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_lov_desc_ld_qos_maxage);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_lov_desc_ld_padding_1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_lov_desc_ld_padding_1);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_lov_desc_ld_padding_2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_lov_desc_ld_padding_2);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_lov_desc_ld_uuid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  //offset=lustre_dissect_struct_HASH(0x85bade8)(tvb,offset,pinfo,tree,hf_lustre_lov_desc_ld_uuid);
-  return offset;
-}
-
-int
-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_)
-{
-  proto_item *item = NULL;
-  proto_tree *tree = NULL;
-  int old_offset;
-
-
-
-  old_offset=offset;
-
-  if (parent_tree) {
-    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
-    tree = proto_item_add_subtree(item, ett_lustre_lov_desc);
-  }
-
-  offset=lustre_dissect_element_lov_desc_ld_tgt_count(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_lov_desc_ld_active_tgt_count(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_lov_desc_ld_default_stripe_count(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_lov_desc_ld_pattern(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_lov_desc_ld_default_stripe_size(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_lov_desc_ld_default_stripe_offset(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_lov_desc_ld_padding_0(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_lov_desc_ld_qos_maxage(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_lov_desc_ld_padding_1(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_lov_desc_ld_padding_2(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_lov_desc_ld_uuid(tvb, offset, pinfo, tree);
-
-
-  proto_item_set_len(item, offset-old_offset);
-
-  return offset;
-}
-
-/* IDL: struct obd_uuid { */
-/*        char uuid[40]; */
-/* IDL: } */
-
-static int
-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_)
-{
-  /* the lenght of the string is 40 bytes max, with  \0 inside */
-  proto_tree_add_item(parent_tree, hf_index, tvb, offset, 40, TRUE);
-
-  offset+=40;
-  return offset;
-}
-
-/* IDL: struct ldlm_res_id { */
-/* IDL:        uint64 name[4]; */
-/* IDL: } */
-
-static int
-lustre_dissect_element_ldlm_res_id_name_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_ldlm_res_id_name);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_ldlm_res_id_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  int i;
-  for (i = 0; i < 4; i++)
-    offset=lustre_dissect_element_ldlm_res_id_name_(tvb, offset, pinfo, tree);
-
-  return offset;
-}
-
-
-
-int
-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_)
-{
-  proto_item *item = NULL;
-  proto_tree *tree = NULL;
-  int old_offset;
-
-
-
-  old_offset=offset;
-
-  if (parent_tree) {
-    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
-    tree = proto_item_add_subtree(item, ett_lustre_ldlm_res_id);
-  }
-
-  offset=lustre_dissect_element_ldlm_res_id_name(tvb, offset, pinfo, tree);
-
-
-  proto_item_set_len(item, offset-old_offset);
-
-  return offset;
-}
-
-
-/* IDL: enum { */
-/* IDL:        LCK_MINMODE=0, */
-/* IDL:        LCK_EX=1, */
-/* IDL:        LCK_PW=2, */
-/* IDL:        LCK_PR=4, */
-/* IDL:        LCK_CW=8, */
-/* IDL:        LCK_CR=16, */
-/* IDL:        LCK_NL=32, */
-/* IDL:        LCK_GROUP=64, */
-/* IDL:        LCK_MAXMODE, */
-/* IDL: } */
-
-int
-lustre_dissect_enum_ldlm_mode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree, hf_index);
-  return offset;
-}
-
-
-/* IDL: enum { */
-/* IDL:        LDLM_PLAIN=10, */
-/* IDL:        LDLM_EXTENT=11, */
-/* IDL:        LDLM_FLOCK=12, */
-/* IDL:        LDLM_IBITS=13, */
-/* IDL:        LDLM_MAX_TYPE, */
-/* IDL: } */
-
-int
-lustre_dissect_enum_ldlm_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_resource_desc_lr_type );
-  return offset;
-}
-
-/* IDL: struct ldlm_extent { */
-/* IDL:        uint64 start; */
-/* IDL:        uint64 end; */
-/* IDL:        uint64 gid; */
-/* IDL: } */
-
-static int
-lustre_dissect_element_ldlm_extent_start(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_ldlm_extent_start);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_ldlm_extent_end(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_ldlm_extent_end);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_ldlm_extent_gid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_ldlm_extent_gid);
-
-  return offset;
-}
-
-int
-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_)
-{
-  proto_item *item = NULL;
-  proto_tree *tree = NULL;
-  int old_offset;
-
-
-
-  old_offset=offset;
-
-  if (parent_tree) {
-    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
-    tree = proto_item_add_subtree(item, ett_lustre_ldlm_extent);
-  }
-
-  offset=lustre_dissect_element_ldlm_extent_start(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_ldlm_extent_end(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_ldlm_extent_gid(tvb, offset, pinfo, tree);
-
-
-  proto_item_set_len(item, offset-old_offset);
-
-  return offset;
-}
-
-/* IDL: struct ldlm_inodebits { */
-/* IDL:        uint64 bits; */
-/* IDL: } */
-
-static int
-lustre_dissect_element_ldlm_inodebits_bits(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_ldlm_inodebits_bits);
-
-  return offset;
-}
-
-int
-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_)
-{
-  proto_item *item = NULL;
-  proto_tree *tree = NULL;
-  int old_offset;
-
-
-
-  old_offset=offset;
-
-  if (parent_tree) {
-    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
-    tree = proto_item_add_subtree(item, ett_lustre_ldlm_inodebits);
-  }
-
-  offset=lustre_dissect_element_ldlm_inodebits_bits(tvb, offset, pinfo, tree);
-
-
-  proto_item_set_len(item, offset-old_offset);
-
-  return offset;
-}
-
-/* IDL: struct ldlm_flock { */
-/* IDL:        uint64 start; */
-/* IDL:        uint64 end; */
-/* IDL:        uint64 blocking_export; */
-/* IDL:        uint32 blocking_pid; */
-/* IDL:        uint32 pid; */
-/* IDL: } */
-
-static int
-lustre_dissect_element_ldlm_flock_start(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_ldlm_flock_start);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_ldlm_flock_end(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_ldlm_flock_end);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_ldlm_flock_blocking_export(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_ldlm_flock_blocking_export);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_ldlm_flock_blocking_pid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_ldlm_flock_blocking_pid);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_ldlm_flock_pid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_ldlm_flock_pid);
-
-  return offset;
-}
-
-int
-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_)
-{
-  proto_item *item = NULL;
-  proto_tree *tree = NULL;
-  int old_offset;
-
-
-
-  old_offset=offset;
-
-  if (parent_tree) {
-    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
-    tree = proto_item_add_subtree(item, ett_lustre_ldlm_flock);
-  }
-
-  offset=lustre_dissect_element_ldlm_flock_start(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_ldlm_flock_end(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_ldlm_flock_blocking_export(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_ldlm_flock_blocking_pid(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_ldlm_flock_pid(tvb, offset, pinfo, tree);
-
-
-  proto_item_set_len(item, offset-old_offset);
-
-  return offset;
-}
-
-/* IDL: struct ldlm_intent { */
-/* IDL:        uint64 opc; */
-/* IDL: } */
-
-static int
-lustre_dissect_element_ldlm_intent_opc(tvbuff_t *tvb _U_, int offset _U_,
-                                      packet_info *pinfo _U_,
-                                      proto_tree *tree _U_)
-{
-       guint32 opcode;
-       /* this opcode is like a flag*/
-#define DOBIT(_hf) dissect_uint32(tvb, offset, pinfo, tree, (_hf))
-       DOBIT(hf_lustre_ldlm_intent_opc_open    );
-       DOBIT(hf_lustre_ldlm_intent_opc_creat   );
-       DOBIT(hf_lustre_ldlm_intent_opc_readdir );
-       DOBIT(hf_lustre_ldlm_intent_opc_getattr );
-       DOBIT(hf_lustre_ldlm_intent_opc_lookup  );
-       DOBIT(hf_lustre_ldlm_intent_opc_unlink  );
-       DOBIT(hf_lustre_ldlm_intent_opc_getxattr);
-       DOBIT(hf_lustre_ldlm_intent_opc_exec    );
-       DOBIT(hf_lustre_ldlm_intent_opc_pin     );
-       DOBIT(hf_lustre_ldlm_intent_opc_layout  );
-       DOBIT(hf_lustre_ldlm_intent_opc_q_dqacq );
-       DOBIT(hf_lustre_ldlm_intent_opc_q_conn  );
-       DOBIT(hf_lustre_ldlm_intent_opc_setxattr);
-#undef DOBIT
-       opcode = tvb_get_letohl(tvb,offset);
-
-  display_info_str(tree->parent, pinfo->cinfo, COL_INFO, "[ intent :");
-  if(opcode & IT_OPEN    ){
-    display_info_str(tree->parent, pinfo->cinfo, COL_INFO, " open");
-    proto_item_append_text(tree, " open" );
-  }
-  if(opcode & IT_CREAT   ){
-    display_info_str(tree->parent, pinfo->cinfo, COL_INFO, " create");
-    proto_item_append_text(tree, " create" );
-  }
-  if(opcode & IT_READDIR ){
-    display_info_str(tree->parent, pinfo->cinfo, COL_INFO, " readdir");
-    proto_item_append_text(tree, " readdir" );
-  }
-  if(opcode & IT_GETATTR ){
-    display_info_str(tree->parent, pinfo->cinfo, COL_INFO, " getattr");
-    proto_item_append_text(tree, " getattr" );
-  }
-  if(opcode & IT_LOOKUP  ){
-    display_info_str(tree->parent, pinfo->cinfo, COL_INFO, " lookup");
-    proto_item_append_text(tree, " lookup" );
-  }
-  if(opcode & IT_UNLINK  ){
-    display_info_str(tree->parent, pinfo->cinfo, COL_INFO, " unlink");
-    proto_item_append_text(tree, " unlink" );
-  }
-  if(opcode & IT_TRUNC   ){
-         display_info_str(tree->parent, pinfo->cinfo, COL_INFO, " trunc");
-         proto_item_append_text(tree, " trunc" );
-  }
-  if(opcode & IT_GETXATTR){
-    display_info_str(tree->parent, pinfo->cinfo, COL_INFO, " getxattr");
-    proto_item_append_text(tree, " getxattr" );
-  }
-  if(opcode & IT_EXEC    ){
-    display_info_str(tree->parent, pinfo->cinfo, COL_INFO, " exec");
-    proto_item_append_text(tree, " exec" );
-  }
-  if(opcode & IT_PIN     ){
-    display_info_str(tree->parent, pinfo->cinfo, COL_INFO, " pin");
-    proto_item_append_text(tree, " pin" );
-  }
-  if(opcode & IT_LAYOUT  ){
-         display_info_str(tree->parent, pinfo->cinfo, COL_INFO, " layout");
-         proto_item_append_text(tree, " layout" );
-  }
-  if(opcode & IT_QUOTA_DQACQ ){
-         display_info_str(tree->parent, pinfo->cinfo, COL_INFO, " quota_dqacq");
-         proto_item_append_text(tree, " quota_dqacq" );
-  }
-  if(opcode & IT_QUOTA_CONN  ){
-         display_info_str(tree->parent, pinfo->cinfo, COL_INFO, " quota_conn");
-         proto_item_append_text(tree, " quota_conn" );
-  }
-  if(opcode & IT_SETXATTR    ){
-         display_info_str(tree->parent, pinfo->cinfo, COL_INFO, " setxattr");
-         proto_item_append_text(tree, " setxattr" );
-  }
-
-  display_info_str(tree->parent, pinfo->cinfo, COL_INFO, " ]");
-  offset+=8;
-  return offset;
-}
-
-int
-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_)
-{
-  guint64 intent_opc;
-  proto_item * opcode_item = NULL;
-  proto_tree * opcode_tree = NULL;
-
-  intent_opc = tvb_get_letoh64(tvb,offset);
-  if (parent_tree){
-    opcode_item = proto_tree_add_item(parent_tree, hf_lustre_ldlm_intent_opc, tvb, offset, 8, TRUE);
-    opcode_tree = proto_item_add_subtree(opcode_item, ett_lustre_ldlm_intent_opc);
-  }
-
-  offset=lustre_dissect_element_ldlm_intent_opc(tvb, offset, pinfo, opcode_tree);
-
-  offset=ldlm_opcode_process(tvb, offset, pinfo, parent_tree, intent_opc);
-
-  return offset;
-}
-
-/* IDL: struct ldlm_resource_desc { */
-/* IDL:                enum ldlm_type lr_type; */
-/* IDL:                uint32 lr_padding; */
-/* IDL:                struct ldlm_res_id { */
-/* IDL: } lr_name; */
-/* IDL: } */
-
-static int
-lustre_dissect_element_ldlm_resource_desc_lr_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  /*    offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_ldlm_resource_desc_lr_type);*/
-  offset=lustre_dissect_enum_ldlm_type(tvb, offset, pinfo, tree,  hf_lustre_ldlm_resource_desc_lr_type);
-  return offset;
-}
-
-static int
-lustre_dissect_element_ldlm_resource_desc_lr_padding(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_ldlm_resource_desc_lr_padding);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_ldlm_resource_desc_lr_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=lustre_dissect_struct_ldlm_res_id(tvb,offset,pinfo,tree,hf_lustre_ldlm_resource_desc_lr_name);
-  return offset;
-}
-
-int
-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_)
-{
-  proto_item *item = NULL;
-  proto_tree *tree = NULL;
-  int old_offset;
-
-
-
-  old_offset=offset;
-
-  if (parent_tree) {
-    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
-    tree = proto_item_add_subtree(item, ett_lustre_ldlm_resource_desc);
-  }
-
-  offset=lustre_dissect_element_ldlm_resource_desc_lr_type(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_ldlm_resource_desc_lr_padding(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_ldlm_resource_desc_lr_name(tvb, offset, pinfo, tree);
-
-
-  proto_item_set_len(item, offset-old_offset);
-
-  return offset;
-}
-
-
-/* IDL: struct ldlm_lock_desc { */
-/* IDL:                struct ldlm_resource_desc { */
-/* IDL:                } l_resource; */
-/* IDL:                enum ldlm_mode l_req_mode; */
-/* IDL:                enum ldlm_mode l_granted_mode; */
-/* IDL:                union ldlm_policy_data l_policy_data; */
-/* IDL: } */
-
-static int
-lustre_dissect_element_ldlm_lock_desc_l_resource(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=lustre_dissect_struct_ldlm_resource_desc(tvb,offset,pinfo,tree,hf_lustre_ldlm_lock_desc_l_resource);
-  return offset;
-}
-
-static int
-lustre_dissect_element_ldlm_lock_desc_l_req_mode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=lustre_dissect_enum_ldlm_mode(tvb, offset, pinfo, tree,  hf_lustre_ldlm_lock_desc_l_req_mode);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_ldlm_lock_desc_l_granted_mode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=lustre_dissect_enum_ldlm_mode(tvb, offset, pinfo, tree,  hf_lustre_ldlm_lock_desc_l_granted_mode);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_ldlm_lock_desc_l_policy_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-
-  guint32 lr_type; /* type of the lock */
-
-  lr_type = tvb_get_letohl(tvb,offset - 48 ); /* TODO  : find another way that using -48 */
-
-  /* this section must be check with lustre code, possible mistake here */
-  switch(lr_type){
-    case LDLM_PLAIN:
-    case LDLM_FLOCK:
-      offset=lustre_dissect_struct_ldlm_flock(tvb,offset,pinfo,tree,hf_lustre_ldlm_lock_desc_l_policy_data);
-      break;
-    case LDLM_EXTENT :
-      offset= lustre_dissect_struct_ldlm_extent(tvb,offset,pinfo,tree,hf_lustre_ldlm_lock_desc_l_policy_data);
-      /* add an extra padding 8 bytes */
-      offset=dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_extra_padding);
-      break;
-    case LDLM_IBITS:
-      offset=lustre_dissect_struct_ldlm_inodebits(tvb,offset,pinfo,tree,hf_lustre_ldlm_lock_desc_l_policy_data);
-      /* add an extra padding 24 bytes */
-      offset=dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_extra_padding);
-      offset=dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_extra_padding);
-      offset=dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_extra_padding);
-      break;
-    default:
-      offset=dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_extra_padding);
-      offset=dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_extra_padding);
-      offset=dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_extra_padding);
-      offset=dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_extra_padding);
-      break;
-  }
-  return offset;
-}
-
-int
-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_)
-{
-  proto_item *item = NULL;
-  proto_tree *tree = NULL;
-  int old_offset;
-
-  guint32 lock_req_mode;
-
-
-  old_offset=offset;
-
-  if (parent_tree) {
-    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
-    tree = proto_item_add_subtree(item, ett_lustre_ldlm_lock_desc);
-  }
-
-  offset=lustre_dissect_element_ldlm_lock_desc_l_resource(tvb, offset, pinfo, tree);
-
-  lock_req_mode = tvb_get_letohl(tvb,offset);
-
-  display_info_fstr(parent_tree->parent, pinfo->cinfo, COL_INFO, "[%s]", val_to_str(lock_req_mode, lustre_ldlm_mode_vals, "Unknown lock"));
-
-  offset=lustre_dissect_element_ldlm_lock_desc_l_req_mode(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_ldlm_lock_desc_l_granted_mode(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_ldlm_lock_desc_l_policy_data(tvb, offset, pinfo, tree);
-
-
-  proto_item_set_len(item, offset-old_offset);
-
-  return offset;
-}
-
-
-/* IDL: struct ldlm_request { */
-/* IDL:                uint32 lock_flags; */
-/* IDL:                uint32 lock_count; */
-/* IDL:                struct ldlm_lock_desc { */
-/* IDL:                } lock_desc; */
-/* IDL:                struct lustre_handle { */
-/* IDL:                } lock_handle[2]; */
-/* IDL: } */
-
-
-
-static int
-lustre_dissect_element_ldlm_request_lock_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_ldlm_request_lock_count);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_ldlm_request_lock_desc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=lustre_dissect_struct_ldlm_lock_desc(tvb,offset,pinfo,tree,hf_lustre_ldlm_request_lock_desc);
-  return offset;
-}
-
-
-
-static int
-lustre_dissect_element_ldlm_request_lock_handle_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  /*    col_append_fstr(pinfo->cinfo, COL_INFO, " ldlm cookie : %" G_GINT64_MODIFIER "u", tvb_get_letoh64(tvb,offset) );*/
-
-  offset=lustre_dissect_struct_handle_cookie(tvb,offset,pinfo,tree,hf_lustre_ldlm_request_lock_handle);
-  return offset;
-}
-
-static int
-lustre_dissect_element_ldlm_request_lock_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int num_locks _U_)
-{
-  int i;
-  if (num_locks < 2)
-    num_locks = 2;
-  for (i = 0; i < num_locks; i++)
-    offset=lustre_dissect_element_ldlm_request_lock_handle_(tvb, offset, pinfo, tree);
-
-  return offset;
-}
-
-int
-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_)
-{
-  proto_item *item = NULL;
-  proto_tree *tree = NULL;
-  int old_offset;
-  /* guint32 lock_flag; */
-  /* guint32 ldlm_type; */
-  guint32 num_locks = 2;
-
-  old_offset=offset;
-
-  if (parent_tree) {
-    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
-    tree = proto_item_add_subtree(item, ett_lustre_ldlm_request);
-  }
-
-  /* lock_flag = tvb_get_letohl(tvb,offset); */
-  offset=lustre_dissect_element_ldlm_lock_flags(tvb, offset, pinfo, tree,
-                                               hf_lustre_ldlm_request_lock_flags);
-
-  num_locks = tvb_get_letohl(tvb,offset);
-  offset=lustre_dissect_element_ldlm_request_lock_count(tvb, offset, pinfo, tree);
-
-  /* ldlm_type = (EXTENT, PLAIN, ou IBITS) */
-  /* ldlm_type = tvb_get_letohl(tvb,offset); */
-  offset=lustre_dissect_element_ldlm_request_lock_desc(tvb, offset, pinfo, tree);
-  offset=lustre_dissect_element_ldlm_request_lock_handle(tvb, offset, pinfo, tree, num_locks);
-
-  proto_item_set_len(item, offset-old_offset);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_ldlm_reply_lock_padding(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_ldlm_reply_lock_padding);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_ldlm_reply_lock_desc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=lustre_dissect_struct_ldlm_lock_desc(tvb,offset,pinfo,tree,hf_lustre_ldlm_reply_lock_desc);
-  return offset;
-}
-
-static int
-lustre_dissect_element_ldlm_reply_lock_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  /*        col_append_fstr(pinfo->cinfo, COL_INFO, " ldlm cookie : %" G_GINT64_MODIFIER "u", tvb_get_letoh64(tvb,offset) );*/
-
-  offset=lustre_dissect_struct_handle_cookie(tvb,offset,pinfo,tree,hf_lustre_ldlm_reply_lock_handle);
-  return offset;
-}
-
-static int
-lustre_dissect_element_ldlm_reply_lock_policy_res1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_ldlm_reply_lock_policy_res1);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_ldlm_reply_lock_policy_res2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_ldlm_reply_lock_policy_res2);
-
-  return offset;
-}
-
-int
-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_ )
-{
-  proto_item *item = NULL;
-  proto_tree *tree = NULL;
-  int old_offset;
-  /* guint32 lock_flag; */
-
-  old_offset=offset;
-
-  if (parent_tree) {
-    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
-    tree = proto_item_add_subtree(item, ett_lustre_ldlm_reply);
-  }
-
-  /* lock_flag = tvb_get_letohl(tvb,offset); */
-  offset=lustre_dissect_element_ldlm_lock_flags(tvb, offset, pinfo, tree, hf_lustre_ldlm_reply_lock_flags);
-
-  offset=lustre_dissect_element_ldlm_reply_lock_padding(tvb, offset, pinfo, tree);
-
-  if (ldlm_type != NULL)
-    *ldlm_type = tvb_get_letohl(tvb,offset);
-  offset=lustre_dissect_element_ldlm_reply_lock_desc(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_ldlm_reply_lock_handle(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_ldlm_reply_lock_policy_res1(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_ldlm_reply_lock_policy_res2(tvb, offset, pinfo, tree);
-
-  proto_item_set_len(item, offset-old_offset);
-
-  return offset;
-}
-
-
-
-
-/* IDL: struct mgs_send_param { */
-/* IDL:        uint8 mgs_param[1024]; */
-/* IDL: } */
-
-
-
-static int
-lustre_dissect_element_mgs_send_param_mgs_param_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint8(tvb, offset, pinfo, tree,  hf_lustre_mgs_send_param_mgs_param);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mgs_send_param_mgs_param(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  int i;
-  for (i = 0; i < 1024; i++)
-    offset=lustre_dissect_element_mgs_send_param_mgs_param_(tvb, offset, pinfo, tree);
-
-  return offset;
-}
-
-int
-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_)
-{
-  proto_item *item = NULL;
-  proto_tree *tree = NULL;
-  int old_offset;
-
-
-  old_offset=offset;
-
-  if (parent_tree) {
-    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
-    tree = proto_item_add_subtree(item, ett_lustre_mgs_send_param);
-  }
-
-  offset=lustre_dissect_element_mgs_send_param_mgs_param(tvb, offset, pinfo, tree);
-
-
-  proto_item_set_len(item, offset-old_offset);
-
-  return offset;
-}
-
-/* IDL: struct mgs_config_body {
- * IDL:        char     mcb_name[64];
- * IDL:        __u64    mcb_offset;
- * IDL:        __u16    mcb_type;
- * IDL:        __u8     mcb_reserved;
- * IDL:        __u8     mcb_bits;
- * IDL:        __u32    mcb_units;
- * IDL: };
- */
-int
-lustre_dissect_element_mgs_config_body_name(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, int hf_index _U_)
-{
-       int string_len = 64;
-       proto_tree_add_item(parent_tree, hf_index, tvb,
-                           offset, string_len, TRUE);
-#ifdef WIRESHARK_COMPAT
-       display_info_fstr(parent_tree, pinfo->cinfo, COL_INFO, " name : %s",
-                         (const gchar *)tvb_get_string(tvb, offset,
-                                                       string_len));
-#else
-       display_info_fstr(parent_tree, pinfo->cinfo, COL_INFO, " name : %s",
-                         (const gchar *)tvb_get_string_enc(wmem_packet_scope(),
-                                                           tvb, offset,
-                                                           string_len,
-                                                           ENC_ASCII));
-#endif
-       offset += string_len;
-
-       return offset;
-}
-
-int
-lustre_dissect_struct_mgs_config_body(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, int hf_index _U_)
-{
-       proto_item *item = NULL;
-       proto_tree *tree = NULL;
-       int old_offset;
-
-       old_offset = offset;
-
-       if (parent_tree) {
-               item = proto_tree_add_item(parent_tree, hf_index, tvb,
-                                          offset, -1, TRUE);
-               tree = proto_item_add_subtree(item, ett_lustre_mgs_config_body);
-       }
-
-       offset = lustre_dissect_element_mgs_config_body_name(tvb, offset, pinfo,
-                       tree, hf_lustre_mgs_config_body_name);
-
-       offset = dissect_uint64(tvb, offset, pinfo, tree,
-                               hf_lustre_mgs_config_body_offset);
-       offset = dissect_uint16(tvb, offset, pinfo, tree,
-                               hf_lustre_mgs_config_body_type);
-       offset = dissect_uint8(tvb, offset, pinfo, tree,
-                              hf_lustre_mgs_config_body_reserved);
-       offset = dissect_uint8(tvb, offset, pinfo, tree,
-                              hf_lustre_mgs_config_body_bits);
-       offset = dissect_uint32(tvb, offset, pinfo, tree,
-                               hf_lustre_mgs_config_body_units);
-
-       proto_item_set_len(item, offset-old_offset);
-
-       return offset;
-}
-
-/* IDL: struct mgs_config_res {
- * IDL:        __u64    mcr_offset;
- * IDL:        __u64    mcr_size;
- * IDL: };
- */
-int
-lustre_dissect_struct_mgs_config_res(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, int hf_index _U_)
-{
-  proto_item *item = NULL;
-  proto_tree *tree = NULL;
-  int old_offset;
-
-  old_offset=offset;
-
-  if (parent_tree) {
-    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
-    tree = proto_item_add_subtree(item, ett_lustre_mgs_config_res);
-  }
-
-  offset=dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_mgs_config_res_offset);
-  offset=dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_mgs_config_res_size);
-
-  proto_item_set_len(item, offset-old_offset);
-
-  return offset;
-}
-
-
-/* IDL: struct mgs_target_info { */
-/* IDL:        uint32 mti_lustre_ver; */
-/* IDL:        uint32 mti_stripe_index; */
-/* IDL:        uint32 mti_config_ver; */
-/* IDL:        uint32 mti_flags; */
-/* IDL:        uint32 mti_nid_count; */
-/* IDL:        uint32 padding; */
-/* IDL:        uint8 mti_fsname[64]; */
-/* IDL:        uint8 mti_svname[64]; */
-/* IDL:        uint8 mti_uuid[40]; */
-/* IDL:        uint64 mti_nids[32]; */
-/* IDL:        uint8 mti_params[4096]; */
-/* IDL: } */
-
-static int
-lustre_dissect_element_mgs_target_info_mti_lustre_ver(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mgs_target_info_mti_lustre_ver);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mgs_target_info_mti_stripe_index(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mgs_target_info_mti_stripe_index);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mgs_target_info_mti_config_ver(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mgs_target_info_mti_config_ver);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mgs_target_info_mti_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mgs_target_info_mti_flags);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mgs_target_info_mti_nid_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mgs_target_info_mti_nid_count);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mgs_target_info_padding(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_mgs_target_info_padding);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mgs_target_info_mti_fsname_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint8(tvb, offset, pinfo, tree,  hf_lustre_mgs_target_info_mti_fsname);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mgs_target_info_mti_fsname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  int i;
-  for (i = 0; i < 64; i++)
-    offset=lustre_dissect_element_mgs_target_info_mti_fsname_(tvb, offset, pinfo, tree);
-
-  return offset;
-}
-
-
-
-
-
-static int
-lustre_dissect_element_mgs_target_info_mti_svname_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint8(tvb, offset, pinfo, tree,  hf_lustre_mgs_target_info_mti_svname);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mgs_target_info_mti_svname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  int i;
-  for (i = 0; i < 64; i++)
-    offset=lustre_dissect_element_mgs_target_info_mti_svname_(tvb, offset, pinfo, tree);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mgs_target_info_mti_uuid_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint8(tvb, offset, pinfo, tree,  hf_lustre_mgs_target_info_mti_uuid);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mgs_target_info_mti_uuid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  int i;
-  for (i = 0; i < 40; i++)
-    offset=lustre_dissect_element_mgs_target_info_mti_uuid_(tvb, offset, pinfo, tree);
-
-  return offset;
-}
-
-
-
-
-
-static int
-lustre_dissect_element_mgs_target_info_mti_nids_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_mgs_target_info_mti_nids);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mgs_target_info_mti_nids(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  int i;
-  for (i = 0; i < 32; i++)
-    offset=lustre_dissect_element_mgs_target_info_mti_nids_(tvb, offset, pinfo, tree);
-
-  return offset;
-}
-
-
-
-static int
-lustre_dissect_element_mgs_target_info_mti_params_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint8(tvb, offset, pinfo, tree,  hf_lustre_mgs_target_info_mti_params);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mgs_target_info_mti_params(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  int i;
-  for (i = 0; i < 4096; i++)
-    offset=lustre_dissect_element_mgs_target_info_mti_params_(tvb, offset, pinfo, tree);
-
-  return offset;
-}
-
-int
-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_)
-{
-  proto_item *item = NULL;
-  proto_tree *tree = NULL;
-  int old_offset;
-
-
-
-  old_offset=offset;
-
-  if (parent_tree) {
-    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
-    tree = proto_item_add_subtree(item, ett_lustre_mgs_target_info);
-  }
-
-  offset=lustre_dissect_element_mgs_target_info_mti_lustre_ver(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mgs_target_info_mti_stripe_index(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mgs_target_info_mti_config_ver(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mgs_target_info_mti_flags(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mgs_target_info_mti_nid_count(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mgs_target_info_padding(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mgs_target_info_mti_fsname(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mgs_target_info_mti_svname(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mgs_target_info_mti_uuid(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mgs_target_info_mti_nids(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_mgs_target_info_mti_params(tvb, offset, pinfo, tree);
-
-
-  proto_item_set_len(item, offset-old_offset);
-
-  return offset;
-}
-
-/* IDL: struct cfg_marker { */
-/* IDL:        uint32 cm_step; */
-/* IDL:        uint32 cm_flags; */
-/* IDL:        uint32 cm_vers; */
-/* IDL:        uint32 padding; */
-/* IDL:        time_t cm_createtime; */
-/* IDL:        time_t cm_canceltime; */
-/* IDL:        uint8 cm_tgtname[64]; */
-/* IDL:        uint8 cm_comment[64]; */
-/* IDL: } */
-
-static int
-lustre_dissect_element_cfg_marker_cm_step(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_cfg_marker_cm_step);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_cfg_marker_cm_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_cfg_marker_cm_flags);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_cfg_marker_cm_vers(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_cfg_marker_cm_vers);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_cfg_marker_padding(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_cfg_marker_padding);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_cfg_marker_cm_createtime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  //offset=dissect_ndr_time_t(tvb, offset, pinfo,tree,  hf_lustre_cfg_marker_cm_createtime );
-  /*g_print("function lustre_dissect_element_cfg_marker_cm_createtime don't work\n");*/
-  return offset;
-}
-
-static int
-lustre_dissect_element_cfg_marker_cm_canceltime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  //offset=dissect_ndr_time_t(tvb, offset, pinfo,tree,  hf_lustre_cfg_marker_cm_canceltime);
-
-  /*g_print("element_cfg_marker_cm_canceltime\n");*/
-  return offset;
-}
-
-
-
-static int
-lustre_dissect_element_cfg_marker_cm_tgtname_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint8(tvb, offset, pinfo, tree,  hf_lustre_cfg_marker_cm_tgtname);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_cfg_marker_cm_tgtname(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  int i;
-  for (i = 0; i < 64; i++)
-    offset=lustre_dissect_element_cfg_marker_cm_tgtname_(tvb, offset, pinfo, tree);
-
-  return offset;
-}
-
-
-
-static int
-lustre_dissect_element_cfg_marker_cm_comment_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint8(tvb, offset, pinfo, tree,  hf_lustre_cfg_marker_cm_comment);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_cfg_marker_cm_comment(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  int i;
-  for (i = 0; i < 64; i++)
-    offset=lustre_dissect_element_cfg_marker_cm_comment_(tvb, offset, pinfo, tree);
-
-  return offset;
-}
-
-int
-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_)
-{
-  proto_item *item = NULL;
-  proto_tree *tree = NULL;
-  int old_offset;
-
-
-
-  old_offset=offset;
-
-  if (parent_tree) {
-    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
-    tree = proto_item_add_subtree(item, ett_lustre_cfg_marker);
-  }
-
-  offset=lustre_dissect_element_cfg_marker_cm_step(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_cfg_marker_cm_flags(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_cfg_marker_cm_vers(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_cfg_marker_padding(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_cfg_marker_cm_createtime(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_cfg_marker_cm_canceltime(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_cfg_marker_cm_tgtname(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_cfg_marker_cm_comment(tvb, offset, pinfo, tree);
-
-
-  proto_item_set_len(item, offset-old_offset);
-
-  return offset;
-}
-
-
-
-/* IDL: struct llog_logid { */
-/* IDL:        uint64 lgl_oid; */
-/* IDL:        uint64 lgl_oseq; */
-/* IDL:        uint32 lgl_ogen; */
-/* IDL: } */
-
-static int
-lustre_dissect_element_llog_logid_lgl_oid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_llog_logid_lgl_oid);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_llog_logid_lgl_oseq(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_llog_logid_lgl_oseq);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_llog_logid_lgl_ogen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_llog_logid_lgl_ogen);
-
-  return offset;
-}
-
-int
-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_)
-{
-  proto_item *item = NULL;
-  proto_tree *tree = NULL;
-  int old_offset;
-
-
-
-  old_offset=offset;
-
-  if (parent_tree) {
-    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
-    tree = proto_item_add_subtree(item, ett_lustre_llog_logid);
-  }
-
-  offset=lustre_dissect_element_llog_logid_lgl_oid(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_llog_logid_lgl_oseq(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_llog_logid_lgl_ogen(tvb, offset, pinfo, tree);
-
-
-  proto_item_set_len(item, offset-old_offset);
-
-  return offset;
-}
-
-/* I don't know when this structure is used on network */
-/* IDL: struct llog_catid { */
-/* IDL:        struct llog_logid { */
-/* IDL: } lci_logid; */
-/* IDL:        uint32 lci_padding1; */
-/* IDL:        uint32 lci_padding2; */
-/* IDL:        uint32 lci_padding3; */
-/* IDL: } */
-
-static int
-lustre_dissect_element_llog_catid_lci_logid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  //offset=lustre_dissect_struct_HASH(0x85cc76c)(tvb,offset,pinfo,tree,hf_lustre_llog_catid_lci_logid);
-
-  /*g_print("llog_catid_lci_logid bug\n");*/
-  return offset;
-}
-
-static int
-lustre_dissect_element_llog_catid_lci_padding1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_llog_catid_lci_padding1);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_llog_catid_lci_padding2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_llog_catid_lci_padding2);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_llog_catid_lci_padding3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_llog_catid_lci_padding3);
-
-  return offset;
-}
-
-int
-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_)
-{
-  proto_item *item = NULL;
-  proto_tree *tree = NULL;
-  int old_offset;
-
-
-
-  old_offset=offset;
-
-  if (parent_tree) {
-    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
-    tree = proto_item_add_subtree(item, ett_lustre_llog_catid);
-  }
-
-  offset=lustre_dissect_element_llog_catid_lci_logid(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_llog_catid_lci_padding1(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_llog_catid_lci_padding2(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_llog_catid_lci_padding3(tvb, offset, pinfo, tree);
-
-
-  proto_item_set_len(item, offset-old_offset);
-
-  return offset;
-}
-
-/* IDL: struct llog_rec_hdr { */
-/* IDL:        uint32 lrh_len; */
-/* IDL:        uint32 lrh_index; */
-/* IDL:        uint32 lrh_type; */
-/* IDL:        uint32 padding; */
-/* IDL: } */
-
-static int
-lustre_dissect_element_llog_rec_hdr_lrh_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_llog_rec_hdr_lrh_len);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_llog_rec_hdr_lrh_index(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_llog_rec_hdr_lrh_index);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_llog_rec_hdr_lrh_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_llog_rec_hdr_lrh_type);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_llog_rec_hdr_padding(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_llog_rec_hdr_padding);
-
-  return offset;
-}
-
-int
-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_)
-{
-  proto_item *item = NULL;
-  proto_tree *tree = NULL;
-  int old_offset;
-
-
-
-  old_offset=offset;
-
-  if (parent_tree) {
-    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
-    tree = proto_item_add_subtree(item, ett_lustre_llog_rec_hdr);
-  }
-
-  offset=lustre_dissect_element_llog_rec_hdr_lrh_len(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_llog_rec_hdr_lrh_index(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_llog_rec_hdr_lrh_type(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_llog_rec_hdr_padding(tvb, offset, pinfo, tree);
-
-
-  proto_item_set_len(item, offset-old_offset);
-
-  return offset;
-}
-
-/* IDL: struct llog_rec_tail { */
-/* IDL:        uint32 lrt_len; */
-/* IDL:        uint32 lrt_index; */
-/* IDL: } */
-
-static int
-lustre_dissect_element_llog_rec_tail_lrt_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_llog_rec_tail_lrt_len);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_llog_rec_tail_lrt_index(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_llog_rec_tail_lrt_index);
-
-  return offset;
-}
-
-int
-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_)
-{
-  proto_item *item = NULL;
-  proto_tree *tree = NULL;
-  int old_offset;
-
-
-
-  old_offset=offset;
-
-  if (parent_tree) {
-    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
-    tree = proto_item_add_subtree(item, ett_lustre_llog_rec_tail);
-  }
-
-  offset=lustre_dissect_element_llog_rec_tail_lrt_len(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_llog_rec_tail_lrt_index(tvb, offset, pinfo, tree);
-
-
-  proto_item_set_len(item, offset-old_offset);
-
-  return offset;
-}
-
-/* IDL: struct llog_logid_rec { */
-/* IDL:        struct llog_rec_hdr { */
-/* IDL: } lid_hdr; */
-/* IDL:        struct llog_logid { */
-/* IDL: } lid_id; */
-/* IDL:        uint32 padding1; */
-/* IDL:        uint32 padding2; */
-/* IDL:        uint32 padding3; */
-/* IDL:        uint32 padding4; */
-/* IDL:        uint32 padding5; */
-/* IDL:        struct llog_rec_tail { */
-/* IDL: } lid_tail; */
-/* IDL: } */
-
-static int
-lustre_dissect_element_llog_logid_rec_lid_hdr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=lustre_dissect_struct_llog_rec_hdr(tvb,offset,pinfo,tree,hf_lustre_llog_logid_rec_lid_hdr);
-  return offset;
-}
-
-static int
-lustre_dissect_element_llog_logid_rec_lid_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=lustre_dissect_struct_llog_logid(tvb,offset,pinfo,tree,hf_lustre_llog_logid_rec_lid_id);
-  return offset;
-}
-
-static int
-lustre_dissect_element_llog_logid_rec_padding1(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_llog_logid_rec_padding1);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_llog_logid_rec_padding2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_llog_logid_rec_padding2);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_llog_logid_rec_padding3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_llog_logid_rec_padding3);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_llog_logid_rec_padding4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_llog_logid_rec_padding4);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_llog_logid_rec_padding5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_llog_logid_rec_padding5);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_llog_logid_rec_lid_tail(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=lustre_dissect_struct_llog_rec_tail(tvb,offset,pinfo,tree,hf_lustre_llog_logid_rec_lid_tail);
-  return offset;
-}
-
-int
-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_)
-{
-  proto_item *item = NULL;
-  proto_tree *tree = NULL;
-  int old_offset;
-
-
-
-  old_offset=offset;
-
-  if (parent_tree) {
-    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
-    tree = proto_item_add_subtree(item, ett_lustre_llog_logid_rec);
-  }
-
-  offset=lustre_dissect_element_llog_logid_rec_lid_hdr(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_llog_logid_rec_lid_id(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_llog_logid_rec_padding1(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_llog_logid_rec_padding2(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_llog_logid_rec_padding3(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_llog_logid_rec_padding4(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_llog_logid_rec_padding5(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_llog_logid_rec_lid_tail(tvb, offset, pinfo, tree);
-
-
-  proto_item_set_len(item, offset-old_offset);
-
-  return offset;
-}
-
-
-
-
-/* IDL: struct llog_unlink_rec { */
-/* IDL:        struct llog_rec_hdr { */
-/* IDL: } lur_hdr; */
-/* IDL:        uint64 lur_oid; */
-/* IDL:        uint32 lur_ogen; */
-/* IDL:        uint32 padding; */
-/* IDL:        struct llog_rec_tail { */
-/* IDL: } lur_tail; */
-/* IDL: } */
-
-static int
-lustre_dissect_element_llog_unlink_rec_lur_hdr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  //offset=lustre_dissect_struct_HASH(0x85d8730)(tvb,offset,pinfo,tree,hf_lustre_llog_unlink_rec_lur_hdr);
-  return offset;
-}
-
-static int
-lustre_dissect_element_llog_unlink_rec_lur_oid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_llog_unlink_rec_lur_oid);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_llog_unlink_rec_lur_ogen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_llog_unlink_rec_lur_ogen);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_llog_unlink_rec_padding(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_llog_unlink_rec_padding);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_llog_unlink_rec_lur_tail(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  //offset=lustre_dissect_struct_HASH(0x85d9664)(tvb,offset,pinfo,tree,hf_lustre_llog_unlink_rec_lur_tail);
-  return offset;
-}
-
-int
-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_)
-{
-  proto_item *item = NULL;
-  proto_tree *tree = NULL;
-  int old_offset;
-
-
-
-  old_offset=offset;
-
-  if (parent_tree) {
-    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
-    tree = proto_item_add_subtree(item, ett_lustre_llog_unlink_rec);
-  }
-
-  offset=lustre_dissect_element_llog_unlink_rec_lur_hdr(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_llog_unlink_rec_lur_oid(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_llog_unlink_rec_lur_ogen(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_llog_unlink_rec_padding(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_llog_unlink_rec_lur_tail(tvb, offset, pinfo, tree);
-
-
-  proto_item_set_len(item, offset-old_offset);
-
-  return offset;
-}
-
-
-
-/* IDL: struct llog_setattr_rec { */
-/* IDL:        struct llog_rec_hdr { */
-/* IDL: } lsr_hdr; */
-/* IDL:        uint64 lsr_oid; */
-/* IDL:        uint32 lsr_ogen; */
-/* IDL:        uint32 lsr_uid; */
-/* IDL:        uint32 lsr_gid; */
-/* IDL:        uint32 padding; */
-/* IDL:        struct llog_rec_tail { */
-/* IDL: } lsr_tail; */
-/* IDL: } */
-
-static int
-lustre_dissect_element_llog_setattr_rec_lsr_hdr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  //offset=lustre_dissect_struct_HASH(0x85da2f0)(tvb,offset,pinfo,tree,hf_lustre_llog_setattr_rec_lsr_hdr);
-  return offset;
-}
-
-static int
-lustre_dissect_element_llog_setattr_rec_lsr_oid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_llog_setattr_rec_lsr_oid);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_llog_setattr_rec_lsr_ogen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_llog_setattr_rec_lsr_ogen);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_llog_setattr_rec_lsr_uid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_llog_setattr_rec_lsr_uid);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_llog_setattr_rec_lsr_gid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_llog_setattr_rec_lsr_gid);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_llog_setattr_rec_padding(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_llog_setattr_rec_padding);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_llog_setattr_rec_lsr_tail(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  //offset=lustre_dissect_struct_HASH(0x85db3d4)(tvb,offset,pinfo,tree,hf_lustre_llog_setattr_rec_lsr_tail);
-  return offset;
-}
-
-int
-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_)
-{
-  proto_item *item = NULL;
-  proto_tree *tree = NULL;
-  int old_offset;
-
-
-
-  old_offset=offset;
-
-  if (parent_tree) {
-    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
-    tree = proto_item_add_subtree(item, ett_lustre_llog_setattr_rec);
-  }
-
-  offset=lustre_dissect_element_llog_setattr_rec_lsr_hdr(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_llog_setattr_rec_lsr_oid(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_llog_setattr_rec_lsr_ogen(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_llog_setattr_rec_lsr_uid(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_llog_setattr_rec_lsr_gid(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_llog_setattr_rec_padding(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_llog_setattr_rec_lsr_tail(tvb, offset, pinfo, tree);
-
-
-  proto_item_set_len(item, offset-old_offset);
-
-  return offset;
-}
-
-
-
-
-/* IDL: struct llog_size_change_rec { */
-/* IDL:        struct llog_rec_hdr { */
-/* IDL: } lsc_hdr; */
-/* IDL:        struct ll_fid { */
-/* IDL: } lsc_fid; */
-/* IDL:        uint32 lsc_io_epoch; */
-/* IDL:        uint32 padding; */
-/* IDL:        struct llog_rec_tail { */
-/* IDL: } lsc_tail; */
-/* IDL: } */
-
-static int
-lustre_dissect_element_llog_size_change_rec_lsc_hdr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  //offset=lustre_dissect_struct_HASH(0x85dc458)(tvb,offset,pinfo,tree,hf_lustre_llog_size_change_rec_lsc_hdr);
-  return offset;
-}
-
-static int
-lustre_dissect_element_llog_size_change_rec_lsc_fid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  //offset=lustre_dissect_struct_HASH(0x85dc5a8)(tvb,offset,pinfo,tree,hf_lustre_llog_size_change_rec_lsc_fid);
-  return offset;
-}
-
-static int
-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_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_llog_size_change_rec_lsc_io_epoch);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_llog_size_change_rec_padding(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_llog_size_change_rec_padding);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_llog_size_change_rec_lsc_tail(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  //offset=lustre_dissect_struct_HASH(0x85dd384)(tvb,offset,pinfo,tree,hf_lustre_llog_size_change_rec_lsc_tail);
-  // TODO: to be corrected !
-  return offset;
-}
-
-int
-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_)
-{
-  proto_item *item = NULL;
-  proto_tree *tree = NULL;
-  int old_offset;
-
-
-
-  old_offset=offset;
-
-  if (parent_tree) {
-    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
-    tree = proto_item_add_subtree(item, ett_lustre_llog_size_change_rec);
-  }
-
-  offset=lustre_dissect_element_llog_size_change_rec_lsc_hdr(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_llog_size_change_rec_lsc_fid(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_llog_size_change_rec_lsc_io_epoch(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_llog_size_change_rec_padding(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_llog_size_change_rec_lsc_tail(tvb, offset, pinfo, tree);
-
-
-  proto_item_set_len(item, offset-old_offset);
-
-  return offset;
-}
-
-
-
-
-/* IDL: struct llog_gen { */
-/* IDL:        uint64 mnt_cnt; */
-/* IDL:        uint64 conn_cnt; */
-/* IDL: } */
-
-static int
-lustre_dissect_element_llog_gen_mnt_cnt(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_llog_gen_mnt_cnt);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_llog_gen_conn_cnt(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_llog_gen_conn_cnt);
-
-  return offset;
-}
-
-int
-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_)
-{
-  proto_item *item = NULL;
-  proto_tree *tree = NULL;
-  int old_offset;
-
-
-
-  old_offset=offset;
-
-  if (parent_tree) {
-    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
-    tree = proto_item_add_subtree(item, ett_lustre_llog_gen);
-  }
-
-  offset=lustre_dissect_element_llog_gen_mnt_cnt(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_llog_gen_conn_cnt(tvb, offset, pinfo, tree);
-
-
-  proto_item_set_len(item, offset-old_offset);
-
-  return offset;
-}
-
-/* IDL: struct llog_gen_rec { */
-/* IDL:        struct llog_rec_hdr { */
-/* IDL: } lgr_hdr; */
-/* IDL:        struct llog_gen { */
-/* IDL: } lgr_gen; */
-/* IDL:        struct llog_rec_tail { */
-/* IDL: } lgr_tail; */
-/* IDL: } */
-
-static int
-lustre_dissect_element_llog_gen_rec_lgr_hdr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  //offset=lustre_dissect_struct_HASH(0x85de2e4)(tvb,offset,pinfo,tree,hf_lustre_llog_gen_rec_lgr_hdr);
-  // TODO: to be corrected !
-  return offset;
-}
-
-static int
-lustre_dissect_element_llog_gen_rec_lgr_gen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  //offset=lustre_dissect_struct_HASH(0x85de434)(tvb,offset,pinfo,tree,hf_lustre_llog_gen_rec_lgr_gen);
-  // TODO: to be corrected !
-  return offset;
-}
-
-static int
-lustre_dissect_element_llog_gen_rec_lgr_tail(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  //offset=lustre_dissect_struct_HASH(0x85df3f8)(tvb,offset,pinfo,tree,hf_lustre_llog_gen_rec_lgr_tail);
-  // TODO: to be corrected !
-  return offset;
-}
-
-int
-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_)
-{
-  proto_item *item = NULL;
-  proto_tree *tree = NULL;
-  int old_offset;
-
-
-
-  old_offset=offset;
-
-  if (parent_tree) {
-    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
-    tree = proto_item_add_subtree(item, ett_lustre_llog_gen_rec);
-  }
-
-  offset=lustre_dissect_element_llog_gen_rec_lgr_hdr(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_llog_gen_rec_lgr_gen(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_llog_gen_rec_lgr_tail(tvb, offset, pinfo, tree);
-
-
-  proto_item_set_len(item, offset-old_offset);
-
-  return offset;
-}
-
-
-
-
-/* IDL: struct llog_log_hdr { */
-/* IDL:        struct llog_rec_hdr { */
-/* IDL: } llh_hdr; */
-/* IDL:        uint64 llh_timestamp; */
-/* IDL:        uint32 llh_count; */
-/* IDL:        uint32 llh_bitmap_offset; */
-/* IDL:        uint32 llh_size; */
-/* IDL:        uint32 llh_flags; */
-/* IDL:        uint32 llh_cat_idx; */
-/* IDL:        struct obd_uuid { */
-/* IDL: } llh_tgtuuid; */
-/* IDL:        uint32 llh_reserved[1]; */
-/* IDL:        uint32 llh_bitmap[2024]; */
-/* IDL:        struct llog_rec_tail { */
-/* IDL: } llh_tail; */
-/* IDL: } */
-
-static int
-lustre_dissect_element_llog_log_hdr_llh_hdr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=lustre_dissect_struct_llog_rec_hdr(tvb,offset,pinfo,tree,hf_lustre_llog_log_hdr_llh_hdr);
-  return offset;
-}
-
-static int
-lustre_dissect_element_llog_log_hdr_llh_timestamp(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  nstime_t ns;
-  ns.secs = tvb_get_letohl(tvb,offset);
-  ns.nsecs=0;
-  proto_tree_add_time(tree, hf_lustre_llog_log_hdr_llh_timestamp, tvb, offset, 8, &ns );
-  offset+=8;
-  return offset;
-}
-
-static int
-lustre_dissect_element_llog_log_hdr_llh_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_llog_log_hdr_llh_count);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_llog_log_hdr_llh_bitmap_offset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_llog_log_hdr_llh_bitmap_offset);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_llog_log_hdr_llh_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_llog_log_hdr_llh_size);
-
-  return offset;
-}
-
-
-
-static int
-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_)
-{
-  proto_item *item = NULL;
-  proto_tree *tree = NULL;
-
-  if (parent_tree) {
-    item = proto_tree_add_item(parent_tree,hf_index, tvb, offset, 4, TRUE);
-    tree = proto_item_add_subtree(item, ett_lustre_llog_log_llh_flags);
-  }
-  dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_llog_hdr_llh_flag_zap_when_empty);
-  dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_llog_hdr_llh_flag_is_cat);
-  dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_llog_hdr_llh_flag_is_play);
-
-  offset+=4;
-  return offset;
-}
-
-static int
-lustre_dissect_element_llog_log_hdr_llh_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  //    offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_llog_log_hdr_llh_flags);
-  offset=lustre_dissect_element_llog_log_llh_flags(tvb, offset, pinfo, tree, hf_lustre_llog_log_hdr_llh_flags);
-  return offset;
-}
-
-static int
-lustre_dissect_element_llog_log_hdr_llh_cat_idx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_llog_log_hdr_llh_cat_idx);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_llog_log_hdr_llh_tgtuuid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=lustre_dissect_struct_obd_uuid(tvb,offset,pinfo,tree,hf_lustre_llog_log_hdr_llh_tgtuuid);
-  return offset;
-}
-
-static int
-lustre_dissect_element_llog_log_hdr_llh_reserved_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_llog_log_hdr_llh_reserved);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_llog_log_hdr_llh_reserved(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  int i;
-  for (i = 0; i < 1; i++)
-    offset=lustre_dissect_element_llog_log_hdr_llh_reserved_(tvb, offset, pinfo, tree);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_llog_log_hdr_llh_bitmap_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_llog_log_hdr_llh_bitmap);
-
-  return offset;
-}
-
-
-static int
-lustre_dissect_element_llog_log_hdr_llh_bitmap(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  int i;
-  for (i = 0; i < 2024; i++)
-    offset=lustre_dissect_element_llog_log_hdr_llh_bitmap_(tvb, offset, pinfo, tree);
-
-  return offset;
-}
-
-
-
-static int
-lustre_dissect_element_llog_log_hdr_llh_tail(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=lustre_dissect_struct_llog_rec_tail(tvb,offset,pinfo,tree,hf_lustre_llog_log_hdr_llh_tail);
-  return offset;
-}
-
-int
-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_)
-{
-  proto_item *item = NULL;
-  proto_tree *tree = NULL;
-  int old_offset;
-
-  old_offset=offset;
-
-  if (parent_tree) {
-    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
-    tree = proto_item_add_subtree(item, ett_lustre_llog_log_hdr);
-  }
-
-  offset=lustre_dissect_element_llog_log_hdr_llh_hdr(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_llog_log_hdr_llh_timestamp(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_llog_log_hdr_llh_count(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_llog_log_hdr_llh_bitmap_offset(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_llog_log_hdr_llh_size(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_llog_log_hdr_llh_flags(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_llog_log_hdr_llh_cat_idx(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_llog_log_hdr_llh_tgtuuid(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_llog_log_hdr_llh_reserved(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_llog_log_hdr_llh_bitmap(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_llog_log_hdr_llh_tail(tvb, offset, pinfo, tree);
-
-  proto_item_set_len(item, offset-old_offset);
-
-  return offset;
-}
-
-
-
-
-/* IDL: struct llog_cookie { */
-/* IDL:        struct llog_logid { */
-/* IDL: } lgc_lgl; */
-/* IDL:        uint32 lgc_subsys; */
-/* IDL:        uint32 lgc_index; */
-/* IDL:        uint32 lgc_padding; */
-/* IDL: } */
-
-static int
-lustre_dissect_element_llog_cookie_lgc_lgl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=lustre_dissect_struct_llog_logid(tvb,offset,pinfo,tree,hf_lustre_llog_cookie_lgc_lgl);
-  return offset;
-}
-
-static int
-lustre_dissect_element_llog_cookie_lgc_subsys(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_llog_cookie_lgc_subsys);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_llog_cookie_lgc_index(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_llog_cookie_lgc_index);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_llog_cookie_lgc_padding(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_llog_cookie_lgc_padding);
-
-  return offset;
-}
-
-int
-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_)
-{
-  proto_item *item = NULL;
-  proto_tree *tree = NULL;
-  int old_offset;
-
-
-
-  old_offset=offset;
-
-  if (parent_tree) {
-    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
-    tree = proto_item_add_subtree(item, ett_lustre_llog_cookie);
-  }
-
-  offset=lustre_dissect_element_llog_cookie_lgc_lgl(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_llog_cookie_lgc_subsys(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_llog_cookie_lgc_index(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_llog_cookie_lgc_padding(tvb, offset, pinfo, tree);
-
-
-  proto_item_set_len(item, offset-old_offset);
-
-  return offset;
-}
-
-
-
-/* IDL: struct llogd_body { */
-/* IDL:        struct llog_logid { */
-/* IDL: } lgd_logid; */
-/* IDL:        uint32 lgd_ctxt_idx; */
-/* IDL:        uint32 lgd_llh_flags; */
-/* IDL:        uint32 lgd_index; */
-/* IDL:        uint32 lgd_saved_index; */
-/* IDL:        uint32 lgd_len; */
-/* IDL:        uint64 lgd_cur_offset; */
-/* IDL: } */
-
-static int
-lustre_dissect_element_llogd_body_lgd_logid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=lustre_dissect_struct_llog_logid(tvb,offset,pinfo,tree,hf_lustre_llogd_body_lgd_logid);
-  return offset;
-}
-
-static int
-lustre_dissect_element_llogd_body_lgd_ctxt_idx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_llogd_body_lgd_ctxt_idx);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_llogd_body_lgd_llh_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  //offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_llogd_body_lgd_llh_flags);
-
-  offset=lustre_dissect_element_llog_log_llh_flags(tvb, offset, pinfo, tree, hf_lustre_llogd_body_lgd_llh_flags);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_llogd_body_lgd_index(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_llogd_body_lgd_index);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_llogd_body_lgd_saved_index(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_llogd_body_lgd_saved_index);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_llogd_body_lgd_len(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_llogd_body_lgd_len);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_llogd_body_lgd_cur_offset(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_llogd_body_lgd_cur_offset);
-
-  return offset;
-}
-
-int
-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_)
-{
-  proto_item *item = NULL;
-  proto_tree *tree = NULL;
-  int old_offset;
-
-
-
-  old_offset=offset;
-
-  if (parent_tree) {
-    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
-    tree = proto_item_add_subtree(item, ett_lustre_llogd_body);
-  }
-
-  offset=lustre_dissect_element_llogd_body_lgd_logid(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_llogd_body_lgd_ctxt_idx(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_llogd_body_lgd_llh_flags(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_llogd_body_lgd_index(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_llogd_body_lgd_saved_index(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_llogd_body_lgd_len(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_llogd_body_lgd_cur_offset(tvb, offset, pinfo, tree);
-
-
-  proto_item_set_len(item, offset-old_offset);
-
-  return offset;
-}
-
-
-/* TODO : find when this Structure appear on the wire */
-/* IDL: struct llogd_conn_body { */
-/* IDL:        struct llog_gen { */
-/* IDL: } lgdc_gen; */
-/* IDL:        struct llog_logid { */
-/* IDL: } lgdc_logid; */
-/* IDL:        uint32 lgdc_ctxt_idx; */
-/* IDL: } */
-
-static int
-lustre_dissect_element_llogd_conn_body_lgdc_gen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  //offset=lustre_dissect_struct_HASH(0x85e6038)(tvb,offset,pinfo,tree,hf_lustre_llogd_conn_body_lgdc_gen);
-  return offset;
-}
-
-static int
-lustre_dissect_element_llogd_conn_body_lgdc_logid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  //offset=lustre_dissect_struct_HASH(0x85e6188)(tvb,offset,pinfo,tree,hf_lustre_llogd_conn_body_lgdc_logid);
-  return offset;
-}
-
-static int
-lustre_dissect_element_llogd_conn_body_lgdc_ctxt_idx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_llogd_conn_body_lgdc_ctxt_idx);
-
-  return offset;
-}
-
-int
-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_)
-{
-  proto_item *item = NULL;
-  proto_tree *tree = NULL;
-  int old_offset;
-
-
-
-  old_offset=offset;
-
-  if (parent_tree) {
-    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
-    tree = proto_item_add_subtree(item, ett_lustre_llogd_conn_body);
-  }
-
-  offset=lustre_dissect_element_llogd_conn_body_lgdc_gen(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_llogd_conn_body_lgdc_logid(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_llogd_conn_body_lgdc_ctxt_idx(tvb, offset, pinfo, tree);
-
-
-  proto_item_set_len(item, offset-old_offset);
-
-  return offset;
-}
-
-/* IDL: struct obdo { */
-/* IDL:        uint64 o_valid; */
-/* IDL:        uint64 o_id; */
-/* IDL:        uint64 o_seq; */
-/* IDL:        uint64 o_parent_seq; */
-/* IDL:        uint64 o_size; */
-/* IDL:        uint64 o_mtime; */
-/* IDL:        uint64 o_atime; */
-/* IDL:        uint64 o_ctime; */
-/* IDL:        uint64 o_blocks; */
-/* IDL:        uint64 o_grant; */
-/* IDL:        uint32 o_blksize; */
-/* IDL:        uint32 o_mode; */
-/* IDL:        uint32 o_uid; */
-/* IDL:        uint32 o_gid; */
-/* IDL:        uint32 o_flags; */
-/* IDL:        uint32 o_nlink; */
-/* IDL:        uint32 o_parent_oid; */
-/* IDL:        uint32 o_misc; */
-/* IDL:        uint64 o_ioepoch; */
-/* IDL:        uint32 o_stripe_idx; */
-/* IDL:        uint32 o_parent_ver; */
-/* IDL:        struct lustre_handle { */
-/* IDL: } o_handle; */
-/* IDL:        struct llog_cookie { */
-/* IDL: } o_lcookie; */
-/* IDL:        uint32 o_uid_h; */
-/* IDL:        uint32 o_gid_h; */
-/* IDL:        uint64 o_padding_3; */
-/* IDL:        uint64 o_padding_4; */
-/* IDL:        uint64 o_padding_5; */
-/* IDL:        uint64 o_padding_6; */
-/* IDL: } */
-
-static int
-lustre_dissect_element_obdo_o_valid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_obdo_o_valid);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_obdo_o_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_obdo_o_id);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_obdo_o_seq(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_obdo_o_seq);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_obdo_o_parent_seq(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_obdo_o_parent_seq);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_obdo_o_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_obdo_o_size);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_obdo_o_mtime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  nstime_t ns;
-  /* timestamp */
-  ns.secs = tvb_get_letohl(tvb,offset);
-  ns.nsecs=0;
-  proto_tree_add_time(tree, hf_lustre_obdo_o_mtime, tvb, offset, 8, &ns );
-  offset+=8;
-  return offset;
-}
-
-static int
-lustre_dissect_element_obdo_o_atime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  nstime_t ns;
-  /* timestamp */
-  ns.secs = tvb_get_letohl(tvb,offset);
-  ns.nsecs=0;
-  proto_tree_add_time(tree, hf_lustre_obdo_o_atime, tvb, offset, 8, &ns );
-  offset+=8;
-  return offset;
-
-}
-
-static int
-lustre_dissect_element_obdo_o_ctime(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  nstime_t ns;
-  /* timestamp */
-  ns.secs = tvb_get_letohl(tvb,offset);
-  ns.nsecs=0;
-  proto_tree_add_time(tree, hf_lustre_obdo_o_ctime, tvb, offset, 8, &ns );
-  offset+=8;
-  return offset;
-}
-
-static int
-lustre_dissect_element_obdo_o_blocks(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_obdo_o_blocks);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_obdo_o_grant(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_obdo_o_grant);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_obdo_o_blksize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_obdo_o_blksize);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_obdo_o_mode(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_obdo_o_mode);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_obdo_o_uid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_obdo_o_uid);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_obdo_o_gid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_obdo_o_gid);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_obdo_o_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_obdo_o_flags);
-  /* TODO rajouter ça  , faire une fonction générique qui s'occupe de tous les flags d'un tableau. */
-  /*   LOBDFlags = {*/
-  /*0x00000001 : "OBD_FL_INLINEDATA",*/
-  /*0x00000002 : "OBD_FL_OBDMDEXISTS",*/
-  /*0x00000004 : "OBD_FL_DELORPHAN",*/
-  /*0x00000008 : "OBD_FL_NORPC",*/
-  /*0x00000010 : "OBD_FL_IDONLY",*/
-  /*0x00000020 : "OBD_FL_RECREATE_OBJS",*/
-  /*0x00000040 : "OBD_FL_DEBUG_CHECK",*/
-  /*0x00000100 : "OBD_FL_NO_USRQUOTA",*/
-  /*0x00000200 : "OBD_FL_NO_GRPQUOTA",*/
-  /*0x00000400 : "OBD_FL_CREATE_CROW",*/
-  /*0x00000800 : "OBD_FL_SRVLOCK",*/
-  //}
-  return offset;
-}
-
-static int
-lustre_dissect_element_obdo_o_nlink(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_obdo_o_nlink);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_obdo_o_parent_oid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_obdo_o_parent_oid);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_obdo_o_misc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_obdo_o_misc);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_obdo_o_ioepoch(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_obdo_o_ioepoch);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_obdo_o_stripe_idx(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_obdo_o_stripe_idx);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_obdo_o_parent_ver(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_obdo_o_parent_ver);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_obdo_o_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=lustre_dissect_struct_handle_cookie(tvb,offset,pinfo,tree,hf_lustre_obdo_o_handle);
-  return offset;
-}
-
-static int
-lustre_dissect_element_obdo_o_lcookie(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=lustre_dissect_struct_llog_cookie(tvb,offset,pinfo,tree,hf_lustre_obdo_o_lcookie);
-  return offset;
-}
-
-static int
-lustre_dissect_element_obdo_o_uid_h(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_obdo_o_uid_h);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_obdo_o_gid_h(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_obdo_o_gid_h);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_obdo_o_padding_3(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_obdo_o_padding_3);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_obdo_o_padding_4(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_obdo_o_padding_4);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_obdo_o_padding_5(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_obdo_o_padding_5);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_obdo_o_padding_6(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_obdo_o_padding_6);
-
-  return offset;
-}
-
-int
-lustre_dissect_struct_obdo(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, int hf_index _U_)
-{
-  proto_item *item = NULL;
-  proto_tree *tree = NULL;
-  int old_offset;
-
-
-  old_offset=offset;
-
-  if (parent_tree) {
-    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
-    tree = proto_item_add_subtree(item, ett_lustre_obdo);
-  }
-
-  offset=lustre_dissect_element_obdo_o_valid(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_obdo_o_id(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_obdo_o_seq(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_obdo_o_parent_seq(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_obdo_o_size(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_obdo_o_mtime(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_obdo_o_atime(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_obdo_o_ctime(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_obdo_o_blocks(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_obdo_o_grant(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_obdo_o_blksize(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_obdo_o_mode(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_obdo_o_uid(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_obdo_o_gid(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_obdo_o_flags(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_obdo_o_nlink(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_obdo_o_parent_oid(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_obdo_o_misc(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_obdo_o_ioepoch(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_obdo_o_stripe_idx(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_obdo_o_parent_ver(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_obdo_o_handle(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_obdo_o_lcookie(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_obdo_o_uid_h(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_obdo_o_gid_h(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_obdo_o_padding_3(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_obdo_o_padding_4(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_obdo_o_padding_5(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_obdo_o_padding_6(tvb, offset, pinfo, tree);
-
-
-  proto_item_set_len(item, offset-old_offset);
-
-  return offset;
-}
-
-
-
-/* IDL: struct ost_body { */
-/* IDL:        struct obdo { */
-/* IDL: } oa; */
-/* IDL: } */
-
-static int
-lustre_dissect_element_ost_body_oa(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=lustre_dissect_struct_obdo(tvb,offset,pinfo,tree,hf_lustre_ost_body_oa);
-  return offset;
-}
-
-int
-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_)
-{
-  proto_item *item = NULL;
-  proto_tree *tree = NULL;
-  int old_offset;
-
-  old_offset=offset;
-
-  if (parent_tree) {
-    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
-    tree = proto_item_add_subtree(item, ett_lustre_ost_body);
-  }
-
-  offset=lustre_dissect_element_ost_body_oa(tvb, offset, pinfo, tree);
-
-  proto_item_set_len(item, offset-old_offset);
-
-  return offset;
-}
-
-
-/* TODO : find when this Structure appear on the wire */
-/* IDL: struct qunit_data { */
-/* IDL:        uint32 qd_id; */
-/* IDL:        uint32 qd_flags; */
-/* IDL:        uint64 qd_count; */
-/* IDL:        uint64 qd_qunit; */
-/* IDL:        uint64 padding; */
-/* IDL: } */
-
-static int
-lustre_dissect_element_qunit_data_qd_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_qunit_data_qd_id);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_qunit_data_qd_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_qunit_data_qd_flags);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_qunit_data_qd_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_qunit_data_qd_count);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_qunit_data_qd_qunit(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_qunit_data_qd_qunit);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_qunit_data_padding(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_qunit_data_padding);
-
-  return offset;
-}
-
-int
-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_)
-{
-  proto_item *item = NULL;
-  proto_tree *tree = NULL;
-  int old_offset;
-
-
-
-  old_offset=offset;
-
-  if (parent_tree) {
-    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
-    tree = proto_item_add_subtree(item, ett_lustre_qunit_data);
-  }
-
-  offset=lustre_dissect_element_qunit_data_qd_id(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_qunit_data_qd_flags(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_qunit_data_qd_count(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_qunit_data_qd_qunit(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_qunit_data_padding(tvb, offset, pinfo, tree);
-
-
-  proto_item_set_len(item, offset-old_offset);
-
-  return offset;
-}
-
-/* TODO : find when this Structure appear on the wire */
-/* IDL: struct qunit_data_old2 { */
-/* IDL:        uint32 qd_id; */
-/* IDL:        uint32 qd_flags; */
-/* IDL:        uint64 qd_count; */
-/* IDL: } */
-
-static int
-lustre_dissect_element_qunit_data_old2_qd_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_qunit_data_old2_qd_id);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_qunit_data_old2_qd_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_qunit_data_old2_qd_flags);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_qunit_data_old2_qd_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_qunit_data_old2_qd_count);
-
-  return offset;
-}
-
-int
-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_)
-{
-  proto_item *item = NULL;
-  proto_tree *tree = NULL;
-  int old_offset;
-
-
-
-  old_offset=offset;
-
-  if (parent_tree) {
-    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
-    tree = proto_item_add_subtree(item, ett_lustre_qunit_data_old2);
-  }
-
-  offset=lustre_dissect_element_qunit_data_old2_qd_id(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_qunit_data_old2_qd_flags(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_qunit_data_old2_qd_count(tvb, offset, pinfo, tree);
-
-
-  proto_item_set_len(item, offset-old_offset);
-
-  return offset;
-}
-
-/* TODO : find when this Structure appear on the wire */
-/* IDL: struct qunit_data_old { */
-/* IDL:        uint32 qd_id; */
-/* IDL:        uint32 qd_type; */
-/* IDL:        uint32 qd_count; */
-/* IDL:        uint32 qd_isblk; */
-/* IDL: } */
-
-static int
-lustre_dissect_element_qunit_data_old_qd_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_qunit_data_old_qd_id);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_qunit_data_old_qd_type(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_qunit_data_old_qd_type);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_qunit_data_old_qd_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_qunit_data_old_qd_count);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_qunit_data_old_qd_isblk(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-  offset=dissect_uint32(tvb, offset, pinfo, tree,  hf_lustre_qunit_data_old_qd_isblk);
-
-  return offset;
-}
-
-int
-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_)
-{
-  proto_item *item = NULL;
-  proto_tree *tree = NULL;
-  int old_offset;
-
-
-
-  old_offset=offset;
-
-  if (parent_tree) {
-    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
-    tree = proto_item_add_subtree(item, ett_lustre_qunit_data_old);
-  }
-
-  offset=lustre_dissect_element_qunit_data_old_qd_id(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_qunit_data_old_qd_type(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_qunit_data_old_qd_count(tvb, offset, pinfo, tree);
-
-  offset=lustre_dissect_element_qunit_data_old_qd_isblk(tvb, offset, pinfo, tree);
-
-
-  proto_item_set_len(item, offset-old_offset);
-
-  return offset;
-}
-
-int
-lustre_dissect_struct_seq(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, int hf_index _U_ )
-{
-  offset=dissect_uint32(tvb, offset, pinfo, parent_tree,  hf_index);
-  /* Pad out to 8 bytes */
-  offset=add_extra_padding(tvb,offset,pinfo,parent_tree);
-
-  return offset;
-}
-
-int
-lustre_dissect_struct_seq_range(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_)
-{
-  proto_item *item = NULL;
-  proto_tree *tree = NULL;
-  int old_offset;
-
-  old_offset=offset;
-
-  if (parent_tree) {
-    item = proto_tree_add_item(parent_tree, hf_lustre_seq_range, tvb, offset, -1, TRUE);
-    tree = proto_item_add_subtree(item, ett_lustre_seq_range);
-  }
-
-  offset=dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_seq_range_start);
-  offset=dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_seq_range_end);
-  offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_seq_range_index);
-  offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_seq_range_flags);
-
-  if (item)
-    proto_item_set_len(item, offset-old_offset);
-
-  return offset;
-}
-
-int
-lustre_dissect_struct_fld_range(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_)
-{
-  proto_item *item = NULL;
-  proto_tree *tree = NULL;
-  int old_offset;
-
-  old_offset=offset;
-
-  if (parent_tree) {
-    item = proto_tree_add_item(parent_tree, hf_lustre_fld_range, tvb, offset, -1, TRUE);
-    tree = proto_item_add_subtree(item, ett_lustre_fld_range);
-  }
-
-  offset=dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_fld_range_start);
-  offset=dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_fld_range_end);
-  offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_fld_range_index);
-  offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_fld_range_flags);
-
-  if (item)
-    proto_item_set_len(item, offset-old_offset);
-
-  return offset;
-}
-
-int
-lustre_dissect_struct_mdt_ioepoch(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, int hf_index _U_)
-{
-  proto_item *item = NULL;
-  proto_tree *tree = NULL;
-  int old_offset;
-
-  old_offset=offset;
-
-  if (parent_tree) {
-    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
-    tree = proto_item_add_subtree(item, ett_lustre_mdt_ioepoch);
-  }
-
-  offset=lustre_dissect_struct_handle_cookie(tvb, offset, pinfo, tree, hf_lustre_mdt_ioepoch_handle);
-  offset=dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_mdt_ioepoch_ioepoch);
-  offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_mdt_ioepoch_flags);
-  offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_mdt_ioepoch_padding);
-
-  if (item)
-    proto_item_set_len(item, offset-old_offset);
-  return offset;
-}
-
-/* IDL: struct lustre_capa {
- * IDL:         struct lu_fid   lc_fid;
- * IDL:         __u64           lc_opc;
- * IDL:         __u64           lc_uid;
- * IDL:         __u64           lc_gid;
- * IDL:         __u32           lc_flags;
- * IDL:         __u32           lc_keyid;
- * IDL:         __u32           lc_timeout;
- * IDL:         __u32           lc_expiry;
- * IDL:         __u8            lc_hmac[64];
- * IDL: } __attribute__((packed));
- */
-
-/** lustre_capa::lc_opc */
-/* enum { */
-/*         CAPA_OPC_BODY_WRITE   = 1<<0,  **< write object data  */
-/*         CAPA_OPC_BODY_READ    = 1<<1,  **< read object data  */
-/*         CAPA_OPC_INDEX_LOOKUP = 1<<2,  **< lookup object fid  */
-/*         CAPA_OPC_INDEX_INSERT = 1<<3,  **< insert object fid  */
-/*         CAPA_OPC_INDEX_DELETE = 1<<4,  **< delete object fid  */
-/*         CAPA_OPC_OSS_WRITE    = 1<<5,  **< write oss object data  */
-/*         CAPA_OPC_OSS_READ     = 1<<6,  **< read oss object data */
-/*         CAPA_OPC_OSS_TRUNC    = 1<<7,  **< truncate oss object */
-/*         CAPA_OPC_OSS_DESTROY  = 1<<8,  **< destroy oss object  */
-/*         CAPA_OPC_META_WRITE   = 1<<9,  **< write object meta data */
-/*         CAPA_OPC_META_READ    = 1<<10, **< read object meta data  */
-/* }; */
-
-int
-lustre_dissect_element_capa_opc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_)
-{
-  /* TODO - pick apart bits */
-  offset = dissect_uint64(tvb, offset, pinfo, parent_tree, hf_lustre_capa_opc);
-  return offset;
-}
-
-int
-lustre_dissect_element_capa_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_)
-{
-  /* TODO - pick apart flags */
-  offset=dissect_uint32(tvb,offset,pinfo,parent_tree,hf_lustre_capa_flags);
-  return offset;
-}
-
-int
-lustre_dissect_struct_capa(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_,
-                          proto_tree *parent_tree _U_, int hf_index _U_, guint32 buf_num)
-{
-  proto_item *item = NULL;
-  proto_tree *tree = NULL;
-  int old_offset;
-  int data_len;
-
-  old_offset=offset;
-
-  data_len = LUSTRE_BUFFER_LEN(buf_num);
-  if (data_len == 0)
-    return offset;
-
-  if (parent_tree) {
-    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
-    tree = proto_item_add_subtree(item, ett_lustre_capa);
-  }
-
-  offset=lustre_dissect_struct_lu_fid(tvb,offset,pinfo,tree,hf_lustre_capa_fid);
-
-  offset=lustre_dissect_element_capa_opc(tvb,offset,pinfo,tree);
-
-  offset=dissect_uint64(tvb,offset,pinfo,tree,hf_lustre_capa_uid);
-
-  offset=dissect_uint64(tvb,offset,pinfo,tree,hf_lustre_capa_gid);
-
-  offset=lustre_dissect_element_capa_flags(tvb,offset,pinfo,tree);
-
-  offset=dissect_uint32(tvb,offset,pinfo,tree,hf_lustre_capa_keyid);
-
-  offset=dissect_uint32(tvb,offset,pinfo,tree,hf_lustre_capa_timeout);
-
-  offset=dissect_uint32(tvb,offset,pinfo,tree,hf_lustre_capa_expiry);
-
-  offset=lustre_dissect_struct_hmac(tvb,offset,pinfo,tree, hf_lustre_capa_hmac, 64);
-
-  if (item)
-    proto_item_set_len(item, offset-old_offset);
-  return offset;
-}
-
-int
-lustre_dissect_struct_lquota_id(tvbuff_t *tvb _U_, int offset _U_,
-                               packet_info *pinfo _U_,
-                               proto_tree *parent_tree _U_,
-                               int hf_index _U_)
-{
-       proto_item *item = NULL;
-       proto_tree *tree = NULL;
-       int old_offset;
-
-       old_offset=offset;
-
-       if (parent_tree) {
-               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
-               tree = proto_item_add_subtree(item, ett_lustre_lquota_id);
-       }
-
-       offset=lustre_dissect_struct_lu_fid(tvb,offset,pinfo,tree,hf_lustre_qid_fid);
-       offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_qid_uid);
-       offset=dissect_uint64(tvb, offset, pinfo, tree,  hf_lustre_qid_gid);
-
-       if (item)
-               proto_item_set_len(item, offset-old_offset);
-       return offset;
-}
-
-int
-lustre_dissect_struct_quota_body(tvbuff_t *tvb _U_, int offset _U_,
-                                packet_info *pinfo _U_,
-                                proto_tree *parent_tree _U_,
-                                int hf_index _U_, guint32 buf_num)
-{
-       proto_item *item = NULL;
-       proto_tree *tree = NULL;
-       int old_offset;
-       int data_len;
-
-       old_offset=offset;
-
-       data_len = LUSTRE_BUFFER_LEN(buf_num);
-       if (data_len == 0)
-               return offset;
-
-       if (parent_tree) {
-               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
-               tree = proto_item_add_subtree(item, ett_lustre_quota_body);
-       }
-
-       offset = lustre_dissect_struct_lu_fid(tvb, offset, pinfo, tree, hf_lustre_qb_fid);
-       offset = lustre_dissect_struct_lquota_id(tvb, offset, pinfo, tree, hf_lustre_qb_id);
-       offset = dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_qb_flags);
-       offset = dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_qb_padding);
-       offset = dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_qb_count);
-       offset = dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_qb_usage);
-       offset = dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_qb_slv_ver);
-       offset = lustre_dissect_struct_handle_cookie(tvb, offset, pinfo, tree,
-                                                    hf_lustre_qb_lockh);
-       offset = lustre_dissect_struct_handle_cookie(tvb, offset, pinfo, tree,
-                                                    hf_lustre_qb_glb_lockh);
-       offset = lustre_dissect_struct_element_data(tvb, offset, pinfo, tree,
-                                                   hf_lustre_qb_padding, 32);
-       if (item)
-               proto_item_set_len(item, offset-old_offset);
-       return offset;
-}
-
-int
-lustre_dissect_struct_layout_intent(tvbuff_t *tvb _U_, int offset _U_,
-                                   packet_info *pinfo _U_,
-                                   proto_tree *parent_tree _U_,
-                                   int hf_index _U_, guint32 buf_num)
-{
-       proto_item *item = NULL;
-       proto_tree *tree = NULL;
-       int old_offset;
-       int data_len;
-
-       old_offset=offset;
-
-       data_len = LUSTRE_BUFFER_LEN(buf_num);
-       if (data_len == 0)
-               return offset;
-
-       if (parent_tree) {
-               item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
-               tree = proto_item_add_subtree(item, ett_lustre_layout_intent);
-       }
-
-       offset = dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_layout_intent_opc);
-       offset = dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_layout_intent_flags);
-       offset = dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_layout_intent_start);
-       offset = dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_layout_intent_end);
-       if (item)
-               proto_item_set_len(item, offset-old_offset);
-       return offset;
-}
-
-int
-lustre_dissect_struct_acl(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, int hf_index _U_, guint32 buf_num)
-{
-  proto_item *item = NULL;
-  proto_tree *tree = NULL;
-  int old_offset;
-  int data_len;
-
-  old_offset=offset;
-
-  data_len = LUSTRE_BUFFER_LEN(buf_num);
-  if (data_len == 0)
-    return offset;
-
-  if (parent_tree) {
-    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
-    tree = proto_item_add_subtree(item, ett_lustre_acl);
-  }
-
-  proto_tree_add_item(tree, hf_index, tvb, offset, data_len, TRUE);
-
-  offset+=data_len;
-
-  offset=add_extra_padding(tvb,offset,pinfo,tree);
-
-  if (item)
-    proto_item_set_len(item, offset-old_offset);
-
-  return offset;
-}
-
-/* struct close_data { */
-/*     struct lustre_handle    cd_handle; */
-/*     struct lu_fid           cd_fid; */
-/*     __u64                   cd_data_version; */
-/*     __u64                   cd_reserved[8]; */
-/* }; */
-static int
-lustre_dissect_struct_close_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_,
-                                proto_tree *parent_tree _U_, int hf_index _U_, guint32 buf_num)
-{
-  proto_item *item = NULL;
-  proto_tree *tree = NULL;
-  int old_offset;
-  int data_len;
-
-  old_offset=offset;
-
-  data_len = LUSTRE_BUFFER_LEN(buf_num);
-  if (data_len == 0)
-    return offset;
-
-  if (parent_tree) {
-    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
-    tree = proto_item_add_subtree(item, ett_lustre_close_data);
-  }
-
-  offset=lustre_dissect_element_handle_cookie(tvb,offset,pinfo,tree);
-  offset=lustre_dissect_struct_lu_fid(tvb,offset,pinfo,tree,hf_lustre_close_fid);
-  offset=dissect_uint64(tvb,offset,pinfo,tree,hf_lustre_close_data_ver);
-  offset=lustre_dissect_struct_element_data(tvb,offset,pinfo,tree,hf_lustre_close_reserved,8*sizeof(guint64));
-
-  if (item)
-    proto_item_set_len(item, offset-old_offset);
-
-  return offset;
-}
-
-static int
-lustre_dissect_element_mds_getinfo_vallen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int hf_index _U_, guint32 buf_num)
-{
-  int data_len;
-
-  data_len = LUSTRE_BUFFER_LEN(buf_num);
-  if (data_len == 0)
-    return offset;
-
-  offset=dissect_uint32(tvb, offset, pinfo, tree, hf_index);
-
-  offset=add_extra_padding(tvb,offset,pinfo,tree);
-
-  return offset;
-}
-
-
-/* ------------------------------------------------------------------------- *
- * HSM Dissection
- *
- * struct hsm_request {
- * __u32 hr_action;    /\* enum hsm_user_action *\/
- * __u32 hr_archive_id;        /\* archive id, used only with HUA_ARCHIVE *\/
- * __u64 hr_flags;             /\* request flags *\/
- * __u32 hr_itemcount; /\* item count in hur_user_item vector *\/
- * __u32 hr_data_len;
- */
-
-int
-lustre_dissect_element_hsm_req_action(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_)
-{
-  offset=dissect_uint32(tvb,offset,pinfo,parent_tree,hf_lustre_hsm_req_action);
-  return offset;
-}
-
-int
-lustre_dissect_element_hsm_req_flags(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_)
-{
-  /* TODO - pick apart request flags - HSM_FORCE_ACTION, HSM_GHOST_COPY */
-  offset=dissect_uint64(tvb,offset,pinfo,parent_tree,hf_lustre_hsm_req_flags);
-  return offset;
-}
-
-static int
-lustre_dissect_struct_hsm_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_,
-                                 proto_tree *parent_tree _U_, int hf_index _U_, guint32 buf_num)
-{
-  proto_item *item = NULL;
-  proto_tree *tree = NULL;
-  int old_offset;
-  int data_len;
-  guint32 action;
-
-  old_offset=offset;
-
-  data_len = LUSTRE_BUFFER_LEN(buf_num);
-  if (data_len == 0)
-    return offset;
-
-  if (parent_tree) {
-    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
-    tree = proto_item_add_subtree(item, ett_lustre_hsm_request);
-  }
-
-  action=tvb_get_letohl(tvb,offset);
-  display_info_fstr(parent_tree->parent, pinfo->cinfo, COL_INFO, "[%s]", val_to_str(action, lustre_hsm_user_action_t_vals, "Unknown cr_opc"));
-
-  offset=lustre_dissect_element_hsm_req_action(tvb,offset,pinfo,tree);
-
-  offset=dissect_uint32(tvb,offset,pinfo,tree,hf_lustre_hsm_req_archive_id);
-
-  offset=lustre_dissect_element_hsm_req_flags(tvb,offset,pinfo,tree);
-
-  offset=dissect_uint32(tvb,offset,pinfo,tree,hf_lustre_hsm_req_itemcount);
-
-  offset=dissect_uint32(tvb,offset,pinfo,tree,hf_lustre_hsm_req_data_len);
-
-  if (item)
-    proto_item_set_len(item, offset-old_offset);
-  return offset;
-}
-
-/* struct hsm_extent { */
-/*     __u64 offset; */
-/*     __u64 length; */
-/* } */
-static int
-lustre_dissect_struct_hsm_extent(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_,
-                                   proto_tree *parent_tree _U_, int hf_index _U_)
-{
-  proto_item *item = NULL;
-  proto_tree *tree = NULL;
-  int old_offset;
-
-  old_offset=offset;
-
-  if (parent_tree) {
-    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
-    tree = proto_item_add_subtree(item, ett_lustre_hsm_extent);
-  }
-
-  offset=dissect_uint64(tvb,offset,pinfo,tree,hf_lustre_hsm_extent_offset);
-
-  offset=dissect_uint64(tvb,offset,pinfo,tree,hf_lustre_hsm_extent_length);
-
-  if (item)
-    proto_item_set_len(item, offset-old_offset);
-  return offset;
-}
-
-/* struct hsm_user_item { */
-/*        struct lu_fid        hui_fid; */
-/*        struct hsm_extent hui_extent; */
-/* } __attribute__((packed)); */
-static int
-lustre_dissect_struct_hsm_user_item(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_,
-                                   proto_tree *parent_tree _U_, int hf_index _U_, guint32 buf_num)
-{
-  proto_item *item = NULL;
-  proto_tree *tree = NULL;
-  int old_offset;
-  int data_len;
-
-  old_offset=offset;
-
-  data_len = LUSTRE_BUFFER_LEN(buf_num);
-  if (data_len == 0)
-    return offset;
-
-  if (parent_tree) {
-    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
-    tree = proto_item_add_subtree(item, ett_lustre_hsm_user_item);
-  }
-
-  offset=lustre_dissect_struct_lu_fid(tvb,offset,pinfo,tree,hf_lustre_hsm_user_item_fid);
-
-  offset=lustre_dissect_struct_hsm_extent(tvb,offset,pinfo,tree,hf_lustre_hsm_user_item_extent);
-
-  if (item)
-    proto_item_set_len(item, offset-old_offset);
-  return offset;
-}
-
-/* struct hsm_progress_kernel { */
-/*     struct lu_fid           hpk_fid; */
-/*     __u64                   hpk_cookie; */
-/*     struct hsm_extent       hpk_extent; */
-/*     __u16                   hpk_flags; */
-/*     __u16                   hpk_errval; */
-/*     __u32                   hpk_padding1; */
-/*     __u64                   hpk_data_version; */
-/*     __u64                   hpk_padding2; */
-/* } __attribute__((packed)); */
-static int
-lustre_dissect_struct_hsm_progress(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_,
-                                 proto_tree *parent_tree _U_, int hf_index _U_, guint32 buf_num)
-{
-  proto_item *item = NULL;
-  proto_tree *tree = NULL;
-  int old_offset;
-  int data_len;
-
-  old_offset=offset;
-
-  data_len = LUSTRE_BUFFER_LEN(buf_num);
-  if (data_len == 0)
-    return offset;
-
-  if (parent_tree) {
-    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
-    tree = proto_item_add_subtree(item, ett_lustre_hsm_progress);
-  }
-
-  offset=lustre_dissect_struct_lu_fid(tvb,offset,pinfo,tree,hf_lustre_hsm_prog_fid);
-
-  offset=dissect_uint64(tvb,offset,pinfo,tree,hf_lustre_hsm_prog_cookie);
-
-  offset=lustre_dissect_struct_hsm_extent(tvb,offset,pinfo,tree,hf_lustre_hsm_prog_extent);
-
-  offset=dissect_uint16(tvb,offset,pinfo,tree,hf_lustre_hsm_prog_flags);
-
-  offset=dissect_uint16(tvb,offset,pinfo,tree,hf_lustre_hsm_prog_errval);
-
-  offset=dissect_uint32(tvb,offset,pinfo,tree,hf_lustre_extra_padding);
-
-  offset=dissect_uint64(tvb,offset,pinfo,tree,hf_lustre_hsm_prog_data_ver);
-
-  offset=dissect_uint64(tvb,offset,pinfo,tree,hf_lustre_extra_padding);
-
-  if (item)
-    proto_item_set_len(item, offset-old_offset);
-  return offset;
-}
-
-static int
-lustre_dissect_struct_element_states(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_,
-                                    proto_tree *parent_tree _U_, int hf_index _U_)
-{
-  offset=dissect_uint32(tvb,offset,pinfo,parent_tree,hf_index);
-  return offset;
-}
-
-/* struct hsm_user_state { */
-/*     ** Current HSM states, from enum hsm_states. */
-/*     __u32                   hus_states; */
-/*     __u32                   hus_archive_id; */
-/*     **  The current undergoing action, if there is one */
-/*     __u32                   hus_in_progress_state; */
-/*     __u32                   hus_in_progress_action; */
-/*     struct hsm_extent       hus_in_progress_location; */
-/*     char                    hus_extended_info[]; */
-/* }; */
-static int
-lustre_dissect_struct_hsm_user_state(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_,
-                                    proto_tree *parent_tree _U_, int hf_index _U_, guint32 buf_num)
-{
-  proto_item *item = NULL;
-  proto_tree *tree = NULL;
-  int old_offset;
-  int data_len;
-
-  old_offset=offset;
-
-  data_len = LUSTRE_BUFFER_LEN(buf_num);
-  if (data_len == 0)
-    return offset;
-
-  if (parent_tree) {
-    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
-    tree = proto_item_add_subtree(item, ett_lustre_hsm_user_state);
-  }
-
-  offset=lustre_dissect_struct_element_states(tvb,offset,pinfo,tree,hf_lustre_hsm_us_states);
-  offset=dissect_uint32(tvb,offset,pinfo,tree,hf_lustre_hsm_us_archive_id);
-  offset=dissect_uint32(tvb,offset,pinfo,tree,hf_lustre_hsm_us_in_prog_state);
-  offset=dissect_uint32(tvb,offset,pinfo,tree,hf_lustre_hsm_us_in_prog_action);
-  offset=lustre_dissect_struct_hsm_extent(tvb,offset,pinfo,tree,hf_lustre_hsm_us_in_prog_location);
-  offset=lustre_dissect_struct_element_data(tvb,offset,pinfo,tree,hf_lustre_hsm_us_ext_info,
-                                           (data_len-(offset-old_offset)));
-
-  if (item)
-    proto_item_set_len(item, offset-old_offset);
-  return offset;
-}
-
-
-/* ------------------------------------------------------------------------- */
-/* dissect string .
- * the length of the string is the current buflen
- * @tvb the packet buff
- * @offset the current offset
- * @pinfo
- * @parent_tree
- * @hf_index : the corresponding header field
- * @buf_num  : the corresponding bufnumber of the string (we use it to
- * determine the string length), must respect : 0<bufnum<=bufmax_in_paquet
- */
-static int
-lustre_dissect_element_filename (tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, int hf_index _U_, guint32 buf_num)
-{
-       proto_item *item = NULL;
-       int old_offset;
-       guint32 string_len;
-
-       old_offset = offset;
-
-       string_len = LUSTRE_BUFFER_LEN(buf_num);
-       if (string_len == 0)
-               return offset;
-
-       item = proto_tree_add_item(parent_tree, hf_index, tvb,
-                                  offset, string_len, TRUE);
-       if (string_len > 1) {
-#ifdef WIRESHARK_COMPAT
-               display_info_fstr(parent_tree, pinfo->cinfo, COL_INFO,
-                                 " filename : %s",
-                                 (const gchar *)tvb_get_string(tvb, offset,
-                                                               string_len));
-#else
-               display_info_fstr(parent_tree, pinfo->cinfo, COL_INFO,
-                                 " filename : %s",
-                                 (const gchar *)tvb_get_string_enc(wmem_packet_scope(),
-                                                                   tvb, offset,
-                                                                   string_len,
-                                                                   ENC_ASCII));
-#endif
-       }
-
-       offset += string_len;
-       proto_item_set_len(item, offset-old_offset);
-       offset = add_extra_padding(tvb, offset, pinfo, parent_tree);
-
-       return offset;
-}
-
-static int
-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)
-{
-  proto_item *item = NULL;
-  int old_offset;
-  guint32 string_len;
-
-  old_offset=offset;
-
-  string_len = LUSTRE_BUFFER_LEN(buf_num);
-  if(string_len == 0)
-    return offset;
-
-  item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, string_len, TRUE);
-
-  offset+=string_len;
-  proto_item_set_len(item, offset-old_offset);
-  offset=add_extra_padding(tvb,offset,pinfo,parent_tree); /* after a string we must be aligned to 8 bytes. */
-
-  return offset;
-}
-/* ------------------------------------------------------------------------- */
-static int
-lustre_dissect_raw_nstr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_,
-                       proto_tree *parent_tree _U_, int hf_index _U_,
-                       guint32 max_len _U_)
-{
-       proto_item *item = NULL;
-       int old_offset, string_len;
-       char c;
-
-       old_offset = offset;
-
-       string_len = -1;
-       do {
-               ++ string_len;
-               c = tvb_get_guint8(tvb, offset + string_len);
-       } while (string_len < max_len && c != '\0');
-
-       item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, string_len, TRUE);
-       offset += string_len+1;
-       proto_item_set_len(item, offset-old_offset);
-       return offset;
-}
-
-static int
-lustre_dissect_raw_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_,
-                       proto_tree *parent_tree _U_, int hf_index _U_,
-                       guint32 length _U_)
-{
-       proto_item *item = NULL;
-
-       item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, length, TRUE);
-       proto_item_set_len(item, length);
-       return offset+length;
-}
-
-int
-lustre_dissect_xattr_eavals(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint32 buff_num)
-{
-       /* ldlm_intent_getxattr_server : [eadata][eavals][eavals_lens] *
-        * array length == sizeof(eavals_lens)/sizeof(uint32)
-        * Buff 1: array of strings (name of xattr)
-        * Buff 2: array of data (data of xattr)
-        * Buff 3: array of data lengths (in buff 2)
-        */
-       int count, i, size;
-       int namestart, datastart, lenstart, namelen, datalen, lenlen;
-       int nameoffset, dataoffset;
-       proto_item *item = NULL;
-       proto_tree *tree = NULL;
-
-       namelen = LUSTRE_BUFFER_LEN(buff_num);
-       datalen = LUSTRE_BUFFER_LEN(buff_num+1);
-       lenlen = LUSTRE_BUFFER_LEN(buff_num+2);
-
-       count = lenlen / sizeof(guint32);
-
-       namestart = nameoffset = offset;
-       datastart = namestart + namelen;
-       datastart += (8- datastart%8)%8;
-       dataoffset = datastart;
-       lenstart = datastart + datalen;
-       lenstart += (8- lenstart%8)%8;
-
-       item = proto_tree_add_item(parent_tree, hf_lustre_xattrs, tvb, offset, -1, TRUE);
-       tree = proto_item_add_subtree(item, ett_lustre_xattrs);
-
-       for (i = 0; i < count; ++i) {
-               int sizeoffset;
-               sizeoffset = lenstart + sizeof(guint32)*i;
-               size = tvb_get_letohl(tvb, sizeoffset);
-
-               nameoffset = lustre_dissect_raw_nstr(tvb, nameoffset, pinfo, tree,
-                                                    hf_lustre_xattrs_name,
-                                                    (namestart+namelen)-nameoffset);
-               dataoffset = lustre_dissect_raw_data(tvb, dataoffset, pinfo, tree,
-                                                    hf_lustre_xattrs_data, size);
-               dissect_uint32(tvb, sizeoffset, pinfo, tree, hf_lustre_xattrs_size);
-       }
-
-       offset = lenstart + lenlen;
-       offset += (8- offset%8)%8;
-       proto_item_set_len(item, offset-namestart);
-       return offset;
-}
-
-
-/* Process REINT opcode requests */
-static int reint_opcode_process(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree * tree _U_)
-{
-  guint32 opcode  ;
-
-  opcode = tvb_get_letohl(tvb,offset);
-
-  switch(opcode){
-    case  REINT_SETATTR:
-      /* 2.x+ [rec_setattr][capa1][mdt_epoch][eadata][cookie_data][ldlm_request] */
-      /* old? [rec_setattr][ldlm_request] */
-      offset=lustre_dissect_struct_mdt_rec_setattr(tvb, offset, pinfo, tree,
-                                                  hf_lustre_mdt_rec_setattr);
-      if (LUSTRE_BUFCOUNT > 2) {
-       offset=lustre_dissect_struct_capa(tvb, offset, pinfo, tree,
-                                         hf_lustre_capa, LUSTRE_REQ_REC_OFF+1);
-       if (LUSTRE_BUFFER_LEN(LUSTRE_REQ_REC_OFF+2) > 0)
-         offset=lustre_dissect_struct_mdt_ioepoch(tvb, offset, pinfo, tree,
-                                                  hf_lustre_mdt_ioepoch);
-       offset=lustre_dissect_element_data(tvb, offset, pinfo, tree,
-                                          hf_lustre_mds_xattr_eadata,
-                                          LUSTRE_REQ_REC_OFF+3);
-       if (LUSTRE_BUFFER_LEN(LUSTRE_REQ_REC_OFF+4) > 0)
-         offset=lustre_dissect_struct_llog_cookie(tvb,offset,pinfo,tree,hf_lustre_llog_cookie);
-      }
-      offset=lustre_dissect_struct_ldlm_request(tvb, offset, pinfo, tree,
-                                               hf_lustre_ldlm_request);
-      break;
-    case REINT_CREATE :
-      /* [rec_create][filename][tgt.. à 0 pour l'instant][ldlm_request] */
-      offset=lustre_dissect_struct_mdt_rec_create(tvb, offset, pinfo, tree, hf_lustre_mdt_rec_create);
-      offset=lustre_dissect_struct_capa(tvb, offset, pinfo, tree, hf_lustre_capa, LUSTRE_REQ_REC_OFF+1);
-      offset=lustre_dissect_element_filename(tvb, offset, pinfo, tree, hf_lustre_reint_name, LUSTRE_REQ_REC_OFF+2);
-      /* REINT_CREATE_SLAVE / SYM / RMT_ACL */
-      if (LUSTRE_BUFCOUNT > 4) {
-       /* for CREATE_SYM this is actually name of target - encoded in mdt_rec_create.cr_mode */
-       offset=lustre_dissect_element_data(tvb, offset, pinfo, tree, hf_lustre_reint_name, LUSTRE_REQ_REC_OFF+3);
-       offset=lustre_dissect_struct_ldlm_request(tvb, offset, pinfo, tree,
-                                                 hf_lustre_ldlm_request);
-      }
-      break;
-    case  REINT_LINK:
-      /*[mdt_rec_link][filename][ldlm_req] */
-      offset=lustre_dissect_struct_mdt_rec_link(tvb, offset, pinfo, tree, hf_lustre_mdt_rec_link);
-      offset=lustre_dissect_struct_capa(tvb, offset, pinfo, tree, hf_lustre_capa, LUSTRE_REQ_REC_OFF+1);
-      offset=lustre_dissect_struct_capa(tvb, offset, pinfo, tree, hf_lustre_capa, LUSTRE_REQ_REC_OFF+2);
-      offset=lustre_dissect_element_filename(tvb, offset, pinfo, tree, hf_lustre_reint_old_name, LUSTRE_REQ_REC_OFF+3);
-      if (LUSTRE_BUFFER_LEN(LUSTRE_REQ_REC_OFF+4) > 0)
-      offset=lustre_dissect_struct_ldlm_request(tvb, offset, pinfo, tree, hf_lustre_ldlm_request) ;
-      break;
-    case  REINT_UNLINK:
-      /* reint_unlink_client: [mdt_rec_unlink][capa1][filename][ldlm_req] */
-      offset=lustre_dissect_struct_mdt_rec_unlink(tvb, offset, pinfo, tree, hf_lustre_mdt_rec_unlink);
-      offset=lustre_dissect_struct_capa(tvb, offset, pinfo, tree, hf_lustre_capa, LUSTRE_REQ_REC_OFF+1);
-      if (LUSTRE_BUFFER_LEN(LUSTRE_REQ_REC_OFF+2) == 112) {
-       /* TODO : ugly .. but for now we have to do this */
-        offset=lustre_dissect_struct_obd_quotactl(tvb, offset, pinfo, tree, hf_lustre_obd_quotactl);
-
-      } else {
-        offset=lustre_dissect_element_filename(tvb, offset, pinfo, tree, hf_lustre_reint_name, LUSTRE_REQ_REC_OFF+2);
-        offset=lustre_dissect_struct_ldlm_request(tvb, offset, pinfo, tree, hf_lustre_ldlm_request) ;
-      }
-      break;
-    case  REINT_RENAME: /*mds_rename_unpack : [mdt_rec_rename][filename source][filename target_name][ldlm_request] */
-      offset=lustre_dissect_struct_mdt_rec_rename(tvb, offset, pinfo, tree, hf_lustre_mdt_rec_rename);
-      offset=lustre_dissect_struct_capa(tvb, offset, pinfo, tree, hf_lustre_capa, LUSTRE_REQ_REC_OFF+1);
-      offset=lustre_dissect_struct_capa(tvb, offset, pinfo, tree, hf_lustre_capa, LUSTRE_REQ_REC_OFF+2);
-      offset=lustre_dissect_element_filename(tvb, offset, pinfo, tree, hf_lustre_reint_old_name, LUSTRE_REQ_REC_OFF+3);
-      offset=lustre_dissect_element_filename(tvb, offset, pinfo, tree, hf_lustre_reint_new_name, LUSTRE_REQ_REC_OFF+4);
-      if (LUSTRE_BUFFER_LEN(LUSTRE_REQ_REC_OFF+5) > 0)
-       offset=lustre_dissect_struct_ldlm_request(tvb, offset, pinfo, tree, hf_lustre_ldlm_request) ;
-      break;
-    case  REINT_OPEN: /* [rec_create][filename][eadata] */
-      offset=lustre_dissect_struct_mdt_rec_create(tvb, offset, pinfo, tree, hf_lustre_mdt_rec_create);
-      offset=lustre_dissect_element_filename(tvb, offset, pinfo, tree, hf_lustre_reint_name, LUSTRE_REQ_REC_OFF+1);
-      offset=lustre_dissect_element_data(tvb, offset, pinfo, tree, hf_lustre_mds_xattr_eadata, LUSTRE_REQ_REC_OFF+2);
-      break;
-    case  REINT_SETXATTR:
-      /* 2.x+ [rec_setxattr][capa1][name][eadata][dlm_req] */
-      /* old? [rec_setxattr][ldlm_request] */
-      offset=lustre_dissect_struct_mdt_rec_setxattr(tvb, offset, pinfo, tree, hf_lustre_mdt_rec_setxattr);
-      if (LUSTRE_BUFCOUNT > 2) {
-       offset=lustre_dissect_struct_capa(tvb, offset, pinfo, tree,
-                                         hf_lustre_capa, LUSTRE_REQ_REC_OFF+1);
-       offset=lustre_dissect_element_string(tvb, offset, pinfo, tree, hf_lustre_mds_xattr_name, LUSTRE_REQ_REC_OFF+2);
-       offset=lustre_dissect_element_string(tvb, offset, pinfo, tree, hf_lustre_mds_xattr_eadata_str,
-                                          LUSTRE_REQ_REC_OFF+3);
-       if (LUSTRE_BUFFER_LEN(LUSTRE_REQ_REC_OFF+4) > 0)
-         offset=lustre_dissect_struct_ldlm_request(tvb, offset, pinfo, tree, hf_lustre_ldlm_request) ;
-      } else if (LUSTRE_BUFCOUNT == 2)
-       offset=lustre_dissect_struct_ldlm_request(tvb, offset, pinfo, tree,
-                                                 hf_lustre_ldlm_request);
-      break;
-  }
-
-  return offset ;
-}
-
-
-/* dissect a connect message */
-static int
-lustre_dissect_generic_connect(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_)
-{
-       /*TODO : add a cuuid and target uid */
-       offset = lustre_dissect_struct_obd_uuid(tvb, offset, pinfo, tree,
-                                               hf_lustre_obd_uuid);
-       offset = lustre_dissect_struct_obd_uuid(tvb, offset, pinfo, tree,
-                                               hf_lustre_obd_uuid);
-       offset = lustre_dissect_struct_handle_cookie(tvb, offset, pinfo, tree,
-                                                    hf_lustre_mdt_body_handle);
-       offset = lustre_dissect_struct_obd_connect_data(tvb, offset, pinfo,
-                       tree, hf_lustre_obd_connect_data, 4);
-       return offset;
-}
-
-int
-lustre_dissect_struct_lu_ladvise(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_,
-                                proto_tree *parent_tree _U_, int hf_index _U_, guint32 buf_num)
-{
-  proto_item *item = NULL;
-  proto_tree *tree = NULL;
-  int old_offset;
-  int data_len;
-
-  old_offset=offset;
-
-  data_len = LUSTRE_BUFFER_LEN(buf_num);
-  if (data_len == 0)
-    return offset;
-
-  if (parent_tree) {
-    item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
-    tree = proto_item_add_subtree(item, ett_lustre_ladvise);
-  }
-
-  offset=dissect_uint64(tvb,offset,pinfo,tree,hf_lustre_lu_ladvise_lla_start);
-
-  offset=dissect_uint64(tvb,offset,pinfo,tree,hf_lustre_lu_ladvise_lla_end);
-
-  offset=dissect_uint64(tvb,offset,pinfo,tree,hf_lustre_lu_ladvise_lla_advice);
-
-  offset=dissect_uint64(tvb,offset,pinfo,tree,hf_lustre_lu_ladvise_lla_padding);
-
-  if (item)
-    proto_item_set_len(item, offset-old_offset);
-  return offset;
-}
-
-static int
-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)
-{
-  guint32 i ;
-
-  switch (opc){
-    case OST_REPLY: /* obsolete so nothing */
-      break;
-    case OST_GETATTR:
-      offset=lustre_dissect_struct_ost_body(tvb, offset, pinfo, tree, hf_lustre_ost_body) ;
-      if (pb_type == PTL_RPC_MSG_REQUEST)
-         offset=lustre_dissect_struct_capa(tvb,offset,pinfo,tree, hf_lustre_capa, LUSTRE_REQ_REC_OFF+1);
-      break;
-    case OST_SETATTR:
-      offset=lustre_dissect_struct_ost_body(tvb, offset, pinfo, tree, hf_lustre_ost_body) ;
-      if (pb_type == PTL_RPC_MSG_REQUEST)
-         offset=lustre_dissect_struct_capa(tvb,offset,pinfo,tree, hf_lustre_capa, LUSTRE_REQ_REC_OFF+1);
-      break;
-    case OST_READ: /* [OST_BODY][obd_ioobj][niobuf_remote] for request, [OST_BODY] for reply */
-      offset=lustre_dissect_struct_ost_body(tvb, offset, pinfo, tree, hf_lustre_ost_body) ;
-      if(pb_type==PTL_RPC_MSG_REQUEST){
-        offset=lustre_dissect_struct_obd_ioobj(tvb, offset, pinfo, tree,   hf_lustre_obd_ioobj);
-        offset=lustre_dissect_struct_niobuf_remote(tvb,offset,pinfo, tree, hf_lustre_niobuf_remote);
-      }
-      break;
-    case OST_WRITE:
-      offset=lustre_dissect_struct_ost_body(tvb, offset, pinfo, tree,
-                                           hf_lustre_ost_body);
-      if(pb_type==PTL_RPC_MSG_REQUEST) {
-        for (i = 0; i < (LUSTRE_BUFFER_LEN(LUSTRE_REQ_REC_OFF+1))/24; i++)
-          offset=lustre_dissect_struct_obd_ioobj(tvb, offset, pinfo, tree, hf_lustre_obd_ioobj);
-        offset=lustre_dissect_struct_niobuf_remote(tvb,offset,pinfo, tree, hf_lustre_obd_ioobj);
-      }
-      if(pb_type==PTL_RPC_MSG_REPLY) { /* niocount *[uint32], but niocount is in request message, so
-                                         we use the bufcount */
-        for (i = 0; i < LUSTRE_BUFCOUNT-2; i++) /* -2 because we have already dissect 2 buffers : ptl + ost */
-          offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_nio);
-       offset=add_extra_padding(tvb, offset, pinfo, tree);
-      }
-      break;
-    case OST_CREATE:
-      offset=lustre_dissect_struct_ost_body(tvb, offset, pinfo, tree, hf_lustre_ost_body) ;
-      if (pb_type == PTL_RPC_MSG_REQUEST)
-         offset=lustre_dissect_struct_capa(tvb,offset,pinfo,tree, hf_lustre_capa, LUSTRE_REQ_REC_OFF+1);
-      break;
-    case OST_DESTROY:
-      offset=lustre_dissect_struct_ost_body(tvb, offset, pinfo, tree, hf_lustre_ost_body) ;
-      if(pb_type==PTL_RPC_MSG_REQUEST) {/* [ost_body][ldlm_req][capa] */
-        if ( LUSTRE_BUFFER_LEN(LUSTRE_REQ_REC_OFF +1) != 0)
-          offset=lustre_dissect_struct_ldlm_request(tvb, offset, pinfo, tree, hf_lustre_ldlm_request);
-       offset=lustre_dissect_struct_capa(tvb,offset,pinfo,tree, hf_lustre_capa, LUSTRE_REPLY_REC_OFF+2);
-      }
-      break;
-    case OST_GET_INFO:
-      if(pb_type==PTL_RPC_MSG_REQUEST) /* [key] */
-        offset=lustre_dissect_element_filename(tvb, offset, pinfo, tree, hf_lustre_ost_key, LUSTRE_REQ_REC_OFF);
-      if (pb_type==PTL_RPC_MSG_REPLY)
-        offset=lustre_dissect_element_filename(tvb, offset, pinfo, tree, hf_lustre_ost_val, LUSTRE_REQ_REC_OFF); /* val */
-      break;
-    case OST_CONNECT:
-      if (pb_type==PTL_RPC_MSG_REQUEST) /* [targetuuid][clientuuid][lustre_handle][obd_connect_data] */
-        offset=lustre_dissect_generic_connect(tvb,offset,pinfo,tree);
-      if (pb_type==PTL_RPC_MSG_REPLY)
-       offset = lustre_dissect_struct_obd_connect_data(tvb, offset, pinfo,
-                       tree, hf_lustre_obd_connect_data, 1);
-      break;
-    case OST_DISCONNECT: /* [nothing] */
-      break;
-    case OST_PUNCH: /* [ost_body] */
-      offset=lustre_dissect_struct_ost_body(tvb, offset, pinfo, tree, hf_lustre_ost_body) ;
-      if (pb_type == PTL_RPC_MSG_REQUEST)
-         offset=lustre_dissect_struct_capa(tvb,offset,pinfo,tree, hf_lustre_capa, LUSTRE_REQ_REC_OFF+1);
-      break;
-    case OST_OPEN: /* [nothing] in the code maybee obsolete */
-      break;
-    case OST_CLOSE: /* [nothing] in the code maybee obsolete */
-      break;
-    case OST_STATFS: /* [obd_statfs] */
-      if (pb_type==PTL_RPC_MSG_REPLY)
-         offset=lustre_dissect_struct_obd_statfs(tvb, offset, pinfo, tree, hf_lustre_obd_statfs) ;
-      break;
-    case OST_SYNC:
-      /*[ost_body] in both case */
-      offset=lustre_dissect_struct_ost_body(tvb, offset, pinfo, tree, hf_lustre_ost_body) ;
-      if (pb_type == PTL_RPC_MSG_REQUEST)
-         offset=lustre_dissect_struct_capa(tvb,offset,pinfo,tree, hf_lustre_capa, LUSTRE_REQ_REC_OFF+1);
-      break;
-    case OST_SET_INFO:
-      if(pb_type==PTL_RPC_MSG_REQUEST)
-      {
-        offset=lustre_dissect_element_filename(tvb, offset, pinfo, tree, hf_lustre_ost_key, LUSTRE_REQ_REC_OFF); /* key  */
-        offset=lustre_dissect_element_string(tvb, offset, pinfo, tree, hf_lustre_ost_val, LUSTRE_REQ_REC_OFF+1); /* val */
-      }
-      /* if Key = "evict_by_nid" --> need to be process.. TODO */
-      break;
-    case OST_QUOTACHECK:
-      if(pb_type==PTL_RPC_MSG_REQUEST)
-        offset=lustre_dissect_struct_obd_quotactl(tvb, offset, pinfo, tree, hf_lustre_obd_quotactl) ;
-      /* nothing in reply */
-      break;
-    case OST_QUOTACTL:
-      /*[obd_quotactl in both case]*/
-      offset=lustre_dissect_struct_obd_quotactl(tvb, offset, pinfo, tree, hf_lustre_obd_quotactl) ;
-    case OST_QUOTA_ADJUST_QUNIT:
-      /* [quota_adjust_qunit] in both case ? */
-      offset=lustre_dissect_struct_quota_adjust_qunit(tvb, offset, pinfo, tree, hf_lustre_quota_adjust_qunit) ;
-    case OST_LADVISE:
-      /*[ost_body] in both case */
-      offset=lustre_dissect_struct_ost_body(tvb, offset, pinfo, tree, hf_lustre_ost_body) ;
-      if (pb_type == PTL_RPC_MSG_REQUEST) {
-         offset=lustre_dissect_struct_capa(tvb, offset, pinfo, tree, hf_lustre_capa, LUSTRE_REQ_REC_OFF+1);
-         offset=lustre_dissect_struct_lu_ladvise(tvb, offset, pinfo, tree, hf_lustre_lu_ladvise, LUSTRE_REQ_REC_OFF+2);
-      }
-      break;
-  };
-  return offset;
-}
-
-static int
-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)
-{
-  int i;
-  switch (opc){
-    case MDS_DISCONNECT:
-      /*[nothing]*/
-      break;
-    case MDS_GET_ROOT:
-      /*request: [mds body]*/
-      /*reply:   [mds body][capa] */
-      offset=lustre_dissect_struct_mdt_body(tvb, offset, pinfo, tree, hf_lustre_mdt_body) ;
-      if (pb_type == PTL_RPC_MSG_REPLY)
-         offset=lustre_dissect_struct_capa(tvb,offset,pinfo,tree, hf_lustre_capa, LUSTRE_REPLY_REC_OFF+1);
-      break;
-    case MDS_SETXATTR:
-      if(pb_type==PTL_RPC_MSG_REQUEST)
-        /* [mds body] */
-        offset=lustre_dissect_struct_mdt_body(tvb, offset, pinfo, tree, hf_lustre_mdt_body) ;
-      /*if(reply) : [nothing]*/
-      break;
-    case MDS_GETXATTR:
-      /*request: [mds body][capa][xattr name]*/
-      /*reply:   [mds body][eadata] - ommited on error */
-      offset=lustre_dissect_struct_mdt_body(tvb, offset, pinfo, tree, hf_lustre_mdt_body) ;
-      if(pb_type==PTL_RPC_MSG_REQUEST) {
-       offset=lustre_dissect_struct_capa(tvb,offset,pinfo,tree, hf_lustre_capa, LUSTRE_REPLY_REC_OFF+1);
-        offset=lustre_dissect_element_string(tvb, offset, pinfo, tree, hf_lustre_mds_xattr_name, LUSTRE_REQ_REC_OFF+2);
-      }
-      if (pb_type == PTL_RPC_MSG_REPLY)
-        offset=lustre_dissect_element_data(tvb, offset, pinfo, tree, hf_lustre_mds_xattr_eadata, LUSTRE_REQ_REC_OFF+1);
-      break;
-    case MDS_GETATTR:
-      offset=lustre_dissect_struct_mdt_body(tvb, offset, pinfo, tree, hf_lustre_mdt_body);
-      if (pb_type == PTL_RPC_MSG_REPLY) { /*  [mdt_md][acl][capa1][capa2] */
-       offset=lustre_dissect_struct_lov_mds_md(tvb, offset, pinfo, tree,
-                                            hf_lustre_mds_md_data,
-                                            LUSTRE_REPLY_REC_OFF+1);
-       offset=lustre_dissect_struct_acl(tvb, offset, pinfo, tree,
-                                        hf_lustre_acl, LUSTRE_REPLY_REC_OFF+3);
-       offset=lustre_dissect_struct_capa(tvb, offset, pinfo, tree,
-                                         hf_lustre_capa,
-                                         LUSTRE_REPLY_REC_OFF+4);
-       offset=lustre_dissect_struct_capa(tvb, offset, pinfo, tree,
-                                         hf_lustre_capa,
-                                         LUSTRE_REPLY_REC_OFF+5);
-      }
-      break;
-    case MDS_GETATTR_NAME:
-      if(pb_type==PTL_RPC_MSG_REQUEST)
-        /*[mdt_body]*/
-        offset=lustre_dissect_struct_mdt_body(tvb, offset, pinfo, tree, hf_lustre_mdt_body) ;
-      /*[nothing in reply]*/
-      break;
-    case MDS_DONE_WRITING:
-      /*[mdt_body]*/
-      offset=lustre_dissect_struct_mdt_body(tvb, offset, pinfo, tree, hf_lustre_mdt_body) ;
-      break;
-    case MDS_PIN: /* repbody.. */
-      /*[mdt_body]*/
-      offset=lustre_dissect_struct_mdt_body(tvb, offset, pinfo, tree, hf_lustre_mdt_body) ;
-      break;
-    case MDS_SYNC:
-      /*[mdt_body]*/
-      offset=lustre_dissect_struct_mdt_body(tvb, offset, pinfo, tree, hf_lustre_mdt_body) ;
-      break;
-
-    case MDS_CLOSE:
-      if(pb_type==PTL_RPC_MSG_REQUEST)
-      { /* [mdt_ioepoch][rec_reint][capa1] */
-       offset=lustre_dissect_struct_mdt_ioepoch(tvb, offset, pinfo, tree, hf_lustre_mdt_ioepoch);
-
-       if(LUSTRE_BUFFER_LEN(LUSTRE_REQ_REC_OFF+1) > 0)
-