/* packet-lustre.c * Lustre 1.6 dissection (http://www.lustre.org/) * Author: Laurent George * based on packet-agentx.c and packet-afs.c * partially generated by Pidl * 20080903 * Wireshark - Network traffic analyzer * By Gerald Combs * 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. */ #ifdef HAVE_CONFIG_H #include "config.h" #endif #include #include #include #include #include /* --------------------------------------------------------------------------------------- */ /* 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) #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 LOV_MAGIC_V1 #define LOV_MAGIC_JOIN_V1 0x0BD20BD0 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_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 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_GETSTATUS = 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_LAST_OPC } mds_cmd_t; #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_GETXATTR 0x0040 #define IT_EXEC 0x0080 #define IT_PIN 0x0100 #define MDS_FIRST_OPC MDS_GETATTR #define LDLM_FIRST_OPC LDLM_ENQUEUE typedef enum { REINT_SETATTR = 1, REINT_CREATE = 2, REINT_LINK = 3, REINT_UNLINK = 4, REINT_RENAME = 5, REINT_OPEN = 6, REINT_SETXATTR = 7, // REINT_CLOSE = 8, // REINT_WRITE = 9, REINT_MAX } mds_reint_t; typedef enum { LDLM_ENQUEUE = 101, LDLM_CONVERT = 102, LDLM_CANCEL = 103, LDLM_BL_CALLBACK = 104, LDLM_CP_CALLBACK = 105, LDLM_GL_CALLBACK = 106, LDLM_LAST_OPC } ldlm_cmd_t; #define LDLM_FIRST_OPC LDLM_ENQUEUE #define LDLM_FL_LOCK_CHANGED 0x000001 #define LDLM_FL_BLOCK_GRANTED 0x000002 #define LDLM_FL_BLOCK_CONV 0x000004 #define LDLM_FL_BLOCK_WAIT 0x000008 #define LDLM_FL_CBPENDING 0x000010 #define LDLM_FL_AST_SENT 0x000020 #define LDLM_FL_WAIT_NOREPROC 0x000040 #define LDLM_FL_CANCEL 0x000080 #define LDLM_FL_REPLAY 0x000100 #define LDLM_FL_INTENT_ONLY 0x000200 #define LDLM_FL_LOCAL_ONLY 0x000400 #define LDLM_FL_FAILED 0x000800 #define LDLM_FL_HAS_INTENT 0x001000 #define LDLM_FL_CANCELING 0x002000 #define LDLM_FL_LOCAL 0x004000 #define LDLM_FL_WARN 0x008000 #define LDLM_FL_DISCARD_DATA 0x010000 #define LDLM_FL_NO_TIMEOUT 0x020000 #define LDLM_FL_BLOCK_NOWAIT 0x040000 #define LDLM_FL_TEST_LOCK 0x080000 #define LDLM_FL_LVB_READY 0x100000 #define LDLM_FL_KMS_IGNORE 0x200000 #define LDLM_FL_NO_LRU 0x400000 #define LDLM_FL_CANCEL_ON_BLOCK 0x800000 #define LDLM_FL_CP_REQD 0x1000000 #define LDLM_FL_CLEANED 0x2000000 #define LDLM_FL_ATOMIC_CB 0x4000000 #define LDLM_FL_BL_AST 0x10000000 #define LDLM_FL_BL_DONE 0x20000000 #define LDLM_FL_DENY_ON_CONTENTION 0x40000000 #define LDLM_AST_DISCARD_DATA 0x80000000 #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_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 /* 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_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_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_create_rec = -1; static gint ett_lustre_llog_orphan_rec = -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 ; /* -----------------------------------------------*/ /* 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_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_ost_lvb = -1 ; 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_cbpending = -1; static int hf_lustre_ldlm_fl_ast_sent = -1; static int hf_lustre_ldlm_fl_wait_noreproc = -1; static int hf_lustre_ldlm_fl_cancel = -1; static int hf_lustre_ldlm_fl_replay = -1; static int hf_lustre_ldlm_fl_intent_only = -1; static int hf_lustre_ldlm_fl_local_only = -1; static int hf_lustre_ldlm_fl_failed = -1; static int hf_lustre_ldlm_fl_has_intent = -1; static int hf_lustre_ldlm_fl_canceling = -1; static int hf_lustre_ldlm_fl_local = -1; static int hf_lustre_ldlm_fl_warn = -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_lvb_ready = -1; static int hf_lustre_ldlm_fl_kms_ignore = -1; static int hf_lustre_ldlm_fl_no_lru = -1; static int hf_lustre_ldlm_fl_cancel_on_block = -1; static int hf_lustre_ldlm_fl_cp_reqd = -1; static int hf_lustre_ldlm_fl_cleaned = -1; static int hf_lustre_ldlm_fl_atomic_cb = -1; static int hf_lustre_ldlm_fl_bl_ast = -1; static int hf_lustre_ldlm_fl_bl_done = -1; static int hf_lustre_ldlm_fl_deny_on_contention = -1; static int hf_lustre_ldlm_ast_discard_data = -1; 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_padding_3 = -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_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_padding_3 = -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_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_lustre_msg_v1_lm_handle = -1; static int hf_lustre_ost_lvb_lvb_atime = -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_lov_mds_md_v1_lmm_stripe_size = -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_lov_mds_md_v1_lmm_magic = -1; static int hf_lustre_ptlrpc_body_pb_op_flags = -1; static int hf_lustre_ost_lvb_lvb_ctime = -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_ost_lvb_lvb_mtime = -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_lov_mds_md_v1_lmm_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_lov_mds_md_v1_lmm_stripe_count = -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_lov_mds_md_v1_lmm_objects = -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_lov_mds_md_v1_lmm_pattern = -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_ost_lvb_lvb_size = -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_lov_mds_md_v1_lmm_object_id = -1; static int hf_lustre_ptlrpc_body_pb_last_seen = -1; static int hf_lustre_obd_ioobj_ioo_type = -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_ost_lvb_lvb_blocks = -1; static int hf_lustre_lustre_msg_v2_lm_padding_2 = -1; static int hf_lustre_obd_connect_data_padding1 = -1; static int hf_lustre_lov_ost_data_v1_l_ost_idx = -1; static int hf_lustre_obd_connect_data_padding2 = -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_orphan_rec_lor_tail = -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_create_rec_lcr_tail = -1; static int hf_lustre_llog_logid_lgl_oseq = -1; static int hf_lustre_llog_create_rec_lcr_hdr = -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_llog_create_rec_padding = -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_llog_create_rec_lcr_oid = -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_llog_orphan_rec_lor_hdr = -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_llog_orphan_rec_padding = -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_padding_2 = -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_llog_orphan_rec_lor_ogen = -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_llog_orphan_rec_lor_oid = -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_llog_create_rec_lcr_ogen = -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_llog_create_rec_lcr_fid = -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_getxattr = -1; static int hf_lustre_ldlm_intent_opc_exec = -1; static int hf_lustre_ldlm_intent_opc_pin = -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; /* --------------------------------------------------------------------*/ /* proto declaration */ static gint proto_lustre = -1; 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 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_); 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" }, {0, NULL} }; const value_string lustre_ldlm_flags_vals[] = { {0x000001 , "LDLM_FL_LOCK_CHANGED"}, {0x000002 , "LDLM_FL_BLOCK_GRANTED"}, {0x000004 , "LDLM_FL_BLOCK_CONV"}, {0x000008 , "LDLM_FL_BLOCK_WAIT"}, {0x000010 , "LDLM_FL_CBPENDING"}, {0x000020 , "LDLM_FL_AST_SENT"}, {0x000040 , "LDLM_FL_WAIT_NOREPROC"}, {0x000080 , "LDLM_FL_CANCEL"}, {0x000100 , "LDLM_FL_REPLAY"}, {0x000200 , "LDLM_FL_INTENT_ONLY"}, {0x000400 , "LDLM_FL_LOCAL_ONLY"}, {0x000800 , "LDLM_FL_FAILED"}, {0x001000 , "LDLM_FL_HAS_INTENT"}, {0x002000 , "LDLM_FL_CANCELING"}, {0x004000 , "LDLM_FL_LOCAL"}, {0x008000 , "LDLM_FL_WARN"}, {0x010000 , "LDLM_FL_DISCARD_DATA"}, {0x020000 , "LDLM_FL_NO_TIMEOUT"}, {0x040000 , "LDLM_FL_BLOCK_NOWAIT"}, {0x080000 , "LDLM_FL_TEST_LOCK"}, {0x100000 , "LDLM_FL_LVB_READY"}, {0x200000 , "LDLM_FL_KMS_IGNORE"}, {0x400000 , "LDLM_FL_NO_LRU"}, {0x800000 , "LDLM_FL_CANCEL_ON_BLOCK"}, {0x1000000 , "LDLM_FL_CP_REQD"}, {0x2000000 , "LDLM_FL_CLEANED"}, {0x4000000 , "LDLM_FL_ATOMIC_CB"}, {0x10000000 , "LDLM_FL_BL_AST"}, {0x20000000 , "LDLM_FL_BL_DONE"}, {0x40000000 , "LDLM_FL_DENY_ON_CONTENTION"}, {0x80000000 , "LDLM_AST_DISCARD_DATA"}, { 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[] = { {0x1,"MDS_BFLAG_UNCOMMITTED_WRITES"}, {0x80000000, "MDS_BFLAG_EXT_FLAGS"}, /* == EXT3_RESERVED_FL */ {0x00000008, "MDS_SYNC_FL "}, /* Synchronous updates */ {0x00000010, "MDS_IMMUTABLE_FL "}, /* Immutable file */ {0x00000020, "MDS_APPEND_FL "}, /* writes to file may only append */ {0x00000080, "MDS_NOATIME_FL "}, /* do not update atime */ {0x00010000, "MDS_DIRSYNC_FL "}, /* dirsync behaviour (dir only) */ { 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_t_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" }, { 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_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_GETSTATUS"}, {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_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_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_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"}, { 0, NULL } }; /*const value_string lustre_ldlm_mode_t_vals[] = {*/ /* { LCK_MINMODE, "MINMODE" },*/ /* { LCK_EX, "EX" },*/ /* { LCK_PW, "PW" },*/ /* { LCK_PR, "PR" },*/ /* { LCK_CW, "CW" },*/ /* { LCK_CR, "CR" },*/ /* { LCK_NL, "NL" },*/ /* { LCK_GROUP, "GROUP" },*/ /* { 0, NULL }*/ /*};*/ /* detailled version the information came from : http://wiki.lustre.org/images/e/e5/LustreInternals_Architecture.pdf */ const value_string lustre_ldlm_mode_t_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_t_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 } }; /* ------------------------------------------------------------------- */ /* display functions */ /* ------------------------------------------------------------------- */ /* display str in left corner and in COL */ /* TODO : do we need to use inline here ?*/ /* @gint col : the col where we add the information */ inline 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) if (check_col(cinfo, col)) 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){ //va_start(ap, format); proto_item_append_text(pi, format, str); //va_end(ap); } if (NULL !=cinfo){ if (check_col(cinfo, col)){ // va_list ap; // va_start(ap, format); col_append_fstr(cinfo, col, format, str); // va_end(ap); } } } /* ------------------------------ 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_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; } /* ------------------------------------------------------------------------- */ /* 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_) { offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_obd_connect_data_ocd_version); 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_nllg(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_nllg); return offset; } static int lustre_dissect_element_obd_connect_data_ocd_transno(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_transno); return offset; } static int lustre_dissect_element_obd_connect_data_ocd_group(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_group); 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_element_obd_connect_data_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_obd_connect_data_padding1); return offset; } static int lustre_dissect_element_obd_connect_data_padding2(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_padding2); 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_) { 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_connect_data); } 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); offset=lustre_dissect_element_obd_connect_data_ocd_nllu(tvb, offset, pinfo, tree); offset=lustre_dissect_element_obd_connect_data_ocd_nllg(tvb, offset, pinfo, tree); offset=lustre_dissect_element_obd_connect_data_ocd_transno(tvb, offset, pinfo, tree); offset=lustre_dissect_element_obd_connect_data_ocd_group(tvb, offset, pinfo, tree); offset=lustre_dissect_element_obd_connect_data_ocd_cksum_types(tvb, offset, pinfo, tree); offset=lustre_dissect_element_obd_connect_data_padding1(tvb, offset, pinfo, tree); offset=lustre_dissect_element_obd_connect_data_padding2(tvb, offset, pinfo, tree); 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: uint32 lmm_stripe_count; */ /* IDL: struct lov_ost_data_v1 { */ /* IDL: } lmm_objects[0]; <-- en fait on en a lmm_stripe_count */ /* IDL: } */ static int lustre_dissect_element_lov_mds_md_v1_lmm_magic(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_mds_md_v1_lmm_magic); return offset; } static int lustre_dissect_element_lov_mds_md_v1_lmm_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_mds_md_v1_lmm_pattern); return offset; } static int lustre_dissect_element_lov_mds_md_v1_lmm_object_id(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { offset=dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_lov_mds_md_v1_lmm_object_id); return offset; } static int lustre_dissect_element_lov_mds_md_v1_lmm_object_seq(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { offset=dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_lov_mds_md_v1_lmm_object_seq); return offset; } static int lustre_dissect_element_lov_mds_md_v1_lmm_stripe_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_lov_mds_md_v1_lmm_stripe_size); return offset; } static int lustre_dissect_element_lov_mds_md_v1_lmm_stripe_count(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_lov_mds_md_v1_lmm_stripe_count); return offset; } static int lustre_dissect_element_lov_mds_md_v1_lmm_objects_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { offset=lustre_dissect_struct_lov_ost_data_v1(tvb,offset,pinfo,tree,hf_lustre_lov_mds_md_v1_lmm_objects); return offset; } static int lustre_dissect_element_lov_mds_md_v1_lmm_objects(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, int num) { int i; /*g_print("num = %d", num);*/ for (i = 0; i < num; i++){ offset=lustre_dissect_element_lov_mds_md_v1_lmm_objects_(tvb, offset, pinfo, tree); } return offset; } 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; guint32 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=lustre_dissect_element_lov_mds_md_v1_lmm_magic(tvb, offset, pinfo, tree); offset=lustre_dissect_element_lov_mds_md_v1_lmm_pattern(tvb, offset, pinfo, tree); offset=lustre_dissect_element_lov_mds_md_v1_lmm_object_id(tvb, offset, pinfo, tree); offset=lustre_dissect_element_lov_mds_md_v1_lmm_object_seq(tvb, offset, pinfo, tree); offset=lustre_dissect_element_lov_mds_md_v1_lmm_stripe_size(tvb, offset, pinfo, tree); stripe_count = tvb_get_letohl(tvb,offset); offset=lustre_dissect_element_lov_mds_md_v1_lmm_stripe_count(tvb, offset, pinfo, tree); offset=lustre_dissect_element_lov_mds_md_v1_lmm_objects(tvb, offset, pinfo, tree, stripe_count); proto_item_set_len(item, offset-old_offset); 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_type; */ /* 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_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_ioobj_ioo_type); 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_type(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; */ /* IDL: } */ static int lustre_dissect_element_ost_lvb_lvb_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_ost_lvb_lvb_size); return offset; } static int lustre_dissect_element_ost_lvb_lvb_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_ost_lvb_lvb_mtime, tvb, offset, 8, &ns ); offset+=8; return offset; } static int lustre_dissect_element_ost_lvb_lvb_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_ost_lvb_lvb_atime, tvb, offset, 8, &ns ); offset+=8; return offset; return offset; } static int lustre_dissect_element_ost_lvb_lvb_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_ost_lvb_lvb_ctime, tvb, offset, 8, &ns ); offset+=8; return offset; return offset; } static int lustre_dissect_element_ost_lvb_lvb_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_ost_lvb_lvb_blocks); 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_) { 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_lvb); } offset=lustre_dissect_element_ost_lvb_lvb_size(tvb, offset, pinfo, tree); offset=lustre_dissect_element_ost_lvb_lvb_mtime(tvb, offset, pinfo, tree); offset=lustre_dissect_element_ost_lvb_lvb_atime(tvb, offset, pinfo, tree); offset=lustre_dissect_element_ost_lvb_lvb_ctime(tvb, offset, pinfo, tree); offset=lustre_dissect_element_ost_lvb_lvb_blocks(tvb, offset, pinfo, tree); 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_uin64(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_padding_3; */ /* 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_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_setattr_sa_padding_3); 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_t_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_padding_3(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_padding_3; */ /* 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_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_create_cr_padding_3); 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_t_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_padding_3(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_t_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_t_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_t_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_t_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_t(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_t(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*/ dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_intent_opc_open ); dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_intent_opc_creat ); dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_intent_opc_readdir ); dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_intent_opc_getattr ); dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_intent_opc_lookup ); dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_intent_opc_unlink ); dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_intent_opc_getxattr); dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_intent_opc_exec ); dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_intent_opc_pin ); 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_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" ); } 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_) { // proto_item *item = NULL; //proto_tree *tree = NULL; int old_offset; guint64 intent_opc; proto_item * opcode_item = NULL; proto_tree * opcode_tree = NULL; 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_intent); // //tree = parent_tree; /* TODO : !!!!!!!!!!!!!!! ATTENTIon à revoir, // //fait rapidement pour ne pas avoir le subtree */ // } 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: ldlm_type_t 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_t(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: ldlm_mode_t l_req_mode; */ /* IDL: ldlm_mode_t l_granted_mode; */ /* IDL: ldlm_policy_data_t 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_t(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_t(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_t_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_) { /*if (check_col(pinfo->cinfo, COL_INFO)) */ /* 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 i; for (i = 0; i < 2; 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; 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); 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); proto_item_set_len(item, offset-old_offset); return offset; } /* 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_ast_discard_data); dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_fl_deny_on_contention); dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_fl_bl_done ); dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_fl_bl_ast ); dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_fl_atomic_cb ); dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_fl_cleaned ); dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_fl_cp_reqd ); dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_fl_cancel_on_block ); dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_fl_no_lru ); dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_fl_kms_ignore ); dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_fl_lvb_ready ); dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_fl_test_lock ); dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_fl_block_nowait ); dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_fl_no_timeout ); dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_fl_discard_data ); dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_fl_warn ); dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_fl_local ); dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_fl_canceling ); dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_fl_has_intent ); dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_fl_failed ); dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_fl_local_only ); dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_fl_intent_only ); dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_fl_replay ); dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_fl_cancel ); dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_fl_wait_noreproc ); dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_fl_ast_sent ); dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_fl_cbpending ); dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_fl_block_wait ); dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_fl_block_conv ); dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_fl_block_granted ); offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ldlm_fl_lock_changed ); 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_) { /*if (check_col(pinfo->cinfo, COL_INFO)) */ /* 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_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_create_rec { */ /* IDL: struct llog_rec_hdr { */ /* IDL: } lcr_hdr; */ /* IDL: struct ll_fid { */ /* IDL: } lcr_fid; */ /* IDL: uint64 lcr_oid; */ /* IDL: uint32 lcr_ogen; */ /* IDL: uint32 padding; */ /* IDL: struct llog_rec_tail { */ /* IDL: } lcr_tail; */ /* IDL: } */ static int lustre_dissect_element_llog_create_rec_lcr_hdr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { //offset=lustre_dissect_struct_HASH(0x85d56e0)(tvb,offset,pinfo,tree,hf_lustre_llog_create_rec_lcr_hdr); return offset; } static int lustre_dissect_element_llog_create_rec_lcr_fid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { //offset=lustre_dissect_struct_HASH(0x85d5830)(tvb,offset,pinfo,tree,hf_lustre_llog_create_rec_lcr_fid); return offset; } static int lustre_dissect_element_llog_create_rec_lcr_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_create_rec_lcr_oid); return offset; } static int lustre_dissect_element_llog_create_rec_lcr_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_create_rec_lcr_ogen); return offset; } static int lustre_dissect_element_llog_create_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_create_rec_padding); return offset; } static int lustre_dissect_element_llog_create_rec_lcr_tail(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { //offset=lustre_dissect_struct_HASH(0x85d69dc)(tvb,offset,pinfo,tree,hf_lustre_llog_create_rec_lcr_tail); return offset; } int lustre_dissect_struct_llog_create_rec(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, int hf_index _U_) { 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_create_rec); } offset=lustre_dissect_element_llog_create_rec_lcr_hdr(tvb, offset, pinfo, tree); offset=lustre_dissect_element_llog_create_rec_lcr_fid(tvb, offset, pinfo, tree); offset=lustre_dissect_element_llog_create_rec_lcr_oid(tvb, offset, pinfo, tree); offset=lustre_dissect_element_llog_create_rec_lcr_ogen(tvb, offset, pinfo, tree); offset=lustre_dissect_element_llog_create_rec_padding(tvb, offset, pinfo, tree); offset=lustre_dissect_element_llog_create_rec_lcr_tail(tvb, offset, pinfo, tree); proto_item_set_len(item, offset-old_offset); return offset; } /* IDL: struct llog_orphan_rec { */ /* IDL: struct llog_rec_hdr { */ /* IDL: } lor_hdr; */ /* IDL: uint64 lor_oid; */ /* IDL: uint32 lor_ogen; */ /* IDL: uint32 padding; */ /* IDL: struct llog_rec_tail { */ /* IDL: } lor_tail; */ /* IDL: } */ static int lustre_dissect_element_llog_orphan_rec_lor_hdr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { //offset=lustre_dissect_struct_HASH(0x85d767c)(tvb,offset,pinfo,tree,hf_lustre_llog_orphan_rec_lor_hdr); return offset; } static int lustre_dissect_element_llog_orphan_rec_lor_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_orphan_rec_lor_oid); return offset; } static int lustre_dissect_element_llog_orphan_rec_lor_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_orphan_rec_lor_ogen); return offset; } static int lustre_dissect_element_llog_orphan_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_orphan_rec_padding); return offset; } static int lustre_dissect_element_llog_orphan_rec_lor_tail(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { //offset=lustre_dissect_struct_HASH(0x85d8550)(tvb,offset,pinfo,tree,hf_lustre_llog_orphan_rec_lor_tail); return offset; } int lustre_dissect_struct_llog_orphan_rec(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, int hf_index _U_) { 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_orphan_rec); } offset=lustre_dissect_element_llog_orphan_rec_lor_hdr(tvb, offset, pinfo, tree); offset=lustre_dissect_element_llog_orphan_rec_lor_oid(tvb, offset, pinfo, tree); offset=lustre_dissect_element_llog_orphan_rec_lor_ogen(tvb, offset, pinfo, tree); offset=lustre_dissect_element_llog_orphan_rec_padding(tvb, offset, pinfo, tree); offset=lustre_dissect_element_llog_orphan_rec_lor_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: uint64 o_padding_2; */ /* 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_uint64(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_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_obdo_o_padding_2); 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_padding_2(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; } /* ------------------------------------------------------------------------- */ /* 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 : 0LUSTRE_BUFCOUNT) return offset; string_len = tvb_get_letohl(tvb, LUSTRE_BUFLEN_OFF + 4 * buf_num) ; /* 4 because a buflen is on a guint32 */ proto_tree_add_item(parent_tree, hf_index, tvb, offset, string_len, TRUE); if(string_len>1) display_info_fstr(parent_tree, pinfo->cinfo, COL_INFO, " filename : %s", tvb_get_string(tvb,offset,string_len) ); 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; } /* ------------------------------------------------------------------------- */ /* 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; if(buf_num+1>LUSTRE_BUFCOUNT) return offset; data_len = tvb_get_letohl(tvb, LUSTRE_BUFLEN_OFF + 4 * buf_num) ; /* 4 because a buflen is on a guint32 */ 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); /* align on 8 bytes */ return offset; } /* ------------------------------------------------------------------------ */ 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: /* [eadata][cookie_data][ldlm_request] */ offset=lustre_dissect_struct_mdt_rec_setattr(tvb, offset, pinfo, tree, hf_lustre_mdt_rec_setattr); 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_element_string(tvb, offset, pinfo, tree, hf_lustre_reint_name, LUSTRE_REQ_REC_OFF+1); offset=lustre_dissect_element_string(tvb, offset, pinfo, tree, hf_lustre_reint_name, LUSTRE_REQ_REC_OFF+2); /* this string is all the time =="\0"*/ 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_ldlm_request(tvb, offset, pinfo, tree, hf_lustre_ldlm_request) ; /*TODO : need to be check*/ break; case REINT_UNLINK : /* mds_unlink_unpack : [mdt_rec_unlink][filename][ldlm_req] */ /* [mdt_rec_unlink][filename][ldlm_req][..]*/ offset=lustre_dissect_struct_mdt_rec_unlink(tvb, offset, pinfo, tree, hf_lustre_mdt_rec_unlink); offset=lustre_dissect_element_string(tvb, offset, pinfo, tree, hf_lustre_reint_name, LUSTRE_REQ_REC_OFF+1); if ( (tvb_get_letohl(tvb,LUSTRE_BUFLEN_OFF+4*(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_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_element_string(tvb, offset, pinfo, tree, hf_lustre_reint_old_name, LUSTRE_REQ_REC_OFF+1); offset=lustre_dissect_element_string(tvb, offset, pinfo, tree, hf_lustre_reint_new_name, LUSTRE_REQ_REC_OFF+2); 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_string(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); /* TODO : replace with hf_eadata */ break; case REINT_SETXATTR : /* [eadata][cookie_data][ldlm_request] */ offset=lustre_dissect_struct_mdt_rec_setxattr(tvb, offset, pinfo, tree, hf_lustre_mdt_rec_setxattr); offset=lustre_dissect_struct_ldlm_request(tvb, offset, pinfo, tree, hf_lustre_ldlm_request) ; break; default: 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); 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) ; break; case OST_SETATTR: offset=lustre_dissect_struct_ost_body(tvb, offset, pinfo, tree, hf_lustre_ost_body) ; 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) ; /* [ost_body] in both case */ if(pb_type==PTL_RPC_MSG_REQUEST) { for (i=0;i=2) 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) ; break; case OST_SET_INFO: if(pb_type==PTL_RPC_MSG_REQUEST) { offset=lustre_dissect_element_string(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) ; }; 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) { switch (opc){ case MDS_DISCONNECT: /*[nothing]*/ break; case MDS_GETSTATUS: /*[mds body]*/ offset=lustre_dissect_struct_mdt_body(tvb, offset, pinfo, tree, hf_lustre_mdt_body) ; 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: offset=lustre_dissect_struct_mdt_body(tvb, offset, pinfo, tree, hf_lustre_mdt_body) ; if(pb_type==PTL_RPC_MSG_REQUEST) /*[string_xattr_name]*/ offset=lustre_dissect_element_string(tvb, offset, pinfo, tree, hf_lustre_mds_xattr_name, LUSTRE_REQ_REC_OFF+1); if(pb_type==PTL_RPC_MSG_REPLY) /*[eada]*/ 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) ; /* TODO [ something ??? ] */ 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: /* TODO : check the corresponding structure in lustre code */ if(pb_type==PTL_RPC_MSG_REQUEST) { /* [mdt_body] [lov_mds_md][log_cookie] */ offset=lustre_dissect_struct_mdt_body(tvb, offset, pinfo, tree, hf_lustre_mdt_body) ; if(LUSTRE_BUFCOUNT>=3) offset=lustre_dissect_struct_lov_mds_md_v1(tvb,offset,pinfo,tree,hf_lustre_lov_mds_md_v1); if(LUSTRE_BUFCOUNT>=4) if( tvb_get_letohl(tvb,LUSTRE_BUFLEN_OFF+4*(LUSTRE_REQ_REC_OFF+2)) > 0) offset=lustre_dissect_struct_llog_cookie(tvb,offset,pinfo,tree,hf_lustre_llog_cookie); } if(pb_type==PTL_RPC_MSG_REPLY) { /* [mdt_body][md][cookie] TODO : check that (reread the code about shrink in lustre) */ offset=lustre_dissect_struct_mdt_body(tvb, offset, pinfo, tree, hf_lustre_mdt_body) ; if(tvb_get_letohl(tvb,LUSTRE_BUFLEN_OFF+4*(LUSTRE_REQ_REC_OFF+1)) > 0) offset=lustre_dissect_element_string(tvb, offset, pinfo, tree, hf_lustre_mds_md_data,LUSTRE_REQ_REC_OFF+1); /* key */ if(tvb_get_letohl(tvb,LUSTRE_BUFLEN_OFF+4*(LUSTRE_REQ_REC_OFF+2)) > 0) offset=lustre_dissect_struct_llog_cookie(tvb,offset,pinfo,tree,hf_lustre_llog_cookie); } break; case MDS_STATFS: if(pb_type==PTL_RPC_MSG_REPLY) /*[obd_statfs]*/ offset=lustre_dissect_struct_obd_statfs(tvb, offset, pinfo, tree, hf_lustre_obd_statfs) ; /*in request : [nothing]*/ break; case MDS_READPAGE: /* [mdt_body] but with some different interpration, need to modify the hf : TODO */ offset=lustre_dissect_struct_mdt_body(tvb, offset, pinfo, tree, hf_lustre_mdt_body) ; break; case MDS_REINT: /* the structure depend on the intent_opcode */ if(pb_type==PTL_RPC_MSG_REQUEST) offset=reint_opcode_process(tvb, offset, pinfo, tree); if(pb_type==PTL_RPC_MSG_REPLY) { /*[mdt_body][??][llog_logid_rec] */ offset=lustre_dissect_struct_mdt_body(tvb, offset, pinfo, tree, hf_lustre_mdt_body) ; if(tvb_get_letohl(tvb,LUSTRE_BUFLEN_OFF+4*(LUSTRE_REQ_REC_OFF+1)) > 0){ /* OPEN, RENAME, and UNLINK */ if(tvb_get_letohl(tvb, LUSTRE_BUFLEN_OFF+4*(LUSTRE_REQ_REC_OFF+1)) > 0){ /* rec_unlink or rec_rename */ offset=lustre_dissect_element_data(tvb, offset, pinfo, tree, hf_lustre_mds_xattr_eadata, LUSTRE_REQ_REC_OFF+1); // replace by eadata TODO TODO // if(tvb_get_letohl(tvb,LUSTRE_BUFLEN_OFF+4*(LUSTRE_REQ_REC_OFF+2)) > 0) /* with unlink or rename we have 4 buffers handler.c line 1691*/ offset=lustre_dissect_element_data(tvb, offset, pinfo, tree, hf_lustre_mds_xattr_eadata, LUSTRE_REQ_REC_OFF+2); // replace withe eadata TODO TODO // } } } break; case MDS_SET_INFO: if(pb_type==PTL_RPC_MSG_REQUEST){ /*[key][val]*/ offset=lustre_dissect_element_string(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 */ //offset=add_extra_padding(tvb,offset,pinfo,tree); } /*nothing en reply*/ break; case MDS_QUOTACHECK: /* [obd_quotactl] */ if(pb_type==PTL_RPC_MSG_REQUEST) offset=lustre_dissect_struct_obd_quotactl(tvb, offset, pinfo, tree, hf_lustre_obd_quotactl) ; break; case MDS_QUOTACTL: /* [obd_quotactl] in both case*/ offset=lustre_dissect_struct_obd_quotactl(tvb, offset, pinfo, tree, hf_lustre_obd_quotactl) ; break; case MDS_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) /*[obd_connect_data]*/ offset=lustre_dissect_struct_obd_connect_data(tvb,offset,pinfo,tree,hf_lustre_obd_connect_data); break; default: break; }; return offset; } static int lustre_ldlm_opcode_process(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree * tree _U_, guint32 opc _U_, guint32 pb_type) { switch (opc) { case LDLM_ENQUEUE: /*[ldlm_request] if we have one more buffer it's [intent_opcode] and the opcode give us the * corresponding intent structure [intent] */ if(pb_type==PTL_RPC_MSG_REQUEST) { offset=lustre_dissect_struct_ldlm_request(tvb, offset, pinfo, tree, hf_lustre_ldlm_request) ; if (LUSTRE_BUFCOUNT>=3) offset=lustre_dissect_struct_ldlm_intent(tvb, offset, pinfo, tree, hf_lustre_ldlm_intent); } if(pb_type==PTL_RPC_MSG_REPLY) { guint32 ldlm_type; guint32 magic; /*[ldlm_reply]*/ offset=lustre_dissect_struct_ldlm_reply(tvb, offset, pinfo, tree, hf_lustre_ldlm_reply,&ldlm_type) ; if(LUSTRE_BUFCOUNT>2 && (tvb_get_letohl(tvb,LUSTRE_BUFLEN_OFF+4*2) == 40)) /* TODO :this code need to be check and test, the lustre corresponding code is'nt explicit, so * not sure to have this buffer, but in example it works fine */ offset=lustre_dissect_struct_ost_lvb(tvb, offset, pinfo, tree, hf_lustre_ost_lvb); else if(LUSTRE_BUFCOUNT>2) { offset=lustre_dissect_struct_mdt_body(tvb, offset, pinfo, tree, hf_lustre_mdt_body) ; /*g_print("buflen_off+4*3 = %d", tvb_get_letohl(tvb,LUSTRE_BUFLEN_OFF+4*LUSTRE_DLM_INTENT_REC_OFF));*/ if(LUSTRE_BUFCOUNT>2 && (tvb_get_letohl(tvb,LUSTRE_BUFLEN_OFF+4*LUSTRE_DLM_INTENT_REC_OFF) > 0)) { 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,tree,hf_lustre_lov_mds_md_v1); break; default: offset=lustre_dissect_element_data(tvb, offset, pinfo, tree, hf_lustre_extra_padding, LUSTRE_DLM_INTENT_REC_OFF); break; }; } } } break; case LDLM_CONVERT: if(pb_type==PTL_RPC_MSG_REQUEST) /*[ldlm_request]*/ offset=lustre_dissect_struct_ldlm_request(tvb, offset, pinfo, tree, hf_lustre_ldlm_request) ; if(pb_type==PTL_RPC_MSG_REPLY) /*[ldlm_reply]*/ offset=lustre_dissect_struct_ldlm_reply(tvb, offset, pinfo, tree, hf_lustre_ldlm_reply, NULL) ; break; case LDLM_CANCEL: if(pb_type==PTL_RPC_MSG_REQUEST) /*[ldlm_request]*/ offset=lustre_dissect_struct_ldlm_request(tvb, offset, pinfo, tree, hf_lustre_ldlm_request) ; /*[nothing en reply]*/ break; case LDLM_BL_CALLBACK: /* TODO : check the corresponding code in lustre*/ if(pb_type==PTL_RPC_MSG_REQUEST) /*[ldlm_request]*/ offset=lustre_dissect_struct_ldlm_request(tvb, offset, pinfo, tree, hf_lustre_ldlm_request) ; break; case LDLM_CP_CALLBACK: if(pb_type==PTL_RPC_MSG_REQUEST){ /*[ldlm_request] if the third buffer exist we have [lvb data] so it's [ost_lvb] : TODO : * check that */ offset=lustre_dissect_struct_ldlm_request(tvb, offset, pinfo, tree, hf_lustre_ldlm_request) ; if(LUSTRE_BUFCOUNT>=3) offset=lustre_dissect_struct_ost_lvb(tvb,offset,pinfo,tree,hf_lustre_ost_lvb); } /*reply : [nothing] */ break; case LDLM_GL_CALLBACK: if(pb_type==PTL_RPC_MSG_REQUEST) /*[ldlm_request] */ offset=lustre_dissect_struct_ldlm_request(tvb, offset, pinfo, tree, hf_lustre_ldlm_request) ; else if(pb_type==PTL_RPC_MSG_REPLY) /*reply : [ost_lvb] <-- need to be check*/ offset=lustre_dissect_struct_ost_lvb(tvb, offset, pinfo, tree, hf_lustre_ost_lvb); break; default : break; } return offset; } static int lustre_mgs_opcode_process(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree * tree _U_, guint32 opc _U_, guint32 pb_type) { switch (opc){ case MGS_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) /*[obd_connect_data]*/ offset=lustre_dissect_struct_obd_connect_data(tvb,offset,pinfo,tree,hf_lustre_obd_connect_data); break; case MGS_DISCONNECT : /*[nothing]*/ break; case MGS_EXCEPTION : /* node died, etc. */ /*[nothing]*/ break; case MGS_TARGET_REG: /*[mgs_target_info], mgs_handler.c mgs_handle_target_reg() called whenever a target startup*/ offset=lustre_dissect_struct_mgs_target_info(tvb, offset, pinfo, tree, hf_lustre_mgs_target_info); break; case MGS_TARGET_DEL: /*[nothing]*/ break; case MGS_SET_INFO: /*[mgs_send_param], mgs_set_info_rpc()*/ offset=lustre_dissect_struct_mgs_send_param(tvb,offset,pinfo,tree,hf_lustre_mgs_send_param); break; default: break; }; return offset; } static int lustre_odb_opcode_process(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree * tree _U_, guint32 opc _U_, guint32 pb_type) { switch(opc){ case OBD_PING : /*[nothing]*/ break; case OBD_LOG_CANCEL: /*[nothing]*/ break; case OBD_QC_CALLBACK: if(pb_type==PTL_RPC_MSG_REQUEST) offset=lustre_dissect_struct_obd_quotactl(tvb, offset, pinfo, tree, hf_lustre_obd_quotactl); /*if (request) : [nothing]*/ break; default: break; }; return offset; } static int lustre_llog_opcode_process(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree * tree _U_, guint32 opc _U_, guint32 pb_type) { switch(opc){ case LLOG_ORIGIN_HANDLE_CREATE : /* in handler.c */ /*[llogd_body] (reply and request)*/ offset=lustre_dissect_struct_llogd_body(tvb, offset, pinfo, tree, hf_lustre_llogd_body); if(pb_type==PTL_RPC_MSG_REQUEST) /*[filename] */ if (LUSTRE_BUFCOUNT>2) offset=lustre_dissect_element_string(tvb, offset, pinfo, tree, hf_lustre_llogd_name, LUSTRE_REQ_REC_OFF+1); break; case LLOG_ORIGIN_HANDLE_NEXT_BLOCK :/* in handler.c */ /* [llogd_body][???] * the size of second buf is LLOG_CHKUNK_SIZE, so it's maybee only bulk data */ offset=lustre_dissect_struct_llogd_body(tvb, offset, pinfo, tree, hf_lustre_llogd_body); offset=lustre_dissect_element_data(tvb, offset, pinfo, tree, hf_lustre_llogd_chunk, LUSTRE_REQ_REC_OFF + 1 ); break; case LLOG_ORIGIN_HANDLE_READ_HEADER:/* in handler.c */ if(pb_type==PTL_RPC_MSG_REQUEST){ /* [llogd_body][llog_log_hdr] */ offset=lustre_dissect_struct_llogd_body(tvb, offset, pinfo, tree, hf_lustre_llogd_body); if(LUSTRE_BUFCOUNT>2) offset=lustre_dissect_struct_llog_log_hdr(tvb, offset, pinfo, tree, hf_lustre_llogd_log_hdr); } if(pb_type==PTL_RPC_MSG_REPLY) /* [llog_log_hdr] */ offset=lustre_dissect_struct_llog_log_hdr(tvb, offset, pinfo, tree, hf_lustre_llogd_log_hdr); break; case LLOG_ORIGIN_HANDLE_WRITE_REC : /* I think this is obsolete */ /*[nothing]*/ break; case LLOG_ORIGIN_HANDLE_CLOSE :/* handler.c */ /*[nothing]*/ break; case LLOG_ORIGIN_CONNECT : /* ost_handler.c */ /*[nothing]*/ case LLOG_CATINFO : /*in handler.c */ if(pb_type==PTL_RPC_MSG_REQUEST){ /* [keyword][if keyword=config [char*] else [nothing]] */ offset=lustre_dissect_element_string(tvb, offset, pinfo, tree, hf_lustre_llogd_keyword, LUSTRE_REQ_REC_OFF); if(strcmp(tvb_get_string(tvb, LUSTRE_REQ_REC_OFF, tvb_get_letohl(tvb, LUSTRE_BUFLEN_OFF+4*LUSTRE_REQ_REC_OFF)), "config")==0) /* if(keyword == "config") */ offset=lustre_dissect_element_string(tvb, offset, pinfo, tree, hf_lustre_llogd_client, LUSTRE_REQ_REC_OFF+1); } if(pb_type==PTL_RPC_MSG_REPLY) /*[buf] sizeof = llog_chunk_size*/ offset=lustre_dissect_element_data(tvb, offset, pinfo, tree, hf_lustre_llogd_chunk, LUSTRE_REQ_REC_OFF + 1 ); /* TODO TODO : check if it's note a catid */ break; case LLOG_ORIGIN_HANDLE_PREV_BLOCK : /* in handler.c */ /* [llogd_body] in both case */ offset=lustre_dissect_struct_llogd_body(tvb, offset, pinfo, tree, hf_lustre_llogd_body); if(pb_type==PTL_RPC_MSG_REPLY) /*[buf] size of llog_chunk_size*/ offset=lustre_dissect_element_data(tvb, offset, pinfo, tree, hf_lustre_llogd_chunk, LUSTRE_REQ_REC_OFF + 1 ); break; case LLOG_ORIGIN_HANDLE_DESTROY : /* in handler.c */ /*[llogd_body] in both case*/ offset=lustre_dissect_struct_llogd_body(tvb, offset, pinfo, tree, hf_lustre_llogd_body); break; default: break; }; return offset; } /* process lustre opcode : check if opcode is in range_opcode, and call the corresponding opcode process function */ static int lustre_opcode_process(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree * tree _U_, guint32 opc _U_, guint32 pb_type) { if (opc <= OST_LAST_OPC) /* OST opcodes */ offset=lustre_ost_opcode_process( tvb , offset ,pinfo , tree , opc , pb_type) ; if ( (opc >= MDS_FIRST_OPC) && (opc < MDS_LAST_OPC )) /* MDS opcodes */ offset=lustre_mds_opcode_process( tvb , offset ,pinfo , tree , opc , pb_type) ; if ( (opc >= LDLM_FIRST_OPC) && (opc < LDLM_LAST_OPC) ) /*LDLM Opcodes*/ offset=lustre_ldlm_opcode_process( tvb , offset ,pinfo , tree , opc , pb_type) ; if( (opc>= MGS_FIRST_OPC) && (opc <= MGS_LAST_OPC)) /* MGS Opcodes */ offset=lustre_mgs_opcode_process( tvb , offset ,pinfo , tree , opc , pb_type) ; if( (opc>= OBD_FIRST_OPC) && (opc<=OBD_LAST_OPC)) /* ODB Opcodes */ offset=lustre_odb_opcode_process( tvb , offset ,pinfo , tree , opc , pb_type) ; if( (opc>=LLOG_FIRST_OPC) && (opc<=LLOG_LAST_OPC)) /* LLOG Opcodes */ offset=lustre_llog_opcode_process( tvb , offset ,pinfo , tree , opc , pb_type) ; return offset ; } /* ----------------------------------------------- */ /* add an extra padding to be aligned to 8bytes */ static int add_extra_padding(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree * tree _U_) { guint32 padding_len; padding_len = (8- offset%8)%8; if(padding_len){ proto_tree_add_item(tree, hf_lustre_extra_padding , tvb, offset, padding_len, TRUE); offset+=padding_len; } return offset; } /* ----------------------------------------------- */ static int ldlm_opcode_process(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree * tree _U_, guint64 intent_opc _U_) { /* all corresponding code is in mdc_locks.c in function mdc_enqueue() */ /* if 0x0003 we have CREAT + OPEN */ if (intent_opc & IT_OPEN) { /* mdc_intent_open_pack(), d'où [opcode][mdc_rec_create][name][eada] */ offset=lustre_dissect_struct_mdt_rec_create(tvb, offset, pinfo, tree, hf_lustre_mdt_rec_create); offset=lustre_dissect_element_string(tvb, offset, pinfo, tree, hf_lustre_reint_name, LUSTRE_DLM_INTENT_REC_OFF+1); offset=lustre_dissect_element_data(tvb, offset, pinfo, tree, hf_lustre_mds_xattr_eadata, LUSTRE_DLM_INTENT_REC_OFF+2); /* TODO : replace hf with eada hf */ } if (intent_opc & IT_UNLINK){ /* mdc_intent_unlink_pack(), d'où [opcode][mdt_rec_unlink][name] */ offset=lustre_dissect_struct_mdt_rec_unlink(tvb, offset, pinfo, tree, hf_lustre_mdt_rec_unlink); offset=lustre_dissect_element_string(tvb, offset, pinfo, tree, hf_lustre_reint_name, LUSTRE_DLM_INTENT_REC_OFF+1); } if (intent_opc & IT_GETATTR){ /* mdc_intent_lookup_pack, d'où [mdt_body][name] */ offset=lustre_dissect_struct_mdt_body(tvb, offset, pinfo, tree, hf_lustre_mdt_body) ; offset=lustre_dissect_element_string(tvb, offset, pinfo, tree, hf_lustre_reint_name, LUSTRE_DLM_INTENT_REC_OFF+1); } if (intent_opc & IT_LOOKUP){ /* mdc_intent_lookup_pack, d'où [mdt_body][name] */ offset=lustre_dissect_struct_mdt_body(tvb, offset, pinfo, tree, hf_lustre_mdt_body) ; offset=lustre_dissect_element_string(tvb, offset, pinfo, tree, hf_lustre_reint_name, LUSTRE_DLM_INTENT_REC_OFF+1); } return offset; } /* ----------------------------------------------- */ /* function to test if the packet is entirely dissected add BUG in PROTOCOL COL when it's not*/ static void sanity_check(tvbuff_t *tvb, packet_info *pinfo, guint32 val_offset _U_) { guint32 magic_number ; guint32 somme_buflen = 0 ; guint32 i ; magic_number = tvb_get_letohl(tvb, 8); for (i=0;icinfo, COL_INFO)) { col_append_str(pinfo->cinfo, COL_PROTOCOL, "BUG"); } } } /* IDL: struct lustre_msg_v1 { */ /* IDL: struct lustre_handle { */ /* IDL: } lm_handle; */ /* IDL: uint32 lm_magic; */ /* IDL: uint32 lm_type; */ /* IDL: uint32 lm_version; */ /* IDL: uint32 lm_opc; */ /* IDL: uint64 lm_last_xid; */ /* IDL: uint64 lm_last_committed; */ /* IDL: uint64 lm_transno; */ /* IDL: uint32 lm_status; */ /* IDL: uint32 lm_flags; */ /* IDL: uint32 lm_conn_cnt; */ /* IDL: uint32 lm_bufcount; */ /* IDL: uint32 lm_buflens[0]; */ /* IDL: } */ static int lustre_dissect_element_msg_v1_lm_handle(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { /*TODO : replace with a v1 handle*/ offset=lustre_dissect_struct_handle_cookie(tvb,offset,pinfo,tree,hf_lustre_lustre_msg_v1_lm_handle); return offset; } static int lustre_dissect_element_msg_v1_lm_magic(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_lustre_msg_v1_lm_magic); return offset; } static int lustre_dissect_element_msg_v1_lm_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_lustre_msg_v1_lm_type); return offset; } static int lustre_dissect_element_msg_v1_lm_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_lustre_msg_v1_lm_version); return offset; } static int lustre_dissect_element_msg_v1_lm_opc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_lustre_msg_v1_lm_opc); return offset; } static int lustre_dissect_element_msg_v1_lm_last_xid(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_msg_v1_lm_last_xid); return offset; } static int lustre_dissect_element_msg_v1_lm_last_committed(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_msg_v1_lm_last_committed); return offset; } static int lustre_dissect_element_msg_v1_lm_transno(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_msg_v1_lm_transno); return offset; } static int lustre_dissect_element_msg_v1_lm_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_lustre_msg_v1_lm_status); return offset; } static int lustre_dissect_element_msg_v1_lm_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_lustre_msg_v1_lm_flags); return offset; } static int lustre_dissect_element_msg_v1_lm_conn_cnt(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_lustre_msg_v1_lm_conn_cnt); return offset; } static int lustre_dissect_element_msg_v1_lm_bufcount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_lustre_msg_v1_lm_bufcount); return offset; } static int lustre_dissect_element_msg_v1_lm_buflens_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_lustre_msg_v1_lm_buflens); return offset; } static int lustre_dissect_element_msg_v1_lm_buflens(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { guint32 bufcount ; gboolean extra_padding ; guint i; bufcount=tvb_get_letohl(tvb, offset-4); /* TODO : replace with a macro */ if (bufcount & 1) /* we add an extra padding if bufcount is odd */ extra_padding = 1 ; else extra_padding = 0 ; for (i=0;icinfo, COL_INFO, val_to_str(opc, lustre_op_codes, "Unknown")); display_info_fstr(parent_tree, pinfo->cinfo,COL_INFO, " %s ", val_to_str(pb_type, lustre_LMTypes, "Unknown")); offset=lustre_opcode_process(tvb, offset, pinfo, tree, opc, pb_type); return offset; } /* IDL: struct ptlrpc_body { */ /* IDL: struct lustre_handle { */ /* IDL: } pb_handle; */ /* IDL: uint32 pb_type; */ /* IDL: uint32 pb_version; */ /* IDL: uint32 pb_opc; */ /* IDL: uint32 pb_status; */ /* IDL: uint64 pb_last_xid; */ /* IDL: uint64 pb_last_seen; */ /* IDL: uint64 pb_last_committed; */ /* IDL: uint64 pb_transno; */ /* IDL: uint32 pb_flags; */ /* IDL: uint32 pb_op_flags; */ /* IDL: uint32 pb_conn_cnt; */ /* IDL: uint32 pb_timeout; */ /* IDL: uint32 pb_service_time; */ /* IDL: uint32 pb_limit; */ /* IDL: uint64 pb_slv; */ /* IDL: } */ static int lustre_dissect_element_ptlrpc_body_pb_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_ptlrpc_body_pb_handle); return offset; } static int lustre_dissect_element_ptlrpc_body_pb_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_ptlrpc_body_pb_type); return offset; } static int lustre_dissect_element_ptlrpc_body_pb_version(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ptlrpc_body_pb_version); return offset; } static int lustre_dissect_element_ptlrpc_body_pb_opc(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ptlrpc_body_pb_opc); return offset; } static int lustre_dissect_element_ptlrpc_body_pb_status(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ptlrpc_body_pb_status); return offset; } static int lustre_dissect_element_ptlrpc_body_pb_last_xid(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { offset=dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_ptlrpc_body_pb_last_xid); return offset; } static int lustre_dissect_element_ptlrpc_body_pb_last_seen(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { offset=dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_ptlrpc_body_pb_last_seen); return offset; } static int lustre_dissect_element_ptlrpc_body_pb_last_committed(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { offset=dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_ptlrpc_body_pb_last_committed); return offset; } static int lustre_dissect_element_ptlrpc_body_pb_transno(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { offset=dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_ptlrpc_body_pb_transno); return offset; } static int lustre_dissect_element_ptlrpc_body_pb_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_ptlrpc_body_pb_flags); return offset; } static int lustre_dissect_element_ptlrpc_body_pb_op_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_ptlrpc_body_pb_op_flags); return offset; } static int lustre_dissect_element_ptlrpc_body_pb_conn_cnt(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ptlrpc_body_pb_conn_cnt); return offset; } static int lustre_dissect_element_ptlrpc_body_pb_timeout(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ptlrpc_body_pb_timeout); return offset; } static int lustre_dissect_element_ptlrpc_body_pb_service_time(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ptlrpc_body_pb_service_time); return offset; } static int lustre_dissect_element_ptlrpc_body_pb_limit(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_ptlrpc_body_pb_limit); return offset; } static int lustre_dissect_element_ptlrpc_body_pb_slv(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { offset=dissect_uint64(tvb, offset, pinfo, tree, hf_lustre_ptlrpc_body_pb_slv); return offset; } static int lustre_dissect_struct_ptlrpc_body(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, int hf_index _U_, guint32 buf_len _U_ ) { proto_item *item = NULL; proto_tree *tree = NULL; int old_offset; guint32 opc, pb_type; 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_ptlrpc_body); } offset=lustre_dissect_element_ptlrpc_body_pb_handle(tvb, offset, pinfo, tree); pb_type = tvb_get_letohl(tvb, offset); //g_print("msg_v2_lm_type_offset = %d \n" , offset) ; offset=lustre_dissect_element_ptlrpc_body_pb_type(tvb, offset, pinfo, tree); offset=lustre_dissect_element_ptlrpc_body_pb_version(tvb, offset, pinfo, tree); // g_print("msg_v2_opcode_offset %d \n", offset); opc = tvb_get_letohl(tvb, offset); offset=lustre_dissect_element_ptlrpc_body_pb_opc(tvb, offset, pinfo, tree); offset=lustre_dissect_element_ptlrpc_body_pb_status(tvb, offset, pinfo, tree); offset=lustre_dissect_element_ptlrpc_body_pb_last_xid(tvb, offset, pinfo, tree); offset=lustre_dissect_element_ptlrpc_body_pb_last_seen(tvb, offset, pinfo, tree); offset=lustre_dissect_element_ptlrpc_body_pb_last_committed(tvb, offset, pinfo, tree); offset=lustre_dissect_element_ptlrpc_body_pb_transno(tvb, offset, pinfo, tree); offset=lustre_dissect_element_ptlrpc_body_pb_flags(tvb, offset, pinfo, tree); offset=lustre_dissect_element_ptlrpc_body_pb_op_flags(tvb, offset, pinfo, tree); offset=lustre_dissect_element_ptlrpc_body_pb_conn_cnt(tvb, offset, pinfo, tree); offset=lustre_dissect_element_ptlrpc_body_pb_timeout(tvb, offset, pinfo, tree); offset=lustre_dissect_element_ptlrpc_body_pb_service_time(tvb, offset, pinfo, tree); offset=lustre_dissect_element_ptlrpc_body_pb_limit(tvb, offset, pinfo, tree); offset=lustre_dissect_element_ptlrpc_body_pb_slv(tvb, offset, pinfo, tree); proto_item_set_len(item, offset-old_offset); /* display some nice infos */ display_info_str(parent_tree, pinfo->cinfo, COL_INFO, val_to_str(opc, lustre_op_codes, "Unknown")); display_info_fstr(parent_tree, pinfo->cinfo,COL_INFO, " %s ", val_to_str(pb_type, lustre_LMTypes, "Unknown")); /* on utilise parent_tree pour bien distinguer les différents buffers (relatifs à bufcount + buflen), il s'agit d'un choix de présentation */ offset=lustre_opcode_process(tvb, offset, pinfo, parent_tree, opc, pb_type); sanity_check(tvb,pinfo,offset-old_offset); return offset; } /* IDL: struct lustre_msg_v2 { */ /* IDL: uint32 lm_bufcount; */ /* IDL: uint32 lm_secflvr; */ /* IDL: uint32 lm_magic; */ /* IDL: uint32 lm_repsize; */ /* IDL: uint32 lm_cksum; */ /* IDL: uint32 lm_flags; */ /* IDL: uint32 lm_padding_2; */ /* IDL: uint32 lm_padding_3; */ /* IDL: uint32 lm_buflens[0]; */ /* IDL: } */ static int lustre_dissect_element_msg_v2_lm_bufcount(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { proto_tree_add_item(tree, hf_lustre_lustre_msg_v2_lm_bufcount, tvb, offset, 4, TRUE); offset += 4 ; return offset; } static int lustre_dissect_element_msg_v2_lm_secflvr(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_lustre_msg_v2_lm_secflvr); return offset; } static int lustre_dissect_element_msg_v2_lm_magic(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_lustre_msg_v2_lm_magic); return offset; } static int lustre_dissect_element_msg_v2_lm_repsize(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_lustre_msg_v2_lm_repsize); return offset; } static int lustre_dissect_element_msg_v2_lm_cksum(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_lustre_msg_v2_lm_cksum); return offset; } static int lustre_dissect_element_msg_v2_lm_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_lustre_msg_v2_lm_flags); return offset; } static int lustre_dissect_element_msg_v2_lm_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_lustre_msg_v2_lm_padding_2); return offset; } static int lustre_dissect_element_msg_v2_lm_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_lustre_msg_v2_lm_padding_3); return offset; } static int lustre_dissect_element_msg_v2_lm_buflens_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { offset=dissect_uint32(tvb, offset, pinfo, tree, hf_lustre_lustre_msg_v2_lm_buflens); return offset; } int lustre_dissect_struct_msg_v2(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, int hf_index _U_) { proto_item *item = NULL; proto_tree *tree = NULL; guint32 bufcount ; int old_offset; guint32 i ; guint32 buf_len_offset; guint32 current_buf_len ; gboolean extra_padding ; old_offset=offset; /* to get a light display */ tree=parent_tree; // 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_msg_v2); // } bufcount = tvb_get_letohl(tvb,offset); offset=lustre_dissect_element_msg_v2_lm_bufcount(tvb, offset, pinfo, tree); offset=lustre_dissect_element_msg_v2_lm_secflvr(tvb, offset, pinfo, tree); offset=lustre_dissect_element_msg_v2_lm_magic(tvb, offset, pinfo, tree); offset=lustre_dissect_element_msg_v2_lm_repsize(tvb, offset, pinfo, tree); offset=lustre_dissect_element_msg_v2_lm_cksum(tvb, offset, pinfo, tree); offset=lustre_dissect_element_msg_v2_lm_flags(tvb, offset, pinfo, tree); offset=lustre_dissect_element_msg_v2_lm_padding_2(tvb, offset, pinfo, tree); offset=lustre_dissect_element_msg_v2_lm_padding_3(tvb, offset, pinfo, tree); if (bufcount & 1) /* we add an extra padding if bufcount is odd */ extra_padding = 1 ; else extra_padding = 0 ; buf_len_offset=offset ; for (i=0;icinfo, COL_PROTOCOL)) col_set_str(pinfo->cinfo, COL_PROTOCOL, "Lustre"); /*light display*/ if (check_col(pinfo->cinfo, COL_INFO)) col_set_str(pinfo->cinfo, COL_INFO, ""); /* guint32 magic_number ; */ /* magic_number = tvb_get_letohl(tvb, LUSTRE_MAGIC_OFFSET); */ /* switch (magic_number)*/ /* {*/ /* case LUSTRE_MSG_MAGIC_V1:*/ /* col_append_fstr(pinfo->cinfo, COL_INFO, " V1 ");*/ /* break;*/ /* case LUSTRE_MSG_MAGIC_V2:*/ /* col_append_fstr(pinfo->cinfo, COL_INFO, " V2 ");*/ /* break;*/ /* default:*/ /* break;*/ /* }*/ if (tree) { guint32 magic_number ; guint32 offset; proto_item *ti = NULL ; proto_tree * lustre_tree = NULL ; ti = proto_tree_add_item(tree,proto_lustre,tvb,0,-1,FALSE); lustre_tree = proto_item_add_subtree(ti,ett_lustre); magic_number = tvb_get_letohl(tvb, 8); switch (magic_number){ case LUSTRE_MSG_MAGIC_V1: /* put some nice info*/ proto_item_append_text(lustre_tree, " V1 "); offset=lustre_dissect_struct_msg_v1(tvb, 0, pinfo, lustre_tree, proto_lustre ) ; break; case LUSTRE_MSG_MAGIC_V2: /* put some nice info*/ proto_item_append_text(lustre_tree, " V2 "); offset=lustre_dissect_struct_msg_v2(tvb, 0, pinfo, lustre_tree, proto_lustre ) ; break; default: break; } } } void proto_register_dcerpc_lustre(void) { static hf_register_info hf[] = { { &hf_lustre_mdt_body, { "mdt body", "lustre.mdt_body", FT_NONE, BASE_NONE, NULL , 0 , "", HFILL }}, { &hf_lustre_mdt_body_fid1, { "Fid1", "lustre.mdt_body.fid1", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_body_fid2, { "Fid2", "lustre.mdt_body.fid2", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_body_handle, { "Handle", "lustre.mdt_body.handle", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_body_valid, { "Valid", "lustre.mdt_body.valid", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_body_size, { "Size", "lustre.mdt_body.size", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_body_mtime, { "Mtime", "lustre.mdt_body.mtime",FT_ABSOLUTE_TIME, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_body_atime, { "Atime", "lustre.mdt_body.atime",FT_ABSOLUTE_TIME, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_body_ctime, { "Ctime", "lustre.mdt_body.ctime",FT_ABSOLUTE_TIME, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_body_blocks, { "Blocks", "lustre.mdt_body.blocks", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_body_ioepoch, { "Ioepoch", "lustre.mdt_body.ioepoch", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_body_ino, { "Ino", "lustre.mdt_body.ino", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_body_fsuid, { "Fsuid", "lustre.mdt_body.fsuid", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_body_fsgid, { "Fsgid", "lustre.mdt_body.fsgid", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_body_capability, { "Capability", "lustre.mdt_body.capability", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_body_mode, { "Mode", "lustre.mdt_body.mode", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_body_uid, { "Uid", "lustre.mdt_body.uid", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_body_gid, { "Gid", "lustre.mdt_body.gid", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_body_flags, { "Flags", "lustre.mdt_body.flags", FT_UINT32, BASE_HEX, VALS(lustre_mds_flags_vals) , 0, "", HFILL }}, { &hf_lustre_mdt_body_rdev, { "Rdev", "lustre.mdt_body.rdev", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_body_nlink, { "Nlink", "lustre.mdt_body.nlink", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_body_generation, { "Generation", "lustre.mdt_body.generation", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_body_suppgid, { "Suppgid", "lustre.mdt_body.suppgid", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_body_eadatasize, { "Eadatasize", "lustre.mdt_body.eadatasize", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_body_aclsize, { "Aclsize", "lustre.mdt_body.aclsize", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_body_max_mdsize, { "Max Mdsize", "lustre.mdt_body.max_mdsize", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_body_max_cookiesize, { "Max Cookiesize", "lustre.mdt_body.max_cookiesize", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_body_uid_h, { "Uid H", "lustre.mdt_body.uid_h", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_body_gid_h, { "Gid H", "lustre.mdt_body.gid_h", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_body_padding_5, { "Padding 5", "lustre.mdt_body.padding_5", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_body_padding_6, { "Padding 6", "lustre.mdt_body.padding_6", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_body_padding_7, { "Padding 7", "lustre.mdt_body.padding_7", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_body_padding_8, { "Padding 8", "lustre.mdt_body.padding_8", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_body_padding_9, { "Padding 9", "lustre.mdt_body.padding_9", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_body_padding_10, { "Padding 10", "lustre.mdt_body.padding_10", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_setattr, { "mdt rec setattr", "lustre.mdt_rec_setattr", FT_NONE, BASE_NONE, NULL , 0 , "", HFILL}}, { &hf_lustre_mdt_rec_setattr_sa_opcode, { "Sa Opcode", "lustre.mdt_rec_setattr.sa_opcode", FT_UINT32, BASE_DEC, VALS(lustre_mds_reint_t_vals), 0, "", HFILL }}, { &hf_lustre_mdt_rec_setattr_sa_cap, { "Sa Cap", "lustre.mdt_rec_setattr.sa_cap", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_setattr_sa_fsuid, { "Sa Fsuid", "lustre.mdt_rec_setattr.sa_fsuid", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_setattr_sa_fsuid_h, { "Sa Fsuid H", "lustre.mdt_rec_setattr.sa_fsuid_h", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_setattr_sa_fsgid, { "Sa Fsgid", "lustre.mdt_rec_setattr.sa_fsgid", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_setattr_sa_fsgid_h, { "Sa Fsgid H", "lustre.mdt_rec_setattr.sa_fsgid_h", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_setattr_sa_suppgid, { "Sa Suppgid", "lustre.mdt_rec_setattr.sa_suppgid", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_setattr_sa_suppgid_h, { "Sa Suppgid H", "lustre.mdt_rec_setattr.sa_suppgid_h", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_setattr_sa_padding_1, { "Sa Padding 1", "lustre.mdt_rec_setattr.sa_padding_1", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_setattr_sa_padding_1_h, { "Sa Padding 1 H", "lustre.mdt_rec_setattr.sa_padding_1_h", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_setattr_sa_fid, { "Sa Fid", "lustre.mdt_rec_setattr.sa_fid", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_setattr_sa_valid, { "Sa Valid", "lustre.mdt_rec_setattr.sa_valid", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_setattr_sa_uid, { "Sa Uid", "lustre.mdt_rec_setattr.sa_uid", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_setattr_sa_gid, { "Sa Gid", "lustre.mdt_rec_setattr.sa_gid", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_setattr_sa_size, { "Sa Size", "lustre.mdt_rec_setattr.sa_size", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_setattr_sa_blocks, { "Sa Blocks", "lustre.mdt_rec_setattr.sa_blocks", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_setattr_sa_mtime, { "Sa Mtime", "lustre.mdt_rec_setattr.sa_mtime",FT_ABSOLUTE_TIME, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_setattr_sa_atime, { "Sa Atime", "lustre.mdt_rec_setattr.sa_atime",FT_ABSOLUTE_TIME, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_setattr_sa_ctime, { "Sa Ctime", "lustre.mdt_rec_setattr.sa_ctime",FT_ABSOLUTE_TIME, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_setattr_sa_attr_flags, { "Sa Attr Flags", "lustre.mdt_rec_setattr.sa_attr_flags", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_setattr_sa_mode, { "Sa Mode", "lustre.mdt_rec_setattr.sa_mode", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_setattr_sa_padding_2, { "Sa Padding 2", "lustre.mdt_rec_setattr.sa_padding_2", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_setattr_sa_padding_3, { "Sa Padding 3", "lustre.mdt_rec_setattr.sa_padding_3", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_setattr_sa_padding_4, { "Sa Padding 4", "lustre.mdt_rec_setattr.sa_padding_4", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_setattr_sa_padding_5, { "Sa Padding 5", "lustre.mdt_rec_setattr.sa_padding_5", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_create, { "mdt rec create", "lustre.mdt_rec_create", FT_NONE, BASE_NONE, NULL , 0 , "", HFILL}}, { &hf_lustre_mdt_rec_create_cr_opcode, { "Cr Opcode", "lustre.mdt_rec_create.cr_opcode", FT_UINT32, BASE_DEC, VALS(lustre_mds_reint_t_vals), 0, "", HFILL }}, { &hf_lustre_mdt_rec_create_cr_cap, { "Cr Cap", "lustre.mdt_rec_create.cr_cap", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_create_cr_fsuid, { "Cr Fsuid", "lustre.mdt_rec_create.cr_fsuid", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_create_cr_fsuid_h, { "Cr Fsuid H", "lustre.mdt_rec_create.cr_fsuid_h", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_create_cr_fsgid, { "Cr Fsgid", "lustre.mdt_rec_create.cr_fsgid", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_create_cr_fsgid_h, { "Cr Fsgid H", "lustre.mdt_rec_create.cr_fsgid_h", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_create_cr_suppgid1, { "Cr Suppgid1", "lustre.mdt_rec_create.cr_suppgid1", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_create_cr_suppgid1_h, { "Cr Suppgid1 H", "lustre.mdt_rec_create.cr_suppgid1_h", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_create_cr_suppgid2, { "Cr Suppgid2", "lustre.mdt_rec_create.cr_suppgid2", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_create_cr_suppgid2_h, { "Cr Suppgid2 H", "lustre.mdt_rec_create.cr_suppgid2_h", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_create_cr_fid1, { "Cr Fid1", "lustre.mdt_rec_create.cr_fid1", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_create_cr_fid2, { "Cr Fid2", "lustre.mdt_rec_create.cr_fid2", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_create_cr_old_handle, { "Cr Old Handle", "lustre.mdt_rec_create.cr_old_handle", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_create_cr_time, { "Cr Time", "lustre.mdt_rec_create.cr_time",FT_ABSOLUTE_TIME, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_create_cr_rdev, { "Cr Rdev", "lustre.mdt_rec_create.cr_rdev", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_create_cr_ioepoch, { "Cr Ioepoch", "lustre.mdt_rec_create.cr_ioepoch", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_create_cr_padding_1, { "Cr Padding 1", "lustre.mdt_rec_create.cr_padding_1", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_create_cr_mode, { "Cr Mode", "lustre.mdt_rec_create.cr_mode", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_create_cr_bias, { "Cr Bias", "lustre.mdt_rec_create.cr_bias", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_create_cr_flags_l, { "Cr Flags L", "lustre.mdt_rec_create.cr_flags_l", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_create_cr_flags_h, { "Cr Flags H", "lustre.mdt_rec_create.cr_flags_h", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_create_cr_padding_3, { "Cr Padding 3", "lustre.mdt_rec_create.cr_padding_3", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_create_cr_padding_4, { "Cr Padding 4", "lustre.mdt_rec_create.cr_padding_4", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_link, { "mdt rec link", "lustre.mdt_rec_link", FT_NONE, BASE_NONE, NULL , 0 , "", HFILL}}, { &hf_lustre_mdt_rec_link_lk_opcode, { "Lk Opcode", "lustre.mdt_rec_link.lk_opcode", FT_UINT32, BASE_DEC,VALS(lustre_mds_reint_t_vals) , 0, "", HFILL }}, { &hf_lustre_mdt_rec_link_lk_cap, { "Lk Cap", "lustre.mdt_rec_link.lk_cap", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_link_lk_fsuid, { "Lk Fsuid", "lustre.mdt_rec_link.lk_fsuid", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_link_lk_fsuid_h, { "Lk Fsuid H", "lustre.mdt_rec_link.lk_fsuid_h", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_link_lk_fsgid, { "Lk Fsgid", "lustre.mdt_rec_link.lk_fsgid", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_link_lk_fsgid_h, { "Lk Fsgid H", "lustre.mdt_rec_link.lk_fsgid_h", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_link_lk_suppgid1, { "Lk Suppgid1", "lustre.mdt_rec_link.lk_suppgid1", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_link_lk_suppgid1_h, { "Lk Suppgid1 H", "lustre.mdt_rec_link.lk_suppgid1_h", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_link_lk_suppgid2, { "Lk Suppgid2", "lustre.mdt_rec_link.lk_suppgid2", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_link_lk_suppgid2_h, { "Lk Suppgid2 H", "lustre.mdt_rec_link.lk_suppgid2_h", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_link_lk_fid1, { "Lk Fid1", "lustre.mdt_rec_link.lk_fid1", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_link_lk_fid2, { "Lk Fid2", "lustre.mdt_rec_link.lk_fid2", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_link_lk_time, { "Lk Time", "lustre.mdt_rec_link.lk_time",FT_ABSOLUTE_TIME, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_link_lk_padding_1, { "Lk Padding 1", "lustre.mdt_rec_link.lk_padding_1", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_link_lk_padding_2, { "Lk Padding 2", "lustre.mdt_rec_link.lk_padding_2", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_link_lk_padding_3, { "Lk Padding 3", "lustre.mdt_rec_link.lk_padding_3", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_link_lk_padding_4, { "Lk Padding 4", "lustre.mdt_rec_link.lk_padding_4", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_link_lk_bias, { "Lk Bias", "lustre.mdt_rec_link.lk_bias", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_link_lk_padding_5, { "Lk Padding 5", "lustre.mdt_rec_link.lk_padding_5", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_link_lk_padding_6, { "Lk Padding 6", "lustre.mdt_rec_link.lk_padding_6", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_link_lk_padding_7, { "Lk Padding 7", "lustre.mdt_rec_link.lk_padding_7", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_link_lk_padding_8, { "Lk Padding 8", "lustre.mdt_rec_link.lk_padding_8", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_link_lk_padding_9, { "Lk Padding 9", "lustre.mdt_rec_link.lk_padding_9", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_unlink, { "mdt rec unlink", "lustre.mdt_rec_unlink", FT_NONE, BASE_NONE, NULL , 0 , "", HFILL}}, { &hf_lustre_mdt_rec_unlink_ul_opcode, { "Ul Opcode", "lustre.mdt_rec_unlink.ul_opcode", FT_UINT32, BASE_DEC, VALS(lustre_mds_reint_t_vals) , 0, "", HFILL }}, { &hf_lustre_mdt_rec_unlink_ul_cap, { "Ul Cap", "lustre.mdt_rec_unlink.ul_cap", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_unlink_ul_fsuid, { "Ul Fsuid", "lustre.mdt_rec_unlink.ul_fsuid", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_unlink_ul_fsuid_h, { "Ul Fsuid H", "lustre.mdt_rec_unlink.ul_fsuid_h", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_unlink_ul_fsgid, { "Ul Fsgid", "lustre.mdt_rec_unlink.ul_fsgid", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_unlink_ul_fsgid_h, { "Ul Fsgid H", "lustre.mdt_rec_unlink.ul_fsgid_h", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_unlink_ul_suppgid1, { "Ul Suppgid1", "lustre.mdt_rec_unlink.ul_suppgid1", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_unlink_ul_suppgid1_h, { "Ul Suppgid1 H", "lustre.mdt_rec_unlink.ul_suppgid1_h", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_unlink_ul_suppgid2, { "Ul Suppgid2", "lustre.mdt_rec_unlink.ul_suppgid2", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_unlink_ul_suppgid2_h, { "Ul Suppgid2 H", "lustre.mdt_rec_unlink.ul_suppgid2_h", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_unlink_ul_fid1, { "Ul Fid1", "lustre.mdt_rec_unlink.ul_fid1", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_unlink_ul_fid2, { "Ul Fid2", "lustre.mdt_rec_unlink.ul_fid2", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_unlink_ul_time, { "Ul Time", "lustre.mdt_rec_unlink.ul_time",FT_ABSOLUTE_TIME, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_unlink_ul_padding_2, { "Ul Padding 2", "lustre.mdt_rec_unlink.ul_padding_2", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_unlink_ul_padding_3, { "Ul Padding 3", "lustre.mdt_rec_unlink.ul_padding_3", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_unlink_ul_padding_4, { "Ul Padding 4", "lustre.mdt_rec_unlink.ul_padding_4", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_unlink_ul_padding_5, { "Ul Padding 5", "lustre.mdt_rec_unlink.ul_padding_5", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_unlink_ul_bias, { "Ul Bias", "lustre.mdt_rec_unlink.ul_bias", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_unlink_ul_mode, { "Ul Mode", "lustre.mdt_rec_unlink.ul_mode", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_unlink_ul_padding_6, { "Ul Padding 6", "lustre.mdt_rec_unlink.ul_padding_6", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_unlink_ul_padding_7, { "Ul Padding 7", "lustre.mdt_rec_unlink.ul_padding_7", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_unlink_ul_padding_8, { "Ul Padding 8", "lustre.mdt_rec_unlink.ul_padding_8", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_unlink_ul_padding_9, { "Ul Padding 9", "lustre.mdt_rec_unlink.ul_padding_9", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_rename, { "mdt rec rename", "lustre.mdt_rec_rename", FT_NONE, BASE_NONE, NULL , 0 , "", HFILL}}, { &hf_lustre_mdt_rec_rename_rn_opcode, { "Rn Opcode", "lustre.mdt_rec_rename.rn_opcode", FT_UINT32, BASE_DEC, VALS(lustre_mds_reint_t_vals) , 0, "", HFILL }}, { &hf_lustre_mdt_rec_rename_rn_cap, { "Rn Cap", "lustre.mdt_rec_rename.rn_cap", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_rename_rn_fsuid, { "Rn Fsuid", "lustre.mdt_rec_rename.rn_fsuid", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_rename_rn_fsuid_h, { "Rn Fsuid H", "lustre.mdt_rec_rename.rn_fsuid_h", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_rename_rn_fsgid, { "Rn Fsgid", "lustre.mdt_rec_rename.rn_fsgid", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_rename_rn_fsgid_h, { "Rn Fsgid H", "lustre.mdt_rec_rename.rn_fsgid_h", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_rename_rn_suppgid1, { "Rn Suppgid1", "lustre.mdt_rec_rename.rn_suppgid1", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_rename_rn_suppgid1_h, { "Rn Suppgid1 H", "lustre.mdt_rec_rename.rn_suppgid1_h", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_rename_rn_suppgid2, { "Rn Suppgid2", "lustre.mdt_rec_rename.rn_suppgid2", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_rename_rn_suppgid2_h, { "Rn Suppgid2 H", "lustre.mdt_rec_rename.rn_suppgid2_h", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_rename_rn_fid1, { "Rn Fid1", "lustre.mdt_rec_rename.rn_fid1", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_rename_rn_fid2, { "Rn Fid2", "lustre.mdt_rec_rename.rn_fid2", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_rename_rn_time, { "Rn Time", "lustre.mdt_rec_rename.rn_time",FT_ABSOLUTE_TIME, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_rename_rn_padding_1, { "Rn Padding 1", "lustre.mdt_rec_rename.rn_padding_1", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_rename_rn_padding_2, { "Rn Padding 2", "lustre.mdt_rec_rename.rn_padding_2", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_rename_rn_padding_3, { "Rn Padding 3", "lustre.mdt_rec_rename.rn_padding_3", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_rename_rn_padding_4, { "Rn Padding 4", "lustre.mdt_rec_rename.rn_padding_4", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_rename_rn_bias, { "Rn Bias", "lustre.mdt_rec_rename.rn_bias", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_rename_rn_mode, { "Rn Mode", "lustre.mdt_rec_rename.rn_mode", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_rename_rn_padding_5, { "Rn Padding 5", "lustre.mdt_rec_rename.rn_padding_5", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_rename_rn_padding_6, { "Rn Padding 6", "lustre.mdt_rec_rename.rn_padding_6", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_rename_rn_padding_7, { "Rn Padding 7", "lustre.mdt_rec_rename.rn_padding_7", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_rename_rn_padding_8, { "Rn Padding 8", "lustre.mdt_rec_rename.rn_padding_8", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_setxattr, { "mdt rec setxattr", "lustre.mdt_rec_setxattr", FT_NONE, BASE_NONE, NULL , 0 , "", HFILL}}, { &hf_lustre_mdt_rec_setxattr_sx_opcode, { "Sx Opcode", "lustre.mdt_rec_setxattr.sx_opcode", FT_UINT32, BASE_DEC, VALS(lustre_mds_reint_t_vals), 0, "", HFILL }}, { &hf_lustre_mdt_rec_setxattr_sx_cap, { "Sx Cap", "lustre.mdt_rec_setxattr.sx_cap", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_setxattr_sx_fsuid, { "Sx Fsuid", "lustre.mdt_rec_setxattr.sx_fsuid", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_setxattr_sx_fsuid_h, { "Sx Fsuid H", "lustre.mdt_rec_setxattr.sx_fsuid_h", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_setxattr_sx_fsgid, { "Sx Fsgid", "lustre.mdt_rec_setxattr.sx_fsgid", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_setxattr_sx_fsgid_h, { "Sx Fsgid H", "lustre.mdt_rec_setxattr.sx_fsgid_h", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_setxattr_sx_suppgid1, { "Sx Suppgid1", "lustre.mdt_rec_setxattr.sx_suppgid", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_setxattr_sx_suppgid1_h, { "Sx Suppgid1 H", "lustre.mdt_rec_setxattr.sx_suppgid_h", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_setxattr_sx_suppgid2, { "Sx Suppgid2", "lustre.mdt_rec_setxattr.sx_suppgid2", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_setxattr_sx_suppgid2_h, { "Sx Suppgid2 H", "lustre.mdt_rec_setxattr.sx_suppgid2_h", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_setxattr_sx_fid, { "Sx Fid", "lustre.mdt_rec_setxattr.sx_fid", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_setxattr_sx_padding_1, { "Sx Padding 1", "lustre.mdt_rec_setxattr.sx_padding_1", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_setxattr_sx_padding_2, { "Sx Padding 2", "lustre.mdt_rec_setxattr.sx_padding_2", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_setxattr_sx_padding_3, { "Sx Padding 3", "lustre.mdt_rec_setxattr.sx_padding_3", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_setxattr_sx_valid, { "Sx Valid", "lustre.mdt_rec_setxattr.sx_valid", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_setxattr_sx_time, { "Sx Time", "lustre.mdt_rec_setxattr.sx_time",FT_ABSOLUTE_TIME, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_setxattr_sx_padding_5, { "Sx Padding 5", "lustre.mdt_rec_setxattr.sx_padding_5", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_setxattr_sx_padding_6, { "Sx Padding 6", "lustre.mdt_rec_setxattr.sx_padding_6", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_setxattr_sx_padding_7, { "Sx Padding 7", "lustre.mdt_rec_setxattr.sx_padding_7", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_setxattr_sx_size, { "Sx Size", "lustre.mdt_rec_setxattr.sx_size", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_setxattr_sx_flgas, { "Sx Flags", "lustre.mdt_rec_setxattr.sx_flags", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_setxattr_sx_padding_8, { "Sx Padding 8", "lustre.mdt_rec_setxattr.sx_padding_8", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_setxattr_sx_padding_9, { "Sx Padding 9", "lustre.mdt_rec_setxattr.sx_padding_9", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_setxattr_sx_padding_10, { "Sx Padding 10", "lustre.mdt_rec_setxattr.sx_padding_10", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mdt_rec_setxattr_sx_padding_11, { "Sx Padding 11", "lustre.mdt_rec_setxattr.sx_padding_11", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_lustre_handle_cookie, { "Cookie", "lustre.lustre_handle.cookie", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_ptlrpc_body_pb_last_committed, { "Pb Last Committed", "lustre.ptlrpc_body.pb_last_committed", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_ptlrpc_body_pb_version, { "Pb Version", "lustre.ptlrpc_body.pb_version", FT_UINT32, BASE_DEC, NULL, ~LUSTRE_VERSION_MASK, "", HFILL }}, { &hf_lustre_lustre_msg_v1_lm_bufcount, { "Lm Bufcount", "lustre.lustre_msg_v1.lm_bufcount", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_obd_ioobj_ioo_id, { "Ioo Id", "lustre.obd_ioobj.ioo_id", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_ptlrpc_body_pb_slv, { "Pb Slv", "lustre.ptlrpc_body.pb_slv", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_lustre_msg_v1_lm_handle, { "Lm Handle", "lustre.lustre_msg_v1.lm_handle", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }}, { &hf_lustre_ost_lvb_lvb_atime, { "Lvb Atime", "lustre.ost_lvb.lvb_atime",FT_ABSOLUTE_TIME, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_ptlrpc_body_pb_timeout, { "Pb Timeout", "lustre.ptlrpc_body.pb_timeout", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_obd_statfs_os_bavail, { "Os Bavail", "lustre.obd_statfs.os_bavail", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_obd_statfs_os_bsize, { "Os Bsize", "lustre.obd_statfs.os_bsize", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_lustre_msg_v2_lm_repsize, { "Lm Repsize", "lustre.lustre_msg_v2.lm_repsize", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_lov_mds_md_v1_lmm_stripe_size, { "Lmm Stripe Size", "lustre.lov_mds_md_v1.lmm_stripe_size", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_lustre_msg_v1_lm_last_xid, { "Lm Last Xid", "lustre.lustre_msg_v1.lm_last_xid", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_ll_fid_f_type, { "F Type", "lustre.ll_fid.f_type", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_lustre_msg_v2_lm_cksum, { "Lm Cksum", "lustre.lustre_msg_v2.lm_cksum", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_lustre_msg_v2_lm_buflens, { "Lm Buflens", "lustre.lustre_msg_v2.lm_buflens", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_lustre_msg_v1_lm_status, { "Lm Status", "lustre.lustre_msg_v1.lm_status", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_lustre_msg_v1_lm_type, { "Lm Type", "lustre.lustre_msg_v1.lm_type", FT_UINT32, BASE_DEC, VALS(lustre_LMTypes), 0, "", HFILL }}, { &hf_lustre_niobuf_remote_len, { "Len", "lustre.niobuf_remote.len", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_lov_mds_md_v1_lmm_magic, { "Lmm Magic", "lustre.lov_mds_md_v1.lmm_magic", FT_UINT32, BASE_HEX, VALS(lustre_lov_magic) , 0, "", HFILL }}, { &hf_lustre_ptlrpc_body_pb_op_flags, { "Pb Op Flags", "lustre.ptlrpc_body.pb_op_flags", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_ost_lvb_lvb_ctime, { "Lvb Ctime", "lustre.ost_lvb.lvb_ctime",FT_ABSOLUTE_TIME, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_ptlrpc_body_pb_type, { "Pb Type", "lustre.ptlrpc_body.pb_type", FT_UINT32, BASE_DEC, VALS(lustre_LMTypes), 0, "", HFILL }}, { &hf_lustre_obd_connect_data_ocd_nllg, { "Ocd Nllg", "lustre.obd_connect_data.ocd_nllg", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_obd_connect_data_ocd_nllu, { "Ocd Nllu", "lustre.obd_connect_data.ocd_nllu", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_ll_fid_generation, { "Generation", "lustre.ll_fid.generation", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_ost_lvb_lvb_mtime, { "Lvb Mtime", "lustre.ost_lvb.lvb_mtime",FT_ABSOLUTE_TIME, BASE_NONE, NULL, 0, "", HFILL }}, { &hf_lustre_obd_connect_data_ocd_ibits_known, { "Ocd Ibits Known", "lustre.obd_connect_data.ocd_ibits_known", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_lustre_msg_v2_lm_padding_3, { "Lm Padding 3", "lustre.lustre_msg_v2.lm_padding_3", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_ptlrpc_body_pb_flags, { "Pb Flags", "lustre.ptlrpc_body.pb_flags", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_obd_statfs_os_spare4, { "Os Spare4", "lustre.obd_statfs.os_spare4", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_obd_connect_data_ocd_group, { "Ocd Group", "lustre.obd_connect_data.ocd_group", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_lov_ost_data_v1_l_object_seq, { "L Object SEQ", "lustre.lov_ost_data_v1.l_object_seq", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_lov_mds_md_v1_lmm_object_seq, { "Lmm Object SEQ", "lustre.lov_mds_md_v1.lmm_object_seq", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_obd_connect_data_ocd_brw_size, { "Ocd Brw Size", "lustre.obd_connect_data.ocd_brw_size", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_ptlrpc_body_pb_limit, { "Pb Limit", "lustre.ptlrpc_body.pb_limit", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_obd_statfs_os_maxbytes, { "Os Maxbytes", "lustre.obd_statfs.os_maxbytes", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_obd_statfs_os_spare5, { "Os Spare5", "lustre.obd_statfs.os_spare5", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_lustre_msg_v2_lm_flags, { "Lm Flags", "lustre.lustre_msg_v2.lm_flags", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_obd_statfs_os_ffree, { "Os Ffree", "lustre.obd_statfs.os_ffree", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_obd_statfs_os_files, { "Os Files", "lustre.obd_statfs.os_files", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_lov_mds_md_v1_lmm_stripe_count, { "Lmm Stripe Count", "lustre.lov_mds_md_v1.lmm_stripe_count", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_lustre_msg_v1_lm_flags, { "Lm Flags", "lustre.lustre_msg_v1.lm_flags", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_lustre_msg_v1_lm_last_committed, { "Lm Last Committed", "lustre.lustre_msg_v1.lm_last_committed", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_obd_statfs_os_spare9, { "Os Spare9", "lustre.obd_statfs.os_spare9", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_obd_connect_data_ocd_index, { "Ocd Index", "lustre.obd_connect_data.ocd_index", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_lustre_msg_v1_lm_buflens, { "Lm Buflens", "lustre.lustre_msg_v1.lm_buflens", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_obd_statfs_os_spare1, { "Os Spare1", "lustre.obd_statfs.os_spare1", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_obd_statfs_os_spare8, { "Os Spare8", "lustre.obd_statfs.os_spare8", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_lustre_msg_v1_lm_conn_cnt, { "Lm Conn Cnt", "lustre.lustre_msg_v1.lm_conn_cnt", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_ptlrpc_body_pb_transno, { "Pb Transno", "lustre.ptlrpc_body.pb_transno", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_ptlrpc_body_pb_service_time, { "Pb Service Time", "lustre.ptlrpc_body.pb_service_time",FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_ptlrpc_body_pb_conn_cnt, { "Pb Conn Cnt", "lustre.ptlrpc_body.pb_conn_cnt", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_ptlrpc_body_pb_opc, { "Pb Opc", "lustre.ptlrpc_body.pb_opc", FT_UINT32, BASE_DEC, VALS(lustre_op_codes), 0, "", HFILL }}, { &hf_lustre_obd_connect_data_ocd_connect_flags, { "Ocd Connect Flags", "lustre.obd_connect_data.ocd_connect_flags", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_lov_ost_data_v1_l_object_id, { "L Object Id", "lustre.lov_ost_data_v1.l_object_id", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_lov_ost_data_v1_l_ost_gen, { "L Ost Gen", "lustre.lov_ost_data_v1.l_ost_gen", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_obd_statfs_os_bfree, { "Os Bfree", "lustre.obd_statfs.os_bfree", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_obd_connect_data_ocd_version, { "Ocd Version", "lustre.obd_connect_data.ocd_version", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_lov_mds_md_v1_lmm_objects, { "Lmm Objects", "lustre.lov_mds_md_v1.lmm_objects", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }}, { &hf_lustre_obd_statfs_os_namelen, { "Os Namelen", "lustre.obd_statfs.os_namelen", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_obd_statfs_os_blocks, { "Os Blocks", "lustre.obd_statfs.os_blocks", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_lustre_msg_v2_lm_secflvr, { "Lm Secflvr", "lustre.lustre_msg_v2.lm_secflvr", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_lustre_msg_v1_lm_transno, { "Lm Transno", "lustre.lustre_msg_v1.lm_transno", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_lov_mds_md_v1_lmm_pattern, { "Lmm Pattern", "lustre.lov_mds_md_v1.lmm_pattern", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_lustre_msg_v1_lm_opc, { "Lm Opc", "lustre.lustre_msg_v1.lm_opc", FT_UINT32, BASE_DEC, VALS(lustre_op_codes), 0, "", HFILL }}, { &hf_lustre_obd_connect_data_ocd_grant, { "Ocd Grant", "lustre.obd_connect_data.ocd_grant", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_obd_ioobj_ioo_bufcnt, { "Ioo Bufcnt", "lustre.obd_ioobj.ioo_bufcnt", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_lustre_msg_v1_lm_version, { "Lm Version", "lustre.lustre_msg_v1.lm_version", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_obd_statfs_os_spare7, { "Os Spare7", "lustre.obd_statfs.os_spare7", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_obd_statfs_os_fsid, { "Os Fsid", "lustre.obd_statfs.os_fsid", FT_UINT8, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_obd_connect_data_ocd_cksum_types, { "Ocd Cksum Types", "lustre.obd_connect_data.ocd_cksum_types", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_ost_lvb_lvb_size, { "Lvb Size", "lustre.ost_lvb.lvb_size", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_obd_statfs_os_type, { "Os Type", "lustre.obd_statfs.os_type", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_obd_statfs_os_spare6, { "Os Spare6", "lustre.obd_statfs.os_spare6", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_obd_statfs_os_state, { "Os State", "lustre.obd_statfs.os_state", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_obd_statfs_os_spare3, { "Os Spare3", "lustre.obd_statfs.os_spare3", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_lustre_msg_v2_lm_magic, { "Lm Magic", "lustre.lustre_msg_v2.lm_magic", FT_UINT32, BASE_HEX, NULL, 0, "", HFILL }}, { &hf_lustre_lov_mds_md_v1_lmm_object_id, { "Lmm Object Id", "lustre.lov_mds_md_v1.lmm_object_id", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_ptlrpc_body_pb_last_seen, { "Pb Last Seen", "lustre.ptlrpc_body.pb_last_seen", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_obd_ioobj_ioo_type, /* TODO : create the corresponding value_string */ { "Ioo Type", "lustre.obd_ioobj.ioo_type", FT_UINT32, BASE_HEX, NULL, 0, "", HFILL }}, { &hf_lustre_ptlrpc_body_pb_last_xid, { "Pb Last Xid", "lustre.ptlrpc_body.pb_last_xid", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_ptlrpc_body_pb_status, { "Pb Status", "lustre.ptlrpc_body.pb_status", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_niobuf_remote_flags, { "Flags", "lustre.niobuf_remote.flags", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_ll_fid_id, { "Id", "lustre.ll_fid.id", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_ost_lvb_lvb_blocks, { "Lvb Blocks", "lustre.ost_lvb.lvb_blocks", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_lustre_msg_v2_lm_padding_2, { "Lm Padding 2", "lustre.lustre_msg_v2.lm_padding_2", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_obd_connect_data_padding1, { "Padding1", "lustre.obd_connect_data.padding1", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_lov_ost_data_v1_l_ost_idx, { "L Ost Idx", "lustre.lov_ost_data_v1.l_ost_idx", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_obd_connect_data_padding2, { "Padding2", "lustre.obd_connect_data.padding2", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_obd_ioobj_ioo_seq, { "Ioo Gr", "lustre.obd_ioobj.ioo_seq", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_niobuf_remote_offset, { "Offset", "lustre.niobuf_remote.offset", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_obd_statfs_os_spare2, { "Os Spare2", "lustre.obd_statfs.os_spare2", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_lustre_msg_v2_lm_bufcount, { "Lm Bufcount", "lustre.lustre_msg_v2.lm_bufcount", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_ptlrpc_body_pb_handle, { "Pb Handle", "lustre.ptlrpc_body.pb_handle", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }}, { &hf_lustre_obd_connect_data_ocd_transno, { "Ocd Transno", "lustre.obd_connect_data.ocd_transno", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_lustre_msg_v1_lm_magic, { "Lm Magic", "lustre.lustre_msg_v1.lm_magic", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_ptlrpc_body_pb, { "ptl rpc", "lustre.ptlrpc_body", FT_NONE, BASE_NONE, NULL , 0 , "", HFILL }}, { &hf_lustre_obd_uuid, { "obd uid name", "lustre.obd_uid", FT_STRING, BASE_NONE, NULL , 0 , "", HFILL}}, { &hf_lustre_obd_connect_data , { "obd connect data", "lustre.obd_connect_data", FT_NONE, BASE_NONE, NULL , 0 , "", HFILL}}, { &hf_lustre_ldlm_intent, { "ldlm intent", "lustre.ldlm_intent", FT_NONE, BASE_NONE, NULL , 0 , "", HFILL}}, { &hf_lustre_obd_ioobj, { "lustre obd ioobj", "lustre.obd_ioobj", FT_NONE, BASE_NONE, NULL , 0 , "", HFILL}}, { &hf_lustre_niobuf_remote, { "lustre niobuf remote", "lustre.niobuf_remote", FT_NONE, BASE_NONE, NULL , 0 , "", HFILL}}, { &hf_lustre_ost_key, { "lustre ost key", "lustre.ost_key", FT_STRING, BASE_NONE, NULL , 0 , "", HFILL}}, { &hf_lustre_ost_val, { "lustre ost val", "lustre.ost_val", FT_STRING, BASE_NONE, NULL , 0 , "", HFILL}}, { &hf_lustre_llogd_chunk, { "lustre llogd chunk", "lustre.llogd_chunk", FT_NONE, BASE_NONE, NULL , 0 , "", HFILL}}, { &hf_lustre_llogd_keyword, { "lustre llogd keyword", "lustre.llogd_keyword", FT_STRING, BASE_NONE, NULL , 0 , "", HFILL}}, { &hf_lustre_llogd_client, { "lustre llogd client", "lustre.llogd_client", FT_STRING, BASE_NONE, NULL , 0 , "", HFILL}}, { &hf_lustre_llogd_name, { "lustre llogd name", "lustre.llogd_name", FT_STRING, BASE_NONE, NULL , 0 , "", HFILL}}, { &hf_lustre_llogd_log_hdr, { "lustre llogd log hdr", "lustre.llogd_log_hdr", FT_NONE, BASE_NONE, NULL , 0 , "", HFILL}}, { &hf_lustre_llog_logid_rec, { "lustre llog logid rec", "lustre.llog_logid_rec", FT_NONE, BASE_NONE, NULL , 0 , "", HFILL}}, { &hf_lustre_llogd_body, { "lustre llogd body", "lustre.llogd_body", FT_NONE, BASE_NONE, NULL , 0 , "", HFILL}}, { &hf_lustre_nio, { "lustre nio", "lustre.nio", FT_STRING, BASE_NONE, NULL , 0 , "", HFILL}}, { &hf_lustre_ost_body, { "ost body", "lustre.ost_body", FT_NONE, BASE_NONE, NULL , 0 , "", HFILL }}, { &hf_lustre_obd_statfs, { "obd statfs", "lustre.obd_statfs", FT_NONE, BASE_NONE, NULL , 0 , "", HFILL }}, { &hf_lustre_obd_quotactl, { "obd quotactl", "lustre.obd_quotacl", FT_NONE, BASE_NONE, NULL , 0 , "", HFILL }}, { &hf_lustre_quota_adjust_qunit, { "obd quota adjust qunit", "lustre.quota_adjust_qunit", FT_NONE, BASE_NONE, NULL , 0 , "", HFILL }}, { &hf_lustre_llog_unlink_rec_lur_tail, { "Lur Tail", "lustre.llog_unlink_rec.lur_tail", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }}, { &hf_lustre_llog_size_change_rec_lsc_io_epoch, { "Lsc Io Epoch", "lustre.llog_size_change_rec.lsc_io_epoch", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mgs_target_info_mti_flags, { "Mti Flags", "lustre.mgs_target_info.mti_flags", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_ldlm_reply_lock_policy_res1, { "Lock Policy Res1", "lustre.ldlm_reply.lock_policy_res1", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_llogd_body_lgd_len, { "Lgd Len", "lustre.llogd_body.lgd_len", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_qunit_data_old_qd_id, { "Qd Id", "lustre.qunit_data_old.qd_id", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_llog_logid_rec_padding1, { "Padding1", "lustre.llog_logid_rec.padding1", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_quota_adjust_qunit_padding1, { "Padding1", "lustre.quota_adjust_qunit.padding1", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_llog_size_change_rec_lsc_fid, { "Lsc Fid", "lustre.llog_size_change_rec.lsc_fid", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }}, { &hf_lustre_llog_rec_hdr_padding, { "Padding", "lustre.llog_rec_hdr.padding", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_obdo_o_nlink, { "O Nlink", "lustre.obdo.o_nlink", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_ldlm_extent_gid, { "Gid", "lustre.ldlm_extent.gid", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_obdo_o_uid, { "O Uid", "lustre.obdo.o_uid", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mds_xattr_name, { "mds xattr name", "lustre.mds_xattr_name", FT_STRING, BASE_NONE, NULL, 0, "", HFILL }}, { &hf_lustre_lov_mds_md_v1, { "lov mds md v1", "lustre.lov_mds_md_v1", FT_NONE, BASE_NONE, NULL, 0, "", HFILL }}, { &hf_lustre_llog_cookie, { "llog cookie", "lustre.llog_cookie", FT_NONE, BASE_NONE, NULL, 0, "", HFILL }}, { &hf_lustre_mds_md_data, { "mds md data", "lustre.mds_md_data", FT_NONE, BASE_NONE, NULL, 0, "", HFILL }}, { &hf_lustre_mds_reint_opcode, { "mds reint opcode", "lustre.mds_reint_opcode", FT_STRING, BASE_NONE, NULL, 0, "", HFILL }}, { &hf_lustre_mds_xattr_eadata, { "mds xattr eadata", "lustre.mds_xattr_eadata", FT_NONE, BASE_NONE, NULL, 0, "", HFILL }}, { &hf_lustre_reint_name, { "mds reint name", "lustre.mds_reint_name", FT_STRING, BASE_NONE, NULL, 0, "", HFILL }}, { &hf_lustre_reint_old_name, { "mds reint old name", "lustre.mds_reint_old_name", FT_STRING, BASE_NONE, NULL, 0, "", HFILL }}, { &hf_lustre_reint_new_name, { "mds reint new name", "lustre.mds_reint_new_name", FT_STRING, BASE_NONE, NULL, 0, "", HFILL }}, { &hf_lustre_obdo_o_valid, { "O Valid", "lustre.obdo.o_valid", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_ldlm_reply_lock_flags, { "Lock Flags", "lustre.ldlm_reply.lock_flags", FT_UINT32,BASE_HEX, NULL, 0, "", HFILL }}, {&hf_lustre_ldlm_fl_lock_changed, {"LDLM_FL_LOCK_CHANGED", "lustre.ldlm_fl_lock_changed", FT_BOOLEAN, 32, TFS(&flags_set_truth), LDLM_FL_LOCK_CHANGED, "", HFILL}}, {&hf_lustre_ldlm_fl_block_granted, {"LDLM_FL_BLOCK_GRANTED", "lustre.ldlm_fl_block_granted", FT_BOOLEAN, 32, TFS(&flags_set_truth), LDLM_FL_BLOCK_GRANTED, "", HFILL}}, {&hf_lustre_ldlm_fl_block_conv, {"LDLM_FL_BLOCK_CONV", "lustre.ldlm_fl_block_conv", FT_BOOLEAN, 32, TFS(&flags_set_truth), LDLM_FL_BLOCK_CONV, "", HFILL}}, {&hf_lustre_ldlm_fl_block_wait, {"LDLM_FL_BLOCK_WAIT", "lustre.ldlm_fl_block_wait", FT_BOOLEAN, 32, TFS(&flags_set_truth), LDLM_FL_BLOCK_WAIT, "", HFILL}}, {&hf_lustre_ldlm_fl_cbpending, {"LDLM_FL_CBPENDING", "lustre.ldlm_fl_cbpending", FT_BOOLEAN, 32, TFS(&flags_set_truth), LDLM_FL_CBPENDING, "", HFILL}}, {&hf_lustre_ldlm_fl_ast_sent, {"LDLM_FL_AST_SENT", "lustre.ldlm_fl_ast_sent", FT_BOOLEAN, 32, TFS(&flags_set_truth), LDLM_FL_AST_SENT, "", HFILL}}, {&hf_lustre_ldlm_fl_wait_noreproc, {"LDLM_FL_WAIT_NOREPROC", "lustre.ldlm_fl_wait_noreproc", FT_BOOLEAN, 32, TFS(&flags_set_truth), LDLM_FL_WAIT_NOREPROC, "", HFILL}}, {&hf_lustre_ldlm_fl_cancel, {"LDLM_FL_CANCEL", "lustre.ldlm_fl_cancel", FT_BOOLEAN, 32, TFS(&flags_set_truth), LDLM_FL_CANCEL, "", HFILL}}, {&hf_lustre_ldlm_fl_replay, {"LDLM_FL_REPLAY", "lustre.ldlm_fl_replay", FT_BOOLEAN, 32, TFS(&flags_set_truth), LDLM_FL_REPLAY, "", HFILL}}, {&hf_lustre_ldlm_fl_intent_only, {"LDLM_FL_INTENT_ONLY", "lustre.ldlm_fl_intent_only", FT_BOOLEAN, 32, TFS(&flags_set_truth), LDLM_FL_INTENT_ONLY, "", HFILL}}, {&hf_lustre_ldlm_fl_local_only, {"LDLM_FL_LOCAL_ONLY", "lustre.ldlm_fl_local_only", FT_BOOLEAN, 32, TFS(&flags_set_truth), LDLM_FL_LOCAL_ONLY, "", HFILL}}, {&hf_lustre_ldlm_fl_failed, {"LDLM_FL_FAILED", "lustre.ldlm_fl_failed", FT_BOOLEAN, 32, TFS(&flags_set_truth), LDLM_FL_FAILED, "", HFILL}}, {&hf_lustre_ldlm_fl_has_intent, {"LDLM_FL_HAS_INTENT", "lustre.ldlm_fl_has_intent", FT_BOOLEAN, 32, TFS(&flags_set_truth), LDLM_FL_HAS_INTENT, "", HFILL}}, {&hf_lustre_ldlm_fl_canceling, {"LDLM_FL_CANCELING", "lustre.ldlm_fl_canceling", FT_BOOLEAN, 32, TFS(&flags_set_truth), LDLM_FL_CANCELING, "", HFILL}}, {&hf_lustre_ldlm_fl_local, {"LDLM_FL_LOCAL", "lustre.ldlm_fl_local", FT_BOOLEAN, 32, TFS(&flags_set_truth), LDLM_FL_LOCAL, "", HFILL}}, {&hf_lustre_ldlm_fl_warn, {"LDLM_FL_WARN", "lustre.ldlm_fl_warn", FT_BOOLEAN, 32, TFS(&flags_set_truth), LDLM_FL_WARN, "", HFILL}}, {&hf_lustre_ldlm_fl_discard_data, {"LDLM_FL_DISCARD_DATA", "lustre.ldlm_fl_discard_data", FT_BOOLEAN, 32, TFS(&flags_set_truth), LDLM_FL_DISCARD_DATA, "", HFILL}}, {&hf_lustre_ldlm_fl_no_timeout, {"LDLM_FL_NO_TIMEOUT", "lustre.ldlm_fl_no_timeout", FT_BOOLEAN, 32, TFS(&flags_set_truth), LDLM_FL_NO_TIMEOUT, "", HFILL}}, {&hf_lustre_ldlm_fl_block_nowait, {"LDLM_FL_BLOCK_NOWAIT", "lustre.ldlm_fl_block_nowait", FT_BOOLEAN, 32, TFS(&flags_set_truth), LDLM_FL_BLOCK_NOWAIT, "", HFILL}}, {&hf_lustre_ldlm_fl_test_lock, {"LDLM_FL_TEST_LOCK", "lustre.ldlm_fl_test_lock", FT_BOOLEAN, 32, TFS(&flags_set_truth), LDLM_FL_TEST_LOCK, "", HFILL}}, {&hf_lustre_ldlm_fl_lvb_ready, {"LDLM_FL_LVB_READY", "lustre.ldlm_fl_lvb_ready", FT_BOOLEAN, 32, TFS(&flags_set_truth), LDLM_FL_LVB_READY, "", HFILL}}, {&hf_lustre_ldlm_fl_kms_ignore, {"LDLM_FL_KMS_IGNORE", "lustre.ldlm_fl_kms_ignore", FT_BOOLEAN, 32, TFS(&flags_set_truth), LDLM_FL_KMS_IGNORE, "", HFILL}}, {&hf_lustre_ldlm_fl_no_lru, {"LDLM_FL_NO_LRU", "lustre.ldlm_fl_no_lru", FT_BOOLEAN, 32, TFS(&flags_set_truth), LDLM_FL_NO_LRU, "", HFILL}}, {&hf_lustre_ldlm_fl_cancel_on_block, {"LDLM_FL_CANCEL_ON_BLOCK", "lustre.ldlm_fl_cancel_on_block", FT_BOOLEAN, 32, TFS(&flags_set_truth), LDLM_FL_CANCEL_ON_BLOCK, "", HFILL}}, {&hf_lustre_ldlm_fl_cp_reqd, {"LDLM_FL_CP_REQD", "lustre.ldlm_fl_cp_reqd", FT_BOOLEAN, 32, TFS(&flags_set_truth), LDLM_FL_CP_REQD, "", HFILL}}, {&hf_lustre_ldlm_fl_cleaned, {"LDLM_FL_CLEANED", "lustre.ldlm_fl_cleaned", FT_BOOLEAN, 32, TFS(&flags_set_truth), LDLM_FL_CLEANED, "", HFILL}}, {&hf_lustre_ldlm_fl_atomic_cb, {"LDLM_FL_ATOMIC_CB", "lustre.ldlm_fl_atomic_cb", FT_BOOLEAN, 32, TFS(&flags_set_truth), LDLM_FL_ATOMIC_CB, "", HFILL}}, {&hf_lustre_ldlm_fl_bl_ast, {"LDLM_FL_BL_AST", "lustre.ldlm_fl_bl_ast", FT_BOOLEAN, 32, TFS(&flags_set_truth), LDLM_FL_BL_AST, "", HFILL}}, {&hf_lustre_ldlm_fl_bl_done, {"LDLM_FL_BL_DONE", "lustre.ldlm_fl_bl_done", FT_BOOLEAN, 32, TFS(&flags_set_truth), LDLM_FL_BL_DONE, "", HFILL}}, {&hf_lustre_ldlm_fl_deny_on_contention, {"LDLM_FL_DENY_ON_CONTENTION", "lustre.ldlm_fl_deny_on_contention", FT_BOOLEAN, 32, TFS(&flags_set_truth), LDLM_FL_DENY_ON_CONTENTION, "", HFILL}}, {&hf_lustre_ldlm_ast_discard_data, {"LDLM_AST_DISCARD_DATA", "lustre.ldlm_ast_discard_data", FT_BOOLEAN, 32, TFS(&flags_set_truth), LDLM_AST_DISCARD_DATA, "", HFILL}}, { &hf_lustre_obdo_o_misc, { "O Misc", "lustre.obdo.o_misc", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_ldlm_request_lock_handle, { "Lock Handle", "lustre.ldlm_request.lock_handle", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }}, { &hf_lustre_llog_logid_lgl_oid, { "Lgl Oid", "lustre.llog_logid.lgl_oid", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_ldlm_inodebits_bits, { "Bits", "lustre.ldlm_inodebits.bits", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_llog_log_hdr_llh_count, { "Llh Count", "lustre.llog_log_hdr.llh_count", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_llog_gen_rec_lgr_tail, { "Lgr Tail", "lustre.llog_gen_rec.lgr_tail", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }}, { &hf_lustre_llog_catid_lci_padding3, { "Lci Padding3", "lustre.llog_catid.lci_padding3", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_qunit_data_qd_qunit, { "Qd Qunit", "lustre.qunit_data.qd_qunit", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_llog_setattr_rec_padding, { "Padding", "lustre.llog_setattr_rec.padding", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_llog_cookie_lgc_lgl, { "Lgc Lgl", "lustre.llog_cookie.lgc_lgl", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }}, { &hf_lustre_obd_quotactl_qc_dqinfo, { "Qc Dqinfo", "lustre.obd_quotactl.qc_dqinfo", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }}, { &hf_lustre_llog_log_hdr_llh_bitmap, { "Llh Bitmap", "lustre.llog_log_hdr.llh_bitmap", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_obd_quotactl_qc_stat, { "Qc Stat", "lustre.obd_quotactl.qc_stat", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_qunit_data_old2_qd_id, { "Qd Id", "lustre.qunit_data_old2.qd_id", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_llog_logid_rec_padding2, { "Padding2", "lustre.llog_logid_rec.padding2", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_llog_orphan_rec_lor_tail, { "Lor Tail", "lustre.llog_orphan_rec.lor_tail", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }}, { &hf_lustre_llog_logid_rec_padding5, { "Padding5", "lustre.llog_logid_rec.padding5", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, /*-------------------------------------------------------------------------------------------------------------*/ /*all this flags are uint64, but I don't find the way to use something like TFS() with a Uint64*/ { &hf_lustre_ldlm_intent_opc_open, { "open", "lustre.ldlm_intent.opc_open", FT_BOOLEAN, 32, TFS(&flags_set_truth), IT_OPEN, "", HFILL}}, { &hf_lustre_ldlm_intent_opc_creat, { "creat", "lustre.ldlm_intent.opc_creat", FT_BOOLEAN, 32, TFS(&flags_set_truth), IT_CREAT , "", HFILL}}, { &hf_lustre_ldlm_intent_opc_readdir, { "readdir", "lustre.ldlm_intent.opc_readdir", FT_BOOLEAN, 32, TFS(&flags_set_truth), IT_READDIR , "", HFILL}}, { &hf_lustre_ldlm_intent_opc_getattr, { "getattr", "lustre.ldlm_intent.opc_getattr", FT_BOOLEAN, 32, TFS(&flags_set_truth), IT_GETATTR, "", HFILL}}, { &hf_lustre_ldlm_intent_opc_lookup, { "lookup", "lustre.ldlm_intent.opc_lookup", FT_BOOLEAN, 32, TFS(&flags_set_truth), IT_LOOKUP , "", HFILL}}, { &hf_lustre_ldlm_intent_opc_unlink, { "unlink", "lustre.ldlm_intent.opc_unlink", FT_BOOLEAN, 32, TFS(&flags_set_truth), IT_UNLINK , "", HFILL}}, { &hf_lustre_ldlm_intent_opc_getxattr, { "getxattr", "lustre.ldlm_intent.opc_getxattr", FT_BOOLEAN, 32, TFS(&flags_set_truth), IT_GETXATTR , "", HFILL}}, { &hf_lustre_ldlm_intent_opc_exec, { "exec", "lustre.ldlm_intent.opc_exec", FT_BOOLEAN, 32, TFS(&flags_set_truth), IT_EXEC , "", HFILL}}, { &hf_lustre_ldlm_intent_opc_pin, { "pin", "lustre.ldlm_intent.opc_pin", FT_BOOLEAN, 32, TFS(&flags_set_truth), IT_PIN , "", HFILL}}, /*-------------------------------------------------------------------------------------------------------------*/ { &hf_lustre_ldlm_intent_opc, { "intent opcode", "lustre.ldlm_intent.opc", FT_NONE, BASE_NONE, NULL, 0, "", HFILL}}, { &hf_lustre_llog_rec_hdr_lrh_type, { "Lrh Type", "lustre.llog_rec_hdr.lrh_type", FT_UINT32, BASE_HEX, VALS(lustre_llog_op_type), 0, "", HFILL }}, { &hf_lustre_llog_rec_hdr_lrh_len, { "Lrh Len", "lustre.llog_rec_hdr.lrh_len", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_llog_setattr_rec_lsr_uid, { "Lsr Uid", "lustre.llog_setattr_rec.lsr_uid", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_lov_desc_ld_padding_1, { "Ld Padding 1", "lustre.lov_desc.ld_padding_1", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_obdo_o_padding_4, { "O Padding 4", "lustre.obdo.o_padding_4", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mgs_target_info_padding, { "Padding", "lustre.mgs_target_info.padding", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_obd_quotactl_qc_dqblk, { "Qc Dqblk", "lustre.obd_quotactl.qc_dqblk", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }}, { &hf_lustre_llogd_conn_body_lgdc_gen, { "Lgdc Gen", "lustre.llogd_conn_body.lgdc_gen", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }}, { &hf_lustre_llog_log_hdr_llh_tail, { "Llh Tail", "lustre.llog_log_hdr.llh_tail", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }}, { &hf_lustre_obdo_o_size, { "O Size", "lustre.obdo.o_size", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_ldlm_extent_start, { "Start", "lustre.ldlm_extent.start", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_llog_size_change_rec_lsc_hdr, { "Lsc Hdr", "lustre.llog_size_change_rec.lsc_hdr", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }}, { &hf_lustre_llog_create_rec_lcr_tail, { "Lcr Tail", "lustre.llog_create_rec.lcr_tail", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }}, { &hf_lustre_llog_logid_lgl_oseq, { "Lgl SEQ", "lustre.llog_logid.lgl_oseq", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_llog_create_rec_lcr_hdr, { "Lcr Hdr", "lustre.llog_create_rec.lcr_hdr", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }}, { &hf_lustre_llog_cookie_lgc_padding, { "Lgc Padding", "lustre.llog_cookie.lgc_padding", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_qunit_data_old_qd_type, { "Qd Type", "lustre.qunit_data_old.qd_type", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_ldlm_flock_blocking_export, { "Blocking Export", "lustre.ldlm_flock.blocking_export", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_lov_desc_ld_pattern, { "Ld Pattern", "lustre.lov_desc.ld_pattern", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_qunit_data_qd_id, { "Qd Id", "lustre.qunit_data.qd_id", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mgs_target_info_mti_fsname, { "Mti Fsname", "lustre.mgs_target_info.mti_fsname", FT_UINT8, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_ldlm_request_lock_flags, { "Lock Flags", "lustre.ldlm_request.lock_flags", FT_UINT32, BASE_HEX, NULL, 0 , "", HFILL }}, { &hf_lustre_obdo_o_mode, { "O Mode", "lustre.obdo.o_mode", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mgs_target_info_mti_svname, { "Mti Svname", "lustre.mgs_target_info.mti_svname", FT_UINT8, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_llogd_body_lgd_logid, { "Lgd Logid", "lustre.llogd_body.lgd_logid", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }}, { &hf_lustre_llog_log_hdr_llh_size, { "Llh Size", "lustre.llog_log_hdr.llh_size", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_llog_create_rec_padding, { "Padding", "lustre.llog_create_rec.padding", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_obdo_o_handle, { "O Handle", "lustre.obdo.o_handle", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }}, { &hf_lustre_obdo_o_atime, { "O Atime", "lustre.obdo.o_atime",FT_ABSOLUTE_TIME, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_quota_adjust_qunit_qaq_id, { "Qaq Id", "lustre.quota_adjust_qunit.qaq_id", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_ldlm_lock_desc_l_policy_data, { "L Policy Data", "lustre.ldlm_lock_desc.l_policy_data", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }}, { &hf_lustre_obd_quotactl_qc_cmd, { "Qc Cmd", "lustre.obd_quotactl.qc_cmd", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_qunit_data_padding, { "Padding", "lustre.qunit_data.padding", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_quota_adjust_qunit_qaq_flags, { "Qaq Flags", "lustre.quota_adjust_qunit.qaq_flags", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_ldlm_lock_desc_l_granted_mode, { "L Granted Mode", "lustre.ldlm_lock_desc.l_granted_mode", FT_UINT16, BASE_DEC, VALS(lustre_ldlm_mode_t_vals), 0, "", HFILL }}, { &hf_lustre_obdo_o_seq, { "O SEQ", "lustre.obdo.o_seq", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_obdo_o_gid, { "O Gid", "lustre.obdo.o_gid", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_llog_catid_lci_logid, { "Lci Logid", "lustre.llog_catid.lci_logid", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }}, { &hf_lustre_llog_rec_tail_lrt_index, { "Lrt Index", "lustre.llog_rec_tail.lrt_index", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_lov_desc_ld_default_stripe_count, { "Ld Default Stripe Count", "lustre.lov_desc.ld_default_stripe_count", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_ldlm_resource_desc_lr_padding, { "Lr Padding", "lustre.ldlm_resource_desc.lr_padding", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_cfg_marker_cm_vers, { "Cm Vers", "lustre.cfg_marker.cm_vers", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_llog_unlink_rec_lur_hdr, { "Lur Hdr", "lustre.llog_unlink_rec.lur_hdr", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }}, { &hf_lustre_llogd_body_lgd_index, { "Lgd Index", "lustre.llogd_body.lgd_index", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_cfg_marker_cm_tgtname, { "Cm Tgtname", "lustre.cfg_marker.cm_tgtname", FT_UINT8, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_llog_setattr_rec_lsr_ogen, { "Lsr Ogen", "lustre.llog_setattr_rec.lsr_ogen", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_llog_logid_rec_lid_hdr, { "Lid Hdr", "lustre.llog_logid_rec.lid_hdr", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }}, { &hf_lustre_obdo_o_ioepoch, { "O IOEpoch", "lustre.obdo.o_ioepoch", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_ost_body_oa, { "Oa", "lustre.ost_body.oa", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }}, { &hf_lustre_llog_logid_rec_padding3, { "Padding3", "lustre.llog_logid_rec.padding3", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_llog_log_hdr_llh_flags, { "Llh Flags", "lustre.llog_log_hdr.llh_flags", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, {&hf_lustre_llog_hdr_llh_flag_zap_when_empty, {"LLOG_F_ZAP_WHEN_EMPTY","lustre.lustre.llog_log_hdr.llh_flag_zap",FT_BOOLEAN,32,TFS(&flags_set_truth),LLOG_F_ZAP_WHEN_EMPTY,"",HFILL}}, {&hf_lustre_llog_hdr_llh_flag_is_cat, {"LLOG_F_IS_CAT","lustre.lustre.llog_log_hdr.llh_flag_cat",FT_BOOLEAN,32,TFS(&flags_set_truth),LLOG_F_IS_CAT,"",HFILL}}, {&hf_lustre_llog_hdr_llh_flag_is_play, {"LOG_F_IS_PLAIN","lustre.lustre.llog_log_hdr.llh_flag_play",FT_BOOLEAN,32,TFS(&flags_set_truth),LLOG_F_IS_PLAIN,"",HFILL}}, { &hf_lustre_llog_setattr_rec_lsr_oid, { "Lsr Oid", "lustre.llog_setattr_rec.lsr_oid", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_llog_size_change_rec_padding, { "Padding", "lustre.llog_size_change_rec.padding", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mgs_target_info_mti_config_ver, { "Mti Config Ver", "lustre.mgs_target_info.mti_config_ver", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_cfg_marker_cm_createtime, { "Cm Createtime", "lustre.cfg_marker.cm_createtime",FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_qunit_data_old_qd_count, { "Qd Count", "lustre.qunit_data_old.qd_count", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_llog_catid_lci_padding1, { "Lci Padding1", "lustre.llog_catid.lci_padding1", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_lov_desc_ld_active_tgt_count, { "Ld Active Tgt Count", "lustre.lov_desc.ld_active_tgt_count", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_obdo_o_lcookie, { "O Lcookie", "lustre.obdo.o_lcookie", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }}, { &hf_lustre_llog_gen_rec_lgr_gen, { "Lgr Gen", "lustre.llog_gen_rec.lgr_gen", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }}, { &hf_lustre_obdo_o_id, { "O Id", "lustre.obdo.o_id", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mgs_target_info_mti_uuid, { "Mti Uuid", "lustre.mgs_target_info.mti_uuid", FT_UINT8, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_llog_rec_hdr_lrh_index, { "Lrh Index", "lustre.llog_rec_hdr.lrh_index", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_llog_setattr_rec_lsr_hdr, { "Lsr Hdr", "lustre.llog_setattr_rec.lsr_hdr", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }}, { &hf_lustre_mgs_target_info_mti_stripe_index, { "Mti Stripe Index", "lustre.mgs_target_info.mti_stripe_index", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_llog_gen_conn_cnt, { "Conn Cnt", "lustre.llog_gen.conn_cnt", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_obdo_o_padding_6, { "O Padding 6", "lustre.obdo.o_padding_6", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_llog_cookie_lgc_index, { "Lgc Index", "lustre.llog_cookie.lgc_index", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_lov_desc_ld_uuid, { "Ld Uuid", "lustre.lov_desc.ld_uuid", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }}, { &hf_lustre_llog_create_rec_lcr_oid, { "Lcr Oid", "lustre.llog_create_rec.lcr_oid", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_ldlm_reply_lock_desc, { "Lock Desc", "lustre.ldlm_reply.lock_desc", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }}, { &hf_lustre_lov_desc_ld_padding_0, { "Ld Padding 0", "lustre.lov_desc.ld_padding_0", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_llog_unlink_rec_lur_ogen, { "Lur Ogen", "lustre.llog_unlink_rec.lur_ogen", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_llog_orphan_rec_lor_hdr, { "Lor Hdr", "lustre.llog_orphan_rec.lor_hdr", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }}, { &hf_lustre_cfg_marker_cm_flags, { "Cm Flags", "lustre.cfg_marker.cm_flags", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_obdo_o_padding_3, { "O Padding 3", "lustre.obdo.o_padding_3", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_ldlm_request_lock_desc, { "Lock Desc", "lustre.ldlm_request.lock_desc", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }}, { &hf_lustre_llog_orphan_rec_padding, { "Padding", "lustre.llog_orphan_rec.padding", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_obdo_o_flags, { "O Flags", "lustre.obdo.o_flags", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mgs_target_info_mti_params, { "Mti Params", "lustre.mgs_target_info.mti_params", FT_UINT8, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_llog_logid_lgl_ogen, { "Lgl Ogen", "lustre.llog_logid.lgl_ogen", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_cfg_marker_cm_comment, { "Cm Comment", "lustre.cfg_marker.cm_comment", FT_UINT8, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_llog_unlink_rec_lur_oid, { "Lur Oid", "lustre.llog_unlink_rec.lur_oid", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_qunit_data_qd_count, { "Qd Count", "lustre.qunit_data.qd_count", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_obdo_o_mtime, { "O Mtime", "lustre.obdo.o_mtime",FT_ABSOLUTE_TIME, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_obdo_o_blksize, { "O Blksize", "lustre.obdo.o_blksize", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_ldlm_res_id_name, { "Name", "lustre.ldlm_res_id.name", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_ldlm_reply_lock_handle, { "Lock Handle", "lustre.ldlm_reply.lock_handle", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }}, { &hf_lustre_llogd_body_lgd_saved_index, { "Lgd Saved Index", "lustre.llogd_body.lgd_saved_index", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_qunit_data_old_qd_isblk, { "Qd Isblk", "lustre.qunit_data_old.qd_isblk", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_obdo_o_blocks, { "O Blocks", "lustre.obdo.o_blocks", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_lov_desc_ld_padding_2, { "Ld Padding 2", "lustre.lov_desc.ld_padding_2", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_llog_logid_rec_lid_tail, { "Lid Tail", "lustre.llog_logid_rec.lid_tail", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }}, { &hf_lustre_obdo_o_grant, { "O Grant", "lustre.obdo.o_grant", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_obdo_o_padding_2, { "O Padding 2", "lustre.obdo.o_padding_2", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_quota_adjust_qunit_qaq_iunit_sz, { "Qaq Iunit Sz", "lustre.quota_adjust_qunit.qaq_iunit_sz", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_llog_unlink_rec_padding, { "Padding", "lustre.llog_unlink_rec.padding", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_ldlm_lock_desc_l_req_mode, { "L Req Mode", "lustre.ldlm_lock_desc.l_req_mode", FT_UINT16, BASE_DEC, VALS(lustre_ldlm_mode_t_vals), 0, "", HFILL }}, { &hf_lustre_ldlm_extent_end, { "End", "lustre.ldlm_extent.end", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_llog_gen_rec_lgr_hdr, { "Lgr Hdr", "lustre.llog_gen_rec.lgr_hdr", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }}, { &hf_lustre_llog_orphan_rec_lor_ogen, { "Lor Ogen", "lustre.llog_orphan_rec.lor_ogen", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_llogd_body_lgd_llh_flags, { "Lgd Llh Flags", "lustre.llogd_body.lgd_llh_flags", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_llog_log_hdr_llh_cat_idx, { "Llh Cat Idx", "lustre.llog_log_hdr.llh_cat_idx", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_llog_log_hdr_llh_bitmap_offset, { "Llh Bitmap Offset", "lustre.llog_log_hdr.llh_bitmap_offset", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_llog_orphan_rec_lor_oid, { "Lor Oid", "lustre.llog_orphan_rec.lor_oid", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_ldlm_reply_lock_padding, { "Lock Padding", "lustre.ldlm_reply.lock_padding", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_obd_quotactl_qc_id, { "Qc Id", "lustre.obd_quotactl.qc_id", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_llog_logid_rec_padding4, { "Padding4", "lustre.llog_logid_rec.padding4", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_llog_setattr_rec_lsr_gid, { "Lsr Gid", "lustre.llog_setattr_rec.lsr_gid", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_obd_quotactl_qc_type, { "Qc Type", "lustre.obd_quotactl.qc_type", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_cfg_marker_padding, { "Padding", "lustre.cfg_marker.padding", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mgs_target_info_mti_nids, { "Mti Nids", "lustre.mgs_target_info.mti_nids", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_obdo_o_stripe_idx, { "O Stripe Idx", "lustre.obdo.o_stripe_idx", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_llogd_conn_body_lgdc_logid, { "Lgdc Logid", "lustre.llogd_conn_body.lgdc_logid", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }}, { &hf_lustre_ldlm_flock_blocking_pid, { "Blocking Pid", "lustre.ldlm_flock.blocking_pid", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_lov_desc_ld_tgt_count, { "Ld Tgt Count", "lustre.lov_desc.ld_tgt_count", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_llogd_body_lgd_cur_offset, { "Lgd Cur Offset", "lustre.llogd_body.lgd_cur_offset", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_llog_create_rec_lcr_ogen, { "Lcr Ogen", "lustre.llog_create_rec.lcr_ogen", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_qunit_data_old2_qd_count, { "Qd Count", "lustre.qunit_data_old2.qd_count", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_opnum, { "Operation", "lustre.opnum", FT_UINT16, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_qunit_data_old2_qd_flags, { "Qd Flags", "lustre.qunit_data_old2.qd_flags", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_ldlm_flock_start, { "Start", "lustre.ldlm_flock.start", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_quota_adjust_qunit_qaq_bunit_sz, { "Qaq Bunit Sz", "lustre.quota_adjust_qunit.qaq_bunit_sz", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_ldlm_flock_pid, { "Pid", "lustre.ldlm_flock.pid", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_lov_desc_ld_default_stripe_size, { "Ld Default Stripe Size", "lustre.lov_desc.ld_default_stripe_size", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_llog_log_hdr_llh_tgtuuid, { "Llh Tgtuuid", "lustre.llog_log_hdr.llh_tgtuuid", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }}, { &hf_lustre_cfg_marker_cm_step, { "Cm Step", "lustre.cfg_marker.cm_step", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mgs_send_param_mgs_param, { "Mgs Param", "lustre.mgs_send_param.mgs_param", FT_UINT8, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_llog_create_rec_lcr_fid, { "Lcr Fid", "lustre.llog_create_rec.lcr_fid", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }}, { &hf_lustre_lov_desc_ld_default_stripe_offset, { "Ld Default Stripe Offset", "lustre.lov_desc.ld_default_stripe_offset", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_ldlm_resource_desc_lr_name, { "Lr Name", "lustre.ldlm_resource_desc.lr_name", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }}, { &hf_lustre_llog_rec_tail_lrt_len, { "Lrt Len", "lustre.llog_rec_tail.lrt_len", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_llog_log_hdr_llh_timestamp, { "Llh Timestamp", "lustre.llog_log_hdr.llh_timestamp", FT_ABSOLUTE_TIME, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_llog_catid_lci_padding2, { "Lci Padding2", "lustre.llog_catid.lci_padding2", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_llogd_conn_body_lgdc_ctxt_idx, { "Lgdc Ctxt Idx", "lustre.llogd_conn_body.lgdc_ctxt_idx", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_cfg_marker_cm_canceltime, { "Cm Canceltime", "lustre.cfg_marker.cm_canceltime",FT_ABSOLUTE_TIME, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mgs_target_info_mti_lustre_ver, { "Mti Lustre Ver", "lustre.mgs_target_info.mti_lustre_ver", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_obdo_o_parent_ver, { "O Parent VER", "lustre.obdo.o_parent_ver", FT_UINT32, BASE_HEX, NULL, 0, "", HFILL }}, { &hf_lustre_qunit_data_qd_flags, { "Qd Flags", "lustre.qunit_data.qd_flags", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_llog_logid_rec_lid_id, { "Lid Id", "lustre.llog_logid_rec.lid_id", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }}, { &hf_lustre_obdo_o_parent_oid, { "O Parent OID", "lustre.obdo.o_parent_oid", FT_UINT32, BASE_HEX, NULL, 0, "", HFILL }}, { &hf_lustre_llog_gen_mnt_cnt, { "Mnt Cnt", "lustre.llog_gen.mnt_cnt", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_llog_size_change_rec_lsc_tail, { "Lsc Tail", "lustre.llog_size_change_rec.lsc_tail", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }}, { &hf_lustre_obdo_o_padding_5, { "O Padding 5", "lustre.obdo.o_padding_5", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_ldlm_lock_desc_l_resource, { "L Resource", "lustre.ldlm_lock_desc.l_resource", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }}, { &hf_lustre_obdo_o_parent_seq, { "O Parent SEQ", "lustre.obdo.o_parent_seq", FT_UINT64, BASE_HEX, NULL, 0, "", HFILL }}, { &hf_lustre_ldlm_request_lock_count, { "Lock Count", "lustre.ldlm_request.lock_count", FT_UINT32, BASE_HEX_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_ldlm_flock_end, { "End", "lustre.ldlm_flock.end", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_mgs_target_info_mti_nid_count, { "Mti Nid Count", "lustre.mgs_target_info.mti_nid_count", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, /* ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- */ { &hf_lustre_mgs_target_info, { "mgs target info", "lustre.mgs_target_info", FT_NONE, BASE_NONE, NULL, 0, "", HFILL }}, { &hf_lustre_mgs_send_param, { "mgs send param", "lustre.mgs_send_param", FT_NONE, BASE_NONE, NULL, 0, "", HFILL }}, /* ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- */ { &hf_lustre_ost_lvb, { "ost lvb data", "lustre.ost_lvb", FT_NONE, BASE_NONE, NULL, 0, "", HFILL }}, { &hf_lustre_obdo_o_ctime, { "O Ctime", "lustre.obdo.o_ctime",FT_ABSOLUTE_TIME, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_ldlm_reply_lock_policy_res2, { "Lock Policy Res2", "lustre.ldlm_reply.lock_policy_res2", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_llogd_body_lgd_ctxt_idx, { "Lgd Ctxt Idx", "lustre.llogd_body.lgd_ctxt_idx", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_lov_desc_ld_qos_maxage, { "Ld Qos Maxage", "lustre.lov_desc.ld_qos_maxage", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_ldlm_resource_desc_lr_type, { "Lr Type", "lustre.ldlm_resource_desc.lr_type", FT_UINT16, BASE_DEC, VALS(lustre_ldlm_type_t_vals), 0, "", HFILL }}, { &hf_lustre_llog_setattr_rec_lsr_tail, { "Lsr Tail", "lustre.llog_setattr_rec.lsr_tail", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }}, { &hf_lustre_llog_cookie_lgc_subsys, { "Lgc Subsys", "lustre.llog_cookie.lgc_subsys", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_llog_log_hdr_llh_hdr, { "Llh Hdr", "lustre.llog_log_hdr.llh_hdr", FT_NONE, BASE_HEX, NULL, 0, "", HFILL }}, { &hf_lustre_llog_log_hdr_llh_reserved, { "Llh Reserved", "lustre.llog_log_hdr.llh_reserved", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_extra_padding, { "extra padding", "lustre.msg_v2_extra_padding", FT_NONE, BASE_NONE, NULL, 0, "", HFILL}}, { &hf_lustre_ldlm_reply, { "ldlm reply", "lustre.ldlm_reply", FT_NONE, BASE_NONE, NULL, 0, "", HFILL}}, { &hf_lustre_ldlm_request, { "ldlm request", "lustre.ldlm_request", FT_NONE, BASE_NONE, NULL, 0, "", HFILL}}, /* add for lustre_user.h */ { &hf_lustre_obd_dqinfo_dqi_valid, { "Dqi Valid", "lustre.obd_dqinfo.dqi_valid", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_obd_dqblk_dqb_isoftlimit, { "Dqb Isoftlimit", "lustre.obd_dqblk.dqb_isoftlimit", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_obd_dqblk_dqb_bhardlimit, { "Dqb Bhardlimit", "lustre.obd_dqblk.dqb_bhardlimit", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_obd_dqblk_dqb_curspace, { "Dqb Curspace", "lustre.obd_dqblk.dqb_curspace", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_obd_dqblk_dqb_itime, { "Dqb Itime", "lustre.obd_dqblk.dqb_itime", FT_ABSOLUTE_TIME, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_obd_dqblk_dqb_valid, { "Dqb Valid", "lustre.obd_dqblk.dqb_valid", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_obd_dqinfo_dqi_igrace, { "Dqi Igrace", "lustre.obd_dqinfo.dqi_igrace", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_obd_dqinfo_dqi_bgrace, { "Dqi Bgrace", "lustre.obd_dqinfo.dqi_bgrace", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_obd_dqblk_padding, { "Padding", "lustre.obd_dqblk.padding", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_obd_dqblk_dqb_curinodes, { "Dqb Curinodes", "lustre.obd_dqblk.dqb_curinodes", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_obd_dqblk_dqb_bsoftlimit, { "Dqb Bsoftlimit", "lustre.obd_dqblk.dqb_bsoftlimit", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_obd_dqinfo_dqi_flags, { "Dqi Flags", "lustre.obd_dqinfo.dqi_flags", FT_UINT32, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_obd_dqblk_dqb_btime, { "Dqb Btime", "lustre.obd_dqblk.dqb_btime", FT_ABSOLUTE_TIME, BASE_DEC, NULL, 0, "", HFILL }}, { &hf_lustre_obd_dqblk_dqb_ihardlimit, { "Dqb Ihardlimit", "lustre.obd_dqblk.dqb_ihardlimit", FT_UINT64, BASE_DEC, NULL, 0, "", HFILL }} }; static gint *ett[] = { &ett_lustre, &ett_lustre_lustre_handle_cookie, &ett_lustre_lustre_msg_v1, &ett_lustre_lustre_handle_v1, &ett_lustre_lustre_msg_v2, &ett_lustre_ptlrpc_body, &ett_lustre_lustre_handle_v2, &ett_lustre_obd_connect_data, &ett_lustre_lov_mds_md_v1, &ett_lustre_lov_ost_data_v1, &ett_lustre_obd_statfs, &ett_lustre_obd_ioobj, &ett_lustre_niobuf_remote, &ett_lustre_ost_lvb, &ett_lustre_ll_fid, &ett_lustre_obd_quotactl, &ett_lustre_obd_dqinfo, &ett_lustre_obd_dqblk, &ett_lustre_quota_adjust_qunit, &ett_lustre_mdt_body, &ett_lustre_mdt_rec_setattr, &ett_lustre_mdt_rec_create, &ett_lustre_mdt_rec_link, &ett_lustre_mdt_rec_unlink, &ett_lustre_mdt_rec_rename, &ett_lustre_mdt_rec_setxattr, &ett_lustre_lov_desc, &ett_lustre_obd_uuid, &ett_lustre_ldlm_res_id, &ett_lustre_ldlm_extent, &ett_lustre_ldlm_inodebits, &ett_lustre_ldlm_flock, &ett_lustre_ldlm_intent_opc, &ett_lustre_ldlm_resource_desc, &ett_lustre_ldlm_res_id, &ett_lustre_ldlm_lock_desc, &ett_lustre_ldlm_resource_desc, &ett_lustre_ldlm_request, &ett_lustre_ldlm_lock_desc, &ett_lustre_lustre_handle, &ett_lustre_ldlm_reply, &ett_lustre_ldlm_lock_desc, &ett_lustre_lustre_handle, &ett_lustre_mgs_send_param, &ett_lustre_mgs_target_info, &ett_lustre_cfg_marker, &ett_lustre_llog_logid, &ett_lustre_llog_catid, &ett_lustre_llog_logid, &ett_lustre_lov_mds_md, &ett_lustre_llog_logid, &ett_lustre_llog_rec_hdr, &ett_lustre_llog_rec_tail, &ett_lustre_llog_logid_rec, &ett_lustre_llog_rec_hdr, &ett_lustre_llog_logid, &ett_lustre_llog_rec_tail, &ett_lustre_lov_mds_md, &ett_lustre_llog_rec_hdr, &ett_lustre_llog_rec_tail, &ett_lustre_llog_create_rec, &ett_lustre_llog_rec_hdr, &ett_lustre_ll_fid, &ett_lustre_llog_rec_tail, &ett_lustre_llog_orphan_rec, &ett_lustre_llog_rec_hdr, &ett_lustre_llog_rec_tail, &ett_lustre_llog_unlink_rec, &ett_lustre_llog_rec_hdr, &ett_lustre_llog_rec_tail, &ett_lustre_llog_setattr_rec, &ett_lustre_llog_rec_hdr, &ett_lustre_llog_rec_tail, &ett_lustre_llog_size_change_rec, &ett_lustre_llog_rec_hdr, &ett_lustre_ll_fid, &ett_lustre_llog_rec_tail, &ett_lustre_llog_gen, &ett_lustre_llog_gen_rec, &ett_lustre_llog_rec_hdr, &ett_lustre_llog_gen, &ett_lustre_llog_rec_tail, &ett_lustre_llog_log_hdr, &ett_lustre_llog_rec_hdr, &ett_lustre_obd_uuid, &ett_lustre_llog_rec_tail, &ett_lustre_llog_cookie, &ett_lustre_llog_logid, &ett_lustre_llogd_body, &ett_lustre_llog_logid, &ett_lustre_llogd_conn_body, &ett_lustre_llog_gen, &ett_lustre_llog_logid, &ett_lustre_llog_logid, &ett_lustre_obdo, &ett_lustre_lustre_handle, &ett_lustre_llog_cookie, &ett_lustre_ost_body, &ett_lustre_obdo, &ett_lustre_qunit_data, &ett_lustre_qunit_data_old2, &ett_lustre_qunit_data_old, &ett_lustre_ldlm_lock_flags, &ett_lustre_llog_log_llh_flags, }; proto_lustre = proto_register_protocol("Lustre", "lustre", "lustre"); proto_register_field_array(proto_lustre, hf, array_length (hf)); proto_register_subtree_array(ett, array_length(ett)); } void proto_reg_handoff_lustre(void) { dissector_handle_t lustre_handle; lustre_handle=create_dissector_handle(dissect_lustre, proto_lustre); /* we use Lustre only if we get ptl_index = One of this code (we have removed the bulk code) */ /* in LNET we test if the message is a put or not before adding an lnet.ptl_index value */ dissector_add("lnet.ptl_index", MDC_REPLY_PORTAL , lustre_handle); dissector_add("lnet.ptl_index", CONNMGR_REQUEST_PORTAL , lustre_handle); dissector_add("lnet.ptl_index", CONNMGR_REPLY_PORTAL , lustre_handle); dissector_add("lnet.ptl_index", OSC_REPLY_PORTAL , lustre_handle); dissector_add("lnet.ptl_index", OST_IO_PORTAL , lustre_handle); dissector_add("lnet.ptl_index", OST_CREATE_PORTAL , lustre_handle); dissector_add("lnet.ptl_index", MDC_REPLY_PORTAL , lustre_handle); dissector_add("lnet.ptl_index", MDS_REQUEST_PORTAL , lustre_handle); dissector_add("lnet.ptl_index", LDLM_CB_REQUEST_PORTAL , lustre_handle); dissector_add("lnet.ptl_index", LDLM_CB_REPLY_PORTAL , lustre_handle); dissector_add("lnet.ptl_index", LDLM_CANCEL_REQUEST_PORTAL, lustre_handle); dissector_add("lnet.ptl_index", LDLM_CANCEL_REPLY_PORTAL , lustre_handle); dissector_add("lnet.ptl_index", MDS_SETATTR_PORTAL , lustre_handle); dissector_add("lnet.ptl_index", MDS_READPAGE_PORTAL , lustre_handle); dissector_add("lnet.ptl_index", MGC_REPLY_PORTAL , lustre_handle); dissector_add("lnet.ptl_index", MGS_REQUEST_PORTAL , lustre_handle); dissector_add("lnet.ptl_index", MGS_REPLY_PORTAL , lustre_handle); dissector_add("lnet.ptl_index", OST_REQUEST_PORTAL , lustre_handle); }