1 /* packet-dcerpc-fldb.c
3 * Routines for dcerpc FLDB Calls
4 * Copyright 2004, 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/flserver/fldb_proc.idl
10 * Ethereal - Network traffic analyzer
11 * By Gerald Combs <gerald@ethereal.com>
12 * Copyright 1998 Gerald Combs
14 * This program is free software; you can redistribute it and/or
15 * modify it under the terms of the GNU General Public License
16 * as published by the Free Software Foundation; either version 2
17 * of the License, or (at your option) any later version.
19 * This program is distributed in the hope that it will be useful,
20 * but WITHOUT ANY WARRANTY; without even the implied warranty of
21 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
22 * GNU General Public License for more details.
24 * You should have received a copy of the GNU General Public License
25 * along with this program; if not, write to the Free Software
26 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
34 #ifdef HAVE_SYS_TYPES_H
35 #include <sys/types.h>
41 #include <epan/packet.h>
42 #include "packet-dcerpc.h"
43 #include "packet-dcerpc-dce122.h"
46 static int proto_fldb = -1;
47 static int hf_fldb_opnum = -1;
49 static gint ett_fldb = -1;
50 static gint ett_fldb_vldbentry = -1;
51 static gint ett_fldb_afsnetaddr = -1;
52 static gint ett_fldb_siteflags = -1;
53 static gint ett_fldb_afsflags = -1;
54 static gint ett_fldb_vlconf_cell = -1;
55 static gint ett_fldb_afsNameString_t = -1;
59 static e_uuid_t uuid_fldb =
60 { 0x4d37f2dd, 0xed43, 0x0000, {0x02, 0xc0, 0x37, 0xcf, 0x2e, 0x00, 0x00,
63 static guint16 ver_fldb = 4;
65 static int hf_fldb_getentrybyname_rqst_var1 = -1;
66 static int hf_fldb_getentrybyname_rqst_key_size = -1;
67 static int hf_fldb_releaselock_rqst_fsid_high = -1;
68 static int hf_fldb_releaselock_rqst_fsid_low = -1;
69 static int hf_fldb_releaselock_rqst_voltype = -1;
70 static int hf_fldb_releaselock_rqst_voloper = -1;
71 static int hf_fldb_setlock_rqst_fsid_high = -1;
72 static int hf_fldb_setlock_rqst_fsid_low = -1;
73 static int hf_fldb_setlock_rqst_voltype = -1;
74 static int hf_fldb_setlock_rqst_voloper = -1;
75 static int hf_fldb_setlock_resp_st = -1;
76 static int hf_fldb_setlock_resp_st2 = -1;
77 static int hf_fldb_listentry_rqst_previous_index = -1;
78 static int hf_fldb_listentry_rqst_var1 = -1;
79 static int hf_fldb_listentry_resp_count = -1;
80 static int hf_fldb_listentry_resp_next_index = -1;
81 static int hf_fldb_listentry_resp_key_t = -1;
82 static int hf_fldb_listentry_resp_key_size = -1;
83 static int hf_fldb_listentry_resp_key_t2 = -1;
84 static int hf_fldb_listentry_resp_key_size2 = -1;
85 static int hf_fldb_listentry_resp_voltype = -1;
86 static int hf_fldb_createentry_rqst_key_t = -1;
87 static int hf_fldb_createentry_rqst_key_size = -1;
88 static int hf_fldb_deleteentry_rqst_fsid_high = -1;
89 static int hf_fldb_deleteentry_rqst_fsid_low = -1;
90 static int hf_fldb_deleteentry_rqst_voltype = -1;
91 static int hf_fldb_deleteentry_rqst_voloper = -1;
92 static int hf_fldb_getentrybyid_rqst_fsid_high = -1;
93 static int hf_fldb_getentrybyid_rqst_fsid_low = -1;
94 static int hf_fldb_getentrybyid_rqst_voltype = -1;
95 static int hf_fldb_getentrybyid_rqst_voloper = -1;
96 static int hf_fldb_replaceentry_rqst_fsid_high = -1;
97 static int hf_fldb_replaceentry_rqst_fsid_low = -1;
98 static int hf_fldb_replaceentry_rqst_voltype = -1;
99 static int hf_fldb_replaceentry_rqst_key_size = -1;
100 static int hf_fldb_replaceentry_rqst_key_t = -1;
101 static int hf_fldb_replaceentry_resp_st = -1;
102 static int hf_fldb_replaceentry_resp_st2 = -1;
103 static int hf_fldb_getentrybyname_resp_volumetype = -1;
104 static int hf_fldb_getentrybyname_resp_numservers = -1;
105 static int hf_fldb_getentrybyname_resp_sitecookies = -1;
106 static int hf_fldb_getentrybyname_resp_sitepartition = -1;
107 static int hf_fldb_getentrybyname_resp_siteflags = -1;
108 static int hf_fldb_getentrybyname_resp_sitemaxreplat = -1;
109 static int hf_fldb_getentrybyname_resp_volid_high = -1;
110 static int hf_fldb_getentrybyname_resp_volid_low = -1;
111 static int hf_fldb_getentrybyname_resp_voltype = -1;
112 static int hf_fldb_getentrybyname_resp_cloneid_high = -1;
113 static int hf_fldb_getentrybyname_resp_cloneid_low = -1;
114 static int hf_fldb_getentrybyname_resp_flags = -1;
115 static int hf_fldb_getentrybyname_resp_maxtotallat = -1;
116 static int hf_fldb_getentrybyname_resp_hardmaxtotlat = -1;
117 static int hf_fldb_getentrybyname_resp_minpouncedally = -1;
118 static int hf_fldb_getentrybyname_resp_defaultmaxreplat = -1;
119 static int hf_fldb_getentrybyname_resp_reclaimdally = -1;
120 static int hf_fldb_getentrybyname_resp_whenlocked = -1;
121 static int hf_fldb_getentrybyname_resp_spare1 = -1;
122 static int hf_fldb_getentrybyname_resp_spare2 = -1;
123 static int hf_fldb_getentrybyname_resp_spare3 = -1;
124 static int hf_fldb_getentrybyname_resp_spare4 = -1;
125 static int hf_fldb_getentrybyname_resp_key_t = -1;
126 static int hf_fldb_getentrybyname_resp_key_size = -1;
127 static int hf_fldb_getentrybyname_resp_test = -1;
128 static int hf_dcerpc_error_status = -1;
129 static int hf_fldb_vldbentry_volumename = -1;
130 static int hf_fldb_vldbentry_volumetype = -1;
131 static int hf_fldb_vldbentry_nservers = -1;
132 static int hf_fldb_vldbentry_sitepartition = -1;
133 static int hf_fldb_afsnetaddr_type = -1;
134 static int hf_fldb_afsnetaddr_data = -1;
135 static int hf_fldb_siteflags = -1;
136 static int hf_fldb_vldbentry_sitemaxreplicalatency = -1;
137 static int hf_fldb_vldbentry_siteprincipal = -1;
138 static int hf_fldb_vldbentry_siteowner = -1;
139 static int hf_fldb_vldbentry_siteobjid = -1;
140 static int hf_fldb_vldbentry_volids_high = -1;
141 static int hf_fldb_vldbentry_volids_low = -1;
142 static int hf_fldb_vldbentry_voltypes = -1;
143 static int hf_fldb_vldbentry_cloneid_high = -1;
144 static int hf_fldb_vldbentry_cloneid_low = -1;
145 static int hf_fldb_afsflags_flags = -1;
146 static int hf_fldb_vldbentry_maxtotallatency = -1;
147 static int hf_fldb_vldbentry_hardmaxtotallatency = -1;
148 static int hf_fldb_vldbentry_minimumpouncedally = -1;
149 static int hf_fldb_vldbentry_defaultmaxreplicalatency = -1;
150 static int hf_fldb_vldbentry_reclaimdally = -1;
151 static int hf_fldb_vldbentry_whenlocked = -1;
152 static int hf_fldb_vldbentry_spare1 = -1;
153 static int hf_fldb_vldbentry_spare2 = -1;
154 static int hf_fldb_vldbentry_spare3 = -1;
155 static int hf_fldb_vldbentry_spare4 = -1;
156 static int hf_fldb_vldbentry_lockername = -1;
157 static int hf_fldb_vldbentry_charspares = -1;
158 static int hf_fldb_vlconf_cell_name = -1;
159 static int hf_fldb_vlconf_cell_cellid_high = -1;
160 static int hf_fldb_vlconf_cell_cellid_low = -1;
161 static int hf_fldb_vlconf_cell_numservers = -1;
162 static int hf_fldb_vlconf_cell_hostname = -1;
163 static int hf_fldb_vlconf_cell_spare1 = -1;
164 static int hf_fldb_vlconf_cell_spare2 = -1;
165 static int hf_fldb_vlconf_cell_spare3 = -1;
166 static int hf_fldb_vlconf_cell_spare4 = -1;
167 static int hf_fldb_vlconf_cell_spare5 = -1;
168 static int hf_fldb_flagsp = -1;
169 static int hf_fldb_nextstartp = -1;
170 static int hf_fldb_afsNameString_t_principalName_string = -1;
171 static int hf_fldb_afsNameString_t_principalName_size = -1;
172 static int hf_fldb_afsNameString_t_principalName_size2 = -1;
173 static int hf_fldb_namestring = -1;
174 static int hf_error_st = -1;
175 static int hf_fldb_creationquota = -1;
176 static int hf_fldb_creationuses = -1;
177 static int hf_fldb_deletedflag = -1;
178 static int hf_fldb_namestring_size = -1;
179 static int hf_fldb_numwanted = -1;
180 static int hf_fldb_spare2 = -1;
181 static int hf_fldb_spare3 = -1;
182 static int hf_fldb_spare4 = -1;
183 static int hf_fldb_spare5 = -1;
184 static int hf_fldb_uuid_objid = -1;
185 static int hf_fldb_uuid_owner = -1;
186 static int hf_fldb_volid_high = -1;
187 static int hf_fldb_volid_low = -1;
188 static int hf_fldb_voltype = -1;
190 static const guint8 *st_str;
192 #define AFS_FLAG_RETURNTOKEN 1
193 #define AFS_FLAG_TOKENJUMPQUEUE 2
194 #define AFS_FLAG_SKIPTOKEN 4
195 #define AFS_FLAG_NOOPTIMISM 0x8
196 #define AFS_FLAG_TOKENID 0x10
197 #define AFS_FLAG_RETURNBLOCKER 0x20
198 #define AFS_FLAG_ASYNCGRANT 0x40
199 #define AFS_FLAG_NOREVOKE 0x80
200 #define AFS_FLAG_MOVE_REESTABLISH 0x100
201 #define AFS_FLAG_SERVER_REESTABLISH 0x200
202 #define AFS_FLAG_NO_NEW_EPOCH 0x400
203 #define AFS_FLAG_MOVE_SOURCE_OK 0x800
204 #define AFS_FLAG_SYNC 0x1000
205 #define AFS_FLAG_ZERO 0x2000
206 #define AFS_FLAG_SKIPSTATUS 0x4000
207 #define AFS_FLAG_FORCEREVOCATIONS 0x8000
208 #define AFS_FLAG_FORCEVOLQUIESCE 0x10000
209 #define AFS_FLAG_FORCEREVOCATIONDOWN 0x20000
211 #define AFS_FLAG_SEC_SERVICE 0x1
212 #define AFS_FLAG_CONTEXT_NEW_IF 0x2
213 #define AFS_FLAG_CONTEXT_DO_RESET 0x4
214 #define AFS_FLAG_CONTEXT_NEW_ACL_IF 0x8
215 #define AFS_FLAG_CONTEXT_NEW_TKN_TYPES 0x10
217 #define VLSF_NEWREPSITE 0x01
218 #define VLSF_SPARE1 0x02
219 #define VLSF_SPARE2 0x04 /* used for VLSF_RWVOL in flprocs.c */
220 #define VLSF_SPARE3 0x08 /* used for VLSF_BACKVOL in flprocs.c */
221 #define VLSF_SAMEASPREV 0x10
222 #define VLSF_DEFINED 0x20
223 #define VLSF_PARTIALADDRS 0x40
224 #define VLSF_ZEROIXHERE 0x80000000
226 #define MACRO_ST_CLEAR(name) \
227 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_error_st, &st); \
228 st_str = val_to_str (st, dce_error_vals, "%u"); \
230 if (check_col (pinfo->cinfo, COL_INFO)) \
231 col_add_fstr (pinfo->cinfo, COL_INFO, "%s st:%s ", name, st_str); \
233 if (check_col (pinfo->cinfo, COL_INFO)) \
234 col_append_fstr (pinfo->cinfo, COL_INFO, " st:%s ", st_str); \
238 dissect_afsnetaddr (tvbuff_t * tvb, int offset,
239 packet_info * pinfo, proto_tree * parent_tree,
242 proto_item *item = NULL;
243 proto_tree *tree = NULL;
244 int old_offset = offset;
251 item = proto_tree_add_text (parent_tree, tvb, offset, -1,
253 tree = proto_item_add_subtree (item, ett_fldb_afsnetaddr);
261 dissect_ndr_uint16 (tvb, offset, pinfo, tree, drep,
262 hf_fldb_afsnetaddr_type, &type);
266 if (check_col (pinfo->cinfo, COL_INFO))
267 col_append_fstr (pinfo->cinfo, COL_INFO, " Type:%u ", type);
270 for (i = 0; i < 14; i++)
274 dissect_ndr_uint8 (tvb, offset, pinfo, tree, drep,
275 hf_fldb_afsnetaddr_data, &data);
283 if (check_col (pinfo->cinfo, COL_INFO))
284 col_append_fstr (pinfo->cinfo, COL_INFO, " Port:%u",
289 if (check_col (pinfo->cinfo, COL_INFO))
290 col_append_fstr (pinfo->cinfo, COL_INFO, " IP:%u.", data);
293 if (check_col (pinfo->cinfo, COL_INFO))
294 col_append_fstr (pinfo->cinfo, COL_INFO, "%u.", data);
297 if (check_col (pinfo->cinfo, COL_INFO))
298 col_append_fstr (pinfo->cinfo, COL_INFO, "%u.", data);
301 if (check_col (pinfo->cinfo, COL_INFO))
302 col_append_fstr (pinfo->cinfo, COL_INFO, "%u", data);
312 offset += 14; /* space left after reading in type for the array. */
317 proto_item_set_len (item, offset - old_offset);
324 dissect_vlconf_cell (tvbuff_t * tvb, int offset,
325 packet_info * pinfo, proto_tree * parent_tree,
329 proto_item *item = NULL;
330 proto_tree *tree = NULL;
331 int old_offset = offset;
332 #define MAXVLCELLCHARS 128
333 #define MAXVLHOSTSPERCELL 64
334 const guint8 *name, *hostname;
336 guint32 cellid_high, cellid_low, numservers, spare1, spare2, spare3, spare4,
341 item = proto_tree_add_text (parent_tree, tvb, offset, -1,
343 tree = proto_item_add_subtree (item, ett_fldb_vlconf_cell);
346 /* byte name[MAXVLCELLCHARS]; Cell name */
347 proto_tree_add_string (tree, hf_fldb_vlconf_cell_name, tvb, offset, 114,
348 tvb_get_ptr (tvb, offset, MAXVLCELLCHARS));
349 name = tvb_get_ptr (tvb, offset, MAXVLCELLCHARS);
350 offset += MAXVLCELLCHARS; /* some reason this 114 seems to be incorrect... cutting 4 short to compensate.... */
351 if (check_col (pinfo->cinfo, COL_INFO))
352 col_append_fstr (pinfo->cinfo, COL_INFO, " Name: %s", name);
355 /* afsHyper CellID; identifier for that cell */
358 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
359 hf_fldb_vlconf_cell_cellid_high, &cellid_high);
361 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
362 hf_fldb_vlconf_cell_cellid_low, &cellid_low);
363 if (check_col (pinfo->cinfo, COL_INFO))
364 col_append_fstr (pinfo->cinfo, COL_INFO, " CellID:%u-%u", cellid_high,
368 /* unsigned32 numServers; *Num active servers for the cell */
370 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
371 hf_fldb_vlconf_cell_numservers, &numservers);
372 if (check_col (pinfo->cinfo, COL_INFO))
373 col_append_fstr (pinfo->cinfo, COL_INFO, " numServers:%u", numservers);
375 /* afsNetAddr hostAddr[MAXVLHOSTSPERCELL]; *addresses for cell's servers */
376 for (i = 0; i < MAXVLHOSTSPERCELL; i++)
378 offset = dissect_afsnetaddr (tvb, offset, pinfo, tree, drep);
382 /* hostnam hostName[MAXVLHOSTSPERCELL]; *Names for cell's servers* */
384 for (i = 0; i < MAXVLHOSTSPERCELL; i++)
386 proto_tree_add_string (tree, hf_fldb_vlconf_cell_hostname, tvb, offset,
387 64, tvb_get_ptr (tvb, offset, 64));
388 hostname = tvb_get_ptr (tvb, offset, 64);
389 offset += 64; /* some reason this 114 seems to be incorrect... cutting 4 short to compensate.... */
390 if (check_col (pinfo->cinfo, COL_INFO))
391 col_append_fstr (pinfo->cinfo, COL_INFO, " hostName: %s", hostname);
394 /* unsigned32 spare1; */
396 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
397 hf_fldb_vlconf_cell_spare1, &spare1);
398 if (check_col (pinfo->cinfo, COL_INFO))
399 col_append_fstr (pinfo->cinfo, COL_INFO, " spare1:%u", spare1);
402 /* unsigned32 spare2; */
404 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
405 hf_fldb_vlconf_cell_spare2, &spare2);
406 if (check_col (pinfo->cinfo, COL_INFO))
407 col_append_fstr (pinfo->cinfo, COL_INFO, " spare2:%u", spare2);
409 /* unsigned32 spare3; */
411 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
412 hf_fldb_vlconf_cell_spare3, &spare3);
413 if (check_col (pinfo->cinfo, COL_INFO))
414 col_append_fstr (pinfo->cinfo, COL_INFO, " spare3:%u", spare3);
417 /* unsigned32 spare4; */
419 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
420 hf_fldb_vlconf_cell_spare4, &spare4);
421 if (check_col (pinfo->cinfo, COL_INFO))
422 col_append_fstr (pinfo->cinfo, COL_INFO, " spare4:%u", spare4);
424 /* unsigned32 spare5; */
426 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
427 hf_fldb_vlconf_cell_spare5, &spare5);
428 if (check_col (pinfo->cinfo, COL_INFO))
429 col_append_fstr (pinfo->cinfo, COL_INFO, " spare5:%u", spare5);
432 proto_item_set_len (item, offset - old_offset);
438 dissect_afsNameString_t (tvbuff_t * tvb, int offset,
439 packet_info * pinfo, proto_tree * parent_tree,
444 typedef [string] byte NameString_t[AFS_NAMEMAX];
447 proto_item *item = NULL;
448 proto_tree *tree = NULL;
449 int old_offset = offset;
450 #define AFS_NAMEMAX 256
452 const guint8 *namestring;
455 di = pinfo->private_data;
456 if (di->conformant_run)
464 item = proto_tree_add_text (parent_tree, tvb, offset, -1,
466 tree = proto_item_add_subtree (item, ett_fldb_afsNameString_t);
469 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
470 hf_fldb_afsNameString_t_principalName_size,
472 if (check_col (pinfo->cinfo, COL_INFO))
473 col_append_fstr (pinfo->cinfo, COL_INFO, " String_size:%u", string_size);
474 if (string_size < AFS_NAMEMAX)
476 /* proto_tree_add_string(tree, id, tvb, start, length, value_ptr); */
477 proto_tree_add_string (tree,
478 hf_fldb_afsNameString_t_principalName_string,
479 tvb, offset, string_size, tvb_get_ptr (tvb,
482 namestring = tvb_get_ptr (tvb, offset, string_size);
483 offset += string_size;
484 if (check_col (pinfo->cinfo, COL_INFO))
485 col_append_fstr (pinfo->cinfo, COL_INFO, " Principal:%s", namestring);
489 if (check_col (pinfo->cinfo, COL_INFO))
490 col_append_fstr (pinfo->cinfo, COL_INFO,
491 " :FIXME!: Invalid string length of %u",
494 proto_item_set_len (item, offset - old_offset);
501 dissect_afsflags (tvbuff_t * tvb, int offset,
502 packet_info * pinfo, proto_tree * parent_tree,
505 proto_item *item = NULL;
506 proto_tree *tree = NULL;
507 int old_offset = offset;
512 item = proto_tree_add_text (parent_tree, tvb, offset, -1, "afsFlags:");
513 tree = proto_item_add_subtree (item, ett_fldb_afsflags);
517 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
518 hf_fldb_afsflags_flags, &afsflags);
521 if (check_col (pinfo->cinfo, COL_INFO))
522 col_append_str (pinfo->cinfo, COL_INFO, " afsFlags=");
523 if ((afsflags & AFS_FLAG_RETURNTOKEN) == AFS_FLAG_RETURNTOKEN)
525 if (check_col (pinfo->cinfo, COL_INFO))
526 col_append_str (pinfo->cinfo, COL_INFO, ":RETURNTOKEN");
528 if ((afsflags & AFS_FLAG_TOKENJUMPQUEUE) == AFS_FLAG_TOKENJUMPQUEUE)
530 if (check_col (pinfo->cinfo, COL_INFO))
531 col_append_str (pinfo->cinfo, COL_INFO, ":TOKENJUMPQUEUE");
533 if ((afsflags & AFS_FLAG_SKIPTOKEN) == AFS_FLAG_SKIPTOKEN)
535 if (check_col (pinfo->cinfo, COL_INFO))
536 col_append_str (pinfo->cinfo, COL_INFO, ":SKIPTOKEN");
538 if ((afsflags & AFS_FLAG_NOOPTIMISM) == AFS_FLAG_NOOPTIMISM)
540 if (check_col (pinfo->cinfo, COL_INFO))
541 col_append_str (pinfo->cinfo, COL_INFO, ":NOOPTIMISM");
543 if ((afsflags & AFS_FLAG_TOKENID) == AFS_FLAG_TOKENID)
545 if (check_col (pinfo->cinfo, COL_INFO))
546 col_append_str (pinfo->cinfo, COL_INFO, ":TOKENID");
548 if ((afsflags & AFS_FLAG_RETURNBLOCKER) == AFS_FLAG_RETURNBLOCKER)
550 if (check_col (pinfo->cinfo, COL_INFO))
551 col_append_str (pinfo->cinfo, COL_INFO, ":RETURNBLOCKER");
553 if ((afsflags & AFS_FLAG_ASYNCGRANT) == AFS_FLAG_ASYNCGRANT)
555 if (check_col (pinfo->cinfo, COL_INFO))
556 col_append_str (pinfo->cinfo, COL_INFO, ":ASYNCGRANT");
558 if ((afsflags & AFS_FLAG_NOREVOKE) == AFS_FLAG_NOREVOKE)
560 if (check_col (pinfo->cinfo, COL_INFO))
561 col_append_str (pinfo->cinfo, COL_INFO, ":NOREVOKE");
563 if ((afsflags & AFS_FLAG_MOVE_REESTABLISH) == AFS_FLAG_MOVE_REESTABLISH)
565 if (check_col (pinfo->cinfo, COL_INFO))
566 col_append_str (pinfo->cinfo, COL_INFO, ":MOVE_REESTABLISH");
568 if ((afsflags & AFS_FLAG_SERVER_REESTABLISH) ==
569 AFS_FLAG_SERVER_REESTABLISH)
571 if (check_col (pinfo->cinfo, COL_INFO))
572 col_append_str (pinfo->cinfo, COL_INFO, ":SERVER_REESTABLISH");
573 if ((afsflags & AFS_FLAG_NO_NEW_EPOCH) == AFS_FLAG_NO_NEW_EPOCH)
575 if (check_col (pinfo->cinfo, COL_INFO))
576 col_append_str (pinfo->cinfo, COL_INFO, ":NO_NEW_EPOCH");
578 if ((afsflags & AFS_FLAG_MOVE_SOURCE_OK) == AFS_FLAG_MOVE_SOURCE_OK)
580 if (check_col (pinfo->cinfo, COL_INFO))
581 col_append_str (pinfo->cinfo, COL_INFO, ":MOVE_SOURCE_OK");
583 if ((afsflags & AFS_FLAG_SYNC) == AFS_FLAG_SYNC)
585 if (check_col (pinfo->cinfo, COL_INFO))
586 col_append_str (pinfo->cinfo, COL_INFO, ":SYNC");
588 if ((afsflags & AFS_FLAG_ZERO) == AFS_FLAG_ZERO)
590 if (check_col (pinfo->cinfo, COL_INFO))
591 col_append_str (pinfo->cinfo, COL_INFO, ":ZERO");
593 if ((afsflags & AFS_FLAG_SKIPSTATUS) == AFS_FLAG_SKIPSTATUS)
595 if (check_col (pinfo->cinfo, COL_INFO))
596 col_append_str (pinfo->cinfo, COL_INFO, ":SKIPSTATUS");
598 if ((afsflags & AFS_FLAG_FORCEREVOCATIONS) ==
599 AFS_FLAG_FORCEREVOCATIONS)
601 if (check_col (pinfo->cinfo, COL_INFO))
602 col_append_str (pinfo->cinfo, COL_INFO, ":FORCEREVOCATIONS");
604 if ((afsflags & AFS_FLAG_FORCEVOLQUIESCE) ==
605 AFS_FLAG_FORCEVOLQUIESCE)
607 if (check_col (pinfo->cinfo, COL_INFO))
608 col_append_str (pinfo->cinfo, COL_INFO, ":FORCEVOLQUIESCE");
610 if ((afsflags & AFS_FLAG_SEC_SERVICE) == AFS_FLAG_SEC_SERVICE)
612 if (check_col (pinfo->cinfo, COL_INFO))
613 col_append_str (pinfo->cinfo, COL_INFO, ":SEC_SERVICE");
615 if ((afsflags & AFS_FLAG_CONTEXT_NEW_ACL_IF) ==
616 AFS_FLAG_CONTEXT_NEW_ACL_IF)
618 if (check_col (pinfo->cinfo, COL_INFO))
619 col_append_str (pinfo->cinfo, COL_INFO,
620 ":CONTEXT_NEW_ACL_IF");
626 proto_item_set_len (item, offset - old_offset);
634 dissect_siteflags (tvbuff_t * tvb, int offset,
635 packet_info * pinfo, proto_tree * parent_tree,
638 proto_item *item = NULL;
639 proto_tree *tree = NULL;
640 int old_offset = offset;
645 item = proto_tree_add_text (parent_tree, tvb, offset, -1, "SiteFlags:");
646 tree = proto_item_add_subtree (item, ett_fldb_siteflags);
650 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_fldb_siteflags,
655 if (check_col (pinfo->cinfo, COL_INFO))
656 col_append_str (pinfo->cinfo, COL_INFO, " SiteFlags");
657 if ((siteflags & VLSF_NEWREPSITE) == VLSF_NEWREPSITE)
659 if (check_col (pinfo->cinfo, COL_INFO))
660 col_append_str (pinfo->cinfo, COL_INFO, ":NEWREPSITE");
662 if ((siteflags & VLSF_SPARE1) == VLSF_SPARE1)
664 if (check_col (pinfo->cinfo, COL_INFO))
665 col_append_str (pinfo->cinfo, COL_INFO, ":SPARE1");
667 if ((siteflags & VLSF_SPARE2) == VLSF_SPARE2)
669 if (check_col (pinfo->cinfo, COL_INFO))
670 col_append_str (pinfo->cinfo, COL_INFO, ":SPARE2");
672 if ((siteflags & VLSF_SPARE3) == VLSF_SPARE3)
674 if (check_col (pinfo->cinfo, COL_INFO))
675 col_append_str (pinfo->cinfo, COL_INFO, ":SPARE3");
677 if ((siteflags & VLSF_SAMEASPREV) == VLSF_SAMEASPREV)
679 if (check_col (pinfo->cinfo, COL_INFO))
680 col_append_str (pinfo->cinfo, COL_INFO, ":SAMEASPREV");
682 if ((siteflags & VLSF_DEFINED) == VLSF_DEFINED)
684 if (check_col (pinfo->cinfo, COL_INFO))
685 col_append_str (pinfo->cinfo, COL_INFO, ":DEFINED");
687 if ((siteflags & VLSF_PARTIALADDRS) == VLSF_PARTIALADDRS)
689 if (check_col (pinfo->cinfo, COL_INFO))
690 col_append_str (pinfo->cinfo, COL_INFO, ":PARTIALADDRS ");
692 if ((siteflags & VLSF_ZEROIXHERE) == VLSF_ZEROIXHERE)
694 if (check_col (pinfo->cinfo, COL_INFO))
695 col_append_str (pinfo->cinfo, COL_INFO, ":ZEROIXHERE");
700 proto_item_set_len (item, offset - old_offset);
708 dissect_vldbentry (tvbuff_t * tvb, int offset,
709 packet_info * pinfo, proto_tree * parent_tree,
712 proto_item *item = NULL;
713 proto_tree *tree = NULL;
714 int old_offset = offset;
715 const guint8 *volumename, *siteprincipal, *charspares, *lockername;
716 guint32 volumetype, nservers, sitepartition, sitemaxreplicalatency,
717 volids_high, volids_low, voltypes, cloneid_high, cloneid_low,
718 maxtotallatency, hardmaxtotallatency, minimumpouncedally,
719 defaultmaxreplicalatency, reclaimdally, whenlocked, spare1, spare2,
721 e_uuid_t siteowner, siteobjid;
723 #define MAXNSERVERS 16
724 #define MAXVOLTYPES 8
725 #define MAXLOCKNAMELEN 64
729 item = proto_tree_add_text (parent_tree, tvb, offset, -1, "vldbentry:");
730 tree = proto_item_add_subtree (item, ett_fldb_vldbentry);
733 /* byte name[114]; Volume name */
735 proto_tree_add_string (tree, hf_fldb_vldbentry_volumename, tvb, offset, 114,
736 tvb_get_ptr (tvb, offset, 114));
737 volumename = tvb_get_ptr (tvb, offset, 114);
738 offset += 110; /* some reason this 114 seems to be incorrect... cutting 4 short to compensate.... */
739 if (check_col (pinfo->cinfo, COL_INFO))
740 col_append_fstr (pinfo->cinfo, COL_INFO, " Name: %s", volumename);
742 /* unsigned32 volumeType; */
744 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
745 hf_fldb_vldbentry_volumetype, &volumetype);
746 if (check_col (pinfo->cinfo, COL_INFO))
747 col_append_fstr (pinfo->cinfo, COL_INFO, " Type:%u", volumetype);
749 /*unsigned32 nServers; */
751 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
752 hf_fldb_vldbentry_nservers, &nservers);
753 if (check_col (pinfo->cinfo, COL_INFO))
754 col_append_fstr (pinfo->cinfo, COL_INFO, " nServers:%u", nservers);
756 /* afsNetAddr siteAddr[MAXNSERVERS]; 16 */
757 for (i = 0; i < MAXNSERVERS; i++)
759 /* if (check_col (pinfo->cinfo, COL_INFO))
760 col_append_fstr (pinfo->cinfo, COL_INFO, " Site:%u", i); */
762 offset = dissect_afsnetaddr (tvb, offset, pinfo, tree, drep);
765 /* unsigned32 sitePartition[MAXNSERVERS]; */
766 for (i = 0; i < MAXNSERVERS; i++)
769 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
770 hf_fldb_vldbentry_sitepartition, &sitepartition);
773 if (check_col (pinfo->cinfo, COL_INFO))
774 col_append_fstr (pinfo->cinfo, COL_INFO, " LFS:%u",
780 /* unsigned32 siteFlags[MAXNSERVERS]; */
781 for (i = 0; i < MAXNSERVERS; i++)
783 offset = dissect_siteflags (tvb, offset, pinfo, tree, drep);
786 /* unsigned32 sitemaxReplicaLatency[MAXNSERVERS]; */
787 for (i = 0; i < MAXNSERVERS; i++)
790 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
791 hf_fldb_vldbentry_sitemaxreplicalatency,
792 &sitemaxreplicalatency);
793 if (sitemaxreplicalatency)
795 if (check_col (pinfo->cinfo, COL_INFO))
796 col_append_fstr (pinfo->cinfo, COL_INFO, " MaxRepLat%d:%u", i,
797 sitemaxreplicalatency);
800 /* kerb_princ_name sitePrincipal[MAXNSERVERS]; principal */
801 for (i = 0; i < MAXNSERVERS; i++)
803 proto_tree_add_string (tree, hf_fldb_vldbentry_siteprincipal, tvb,
804 offset, 64, tvb_get_ptr (tvb, offset, 64));
805 siteprincipal = tvb_get_ptr (tvb, offset, 64);
807 if (check_col (pinfo->cinfo, COL_INFO))
808 col_append_fstr (pinfo->cinfo, COL_INFO, " Princ: %s", siteprincipal);
811 /* afsUUID siteOwner[MAXNSERVERS]; */
813 for (i = 0; i < MAXNSERVERS; i++)
816 dissect_ndr_uuid_t (tvb, offset, pinfo, tree, drep,
817 hf_fldb_vldbentry_siteowner, &siteowner);
818 if (check_col (pinfo->cinfo, COL_INFO))
819 col_append_fstr (pinfo->cinfo, COL_INFO,
820 " SiteOwner - %08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x",
821 siteowner.Data1, siteowner.Data2, siteowner.Data3,
822 siteowner.Data4[0], siteowner.Data4[1],
823 siteowner.Data4[2], siteowner.Data4[3],
824 siteowner.Data4[4], siteowner.Data4[5],
825 siteowner.Data4[6], siteowner.Data4[7]);
829 /* afsUUID siteObjID[MAXNSERVERS]; */
830 for (i = 0; i < MAXNSERVERS; i++)
833 dissect_ndr_uuid_t (tvb, offset, pinfo, tree, drep,
834 hf_fldb_vldbentry_siteobjid, &siteobjid);
835 if (check_col (pinfo->cinfo, COL_INFO))
836 col_append_fstr (pinfo->cinfo, COL_INFO,
837 " SiteObjID - %08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x",
838 siteobjid.Data1, siteobjid.Data2, siteobjid.Data3,
839 siteobjid.Data4[0], siteobjid.Data4[1],
840 siteobjid.Data4[2], siteobjid.Data4[3],
841 siteobjid.Data4[4], siteobjid.Data4[5],
842 siteobjid.Data4[6], siteobjid.Data4[7]);
846 /* afsHyper VolIDs[MAXVOLTYPES]; */
847 /* XXX for these hypers, I will skip trying to use non portable guint64, and just read both, and use only low.
848 never seen a case of a volid going anywhere the overflow of the 32 low; */
849 for (i = 0; i < MAXVOLTYPES; i++)
852 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
853 hf_fldb_vldbentry_volids_high, &volids_high);
855 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
856 hf_fldb_vldbentry_volids_low, &volids_low);
857 if (check_col (pinfo->cinfo, COL_INFO))
858 col_append_fstr (pinfo->cinfo, COL_INFO, " VolIDs%d:%u", i,
863 /* unsigned32 VolTypes[MAXVOLTYPES]; */
864 for (i = 0; i < MAXVOLTYPES; i++)
867 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
868 hf_fldb_vldbentry_voltypes, &voltypes);
871 if (check_col (pinfo->cinfo, COL_INFO))
872 col_append_fstr (pinfo->cinfo, COL_INFO, " VolTypes:%d:%u", i,
877 /* afsHyper cloneId; Used during cloning */
879 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
880 hf_fldb_vldbentry_cloneid_high, &cloneid_high);
882 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
883 hf_fldb_vldbentry_cloneid_low, &cloneid_low);
886 if (check_col (pinfo->cinfo, COL_INFO))
887 col_append_fstr (pinfo->cinfo, COL_INFO, " CloneId:%u", cloneid_low);
890 /* unsigned32 flags; General flags */
891 offset = dissect_afsflags (tvb, offset, pinfo, tree, drep);
895 /* unsigned32 maxTotalLatency; */
897 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
898 hf_fldb_vldbentry_maxtotallatency, &maxtotallatency);
899 if (check_col (pinfo->cinfo, COL_INFO))
900 col_append_fstr (pinfo->cinfo, COL_INFO, " MaxTotLat:%u",
904 /* unsigned32 hardMaxTotalLatency; */
906 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
907 hf_fldb_vldbentry_hardmaxtotallatency,
908 &hardmaxtotallatency);
909 if (check_col (pinfo->cinfo, COL_INFO))
910 col_append_fstr (pinfo->cinfo, COL_INFO, " HardMaxTotLat:%u",
911 hardmaxtotallatency);
914 /* unsigned32 minimumPounceDally; */
916 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
917 hf_fldb_vldbentry_minimumpouncedally,
918 &minimumpouncedally);
919 if (check_col (pinfo->cinfo, COL_INFO))
920 col_append_fstr (pinfo->cinfo, COL_INFO, " minPounceDally:%u",
924 /* unsigned32 defaultMaxReplicaLatency; */
926 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
927 hf_fldb_vldbentry_defaultmaxreplicalatency,
928 &defaultmaxreplicalatency);
929 if (check_col (pinfo->cinfo, COL_INFO))
930 col_append_fstr (pinfo->cinfo, COL_INFO, " defaultMaxReplicaLatency:%u",
931 defaultmaxreplicalatency);
933 /* unsigned32 reclaimDally; */
935 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
936 hf_fldb_vldbentry_reclaimdally, &reclaimdally);
937 if (check_col (pinfo->cinfo, COL_INFO))
938 col_append_fstr (pinfo->cinfo, COL_INFO, " reclaimDally:%u",
942 /* unsigned32 WhenLocked; */
944 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
945 hf_fldb_vldbentry_whenlocked, &whenlocked);
946 if (check_col (pinfo->cinfo, COL_INFO))
947 col_append_fstr (pinfo->cinfo, COL_INFO, " WhenLocked:%u", whenlocked);
950 /* unsigned32 spare1; */
952 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
953 hf_fldb_vldbentry_spare1, &spare1);
954 if (check_col (pinfo->cinfo, COL_INFO))
955 col_append_fstr (pinfo->cinfo, COL_INFO, " spare1:%u", spare1);
957 /* unsigned32 spare2; */
959 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
960 hf_fldb_vldbentry_spare2, &spare2);
961 if (check_col (pinfo->cinfo, COL_INFO))
962 col_append_fstr (pinfo->cinfo, COL_INFO, " spare2:%u", spare2);
965 /* unsigned32 spare3; */
967 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
968 hf_fldb_vldbentry_spare3, &spare3);
969 if (check_col (pinfo->cinfo, COL_INFO))
970 col_append_fstr (pinfo->cinfo, COL_INFO, " spare3:%u", spare3);
972 /* unsigned32 spare4; */
974 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
975 hf_fldb_vldbentry_spare4, &spare4);
976 if (check_col (pinfo->cinfo, COL_INFO))
977 col_append_fstr (pinfo->cinfo, COL_INFO, " spare4:%u", spare4);
980 /* byte LockerName[MAXLOCKNAMELEN]; */
981 proto_tree_add_string (tree, hf_fldb_vldbentry_lockername, tvb, offset,
982 MAXLOCKNAMELEN, tvb_get_ptr (tvb, offset,
984 lockername = tvb_get_ptr (tvb, offset, MAXLOCKNAMELEN);
985 offset += MAXLOCKNAMELEN; /* some reason this 114 seems to be incorrect... cutting 4 short to compensate.... */
986 if (check_col (pinfo->cinfo, COL_INFO))
987 col_append_fstr (pinfo->cinfo, COL_INFO, " LockerName: %s", lockername);
989 /* byte charSpares[50]; */
990 proto_tree_add_string (tree, hf_fldb_vldbentry_charspares, tvb, offset, 50,
991 tvb_get_ptr (tvb, offset, 50));
992 charspares = tvb_get_ptr (tvb, offset, 50);
993 offset += 50; /* some reason this 114 seems to be incorrect... cutting 4 short to compensate.... */
994 if (check_col (pinfo->cinfo, COL_INFO))
995 col_append_fstr (pinfo->cinfo, COL_INFO, " charSpares:%s", charspares);
999 proto_item_set_len (item, offset - old_offset);
1007 fldb_dissect_getcellinfo_resp (tvbuff_t * tvb, int offset,
1008 packet_info * pinfo, proto_tree * tree,
1013 di = pinfo->private_data;
1014 if (di->conformant_run)
1020 /* [out] vlconf_cell *MyCell */
1021 offset = dissect_vlconf_cell (tvb, offset, pinfo, tree, drep);
1030 fldb_dissect_getentrybyname_rqst (tvbuff_t * tvb, int offset,
1031 packet_info * pinfo, proto_tree * tree,
1036 di = pinfo->private_data;
1037 if (di->conformant_run)
1044 * [in] volumeName volName,
1048 offset = dissect_afsNameString_t (tvb, offset, pinfo, tree, drep);
1056 fldb_dissect_getentrybyname_resp (tvbuff_t * tvb, int offset,
1057 packet_info * pinfo, proto_tree * tree,
1061 [out] vldbentry *entry
1065 di = pinfo->private_data;
1066 if (di->conformant_run)
1071 offset = dissect_vldbentry (tvb, offset, pinfo, tree, drep);
1073 MACRO_ST_CLEAR ("GetEntryByName reply");
1078 fldb_dissect_getsiteinfo_rqst (tvbuff_t * tvb, int offset,
1079 packet_info * pinfo, proto_tree * tree,
1084 di = pinfo->private_data;
1085 if (di->conformant_run)
1093 * [in] afsNetAddr *OldAddr,
1097 offset = dissect_afsnetaddr (tvb, offset, pinfo, tree, drep);
1102 * [in] afsNetAddr *OldAddr,
1111 fldb_dissect_getsiteinfo_resp (tvbuff_t * tvb, int offset,
1112 packet_info * pinfo, proto_tree * tree,
1117 const guint8 *namestring;
1118 e_uuid_t owner, objid;
1119 guint32 creationquota, creationuses, deletedflag, spare2, spare3, spare4,
1122 di = pinfo->private_data;
1123 if (di->conformant_run)
1129 [out] siteDessiib *FullSiteInfo
1130 afsNetAddr Addr[ADDRSINSITE];
1131 byte KerbPrin[MAXKPRINCIPALLEN] 64;
1134 unsigned32 CreationQuota;
1135 unsigned32 CreationUses;
1136 unsigned32 DeletedFlag;
1143 offset = dissect_afsnetaddr (tvb, offset, pinfo, tree, drep);
1145 /* handle byte KerbPrin[64]. */
1147 offset += 48; /* part of kerbprin before name... */
1149 proto_tree_add_string (tree, hf_fldb_namestring, tvb, offset, hf_fldb_namestring_size, tvb_get_ptr (tvb, offset, 64));
1150 namestring = tvb_get_ptr (tvb, offset, 64);
1152 if (check_col (pinfo->cinfo, COL_INFO))
1153 col_append_fstr (pinfo->cinfo, COL_INFO, " %s", namestring);
1155 offset = dissect_ndr_uuid_t (tvb, offset, pinfo, tree, drep, hf_fldb_uuid_owner, &owner);
1156 if (check_col (pinfo->cinfo, COL_INFO))
1157 col_append_fstr (pinfo->cinfo, COL_INFO,
1158 " Owner - %08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x",
1159 owner.Data1, owner.Data2, owner.Data3, owner.Data4[0],
1160 owner.Data4[1], owner.Data4[2], owner.Data4[3],
1161 owner.Data4[4], owner.Data4[5], owner.Data4[6],
1165 dissect_ndr_uuid_t (tvb, offset, pinfo, tree, drep, hf_fldb_uuid_objid,
1167 if (check_col (pinfo->cinfo, COL_INFO))
1168 col_append_fstr (pinfo->cinfo, COL_INFO,
1169 " ObjID - %08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x",
1170 objid.Data1, objid.Data2, objid.Data3, objid.Data4[0],
1171 objid.Data4[1], objid.Data4[2], objid.Data4[3],
1172 objid.Data4[4], objid.Data4[5], objid.Data4[6],
1176 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_fldb_creationquota,
1179 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_fldb_creationuses,
1182 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_fldb_deletedflag,
1185 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_fldb_spare2,
1188 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_fldb_spare3,
1191 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_fldb_spare4,
1194 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_fldb_spare5,
1197 if (check_col (pinfo->cinfo, COL_INFO))
1198 col_append_fstr (pinfo->cinfo, COL_INFO,
1199 " CreationQuota:%u CreationUses:%u DeletedFlag:%u Spare2:%u Spare3:%u Spare4:%u Spare5:%u",
1200 creationquota, creationuses, deletedflag, spare2, spare3,
1203 MACRO_ST_CLEAR ("GetSiteInfo reply");
1210 fldb_dissect_listentry_rqst (tvbuff_t * tvb, int offset,
1211 packet_info * pinfo, proto_tree * tree,
1216 guint32 var1, previous_index;
1218 di = pinfo->private_data;
1219 if (di->conformant_run)
1226 * [in] unsigned32 previous_index,
1227 * [out] unsigned32 *count,
1228 * [out] unsigned32 *next_index,
1229 * [out] vldbentry *entry
1233 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1234 hf_fldb_listentry_rqst_previous_index,
1237 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1238 hf_fldb_listentry_rqst_var1, &var1);
1241 if (check_col (pinfo->cinfo, COL_INFO))
1242 col_append_fstr (pinfo->cinfo, COL_INFO, " :PrevIndex: %u",
1251 fldb_dissect_listentry_resp (tvbuff_t * tvb, int offset,
1252 packet_info * pinfo, proto_tree * tree,
1256 guint32 count, next_index;
1258 di = pinfo->private_data;
1259 if (di->conformant_run)
1266 * [out] unsigned32 *count,
1267 * [out] unsigned32 *next_index,
1268 * [out] vldbentry *entry
1272 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1273 hf_fldb_listentry_resp_count, &count);
1275 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1276 hf_fldb_listentry_resp_next_index, &next_index);
1277 offset = dissect_vldbentry (tvb, offset, pinfo, tree, drep);
1283 fldb_dissect_setlock_rqst (tvbuff_t * tvb, int offset,
1284 packet_info * pinfo, proto_tree * tree,
1288 guint32 fsid_high, fsid_low, voltype, voloper;
1290 di = pinfo->private_data;
1291 if (di->conformant_run)
1298 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1299 hf_fldb_setlock_rqst_fsid_high, &fsid_high);
1301 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1302 hf_fldb_setlock_rqst_fsid_low, &fsid_low);
1304 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1305 hf_fldb_setlock_rqst_voltype, &voltype);
1307 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1308 hf_fldb_setlock_rqst_voloper, &voloper);
1310 if (check_col (pinfo->cinfo, COL_INFO))
1311 col_append_fstr (pinfo->cinfo, COL_INFO,
1312 " :FSID:%u/%u VolType:0x%x VolOper:%u", fsid_high,
1313 fsid_low, voltype, voloper);
1319 fldb_dissect_setlock_resp (tvbuff_t * tvb, int offset,
1320 packet_info * pinfo, proto_tree * tree,
1325 di = pinfo->private_data;
1326 if (di->conformant_run)
1331 MACRO_ST_CLEAR ("SetLock reply");
1338 fldb_dissect_deleteentry_resp (tvbuff_t * tvb, int offset,
1339 packet_info * pinfo, proto_tree * tree,
1344 di = pinfo->private_data;
1345 if (di->conformant_run)
1351 MACRO_ST_CLEAR ("DeleteEntry reply");
1357 fldb_dissect_deleteentry_rqst (tvbuff_t * tvb, int offset,
1358 packet_info * pinfo, proto_tree * tree,
1363 [in] afsHyper *Volid,
1364 [in] unsigned32 voltype
1368 guint32 fsid_high, fsid_low, voltype, voloper;
1370 di = pinfo->private_data;
1371 if (di->conformant_run)
1379 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1380 hf_fldb_deleteentry_rqst_fsid_high, &fsid_high);
1382 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1383 hf_fldb_deleteentry_rqst_fsid_low, &fsid_low);
1385 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1386 hf_fldb_deleteentry_rqst_voltype, &voltype);
1388 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1389 hf_fldb_deleteentry_rqst_voloper, &voloper);
1391 if (check_col (pinfo->cinfo, COL_INFO))
1392 col_append_fstr (pinfo->cinfo, COL_INFO, " :FSID:%u/%u", fsid_high,
1401 fldb_dissect_createentry_resp (tvbuff_t * tvb, int offset,
1402 packet_info * pinfo, proto_tree * tree,
1407 di = pinfo->private_data;
1408 if (di->conformant_run)
1413 MACRO_ST_CLEAR ("CreateEntry reply");
1419 fldb_dissect_createentry_rqst (tvbuff_t * tvb, int offset,
1420 packet_info * pinfo, proto_tree * tree,
1425 di = pinfo->private_data;
1426 if (di->conformant_run)
1432 offset = dissect_vldbentry (tvb, offset, pinfo, tree, drep);
1438 fldb_dissect_getentrybyid_rqst (tvbuff_t * tvb, int offset,
1439 packet_info * pinfo, proto_tree * tree,
1444 guint32 volid_high, volid_low, voltype;
1446 di = pinfo->private_data;
1447 if (di->conformant_run)
1455 [in] afsHyper *Volid,
1456 [in] unsigned32 voltype,
1460 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_fldb_volid_high,
1463 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_fldb_volid_low,
1467 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_fldb_voltype,
1470 if (check_col (pinfo->cinfo, COL_INFO))
1471 col_append_fstr (pinfo->cinfo, COL_INFO, " VolID:%u/%u VolType:0x%x",
1472 volid_high, volid_low, voltype);
1479 fldb_dissect_getnewvolumeids_rqst (tvbuff_t * tvb, int offset,
1480 packet_info * pinfo, proto_tree * tree,
1483 /* [in] unsigned32 numWanted,
1484 [in] afsNetAddr *ServerAddr,
1489 di = pinfo->private_data;
1490 if (di->conformant_run)
1496 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_fldb_numwanted,
1498 if (check_col (pinfo->cinfo, COL_INFO))
1499 col_append_fstr (pinfo->cinfo, COL_INFO, " numWanted:%u", numwanted);
1502 offset = dissect_afsnetaddr (tvb, offset, pinfo, tree, drep);
1510 fldb_dissect_getentrybyid_resp (tvbuff_t * tvb, int offset,
1511 packet_info * pinfo, proto_tree * tree,
1516 di = pinfo->private_data;
1517 if (di->conformant_run)
1523 offset = dissect_vldbentry (tvb, offset, pinfo, tree, drep);
1528 fldb_dissect_releaselock_resp (tvbuff_t * tvb, int offset,
1529 packet_info * pinfo, proto_tree * tree,
1534 di = pinfo->private_data;
1535 if (di->conformant_run)
1540 MACRO_ST_CLEAR ("ReleaseLock reply");
1548 fldb_dissect_releaselock_rqst (tvbuff_t * tvb, int offset,
1549 packet_info * pinfo, proto_tree * tree,
1553 guint32 fsid_high, fsid_low, voltype, voloper;
1555 di = pinfo->private_data;
1556 if (di->conformant_run)
1563 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1564 hf_fldb_releaselock_rqst_fsid_high, &fsid_high);
1566 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1567 hf_fldb_releaselock_rqst_fsid_low, &fsid_low);
1569 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1570 hf_fldb_releaselock_rqst_voltype, &voltype);
1572 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1573 hf_fldb_releaselock_rqst_voloper, &voloper);
1575 if (check_col (pinfo->cinfo, COL_INFO))
1576 col_append_fstr (pinfo->cinfo, COL_INFO, " :FSID:%u/%u", fsid_high,
1583 fldb_dissect_replaceentry_resp (tvbuff_t * tvb, int offset,
1584 packet_info * pinfo, proto_tree * tree,
1589 di = pinfo->private_data;
1590 if (di->conformant_run)
1596 MACRO_ST_CLEAR ("ReplaceEntry reply");
1602 fldb_dissect_getnextserversbyid_resp (tvbuff_t * tvb, int offset,
1603 packet_info * pinfo, proto_tree * tree,
1608 guint32 nextstartp, flagsp;
1610 di = pinfo->private_data;
1611 if (di->conformant_run)
1620 /* [out] unsigned32 *nextStartP, */
1623 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_fldb_nextstartp,
1625 if (check_col (pinfo->cinfo, COL_INFO))
1626 col_append_fstr (pinfo->cinfo, COL_INFO, " nextStartP:%u", nextstartp);
1629 /* [out] vldbentry *entry, */
1630 offset = dissect_vldbentry (tvb, offset, pinfo, tree, drep);
1633 /* [out] unsigned32 *flagsP */
1636 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep, hf_fldb_flagsp,
1639 if (check_col (pinfo->cinfo, COL_INFO))
1640 col_append_fstr (pinfo->cinfo, COL_INFO, " flagsp:%u", flagsp);
1646 fldb_dissect_replaceentry_rqst (tvbuff_t * tvb, int offset,
1647 packet_info * pinfo, proto_tree * tree,
1651 guint32 fsid_high, fsid_low, voltype;
1653 di = pinfo->private_data;
1654 if (di->conformant_run)
1660 * [in] afsHyper *Volid,
1661 * [in] unsigned32 voltype,
1662 * [in] vldbentry *newentry,
1663 * [in] unsigned32 ReleaseType
1667 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1668 hf_fldb_replaceentry_rqst_fsid_high, &fsid_high);
1670 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1671 hf_fldb_replaceentry_rqst_fsid_low, &fsid_low);
1673 dissect_ndr_uint32 (tvb, offset, pinfo, tree, drep,
1674 hf_fldb_replaceentry_rqst_voltype, &voltype);
1677 if (check_col (pinfo->cinfo, COL_INFO))
1678 col_append_fstr (pinfo->cinfo, COL_INFO, " FSID:%u/%u Name:", fsid_high,
1681 offset = dissect_vldbentry (tvb, offset, pinfo, tree, drep);
1688 static dcerpc_sub_dissector fldb_dissectors[] = {
1689 {0, "GetEntryByID", fldb_dissect_getentrybyid_rqst,
1690 fldb_dissect_getentrybyid_resp},
1691 {1, "GetEntryByName", fldb_dissect_getentrybyname_rqst,
1692 fldb_dissect_getentrybyname_resp},
1693 {2, "Probe", NULL, NULL},
1694 {3, "GetCellInfo", NULL, fldb_dissect_getcellinfo_resp},
1695 {4, "GetNextServersByID", NULL, fldb_dissect_getnextserversbyid_resp},
1696 {5, "GetNextServersByName", NULL, NULL},
1697 {6, "GetSiteInfo", fldb_dissect_getsiteinfo_rqst,
1698 fldb_dissect_getsiteinfo_resp},
1699 {7, "GetCEntryByID", NULL, NULL},
1700 {8, "GetCEntryByName", NULL, NULL},
1701 {9, "GetCNextServersByID", NULL, NULL},
1702 {10, "GetCNextServersByName", NULL, NULL},
1703 {11, "ExpandSiteCookie", NULL, NULL},
1704 {12, "GetServerInterfaces", NULL, NULL},
1705 {13, "CreateEntry", fldb_dissect_createentry_rqst,
1706 fldb_dissect_createentry_resp},
1707 {14, "DeleteEntry", fldb_dissect_deleteentry_rqst,
1708 fldb_dissect_deleteentry_resp},
1709 {15, "GetNewVolumeId", NULL, NULL},
1710 {16, "ReplaceEntry", fldb_dissect_replaceentry_rqst,
1711 fldb_dissect_replaceentry_resp},
1712 {17, "SetLock", fldb_dissect_setlock_rqst, fldb_dissect_setlock_resp},
1713 {18, "ReleaseLock", fldb_dissect_releaselock_rqst,
1714 fldb_dissect_releaselock_resp},
1715 {19, "ListEntry", fldb_dissect_listentry_rqst, fldb_dissect_listentry_resp},
1716 {20, "ListByAttributes", NULL, NULL},
1717 {21, "GetStats", NULL, NULL},
1718 {22, "AddAddress", NULL, NULL},
1719 {23, "RemoveAddress", NULL, NULL},
1720 {24, "ChangeAddress", NULL, NULL},
1721 {25, "GenerateSites", NULL, NULL},
1722 {26, "GetNewVolumeIds", fldb_dissect_getnewvolumeids_rqst, NULL},
1723 {27, "CreateServer", NULL, NULL},
1724 {28, "AlterServer", NULL, NULL},
1725 {0, NULL, NULL, NULL},
1730 proto_register_fldb (void)
1732 static hf_register_info hf[] = {
1733 {&hf_fldb_releaselock_rqst_fsid_low,
1734 {"FSID releaselock Low", "hf_fldb_releaselock_rqst_fsid_low", FT_UINT32,
1735 BASE_DEC, NULL, 0x0, "", HFILL}},
1736 {&hf_fldb_releaselock_rqst_voltype,
1737 {"voltype", "hf_fldb_releaselock_rqst_voltype", FT_UINT32, BASE_DEC,
1738 NULL, 0x0, "", HFILL}},
1739 {&hf_fldb_releaselock_rqst_voloper,
1740 {"voloper", "hf_fldb_releaselock_rqst_voloper", FT_UINT32, BASE_DEC,
1741 NULL, 0x0, "", HFILL}},
1742 {&hf_fldb_setlock_rqst_fsid_high,
1743 {"FSID setlock Hi", "hf_fldb_setlock_rqst_fsid_high", FT_UINT32,
1744 BASE_DEC, NULL, 0x0, "", HFILL}},
1745 {&hf_fldb_setlock_rqst_fsid_low,
1746 {"FSID setlock Low", "hf_fldb_setlock_rqst_fsid_low", FT_UINT32,
1747 BASE_DEC, NULL, 0x0, "", HFILL}},
1748 {&hf_fldb_setlock_rqst_voltype,
1749 {"voltype", "hf_fldb_setlock_rqst_voltype", FT_UINT32, BASE_DEC, NULL,
1751 {&hf_fldb_setlock_rqst_voloper,
1752 {"voloper", "hf_fldb_setlock_rqst_voloper", FT_UINT32, BASE_DEC, NULL,
1754 {&hf_fldb_setlock_resp_st,
1755 {"Error", "hf_fldb_setlock_resp_st", FT_UINT32, BASE_DEC, NULL, 0x0, "",
1757 {&hf_fldb_setlock_resp_st2,
1758 {"Error", "hf_fldb_setlock_resp_st2", FT_UINT32, BASE_DEC, NULL, 0x0, "",
1760 {&hf_fldb_listentry_rqst_previous_index,
1761 {"Previous Index", "hf_fldb_listentry_rqst_previous_index", FT_UINT32,
1762 BASE_DEC, NULL, 0x0, "", HFILL}},
1763 {&hf_fldb_listentry_rqst_var1,
1764 {"Var 1", "hf_fldb_listentry_rqst_var1", FT_UINT32, BASE_DEC, NULL, 0x0,
1766 {&hf_fldb_listentry_resp_count,
1767 {"Count", "hf_fldb_listentry_resp_count", FT_UINT32, BASE_DEC, NULL, 0x0,
1769 {&hf_fldb_listentry_resp_next_index,
1770 {"Next Index", "hf_fldb_listentry_resp_next_index", FT_UINT32, BASE_DEC,
1771 NULL, 0x0, "", HFILL}},
1772 {&hf_fldb_listentry_resp_key_size,
1773 {"Key Size", "hf_fldb_listentry_resp_key_size", FT_UINT32, BASE_DEC,
1774 NULL, 0x0, "", HFILL}},
1775 {&hf_fldb_listentry_resp_key_t,
1776 {"Volume", "hf_fldb_listentry_resp_key_t", FT_STRING, BASE_NONE, NULL,
1778 {&hf_fldb_listentry_resp_voltype,
1779 {"VolType", "hf_fldb_listentry_resp_voltype", FT_UINT32, BASE_HEX, NULL,
1781 {&hf_fldb_listentry_resp_key_size2,
1782 {"key_size2", "hf_fldb_listentry_resp_key_size2", FT_UINT32, BASE_DEC,
1783 NULL, 0x0, "", HFILL}},
1784 {&hf_fldb_listentry_resp_key_t2,
1785 {"Server", "hf_fldb_listentry_resp_key_t2", FT_STRING, BASE_NONE, NULL,
1787 {&hf_fldb_createentry_rqst_key_t,
1788 {"Volume", "hf_fldb_createentry_rqst_key_t", FT_STRING, BASE_NONE, NULL,
1790 {&hf_fldb_createentry_rqst_key_size,
1791 {"Volume Size", "hf_fldb_createentry_rqst_key_size", FT_UINT32, BASE_DEC,
1792 NULL, 0x0, "", HFILL}},
1793 {&hf_fldb_deleteentry_rqst_fsid_high,
1794 {"FSID deleteentry Hi", "hf_fldb_deleteentry_rqst_fsid_high", FT_UINT32,
1795 BASE_DEC, NULL, 0x0, "", HFILL}},
1796 {&hf_fldb_deleteentry_rqst_fsid_low,
1797 {"FSID deleteentry Low", "hf_fldb_deleteentry_rqst_fsid_low", FT_UINT32,
1798 BASE_DEC, NULL, 0x0, "", HFILL}},
1799 {&hf_fldb_deleteentry_rqst_voltype,
1800 {"voltype", "hf_fldb_deleteentry_rqst_voltype", FT_UINT32, BASE_DEC,
1801 NULL, 0x0, "", HFILL}},
1802 {&hf_fldb_deleteentry_rqst_voloper,
1803 {"voloper", "hf_fldb_deleteentry_rqst_voloper", FT_UINT32, BASE_DEC,
1804 NULL, 0x0, "", HFILL}},
1805 {&hf_fldb_getentrybyid_rqst_fsid_high,
1806 {"FSID deleteentry Hi", "hf_fldb_getentrybyid_rqst_fsid_high", FT_UINT32,
1807 BASE_DEC, NULL, 0x0, "", HFILL}},
1808 {&hf_fldb_getentrybyid_rqst_fsid_low,
1809 {"FSID getentrybyid Low", "hf_fldb_getentrybyid_rqst_fsid_low",
1810 FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL}},
1811 {&hf_fldb_getentrybyid_rqst_voltype,
1812 {"voltype", "hf_fldb_getentrybyid_rqst_voltype", FT_UINT32, BASE_DEC,
1813 NULL, 0x0, "", HFILL}},
1814 {&hf_fldb_getentrybyid_rqst_voloper,
1815 {"voloper", "hf_fldb_getentrybyid_rqst_voloper", FT_UINT32, BASE_DEC,
1816 NULL, 0x0, "", HFILL}},
1817 {&hf_fldb_replaceentry_rqst_fsid_high,
1818 {"FSID replaceentry Hi", "hf_fldb_replaceentry_rqst_fsid_high",
1819 FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL}},
1820 {&hf_fldb_replaceentry_rqst_fsid_low,
1821 {"FSID replaceentry Low", "hf_fldb_replaceentry_rqst_fsid_low",
1822 FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL}},
1823 {&hf_fldb_replaceentry_rqst_voltype,
1824 {"voltype", "hf_fldb_replaceentry_rqst_voltype", FT_UINT32, BASE_DEC,
1825 NULL, 0x0, "", HFILL}},
1826 {&hf_fldb_replaceentry_rqst_key_t,
1827 {"Key", "hf_fldb_replaceentry_rqst_key_t", FT_STRING, BASE_NONE, NULL,
1829 {&hf_fldb_replaceentry_rqst_key_size,
1830 {"Key Size", "hf_fldb_replaceentry_rqst_key_size", FT_UINT32, BASE_DEC,
1831 NULL, 0x0, "", HFILL}},
1832 {&hf_fldb_replaceentry_resp_st,
1833 {"Error", "hf_fldb_replaceentry_resp_st", FT_UINT32, BASE_DEC, NULL, 0x0,
1835 {&hf_fldb_replaceentry_resp_st2,
1836 {"Error", "hf_fldb_replaceentry_resp_st2", FT_UINT32, BASE_DEC, NULL,
1838 {&hf_fldb_getentrybyname_resp_volumetype,
1839 {"hf_fldb_getentrybyname_resp_volumetype",
1840 "hf_fldb_getentrybyname_resp_volumetype", FT_UINT32, BASE_DEC, NULL,
1842 {&hf_fldb_getentrybyname_resp_numservers,
1843 {"hf_fldb_getentrybyname_resp_numservers",
1844 "hf_fldb_getentrybyname_resp_numservers", FT_UINT32, BASE_DEC, NULL,
1846 {&hf_fldb_getentrybyname_resp_sitecookies,
1847 {"hf_fldb_getentrybyname_resp_sitecookies",
1848 "hf_fldb_getentrybyname_resp_sitecookies", FT_UINT32, BASE_DEC, NULL,
1850 {&hf_fldb_getentrybyname_resp_sitepartition,
1851 {"hf_fldb_getentrybyname_resp_sitepartition",
1852 "hf_fldb_getentrybyname_resp_sitepartition", FT_UINT32, BASE_DEC, NULL,
1854 {&hf_fldb_getentrybyname_resp_siteflags,
1855 {"hf_fldb_getentrybyname_resp_siteflags",
1856 "hf_fldb_getentrybyname_resp_siteflags", FT_UINT32, BASE_DEC, NULL, 0x0,
1858 {&hf_fldb_getentrybyname_resp_sitemaxreplat,
1859 {"hf_fldb_getentrybyname_resp_sitemaxreplat",
1860 "hf_fldb_getentrybyname_resp_sitemaxreplat", FT_UINT32, BASE_DEC, NULL,
1862 {&hf_fldb_getentrybyname_resp_volid_high,
1863 {"hf_fldb_getentrybyname_resp_volid_high",
1864 "hf_fldb_getentrybyname_resp_volid_high", FT_UINT32, BASE_DEC, NULL,
1866 {&hf_fldb_getentrybyname_resp_volid_low,
1867 {"hf_fldb_getentrybyname_resp_volid_low",
1868 "hf_fldb_getentrybyname_resp_volid_low", FT_UINT32, BASE_DEC, NULL, 0x0,
1870 {&hf_fldb_getentrybyname_resp_voltype,
1871 {"hf_fldb_getentrybyname_resp_voltype",
1872 "hf_fldb_getentrybyname_resp_voltype", FT_UINT32, BASE_DEC, NULL, 0x0,
1874 {&hf_fldb_getentrybyname_resp_cloneid_high,
1875 {"hf_fldb_getentrybyname_resp_cloneid_high",
1876 "hf_fldb_getentrybyname_resp_cloneid_high", FT_UINT32, BASE_DEC, NULL,
1878 {&hf_fldb_getentrybyname_resp_cloneid_low,
1879 {"hf_fldb_getentrybyname_resp_cloneid_low",
1880 "hf_fldb_getentrybyname_resp_cloneid_low", FT_UINT32, BASE_DEC, NULL,
1882 {&hf_fldb_getentrybyname_resp_flags,
1883 {"hf_fldb_getentrybyname_resp_flags",
1884 "hf_fldb_getentrybyname_resp_flags", FT_UINT32, BASE_DEC, NULL, 0x0, "",
1886 {&hf_fldb_getentrybyname_resp_maxtotallat,
1887 {"hf_fldb_getentrybyname_resp_maxtotallat",
1888 "hf_fldb_getentrybyname_resp_maxtotallat", FT_UINT32, BASE_DEC, NULL,
1890 {&hf_fldb_getentrybyname_resp_hardmaxtotlat,
1891 {"hf_fldb_getentrybyname_resp_hardmaxtotlat",
1892 "hf_fldb_getentrybyname_resp_hardmaxtotlat", FT_UINT32, BASE_DEC, NULL,
1894 {&hf_fldb_getentrybyname_resp_minpouncedally,
1895 {"hf_fldb_getentrybyname_resp_minpouncedally",
1896 "hf_fldb_getentrybyname_resp_minpouncedally", FT_UINT32, BASE_DEC, NULL,
1898 {&hf_fldb_getentrybyname_resp_defaultmaxreplat,
1899 {"hf_fldb_getentrybyname_resp_defaultmaxreplat",
1900 "hf_fldb_getentrybyname_resp_defaultmaxreplat", FT_UINT32, BASE_DEC,
1901 NULL, 0x0, "", HFILL}},
1902 {&hf_fldb_getentrybyname_resp_reclaimdally,
1903 {"hf_fldb_getentrybyname_resp_reclaimdally",
1904 "hf_fldb_getentrybyname_resp_reclaimdally", FT_UINT32, BASE_DEC, NULL,
1906 {&hf_fldb_getentrybyname_resp_whenlocked,
1907 {"hf_fldb_getentrybyname_resp_whenlocked",
1908 "hf_fldb_getentrybyname_resp_whenlocked", FT_UINT32, BASE_DEC, NULL,
1910 {&hf_fldb_getentrybyname_resp_spare1,
1911 {"hf_fldb_getentrybyname_resp_spare1",
1912 "hf_fldb_getentrybyname_resp_spare1", FT_UINT32, BASE_DEC, NULL, 0x0,
1914 {&hf_fldb_getentrybyname_resp_spare2,
1915 {"hf_fldb_getentrybyname_resp_spare2",
1916 "hf_fldb_getentrybyname_resp_spare2", FT_UINT32, BASE_DEC, NULL, 0x0,
1918 {&hf_fldb_getentrybyname_resp_spare3,
1919 {"hf_fldb_getentrybyname_resp_spare3",
1920 "hf_fldb_getentrybyname_resp_spare3", FT_UINT32, BASE_DEC, NULL, 0x0,
1922 {&hf_fldb_getentrybyname_resp_spare4,
1923 {"hf_fldb_getentrybyname_resp_spare4",
1924 "hf_fldb_getentrybyname_resp_spare4", FT_UINT32, BASE_DEC, NULL, 0x0,
1926 {&hf_fldb_getentrybyname_resp_key_t,
1927 {"hf_fldb_getentrybyname_resp_key_t",
1928 "hf_fldb_getentrybyname_resp_key_t", FT_STRING, BASE_NONE, NULL, 0x0,
1930 {&hf_fldb_getentrybyname_resp_key_size,
1931 {"hf_fldb_getentrybyname_resp_size",
1932 "hf_fldb_getentrybyname_resp_key_size", FT_UINT32, BASE_DEC, NULL, 0x0,
1934 {&hf_fldb_getentrybyname_resp_test,
1935 {"hf_fldb_getentrybyname_resp_test", "hf_fldb_getentrybyname_resp_test",
1936 FT_UINT8, BASE_DEC, NULL, 0x0, "", HFILL}},
1937 {&hf_fldb_releaselock_rqst_fsid_high,
1938 {"FSID releaselock Hi", "hf_fldb_releaselock_rqst_fsid_high", FT_UINT32,
1939 BASE_DEC, NULL, 0x0, "", HFILL}},
1941 {"Operation", "fldb.opnum", FT_UINT16, BASE_DEC, NULL, 0x0, "Operation",
1943 {&hf_fldb_vldbentry_volumename,
1944 {"VolumeName", "vldbentry.volumename", FT_STRING, BASE_NONE, NULL, 0x0,
1946 {&hf_fldb_vldbentry_volumetype,
1947 {"VolumeType", "vldbentry.volumetype", FT_UINT32, BASE_DEC, NULL, 0x0,
1949 {&hf_fldb_vldbentry_nservers,
1950 {"Number of Servers", "vldbentry.nservers", FT_UINT32, BASE_DEC, NULL,
1952 {&hf_fldb_afsnetaddr_type,
1953 {"Type", "afsnetaddr.type", FT_UINT16, BASE_DEC, NULL, 0x0, "", HFILL}},
1954 {&hf_fldb_afsnetaddr_data,
1955 {"IP Data", "afsnetaddr.data", FT_UINT8, BASE_DEC, NULL, 0x0, "",
1957 {&hf_fldb_vldbentry_sitepartition,
1958 {"Site Partition", "vldbentry.sitepartition", FT_UINT32, BASE_DEC, NULL,
1960 {&hf_fldb_siteflags,
1961 {"Site Flags", "vldbentry.siteflags", FT_UINT32, BASE_DEC, NULL, 0x0, "",
1963 {&hf_fldb_vldbentry_sitemaxreplicalatency,
1964 {"Site Max Replica Latench", "vldbentry.sitemaxreplatency", FT_UINT32,
1965 BASE_DEC, NULL, 0x0, "", HFILL}},
1966 {&hf_fldb_vldbentry_siteprincipal,
1967 {"Principal Name", "vldbentry.siteprincipal", FT_STRING, BASE_NONE, NULL,
1969 {&hf_fldb_vldbentry_siteowner,
1970 {"Site Owner", "vldbentry.siteowner", FT_STRING, BASE_NONE, NULL, 0x0,
1972 {&hf_fldb_vldbentry_siteobjid,
1973 {"Site Object ID", "vldbentry.siteobjid", FT_STRING, BASE_NONE, NULL,
1974 0x0, "UUID", HFILL}},
1975 {&hf_fldb_vldbentry_volids_high,
1976 {"VolIDs high", "vldbentry.volidshigh", FT_UINT32, BASE_DEC, NULL, 0x0,
1978 {&hf_fldb_vldbentry_volids_low,
1979 {"VolIDs low", "vldbentry.volidslow", FT_UINT32, BASE_DEC, NULL, 0x0, "",
1981 {&hf_fldb_vldbentry_voltypes,
1982 {"VolTypes", "vldbentry.voltypes", FT_UINT32, BASE_DEC, NULL, 0x0, "",
1984 {&hf_fldb_vldbentry_cloneid_high,
1985 {"CloneID High", "vldbentry.cloneidhigh", FT_UINT32, BASE_DEC, NULL, 0x0,
1987 {&hf_fldb_vldbentry_cloneid_low,
1988 {"CloneID Low", "vldbentry.cloneidlow", FT_UINT32, BASE_DEC, NULL, 0x0,
1990 {&hf_fldb_afsflags_flags,
1991 {"AFS Flags", "vldbentry.afsflags", FT_UINT32, BASE_DEC, NULL, 0x0, "",
1993 {&hf_fldb_vldbentry_maxtotallatency,
1994 {"Max Total Latency", "vldbentry.maxtotallatency", FT_UINT32, BASE_DEC,
1995 NULL, 0x0, "", HFILL}},
1996 {&hf_fldb_vldbentry_hardmaxtotallatency,
1997 {"Hard Max Total Latency", "vldbentry.hardmaxtotallatency", FT_UINT32,
1998 BASE_DEC, NULL, 0x0, "", HFILL}},
1999 {&hf_fldb_vldbentry_minimumpouncedally,
2000 {"Minimum Pounce Dally", "vldbentry.minimumpouncedally", FT_UINT32,
2001 BASE_DEC, NULL, 0x0, "", HFILL}},
2002 {&hf_fldb_vldbentry_defaultmaxreplicalatency,
2003 {"Default Max Replica Latency", "vldbentry.defaultmaxreplicalatency",
2004 FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL}},
2005 {&hf_fldb_vldbentry_reclaimdally,
2006 {"Reclaim Dally", "vldbentry.reclaimdally", FT_UINT32, BASE_DEC, NULL,
2008 {&hf_fldb_vldbentry_whenlocked,
2009 {"When Locked", "vldbentry.whenlocked", FT_UINT32, BASE_DEC, NULL, 0x0,
2011 {&hf_fldb_vldbentry_spare1,
2012 {"Spare 1", "vldbentry.spare1", FT_UINT32, BASE_DEC, NULL, 0x0, "",
2014 {&hf_fldb_vldbentry_spare2,
2015 {"Spare 2", "vldbentry.spare2", FT_UINT32, BASE_DEC, NULL, 0x0, "",
2017 {&hf_fldb_vldbentry_spare3,
2018 {"Spare 3", "vldbentry.spare3", FT_UINT32, BASE_DEC, NULL, 0x0, "",
2020 {&hf_fldb_vldbentry_spare4,
2021 {"Spare 4", "vldbentry.spare4", FT_UINT32, BASE_DEC, NULL, 0x0, "",
2023 {&hf_fldb_vldbentry_lockername,
2024 {"Locker Name", "vldbentry.lockername", FT_STRING, BASE_NONE, NULL, 0x0,
2026 {&hf_fldb_vldbentry_charspares,
2027 {"Char Spares", "vldbentry.charspares", FT_STRING, BASE_NONE, NULL, 0x0,
2029 {&hf_fldb_vlconf_cell_name,
2030 {"Name", "vlconf.name", FT_STRING, BASE_NONE, NULL, 0x0, "", HFILL}},
2031 {&hf_fldb_vlconf_cell_cellid_high,
2032 {"CellID High", "vlconf.cellidhigh", FT_UINT32, BASE_DEC, NULL, 0x0, "",
2034 {&hf_fldb_vlconf_cell_cellid_low,
2035 {"CellID Low", "vlconf.cellidlow", FT_UINT32, BASE_DEC, NULL, 0x0, "",
2037 {&hf_fldb_vlconf_cell_numservers,
2038 {"Number of Servers", "vlconf.numservers", FT_UINT32, BASE_DEC, NULL,
2040 {&hf_fldb_vlconf_cell_hostname,
2041 {"hostName", "vlconf.hostname", FT_STRING, BASE_NONE, NULL, 0x0, "",
2043 {&hf_fldb_vlconf_cell_spare1,
2044 {"Spare1", "vlconf.spare1", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL}},
2045 {&hf_fldb_vlconf_cell_spare2,
2046 {"Spare2", "vlconf.spare2", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL}},
2047 {&hf_fldb_vlconf_cell_spare3,
2048 {"Spare3", "vlconf.spare3", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL}},
2049 {&hf_fldb_vlconf_cell_spare4,
2050 {"Spare4", "vlconf.spare4", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL}},
2051 {&hf_fldb_vlconf_cell_spare5,
2052 {"Spare5", "vlconf.spare5", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL}},
2054 {"flagsp", "fldb.flagsp", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL}},
2055 {&hf_fldb_nextstartp,
2056 {"nextstartp", "fldb.nextstartp", FT_UINT32, BASE_DEC, NULL, 0x0, "",
2058 {&hf_fldb_afsNameString_t_principalName_size,
2059 {"Principal Name Size", "fldb.principalName_size", FT_UINT32, BASE_DEC,
2060 NULL, 0x0, "", HFILL}},
2061 {&hf_fldb_afsNameString_t_principalName_size2,
2062 {"Principal Name Size2", "fldb.principalName_size2", FT_UINT32, BASE_DEC,
2063 NULL, 0x0, "", HFILL}},
2064 {&hf_fldb_afsNameString_t_principalName_string,
2065 {"Principal Name", "fldb.NameString_principal", FT_STRING, BASE_NONE,
2066 NULL, 0x0, "", HFILL}},
2067 {&hf_fldb_namestring,
2068 {"Name string", "fldb.NameString_principal", FT_STRING, BASE_NONE, NULL,
2070 {&hf_dcerpc_error_status,
2071 {"Error Status", "fldb.NameString_principal", FT_UINT32, BASE_DEC, NULL,
2074 {"Error Status 2", "fldb.error_st", FT_UINT32, BASE_DEC, NULL, 0x0, "",
2076 {&hf_fldb_creationquota,
2077 {"creation quota", "fldb.creationquota", FT_UINT32, BASE_DEC, NULL, 0x0,
2079 {&hf_fldb_creationuses,
2080 {"creation uses", "fldb.creationuses", FT_UINT32, BASE_DEC, NULL, 0x0,
2082 {&hf_fldb_deletedflag,
2083 {"deletedflag", "fldb.deletedflag", FT_UINT32, BASE_DEC, NULL, 0x0, "",
2085 {&hf_fldb_getentrybyname_rqst_key_size,
2086 {"getentrybyname", "fldb.getentrybyname_rqst_key_size", FT_UINT32,
2087 BASE_DEC, NULL, 0x0, "", HFILL}},
2088 {&hf_fldb_getentrybyname_rqst_var1,
2089 {"getentrybyname var1", "fldb.getentrybyname_rqst_var1", FT_UINT32,
2090 BASE_DEC, NULL, 0x0, "", HFILL}},
2091 {&hf_fldb_namestring_size,
2092 {"namestring size", "fldb.namestring_size", FT_UINT32, BASE_DEC, NULL,
2094 {&hf_fldb_numwanted,
2095 {"number wanted", "fldb.numwanted", FT_UINT32, BASE_DEC, NULL, 0x0, "",
2098 {"spare2", "fldb.spare2", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL}},
2100 {"spare3", "fldb.spare3", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL}},
2102 {"spare4", "fldb.spare4", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL}},
2104 {"spare5", "fldb.spare5", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL}},
2105 {&hf_fldb_uuid_objid,
2106 {"objid", "fldb.uuid_objid", FT_STRING, BASE_NONE, NULL, 0x0, "UUID",
2108 {&hf_fldb_uuid_owner,
2109 {"owner", "fldb.uuid_owner", FT_STRING, BASE_NONE, NULL, 0x0, "UUID",
2111 {&hf_fldb_volid_high,
2112 {"volid high", "fldb.volid_high", FT_UINT32, BASE_DEC, NULL, 0x0, "",
2114 {&hf_fldb_volid_low,
2115 {"volid low", "fldb.volid_low", FT_UINT32, BASE_DEC, NULL, 0x0, "",
2118 {"voltype", "fldb.voltype", FT_UINT32, BASE_DEC, NULL, 0x0, "", HFILL}},
2121 static gint *ett[] = {
2123 &ett_fldb_vldbentry,
2124 &ett_fldb_afsnetaddr,
2125 &ett_fldb_siteflags,
2127 &ett_fldb_vlconf_cell,
2128 &ett_fldb_afsNameString_t,
2131 proto_fldb = proto_register_protocol ("DCE/RPC FLDB", "FLDB", "fldb");
2132 proto_register_field_array (proto_fldb, hf, array_length (hf));
2133 proto_register_subtree_array (ett, array_length (ett));
2137 proto_reg_handoff_fldb (void)
2139 /* Register the protocol as dcerpc */
2140 dcerpc_init_uuid (proto_fldb, ett_fldb, &uuid_fldb, ver_fldb,
2141 fldb_dissectors, hf_fldb_opnum);