1 /* packet-dcerpc-afs4int.c
3 * Routines for dcerpc Afs4Int 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.
35 #ifdef HAVE_SYS_TYPES_H
36 #include <sys/types.h>
42 #include <epan/packet.h>
43 #include "packet-dcerpc.h"
44 #include "packet-dcerpc-dce122.h"
46 #define AFS_SETMODTIME 1
47 #define AFS_SETOWNER 2
48 #define AFS_SETGROUP 4
50 #define AFS_SETACCESSTIME 0x10
51 #define AFS_SETCHANGETIME 0x20
52 #define AFS_SETLENGTH 0x40
53 #define AFS_SETTYPEUUID 0x80
54 #define AFS_SETDEVNUM 0x100
55 #define AFS_SETMODEXACT 0x200
56 #define AFS_SETTRUNCLENGTH 0x400
57 #define AFS_SETCLIENTSPARE 0x800
59 #define TKN_LOCK_READ 0x001
60 #define TKN_LOCK_WRITE 0x002
61 #define TKN_DATA_READ 0x004
62 #define TKN_DATA_WRITE 0x008
63 #define TKN_OPEN_READ 0x010
64 #define TKN_OPEN_WRITE 0x020
65 #define TKN_OPEN_SHARED 0x040
66 #define TKN_OPEN_EXCLUSIVE 0x080
67 #define TKN_OPEN_DELETE 0x100
68 #define TKN_OPEN_PRESERVE 0x200
69 #define TKN_STATUS_READ 0x400
70 #define TKN_STATUS_WRITE 0x800
71 #define TKN_OPEN_UNLINK 0x1000
72 #define TKN_SPOT_HERE 0x2000
73 #define TKN_SPOT_THERE 0x4000
74 #define TKN_OPEN_NO_READ 0x8000
75 #define TKN_OPEN_NO_WRITE 0x10000
76 #define TKN_OPEN_NO_UNLINK 0x20000
78 #define AFS_CONN_PARAM_HOSTLIFE 0
79 #define AFS_CONN_PARAM_HOSTRPC 1
80 #define AFS_CONN_PARAM_DEADSERVER 2
81 #define AFS_CONN_PARAM_EPOCH 3
82 #define AFS_CONN_PARAM_MAXFILE_CLIENT 4
83 #define AFS_CONN_PARAM_MAXFILE_SERVER 5
84 #define AFS_CONN_PARAM_HOST_TYPE_CLIENT 6
85 #define AFS_CONN_PARAM_HOST_TYPE_SERVER 7
86 #define AFS_CONN_PARAM_FT_MASK_CLIENT 8
87 #define AFS_CONN_PARAM_FT_MASK_SERVER 9
88 #define AFS_CONN_PARAM_SUPPORTS_64BITS 0x10000
89 #define AFS_CONN_PARAM_512BYTE_BLOCKS 0x20000
91 #define AFS_FLAG_SEC_SERVICE 0x1
92 #define AFS_FLAG_CONTEXT_NEW_IF 0x2
93 #define AFS_FLAG_CONTEXT_DO_RESET 0x4
94 #define AFS_FLAG_CONTEXT_NEW_ACL_IF 0x8
95 #define AFS_FLAG_CONTEXT_NEW_TKN_TYPES 0x10
97 #define AFS_FLAG_RETURNTOKEN 1
98 #define AFS_FLAG_TOKENJUMPQUEUE 2
99 #define AFS_FLAG_SKIPTOKEN 4
100 #define AFS_FLAG_NOOPTIMISM 0x8
101 #define AFS_FLAG_TOKENID 0x10
102 #define AFS_FLAG_RETURNBLOCKER 0x20
103 #define AFS_FLAG_ASYNCGRANT 0x40
104 #define AFS_FLAG_NOREVOKE 0x80
105 #define AFS_FLAG_MOVE_REESTABLISH 0x100
106 #define AFS_FLAG_SERVER_REESTABLISH 0x200
107 #define AFS_FLAG_NO_NEW_EPOCH 0x400
108 #define AFS_FLAG_MOVE_SOURCE_OK 0x800
109 #define AFS_FLAG_SYNC 0x1000
110 #define AFS_FLAG_ZERO 0x2000
111 #define AFS_FLAG_SKIPSTATUS 0x4000
112 #define AFS_FLAG_FORCEREVOCATIONS 0x8000
113 #define AFS_FLAG_FORCEVOLQUIESCE 0x10000
114 #define AFS_FLAG_FORCEREVOCATIONDOWN 0x20000
116 static int hf_afs4int_opnum = -1;
119 static int hf_afs4int_afsFid_cell_high = -1;
120 static int hf_afs4int_afsuuid_uuid = -1;
121 static int hf_afs4int_fetchdata_pipe_t_size = -1;
122 static int hf_afs4int_afsNameString_t_principalName_string = -1;
123 static int hf_afs4int_afsFid_cell_low = -1;
124 static int hf_afs4int_afsFid_volume_high = -1;
125 static int hf_afs4int_afsFid_volume_low = -1;
126 static int hf_afs4int_afsFid_Vnode = -1;
127 static int hf_afs4int_afsFid_Unique = -1;
128 static int hf_afs4int_volume_high = -1;
129 static int hf_afs4int_volume_low = -1;
130 static int hf_afs4int_vnode = -1;
131 static int hf_afs4int_unique = -1;
132 static int hf_afs4int_interfaceversion = -1;
133 static int hf_afs4int_filetype = -1;
134 static int hf_afs4int_linkcount = -1;
135 static int hf_afs4int_length_high = -1;
136 static int hf_afs4int_length_low = -1;
137 static int hf_afs4int_dataversion_high = -1;
138 static int hf_afs4int_dataversion_low = -1;
139 static int hf_afs4int_author = -1;
140 static int hf_afs4int_owner = -1;
141 static int hf_afs4int_group = -1;
142 static int hf_afs4int_calleraccess = -1;
143 static int hf_afs4int_anonymousaccess = -1;
144 static int hf_afs4int_aclexpirationtime = -1;
145 static int hf_afs4int_mode = -1;
146 static int hf_afs4int_parentvnode = -1;
147 static int hf_afs4int_parentunique = -1;
148 static int hf_afs4int_modtime_sec = -1;
149 static int hf_afs4int_modtime_msec = -1;
150 static int hf_afs4int_changetime_sec = -1;
151 static int hf_afs4int_changetime_msec = -1;
152 static int hf_afs4int_accesstime_sec = -1;
153 static int hf_afs4int_accesstime_msec = -1;
154 static int hf_afs4int_servermodtime_sec = -1;
155 static int hf_afs4int_servermodtime_msec = -1;
156 static int hf_afs4int_typeuuid = -1;
157 static int hf_afs4int_objectuuid = -1;
158 static int hf_afs4int_devicenumber = -1;
159 static int hf_afs4int_blocksused = -1;
160 static int hf_afs4int_clientspare1 = -1;
161 static int hf_afs4int_devicenumberhighbits = -1;
162 static int hf_afs4int_agtypeunique = -1;
163 static int hf_afs4int_himaxspare = -1;
164 static int hf_afs4int_lomaxspare = -1;
165 static int hf_afs4int_pathconfspare = -1;
166 static int hf_afs4int_spare4 = -1;
167 static int hf_afs4int_spare5 = -1;
168 static int hf_afs4int_spare6 = -1;
169 static int hf_afs4int_volid_hi = -1;
170 static int hf_afs4int_volid_low = -1;
171 static int hf_afs4int_vvage = -1;
172 static int hf_afs4int_vv_hi = -1;
173 static int hf_afs4int_vv_low = -1;
174 static int hf_afs4int_vvpingage = -1;
175 static int hf_afs4int_vvspare1 = -1;
176 static int hf_afs4int_vvspare2 = -1;
177 static int hf_afs4int_beginrange = -1;
178 static int hf_afs4int_beginrangeext = -1;
179 static int hf_afs4int_endrange = -1;
180 static int hf_afs4int_endrangeext = -1;
181 static int hf_afs4int_expirationtime = -1;
182 static int hf_afs4int_tokenid_hi = -1;
183 static int hf_afs4int_tokenid_low = -1;
184 static int hf_afs4int_type_hi = -1;
185 static int hf_afs4int_type_low = -1;
186 static int hf_afs4int_tn_length = -1;
187 static int hf_afs4int_storestatus_accesstime_sec = -1;
188 static int hf_afs4int_storestatus_accesstime_usec = -1;
189 static int hf_afs4int_storestatus_changetime_sec = -1;
190 static int hf_afs4int_storestatus_changetime_usec = -1;
191 static int hf_afs4int_storestatus_clientspare1 = -1;
192 static int hf_afs4int_storestatus_cmask = -1;
193 static int hf_afs4int_storestatus_devicenumber = -1;
194 static int hf_afs4int_storestatus_devicenumberhighbits = -1;
195 static int hf_afs4int_storestatus_devicetype = -1;
196 static int hf_afs4int_storestatus_group = -1;
197 static int hf_afs4int_storestatus_length_high = -1;
198 static int hf_afs4int_storestatus_length_low = -1;
199 static int hf_afs4int_storestatus_mask = -1;
200 static int hf_afs4int_storestatus_mode = -1;
201 static int hf_afs4int_storestatus_modtime_sec = -1;
202 static int hf_afs4int_storestatus_modtime_usec = -1;
203 static int hf_afs4int_storestatus_owner = -1;
204 static int hf_afs4int_storestatus_spare1 = -1;
205 static int hf_afs4int_storestatus_spare2 = -1;
206 static int hf_afs4int_storestatus_spare3 = -1;
207 static int hf_afs4int_storestatus_spare4 = -1;
208 static int hf_afs4int_storestatus_spare5 = -1;
209 static int hf_afs4int_storestatus_spare6 = -1;
210 static int hf_afs4int_storestatus_trunc_high = -1;
211 static int hf_afsconnparams_mask = -1;
212 static int hf_afs4int_storestatus_trunc_low = -1;
213 static int hf_afs4int_storestatus_typeuuid = -1;
214 static int hf_afs4int_l_end_pos = -1;
215 static int hf_afs4int_l_end_pos_ext = -1;
216 static int hf_afs4int_l_fstype = -1;
217 static int hf_afs4int_l_pid = -1;
218 static int hf_afs4int_l_start_pos = -1;
219 static int hf_afs4int_l_start_pos_ext = -1;
220 static int hf_afs4int_l_sysid = -1;
221 static int hf_afs4int_l_type = -1;
222 static int hf_afs4int_l_whence = -1;
223 static int hf_afs4int_acl_len = -1;
224 static int hf_afs4int_st = -1;
225 static int hf_afs4int_uint = -1;
226 static int hf_afs4int_setcontext_rqst_epochtime = -1;
227 static int hf_afs4int_setcontext_rqst_secobjectid = -1;
228 static int hf_afs4int_setcontext_rqst_clientsizesattrs = -1;
229 static int hf_afs4int_setcontext_rqst_parm7 = -1;
230 static int hf_afs4int_afsNetAddr_type = -1;
231 static int hf_afs4int_afsNetAddr_data = -1;
232 static int hf_afs4int_returntokenidp_high = -1;
233 static int hf_afs4int_minvvp_low = -1;
234 static int hf_afs4int_position_high = -1;
235 static int hf_afs4int_position_low = -1;
236 static int hf_afs4int_offsetp_high = -1;
237 static int hf_afs4int_nextoffsetp_low = -1;
238 static int hf_afs4int_cellidp_high = -1;
239 static int hf_afserrorstatus_st = -1;
240 static int hf_afs4int_length = -1;
241 static int hf_afsconnparams_values = -1;
242 static int hf_afs4int_acltype = -1;
243 static int hf_afs4int_afsTaggedPath_tp_chars = -1;
244 static int hf_afs4int_afsTaggedPath_tp_tag = -1;
245 static int hf_afs4int_afsacl_uuid1 = -1;
246 static int hf_afs4int_bulkfetchstatus_size = -1;
247 static int hf_afs4int_flags = -1;
248 static int hf_afs4int_afsreturndesc_tokenid_high = -1;
249 static int hf_afs4int_afsreturndesc_tokenid_low = -1;
250 static int hf_afs4int_afsreturndesc_type_high = -1;
251 static int hf_afs4int_afsreturndesc_type_low = -1;
252 static int hf_afs4int_returntokenidp_low = -1;
253 static int hf_afs4int_minvvp_high = -1;
254 static int hf_afs4int_offsetp_low = -1;
255 static int hf_afs4int_nextoffsetp_high = -1;
256 static int hf_afs4int_cellidp_low = -1;
257 static int hf_afs4int_tn_tag = -1;
258 static int hf_afs4int_tn_size = -1;
259 static int hf_afs4int_tn_string = -1;
260 static int hf_afs4int_bulkfetchvv_numvols = -1;
261 static int hf_afs4int_bulkfetchvv_spare1 = -1;
262 static int hf_afs4int_bulkfetchvv_spare2 = -1;
263 static int hf_afs4int_bulkkeepalive_numexecfids = -1;
264 static int hf_afs4int_bulkkeepalive_spare4 = -1;
265 static int hf_afs4int_bulkkeepalive_spare2 = -1;
266 static int hf_afs4int_bulkkeepalive_spare1 = -1;
267 static int hf_afs4int_afsacl_defaultcell_uuid = -1;
268 static int hf_afs4int_gettime_syncdispersion = -1;
269 static int hf_afs4int_gettime_syncdistance = -1;
270 static int hf_afs4int_gettime_usecondsp = -1;
271 static int hf_afs4int_readdir_size = -1;
272 static int hf_afs4int_afsNameString_t_principalName_size = -1;
273 static int hf_afs4int_afsNameString_t_principalName_size2 = -1;
274 static int hf_afs4int_afsTaggedPath_tp_length = -1;
275 static int hf_afs4int_fstype = -1;
276 static int hf_afs4int_gettime_secondsp = -1;
278 static int proto_afs4int = -1;
280 static gint ett_afs4int = -1;
281 static gint ett_afs4int_afsFid = -1;
282 static gint ett_afs4int_afsReturnDesc = -1;
283 static gint ett_afs4int_afsNetAddr = -1;
284 static gint ett_afs4int_fetchstatus = -1;
285 static gint ett_afs4int_afsflags = -1;
286 static gint ett_afs4int_volsync = -1;
287 static gint ett_afs4int_minvvp = -1;
288 static gint ett_afs4int_afsfidtaggedname = -1;
289 static gint ett_afs4int_afstaggedname = -1;
290 static gint ett_afs4int_afstoken = -1;
291 static gint ett_afs4int_afsstorestatus = -1;
292 static gint ett_afs4int_afsRecordLock = -1;
293 static gint ett_afs4int_afsAcl = -1;
294 static gint ett_afs4int_afsNameString_t = -1;
295 static gint ett_afs4int_afsConnParams = -1;
296 static gint ett_afs4int_afsErrorStatus = -1;
297 static gint ett_afs4int_afsNetData = -1;
298 static gint ett_afs4int_afsTaggedPath = -1;
299 static gint ett_afs4int_afsBulkStat = -1;
300 static gint ett_afs4int_afsuuid = -1;
301 static gint ett_afs4int_offsetp = -1;
302 static gint ett_afs4int_returntokenidp = -1;
303 static gint ett_afs4int_afsbundled_stat = -1;
306 /* vars for our macro(s) */
307 static int hf_error_st = -1;
309 static e_uuid_t uuid_afs4int =
310 { 0x4d37f2dd, 0xed93, 0x0000, {0x02, 0xc0, 0x37, 0xcf, 0x1e, 0x00, 0x00,
313 static guint16 ver_afs4int = 4;
315 /* XXX the only macro that I could not find the right way to convert easily.
316 The reason is because we reset col_info if st is non zero for many rpcs.
317 This is because on error, many structures are filled with garbage.
318 We end up not knowing if data is valid until we get the st var at the very end of the stubdata..
319 We can not just jump to the end, because more often than not an extra buffer exists in payload
320 after st. Thus we have to advance on each item until we read in ST, then we clear col_info. on error
321 A good example is FetchStatus() on a file that returns ENOEXIST.
322 inode, volume, etc all will be garbage.
325 #define MACRO_ST_CLEAR(name) \
328 const char *st_str; \
329 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_error_st, &st); \
330 st_str = val_to_str (st, dce_error_vals, "%u"); \
332 if (check_col (pinfo->cinfo, COL_INFO)) \
333 col_add_fstr (pinfo->cinfo, COL_INFO, "%s st:%s ", name, st_str); \
335 if (check_col (pinfo->cinfo, COL_INFO)) \
336 col_append_fstr (pinfo->cinfo, COL_INFO, " st:%s ", st_str); \
341 dissect_afsFid (tvbuff_t * tvb, int offset,
342 packet_info * pinfo, proto_tree * parent_tree, guint8 *drep)
353 proto_item *item = NULL;
354 proto_tree *tree = NULL;
355 int old_offset = offset;
356 guint32 volume_low, unique, vnode, inode;
359 di = pinfo->private_data;
360 if (di->conformant_run)
369 item = proto_tree_add_text (parent_tree, tvb, offset, -1, "afsFid:");
370 tree = proto_item_add_subtree (item, ett_afs4int_afsFid);
374 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
375 hf_afs4int_afsFid_cell_high, NULL);
377 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
378 hf_afs4int_afsFid_cell_low, NULL);
380 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
381 hf_afs4int_afsFid_volume_high, NULL);
383 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
384 hf_afs4int_afsFid_volume_low, &volume_low);
386 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
387 hf_afs4int_afsFid_Vnode, &vnode);
389 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
390 hf_afs4int_afsFid_Unique, &unique);
392 if (check_col (pinfo->cinfo, COL_INFO))
393 col_append_fstr (pinfo->cinfo, COL_INFO, " :FSID:%u ", volume_low);
395 if ((vnode == 1) || (vnode == 2))
397 if (check_col (pinfo->cinfo, COL_INFO))
398 col_append_str (pinfo->cinfo, COL_INFO, " InFS ");
402 inode = ((volume_low << 16) + vnode) & 0x7fffffff;
403 if (check_col (pinfo->cinfo, COL_INFO))
404 col_append_fstr (pinfo->cinfo, COL_INFO, " inode:%u ", inode);
407 proto_item_set_len (item, offset - old_offset);
412 dissect_afsConnParams (tvbuff_t * tvb, int offset,
413 packet_info * pinfo, proto_tree * parent_tree,
419 unsigned32 Values[20];
422 proto_item *item = NULL;
423 proto_tree *tree = NULL;
424 int old_offset = offset;
425 guint32 mask, Values[20];
428 di = pinfo->private_data;
429 if (di->conformant_run)
438 proto_tree_add_text (parent_tree, tvb, offset, -1,
440 tree = proto_item_add_subtree (item, ett_afs4int_afsConnParams);
443 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
444 hf_afsconnparams_mask, &mask);
446 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
447 hf_afsconnparams_values, &Values[0]);
449 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
450 hf_afsconnparams_values, &Values[1]);
452 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
453 hf_afsconnparams_values, &Values[2]);
455 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
456 hf_afsconnparams_values, &Values[3]);
458 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
459 hf_afsconnparams_values, &Values[4]);
461 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
462 hf_afsconnparams_values, &Values[5]);
464 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
465 hf_afsconnparams_values, &Values[6]);
467 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
468 hf_afsconnparams_values, &Values[7]);
470 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
471 hf_afsconnparams_values, &Values[9]);
473 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
474 hf_afsconnparams_values, &Values[9]);
476 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
477 hf_afsconnparams_values, &Values[10]);
479 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
480 hf_afsconnparams_values, &Values[11]);
482 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
483 hf_afsconnparams_values, &Values[12]);
485 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
486 hf_afsconnparams_values, &Values[13]);
488 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
489 hf_afsconnparams_values, &Values[14]);
491 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
492 hf_afsconnparams_values, &Values[15]);
494 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
495 hf_afsconnparams_values, &Values[16]);
497 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
498 hf_afsconnparams_values, &Values[17]);
500 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
501 hf_afsconnparams_values, &Values[18]);
503 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
504 hf_afsconnparams_values, &Values[19]);
505 if ((mask & AFS_CONN_PARAM_HOSTLIFE) == AFS_CONN_PARAM_HOSTLIFE)
507 if (check_col (pinfo->cinfo, COL_INFO))
508 col_append_str (pinfo->cinfo, COL_INFO, ":HOSTLIFE");
510 if ((mask & AFS_CONN_PARAM_HOSTRPC) == AFS_CONN_PARAM_HOSTRPC)
512 if (check_col (pinfo->cinfo, COL_INFO))
513 col_append_str (pinfo->cinfo, COL_INFO, ":HOSTRPC");
515 if ((mask & AFS_CONN_PARAM_DEADSERVER) == AFS_CONN_PARAM_DEADSERVER)
517 if (check_col (pinfo->cinfo, COL_INFO))
518 col_append_str (pinfo->cinfo, COL_INFO, ":DEADSERVER");
520 if ((mask & AFS_CONN_PARAM_EPOCH) == AFS_CONN_PARAM_EPOCH)
522 if (check_col (pinfo->cinfo, COL_INFO))
523 col_append_str (pinfo->cinfo, COL_INFO, ":EPOCH");
525 if ((mask & AFS_CONN_PARAM_MAXFILE_CLIENT) == AFS_CONN_PARAM_MAXFILE_CLIENT)
527 if (check_col (pinfo->cinfo, COL_INFO))
528 col_append_str (pinfo->cinfo, COL_INFO, ":MAXFILE_CLIENT");
530 if ((mask & AFS_CONN_PARAM_MAXFILE_SERVER) == AFS_CONN_PARAM_MAXFILE_SERVER)
532 if (check_col (pinfo->cinfo, COL_INFO))
533 col_append_str (pinfo->cinfo, COL_INFO, ":MAXFILE_SERVER");
535 if ((mask & AFS_CONN_PARAM_HOST_TYPE_CLIENT) ==
536 AFS_CONN_PARAM_HOST_TYPE_CLIENT)
538 if (check_col (pinfo->cinfo, COL_INFO))
539 col_append_str (pinfo->cinfo, COL_INFO, ":HOST_TYPE_CLIENT");
541 if ((mask & AFS_CONN_PARAM_HOST_TYPE_SERVER) ==
542 AFS_CONN_PARAM_HOST_TYPE_SERVER)
544 if (check_col (pinfo->cinfo, COL_INFO))
545 col_append_str (pinfo->cinfo, COL_INFO, ":HOST_TYPE_SERVER");
547 if ((mask & AFS_CONN_PARAM_FT_MASK_CLIENT) == AFS_CONN_PARAM_FT_MASK_CLIENT)
549 if (check_col (pinfo->cinfo, COL_INFO))
550 col_append_str (pinfo->cinfo, COL_INFO, ":FT_MASK_CLIENT");
552 if ((mask & AFS_CONN_PARAM_FT_MASK_SERVER) == AFS_CONN_PARAM_FT_MASK_SERVER)
554 if (check_col (pinfo->cinfo, COL_INFO))
555 col_append_str (pinfo->cinfo, COL_INFO, ":FT_MASK_SERVER");
557 if ((mask & AFS_CONN_PARAM_SUPPORTS_64BITS) ==
558 AFS_CONN_PARAM_SUPPORTS_64BITS)
560 if (check_col (pinfo->cinfo, COL_INFO))
561 col_append_str (pinfo->cinfo, COL_INFO, ":SUPPORTS_64BITS");
563 if ((mask & AFS_CONN_PARAM_512BYTE_BLOCKS) == AFS_CONN_PARAM_512BYTE_BLOCKS)
565 if (check_col (pinfo->cinfo, COL_INFO))
566 col_append_str (pinfo->cinfo, COL_INFO, ":512BYTE_BLOCKS");
568 if (check_col (pinfo->cinfo, COL_INFO))
569 col_append_fstr (pinfo->cinfo, COL_INFO,
570 " Values:%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u%u",
571 Values[0], Values[1], Values[2], Values[3],
572 Values[4], Values[5], Values[6], Values[7], Values[8],
573 Values[9], Values[10], Values[11], Values[12],
574 Values[13], Values[14], Values[15], Values[16],
575 Values[17], Values[18], Values[19]);
577 proto_item_set_len (item, offset - old_offset);
582 dissect_afsNameString_t (tvbuff_t * tvb, int offset,
583 packet_info * pinfo, proto_tree * parent_tree,
588 typedef [string] byte NameString_t[AFS_NAMEMAX];
591 proto_item *item = NULL;
592 proto_tree *tree = NULL;
593 int old_offset = offset;
594 #define AFS_NAMEMAX 256
596 const guint8 *namestring;
599 di = pinfo->private_data;
600 if (di->conformant_run)
609 proto_tree_add_text (parent_tree, tvb, offset, -1,
611 tree = proto_item_add_subtree (item, ett_afs4int_afsNameString_t);
615 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
616 hf_afs4int_afsNameString_t_principalName_size,
618 if (check_col (pinfo->cinfo, COL_INFO))
619 col_append_fstr (pinfo->cinfo, COL_INFO, " String_size:%u", string_size);
620 if (string_size < AFS_NAMEMAX)
622 /* proto_tree_add_string(tree, id, tvb, start, length, value_ptr); */
624 proto_tree_add_string (tree, hf_afs4int_afsNameString_t_principalName_string, tvb, offset, string_size, tvb_get_ptr (tvb, offset, string_size));
625 namestring = tvb_get_ptr (tvb, offset, string_size);
626 offset += string_size;
627 if (check_col (pinfo->cinfo, COL_INFO))
628 col_append_fstr (pinfo->cinfo, COL_INFO, " Principal:%s", namestring);
632 if (check_col (pinfo->cinfo, COL_INFO))
633 col_append_fstr (pinfo->cinfo, COL_INFO,
634 " :FIXME!: Invalid string length of %u",
638 proto_item_set_len (item, offset - old_offset);
644 dissect_afsNetAddr (tvbuff_t * tvb, int offset,
645 packet_info * pinfo, proto_tree * parent_tree, guint8 *drep)
652 proto_item *item = NULL;
653 proto_tree *tree = NULL;
654 int old_offset = offset;
660 di = pinfo->private_data;
661 if (di->conformant_run)
668 item = proto_tree_add_text (parent_tree, tvb, offset, -1,
670 tree = proto_item_add_subtree (item, ett_afs4int_afsNetAddr);
675 dissect_ndr_uint16 (tvb, offset, pinfo, tree, drep,
676 hf_afs4int_afsNetAddr_type, &type);
680 if (check_col (pinfo->cinfo, COL_INFO))
681 col_append_fstr (pinfo->cinfo, COL_INFO, " Type:%u ", type);
684 for (i = 0; i < 14; i++)
688 dissect_ndr_uint8 (tvb, offset, pinfo, tree, drep,
689 hf_afs4int_afsNetAddr_data, &data);
697 if (check_col (pinfo->cinfo, COL_INFO))
698 col_append_fstr (pinfo->cinfo, COL_INFO, " Port:%u",
703 if (check_col (pinfo->cinfo, COL_INFO))
704 col_append_fstr (pinfo->cinfo, COL_INFO, " IP:%u.", data);
707 if (check_col (pinfo->cinfo, COL_INFO))
708 col_append_fstr (pinfo->cinfo, COL_INFO, "%u.", data);
711 if (check_col (pinfo->cinfo, COL_INFO))
712 col_append_fstr (pinfo->cinfo, COL_INFO, "%u.", data);
715 if (check_col (pinfo->cinfo, COL_INFO))
716 col_append_fstr (pinfo->cinfo, COL_INFO, "%u", data);
726 offset += 14; /* space left after reading in type for the array. */
730 proto_item_set_len (item, offset - old_offset);
736 dissect_afsNetData (tvbuff_t * tvb, int offset,
737 packet_info * pinfo, proto_tree * parent_tree, guint8 *drep)
741 NameString_t principalName;
743 proto_item *item = NULL;
744 proto_tree *tree = NULL;
745 int old_offset = offset;
748 di = pinfo->private_data;
749 if (di->conformant_run)
757 proto_tree_add_text (parent_tree, tvb, offset, -1, "afsNetData:");
758 tree = proto_item_add_subtree (item, ett_afs4int_afsNetData);
762 offset = dissect_afsNetAddr ( tvb, offset, pinfo, tree, drep);
763 offset += 4; /* buffer */
764 offset = dissect_afsNameString_t ( tvb, offset, pinfo, tree, drep);
766 proto_item_set_len (item, offset - old_offset);
772 dissect_afsTaggedPath (tvbuff_t * tvb, int offset,
773 packet_info * pinfo, proto_tree * parent_tree,
779 unsigned16 tp_length;
780 byte tp_chars[AFS_PATHMAX+1]; 1024+1
783 proto_item *item = NULL;
784 proto_tree *tree = NULL;
785 int old_offset = offset;
788 const guint8 *tp_chars;
791 di = pinfo->private_data;
792 if (di->conformant_run)
801 proto_tree_add_text (parent_tree, tvb, offset, -1, "afsTaggedPath");
802 tree = proto_item_add_subtree (item, ett_afs4int_afsTaggedPath);
807 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
808 hf_afs4int_afsTaggedPath_tp_tag, &tp_tag);
810 dissect_ndr_uint16 (tvb, offset, pinfo, tree, drep,
811 hf_afs4int_afsTaggedPath_tp_length, &tp_length);
812 proto_tree_add_string (tree, hf_afs4int_afsTaggedPath_tp_chars, tvb, offset,
813 hf_afs4int_afsTaggedPath_tp_length, tvb_get_ptr (tvb,
816 tp_chars = tvb_get_ptr (tvb, offset, 1025);
818 if (check_col (pinfo->cinfo, COL_INFO))
819 col_append_fstr (pinfo->cinfo, COL_INFO, " :tp_chars %s", tp_chars);
822 proto_item_set_len (item, offset - old_offset);
827 dissect_afsAcl (tvbuff_t * tvb, int offset,
828 packet_info * pinfo, proto_tree * parent_tree, guint8 *drep)
831 unsigned32 afsACL_len;
832 [length_is(afsACL_len)] byte afsACL_val[AFS_ACLMAX];
837 proto_item *item = NULL;
838 proto_tree *tree = NULL;
839 int old_offset = offset;
841 e_uuid_t uuid1, defaultcell;
844 di = pinfo->private_data;
845 if (di->conformant_run)
854 item = proto_tree_add_text (parent_tree, tvb, offset, -1, "afsAcl");
855 tree = proto_item_add_subtree (item, ett_afs4int_afsAcl);
860 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_afs4int_acl_len,
862 offset += 8; /* bypass spare and duplicate acl_len */
864 dissect_ndr_uuid_t (tvb, offset, pinfo, tree, drep,
865 hf_afs4int_afsacl_uuid1, &uuid1);
866 if (check_col (pinfo->cinfo, COL_INFO))
867 col_append_fstr (pinfo->cinfo, COL_INFO,
868 " - %08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x",
869 uuid1.Data1, uuid1.Data2, uuid1.Data3, uuid1.Data4[0],
870 uuid1.Data4[1], uuid1.Data4[2], uuid1.Data4[3],
871 uuid1.Data4[4], uuid1.Data4[5], uuid1.Data4[6],
875 dissect_ndr_uuid_t (tvb, offset, pinfo, tree, drep,
876 hf_afs4int_afsacl_defaultcell_uuid, &defaultcell);
877 if (check_col (pinfo->cinfo, COL_INFO))
878 col_append_fstr (pinfo->cinfo, COL_INFO,
879 " %08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x",
880 defaultcell.Data1, defaultcell.Data2, defaultcell.Data3,
881 defaultcell.Data4[0], defaultcell.Data4[1],
882 defaultcell.Data4[2], defaultcell.Data4[3],
883 defaultcell.Data4[4], defaultcell.Data4[5],
884 defaultcell.Data4[6], defaultcell.Data4[7]);
886 offset += (acl_len - 38);
888 if (offset <= old_offset)
889 THROW(ReportedBoundsError);
891 proto_item_set_len(item, offset-old_offset);
897 dissect_afsErrorStatus (tvbuff_t * tvb, int offset,
898 packet_info * pinfo, proto_tree * parent_tree,
901 proto_item *item = NULL;
902 proto_tree *tree = NULL;
903 int old_offset = offset;
908 di = pinfo->private_data;
909 if (di->conformant_run)
916 item = proto_tree_add_text (parent_tree, tvb, offset, -1,
918 tree = proto_item_add_subtree (item, ett_afs4int_afsErrorStatus);
922 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_afserrorstatus_st,
924 st_str = val_to_str (st, dce_error_vals, "%u");
926 if (check_col (pinfo->cinfo, COL_INFO))
927 col_append_fstr (pinfo->cinfo, COL_INFO, " st:%s ", st_str);
929 proto_item_set_len (item, offset - old_offset);
934 dissect_afsRecordLock (tvbuff_t * tvb, int offset,
935 packet_info * pinfo, proto_tree * parent_tree,
941 unsigned32 l_start_pos;
942 unsigned32 l_end_pos;
946 unsigned32 l_start_pos_ext; was l_spare0: high 32b of l_start_pos
947 unsigned32 l_end_pos_ext; was l_spare1: high 32b of l_end_pos
950 proto_item *item = NULL;
951 proto_tree *tree = NULL;
952 int old_offset = offset;
953 guint16 l_type, l_whence;
954 guint32 l_start_pos, l_end_pos, l_pid, l_sysid, l_fstype, l_start_pos_ext,
958 di = pinfo->private_data;
959 if (di->conformant_run)
966 item = proto_tree_add_text (parent_tree, tvb, offset, -1,
968 tree = proto_item_add_subtree (item, ett_afs4int_afsRecordLock);
972 dissect_ndr_uint16 (tvb, offset, pinfo, tree, drep, hf_afs4int_l_type,
975 dissect_ndr_uint16 (tvb, offset, pinfo, tree, drep, hf_afs4int_l_whence,
978 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
979 hf_afs4int_l_start_pos, &l_start_pos);
981 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_afs4int_l_end_pos,
984 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_afs4int_l_pid,
987 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_afs4int_l_sysid,
990 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_afs4int_l_fstype,
993 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
994 hf_afs4int_l_start_pos_ext, &l_start_pos_ext);
996 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
997 hf_afs4int_l_end_pos_ext, &l_end_pos_ext);
1000 proto_item_set_len (item, offset - old_offset);
1005 dissect_afsstorestatus (tvbuff_t * tvb, int offset,
1006 packet_info * pinfo, proto_tree * parent_tree,
1012 afsTimeval accessTime;
1013 afsTimeval changeTime;
1017 afsHyper truncLength; applied first
1020 unsigned32 deviceType; character or block
1021 unsigned32 deviceNumber;
1023 unsigned32 clientSpare1; client-only attrs
1024 unsigned32 deviceNumberHighBits;
1033 proto_item *item = NULL;
1034 proto_tree *tree = NULL;
1035 int old_offset = offset;
1036 guint32 mask, modtime_sec, changetime_sec, accesstime_sec, devicenumber,
1037 clientspare1, devicenumberhighbits, spare1, spare2, spare3, spare4,
1038 spare5, spare6, accesstime_usec, changetime_usec, owner, group, mode,
1039 trunc_high, trunc_low, length_high, length_low, devicetype,
1040 cmask, modtime_usec;
1044 di = pinfo->private_data;
1045 if (di->conformant_run)
1053 item = proto_tree_add_text (parent_tree, tvb, offset, -1,
1055 tree = proto_item_add_subtree (item, ett_afs4int_afsstorestatus);
1059 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1060 hf_afs4int_storestatus_mask, &mask);
1062 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1063 hf_afs4int_storestatus_modtime_sec, &modtime_sec);
1065 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1066 hf_afs4int_storestatus_modtime_usec, &modtime_usec);
1068 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1069 hf_afs4int_storestatus_accesstime_sec,
1072 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1073 hf_afs4int_storestatus_accesstime_usec,
1076 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1077 hf_afs4int_storestatus_changetime_sec,
1080 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1081 hf_afs4int_storestatus_changetime_usec,
1084 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1085 hf_afs4int_storestatus_owner, &owner);
1087 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1088 hf_afs4int_storestatus_group, &group);
1090 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1091 hf_afs4int_storestatus_mode, &mode);
1093 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1094 hf_afs4int_storestatus_trunc_high, &trunc_high);
1096 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1097 hf_afs4int_storestatus_trunc_low, &trunc_low);
1099 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1100 hf_afs4int_storestatus_length_high, &length_high);
1102 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1103 hf_afs4int_storestatus_length_low, &length_low);
1105 dissect_ndr_uuid_t (tvb, offset, pinfo, tree, drep,
1106 hf_afs4int_storestatus_typeuuid, &typeuuid);
1108 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1109 hf_afs4int_storestatus_devicetype, &devicetype);
1111 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1112 hf_afs4int_storestatus_devicenumber, &devicenumber);
1114 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1115 hf_afs4int_storestatus_cmask, &cmask);
1117 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1118 hf_afs4int_storestatus_clientspare1, &clientspare1);
1120 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1121 hf_afs4int_storestatus_devicenumberhighbits,
1122 &devicenumberhighbits);
1124 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1125 hf_afs4int_storestatus_spare1, &spare1);
1127 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1128 hf_afs4int_storestatus_spare2, &spare2);
1130 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1131 hf_afs4int_storestatus_spare3, &spare3);
1133 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1134 hf_afs4int_storestatus_spare4, &spare4);
1136 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1137 hf_afs4int_storestatus_spare5, &spare5);
1139 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1140 hf_afs4int_storestatus_spare6, &spare6);
1142 if (check_col (pinfo->cinfo, COL_INFO))
1143 col_append_fstr (pinfo->cinfo, COL_INFO, " Mask=");
1144 if ((mask & AFS_SETMODTIME) == AFS_SETMODTIME)
1146 if (check_col (pinfo->cinfo, COL_INFO))
1147 col_append_fstr (pinfo->cinfo, COL_INFO, ":SETMODTIME-%u.%u",
1148 modtime_sec, modtime_usec);
1150 if ((mask & AFS_SETOWNER) == AFS_SETOWNER)
1152 if (check_col (pinfo->cinfo, COL_INFO))
1153 col_append_fstr (pinfo->cinfo, COL_INFO, ":SETOWNER-%u", owner);
1155 if ((mask & AFS_SETGROUP) == AFS_SETGROUP)
1157 if (check_col (pinfo->cinfo, COL_INFO))
1158 col_append_fstr (pinfo->cinfo, COL_INFO, ":SETGROUP-%u", group);
1160 if ((mask & AFS_SETMODE) == AFS_SETMODE)
1162 if (check_col (pinfo->cinfo, COL_INFO))
1163 col_append_fstr (pinfo->cinfo, COL_INFO, ":SETMODE-%o", mode);
1165 if ((mask & AFS_SETACCESSTIME) == AFS_SETACCESSTIME)
1167 if (check_col (pinfo->cinfo, COL_INFO))
1168 col_append_fstr (pinfo->cinfo, COL_INFO, ":SETACCESSTIME-%u.%u",
1169 accesstime_sec, accesstime_usec);
1171 if ((mask & AFS_SETCHANGETIME) == AFS_SETCHANGETIME)
1173 if (check_col (pinfo->cinfo, COL_INFO))
1174 col_append_fstr (pinfo->cinfo, COL_INFO, ":SETCHANGETIME-%u.%u",
1175 changetime_sec, changetime_usec);
1177 if ((mask & AFS_SETLENGTH) == AFS_SETLENGTH)
1179 if (check_col (pinfo->cinfo, COL_INFO))
1180 col_append_str (pinfo->cinfo, COL_INFO, ":SETLENGTH");
1182 if ((mask & AFS_SETTYPEUUID) == AFS_SETTYPEUUID)
1184 if (check_col (pinfo->cinfo, COL_INFO))
1185 col_append_str (pinfo->cinfo, COL_INFO, ":SETTYPEUUID");
1187 if ((mask & AFS_SETDEVNUM) == AFS_SETDEVNUM)
1189 if (check_col (pinfo->cinfo, COL_INFO))
1190 col_append_str (pinfo->cinfo, COL_INFO, ":SETDEVNUM");
1192 if ((mask & AFS_SETMODEXACT) == AFS_SETMODEXACT)
1194 if (check_col (pinfo->cinfo, COL_INFO))
1195 col_append_str (pinfo->cinfo, COL_INFO, ":SETMODEXACT");
1197 if ((mask & AFS_SETTRUNCLENGTH) == AFS_SETTRUNCLENGTH)
1199 if (check_col (pinfo->cinfo, COL_INFO))
1200 col_append_str (pinfo->cinfo, COL_INFO, ":SETTRUNCLENGTH");
1202 if ((mask & AFS_SETCLIENTSPARE) == AFS_SETCLIENTSPARE)
1204 if (check_col (pinfo->cinfo, COL_INFO))
1205 col_append_str (pinfo->cinfo, COL_INFO, ":SETCLIENTSPARE");
1208 proto_item_set_len (item, offset - old_offset);
1213 dissect_afstoken (tvbuff_t * tvb, int offset,
1214 packet_info * pinfo, proto_tree * parent_tree, guint8 *drep)
1218 unsigned32 expirationTime;
1220 unsigned32 beginRange;
1221 unsigned32 endRange;
1222 unsigned32 beginRangeExt;
1223 unsigned32 endRangeExt;
1226 proto_item *item = NULL;
1227 proto_tree *tree = NULL;
1228 int old_offset = offset;
1229 guint32 tokenid_hi, tokenid_low, expirationtime, type_hi, type_low,
1230 beginrange, endrange, beginrangeext, endrangeext, type;
1233 di = pinfo->private_data;
1234 if (di->conformant_run)
1242 item = proto_tree_add_text (parent_tree, tvb, offset, -1, "afsToken:");
1243 tree = proto_item_add_subtree (item, ett_afs4int_afstoken);
1247 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_afs4int_tokenid_hi,
1250 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1251 hf_afs4int_tokenid_low, &tokenid_low);
1253 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1254 hf_afs4int_expirationtime, &expirationtime);
1256 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_afs4int_type_hi,
1259 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_afs4int_type_low,
1262 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_afs4int_beginrange,
1265 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_afs4int_endrange,
1268 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1269 hf_afs4int_beginrangeext, &beginrangeext);
1271 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1272 hf_afs4int_endrangeext, &endrangeext);
1273 if (check_col (pinfo->cinfo, COL_INFO))
1274 col_append_fstr (pinfo->cinfo, COL_INFO,
1275 " :Tokenid:%u/%u ExpirationTime:%u beginrange:%u endrange:%u beginrangeext:%u endrangeext:%u",
1276 tokenid_hi, tokenid_low, expirationtime, beginrange,
1277 endrange, beginrangeext, endrangeext);
1280 if (check_col (pinfo->cinfo, COL_INFO))
1281 col_append_str (pinfo->cinfo, COL_INFO, " Type=");
1283 if ((type & TKN_LOCK_READ) == TKN_LOCK_READ)
1285 if (check_col (pinfo->cinfo, COL_INFO))
1286 col_append_str (pinfo->cinfo, COL_INFO, ":LOCK_READ");
1288 if ((type & TKN_LOCK_WRITE) == TKN_LOCK_WRITE)
1290 if (check_col (pinfo->cinfo, COL_INFO))
1291 col_append_str (pinfo->cinfo, COL_INFO, ":LOCK_WRITE");
1293 if ((type & TKN_DATA_READ) == TKN_DATA_READ)
1295 if (check_col (pinfo->cinfo, COL_INFO))
1296 col_append_str (pinfo->cinfo, COL_INFO, ":DATA_READ");
1298 if ((type & TKN_DATA_WRITE) == TKN_DATA_WRITE)
1300 if (check_col (pinfo->cinfo, COL_INFO))
1301 col_append_str (pinfo->cinfo, COL_INFO, ":DATA_WRITE");
1303 if ((type & TKN_OPEN_READ) == TKN_OPEN_READ)
1305 if (check_col (pinfo->cinfo, COL_INFO))
1306 col_append_str (pinfo->cinfo, COL_INFO, ":OPEN_READ");
1308 if ((type & TKN_OPEN_WRITE) == TKN_OPEN_WRITE)
1310 if (check_col (pinfo->cinfo, COL_INFO))
1311 col_append_str (pinfo->cinfo, COL_INFO, ":OPEN_WRITE");
1313 if ((type & TKN_OPEN_SHARED) == TKN_OPEN_SHARED)
1315 if (check_col (pinfo->cinfo, COL_INFO))
1316 col_append_str (pinfo->cinfo, COL_INFO, ":OPEN_SHARED");
1318 if ((type & TKN_OPEN_EXCLUSIVE) == TKN_OPEN_EXCLUSIVE)
1320 if (check_col (pinfo->cinfo, COL_INFO))
1321 col_append_str (pinfo->cinfo, COL_INFO, ":OPEN_EXCLUSIVE");
1323 if ((type & TKN_OPEN_DELETE) == TKN_OPEN_DELETE)
1325 if (check_col (pinfo->cinfo, COL_INFO))
1326 col_append_str (pinfo->cinfo, COL_INFO, ":OPEN_DELETE");
1328 if ((type & TKN_OPEN_PRESERVE) == TKN_OPEN_PRESERVE)
1330 if (check_col (pinfo->cinfo, COL_INFO))
1331 col_append_str (pinfo->cinfo, COL_INFO, ":OPEN_PRESERVE");
1333 if ((type & TKN_STATUS_READ) == TKN_STATUS_READ)
1335 if (check_col (pinfo->cinfo, COL_INFO))
1336 col_append_str (pinfo->cinfo, COL_INFO, ":STATUS_READ");
1338 if ((type & TKN_STATUS_WRITE) == TKN_STATUS_WRITE)
1340 if (check_col (pinfo->cinfo, COL_INFO))
1341 col_append_str (pinfo->cinfo, COL_INFO, ":STATUS_WRITE");
1343 if ((type & TKN_OPEN_UNLINK) == TKN_OPEN_UNLINK)
1345 if (check_col (pinfo->cinfo, COL_INFO))
1346 col_append_str (pinfo->cinfo, COL_INFO, ":OPEN_UNLINK");
1348 if ((type & TKN_SPOT_HERE) == TKN_SPOT_HERE)
1350 if (check_col (pinfo->cinfo, COL_INFO))
1351 col_append_str (pinfo->cinfo, COL_INFO, ":SPOT_HERE");
1353 if ((type & TKN_SPOT_THERE) == TKN_SPOT_THERE)
1355 if (check_col (pinfo->cinfo, COL_INFO))
1356 col_append_str (pinfo->cinfo, COL_INFO, ":SPOT_THERE");
1358 if ((type & TKN_OPEN_NO_READ) == TKN_OPEN_NO_READ)
1360 if (check_col (pinfo->cinfo, COL_INFO))
1361 col_append_str (pinfo->cinfo, COL_INFO, ":OPEN_NO_READ");
1363 if ((type & TKN_OPEN_NO_WRITE) == TKN_OPEN_NO_WRITE)
1365 if (check_col (pinfo->cinfo, COL_INFO))
1366 col_append_str (pinfo->cinfo, COL_INFO, ":OPEN_NO_WRITE");
1368 if ((type & TKN_OPEN_NO_UNLINK) == TKN_OPEN_NO_UNLINK)
1370 if (check_col (pinfo->cinfo, COL_INFO))
1371 col_append_str (pinfo->cinfo, COL_INFO, ":OPEN_NO_UNLINK");
1374 proto_item_set_len (item, offset - old_offset);
1379 dissect_afstaggedname (tvbuff_t * tvb, int offset,
1380 packet_info * pinfo, proto_tree * parent_tree,
1386 unsigned16 tn_length;
1387 byte tn_chars[AFS_NAMEMAX+1];
1390 proto_item *item = NULL;
1391 proto_tree *tree = NULL;
1392 int old_offset = offset;
1395 const guint8 *tn_string;
1398 di = pinfo->private_data;
1399 if (di->conformant_run)
1407 item = proto_tree_add_text (parent_tree, tvb, offset, -1,
1409 tree = proto_item_add_subtree (item, ett_afs4int_afstaggedname);
1413 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_afs4int_tn_tag,
1416 dissect_ndr_uint16 (tvb, offset, pinfo, tree, drep, hf_afs4int_tn_length,
1418 if (tn_length < 254)
1420 proto_tree_add_string (tree, hf_afs4int_tn_string, tvb, offset,
1421 hf_afs4int_tn_size, tvb_get_ptr (tvb, offset,
1423 tn_string = tvb_get_ptr (tvb, offset, 257);
1425 if (check_col (pinfo->cinfo, COL_INFO))
1426 col_append_fstr (pinfo->cinfo, COL_INFO, " :tn_tag: %s", tn_string);
1430 if (check_col (pinfo->cinfo, COL_INFO))
1431 col_append_fstr (pinfo->cinfo, COL_INFO,
1432 " :FIXME!: Invalid string length of %u", tn_length);
1435 proto_item_set_len (item, offset - old_offset);
1440 dissect_afsfidtaggedname (tvbuff_t * tvb, int offset,
1441 packet_info * pinfo, proto_tree * parent_tree,
1449 proto_item *item = NULL;
1450 proto_tree *tree = NULL;
1451 int old_offset = offset;
1454 di = pinfo->private_data;
1455 if (di->conformant_run)
1463 item = proto_tree_add_text (parent_tree, tvb, offset, -1,
1465 tree = proto_item_add_subtree (item, ett_afs4int_afsfidtaggedname);
1467 offset = dissect_afsFid (tvb, offset, pinfo, tree, drep);
1468 offset = dissect_afstaggedname (tvb, offset, pinfo, tree, drep);
1470 proto_item_set_len (item, offset - old_offset);
1476 dissect_minvvp (tvbuff_t * tvb, int offset,
1477 packet_info * pinfo, proto_tree * parent_tree, guint8 *drep)
1480 /* unsigned32 minvvp_high
1481 unsigned32 minvvp_low
1484 proto_item *item = NULL;
1485 proto_tree *tree = NULL;
1486 int old_offset = offset;
1487 guint32 minvvp_high, minvvp_low;
1490 di = pinfo->private_data;
1491 if (di->conformant_run)
1499 item = proto_tree_add_text (parent_tree, tvb, offset, -1, "minVVp:");
1500 tree = proto_item_add_subtree (item, ett_afs4int_minvvp);
1503 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1504 hf_afs4int_minvvp_high, &minvvp_high);
1506 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_afs4int_minvvp_low,
1509 if (check_col (pinfo->cinfo, COL_INFO))
1510 col_append_fstr (pinfo->cinfo, COL_INFO, " minVVp:%u/%u", minvvp_high,
1514 proto_item_set_len (item, offset - old_offset);
1520 dissect_afsuuid (tvbuff_t * tvb, int offset,
1521 packet_info * pinfo, proto_tree * parent_tree, guint8 *drep)
1530 proto_item *item = NULL;
1531 proto_tree *tree = NULL;
1532 int old_offset = offset;
1535 di = pinfo->private_data;
1536 if (di->conformant_run)
1544 item = proto_tree_add_text (parent_tree, tvb, offset, -1, "afsUUID:");
1545 tree = proto_item_add_subtree (item, ett_afs4int_afsuuid);
1548 offset = dissect_ndr_uuid_t (tvb, offset, pinfo, tree, drep, hf_afs4int_afsuuid_uuid, &uuid1);
1551 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]);
1553 proto_item_set_len (item, offset - old_offset);
1559 dissect_offsetp (tvbuff_t * tvb, int offset,
1560 packet_info * pinfo, proto_tree * parent_tree, guint8 *drep)
1563 /* unsigned32 offsetp_high
1564 unsigned32 offsetp_low
1567 proto_item *item = NULL;
1568 proto_tree *tree = NULL;
1569 int old_offset = offset;
1570 guint32 offsetp_high, offsetp_low;
1573 di = pinfo->private_data;
1574 if (di->conformant_run)
1582 item = proto_tree_add_text (parent_tree, tvb, offset, -1, "minVVp:");
1583 tree = proto_item_add_subtree (item, ett_afs4int_offsetp);
1586 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1587 hf_afs4int_offsetp_high, &offsetp_high);
1589 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_afs4int_offsetp_low,
1592 if (check_col (pinfo->cinfo, COL_INFO))
1593 col_append_fstr (pinfo->cinfo, COL_INFO, " offsetp:%u/%u", offsetp_high,
1597 proto_item_set_len (item, offset - old_offset);
1603 dissect_returntokenidp (tvbuff_t * tvb, int offset,
1604 packet_info * pinfo, proto_tree * parent_tree, guint8 *drep)
1607 /* unsigned32 returntokenidp_high
1608 unsigned32 returntokenidp_low
1611 proto_item *item = NULL;
1612 proto_tree *tree = NULL;
1613 int old_offset = offset;
1614 guint32 returntokenidp_high, returntokenidp_low;
1617 di = pinfo->private_data;
1618 if (di->conformant_run)
1626 item = proto_tree_add_text (parent_tree, tvb, offset, -1, "returnTokenIDp:");
1627 tree = proto_item_add_subtree (item, ett_afs4int_returntokenidp);
1630 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1631 hf_afs4int_returntokenidp_high, &returntokenidp_high);
1633 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_afs4int_returntokenidp_low,
1634 &returntokenidp_low);
1636 if (check_col (pinfo->cinfo, COL_INFO))
1637 col_append_fstr (pinfo->cinfo, COL_INFO, " returnTokenIDp:%u/%u", returntokenidp_high,
1638 returntokenidp_low);
1641 proto_item_set_len (item, offset - old_offset);
1647 dissect_volsync (tvbuff_t * tvb, int offset,
1648 packet_info * pinfo, proto_tree * parent_tree, guint8 *drep)
1652 afsHyper VV; volume's version
1653 unsigned32 VVAge; age, in seconds, of the knowledge that the
1654 given VolVers is current
1655 unsigned32 VVPingAge; age, in seconds, of the last probe from
1656 the callee (the secondary) to the primary
1657 unsigned32 vv_spare1;
1658 unsigned32 vv_spare2;
1661 proto_item *item = NULL;
1662 proto_tree *tree = NULL;
1663 int old_offset = offset;
1664 guint32 volid_hi, volid_low, vv_hi, vv_low, vvage, vvpingage, vvspare1,
1668 di = pinfo->private_data;
1669 if (di->conformant_run)
1677 item = proto_tree_add_text (parent_tree, tvb, offset, -1,
1679 tree = proto_item_add_subtree (item, ett_afs4int_volsync);
1683 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_afs4int_volid_hi,
1686 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_afs4int_volid_low,
1689 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_afs4int_vv_hi,
1692 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_afs4int_vv_low,
1695 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_afs4int_vvage,
1698 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_afs4int_vvpingage,
1701 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_afs4int_vvspare1,
1704 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_afs4int_vvspare2,
1707 if (check_col (pinfo->cinfo, COL_INFO))
1708 col_append_fstr (pinfo->cinfo, COL_INFO,
1709 " volid_hi:%u volid_low:%u vv_hi:%u vv_low:%u vvage:%u vvpingage:%u vvpspare1:%u vvspare2:%u",
1710 volid_hi, volid_low, vv_hi, vv_low, vvage, vvpingage,
1711 vvspare1, vvspare2);
1714 proto_item_set_len (item, offset - old_offset);
1720 dissect_afsFlags (tvbuff_t * tvb, int offset,
1721 packet_info * pinfo, proto_tree * parent_tree, guint8 *drep)
1729 proto_item *item = NULL;
1730 proto_tree *tree = NULL;
1731 int old_offset = offset;
1735 di = pinfo->private_data;
1736 if (di->conformant_run)
1744 item = proto_tree_add_text (parent_tree, tvb, offset, -1, "AfsFlags:");
1745 tree = proto_item_add_subtree (item, ett_afs4int_afsflags);
1749 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_afs4int_flags,
1754 if (check_col (pinfo->cinfo, COL_INFO))
1755 col_append_str (pinfo->cinfo, COL_INFO, " Flags=");
1756 if ((flags & AFS_FLAG_RETURNTOKEN) == AFS_FLAG_RETURNTOKEN)
1758 if (check_col (pinfo->cinfo, COL_INFO))
1759 col_append_str (pinfo->cinfo, COL_INFO, ":RETURNTOKEN");
1761 if ((flags & AFS_FLAG_TOKENJUMPQUEUE) == AFS_FLAG_TOKENJUMPQUEUE)
1763 if (check_col (pinfo->cinfo, COL_INFO))
1764 col_append_str (pinfo->cinfo, COL_INFO, ":TOKENJUMPQUEUE");
1766 if ((flags & AFS_FLAG_SKIPTOKEN) == AFS_FLAG_SKIPTOKEN)
1768 if (check_col (pinfo->cinfo, COL_INFO))
1769 col_append_str (pinfo->cinfo, COL_INFO, ":SKIPTOKEN");
1771 if ((flags & AFS_FLAG_NOOPTIMISM) == AFS_FLAG_NOOPTIMISM)
1773 if (check_col (pinfo->cinfo, COL_INFO))
1774 col_append_str (pinfo->cinfo, COL_INFO, ":NOOPTIMISM");
1776 if ((flags & AFS_FLAG_TOKENID) == AFS_FLAG_TOKENID)
1778 if (check_col (pinfo->cinfo, COL_INFO))
1779 col_append_str (pinfo->cinfo, COL_INFO, ":TOKENID");
1781 if ((flags & AFS_FLAG_RETURNBLOCKER) == AFS_FLAG_RETURNBLOCKER)
1783 if (check_col (pinfo->cinfo, COL_INFO))
1784 col_append_str (pinfo->cinfo, COL_INFO, ":RETURNBLOCKER");
1786 if ((flags & AFS_FLAG_ASYNCGRANT) == AFS_FLAG_ASYNCGRANT)
1788 if (check_col (pinfo->cinfo, COL_INFO))
1789 col_append_str (pinfo->cinfo, COL_INFO, ":ASYNCGRANT");
1791 if ((flags & AFS_FLAG_NOREVOKE) == AFS_FLAG_NOREVOKE)
1793 if (check_col (pinfo->cinfo, COL_INFO))
1794 col_append_str (pinfo->cinfo, COL_INFO, ":NOREVOKE");
1796 if ((flags & AFS_FLAG_MOVE_REESTABLISH) == AFS_FLAG_MOVE_REESTABLISH)
1798 if (check_col (pinfo->cinfo, COL_INFO))
1799 col_append_str (pinfo->cinfo, COL_INFO, ":MOVE_REESTABLISH");
1801 if ((flags & AFS_FLAG_SERVER_REESTABLISH) ==
1802 AFS_FLAG_SERVER_REESTABLISH)
1804 if (check_col (pinfo->cinfo, COL_INFO))
1805 col_append_str (pinfo->cinfo, COL_INFO, ":SERVER_REESTABLISH");
1807 if ((flags & AFS_FLAG_NO_NEW_EPOCH) == AFS_FLAG_NO_NEW_EPOCH)
1809 if (check_col (pinfo->cinfo, COL_INFO))
1810 col_append_str (pinfo->cinfo, COL_INFO, ":NO_NEW_EPOCH");
1812 if ((flags & AFS_FLAG_MOVE_SOURCE_OK) == AFS_FLAG_MOVE_SOURCE_OK)
1814 if (check_col (pinfo->cinfo, COL_INFO))
1815 col_append_str (pinfo->cinfo, COL_INFO, ":MOVE_SOURCE_OK");
1817 if ((flags & AFS_FLAG_SYNC) == AFS_FLAG_SYNC)
1819 if (check_col (pinfo->cinfo, COL_INFO))
1820 col_append_str (pinfo->cinfo, COL_INFO, ":SYNC");
1822 if ((flags & AFS_FLAG_ZERO) == AFS_FLAG_ZERO)
1824 if (check_col (pinfo->cinfo, COL_INFO))
1825 col_append_str (pinfo->cinfo, COL_INFO, ":ZERO");
1827 if ((flags & AFS_FLAG_SKIPSTATUS) == AFS_FLAG_SKIPSTATUS)
1829 if (check_col (pinfo->cinfo, COL_INFO))
1830 col_append_str (pinfo->cinfo, COL_INFO, ":SKIPSTATUS");
1832 if ((flags & AFS_FLAG_FORCEREVOCATIONS) == AFS_FLAG_FORCEREVOCATIONS)
1834 if (check_col (pinfo->cinfo, COL_INFO))
1835 col_append_str (pinfo->cinfo, COL_INFO, ":FORCEREVOCATIONS");
1837 if ((flags & AFS_FLAG_FORCEVOLQUIESCE) == AFS_FLAG_FORCEVOLQUIESCE)
1839 if (check_col (pinfo->cinfo, COL_INFO))
1840 col_append_str (pinfo->cinfo, COL_INFO, ":FORCEVOLQUIESCE");
1842 if ((flags & AFS_FLAG_SEC_SERVICE) == AFS_FLAG_SEC_SERVICE)
1844 if (check_col (pinfo->cinfo, COL_INFO))
1845 col_append_str (pinfo->cinfo, COL_INFO, ":SEC_SERVICE");
1847 if ((flags & AFS_FLAG_CONTEXT_NEW_ACL_IF) ==
1848 AFS_FLAG_CONTEXT_NEW_ACL_IF)
1850 if (check_col (pinfo->cinfo, COL_INFO))
1851 col_append_str (pinfo->cinfo, COL_INFO, ":CONTEXT_NEW_ACL_IF");
1856 proto_item_set_len (item, offset - old_offset);
1861 dissect_fetchstatus (tvbuff_t * tvb, int offset,
1862 packet_info * pinfo, proto_tree * parent_tree,
1867 unsigned32 interfaceVersion;
1868 unsigned32 fileType;
1869 unsigned32 linkCount;
1871 afsHyper dataVersion;
1875 unsigned32 callerAccess;
1876 unsigned32 anonymousAccess;
1877 unsigned32 aclExpirationTime;
1879 unsigned32 parentVnode;
1880 unsigned32 parentUnique;
1882 afsTimeval changeTime;
1883 afsTimeval accessTime;
1884 afsTimeval serverModTime;
1887 unsigned32 deviceNumber;
1888 unsigned32 blocksUsed;
1889 unsigned32 clientSpare1; * client-only attrs *
1890 unsigned32 deviceNumberHighBits;
1899 proto_item *item = NULL;
1900 proto_tree *tree = NULL;
1901 int old_offset = offset;
1902 guint32 interfaceversion, filetype, linkcount, length_high, length_low,
1903 dataversion_high, dataversion_low, author, owner, group, calleraccess,
1904 anonymousaccess, aclexpirationtime, mode, parentvnode, parentunique,
1905 modtime_sec, modtime_msec, changetime_sec, changetime_msec,
1906 accesstime_sec, accesstime_msec, servermodtime_msec, servermodtime_sec,
1907 devicenumber, blocksused, clientspare1, devicenumberhighbits,
1908 agtypeunique, himaxspare, lomaxspare, pathconfspare, spare4, spare5,
1910 e_uuid_t typeuuid, objectuuid;
1913 di = pinfo->private_data;
1914 if (di->conformant_run)
1923 item = proto_tree_add_text (parent_tree, tvb, offset, -1,
1925 tree = proto_item_add_subtree (item, ett_afs4int_fetchstatus);
1929 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1930 hf_afs4int_interfaceversion, &interfaceversion);
1932 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_afs4int_filetype,
1935 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_afs4int_linkcount,
1938 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1939 hf_afs4int_length_high, &length_high);
1941 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_afs4int_length_low,
1944 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1945 hf_afs4int_dataversion_high, &dataversion_high);
1947 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1948 hf_afs4int_dataversion_low, &dataversion_low);
1950 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_afs4int_author,
1953 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_afs4int_owner,
1956 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_afs4int_group,
1959 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1960 hf_afs4int_calleraccess, &calleraccess);
1962 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1963 hf_afs4int_anonymousaccess, &anonymousaccess);
1965 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1966 hf_afs4int_aclexpirationtime, &aclexpirationtime);
1968 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_afs4int_mode,
1971 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1972 hf_afs4int_parentvnode, &parentvnode);
1974 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1975 hf_afs4int_parentunique, &parentunique);
1977 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1978 hf_afs4int_modtime_sec, &modtime_sec);
1980 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1981 hf_afs4int_modtime_msec, &modtime_msec);
1983 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1984 hf_afs4int_changetime_sec, &changetime_sec);
1986 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1987 hf_afs4int_changetime_msec, &changetime_msec);
1989 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1990 hf_afs4int_accesstime_sec, &accesstime_sec);
1992 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1993 hf_afs4int_accesstime_msec, &accesstime_msec);
1995 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1996 hf_afs4int_servermodtime_sec, &servermodtime_sec);
1998 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1999 hf_afs4int_servermodtime_msec, &servermodtime_msec);
2001 dissect_ndr_uuid_t (tvb, offset, pinfo, tree, drep, hf_afs4int_typeuuid,
2004 dissect_ndr_uuid_t (tvb, offset, pinfo, tree, drep, hf_afs4int_objectuuid,
2007 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
2008 hf_afs4int_devicenumber, &devicenumber);
2010 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_afs4int_blocksused,
2013 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
2014 hf_afs4int_clientspare1, &clientspare1);
2016 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
2017 hf_afs4int_devicenumberhighbits,
2018 &devicenumberhighbits);
2020 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
2021 hf_afs4int_agtypeunique, &agtypeunique);
2023 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_afs4int_himaxspare,
2026 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_afs4int_lomaxspare,
2029 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
2030 hf_afs4int_pathconfspare, &pathconfspare);
2032 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_afs4int_spare4,
2035 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_afs4int_spare5,
2038 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_afs4int_spare6,
2042 if (check_col (pinfo->cinfo, COL_INFO))
2043 col_append_fstr (pinfo->cinfo, COL_INFO,
2044 " :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",
2045 interfaceversion, filetype, linkcount, length_low,
2046 dataversion_low, author, owner, group, calleraccess,
2047 anonymousaccess, aclexpirationtime, mode, parentvnode,
2048 parentunique, modtime_sec, changetime_sec,
2049 accesstime_sec, servermodtime_sec, devicenumber,
2050 blocksused, clientspare1, devicenumberhighbits,
2054 proto_item_set_len (item, offset - old_offset);
2059 dissect_afsReturnDesc (tvbuff_t * tvb, int offset,
2060 packet_info * pinfo, proto_tree * parent_tree,
2064 afsFid fid; * useful hint *
2066 afsHyper type; * mask *
2067 unsigned32 flags; * just in case *
2070 proto_item *item = NULL;
2071 proto_tree *tree = NULL;
2072 int old_offset = offset;
2073 guint32 tokenid_high, tokenid_low, type_high, type_low;
2076 di = pinfo->private_data;
2077 if (di->conformant_run)
2085 item = proto_tree_add_text (parent_tree, tvb, offset, -1,
2087 tree = proto_item_add_subtree (item, ett_afs4int_afsReturnDesc);
2091 offset = dissect_afsFid ( tvb, offset, pinfo, tree, drep);
2093 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
2094 hf_afs4int_afsreturndesc_tokenid_high, &tokenid_high);
2096 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
2097 hf_afs4int_afsreturndesc_tokenid_low, &tokenid_low);
2099 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
2100 hf_afs4int_afsreturndesc_type_high, &type_high);
2102 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
2103 hf_afs4int_afsreturndesc_type_low, &type_low);
2104 if (check_col (pinfo->cinfo, COL_INFO))
2105 col_append_fstr (pinfo->cinfo, COL_INFO, " TokenId:%u/%u Type:%u/%u",
2106 tokenid_high, tokenid_low, type_high, type_low);
2109 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFlags,
2110 NDR_POINTER_REF, "afsFlags: ", -1);
2112 proto_item_set_len (item, offset - old_offset);
2119 dissect_afsReturns (tvbuff_t * tvb, int offset,
2120 packet_info * pinfo, proto_tree * tree, guint8 *drep)
2124 long afsReturns_len;
2125 [length_is(afsReturns_len)] afsReturnDesc afsReturns_val[AFS_BULKMAX];
2128 /* this is not really a ucvarray, but with the initial len, we can
2129 cheat and pretend it is */
2132 di = pinfo->private_data;
2133 if (di->conformant_run)
2139 dissect_ndr_ucvarray (tvb, offset, pinfo, tree, drep,
2140 dissect_afsReturnDesc);
2145 #if 0 /* not used */
2148 dissect_afsbundled_stat (tvbuff_t * tvb, int offset,
2149 packet_info * pinfo, proto_tree * parent_tree, guint8 *drep _U_)
2153 proto_item *item = NULL;
2154 proto_tree *tree = NULL;
2155 int old_offset = offset;
2158 di = pinfo->private_data;
2159 if (di->conformant_run)
2166 item = proto_tree_add_text (parent_tree, tvb, offset, -1, "afsbundled_stat:");
2167 tree = proto_item_add_subtree (item, ett_afs4int_afsbundled_stat);
2173 afsFetchStatus stat;
2175 error_status_t error;
2179 offset = dissect_afsFid(tvb, offset, pinfo, tree, drep);
2182 offset = dissect_fetchstatus(tvb, offset, pinfo, tree, drep);
2183 offset = dissect_afstoken(tvb, offset, pinfo, tree, drep);
2185 /* This is currently under construction as I figure out the reverse layout of the packet. */
2187 offset = dissect_afsErrorStatus (tvb, offset, pinfo, tree, drep);
2193 proto_item_set_len (item, offset - old_offset);
2198 #endif /* not used */
2201 dissect_afsBulkStat (tvbuff_t * tvb _U_, int offset,
2202 packet_info * pinfo _U_, proto_tree * tree _U_,
2206 unsigned32 BulkStat_len;
2207 [length_is(BulkStat_len)] bundled_stat BulkStat_val[AFS_BULKMAX];
2209 /* this is not really a ucvarray, but with the initial len, we can
2210 cheat and pretend it is */
2212 offset = dissect_ndr_ucvarray(tvb, offset, pinfo, tree, drep,
2213 dissect_afsbundled_stat);
2223 afs4int_dissect_removefile_rqst (tvbuff_t * tvb, int offset,
2224 packet_info * pinfo, proto_tree * tree,
2231 di = pinfo->private_data;
2232 if (di->conformant_run)
2239 [in] afsFid *DirFidp,
2240 [in] afsFidTaggedName *Namep,
2241 [in] afsHyper *returnTokenIDp,
2242 [in] afsHyper *minVVp,
2243 [in] unsigned32 Flags,
2248 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
2249 NDR_POINTER_REF, "afsFid: ", -1);
2251 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep,
2252 dissect_afsfidtaggedname, NDR_POINTER_REF,
2253 "afsFidTaggedName: ", -1);
2255 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_returntokenidp,
2256 NDR_POINTER_REF, "afsReturnTokenIDp:", -1);
2258 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_minvvp,
2259 NDR_POINTER_REF, "afsMinVVp:", -1);
2262 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFlags,
2263 NDR_POINTER_REF, "afsFlags:", -1);
2269 afs4int_dissect_storedata_rqst (tvbuff_t * tvb, int offset,
2270 packet_info * pinfo, proto_tree * tree,
2273 guint32 position_high, position_low, length;
2276 di = pinfo->private_data;
2277 if (di->conformant_run)
2284 [in] afsStoreStatus *InStatusp,
2285 [in] afsHyper *Position,
2286 [in] signed32 Length,
2287 [in] afsHyper *minVVp,
2288 [in] unsigned32 Flags,
2289 [in] pipe_t *storeStream,
2295 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
2296 NDR_POINTER_REF, "afsFid: ", -1);
2298 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep,
2299 dissect_afsstorestatus, NDR_POINTER_REF,
2300 "afsStoreStatus:", -1);
2302 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
2303 hf_afs4int_position_high, &position_high);
2305 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
2306 hf_afs4int_position_low, &position_low);
2309 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
2310 hf_afs4int_length, &length);
2312 if (check_col (pinfo->cinfo, COL_INFO))
2313 col_append_fstr (pinfo->cinfo, COL_INFO, " Position:%u/%u Length:%u",
2314 position_high, position_low, length);
2317 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_minvvp,
2318 NDR_POINTER_REF, "MinVVp:", -1);
2321 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFlags,
2322 NDR_POINTER_REF, "afsFlags:", -1);
2324 /* XXX need to decode pipe_t still here */
2330 afs4int_dissect_gettoken_rqst (tvbuff_t * tvb, int offset,
2331 packet_info * pinfo, proto_tree * tree,
2336 di = pinfo->private_data;
2337 if (di->conformant_run)
2345 [in] afsToken *MinTokenp,
2346 [in] afsHyper *minVVp,
2347 [in] unsigned32 Flags,
2352 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
2353 NDR_POINTER_REF, "afsFid: ", -1);
2356 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afstoken,
2357 NDR_POINTER_REF, "afsToken: ", -1);
2360 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_minvvp,
2361 NDR_POINTER_REF, "MinVVp:", -1);
2364 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFlags,
2365 NDR_POINTER_REF, "afsFlags:", -1);
2370 afs4int_dissect_gettoken_resp (tvbuff_t * tvb, int offset,
2371 packet_info * pinfo, proto_tree * tree,
2376 di = pinfo->private_data;
2377 if (di->conformant_run)
2383 [out] afsToken *OutTokenp,
2384 [out] afsRecordLock *OutBlockerp,
2385 [out] afsFetchStatus *OutStatusp,
2386 [out] afsVolSync *Syncp
2390 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afstoken,
2391 NDR_POINTER_REF, "afsToken: ", -1);
2393 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep,
2394 dissect_afsRecordLock, NDR_POINTER_REF,
2395 "afsRecordLock: ", -1);
2397 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_fetchstatus,
2398 NDR_POINTER_REF, "afsFetchStatus: ", -1);
2400 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_volsync,
2401 NDR_POINTER_REF, "VolSync: ", -1);
2403 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep,
2404 dissect_afsErrorStatus, NDR_POINTER_REF,
2405 "afsErrorStatus: ", -1);
2411 afs4int_dissect_lookuproot_rqst (tvbuff_t * tvb, int offset,
2412 packet_info * pinfo, proto_tree * tree,
2417 di = pinfo->private_data;
2418 if (di->conformant_run)
2425 * [in] afsFid *InFidp,
2426 * [in] afsHyper *minVVp,
2427 * [in] unsigned32 Flags,
2431 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
2432 NDR_POINTER_REF, "afsFid: ", -1);
2435 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_minvvp,
2436 NDR_POINTER_REF, "MinVVp:", -1);
2439 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFlags,
2440 NDR_POINTER_REF, "afsFlags:", -1);
2446 afs4int_dissect_fetchdata_rqst (tvbuff_t * tvb, int offset,
2447 packet_info * pinfo, proto_tree * tree,
2450 guint32 position_high, position_low, length;
2453 di = pinfo->private_data;
2454 if (di->conformant_run)
2461 [in] afsHyper *minVVp,
2462 [in] afsHyper *Position,
2463 [in] signed32 Length,
2464 [in] unsigned32 Flags,
2468 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
2469 NDR_POINTER_REF, "afsFid: ", -1);
2472 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_minvvp,
2473 NDR_POINTER_REF, "MinVVp:", -1);
2475 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
2476 hf_afs4int_position_high, &position_high);
2478 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
2479 hf_afs4int_position_low, &position_low);
2481 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
2482 hf_afs4int_length, &length);
2483 if (check_col (pinfo->cinfo, COL_INFO))
2484 col_append_fstr (pinfo->cinfo, COL_INFO, " Position:%u/%u Length:%u",
2485 position_high, position_low, length);
2488 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFlags,
2489 NDR_POINTER_REF, "afsFlags:", -1);
2495 afs4int_dissect_fetchacl_rqst (tvbuff_t * tvb, int offset,
2496 packet_info * pinfo, proto_tree * tree,
2503 di = pinfo->private_data;
2504 if (di->conformant_run)
2512 [in] unsigned32 aclType,
2513 [in] afsHyper *minVVp,
2514 [in] unsigned32 Flags,
2519 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
2520 NDR_POINTER_REF, "afsFid: ", -1);
2523 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_afs4int_acltype,
2526 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_minvvp,
2527 NDR_POINTER_REF, "MinVVp:", -1);
2530 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFlags,
2531 NDR_POINTER_REF, "afsFlags:", -1);
2535 if (check_col (pinfo->cinfo, COL_INFO))
2536 col_append_str (pinfo->cinfo, COL_INFO,
2537 " :copy the ACL from specified fid:");
2544 afs4int_dissect_fetchstatus_rqst (tvbuff_t * tvb, int offset,
2545 packet_info * pinfo, proto_tree * tree,
2550 di = pinfo->private_data;
2551 if (di->conformant_run)
2559 [in] afsHyper *minVVp,
2560 [in] unsigned32 Flags,
2564 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
2565 NDR_POINTER_REF, "afsFid: ", -1);
2567 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_minvvp,
2568 NDR_POINTER_REF, "MinVVp:", -1);
2570 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFlags,
2571 NDR_POINTER_REF, "afsFlags:", -1);
2576 afs4int_dissect_storeacl_rqst (tvbuff_t * tvb, int offset,
2577 packet_info * pinfo, proto_tree * tree,
2583 di = pinfo->private_data;
2584 if (di->conformant_run)
2591 [in] afsACL *AccessListp,
2592 [in] unsigned32 aclType,
2593 [in] afsFid *aclFidp,
2594 [in] afsHyper *minVVp,
2595 [in] unsigned32 Flags,
2600 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
2601 NDR_POINTER_REF, "afsFid: ", -1);
2603 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsAcl,
2604 NDR_POINTER_REF, "afsAcl: ", -1);
2606 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_afs4int_acltype,
2609 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
2610 NDR_POINTER_REF, "afsFid: ", -1);
2612 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_minvvp,
2613 NDR_POINTER_REF, "MinVVp:", -1);
2615 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFlags,
2616 NDR_POINTER_REF, "afsFlags:", -1);
2618 if (check_col (pinfo->cinfo, COL_INFO))
2619 col_append_fstr (pinfo->cinfo, COL_INFO, " aclType:%u",acltype);
2625 afs4int_dissect_storestatus_rqst (tvbuff_t * tvb, int offset,
2626 packet_info * pinfo, proto_tree * tree,
2631 di = pinfo->private_data;
2632 if (di->conformant_run)
2640 [in] afsStoreStatus *InStatusp,
2641 [in] afsHyper *minVVp,
2642 [in] unsigned32 Flags,
2646 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
2647 NDR_POINTER_REF, "afsFid: ", -1);
2649 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep,
2650 dissect_afsstorestatus, NDR_POINTER_REF,
2651 "afsStoreStatus: ", -1);
2653 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_minvvp,
2654 NDR_POINTER_REF, "MinVVp:", -1);
2656 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFlags,
2657 NDR_POINTER_REF, "afsFlags:", -1);
2664 afs4int_dissect_createfile_rqst (tvbuff_t * tvb, int offset,
2665 packet_info * pinfo, proto_tree * tree,
2670 di = pinfo->private_data;
2671 if (di->conformant_run)
2678 [in] afsFid *DirFidp,
2679 [in] afsTaggedName *Namep,
2680 [in] afsStoreStatus *InStatusp,
2681 [in] afsHyper *minVVp,
2682 [in] unsigned32 Flags,
2686 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
2687 NDR_POINTER_REF, "afsFid: ", -1);
2689 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep,
2690 dissect_afstaggedname, NDR_POINTER_REF,
2691 "afsTaggedName: ", -1);
2693 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep,
2694 dissect_afsstorestatus, NDR_POINTER_REF,
2695 "afsStoreStatus: ", -1);
2697 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_minvvp,
2698 NDR_POINTER_REF, "MinVVp:", -1);
2700 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFlags,
2701 NDR_POINTER_REF, "afsFlags:", -1);
2707 afs4int_dissect_rename_rqst (tvbuff_t * tvb, int offset,
2708 packet_info * pinfo, proto_tree * tree,
2713 di = pinfo->private_data;
2714 if (di->conformant_run)
2720 [in] afsFid *OldDirFidp,
2721 [in] afsFidTaggedName *OldNamep,
2722 [in] afsFid *NewDirFidp,
2723 [in] afsFidTaggedName *NewNamep,
2724 [in] afsHyper *returnTokenIDp,
2725 [in] afsHyper *minVVp,
2726 [in] unsigned32 Flags,
2731 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
2732 NDR_POINTER_REF, "afsFid: ", -1);
2735 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep,
2736 dissect_afsfidtaggedname, NDR_POINTER_REF,
2737 "afsFidTaggedName: ", -1);
2740 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
2741 NDR_POINTER_REF, "afsFid: ", -1);
2744 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep,
2745 dissect_afstaggedname, NDR_POINTER_REF,
2746 "afsFidTaggedName: ", -1);
2749 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep,
2750 dissect_returntokenidp, NDR_POINTER_REF,
2751 "afsReturnTokenIDp: ", -1);
2754 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep,
2755 dissect_minvvp, NDR_POINTER_REF,
2758 offset = dissect_afsFlags(tvb, offset, pinfo, tree, drep);
2764 afs4int_dissect_symlink_rqst (tvbuff_t * tvb, int offset,
2765 packet_info * pinfo, proto_tree * tree,
2770 di = pinfo->private_data;
2771 if (di->conformant_run)
2777 [in] afsFid *DirFidp,
2778 [in] afsTaggedName *Namep,
2779 [in] afsTaggedPath *LinkContentsp,
2780 [in] afsStoreStatus *InStatusp,
2781 [in] afsHyper *minVVp,
2782 [in] unsigned32 Flags,
2788 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
2789 NDR_POINTER_REF, "afsFid: ", -1);
2792 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep,
2793 dissect_afstaggedname, NDR_POINTER_REF,
2794 "afsTaggedName: ", -1);
2796 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep,
2797 dissect_afsTaggedPath, NDR_POINTER_REF,
2798 "afsTaggedPath: ", -1);
2800 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep,
2801 dissect_afsstorestatus, NDR_POINTER_REF,
2802 "afsStoreStatus: ", -1);
2804 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_minvvp,
2805 NDR_POINTER_REF, "MinVVp:", -1);
2806 offset = dissect_afsFlags (tvb, offset, pinfo, tree, drep);
2812 afs4int_dissect_readdir_rqst (tvbuff_t * tvb, int offset,
2813 packet_info * pinfo, proto_tree * tree,
2819 di = pinfo->private_data;
2820 if (di->conformant_run)
2826 [in] afsFid *DirFidp,
2827 [in] afsHyper *Offsetp,
2828 [in] unsigned32 Size,
2829 [in] afsHyper *minVVp,
2830 [in] unsigned32 Flags,
2834 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
2835 NDR_POINTER_REF, "afsFid: ", -1);
2837 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_offsetp,
2838 NDR_POINTER_REF, "Offsetp: ", -1);
2840 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
2841 hf_afs4int_readdir_size, &size);
2843 if (check_col (pinfo->cinfo, COL_INFO))
2844 col_append_fstr (pinfo->cinfo, COL_INFO, " Size:%u", size);
2847 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_minvvp,
2848 NDR_POINTER_REF, "MinVVp:", -1);
2849 offset = dissect_afsFlags ( tvb, offset, pinfo, tree, drep);
2855 afs4int_dissect_makedir_rqst (tvbuff_t * tvb, int offset,
2856 packet_info * pinfo, proto_tree * tree,
2861 di = pinfo->private_data;
2862 if (di->conformant_run)
2868 [in] afsFid *DirFidp,
2869 [in] afsTaggedName *Namep,
2870 [in] afsStoreStatus *InStatusp,
2871 [in] afsHyper *minVVp,
2872 [in] unsigned32 Flags,
2876 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
2877 NDR_POINTER_REF, "afsFid: ", -1);
2880 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep,
2881 dissect_afstaggedname, NDR_POINTER_REF,
2882 "afsTaggedName: ", -1);
2884 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep,
2885 dissect_afsstorestatus, NDR_POINTER_REF,
2886 "afsStoreStatus: ", -1);
2888 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_minvvp,
2889 NDR_POINTER_REF, "MinVVp:", -1);
2890 offset = dissect_afsFlags ( tvb, offset, pinfo, tree, drep);
2896 afs4int_dissect_removedir_rqst (tvbuff_t * tvb, int offset,
2897 packet_info * pinfo, proto_tree * tree,
2900 guint32 returntokenidp_high, returntokenidp_low;
2903 di = pinfo->private_data;
2904 if (di->conformant_run)
2910 [in] afsFid *DirFidp,
2911 [in] afsFidTaggedName *Namep,
2912 [in] afsHyper *returnTokenIDp,
2913 [in] afsHyper *minVVp,
2914 [in] unsigned32 Flags,
2918 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
2919 NDR_POINTER_REF, "afsFid: ", -1);
2921 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep,
2922 dissect_afsfidtaggedname, NDR_POINTER_REF,
2923 "afsFidTaggedName: ", -1);
2925 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
2926 hf_afs4int_returntokenidp_high, &returntokenidp_high);
2928 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
2929 hf_afs4int_returntokenidp_low, &returntokenidp_low);
2931 if (check_col (pinfo->cinfo, COL_INFO))
2932 col_append_fstr (pinfo->cinfo, COL_INFO, " returnTokenIDp:%u/%u",
2933 returntokenidp_high, returntokenidp_low);
2935 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_minvvp,
2936 NDR_POINTER_REF, "MinVVp:", -1);
2937 offset = dissect_afsFlags ( tvb, offset, pinfo, tree, drep );
2943 afs4int_dissect_lookup_rqst (tvbuff_t * tvb, int offset,
2944 packet_info * pinfo, proto_tree * tree,
2949 di = pinfo->private_data;
2950 if (di->conformant_run)
2956 [in] afsFid *DirFidp,
2957 [in] afsTaggedName *Namep,
2958 [in] afsHyper *minVVp,
2959 [in] unsigned32 Flags,
2963 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
2964 NDR_POINTER_REF, "afsFid: ", -1);
2967 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep,
2968 dissect_afstaggedname, NDR_POINTER_REF,
2969 "afsTaggedName: ", -1);
2971 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_minvvp,
2972 NDR_POINTER_REF, "MinVVp:", -1);
2973 offset = dissect_afsFlags ( tvb, offset, pinfo, tree, drep);
2978 afs4int_dissect_lookup_resp (tvbuff_t * tvb, int offset,
2979 packet_info * pinfo, proto_tree * tree,
2984 di = pinfo->private_data;
2985 if (di->conformant_run)
2991 [out] afsFid *OutFidp,
2992 [out] afsFetchStatus *OutFidStatusp,
2993 [out] afsFetchStatus *OutDirStatusp,
2994 [out] afsToken *OutTokenp,
2995 [out] afsVolSync *Syncp
2999 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
3000 NDR_POINTER_REF, "afsFid: ", -1);
3003 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_fetchstatus,
3004 NDR_POINTER_REF, "FetchStatus: ", -1);
3006 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_fetchstatus,
3007 NDR_POINTER_REF, "FetchStatus: ", -1);
3010 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afstoken,
3011 NDR_POINTER_REF, "afsToken: ", -1);
3013 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_volsync,
3014 NDR_POINTER_REF, "VolSync: ", -1);
3015 MACRO_ST_CLEAR ("Lookup reply");
3022 afs4int_dissect_makemountpoint_rqst (tvbuff_t * tvb, int offset,
3023 packet_info * pinfo, proto_tree * tree,
3029 di = pinfo->private_data;
3030 if (di->conformant_run)
3037 [in] afsFid *DirFidp,
3038 [in] afsTaggedName *Namep,
3039 [in] afsTaggedName *cellNamep,
3040 [in] afsFStype Type,
3041 [in] afsTaggedName *volumeNamep,
3042 [in] afsStoreStatus *InStatusp,
3043 [in] afsHyper *minVVp,
3044 [in] unsigned32 Flags,
3049 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
3050 NDR_POINTER_REF, "afsFid: ", -1);
3053 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep,
3054 dissect_afstaggedname, NDR_POINTER_REF,
3055 "afsTaggedName: ", -1);
3057 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep,
3058 dissect_afstaggedname, NDR_POINTER_REF,
3059 "afsTaggedName: ", -1);
3061 dissect_ndr_uint16 (tvb, offset, pinfo, tree, drep, hf_afs4int_fstype,
3064 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep,
3065 dissect_afstaggedname, NDR_POINTER_REF,
3066 "afsTaggedName: ", -1);
3068 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep,
3069 dissect_afsstorestatus, NDR_POINTER_REF,
3070 "afsStoreStatus: ", -1);
3072 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_minvvp,
3073 NDR_POINTER_REF, "MinVVp:", -1);
3075 offset = dissect_afsFlags (tvb, offset, pinfo, tree, drep);
3077 if (check_col (pinfo->cinfo, COL_INFO))
3078 col_append_fstr (pinfo->cinfo, COL_INFO, " Type:%u", type);
3085 afs4int_dissect_setcontext_rqst (tvbuff_t * tvb, int offset,
3086 packet_info * pinfo, proto_tree * tree,
3091 guint32 epochtime, clientsizesattrs, parm7;
3093 di = pinfo->private_data;
3094 if (di->conformant_run)
3100 [in] unsigned32 epochTime,
3101 [in] afsNetData *callbackAddr,
3102 [in] unsigned32 Flags,
3103 [in] afsUUID *secObjectID,
3104 [in] unsigned32 clientSizesAttrs,
3105 [in] unsigned32 parm7
3110 dissect_dcerpc_time_t (tvb, offset, pinfo, tree, drep,
3111 hf_afs4int_setcontext_rqst_epochtime, &epochtime);
3113 offset = dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsNetData,
3114 NDR_POINTER_REF, "afsNetData:", -1);
3116 offset = dissect_afsFlags (tvb, offset, pinfo, tree, drep);
3118 if (check_col (pinfo->cinfo, COL_INFO)) col_append_str (pinfo->cinfo, COL_INFO, " setObjectID");
3120 offset = dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsuuid,
3121 NDR_POINTER_REF, "afsUUID:", -1);
3123 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
3124 hf_afs4int_setcontext_rqst_clientsizesattrs,
3127 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
3128 hf_afs4int_setcontext_rqst_parm7, &parm7);
3130 if (check_col (pinfo->cinfo, COL_INFO)) col_append_fstr (pinfo->cinfo, COL_INFO, " epochTime:%u clientSizesAttrs:%u parm7:%u", epochtime, clientsizesattrs, parm7);
3136 afs4int_dissect_setcontext_resp (tvbuff_t * tvb, int offset,
3137 packet_info * pinfo, proto_tree * tree,
3140 /* nothing but error code */
3145 di = pinfo->private_data;
3146 if (di->conformant_run)
3151 MACRO_ST_CLEAR ("SetContext reply");
3156 afs4int_dissect_lookuproot_resp
3158 tvb, int offset, packet_info * pinfo, proto_tree * tree, guint8 *drep)
3162 di = pinfo->private_data;
3163 if (di->conformant_run)
3169 * [out] afsFid *OutFidp,
3170 * [out] afsFetchStatus *OutFidStatusp,
3171 * [out] afsToken *OutTokenp,
3172 * [out] afsVolSync *Syncp
3176 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
3177 NDR_POINTER_REF, "afsFid: ", -1);
3180 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_fetchstatus,
3181 NDR_POINTER_REF, "FetchStatus: ", -1);
3183 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afstoken,
3184 NDR_POINTER_REF, "afsToken: ", -1);
3186 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_volsync,
3187 NDR_POINTER_REF, "VolSync: ", -1);
3188 MACRO_ST_CLEAR ("LookupRoot reply");
3193 afs4int_dissect_fetchdata_resp
3195 tvb, int offset, packet_info * pinfo, proto_tree * tree, guint8 *drep)
3199 guint32 pipe_t_size;
3201 di = pinfo->private_data;
3202 if (di->conformant_run)
3208 [out] afsFetchStatus *OutStatusp,
3209 [out] afsToken *OutTokenp,
3210 [out] afsVolSync *Syncp,
3211 [out] pipe_t *fetchStream
3213 /* The SkipToken/SkipStatus flags are always used in every fetchdata request I have seen.
3214 There is also not sign of the afsVolSync structure... Just size, and data string... aka pipe_t */
3217 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
3218 hf_afs4int_fetchdata_pipe_t_size, &pipe_t_size);
3224 afs4int_dissect_fetchacl_resp
3226 tvb, int offset, packet_info * pinfo, proto_tree * tree, guint8 *drep)
3230 di = pinfo->private_data;
3231 if (di->conformant_run)
3238 [out] afsACL *AccessListp,
3239 [out] afsFetchStatus *OutStatusp,
3240 [out] afsVolSync *Syncp
3243 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsAcl,
3244 NDR_POINTER_REF, "afsAcl: ", -1);
3246 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_fetchstatus,
3247 NDR_POINTER_REF, "FetchStatus: ", -1);
3250 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_volsync,
3251 NDR_POINTER_REF, "VolSync: ", -1);
3252 MACRO_ST_CLEAR ("FetchAcl reply");
3257 afs4int_dissect_fetchstatus_resp
3259 tvb, int offset, packet_info * pinfo, proto_tree * tree, guint8 *drep)
3263 di = pinfo->private_data;
3264 if (di->conformant_run)
3270 [out] afsFetchStatus *OutStatusp,
3271 [out] afsToken *OutTokenp,
3272 [out] afsVolSync *Syncp
3276 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_fetchstatus,
3277 NDR_POINTER_REF, "FetchStatus: ", -1);
3280 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afstoken,
3281 NDR_POINTER_REF, "afsToken: ", -1);
3283 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_volsync,
3284 NDR_POINTER_REF, "VolSync: ", -1);
3285 MACRO_ST_CLEAR ("FetchStatus reply");
3290 afs4int_dissect_storedata_resp
3292 tvb, int offset, packet_info * pinfo, proto_tree * tree, guint8 *drep)
3296 di = pinfo->private_data;
3297 if (di->conformant_run)
3303 [out] afsFetchStatus *OutStatusp,
3304 [out] afsVolSync *Syncp
3308 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_fetchstatus,
3309 NDR_POINTER_REF, "FetchStatus: ", -1);
3312 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_volsync,
3313 NDR_POINTER_REF, "VolSync: ", -1);
3314 MACRO_ST_CLEAR ("StoreData reply");
3319 afs4int_dissect_storeacl_resp
3321 tvb, int offset, packet_info * pinfo, proto_tree * tree, guint8 *drep)
3325 di = pinfo->private_data;
3326 if (di->conformant_run)
3332 [out] afsFetchStatus *OutStatusp,
3333 [out] afsVolSync *Syncp
3337 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_fetchstatus,
3338 NDR_POINTER_REF, "FetchStatus: ", -1);
3341 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_volsync,
3342 NDR_POINTER_REF, "VolSync: ", -1);
3343 MACRO_ST_CLEAR ("StoreAcl reply");
3348 afs4int_dissect_storestatus_resp
3350 tvb, int offset, packet_info * pinfo, proto_tree * tree, guint8 *drep)
3354 di = pinfo->private_data;
3355 if (di->conformant_run)
3361 [out] afsFetchStatus *OutStatusp,
3362 [out] afsVolSync *Syncp
3366 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_fetchstatus,
3367 NDR_POINTER_REF, "FetchStatus: ", -1);
3370 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_volsync,
3371 NDR_POINTER_REF, "VolSync: ", -1);
3372 MACRO_ST_CLEAR ("StoreStatus reply");
3377 afs4int_dissect_removefile_resp
3379 tvb, int offset, packet_info * pinfo, proto_tree * tree, guint8 *drep)
3383 di = pinfo->private_data;
3384 if (di->conformant_run)
3390 [out] afsFetchStatus *OutDirStatusp,
3391 [out] afsFetchStatus *OutFileStatusp,
3392 [out] afsFid *OutFileFidp,
3393 [out] afsVolSync *Syncp
3396 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_fetchstatus,
3397 NDR_POINTER_REF, "FetchStatus: ", -1);
3400 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_fetchstatus,
3401 NDR_POINTER_REF, "FetchStatus: ", -1);
3403 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
3404 NDR_POINTER_REF, "afsFid: ", -1);
3406 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_volsync,
3407 NDR_POINTER_REF, "VolSync: ", -1);
3408 MACRO_ST_CLEAR ("RemoveFile reply");
3413 afs4int_dissect_createfile_resp
3415 tvb, int offset, packet_info * pinfo, proto_tree * tree, guint8 *drep)
3419 di = pinfo->private_data;
3420 if (di->conformant_run)
3426 [out] afsFid *OutFidp,
3427 [out] afsFetchStatus *OutFidStatusp,
3428 [out] afsFetchStatus *OutDirStatusp,
3429 [out] afsToken *OutTokenp,
3430 [out] afsVolSync *Syncp
3435 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
3436 NDR_POINTER_REF, "afsFid: ", -1);
3438 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_fetchstatus,
3439 NDR_POINTER_REF, "FetchStatus: ", -1);
3442 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_fetchstatus,
3443 NDR_POINTER_REF, "FetchStatus: ", -1);
3446 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afstoken,
3447 NDR_POINTER_REF, "afsToken: ", -1);
3449 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_volsync,
3450 NDR_POINTER_REF, "VolSync: ", -1);
3451 MACRO_ST_CLEAR ("CreateFile reply");
3456 afs4int_dissect_rename_resp
3458 tvb, int offset, packet_info * pinfo, proto_tree * tree, guint8 *drep)
3462 di = pinfo->private_data;
3463 if (di->conformant_run)
3469 [out] afsFetchStatus *OutOldDirStatusp,
3470 [out] afsFetchStatus *OutNewDirStatusp,
3471 [out] afsFid *OutOldFileFidp,
3472 [out] afsFetchStatus *OutOldFileStatusp,
3473 [out] afsFid *OutNewFileFidp,
3474 [out] afsFetchStatus *OutNewFileStatusp,
3475 [out] afsVolSync *Syncp
3479 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_fetchstatus,
3480 NDR_POINTER_REF, "FetchStatus: ", -1);
3482 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_fetchstatus,
3483 NDR_POINTER_REF, "FetchStatus: ", -1);
3485 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
3486 NDR_POINTER_REF, "afsFid: ", -1);
3488 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_fetchstatus,
3489 NDR_POINTER_REF, "FetchStatus: ", -1);
3491 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
3492 NDR_POINTER_REF, "afsFid: ", -1);
3495 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_fetchstatus,
3496 NDR_POINTER_REF, "FetchStatus: ", -1);
3499 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_volsync,
3500 NDR_POINTER_REF, "VolSync: ", -1);
3501 MACRO_ST_CLEAR("Rename reply");
3506 afs4int_dissect_symlink_resp
3508 tvb, int offset, packet_info * pinfo, proto_tree * tree, guint8 *drep)
3512 di = pinfo->private_data;
3513 if (di->conformant_run)
3519 [out] afsFid *OutFidp,
3520 [out] afsFetchStatus *OutFidStatusp,
3521 [out] afsFetchStatus *OutDirStatusp,
3522 [out] afsToken *OutTokenp,
3523 [out] afsVolSync *Syncp
3527 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
3528 NDR_POINTER_REF, "afsFid: ", -1);
3530 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_fetchstatus,
3531 NDR_POINTER_REF, "FetchStatus: ", -1);
3533 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_fetchstatus,
3534 NDR_POINTER_REF, "FetchStatus: ", -1);
3536 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afstoken,
3537 NDR_POINTER_REF, "afsToken: ", -1);
3539 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_volsync,
3540 NDR_POINTER_REF, "VolSync: ", -1);
3541 MACRO_ST_CLEAR ("Symlink reply");
3547 afs4int_dissect_hardlink_resp
3549 tvb, int offset, packet_info * pinfo, proto_tree * tree, guint8 *drep)
3553 di = pinfo->private_data;
3554 if (di->conformant_run)
3560 [out] afsFetchStatus *OutFidStatusp,
3561 [out] afsFetchStatus *OutDirStatusp,
3562 [out] afsVolSync *Syncp
3567 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_fetchstatus,
3568 NDR_POINTER_REF, "FetchStatus: ", -1);
3570 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_fetchstatus,
3571 NDR_POINTER_REF, "FetchStatus: ", -1);
3573 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_volsync,
3574 NDR_POINTER_REF, "VolSync: ", -1);
3575 MACRO_ST_CLEAR ("Hardlink reply");
3580 afs4int_dissect_hardlink_rqst
3582 tvb, int offset, packet_info * pinfo, proto_tree * tree, guint8 *drep)
3586 di = pinfo->private_data;
3587 if (di->conformant_run)
3593 [in] afsFid *DirFidp,
3594 [in] afsTaggedName *Namep,
3595 [in] afsFid *ExistingFidp,
3596 [in] afsHyper *minVVp,
3597 [in] unsigned32 Flags,
3602 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
3603 NDR_POINTER_REF, "afsFid: ", -1);
3606 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep,
3607 dissect_afstaggedname, NDR_POINTER_REF,
3608 "afsTaggedName: ", -1);
3611 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
3612 NDR_POINTER_REF, "afsFid: ", -1);
3615 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_minvvp,
3616 NDR_POINTER_REF, "MinVVp:", -1);
3618 offset = dissect_afsFlags ( tvb, offset, pinfo, tree, drep);
3624 afs4int_dissect_makedir_resp
3626 tvb, int offset, packet_info * pinfo, proto_tree * tree, guint8 *drep)
3630 di = pinfo->private_data;
3631 if (di->conformant_run)
3637 [out] afsFid *OutFidp,
3638 [out] afsFetchStatus *OutFidStatusp,
3639 [out] afsFetchStatus *OutDirStatusp,
3640 [out] afsToken *OutTokenp,
3641 [out] afsVolSync *Syncp
3644 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
3645 NDR_POINTER_REF, "afsFid: ", -1);
3647 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_fetchstatus,
3648 NDR_POINTER_REF, "FetchStatus: ", -1);
3650 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_fetchstatus,
3651 NDR_POINTER_REF, "FetchStatus: ", -1);
3653 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afstoken,
3654 NDR_POINTER_REF, "afsToken: ", -1);
3656 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_volsync,
3657 NDR_POINTER_REF, "VolSync: ", -1);
3659 MACRO_ST_CLEAR ("MakeDir reply");
3665 afs4int_dissect_removedir_resp
3667 tvb, int offset, packet_info * pinfo, proto_tree * tree, guint8 *drep)
3671 di = pinfo->private_data;
3672 if (di->conformant_run)
3678 [out] afsFetchStatus *OutDirStatusp,
3679 [out] afsFid *OutFidp,
3680 [out] afsFetchStatus *OutDelStatusp,
3681 [out] afsVolSync *Syncp
3685 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_fetchstatus,
3686 NDR_POINTER_REF, "FetchStatus: ", -1);
3688 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
3689 NDR_POINTER_REF, "afsFid: ", -1);
3691 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_fetchstatus,
3692 NDR_POINTER_REF, "FetchStatus: ", -1);
3694 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_volsync,
3695 NDR_POINTER_REF, "VolSync: ", -1);
3696 MACRO_ST_CLEAR ("RemoveDir reply");
3703 afs4int_dissect_readdir_resp
3705 tvb, int offset, packet_info * pinfo, proto_tree * tree, guint8 *drep)
3708 guint32 nextoffsetp_high, nextoffsetp_low;
3711 di = pinfo->private_data;
3712 if (di->conformant_run)
3719 [out] afsHyper *NextOffsetp,
3720 [out] afsFetchStatus *OutDirStatusp,
3721 [out] afsToken *OutTokenp,
3722 [out] afsVolSync *Syncp,
3723 [out] pipe_t *dirStream
3727 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
3728 hf_afs4int_nextoffsetp_high, &nextoffsetp_high);
3730 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
3731 hf_afs4int_nextoffsetp_low, &nextoffsetp_low);
3733 if (check_col (pinfo->cinfo, COL_INFO))
3734 col_append_fstr (pinfo->cinfo, COL_INFO, " NextOffsetp:%u/%u",
3735 nextoffsetp_high, nextoffsetp_low);
3737 /* all packets seem to have SKIPTOKEN/SKIPSTATUS sent, and thus these structures are missing on calls holding tokens. */
3740 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_volsync,
3741 NDR_POINTER_REF, "VolSync: ", -1);
3742 /* XXX need to add pipe_t here, once figured out. */
3748 afs4int_dissect_releasetokens_resp
3750 tvb, int offset, packet_info * pinfo, proto_tree * tree, guint8 *drep)
3754 di = pinfo->private_data;
3755 if (di->conformant_run)
3761 MACRO_ST_CLEAR ("ReleaseTokens reply");
3766 afs4int_dissect_releasetokens_rqst
3768 tvb, int offset, packet_info * pinfo, proto_tree * tree, guint8 *drep)
3772 di = pinfo->private_data;
3773 if (di->conformant_run)
3780 [in] afsReturns *Tokens_Arrayp,
3781 [in] unsigned32 Flags
3784 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsReturns,
3785 NDR_POINTER_REF, "afsReturns: ", -1);
3787 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFlags,
3788 NDR_POINTER_REF, "afsFlags: ", -1);
3793 afs4int_dissect_gettime_resp
3795 tvb, int offset, packet_info * pinfo, proto_tree * tree, guint8 *drep)
3798 guint32 secondsp, usecondsp, syncdistance, syncdispersion;
3801 di = pinfo->private_data;
3802 if (di->conformant_run)
3808 [out] unsigned32 *Secondsp,
3809 [out] unsigned32 *USecondsp,
3810 [out] unsigned32 *SyncDistance,
3811 [out] unsigned32 *SyncDispersion
3815 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
3816 hf_afs4int_gettime_secondsp, &secondsp);
3818 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
3819 hf_afs4int_gettime_usecondsp, &usecondsp);
3821 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
3822 hf_afs4int_gettime_syncdistance, &syncdistance);
3824 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
3825 hf_afs4int_gettime_syncdispersion, &syncdispersion);
3827 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);
3829 MACRO_ST_CLEAR ("GetTime reply");
3836 afs4int_dissect_gettime_rqst
3838 tvb _U_, int offset, packet_info * pinfo, proto_tree * tree _U_, guint8 *drep _U_)
3842 di = pinfo->private_data;
3843 if (di->conformant_run)
3854 afs4int_dissect_processquota_resp
3856 tvb, int offset, packet_info * pinfo, proto_tree * tree, guint8 *drep)
3860 di = pinfo->private_data;
3861 if (di->conformant_run)
3867 [in,out] afsQuota *quotaListp,
3868 [out] afsFetchStatus *OutStatusp,
3869 [out] afsVolSync *Syncp
3872 /* XXX need afsQuota */
3875 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_fetchstatus,
3876 NDR_POINTER_REF, "FetchStatus: ", -1);
3878 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_volsync,
3879 NDR_POINTER_REF, "VolSync: ", -1);
3880 MACRO_ST_CLEAR ("ProcessQuota reply");
3886 afs4int_dissect_processquota_rqst
3888 tvb, int offset, packet_info * pinfo, proto_tree * tree, guint8 *drep)
3892 di = pinfo->private_data;
3893 if (di->conformant_run)
3900 [in] afsHyper *minVVp,
3901 [in] unsigned32 Flags,
3902 [in,out] afsQuota *quotaListp,
3907 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
3908 NDR_POINTER_REF, "afsFid: ", -1);
3910 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_minvvp,
3911 NDR_POINTER_REF, "MinVVp:", -1);
3912 offset = dissect_afsFlags ( tvb, offset, pinfo, tree, drep);
3914 /* XXX need to figure out afsQuota here */
3919 afs4int_dissect_getserverinterfaces_rqst
3921 tvb _U_, int offset, packet_info * pinfo, proto_tree * tree _U_, guint8 *drep _U_)
3925 di = pinfo->private_data;
3926 if (di->conformant_run)
3932 [in, out] dfs_interfaceList *serverInterfacesP
3934 /* XXX figure out dfs_interfacelist */
3939 afs4int_dissect_getserverinterfaces_resp
3941 tvb, int offset, packet_info * pinfo, proto_tree * tree, guint8 *drep)
3945 di = pinfo->private_data;
3946 if (di->conformant_run)
3952 [in, out] dfs_interfaceList *serverInterfacesP
3954 /* XXX figure out dfs_interfacelist */
3956 MACRO_ST_CLEAR ("GetServerInterfaces reply");
3961 afs4int_dissect_setparams_rqst
3963 tvb, int offset, packet_info * pinfo, proto_tree * tree, guint8 *drep)
3967 di = pinfo->private_data;
3968 if (di->conformant_run)
3974 [in] unsigned32 Flags,
3975 [in, out] afsConnParams *paramsP
3977 offset = dissect_afsFlags( tvb, offset, pinfo, tree, drep);
3979 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep,
3980 dissect_afsConnParams, NDR_POINTER_REF,
3981 "afsConnParams:", -1);
3986 afs4int_dissect_setparams_resp
3988 tvb, int offset, packet_info * pinfo, proto_tree * tree, guint8 *drep)
3992 di = pinfo->private_data;
3993 if (di->conformant_run)
3999 [in, out] afsConnParams *paramsP
4003 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep,
4004 dissect_afsConnParams, NDR_POINTER_REF,
4005 "afsConnParams:", -1);
4006 MACRO_ST_CLEAR ("SetParams reply");
4011 afs4int_dissect_makemountpoint_resp
4013 tvb, int offset, packet_info * pinfo, proto_tree * tree, guint8 *drep)
4017 di = pinfo->private_data;
4018 if (di->conformant_run)
4024 [out] afsFid *OutFidp,
4025 [out] afsFetchStatus *OutFidStatusp,
4026 [out] afsFetchStatus *OutDirStatusp,
4027 [out] afsVolSync *Syncp
4031 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
4032 NDR_POINTER_REF, "afsFid: ", -1);
4034 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_fetchstatus,
4035 NDR_POINTER_REF, "FetchStatus: ", -1);
4037 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_fetchstatus,
4038 NDR_POINTER_REF, "FetchStatus: ", -1);
4041 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_volsync,
4042 NDR_POINTER_REF, "VolSync: ", -1);
4043 MACRO_ST_CLEAR ("MakeMountPoint reply");
4048 afs4int_dissect_getstatistics_rqst
4050 tvb _U_, int offset, packet_info * pinfo, proto_tree * tree _U_, guint8 *drep _U_)
4054 di = pinfo->private_data;
4055 if (di->conformant_run)
4060 /* nothing for request */
4065 afs4int_dissect_getstatistics_resp
4067 tvb _U_, int offset, packet_info * pinfo, proto_tree * tree _U_, guint8 *drep _U_)
4071 di = pinfo->private_data;
4072 if (di->conformant_run)
4078 [out] afsStatistics *Statisticsp
4080 /* XXX figure out afsStatistics */
4085 afs4int_dissect_bulkfetchvv_rqst
4087 tvb, int offset, packet_info * pinfo, proto_tree * tree, guint8 *drep)
4090 guint32 cellidp_high, cellidp_low, numvols, spare1, spare2;
4093 di = pinfo->private_data;
4094 if (di->conformant_run)
4100 [in] afsHyper *cellIdp,
4101 [in] afsBulkVolIDs *VolIDsp,
4102 [in] unsigned32 NumVols,
4103 [in] unsigned32 Flags,
4104 [in] unsigned32 spare1,
4105 [in] unsigned32 spare2,
4108 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
4109 hf_afs4int_cellidp_high, &cellidp_high);
4111 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
4112 hf_afs4int_cellidp_low, &cellidp_low);
4114 if (check_col (pinfo->cinfo, COL_INFO))
4115 col_append_fstr (pinfo->cinfo, COL_INFO, " CellIDp:%u/%u", cellidp_high,
4118 /* XXX figure out the afsBulkVolIDS */
4120 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
4121 hf_afs4int_bulkfetchvv_numvols, &numvols);
4123 offset = dissect_afsFlags (tvb, offset, pinfo, tree, drep);
4125 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
4126 hf_afs4int_bulkfetchvv_spare1, &spare1);
4128 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
4129 hf_afs4int_bulkfetchvv_spare2, &spare2);
4134 afs4int_dissect_bulkfetchvv_resp
4136 tvb _U_, int offset, packet_info * pinfo, proto_tree * tree _U_, guint8 *drep _U_)
4140 di = pinfo->private_data;
4141 if (di->conformant_run)
4147 [out] afsBulkVVs *VolVVsp,
4148 [out] unsigned32 *spare4
4150 /* XXX need to figure out afsBulkVVs ; */
4155 afs4int_dissect_bulkkeepalive_resp
4157 tvb, int offset, packet_info * pinfo, proto_tree * tree, guint8 *drep)
4162 di = pinfo->private_data;
4163 if (di->conformant_run)
4169 [out] unsigned32 *spare4
4173 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
4174 hf_afs4int_bulkkeepalive_spare4, &spare4);
4175 MACRO_ST_CLEAR ("BulkKeepAlive reply");
4180 afs4int_dissect_bulkkeepalive_rqst
4182 tvb, int offset, packet_info * pinfo, proto_tree * tree, guint8 *drep)
4184 guint32 numexecfids, spare1, spare2;
4187 di = pinfo->private_data;
4188 if (di->conformant_run)
4194 [in] afsBulkFEX *KAFEXp,
4195 [in] unsigned32 numExecFids,
4196 [in] unsigned32 Flags,
4197 [in] unsigned32 spare1,
4198 [in] unsigned32 spare2,
4200 /* XXX figure out afsBulkFEX */
4202 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
4203 hf_afs4int_bulkkeepalive_numexecfids, &numexecfids);
4205 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFlags,
4206 NDR_POINTER_REF, "afsFlags:", -1);
4208 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
4209 hf_afs4int_bulkkeepalive_spare1, &spare1);
4211 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
4212 hf_afs4int_bulkkeepalive_spare2, &spare2);
4217 afs4int_dissect_bulkfetchstatus_rqst
4219 tvb, int offset, packet_info * pinfo, proto_tree * tree, guint8 *drep)
4221 guint32 offsetp_high, offsetp_low, size;
4224 di = pinfo->private_data;
4225 if (di->conformant_run)
4232 [in] afsFid *DirFidp,
4233 [in] afsHyper *Offsetp,
4234 [in] unsigned32 Size,
4235 [in] afsHyper *minVVp,
4236 [in] unsigned32 Flags,
4240 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsFid,
4241 NDR_POINTER_REF, "afsFid: ", -1);
4243 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
4244 hf_afs4int_offsetp_high, &offsetp_high);
4246 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
4247 hf_afs4int_offsetp_low, &offsetp_low);
4249 if (check_col (pinfo->cinfo, COL_INFO))
4250 col_append_fstr (pinfo->cinfo, COL_INFO, " Offsetp:%u/%u", offsetp_high,
4253 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
4254 hf_afs4int_bulkfetchstatus_size, &size);
4256 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_minvvp,
4257 NDR_POINTER_REF, "MinVVp:", -1);
4258 offset = dissect_afsFlags(tvb, offset, pinfo, tree, drep);
4264 afs4int_dissect_bulkfetchstatus_resp
4266 tvb, int offset, packet_info * pinfo, proto_tree * tree, guint8 *drep)
4271 di = pinfo->private_data;
4272 if (di->conformant_run)
4278 [out] BulkStat *bulkstats,
4279 [out] afsHyper *NextOffsetp,
4280 [out] afsFetchStatus *OutDirStatusp,
4281 [out] afsToken *OutTokenp,
4282 [out] afsVolSync *Syncp,
4283 [out] pipe_t *dirStream
4287 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afsBulkStat,
4288 NDR_POINTER_REF, "BulkStat: ", -1);
4289 /* Under construction. The packet seems to have the pipe_t before the rest of the data listed in idl. */
4293 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
4294 hf_afs4int_nextoffsetp_high, &nextoffsetp_high);
4296 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
4297 hf_afs4int_nextoffsetp_low, &nextoffsetp_low);
4299 if (check_col (pinfo->cinfo, COL_INFO))
4300 col_append_fstr (pinfo->cinfo, COL_INFO, " NextOffsetp:%u/%u",
4301 nextoffsetp_high, nextoffsetp_low);
4303 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_fetchstatus,
4304 NDR_POINTER_REF, "FetchStatus: ", -1);
4306 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_afstoken,
4307 NDR_POINTER_REF, "afsToken: ", -1);
4309 dissect_ndr_pointer (tvb, offset, pinfo, tree, drep, dissect_volsync,
4310 NDR_POINTER_REF, "VolSync: ", -1);
4312 /* XXX figure out pipe_t */
4317 static dcerpc_sub_dissector afs4int_dissectors[] = {
4318 { 0, "SetContext", afs4int_dissect_setcontext_rqst, afs4int_dissect_setcontext_resp} ,
4319 { 1, "LookupRoot", afs4int_dissect_lookuproot_rqst, afs4int_dissect_lookuproot_resp} ,
4320 { 2, "FetchData", afs4int_dissect_fetchdata_rqst, afs4int_dissect_fetchdata_resp} ,
4321 { 3, "FetchAcl", afs4int_dissect_fetchacl_rqst, afs4int_dissect_fetchacl_resp} ,
4322 { 4, "FetchStatus", afs4int_dissect_fetchstatus_rqst, afs4int_dissect_fetchstatus_resp} ,
4323 { 5, "StoreData", afs4int_dissect_storedata_rqst, afs4int_dissect_storedata_resp} ,
4324 { 6, "StoreAcl", afs4int_dissect_storeacl_rqst, afs4int_dissect_storeacl_resp} ,
4325 { 7, "StoreStatus", afs4int_dissect_storestatus_rqst, afs4int_dissect_storestatus_resp} ,
4326 { 8, "RemoveFile", afs4int_dissect_removefile_rqst, afs4int_dissect_removefile_resp} ,
4327 { 9, "CreateFile", afs4int_dissect_createfile_rqst, afs4int_dissect_createfile_resp} ,
4328 { 10, "Rename", afs4int_dissect_rename_rqst, afs4int_dissect_rename_resp} ,
4329 { 11, "Symlink", afs4int_dissect_symlink_rqst, afs4int_dissect_symlink_resp} ,
4330 { 12, "HardLink", afs4int_dissect_hardlink_rqst, afs4int_dissect_hardlink_resp} ,
4331 { 13, "MakeDir", afs4int_dissect_makedir_rqst, afs4int_dissect_makedir_resp} ,
4332 { 14, "RemoveDir", afs4int_dissect_removedir_rqst, afs4int_dissect_removedir_resp} ,
4333 { 15, "Readdir", afs4int_dissect_readdir_rqst, afs4int_dissect_readdir_resp} ,
4334 { 16, "Lookup", afs4int_dissect_lookup_rqst, afs4int_dissect_lookup_resp} ,
4335 { 17, "GetToken", afs4int_dissect_gettoken_rqst, afs4int_dissect_gettoken_resp} ,
4336 { 18, "ReleaseTokens", afs4int_dissect_releasetokens_rqst, afs4int_dissect_releasetokens_resp} ,
4337 { 19, "GetTime", afs4int_dissect_gettime_rqst, afs4int_dissect_gettime_resp} ,
4338 { 20, "MakeMountPoint", afs4int_dissect_makemountpoint_rqst, afs4int_dissect_makemountpoint_resp} ,
4339 { 21, "GetStatistics", afs4int_dissect_getstatistics_rqst, afs4int_dissect_getstatistics_resp} ,
4340 { 22, "BulkFetchVV", afs4int_dissect_bulkfetchvv_rqst, afs4int_dissect_bulkfetchvv_resp} ,
4341 { 23, "BulkKeepAlive", afs4int_dissect_bulkkeepalive_rqst, afs4int_dissect_bulkkeepalive_resp} ,
4342 { 24, "ProcessQuota", afs4int_dissect_processquota_rqst, afs4int_dissect_processquota_resp} ,
4343 { 25, "GetServerInterfaces", afs4int_dissect_getserverinterfaces_rqst, afs4int_dissect_getserverinterfaces_resp} ,
4344 { 26, "SetParams", afs4int_dissect_setparams_rqst, afs4int_dissect_setparams_resp} ,
4345 { 27, "BulkFetchStatus", afs4int_dissect_bulkfetchstatus_rqst, afs4int_dissect_bulkfetchstatus_resp} ,
4346 { 0, NULL, NULL, NULL}
4350 proto_register_afs4int (void)
4354 static hf_register_info hf[] = {
4355 { &hf_error_st, {"AFS4Int Error Status Code", "afs4int.st", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL}},
4356 { &hf_afs4int_flags, {"DFS Flags", "afs4int.flags", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL}},
4357 { &hf_afs4int_tn_string, {"String ", "afs4int.string", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL}},
4358 { &hf_afs4int_tn_size, {"String Size", "afs4int.tn_size", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL}},
4359 { &hf_afs4int_opnum, {"Operation", "afs4int.opnum", FT_UINT16, BASE_DEC, NULL, 0x0, "Operation", HFILL}},
4360 { &hf_afs4int_setcontext_rqst_epochtime, {"EpochTime:", "afs4int.setcontext_rqst_epochtime", FT_ABSOLUTE_TIME, BASE_NONE, NULL, 0x0, "", HFILL}},
4361 { &hf_afs4int_setcontext_rqst_secobjectid, { "SetObjectid:", "afs4int.setcontext_secobjextid", FT_STRING, BASE_NONE, NULL, 0x0, "UUID", HFILL} } ,
4362 { &hf_afs4int_setcontext_rqst_clientsizesattrs, { "ClientSizeAttrs:", "afs4int.setcontext_clientsizesattrs", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL} } ,
4363 { &hf_afs4int_setcontext_rqst_parm7, { "Parm7:", "afs4int.setcontext.parm7", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL} } ,
4364 { &hf_afs4int_acl_len, {"Acl Length", "afs4int.acl_len", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL}},
4365 { &hf_afs4int_acltype, {"afs4int.acltype", "afs4int.acltype", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL}},
4366 { &hf_afs4int_minvvp_high, {"afs4int.minvvp_high", "afs4int.minvvp_high", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL}},
4367 { &hf_afs4int_minvvp_low, {"afs4int.minvvp_low", "afs4int.minvvp_low", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL}},
4368 { &hf_afs4int_volume_low, { "afs4int.volume_low", "afs4int.volume_low", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL} } ,
4369 { &hf_afs4int_volume_high, { "afs4int.volume_high", "afs4int.volume_high", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL} } ,
4370 { &hf_afs4int_vnode, { "afs4int.vnode", "afs4int.vnode", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL} } ,
4371 { &hf_afs4int_unique, { "afs4int.unique", "afs4int.unique", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL} } ,
4372 { &hf_afs4int_accesstime_msec, { "afs4int.accesstime_msec", "afs4int.accesstime_msec", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL} } ,
4373 { &hf_afs4int_accesstime_sec, { "afs4int.accesstime_sec", "afs4int.accesstime_sec", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL} } ,
4374 { &hf_afs4int_aclexpirationtime, { "afs4int.aclexpirationtime", "afs4int.aclexpirationtime", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL} } ,
4375 { &hf_afs4int_agtypeunique, { "afs4int.agtypeunique", "afs4int.agtypeunique", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL} } ,
4376 { &hf_afs4int_anonymousaccess, { "afs4int.anonymousaccess", "afs4int.anonymousaccess", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL} } ,
4377 { &hf_afs4int_author, { "afs4int.author", "afs4int.author", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL} } ,
4378 { &hf_afs4int_blocksused, { "afs4int.blocksused", "afs4int.blocksused", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL} },
4379 { &hf_afs4int_calleraccess, { "afs4int.calleraccess", "afs4int.calleraccess", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL} } ,
4380 { &hf_afs4int_changetime_msec, { "afs4int.changetime_msec", "afs4int.changetime_msec", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL} } ,
4381 { &hf_afs4int_changetime_sec, { "afs4int.changetime_sec", "afs4int.changetime_sec", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL} } ,
4382 { &hf_afs4int_clientspare1, { "afs4int.clientspare1", "afs4int.clientspare1", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL} } ,
4383 { &hf_afs4int_dataversion_high, { "afs4int.dataversion_high", "afs4int.dataversion_high", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL} } ,
4384 { &hf_afs4int_dataversion_low, { "afs4int.dataversion_low", "afs4int.dataversion_low", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL} } ,
4385 { &hf_afs4int_devicenumber, { "afs4int.devicenumber", "afs4int.devicenumber", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL} } ,
4386 { &hf_afs4int_devicenumberhighbits, { "afs4int.devicenumberhighbits", "afs4int.devicenumberhighbits", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL} } ,
4387 { &hf_afs4int_filetype, { "afs4int.filetype", "afs4int.filetype", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL} } ,
4388 { &hf_afs4int_group, { "afs4int.group", "afs4int.group", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL} } ,
4389 { &hf_afs4int_himaxspare, { "afs4int.himaxspare", "afs4int.himaxspare", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL} } ,
4390 { &hf_afs4int_interfaceversion, { "afs4int.interfaceversion", "afs4int.interfaceversion", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL} } ,
4391 { &hf_afs4int_length_high, { "afs4int.length_high", "afs4int.length_high", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL} } ,
4392 { &hf_afs4int_length_low, { "afs4int.length_low", "afs4int.length_low", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL} } ,
4393 { &hf_afs4int_linkcount, { "afs4int.linkcount", "afs4int.linkcount", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL} } ,
4394 { &hf_afs4int_lomaxspare, { "afs4int.lomaxspare", "afs4int.lomaxspare", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL} } ,
4395 { &hf_afs4int_mode, { "afs4int.mode", "afs4int.mode", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL} } ,
4396 { &hf_afs4int_modtime_msec, { "afs4int.modtime_msec", "afs4int.modtime_msec", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL} } ,
4397 { &hf_afs4int_modtime_sec, { "afs4int.modtime_sec", "afs4int.modtime_sec", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL} } ,
4398 { &hf_afs4int_objectuuid, { "afs4int.objectuuid", "afs4int.objectuuid", FT_STRING, BASE_NONE, NULL, 0x0, "UUID", HFILL} } ,
4399 { &hf_afs4int_owner, { "afs4int.owner", "afs4int.owner", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL} } ,
4400 { &hf_afs4int_parentunique, { "afs4int.parentunique", "afs4int.parentunique", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL} } ,
4401 { &hf_afs4int_parentvnode, { "afs4int.parentvnode", "afs4int.parentvnode", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL} } ,
4402 { &hf_afs4int_pathconfspare, { "afs4int.pathconfspare", "afs4int.pathconfspare", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL} } ,
4403 { &hf_afs4int_servermodtime_msec, { "afs4int.servermodtime_msec", "afs4int.servermodtime_msec", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL} } ,
4404 { &hf_afs4int_servermodtime_sec, { "afs4int.servermodtime_sec", "afs4int.servermodtime_sec", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL} } ,
4405 { &hf_afs4int_spare4, { "afs4int.spare4", "afs4int.spare4", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL} } ,
4406 { &hf_afs4int_spare5, { "afs4int.spare5", "afs4int.spare5", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL} } ,
4407 { &hf_afs4int_spare6, { "afs4int.spare6", "afs4int.spare6", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL} } ,
4408 { &hf_afs4int_typeuuid, { "afs4int.typeuuid", "afs4int.typeuuid", FT_STRING, BASE_NONE, NULL, 0x0, "UUID", HFILL} } ,
4409 { &hf_afs4int_volid_hi, { "afs4int.volid_hi", "afs4int.volid_hi", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL} } ,
4410 { &hf_afs4int_volid_low, { "afs4int.volid_low", "afs4int.volid_low", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL} } ,
4411 { &hf_afs4int_vvage, { "afs4int.vvage", "afs4int.vvage", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL} } ,
4412 { &hf_afs4int_vv_hi, { "afs4int.vv_hi", "afs4int.vv_hi", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL} } ,
4413 { &hf_afs4int_vv_low, { "afs4int.vv_low", "afs4int.vv_low", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL} } ,
4414 { &hf_afs4int_vvpingage, { "afs4int.vvpingage", "afs4int.vvpingage", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL} } ,
4415 { &hf_afs4int_vvspare1, { "afs4int.vvspare1", "afs4int.vvspare1", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL} } ,
4416 { &hf_afs4int_vvspare2, { "afs4int.vvspare2", "afs4int.vvspare2", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL} } ,
4417 { &hf_afs4int_beginrange, { "afs4int.beginrange", "afs4int.beginrange", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL} } ,
4418 { &hf_afs4int_beginrangeext, { "afs4int.beginrangeext", "afs4int.beginrangeext", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL} } ,
4419 { &hf_afs4int_endrange, { "afs4int.endrange", "afs4int.endrange", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL} } ,
4420 { &hf_afs4int_endrangeext, { "afs4int.endrangeext", "afs4int.endrangeext", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL} } ,
4421 { &hf_afs4int_expirationtime, { "afs4int.expirationtime", "afs4int.expirationtime", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL} } ,
4422 { &hf_afs4int_tokenid_hi, { "afs4int.tokenid_hi", "afs4int.tokenid_hi", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL} } ,
4423 { &hf_afs4int_tokenid_low, { "afs4int.tokenid_low", "afs4int.tokenid_low", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL} } ,
4424 { &hf_afs4int_type_hi, { "afs4int.type_hi", "afs4int.type_hi", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL} } ,
4425 { &hf_afs4int_type_low, { "afs4int.type_low", "afs4int.type_low", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL} } ,
4426 { &hf_afs4int_tn_length, { "afs4int.tn_length", "afs4int.tn_length", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL} } ,
4427 { &hf_afs4int_tn_tag, { "afs4int.tn_tag", "afs4int.tn_tag", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL} } ,
4428 { &hf_afs4int_storestatus_accesstime_sec, { "afs4int.storestatus_accesstime_sec", "afs4int.storestatus_accesstime_sec", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL} } ,
4429 { &hf_afs4int_storestatus_accesstime_usec, { "afs4int.storestatus_accesstime_usec", "afs4int.storestatus_accesstime_usec", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL} } ,
4430 { &hf_afs4int_storestatus_changetime_sec, { "afs4int.storestatus_changetime_sec", "afs4int.storestatus_changetime_sec", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL} } ,
4431 { &hf_afs4int_storestatus_changetime_usec, { "afs4int.storestatus_changetime_usec", "afs4int.storestatus_changetime_usec", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL} } ,
4432 { &hf_afs4int_storestatus_clientspare1, { "afs4int.storestatus_clientspare1", "afs4int.storestatus_clientspare1", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL} } ,
4433 { &hf_afs4int_storestatus_cmask, { "afs4int.storestatus_cmask", "afs4int.storestatus_cmask", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL} } ,
4434 { &hf_afs4int_storestatus_devicenumber, { "afs4int.storestatus_devicenumber", "afs4int.storestatus_devicenumber", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL} } ,
4435 { &hf_afs4int_storestatus_devicenumberhighbits, { "afs4int.storestatus_devicenumberhighbits", "afs4int.storestatus_devicenumberhighbits", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL} } ,
4436 { &hf_afs4int_storestatus_devicetype, { "afs4int.storestatus_devicetype", "afs4int.storestatus_devicetype", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL} } ,
4437 { &hf_afs4int_storestatus_group, { "afs4int.storestatus_group", "afs4int.storestatus_group", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL} } ,
4438 { &hf_afs4int_storestatus_length_high, { "afs4int.storestatus_length_high", "afs4int.storestatus_length_high", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL} } ,
4439 { &hf_afs4int_storestatus_length_low, { "afs4int.storestatus_length_low", "afs4int.storestatus_length_low", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL} } ,
4440 { &hf_afs4int_storestatus_mask, { "afs4int.storestatus_mask", "afs4int.storestatus_mask", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL} } ,
4441 { &hf_afs4int_storestatus_mode, { "afs4int.storestatus_mode", "afs4int.storestatus_mode", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL} } ,
4442 { &hf_afs4int_storestatus_modtime_sec, { "afs4int.storestatus_modtime_sec", "afs4int.storestatus_modtime_sec", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL} } ,
4443 { &hf_afs4int_storestatus_modtime_usec, { "afs4int.storestatus_modtime_usec", "afs4int.storestatus_modtime_usec", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL} } ,
4444 { &hf_afs4int_storestatus_owner, { "afs4int.storestatus_owner", "afs4int.storestatus_owner", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL} } ,
4445 { &hf_afs4int_storestatus_spare1, { "afs4int.storestatus_spare1", "afs4int.storestatus_spare1", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL} } ,
4446 { &hf_afs4int_storestatus_spare2, { "afs4int.storestatus_spare2", "afs4int.storestatus_spare2", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL} } ,
4447 { &hf_afs4int_storestatus_spare3, { "afs4int.storestatus_spare3", "afs4int.storestatus_spare3", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL} } ,
4448 { &hf_afs4int_storestatus_spare4, { "afs4int.storestatus_spare4", "afs4int.storestatus_spare4", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL} } ,
4449 { &hf_afs4int_storestatus_spare5, { "afs4int.storestatus_spare5", "afs4int.storestatus_spare5", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL} } ,
4450 { &hf_afs4int_storestatus_spare6, { "afs4int.storestatus_spare6", "afs4int.storestatus_spare6", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL} } ,
4451 { &hf_afs4int_storestatus_trunc_high, { "afs4int.storestatus_trunc_high", "afs4int.storestatus_trunc_high", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL} } ,
4452 { &hf_afs4int_storestatus_trunc_low, { "afs4int.storestatus_trunc_low", "afs4int.storestatus_trunc_low", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL} } ,
4453 { &hf_afs4int_storestatus_typeuuid, { "afs4int.storestatus_typeuuid", "afs4int.storestatus_typeuuid", FT_STRING, BASE_NONE, NULL, 0x0, "UUID", HFILL} } ,
4454 { &hf_afs4int_st, { "afs4int.st", "afs4int.st", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL} } ,
4455 { &hf_afs4int_uint, {"afs4int.uint", "afs4int.uint", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL}},
4456 { &hf_afs4int_l_end_pos, { "afs4int.l_end_pos", "afs4int.l_end_pos", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL} } ,
4457 { &hf_afs4int_l_end_pos_ext, { "afs4int.l_end_pos_ext", "afs4int.l_end_pos_ext", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL} } ,
4458 { &hf_afs4int_l_fstype, { "afs4int.l_fstype", "afs4int.l_fstype", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL} } ,
4459 { &hf_afs4int_l_pid, { "afs4int.l_pid", "afs4int.l_pid", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL} } ,
4460 { &hf_afs4int_l_start_pos, { "afs4int.l_start_pos", "afs4int.l_start_pos", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL} } ,
4461 { &hf_afs4int_l_start_pos_ext, { "afs4int.l_start_pos_ext", "afs4int.l_start_pos_ext", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL} } ,
4462 { &hf_afs4int_l_sysid, { "afs4int.l_sysid", "afs4int.l_sysid", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL} } ,
4463 { &hf_afs4int_l_type, { "afs4int.l_type", "afs4int.l_type", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL} } ,
4464 { &hf_afs4int_l_whence, { "afs4int.l_whence", "afs4int.l_whence", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL} } ,
4465 {&hf_afsconnparams_mask,
4466 {"hf_afsconnparams_mask", "hf_afsconnparams_mask",
4467 FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL}},
4468 {&hf_afsconnparams_values,
4469 {"hf_afsconnparams_values", "hf_afsconnparams_values",
4470 FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL}},
4471 {&hf_afs4int_afsFid_cell_high,
4472 {"Cell High", "afs4int.afsFid.cell_high", FT_UINT32, BASE_HEX, NULL, 0x0,
4473 "afsFid Cell High", HFILL}},
4474 {&hf_afs4int_afsFid_cell_low,
4475 {"Cell Low", "afs4int.afsFid.cell_low", FT_UINT32, BASE_HEX, NULL, 0x0,
4476 "afsFid Cell Low", HFILL}},
4477 {&hf_afs4int_afsFid_volume_high,
4478 {"Volume High", "afs4int.afsFid.volume_high", FT_UINT32, BASE_HEX, NULL,
4479 0x0, "afsFid Volume High", HFILL}},
4480 {&hf_afs4int_afsFid_volume_low,
4481 {"Volume Low", "afs4int.afsFid.volume_low", FT_UINT32, BASE_HEX, NULL,
4482 0x0, "afsFid Volume Low", HFILL}},
4483 {&hf_afs4int_afsFid_Vnode,
4484 {"Vnode", "afs4int.afsFid.Vnode", FT_UINT32, BASE_HEX, NULL, 0x0,
4485 "afsFid Vnode", HFILL}},
4486 {&hf_afs4int_afsFid_Unique,
4487 {"Unique", "afs4int.afsFid.Unique", FT_UINT32, BASE_HEX, NULL, 0x0,
4488 "afsFid Unique", HFILL}},
4489 {&hf_afs4int_afsNetAddr_type,
4490 {"Type", "afsNetAddr.type", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL}},
4491 {&hf_afs4int_afsNetAddr_data,
4492 {"IP Data", "afsNetAddr.data", FT_UINT8, BASE_DEC, NULL, 0x0, "",
4494 {&hf_afs4int_position_high,
4495 {"Position High", "afs4int.position_high", FT_UINT32, BASE_HEX, NULL,
4497 {&hf_afs4int_position_low,
4498 {"Position Low", "afs4int.position_low", FT_UINT32, BASE_HEX, NULL, 0x0,
4500 {&hf_afs4int_afsreturndesc_tokenid_high,
4501 {"Tokenid High", "afs4int.afsreturndesc_tokenid_high", FT_UINT32,
4502 BASE_HEX, NULL, 0x0, "", HFILL}},
4503 {&hf_afs4int_afsreturndesc_tokenid_low,
4504 {"Tokenid low", "afs4int.afsreturndesc_tokenid_low", FT_UINT32, BASE_HEX,
4505 NULL, 0x0, "", HFILL}},
4506 {&hf_afs4int_afsreturndesc_type_high,
4507 {"Type high", "afs4int.type_high", FT_UINT32, BASE_HEX, NULL, 0x0, "",
4509 {&hf_afs4int_afsreturndesc_type_low,
4510 {"Type low", "afs4int.type_low", FT_UINT32, BASE_HEX, NULL, 0x0, "",
4512 {&hf_afs4int_offsetp_high,
4513 {"offset high", "afs4int.offset_high", FT_UINT32, BASE_HEX, NULL, 0x0,
4515 {&hf_afs4int_offsetp_low,
4516 {"offset high", "afs4int.offset_high", FT_UINT32, BASE_HEX, NULL, 0x0,
4518 {&hf_afs4int_nextoffsetp_high,
4519 {"next offset high", "afs4int.nextoffset_high", FT_UINT32, BASE_HEX,
4520 NULL, 0x0, "", HFILL}},
4521 {&hf_afs4int_nextoffsetp_low,
4522 {"next offset low", "afs4int.nextoffset_low", FT_UINT32, BASE_HEX, NULL,
4524 {&hf_afs4int_returntokenidp_high,
4525 {"return token idp high", "afs4int.returntokenidp_high", FT_UINT32,
4526 BASE_HEX, NULL, 0x0, "", HFILL}},
4527 {&hf_afs4int_returntokenidp_low,
4528 {"return token idp low", "afs4int.returntokenidp_low", FT_UINT32,
4529 BASE_HEX, NULL, 0x0, "", HFILL}},
4530 {&hf_afs4int_cellidp_high,
4531 {"cellidp high", "afs4int.cellidp_high", FT_UINT32, BASE_HEX, NULL, 0x0,
4533 {&hf_afs4int_cellidp_low,
4534 {"cellidp low", "afs4int.cellidp_low", FT_UINT32, BASE_HEX, NULL, 0x0,
4536 {&hf_afserrorstatus_st,
4537 {"AFS Error Code", "afs4int.afserrortstatus_st", FT_UINT32, BASE_HEX,
4538 NULL, 0x0, "", HFILL}},
4539 {&hf_afs4int_length,
4540 {"Length", "afs4int.length", FT_UINT32, BASE_HEX,
4541 NULL, 0x0, "", HFILL}},
4542 {&hf_afs4int_afsTaggedPath_tp_chars,
4543 {"AFS Tagged Path", "afs4int.TaggedPath_tp_chars", FT_STRING, BASE_NONE,
4544 NULL, 0x0, "", HFILL}},
4545 {&hf_afs4int_afsTaggedPath_tp_tag,
4546 {"AFS Tagged Path Name", "afs4int.TaggedPath_tp_tag", FT_UINT32,
4548 NULL, 0x0, "", HFILL}},
4549 {&hf_afs4int_afsacl_uuid1,
4550 {"AFS ACL UUID1", "afs4int.afsacl_uuid1", FT_STRING, BASE_NONE,
4551 NULL, 0x0, "UUID", HFILL}},
4552 {&hf_afs4int_bulkfetchstatus_size,
4553 {"BulkFetchStatus Size", "afs4int.bulkfetchstatus_size", FT_UINT32,
4555 NULL, 0x0, "", HFILL}},
4556 {&hf_afs4int_bulkfetchvv_numvols,
4557 {"afs4int.bulkfetchvv_numvols", "afs4int.bulkfetchvv_numvols",
4558 FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL}},
4559 {&hf_afs4int_bulkfetchvv_spare1,
4560 {"afs4int.bulkfetchvv_spare1", "afs4int.bulkfetchvv_spare1",
4561 FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL}},
4562 {&hf_afs4int_bulkfetchvv_spare2,
4563 {"afs4int.bulkfetchvv_spare2", "afs4int.bulkfetchvv_spare2",
4564 FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL}},
4565 {&hf_afs4int_bulkkeepalive_numexecfids, {"BulkKeepAlive numexecfids", "afs4int.bulkkeepalive_numexecfids", FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL}},
4566 {&hf_afs4int_bulkkeepalive_spare4,
4567 {"BulkKeepAlive spare4", "afs4int.bulkfetchkeepalive_spare2",
4568 FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL}},
4569 {&hf_afs4int_bulkkeepalive_spare2,
4570 {"BulkKeepAlive spare2", "afs4int.bulkfetchkeepalive_spare2",
4571 FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL}},
4572 {&hf_afs4int_bulkkeepalive_spare1,
4573 {"BulkFetch KeepAlive spare1", "afs4int.bulkfetchkeepalive_spare1",
4574 FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL}},
4575 {&hf_afs4int_afsacl_defaultcell_uuid,
4576 {"Default Cell UUID",
4577 "afs4int.defaultcell_uuid", FT_STRING, BASE_NONE, NULL, 0x0,
4579 {&hf_afs4int_afsuuid_uuid,
4581 "afs4int.uuid", FT_STRING, BASE_NONE, NULL, 0x0,
4583 {&hf_afs4int_gettime_syncdispersion,
4584 {"GetTime Syncdispersion",
4585 "afs4int.gettime_syncdispersion", FT_UINT32, BASE_HEX, NULL, 0x0,
4587 {&hf_afs4int_gettime_syncdistance,
4588 {"SyncDistance", "afs4int.gettime.syncdistance",
4589 FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL}},
4590 {&hf_afs4int_gettime_usecondsp,
4591 {"GetTime usecondsp", "afs4int.gettime_usecondsp",
4592 FT_UINT32, BASE_HEX, NULL, 0x0, "", HFILL}},
4593 {&hf_afs4int_readdir_size,
4594 {"Readdir Size", "afs4int.readdir.size", FT_UINT32,
4595 BASE_HEX, NULL, 0x0, "", HFILL}},
4596 {&hf_afs4int_afsNameString_t_principalName_size,
4597 {"Principal Name Size",
4598 "afs4int.principalName_size", FT_UINT32, BASE_HEX,
4599 NULL, 0x0, "", HFILL}},
4600 {&hf_afs4int_afsNameString_t_principalName_size2,
4601 {"Principal Name Size2",
4602 "afs4int.principalName_size2", FT_UINT32, BASE_HEX,
4603 NULL, 0x0, "", HFILL}},
4604 {&hf_afs4int_afsTaggedPath_tp_length,
4605 {"Tagged Path Length",
4606 "afs4int.afsTaggedPath_length", FT_UINT32, BASE_HEX, NULL, 0x0,
4608 {&hf_afs4int_fstype,
4609 {"Filetype", "afs4int.fstype", FT_UINT32, BASE_HEX, NULL,
4611 {&hf_afs4int_gettime_secondsp,
4612 {"GetTime secondsp", "afs4int.gettime_secondsp", FT_UINT32,
4615 {&hf_afs4int_afsNameString_t_principalName_string,
4616 {"Principal Name", "afs4int.NameString_principal", FT_STRING,
4619 {&hf_afs4int_fetchdata_pipe_t_size,
4620 {"FetchData Pipe_t size", "afs4int.fetchdata_pipe_t_size", FT_STRING,
4624 static gint *ett[] = {
4626 &ett_afs4int_afsReturnDesc,
4627 &ett_afs4int_afsFid,
4628 &ett_afs4int_afsNetAddr,
4629 &ett_afs4int_fetchstatus,
4630 &ett_afs4int_afsflags,
4631 &ett_afs4int_volsync,
4632 &ett_afs4int_minvvp,
4633 &ett_afs4int_afsfidtaggedname,
4634 &ett_afs4int_afstaggedname,
4635 &ett_afs4int_afstoken,
4636 &ett_afs4int_afsstorestatus,
4637 &ett_afs4int_afsRecordLock,
4638 &ett_afs4int_afsAcl,
4639 &ett_afs4int_afsNameString_t,
4640 &ett_afs4int_afsConnParams,
4641 &ett_afs4int_afsErrorStatus,
4642 &ett_afs4int_afsTaggedPath,
4643 &ett_afs4int_afsNetData,
4644 &ett_afs4int_afsBulkStat,
4645 &ett_afs4int_afsuuid,
4646 &ett_afs4int_offsetp,
4647 &ett_afs4int_returntokenidp,
4648 &ett_afs4int_afsbundled_stat,
4650 proto_afs4int = proto_register_protocol ("DFS Calls", "DCE_DFS", "dce_dfs");
4651 proto_register_field_array (proto_afs4int, hf, array_length (hf));
4652 proto_register_subtree_array (ett, array_length (ett));
4656 proto_reg_handoff_afs4int (void)
4659 * Register the protocol as dcerpc
4661 dcerpc_init_uuid (proto_afs4int, ett_afs4int, &uuid_afs4int, ver_afs4int,
4662 afs4int_dissectors, hf_afs4int_opnum);