1 /* packet-dcerpc-fileexp.c
3 * Routines for DCE DFS File Exporter dissection
4 * Copyright 2002, Jaime Fournier <Jaime.Fournier@hush.com>
5 * This information is based off the released idl files from opengroup.
6 * ftp://ftp.opengroup.org/pub/dce122/dce/src/file.tar.gz file/fsint/afs4int.idl
10 * Wireshark - Network traffic analyzer
11 * By Gerald Combs <gerald@wireshark.org>
12 * Copyright 1998 Gerald Combs
14 * This program is free software; you can redistribute it and/or
15 * modify it under the terms of the GNU General Public License
16 * as published by the Free Software Foundation; either version 2
17 * of the License, or (at your option) any later version.
19 * This program is distributed in the hope that it will be useful,
20 * but WITHOUT ANY WARRANTY; without even the implied warranty of
21 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
22 * GNU General Public License for more details.
24 * You should have received a copy of the GNU General Public License
25 * along with this program; if not, write to the Free Software
26 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
34 #ifdef HAVE_SYS_TYPES_H
35 #include <sys/types.h>
41 #include <epan/packet.h>
42 #include "packet-dcerpc.h"
43 #include "packet-dcerpc-dce122.h"
45 #define AFS_SETMODTIME 1
46 #define AFS_SETOWNER 2
47 #define AFS_SETGROUP 4
49 #define AFS_SETACCESSTIME 0x10
50 #define AFS_SETCHANGETIME 0x20
51 #define AFS_SETLENGTH 0x40
52 #define AFS_SETTYPEUUID 0x80
53 #define AFS_SETDEVNUM 0x100
54 #define AFS_SETMODEXACT 0x200
55 #define AFS_SETTRUNCLENGTH 0x400
56 #define AFS_SETCLIENTSPARE 0x800
58 #define TKN_LOCK_READ 0x001
59 #define TKN_LOCK_WRITE 0x002
60 #define TKN_DATA_READ 0x004
61 #define TKN_DATA_WRITE 0x008
62 #define TKN_OPEN_READ 0x010
63 #define TKN_OPEN_WRITE 0x020
64 #define TKN_OPEN_SHARED 0x040
65 #define TKN_OPEN_EXCLUSIVE 0x080
66 #define TKN_OPEN_DELETE 0x100
67 #define TKN_OPEN_PRESERVE 0x200
68 #define TKN_STATUS_READ 0x400
69 #define TKN_STATUS_WRITE 0x800
70 #define TKN_OPEN_UNLINK 0x1000
71 #define TKN_SPOT_HERE 0x2000
72 #define TKN_SPOT_THERE 0x4000
73 #define TKN_OPEN_NO_READ 0x8000
74 #define TKN_OPEN_NO_WRITE 0x10000
75 #define TKN_OPEN_NO_UNLINK 0x20000
77 #define AFS_CONN_PARAM_HOSTLIFE 0
78 #define AFS_CONN_PARAM_HOSTRPC 1
79 #define AFS_CONN_PARAM_DEADSERVER 2
80 #define AFS_CONN_PARAM_EPOCH 3
81 #define AFS_CONN_PARAM_MAXFILE_CLIENT 4
82 #define AFS_CONN_PARAM_MAXFILE_SERVER 5
83 #define AFS_CONN_PARAM_HOST_TYPE_CLIENT 6
84 #define AFS_CONN_PARAM_HOST_TYPE_SERVER 7
85 #define AFS_CONN_PARAM_FT_MASK_CLIENT 8
86 #define AFS_CONN_PARAM_FT_MASK_SERVER 9
87 #define AFS_CONN_PARAM_SUPPORTS_64BITS 0x10000
88 #define AFS_CONN_PARAM_512BYTE_BLOCKS 0x20000
90 #define AFS_FLAG_SEC_SERVICE 0x1
91 #define AFS_FLAG_CONTEXT_NEW_IF 0x2
92 #define AFS_FLAG_CONTEXT_DO_RESET 0x4
93 #define AFS_FLAG_CONTEXT_NEW_ACL_IF 0x8
94 #define AFS_FLAG_CONTEXT_NEW_TKN_TYPES 0x10
96 #define AFS_FLAG_RETURNTOKEN 1
97 #define AFS_FLAG_TOKENJUMPQUEUE 2
98 #define AFS_FLAG_SKIPTOKEN 4
99 #define AFS_FLAG_NOOPTIMISM 0x8
100 #define AFS_FLAG_TOKENID 0x10
101 #define AFS_FLAG_RETURNBLOCKER 0x20
102 #define AFS_FLAG_ASYNCGRANT 0x40
103 #define AFS_FLAG_NOREVOKE 0x80
104 #define AFS_FLAG_MOVE_REESTABLISH 0x100
105 #define AFS_FLAG_SERVER_REESTABLISH 0x200
106 #define AFS_FLAG_NO_NEW_EPOCH 0x400
107 #define AFS_FLAG_MOVE_SOURCE_OK 0x800
108 #define AFS_FLAG_SYNC 0x1000
109 #define AFS_FLAG_ZERO 0x2000
110 #define AFS_FLAG_SKIPSTATUS 0x4000
111 #define AFS_FLAG_FORCEREVOCATIONS 0x8000
112 #define AFS_FLAG_FORCEVOLQUIESCE 0x10000
113 #define AFS_FLAG_FORCEREVOCATIONDOWN 0x20000
115 static int hf_fileexp_opnum = -1;
118 static int hf_fileexp_afsFid_cell_high = -1;
119 static int hf_fileexp_afsuuid_uuid = -1;
120 static int hf_fileexp_fetchdata_pipe_t_size = -1;
121 static int hf_fileexp_afsNameString_t_principalName_string = -1;
122 static int hf_fileexp_afsFid_cell_low = -1;
123 static int hf_fileexp_afsFid_volume_high = -1;
124 static int hf_fileexp_afsFid_volume_low = -1;
125 static int hf_fileexp_afsFid_Vnode = -1;
126 static int hf_fileexp_afsFid_Unique = -1;
127 static int hf_fileexp_volume_high = -1;
128 static int hf_fileexp_volume_low = -1;
129 static int hf_fileexp_vnode = -1;
130 static int hf_fileexp_unique = -1;
131 static int hf_fileexp_interfaceversion = -1;
132 static int hf_fileexp_filetype = -1;
133 static int hf_fileexp_linkcount = -1;
134 static int hf_fileexp_length_high = -1;
135 static int hf_fileexp_length_low = -1;
136 static int hf_fileexp_dataversion_high = -1;
137 static int hf_fileexp_dataversion_low = -1;
138 static int hf_fileexp_author = -1;
139 static int hf_fileexp_owner = -1;
140 static int hf_fileexp_group = -1;
141 static int hf_fileexp_calleraccess = -1;
142 static int hf_fileexp_anonymousaccess = -1;
143 static int hf_fileexp_aclexpirationtime = -1;
144 static int hf_fileexp_mode = -1;
145 static int hf_fileexp_parentvnode = -1;
146 static int hf_fileexp_parentunique = -1;
147 static int hf_fileexp_modtime_sec = -1;
148 static int hf_fileexp_modtime_msec = -1;
149 static int hf_fileexp_changetime_sec = -1;
150 static int hf_fileexp_changetime_msec = -1;
151 static int hf_fileexp_accesstime_sec = -1;
152 static int hf_fileexp_accesstime_msec = -1;
153 static int hf_fileexp_servermodtime_sec = -1;
154 static int hf_fileexp_servermodtime_msec = -1;
155 static int hf_fileexp_typeuuid = -1;
156 static int hf_fileexp_objectuuid = -1;
157 static int hf_fileexp_devicenumber = -1;
158 static int hf_fileexp_blocksused = -1;
159 static int hf_fileexp_clientspare1 = -1;
160 static int hf_fileexp_devicenumberhighbits = -1;
161 static int hf_fileexp_agtypeunique = -1;
162 static int hf_fileexp_himaxspare = -1;
163 static int hf_fileexp_lomaxspare = -1;
164 static int hf_fileexp_pathconfspare = -1;
165 static int hf_fileexp_spare4 = -1;
166 static int hf_fileexp_spare5 = -1;
167 static int hf_fileexp_spare6 = -1;
168 static int hf_fileexp_volid_hi = -1;
169 static int hf_fileexp_volid_low = -1;
170 static int hf_fileexp_vvage = -1;
171 static int hf_fileexp_vv_hi = -1;
172 static int hf_fileexp_vv_low = -1;
173 static int hf_fileexp_vvpingage = -1;
174 static int hf_fileexp_vvspare1 = -1;
175 static int hf_fileexp_vvspare2 = -1;
176 static int hf_fileexp_beginrange = -1;
177 static int hf_fileexp_beginrangeext = -1;
178 static int hf_fileexp_endrange = -1;
179 static int hf_fileexp_endrangeext = -1;
180 static int hf_fileexp_expirationtime = -1;
181 static int hf_fileexp_tokenid_hi = -1;
182 static int hf_fileexp_tokenid_low = -1;
183 static int hf_fileexp_type_hi = -1;
184 static int hf_fileexp_type_low = -1;
185 static int hf_fileexp_tn_length = -1;
186 static int hf_fileexp_storestatus_accesstime_sec = -1;
187 static int hf_fileexp_storestatus_accesstime_usec = -1;
188 static int hf_fileexp_storestatus_changetime_sec = -1;
189 static int hf_fileexp_storestatus_changetime_usec = -1;
190 static int hf_fileexp_storestatus_clientspare1 = -1;
191 static int hf_fileexp_storestatus_cmask = -1;
192 static int hf_fileexp_storestatus_devicenumber = -1;
193 static int hf_fileexp_storestatus_devicenumberhighbits = -1;
194 static int hf_fileexp_storestatus_devicetype = -1;
195 static int hf_fileexp_storestatus_group = -1;
196 static int hf_fileexp_storestatus_length_high = -1;
197 static int hf_fileexp_storestatus_length_low = -1;
198 static int hf_fileexp_storestatus_mask = -1;
199 static int hf_fileexp_storestatus_mode = -1;
200 static int hf_fileexp_storestatus_modtime_sec = -1;
201 static int hf_fileexp_storestatus_modtime_usec = -1;
202 static int hf_fileexp_storestatus_owner = -1;
203 static int hf_fileexp_storestatus_spare1 = -1;
204 static int hf_fileexp_storestatus_spare2 = -1;
205 static int hf_fileexp_storestatus_spare3 = -1;
206 static int hf_fileexp_storestatus_spare4 = -1;
207 static int hf_fileexp_storestatus_spare5 = -1;
208 static int hf_fileexp_storestatus_spare6 = -1;
209 static int hf_fileexp_storestatus_trunc_high = -1;
210 static int hf_afsconnparams_mask = -1;
211 static int hf_fileexp_storestatus_trunc_low = -1;
212 static int hf_fileexp_storestatus_typeuuid = -1;
213 static int hf_fileexp_l_end_pos = -1;
214 static int hf_fileexp_l_end_pos_ext = -1;
215 static int hf_fileexp_l_fstype = -1;
216 static int hf_fileexp_l_pid = -1;
217 static int hf_fileexp_l_start_pos = -1;
218 static int hf_fileexp_l_start_pos_ext = -1;
219 static int hf_fileexp_l_sysid = -1;
220 static int hf_fileexp_l_type = -1;
221 static int hf_fileexp_l_whence = -1;
222 static int hf_fileexp_acl_len = -1;
223 static int hf_fileexp_st = -1;
224 static int hf_fileexp_uint = -1;
225 static int hf_fileexp_setcontext_rqst_epochtime = -1;
226 static int hf_fileexp_setcontext_rqst_secobjectid = -1;
227 static int hf_fileexp_setcontext_rqst_clientsizesattrs = -1;
228 static int hf_fileexp_setcontext_rqst_parm7 = -1;
229 static int hf_fileexp_afsNetAddr_type = -1;
230 static int hf_fileexp_afsNetAddr_data = -1;
231 static int hf_fileexp_returntokenidp_high = -1;
232 static int hf_fileexp_minvvp_low = -1;
233 static int hf_fileexp_position_high = -1;
234 static int hf_fileexp_position_low = -1;
235 static int hf_fileexp_offsetp_high = -1;
236 static int hf_fileexp_nextoffsetp_low = -1;
237 static int hf_fileexp_cellidp_high = -1;
238 static int hf_afserrorstatus_st = -1;
239 static int hf_fileexp_length = -1;
240 static int hf_afsconnparams_values = -1;
241 static int hf_fileexp_acltype = -1;
242 static int hf_fileexp_afsTaggedPath_tp_chars = -1;
243 static int hf_fileexp_afsTaggedPath_tp_tag = -1;
244 static int hf_fileexp_afsacl_uuid1 = -1;
245 static int hf_fileexp_bulkfetchstatus_size = -1;
246 static int hf_fileexp_flags = -1;
247 static int hf_fileexp_afsreturndesc_tokenid_high = -1;
248 static int hf_fileexp_afsreturndesc_tokenid_low = -1;
249 static int hf_fileexp_afsreturndesc_type_high = -1;
250 static int hf_fileexp_afsreturndesc_type_low = -1;
251 static int hf_fileexp_returntokenidp_low = -1;
252 static int hf_fileexp_minvvp_high = -1;
253 static int hf_fileexp_offsetp_low = -1;
254 static int hf_fileexp_nextoffsetp_high = -1;
255 static int hf_fileexp_cellidp_low = -1;
256 static int hf_fileexp_tn_tag = -1;
257 static int hf_fileexp_tn_size = -1;
258 static int hf_fileexp_tn_string = -1;
259 static int hf_fileexp_bulkfetchvv_numvols = -1;
260 static int hf_fileexp_bulkfetchvv_spare1 = -1;
261 static int hf_fileexp_bulkfetchvv_spare2 = -1;
262 static int hf_fileexp_bulkkeepalive_numexecfids = -1;
263 static int hf_fileexp_bulkkeepalive_spare4 = -1;
264 static int hf_fileexp_bulkkeepalive_spare2 = -1;
265 static int hf_fileexp_bulkkeepalive_spare1 = -1;
266 static int hf_fileexp_afsacl_defaultcell_uuid = -1;
267 static int hf_fileexp_gettime_syncdispersion = -1;
268 static int hf_fileexp_gettime_syncdistance = -1;
269 static int hf_fileexp_gettime_usecondsp = -1;
270 static int hf_fileexp_readdir_size = -1;
271 static int hf_fileexp_afsNameString_t_principalName_size = -1;
272 static int hf_fileexp_afsNameString_t_principalName_size2 = -1;
273 static int hf_fileexp_afsTaggedPath_tp_length = -1;
274 static int hf_fileexp_fstype = -1;
275 static int hf_fileexp_gettime_secondsp = -1;
277 static int proto_fileexp = -1;
279 static gint ett_fileexp = -1;
280 static gint ett_fileexp_afsFid = -1;
281 static gint ett_fileexp_afsReturnDesc = -1;
282 static gint ett_fileexp_afsNetAddr = -1;
283 static gint ett_fileexp_fetchstatus = -1;
284 static gint ett_fileexp_afsflags = -1;
285 static gint ett_fileexp_volsync = -1;
286 static gint ett_fileexp_minvvp = -1;
287 static gint ett_fileexp_afsfidtaggedname = -1;
288 static gint ett_fileexp_afstaggedname = -1;
289 static gint ett_fileexp_afstoken = -1;
290 static gint ett_fileexp_afsstorestatus = -1;
291 static gint ett_fileexp_afsRecordLock = -1;
292 static gint ett_fileexp_afsAcl = -1;
293 static gint ett_fileexp_afsNameString_t = -1;
294 static gint ett_fileexp_afsConnParams = -1;
295 static gint ett_fileexp_afsErrorStatus = -1;
296 static gint ett_fileexp_afsNetData = -1;
297 static gint ett_fileexp_afsTaggedPath = -1;
298 static gint ett_fileexp_afsBulkStat = -1;
299 static gint ett_fileexp_afsuuid = -1;
300 static gint ett_fileexp_offsetp = -1;
301 static gint ett_fileexp_returntokenidp = -1;
302 static gint ett_fileexp_afsbundled_stat = -1;
305 /* vars for our macro(s) */
306 static int hf_error_st = -1;
308 static e_uuid_t uuid_fileexp =
309 { 0x4d37f2dd, 0xed93, 0x0000, {0x02, 0xc0, 0x37, 0xcf, 0x1e, 0x00, 0x00,
312 static guint16 ver_fileexp = 4;
314 /* XXX the only macro that I could not find the right way to convert easily.
315 The reason is because we reset col_info if st is non zero for many rpcs.
316 This is because on error, many structures are filled with garbage.
317 We end up not knowing if data is valid until we get the st var at the very end of the stubdata..
318 We can not just jump to the end, because more often than not an extra buffer exists in payload
319 after st. Thus we have to advance on each item until we read in ST, then we clear col_info. on error
320 A good example is FetchStatus() on a file that returns ENOEXIST.
321 inode, volume, etc all will be garbage.
324 #define MACRO_ST_CLEAR(name) \
327 const char *st_str; \
328 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_error_st, &st); \
329 st_str = val_to_str (st, dce_error_vals, "%u"); \
331 if (check_col (pinfo->cinfo, COL_INFO)) \
332 col_add_fstr (pinfo->cinfo, COL_INFO, "%s st:%s ", name, st_str); \
334 if (check_col (pinfo->cinfo, COL_INFO)) \
335 col_append_fstr (pinfo->cinfo, COL_INFO, " st:%s ", st_str); \
340 dissect_afsFid (tvbuff_t * tvb, int offset,
341 packet_info * pinfo, proto_tree * parent_tree, guint8 *drep)
352 proto_item *item = NULL;
353 proto_tree *tree = NULL;
354 int old_offset = offset;
355 guint32 volume_low, unique, vnode, inode;
358 di = pinfo->private_data;
359 if (di->conformant_run)
368 item = proto_tree_add_text (parent_tree, tvb, offset, -1, "afsFid:");
369 tree = proto_item_add_subtree (item, ett_fileexp_afsFid);
373 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
374 hf_fileexp_afsFid_cell_high, NULL);
376 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
377 hf_fileexp_afsFid_cell_low, NULL);
379 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
380 hf_fileexp_afsFid_volume_high, NULL);
382 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
383 hf_fileexp_afsFid_volume_low, &volume_low);
385 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
386 hf_fileexp_afsFid_Vnode, &vnode);
388 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
389 hf_fileexp_afsFid_Unique, &unique);
391 if (check_col (pinfo->cinfo, COL_INFO))
392 col_append_fstr (pinfo->cinfo, COL_INFO, " :FSID:%u ", volume_low);
394 if ((vnode == 1) || (vnode == 2))
396 if (check_col (pinfo->cinfo, COL_INFO))
397 col_append_str (pinfo->cinfo, COL_INFO, " InFS ");
401 inode = ((volume_low << 16) + vnode) & 0x7fffffff;
402 if (check_col (pinfo->cinfo, COL_INFO))
403 col_append_fstr (pinfo->cinfo, COL_INFO, " inode:%u ", inode);
406 proto_item_set_len (item, offset - old_offset);
411 dissect_afsConnParams (tvbuff_t * tvb, int offset,
412 packet_info * pinfo, proto_tree * parent_tree,
418 unsigned32 Values[20];
421 proto_item *item = NULL;
422 proto_tree *tree = NULL;
423 int old_offset = offset;
424 guint32 mask, Values[20];
427 di = pinfo->private_data;
428 if (di->conformant_run)
437 proto_tree_add_text (parent_tree, tvb, offset, -1,
439 tree = proto_item_add_subtree (item, ett_fileexp_afsConnParams);
442 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
443 hf_afsconnparams_mask, &mask);
445 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
446 hf_afsconnparams_values, &Values[0]);
448 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
449 hf_afsconnparams_values, &Values[1]);
451 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
452 hf_afsconnparams_values, &Values[2]);
454 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
455 hf_afsconnparams_values, &Values[3]);
457 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
458 hf_afsconnparams_values, &Values[4]);
460 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
461 hf_afsconnparams_values, &Values[5]);
463 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
464 hf_afsconnparams_values, &Values[6]);
466 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
467 hf_afsconnparams_values, &Values[7]);
469 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
470 hf_afsconnparams_values, &Values[9]);
472 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
473 hf_afsconnparams_values, &Values[9]);
475 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
476 hf_afsconnparams_values, &Values[10]);
478 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
479 hf_afsconnparams_values, &Values[11]);
481 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
482 hf_afsconnparams_values, &Values[12]);
484 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
485 hf_afsconnparams_values, &Values[13]);
487 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
488 hf_afsconnparams_values, &Values[14]);
490 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
491 hf_afsconnparams_values, &Values[15]);
493 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
494 hf_afsconnparams_values, &Values[16]);
496 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
497 hf_afsconnparams_values, &Values[17]);
499 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
500 hf_afsconnparams_values, &Values[18]);
502 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
503 hf_afsconnparams_values, &Values[19]);
504 if ((mask & AFS_CONN_PARAM_HOSTLIFE) == AFS_CONN_PARAM_HOSTLIFE)
506 if (check_col (pinfo->cinfo, COL_INFO))
507 col_append_str (pinfo->cinfo, COL_INFO, ":HOSTLIFE");
509 if ((mask & AFS_CONN_PARAM_HOSTRPC) == AFS_CONN_PARAM_HOSTRPC)
511 if (check_col (pinfo->cinfo, COL_INFO))
512 col_append_str (pinfo->cinfo, COL_INFO, ":HOSTRPC");
514 if ((mask & AFS_CONN_PARAM_DEADSERVER) == AFS_CONN_PARAM_DEADSERVER)
516 if (check_col (pinfo->cinfo, COL_INFO))
517 col_append_str (pinfo->cinfo, COL_INFO, ":DEADSERVER");
519 if ((mask & AFS_CONN_PARAM_EPOCH) == AFS_CONN_PARAM_EPOCH)
521 if (check_col (pinfo->cinfo, COL_INFO))
522 col_append_str (pinfo->cinfo, COL_INFO, ":EPOCH");
524 if ((mask & AFS_CONN_PARAM_MAXFILE_CLIENT) == AFS_CONN_PARAM_MAXFILE_CLIENT)
526 if (check_col (pinfo->cinfo, COL_INFO))
527 col_append_str (pinfo->cinfo, COL_INFO, ":MAXFILE_CLIENT");
529 if ((mask & AFS_CONN_PARAM_MAXFILE_SERVER) == AFS_CONN_PARAM_MAXFILE_SERVER)
531 if (check_col (pinfo->cinfo, COL_INFO))
532 col_append_str (pinfo->cinfo, COL_INFO, ":MAXFILE_SERVER");
534 if ((mask & AFS_CONN_PARAM_HOST_TYPE_CLIENT) ==
535 AFS_CONN_PARAM_HOST_TYPE_CLIENT)
537 if (check_col (pinfo->cinfo, COL_INFO))
538 col_append_str (pinfo->cinfo, COL_INFO, ":HOST_TYPE_CLIENT");
540 if ((mask & AFS_CONN_PARAM_HOST_TYPE_SERVER) ==
541 AFS_CONN_PARAM_HOST_TYPE_SERVER)
543 if (check_col (pinfo->cinfo, COL_INFO))
544 col_append_str (pinfo->cinfo, COL_INFO, ":HOST_TYPE_SERVER");
546 if ((mask & AFS_CONN_PARAM_FT_MASK_CLIENT) == AFS_CONN_PARAM_FT_MASK_CLIENT)
548 if (check_col (pinfo->cinfo, COL_INFO))
549 col_append_str (pinfo->cinfo, COL_INFO, ":FT_MASK_CLIENT");
551 if ((mask & AFS_CONN_PARAM_FT_MASK_SERVER) == AFS_CONN_PARAM_FT_MASK_SERVER)
553 if (check_col (pinfo->cinfo, COL_INFO))
554 col_append_str (pinfo->cinfo, COL_INFO, ":FT_MASK_SERVER");
556 if ((mask & AFS_CONN_PARAM_SUPPORTS_64BITS) ==
557 AFS_CONN_PARAM_SUPPORTS_64BITS)
559 if (check_col (pinfo->cinfo, COL_INFO))
560 col_append_str (pinfo->cinfo, COL_INFO, ":SUPPORTS_64BITS");
562 if ((mask & AFS_CONN_PARAM_512BYTE_BLOCKS) == AFS_CONN_PARAM_512BYTE_BLOCKS)
564 if (check_col (pinfo->cinfo, COL_INFO))
565 col_append_str (pinfo->cinfo, COL_INFO, ":512BYTE_BLOCKS");
567 if (check_col (pinfo->cinfo, COL_INFO))
568 col_append_fstr (pinfo->cinfo, COL_INFO,
569 " Values:%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u",
570 Values[0], Values[1], Values[2], Values[3],
571 Values[4], Values[5], Values[6], Values[7], Values[8],
572 Values[9], Values[10], Values[11], Values[12],
573 Values[13], Values[14], Values[15], Values[16],
574 Values[17], Values[18], Values[19]);
576 proto_item_set_len (item, offset - old_offset);
581 dissect_afsNameString_t (tvbuff_t * tvb, int offset,
582 packet_info * pinfo, proto_tree * parent_tree,
587 typedef [string] byte NameString_t[AFS_NAMEMAX];
590 proto_item *item = NULL;
591 proto_tree *tree = NULL;
592 int old_offset = offset;
593 #define AFS_NAMEMAX 256
595 const guint8 *namestring;
598 di = pinfo->private_data;
599 if (di->conformant_run)
608 proto_tree_add_text (parent_tree, tvb, offset, -1,
610 tree = proto_item_add_subtree (item, ett_fileexp_afsNameString_t);
614 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
615 hf_fileexp_afsNameString_t_principalName_size,
617 if (check_col (pinfo->cinfo, COL_INFO))
618 col_append_fstr (pinfo->cinfo, COL_INFO, " String_size:%u", string_size);
619 if (string_size < AFS_NAMEMAX)
621 /* proto_tree_add_string(tree, id, tvb, start, length, value_ptr); */
623 proto_tree_add_string (tree, hf_fileexp_afsNameString_t_principalName_string, tvb, offset, string_size, tvb_get_ptr (tvb, offset, string_size));
624 namestring = tvb_get_ptr (tvb, offset, string_size);
625 offset += string_size;
626 if (check_col (pinfo->cinfo, COL_INFO))
627 col_append_fstr (pinfo->cinfo, COL_INFO, " Principal:%s", namestring);
631 if (check_col (pinfo->cinfo, COL_INFO))
632 col_append_fstr (pinfo->cinfo, COL_INFO,
633 " :FIXME!: Invalid string length of %u",
637 proto_item_set_len (item, offset - old_offset);
643 dissect_afsNetAddr (tvbuff_t * tvb, int offset,
644 packet_info * pinfo, proto_tree * parent_tree, guint8 *drep)
651 proto_item *item = NULL;
652 proto_tree *tree = NULL;
653 int old_offset = offset;
659 di = pinfo->private_data;
660 if (di->conformant_run)
667 item = proto_tree_add_text (parent_tree, tvb, offset, -1,
669 tree = proto_item_add_subtree (item, ett_fileexp_afsNetAddr);
674 dissect_ndr_uint16 (tvb, offset, pinfo, tree, drep,
675 hf_fileexp_afsNetAddr_type, &type);
679 if (check_col (pinfo->cinfo, COL_INFO))
680 col_append_fstr (pinfo->cinfo, COL_INFO, " Type:%u ", type);
683 for (i = 0; i < 14; i++)
687 dissect_ndr_uint8 (tvb, offset, pinfo, tree, drep,
688 hf_fileexp_afsNetAddr_data, &data);
696 if (check_col (pinfo->cinfo, COL_INFO))
697 col_append_fstr (pinfo->cinfo, COL_INFO, " Port:%u",
702 if (check_col (pinfo->cinfo, COL_INFO))
703 col_append_fstr (pinfo->cinfo, COL_INFO, " IP:%u.", data);
706 if (check_col (pinfo->cinfo, COL_INFO))
707 col_append_fstr (pinfo->cinfo, COL_INFO, "%u.", data);
710 if (check_col (pinfo->cinfo, COL_INFO))
711 col_append_fstr (pinfo->cinfo, COL_INFO, "%u.", data);
714 if (check_col (pinfo->cinfo, COL_INFO))
715 col_append_fstr (pinfo->cinfo, COL_INFO, "%u", data);
725 offset += 14; /* space left after reading in type for the array. */
729 proto_item_set_len (item, offset - old_offset);
735 dissect_afsNetData (tvbuff_t * tvb, int offset,
736 packet_info * pinfo, proto_tree * parent_tree, guint8 *drep)
740 NameString_t principalName;
742 proto_item *item = NULL;
743 proto_tree *tree = NULL;
744 int old_offset = offset;
747 di = pinfo->private_data;
748 if (di->conformant_run)
756 proto_tree_add_text (parent_tree, tvb, offset, -1, "afsNetData:");
757 tree = proto_item_add_subtree (item, ett_fileexp_afsNetData);
761 offset = dissect_afsNetAddr ( tvb, offset, pinfo, tree, drep);
762 offset += 4; /* buffer */
763 offset = dissect_afsNameString_t ( tvb, offset, pinfo, tree, drep);
765 proto_item_set_len (item, offset - old_offset);
771 dissect_afsTaggedPath (tvbuff_t * tvb, int offset,
772 packet_info * pinfo, proto_tree * parent_tree,
778 unsigned16 tp_length;
779 byte tp_chars[AFS_PATHMAX+1]; 1024+1
782 proto_item *item = NULL;
783 proto_tree *tree = NULL;
784 int old_offset = offset;
787 const guint8 *tp_chars;
790 di = pinfo->private_data;
791 if (di->conformant_run)
800 proto_tree_add_text (parent_tree, tvb, offset, -1, "afsTaggedPath");
801 tree = proto_item_add_subtree (item, ett_fileexp_afsTaggedPath);
806 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
807 hf_fileexp_afsTaggedPath_tp_tag, &tp_tag);
809 dissect_ndr_uint16 (tvb, offset, pinfo, tree, drep,
810 hf_fileexp_afsTaggedPath_tp_length, &tp_length);
811 proto_tree_add_string (tree, hf_fileexp_afsTaggedPath_tp_chars, tvb, offset,
812 hf_fileexp_afsTaggedPath_tp_length, tvb_get_ptr (tvb,
815 tp_chars = tvb_get_ptr (tvb, offset, 1025);
817 if (check_col (pinfo->cinfo, COL_INFO))
818 col_append_fstr (pinfo->cinfo, COL_INFO, " :tp_chars %s", tp_chars);
821 proto_item_set_len (item, offset - old_offset);
826 dissect_afsAcl (tvbuff_t * tvb, int offset,
827 packet_info * pinfo, proto_tree * parent_tree, guint8 *drep)
830 unsigned32 afsACL_len;
831 [length_is(afsACL_len)] byte afsACL_val[AFS_ACLMAX];
836 proto_item *item = NULL;
837 proto_tree *tree = NULL;
838 int old_offset = offset;
840 e_uuid_t uuid1, defaultcell;
843 di = pinfo->private_data;
844 if (di->conformant_run)
853 item = proto_tree_add_text (parent_tree, tvb, offset, -1, "afsAcl");
854 tree = proto_item_add_subtree (item, ett_fileexp_afsAcl);
859 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_fileexp_acl_len,
861 offset += 8; /* bypass spare and duplicate acl_len */
863 dissect_ndr_uuid_t (tvb, offset, pinfo, tree, drep,
864 hf_fileexp_afsacl_uuid1, &uuid1);
865 if (check_col (pinfo->cinfo, COL_INFO))
866 col_append_fstr (pinfo->cinfo, COL_INFO,
867 " - %08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x",
868 uuid1.Data1, uuid1.Data2, uuid1.Data3, uuid1.Data4[0],
869 uuid1.Data4[1], uuid1.Data4[2], uuid1.Data4[3],
870 uuid1.Data4[4], uuid1.Data4[5], uuid1.Data4[6],
874 dissect_ndr_uuid_t (tvb, offset, pinfo, tree, drep,
875 hf_fileexp_afsacl_defaultcell_uuid, &defaultcell);
876 if (check_col (pinfo->cinfo, COL_INFO))
877 col_append_fstr (pinfo->cinfo, COL_INFO,
878 " %08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x",
879 defaultcell.Data1, defaultcell.Data2, defaultcell.Data3,
880 defaultcell.Data4[0], defaultcell.Data4[1],
881 defaultcell.Data4[2], defaultcell.Data4[3],
882 defaultcell.Data4[4], defaultcell.Data4[5],
883 defaultcell.Data4[6], defaultcell.Data4[7]);
885 offset += (acl_len - 38);
887 if (offset <= old_offset)
888 THROW(ReportedBoundsError);
890 proto_item_set_len(item, offset-old_offset);
896 dissect_afsErrorStatus (tvbuff_t * tvb, int offset,
897 packet_info * pinfo, proto_tree * parent_tree,
900 proto_item *item = NULL;
901 proto_tree *tree = NULL;
902 int old_offset = offset;
907 di = pinfo->private_data;
908 if (di->conformant_run)
915 item = proto_tree_add_text (parent_tree, tvb, offset, -1,
917 tree = proto_item_add_subtree (item, ett_fileexp_afsErrorStatus);
921 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_afserrorstatus_st,
923 st_str = val_to_str (st, dce_error_vals, "%u");
925 if (check_col (pinfo->cinfo, COL_INFO))
926 col_append_fstr (pinfo->cinfo, COL_INFO, " st:%s ", st_str);
928 proto_item_set_len (item, offset - old_offset);
933 dissect_afsRecordLock (tvbuff_t * tvb, int offset,
934 packet_info * pinfo, proto_tree * parent_tree,
940 unsigned32 l_start_pos;
941 unsigned32 l_end_pos;
945 unsigned32 l_start_pos_ext; was l_spare0: high 32b of l_start_pos
946 unsigned32 l_end_pos_ext; was l_spare1: high 32b of l_end_pos
949 proto_item *item = NULL;
950 proto_tree *tree = NULL;
951 int old_offset = offset;
952 guint16 l_type, l_whence;
953 guint32 l_start_pos, l_end_pos, l_pid, l_sysid, l_fstype, l_start_pos_ext,
957 di = pinfo->private_data;
958 if (di->conformant_run)
965 item = proto_tree_add_text (parent_tree, tvb, offset, -1,
967 tree = proto_item_add_subtree (item, ett_fileexp_afsRecordLock);
971 dissect_ndr_uint16 (tvb, offset, pinfo, tree, drep, hf_fileexp_l_type,
974 dissect_ndr_uint16 (tvb, offset, pinfo, tree, drep, hf_fileexp_l_whence,
977 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
978 hf_fileexp_l_start_pos, &l_start_pos);
980 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_fileexp_l_end_pos,
983 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_fileexp_l_pid,
986 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_fileexp_l_sysid,
989 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_fileexp_l_fstype,
992 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
993 hf_fileexp_l_start_pos_ext, &l_start_pos_ext);
995 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
996 hf_fileexp_l_end_pos_ext, &l_end_pos_ext);
999 proto_item_set_len (item, offset - old_offset);
1004 dissect_afsstorestatus (tvbuff_t * tvb, int offset,
1005 packet_info * pinfo, proto_tree * parent_tree,
1011 afsTimeval accessTime;
1012 afsTimeval changeTime;
1016 afsHyper truncLength; applied first
1019 unsigned32 deviceType; character or block
1020 unsigned32 deviceNumber;
1022 unsigned32 clientSpare1; client-only attrs
1023 unsigned32 deviceNumberHighBits;
1032 proto_item *item = NULL;
1033 proto_tree *tree = NULL;
1034 int old_offset = offset;
1035 guint32 mask, modtime_sec, changetime_sec, accesstime_sec, devicenumber,
1036 clientspare1, devicenumberhighbits, spare1, spare2, spare3, spare4,
1037 spare5, spare6, accesstime_usec, changetime_usec, owner, group, mode,
1038 trunc_high, trunc_low, length_high, length_low, devicetype,
1039 cmask, modtime_usec;
1043 di = pinfo->private_data;
1044 if (di->conformant_run)
1052 item = proto_tree_add_text (parent_tree, tvb, offset, -1,
1054 tree = proto_item_add_subtree (item, ett_fileexp_afsstorestatus);
1058 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1059 hf_fileexp_storestatus_mask, &mask);
1061 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1062 hf_fileexp_storestatus_modtime_sec, &modtime_sec);
1064 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1065 hf_fileexp_storestatus_modtime_usec, &modtime_usec);
1067 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1068 hf_fileexp_storestatus_accesstime_sec,
1071 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1072 hf_fileexp_storestatus_accesstime_usec,
1075 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1076 hf_fileexp_storestatus_changetime_sec,
1079 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1080 hf_fileexp_storestatus_changetime_usec,
1083 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1084 hf_fileexp_storestatus_owner, &owner);
1086 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1087 hf_fileexp_storestatus_group, &group);
1089 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1090 hf_fileexp_storestatus_mode, &mode);
1092 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1093 hf_fileexp_storestatus_trunc_high, &trunc_high);
1095 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1096 hf_fileexp_storestatus_trunc_low, &trunc_low);
1098 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1099 hf_fileexp_storestatus_length_high, &length_high);
1101 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1102 hf_fileexp_storestatus_length_low, &length_low);
1104 dissect_ndr_uuid_t (tvb, offset, pinfo, tree, drep,
1105 hf_fileexp_storestatus_typeuuid, &typeuuid);
1107 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1108 hf_fileexp_storestatus_devicetype, &devicetype);
1110 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1111 hf_fileexp_storestatus_devicenumber, &devicenumber);
1113 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1114 hf_fileexp_storestatus_cmask, &cmask);
1116 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1117 hf_fileexp_storestatus_clientspare1, &clientspare1);
1119 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1120 hf_fileexp_storestatus_devicenumberhighbits,
1121 &devicenumberhighbits);
1123 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1124 hf_fileexp_storestatus_spare1, &spare1);
1126 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1127 hf_fileexp_storestatus_spare2, &spare2);
1129 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1130 hf_fileexp_storestatus_spare3, &spare3);
1132 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1133 hf_fileexp_storestatus_spare4, &spare4);
1135 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1136 hf_fileexp_storestatus_spare5, &spare5);
1138 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1139 hf_fileexp_storestatus_spare6, &spare6);
1141 if (check_col (pinfo->cinfo, COL_INFO))
1142 col_append_fstr (pinfo->cinfo, COL_INFO, " Mask=");
1143 if ((mask & AFS_SETMODTIME) == AFS_SETMODTIME)
1145 if (check_col (pinfo->cinfo, COL_INFO))
1146 col_append_fstr (pinfo->cinfo, COL_INFO, ":SETMODTIME-%u.%u",
1147 modtime_sec, modtime_usec);
1149 if ((mask & AFS_SETOWNER) == AFS_SETOWNER)
1151 if (check_col (pinfo->cinfo, COL_INFO))
1152 col_append_fstr (pinfo->cinfo, COL_INFO, ":SETOWNER-%u", owner);
1154 if ((mask & AFS_SETGROUP) == AFS_SETGROUP)
1156 if (check_col (pinfo->cinfo, COL_INFO))
1157 col_append_fstr (pinfo->cinfo, COL_INFO, ":SETGROUP-%u", group);
1159 if ((mask & AFS_SETMODE) == AFS_SETMODE)
1161 if (check_col (pinfo->cinfo, COL_INFO))
1162 col_append_fstr (pinfo->cinfo, COL_INFO, ":SETMODE-%o", mode);
1164 if ((mask & AFS_SETACCESSTIME) == AFS_SETACCESSTIME)
1166 if (check_col (pinfo->cinfo, COL_INFO))
1167 col_append_fstr (pinfo->cinfo, COL_INFO, ":SETACCESSTIME-%u.%u",
1168 accesstime_sec, accesstime_usec);
1170 if ((mask & AFS_SETCHANGETIME) == AFS_SETCHANGETIME)
1172 if (check_col (pinfo->cinfo, COL_INFO))
1173 col_append_fstr (pinfo->cinfo, COL_INFO, ":SETCHANGETIME-%u.%u",
1174 changetime_sec, changetime_usec);
1176 if ((mask & AFS_SETLENGTH) == AFS_SETLENGTH)
1178 if (check_col (pinfo->cinfo, COL_INFO))
1179 col_append_str (pinfo->cinfo, COL_INFO, ":SETLENGTH");
1181 if ((mask & AFS_SETTYPEUUID) == AFS_SETTYPEUUID)
1183 if (check_col (pinfo->cinfo, COL_INFO))
1184 col_append_str (pinfo->cinfo, COL_INFO, ":SETTYPEUUID");
1186 if ((mask & AFS_SETDEVNUM) == AFS_SETDEVNUM)
1188 if (check_col (pinfo->cinfo, COL_INFO))
1189 col_append_str (pinfo->cinfo, COL_INFO, ":SETDEVNUM");
1191 if ((mask & AFS_SETMODEXACT) == AFS_SETMODEXACT)
1193 if (check_col (pinfo->cinfo, COL_INFO))
1194 col_append_str (pinfo->cinfo, COL_INFO, ":SETMODEXACT");
1196 if ((mask & AFS_SETTRUNCLENGTH) == AFS_SETTRUNCLENGTH)
1198 if (check_col (pinfo->cinfo, COL_INFO))
1199 col_append_str (pinfo->cinfo, COL_INFO, ":SETTRUNCLENGTH");
1201 if ((mask & AFS_SETCLIENTSPARE) == AFS_SETCLIENTSPARE)
1203 if (check_col (pinfo->cinfo, COL_INFO))
1204 col_append_str (pinfo->cinfo, COL_INFO, ":SETCLIENTSPARE");
1207 proto_item_set_len (item, offset - old_offset);
1212 dissect_afstoken (tvbuff_t * tvb, int offset,
1213 packet_info * pinfo, proto_tree * parent_tree, guint8 *drep)
1217 unsigned32 expirationTime;
1219 unsigned32 beginRange;
1220 unsigned32 endRange;
1221 unsigned32 beginRangeExt;
1222 unsigned32 endRangeExt;
1225 proto_item *item = NULL;
1226 proto_tree *tree = NULL;
1227 int old_offset = offset;
1228 guint32 tokenid_hi, tokenid_low, expirationtime, type_hi, type_low,
1229 beginrange, endrange, beginrangeext, endrangeext, type;
1232 di = pinfo->private_data;
1233 if (di->conformant_run)
1241 item = proto_tree_add_text (parent_tree, tvb, offset, -1, "afsToken:");
1242 tree = proto_item_add_subtree (item, ett_fileexp_afstoken);
1246 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_fileexp_tokenid_hi,
1249 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1250 hf_fileexp_tokenid_low, &tokenid_low);
1252 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1253 hf_fileexp_expirationtime, &expirationtime);
1255 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_fileexp_type_hi,
1258 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_fileexp_type_low,
1261 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_fileexp_beginrange,
1264 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_fileexp_endrange,
1267 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1268 hf_fileexp_beginrangeext, &beginrangeext);
1270 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1271 hf_fileexp_endrangeext, &endrangeext);
1272 if (check_col (pinfo->cinfo, COL_INFO))
1273 col_append_fstr (pinfo->cinfo, COL_INFO,
1274 " :Tokenid:%u/%u ExpirationTime:%u beginrange:%u endrange:%u beginrangeext:%u endrangeext:%u",
1275 tokenid_hi, tokenid_low, expirationtime, beginrange,
1276 endrange, beginrangeext, endrangeext);
1279 if (check_col (pinfo->cinfo, COL_INFO))
1280 col_append_str (pinfo->cinfo, COL_INFO, " Type=");
1282 if ((type & TKN_LOCK_READ) == TKN_LOCK_READ)
1284 if (check_col (pinfo->cinfo, COL_INFO))
1285 col_append_str (pinfo->cinfo, COL_INFO, ":LOCK_READ");
1287 if ((type & TKN_LOCK_WRITE) == TKN_LOCK_WRITE)
1289 if (check_col (pinfo->cinfo, COL_INFO))
1290 col_append_str (pinfo->cinfo, COL_INFO, ":LOCK_WRITE");
1292 if ((type & TKN_DATA_READ) == TKN_DATA_READ)
1294 if (check_col (pinfo->cinfo, COL_INFO))
1295 col_append_str (pinfo->cinfo, COL_INFO, ":DATA_READ");
1297 if ((type & TKN_DATA_WRITE) == TKN_DATA_WRITE)
1299 if (check_col (pinfo->cinfo, COL_INFO))
1300 col_append_str (pinfo->cinfo, COL_INFO, ":DATA_WRITE");
1302 if ((type & TKN_OPEN_READ) == TKN_OPEN_READ)
1304 if (check_col (pinfo->cinfo, COL_INFO))
1305 col_append_str (pinfo->cinfo, COL_INFO, ":OPEN_READ");
1307 if ((type & TKN_OPEN_WRITE) == TKN_OPEN_WRITE)
1309 if (check_col (pinfo->cinfo, COL_INFO))
1310 col_append_str (pinfo->cinfo, COL_INFO, ":OPEN_WRITE");
1312 if ((type & TKN_OPEN_SHARED) == TKN_OPEN_SHARED)
1314 if (check_col (pinfo->cinfo, COL_INFO))
1315 col_append_str (pinfo->cinfo, COL_INFO, ":OPEN_SHARED");
1317 if ((type & TKN_OPEN_EXCLUSIVE) == TKN_OPEN_EXCLUSIVE)
1319 if (check_col (pinfo->cinfo, COL_INFO))
1320 col_append_str (pinfo->cinfo, COL_INFO, ":OPEN_EXCLUSIVE");
1322 if ((type & TKN_OPEN_DELETE) == TKN_OPEN_DELETE)
1324 if (check_col (pinfo->cinfo, COL_INFO))
1325 col_append_str (pinfo->cinfo, COL_INFO, ":OPEN_DELETE");
1327 if ((type & TKN_OPEN_PRESERVE) == TKN_OPEN_PRESERVE)
1329 if (check_col (pinfo->cinfo, COL_INFO))
1330 col_append_str (pinfo->cinfo, COL_INFO, ":OPEN_PRESERVE");
1332 if ((type & TKN_STATUS_READ) == TKN_STATUS_READ)
1334 if (check_col (pinfo->cinfo, COL_INFO))
1335 col_append_str (pinfo->cinfo, COL_INFO, ":STATUS_READ");
1337 if ((type & TKN_STATUS_WRITE) == TKN_STATUS_WRITE)
1339 if (check_col (pinfo->cinfo, COL_INFO))
1340 col_append_str (pinfo->cinfo, COL_INFO, ":STATUS_WRITE");
1342 if ((type & TKN_OPEN_UNLINK) == TKN_OPEN_UNLINK)
1344 if (check_col (pinfo->cinfo, COL_INFO))
1345 col_append_str (pinfo->cinfo, COL_INFO, ":OPEN_UNLINK");
1347 if ((type & TKN_SPOT_HERE) == TKN_SPOT_HERE)
1349 if (check_col (pinfo->cinfo, COL_INFO))
1350 col_append_str (pinfo->cinfo, COL_INFO, ":SPOT_HERE");
1352 if ((type & TKN_SPOT_THERE) == TKN_SPOT_THERE)
1354 if (check_col (pinfo->cinfo, COL_INFO))
1355 col_append_str (pinfo->cinfo, COL_INFO, ":SPOT_THERE");
1357 if ((type & TKN_OPEN_NO_READ) == TKN_OPEN_NO_READ)
1359 if (check_col (pinfo->cinfo, COL_INFO))
1360 col_append_str (pinfo->cinfo, COL_INFO, ":OPEN_NO_READ");
1362 if ((type & TKN_OPEN_NO_WRITE) == TKN_OPEN_NO_WRITE)
1364 if (check_col (pinfo->cinfo, COL_INFO))
1365 col_append_str (pinfo->cinfo, COL_INFO, ":OPEN_NO_WRITE");
1367 if ((type & TKN_OPEN_NO_UNLINK) == TKN_OPEN_NO_UNLINK)
1369 if (check_col (pinfo->cinfo, COL_INFO))
1370 col_append_str (pinfo->cinfo, COL_INFO, ":OPEN_NO_UNLINK");
1373 proto_item_set_len (item, offset - old_offset);
1378 dissect_afstaggedname (tvbuff_t * tvb, int offset,
1379 packet_info * pinfo, proto_tree * parent_tree,
1385 unsigned16 tn_length;
1386 byte tn_chars[AFS_NAMEMAX+1];
1389 proto_item *item = NULL;
1390 proto_tree *tree = NULL;
1391 int old_offset = offset;
1394 const guint8 *tn_string;
1397 di = pinfo->private_data;
1398 if (di->conformant_run)
1406 item = proto_tree_add_text (parent_tree, tvb, offset, -1,
1408 tree = proto_item_add_subtree (item, ett_fileexp_afstaggedname);
1412 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_fileexp_tn_tag,
1415 dissect_ndr_uint16 (tvb, offset, pinfo, tree, drep, hf_fileexp_tn_length,
1417 if (tn_length < 254)
1419 proto_tree_add_string (tree, hf_fileexp_tn_string, tvb, offset,
1420 hf_fileexp_tn_size, tvb_get_ptr (tvb, offset,
1422 tn_string = tvb_get_ptr (tvb, offset, 257);
1424 if (check_col (pinfo->cinfo, COL_INFO))
1425 col_append_fstr (pinfo->cinfo, COL_INFO, " :tn_tag: %s", tn_string);
1429 if (check_col (pinfo->cinfo, COL_INFO))
1430 col_append_fstr (pinfo->cinfo, COL_INFO,
1431 " :FIXME!: Invalid string length of %u", tn_length);
1434 proto_item_set_len (item, offset - old_offset);
1439 dissect_afsfidtaggedname (tvbuff_t * tvb, int offset,
1440 packet_info * pinfo, proto_tree * parent_tree,
1448 proto_item *item = NULL;
1449 proto_tree *tree = NULL;
1450 int old_offset = offset;
1453 di = pinfo->private_data;
1454 if (di->conformant_run)
1462 item = proto_tree_add_text (parent_tree, tvb, offset, -1,
1464 tree = proto_item_add_subtree (item, ett_fileexp_afsfidtaggedname);
1466 offset = dissect_afsFid (tvb, offset, pinfo, tree, drep);
1467 offset = dissect_afstaggedname (tvb, offset, pinfo, tree, drep);
1469 proto_item_set_len (item, offset - old_offset);
1475 dissect_minvvp (tvbuff_t * tvb, int offset,
1476 packet_info * pinfo, proto_tree * parent_tree, guint8 *drep)
1479 /* unsigned32 minvvp_high
1480 unsigned32 minvvp_low
1483 proto_item *item = NULL;
1484 proto_tree *tree = NULL;
1485 int old_offset = offset;
1486 guint32 minvvp_high, minvvp_low;
1489 di = pinfo->private_data;
1490 if (di->conformant_run)
1498 item = proto_tree_add_text (parent_tree, tvb, offset, -1, "minVVp:");
1499 tree = proto_item_add_subtree (item, ett_fileexp_minvvp);
1502 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1503 hf_fileexp_minvvp_high, &minvvp_high);
1505 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_fileexp_minvvp_low,
1508 if (check_col (pinfo->cinfo, COL_INFO))
1509 col_append_fstr (pinfo->cinfo, COL_INFO, " minVVp:%u/%u", minvvp_high,
1513 proto_item_set_len (item, offset - old_offset);
1519 dissect_afsuuid (tvbuff_t * tvb, int offset,
1520 packet_info * pinfo, proto_tree * parent_tree, guint8 *drep)
1529 proto_item *item = NULL;
1530 proto_tree *tree = NULL;
1531 int old_offset = offset;
1534 di = pinfo->private_data;
1535 if (di->conformant_run)
1543 item = proto_tree_add_text (parent_tree, tvb, offset, -1, "afsUUID:");
1544 tree = proto_item_add_subtree (item, ett_fileexp_afsuuid);
1547 offset = dissect_ndr_uuid_t (tvb, offset, pinfo, tree, drep, hf_fileexp_afsuuid_uuid, &uuid1);
1550 if (check_col (pinfo->cinfo, COL_INFO)) col_append_fstr (pinfo->cinfo, COL_INFO, ":%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x", uuid1.Data1, uuid1.Data2, uuid1.Data3, uuid1.Data4[0], uuid1.Data4[1], uuid1.Data4[2], uuid1.Data4[3], uuid1.Data4[4], uuid1.Data4[5], uuid1.Data4[6], uuid1.Data4[7]);
1552 proto_item_set_len (item, offset - old_offset);
1558 dissect_offsetp (tvbuff_t * tvb, int offset,
1559 packet_info * pinfo, proto_tree * parent_tree, guint8 *drep)
1562 /* unsigned32 offsetp_high
1563 unsigned32 offsetp_low
1566 proto_item *item = NULL;
1567 proto_tree *tree = NULL;
1568 int old_offset = offset;
1569 guint32 offsetp_high, offsetp_low;
1572 di = pinfo->private_data;
1573 if (di->conformant_run)
1581 item = proto_tree_add_text (parent_tree, tvb, offset, -1, "minVVp:");
1582 tree = proto_item_add_subtree (item, ett_fileexp_offsetp);
1585 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1586 hf_fileexp_offsetp_high, &offsetp_high);
1588 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_fileexp_offsetp_low,
1591 if (check_col (pinfo->cinfo, COL_INFO))
1592 col_append_fstr (pinfo->cinfo, COL_INFO, " offsetp:%u/%u", offsetp_high,
1596 proto_item_set_len (item, offset - old_offset);
1602 dissect_returntokenidp (tvbuff_t * tvb, int offset,
1603 packet_info * pinfo, proto_tree * parent_tree, guint8 *drep)
1606 /* unsigned32 returntokenidp_high
1607 unsigned32 returntokenidp_low
1610 proto_item *item = NULL;
1611 proto_tree *tree = NULL;
1612 int old_offset = offset;
1613 guint32 returntokenidp_high, returntokenidp_low;
1616 di = pinfo->private_data;
1617 if (di->conformant_run)
1625 item = proto_tree_add_text (parent_tree, tvb, offset, -1, "returnTokenIDp:");
1626 tree = proto_item_add_subtree (item, ett_fileexp_returntokenidp);
1629 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1630 hf_fileexp_returntokenidp_high, &returntokenidp_high);
1632 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_fileexp_returntokenidp_low,
1633 &returntokenidp_low);
1635 if (check_col (pinfo->cinfo, COL_INFO))
1636 col_append_fstr (pinfo->cinfo, COL_INFO, " returnTokenIDp:%u/%u", returntokenidp_high,
1637 returntokenidp_low);
1640 proto_item_set_len (item, offset - old_offset);
1646 dissect_volsync (tvbuff_t * tvb, int offset,
1647 packet_info * pinfo, proto_tree * parent_tree, guint8 *drep)
1651 afsHyper VV; volume's version
1652 unsigned32 VVAge; age, in seconds, of the knowledge that the
1653 given VolVers is current
1654 unsigned32 VVPingAge; age, in seconds, of the last probe from
1655 the callee (the secondary) to the primary
1656 unsigned32 vv_spare1;
1657 unsigned32 vv_spare2;
1660 proto_item *item = NULL;
1661 proto_tree *tree = NULL;
1662 int old_offset = offset;
1663 guint32 volid_hi, volid_low, vv_hi, vv_low, vvage, vvpingage, vvspare1,
1667 di = pinfo->private_data;
1668 if (di->conformant_run)
1676 item = proto_tree_add_text (parent_tree, tvb, offset, -1,
1678 tree = proto_item_add_subtree (item, ett_fileexp_volsync);
1682 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_fileexp_volid_hi,
1685 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_fileexp_volid_low,
1688 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_fileexp_vv_hi,
1691 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_fileexp_vv_low,
1694 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_fileexp_vvage,
1697 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_fileexp_vvpingage,
1700 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_fileexp_vvspare1,
1703 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_fileexp_vvspare2,
1706 if (check_col (pinfo->cinfo, COL_INFO))
1707 col_append_fstr (pinfo->cinfo, COL_INFO,
1708 " volid_hi:%u volid_low:%u vv_hi:%u vv_low:%u vvage:%u vvpingage:%u vvpspare1:%u vvspare2:%u",
1709 volid_hi, volid_low, vv_hi, vv_low, vvage, vvpingage,
1710 vvspare1, vvspare2);
1713 proto_item_set_len (item, offset - old_offset);
1719 dissect_afsFlags (tvbuff_t * tvb, int offset,
1720 packet_info * pinfo, proto_tree * parent_tree, guint8 *drep)
1728 proto_item *item = NULL;
1729 proto_tree *tree = NULL;
1730 int old_offset = offset;
1734 di = pinfo->private_data;
1735 if (di->conformant_run)
1743 item = proto_tree_add_text (parent_tree, tvb, offset, -1, "AfsFlags:");
1744 tree = proto_item_add_subtree (item, ett_fileexp_afsflags);
1748 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_fileexp_flags,
1753 if (check_col (pinfo->cinfo, COL_INFO))
1754 col_append_str (pinfo->cinfo, COL_INFO, " Flags=");
1755 if ((flags & AFS_FLAG_RETURNTOKEN) == AFS_FLAG_RETURNTOKEN)
1757 if (check_col (pinfo->cinfo, COL_INFO))
1758 col_append_str (pinfo->cinfo, COL_INFO, ":RETURNTOKEN");
1760 if ((flags & AFS_FLAG_TOKENJUMPQUEUE) == AFS_FLAG_TOKENJUMPQUEUE)
1762 if (check_col (pinfo->cinfo, COL_INFO))
1763 col_append_str (pinfo->cinfo, COL_INFO, ":TOKENJUMPQUEUE");
1765 if ((flags & AFS_FLAG_SKIPTOKEN) == AFS_FLAG_SKIPTOKEN)
1767 if (check_col (pinfo->cinfo, COL_INFO))
1768 col_append_str (pinfo->cinfo, COL_INFO, ":SKIPTOKEN");
1770 if ((flags & AFS_FLAG_NOOPTIMISM) == AFS_FLAG_NOOPTIMISM)
1772 if (check_col (pinfo->cinfo, COL_INFO))
1773 col_append_str (pinfo->cinfo, COL_INFO, ":NOOPTIMISM");
1775 if ((flags & AFS_FLAG_TOKENID) == AFS_FLAG_TOKENID)
1777 if (check_col (pinfo->cinfo, COL_INFO))
1778 col_append_str (pinfo->cinfo, COL_INFO, ":TOKENID");
1780 if ((flags & AFS_FLAG_RETURNBLOCKER) == AFS_FLAG_RETURNBLOCKER)
1782 if (check_col (pinfo->cinfo, COL_INFO))
1783 col_append_str (pinfo->cinfo, COL_INFO, ":RETURNBLOCKER");
1785 if ((flags & AFS_FLAG_ASYNCGRANT) == AFS_FLAG_ASYNCGRANT)
1787 if (check_col (pinfo->cinfo, COL_INFO))
1788 col_append_str (pinfo->cinfo, COL_INFO, ":ASYNCGRANT");
1790 if ((flags & AFS_FLAG_NOREVOKE) == AFS_FLAG_NOREVOKE)
1792 if (check_col (pinfo->cinfo, COL_INFO))
1793 col_append_str (pinfo->cinfo, COL_INFO, ":NOREVOKE");
1795 if ((flags & AFS_FLAG_MOVE_REESTABLISH) == AFS_FLAG_MOVE_REESTABLISH)
1797 if (check_col (pinfo->cinfo, COL_INFO))
1798 col_append_str (pinfo->cinfo, COL_INFO, ":MOVE_REESTABLISH");
1800 if ((flags & AFS_FLAG_SERVER_REESTABLISH) ==
1801 AFS_FLAG_SERVER_REESTABLISH)
1803 if (check_col (pinfo->cinfo, COL_INFO))
1804 col_append_str (pinfo->cinfo, COL_INFO, ":SERVER_REESTABLISH");
1806 if ((flags & AFS_FLAG_NO_NEW_EPOCH) == AFS_FLAG_NO_NEW_EPOCH)
1808 if (check_col (pinfo->cinfo, COL_INFO))
1809 col_append_str (pinfo->cinfo, COL_INFO, ":NO_NEW_EPOCH");
1811 if ((flags & AFS_FLAG_MOVE_SOURCE_OK) == AFS_FLAG_MOVE_SOURCE_OK)
1813 if (check_col (pinfo->cinfo, COL_INFO))
1814 col_append_str (pinfo->cinfo, COL_INFO, ":MOVE_SOURCE_OK");
1816 if ((flags & AFS_FLAG_SYNC) == AFS_FLAG_SYNC)
1818 if (check_col (pinfo->cinfo, COL_INFO))
1819 col_append_str (pinfo->cinfo, COL_INFO, ":SYNC");
1821 if ((flags & AFS_FLAG_ZERO) == AFS_FLAG_ZERO)
1823 if (check_col (pinfo->cinfo, COL_INFO))
1824 col_append_str (pinfo->cinfo, COL_INFO, ":ZERO");
1826 if ((flags & AFS_FLAG_SKIPSTATUS) == AFS_FLAG_SKIPSTATUS)
1828 if (check_col (pinfo->cinfo, COL_INFO))
1829 col_append_str (pinfo->cinfo, COL_INFO, ":SKIPSTATUS");
1831 if ((flags & AFS_FLAG_FORCEREVOCATIONS) == AFS_FLAG_FORCEREVOCATIONS)
1833 if (check_col (pinfo->cinfo, COL_INFO))
1834 col_append_str (pinfo->cinfo, COL_INFO, ":FORCEREVOCATIONS");
1836 if ((flags & AFS_FLAG_FORCEVOLQUIESCE) == AFS_FLAG_FORCEVOLQUIESCE)
1838 if (check_col (pinfo->cinfo, COL_INFO))
1839 col_append_str (pinfo->cinfo, COL_INFO, ":FORCEVOLQUIESCE");
1841 if ((flags & AFS_FLAG_SEC_SERVICE) == AFS_FLAG_SEC_SERVICE)
1843 if (check_col (pinfo->cinfo, COL_INFO))
1844 col_append_str (pinfo->cinfo, COL_INFO, ":SEC_SERVICE");
1846 if ((flags & AFS_FLAG_CONTEXT_NEW_ACL_IF) ==
1847 AFS_FLAG_CONTEXT_NEW_ACL_IF)
1849 if (check_col (pinfo->cinfo, COL_INFO))
1850 col_append_str (pinfo->cinfo, COL_INFO, ":CONTEXT_NEW_ACL_IF");
1855 proto_item_set_len (item, offset - old_offset);
1860 dissect_fetchstatus (tvbuff_t * tvb, int offset,
1861 packet_info * pinfo, proto_tree * parent_tree,
1866 unsigned32 interfaceVersion;
1867 unsigned32 fileType;
1868 unsigned32 linkCount;
1870 afsHyper dataVersion;
1874 unsigned32 callerAccess;
1875 unsigned32 anonymousAccess;
1876 unsigned32 aclExpirationTime;
1878 unsigned32 parentVnode;
1879 unsigned32 parentUnique;
1881 afsTimeval changeTime;
1882 afsTimeval accessTime;
1883 afsTimeval serverModTime;
1886 unsigned32 deviceNumber;
1887 unsigned32 blocksUsed;
1888 unsigned32 clientSpare1; * client-only attrs *
1889 unsigned32 deviceNumberHighBits;
1898 proto_item *item = NULL;
1899 proto_tree *tree = NULL;
1900 int old_offset = offset;
1901 guint32 interfaceversion, filetype, linkcount, length_high, length_low,
1902 dataversion_high, dataversion_low, author, owner, group, calleraccess,
1903 anonymousaccess, aclexpirationtime, mode, parentvnode, parentunique,
1904 modtime_sec, modtime_msec, changetime_sec, changetime_msec,
1905 accesstime_sec, accesstime_msec, servermodtime_msec, servermodtime_sec,
1906 devicenumber, blocksused, clientspare1, devicenumberhighbits,
1907 agtypeunique, himaxspare, lomaxspare, pathconfspare, spare4, spare5,
1909 e_uuid_t typeuuid, objectuuid;
1912 di = pinfo->private_data;
1913 if (di->conformant_run)
1922 item = proto_tree_add_text (parent_tree, tvb, offset, -1,
1924 tree = proto_item_add_subtree (item, ett_fileexp_fetchstatus);
1928 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1929 hf_fileexp_interfaceversion, &interfaceversion);
1931 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_fileexp_filetype,
1934 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_fileexp_linkcount,
1937 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1938 hf_fileexp_length_high, &length_high);
1940 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_fileexp_length_low,
1943 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1944 hf_fileexp_dataversion_high, &dataversion_high);
1946 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1947 hf_fileexp_dataversion_low, &dataversion_low);
1949 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_fileexp_author,
1952 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_fileexp_owner,
1955 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_fileexp_group,
1958 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1959 hf_fileexp_calleraccess, &calleraccess);
1961 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1962 hf_fileexp_anonymousaccess, &anonymousaccess);
1964 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1965 hf_fileexp_aclexpirationtime, &aclexpirationtime);
1967 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_fileexp_mode,
1970 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1971 hf_fileexp_parentvnode, &parentvnode);
1973 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1974 hf_fileexp_parentunique, &parentunique);
1976 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1977 hf_fileexp_modtime_sec, &modtime_sec);
1979 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1980 hf_fileexp_modtime_msec, &modtime_msec);
1982 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1983 hf_fileexp_changetime_sec, &changetime_sec);
1985 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1986 hf_fileexp_changetime_msec, &changetime_msec);
1988 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1989 hf_fileexp_accesstime_sec, &accesstime_sec);
1991 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1992 hf_fileexp_accesstime_msec, &accesstime_msec);
1994 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1995 hf_fileexp_servermodtime_sec, &servermodtime_sec);
1997 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1998 hf_fileexp_servermodtime_msec, &servermodtime_msec);
2000 dissect_ndr_uuid_t (tvb, offset, pinfo, tree, drep, hf_fileexp_typeuuid,
2003 dissect_ndr_uuid_t (tvb, offset, pinfo, tree, drep, hf_fileexp_objectuuid,
2006 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
2007 hf_fileexp_devicenumber, &devicenumber);
2009 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_fileexp_blocksused,
2012 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
2013 hf_fileexp_clientspare1, &clientspare1);
2015 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
2016 hf_fileexp_devicenumberhighbits,
2017 &devicenumberhighbits);
2019 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
2020 hf_fileexp_agtypeunique, &agtypeunique);
2022 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_fileexp_himaxspare,
2025 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_fileexp_lomaxspare,
2028 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
2029 hf_fileexp_pathconfspare, &pathconfspare);
2031 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_fileexp_spare4,
2034 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_fileexp_spare5,
2037 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_fileexp_spare6,
2041 if (check_col (pinfo->cinfo, COL_INFO))
2042 col_append_fstr (pinfo->cinfo, COL_INFO,
2043 " :interfacever:%u filetype:%u linkcount:%u length:%u dataver:%u author:%u owner:%u group:%u calleraccess:%u anonaccess:%u aclexpire:%u mode:%u parentvnode:%u parentunique:%u modtimesec:%u changetime_sec:%u accesstime_sec:%u servermodtimesec:%u devicenumber:%u blocksused:%u clientspare:%u devicehighbits:%u agtypeunique:%u",
2044 interfaceversion, filetype, linkcount, length_low,
2045 dataversion_low, author, owner, group, calleraccess,
2046 anonymousaccess, aclexpirationtime, mode, parentvnode,
2047 parentunique, modtime_sec, changetime_sec,
2048 accesstime_sec, servermodtime_sec, devicenumber,
2049 blocksused, clientspare1, devicenumberhighbits,
2053 proto_item_set_len (item, offset - old_offset);
2058 dissect_afsReturnDesc (tvbuff_t * tvb, int offset,
2059 packet_info * pinfo, proto_tree * parent_tree,
2063 afsFid fid; * useful hint *
2065 afsHyper type; * mask *
2066 unsigned32 flags; * just in case *
2069 proto_item *item = NULL;
2070 proto_tree *tree = NULL;
2071 int old_offset = offset;
2072 guint32 tokenid_high, tokenid_low, type_high, type_low;
2075 di = pinfo->private_data;
2076 if (di->conformant_run)
2084 item = proto_tree_add_text (parent_tree, tvb, offset, -1,
2086 tree = proto_item_add_subtree (item, ett_fileexp_afsReturnDesc);
2090 offset = dissect_afsFid ( tvb, offset, pinfo, tree, drep);
2092 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
2093 hf_fileexp_afsreturndesc_tokenid_high, &tokenid_high);
2095 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
2096 hf_fileexp_afsreturndesc_tokenid_low, &tokenid_low);
2098 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
2099 hf_fileexp_afsreturndesc_type_high, &type_high);
2101 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
2102 hf_fileexp_afsreturndesc_type_low, &type_low);
2103 if (check_col (pinfo->cinfo, COL_INFO))
2104 col_append_fstr (pinfo->cinfo, COL_INFO, " TokenId:%u/%u Type:%u/%u",
2105 tokenid_high, tokenid_low, type_high, type_low);
2108 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFlags,
2109 NDR_POINTER_REF, "afsFlags: ", -1);
2111 proto_item_set_len (item, offset - old_offset);
2118 dissect_afsReturns (tvbuff_t * tvb, int offset,
2119 packet_info * pinfo, proto_tree * tree, guint8 *drep)
2123 long afsReturns_len;
2124 [length_is(afsReturns_len)] afsReturnDesc afsReturns_val[AFS_BULKMAX];
2127 /* this is not really a ucvarray, but with the initial len, we can
2128 cheat and pretend it is */
2131 di = pinfo->private_data;
2132 if (di->conformant_run)
2138 dissect_ndr_ucvarray (tvb, offset, pinfo, tree, drep,
2139 dissect_afsReturnDesc);
2144 #if 0 /* not used */
2147 dissect_afsbundled_stat (tvbuff_t * tvb, int offset,
2148 packet_info * pinfo, proto_tree * parent_tree, guint8 *drep _U_)
2152 proto_item *item = NULL;
2153 proto_tree *tree = NULL;
2154 int old_offset = offset;
2157 di = pinfo->private_data;
2158 if (di->conformant_run)
2165 item = proto_tree_add_text (parent_tree, tvb, offset, -1, "afsbundled_stat:");
2166 tree = proto_item_add_subtree (item, ett_fileexp_afsbundled_stat);
2172 afsFetchStatus stat;
2174 error_status_t error;
2178 offset = dissect_afsFid(tvb, offset, pinfo, tree, drep);
2181 offset = dissect_fetchstatus(tvb, offset, pinfo, tree, drep);
2182 offset = dissect_afstoken(tvb, offset, pinfo, tree, drep);
2184 /* This is currently under construction as I figure out the reverse layout of the packet. */
2186 offset = dissect_afsErrorStatus (tvb, offset, pinfo, tree, drep);
2192 proto_item_set_len (item, offset - old_offset);
2197 #endif /* not used */
2200 dissect_afsBulkStat (tvbuff_t * tvb _U_, int offset,
2201 packet_info * pinfo _U_, proto_tree * tree _U_,
2205 unsigned32 BulkStat_len;
2206 [length_is(BulkStat_len)] bundled_stat BulkStat_val[AFS_BULKMAX];
2208 /* this is not really a ucvarray, but with the initial len, we can
2209 cheat and pretend it is */
2211 offset = dissect_ndr_ucvarray(tvb, offset, pinfo, tree, drep,
2212 dissect_afsbundled_stat);
2222 fileexp_dissect_removefile_rqst (tvbuff_t * tvb, int offset,
2223 packet_info * pinfo, proto_tree * tree,
2230 di = pinfo->private_data;
2231 if (di->conformant_run)
2238 [in] afsFid *DirFidp,
2239 [in] afsFidTaggedName *Namep,
2240 [in] afsHyper *returnTokenIDp,
2241 [in] afsHyper *minVVp,
2242 [in] unsigned32 Flags,
2247 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
2248 NDR_POINTER_REF, "afsFid: ", -1);
2250 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep,
2251 dissect_afsfidtaggedname, NDR_POINTER_REF,
2252 "afsFidTaggedName: ", -1);
2254 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_returntokenidp,
2255 NDR_POINTER_REF, "afsReturnTokenIDp:", -1);
2257 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_minvvp,
2258 NDR_POINTER_REF, "afsMinVVp:", -1);
2261 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFlags,
2262 NDR_POINTER_REF, "afsFlags:", -1);
2268 fileexp_dissect_storedata_rqst (tvbuff_t * tvb, int offset,
2269 packet_info * pinfo, proto_tree * tree,
2272 guint32 position_high, position_low, length;
2275 di = pinfo->private_data;
2276 if (di->conformant_run)
2283 [in] afsStoreStatus *InStatusp,
2284 [in] afsHyper *Position,
2285 [in] signed32 Length,
2286 [in] afsHyper *minVVp,
2287 [in] unsigned32 Flags,
2288 [in] pipe_t *storeStream,
2294 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
2295 NDR_POINTER_REF, "afsFid: ", -1);
2297 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep,
2298 dissect_afsstorestatus, NDR_POINTER_REF,
2299 "afsStoreStatus:", -1);
2301 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
2302 hf_fileexp_position_high, &position_high);
2304 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
2305 hf_fileexp_position_low, &position_low);
2308 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
2309 hf_fileexp_length, &length);
2311 if (check_col (pinfo->cinfo, COL_INFO))
2312 col_append_fstr (pinfo->cinfo, COL_INFO, " Position:%u/%u Length:%u",
2313 position_high, position_low, length);
2316 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_minvvp,
2317 NDR_POINTER_REF, "MinVVp:", -1);
2320 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFlags,
2321 NDR_POINTER_REF, "afsFlags:", -1);
2323 /* XXX need to decode pipe_t still here */
2329 fileexp_dissect_gettoken_rqst (tvbuff_t * tvb, int offset,
2330 packet_info * pinfo, proto_tree * tree,
2335 di = pinfo->private_data;
2336 if (di->conformant_run)
2344 [in] afsToken *MinTokenp,
2345 [in] afsHyper *minVVp,
2346 [in] unsigned32 Flags,
2351 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
2352 NDR_POINTER_REF, "afsFid: ", -1);
2355 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afstoken,
2356 NDR_POINTER_REF, "afsToken: ", -1);
2359 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_minvvp,
2360 NDR_POINTER_REF, "MinVVp:", -1);
2363 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFlags,
2364 NDR_POINTER_REF, "afsFlags:", -1);
2369 fileexp_dissect_gettoken_resp (tvbuff_t * tvb, int offset,
2370 packet_info * pinfo, proto_tree * tree,
2375 di = pinfo->private_data;
2376 if (di->conformant_run)
2382 [out] afsToken *OutTokenp,
2383 [out] afsRecordLock *OutBlockerp,
2384 [out] afsFetchStatus *OutStatusp,
2385 [out] afsVolSync *Syncp
2389 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afstoken,
2390 NDR_POINTER_REF, "afsToken: ", -1);
2392 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep,
2393 dissect_afsRecordLock, NDR_POINTER_REF,
2394 "afsRecordLock: ", -1);
2396 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_fetchstatus,
2397 NDR_POINTER_REF, "afsFetchStatus: ", -1);
2399 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_volsync,
2400 NDR_POINTER_REF, "VolSync: ", -1);
2402 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep,
2403 dissect_afsErrorStatus, NDR_POINTER_REF,
2404 "afsErrorStatus: ", -1);
2410 fileexp_dissect_lookuproot_rqst (tvbuff_t * tvb, int offset,
2411 packet_info * pinfo, proto_tree * tree,
2416 di = pinfo->private_data;
2417 if (di->conformant_run)
2424 * [in] afsFid *InFidp,
2425 * [in] afsHyper *minVVp,
2426 * [in] unsigned32 Flags,
2430 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
2431 NDR_POINTER_REF, "afsFid: ", -1);
2434 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_minvvp,
2435 NDR_POINTER_REF, "MinVVp:", -1);
2438 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFlags,
2439 NDR_POINTER_REF, "afsFlags:", -1);
2445 fileexp_dissect_fetchdata_rqst (tvbuff_t * tvb, int offset,
2446 packet_info * pinfo, proto_tree * tree,
2449 guint32 position_high, position_low, length;
2452 di = pinfo->private_data;
2453 if (di->conformant_run)
2460 [in] afsHyper *minVVp,
2461 [in] afsHyper *Position,
2462 [in] signed32 Length,
2463 [in] unsigned32 Flags,
2467 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
2468 NDR_POINTER_REF, "afsFid: ", -1);
2471 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_minvvp,
2472 NDR_POINTER_REF, "MinVVp:", -1);
2474 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
2475 hf_fileexp_position_high, &position_high);
2477 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
2478 hf_fileexp_position_low, &position_low);
2480 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
2481 hf_fileexp_length, &length);
2482 if (check_col (pinfo->cinfo, COL_INFO))
2483 col_append_fstr (pinfo->cinfo, COL_INFO, " Position:%u/%u Length:%u",
2484 position_high, position_low, length);
2487 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFlags,
2488 NDR_POINTER_REF, "afsFlags:", -1);
2494 fileexp_dissect_fetchacl_rqst (tvbuff_t * tvb, int offset,
2495 packet_info * pinfo, proto_tree * tree,
2502 di = pinfo->private_data;
2503 if (di->conformant_run)
2511 [in] unsigned32 aclType,
2512 [in] afsHyper *minVVp,
2513 [in] unsigned32 Flags,
2518 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
2519 NDR_POINTER_REF, "afsFid: ", -1);
2522 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_fileexp_acltype,
2525 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_minvvp,
2526 NDR_POINTER_REF, "MinVVp:", -1);
2529 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFlags,
2530 NDR_POINTER_REF, "afsFlags:", -1);
2534 if (check_col (pinfo->cinfo, COL_INFO))
2535 col_append_str (pinfo->cinfo, COL_INFO,
2536 " :copy the ACL from specified fid:");
2543 fileexp_dissect_fetchstatus_rqst (tvbuff_t * tvb, int offset,
2544 packet_info * pinfo, proto_tree * tree,
2549 di = pinfo->private_data;
2550 if (di->conformant_run)
2558 [in] afsHyper *minVVp,
2559 [in] unsigned32 Flags,
2563 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
2564 NDR_POINTER_REF, "afsFid: ", -1);
2566 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_minvvp,
2567 NDR_POINTER_REF, "MinVVp:", -1);
2569 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFlags,
2570 NDR_POINTER_REF, "afsFlags:", -1);
2575 fileexp_dissect_storeacl_rqst (tvbuff_t * tvb, int offset,
2576 packet_info * pinfo, proto_tree * tree,
2582 di = pinfo->private_data;
2583 if (di->conformant_run)
2590 [in] afsACL *AccessListp,
2591 [in] unsigned32 aclType,
2592 [in] afsFid *aclFidp,
2593 [in] afsHyper *minVVp,
2594 [in] unsigned32 Flags,
2599 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
2600 NDR_POINTER_REF, "afsFid: ", -1);
2602 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsAcl,
2603 NDR_POINTER_REF, "afsAcl: ", -1);
2605 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_fileexp_acltype,
2608 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
2609 NDR_POINTER_REF, "afsFid: ", -1);
2611 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_minvvp,
2612 NDR_POINTER_REF, "MinVVp:", -1);
2614 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFlags,
2615 NDR_POINTER_REF, "afsFlags:", -1);
2617 if (check_col (pinfo->cinfo, COL_INFO))
2618 col_append_fstr (pinfo->cinfo, COL_INFO, " aclType:%u",acltype);
2624 fileexp_dissect_storestatus_rqst (tvbuff_t * tvb, int offset,
2625 packet_info * pinfo, proto_tree * tree,
2630 di = pinfo->private_data;
2631 if (di->conformant_run)
2639 [in] afsStoreStatus *InStatusp,
2640 [in] afsHyper *minVVp,
2641 [in] unsigned32 Flags,
2645 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
2646 NDR_POINTER_REF, "afsFid: ", -1);
2648 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep,
2649 dissect_afsstorestatus, NDR_POINTER_REF,
2650 "afsStoreStatus: ", -1);
2652 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_minvvp,
2653 NDR_POINTER_REF, "MinVVp:", -1);
2655 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFlags,
2656 NDR_POINTER_REF, "afsFlags:", -1);
2663 fileexp_dissect_createfile_rqst (tvbuff_t * tvb, int offset,
2664 packet_info * pinfo, proto_tree * tree,
2669 di = pinfo->private_data;
2670 if (di->conformant_run)
2677 [in] afsFid *DirFidp,
2678 [in] afsTaggedName *Namep,
2679 [in] afsStoreStatus *InStatusp,
2680 [in] afsHyper *minVVp,
2681 [in] unsigned32 Flags,
2685 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
2686 NDR_POINTER_REF, "afsFid: ", -1);
2688 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep,
2689 dissect_afstaggedname, NDR_POINTER_REF,
2690 "afsTaggedName: ", -1);
2692 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep,
2693 dissect_afsstorestatus, NDR_POINTER_REF,
2694 "afsStoreStatus: ", -1);
2696 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_minvvp,
2697 NDR_POINTER_REF, "MinVVp:", -1);
2699 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFlags,
2700 NDR_POINTER_REF, "afsFlags:", -1);
2706 fileexp_dissect_rename_rqst (tvbuff_t * tvb, int offset,
2707 packet_info * pinfo, proto_tree * tree,
2712 di = pinfo->private_data;
2713 if (di->conformant_run)
2719 [in] afsFid *OldDirFidp,
2720 [in] afsFidTaggedName *OldNamep,
2721 [in] afsFid *NewDirFidp,
2722 [in] afsFidTaggedName *NewNamep,
2723 [in] afsHyper *returnTokenIDp,
2724 [in] afsHyper *minVVp,
2725 [in] unsigned32 Flags,
2730 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
2731 NDR_POINTER_REF, "afsFid: ", -1);
2734 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep,
2735 dissect_afsfidtaggedname, NDR_POINTER_REF,
2736 "afsFidTaggedName: ", -1);
2739 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
2740 NDR_POINTER_REF, "afsFid: ", -1);
2743 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep,
2744 dissect_afstaggedname, NDR_POINTER_REF,
2745 "afsFidTaggedName: ", -1);
2748 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep,
2749 dissect_returntokenidp, NDR_POINTER_REF,
2750 "afsReturnTokenIDp: ", -1);
2753 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep,
2754 dissect_minvvp, NDR_POINTER_REF,
2757 offset = dissect_afsFlags(tvb, offset, pinfo, tree, drep);
2763 fileexp_dissect_symlink_rqst (tvbuff_t * tvb, int offset,
2764 packet_info * pinfo, proto_tree * tree,
2769 di = pinfo->private_data;
2770 if (di->conformant_run)
2776 [in] afsFid *DirFidp,
2777 [in] afsTaggedName *Namep,
2778 [in] afsTaggedPath *LinkContentsp,
2779 [in] afsStoreStatus *InStatusp,
2780 [in] afsHyper *minVVp,
2781 [in] unsigned32 Flags,
2787 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
2788 NDR_POINTER_REF, "afsFid: ", -1);
2791 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep,
2792 dissect_afstaggedname, NDR_POINTER_REF,
2793 "afsTaggedName: ", -1);
2795 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep,
2796 dissect_afsTaggedPath, NDR_POINTER_REF,
2797 "afsTaggedPath: ", -1);
2799 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep,
2800 dissect_afsstorestatus, NDR_POINTER_REF,
2801 "afsStoreStatus: ", -1);
2803 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_minvvp,
2804 NDR_POINTER_REF, "MinVVp:", -1);
2805 offset = dissect_afsFlags (tvb, offset, pinfo, tree, drep);
2811 fileexp_dissect_readdir_rqst (tvbuff_t * tvb, int offset,
2812 packet_info * pinfo, proto_tree * tree,
2818 di = pinfo->private_data;
2819 if (di->conformant_run)
2825 [in] afsFid *DirFidp,
2826 [in] afsHyper *Offsetp,
2827 [in] unsigned32 Size,
2828 [in] afsHyper *minVVp,
2829 [in] unsigned32 Flags,
2833 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
2834 NDR_POINTER_REF, "afsFid: ", -1);
2836 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_offsetp,
2837 NDR_POINTER_REF, "Offsetp: ", -1);
2839 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
2840 hf_fileexp_readdir_size, &size);
2842 if (check_col (pinfo->cinfo, COL_INFO))
2843 col_append_fstr (pinfo->cinfo, COL_INFO, " Size:%u", size);
2846 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_minvvp,
2847 NDR_POINTER_REF, "MinVVp:", -1);
2848 offset = dissect_afsFlags ( tvb, offset, pinfo, tree, drep);
2854 fileexp_dissect_makedir_rqst (tvbuff_t * tvb, int offset,
2855 packet_info * pinfo, proto_tree * tree,
2860 di = pinfo->private_data;
2861 if (di->conformant_run)
2867 [in] afsFid *DirFidp,
2868 [in] afsTaggedName *Namep,
2869 [in] afsStoreStatus *InStatusp,
2870 [in] afsHyper *minVVp,
2871 [in] unsigned32 Flags,
2875 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
2876 NDR_POINTER_REF, "afsFid: ", -1);
2879 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep,
2880 dissect_afstaggedname, NDR_POINTER_REF,
2881 "afsTaggedName: ", -1);
2883 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep,
2884 dissect_afsstorestatus, NDR_POINTER_REF,
2885 "afsStoreStatus: ", -1);
2887 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_minvvp,
2888 NDR_POINTER_REF, "MinVVp:", -1);
2889 offset = dissect_afsFlags ( tvb, offset, pinfo, tree, drep);
2895 fileexp_dissect_removedir_rqst (tvbuff_t * tvb, int offset,
2896 packet_info * pinfo, proto_tree * tree,
2899 guint32 returntokenidp_high, returntokenidp_low;
2902 di = pinfo->private_data;
2903 if (di->conformant_run)
2909 [in] afsFid *DirFidp,
2910 [in] afsFidTaggedName *Namep,
2911 [in] afsHyper *returnTokenIDp,
2912 [in] afsHyper *minVVp,
2913 [in] unsigned32 Flags,
2917 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
2918 NDR_POINTER_REF, "afsFid: ", -1);
2920 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep,
2921 dissect_afsfidtaggedname, NDR_POINTER_REF,
2922 "afsFidTaggedName: ", -1);
2924 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
2925 hf_fileexp_returntokenidp_high, &returntokenidp_high);
2927 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
2928 hf_fileexp_returntokenidp_low, &returntokenidp_low);
2930 if (check_col (pinfo->cinfo, COL_INFO))
2931 col_append_fstr (pinfo->cinfo, COL_INFO, " returnTokenIDp:%u/%u",
2932 returntokenidp_high, returntokenidp_low);
2934 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_minvvp,
2935 NDR_POINTER_REF, "MinVVp:", -1);
2936 offset = dissect_afsFlags ( tvb, offset, pinfo, tree, drep );
2942 fileexp_dissect_lookup_rqst (tvbuff_t * tvb, int offset,
2943 packet_info * pinfo, proto_tree * tree,
2948 di = pinfo->private_data;
2949 if (di->conformant_run)
2955 [in] afsFid *DirFidp,
2956 [in] afsTaggedName *Namep,
2957 [in] afsHyper *minVVp,
2958 [in] unsigned32 Flags,
2962 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
2963 NDR_POINTER_REF, "afsFid: ", -1);
2966 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep,
2967 dissect_afstaggedname, NDR_POINTER_REF,
2968 "afsTaggedName: ", -1);
2970 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_minvvp,
2971 NDR_POINTER_REF, "MinVVp:", -1);
2972 offset = dissect_afsFlags ( tvb, offset, pinfo, tree, drep);
2977 fileexp_dissect_lookup_resp (tvbuff_t * tvb, int offset,
2978 packet_info * pinfo, proto_tree * tree,
2983 di = pinfo->private_data;
2984 if (di->conformant_run)
2990 [out] afsFid *OutFidp,
2991 [out] afsFetchStatus *OutFidStatusp,
2992 [out] afsFetchStatus *OutDirStatusp,
2993 [out] afsToken *OutTokenp,
2994 [out] afsVolSync *Syncp
2998 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
2999 NDR_POINTER_REF, "afsFid: ", -1);
3002 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_fetchstatus,
3003 NDR_POINTER_REF, "FetchStatus: ", -1);
3005 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_fetchstatus,
3006 NDR_POINTER_REF, "FetchStatus: ", -1);
3009 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afstoken,
3010 NDR_POINTER_REF, "afsToken: ", -1);
3012 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_volsync,
3013 NDR_POINTER_REF, "VolSync: ", -1);
3014 MACRO_ST_CLEAR ("Lookup reply");
3021 fileexp_dissect_makemountpoint_rqst (tvbuff_t * tvb, int offset,
3022 packet_info * pinfo, proto_tree * tree,
3028 di = pinfo->private_data;
3029 if (di->conformant_run)
3036 [in] afsFid *DirFidp,
3037 [in] afsTaggedName *Namep,
3038 [in] afsTaggedName *cellNamep,
3039 [in] afsFStype Type,
3040 [in] afsTaggedName *volumeNamep,
3041 [in] afsStoreStatus *InStatusp,
3042 [in] afsHyper *minVVp,
3043 [in] unsigned32 Flags,
3048 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
3049 NDR_POINTER_REF, "afsFid: ", -1);
3052 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep,
3053 dissect_afstaggedname, NDR_POINTER_REF,
3054 "afsTaggedName: ", -1);
3056 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep,
3057 dissect_afstaggedname, NDR_POINTER_REF,
3058 "afsTaggedName: ", -1);
3060 dissect_ndr_uint16 (tvb, offset, pinfo, tree, drep, hf_fileexp_fstype,
3063 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep,
3064 dissect_afstaggedname, NDR_POINTER_REF,
3065 "afsTaggedName: ", -1);
3067 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep,
3068 dissect_afsstorestatus, NDR_POINTER_REF,
3069 "afsStoreStatus: ", -1);
3071 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_minvvp,
3072 NDR_POINTER_REF, "MinVVp:", -1);
3074 offset = dissect_afsFlags (tvb, offset, pinfo, tree, drep);
3076 if (check_col (pinfo->cinfo, COL_INFO))
3077 col_append_fstr (pinfo->cinfo, COL_INFO, " Type:%u", type);
3084 fileexp_dissect_setcontext_rqst (tvbuff_t * tvb, int offset,
3085 packet_info * pinfo, proto_tree * tree,
3090 guint32 epochtime, clientsizesattrs, parm7;
3092 di = pinfo->private_data;
3093 if (di->conformant_run)
3099 [in] unsigned32 epochTime,
3100 [in] afsNetData *callbackAddr,
3101 [in] unsigned32 Flags,
3102 [in] afsUUID *secObjectID,
3103 [in] unsigned32 clientSizesAttrs,
3104 [in] unsigned32 parm7
3109 dissect_dcerpc_time_t (tvb, offset, pinfo, tree, drep,
3110 hf_fileexp_setcontext_rqst_epochtime, &epochtime);
3112 offset = dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsNetData,
3113 NDR_POINTER_REF, "afsNetData:", -1);
3115 offset = dissect_afsFlags (tvb, offset, pinfo, tree, drep);
3117 if (check_col (pinfo->cinfo, COL_INFO)) col_append_str (pinfo->cinfo, COL_INFO, " setObjectID");
3119 offset = dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsuuid,
3120 NDR_POINTER_REF, "afsUUID:", -1);
3122 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
3123 hf_fileexp_setcontext_rqst_clientsizesattrs,
3126 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
3127 hf_fileexp_setcontext_rqst_parm7, &parm7);
3129 if (check_col (pinfo->cinfo, COL_INFO)) col_append_fstr (pinfo->cinfo, COL_INFO, " epochTime:%u clientSizesAttrs:%u parm7:%u", epochtime, clientsizesattrs, parm7);
3135 fileexp_dissect_setcontext_resp (tvbuff_t * tvb, int offset,
3136 packet_info * pinfo, proto_tree * tree,
3139 /* nothing but error code */
3144 di = pinfo->private_data;
3145 if (di->conformant_run)
3150 MACRO_ST_CLEAR ("SetContext reply");
3155 fileexp_dissect_lookuproot_resp
3157 tvb, int offset, packet_info * pinfo, proto_tree * tree, guint8 *drep)
3161 di = pinfo->private_data;
3162 if (di->conformant_run)
3168 * [out] afsFid *OutFidp,
3169 * [out] afsFetchStatus *OutFidStatusp,
3170 * [out] afsToken *OutTokenp,
3171 * [out] afsVolSync *Syncp
3175 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
3176 NDR_POINTER_REF, "afsFid: ", -1);
3179 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_fetchstatus,
3180 NDR_POINTER_REF, "FetchStatus: ", -1);
3182 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afstoken,
3183 NDR_POINTER_REF, "afsToken: ", -1);
3185 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_volsync,
3186 NDR_POINTER_REF, "VolSync: ", -1);
3187 MACRO_ST_CLEAR ("LookupRoot reply");
3192 fileexp_dissect_fetchdata_resp
3194 tvb, int offset, packet_info * pinfo, proto_tree * tree, guint8 *drep)
3198 guint32 pipe_t_size;
3200 di = pinfo->private_data;
3201 if (di->conformant_run)
3207 [out] afsFetchStatus *OutStatusp,
3208 [out] afsToken *OutTokenp,
3209 [out] afsVolSync *Syncp,
3210 [out] pipe_t *fetchStream
3212 /* The SkipToken/SkipStatus flags are always used in every fetchdata request I have seen.
3213 There is also not sign of the afsVolSync structure... Just size, and data string... aka pipe_t */
3216 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
3217 hf_fileexp_fetchdata_pipe_t_size, &pipe_t_size);
3223 fileexp_dissect_fetchacl_resp
3225 tvb, int offset, packet_info * pinfo, proto_tree * tree, guint8 *drep)
3229 di = pinfo->private_data;
3230 if (di->conformant_run)
3237 [out] afsACL *AccessListp,
3238 [out] afsFetchStatus *OutStatusp,
3239 [out] afsVolSync *Syncp
3242 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsAcl,
3243 NDR_POINTER_REF, "afsAcl: ", -1);
3245 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_fetchstatus,
3246 NDR_POINTER_REF, "FetchStatus: ", -1);
3249 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_volsync,
3250 NDR_POINTER_REF, "VolSync: ", -1);
3251 MACRO_ST_CLEAR ("FetchAcl reply");
3256 fileexp_dissect_fetchstatus_resp
3258 tvb, int offset, packet_info * pinfo, proto_tree * tree, guint8 *drep)
3262 di = pinfo->private_data;
3263 if (di->conformant_run)
3269 [out] afsFetchStatus *OutStatusp,
3270 [out] afsToken *OutTokenp,
3271 [out] afsVolSync *Syncp
3275 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_fetchstatus,
3276 NDR_POINTER_REF, "FetchStatus: ", -1);
3279 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afstoken,
3280 NDR_POINTER_REF, "afsToken: ", -1);
3282 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_volsync,
3283 NDR_POINTER_REF, "VolSync: ", -1);
3284 MACRO_ST_CLEAR ("FetchStatus reply");
3289 fileexp_dissect_storedata_resp
3291 tvb, int offset, packet_info * pinfo, proto_tree * tree, guint8 *drep)
3295 di = pinfo->private_data;
3296 if (di->conformant_run)
3302 [out] afsFetchStatus *OutStatusp,
3303 [out] afsVolSync *Syncp
3307 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_fetchstatus,
3308 NDR_POINTER_REF, "FetchStatus: ", -1);
3311 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_volsync,
3312 NDR_POINTER_REF, "VolSync: ", -1);
3313 MACRO_ST_CLEAR ("StoreData reply");
3318 fileexp_dissect_storeacl_resp
3320 tvb, int offset, packet_info * pinfo, proto_tree * tree, guint8 *drep)
3324 di = pinfo->private_data;
3325 if (di->conformant_run)
3331 [out] afsFetchStatus *OutStatusp,
3332 [out] afsVolSync *Syncp
3336 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_fetchstatus,
3337 NDR_POINTER_REF, "FetchStatus: ", -1);
3340 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_volsync,
3341 NDR_POINTER_REF, "VolSync: ", -1);
3342 MACRO_ST_CLEAR ("StoreAcl reply");
3347 fileexp_dissect_storestatus_resp
3349 tvb, int offset, packet_info * pinfo, proto_tree * tree, guint8 *drep)
3353 di = pinfo->private_data;
3354 if (di->conformant_run)
3360 [out] afsFetchStatus *OutStatusp,
3361 [out] afsVolSync *Syncp
3365 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_fetchstatus,
3366 NDR_POINTER_REF, "FetchStatus: ", -1);
3369 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_volsync,
3370 NDR_POINTER_REF, "VolSync: ", -1);
3371 MACRO_ST_CLEAR ("StoreStatus reply");
3376 fileexp_dissect_removefile_resp
3378 tvb, int offset, packet_info * pinfo, proto_tree * tree, guint8 *drep)
3382 di = pinfo->private_data;
3383 if (di->conformant_run)
3389 [out] afsFetchStatus *OutDirStatusp,
3390 [out] afsFetchStatus *OutFileStatusp,
3391 [out] afsFid *OutFileFidp,
3392 [out] afsVolSync *Syncp
3395 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_fetchstatus,
3396 NDR_POINTER_REF, "FetchStatus: ", -1);
3399 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_fetchstatus,
3400 NDR_POINTER_REF, "FetchStatus: ", -1);
3402 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
3403 NDR_POINTER_REF, "afsFid: ", -1);
3405 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_volsync,
3406 NDR_POINTER_REF, "VolSync: ", -1);
3407 MACRO_ST_CLEAR ("RemoveFile reply");
3412 fileexp_dissect_createfile_resp
3414 tvb, int offset, packet_info * pinfo, proto_tree * tree, guint8 *drep)
3418 di = pinfo->private_data;
3419 if (di->conformant_run)
3425 [out] afsFid *OutFidp,
3426 [out] afsFetchStatus *OutFidStatusp,
3427 [out] afsFetchStatus *OutDirStatusp,
3428 [out] afsToken *OutTokenp,
3429 [out] afsVolSync *Syncp
3434 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
3435 NDR_POINTER_REF, "afsFid: ", -1);
3437 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_fetchstatus,
3438 NDR_POINTER_REF, "FetchStatus: ", -1);
3441 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_fetchstatus,
3442 NDR_POINTER_REF, "FetchStatus: ", -1);
3445 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afstoken,
3446 NDR_POINTER_REF, "afsToken: ", -1);
3448 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_volsync,
3449 NDR_POINTER_REF, "VolSync: ", -1);
3450 MACRO_ST_CLEAR ("CreateFile reply");
3455 fileexp_dissect_rename_resp
3457 tvb, int offset, packet_info * pinfo, proto_tree * tree, guint8 *drep)
3461 di = pinfo->private_data;
3462 if (di->conformant_run)
3468 [out] afsFetchStatus *OutOldDirStatusp,
3469 [out] afsFetchStatus *OutNewDirStatusp,
3470 [out] afsFid *OutOldFileFidp,
3471 [out] afsFetchStatus *OutOldFileStatusp,
3472 [out] afsFid *OutNewFileFidp,
3473 [out] afsFetchStatus *OutNewFileStatusp,
3474 [out] afsVolSync *Syncp
3478 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_fetchstatus,
3479 NDR_POINTER_REF, "FetchStatus: ", -1);
3481 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_fetchstatus,
3482 NDR_POINTER_REF, "FetchStatus: ", -1);
3484 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
3485 NDR_POINTER_REF, "afsFid: ", -1);
3487 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_fetchstatus,
3488 NDR_POINTER_REF, "FetchStatus: ", -1);
3490 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
3491 NDR_POINTER_REF, "afsFid: ", -1);
3494 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_fetchstatus,
3495 NDR_POINTER_REF, "FetchStatus: ", -1);
3498 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_volsync,
3499 NDR_POINTER_REF, "VolSync: ", -1);
3500 MACRO_ST_CLEAR("Rename reply");
3505 fileexp_dissect_symlink_resp
3507 tvb, int offset, packet_info * pinfo, proto_tree * tree, guint8 *drep)
3511 di = pinfo->private_data;
3512 if (di->conformant_run)
3518 [out] afsFid *OutFidp,
3519 [out] afsFetchStatus *OutFidStatusp,
3520 [out] afsFetchStatus *OutDirStatusp,
3521 [out] afsToken *OutTokenp,
3522 [out] afsVolSync *Syncp
3526 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
3527 NDR_POINTER_REF, "afsFid: ", -1);
3529 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_fetchstatus,
3530 NDR_POINTER_REF, "FetchStatus: ", -1);
3532 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_fetchstatus,
3533 NDR_POINTER_REF, "FetchStatus: ", -1);
3535 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afstoken,
3536 NDR_POINTER_REF, "afsToken: ", -1);
3538 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_volsync,
3539 NDR_POINTER_REF, "VolSync: ", -1);
3540 MACRO_ST_CLEAR ("Symlink reply");
3546 fileexp_dissect_hardlink_resp
3548 tvb, int offset, packet_info * pinfo, proto_tree * tree, guint8 *drep)
3552 di = pinfo->private_data;
3553 if (di->conformant_run)
3559 [out] afsFetchStatus *OutFidStatusp,
3560 [out] afsFetchStatus *OutDirStatusp,
3561 [out] afsVolSync *Syncp
3566 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_fetchstatus,
3567 NDR_POINTER_REF, "FetchStatus: ", -1);
3569 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_fetchstatus,
3570 NDR_POINTER_REF, "FetchStatus: ", -1);
3572 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_volsync,
3573 NDR_POINTER_REF, "VolSync: ", -1);
3574 MACRO_ST_CLEAR ("Hardlink reply");
3579 fileexp_dissect_hardlink_rqst
3581 tvb, int offset, packet_info * pinfo, proto_tree * tree, guint8 *drep)
3585 di = pinfo->private_data;
3586 if (di->conformant_run)
3592 [in] afsFid *DirFidp,
3593 [in] afsTaggedName *Namep,
3594 [in] afsFid *ExistingFidp,
3595 [in] afsHyper *minVVp,
3596 [in] unsigned32 Flags,
3601 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
3602 NDR_POINTER_REF, "afsFid: ", -1);
3605 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep,
3606 dissect_afstaggedname, NDR_POINTER_REF,
3607 "afsTaggedName: ", -1);
3610 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
3611 NDR_POINTER_REF, "afsFid: ", -1);
3614 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_minvvp,
3615 NDR_POINTER_REF, "MinVVp:", -1);
3617 offset = dissect_afsFlags ( tvb, offset, pinfo, tree, drep);
3623 fileexp_dissect_makedir_resp
3625 tvb, int offset, packet_info * pinfo, proto_tree * tree, guint8 *drep)
3629 di = pinfo->private_data;
3630 if (di->conformant_run)
3636 [out] afsFid *OutFidp,
3637 [out] afsFetchStatus *OutFidStatusp,
3638 [out] afsFetchStatus *OutDirStatusp,
3639 [out] afsToken *OutTokenp,
3640 [out] afsVolSync *Syncp
3643 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
3644 NDR_POINTER_REF, "afsFid: ", -1);
3646 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_fetchstatus,
3647 NDR_POINTER_REF, "FetchStatus: ", -1);
3649 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_fetchstatus,
3650 NDR_POINTER_REF, "FetchStatus: ", -1);
3652 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afstoken,
3653 NDR_POINTER_REF, "afsToken: ", -1);
3655 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_volsync,
3656 NDR_POINTER_REF, "VolSync: ", -1);
3658 MACRO_ST_CLEAR ("MakeDir reply");
3664 fileexp_dissect_removedir_resp
3666 tvb, int offset, packet_info * pinfo, proto_tree * tree, guint8 *drep)
3670 di = pinfo->private_data;
3671 if (di->conformant_run)
3677 [out] afsFetchStatus *OutDirStatusp,
3678 [out] afsFid *OutFidp,
3679 [out] afsFetchStatus *OutDelStatusp,
3680 [out] afsVolSync *Syncp
3684 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_fetchstatus,
3685 NDR_POINTER_REF, "FetchStatus: ", -1);
3687 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
3688 NDR_POINTER_REF, "afsFid: ", -1);
3690 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_fetchstatus,
3691 NDR_POINTER_REF, "FetchStatus: ", -1);
3693 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_volsync,
3694 NDR_POINTER_REF, "VolSync: ", -1);
3695 MACRO_ST_CLEAR ("RemoveDir reply");
3702 fileexp_dissect_readdir_resp
3704 tvb, int offset, packet_info * pinfo, proto_tree * tree, guint8 *drep)
3707 guint32 nextoffsetp_high, nextoffsetp_low;
3710 di = pinfo->private_data;
3711 if (di->conformant_run)
3718 [out] afsHyper *NextOffsetp,
3719 [out] afsFetchStatus *OutDirStatusp,
3720 [out] afsToken *OutTokenp,
3721 [out] afsVolSync *Syncp,
3722 [out] pipe_t *dirStream
3726 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
3727 hf_fileexp_nextoffsetp_high, &nextoffsetp_high);
3729 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
3730 hf_fileexp_nextoffsetp_low, &nextoffsetp_low);
3732 if (check_col (pinfo->cinfo, COL_INFO))
3733 col_append_fstr (pinfo->cinfo, COL_INFO, " NextOffsetp:%u/%u",
3734 nextoffsetp_high, nextoffsetp_low);
3736 /* all packets seem to have SKIPTOKEN/SKIPSTATUS sent, and thus these structures are missing on calls holding tokens. */
3739 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_volsync,
3740 NDR_POINTER_REF, "VolSync: ", -1);
3741 /* XXX need to add pipe_t here, once figured out. */
3747 fileexp_dissect_releasetokens_resp
3749 tvb, int offset, packet_info * pinfo, proto_tree * tree, guint8 *drep)
3753 di = pinfo->private_data;
3754 if (di->conformant_run)
3760 MACRO_ST_CLEAR ("ReleaseTokens reply");
3765 fileexp_dissect_releasetokens_rqst
3767 tvb, int offset, packet_info * pinfo, proto_tree * tree, guint8 *drep)
3771 di = pinfo->private_data;
3772 if (di->conformant_run)
3779 [in] afsReturns *Tokens_Arrayp,
3780 [in] unsigned32 Flags
3783 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsReturns,
3784 NDR_POINTER_REF, "afsReturns: ", -1);
3786 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFlags,
3787 NDR_POINTER_REF, "afsFlags: ", -1);
3792 fileexp_dissect_gettime_resp
3794 tvb, int offset, packet_info * pinfo, proto_tree * tree, guint8 *drep)
3797 guint32 secondsp, usecondsp, syncdistance, syncdispersion;
3800 di = pinfo->private_data;
3801 if (di->conformant_run)
3807 [out] unsigned32 *Secondsp,
3808 [out] unsigned32 *USecondsp,
3809 [out] unsigned32 *SyncDistance,
3810 [out] unsigned32 *SyncDispersion
3814 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
3815 hf_fileexp_gettime_secondsp, &secondsp);
3817 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
3818 hf_fileexp_gettime_usecondsp, &usecondsp);
3820 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
3821 hf_fileexp_gettime_syncdistance, &syncdistance);
3823 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
3824 hf_fileexp_gettime_syncdispersion, &syncdispersion);
3826 if (check_col (pinfo->cinfo, COL_INFO)) col_append_fstr (pinfo->cinfo, COL_INFO, " Secondsp:%u Usecondsp:%u SyncDistance:/%u SyncDispersion:%u", secondsp, usecondsp, syncdistance, syncdispersion);
3828 MACRO_ST_CLEAR ("GetTime reply");
3835 fileexp_dissect_gettime_rqst
3837 tvb _U_, int offset, packet_info * pinfo, proto_tree * tree _U_, guint8 *drep _U_)
3841 di = pinfo->private_data;
3842 if (di->conformant_run)
3853 fileexp_dissect_processquota_resp
3855 tvb, int offset, packet_info * pinfo, proto_tree * tree, guint8 *drep)
3859 di = pinfo->private_data;
3860 if (di->conformant_run)
3866 [in,out] afsQuota *quotaListp,
3867 [out] afsFetchStatus *OutStatusp,
3868 [out] afsVolSync *Syncp
3871 /* XXX need afsQuota */
3874 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_fetchstatus,
3875 NDR_POINTER_REF, "FetchStatus: ", -1);
3877 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_volsync,
3878 NDR_POINTER_REF, "VolSync: ", -1);
3879 MACRO_ST_CLEAR ("ProcessQuota reply");
3885 fileexp_dissect_processquota_rqst
3887 tvb, int offset, packet_info * pinfo, proto_tree * tree, guint8 *drep)
3891 di = pinfo->private_data;
3892 if (di->conformant_run)
3899 [in] afsHyper *minVVp,
3900 [in] unsigned32 Flags,
3901 [in,out] afsQuota *quotaListp,
3906 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
3907 NDR_POINTER_REF, "afsFid: ", -1);
3909 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_minvvp,
3910 NDR_POINTER_REF, "MinVVp:", -1);
3911 offset = dissect_afsFlags ( tvb, offset, pinfo, tree, drep);
3913 /* XXX need to figure out afsQuota here */
3918 fileexp_dissect_getserverinterfaces_rqst
3920 tvb _U_, int offset, packet_info * pinfo, proto_tree * tree _U_, guint8 *drep _U_)
3924 di = pinfo->private_data;
3925 if (di->conformant_run)
3931 [in, out] dfs_interfaceList *serverInterfacesP
3933 /* XXX figure out dfs_interfacelist */
3938 fileexp_dissect_getserverinterfaces_resp
3940 tvb, int offset, packet_info * pinfo, proto_tree * tree, guint8 *drep)
3944 di = pinfo->private_data;
3945 if (di->conformant_run)
3951 [in, out] dfs_interfaceList *serverInterfacesP
3953 /* XXX figure out dfs_interfacelist */
3955 MACRO_ST_CLEAR ("GetServerInterfaces reply");
3960 fileexp_dissect_setparams_rqst
3962 tvb, int offset, packet_info * pinfo, proto_tree * tree, guint8 *drep)
3966 di = pinfo->private_data;
3967 if (di->conformant_run)
3973 [in] unsigned32 Flags,
3974 [in, out] afsConnParams *paramsP
3976 offset = dissect_afsFlags( tvb, offset, pinfo, tree, drep);
3978 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep,
3979 dissect_afsConnParams, NDR_POINTER_REF,
3980 "afsConnParams:", -1);
3985 fileexp_dissect_setparams_resp
3987 tvb, int offset, packet_info * pinfo, proto_tree * tree, guint8 *drep)
3991 di = pinfo->private_data;
3992 if (di->conformant_run)
3998 [in, out] afsConnParams *paramsP
4002 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep,
4003 dissect_afsConnParams, NDR_POINTER_REF,
4004 "afsConnParams:", -1);
4005 MACRO_ST_CLEAR ("SetParams reply");
4010 fileexp_dissect_makemountpoint_resp
4012 tvb, int offset, packet_info * pinfo, proto_tree * tree, guint8 *drep)
4016 di = pinfo->private_data;
4017 if (di->conformant_run)
4023 [out] afsFid *OutFidp,
4024 [out] afsFetchStatus *OutFidStatusp,
4025 [out] afsFetchStatus *OutDirStatusp,
4026 [out] afsVolSync *Syncp
4030 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
4031 NDR_POINTER_REF, "afsFid: ", -1);
4033 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_fetchstatus,
4034 NDR_POINTER_REF, "FetchStatus: ", -1);
4036 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_fetchstatus,
4037 NDR_POINTER_REF, "FetchStatus: ", -1);
4040 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_volsync,
4041 NDR_POINTER_REF, "VolSync: ", -1);
4042 MACRO_ST_CLEAR ("MakeMountPoint reply");
4047 fileexp_dissect_getstatistics_rqst
4049 tvb _U_, int offset, packet_info * pinfo, proto_tree * tree _U_, guint8 *drep _U_)
4053 di = pinfo->private_data;
4054 if (di->conformant_run)
4059 /* nothing for request */
4064 fileexp_dissect_getstatistics_resp
4066 tvb _U_, int offset, packet_info * pinfo, proto_tree * tree _U_, guint8 *drep _U_)
4070 di = pinfo->private_data;
4071 if (di->conformant_run)
4077 [out] afsStatistics *Statisticsp
4079 /* XXX figure out afsStatistics */
4084 fileexp_dissect_bulkfetchvv_rqst
4086 tvb, int offset, packet_info * pinfo, proto_tree * tree, guint8 *drep)
4089 guint32 cellidp_high, cellidp_low, numvols, spare1, spare2;
4092 di = pinfo->private_data;
4093 if (di->conformant_run)
4099 [in] afsHyper *cellIdp,
4100 [in] afsBulkVolIDs *VolIDsp,
4101 [in] unsigned32 NumVols,
4102 [in] unsigned32 Flags,
4103 [in] unsigned32 spare1,
4104 [in] unsigned32 spare2,
4107 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
4108 hf_fileexp_cellidp_high, &cellidp_high);
4110 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
4111 hf_fileexp_cellidp_low, &cellidp_low);
4113 if (check_col (pinfo->cinfo, COL_INFO))
4114 col_append_fstr (pinfo->cinfo, COL_INFO, " CellIDp:%u/%u", cellidp_high,
4117 /* XXX figure out the afsBulkVolIDS */
4119 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
4120 hf_fileexp_bulkfetchvv_numvols, &numvols);
4122 offset = dissect_afsFlags (tvb, offset, pinfo, tree, drep);
4124 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
4125 hf_fileexp_bulkfetchvv_spare1, &spare1);
4127 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
4128 hf_fileexp_bulkfetchvv_spare2, &spare2);
4133 fileexp_dissect_bulkfetchvv_resp
4135 tvb _U_, int offset, packet_info * pinfo, proto_tree * tree _U_, guint8 *drep _U_)
4139 di = pinfo->private_data;
4140 if (di->conformant_run)
4146 [out] afsBulkVVs *VolVVsp,
4147 [out] unsigned32 *spare4
4149 /* XXX need to figure out afsBulkVVs ; */
4154 fileexp_dissect_bulkkeepalive_resp
4156 tvb, int offset, packet_info * pinfo, proto_tree * tree, guint8 *drep)
4161 di = pinfo->private_data;
4162 if (di->conformant_run)
4168 [out] unsigned32 *spare4
4172 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
4173 hf_fileexp_bulkkeepalive_spare4, &spare4);
4174 MACRO_ST_CLEAR ("BulkKeepAlive reply");
4179 fileexp_dissect_bulkkeepalive_rqst
4181 tvb, int offset, packet_info * pinfo, proto_tree * tree, guint8 *drep)
4183 guint32 numexecfids, spare1, spare2;
4186 di = pinfo->private_data;
4187 if (di->conformant_run)
4193 [in] afsBulkFEX *KAFEXp,
4194 [in] unsigned32 numExecFids,
4195 [in] unsigned32 Flags,
4196 [in] unsigned32 spare1,
4197 [in] unsigned32 spare2,
4199 /* XXX figure out afsBulkFEX */
4201 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
4202 hf_fileexp_bulkkeepalive_numexecfids, &numexecfids);
4204 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFlags,
4205 NDR_POINTER_REF, "afsFlags:", -1);
4207 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
4208 hf_fileexp_bulkkeepalive_spare1, &spare1);
4210 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
4211 hf_fileexp_bulkkeepalive_spare2, &spare2);
4216 fileexp_dissect_bulkfetchstatus_rqst
4218 tvb, int offset, packet_info * pinfo, proto_tree * tree, guint8 *drep)
4220 guint32 offsetp_high, offsetp_low, size;
4223 di = pinfo->private_data;
4224 if (di->conformant_run)
4231 [in] afsFid *DirFidp,
4232 [in] afsHyper *Offsetp,
4233 [in] unsigned32 Size,
4234 [in] afsHyper *minVVp,
4235 [in] unsigned32 Flags,
4239 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
4240 NDR_POINTER_REF, "afsFid: ", -1);
4242 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
4243 hf_fileexp_offsetp_high, &offsetp_high);
4245 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
4246 hf_fileexp_offsetp_low, &offsetp_low);
4248 if (check_col (pinfo->cinfo, COL_INFO))
4249 col_append_fstr (pinfo->cinfo, COL_INFO, " Offsetp:%u/%u", offsetp_high,
4252 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
4253 hf_fileexp_bulkfetchstatus_size, &size);
4255 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_minvvp,
4256 NDR_POINTER_REF, "MinVVp:", -1);
4257 offset = dissect_afsFlags(tvb, offset, pinfo, tree, drep);
4263 fileexp_dissect_bulkfetchstatus_resp
4265 tvb, int offset, packet_info * pinfo, proto_tree * tree, guint8 *drep)
4270 di = pinfo->private_data;
4271 if (di->conformant_run)
4277 [out] BulkStat *bulkstats,
4278 [out] afsHyper *NextOffsetp,
4279 [out] afsFetchStatus *OutDirStatusp,
4280 [out] afsToken *OutTokenp,
4281 [out] afsVolSync *Syncp,
4282 [out] pipe_t *dirStream
4286 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsBulkStat,
4287 NDR_POINTER_REF, "BulkStat: ", -1);
4288 /* Under construction. The packet seems to have the pipe_t before the rest of the data listed in idl. */
4292 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
4293 hf_fileexp_nextoffsetp_high, &nextoffsetp_high);
4295 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
4296 hf_fileexp_nextoffsetp_low, &nextoffsetp_low);
4298 if (check_col (pinfo->cinfo, COL_INFO))
4299 col_append_fstr (pinfo->cinfo, COL_INFO, " NextOffsetp:%u/%u",
4300 nextoffsetp_high, nextoffsetp_low);
4302 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_fetchstatus,
4303 NDR_POINTER_REF, "FetchStatus: ", -1);
4305 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afstoken,
4306 NDR_POINTER_REF, "afsToken: ", -1);
4308 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_volsync,
4309 NDR_POINTER_REF, "VolSync: ", -1);
4311 /* XXX figure out pipe_t */
4316 static dcerpc_sub_dissector fileexp_dissectors[] = {
4317 { 0, "SetContext", fileexp_dissect_setcontext_rqst, fileexp_dissect_setcontext_resp} ,
4318 { 1, "LookupRoot", fileexp_dissect_lookuproot_rqst, fileexp_dissect_lookuproot_resp} ,
4319 { 2, "FetchData", fileexp_dissect_fetchdata_rqst, fileexp_dissect_fetchdata_resp} ,
4320 { 3, "FetchAcl", fileexp_dissect_fetchacl_rqst, fileexp_dissect_fetchacl_resp} ,
4321 { 4, "FetchStatus", fileexp_dissect_fetchstatus_rqst, fileexp_dissect_fetchstatus_resp} ,
4322 { 5, "StoreData", fileexp_dissect_storedata_rqst, fileexp_dissect_storedata_resp} ,
4323 { 6, "StoreAcl", fileexp_dissect_storeacl_rqst, fileexp_dissect_storeacl_resp} ,
4324 { 7, "StoreStatus", fileexp_dissect_storestatus_rqst, fileexp_dissect_storestatus_resp} ,
4325 { 8, "RemoveFile", fileexp_dissect_removefile_rqst, fileexp_dissect_removefile_resp} ,
4326 { 9, "CreateFile", fileexp_dissect_createfile_rqst, fileexp_dissect_createfile_resp} ,
4327 { 10, "Rename", fileexp_dissect_rename_rqst, fileexp_dissect_rename_resp} ,
4328 { 11, "Symlink", fileexp_dissect_symlink_rqst, fileexp_dissect_symlink_resp} ,
4329 { 12, "HardLink", fileexp_dissect_hardlink_rqst, fileexp_dissect_hardlink_resp} ,
4330 { 13, "MakeDir", fileexp_dissect_makedir_rqst, fileexp_dissect_makedir_resp} ,
4331 { 14, "RemoveDir", fileexp_dissect_removedir_rqst, fileexp_dissect_removedir_resp} ,
4332 { 15, "Readdir", fileexp_dissect_readdir_rqst, fileexp_dissect_readdir_resp} ,
4333 { 16, "Lookup", fileexp_dissect_lookup_rqst, fileexp_dissect_lookup_resp} ,
4334 { 17, "GetToken", fileexp_dissect_gettoken_rqst, fileexp_dissect_gettoken_resp} ,
4335 { 18, "ReleaseTokens", fileexp_dissect_releasetokens_rqst, fileexp_dissect_releasetokens_resp} ,
4336 { 19, "GetTime", fileexp_dissect_gettime_rqst, fileexp_dissect_gettime_resp} ,
4337 { 20, "MakeMountPoint", fileexp_dissect_makemountpoint_rqst, fileexp_dissect_makemountpoint_resp} ,
4338 { 21, "GetStatistics", fileexp_dissect_getstatistics_rqst, fileexp_dissect_getstatistics_resp} ,
4339 { 22, "BulkFetchVV", fileexp_dissect_bulkfetchvv_rqst, fileexp_dissect_bulkfetchvv_resp} ,
4340 { 23, "BulkKeepAlive", fileexp_dissect_bulkkeepalive_rqst, fileexp_dissect_bulkkeepalive_resp} ,
4341 { 24, "ProcessQuota", fileexp_dissect_processquota_rqst, fileexp_dissect_processquota_resp} ,
4342 { 25, "GetServerInterfaces", fileexp_dissect_getserverinterfaces_rqst, fileexp_dissect_getserverinterfaces_resp} ,
4343 { 26, "SetParams", fileexp_dissect_setparams_rqst, fileexp_dissect_setparams_resp} ,
4344 { 27, "BulkFetchStatus", fileexp_dissect_bulkfetchstatus_rqst, fileexp_dissect_bulkfetchstatus_resp} ,
4345 { 0, NULL, NULL, NULL}
4349 proto_register_fileexp (void)
4353 static hf_register_info hf[] = {
4354 { &hf_error_st, {"AFS4Int Error Status Code", "fileexp.st", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL}},
4355 { &hf_fileexp_flags, {"DFS Flags", "fileexp.flags", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL}},
4356 { &hf_fileexp_tn_string, {"String", "fileexp.string", FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL}},
4357 { &hf_fileexp_tn_size, {"String Size", "fileexp.tn_size", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL}},
4358 { &hf_fileexp_opnum, {"Operation", "fileexp.opnum", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL}},
4359 { &hf_fileexp_setcontext_rqst_epochtime, {"EpochTime:", "fileexp.setcontext_rqst_epochtime", FT_ABSOLUTE_TIME, BASE_NONE, NULL, 0x0, NULL, HFILL}},
4360 { &hf_fileexp_setcontext_rqst_secobjectid, { "SetObjectid:", "fileexp.setcontext_secobjextid", FT_STRING, BASE_NONE, NULL, 0x0, "UUID", HFILL} } ,
4361 { &hf_fileexp_setcontext_rqst_clientsizesattrs, { "ClientSizeAttrs:", "fileexp.setcontext_clientsizesattrs", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4362 { &hf_fileexp_setcontext_rqst_parm7, { "Parm7:", "fileexp.setcontext.parm7", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4363 { &hf_fileexp_acl_len, {"Acl Length", "fileexp.acl_len", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL}},
4364 { &hf_fileexp_acltype, {"fileexp.acltype", "fileexp.acltype", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL}},
4365 { &hf_fileexp_minvvp_high, {"fileexp.minvvp_high", "fileexp.minvvp_high", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL}},
4366 { &hf_fileexp_minvvp_low, {"fileexp.minvvp_low", "fileexp.minvvp_low", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL}},
4367 { &hf_fileexp_volume_low, { "fileexp.volume_low", "fileexp.volume_low", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4368 { &hf_fileexp_volume_high, { "fileexp.volume_high", "fileexp.volume_high", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4369 { &hf_fileexp_vnode, { "fileexp.vnode", "fileexp.vnode", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4370 { &hf_fileexp_unique, { "fileexp.unique", "fileexp.unique", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4371 { &hf_fileexp_accesstime_msec, { "fileexp.accesstime_msec", "fileexp.accesstime_msec", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4372 { &hf_fileexp_accesstime_sec, { "fileexp.accesstime_sec", "fileexp.accesstime_sec", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4373 { &hf_fileexp_aclexpirationtime, { "fileexp.aclexpirationtime", "fileexp.aclexpirationtime", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4374 { &hf_fileexp_agtypeunique, { "fileexp.agtypeunique", "fileexp.agtypeunique", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4375 { &hf_fileexp_anonymousaccess, { "fileexp.anonymousaccess", "fileexp.anonymousaccess", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4376 { &hf_fileexp_author, { "fileexp.author", "fileexp.author", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4377 { &hf_fileexp_blocksused, { "fileexp.blocksused", "fileexp.blocksused", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} },
4378 { &hf_fileexp_calleraccess, { "fileexp.calleraccess", "fileexp.calleraccess", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4379 { &hf_fileexp_changetime_msec, { "fileexp.changetime_msec", "fileexp.changetime_msec", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4380 { &hf_fileexp_changetime_sec, { "fileexp.changetime_sec", "fileexp.changetime_sec", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4381 { &hf_fileexp_clientspare1, { "fileexp.clientspare1", "fileexp.clientspare1", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4382 { &hf_fileexp_dataversion_high, { "fileexp.dataversion_high", "fileexp.dataversion_high", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4383 { &hf_fileexp_dataversion_low, { "fileexp.dataversion_low", "fileexp.dataversion_low", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4384 { &hf_fileexp_devicenumber, { "fileexp.devicenumber", "fileexp.devicenumber", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4385 { &hf_fileexp_devicenumberhighbits, { "fileexp.devicenumberhighbits", "fileexp.devicenumberhighbits", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4386 { &hf_fileexp_filetype, { "fileexp.filetype", "fileexp.filetype", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4387 { &hf_fileexp_group, { "fileexp.group", "fileexp.group", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4388 { &hf_fileexp_himaxspare, { "fileexp.himaxspare", "fileexp.himaxspare", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4389 { &hf_fileexp_interfaceversion, { "fileexp.interfaceversion", "fileexp.interfaceversion", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4390 { &hf_fileexp_length_high, { "fileexp.length_high", "fileexp.length_high", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4391 { &hf_fileexp_length_low, { "fileexp.length_low", "fileexp.length_low", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4392 { &hf_fileexp_linkcount, { "fileexp.linkcount", "fileexp.linkcount", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4393 { &hf_fileexp_lomaxspare, { "fileexp.lomaxspare", "fileexp.lomaxspare", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4394 { &hf_fileexp_mode, { "fileexp.mode", "fileexp.mode", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4395 { &hf_fileexp_modtime_msec, { "fileexp.modtime_msec", "fileexp.modtime_msec", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4396 { &hf_fileexp_modtime_sec, { "fileexp.modtime_sec", "fileexp.modtime_sec", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4397 { &hf_fileexp_objectuuid, { "fileexp.objectuuid", "fileexp.objectuuid", FT_GUID, BASE_NONE, NULL, 0x0, "UUID", HFILL} } ,
4398 { &hf_fileexp_owner, { "fileexp.owner", "fileexp.owner", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4399 { &hf_fileexp_parentunique, { "fileexp.parentunique", "fileexp.parentunique", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4400 { &hf_fileexp_parentvnode, { "fileexp.parentvnode", "fileexp.parentvnode", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4401 { &hf_fileexp_pathconfspare, { "fileexp.pathconfspare", "fileexp.pathconfspare", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4402 { &hf_fileexp_servermodtime_msec, { "fileexp.servermodtime_msec", "fileexp.servermodtime_msec", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4403 { &hf_fileexp_servermodtime_sec, { "fileexp.servermodtime_sec", "fileexp.servermodtime_sec", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4404 { &hf_fileexp_spare4, { "fileexp.spare4", "fileexp.spare4", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4405 { &hf_fileexp_spare5, { "fileexp.spare5", "fileexp.spare5", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4406 { &hf_fileexp_spare6, { "fileexp.spare6", "fileexp.spare6", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4407 { &hf_fileexp_typeuuid, { "fileexp.typeuuid", "fileexp.typeuuid", FT_GUID, BASE_NONE, NULL, 0x0, "UUID", HFILL} } ,
4408 { &hf_fileexp_volid_hi, { "fileexp.volid_hi", "fileexp.volid_hi", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4409 { &hf_fileexp_volid_low, { "fileexp.volid_low", "fileexp.volid_low", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4410 { &hf_fileexp_vvage, { "fileexp.vvage", "fileexp.vvage", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4411 { &hf_fileexp_vv_hi, { "fileexp.vv_hi", "fileexp.vv_hi", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4412 { &hf_fileexp_vv_low, { "fileexp.vv_low", "fileexp.vv_low", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4413 { &hf_fileexp_vvpingage, { "fileexp.vvpingage", "fileexp.vvpingage", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4414 { &hf_fileexp_vvspare1, { "fileexp.vvspare1", "fileexp.vvspare1", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4415 { &hf_fileexp_vvspare2, { "fileexp.vvspare2", "fileexp.vvspare2", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4416 { &hf_fileexp_beginrange, { "fileexp.beginrange", "fileexp.beginrange", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4417 { &hf_fileexp_beginrangeext, { "fileexp.beginrangeext", "fileexp.beginrangeext", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4418 { &hf_fileexp_endrange, { "fileexp.endrange", "fileexp.endrange", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4419 { &hf_fileexp_endrangeext, { "fileexp.endrangeext", "fileexp.endrangeext", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4420 { &hf_fileexp_expirationtime, { "fileexp.expirationtime", "fileexp.expirationtime", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4421 { &hf_fileexp_tokenid_hi, { "fileexp.tokenid_hi", "fileexp.tokenid_hi", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4422 { &hf_fileexp_tokenid_low, { "fileexp.tokenid_low", "fileexp.tokenid_low", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4423 { &hf_fileexp_type_hi, { "fileexp.type_hi", "fileexp.type_hi", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4424 { &hf_fileexp_type_low, { "fileexp.type_low", "fileexp.type_low", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4425 { &hf_fileexp_tn_length, { "fileexp.tn_length", "fileexp.tn_length", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4426 { &hf_fileexp_tn_tag, { "fileexp.tn_tag", "fileexp.tn_tag", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4427 { &hf_fileexp_storestatus_accesstime_sec, { "fileexp.storestatus_accesstime_sec", "fileexp.storestatus_accesstime_sec", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4428 { &hf_fileexp_storestatus_accesstime_usec, { "fileexp.storestatus_accesstime_usec", "fileexp.storestatus_accesstime_usec", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4429 { &hf_fileexp_storestatus_changetime_sec, { "fileexp.storestatus_changetime_sec", "fileexp.storestatus_changetime_sec", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4430 { &hf_fileexp_storestatus_changetime_usec, { "fileexp.storestatus_changetime_usec", "fileexp.storestatus_changetime_usec", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4431 { &hf_fileexp_storestatus_clientspare1, { "fileexp.storestatus_clientspare1", "fileexp.storestatus_clientspare1", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4432 { &hf_fileexp_storestatus_cmask, { "fileexp.storestatus_cmask", "fileexp.storestatus_cmask", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4433 { &hf_fileexp_storestatus_devicenumber, { "fileexp.storestatus_devicenumber", "fileexp.storestatus_devicenumber", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4434 { &hf_fileexp_storestatus_devicenumberhighbits, { "fileexp.storestatus_devicenumberhighbits", "fileexp.storestatus_devicenumberhighbits", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4435 { &hf_fileexp_storestatus_devicetype, { "fileexp.storestatus_devicetype", "fileexp.storestatus_devicetype", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4436 { &hf_fileexp_storestatus_group, { "fileexp.storestatus_group", "fileexp.storestatus_group", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4437 { &hf_fileexp_storestatus_length_high, { "fileexp.storestatus_length_high", "fileexp.storestatus_length_high", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4438 { &hf_fileexp_storestatus_length_low, { "fileexp.storestatus_length_low", "fileexp.storestatus_length_low", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4439 { &hf_fileexp_storestatus_mask, { "fileexp.storestatus_mask", "fileexp.storestatus_mask", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4440 { &hf_fileexp_storestatus_mode, { "fileexp.storestatus_mode", "fileexp.storestatus_mode", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4441 { &hf_fileexp_storestatus_modtime_sec, { "fileexp.storestatus_modtime_sec", "fileexp.storestatus_modtime_sec", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4442 { &hf_fileexp_storestatus_modtime_usec, { "fileexp.storestatus_modtime_usec", "fileexp.storestatus_modtime_usec", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4443 { &hf_fileexp_storestatus_owner, { "fileexp.storestatus_owner", "fileexp.storestatus_owner", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4444 { &hf_fileexp_storestatus_spare1, { "fileexp.storestatus_spare1", "fileexp.storestatus_spare1", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4445 { &hf_fileexp_storestatus_spare2, { "fileexp.storestatus_spare2", "fileexp.storestatus_spare2", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4446 { &hf_fileexp_storestatus_spare3, { "fileexp.storestatus_spare3", "fileexp.storestatus_spare3", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4447 { &hf_fileexp_storestatus_spare4, { "fileexp.storestatus_spare4", "fileexp.storestatus_spare4", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4448 { &hf_fileexp_storestatus_spare5, { "fileexp.storestatus_spare5", "fileexp.storestatus_spare5", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4449 { &hf_fileexp_storestatus_spare6, { "fileexp.storestatus_spare6", "fileexp.storestatus_spare6", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4450 { &hf_fileexp_storestatus_trunc_high, { "fileexp.storestatus_trunc_high", "fileexp.storestatus_trunc_high", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4451 { &hf_fileexp_storestatus_trunc_low, { "fileexp.storestatus_trunc_low", "fileexp.storestatus_trunc_low", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4452 { &hf_fileexp_storestatus_typeuuid, { "fileexp.storestatus_typeuuid", "fileexp.storestatus_typeuuid", FT_GUID, BASE_NONE, NULL, 0x0, "UUID", HFILL} } ,
4453 { &hf_fileexp_st, { "fileexp.st", "fileexp.st", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4454 { &hf_fileexp_uint, {"fileexp.uint", "fileexp.uint", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL}},
4455 { &hf_fileexp_l_end_pos, { "fileexp.l_end_pos", "fileexp.l_end_pos", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4456 { &hf_fileexp_l_end_pos_ext, { "fileexp.l_end_pos_ext", "fileexp.l_end_pos_ext", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4457 { &hf_fileexp_l_fstype, { "fileexp.l_fstype", "fileexp.l_fstype", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4458 { &hf_fileexp_l_pid, { "fileexp.l_pid", "fileexp.l_pid", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4459 { &hf_fileexp_l_start_pos, { "fileexp.l_start_pos", "fileexp.l_start_pos", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4460 { &hf_fileexp_l_start_pos_ext, { "fileexp.l_start_pos_ext", "fileexp.l_start_pos_ext", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4461 { &hf_fileexp_l_sysid, { "fileexp.l_sysid", "fileexp.l_sysid", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4462 { &hf_fileexp_l_type, { "fileexp.l_type", "fileexp.l_type", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4463 { &hf_fileexp_l_whence, { "fileexp.l_whence", "fileexp.l_whence", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4464 {&hf_afsconnparams_mask,
4465 {"hf_afsconnparams_mask", "hf_afsconnparams_mask",
4466 FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL}},
4467 {&hf_afsconnparams_values,
4468 {"hf_afsconnparams_values", "hf_afsconnparams_values",
4469 FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL}},
4470 {&hf_fileexp_afsFid_cell_high,
4471 {"Cell High", "fileexp.afsFid.cell_high", FT_UINT32, BASE_HEX, NULL, 0x0,
4472 "afsFid Cell High", HFILL}},
4473 {&hf_fileexp_afsFid_cell_low,
4474 {"Cell Low", "fileexp.afsFid.cell_low", FT_UINT32, BASE_HEX, NULL, 0x0,
4475 "afsFid Cell Low", HFILL}},
4476 {&hf_fileexp_afsFid_volume_high,
4477 {"Volume High", "fileexp.afsFid.volume_high", FT_UINT32, BASE_HEX, NULL,
4478 0x0, "afsFid Volume High", HFILL}},
4479 {&hf_fileexp_afsFid_volume_low,
4480 {"Volume Low", "fileexp.afsFid.volume_low", FT_UINT32, BASE_HEX, NULL,
4481 0x0, "afsFid Volume Low", HFILL}},
4482 {&hf_fileexp_afsFid_Vnode,
4483 {"Vnode", "fileexp.afsFid.Vnode", FT_UINT32, BASE_HEX, NULL, 0x0,
4484 "afsFid Vnode", HFILL}},
4485 {&hf_fileexp_afsFid_Unique,
4486 {"Unique", "fileexp.afsFid.Unique", FT_UINT32, BASE_HEX, NULL, 0x0,
4487 "afsFid Unique", HFILL}},
4488 {&hf_fileexp_afsNetAddr_type,
4489 {"Type", "afsNetAddr.type", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL}},
4490 {&hf_fileexp_afsNetAddr_data,
4491 {"IP Data", "afsNetAddr.data", FT_UINT8, BASE_DEC, NULL, 0x0, NULL,
4493 {&hf_fileexp_position_high,
4494 {"Position High", "fileexp.position_high", FT_UINT32, BASE_HEX, NULL,
4496 {&hf_fileexp_position_low,
4497 {"Position Low", "fileexp.position_low", FT_UINT32, BASE_HEX, NULL, 0x0,
4499 {&hf_fileexp_afsreturndesc_tokenid_high,
4500 {"Tokenid High", "fileexp.afsreturndesc_tokenid_high", FT_UINT32,
4501 BASE_HEX, NULL, 0x0, NULL, HFILL}},
4502 {&hf_fileexp_afsreturndesc_tokenid_low,
4503 {"Tokenid low", "fileexp.afsreturndesc_tokenid_low", FT_UINT32, BASE_HEX,
4504 NULL, 0x0, NULL, HFILL}},
4505 {&hf_fileexp_afsreturndesc_type_high,
4506 {"Type high", "fileexp.type_high", FT_UINT32, BASE_HEX, NULL, 0x0, NULL,
4508 {&hf_fileexp_afsreturndesc_type_low,
4509 {"Type low", "fileexp.type_low", FT_UINT32, BASE_HEX, NULL, 0x0, NULL,
4511 {&hf_fileexp_offsetp_high,
4512 {"offset high", "fileexp.offset_high", FT_UINT32, BASE_HEX, NULL, 0x0,
4514 {&hf_fileexp_offsetp_low,
4515 {"offset high", "fileexp.offset_high", FT_UINT32, BASE_HEX, NULL, 0x0,
4517 {&hf_fileexp_nextoffsetp_high,
4518 {"next offset high", "fileexp.nextoffset_high", FT_UINT32, BASE_HEX,
4519 NULL, 0x0, NULL, HFILL}},
4520 {&hf_fileexp_nextoffsetp_low,
4521 {"next offset low", "fileexp.nextoffset_low", FT_UINT32, BASE_HEX, NULL,
4523 {&hf_fileexp_returntokenidp_high,
4524 {"return token idp high", "fileexp.returntokenidp_high", FT_UINT32,
4525 BASE_HEX, NULL, 0x0, NULL, HFILL}},
4526 {&hf_fileexp_returntokenidp_low,
4527 {"return token idp low", "fileexp.returntokenidp_low", FT_UINT32,
4528 BASE_HEX, NULL, 0x0, NULL, HFILL}},
4529 {&hf_fileexp_cellidp_high,
4530 {"cellidp high", "fileexp.cellidp_high", FT_UINT32, BASE_HEX, NULL, 0x0,
4532 {&hf_fileexp_cellidp_low,
4533 {"cellidp low", "fileexp.cellidp_low", FT_UINT32, BASE_HEX, NULL, 0x0,
4535 {&hf_afserrorstatus_st,
4536 {"AFS Error Code", "fileexp.afserrortstatus_st", FT_UINT32, BASE_HEX,
4537 NULL, 0x0, NULL, HFILL}},
4538 {&hf_fileexp_length,
4539 {"Length", "fileexp.length", FT_UINT32, BASE_HEX,
4540 NULL, 0x0, NULL, HFILL}},
4541 {&hf_fileexp_afsTaggedPath_tp_chars,
4542 {"AFS Tagged Path", "fileexp.TaggedPath_tp_chars", FT_STRING, BASE_NONE,
4543 NULL, 0x0, NULL, HFILL}},
4544 {&hf_fileexp_afsTaggedPath_tp_tag,
4545 {"AFS Tagged Path Name", "fileexp.TaggedPath_tp_tag", FT_UINT32,
4547 NULL, 0x0, NULL, HFILL}},
4548 {&hf_fileexp_afsacl_uuid1,
4549 {"AFS ACL UUID1", "fileexp.afsacl_uuid1", FT_GUID, BASE_NONE,
4550 NULL, 0x0, "UUID", HFILL}},
4551 {&hf_fileexp_bulkfetchstatus_size,
4552 {"BulkFetchStatus Size", "fileexp.bulkfetchstatus_size", FT_UINT32,
4554 NULL, 0x0, NULL, HFILL}},
4555 {&hf_fileexp_bulkfetchvv_numvols,
4556 {"fileexp.bulkfetchvv_numvols", "fileexp.bulkfetchvv_numvols",
4557 FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL}},
4558 {&hf_fileexp_bulkfetchvv_spare1,
4559 {"fileexp.bulkfetchvv_spare1", "fileexp.bulkfetchvv_spare1",
4560 FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL}},
4561 {&hf_fileexp_bulkfetchvv_spare2,
4562 {"fileexp.bulkfetchvv_spare2", "fileexp.bulkfetchvv_spare2",
4563 FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL}},
4564 {&hf_fileexp_bulkkeepalive_numexecfids, {"BulkKeepAlive numexecfids", "fileexp.bulkkeepalive_numexecfids", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL}},
4565 {&hf_fileexp_bulkkeepalive_spare4,
4566 {"BulkKeepAlive spare4", "fileexp.bulkfetchkeepalive_spare2",
4567 FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL}},
4568 {&hf_fileexp_bulkkeepalive_spare2,
4569 {"BulkKeepAlive spare2", "fileexp.bulkfetchkeepalive_spare2",
4570 FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL}},
4571 {&hf_fileexp_bulkkeepalive_spare1,
4572 {"BulkFetch KeepAlive spare1", "fileexp.bulkfetchkeepalive_spare1",
4573 FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL}},
4574 {&hf_fileexp_afsacl_defaultcell_uuid,
4575 {"Default Cell UUID",
4576 "fileexp.defaultcell_uuid", FT_GUID, BASE_NONE, NULL, 0x0,
4578 {&hf_fileexp_afsuuid_uuid,
4580 "fileexp.uuid", FT_GUID, BASE_NONE, NULL, 0x0,
4582 {&hf_fileexp_gettime_syncdispersion,
4583 {"GetTime Syncdispersion",
4584 "fileexp.gettime_syncdispersion", FT_UINT32, BASE_HEX, NULL, 0x0,
4586 {&hf_fileexp_gettime_syncdistance,
4587 {"SyncDistance", "fileexp.gettime.syncdistance",
4588 FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL}},
4589 {&hf_fileexp_gettime_usecondsp,
4590 {"GetTime usecondsp", "fileexp.gettime_usecondsp",
4591 FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL}},
4592 {&hf_fileexp_readdir_size,
4593 {"Readdir Size", "fileexp.readdir.size", FT_UINT32,
4594 BASE_HEX, NULL, 0x0, NULL, HFILL}},
4595 {&hf_fileexp_afsNameString_t_principalName_size,
4596 {"Principal Name Size",
4597 "fileexp.principalName_size", FT_UINT32, BASE_HEX,
4598 NULL, 0x0, NULL, HFILL}},
4599 {&hf_fileexp_afsNameString_t_principalName_size2,
4600 {"Principal Name Size2",
4601 "fileexp.principalName_size2", FT_UINT32, BASE_HEX,
4602 NULL, 0x0, NULL, HFILL}},
4603 {&hf_fileexp_afsTaggedPath_tp_length,
4604 {"Tagged Path Length",
4605 "fileexp.afsTaggedPath_length", FT_UINT32, BASE_HEX, NULL, 0x0,
4607 {&hf_fileexp_fstype,
4608 {"Filetype", "fileexp.fstype", FT_UINT32, BASE_HEX, NULL,
4610 {&hf_fileexp_gettime_secondsp,
4611 {"GetTime secondsp", "fileexp.gettime_secondsp", FT_UINT32,
4614 {&hf_fileexp_afsNameString_t_principalName_string,
4615 {"Principal Name", "fileexp.NameString_principal", FT_STRING,
4618 {&hf_fileexp_fetchdata_pipe_t_size,
4619 {"FetchData Pipe_t size", "fileexp.fetchdata_pipe_t_size", FT_STRING,
4623 static gint *ett[] = {
4625 &ett_fileexp_afsReturnDesc,
4626 &ett_fileexp_afsFid,
4627 &ett_fileexp_afsNetAddr,
4628 &ett_fileexp_fetchstatus,
4629 &ett_fileexp_afsflags,
4630 &ett_fileexp_volsync,
4631 &ett_fileexp_minvvp,
4632 &ett_fileexp_afsfidtaggedname,
4633 &ett_fileexp_afstaggedname,
4634 &ett_fileexp_afstoken,
4635 &ett_fileexp_afsstorestatus,
4636 &ett_fileexp_afsRecordLock,
4637 &ett_fileexp_afsAcl,
4638 &ett_fileexp_afsNameString_t,
4639 &ett_fileexp_afsConnParams,
4640 &ett_fileexp_afsErrorStatus,
4641 &ett_fileexp_afsTaggedPath,
4642 &ett_fileexp_afsNetData,
4643 &ett_fileexp_afsBulkStat,
4644 &ett_fileexp_afsuuid,
4645 &ett_fileexp_offsetp,
4646 &ett_fileexp_returntokenidp,
4647 &ett_fileexp_afsbundled_stat,
4649 proto_fileexp = proto_register_protocol ("DCE DFS File Exporter", "FILEEXP", "fileexp");
4650 proto_register_field_array (proto_fileexp, hf, array_length (hf));
4651 proto_register_subtree_array (ett, array_length (ett));
4655 proto_reg_handoff_fileexp (void)
4658 * Register the protocol as dcerpc
4660 dcerpc_init_uuid (proto_fileexp, ett_fileexp, &uuid_fileexp, ver_fileexp,
4661 fileexp_dissectors, hf_fileexp_opnum);