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>
39 #include <epan/packet.h>
40 #include "packet-dcerpc.h"
41 #include "packet-dcerpc-dce122.h"
43 #define AFS_SETMODTIME 1
44 #define AFS_SETOWNER 2
45 #define AFS_SETGROUP 4
47 #define AFS_SETACCESSTIME 0x10
48 #define AFS_SETCHANGETIME 0x20
49 #define AFS_SETLENGTH 0x40
50 #define AFS_SETTYPEUUID 0x80
51 #define AFS_SETDEVNUM 0x100
52 #define AFS_SETMODEXACT 0x200
53 #define AFS_SETTRUNCLENGTH 0x400
54 #define AFS_SETCLIENTSPARE 0x800
56 #define TKN_LOCK_READ 0x001
57 #define TKN_LOCK_WRITE 0x002
58 #define TKN_DATA_READ 0x004
59 #define TKN_DATA_WRITE 0x008
60 #define TKN_OPEN_READ 0x010
61 #define TKN_OPEN_WRITE 0x020
62 #define TKN_OPEN_SHARED 0x040
63 #define TKN_OPEN_EXCLUSIVE 0x080
64 #define TKN_OPEN_DELETE 0x100
65 #define TKN_OPEN_PRESERVE 0x200
66 #define TKN_STATUS_READ 0x400
67 #define TKN_STATUS_WRITE 0x800
68 #define TKN_OPEN_UNLINK 0x1000
69 #define TKN_SPOT_HERE 0x2000
70 #define TKN_SPOT_THERE 0x4000
71 #define TKN_OPEN_NO_READ 0x8000
72 #define TKN_OPEN_NO_WRITE 0x10000
73 #define TKN_OPEN_NO_UNLINK 0x20000
75 #define AFS_CONN_PARAM_HOSTLIFE 0
76 #define AFS_CONN_PARAM_HOSTRPC 1
77 #define AFS_CONN_PARAM_DEADSERVER 2
78 #define AFS_CONN_PARAM_EPOCH 3
79 #define AFS_CONN_PARAM_MAXFILE_CLIENT 4
80 #define AFS_CONN_PARAM_MAXFILE_SERVER 5
81 #define AFS_CONN_PARAM_HOST_TYPE_CLIENT 6
82 #define AFS_CONN_PARAM_HOST_TYPE_SERVER 7
83 #define AFS_CONN_PARAM_FT_MASK_CLIENT 8
84 #define AFS_CONN_PARAM_FT_MASK_SERVER 9
85 #define AFS_CONN_PARAM_SUPPORTS_64BITS 0x10000
86 #define AFS_CONN_PARAM_512BYTE_BLOCKS 0x20000
88 #define AFS_FLAG_SEC_SERVICE 0x1
89 #define AFS_FLAG_CONTEXT_NEW_IF 0x2
90 #define AFS_FLAG_CONTEXT_DO_RESET 0x4
91 #define AFS_FLAG_CONTEXT_NEW_ACL_IF 0x8
92 #define AFS_FLAG_CONTEXT_NEW_TKN_TYPES 0x10
94 #define AFS_FLAG_RETURNTOKEN 1
95 #define AFS_FLAG_TOKENJUMPQUEUE 2
96 #define AFS_FLAG_SKIPTOKEN 4
97 #define AFS_FLAG_NOOPTIMISM 0x8
98 #define AFS_FLAG_TOKENID 0x10
99 #define AFS_FLAG_RETURNBLOCKER 0x20
100 #define AFS_FLAG_ASYNCGRANT 0x40
101 #define AFS_FLAG_NOREVOKE 0x80
102 #define AFS_FLAG_MOVE_REESTABLISH 0x100
103 #define AFS_FLAG_SERVER_REESTABLISH 0x200
104 #define AFS_FLAG_NO_NEW_EPOCH 0x400
105 #define AFS_FLAG_MOVE_SOURCE_OK 0x800
106 #define AFS_FLAG_SYNC 0x1000
107 #define AFS_FLAG_ZERO 0x2000
108 #define AFS_FLAG_SKIPSTATUS 0x4000
109 #define AFS_FLAG_FORCEREVOCATIONS 0x8000
110 #define AFS_FLAG_FORCEVOLQUIESCE 0x10000
111 #define AFS_FLAG_FORCEREVOCATIONDOWN 0x20000
113 static int hf_fileexp_opnum = -1;
116 static int hf_fileexp_afsFid_cell_high = -1;
117 static int hf_fileexp_afsuuid_uuid = -1;
118 static int hf_fileexp_fetchdata_pipe_t_size = -1;
119 static int hf_fileexp_afsNameString_t_principalName_string = -1;
120 static int hf_fileexp_afsFid_cell_low = -1;
121 static int hf_fileexp_afsFid_volume_high = -1;
122 static int hf_fileexp_afsFid_volume_low = -1;
123 static int hf_fileexp_afsFid_Vnode = -1;
124 static int hf_fileexp_afsFid_Unique = -1;
125 static int hf_fileexp_volume_high = -1;
126 static int hf_fileexp_volume_low = -1;
127 static int hf_fileexp_vnode = -1;
128 static int hf_fileexp_unique = -1;
129 static int hf_fileexp_interfaceversion = -1;
130 static int hf_fileexp_filetype = -1;
131 static int hf_fileexp_linkcount = -1;
132 static int hf_fileexp_length_high = -1;
133 static int hf_fileexp_length_low = -1;
134 static int hf_fileexp_dataversion_high = -1;
135 static int hf_fileexp_dataversion_low = -1;
136 static int hf_fileexp_author = -1;
137 static int hf_fileexp_owner = -1;
138 static int hf_fileexp_group = -1;
139 static int hf_fileexp_calleraccess = -1;
140 static int hf_fileexp_anonymousaccess = -1;
141 static int hf_fileexp_aclexpirationtime = -1;
142 static int hf_fileexp_mode = -1;
143 static int hf_fileexp_parentvnode = -1;
144 static int hf_fileexp_parentunique = -1;
145 static int hf_fileexp_modtime_sec = -1;
146 static int hf_fileexp_modtime_msec = -1;
147 static int hf_fileexp_changetime_sec = -1;
148 static int hf_fileexp_changetime_msec = -1;
149 static int hf_fileexp_accesstime_sec = -1;
150 static int hf_fileexp_accesstime_msec = -1;
151 static int hf_fileexp_servermodtime_sec = -1;
152 static int hf_fileexp_servermodtime_msec = -1;
153 static int hf_fileexp_typeuuid = -1;
154 static int hf_fileexp_objectuuid = -1;
155 static int hf_fileexp_devicenumber = -1;
156 static int hf_fileexp_blocksused = -1;
157 static int hf_fileexp_clientspare1 = -1;
158 static int hf_fileexp_devicenumberhighbits = -1;
159 static int hf_fileexp_agtypeunique = -1;
160 static int hf_fileexp_himaxspare = -1;
161 static int hf_fileexp_lomaxspare = -1;
162 static int hf_fileexp_pathconfspare = -1;
163 static int hf_fileexp_spare4 = -1;
164 static int hf_fileexp_spare5 = -1;
165 static int hf_fileexp_spare6 = -1;
166 static int hf_fileexp_volid_hi = -1;
167 static int hf_fileexp_volid_low = -1;
168 static int hf_fileexp_vvage = -1;
169 static int hf_fileexp_vv_hi = -1;
170 static int hf_fileexp_vv_low = -1;
171 static int hf_fileexp_vvpingage = -1;
172 static int hf_fileexp_vvspare1 = -1;
173 static int hf_fileexp_vvspare2 = -1;
174 static int hf_fileexp_beginrange = -1;
175 static int hf_fileexp_beginrangeext = -1;
176 static int hf_fileexp_endrange = -1;
177 static int hf_fileexp_endrangeext = -1;
178 static int hf_fileexp_expirationtime = -1;
179 static int hf_fileexp_tokenid_hi = -1;
180 static int hf_fileexp_tokenid_low = -1;
181 static int hf_fileexp_type_hi = -1;
182 static int hf_fileexp_type_low = -1;
183 static int hf_fileexp_tn_length = -1;
184 static int hf_fileexp_storestatus_accesstime_sec = -1;
185 static int hf_fileexp_storestatus_accesstime_usec = -1;
186 static int hf_fileexp_storestatus_changetime_sec = -1;
187 static int hf_fileexp_storestatus_changetime_usec = -1;
188 static int hf_fileexp_storestatus_clientspare1 = -1;
189 static int hf_fileexp_storestatus_cmask = -1;
190 static int hf_fileexp_storestatus_devicenumber = -1;
191 static int hf_fileexp_storestatus_devicenumberhighbits = -1;
192 static int hf_fileexp_storestatus_devicetype = -1;
193 static int hf_fileexp_storestatus_group = -1;
194 static int hf_fileexp_storestatus_length_high = -1;
195 static int hf_fileexp_storestatus_length_low = -1;
196 static int hf_fileexp_storestatus_mask = -1;
197 static int hf_fileexp_storestatus_mode = -1;
198 static int hf_fileexp_storestatus_modtime_sec = -1;
199 static int hf_fileexp_storestatus_modtime_usec = -1;
200 static int hf_fileexp_storestatus_owner = -1;
201 static int hf_fileexp_storestatus_spare1 = -1;
202 static int hf_fileexp_storestatus_spare2 = -1;
203 static int hf_fileexp_storestatus_spare3 = -1;
204 static int hf_fileexp_storestatus_spare4 = -1;
205 static int hf_fileexp_storestatus_spare5 = -1;
206 static int hf_fileexp_storestatus_spare6 = -1;
207 static int hf_fileexp_storestatus_trunc_high = -1;
208 static int hf_afsconnparams_mask = -1;
209 static int hf_fileexp_storestatus_trunc_low = -1;
210 static int hf_fileexp_storestatus_typeuuid = -1;
211 static int hf_fileexp_l_end_pos = -1;
212 static int hf_fileexp_l_end_pos_ext = -1;
213 static int hf_fileexp_l_fstype = -1;
214 static int hf_fileexp_l_pid = -1;
215 static int hf_fileexp_l_start_pos = -1;
216 static int hf_fileexp_l_start_pos_ext = -1;
217 static int hf_fileexp_l_sysid = -1;
218 static int hf_fileexp_l_type = -1;
219 static int hf_fileexp_l_whence = -1;
220 static int hf_fileexp_acl_len = -1;
221 static int hf_fileexp_st = -1;
222 static int hf_fileexp_uint = -1;
223 static int hf_fileexp_setcontext_rqst_epochtime = -1;
224 static int hf_fileexp_setcontext_rqst_secobjectid = -1;
225 static int hf_fileexp_setcontext_rqst_clientsizesattrs = -1;
226 static int hf_fileexp_setcontext_rqst_parm7 = -1;
227 static int hf_fileexp_afsNetAddr_type = -1;
228 static int hf_fileexp_afsNetAddr_data = -1;
229 static int hf_fileexp_returntokenidp_high = -1;
230 static int hf_fileexp_minvvp_low = -1;
231 static int hf_fileexp_position_high = -1;
232 static int hf_fileexp_position_low = -1;
233 static int hf_fileexp_offsetp_high = -1;
234 static int hf_fileexp_nextoffsetp_low = -1;
235 static int hf_fileexp_cellidp_high = -1;
236 static int hf_afserrorstatus_st = -1;
237 static int hf_fileexp_length = -1;
238 static int hf_afsconnparams_values = -1;
239 static int hf_fileexp_acltype = -1;
240 static int hf_fileexp_afsTaggedPath_tp_chars = -1;
241 static int hf_fileexp_afsTaggedPath_tp_tag = -1;
242 static int hf_fileexp_afsacl_uuid1 = -1;
243 static int hf_fileexp_bulkfetchstatus_size = -1;
244 static int hf_fileexp_flags = -1;
245 static int hf_fileexp_afsreturndesc_tokenid_high = -1;
246 static int hf_fileexp_afsreturndesc_tokenid_low = -1;
247 static int hf_fileexp_afsreturndesc_type_high = -1;
248 static int hf_fileexp_afsreturndesc_type_low = -1;
249 static int hf_fileexp_returntokenidp_low = -1;
250 static int hf_fileexp_minvvp_high = -1;
251 static int hf_fileexp_offsetp_low = -1;
252 static int hf_fileexp_nextoffsetp_high = -1;
253 static int hf_fileexp_cellidp_low = -1;
254 static int hf_fileexp_tn_tag = -1;
255 static int hf_fileexp_tn_size = -1;
256 static int hf_fileexp_tn_string = -1;
257 static int hf_fileexp_bulkfetchvv_numvols = -1;
258 static int hf_fileexp_bulkfetchvv_spare1 = -1;
259 static int hf_fileexp_bulkfetchvv_spare2 = -1;
260 static int hf_fileexp_bulkkeepalive_numexecfids = -1;
261 static int hf_fileexp_bulkkeepalive_spare4 = -1;
262 static int hf_fileexp_bulkkeepalive_spare2 = -1;
263 static int hf_fileexp_bulkkeepalive_spare1 = -1;
264 static int hf_fileexp_afsacl_defaultcell_uuid = -1;
265 static int hf_fileexp_gettime_syncdispersion = -1;
266 static int hf_fileexp_gettime_syncdistance = -1;
267 static int hf_fileexp_gettime_usecondsp = -1;
268 static int hf_fileexp_readdir_size = -1;
269 static int hf_fileexp_afsNameString_t_principalName_size = -1;
270 static int hf_fileexp_afsNameString_t_principalName_size2 = -1;
271 static int hf_fileexp_afsTaggedPath_tp_length = -1;
272 static int hf_fileexp_fstype = -1;
273 static int hf_fileexp_gettime_secondsp = -1;
275 static int proto_fileexp = -1;
277 static gint ett_fileexp = -1;
278 static gint ett_fileexp_afsFid = -1;
279 static gint ett_fileexp_afsReturnDesc = -1;
280 static gint ett_fileexp_afsNetAddr = -1;
281 static gint ett_fileexp_fetchstatus = -1;
282 static gint ett_fileexp_afsflags = -1;
283 static gint ett_fileexp_volsync = -1;
284 static gint ett_fileexp_minvvp = -1;
285 static gint ett_fileexp_afsfidtaggedname = -1;
286 static gint ett_fileexp_afstaggedname = -1;
287 static gint ett_fileexp_afstoken = -1;
288 static gint ett_fileexp_afsstorestatus = -1;
289 static gint ett_fileexp_afsRecordLock = -1;
290 static gint ett_fileexp_afsAcl = -1;
291 static gint ett_fileexp_afsNameString_t = -1;
292 static gint ett_fileexp_afsConnParams = -1;
293 static gint ett_fileexp_afsErrorStatus = -1;
294 static gint ett_fileexp_afsNetData = -1;
295 static gint ett_fileexp_afsTaggedPath = -1;
296 static gint ett_fileexp_afsBulkStat = -1;
297 static gint ett_fileexp_afsuuid = -1;
298 static gint ett_fileexp_offsetp = -1;
299 static gint ett_fileexp_returntokenidp = -1;
300 static gint ett_fileexp_afsbundled_stat = -1;
303 /* vars for our macro(s) */
304 static int hf_error_st = -1;
306 static e_uuid_t uuid_fileexp =
307 { 0x4d37f2dd, 0xed93, 0x0000, {0x02, 0xc0, 0x37, 0xcf, 0x1e, 0x00, 0x00,
310 static guint16 ver_fileexp = 4;
312 /* XXX the only macro that I could not find the right way to convert easily.
313 The reason is because we reset col_info if st is non zero for many rpcs.
314 This is because on error, many structures are filled with garbage.
315 We end up not knowing if data is valid until we get the st var at the very end of the stubdata..
316 We can not just jump to the end, because more often than not an extra buffer exists in payload
317 after st. Thus we have to advance on each item until we read in ST, then we clear col_info. on error
318 A good example is FetchStatus() on a file that returns ENOEXIST.
319 inode, volume, etc all will be garbage.
322 #define MACRO_ST_CLEAR(name) \
325 const char *st_str; \
326 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_error_st, &st); \
327 st_str = val_to_str_ext (st, &dce_error_vals_ext, "%u"); \
329 if (check_col (pinfo->cinfo, COL_INFO)) \
330 col_add_fstr (pinfo->cinfo, COL_INFO, "%s st:%s ", name, st_str); \
332 if (check_col (pinfo->cinfo, COL_INFO)) \
333 col_append_fstr (pinfo->cinfo, COL_INFO, " st:%s ", st_str); \
338 dissect_afsFid (tvbuff_t * tvb, int offset,
339 packet_info * pinfo, proto_tree * parent_tree, guint8 *drep)
350 proto_item *item = NULL;
351 proto_tree *tree = NULL;
352 int old_offset = offset;
353 guint32 volume_low, unique, vnode, inode;
356 di = pinfo->private_data;
357 if (di->conformant_run)
366 item = proto_tree_add_text (parent_tree, tvb, offset, -1, "afsFid:");
367 tree = proto_item_add_subtree (item, ett_fileexp_afsFid);
371 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
372 hf_fileexp_afsFid_cell_high, NULL);
374 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
375 hf_fileexp_afsFid_cell_low, NULL);
377 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
378 hf_fileexp_afsFid_volume_high, NULL);
380 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
381 hf_fileexp_afsFid_volume_low, &volume_low);
383 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
384 hf_fileexp_afsFid_Vnode, &vnode);
386 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
387 hf_fileexp_afsFid_Unique, &unique);
389 if (check_col (pinfo->cinfo, COL_INFO))
390 col_append_fstr (pinfo->cinfo, COL_INFO, " :FSID:%u ", volume_low);
392 if ((vnode == 1) || (vnode == 2))
394 col_append_str (pinfo->cinfo, COL_INFO, " InFS ");
398 inode = ((volume_low << 16) + vnode) & 0x7fffffff;
399 if (check_col (pinfo->cinfo, COL_INFO))
400 col_append_fstr (pinfo->cinfo, COL_INFO, " inode:%u ", inode);
403 proto_item_set_len (item, offset - old_offset);
408 dissect_afsConnParams (tvbuff_t * tvb, int offset,
409 packet_info * pinfo, proto_tree * parent_tree,
415 unsigned32 Values[20];
418 proto_item *item = NULL;
419 proto_tree *tree = NULL;
420 int old_offset = offset;
421 guint32 mask, Values[20];
424 di = pinfo->private_data;
425 if (di->conformant_run)
434 proto_tree_add_text (parent_tree, tvb, offset, -1,
436 tree = proto_item_add_subtree (item, ett_fileexp_afsConnParams);
439 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
440 hf_afsconnparams_mask, &mask);
442 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
443 hf_afsconnparams_values, &Values[0]);
445 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
446 hf_afsconnparams_values, &Values[1]);
448 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
449 hf_afsconnparams_values, &Values[2]);
451 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
452 hf_afsconnparams_values, &Values[3]);
454 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
455 hf_afsconnparams_values, &Values[4]);
457 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
458 hf_afsconnparams_values, &Values[5]);
460 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
461 hf_afsconnparams_values, &Values[6]);
463 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
464 hf_afsconnparams_values, &Values[7]);
466 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
467 hf_afsconnparams_values, &Values[9]);
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[10]);
475 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
476 hf_afsconnparams_values, &Values[11]);
478 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
479 hf_afsconnparams_values, &Values[12]);
481 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
482 hf_afsconnparams_values, &Values[13]);
484 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
485 hf_afsconnparams_values, &Values[14]);
487 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
488 hf_afsconnparams_values, &Values[15]);
490 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
491 hf_afsconnparams_values, &Values[16]);
493 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
494 hf_afsconnparams_values, &Values[17]);
496 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
497 hf_afsconnparams_values, &Values[18]);
499 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
500 hf_afsconnparams_values, &Values[19]);
501 if ((mask & AFS_CONN_PARAM_HOSTLIFE) == AFS_CONN_PARAM_HOSTLIFE)
503 col_append_str (pinfo->cinfo, COL_INFO, ":HOSTLIFE");
505 if ((mask & AFS_CONN_PARAM_HOSTRPC) == AFS_CONN_PARAM_HOSTRPC)
507 col_append_str (pinfo->cinfo, COL_INFO, ":HOSTRPC");
509 if ((mask & AFS_CONN_PARAM_DEADSERVER) == AFS_CONN_PARAM_DEADSERVER)
511 col_append_str (pinfo->cinfo, COL_INFO, ":DEADSERVER");
513 if ((mask & AFS_CONN_PARAM_EPOCH) == AFS_CONN_PARAM_EPOCH)
515 col_append_str (pinfo->cinfo, COL_INFO, ":EPOCH");
517 if ((mask & AFS_CONN_PARAM_MAXFILE_CLIENT) == AFS_CONN_PARAM_MAXFILE_CLIENT)
519 col_append_str (pinfo->cinfo, COL_INFO, ":MAXFILE_CLIENT");
521 if ((mask & AFS_CONN_PARAM_MAXFILE_SERVER) == AFS_CONN_PARAM_MAXFILE_SERVER)
523 col_append_str (pinfo->cinfo, COL_INFO, ":MAXFILE_SERVER");
525 if ((mask & AFS_CONN_PARAM_HOST_TYPE_CLIENT) ==
526 AFS_CONN_PARAM_HOST_TYPE_CLIENT)
528 col_append_str (pinfo->cinfo, COL_INFO, ":HOST_TYPE_CLIENT");
530 if ((mask & AFS_CONN_PARAM_HOST_TYPE_SERVER) ==
531 AFS_CONN_PARAM_HOST_TYPE_SERVER)
533 col_append_str (pinfo->cinfo, COL_INFO, ":HOST_TYPE_SERVER");
535 if ((mask & AFS_CONN_PARAM_FT_MASK_CLIENT) == AFS_CONN_PARAM_FT_MASK_CLIENT)
537 col_append_str (pinfo->cinfo, COL_INFO, ":FT_MASK_CLIENT");
539 if ((mask & AFS_CONN_PARAM_FT_MASK_SERVER) == AFS_CONN_PARAM_FT_MASK_SERVER)
541 col_append_str (pinfo->cinfo, COL_INFO, ":FT_MASK_SERVER");
543 if ((mask & AFS_CONN_PARAM_SUPPORTS_64BITS) ==
544 AFS_CONN_PARAM_SUPPORTS_64BITS)
546 col_append_str (pinfo->cinfo, COL_INFO, ":SUPPORTS_64BITS");
548 if ((mask & AFS_CONN_PARAM_512BYTE_BLOCKS) == AFS_CONN_PARAM_512BYTE_BLOCKS)
550 col_append_str (pinfo->cinfo, COL_INFO, ":512BYTE_BLOCKS");
552 if (check_col (pinfo->cinfo, COL_INFO))
553 col_append_fstr (pinfo->cinfo, COL_INFO,
554 " Values:%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u",
555 Values[0], Values[1], Values[2], Values[3],
556 Values[4], Values[5], Values[6], Values[7], Values[8],
557 Values[9], Values[10], Values[11], Values[12],
558 Values[13], Values[14], Values[15], Values[16],
559 Values[17], Values[18], Values[19]);
561 proto_item_set_len (item, offset - old_offset);
566 dissect_afsNameString_t (tvbuff_t * tvb, int offset,
567 packet_info * pinfo, proto_tree * parent_tree,
572 typedef [string] byte NameString_t[AFS_NAMEMAX];
575 proto_item *item = NULL;
576 proto_tree *tree = NULL;
577 int old_offset = offset;
578 #define AFS_NAMEMAX 256
580 const guint8 *namestring;
583 di = pinfo->private_data;
584 if (di->conformant_run)
593 proto_tree_add_text (parent_tree, tvb, offset, -1,
595 tree = proto_item_add_subtree (item, ett_fileexp_afsNameString_t);
599 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
600 hf_fileexp_afsNameString_t_principalName_size,
602 if (check_col (pinfo->cinfo, COL_INFO))
603 col_append_fstr (pinfo->cinfo, COL_INFO, " String_size:%u", string_size);
604 if (string_size < AFS_NAMEMAX)
606 /* proto_tree_add_string(tree, id, tvb, start, length, value_ptr); */
608 proto_tree_add_string (tree, hf_fileexp_afsNameString_t_principalName_string, tvb, offset, string_size, tvb_get_ptr (tvb, offset, string_size));
609 namestring = tvb_get_ptr (tvb, offset, string_size);
610 offset += string_size;
611 if (check_col (pinfo->cinfo, COL_INFO))
612 col_append_fstr (pinfo->cinfo, COL_INFO, " Principal:%s", namestring);
616 if (check_col (pinfo->cinfo, COL_INFO))
617 col_append_fstr (pinfo->cinfo, COL_INFO,
618 " :FIXME!: Invalid string length of %u",
622 proto_item_set_len (item, offset - old_offset);
628 dissect_afsNetAddr (tvbuff_t * tvb, int offset,
629 packet_info * pinfo, proto_tree * parent_tree, guint8 *drep)
636 proto_item *item = NULL;
637 proto_tree *tree = NULL;
638 int old_offset = offset;
644 di = pinfo->private_data;
645 if (di->conformant_run)
652 item = proto_tree_add_text (parent_tree, tvb, offset, -1,
654 tree = proto_item_add_subtree (item, ett_fileexp_afsNetAddr);
659 dissect_ndr_uint16 (tvb, offset, pinfo, tree, drep,
660 hf_fileexp_afsNetAddr_type, &type);
664 if (check_col (pinfo->cinfo, COL_INFO))
665 col_append_fstr (pinfo->cinfo, COL_INFO, " Type:%u ", type);
668 for (i = 0; i < 14; i++)
672 dissect_ndr_uint8 (tvb, offset, pinfo, tree, drep,
673 hf_fileexp_afsNetAddr_data, &data);
681 if (check_col (pinfo->cinfo, COL_INFO))
682 col_append_fstr (pinfo->cinfo, COL_INFO, " Port:%u",
687 if (check_col (pinfo->cinfo, COL_INFO))
688 col_append_fstr (pinfo->cinfo, COL_INFO, " IP:%u.", data);
691 if (check_col (pinfo->cinfo, COL_INFO))
692 col_append_fstr (pinfo->cinfo, COL_INFO, "%u.", data);
695 if (check_col (pinfo->cinfo, COL_INFO))
696 col_append_fstr (pinfo->cinfo, COL_INFO, "%u.", data);
699 if (check_col (pinfo->cinfo, COL_INFO))
700 col_append_fstr (pinfo->cinfo, COL_INFO, "%u", data);
710 offset += 14; /* space left after reading in type for the array. */
714 proto_item_set_len (item, offset - old_offset);
720 dissect_afsNetData (tvbuff_t * tvb, int offset,
721 packet_info * pinfo, proto_tree * parent_tree, guint8 *drep)
725 NameString_t principalName;
727 proto_item *item = NULL;
728 proto_tree *tree = NULL;
729 int old_offset = offset;
732 di = pinfo->private_data;
733 if (di->conformant_run)
741 proto_tree_add_text (parent_tree, tvb, offset, -1, "afsNetData:");
742 tree = proto_item_add_subtree (item, ett_fileexp_afsNetData);
746 offset = dissect_afsNetAddr ( tvb, offset, pinfo, tree, drep);
747 offset += 4; /* buffer */
748 offset = dissect_afsNameString_t ( tvb, offset, pinfo, tree, drep);
750 proto_item_set_len (item, offset - old_offset);
756 dissect_afsTaggedPath (tvbuff_t * tvb, int offset,
757 packet_info * pinfo, proto_tree * parent_tree,
763 unsigned16 tp_length;
764 byte tp_chars[AFS_PATHMAX+1]; 1024+1
767 proto_item *item = NULL;
768 proto_tree *tree = NULL;
769 int old_offset = offset;
772 const guint8 *tp_chars;
775 di = pinfo->private_data;
776 if (di->conformant_run)
785 proto_tree_add_text (parent_tree, tvb, offset, -1, "afsTaggedPath");
786 tree = proto_item_add_subtree (item, ett_fileexp_afsTaggedPath);
791 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
792 hf_fileexp_afsTaggedPath_tp_tag, &tp_tag);
794 dissect_ndr_uint16 (tvb, offset, pinfo, tree, drep,
795 hf_fileexp_afsTaggedPath_tp_length, &tp_length);
796 proto_tree_add_string (tree, hf_fileexp_afsTaggedPath_tp_chars, tvb, offset,
797 hf_fileexp_afsTaggedPath_tp_length, tvb_get_ptr (tvb,
800 tp_chars = tvb_get_ptr (tvb, offset, 1025);
802 if (check_col (pinfo->cinfo, COL_INFO))
803 col_append_fstr (pinfo->cinfo, COL_INFO, " :tp_chars %s", tp_chars);
806 proto_item_set_len (item, offset - old_offset);
811 dissect_afsAcl (tvbuff_t * tvb, int offset,
812 packet_info * pinfo, proto_tree * parent_tree, guint8 *drep)
815 unsigned32 afsACL_len;
816 [length_is(afsACL_len)] byte afsACL_val[AFS_ACLMAX];
821 proto_item *item = NULL;
822 proto_tree *tree = NULL;
823 int old_offset = offset;
825 e_uuid_t uuid1, defaultcell;
828 di = pinfo->private_data;
829 if (di->conformant_run)
838 item = proto_tree_add_text (parent_tree, tvb, offset, -1, "afsAcl");
839 tree = proto_item_add_subtree (item, ett_fileexp_afsAcl);
844 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_fileexp_acl_len,
846 offset += 8; /* bypass spare and duplicate acl_len */
848 dissect_ndr_uuid_t (tvb, offset, pinfo, tree, drep,
849 hf_fileexp_afsacl_uuid1, &uuid1);
850 if (check_col (pinfo->cinfo, COL_INFO))
851 col_append_fstr (pinfo->cinfo, COL_INFO,
852 " - %08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x",
853 uuid1.Data1, uuid1.Data2, uuid1.Data3, uuid1.Data4[0],
854 uuid1.Data4[1], uuid1.Data4[2], uuid1.Data4[3],
855 uuid1.Data4[4], uuid1.Data4[5], uuid1.Data4[6],
859 dissect_ndr_uuid_t (tvb, offset, pinfo, tree, drep,
860 hf_fileexp_afsacl_defaultcell_uuid, &defaultcell);
861 if (check_col (pinfo->cinfo, COL_INFO))
862 col_append_fstr (pinfo->cinfo, COL_INFO,
863 " %08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x",
864 defaultcell.Data1, defaultcell.Data2, defaultcell.Data3,
865 defaultcell.Data4[0], defaultcell.Data4[1],
866 defaultcell.Data4[2], defaultcell.Data4[3],
867 defaultcell.Data4[4], defaultcell.Data4[5],
868 defaultcell.Data4[6], defaultcell.Data4[7]);
870 offset += (acl_len - 38);
872 if (offset <= old_offset)
873 THROW(ReportedBoundsError);
875 proto_item_set_len(item, offset-old_offset);
881 dissect_afsErrorStatus (tvbuff_t * tvb, int offset,
882 packet_info * pinfo, proto_tree * parent_tree,
885 proto_item *item = NULL;
886 proto_tree *tree = NULL;
887 int old_offset = offset;
892 di = pinfo->private_data;
893 if (di->conformant_run)
900 item = proto_tree_add_text (parent_tree, tvb, offset, -1,
902 tree = proto_item_add_subtree (item, ett_fileexp_afsErrorStatus);
906 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_afserrorstatus_st,
908 st_str = val_to_str_ext (st, &dce_error_vals_ext, "%u");
910 if (check_col (pinfo->cinfo, COL_INFO))
911 col_append_fstr (pinfo->cinfo, COL_INFO, " st:%s ", st_str);
913 proto_item_set_len (item, offset - old_offset);
918 dissect_afsRecordLock (tvbuff_t * tvb, int offset,
919 packet_info * pinfo, proto_tree * parent_tree,
925 unsigned32 l_start_pos;
926 unsigned32 l_end_pos;
930 unsigned32 l_start_pos_ext; was l_spare0: high 32b of l_start_pos
931 unsigned32 l_end_pos_ext; was l_spare1: high 32b of l_end_pos
934 proto_item *item = NULL;
935 proto_tree *tree = NULL;
936 int old_offset = offset;
937 guint16 l_type, l_whence;
938 guint32 l_start_pos, l_end_pos, l_pid, l_sysid, l_fstype, l_start_pos_ext,
942 di = pinfo->private_data;
943 if (di->conformant_run)
950 item = proto_tree_add_text (parent_tree, tvb, offset, -1,
952 tree = proto_item_add_subtree (item, ett_fileexp_afsRecordLock);
956 dissect_ndr_uint16 (tvb, offset, pinfo, tree, drep, hf_fileexp_l_type,
959 dissect_ndr_uint16 (tvb, offset, pinfo, tree, drep, hf_fileexp_l_whence,
962 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
963 hf_fileexp_l_start_pos, &l_start_pos);
965 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_fileexp_l_end_pos,
968 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_fileexp_l_pid,
971 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_fileexp_l_sysid,
974 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_fileexp_l_fstype,
977 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
978 hf_fileexp_l_start_pos_ext, &l_start_pos_ext);
980 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
981 hf_fileexp_l_end_pos_ext, &l_end_pos_ext);
984 proto_item_set_len (item, offset - old_offset);
989 dissect_afsstorestatus (tvbuff_t * tvb, int offset,
990 packet_info * pinfo, proto_tree * parent_tree,
996 afsTimeval accessTime;
997 afsTimeval changeTime;
1001 afsHyper truncLength; applied first
1004 unsigned32 deviceType; character or block
1005 unsigned32 deviceNumber;
1007 unsigned32 clientSpare1; client-only attrs
1008 unsigned32 deviceNumberHighBits;
1017 proto_item *item = NULL;
1018 proto_tree *tree = NULL;
1019 int old_offset = offset;
1020 guint32 mask, modtime_sec, changetime_sec, accesstime_sec, devicenumber,
1021 clientspare1, devicenumberhighbits, spare1, spare2, spare3, spare4,
1022 spare5, spare6, accesstime_usec, changetime_usec, owner, group, mode,
1023 trunc_high, trunc_low, length_high, length_low, devicetype,
1024 cmask, modtime_usec;
1028 di = pinfo->private_data;
1029 if (di->conformant_run)
1037 item = proto_tree_add_text (parent_tree, tvb, offset, -1,
1039 tree = proto_item_add_subtree (item, ett_fileexp_afsstorestatus);
1043 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1044 hf_fileexp_storestatus_mask, &mask);
1046 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1047 hf_fileexp_storestatus_modtime_sec, &modtime_sec);
1049 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1050 hf_fileexp_storestatus_modtime_usec, &modtime_usec);
1052 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1053 hf_fileexp_storestatus_accesstime_sec,
1056 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1057 hf_fileexp_storestatus_accesstime_usec,
1060 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1061 hf_fileexp_storestatus_changetime_sec,
1064 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1065 hf_fileexp_storestatus_changetime_usec,
1068 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1069 hf_fileexp_storestatus_owner, &owner);
1071 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1072 hf_fileexp_storestatus_group, &group);
1074 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1075 hf_fileexp_storestatus_mode, &mode);
1077 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1078 hf_fileexp_storestatus_trunc_high, &trunc_high);
1080 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1081 hf_fileexp_storestatus_trunc_low, &trunc_low);
1083 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1084 hf_fileexp_storestatus_length_high, &length_high);
1086 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1087 hf_fileexp_storestatus_length_low, &length_low);
1089 dissect_ndr_uuid_t (tvb, offset, pinfo, tree, drep,
1090 hf_fileexp_storestatus_typeuuid, &typeuuid);
1092 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1093 hf_fileexp_storestatus_devicetype, &devicetype);
1095 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1096 hf_fileexp_storestatus_devicenumber, &devicenumber);
1098 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1099 hf_fileexp_storestatus_cmask, &cmask);
1101 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1102 hf_fileexp_storestatus_clientspare1, &clientspare1);
1104 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1105 hf_fileexp_storestatus_devicenumberhighbits,
1106 &devicenumberhighbits);
1108 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1109 hf_fileexp_storestatus_spare1, &spare1);
1111 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1112 hf_fileexp_storestatus_spare2, &spare2);
1114 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1115 hf_fileexp_storestatus_spare3, &spare3);
1117 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1118 hf_fileexp_storestatus_spare4, &spare4);
1120 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1121 hf_fileexp_storestatus_spare5, &spare5);
1123 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1124 hf_fileexp_storestatus_spare6, &spare6);
1126 col_append_str (pinfo->cinfo, COL_INFO, " Mask=");
1127 if ((mask & AFS_SETMODTIME) == AFS_SETMODTIME)
1129 if (check_col (pinfo->cinfo, COL_INFO))
1130 col_append_fstr (pinfo->cinfo, COL_INFO, ":SETMODTIME-%u.%u",
1131 modtime_sec, modtime_usec);
1133 if ((mask & AFS_SETOWNER) == AFS_SETOWNER)
1135 if (check_col (pinfo->cinfo, COL_INFO))
1136 col_append_fstr (pinfo->cinfo, COL_INFO, ":SETOWNER-%u", owner);
1138 if ((mask & AFS_SETGROUP) == AFS_SETGROUP)
1140 if (check_col (pinfo->cinfo, COL_INFO))
1141 col_append_fstr (pinfo->cinfo, COL_INFO, ":SETGROUP-%u", group);
1143 if ((mask & AFS_SETMODE) == AFS_SETMODE)
1145 if (check_col (pinfo->cinfo, COL_INFO))
1146 col_append_fstr (pinfo->cinfo, COL_INFO, ":SETMODE-%o", mode);
1148 if ((mask & AFS_SETACCESSTIME) == AFS_SETACCESSTIME)
1150 if (check_col (pinfo->cinfo, COL_INFO))
1151 col_append_fstr (pinfo->cinfo, COL_INFO, ":SETACCESSTIME-%u.%u",
1152 accesstime_sec, accesstime_usec);
1154 if ((mask & AFS_SETCHANGETIME) == AFS_SETCHANGETIME)
1156 if (check_col (pinfo->cinfo, COL_INFO))
1157 col_append_fstr (pinfo->cinfo, COL_INFO, ":SETCHANGETIME-%u.%u",
1158 changetime_sec, changetime_usec);
1160 if ((mask & AFS_SETLENGTH) == AFS_SETLENGTH)
1162 col_append_str (pinfo->cinfo, COL_INFO, ":SETLENGTH");
1164 if ((mask & AFS_SETTYPEUUID) == AFS_SETTYPEUUID)
1166 col_append_str (pinfo->cinfo, COL_INFO, ":SETTYPEUUID");
1168 if ((mask & AFS_SETDEVNUM) == AFS_SETDEVNUM)
1170 col_append_str (pinfo->cinfo, COL_INFO, ":SETDEVNUM");
1172 if ((mask & AFS_SETMODEXACT) == AFS_SETMODEXACT)
1174 col_append_str (pinfo->cinfo, COL_INFO, ":SETMODEXACT");
1176 if ((mask & AFS_SETTRUNCLENGTH) == AFS_SETTRUNCLENGTH)
1178 col_append_str (pinfo->cinfo, COL_INFO, ":SETTRUNCLENGTH");
1180 if ((mask & AFS_SETCLIENTSPARE) == AFS_SETCLIENTSPARE)
1182 col_append_str (pinfo->cinfo, COL_INFO, ":SETCLIENTSPARE");
1185 proto_item_set_len (item, offset - old_offset);
1190 dissect_afstoken (tvbuff_t * tvb, int offset,
1191 packet_info * pinfo, proto_tree * parent_tree, guint8 *drep)
1195 unsigned32 expirationTime;
1197 unsigned32 beginRange;
1198 unsigned32 endRange;
1199 unsigned32 beginRangeExt;
1200 unsigned32 endRangeExt;
1203 proto_item *item = NULL;
1204 proto_tree *tree = NULL;
1205 int old_offset = offset;
1206 guint32 tokenid_hi, tokenid_low, expirationtime, type_hi, type_low,
1207 beginrange, endrange, beginrangeext, endrangeext, type;
1210 di = pinfo->private_data;
1211 if (di->conformant_run)
1219 item = proto_tree_add_text (parent_tree, tvb, offset, -1, "afsToken:");
1220 tree = proto_item_add_subtree (item, ett_fileexp_afstoken);
1224 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_fileexp_tokenid_hi,
1227 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1228 hf_fileexp_tokenid_low, &tokenid_low);
1230 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1231 hf_fileexp_expirationtime, &expirationtime);
1233 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_fileexp_type_hi,
1236 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_fileexp_type_low,
1239 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_fileexp_beginrange,
1242 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_fileexp_endrange,
1245 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1246 hf_fileexp_beginrangeext, &beginrangeext);
1248 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1249 hf_fileexp_endrangeext, &endrangeext);
1250 if (check_col (pinfo->cinfo, COL_INFO))
1251 col_append_fstr (pinfo->cinfo, COL_INFO,
1252 " :Tokenid:%u/%u ExpirationTime:%u beginrange:%u endrange:%u beginrangeext:%u endrangeext:%u",
1253 tokenid_hi, tokenid_low, expirationtime, beginrange,
1254 endrange, beginrangeext, endrangeext);
1257 col_append_str (pinfo->cinfo, COL_INFO, " Type=");
1259 if ((type & TKN_LOCK_READ) == TKN_LOCK_READ)
1261 col_append_str (pinfo->cinfo, COL_INFO, ":LOCK_READ");
1263 if ((type & TKN_LOCK_WRITE) == TKN_LOCK_WRITE)
1265 col_append_str (pinfo->cinfo, COL_INFO, ":LOCK_WRITE");
1267 if ((type & TKN_DATA_READ) == TKN_DATA_READ)
1269 col_append_str (pinfo->cinfo, COL_INFO, ":DATA_READ");
1271 if ((type & TKN_DATA_WRITE) == TKN_DATA_WRITE)
1273 col_append_str (pinfo->cinfo, COL_INFO, ":DATA_WRITE");
1275 if ((type & TKN_OPEN_READ) == TKN_OPEN_READ)
1277 col_append_str (pinfo->cinfo, COL_INFO, ":OPEN_READ");
1279 if ((type & TKN_OPEN_WRITE) == TKN_OPEN_WRITE)
1281 col_append_str (pinfo->cinfo, COL_INFO, ":OPEN_WRITE");
1283 if ((type & TKN_OPEN_SHARED) == TKN_OPEN_SHARED)
1285 col_append_str (pinfo->cinfo, COL_INFO, ":OPEN_SHARED");
1287 if ((type & TKN_OPEN_EXCLUSIVE) == TKN_OPEN_EXCLUSIVE)
1289 col_append_str (pinfo->cinfo, COL_INFO, ":OPEN_EXCLUSIVE");
1291 if ((type & TKN_OPEN_DELETE) == TKN_OPEN_DELETE)
1293 col_append_str (pinfo->cinfo, COL_INFO, ":OPEN_DELETE");
1295 if ((type & TKN_OPEN_PRESERVE) == TKN_OPEN_PRESERVE)
1297 col_append_str (pinfo->cinfo, COL_INFO, ":OPEN_PRESERVE");
1299 if ((type & TKN_STATUS_READ) == TKN_STATUS_READ)
1301 col_append_str (pinfo->cinfo, COL_INFO, ":STATUS_READ");
1303 if ((type & TKN_STATUS_WRITE) == TKN_STATUS_WRITE)
1305 col_append_str (pinfo->cinfo, COL_INFO, ":STATUS_WRITE");
1307 if ((type & TKN_OPEN_UNLINK) == TKN_OPEN_UNLINK)
1309 col_append_str (pinfo->cinfo, COL_INFO, ":OPEN_UNLINK");
1311 if ((type & TKN_SPOT_HERE) == TKN_SPOT_HERE)
1313 col_append_str (pinfo->cinfo, COL_INFO, ":SPOT_HERE");
1315 if ((type & TKN_SPOT_THERE) == TKN_SPOT_THERE)
1317 col_append_str (pinfo->cinfo, COL_INFO, ":SPOT_THERE");
1319 if ((type & TKN_OPEN_NO_READ) == TKN_OPEN_NO_READ)
1321 col_append_str (pinfo->cinfo, COL_INFO, ":OPEN_NO_READ");
1323 if ((type & TKN_OPEN_NO_WRITE) == TKN_OPEN_NO_WRITE)
1325 col_append_str (pinfo->cinfo, COL_INFO, ":OPEN_NO_WRITE");
1327 if ((type & TKN_OPEN_NO_UNLINK) == TKN_OPEN_NO_UNLINK)
1329 col_append_str (pinfo->cinfo, COL_INFO, ":OPEN_NO_UNLINK");
1332 proto_item_set_len (item, offset - old_offset);
1337 dissect_afstaggedname (tvbuff_t * tvb, int offset,
1338 packet_info * pinfo, proto_tree * parent_tree,
1344 unsigned16 tn_length;
1345 byte tn_chars[AFS_NAMEMAX+1];
1348 proto_item *item = NULL;
1349 proto_tree *tree = NULL;
1350 int old_offset = offset;
1353 const guint8 *tn_string;
1356 di = pinfo->private_data;
1357 if (di->conformant_run)
1365 item = proto_tree_add_text (parent_tree, tvb, offset, -1,
1367 tree = proto_item_add_subtree (item, ett_fileexp_afstaggedname);
1371 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_fileexp_tn_tag,
1374 dissect_ndr_uint16 (tvb, offset, pinfo, tree, drep, hf_fileexp_tn_length,
1376 if (tn_length < 254)
1378 proto_tree_add_string (tree, hf_fileexp_tn_string, tvb, offset,
1379 hf_fileexp_tn_size, tvb_get_ptr (tvb, offset,
1381 tn_string = tvb_get_ptr (tvb, offset, 257);
1383 if (check_col (pinfo->cinfo, COL_INFO))
1384 col_append_fstr (pinfo->cinfo, COL_INFO, " :tn_tag: %s", tn_string);
1388 if (check_col (pinfo->cinfo, COL_INFO))
1389 col_append_fstr (pinfo->cinfo, COL_INFO,
1390 " :FIXME!: Invalid string length of %u", tn_length);
1393 proto_item_set_len (item, offset - old_offset);
1398 dissect_afsfidtaggedname (tvbuff_t * tvb, int offset,
1399 packet_info * pinfo, proto_tree * parent_tree,
1407 proto_item *item = NULL;
1408 proto_tree *tree = NULL;
1409 int old_offset = offset;
1412 di = pinfo->private_data;
1413 if (di->conformant_run)
1421 item = proto_tree_add_text (parent_tree, tvb, offset, -1,
1423 tree = proto_item_add_subtree (item, ett_fileexp_afsfidtaggedname);
1425 offset = dissect_afsFid (tvb, offset, pinfo, tree, drep);
1426 offset = dissect_afstaggedname (tvb, offset, pinfo, tree, drep);
1428 proto_item_set_len (item, offset - old_offset);
1434 dissect_minvvp (tvbuff_t * tvb, int offset,
1435 packet_info * pinfo, proto_tree * parent_tree, guint8 *drep)
1438 /* unsigned32 minvvp_high
1439 unsigned32 minvvp_low
1442 proto_item *item = NULL;
1443 proto_tree *tree = NULL;
1444 int old_offset = offset;
1445 guint32 minvvp_high, minvvp_low;
1448 di = pinfo->private_data;
1449 if (di->conformant_run)
1457 item = proto_tree_add_text (parent_tree, tvb, offset, -1, "minVVp:");
1458 tree = proto_item_add_subtree (item, ett_fileexp_minvvp);
1461 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1462 hf_fileexp_minvvp_high, &minvvp_high);
1464 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_fileexp_minvvp_low,
1467 if (check_col (pinfo->cinfo, COL_INFO))
1468 col_append_fstr (pinfo->cinfo, COL_INFO, " minVVp:%u/%u", minvvp_high,
1472 proto_item_set_len (item, offset - old_offset);
1478 dissect_afsuuid (tvbuff_t * tvb, int offset,
1479 packet_info * pinfo, proto_tree * parent_tree, guint8 *drep)
1488 proto_item *item = NULL;
1489 proto_tree *tree = NULL;
1490 int old_offset = offset;
1493 di = pinfo->private_data;
1494 if (di->conformant_run)
1502 item = proto_tree_add_text (parent_tree, tvb, offset, -1, "afsUUID:");
1503 tree = proto_item_add_subtree (item, ett_fileexp_afsuuid);
1506 offset = dissect_ndr_uuid_t (tvb, offset, pinfo, tree, drep, hf_fileexp_afsuuid_uuid, &uuid1);
1509 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]);
1511 proto_item_set_len (item, offset - old_offset);
1517 dissect_offsetp (tvbuff_t * tvb, int offset,
1518 packet_info * pinfo, proto_tree * parent_tree, guint8 *drep)
1521 /* unsigned32 offsetp_high
1522 unsigned32 offsetp_low
1525 proto_item *item = NULL;
1526 proto_tree *tree = NULL;
1527 int old_offset = offset;
1528 guint32 offsetp_high, offsetp_low;
1531 di = pinfo->private_data;
1532 if (di->conformant_run)
1540 item = proto_tree_add_text (parent_tree, tvb, offset, -1, "minVVp:");
1541 tree = proto_item_add_subtree (item, ett_fileexp_offsetp);
1544 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1545 hf_fileexp_offsetp_high, &offsetp_high);
1547 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_fileexp_offsetp_low,
1550 if (check_col (pinfo->cinfo, COL_INFO))
1551 col_append_fstr (pinfo->cinfo, COL_INFO, " offsetp:%u/%u", offsetp_high,
1555 proto_item_set_len (item, offset - old_offset);
1561 dissect_returntokenidp (tvbuff_t * tvb, int offset,
1562 packet_info * pinfo, proto_tree * parent_tree, guint8 *drep)
1565 /* unsigned32 returntokenidp_high
1566 unsigned32 returntokenidp_low
1569 proto_item *item = NULL;
1570 proto_tree *tree = NULL;
1571 int old_offset = offset;
1572 guint32 returntokenidp_high, returntokenidp_low;
1575 di = pinfo->private_data;
1576 if (di->conformant_run)
1584 item = proto_tree_add_text (parent_tree, tvb, offset, -1, "returnTokenIDp:");
1585 tree = proto_item_add_subtree (item, ett_fileexp_returntokenidp);
1588 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1589 hf_fileexp_returntokenidp_high, &returntokenidp_high);
1591 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_fileexp_returntokenidp_low,
1592 &returntokenidp_low);
1594 if (check_col (pinfo->cinfo, COL_INFO))
1595 col_append_fstr (pinfo->cinfo, COL_INFO, " returnTokenIDp:%u/%u", returntokenidp_high,
1596 returntokenidp_low);
1599 proto_item_set_len (item, offset - old_offset);
1605 dissect_volsync (tvbuff_t * tvb, int offset,
1606 packet_info * pinfo, proto_tree * parent_tree, guint8 *drep)
1610 afsHyper VV; volume's version
1611 unsigned32 VVAge; age, in seconds, of the knowledge that the
1612 given VolVers is current
1613 unsigned32 VVPingAge; age, in seconds, of the last probe from
1614 the callee (the secondary) to the primary
1615 unsigned32 vv_spare1;
1616 unsigned32 vv_spare2;
1619 proto_item *item = NULL;
1620 proto_tree *tree = NULL;
1621 int old_offset = offset;
1622 guint32 volid_hi, volid_low, vv_hi, vv_low, vvage, vvpingage, vvspare1,
1626 di = pinfo->private_data;
1627 if (di->conformant_run)
1635 item = proto_tree_add_text (parent_tree, tvb, offset, -1,
1637 tree = proto_item_add_subtree (item, ett_fileexp_volsync);
1641 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_fileexp_volid_hi,
1644 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_fileexp_volid_low,
1647 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_fileexp_vv_hi,
1650 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_fileexp_vv_low,
1653 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_fileexp_vvage,
1656 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_fileexp_vvpingage,
1659 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_fileexp_vvspare1,
1662 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_fileexp_vvspare2,
1665 if (check_col (pinfo->cinfo, COL_INFO))
1666 col_append_fstr (pinfo->cinfo, COL_INFO,
1667 " volid_hi:%u volid_low:%u vv_hi:%u vv_low:%u vvage:%u vvpingage:%u vvpspare1:%u vvspare2:%u",
1668 volid_hi, volid_low, vv_hi, vv_low, vvage, vvpingage,
1669 vvspare1, vvspare2);
1672 proto_item_set_len (item, offset - old_offset);
1678 dissect_afsFlags (tvbuff_t * tvb, int offset,
1679 packet_info * pinfo, proto_tree * parent_tree, guint8 *drep)
1687 proto_item *item = NULL;
1688 proto_tree *tree = NULL;
1689 int old_offset = offset;
1693 di = pinfo->private_data;
1694 if (di->conformant_run)
1702 item = proto_tree_add_text (parent_tree, tvb, offset, -1, "AfsFlags:");
1703 tree = proto_item_add_subtree (item, ett_fileexp_afsflags);
1707 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_fileexp_flags,
1712 col_append_str (pinfo->cinfo, COL_INFO, " Flags=");
1713 if ((flags & AFS_FLAG_RETURNTOKEN) == AFS_FLAG_RETURNTOKEN)
1715 col_append_str (pinfo->cinfo, COL_INFO, ":RETURNTOKEN");
1717 if ((flags & AFS_FLAG_TOKENJUMPQUEUE) == AFS_FLAG_TOKENJUMPQUEUE)
1719 col_append_str (pinfo->cinfo, COL_INFO, ":TOKENJUMPQUEUE");
1721 if ((flags & AFS_FLAG_SKIPTOKEN) == AFS_FLAG_SKIPTOKEN)
1723 col_append_str (pinfo->cinfo, COL_INFO, ":SKIPTOKEN");
1725 if ((flags & AFS_FLAG_NOOPTIMISM) == AFS_FLAG_NOOPTIMISM)
1727 col_append_str (pinfo->cinfo, COL_INFO, ":NOOPTIMISM");
1729 if ((flags & AFS_FLAG_TOKENID) == AFS_FLAG_TOKENID)
1731 col_append_str (pinfo->cinfo, COL_INFO, ":TOKENID");
1733 if ((flags & AFS_FLAG_RETURNBLOCKER) == AFS_FLAG_RETURNBLOCKER)
1735 col_append_str (pinfo->cinfo, COL_INFO, ":RETURNBLOCKER");
1737 if ((flags & AFS_FLAG_ASYNCGRANT) == AFS_FLAG_ASYNCGRANT)
1739 col_append_str (pinfo->cinfo, COL_INFO, ":ASYNCGRANT");
1741 if ((flags & AFS_FLAG_NOREVOKE) == AFS_FLAG_NOREVOKE)
1743 col_append_str (pinfo->cinfo, COL_INFO, ":NOREVOKE");
1745 if ((flags & AFS_FLAG_MOVE_REESTABLISH) == AFS_FLAG_MOVE_REESTABLISH)
1747 col_append_str (pinfo->cinfo, COL_INFO, ":MOVE_REESTABLISH");
1749 if ((flags & AFS_FLAG_SERVER_REESTABLISH) ==
1750 AFS_FLAG_SERVER_REESTABLISH)
1752 col_append_str (pinfo->cinfo, COL_INFO, ":SERVER_REESTABLISH");
1754 if ((flags & AFS_FLAG_NO_NEW_EPOCH) == AFS_FLAG_NO_NEW_EPOCH)
1756 col_append_str (pinfo->cinfo, COL_INFO, ":NO_NEW_EPOCH");
1758 if ((flags & AFS_FLAG_MOVE_SOURCE_OK) == AFS_FLAG_MOVE_SOURCE_OK)
1760 col_append_str (pinfo->cinfo, COL_INFO, ":MOVE_SOURCE_OK");
1762 if ((flags & AFS_FLAG_SYNC) == AFS_FLAG_SYNC)
1764 col_append_str (pinfo->cinfo, COL_INFO, ":SYNC");
1766 if ((flags & AFS_FLAG_ZERO) == AFS_FLAG_ZERO)
1768 col_append_str (pinfo->cinfo, COL_INFO, ":ZERO");
1770 if ((flags & AFS_FLAG_SKIPSTATUS) == AFS_FLAG_SKIPSTATUS)
1772 col_append_str (pinfo->cinfo, COL_INFO, ":SKIPSTATUS");
1774 if ((flags & AFS_FLAG_FORCEREVOCATIONS) == AFS_FLAG_FORCEREVOCATIONS)
1776 col_append_str (pinfo->cinfo, COL_INFO, ":FORCEREVOCATIONS");
1778 if ((flags & AFS_FLAG_FORCEVOLQUIESCE) == AFS_FLAG_FORCEVOLQUIESCE)
1780 col_append_str (pinfo->cinfo, COL_INFO, ":FORCEVOLQUIESCE");
1782 if ((flags & AFS_FLAG_SEC_SERVICE) == AFS_FLAG_SEC_SERVICE)
1784 col_append_str (pinfo->cinfo, COL_INFO, ":SEC_SERVICE");
1786 if ((flags & AFS_FLAG_CONTEXT_NEW_ACL_IF) ==
1787 AFS_FLAG_CONTEXT_NEW_ACL_IF)
1789 col_append_str (pinfo->cinfo, COL_INFO, ":CONTEXT_NEW_ACL_IF");
1794 proto_item_set_len (item, offset - old_offset);
1799 dissect_fetchstatus (tvbuff_t * tvb, int offset,
1800 packet_info * pinfo, proto_tree * parent_tree,
1805 unsigned32 interfaceVersion;
1806 unsigned32 fileType;
1807 unsigned32 linkCount;
1809 afsHyper dataVersion;
1813 unsigned32 callerAccess;
1814 unsigned32 anonymousAccess;
1815 unsigned32 aclExpirationTime;
1817 unsigned32 parentVnode;
1818 unsigned32 parentUnique;
1820 afsTimeval changeTime;
1821 afsTimeval accessTime;
1822 afsTimeval serverModTime;
1825 unsigned32 deviceNumber;
1826 unsigned32 blocksUsed;
1827 unsigned32 clientSpare1; * client-only attrs *
1828 unsigned32 deviceNumberHighBits;
1837 proto_item *item = NULL;
1838 proto_tree *tree = NULL;
1839 int old_offset = offset;
1840 guint32 interfaceversion, filetype, linkcount, length_high, length_low,
1841 dataversion_high, dataversion_low, author, owner, group, calleraccess,
1842 anonymousaccess, aclexpirationtime, mode, parentvnode, parentunique,
1843 modtime_sec, modtime_msec, changetime_sec, changetime_msec,
1844 accesstime_sec, accesstime_msec, servermodtime_msec, servermodtime_sec,
1845 devicenumber, blocksused, clientspare1, devicenumberhighbits,
1846 agtypeunique, himaxspare, lomaxspare, pathconfspare, spare4, spare5,
1848 e_uuid_t typeuuid, objectuuid;
1851 di = pinfo->private_data;
1852 if (di->conformant_run)
1861 item = proto_tree_add_text (parent_tree, tvb, offset, -1,
1863 tree = proto_item_add_subtree (item, ett_fileexp_fetchstatus);
1867 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1868 hf_fileexp_interfaceversion, &interfaceversion);
1870 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_fileexp_filetype,
1873 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_fileexp_linkcount,
1876 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1877 hf_fileexp_length_high, &length_high);
1879 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_fileexp_length_low,
1882 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1883 hf_fileexp_dataversion_high, &dataversion_high);
1885 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1886 hf_fileexp_dataversion_low, &dataversion_low);
1888 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_fileexp_author,
1891 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_fileexp_owner,
1894 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_fileexp_group,
1897 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1898 hf_fileexp_calleraccess, &calleraccess);
1900 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1901 hf_fileexp_anonymousaccess, &anonymousaccess);
1903 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1904 hf_fileexp_aclexpirationtime, &aclexpirationtime);
1906 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_fileexp_mode,
1909 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1910 hf_fileexp_parentvnode, &parentvnode);
1912 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1913 hf_fileexp_parentunique, &parentunique);
1915 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1916 hf_fileexp_modtime_sec, &modtime_sec);
1918 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1919 hf_fileexp_modtime_msec, &modtime_msec);
1921 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1922 hf_fileexp_changetime_sec, &changetime_sec);
1924 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1925 hf_fileexp_changetime_msec, &changetime_msec);
1927 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1928 hf_fileexp_accesstime_sec, &accesstime_sec);
1930 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1931 hf_fileexp_accesstime_msec, &accesstime_msec);
1933 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1934 hf_fileexp_servermodtime_sec, &servermodtime_sec);
1936 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1937 hf_fileexp_servermodtime_msec, &servermodtime_msec);
1939 dissect_ndr_uuid_t (tvb, offset, pinfo, tree, drep, hf_fileexp_typeuuid,
1942 dissect_ndr_uuid_t (tvb, offset, pinfo, tree, drep, hf_fileexp_objectuuid,
1945 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1946 hf_fileexp_devicenumber, &devicenumber);
1948 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_fileexp_blocksused,
1951 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1952 hf_fileexp_clientspare1, &clientspare1);
1954 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1955 hf_fileexp_devicenumberhighbits,
1956 &devicenumberhighbits);
1958 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1959 hf_fileexp_agtypeunique, &agtypeunique);
1961 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_fileexp_himaxspare,
1964 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_fileexp_lomaxspare,
1967 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1968 hf_fileexp_pathconfspare, &pathconfspare);
1970 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_fileexp_spare4,
1973 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_fileexp_spare5,
1976 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_fileexp_spare6,
1980 if (check_col (pinfo->cinfo, COL_INFO))
1981 col_append_fstr (pinfo->cinfo, COL_INFO,
1982 " :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",
1983 interfaceversion, filetype, linkcount, length_low,
1984 dataversion_low, author, owner, group, calleraccess,
1985 anonymousaccess, aclexpirationtime, mode, parentvnode,
1986 parentunique, modtime_sec, changetime_sec,
1987 accesstime_sec, servermodtime_sec, devicenumber,
1988 blocksused, clientspare1, devicenumberhighbits,
1992 proto_item_set_len (item, offset - old_offset);
1997 dissect_afsReturnDesc (tvbuff_t * tvb, int offset,
1998 packet_info * pinfo, proto_tree * parent_tree,
2002 afsFid fid; * useful hint *
2004 afsHyper type; * mask *
2005 unsigned32 flags; * just in case *
2008 proto_item *item = NULL;
2009 proto_tree *tree = NULL;
2010 int old_offset = offset;
2011 guint32 tokenid_high, tokenid_low, type_high, type_low;
2014 di = pinfo->private_data;
2015 if (di->conformant_run)
2023 item = proto_tree_add_text (parent_tree, tvb, offset, -1,
2025 tree = proto_item_add_subtree (item, ett_fileexp_afsReturnDesc);
2029 offset = dissect_afsFid ( tvb, offset, pinfo, tree, drep);
2031 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
2032 hf_fileexp_afsreturndesc_tokenid_high, &tokenid_high);
2034 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
2035 hf_fileexp_afsreturndesc_tokenid_low, &tokenid_low);
2037 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
2038 hf_fileexp_afsreturndesc_type_high, &type_high);
2040 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
2041 hf_fileexp_afsreturndesc_type_low, &type_low);
2042 if (check_col (pinfo->cinfo, COL_INFO))
2043 col_append_fstr (pinfo->cinfo, COL_INFO, " TokenId:%u/%u Type:%u/%u",
2044 tokenid_high, tokenid_low, type_high, type_low);
2047 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFlags,
2048 NDR_POINTER_REF, "afsFlags: ", -1);
2050 proto_item_set_len (item, offset - old_offset);
2057 dissect_afsReturns (tvbuff_t * tvb, int offset,
2058 packet_info * pinfo, proto_tree * tree, guint8 *drep)
2062 long afsReturns_len;
2063 [length_is(afsReturns_len)] afsReturnDesc afsReturns_val[AFS_BULKMAX];
2066 /* this is not really a ucvarray, but with the initial len, we can
2067 cheat and pretend it is */
2070 di = pinfo->private_data;
2071 if (di->conformant_run)
2077 dissect_ndr_ucvarray (tvb, offset, pinfo, tree, drep,
2078 dissect_afsReturnDesc);
2083 #if 0 /* not used */
2086 dissect_afsbundled_stat (tvbuff_t * tvb, int offset,
2087 packet_info * pinfo, proto_tree * parent_tree, guint8 *drep _U_)
2091 proto_item *item = NULL;
2092 proto_tree *tree = NULL;
2093 int old_offset = offset;
2096 di = pinfo->private_data;
2097 if (di->conformant_run)
2104 item = proto_tree_add_text (parent_tree, tvb, offset, -1, "afsbundled_stat:");
2105 tree = proto_item_add_subtree (item, ett_fileexp_afsbundled_stat);
2111 afsFetchStatus stat;
2113 error_status_t error;
2117 offset = dissect_afsFid(tvb, offset, pinfo, tree, drep);
2120 offset = dissect_fetchstatus(tvb, offset, pinfo, tree, drep);
2121 offset = dissect_afstoken(tvb, offset, pinfo, tree, drep);
2123 /* This is currently under construction as I figure out the reverse layout of the packet. */
2125 offset = dissect_afsErrorStatus (tvb, offset, pinfo, tree, drep);
2131 proto_item_set_len (item, offset - old_offset);
2136 #endif /* not used */
2139 dissect_afsBulkStat (tvbuff_t * tvb _U_, int offset,
2140 packet_info * pinfo _U_, proto_tree * tree _U_,
2144 unsigned32 BulkStat_len;
2145 [length_is(BulkStat_len)] bundled_stat BulkStat_val[AFS_BULKMAX];
2147 /* this is not really a ucvarray, but with the initial len, we can
2148 cheat and pretend it is */
2150 offset = dissect_ndr_ucvarray(tvb, offset, pinfo, tree, drep,
2151 dissect_afsbundled_stat);
2161 fileexp_dissect_removefile_rqst (tvbuff_t * tvb, int offset,
2162 packet_info * pinfo, proto_tree * tree,
2169 di = pinfo->private_data;
2170 if (di->conformant_run)
2177 [in] afsFid *DirFidp,
2178 [in] afsFidTaggedName *Namep,
2179 [in] afsHyper *returnTokenIDp,
2180 [in] afsHyper *minVVp,
2181 [in] unsigned32 Flags,
2186 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
2187 NDR_POINTER_REF, "afsFid: ", -1);
2189 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep,
2190 dissect_afsfidtaggedname, NDR_POINTER_REF,
2191 "afsFidTaggedName: ", -1);
2193 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_returntokenidp,
2194 NDR_POINTER_REF, "afsReturnTokenIDp:", -1);
2196 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_minvvp,
2197 NDR_POINTER_REF, "afsMinVVp:", -1);
2200 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFlags,
2201 NDR_POINTER_REF, "afsFlags:", -1);
2207 fileexp_dissect_storedata_rqst (tvbuff_t * tvb, int offset,
2208 packet_info * pinfo, proto_tree * tree,
2211 guint32 position_high, position_low, length;
2214 di = pinfo->private_data;
2215 if (di->conformant_run)
2222 [in] afsStoreStatus *InStatusp,
2223 [in] afsHyper *Position,
2224 [in] signed32 Length,
2225 [in] afsHyper *minVVp,
2226 [in] unsigned32 Flags,
2227 [in] pipe_t *storeStream,
2233 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
2234 NDR_POINTER_REF, "afsFid: ", -1);
2236 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep,
2237 dissect_afsstorestatus, NDR_POINTER_REF,
2238 "afsStoreStatus:", -1);
2240 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
2241 hf_fileexp_position_high, &position_high);
2243 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
2244 hf_fileexp_position_low, &position_low);
2247 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
2248 hf_fileexp_length, &length);
2250 if (check_col (pinfo->cinfo, COL_INFO))
2251 col_append_fstr (pinfo->cinfo, COL_INFO, " Position:%u/%u Length:%u",
2252 position_high, position_low, length);
2255 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_minvvp,
2256 NDR_POINTER_REF, "MinVVp:", -1);
2259 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFlags,
2260 NDR_POINTER_REF, "afsFlags:", -1);
2262 /* XXX need to decode pipe_t still here */
2268 fileexp_dissect_gettoken_rqst (tvbuff_t * tvb, int offset,
2269 packet_info * pinfo, proto_tree * tree,
2274 di = pinfo->private_data;
2275 if (di->conformant_run)
2283 [in] afsToken *MinTokenp,
2284 [in] afsHyper *minVVp,
2285 [in] unsigned32 Flags,
2290 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
2291 NDR_POINTER_REF, "afsFid: ", -1);
2294 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afstoken,
2295 NDR_POINTER_REF, "afsToken: ", -1);
2298 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_minvvp,
2299 NDR_POINTER_REF, "MinVVp:", -1);
2302 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFlags,
2303 NDR_POINTER_REF, "afsFlags:", -1);
2308 fileexp_dissect_gettoken_resp (tvbuff_t * tvb, int offset,
2309 packet_info * pinfo, proto_tree * tree,
2314 di = pinfo->private_data;
2315 if (di->conformant_run)
2321 [out] afsToken *OutTokenp,
2322 [out] afsRecordLock *OutBlockerp,
2323 [out] afsFetchStatus *OutStatusp,
2324 [out] afsVolSync *Syncp
2328 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afstoken,
2329 NDR_POINTER_REF, "afsToken: ", -1);
2331 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep,
2332 dissect_afsRecordLock, NDR_POINTER_REF,
2333 "afsRecordLock: ", -1);
2335 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_fetchstatus,
2336 NDR_POINTER_REF, "afsFetchStatus: ", -1);
2338 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_volsync,
2339 NDR_POINTER_REF, "VolSync: ", -1);
2341 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep,
2342 dissect_afsErrorStatus, NDR_POINTER_REF,
2343 "afsErrorStatus: ", -1);
2349 fileexp_dissect_lookuproot_rqst (tvbuff_t * tvb, int offset,
2350 packet_info * pinfo, proto_tree * tree,
2355 di = pinfo->private_data;
2356 if (di->conformant_run)
2363 * [in] afsFid *InFidp,
2364 * [in] afsHyper *minVVp,
2365 * [in] unsigned32 Flags,
2369 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
2370 NDR_POINTER_REF, "afsFid: ", -1);
2373 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_minvvp,
2374 NDR_POINTER_REF, "MinVVp:", -1);
2377 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFlags,
2378 NDR_POINTER_REF, "afsFlags:", -1);
2384 fileexp_dissect_fetchdata_rqst (tvbuff_t * tvb, int offset,
2385 packet_info * pinfo, proto_tree * tree,
2388 guint32 position_high, position_low, length;
2391 di = pinfo->private_data;
2392 if (di->conformant_run)
2399 [in] afsHyper *minVVp,
2400 [in] afsHyper *Position,
2401 [in] signed32 Length,
2402 [in] unsigned32 Flags,
2406 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
2407 NDR_POINTER_REF, "afsFid: ", -1);
2410 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_minvvp,
2411 NDR_POINTER_REF, "MinVVp:", -1);
2413 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
2414 hf_fileexp_position_high, &position_high);
2416 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
2417 hf_fileexp_position_low, &position_low);
2419 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
2420 hf_fileexp_length, &length);
2421 if (check_col (pinfo->cinfo, COL_INFO))
2422 col_append_fstr (pinfo->cinfo, COL_INFO, " Position:%u/%u Length:%u",
2423 position_high, position_low, length);
2426 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFlags,
2427 NDR_POINTER_REF, "afsFlags:", -1);
2433 fileexp_dissect_fetchacl_rqst (tvbuff_t * tvb, int offset,
2434 packet_info * pinfo, proto_tree * tree,
2441 di = pinfo->private_data;
2442 if (di->conformant_run)
2450 [in] unsigned32 aclType,
2451 [in] afsHyper *minVVp,
2452 [in] unsigned32 Flags,
2457 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
2458 NDR_POINTER_REF, "afsFid: ", -1);
2461 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_fileexp_acltype,
2464 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_minvvp,
2465 NDR_POINTER_REF, "MinVVp:", -1);
2468 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFlags,
2469 NDR_POINTER_REF, "afsFlags:", -1);
2473 col_append_str (pinfo->cinfo, COL_INFO,
2474 " :copy the ACL from specified fid:");
2481 fileexp_dissect_fetchstatus_rqst (tvbuff_t * tvb, int offset,
2482 packet_info * pinfo, proto_tree * tree,
2487 di = pinfo->private_data;
2488 if (di->conformant_run)
2496 [in] afsHyper *minVVp,
2497 [in] unsigned32 Flags,
2501 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
2502 NDR_POINTER_REF, "afsFid: ", -1);
2504 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_minvvp,
2505 NDR_POINTER_REF, "MinVVp:", -1);
2507 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFlags,
2508 NDR_POINTER_REF, "afsFlags:", -1);
2513 fileexp_dissect_storeacl_rqst (tvbuff_t * tvb, int offset,
2514 packet_info * pinfo, proto_tree * tree,
2520 di = pinfo->private_data;
2521 if (di->conformant_run)
2528 [in] afsACL *AccessListp,
2529 [in] unsigned32 aclType,
2530 [in] afsFid *aclFidp,
2531 [in] afsHyper *minVVp,
2532 [in] unsigned32 Flags,
2537 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
2538 NDR_POINTER_REF, "afsFid: ", -1);
2540 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsAcl,
2541 NDR_POINTER_REF, "afsAcl: ", -1);
2543 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_fileexp_acltype,
2546 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
2547 NDR_POINTER_REF, "afsFid: ", -1);
2549 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_minvvp,
2550 NDR_POINTER_REF, "MinVVp:", -1);
2552 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFlags,
2553 NDR_POINTER_REF, "afsFlags:", -1);
2555 if (check_col (pinfo->cinfo, COL_INFO))
2556 col_append_fstr (pinfo->cinfo, COL_INFO, " aclType:%u",acltype);
2562 fileexp_dissect_storestatus_rqst (tvbuff_t * tvb, int offset,
2563 packet_info * pinfo, proto_tree * tree,
2568 di = pinfo->private_data;
2569 if (di->conformant_run)
2577 [in] afsStoreStatus *InStatusp,
2578 [in] afsHyper *minVVp,
2579 [in] unsigned32 Flags,
2583 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
2584 NDR_POINTER_REF, "afsFid: ", -1);
2586 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep,
2587 dissect_afsstorestatus, NDR_POINTER_REF,
2588 "afsStoreStatus: ", -1);
2590 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_minvvp,
2591 NDR_POINTER_REF, "MinVVp:", -1);
2593 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFlags,
2594 NDR_POINTER_REF, "afsFlags:", -1);
2601 fileexp_dissect_createfile_rqst (tvbuff_t * tvb, int offset,
2602 packet_info * pinfo, proto_tree * tree,
2607 di = pinfo->private_data;
2608 if (di->conformant_run)
2615 [in] afsFid *DirFidp,
2616 [in] afsTaggedName *Namep,
2617 [in] afsStoreStatus *InStatusp,
2618 [in] afsHyper *minVVp,
2619 [in] unsigned32 Flags,
2623 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
2624 NDR_POINTER_REF, "afsFid: ", -1);
2626 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep,
2627 dissect_afstaggedname, NDR_POINTER_REF,
2628 "afsTaggedName: ", -1);
2630 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep,
2631 dissect_afsstorestatus, NDR_POINTER_REF,
2632 "afsStoreStatus: ", -1);
2634 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_minvvp,
2635 NDR_POINTER_REF, "MinVVp:", -1);
2637 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFlags,
2638 NDR_POINTER_REF, "afsFlags:", -1);
2644 fileexp_dissect_rename_rqst (tvbuff_t * tvb, int offset,
2645 packet_info * pinfo, proto_tree * tree,
2650 di = pinfo->private_data;
2651 if (di->conformant_run)
2657 [in] afsFid *OldDirFidp,
2658 [in] afsFidTaggedName *OldNamep,
2659 [in] afsFid *NewDirFidp,
2660 [in] afsFidTaggedName *NewNamep,
2661 [in] afsHyper *returnTokenIDp,
2662 [in] afsHyper *minVVp,
2663 [in] unsigned32 Flags,
2668 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
2669 NDR_POINTER_REF, "afsFid: ", -1);
2672 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep,
2673 dissect_afsfidtaggedname, NDR_POINTER_REF,
2674 "afsFidTaggedName: ", -1);
2677 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
2678 NDR_POINTER_REF, "afsFid: ", -1);
2681 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep,
2682 dissect_afstaggedname, NDR_POINTER_REF,
2683 "afsFidTaggedName: ", -1);
2686 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep,
2687 dissect_returntokenidp, NDR_POINTER_REF,
2688 "afsReturnTokenIDp: ", -1);
2691 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep,
2692 dissect_minvvp, NDR_POINTER_REF,
2695 offset = dissect_afsFlags(tvb, offset, pinfo, tree, drep);
2701 fileexp_dissect_symlink_rqst (tvbuff_t * tvb, int offset,
2702 packet_info * pinfo, proto_tree * tree,
2707 di = pinfo->private_data;
2708 if (di->conformant_run)
2714 [in] afsFid *DirFidp,
2715 [in] afsTaggedName *Namep,
2716 [in] afsTaggedPath *LinkContentsp,
2717 [in] afsStoreStatus *InStatusp,
2718 [in] afsHyper *minVVp,
2719 [in] unsigned32 Flags,
2725 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
2726 NDR_POINTER_REF, "afsFid: ", -1);
2729 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep,
2730 dissect_afstaggedname, NDR_POINTER_REF,
2731 "afsTaggedName: ", -1);
2733 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep,
2734 dissect_afsTaggedPath, NDR_POINTER_REF,
2735 "afsTaggedPath: ", -1);
2737 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep,
2738 dissect_afsstorestatus, NDR_POINTER_REF,
2739 "afsStoreStatus: ", -1);
2741 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_minvvp,
2742 NDR_POINTER_REF, "MinVVp:", -1);
2743 offset = dissect_afsFlags (tvb, offset, pinfo, tree, drep);
2749 fileexp_dissect_readdir_rqst (tvbuff_t * tvb, int offset,
2750 packet_info * pinfo, proto_tree * tree,
2756 di = pinfo->private_data;
2757 if (di->conformant_run)
2763 [in] afsFid *DirFidp,
2764 [in] afsHyper *Offsetp,
2765 [in] unsigned32 Size,
2766 [in] afsHyper *minVVp,
2767 [in] unsigned32 Flags,
2771 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
2772 NDR_POINTER_REF, "afsFid: ", -1);
2774 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_offsetp,
2775 NDR_POINTER_REF, "Offsetp: ", -1);
2777 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
2778 hf_fileexp_readdir_size, &size);
2780 if (check_col (pinfo->cinfo, COL_INFO))
2781 col_append_fstr (pinfo->cinfo, COL_INFO, " Size:%u", size);
2784 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_minvvp,
2785 NDR_POINTER_REF, "MinVVp:", -1);
2786 offset = dissect_afsFlags ( tvb, offset, pinfo, tree, drep);
2792 fileexp_dissect_makedir_rqst (tvbuff_t * tvb, int offset,
2793 packet_info * pinfo, proto_tree * tree,
2798 di = pinfo->private_data;
2799 if (di->conformant_run)
2805 [in] afsFid *DirFidp,
2806 [in] afsTaggedName *Namep,
2807 [in] afsStoreStatus *InStatusp,
2808 [in] afsHyper *minVVp,
2809 [in] unsigned32 Flags,
2813 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
2814 NDR_POINTER_REF, "afsFid: ", -1);
2817 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep,
2818 dissect_afstaggedname, NDR_POINTER_REF,
2819 "afsTaggedName: ", -1);
2821 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep,
2822 dissect_afsstorestatus, NDR_POINTER_REF,
2823 "afsStoreStatus: ", -1);
2825 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_minvvp,
2826 NDR_POINTER_REF, "MinVVp:", -1);
2827 offset = dissect_afsFlags ( tvb, offset, pinfo, tree, drep);
2833 fileexp_dissect_removedir_rqst (tvbuff_t * tvb, int offset,
2834 packet_info * pinfo, proto_tree * tree,
2837 guint32 returntokenidp_high, returntokenidp_low;
2840 di = pinfo->private_data;
2841 if (di->conformant_run)
2847 [in] afsFid *DirFidp,
2848 [in] afsFidTaggedName *Namep,
2849 [in] afsHyper *returnTokenIDp,
2850 [in] afsHyper *minVVp,
2851 [in] unsigned32 Flags,
2855 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
2856 NDR_POINTER_REF, "afsFid: ", -1);
2858 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep,
2859 dissect_afsfidtaggedname, NDR_POINTER_REF,
2860 "afsFidTaggedName: ", -1);
2862 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
2863 hf_fileexp_returntokenidp_high, &returntokenidp_high);
2865 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
2866 hf_fileexp_returntokenidp_low, &returntokenidp_low);
2868 if (check_col (pinfo->cinfo, COL_INFO))
2869 col_append_fstr (pinfo->cinfo, COL_INFO, " returnTokenIDp:%u/%u",
2870 returntokenidp_high, returntokenidp_low);
2872 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_minvvp,
2873 NDR_POINTER_REF, "MinVVp:", -1);
2874 offset = dissect_afsFlags ( tvb, offset, pinfo, tree, drep );
2880 fileexp_dissect_lookup_rqst (tvbuff_t * tvb, int offset,
2881 packet_info * pinfo, proto_tree * tree,
2886 di = pinfo->private_data;
2887 if (di->conformant_run)
2893 [in] afsFid *DirFidp,
2894 [in] afsTaggedName *Namep,
2895 [in] afsHyper *minVVp,
2896 [in] unsigned32 Flags,
2900 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
2901 NDR_POINTER_REF, "afsFid: ", -1);
2904 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep,
2905 dissect_afstaggedname, NDR_POINTER_REF,
2906 "afsTaggedName: ", -1);
2908 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_minvvp,
2909 NDR_POINTER_REF, "MinVVp:", -1);
2910 offset = dissect_afsFlags ( tvb, offset, pinfo, tree, drep);
2915 fileexp_dissect_lookup_resp (tvbuff_t * tvb, int offset,
2916 packet_info * pinfo, proto_tree * tree,
2921 di = pinfo->private_data;
2922 if (di->conformant_run)
2928 [out] afsFid *OutFidp,
2929 [out] afsFetchStatus *OutFidStatusp,
2930 [out] afsFetchStatus *OutDirStatusp,
2931 [out] afsToken *OutTokenp,
2932 [out] afsVolSync *Syncp
2936 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
2937 NDR_POINTER_REF, "afsFid: ", -1);
2940 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_fetchstatus,
2941 NDR_POINTER_REF, "FetchStatus: ", -1);
2943 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_fetchstatus,
2944 NDR_POINTER_REF, "FetchStatus: ", -1);
2947 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afstoken,
2948 NDR_POINTER_REF, "afsToken: ", -1);
2950 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_volsync,
2951 NDR_POINTER_REF, "VolSync: ", -1);
2952 MACRO_ST_CLEAR ("Lookup reply");
2959 fileexp_dissect_makemountpoint_rqst (tvbuff_t * tvb, int offset,
2960 packet_info * pinfo, proto_tree * tree,
2966 di = pinfo->private_data;
2967 if (di->conformant_run)
2974 [in] afsFid *DirFidp,
2975 [in] afsTaggedName *Namep,
2976 [in] afsTaggedName *cellNamep,
2977 [in] afsFStype Type,
2978 [in] afsTaggedName *volumeNamep,
2979 [in] afsStoreStatus *InStatusp,
2980 [in] afsHyper *minVVp,
2981 [in] unsigned32 Flags,
2986 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
2987 NDR_POINTER_REF, "afsFid: ", -1);
2990 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep,
2991 dissect_afstaggedname, NDR_POINTER_REF,
2992 "afsTaggedName: ", -1);
2994 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep,
2995 dissect_afstaggedname, NDR_POINTER_REF,
2996 "afsTaggedName: ", -1);
2998 dissect_ndr_uint16 (tvb, offset, pinfo, tree, drep, hf_fileexp_fstype,
3001 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep,
3002 dissect_afstaggedname, NDR_POINTER_REF,
3003 "afsTaggedName: ", -1);
3005 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep,
3006 dissect_afsstorestatus, NDR_POINTER_REF,
3007 "afsStoreStatus: ", -1);
3009 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_minvvp,
3010 NDR_POINTER_REF, "MinVVp:", -1);
3012 offset = dissect_afsFlags (tvb, offset, pinfo, tree, drep);
3014 if (check_col (pinfo->cinfo, COL_INFO))
3015 col_append_fstr (pinfo->cinfo, COL_INFO, " Type:%u", type);
3022 fileexp_dissect_setcontext_rqst (tvbuff_t * tvb, int offset,
3023 packet_info * pinfo, proto_tree * tree,
3028 guint32 epochtime, clientsizesattrs, parm7;
3030 di = pinfo->private_data;
3031 if (di->conformant_run)
3037 [in] unsigned32 epochTime,
3038 [in] afsNetData *callbackAddr,
3039 [in] unsigned32 Flags,
3040 [in] afsUUID *secObjectID,
3041 [in] unsigned32 clientSizesAttrs,
3042 [in] unsigned32 parm7
3047 dissect_dcerpc_time_t (tvb, offset, pinfo, tree, drep,
3048 hf_fileexp_setcontext_rqst_epochtime, &epochtime);
3050 offset = dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsNetData,
3051 NDR_POINTER_REF, "afsNetData:", -1);
3053 offset = dissect_afsFlags (tvb, offset, pinfo, tree, drep);
3055 col_append_str (pinfo->cinfo, COL_INFO, " setObjectID");
3057 offset = dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsuuid,
3058 NDR_POINTER_REF, "afsUUID:", -1);
3060 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
3061 hf_fileexp_setcontext_rqst_clientsizesattrs,
3064 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
3065 hf_fileexp_setcontext_rqst_parm7, &parm7);
3067 if (check_col (pinfo->cinfo, COL_INFO)) col_append_fstr (pinfo->cinfo, COL_INFO, " epochTime:%u clientSizesAttrs:%u parm7:%u", epochtime, clientsizesattrs, parm7);
3073 fileexp_dissect_setcontext_resp (tvbuff_t * tvb, int offset,
3074 packet_info * pinfo, proto_tree * tree,
3077 /* nothing but error code */
3082 di = pinfo->private_data;
3083 if (di->conformant_run)
3088 MACRO_ST_CLEAR ("SetContext reply");
3093 fileexp_dissect_lookuproot_resp
3095 tvb, int offset, packet_info * pinfo, proto_tree * tree, guint8 *drep)
3099 di = pinfo->private_data;
3100 if (di->conformant_run)
3106 * [out] afsFid *OutFidp,
3107 * [out] afsFetchStatus *OutFidStatusp,
3108 * [out] afsToken *OutTokenp,
3109 * [out] afsVolSync *Syncp
3113 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
3114 NDR_POINTER_REF, "afsFid: ", -1);
3117 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_fetchstatus,
3118 NDR_POINTER_REF, "FetchStatus: ", -1);
3120 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afstoken,
3121 NDR_POINTER_REF, "afsToken: ", -1);
3123 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_volsync,
3124 NDR_POINTER_REF, "VolSync: ", -1);
3125 MACRO_ST_CLEAR ("LookupRoot reply");
3130 fileexp_dissect_fetchdata_resp
3132 tvb, int offset, packet_info * pinfo, proto_tree * tree, guint8 *drep)
3136 guint32 pipe_t_size;
3138 di = pinfo->private_data;
3139 if (di->conformant_run)
3145 [out] afsFetchStatus *OutStatusp,
3146 [out] afsToken *OutTokenp,
3147 [out] afsVolSync *Syncp,
3148 [out] pipe_t *fetchStream
3150 /* The SkipToken/SkipStatus flags are always used in every fetchdata request I have seen.
3151 There is also not sign of the afsVolSync structure... Just size, and data string... aka pipe_t */
3154 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
3155 hf_fileexp_fetchdata_pipe_t_size, &pipe_t_size);
3161 fileexp_dissect_fetchacl_resp
3163 tvb, int offset, packet_info * pinfo, proto_tree * tree, guint8 *drep)
3167 di = pinfo->private_data;
3168 if (di->conformant_run)
3175 [out] afsACL *AccessListp,
3176 [out] afsFetchStatus *OutStatusp,
3177 [out] afsVolSync *Syncp
3180 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsAcl,
3181 NDR_POINTER_REF, "afsAcl: ", -1);
3183 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_fetchstatus,
3184 NDR_POINTER_REF, "FetchStatus: ", -1);
3187 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_volsync,
3188 NDR_POINTER_REF, "VolSync: ", -1);
3189 MACRO_ST_CLEAR ("FetchAcl reply");
3194 fileexp_dissect_fetchstatus_resp
3196 tvb, int offset, packet_info * pinfo, proto_tree * tree, guint8 *drep)
3200 di = pinfo->private_data;
3201 if (di->conformant_run)
3207 [out] afsFetchStatus *OutStatusp,
3208 [out] afsToken *OutTokenp,
3209 [out] afsVolSync *Syncp
3213 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_fetchstatus,
3214 NDR_POINTER_REF, "FetchStatus: ", -1);
3217 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afstoken,
3218 NDR_POINTER_REF, "afsToken: ", -1);
3220 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_volsync,
3221 NDR_POINTER_REF, "VolSync: ", -1);
3222 MACRO_ST_CLEAR ("FetchStatus reply");
3227 fileexp_dissect_storedata_resp
3229 tvb, int offset, packet_info * pinfo, proto_tree * tree, guint8 *drep)
3233 di = pinfo->private_data;
3234 if (di->conformant_run)
3240 [out] afsFetchStatus *OutStatusp,
3241 [out] afsVolSync *Syncp
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 ("StoreData reply");
3256 fileexp_dissect_storeacl_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] afsVolSync *Syncp
3274 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_fetchstatus,
3275 NDR_POINTER_REF, "FetchStatus: ", -1);
3278 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_volsync,
3279 NDR_POINTER_REF, "VolSync: ", -1);
3280 MACRO_ST_CLEAR ("StoreAcl reply");
3285 fileexp_dissect_storestatus_resp
3287 tvb, int offset, packet_info * pinfo, proto_tree * tree, guint8 *drep)
3291 di = pinfo->private_data;
3292 if (di->conformant_run)
3298 [out] afsFetchStatus *OutStatusp,
3299 [out] afsVolSync *Syncp
3303 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_fetchstatus,
3304 NDR_POINTER_REF, "FetchStatus: ", -1);
3307 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_volsync,
3308 NDR_POINTER_REF, "VolSync: ", -1);
3309 MACRO_ST_CLEAR ("StoreStatus reply");
3314 fileexp_dissect_removefile_resp
3316 tvb, int offset, packet_info * pinfo, proto_tree * tree, guint8 *drep)
3320 di = pinfo->private_data;
3321 if (di->conformant_run)
3327 [out] afsFetchStatus *OutDirStatusp,
3328 [out] afsFetchStatus *OutFileStatusp,
3329 [out] afsFid *OutFileFidp,
3330 [out] afsVolSync *Syncp
3333 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_fetchstatus,
3334 NDR_POINTER_REF, "FetchStatus: ", -1);
3337 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_fetchstatus,
3338 NDR_POINTER_REF, "FetchStatus: ", -1);
3340 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
3341 NDR_POINTER_REF, "afsFid: ", -1);
3343 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_volsync,
3344 NDR_POINTER_REF, "VolSync: ", -1);
3345 MACRO_ST_CLEAR ("RemoveFile reply");
3350 fileexp_dissect_createfile_resp
3352 tvb, int offset, packet_info * pinfo, proto_tree * tree, guint8 *drep)
3356 di = pinfo->private_data;
3357 if (di->conformant_run)
3363 [out] afsFid *OutFidp,
3364 [out] afsFetchStatus *OutFidStatusp,
3365 [out] afsFetchStatus *OutDirStatusp,
3366 [out] afsToken *OutTokenp,
3367 [out] afsVolSync *Syncp
3372 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
3373 NDR_POINTER_REF, "afsFid: ", -1);
3375 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_fetchstatus,
3376 NDR_POINTER_REF, "FetchStatus: ", -1);
3379 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_fetchstatus,
3380 NDR_POINTER_REF, "FetchStatus: ", -1);
3383 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afstoken,
3384 NDR_POINTER_REF, "afsToken: ", -1);
3386 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_volsync,
3387 NDR_POINTER_REF, "VolSync: ", -1);
3388 MACRO_ST_CLEAR ("CreateFile reply");
3393 fileexp_dissect_rename_resp
3395 tvb, int offset, packet_info * pinfo, proto_tree * tree, guint8 *drep)
3399 di = pinfo->private_data;
3400 if (di->conformant_run)
3406 [out] afsFetchStatus *OutOldDirStatusp,
3407 [out] afsFetchStatus *OutNewDirStatusp,
3408 [out] afsFid *OutOldFileFidp,
3409 [out] afsFetchStatus *OutOldFileStatusp,
3410 [out] afsFid *OutNewFileFidp,
3411 [out] afsFetchStatus *OutNewFileStatusp,
3412 [out] afsVolSync *Syncp
3416 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_fetchstatus,
3417 NDR_POINTER_REF, "FetchStatus: ", -1);
3419 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_fetchstatus,
3420 NDR_POINTER_REF, "FetchStatus: ", -1);
3422 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
3423 NDR_POINTER_REF, "afsFid: ", -1);
3425 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_fetchstatus,
3426 NDR_POINTER_REF, "FetchStatus: ", -1);
3428 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
3429 NDR_POINTER_REF, "afsFid: ", -1);
3432 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_fetchstatus,
3433 NDR_POINTER_REF, "FetchStatus: ", -1);
3436 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_volsync,
3437 NDR_POINTER_REF, "VolSync: ", -1);
3438 MACRO_ST_CLEAR("Rename reply");
3443 fileexp_dissect_symlink_resp
3445 tvb, int offset, packet_info * pinfo, proto_tree * tree, guint8 *drep)
3449 di = pinfo->private_data;
3450 if (di->conformant_run)
3456 [out] afsFid *OutFidp,
3457 [out] afsFetchStatus *OutFidStatusp,
3458 [out] afsFetchStatus *OutDirStatusp,
3459 [out] afsToken *OutTokenp,
3460 [out] afsVolSync *Syncp
3464 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
3465 NDR_POINTER_REF, "afsFid: ", -1);
3467 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_fetchstatus,
3468 NDR_POINTER_REF, "FetchStatus: ", -1);
3470 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_fetchstatus,
3471 NDR_POINTER_REF, "FetchStatus: ", -1);
3473 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afstoken,
3474 NDR_POINTER_REF, "afsToken: ", -1);
3476 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_volsync,
3477 NDR_POINTER_REF, "VolSync: ", -1);
3478 MACRO_ST_CLEAR ("Symlink reply");
3484 fileexp_dissect_hardlink_resp
3486 tvb, int offset, packet_info * pinfo, proto_tree * tree, guint8 *drep)
3490 di = pinfo->private_data;
3491 if (di->conformant_run)
3497 [out] afsFetchStatus *OutFidStatusp,
3498 [out] afsFetchStatus *OutDirStatusp,
3499 [out] afsVolSync *Syncp
3504 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_fetchstatus,
3505 NDR_POINTER_REF, "FetchStatus: ", -1);
3507 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_fetchstatus,
3508 NDR_POINTER_REF, "FetchStatus: ", -1);
3510 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_volsync,
3511 NDR_POINTER_REF, "VolSync: ", -1);
3512 MACRO_ST_CLEAR ("Hardlink reply");
3517 fileexp_dissect_hardlink_rqst
3519 tvb, int offset, packet_info * pinfo, proto_tree * tree, guint8 *drep)
3523 di = pinfo->private_data;
3524 if (di->conformant_run)
3530 [in] afsFid *DirFidp,
3531 [in] afsTaggedName *Namep,
3532 [in] afsFid *ExistingFidp,
3533 [in] afsHyper *minVVp,
3534 [in] unsigned32 Flags,
3539 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
3540 NDR_POINTER_REF, "afsFid: ", -1);
3543 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep,
3544 dissect_afstaggedname, NDR_POINTER_REF,
3545 "afsTaggedName: ", -1);
3548 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
3549 NDR_POINTER_REF, "afsFid: ", -1);
3552 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_minvvp,
3553 NDR_POINTER_REF, "MinVVp:", -1);
3555 offset = dissect_afsFlags ( tvb, offset, pinfo, tree, drep);
3561 fileexp_dissect_makedir_resp
3563 tvb, int offset, packet_info * pinfo, proto_tree * tree, guint8 *drep)
3567 di = pinfo->private_data;
3568 if (di->conformant_run)
3574 [out] afsFid *OutFidp,
3575 [out] afsFetchStatus *OutFidStatusp,
3576 [out] afsFetchStatus *OutDirStatusp,
3577 [out] afsToken *OutTokenp,
3578 [out] afsVolSync *Syncp
3581 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
3582 NDR_POINTER_REF, "afsFid: ", -1);
3584 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_fetchstatus,
3585 NDR_POINTER_REF, "FetchStatus: ", -1);
3587 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_fetchstatus,
3588 NDR_POINTER_REF, "FetchStatus: ", -1);
3590 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afstoken,
3591 NDR_POINTER_REF, "afsToken: ", -1);
3593 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_volsync,
3594 NDR_POINTER_REF, "VolSync: ", -1);
3596 MACRO_ST_CLEAR ("MakeDir reply");
3602 fileexp_dissect_removedir_resp
3604 tvb, int offset, packet_info * pinfo, proto_tree * tree, guint8 *drep)
3608 di = pinfo->private_data;
3609 if (di->conformant_run)
3615 [out] afsFetchStatus *OutDirStatusp,
3616 [out] afsFid *OutFidp,
3617 [out] afsFetchStatus *OutDelStatusp,
3618 [out] afsVolSync *Syncp
3622 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_fetchstatus,
3623 NDR_POINTER_REF, "FetchStatus: ", -1);
3625 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
3626 NDR_POINTER_REF, "afsFid: ", -1);
3628 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_fetchstatus,
3629 NDR_POINTER_REF, "FetchStatus: ", -1);
3631 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_volsync,
3632 NDR_POINTER_REF, "VolSync: ", -1);
3633 MACRO_ST_CLEAR ("RemoveDir reply");
3640 fileexp_dissect_readdir_resp
3642 tvb, int offset, packet_info * pinfo, proto_tree * tree, guint8 *drep)
3645 guint32 nextoffsetp_high, nextoffsetp_low;
3648 di = pinfo->private_data;
3649 if (di->conformant_run)
3656 [out] afsHyper *NextOffsetp,
3657 [out] afsFetchStatus *OutDirStatusp,
3658 [out] afsToken *OutTokenp,
3659 [out] afsVolSync *Syncp,
3660 [out] pipe_t *dirStream
3664 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
3665 hf_fileexp_nextoffsetp_high, &nextoffsetp_high);
3667 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
3668 hf_fileexp_nextoffsetp_low, &nextoffsetp_low);
3670 if (check_col (pinfo->cinfo, COL_INFO))
3671 col_append_fstr (pinfo->cinfo, COL_INFO, " NextOffsetp:%u/%u",
3672 nextoffsetp_high, nextoffsetp_low);
3674 /* all packets seem to have SKIPTOKEN/SKIPSTATUS sent, and thus these structures are missing on calls holding tokens. */
3677 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_volsync,
3678 NDR_POINTER_REF, "VolSync: ", -1);
3679 /* XXX need to add pipe_t here, once figured out. */
3685 fileexp_dissect_releasetokens_resp
3687 tvb, int offset, packet_info * pinfo, proto_tree * tree, guint8 *drep)
3691 di = pinfo->private_data;
3692 if (di->conformant_run)
3698 MACRO_ST_CLEAR ("ReleaseTokens reply");
3703 fileexp_dissect_releasetokens_rqst
3705 tvb, int offset, packet_info * pinfo, proto_tree * tree, guint8 *drep)
3709 di = pinfo->private_data;
3710 if (di->conformant_run)
3717 [in] afsReturns *Tokens_Arrayp,
3718 [in] unsigned32 Flags
3721 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsReturns,
3722 NDR_POINTER_REF, "afsReturns: ", -1);
3724 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFlags,
3725 NDR_POINTER_REF, "afsFlags: ", -1);
3730 fileexp_dissect_gettime_resp
3732 tvb, int offset, packet_info * pinfo, proto_tree * tree, guint8 *drep)
3735 guint32 secondsp, usecondsp, syncdistance, syncdispersion;
3738 di = pinfo->private_data;
3739 if (di->conformant_run)
3745 [out] unsigned32 *Secondsp,
3746 [out] unsigned32 *USecondsp,
3747 [out] unsigned32 *SyncDistance,
3748 [out] unsigned32 *SyncDispersion
3752 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
3753 hf_fileexp_gettime_secondsp, &secondsp);
3755 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
3756 hf_fileexp_gettime_usecondsp, &usecondsp);
3758 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
3759 hf_fileexp_gettime_syncdistance, &syncdistance);
3761 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
3762 hf_fileexp_gettime_syncdispersion, &syncdispersion);
3764 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);
3766 MACRO_ST_CLEAR ("GetTime reply");
3773 fileexp_dissect_gettime_rqst
3775 tvb _U_, int offset, packet_info * pinfo, proto_tree * tree _U_, guint8 *drep _U_)
3779 di = pinfo->private_data;
3780 if (di->conformant_run)
3791 fileexp_dissect_processquota_resp
3793 tvb, int offset, packet_info * pinfo, proto_tree * tree, guint8 *drep)
3797 di = pinfo->private_data;
3798 if (di->conformant_run)
3804 [in,out] afsQuota *quotaListp,
3805 [out] afsFetchStatus *OutStatusp,
3806 [out] afsVolSync *Syncp
3809 /* XXX need afsQuota */
3812 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_fetchstatus,
3813 NDR_POINTER_REF, "FetchStatus: ", -1);
3815 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_volsync,
3816 NDR_POINTER_REF, "VolSync: ", -1);
3817 MACRO_ST_CLEAR ("ProcessQuota reply");
3823 fileexp_dissect_processquota_rqst
3825 tvb, int offset, packet_info * pinfo, proto_tree * tree, guint8 *drep)
3829 di = pinfo->private_data;
3830 if (di->conformant_run)
3837 [in] afsHyper *minVVp,
3838 [in] unsigned32 Flags,
3839 [in,out] afsQuota *quotaListp,
3844 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
3845 NDR_POINTER_REF, "afsFid: ", -1);
3847 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_minvvp,
3848 NDR_POINTER_REF, "MinVVp:", -1);
3849 offset = dissect_afsFlags ( tvb, offset, pinfo, tree, drep);
3851 /* XXX need to figure out afsQuota here */
3856 fileexp_dissect_getserverinterfaces_rqst
3858 tvb _U_, int offset, packet_info * pinfo, proto_tree * tree _U_, guint8 *drep _U_)
3862 di = pinfo->private_data;
3863 if (di->conformant_run)
3869 [in, out] dfs_interfaceList *serverInterfacesP
3871 /* XXX figure out dfs_interfacelist */
3876 fileexp_dissect_getserverinterfaces_resp
3878 tvb, int offset, packet_info * pinfo, proto_tree * tree, guint8 *drep)
3882 di = pinfo->private_data;
3883 if (di->conformant_run)
3889 [in, out] dfs_interfaceList *serverInterfacesP
3891 /* XXX figure out dfs_interfacelist */
3893 MACRO_ST_CLEAR ("GetServerInterfaces reply");
3898 fileexp_dissect_setparams_rqst
3900 tvb, int offset, packet_info * pinfo, proto_tree * tree, guint8 *drep)
3904 di = pinfo->private_data;
3905 if (di->conformant_run)
3911 [in] unsigned32 Flags,
3912 [in, out] afsConnParams *paramsP
3914 offset = dissect_afsFlags( tvb, offset, pinfo, tree, drep);
3916 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep,
3917 dissect_afsConnParams, NDR_POINTER_REF,
3918 "afsConnParams:", -1);
3923 fileexp_dissect_setparams_resp
3925 tvb, int offset, packet_info * pinfo, proto_tree * tree, guint8 *drep)
3929 di = pinfo->private_data;
3930 if (di->conformant_run)
3936 [in, out] afsConnParams *paramsP
3940 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep,
3941 dissect_afsConnParams, NDR_POINTER_REF,
3942 "afsConnParams:", -1);
3943 MACRO_ST_CLEAR ("SetParams reply");
3948 fileexp_dissect_makemountpoint_resp
3950 tvb, int offset, packet_info * pinfo, proto_tree * tree, guint8 *drep)
3954 di = pinfo->private_data;
3955 if (di->conformant_run)
3961 [out] afsFid *OutFidp,
3962 [out] afsFetchStatus *OutFidStatusp,
3963 [out] afsFetchStatus *OutDirStatusp,
3964 [out] afsVolSync *Syncp
3968 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
3969 NDR_POINTER_REF, "afsFid: ", -1);
3971 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_fetchstatus,
3972 NDR_POINTER_REF, "FetchStatus: ", -1);
3974 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_fetchstatus,
3975 NDR_POINTER_REF, "FetchStatus: ", -1);
3978 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_volsync,
3979 NDR_POINTER_REF, "VolSync: ", -1);
3980 MACRO_ST_CLEAR ("MakeMountPoint reply");
3985 fileexp_dissect_getstatistics_rqst
3987 tvb _U_, int offset, packet_info * pinfo, proto_tree * tree _U_, guint8 *drep _U_)
3991 di = pinfo->private_data;
3992 if (di->conformant_run)
3997 /* nothing for request */
4002 fileexp_dissect_getstatistics_resp
4004 tvb _U_, int offset, packet_info * pinfo, proto_tree * tree _U_, guint8 *drep _U_)
4008 di = pinfo->private_data;
4009 if (di->conformant_run)
4015 [out] afsStatistics *Statisticsp
4017 /* XXX figure out afsStatistics */
4022 fileexp_dissect_bulkfetchvv_rqst
4024 tvb, int offset, packet_info * pinfo, proto_tree * tree, guint8 *drep)
4027 guint32 cellidp_high, cellidp_low, numvols, spare1, spare2;
4030 di = pinfo->private_data;
4031 if (di->conformant_run)
4037 [in] afsHyper *cellIdp,
4038 [in] afsBulkVolIDs *VolIDsp,
4039 [in] unsigned32 NumVols,
4040 [in] unsigned32 Flags,
4041 [in] unsigned32 spare1,
4042 [in] unsigned32 spare2,
4045 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
4046 hf_fileexp_cellidp_high, &cellidp_high);
4048 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
4049 hf_fileexp_cellidp_low, &cellidp_low);
4051 if (check_col (pinfo->cinfo, COL_INFO))
4052 col_append_fstr (pinfo->cinfo, COL_INFO, " CellIDp:%u/%u", cellidp_high,
4055 /* XXX figure out the afsBulkVolIDS */
4057 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
4058 hf_fileexp_bulkfetchvv_numvols, &numvols);
4060 offset = dissect_afsFlags (tvb, offset, pinfo, tree, drep);
4062 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
4063 hf_fileexp_bulkfetchvv_spare1, &spare1);
4065 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
4066 hf_fileexp_bulkfetchvv_spare2, &spare2);
4071 fileexp_dissect_bulkfetchvv_resp
4073 tvb _U_, int offset, packet_info * pinfo, proto_tree * tree _U_, guint8 *drep _U_)
4077 di = pinfo->private_data;
4078 if (di->conformant_run)
4084 [out] afsBulkVVs *VolVVsp,
4085 [out] unsigned32 *spare4
4087 /* XXX need to figure out afsBulkVVs ; */
4092 fileexp_dissect_bulkkeepalive_resp
4094 tvb, int offset, packet_info * pinfo, proto_tree * tree, guint8 *drep)
4099 di = pinfo->private_data;
4100 if (di->conformant_run)
4106 [out] unsigned32 *spare4
4110 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
4111 hf_fileexp_bulkkeepalive_spare4, &spare4);
4112 MACRO_ST_CLEAR ("BulkKeepAlive reply");
4117 fileexp_dissect_bulkkeepalive_rqst
4119 tvb, int offset, packet_info * pinfo, proto_tree * tree, guint8 *drep)
4121 guint32 numexecfids, spare1, spare2;
4124 di = pinfo->private_data;
4125 if (di->conformant_run)
4131 [in] afsBulkFEX *KAFEXp,
4132 [in] unsigned32 numExecFids,
4133 [in] unsigned32 Flags,
4134 [in] unsigned32 spare1,
4135 [in] unsigned32 spare2,
4137 /* XXX figure out afsBulkFEX */
4139 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
4140 hf_fileexp_bulkkeepalive_numexecfids, &numexecfids);
4142 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFlags,
4143 NDR_POINTER_REF, "afsFlags:", -1);
4145 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
4146 hf_fileexp_bulkkeepalive_spare1, &spare1);
4148 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
4149 hf_fileexp_bulkkeepalive_spare2, &spare2);
4154 fileexp_dissect_bulkfetchstatus_rqst
4156 tvb, int offset, packet_info * pinfo, proto_tree * tree, guint8 *drep)
4158 guint32 offsetp_high, offsetp_low, size;
4161 di = pinfo->private_data;
4162 if (di->conformant_run)
4169 [in] afsFid *DirFidp,
4170 [in] afsHyper *Offsetp,
4171 [in] unsigned32 Size,
4172 [in] afsHyper *minVVp,
4173 [in] unsigned32 Flags,
4177 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
4178 NDR_POINTER_REF, "afsFid: ", -1);
4180 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
4181 hf_fileexp_offsetp_high, &offsetp_high);
4183 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
4184 hf_fileexp_offsetp_low, &offsetp_low);
4186 if (check_col (pinfo->cinfo, COL_INFO))
4187 col_append_fstr (pinfo->cinfo, COL_INFO, " Offsetp:%u/%u", offsetp_high,
4190 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
4191 hf_fileexp_bulkfetchstatus_size, &size);
4193 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_minvvp,
4194 NDR_POINTER_REF, "MinVVp:", -1);
4195 offset = dissect_afsFlags(tvb, offset, pinfo, tree, drep);
4201 fileexp_dissect_bulkfetchstatus_resp
4203 tvb, int offset, packet_info * pinfo, proto_tree * tree, guint8 *drep)
4208 di = pinfo->private_data;
4209 if (di->conformant_run)
4215 [out] BulkStat *bulkstats,
4216 [out] afsHyper *NextOffsetp,
4217 [out] afsFetchStatus *OutDirStatusp,
4218 [out] afsToken *OutTokenp,
4219 [out] afsVolSync *Syncp,
4220 [out] pipe_t *dirStream
4224 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsBulkStat,
4225 NDR_POINTER_REF, "BulkStat: ", -1);
4226 /* Under construction. The packet seems to have the pipe_t before the rest of the data listed in idl. */
4230 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
4231 hf_fileexp_nextoffsetp_high, &nextoffsetp_high);
4233 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
4234 hf_fileexp_nextoffsetp_low, &nextoffsetp_low);
4236 if (check_col (pinfo->cinfo, COL_INFO))
4237 col_append_fstr (pinfo->cinfo, COL_INFO, " NextOffsetp:%u/%u",
4238 nextoffsetp_high, nextoffsetp_low);
4240 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_fetchstatus,
4241 NDR_POINTER_REF, "FetchStatus: ", -1);
4243 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afstoken,
4244 NDR_POINTER_REF, "afsToken: ", -1);
4246 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_volsync,
4247 NDR_POINTER_REF, "VolSync: ", -1);
4249 /* XXX figure out pipe_t */
4254 static dcerpc_sub_dissector fileexp_dissectors[] = {
4255 { 0, "SetContext", fileexp_dissect_setcontext_rqst, fileexp_dissect_setcontext_resp} ,
4256 { 1, "LookupRoot", fileexp_dissect_lookuproot_rqst, fileexp_dissect_lookuproot_resp} ,
4257 { 2, "FetchData", fileexp_dissect_fetchdata_rqst, fileexp_dissect_fetchdata_resp} ,
4258 { 3, "FetchAcl", fileexp_dissect_fetchacl_rqst, fileexp_dissect_fetchacl_resp} ,
4259 { 4, "FetchStatus", fileexp_dissect_fetchstatus_rqst, fileexp_dissect_fetchstatus_resp} ,
4260 { 5, "StoreData", fileexp_dissect_storedata_rqst, fileexp_dissect_storedata_resp} ,
4261 { 6, "StoreAcl", fileexp_dissect_storeacl_rqst, fileexp_dissect_storeacl_resp} ,
4262 { 7, "StoreStatus", fileexp_dissect_storestatus_rqst, fileexp_dissect_storestatus_resp} ,
4263 { 8, "RemoveFile", fileexp_dissect_removefile_rqst, fileexp_dissect_removefile_resp} ,
4264 { 9, "CreateFile", fileexp_dissect_createfile_rqst, fileexp_dissect_createfile_resp} ,
4265 { 10, "Rename", fileexp_dissect_rename_rqst, fileexp_dissect_rename_resp} ,
4266 { 11, "Symlink", fileexp_dissect_symlink_rqst, fileexp_dissect_symlink_resp} ,
4267 { 12, "HardLink", fileexp_dissect_hardlink_rqst, fileexp_dissect_hardlink_resp} ,
4268 { 13, "MakeDir", fileexp_dissect_makedir_rqst, fileexp_dissect_makedir_resp} ,
4269 { 14, "RemoveDir", fileexp_dissect_removedir_rqst, fileexp_dissect_removedir_resp} ,
4270 { 15, "Readdir", fileexp_dissect_readdir_rqst, fileexp_dissect_readdir_resp} ,
4271 { 16, "Lookup", fileexp_dissect_lookup_rqst, fileexp_dissect_lookup_resp} ,
4272 { 17, "GetToken", fileexp_dissect_gettoken_rqst, fileexp_dissect_gettoken_resp} ,
4273 { 18, "ReleaseTokens", fileexp_dissect_releasetokens_rqst, fileexp_dissect_releasetokens_resp} ,
4274 { 19, "GetTime", fileexp_dissect_gettime_rqst, fileexp_dissect_gettime_resp} ,
4275 { 20, "MakeMountPoint", fileexp_dissect_makemountpoint_rqst, fileexp_dissect_makemountpoint_resp} ,
4276 { 21, "GetStatistics", fileexp_dissect_getstatistics_rqst, fileexp_dissect_getstatistics_resp} ,
4277 { 22, "BulkFetchVV", fileexp_dissect_bulkfetchvv_rqst, fileexp_dissect_bulkfetchvv_resp} ,
4278 { 23, "BulkKeepAlive", fileexp_dissect_bulkkeepalive_rqst, fileexp_dissect_bulkkeepalive_resp} ,
4279 { 24, "ProcessQuota", fileexp_dissect_processquota_rqst, fileexp_dissect_processquota_resp} ,
4280 { 25, "GetServerInterfaces", fileexp_dissect_getserverinterfaces_rqst, fileexp_dissect_getserverinterfaces_resp} ,
4281 { 26, "SetParams", fileexp_dissect_setparams_rqst, fileexp_dissect_setparams_resp} ,
4282 { 27, "BulkFetchStatus", fileexp_dissect_bulkfetchstatus_rqst, fileexp_dissect_bulkfetchstatus_resp} ,
4283 { 0, NULL, NULL, NULL}
4287 proto_register_fileexp (void)
4290 static hf_register_info hf[] = {
4291 { &hf_error_st, {"AFS4Int Error Status Code", "fileexp.st", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL}},
4292 { &hf_fileexp_flags, {"DFS Flags", "fileexp.flags", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL}},
4293 { &hf_fileexp_tn_string, {"String", "fileexp.string", FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL}},
4294 { &hf_fileexp_tn_size, {"String Size", "fileexp.tn_size", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL}},
4295 { &hf_fileexp_opnum, {"Operation", "fileexp.opnum", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL}},
4296 { &hf_fileexp_setcontext_rqst_epochtime, {"EpochTime:", "fileexp.setcontext_rqst_epochtime", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL, 0x0, NULL, HFILL}},
4297 { &hf_fileexp_setcontext_rqst_secobjectid, { "SetObjectid:", "fileexp.setcontext_secobjextid", FT_STRING, BASE_NONE, NULL, 0x0, "UUID", HFILL} } ,
4298 { &hf_fileexp_setcontext_rqst_clientsizesattrs, { "ClientSizeAttrs:", "fileexp.setcontext_clientsizesattrs", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4299 { &hf_fileexp_setcontext_rqst_parm7, { "Parm7:", "fileexp.setcontext.parm7", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4300 { &hf_fileexp_acl_len, {"Acl Length", "fileexp.acl_len", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL}},
4301 { &hf_fileexp_acltype, {"Acl type", "fileexp.acltype", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL}},
4302 { &hf_fileexp_minvvp_high, {"minVVp high", "fileexp.minvvp_high", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL}},
4303 { &hf_fileexp_minvvp_low, {"minVVp low", "fileexp.minvvp_low", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL}},
4304 { &hf_fileexp_volume_low, { "Volume low", "fileexp.volume_low", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4305 { &hf_fileexp_volume_high, { "Volume high", "fileexp.volume_high", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4306 { &hf_fileexp_vnode, { "Vnode", "fileexp.vnode", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4307 { &hf_fileexp_unique, { "Unique", "fileexp.unique", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4308 { &hf_fileexp_accesstime_msec, { "Access time (msec)", "fileexp.accesstime_msec", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4309 { &hf_fileexp_accesstime_sec, { "Access time (sec)", "fileexp.accesstime_sec", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4310 { &hf_fileexp_aclexpirationtime, { "Acl expiration time", "fileexp.aclexpirationtime", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4311 { &hf_fileexp_agtypeunique, { "agtypeunique", "fileexp.agtypeunique", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4312 { &hf_fileexp_anonymousaccess, { "Anonymous Access", "fileexp.anonymousaccess", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4313 { &hf_fileexp_author, { "Author", "fileexp.author", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4314 { &hf_fileexp_blocksused, { "Blocks used", "fileexp.blocksused", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} },
4315 { &hf_fileexp_calleraccess, { "Caller access", "fileexp.calleraccess", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4316 { &hf_fileexp_changetime_msec, { "Change time (msec)", "fileexp.changetime_msec", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4317 { &hf_fileexp_changetime_sec, { "Change time (sec)", "fileexp.changetime_sec", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4318 { &hf_fileexp_clientspare1, { "Client spare1", "fileexp.clientspare1", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4319 { &hf_fileexp_dataversion_high, { "Data version (high)", "fileexp.dataversion_high", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4320 { &hf_fileexp_dataversion_low, { "Data version (low)", "fileexp.dataversion_low", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4321 { &hf_fileexp_devicenumber, { "Device number", "fileexp.devicenumber", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4322 { &hf_fileexp_devicenumberhighbits, { "Device number high bits", "fileexp.devicenumberhighbits", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4323 { &hf_fileexp_filetype, { "File type", "fileexp.filetype", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4324 { &hf_fileexp_group, { "Group", "fileexp.group", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4325 { &hf_fileexp_himaxspare, { "Hi max spare", "fileexp.himaxspare", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4326 { &hf_fileexp_interfaceversion, { "Interface version", "fileexp.interfaceversion", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4327 { &hf_fileexp_length_high, { "Length high", "fileexp.length_high", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4328 { &hf_fileexp_length_low, { "Length low", "fileexp.length_low", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4329 { &hf_fileexp_linkcount, { "Link count", "fileexp.linkcount", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4330 { &hf_fileexp_lomaxspare, { "Lo max spare", "fileexp.lomaxspare", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4331 { &hf_fileexp_mode, { "Mode", "fileexp.mode", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4332 { &hf_fileexp_modtime_msec, { "Modify time (msec)", "fileexp.modtime_msec", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4333 { &hf_fileexp_modtime_sec, { "Modify time (sec)", "fileexp.modtime_sec", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4334 { &hf_fileexp_objectuuid, { "Object uuid", "fileexp.objectuuid", FT_GUID, BASE_NONE, NULL, 0x0, "UUID", HFILL} } ,
4335 { &hf_fileexp_owner, { "Owner", "fileexp.owner", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4336 { &hf_fileexp_parentunique, { "Parent unique", "fileexp.parentunique", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4337 { &hf_fileexp_parentvnode, { "Parent vnode", "fileexp.parentvnode", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4338 { &hf_fileexp_pathconfspare, { "Path conf spare", "fileexp.pathconfspare", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4339 { &hf_fileexp_servermodtime_msec, { "Server modify time (msec)", "fileexp.servermodtime_msec", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4340 { &hf_fileexp_servermodtime_sec, { "Server modify time (sec)", "fileexp.servermodtime_sec", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4341 { &hf_fileexp_spare4, { "Spare4", "fileexp.spare4", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4342 { &hf_fileexp_spare5, { "Spare5", "fileexp.spare5", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4343 { &hf_fileexp_spare6, { "Spare6", "fileexp.spare6", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4344 { &hf_fileexp_typeuuid, { "Type uuid", "fileexp.typeuuid", FT_GUID, BASE_NONE, NULL, 0x0, "UUID", HFILL} } ,
4345 { &hf_fileexp_volid_hi, { "Vol id hi", "fileexp.volid_hi", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4346 { &hf_fileexp_volid_low, { "Vol id low", "fileexp.volid_low", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4347 { &hf_fileexp_vvage, { "Vvage", "fileexp.vvage", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4348 { &hf_fileexp_vv_hi, { "Vv hi", "fileexp.vv_hi", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4349 { &hf_fileexp_vv_low, { "Vv low", "fileexp.vv_low", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4350 { &hf_fileexp_vvpingage, { "Vv pingage", "fileexp.vvpingage", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4351 { &hf_fileexp_vvspare1, { "Vv spare1", "fileexp.vvspare1", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4352 { &hf_fileexp_vvspare2, { "Vv spare2", "fileexp.vvspare2", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4353 { &hf_fileexp_beginrange, { "Begin range", "fileexp.beginrange", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4354 { &hf_fileexp_beginrangeext, { "Begin range ext", "fileexp.beginrangeext", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4355 { &hf_fileexp_endrange, { "End range", "fileexp.endrange", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4356 { &hf_fileexp_endrangeext, { "End range ext", "fileexp.endrangeext", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4357 { &hf_fileexp_expirationtime, { "Expiration time", "fileexp.expirationtime", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4358 { &hf_fileexp_tokenid_hi, { "Tokenid hi", "fileexp.tokenid_hi", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4359 { &hf_fileexp_tokenid_low, { "Tokenid low", "fileexp.tokenid_low", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4360 { &hf_fileexp_type_hi, { "Type hi", "fileexp.type_hi", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4361 { &hf_fileexp_type_low, { "Type low", "fileexp.type_low", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4362 { &hf_fileexp_tn_length, { "Tn length", "fileexp.tn_length", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4363 { &hf_fileexp_tn_tag, { "Tn tag", "fileexp.tn_tag", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4364 { &hf_fileexp_storestatus_accesstime_sec, { "Store status access time (sec)", "fileexp.storestatus_accesstime_sec", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4365 { &hf_fileexp_storestatus_accesstime_usec, { "Store status access time (usec)", "fileexp.storestatus_accesstime_usec", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4366 { &hf_fileexp_storestatus_changetime_sec, { "Store status change time (sec)", "fileexp.storestatus_changetime_sec", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4367 { &hf_fileexp_storestatus_changetime_usec, { "Store status change time (usec)", "fileexp.storestatus_changetime_usec", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4368 { &hf_fileexp_storestatus_clientspare1, { "Store Status client spare1", "fileexp.storestatus_clientspare1", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4369 { &hf_fileexp_storestatus_cmask, { "Store status cmask", "fileexp.storestatus_cmask", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4370 { &hf_fileexp_storestatus_devicenumber, { "Store status device number", "fileexp.storestatus_devicenumber", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4371 { &hf_fileexp_storestatus_devicenumberhighbits, { "Store status device number high bits", "fileexp.storestatus_devicenumberhighbits", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4372 { &hf_fileexp_storestatus_devicetype, { "Store status device type", "fileexp.storestatus_devicetype", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4373 { &hf_fileexp_storestatus_group, { "Store status group", "fileexp.storestatus_group", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4374 { &hf_fileexp_storestatus_length_high, { "Store status length high", "fileexp.storestatus_length_high", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4375 { &hf_fileexp_storestatus_length_low, { "Store status length low", "fileexp.storestatus_length_low", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4376 { &hf_fileexp_storestatus_mask, { "Store status mask", "fileexp.storestatus_mask", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4377 { &hf_fileexp_storestatus_mode, { "Store status mode", "fileexp.storestatus_mode", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4378 { &hf_fileexp_storestatus_modtime_sec, { "Store status modify time (sec)", "fileexp.storestatus_modtime_sec", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4379 { &hf_fileexp_storestatus_modtime_usec, { "Store status modify time (usec)", "fileexp.storestatus_modtime_usec", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4380 { &hf_fileexp_storestatus_owner, { "Store status owner", "fileexp.storestatus_owner", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4381 { &hf_fileexp_storestatus_spare1, { "Store status spare1", "fileexp.storestatus_spare1", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4382 { &hf_fileexp_storestatus_spare2, { "Store status spare2", "fileexp.storestatus_spare2", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4383 { &hf_fileexp_storestatus_spare3, { "Store status spare3", "fileexp.storestatus_spare3", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4384 { &hf_fileexp_storestatus_spare4, { "Store status spare4", "fileexp.storestatus_spare4", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4385 { &hf_fileexp_storestatus_spare5, { "Store status spare5", "fileexp.storestatus_spare5", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4386 { &hf_fileexp_storestatus_spare6, { "Store status spare6", "fileexp.storestatus_spare6", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4387 { &hf_fileexp_storestatus_trunc_high, { "Store status trunc high", "fileexp.storestatus_trunc_high", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4388 { &hf_fileexp_storestatus_trunc_low, { "Store status trunc low", "fileexp.storestatus_trunc_low", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4389 { &hf_fileexp_storestatus_typeuuid, { "Store status type uuid", "fileexp.storestatus_typeuuid", FT_GUID, BASE_NONE, NULL, 0x0, "UUID", HFILL} } ,
4390 { &hf_fileexp_st, { "st", "fileexp.st", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4391 { &hf_fileexp_uint, {"uint", "fileexp.uint", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL}},
4392 { &hf_fileexp_l_end_pos, { "l_end_pos", "fileexp.l_end_pos", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4393 { &hf_fileexp_l_end_pos_ext, { "l_end_pos_ext", "fileexp.l_end_pos_ext", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4394 { &hf_fileexp_l_fstype, { "l_fstype", "fileexp.l_fstype", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4395 { &hf_fileexp_l_pid, { "l_pid", "fileexp.l_pid", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4396 { &hf_fileexp_l_start_pos, { "l_start_pos", "fileexp.l_start_pos", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4397 { &hf_fileexp_l_start_pos_ext, { "l_start_pos_ext", "fileexp.l_start_pos_ext", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4398 { &hf_fileexp_l_sysid, { "l_sysid", "fileexp.l_sysid", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4399 { &hf_fileexp_l_type, { "l_type", "fileexp.l_type", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4400 { &hf_fileexp_l_whence, { "l_whence", "fileexp.l_whence", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL} } ,
4401 {&hf_afsconnparams_mask, {"afs conn params mask", "fileexp.afs_connparams_mask", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL}},
4402 {&hf_afsconnparams_values, {"afs conn params values", "fileexp.afs_connparams_values", FT_UINT32, BASE_DEC, NULL, 0x0, NULL, HFILL}},
4403 {&hf_fileexp_afsFid_cell_high, {"Cell High", "fileexp.afsFid.cell_high", FT_UINT32, BASE_HEX, NULL, 0x0, "afsFid Cell High", HFILL}},
4404 {&hf_fileexp_afsFid_cell_low, {"Cell Low", "fileexp.afsFid.cell_low", FT_UINT32, BASE_HEX, NULL, 0x0, "afsFid Cell Low", HFILL}},
4405 {&hf_fileexp_afsFid_volume_high, {"Volume High", "fileexp.afsFid.volume_high", FT_UINT32, BASE_HEX, NULL, 0x0, "afsFid Volume High", HFILL}},
4406 {&hf_fileexp_afsFid_volume_low, {"Volume Low", "fileexp.afsFid.volume_low", FT_UINT32, BASE_HEX, NULL, 0x0, "afsFid Volume Low", HFILL}},
4407 {&hf_fileexp_afsFid_Vnode, {"Vnode", "fileexp.afsFid.Vnode", FT_UINT32, BASE_HEX, NULL, 0x0, "afsFid Vnode", HFILL}},
4408 {&hf_fileexp_afsFid_Unique, {"Unique", "fileexp.afsFid.Unique", FT_UINT32, BASE_HEX, NULL, 0x0, "afsFid Unique", HFILL}},
4409 {&hf_fileexp_afsNetAddr_type, {"Type", "afsNetAddr.type", FT_UINT16, BASE_DEC, NULL, 0x0, NULL, HFILL}},
4410 {&hf_fileexp_afsNetAddr_data, {"IP Data", "afsNetAddr.data", FT_UINT8, BASE_DEC, NULL, 0x0, NULL, HFILL}},
4411 {&hf_fileexp_position_high, {"Position High", "fileexp.position_high", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL}},
4412 {&hf_fileexp_position_low, {"Position Low", "fileexp.position_low", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL}},
4413 {&hf_fileexp_afsreturndesc_tokenid_high, {"Token id High", "fileexp.afsreturndesc_tokenid_high", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL}},
4414 {&hf_fileexp_afsreturndesc_tokenid_low, {"Token id low", "fileexp.afsreturndesc_tokenid_low", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL}},
4415 {&hf_fileexp_afsreturndesc_type_high, {"Type high", "fileexp.type_high", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL}},
4416 {&hf_fileexp_afsreturndesc_type_low, {"Type low", "fileexp.type_low", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL}},
4417 {&hf_fileexp_offsetp_high, {"offset high", "fileexp.offset_high", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL}},
4418 {&hf_fileexp_offsetp_low, {"offset high", "fileexp.offset_high", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL}},
4419 {&hf_fileexp_nextoffsetp_high, {"next offset high", "fileexp.nextoffset_high", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL}},
4420 {&hf_fileexp_nextoffsetp_low, {"next offset low", "fileexp.nextoffset_low", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL}},
4421 {&hf_fileexp_returntokenidp_high, {"return token idp high", "fileexp.returntokenidp_high", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL}},
4422 {&hf_fileexp_returntokenidp_low, {"return token idp low", "fileexp.returntokenidp_low", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL}},
4423 {&hf_fileexp_cellidp_high, {"cellidp high", "fileexp.cellidp_high", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL}},
4424 {&hf_fileexp_cellidp_low, {"cellidp low", "fileexp.cellidp_low", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL}},
4425 {&hf_afserrorstatus_st, {"AFS Error Code", "fileexp.afserrortstatus_st", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL}},
4426 {&hf_fileexp_length, {"Length", "fileexp.length", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL}},
4427 {&hf_fileexp_afsTaggedPath_tp_chars, {"AFS Tagged Path", "fileexp.TaggedPath_tp_chars", FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL}},
4428 {&hf_fileexp_afsTaggedPath_tp_tag, {"AFS Tagged Path Name", "fileexp.TaggedPath_tp_tag", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL}},
4429 {&hf_fileexp_afsacl_uuid1, {"AFS ACL UUID1", "fileexp.afsacl_uuid1", FT_GUID, BASE_NONE, NULL, 0x0, "UUID", HFILL}},
4430 {&hf_fileexp_bulkfetchstatus_size, {"BulkFetchStatus Size", "fileexp.bulkfetchstatus_size", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL}},
4431 {&hf_fileexp_bulkfetchvv_numvols, {"BulkFetchVv num vols", "fileexp.bulkfetchvv_numvols", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL}},
4432 {&hf_fileexp_bulkfetchvv_spare1, {"BulkFetchVv spare1", "fileexp.bulkfetchvv_spare1", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL}},
4433 {&hf_fileexp_bulkfetchvv_spare2, {"BulkFetchVv spare2", "fileexp.bulkfetchvv_spare2", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL}},
4434 {&hf_fileexp_bulkkeepalive_numexecfids, {"BulkKeepAlive numexecfids", "fileexp.bulkkeepalive_numexecfids", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL}},
4435 {&hf_fileexp_bulkkeepalive_spare4, {"BulkKeepAlive spare4", "fileexp.bulkfetchkeepalive_spare2", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL}},
4436 {&hf_fileexp_bulkkeepalive_spare2, {"BulkKeepAlive spare2", "fileexp.bulkfetchkeepalive_spare2", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL}},
4437 {&hf_fileexp_bulkkeepalive_spare1, {"BulkFetch KeepAlive spare1", "fileexp.bulkfetchkeepalive_spare1", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL}},
4438 {&hf_fileexp_afsacl_defaultcell_uuid, {"Default Cell UUID", "fileexp.defaultcell_uuid", FT_GUID, BASE_NONE, NULL, 0x0, "UUID", HFILL}},
4439 {&hf_fileexp_afsuuid_uuid, {"AFS UUID", "fileexp.uuid", FT_GUID, BASE_NONE, NULL, 0x0, "UUID", HFILL}},
4440 {&hf_fileexp_gettime_syncdispersion, {"GetTime Syncdispersion", "fileexp.gettime_syncdispersion", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL}},
4441 {&hf_fileexp_gettime_syncdistance, {"SyncDistance", "fileexp.gettime.syncdistance", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL}},
4442 {&hf_fileexp_gettime_usecondsp, {"GetTime usecondsp", "fileexp.gettime_usecondsp", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL}},
4443 {&hf_fileexp_readdir_size, {"Readdir Size", "fileexp.readdir.size", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL}},
4444 {&hf_fileexp_afsNameString_t_principalName_size, {"Principal Name Size", "fileexp.principalName_size", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL}},
4445 {&hf_fileexp_afsNameString_t_principalName_size2, {"Principal Name Size2", "fileexp.principalName_size2", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL}},
4446 {&hf_fileexp_afsTaggedPath_tp_length, {"Tagged Path Length", "fileexp.afsTaggedPath_length", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL}},
4447 {&hf_fileexp_fstype, {"Filetype", "fileexp.fstype", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL}},
4448 {&hf_fileexp_gettime_secondsp, {"GetTime secondsp", "fileexp.gettime_secondsp", FT_UINT32, BASE_HEX, NULL, 0x0, NULL, HFILL}},
4449 {&hf_fileexp_afsNameString_t_principalName_string, {"Principal Name", "fileexp.NameString_principal", FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL}},
4450 {&hf_fileexp_fetchdata_pipe_t_size, {"FetchData Pipe_t size", "fileexp.fetchdata_pipe_t_size", FT_STRING, BASE_NONE, NULL, 0x0, NULL, HFILL}},
4453 static gint *ett[] = {
4455 &ett_fileexp_afsReturnDesc,
4456 &ett_fileexp_afsFid,
4457 &ett_fileexp_afsNetAddr,
4458 &ett_fileexp_fetchstatus,
4459 &ett_fileexp_afsflags,
4460 &ett_fileexp_volsync,
4461 &ett_fileexp_minvvp,
4462 &ett_fileexp_afsfidtaggedname,
4463 &ett_fileexp_afstaggedname,
4464 &ett_fileexp_afstoken,
4465 &ett_fileexp_afsstorestatus,
4466 &ett_fileexp_afsRecordLock,
4467 &ett_fileexp_afsAcl,
4468 &ett_fileexp_afsNameString_t,
4469 &ett_fileexp_afsConnParams,
4470 &ett_fileexp_afsErrorStatus,
4471 &ett_fileexp_afsTaggedPath,
4472 &ett_fileexp_afsNetData,
4473 &ett_fileexp_afsBulkStat,
4474 &ett_fileexp_afsuuid,
4475 &ett_fileexp_offsetp,
4476 &ett_fileexp_returntokenidp,
4477 &ett_fileexp_afsbundled_stat,
4480 proto_fileexp = proto_register_protocol ("DCE DFS File Exporter", "FILEEXP", "fileexp");
4481 proto_register_field_array (proto_fileexp, hf, array_length (hf));
4482 proto_register_subtree_array (ett, array_length (ett));
4486 proto_reg_handoff_fileexp (void)
4489 * Register the protocol as dcerpc
4491 dcerpc_init_uuid (proto_fileexp, ett_fileexp, &uuid_fileexp, ver_fileexp,
4492 fileexp_dissectors, hf_fileexp_opnum);