1 /* packet-dcerpc-fldb.c
3 * Routines for DCE DFS Fileset Location Server 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
8 * Wireshark - Network traffic analyzer
9 * By Gerald Combs <gerald@wireshark.org>
10 * Copyright 1998 Gerald Combs
12 * SPDX-License-Identifier: GPL-2.0-or-later
18 #include <epan/packet.h>
19 #include "packet-dcerpc.h"
20 #include "packet-dcerpc-dce122.h"
22 void proto_register_fldb (void);
23 void proto_reg_handoff_fldb (void);
25 static int proto_fldb
;
26 static int hf_fldb_opnum
;
29 static int ett_fldb_vldbentry
;
30 static int ett_fldb_afsnetaddr
;
31 static int ett_fldb_siteflags
;
32 static int ett_fldb_afsflags
;
33 static int ett_fldb_vlconf_cell
;
34 static int ett_fldb_afsNameString_t
;
37 static e_guid_t uuid_fldb
=
38 { 0x4d37f2dd, 0xed43, 0x0000, {0x02, 0xc0, 0x37, 0xcf, 0x2e, 0x00, 0x00, 0x01}
40 static uint16_t ver_fldb
= 4;
43 static int hf_fldb_getentrybyname_rqst_var1
;
44 static int hf_fldb_getentrybyname_rqst_key_size
;
46 static int hf_fldb_releaselock_rqst_fsid_high
;
47 static int hf_fldb_releaselock_rqst_fsid_low
;
48 static int hf_fldb_releaselock_rqst_voltype
;
49 static int hf_fldb_releaselock_rqst_voloper
;
50 static int hf_fldb_setlock_rqst_fsid_high
;
51 static int hf_fldb_setlock_rqst_fsid_low
;
52 static int hf_fldb_setlock_rqst_voltype
;
53 static int hf_fldb_setlock_rqst_voloper
;
55 static int hf_fldb_setlock_resp_st
;
56 static int hf_fldb_setlock_resp_st2
;
58 static int hf_fldb_listentry_rqst_previous_index
;
59 static int hf_fldb_listentry_rqst_var1
;
60 static int hf_fldb_listentry_resp_count
;
61 static int hf_fldb_listentry_resp_next_index
;
63 static int hf_fldb_listentry_resp_key_t
;
64 static int hf_fldb_listentry_resp_key_size
;
65 static int hf_fldb_listentry_resp_key_t2
;
66 static int hf_fldb_listentry_resp_key_size2
;
67 static int hf_fldb_listentry_resp_voltype
;
68 static int hf_fldb_createentry_rqst_key_t
;
69 static int hf_fldb_createentry_rqst_key_size
;
71 static int hf_fldb_deleteentry_rqst_fsid_high
;
72 static int hf_fldb_deleteentry_rqst_fsid_low
;
73 static int hf_fldb_deleteentry_rqst_voltype
;
74 static int hf_fldb_deleteentry_rqst_voloper
;
76 static int hf_fldb_getentrybyid_rqst_fsid_high
;
77 static int hf_fldb_getentrybyid_rqst_fsid_low
;
78 static int hf_fldb_getentrybyid_rqst_voltype
;
79 static int hf_fldb_getentrybyid_rqst_voloper
;
81 static int hf_fldb_replaceentry_rqst_fsid_high
;
82 static int hf_fldb_replaceentry_rqst_fsid_low
;
83 static int hf_fldb_replaceentry_rqst_voltype
;
85 static int hf_fldb_replaceentry_rqst_key_size
;
86 static int hf_fldb_replaceentry_rqst_key_t
;
87 static int hf_fldb_replaceentry_resp_st
;
88 static int hf_fldb_replaceentry_resp_st2
;
91 static int hf_fldb_getentrybyname_resp_volumetype
;
92 static int hf_fldb_getentrybyname_resp_numservers
;
93 static int hf_fldb_getentrybyname_resp_sitecookies
;
94 static int hf_fldb_getentrybyname_resp_sitepartition
;
95 static int hf_fldb_getentrybyname_resp_siteflags
;
96 static int hf_fldb_getentrybyname_resp_sitemaxreplat
;
97 static int hf_fldb_getentrybyname_resp_volid_high
;
98 static int hf_fldb_getentrybyname_resp_volid_low
;
99 static int hf_fldb_getentrybyname_resp_voltype
;
100 static int hf_fldb_getentrybyname_resp_cloneid_high
;
101 static int hf_fldb_getentrybyname_resp_cloneid_low
;
102 static int hf_fldb_getentrybyname_resp_flags
;
103 static int hf_fldb_getentrybyname_resp_maxtotallat
;
104 static int hf_fldb_getentrybyname_resp_hardmaxtotlat
;
105 static int hf_fldb_getentrybyname_resp_minpouncedally
;
106 static int hf_fldb_getentrybyname_resp_defaultmaxreplat
;
107 static int hf_fldb_getentrybyname_resp_reclaimdally
;
108 static int hf_fldb_getentrybyname_resp_whenlocked
;
109 static int hf_fldb_getentrybyname_resp_spare1
;
110 static int hf_fldb_getentrybyname_resp_spare2
;
111 static int hf_fldb_getentrybyname_resp_spare3
;
112 static int hf_fldb_getentrybyname_resp_spare4
;
113 static int hf_fldb_getentrybyname_resp_key_t
;
114 static int hf_fldb_getentrybyname_resp_key_size
;
115 static int hf_fldb_getentrybyname_resp_test
;
116 static int hf_dcerpc_error_status
;
118 static int hf_fldb_vldbentry_volumename
;
119 static int hf_fldb_vldbentry_volumetype
;
120 static int hf_fldb_vldbentry_nservers
;
121 static int hf_fldb_vldbentry_sitepartition
;
122 static int hf_fldb_afsnetaddr_type
;
123 static int hf_fldb_afsnetaddr_data
;
124 static int hf_fldb_siteflags
;
125 static int hf_fldb_vldbentry_sitemaxreplicalatency
;
126 static int hf_fldb_vldbentry_siteprincipal
;
127 static int hf_fldb_vldbentry_siteowner
;
128 static int hf_fldb_vldbentry_siteobjid
;
129 static int hf_fldb_vldbentry_volids_high
;
130 static int hf_fldb_vldbentry_volids_low
;
131 static int hf_fldb_vldbentry_voltypes
;
132 static int hf_fldb_vldbentry_cloneid_high
;
133 static int hf_fldb_vldbentry_cloneid_low
;
134 static int hf_fldb_afsflags_flags
;
135 static int hf_fldb_vldbentry_maxtotallatency
;
136 static int hf_fldb_vldbentry_hardmaxtotallatency
;
137 static int hf_fldb_vldbentry_minimumpouncedally
;
138 static int hf_fldb_vldbentry_defaultmaxreplicalatency
;
139 static int hf_fldb_vldbentry_reclaimdally
;
140 static int hf_fldb_vldbentry_whenlocked
;
141 static int hf_fldb_vldbentry_spare1
;
142 static int hf_fldb_vldbentry_spare2
;
143 static int hf_fldb_vldbentry_spare3
;
144 static int hf_fldb_vldbentry_spare4
;
145 static int hf_fldb_vldbentry_lockername
;
146 static int hf_fldb_vldbentry_charspares
;
147 static int hf_fldb_vlconf_cell_name
;
148 static int hf_fldb_vlconf_cell_cellid_high
;
149 static int hf_fldb_vlconf_cell_cellid_low
;
150 static int hf_fldb_vlconf_cell_numservers
;
151 static int hf_fldb_vlconf_cell_hostname
;
152 static int hf_fldb_vlconf_cell_spare1
;
153 static int hf_fldb_vlconf_cell_spare2
;
154 static int hf_fldb_vlconf_cell_spare3
;
155 static int hf_fldb_vlconf_cell_spare4
;
156 static int hf_fldb_vlconf_cell_spare5
;
157 static int hf_fldb_flagsp
;
158 static int hf_fldb_nextstartp
;
159 static int hf_fldb_afsNameString_t_principalName_string
;
160 static int hf_fldb_afsNameString_t_principalName_size
;
161 /* static int hf_fldb_afsNameString_t_principalName_size2; */
162 static int hf_fldb_namestring
;
163 static int hf_error_st
;
164 static int hf_fldb_creationquota
;
165 static int hf_fldb_creationuses
;
166 static int hf_fldb_deletedflag
;
167 /* static int hf_fldb_namestring_size; */
168 static int hf_fldb_numwanted
;
169 static int hf_fldb_spare2
;
170 static int hf_fldb_spare3
;
171 static int hf_fldb_spare4
;
172 static int hf_fldb_spare5
;
173 static int hf_fldb_uuid_objid
;
174 static int hf_fldb_uuid_owner
;
175 static int hf_fldb_volid_high
;
176 static int hf_fldb_volid_low
;
177 static int hf_fldb_voltype
;
179 static const uint8_t *st_str
;
181 #define AFS_FLAG_RETURNTOKEN 0x00001
182 #define AFS_FLAG_TOKENJUMPQUEUE 0x00002
183 #define AFS_FLAG_SKIPTOKEN 0x00004
184 #define AFS_FLAG_NOOPTIMISM 0x00008
185 #define AFS_FLAG_TOKENID 0x00010
186 #define AFS_FLAG_RETURNBLOCKER 0x00020
187 #define AFS_FLAG_ASYNCGRANT 0x00040
188 #define AFS_FLAG_NOREVOKE 0x00080
189 #define AFS_FLAG_MOVE_REESTABLISH 0x00100
190 #define AFS_FLAG_SERVER_REESTABLISH 0x00200
191 #define AFS_FLAG_NO_NEW_EPOCH 0x00400
192 #define AFS_FLAG_MOVE_SOURCE_OK 0x00800
193 #define AFS_FLAG_SYNC 0x01000
194 #define AFS_FLAG_ZERO 0x02000
195 #define AFS_FLAG_SKIPSTATUS 0x04000
196 #define AFS_FLAG_FORCEREVOCATIONS 0x08000
197 #define AFS_FLAG_FORCEVOLQUIESCE 0x10000
198 #define AFS_FLAG_FORCEREVOCATIONDOWN 0x20000
200 #define AFS_FLAG_SEC_SERVICE 0x01
201 #define AFS_FLAG_CONTEXT_NEW_IF 0x02
202 #define AFS_FLAG_CONTEXT_DO_RESET 0x04
203 #define AFS_FLAG_CONTEXT_NEW_ACL_IF 0x08
204 #define AFS_FLAG_CONTEXT_NEW_TKN_TYPES 0x10
206 #define VLSF_NEWREPSITE 0x01
207 #define VLSF_SPARE1 0x02
208 #define VLSF_SPARE2 0x04 /* used for VLSF_RWVOL in flprocs.c */
209 #define VLSF_SPARE3 0x08 /* used for VLSF_BACKVOL in flprocs.c */
210 #define VLSF_SAMEASPREV 0x10
211 #define VLSF_DEFINED 0x20
212 #define VLSF_PARTIALADDRS 0x40
213 #define VLSF_ZEROIXHERE 0x80000000
215 #define MACRO_ST_CLEAR(name) \
216 offset = dissect_ndr_uint32 (tvb, offset, pinfo, tree, di, drep, hf_error_st, &st); \
217 st_str = val_to_str_ext (st, &dce_error_vals_ext, "%u"); \
219 col_add_fstr (pinfo->cinfo, COL_INFO, "%s st:%s ", name, st_str); \
221 col_append_fstr (pinfo->cinfo, COL_INFO, " st:%s ", st_str); \
226 dissect_afsnetaddr (tvbuff_t
*tvb
, int offset
,
227 packet_info
*pinfo
, proto_tree
*parent_tree
,
228 dcerpc_info
*di
, uint8_t *drep
)
230 proto_item
*item
= NULL
;
231 proto_tree
*tree
= NULL
;
232 int old_offset
= offset
;
239 tree
= proto_tree_add_subtree (parent_tree
, tvb
, offset
, -1,
240 ett_fldb_afsnetaddr
, &item
, "afsNetAddr:");
248 dissect_ndr_uint16 (tvb
, offset
, pinfo
, tree
, di
, drep
,
249 hf_fldb_afsnetaddr_type
, &type
);
253 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " Type:%u ", type
);
255 for (i
= 0; i
< 14; i
++)
258 dissect_ndr_uint8 (tvb
, offset
, pinfo
, tree
, di
, drep
,
259 hf_fldb_afsnetaddr_data
, &data
);
266 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " Port:%u", data
);
270 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " IP:%u.", data
);
273 col_append_fstr (pinfo
->cinfo
, COL_INFO
, "%u.", data
);
276 col_append_fstr (pinfo
->cinfo
, COL_INFO
, "%u.", data
);
279 col_append_fstr (pinfo
->cinfo
, COL_INFO
, "%u", data
);
287 offset
+= 14; /* space left after reading in type for the array. */
290 proto_item_set_len (item
, offset
- old_offset
);
297 dissect_vlconf_cell (tvbuff_t
*tvb
, int offset
,
298 packet_info
*pinfo
, proto_tree
*parent_tree
,
299 dcerpc_info
*di
, uint8_t *drep
)
301 proto_item
*item
= NULL
;
302 proto_tree
*tree
= NULL
;
303 int old_offset
= offset
;
304 #define MAXVLCELLCHARS 128
305 #define MAXVLHOSTSPERCELL 64
306 const uint8_t *name
, *hostname
;
308 uint32_t cellid_high
, cellid_low
, numservers
, spare1
, spare2
, spare3
, spare4
,
313 tree
= proto_tree_add_subtree (parent_tree
, tvb
, offset
, -1,
314 ett_fldb_vlconf_cell
, &item
, "vlconf_cell:");
317 /* byte name[MAXVLCELLCHARS]; Cell name */
318 proto_tree_add_item (tree
, hf_fldb_vlconf_cell_name
, tvb
, offset
, 114, ENC_ASCII
);
319 name
= tvb_get_string_enc(pinfo
->pool
, tvb
, offset
, MAXVLCELLCHARS
, ENC_ASCII
); /* XXX why 114 above and 128 here?? */
320 offset
+= MAXVLCELLCHARS
; /* some reason this 114 seems to be incorrect... cutting 4 short to compensate.... */
321 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " Name: %s", name
);
323 /* afsHyper CellID; identifier for that cell */
326 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
327 hf_fldb_vlconf_cell_cellid_high
, &cellid_high
);
329 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
330 hf_fldb_vlconf_cell_cellid_low
, &cellid_low
);
331 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " CellID:%u-%u", cellid_high
,
334 /* unsigned32 numServers; *Num active servers for the cell */
336 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
337 hf_fldb_vlconf_cell_numservers
, &numservers
);
338 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " numServers:%u", numservers
);
340 /* afsNetAddr hostAddr[MAXVLHOSTSPERCELL]; *addresses for cell's servers */
341 for (i
= 0; i
< MAXVLHOSTSPERCELL
; i
++)
343 offset
= dissect_afsnetaddr (tvb
, offset
, pinfo
, tree
, di
, drep
);
346 /* hostnam hostName[MAXVLHOSTSPERCELL]; *Names for cell's servers* */
348 for (i
= 0; i
< MAXVLHOSTSPERCELL
; i
++)
350 proto_tree_add_item_ret_string(tree
, hf_fldb_vlconf_cell_hostname
, tvb
, offset
,
351 64, ENC_ASCII
|ENC_NA
, pinfo
->pool
, &hostname
);
352 offset
+= 64; /* some reason this 114 seems to be incorrect... cutting 4 short to compensate.... */
353 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " hostName: %s", hostname
);
356 /* unsigned32 spare1; */
358 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
359 hf_fldb_vlconf_cell_spare1
, &spare1
);
360 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " spare1:%u", spare1
);
362 /* unsigned32 spare2; */
364 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
365 hf_fldb_vlconf_cell_spare2
, &spare2
);
366 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " spare2:%u", spare2
);
368 /* unsigned32 spare3; */
370 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
371 hf_fldb_vlconf_cell_spare3
, &spare3
);
372 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " spare3:%u", spare3
);
374 /* unsigned32 spare4; */
376 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
377 hf_fldb_vlconf_cell_spare4
, &spare4
);
378 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " spare4:%u", spare4
);
380 /* unsigned32 spare5; */
382 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
383 hf_fldb_vlconf_cell_spare5
, &spare5
);
384 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " spare5:%u", spare5
);
386 proto_item_set_len (item
, offset
- old_offset
);
393 dissect_afsNameString_t (tvbuff_t
*tvb
, int offset
,
394 packet_info
*pinfo
, proto_tree
*parent_tree
,
395 dcerpc_info
*di
, uint8_t *drep
)
398 typedef [string] byte NameString_t[AFS_NAMEMAX];
401 proto_item
*item
= NULL
;
402 proto_tree
*tree
= NULL
;
403 int old_offset
= offset
;
404 #define AFS_NAMEMAX 256
405 uint32_t string_size
;
406 const uint8_t *namestring
;
408 if (di
->conformant_run
)
415 tree
= proto_tree_add_subtree (parent_tree
, tvb
, offset
, -1,
416 ett_fldb_afsNameString_t
, &item
, "afsNameString_t:"); }
418 offset
= dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
419 hf_fldb_afsNameString_t_principalName_size
,
421 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " String_size:%u", string_size
);
422 if (string_size
< AFS_NAMEMAX
)
424 /* proto_tree_add_string(tree, id, tvb, start, length, value_ptr); */
425 proto_tree_add_item_ret_string(tree
, hf_fldb_afsNameString_t_principalName_string
,
426 tvb
, offset
, string_size
, ENC_ASCII
|ENC_NA
, pinfo
->pool
, &namestring
);
427 offset
+= string_size
;
428 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " Principal:%s", namestring
);
432 col_append_fstr (pinfo
->cinfo
, COL_INFO
,
433 " :FIXME!: Invalid string length of %u",
436 proto_item_set_len (item
, offset
- old_offset
);
442 dissect_afsflags (tvbuff_t
*tvb
, int offset
,
443 packet_info
*pinfo
, proto_tree
*parent_tree
,
444 dcerpc_info
*di
, uint8_t *drep
)
446 proto_item
*item
= NULL
;
447 proto_tree
*tree
= NULL
;
448 int old_offset
= offset
;
453 tree
= proto_tree_add_subtree (parent_tree
, tvb
, offset
, -1, ett_fldb_afsflags
, &item
, "afsFlags:");
457 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
458 hf_fldb_afsflags_flags
, &afsflags
);
461 col_append_str (pinfo
->cinfo
, COL_INFO
, " afsFlags=");
462 if ((afsflags
& AFS_FLAG_RETURNTOKEN
) == AFS_FLAG_RETURNTOKEN
)
464 col_append_str (pinfo
->cinfo
, COL_INFO
, ":RETURNTOKEN");
466 if ((afsflags
& AFS_FLAG_TOKENJUMPQUEUE
) == AFS_FLAG_TOKENJUMPQUEUE
)
468 col_append_str (pinfo
->cinfo
, COL_INFO
, ":TOKENJUMPQUEUE");
470 if ((afsflags
& AFS_FLAG_SKIPTOKEN
) == AFS_FLAG_SKIPTOKEN
)
472 col_append_str (pinfo
->cinfo
, COL_INFO
, ":SKIPTOKEN");
474 if ((afsflags
& AFS_FLAG_NOOPTIMISM
) == AFS_FLAG_NOOPTIMISM
)
476 col_append_str (pinfo
->cinfo
, COL_INFO
, ":NOOPTIMISM");
478 if ((afsflags
& AFS_FLAG_TOKENID
) == AFS_FLAG_TOKENID
)
480 col_append_str (pinfo
->cinfo
, COL_INFO
, ":TOKENID");
482 if ((afsflags
& AFS_FLAG_RETURNBLOCKER
) == AFS_FLAG_RETURNBLOCKER
)
484 col_append_str (pinfo
->cinfo
, COL_INFO
, ":RETURNBLOCKER");
486 if ((afsflags
& AFS_FLAG_ASYNCGRANT
) == AFS_FLAG_ASYNCGRANT
)
488 col_append_str (pinfo
->cinfo
, COL_INFO
, ":ASYNCGRANT");
490 if ((afsflags
& AFS_FLAG_NOREVOKE
) == AFS_FLAG_NOREVOKE
)
492 col_append_str (pinfo
->cinfo
, COL_INFO
, ":NOREVOKE");
494 if ((afsflags
& AFS_FLAG_MOVE_REESTABLISH
) == AFS_FLAG_MOVE_REESTABLISH
)
496 col_append_str (pinfo
->cinfo
, COL_INFO
, ":MOVE_REESTABLISH");
498 if ((afsflags
& AFS_FLAG_SERVER_REESTABLISH
) ==
499 AFS_FLAG_SERVER_REESTABLISH
)
501 col_append_str (pinfo
->cinfo
, COL_INFO
, ":SERVER_REESTABLISH");
502 if ((afsflags
& AFS_FLAG_NO_NEW_EPOCH
) == AFS_FLAG_NO_NEW_EPOCH
)
504 col_append_str (pinfo
->cinfo
, COL_INFO
, ":NO_NEW_EPOCH");
506 if ((afsflags
& AFS_FLAG_MOVE_SOURCE_OK
) == AFS_FLAG_MOVE_SOURCE_OK
)
508 col_append_str (pinfo
->cinfo
, COL_INFO
, ":MOVE_SOURCE_OK");
510 if ((afsflags
& AFS_FLAG_SYNC
) == AFS_FLAG_SYNC
)
512 col_append_str (pinfo
->cinfo
, COL_INFO
, ":SYNC");
514 if ((afsflags
& AFS_FLAG_ZERO
) == AFS_FLAG_ZERO
)
516 col_append_str (pinfo
->cinfo
, COL_INFO
, ":ZERO");
518 if ((afsflags
& AFS_FLAG_SKIPSTATUS
) == AFS_FLAG_SKIPSTATUS
)
520 col_append_str (pinfo
->cinfo
, COL_INFO
, ":SKIPSTATUS");
522 if ((afsflags
& AFS_FLAG_FORCEREVOCATIONS
) ==
523 AFS_FLAG_FORCEREVOCATIONS
)
525 col_append_str (pinfo
->cinfo
, COL_INFO
, ":FORCEREVOCATIONS");
527 if ((afsflags
& AFS_FLAG_FORCEVOLQUIESCE
) ==
528 AFS_FLAG_FORCEVOLQUIESCE
)
530 col_append_str (pinfo
->cinfo
, COL_INFO
, ":FORCEVOLQUIESCE");
532 if ((afsflags
& AFS_FLAG_SEC_SERVICE
) == AFS_FLAG_SEC_SERVICE
)
534 col_append_str (pinfo
->cinfo
, COL_INFO
, ":SEC_SERVICE");
536 if ((afsflags
& AFS_FLAG_CONTEXT_NEW_ACL_IF
) ==
537 AFS_FLAG_CONTEXT_NEW_ACL_IF
)
539 col_append_str (pinfo
->cinfo
, COL_INFO
,
540 ":CONTEXT_NEW_ACL_IF");
546 proto_item_set_len (item
, offset
- old_offset
);
553 dissect_siteflags (tvbuff_t
*tvb
, int offset
,
554 packet_info
*pinfo
, proto_tree
*parent_tree
,
555 dcerpc_info
*di
, uint8_t *drep
)
557 proto_item
*item
= NULL
;
558 proto_tree
*tree
= NULL
;
559 int old_offset
= offset
;
564 tree
= proto_tree_add_subtree (parent_tree
, tvb
, offset
, -1, ett_fldb_siteflags
, &item
, "SiteFlags:");
568 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
, hf_fldb_siteflags
,
573 col_append_str (pinfo
->cinfo
, COL_INFO
, " SiteFlags");
574 if ((siteflags
& VLSF_NEWREPSITE
) == VLSF_NEWREPSITE
)
576 col_append_str (pinfo
->cinfo
, COL_INFO
, ":NEWREPSITE");
578 if ((siteflags
& VLSF_SPARE1
) == VLSF_SPARE1
)
580 col_append_str (pinfo
->cinfo
, COL_INFO
, ":SPARE1");
582 if ((siteflags
& VLSF_SPARE2
) == VLSF_SPARE2
)
584 col_append_str (pinfo
->cinfo
, COL_INFO
, ":SPARE2");
586 if ((siteflags
& VLSF_SPARE3
) == VLSF_SPARE3
)
588 col_append_str (pinfo
->cinfo
, COL_INFO
, ":SPARE3");
590 if ((siteflags
& VLSF_SAMEASPREV
) == VLSF_SAMEASPREV
)
592 col_append_str (pinfo
->cinfo
, COL_INFO
, ":SAMEASPREV");
594 if ((siteflags
& VLSF_DEFINED
) == VLSF_DEFINED
)
596 col_append_str (pinfo
->cinfo
, COL_INFO
, ":DEFINED");
598 if ((siteflags
& VLSF_PARTIALADDRS
) == VLSF_PARTIALADDRS
)
600 col_append_str (pinfo
->cinfo
, COL_INFO
, ":PARTIALADDRS ");
602 if ((siteflags
& VLSF_ZEROIXHERE
) == VLSF_ZEROIXHERE
)
604 col_append_str (pinfo
->cinfo
, COL_INFO
, ":ZEROIXHERE");
609 proto_item_set_len (item
, offset
- old_offset
);
616 dissect_vldbentry (tvbuff_t
*tvb
, int offset
,
617 packet_info
*pinfo
, proto_tree
*parent_tree
,
618 dcerpc_info
*di
, uint8_t *drep
)
622 int old_offset
= offset
;
623 const uint8_t *volumename
, *siteprincipal
, *charspares
, *lockername
;
624 uint32_t volumetype
, nservers
, sitepartition
, sitemaxreplicalatency
;
625 uint32_t volids_high
, volids_low
, voltypes
, cloneid_high
, cloneid_low
;
626 uint32_t maxtotallatency
, hardmaxtotallatency
, minimumpouncedally
;
627 uint32_t defaultmaxreplicalatency
, reclaimdally
, whenlocked
;
628 uint32_t spare1
, spare2
, spare3
, spare4
;
629 e_guid_t siteowner
, siteobjid
;
631 #define MAXNSERVERS 16
632 #define MAXVOLTYPES 8
633 #define MAXLOCKNAMELEN 64
635 tree
= proto_tree_add_subtree (parent_tree
, tvb
, offset
, -1, ett_fldb_vldbentry
, &item
, "vldbentry:");
637 /* byte name[114]; Volume name */
639 proto_tree_add_item_ret_string(tree
, hf_fldb_vldbentry_volumename
, tvb
, offset
, 114,
640 ENC_ASCII
|ENC_NA
, pinfo
->pool
, &volumename
);
641 offset
+= 110; /* some reason this 114 seems to be incorrect... cutting 4 short to compensate.... */
642 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " Name: %s", volumename
);
644 /* unsigned32 volumeType; */
646 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
647 hf_fldb_vldbentry_volumetype
, &volumetype
);
648 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " Type:%u", volumetype
);
650 /*unsigned32 nServers; */
652 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
653 hf_fldb_vldbentry_nservers
, &nservers
);
654 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " nServers:%u", nservers
);
656 /* afsNetAddr siteAddr[MAXNSERVERS]; 16 */
657 for (i
= 0; i
< MAXNSERVERS
; i
++)
659 /* col_append_fstr (pinfo->cinfo, COL_INFO, " Site:%u", i); */
661 offset
= dissect_afsnetaddr (tvb
, offset
, pinfo
, tree
, di
, drep
);
664 /* unsigned32 sitePartition[MAXNSERVERS]; */
665 for (i
= 0; i
< MAXNSERVERS
; i
++)
668 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
669 hf_fldb_vldbentry_sitepartition
, &sitepartition
);
672 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " LFS:%u",
677 /* unsigned32 siteFlags[MAXNSERVERS]; */
678 for (i
= 0; i
< MAXNSERVERS
; i
++)
680 offset
= dissect_siteflags (tvb
, offset
, pinfo
, tree
, di
, drep
);
683 /* unsigned32 sitemaxReplicaLatency[MAXNSERVERS]; */
684 for (i
= 0; i
< MAXNSERVERS
; i
++)
687 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
688 hf_fldb_vldbentry_sitemaxreplicalatency
,
689 &sitemaxreplicalatency
);
690 if (sitemaxreplicalatency
)
692 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " MaxRepLat%d:%u", i
,
693 sitemaxreplicalatency
);
696 /* kerb_princ_name sitePrincipal[MAXNSERVERS]; principal */
697 for (i
= 0; i
< MAXNSERVERS
; i
++)
699 proto_tree_add_item_ret_string(tree
, hf_fldb_vldbentry_siteprincipal
, tvb
,
700 offset
, 64, ENC_ASCII
|ENC_NA
, pinfo
->pool
, &siteprincipal
);
702 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " Princ: %s", siteprincipal
);
705 /* afsUUID siteOwner[MAXNSERVERS]; */
707 for (i
= 0; i
< MAXNSERVERS
; i
++)
710 dissect_ndr_uuid_t (tvb
, offset
, pinfo
, tree
, di
, drep
,
711 hf_fldb_vldbentry_siteowner
, &siteowner
);
712 col_append_fstr (pinfo
->cinfo
, COL_INFO
,
713 " SiteOwner - %08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x",
714 siteowner
.data1
, siteowner
.data2
, siteowner
.data3
,
715 siteowner
.data4
[0], siteowner
.data4
[1],
716 siteowner
.data4
[2], siteowner
.data4
[3],
717 siteowner
.data4
[4], siteowner
.data4
[5],
718 siteowner
.data4
[6], siteowner
.data4
[7]);
721 /* afsUUID siteObjID[MAXNSERVERS]; */
722 for (i
= 0; i
< MAXNSERVERS
; i
++)
725 dissect_ndr_uuid_t (tvb
, offset
, pinfo
, tree
, di
, drep
,
726 hf_fldb_vldbentry_siteobjid
, &siteobjid
);
727 col_append_fstr (pinfo
->cinfo
, COL_INFO
,
728 " SiteObjID - %08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x",
729 siteobjid
.data1
, siteobjid
.data2
, siteobjid
.data3
,
730 siteobjid
.data4
[0], siteobjid
.data4
[1],
731 siteobjid
.data4
[2], siteobjid
.data4
[3],
732 siteobjid
.data4
[4], siteobjid
.data4
[5],
733 siteobjid
.data4
[6], siteobjid
.data4
[7]);
736 /* afsHyper VolIDs[MAXVOLTYPES]; */
737 /* XXX for these hypers, I will skip trying to use non portable uint64_t, and just read both, and use only low.
738 never seen a case of a volid going anywhere the overflow of the 32 low; */
739 for (i
= 0; i
< MAXVOLTYPES
; i
++)
742 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
743 hf_fldb_vldbentry_volids_high
, &volids_high
);
745 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
746 hf_fldb_vldbentry_volids_low
, &volids_low
);
747 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " VolIDs%d:%u", i
,
751 /* unsigned32 VolTypes[MAXVOLTYPES]; */
752 for (i
= 0; i
< MAXVOLTYPES
; i
++)
755 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
756 hf_fldb_vldbentry_voltypes
, &voltypes
);
759 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " VolTypes:%d:%u", i
,
764 /* afsHyper cloneId; Used during cloning */
766 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
767 hf_fldb_vldbentry_cloneid_high
, &cloneid_high
);
769 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
770 hf_fldb_vldbentry_cloneid_low
, &cloneid_low
);
773 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " CloneId:%u", cloneid_low
);
776 /* unsigned32 flags; General flags */
777 offset
= dissect_afsflags (tvb
, offset
, pinfo
, tree
, di
, drep
);
779 /* unsigned32 maxTotalLatency; */
781 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
782 hf_fldb_vldbentry_maxtotallatency
, &maxtotallatency
);
783 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " MaxTotLat:%u",
786 /* unsigned32 hardMaxTotalLatency; */
788 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
789 hf_fldb_vldbentry_hardmaxtotallatency
,
790 &hardmaxtotallatency
);
791 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " HardMaxTotLat:%u",
792 hardmaxtotallatency
);
794 /* unsigned32 minimumPounceDally; */
796 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
797 hf_fldb_vldbentry_minimumpouncedally
,
798 &minimumpouncedally
);
799 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " minPounceDally:%u",
802 /* unsigned32 defaultMaxReplicaLatency; */
804 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
805 hf_fldb_vldbentry_defaultmaxreplicalatency
,
806 &defaultmaxreplicalatency
);
807 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " defaultMaxReplicaLatency:%u",
808 defaultmaxreplicalatency
);
810 /* unsigned32 reclaimDally; */
812 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
813 hf_fldb_vldbentry_reclaimdally
, &reclaimdally
);
814 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " reclaimDally:%u",
817 /* unsigned32 WhenLocked; */
819 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
820 hf_fldb_vldbentry_whenlocked
, &whenlocked
);
821 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " WhenLocked:%u", whenlocked
);
823 /* unsigned32 spare1; */
825 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
826 hf_fldb_vldbentry_spare1
, &spare1
);
827 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " spare1:%u", spare1
);
829 /* unsigned32 spare2; */
831 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
832 hf_fldb_vldbentry_spare2
, &spare2
);
833 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " spare2:%u", spare2
);
835 /* unsigned32 spare3; */
836 offset
= dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
837 hf_fldb_vldbentry_spare3
, &spare3
);
838 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " spare3:%u", spare3
);
840 /* unsigned32 spare4; */
841 offset
= dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
842 hf_fldb_vldbentry_spare4
, &spare4
);
843 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " spare4:%u", spare4
);
846 /* byte LockerName[MAXLOCKNAMELEN]; */
847 proto_tree_add_item_ret_string(tree
, hf_fldb_vldbentry_lockername
, tvb
, offset
,
848 MAXLOCKNAMELEN
, ENC_ASCII
|ENC_NA
, pinfo
->pool
, &lockername
);
849 offset
+= MAXLOCKNAMELEN
; /* some reason this 114 seems to be incorrect... cutting 4 short to compensate.... */
850 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " LockerName: %s", lockername
);
852 /* byte charSpares[50]; */
853 proto_tree_add_item_ret_string(tree
, hf_fldb_vldbentry_charspares
, tvb
, offset
, 50,
854 ENC_ASCII
|ENC_NA
, pinfo
->pool
, &charspares
);
855 offset
+= 50; /* some reason this 114 seems to be incorrect... cutting 4 short to compensate.... */
856 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " charSpares:%s", charspares
);
858 proto_item_set_len (item
, offset
- old_offset
);
865 fldb_dissect_getcellinfo_resp (tvbuff_t
*tvb
, int offset
,
866 packet_info
*pinfo
, proto_tree
*tree
,
867 dcerpc_info
*di
, uint8_t *drep
)
869 if (di
->conformant_run
)
874 /* [out] vlconf_cell *MyCell */
875 offset
= dissect_vlconf_cell (tvb
, offset
, pinfo
, tree
, di
, drep
);
882 fldb_dissect_getentrybyname_rqst (tvbuff_t
*tvb
, int offset
,
883 packet_info
*pinfo
, proto_tree
*tree
,
884 dcerpc_info
*di
, uint8_t *drep
)
886 if (di
->conformant_run
)
892 * [in] volumeName volName,
896 offset
= dissect_afsNameString_t (tvb
, offset
, pinfo
, tree
, di
, drep
);
903 fldb_dissect_getentrybyname_resp (tvbuff_t
*tvb
, int offset
,
904 packet_info
*pinfo
, proto_tree
*tree
,
905 dcerpc_info
*di
, uint8_t *drep
)
908 [out] vldbentry *entry
910 if (di
->conformant_run
)
915 offset
= dissect_vldbentry (tvb
, offset
, pinfo
, tree
, di
, drep
);
917 MACRO_ST_CLEAR ("GetEntryByName reply");
923 fldb_dissect_getsiteinfo_rqst (tvbuff_t
*tvb
, int offset
,
924 packet_info
*pinfo
, proto_tree
*tree
,
925 dcerpc_info
*di
, uint8_t *drep
)
927 if (di
->conformant_run
)
933 * [in] afsNetAddr *OldAddr,
937 offset
= dissect_afsnetaddr (tvb
, offset
, pinfo
, tree
, di
, drep
);
941 * [in] afsNetAddr *OldAddr,
951 fldb_dissect_getsiteinfo_resp (tvbuff_t
*tvb
, int offset
,
952 packet_info
*pinfo
, proto_tree
*tree
,
953 dcerpc_info
*di
, uint8_t *drep
)
955 const uint8_t *namestring
;
956 e_guid_t owner
, objid
;
957 uint32_t creationquota
, creationuses
, deletedflag
;
958 uint32_t spare2
, spare3
, spare4
, spare5
;
960 if (di
->conformant_run
)
966 [out] siteDessiib *FullSiteInfo
967 afsNetAddr Addr[ADDRSINSITE];
968 byte KerbPrin[MAXKPRINCIPALLEN] 64;
971 unsigned32 CreationQuota;
972 unsigned32 CreationUses;
973 unsigned32 DeletedFlag;
980 offset
= dissect_afsnetaddr (tvb
, offset
, pinfo
, tree
, di
, drep
);
982 /* handle byte KerbPrin[64]. */
984 offset
+= 48; /* part of kerbprin before name... */
986 proto_tree_add_item_ret_string(tree
, hf_fldb_namestring
, tvb
, offset
, 64, ENC_ASCII
|ENC_NA
, pinfo
->pool
, &namestring
);
988 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " %s", namestring
);
990 offset
= dissect_ndr_uuid_t (tvb
, offset
, pinfo
, tree
, di
, drep
, hf_fldb_uuid_owner
, &owner
);
991 col_append_fstr (pinfo
->cinfo
, COL_INFO
,
992 " Owner - %08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x",
993 owner
.data1
, owner
.data2
, owner
.data3
, owner
.data4
[0],
994 owner
.data4
[1], owner
.data4
[2], owner
.data4
[3],
995 owner
.data4
[4], owner
.data4
[5], owner
.data4
[6],
999 dissect_ndr_uuid_t (tvb
, offset
, pinfo
, tree
, di
, drep
, hf_fldb_uuid_objid
,
1001 col_append_fstr (pinfo
->cinfo
, COL_INFO
,
1002 " ObjID - %08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x",
1003 objid
.data1
, objid
.data2
, objid
.data3
, objid
.data4
[0],
1004 objid
.data4
[1], objid
.data4
[2], objid
.data4
[3],
1005 objid
.data4
[4], objid
.data4
[5], objid
.data4
[6],
1009 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
, hf_fldb_creationquota
,
1012 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
, hf_fldb_creationuses
,
1015 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
, hf_fldb_deletedflag
,
1018 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
, hf_fldb_spare2
,
1021 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
, hf_fldb_spare3
,
1024 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
, hf_fldb_spare4
,
1027 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
, hf_fldb_spare5
,
1030 col_append_fstr (pinfo
->cinfo
, COL_INFO
,
1031 " CreationQuota:%u CreationUses:%u DeletedFlag:%u Spare2:%u Spare3:%u Spare4:%u Spare5:%u",
1032 creationquota
, creationuses
, deletedflag
, spare2
, spare3
,
1035 MACRO_ST_CLEAR ("GetSiteInfo reply");
1042 fldb_dissect_listentry_rqst (tvbuff_t
*tvb
, int offset
,
1043 packet_info
*pinfo
, proto_tree
*tree
,
1044 dcerpc_info
*di
, uint8_t *drep
)
1046 uint32_t var1
, previous_index
;
1048 if (di
->conformant_run
)
1054 * [in] unsigned32 previous_index,
1055 * [out] unsigned32 *count,
1056 * [out] unsigned32 *next_index,
1057 * [out] vldbentry *entry
1061 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
1062 hf_fldb_listentry_rqst_previous_index
,
1065 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
1066 hf_fldb_listentry_rqst_var1
, &var1
);
1069 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " :PrevIndex: %u",
1077 fldb_dissect_listentry_resp (tvbuff_t
*tvb
, int offset
,
1078 packet_info
*pinfo
, proto_tree
*tree
,
1079 dcerpc_info
*di
, uint8_t *drep
)
1081 uint32_t count
, next_index
;
1083 if (di
->conformant_run
)
1089 * [out] unsigned32 *count,
1090 * [out] unsigned32 *next_index,
1091 * [out] vldbentry *entry
1095 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
1096 hf_fldb_listentry_resp_count
, &count
);
1098 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
1099 hf_fldb_listentry_resp_next_index
, &next_index
);
1100 offset
= dissect_vldbentry (tvb
, offset
, pinfo
, tree
, di
, drep
);
1106 fldb_dissect_setlock_rqst (tvbuff_t
*tvb
, int offset
,
1107 packet_info
*pinfo
, proto_tree
*tree
,
1108 dcerpc_info
*di
, uint8_t *drep
)
1110 uint32_t fsid_high
, fsid_low
, voltype
, voloper
;
1112 if (di
->conformant_run
)
1118 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
1119 hf_fldb_setlock_rqst_fsid_high
, &fsid_high
);
1121 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
1122 hf_fldb_setlock_rqst_fsid_low
, &fsid_low
);
1124 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
1125 hf_fldb_setlock_rqst_voltype
, &voltype
);
1127 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
1128 hf_fldb_setlock_rqst_voloper
, &voloper
);
1130 col_append_fstr (pinfo
->cinfo
, COL_INFO
,
1131 " :FSID:%u/%u VolType:0x%x VolOper:%u", fsid_high
,
1132 fsid_low
, voltype
, voloper
);
1139 fldb_dissect_setlock_resp (tvbuff_t
*tvb
, int offset
,
1140 packet_info
*pinfo
, proto_tree
*tree
,
1141 dcerpc_info
*di
, uint8_t *drep
)
1143 if (di
->conformant_run
)
1148 MACRO_ST_CLEAR ("SetLock reply");
1155 fldb_dissect_deleteentry_resp (tvbuff_t
*tvb
, int offset
,
1156 packet_info
*pinfo
, proto_tree
*tree
,
1157 dcerpc_info
*di
, uint8_t *drep
)
1159 if (di
->conformant_run
)
1164 MACRO_ST_CLEAR ("DeleteEntry reply");
1171 fldb_dissect_deleteentry_rqst (tvbuff_t
*tvb
, int offset
,
1172 packet_info
*pinfo
, proto_tree
*tree
,
1173 dcerpc_info
*di
, uint8_t *drep
)
1176 [in] afsHyper *Volid,
1177 [in] unsigned32 voltype
1180 uint32_t fsid_high
, fsid_low
, voltype
, voloper
;
1182 if (di
->conformant_run
)
1188 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
1189 hf_fldb_deleteentry_rqst_fsid_high
, &fsid_high
);
1191 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
1192 hf_fldb_deleteentry_rqst_fsid_low
, &fsid_low
);
1194 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
1195 hf_fldb_deleteentry_rqst_voltype
, &voltype
);
1197 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
1198 hf_fldb_deleteentry_rqst_voloper
, &voloper
);
1200 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " :FSID:%u/%u", fsid_high
,
1209 fldb_dissect_createentry_resp (tvbuff_t
*tvb
, int offset
,
1210 packet_info
*pinfo
, proto_tree
*tree
,
1211 dcerpc_info
*di
, uint8_t *drep
)
1213 if (di
->conformant_run
)
1218 MACRO_ST_CLEAR ("CreateEntry reply");
1225 fldb_dissect_createentry_rqst (tvbuff_t
*tvb
, int offset
,
1226 packet_info
*pinfo
, proto_tree
*tree
,
1227 dcerpc_info
*di
, uint8_t *drep
)
1229 if (di
->conformant_run
)
1234 offset
= dissect_vldbentry (tvb
, offset
, pinfo
, tree
, di
, drep
);
1240 fldb_dissect_getentrybyid_rqst (tvbuff_t
*tvb
, int offset
,
1241 packet_info
*pinfo
, proto_tree
*tree
,
1242 dcerpc_info
*di
, uint8_t *drep
)
1244 uint32_t volid_high
, volid_low
, voltype
;
1246 if (di
->conformant_run
)
1252 [in] afsHyper *Volid,
1253 [in] unsigned32 voltype,
1257 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
, hf_fldb_volid_high
,
1260 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
, hf_fldb_volid_low
,
1264 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
, hf_fldb_voltype
,
1267 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " VolID:%u/%u VolType:0x%x",
1268 volid_high
, volid_low
, voltype
);
1275 fldb_dissect_getnewvolumeids_rqst (tvbuff_t
*tvb
, int offset
,
1276 packet_info
*pinfo
, proto_tree
*tree
,
1277 dcerpc_info
*di
, uint8_t *drep
)
1279 /* [in] unsigned32 numWanted,
1280 [in] afsNetAddr *ServerAddr,
1284 if (di
->conformant_run
)
1290 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
, hf_fldb_numwanted
,
1292 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " numWanted:%u", numwanted
);
1294 offset
= dissect_afsnetaddr (tvb
, offset
, pinfo
, tree
, di
, drep
);
1301 fldb_dissect_getentrybyid_resp (tvbuff_t
*tvb
, int offset
,
1302 packet_info
*pinfo
, proto_tree
*tree
,
1303 dcerpc_info
*di
, uint8_t *drep
)
1305 if (di
->conformant_run
)
1310 offset
= dissect_vldbentry (tvb
, offset
, pinfo
, tree
, di
, drep
);
1316 fldb_dissect_releaselock_resp (tvbuff_t
*tvb
, int offset
,
1317 packet_info
*pinfo
, proto_tree
*tree
,
1318 dcerpc_info
*di
, uint8_t *drep
)
1320 if (di
->conformant_run
)
1325 MACRO_ST_CLEAR ("ReleaseLock reply");
1333 fldb_dissect_releaselock_rqst (tvbuff_t
*tvb
, int offset
,
1334 packet_info
*pinfo
, proto_tree
*tree
,
1335 dcerpc_info
*di
, uint8_t *drep
)
1337 uint32_t fsid_high
, fsid_low
, voltype
, voloper
;
1339 if (di
->conformant_run
)
1345 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
1346 hf_fldb_releaselock_rqst_fsid_high
, &fsid_high
);
1348 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
1349 hf_fldb_releaselock_rqst_fsid_low
, &fsid_low
);
1351 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
1352 hf_fldb_releaselock_rqst_voltype
, &voltype
);
1354 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
1355 hf_fldb_releaselock_rqst_voloper
, &voloper
);
1357 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " :FSID:%u/%u", fsid_high
,
1366 fldb_dissect_replaceentry_resp (tvbuff_t
*tvb
, int offset
,
1367 packet_info
*pinfo
, proto_tree
*tree
,
1368 dcerpc_info
*di
, uint8_t *drep
)
1370 if (di
->conformant_run
)
1375 MACRO_ST_CLEAR ("ReplaceEntry reply");
1382 fldb_dissect_getnextserversbyid_resp (tvbuff_t
*tvb
, int offset
,
1383 packet_info
*pinfo
, proto_tree
*tree
,
1384 dcerpc_info
*di
, uint8_t *drep
)
1386 uint32_t nextstartp
, flagsp
;
1388 if (di
->conformant_run
)
1393 /* [out] unsigned32 *nextStartP, */
1396 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
, hf_fldb_nextstartp
,
1398 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " nextStartP:%u", nextstartp
);
1400 /* [out] vldbentry *entry, */
1401 offset
= dissect_vldbentry (tvb
, offset
, pinfo
, tree
, di
, drep
);
1404 /* [out] unsigned32 *flagsP */
1407 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
, hf_fldb_flagsp
,
1410 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " flagsp:%u", flagsp
);
1417 fldb_dissect_replaceentry_rqst (tvbuff_t
*tvb
, int offset
,
1418 packet_info
*pinfo
, proto_tree
*tree
,
1419 dcerpc_info
*di
, uint8_t *drep
)
1421 uint32_t fsid_high
, fsid_low
, voltype
;
1423 if (di
->conformant_run
)
1429 * [in] afsHyper *Volid,
1430 * [in] unsigned32 voltype,
1431 * [in] vldbentry *newentry,
1432 * [in] unsigned32 ReleaseType
1436 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
1437 hf_fldb_replaceentry_rqst_fsid_high
, &fsid_high
);
1439 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
1440 hf_fldb_replaceentry_rqst_fsid_low
, &fsid_low
);
1442 dissect_ndr_uint32 (tvb
, offset
, pinfo
, tree
, di
, drep
,
1443 hf_fldb_replaceentry_rqst_voltype
, &voltype
);
1445 col_append_fstr (pinfo
->cinfo
, COL_INFO
, " FSID:%u/%u Name:", fsid_high
,
1448 offset
= dissect_vldbentry (tvb
, offset
, pinfo
, tree
, di
, drep
);
1455 static const dcerpc_sub_dissector fldb_dissectors
[] = {
1456 {0, "GetEntryByID", fldb_dissect_getentrybyid_rqst
,
1457 fldb_dissect_getentrybyid_resp
},
1458 {1, "GetEntryByName", fldb_dissect_getentrybyname_rqst
,
1459 fldb_dissect_getentrybyname_resp
},
1460 {2, "Probe", NULL
, NULL
},
1461 {3, "GetCellInfo", NULL
, fldb_dissect_getcellinfo_resp
},
1462 {4, "GetNextServersByID", NULL
, fldb_dissect_getnextserversbyid_resp
},
1463 {5, "GetNextServersByName", NULL
, NULL
},
1464 {6, "GetSiteInfo", fldb_dissect_getsiteinfo_rqst
,
1465 fldb_dissect_getsiteinfo_resp
},
1466 {7, "GetCEntryByID", NULL
, NULL
},
1467 {8, "GetCEntryByName", NULL
, NULL
},
1468 {9, "GetCNextServersByID", NULL
, NULL
},
1469 {10, "GetCNextServersByName", NULL
, NULL
},
1470 {11, "ExpandSiteCookie", NULL
, NULL
},
1471 {12, "GetServerInterfaces", NULL
, NULL
},
1472 {13, "CreateEntry", fldb_dissect_createentry_rqst
,
1473 fldb_dissect_createentry_resp
},
1474 {14, "DeleteEntry", fldb_dissect_deleteentry_rqst
,
1475 fldb_dissect_deleteentry_resp
},
1476 {15, "GetNewVolumeId", NULL
, NULL
},
1477 {16, "ReplaceEntry", fldb_dissect_replaceentry_rqst
,
1478 fldb_dissect_replaceentry_resp
},
1479 {17, "SetLock", fldb_dissect_setlock_rqst
, fldb_dissect_setlock_resp
},
1480 {18, "ReleaseLock", fldb_dissect_releaselock_rqst
,
1481 fldb_dissect_releaselock_resp
},
1482 {19, "ListEntry", fldb_dissect_listentry_rqst
, fldb_dissect_listentry_resp
},
1483 {20, "ListByAttributes", NULL
, NULL
},
1484 {21, "GetStats", NULL
, NULL
},
1485 {22, "AddAddress", NULL
, NULL
},
1486 {23, "RemoveAddress", NULL
, NULL
},
1487 {24, "ChangeAddress", NULL
, NULL
},
1488 {25, "GenerateSites", NULL
, NULL
},
1489 {26, "GetNewVolumeIds", fldb_dissect_getnewvolumeids_rqst
, NULL
},
1490 {27, "CreateServer", NULL
, NULL
},
1491 {28, "AlterServer", NULL
, NULL
},
1492 {0, NULL
, NULL
, NULL
},
1497 proto_register_fldb (void)
1499 static hf_register_info hf
[] = {
1500 {&hf_fldb_releaselock_rqst_fsid_low
,
1501 {"FSID releaselock Low", "fldb.releaselock_rqst_fsid_low", FT_UINT32
,
1502 BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}},
1503 {&hf_fldb_releaselock_rqst_voltype
,
1504 {"voltype", "fldb.releaselock_rqst_voltype", FT_UINT32
, BASE_DEC
,
1505 NULL
, 0x0, NULL
, HFILL
}},
1506 {&hf_fldb_releaselock_rqst_voloper
,
1507 {"voloper", "fldb.releaselock_rqst_voloper", FT_UINT32
, BASE_DEC
,
1508 NULL
, 0x0, NULL
, HFILL
}},
1509 {&hf_fldb_setlock_rqst_fsid_high
,
1510 {"FSID setlock Hi", "fldb.setlock_rqst_fsid_high", FT_UINT32
,
1511 BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}},
1512 {&hf_fldb_setlock_rqst_fsid_low
,
1513 {"FSID setlock Low", "fldb.setlock_rqst_fsid_low", FT_UINT32
,
1514 BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}},
1515 {&hf_fldb_setlock_rqst_voltype
,
1516 {"voltype", "fldb.setlock_rqst_voltype", FT_UINT32
, BASE_DEC
, NULL
,
1518 {&hf_fldb_setlock_rqst_voloper
,
1519 {"voloper", "fldb.setlock_rqst_voloper", FT_UINT32
, BASE_DEC
, NULL
,
1522 {&hf_fldb_setlock_resp_st
,
1523 {"Error", "fldb.setlock_resp_st", FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
,
1525 {&hf_fldb_setlock_resp_st2
,
1526 {"Error", "fldb.setlock_resp_st2", FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
,
1529 {&hf_fldb_listentry_rqst_previous_index
,
1530 {"Previous Index", "fldb.listentry_rqst_previous_index", FT_UINT32
,
1531 BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}},
1532 {&hf_fldb_listentry_rqst_var1
,
1533 {"Var 1", "fldb.listentry_rqst_var1", FT_UINT32
, BASE_DEC
, NULL
, 0x0,
1535 {&hf_fldb_listentry_resp_count
,
1536 {"Count", "fldb.listentry_resp_count", FT_UINT32
, BASE_DEC
, NULL
, 0x0,
1538 {&hf_fldb_listentry_resp_next_index
,
1539 {"Next Index", "fldb.listentry_resp_next_index", FT_UINT32
, BASE_DEC
,
1540 NULL
, 0x0, NULL
, HFILL
}},
1542 {&hf_fldb_listentry_resp_key_size
,
1543 {"Key Size", "fldb.listentry_resp_key_size", FT_UINT32
, BASE_DEC
,
1544 NULL
, 0x0, NULL
, HFILL
}},
1545 {&hf_fldb_listentry_resp_key_t
,
1546 {"Volume", "fldb.listentry_resp_key_t", FT_STRING
, BASE_NONE
, NULL
,
1548 {&hf_fldb_listentry_resp_voltype
,
1549 {"VolType", "fldb.listentry_resp_voltype", FT_UINT32
, BASE_HEX
, NULL
,
1551 {&hf_fldb_listentry_resp_key_size2
,
1552 {"key_size2", "fldb.listentry_resp_key_size2", FT_UINT32
, BASE_DEC
,
1553 NULL
, 0x0, NULL
, HFILL
}},
1554 {&hf_fldb_listentry_resp_key_t2
,
1555 {"Server", "fldb.listentry_resp_key_t2", FT_STRING
, BASE_NONE
, NULL
,
1557 {&hf_fldb_createentry_rqst_key_t
,
1558 {"Volume", "fldb.createentry_rqst_key_t", FT_STRING
, BASE_NONE
, NULL
,
1560 {&hf_fldb_createentry_rqst_key_size
,
1561 {"Volume Size", "fldb.createentry_rqst_key_size", FT_UINT32
, BASE_DEC
,
1562 NULL
, 0x0, NULL
, HFILL
}},
1564 {&hf_fldb_deleteentry_rqst_fsid_high
,
1565 {"FSID deleteentry Hi", "fldb.deleteentry_rqst_fsid_high", FT_UINT32
,
1566 BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}},
1567 {&hf_fldb_deleteentry_rqst_fsid_low
,
1568 {"FSID deleteentry Low", "fldb.deleteentry_rqst_fsid_low", FT_UINT32
,
1569 BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}},
1570 {&hf_fldb_deleteentry_rqst_voltype
,
1571 {"voltype", "fldb.deleteentry_rqst_voltype", FT_UINT32
, BASE_DEC
,
1572 NULL
, 0x0, NULL
, HFILL
}},
1573 {&hf_fldb_deleteentry_rqst_voloper
,
1574 {"voloper", "fldb.deleteentry_rqst_voloper", FT_UINT32
, BASE_DEC
,
1575 NULL
, 0x0, NULL
, HFILL
}},
1577 {&hf_fldb_getentrybyid_rqst_fsid_high
,
1578 {"FSID deleteentry Hi", "fldb.getentrybyid_rqst_fsid_high", FT_UINT32
,
1579 BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}},
1580 {&hf_fldb_getentrybyid_rqst_fsid_low
,
1581 {"FSID getentrybyid Low", "fldb.getentrybyid_rqst_fsid_low",
1582 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}},
1583 {&hf_fldb_getentrybyid_rqst_voltype
,
1584 {"voltype", "fldb.getentrybyid_rqst_voltype", FT_UINT32
, BASE_DEC
,
1585 NULL
, 0x0, NULL
, HFILL
}},
1586 {&hf_fldb_getentrybyid_rqst_voloper
,
1587 {"voloper", "fldb.getentrybyid_rqst_voloper", FT_UINT32
, BASE_DEC
,
1588 NULL
, 0x0, NULL
, HFILL
}},
1590 {&hf_fldb_replaceentry_rqst_fsid_high
,
1591 {"FSID replaceentry Hi", "fldb.replaceentry_rqst_fsid_high",
1592 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}},
1593 {&hf_fldb_replaceentry_rqst_fsid_low
,
1594 {"FSID replaceentry Low", "fldb.replaceentry_rqst_fsid_low",
1595 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}},
1596 {&hf_fldb_replaceentry_rqst_voltype
,
1597 {"voltype", "fldb.replaceentry_rqst_voltype", FT_UINT32
, BASE_DEC
,
1598 NULL
, 0x0, NULL
, HFILL
}},
1600 {&hf_fldb_replaceentry_rqst_key_t
,
1601 {"Key", "fldb.replaceentry_rqst_key_t", FT_STRING
, BASE_NONE
, NULL
,
1603 {&hf_fldb_replaceentry_rqst_key_size
,
1604 {"Key Size", "fldb.replaceentry_rqst_key_size", FT_UINT32
, BASE_DEC
,
1605 NULL
, 0x0, NULL
, HFILL
}},
1606 {&hf_fldb_replaceentry_resp_st
,
1607 {"Error", "fldb.replaceentry_resp_st", FT_UINT32
, BASE_DEC
, NULL
, 0x0,
1609 {&hf_fldb_replaceentry_resp_st2
,
1610 {"Error", "fldb.replaceentry_resp_st2", FT_UINT32
, BASE_DEC
, NULL
,
1612 {&hf_fldb_getentrybyname_resp_volumetype
,
1613 {"fldb_getentrybyname_resp_volumetype",
1614 "fldb.getentrybyname_resp_volumetype", FT_UINT32
, BASE_DEC
, NULL
,
1616 {&hf_fldb_getentrybyname_resp_numservers
,
1617 {"fldb_getentrybyname_resp_numservers",
1618 "fldb.getentrybyname_resp_numservers", FT_UINT32
, BASE_DEC
, NULL
,
1620 {&hf_fldb_getentrybyname_resp_sitecookies
,
1621 {"fldb_getentrybyname_resp_sitecookies",
1622 "fldb.getentrybyname_resp_sitecookies", FT_UINT32
, BASE_DEC
, NULL
,
1624 {&hf_fldb_getentrybyname_resp_sitepartition
,
1625 {"fldb_getentrybyname_resp_sitepartition",
1626 "fldb.getentrybyname_resp_sitepartition", FT_UINT32
, BASE_DEC
, NULL
,
1628 {&hf_fldb_getentrybyname_resp_siteflags
,
1629 {"fldb_getentrybyname_resp_siteflags",
1630 "fldb.getentrybyname_resp_siteflags", FT_UINT32
, BASE_DEC
, NULL
, 0x0,
1632 {&hf_fldb_getentrybyname_resp_sitemaxreplat
,
1633 {"fldb_getentrybyname_resp_sitemaxreplat",
1634 "fldb.getentrybyname_resp_sitemaxreplat", FT_UINT32
, BASE_DEC
, NULL
,
1636 {&hf_fldb_getentrybyname_resp_volid_high
,
1637 {"fldb_getentrybyname_resp_volid_high",
1638 "fldb.getentrybyname_resp_volid_high", FT_UINT32
, BASE_DEC
, NULL
,
1640 {&hf_fldb_getentrybyname_resp_volid_low
,
1641 {"fldb_getentrybyname_resp_volid_low",
1642 "fldb.getentrybyname_resp_volid_low", FT_UINT32
, BASE_DEC
, NULL
, 0x0,
1644 {&hf_fldb_getentrybyname_resp_voltype
,
1645 {"fldb_getentrybyname_resp_voltype",
1646 "fldb.getentrybyname_resp_voltype", FT_UINT32
, BASE_DEC
, NULL
, 0x0,
1648 {&hf_fldb_getentrybyname_resp_cloneid_high
,
1649 {"fldb_getentrybyname_resp_cloneid_high",
1650 "fldb.getentrybyname_resp_cloneid_high", FT_UINT32
, BASE_DEC
, NULL
,
1652 {&hf_fldb_getentrybyname_resp_cloneid_low
,
1653 {"fldb_getentrybyname_resp_cloneid_low",
1654 "fldb.getentrybyname_resp_cloneid_low", FT_UINT32
, BASE_DEC
, NULL
,
1656 {&hf_fldb_getentrybyname_resp_flags
,
1657 {"fldb_getentrybyname_resp_flags",
1658 "fldb.getentrybyname_resp_flags", FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
,
1660 {&hf_fldb_getentrybyname_resp_maxtotallat
,
1661 {"fldb_getentrybyname_resp_maxtotallat",
1662 "fldb.getentrybyname_resp_maxtotallat", FT_UINT32
, BASE_DEC
, NULL
,
1664 {&hf_fldb_getentrybyname_resp_hardmaxtotlat
,
1665 {"fldb_getentrybyname_resp_hardmaxtotlat",
1666 "fldb.getentrybyname_resp_hardmaxtotlat", FT_UINT32
, BASE_DEC
, NULL
,
1668 {&hf_fldb_getentrybyname_resp_minpouncedally
,
1669 {"fldb_getentrybyname_resp_minpouncedally",
1670 "fldb.getentrybyname_resp_minpouncedally", FT_UINT32
, BASE_DEC
, NULL
,
1672 {&hf_fldb_getentrybyname_resp_defaultmaxreplat
,
1673 {"fldb_getentrybyname_resp_defaultmaxreplat",
1674 "fldb.getentrybyname_resp_defaultmaxreplat", FT_UINT32
, BASE_DEC
,
1675 NULL
, 0x0, NULL
, HFILL
}},
1676 {&hf_fldb_getentrybyname_resp_reclaimdally
,
1677 {"fldb_getentrybyname_resp_reclaimdally",
1678 "fldb.getentrybyname_resp_reclaimdally", FT_UINT32
, BASE_DEC
, NULL
,
1680 {&hf_fldb_getentrybyname_resp_whenlocked
,
1681 {"fldb_getentrybyname_resp_whenlocked",
1682 "fldb.getentrybyname_resp_whenlocked", FT_UINT32
, BASE_DEC
, NULL
,
1684 {&hf_fldb_getentrybyname_resp_spare1
,
1685 {"fldb_getentrybyname_resp_spare1",
1686 "fldb.getentrybyname_resp_spare1", FT_UINT32
, BASE_DEC
, NULL
, 0x0,
1688 {&hf_fldb_getentrybyname_resp_spare2
,
1689 {"fldb_getentrybyname_resp_spare2",
1690 "fldb.getentrybyname_resp_spare2", FT_UINT32
, BASE_DEC
, NULL
, 0x0,
1692 {&hf_fldb_getentrybyname_resp_spare3
,
1693 {"fldb_getentrybyname_resp_spare3",
1694 "fldb.getentrybyname_resp_spare3", FT_UINT32
, BASE_DEC
, NULL
, 0x0,
1696 {&hf_fldb_getentrybyname_resp_spare4
,
1697 {"fldb_getentrybyname_resp_spare4",
1698 "fldb.getentrybyname_resp_spare4", FT_UINT32
, BASE_DEC
, NULL
, 0x0,
1700 {&hf_fldb_getentrybyname_resp_key_t
,
1701 {"fldb_getentrybyname_resp_key_t",
1702 "fldb.getentrybyname_resp_key_t", FT_STRING
, BASE_NONE
, NULL
, 0x0,
1704 {&hf_fldb_getentrybyname_resp_key_size
,
1705 {"fldb_getentrybyname_resp_key_size",
1706 "fldb.getentrybyname_resp_key_size", FT_UINT32
, BASE_DEC
, NULL
, 0x0,
1708 {&hf_fldb_getentrybyname_resp_test
,
1709 {"fldb_getentrybyname_resp_test", "fldb.getentrybyname_resp_test",
1710 FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}},
1712 {&hf_fldb_releaselock_rqst_fsid_high
,
1713 {"FSID releaselock Hi", "fldb.releaselock_rqst_fsid_high", FT_UINT32
,
1714 BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}},
1716 {"Operation", "fldb.opnum", FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
,
1718 {&hf_fldb_vldbentry_volumename
,
1719 {"VolumeName", "fldb.vldbentry.volumename", FT_STRING
, BASE_NONE
, NULL
, 0x0,
1721 {&hf_fldb_vldbentry_volumetype
,
1722 {"VolumeType", "fldb.vldbentry.volumetype", FT_UINT32
, BASE_DEC
, NULL
, 0x0,
1724 {&hf_fldb_vldbentry_nservers
,
1725 {"Number of Servers", "fldb.vldbentry.nservers", FT_UINT32
, BASE_DEC
, NULL
,
1727 {&hf_fldb_afsnetaddr_type
,
1728 {"Type", "fldb.afsnetaddr.type", FT_UINT16
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}},
1729 {&hf_fldb_afsnetaddr_data
,
1730 {"IP Data", "fldb.afsnetaddr.data", FT_UINT8
, BASE_DEC
, NULL
, 0x0, NULL
,
1732 {&hf_fldb_vldbentry_sitepartition
,
1733 {"Site Partition", "fldb.vldbentry.sitepartition", FT_UINT32
, BASE_DEC
, NULL
,
1735 {&hf_fldb_siteflags
,
1736 {"Site Flags", "fldb.vldbentry.siteflags", FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
,
1738 {&hf_fldb_vldbentry_sitemaxreplicalatency
,
1739 {"Site Max Replica Latench", "fldb.vldbentry.sitemaxreplatency", FT_UINT32
,
1740 BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}},
1741 {&hf_fldb_vldbentry_siteprincipal
,
1742 {"Principal Name", "fldb.vldbentry.siteprincipal", FT_STRING
, BASE_NONE
, NULL
,
1744 {&hf_fldb_vldbentry_siteowner
,
1745 {"Site Owner", "fldb.vldbentry.siteowner", FT_GUID
, BASE_NONE
, NULL
, 0x0,
1747 {&hf_fldb_vldbentry_siteobjid
,
1748 {"Site Object ID", "fldb.vldbentry.siteobjid", FT_GUID
, BASE_NONE
, NULL
,
1749 0x0, "UUID", HFILL
}},
1750 {&hf_fldb_vldbentry_volids_high
,
1751 {"VolIDs high", "fldb.vldbentry.volidshigh", FT_UINT32
, BASE_DEC
, NULL
, 0x0,
1753 {&hf_fldb_vldbentry_volids_low
,
1754 {"VolIDs low", "fldb.vldbentry.volidslow", FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
,
1756 {&hf_fldb_vldbentry_voltypes
,
1757 {"VolTypes", "fldb.vldbentry.voltypes", FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
,
1759 {&hf_fldb_vldbentry_cloneid_high
,
1760 {"CloneID High", "fldb.vldbentry.cloneidhigh", FT_UINT32
, BASE_DEC
, NULL
, 0x0,
1762 {&hf_fldb_vldbentry_cloneid_low
,
1763 {"CloneID Low", "fldb.vldbentry.cloneidlow", FT_UINT32
, BASE_DEC
, NULL
, 0x0,
1765 {&hf_fldb_afsflags_flags
,
1766 {"AFS Flags", "fldb.vldbentry.afsflags", FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
,
1768 {&hf_fldb_vldbentry_maxtotallatency
,
1769 {"Max Total Latency", "fldb.vldbentry.maxtotallatency", FT_UINT32
, BASE_DEC
,
1770 NULL
, 0x0, NULL
, HFILL
}},
1771 {&hf_fldb_vldbentry_hardmaxtotallatency
,
1772 {"Hard Max Total Latency", "fldb.vldbentry.hardmaxtotallatency", FT_UINT32
,
1773 BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}},
1774 {&hf_fldb_vldbentry_minimumpouncedally
,
1775 {"Minimum Pounce Dally", "fldb.vldbentry.minimumpouncedally", FT_UINT32
,
1776 BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}},
1777 {&hf_fldb_vldbentry_defaultmaxreplicalatency
,
1778 {"Default Max Replica Latency", "fldb.vldbentry.defaultmaxreplicalatency",
1779 FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}},
1780 {&hf_fldb_vldbentry_reclaimdally
,
1781 {"Reclaim Dally", "fldb.vldbentry.reclaimdally", FT_UINT32
, BASE_DEC
, NULL
,
1783 {&hf_fldb_vldbentry_whenlocked
,
1784 {"When Locked", "fldb.vldbentry.whenlocked", FT_UINT32
, BASE_DEC
, NULL
, 0x0,
1786 {&hf_fldb_vldbentry_spare1
,
1787 {"Spare 1", "fldb.vldbentry.spare1", FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
,
1789 {&hf_fldb_vldbentry_spare2
,
1790 {"Spare 2", "fldb.vldbentry.spare2", FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
,
1792 {&hf_fldb_vldbentry_spare3
,
1793 {"Spare 3", "fldb.vldbentry.spare3", FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
,
1795 {&hf_fldb_vldbentry_spare4
,
1796 {"Spare 4", "fldb.vldbentry.spare4", FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
,
1798 {&hf_fldb_vldbentry_lockername
,
1799 {"Locker Name", "fldb.vldbentry.lockername", FT_STRING
, BASE_NONE
, NULL
, 0x0,
1801 {&hf_fldb_vldbentry_charspares
,
1802 {"Char Spares", "fldb.vldbentry.charspares", FT_STRING
, BASE_NONE
, NULL
, 0x0,
1804 {&hf_fldb_vlconf_cell_name
,
1805 {"Name", "fldb.vlconf.name", FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
, HFILL
}},
1806 {&hf_fldb_vlconf_cell_cellid_high
,
1807 {"CellID High", "fldb.vlconf.cellidhigh", FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
,
1809 {&hf_fldb_vlconf_cell_cellid_low
,
1810 {"CellID Low", "fldb.vlconf.cellidlow", FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
,
1812 {&hf_fldb_vlconf_cell_numservers
,
1813 {"Number of Servers", "fldb.vlconf.numservers", FT_UINT32
, BASE_DEC
, NULL
,
1815 {&hf_fldb_vlconf_cell_hostname
,
1816 {"hostName", "fldb.vlconf.hostname", FT_STRING
, BASE_NONE
, NULL
, 0x0, NULL
,
1818 {&hf_fldb_vlconf_cell_spare1
,
1819 {"Spare1", "fldb.vlconf.spare1", FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}},
1820 {&hf_fldb_vlconf_cell_spare2
,
1821 {"Spare2", "fldb.vlconf.spare2", FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}},
1822 {&hf_fldb_vlconf_cell_spare3
,
1823 {"Spare3", "fldb.vlconf.spare3", FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}},
1824 {&hf_fldb_vlconf_cell_spare4
,
1825 {"Spare4", "fldb.vlconf.spare4", FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}},
1826 {&hf_fldb_vlconf_cell_spare5
,
1827 {"Spare5", "fldb.vlconf.spare5", FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}},
1829 {"flagsp", "fldb.flagsp", FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}},
1830 {&hf_fldb_nextstartp
,
1831 {"nextstartp", "fldb.nextstartp", FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
,
1833 {&hf_fldb_afsNameString_t_principalName_size
,
1834 {"Principal Name Size", "fldb.principalName_size", FT_UINT32
, BASE_DEC
,
1835 NULL
, 0x0, NULL
, HFILL
}},
1837 {&hf_fldb_afsNameString_t_principalName_size2
,
1838 {"Principal Name Size2", "fldb.principalName_size2", FT_UINT32
, BASE_DEC
,
1839 NULL
, 0x0, NULL
, HFILL
}},
1841 {&hf_fldb_afsNameString_t_principalName_string
,
1842 {"Principal Name", "fldb.NameString_principal", FT_STRING
, BASE_NONE
,
1843 NULL
, 0x0, NULL
, HFILL
}},
1844 {&hf_fldb_namestring
,
1845 {"Name string", "fldb.NameString", FT_STRING
, BASE_NONE
, NULL
,
1848 {&hf_dcerpc_error_status
,
1849 {"Error Status", "fldb.error_status", FT_UINT32
, BASE_DEC
, NULL
,
1853 {"Error Status 2", "fldb.error_st", FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
,
1855 {&hf_fldb_creationquota
,
1856 {"creation quota", "fldb.creationquota", FT_UINT32
, BASE_DEC
, NULL
, 0x0,
1858 {&hf_fldb_creationuses
,
1859 {"creation uses", "fldb.creationuses", FT_UINT32
, BASE_DEC
, NULL
, 0x0,
1861 {&hf_fldb_deletedflag
,
1862 {"deletedflag", "fldb.deletedflag", FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
,
1865 {&hf_fldb_getentrybyname_rqst_key_size
,
1866 {"getentrybyname", "fldb.getentrybyname_rqst_key_size", FT_UINT32
,
1867 BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}},
1868 {&hf_fldb_getentrybyname_rqst_var1
,
1869 {"getentrybyname var1", "fldb.getentrybyname_rqst_var1", FT_UINT32
,
1870 BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}},
1871 {&hf_fldb_namestring_size
,
1872 {"namestring size", "fldb.namestring_size", FT_UINT32
, BASE_DEC
, NULL
,
1875 {&hf_fldb_numwanted
,
1876 {"number wanted", "fldb.numwanted", FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
,
1879 {"spare2", "fldb.spare2", FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}},
1881 {"spare3", "fldb.spare3", FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}},
1883 {"spare4", "fldb.spare4", FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}},
1885 {"spare5", "fldb.spare5", FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}},
1886 {&hf_fldb_uuid_objid
,
1887 {"objid", "fldb.uuid_objid", FT_GUID
, BASE_NONE
, NULL
, 0x0, "UUID",
1889 {&hf_fldb_uuid_owner
,
1890 {"owner", "fldb.uuid_owner", FT_GUID
, BASE_NONE
, NULL
, 0x0, "UUID",
1892 {&hf_fldb_volid_high
,
1893 {"volid high", "fldb.volid_high", FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
,
1895 {&hf_fldb_volid_low
,
1896 {"volid low", "fldb.volid_low", FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
,
1899 {"voltype", "fldb.voltype", FT_UINT32
, BASE_DEC
, NULL
, 0x0, NULL
, HFILL
}},
1902 static int *ett
[] = {
1904 &ett_fldb_vldbentry
,
1905 &ett_fldb_afsnetaddr
,
1906 &ett_fldb_siteflags
,
1908 &ett_fldb_vlconf_cell
,
1909 &ett_fldb_afsNameString_t
,
1912 proto_fldb
= proto_register_protocol ("DCE DFS Fileset Location Server", "FLDB", "fldb");
1913 proto_register_field_array (proto_fldb
, hf
, array_length (hf
));
1914 proto_register_subtree_array (ett
, array_length (ett
));
1919 proto_reg_handoff_fldb (void)
1921 /* Register the protocol as dcerpc */
1922 dcerpc_init_uuid (proto_fldb
, ett_fldb
, &uuid_fldb
, ver_fldb
,
1923 fldb_dissectors
, hf_fldb_opnum
);
1927 * Editor modelines - https://www.wireshark.org/tools/modelines.html
1932 * indent-tabs-mode: nil
1935 * ex: set shiftwidth=2 tabstop=8 expandtab:
1936 * :indentSize=2:tabSize=8:noTabs=true: