2 * Routines for VMware HeartBeat dissection
3 * Copyright 2023, Alexis La Goutte <alexis.lagoutte at gmail dot com>
5 * Wireshark - Network traffic analyzer
6 * By Gerald Combs <gerald@wireshark.org>
7 * Copyright 1998 Gerald Combs
9 * SPDX-License-Identifier: GPL-2.0-or-later
11 * No spec/doc is available based on reverse/analysis of protocol...
17 #include <wireshark.h>
19 #include <epan/packet.h>
20 #include <epan/expert.h>
21 #include <epan/prefs.h>
22 #include <epan/etypes.h>
24 void proto_reg_handoff_vmware_hb(void);
25 void proto_register_vmware_hb(void);
27 static int proto_vmware_hb
;
28 static int hf_vmware_hb_magic
;
29 static int hf_vmware_hb_build_number
;
30 static int hf_vmware_hb_server_id
;
31 static int hf_vmware_hb_host_key_length
;
32 static int hf_vmware_hb_host_key
;
33 static int hf_vmware_hb_change_gen
;
34 static int hf_vmware_hb_spec_gen
;
35 static int hf_vmware_hb_bundle_version
;
36 static int hf_vmware_hb_heartbeat_counter
;
37 static int hf_vmware_hb_ip4_address_length
;
38 static int hf_vmware_hb_ip4_address
;
39 static int hf_vmware_hb_verification_signature
;
41 static dissector_handle_t vmware_hb_handle
;
43 static int ett_vmware_hb
;
45 static const value_string vmware_hb_build_number
[] = {
46 { 164009, "ESXi 4.0.0 GA" },
47 { 175625, "ESXi 4.0.0 Patch 1" },
48 { 181792, "ESXi 4.0.0 Patch 2" },
49 { 193498, "ESXi 4.0.0 Patch 3" },
50 { 208167, "ESXi 4.0.0 U1" },
51 { 219382, "ESXi 4.0.0 Patch 4" },
52 { 236512, "ESXi 4.0.0 Patch 5" },
53 { 244038, "ESXi 4.0.0 Patch 6" },
54 { 256968, "ESXi 4.0.0 Patch 7" },
55 { 260247, "ESXi 4.1.0 GA" },
56 { 261974, "ESXi 4.0.0 U2" },
57 { 294855, "ESXi 4.0.0 Patch 8" },
58 { 320092, "ESXi 4.1.0 Patch 1" },
59 { 320137, "ESXi 4.1.0 Express Patch 1" },
60 { 332073, "ESXi 4.0.0 Patch 9" },
61 { 348481, "ESXi 4.1.0 U1" },
62 { 360236, "ESXi 4.0.0 Patch 10" },
63 { 381591, "ESXi 4.1.0 Patch 2" },
64 { 392990, "ESXi 4.0.0 Patch 11" },
65 { 398348, "ESXi 4.0.0 U3" },
66 { 433742, "ESXi 4.1.0 Patch 3" },
67 { 469512, "ESXi 5.0.0" },
68 { 474610, "ESXi 5.0.0 Patch 1" },
69 { 480973, "ESXi 4.0.0 Patch 12" },
70 { 502767, "ESXi 4.1.0 U2" },
71 { 504850, "ESXi 4.0.0 U4" },
72 { 504890, "ESXi 5.0.0 Express Patch 1" },
73 { 515841, "ESXi 5.0.0 Patch 2" },
74 { 582267, "ESXi 4.1.0 Patch 4" },
75 { 608089, "ESXi 5.0.0 Update 1 (Security Only)" },
76 { 623860, "ESXi 5.0.0 Update 1" },
77 { 653509, "ESXi 5.0.0 Express Patch 2" },
78 { 659051, "ESXi 4.1.0 Patch 5" },
79 { 660575, "ESXi 4.0.0 Patch 13" },
80 { 702113, "ESXi 4.1.0 Express Patch 2" },
81 { 702116, "ESXi 4.0.0 Patch 14" },
82 { 702118, "ESXi 5.0.0 Express Patch 3" },
83 { 721871, "ESXi 4.1.0 Express Patch 3" },
84 { 721882, "ESXi 5.0.0 Express Patch 4" },
85 { 721907, "ESXi 4.0.0 Patch 15" },
86 { 764879, "ESXi 5.0.0 Patch 3 (Security Only)" },
87 { 768111, "ESXi 5.0.0 Patch 3" },
88 { 787047, "ESXi 4.0.0 Patch 16" },
89 { 799733, "ESXi 5.1.0 GA" },
90 { 800380, "ESXi 4.1.0 U3" },
91 { 821926, "ESXi 5.0.0 Patch 4" },
92 { 822948, "ESXi 5.0.0 Patch 4 (Security Only)" },
93 { 837262, "PP Hot-Patch" },
94 { 838463, "ESXi 5.1.0a" },
95 { 874690, "ESXi 4.1.0 Patch 6" },
96 { 911593, "ESXi 5.1.0 Patch 1 (Security Only)" },
97 { 912577, "ESXi 5.0.0 Update 2 (Security Only)" },
98 { 914586, "ESXi 5.0.0 Update 2" },
99 { 914609, "ESXi 5.1.0 Patch 1" },
100 { 988178, "ESXi 4.1.0 Patch 7" },
101 { 989856, "ESXi 4.0.0 Patch 17" },
102 { 1021289, "ESXi 5.1.0 Express Patch 2" },
103 { 1022489, "ESXi 5.0.0 Patch 5 (Security Only)" },
104 { 1024429, "ESXi 5.0.0 Patch 5" },
105 { 1050704, "ESXi 4.1.0 Patch 8" },
106 { 1063671, "ESXi 5.1.0 Update 1 (Security Only)" },
107 { 1065491, "ESXi 5.1.0 Update 1" },
108 { 1070634, "ESXi 4.0.0 Patch 18" },
109 { 1117897, "ESXi 5.0.0 Express Patch 5" },
110 { 1117900, "ESXi 5.1.0 Express Patch 3" },
111 { 1142907, "ESXi 5.1.0 Patch 2 (Security Only)" },
112 { 1157734, "ESXi 5.1.0 Patch 2" },
113 { 1197855, "ESXi 5.0.0 Patch 6 (Security Only)" },
114 { 1198252, "ESXi 4.1.0 Patch 9" },
115 { 1254542, "ESXi 5.0.0 Patch 6" },
116 { 1311175, "ESXi 5.0.0 Update 3" },
117 { 1311177, "ESXi 5.0.0 Update 3 (Security Only)" },
118 { 1312873, "ESXi 5.1.0 Patch 3" },
119 { 1312874, "ESXi 5.1.0 Patch 3 (Security Only)" },
120 { 1331820, "ESXi 5.5 GA" },
121 { 1335992, "ESXi 4.0.0 Patch 19" },
122 { 1363503, "ESXi 4.1.0 Patch 10" },
123 { 1439689, "vSAN Beta Refresh" },
124 { 1472666, "ESXi 5.1.0 Update 2 (Security Only)" },
125 { 1474526, "ESXi 5.5 Patch 1 (Security Only)" },
126 { 1474528, "ESXi 5.5 Patch 1" },
127 { 1478905, "ESXi 5.0.0 Patch 7 (Security Only)" },
128 { 1483097, "ESXi 5.1.0 Update 2" },
129 { 1489271, "ESXi 5.0.0 Patch 7" },
130 { 1598313, "ESXi 5.5 Update 1 (Security Only)" },
131 { 1612806, "ESXi 5.1.0 Express Patch 4" },
132 { 1623387, "ESXi 5.5 Update 1" },
133 { 1636597, "VMware ESXi 5.5.1 Driver Rollup" },
134 { 1682696, "ESXi 4.0.0 Patch 20" },
135 { 1682698, "ESXi 4.1.0 Patch 11" },
136 { 1743201, "ESXi 5.1.0 Patch 4 (Security Only)" },
137 { 1743533, "ESXi 5.1.0 Patch 4" },
138 { 1746018, "ESXi 5.5 Update 1a" },
139 { 1746974, "ESXi 5.5 Express Patch 3" },
140 { 1749766, "ESXi 5.0.0 Patch 8 (Security Only)" },
141 { 1851670, "ESXi 5.0.0 Patch 8" },
142 { 1881737, "ESXi 5.5 Express Patch 4" },
143 { 1892623, "ESXi 5.5 Patch 2 (Security Only)" },
144 { 1892794, "ESXi 5.5 Patch 2" },
145 { 1900470, "ESXi 5.1.0 Express Patch 5" },
146 { 1904929, "ESXi 5.1.0 Patch 5 (Security Only)" },
147 { 1918656, "ESXi 5.0.0 Express Patch 6" },
148 { 1979317, "ESXi 5.0.0 Patch 9 (Security Only)" },
149 { 1980513, "ESXi 5.5 Update 2 (Security Only)" },
150 { 2000251, "ESXi 5.1.0 Patch 5" },
151 { 2000308, "ESXi 5.0.0 Patch 9" },
152 { 2068190, "ESXi 5.5 Update 2" },
153 { 2093874, "ESXi 5.5 Patch 3 (Security Only)" },
154 { 2143827, "ESXi 5.5 Patch 3" },
155 { 2191354, "ESXi 5.1.0 Patch 6 (Security Only)" },
156 { 2191751, "ESXi 5.1.0 Patch 6" },
157 { 2216931, "ESXi 5.0.0 Patch 10 (Security Only)" },
158 { 2302651, "ESXi 5.5 Express Patch 5" },
159 { 2312428, "ESXi 5.0.0 Patch 10" },
160 { 2323231, "ESXi 5.1.0 Update 3 (Security Only)" },
161 { 2323236, "ESXi 5.1.0 Update 3" },
162 { 2352327, "ESXi 5.5 Patch 4 (Security Only)" },
163 { 2403361, "ESXi 5.5 Patch 4" },
164 { 2456374, "ESXi 5.5 Express Patch 6" },
165 { 2486588, "ESXi 5.0.0 Patch 11 (Security Only)" },
166 { 2494585, "ESXi 6.0 GA" },
167 { 2509828, "ESXi 5.0.0 Patch 11" },
168 { 2575044, "ESXi 5.1.0 Patch 7 (Security Only)" },
169 { 2583090, "ESXi 5.1.0 Patch 7" },
170 { 2615704, "ESXi 6.0 Express Patch 1" },
171 { 2638301, "ESXi 5.5 Express Patch 7" },
172 { 2702864, "ESXi 5.5 Patch 5 (Recalled)" },
173 { 2702869, "ESXi 5.5 Patch 5 (Security Only)" },
174 { 2715440, "ESXi 6.0 Express Patch 2" },
175 { 2718055, "ESXi 5.5 Patch 5 re-release" },
176 { 2809111, "ESXi 6.0b (Security Only)" },
177 { 2809209, "ESXi 6.0b" },
178 { 3017641, "ESXi 6.0 Update 1 (Security only)" },
179 { 3021178, "ESXi 5.1.0 Patch 8 (Security Only)" },
180 { 3021432, "ESXi 5.0.0 Patch 12 (Security Only)" },
181 { 3029758, "ESXi 6.0 Update 1" },
182 { 3029837, "ESXi 5.5 Update 3 (Security Only)" },
183 { 3029944, "ESXi 5.5 Update 3" },
184 { 3070626, "ESXi 5.1.0 Patch 8" },
185 { 3073146, "ESXi 6.0 Update 1a" },
186 { 3086167, "ESXi 5.0.0 Patch 12" },
187 { 3116895, "ESXi 5.5 Update 3a" },
188 { 3247226, "ESXi 5.5 Update 3b (Security Only)" },
189 { 3247720, "ESXi 6.0 Express Patch 4" },
190 { 3248547, "ESXi 5.5 Update 3b" },
191 { 3341439, "ESXi 6.0 Update 1b (Security only)" },
192 { 3343343, "ESXi 5.5 Express Patch 9" },
193 { 3380124, "ESXi 6.0 Update 1b" },
194 { 3568722, "ESXi 5.5 Express Patch 10" },
195 { 3568940, "ESXi 6.0 Express Patch 5" },
196 { 3568943, "ESXi 6.0 Update 2 (Security Only)" },
197 { 3620759, "ESXi 6.0 Update 2" },
198 { 3825889, "ESXi 6.0 Express Patch 6" },
199 { 3872638, "ESXi 5.1.0 Patch 9" },
200 { 3872664, "ESXi 5.1.0 Patch 9" },
201 { 3982819, "ESXi 5.0.0 Patch 13 (Security Only)" },
202 { 3982828, "ESXi 5.0.0 Patch 13" },
203 { 4179598, "ESXi 6.0 Patch 3 (Security Only)" },
204 { 4179631, "ESXi 5.5 Patch 8 (Security only)" },
205 { 4179633, "ESXi 5.5 Patch 8" },
206 { 4192238, "ESXi 6.0 Patch 3" },
207 { 4345810, "ESXi 5.5 Patch 9 (Security only)" },
208 { 4345813, "ESXi 5.5 Patch 9" },
209 { 4510822, "ESXi 6.0 Express Patch 7" },
210 { 4558694, "ESXi 6.0 Patch 4 (Security Only)" },
211 { 4564106, "ESXi 6.5 GA" },
212 { 4600944, "ESXi 6.0 Patch 4" },
213 { 4722766, "ESXi 5.5 Patch 10" },
214 { 4756874, "ESXi 5.5 Patch 10 (Security only)" },
215 { 4887370, "ESXi 6.5a" },
216 { 5047589, "ESXi 6.0 Update 3 (Security Only)" },
217 { 5050593, "ESXi 6.0 Update 3" },
218 { 5146843, "ESXi 6.5 Patch 1 (Security Only)" },
219 { 5146846, "ESXi 6.5 Patch 1" },
220 { 5224529, "ESXi 6.5 Express Patch 1a" },
221 { 5224934, "ESXi 6.0 Express Patch 7a" },
222 { 5230635, "ESXi 5.5 Express Patch 11" },
223 { 5251621, "ESXi 6.0 Update 1 (VMSA-2017-0006)" },
224 { 5251623, "ESXi 6.0 Update 2 (VMSA-2017-0006)" },
225 { 5310538, "ESXi 6.5d (vSAN 6.6 Patch)" },
226 { 5485776, "ESXi 6.0 Update 3a (Patch 5) (Security Only)" },
227 { 5572656, "ESXi 6.0 Update 3a (Patch 5)" },
228 { 5969300, "ESXi 6.5 Update 1 (Security only)" },
229 { 5969303, "ESXi 6.5 Update 1" },
230 { 6480267, "ESXi 5.5 Patch 11 (Security only)" },
231 { 6480324, "ESXi 5.5 Patch 11" },
232 { 6765062, "ESXi 6.0 Express Patch 11" },
233 { 6765664, "ESXi 6.5 Express Patch 4" },
234 { 6856897, "ESXi 6.0 Patch 6 (Security Only)" },
235 { 6921384, "ESXi 6.0 Patch 6" },
236 { 7273056, "ESXi 6.5 Patch 2 (Security only)" },
237 { 7388607, "ESXi 6.5 Patch 2" },
238 { 7504623, "ESXi 5.5 U3g (Recalled)" },
239 { 7504637, "ESXi 6.0 U3d (Recalled)" },
240 { 7526125, "ESXi 6.5 U1e (Recalled)" },
241 { 7618464, "ESXi 5.5 U3h" },
242 { 7967571, "ESXi 5.5 U3h" },
243 { 7967591, "ESXi 6.5 U1g" },
244 { 7967664, "ESXi 6.0 U3e" },
245 { 8169922, "ESXi 6.7 GA" },
246 { 8285314, "ESXi 6.5 Update 2 (Security only)" },
247 { 8294253, "ESXi 6.5 Update 2" },
248 { 8934887, "ESXi 5.5 U3i" },
249 { 8934903, "ESXi 6.0 U3f" },
250 { 8935087, "ESXi 6.5 U2b" },
251 { 8941472, "ESXi 6.7 Express Patch 2" },
252 { 9214924, "ESXi 6.7 Express Patch 2a" },
253 { 9239792, "ESXi 6.0 Patch 7 (Security only)" },
254 { 9239799, "ESXi 6.0 Patch 7" },
255 { 9298722, "ESXi 6.5 U2c" },
256 { 9313066, "ESXi 5.5 U3j" },
257 { 9313334, "ESXi 6.0 Express Patch 15" },
258 { 9484548, "ESXi 6.7 Express Patch 3" },
259 { 9919047, "ESXi 5.5 U3k" },
260 { 9919195, "ESXi 6.0 Express Patch 17" },
261 { 10175896, "ESXi 6.5 Express Patch 9" },
262 { 10176752, "ESXi 6.7 Express Patch 4" },
263 { 10176879, "ESXi 6.7 Update 1 (Security only)" },
264 { 10302608, "ESXi 6.7 Update 1" },
265 { 10390116, "ESXi 6.5 Express Patch 10" },
266 { 10474991, "ESXi 6.0 Express Patch 18" },
267 { 10719125, "ESXi 6.5 Express Patch 11" },
268 { 10719132, "ESXi 6.0 Express Patch 19" },
269 { 10764712, "ESXi 6.7 Express Patch 5" },
270 { 10868328, "ESXi 6.5 Patch 3 (Security only)" },
271 { 10884925, "ESXi 6.5 Patch 3" },
272 { 11675023, "ESXi 6.7 Express Patch 6" },
273 { 11925212, "ESXi 6.5 Express Patch 12" },
274 { 12986307, "ESXi 6.7 Update 2 (Security Only)" },
275 { 13003896, "ESXi 6.0 Express Patch 20" },
276 { 13004031, "ESXi 6.5 Express Patch 13" },
277 { 13004448, "ESXi 6.7 Express Patch 7" },
278 { 13006603, "ESXi 6.7 Update 2" },
279 { 13473784, "ESXi 6.7 Express Patch 8" },
280 { 13635687, "ESXi 6.0 Express Patch 21" },
281 { 13635690, "ESXi 6.5 Express Patch 14" },
282 { 13644319, "ESXi 6.7 Express Patch 9" },
283 { 13873656, "ESXi 6.5 Update 3 (Security Only)" },
284 { 13932383, "ESXi 6.5 Update 3" },
285 { 13981272, "ESXi 6.7 Express Patch 10" },
286 { 14141615, "ESXi 6.7 Update 3 (Security Only)" },
287 { 14320388, "ESXi 6.7 Update 3" },
288 { 14320405, "ESXi 6.5 Express Patch 15" },
289 { 14513180, "ESXi 6.0 Patch 8" },
290 { 14516143, "ESXi 6.0 Patch 8 (Security Only)" },
291 { 14874964, "ESXi 6.5 Express Patch 16" },
292 { 14990892, "ESXi 6.5 Express Patch 17" },
293 { 15018017, "ESXi 6.7 Express Patch 13" },
294 { 15018929, "ESXi 6.0 Express Patch 22" },
295 { 15160138, "ESXi 6.7 Patch 1" },
296 { 15169789, "ESXi 6.0 Express Patch 23" },
297 { 15177306, "ESXi 6.5 Express Patch 18" },
298 { 15256549, "ESXi 6.5 Patch 4" },
299 { 15517548, "ESXi 6.0 Express Patch 25" },
300 { 15820472, "ESXi 6.7 Express Patch 14" },
301 { 15843807, "ESXi 7.0 GA" },
302 { 15999342, "ESXi 6.7 Patch 2 (Security Only)" },
303 { 16075168, "ESXi 6.7 Patch 2" },
304 { 16207673, "ESXi 6.5 Express Patch 19" },
305 { 16316930, "ESXi 6.7 Express Patch 15" },
306 { 16321839, "ESXi 7.0b (Security Only)" },
307 { 16324942, "ESXi 7.0b" },
308 { 16389870, "ESXi 6.5 Express Patch 20" },
309 { 16576879, "ESXi 6.5 Patch 5 (Security Only)" },
310 { 16576891, "ESXi 6.5 Patch 5" },
311 { 16701467, "ESXi 6.7 Patch 3 (Security Only)" },
312 { 16713306, "ESXi 6.7 Patch 3" },
313 { 16773714, "ESXi 6.7 Express Patch 16" },
314 { 16850804, "ESXi 7.0 Update 1" },
315 { 16901156, "ESXi 6.5 Express Patch 21" },
316 { 16966451, "ESXi 7.0 for ARM Fling v1.0" },
317 { 17068872, "ESXi 7.0 for ARM Fling v1.1" },
318 { 17097218, "ESXi 6.5 Express Patch 22" },
319 { 17098360, "ESXi 6.7 Express Patch 17" },
320 { 17119627, "ESXi 7.0 Update 1a" },
321 { 17167537, "ESXi 6.5 Express Patch 23" },
322 { 17167699, "ESXi 6.7 Patch 4 (Security Only)" },
323 { 17167734, "ESXi 6.7 Patch 4" },
324 { 17168206, "ESXi 7.0 Update 1b" },
325 { 17230755, "ESXi 7.0 for ARM Fling v1.2" },
326 { 17325020, "ESXi 7.0 Update 1c (Security Only)" },
327 { 17325551, "ESXi 7.0 Update 1c" },
328 { 17459147, "ESXi 6.5 Patch 6 (Security Only)" },
329 { 17477841, "ESXi 6.5 Patch 6" },
330 { 17499825, "ESXi 6.7 Express Patch 18" },
331 { 17551050, "ESXi 7.0 Update 1d" },
332 { 17630552, "ESXi 7.0 Update 2" },
333 { 17700514, "ESXi 6.7 Patch 5 (Security Only)" },
334 { 17700523, "ESXi 6.7 Patch 5" },
335 { 17839012, "ESXi 7.0 for ARM Fling v1.3" },
336 { 17867351, "ESXi 7.0 Update 2a" },
337 { 18071574, "ESXi 6.5 Express Patch 24" },
338 { 18175197, "ESXi 7.0 for ARM Fling v1.4" },
339 { 18295176, "ESXi 7.0 Update 2c (Security Only)" },
340 { 18426014, "ESXi 7.0 Update 2c" },
341 { 18427252, "ESXi 7.0 for ARM Fling v1.5" },
342 { 18538813, "ESXi 7.0 Update 2d" },
343 { 18644231, "ESXi 7.0 Update 3" },
344 { 18677441, "ESXi 6.5 Patch 7 (Security Only)" },
345 { 18678235, "ESXi 6.5 Patch 7" },
346 { 18812553, "ESXi 6.7 Patch 6 (Security Only)" },
347 { 18825058, "ESXi 7.0 Update 3a" },
348 { 18828794, "ESXi 6.7 Patch 6" },
349 { 18905247, "ESXi 7.0 Update 3b" },
350 { 19025766, "ESXi 7.0 for ARM Fling v1.7" },
351 { 19076756, "ESXi 7.0 for ARM Fling v1.8" },
352 { 19092475, "ESXi 6.5 February 2022 Patch" },
353 { 19193900, "ESXi 7.0 Update 3c" },
354 { 19195723, "ESXi 6.7 Express Patch 23" },
355 { 19290878, "ESXi 7.0 Update 2e" },
356 { 19324898, "ESXi 7.0 Update 1e" },
357 { 19482531, "ESXi 7.0 Update 3d (Security Only)" },
358 { 19482537, "ESXi 7.0 Update 3d" },
359 { 19546333, "ESXi 7.0 for ARM Fling v1.9" },
360 { 19581852, "ESXi 6.5 May 2022 (Security Only)" },
361 { 19588618, "ESXi 6.5 May 2022" },
362 { 19898894, "ESXi 6.7 June 2022 Patch (Security Only)" },
363 { 19898904, "ESXi 7.0 Update 3e" },
364 { 19898906, "ESXi 6.7 June 2022 Patch" },
365 { 19997716, "ESXi 6.5 July 2022" },
366 { 19997733, "ESXi 6.7 July 2022 Patch" },
367 { 20036586, "ESXi 7.0 Update 3f (Security Only)" },
368 { 20036589, "ESXi 7.0 Update 3f" },
369 { 20133114, "ESXi 7.0 for ARM Fling v1.10" },
370 { 20328353, "ESXi 7.0 Update 3g" },
371 { 20448942, "ESXi 6.5 October 2022 (Security Only)" },
372 { 20491463, "ESXi 6.7 October 2022 Patch (Security Only)" },
373 { 20497097, "ESXi 6.7 October 2022 Patch" },
374 { 20502893, "ESXi 6.5 October 2022" },
375 { 20513097, "ESXi 8.0 IA" },
376 { 20693597, "ESXi 7.0 for ARM Fling v1.11" },
377 { 20841705, "ESXi 7.0 Update 3i (Security Only)" },
378 { 20842708, "ESXi 7.0 Update 3i" },
379 { 20842819, "ESXi 8.0a" },
380 { 21053776, "ESXi 7.0 Update 3j" },
381 { 21203431, "ESXi 8.0b (Security Only)" },
382 { 21203435, "ESXi 8.0b" },
383 { 21313628, "ESXi 7.0 Update 3k" },
384 { 21422485, "ESXi 7.0 Update 3l (Security Only)" },
385 { 21424296, "ESXi 7.0 Update 3l" },
386 { 21447677, "ESXi 7.0 for ARM Fling v1.12" },
387 { 21493926, "ESXi 8.0c" },
388 { 21495797, "ESXi 8.0 Update 1" },
389 { 21686933, "ESXi 7.0 Update 3m" },
390 { 21813344, "ESXi 8.0 Update 1a" },
391 { 21921575, "ESXi 7.0 for ARM Fling v1.13" },
392 { 21930508, "ESXi 7.0 Update 3n" },
393 { 22082334, "ESXi 8.0 Update 1c (Security Only)" },
394 { 22088125, "ESXi 8.0 Update 1c" },
395 { 22346715, "ESXi 7.0 for ARM Fling v1.14" },
396 { 22348808, "ESXi 7.0 Update 3o (Security Only)" },
397 { 22348816, "ESXi 7.0 Update 3o" },
398 { 22380479, "ESXi 8.0 Update 2" },
399 { 23299997, "ESXi 8.0 Update 1d" },
400 { 23305545, "ESXi 8.0 Update 2b (Security Only)" },
401 { 23305546, "ESXi 8.0 Update 2b" },
402 { 23307199, "ESXi 7.0 Update 3p" },
403 { 23794019, "ESXi 7.0 Update 3q (Security Only)" },
404 { 23794027, "ESXi 7.0 Update 3q" },
405 { 23825572, "ESXi 8.0 Update 2c" },
406 { 24022510, "ESXi 8.0 Update 3" },
407 { 24118393, "ESXi 8.0d" },
408 { 24262298, "ESXi 8.0 Update 3b (Security Only)" },
409 { 24280767, "ESXi 8.0 Update 3b" },
410 { 24364478, "ESXi Arm Edition v2.0" },
411 { 24411414, "ESXi 7.0 Update 3r" },
412 { 24414501, "ESXi 8.0 Update 3c" },
413 { 24449057, "ESXi Arm Edition v2.1" },
416 static value_string_ext vmware_hb_build_number_ext
= VALUE_STRING_EXT_INIT(vmware_hb_build_number
);
419 dissect_vmware_hb(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
,
423 proto_tree
*vmware_hb_tree
;
424 unsigned offset
= 0, host_key_length
, ip4_length
;
425 const uint8_t *host_key
, *ip4_str
;
427 col_set_str(pinfo
->cinfo
, COL_PROTOCOL
, "VMWARE-HB");
429 ti
= proto_tree_add_item(tree
, proto_vmware_hb
, tvb
, 0, -1, ENC_NA
);
431 vmware_hb_tree
= proto_item_add_subtree(ti
, ett_vmware_hb
);
433 proto_tree_add_item(vmware_hb_tree
, hf_vmware_hb_magic
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
436 proto_tree_add_item(vmware_hb_tree
, hf_vmware_hb_build_number
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
439 proto_tree_add_item(vmware_hb_tree
, hf_vmware_hb_server_id
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
442 proto_tree_add_item_ret_uint(vmware_hb_tree
, hf_vmware_hb_host_key_length
, tvb
, offset
, 1, ENC_BIG_ENDIAN
, &host_key_length
);
445 proto_tree_add_item_ret_string(vmware_hb_tree
, hf_vmware_hb_host_key
, tvb
, offset
, host_key_length
, ENC_ASCII
, pinfo
->pool
, &host_key
);
446 col_add_fstr(pinfo
->cinfo
, COL_INFO
, "Host Key: %s", host_key
);
447 offset
+= host_key_length
;
449 proto_tree_add_item(vmware_hb_tree
, hf_vmware_hb_change_gen
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
452 proto_tree_add_item(vmware_hb_tree
, hf_vmware_hb_spec_gen
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
455 proto_tree_add_item(vmware_hb_tree
, hf_vmware_hb_bundle_version
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
458 proto_tree_add_item(vmware_hb_tree
, hf_vmware_hb_heartbeat_counter
, tvb
, offset
, 4, ENC_LITTLE_ENDIAN
);
461 proto_tree_add_item_ret_uint(vmware_hb_tree
, hf_vmware_hb_ip4_address_length
, tvb
, offset
, 1, ENC_BIG_ENDIAN
, &ip4_length
);
465 proto_tree_add_item_ret_string(vmware_hb_tree
, hf_vmware_hb_ip4_address
, tvb
, offset
, ip4_length
, ENC_ASCII
, pinfo
->pool
, &ip4_str
);
466 col_append_fstr(pinfo
->cinfo
, COL_INFO
, " - IP: %s", ip4_str
);
467 offset
+= ip4_length
;
470 if (tvb_reported_length_remaining(tvb
, offset
)) {
471 proto_tree_add_item(vmware_hb_tree
, hf_vmware_hb_verification_signature
, tvb
, offset
, -1, ENC_NA
);
472 offset
+= tvb_reported_length_remaining(tvb
, offset
);
479 proto_register_vmware_hb(void)
482 static hf_register_info hf
[] = {
484 { &hf_vmware_hb_magic
,
485 { "Magic Number", "vmware_hb.magic",
486 FT_UINT32
, BASE_HEX_DEC
, NULL
, 0x0,
487 "Magic Number ?", HFILL
}
490 { &hf_vmware_hb_build_number
,
491 { "Build Number", "vmware_hb.build_number",
492 FT_UINT32
, BASE_DEC
|BASE_EXT_STRING
, &vmware_hb_build_number_ext
, 0x0,
496 { &hf_vmware_hb_server_id
,
497 { "Server ID", "vmware_hb.server_id",
498 FT_UINT32
, BASE_DEC_HEX
, NULL
, 0x0,
502 { &hf_vmware_hb_host_key_length
,
503 { "Length Host Key", "vmware_hb.host_key.length",
504 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
508 { &hf_vmware_hb_host_key
,
509 { "Host Key", "vmware_hb.host_key",
510 FT_STRING
, BASE_NONE
, NULL
, 0x0,
514 { &hf_vmware_hb_change_gen
,
515 { "Change Gen", "vmware_hb.change_gen",
516 FT_INT32
, BASE_DEC
, NULL
, 0x0,
520 { &hf_vmware_hb_spec_gen
,
521 { "Spec Gen", "vmware_hb.spec_gen",
522 FT_INT32
, BASE_DEC
, NULL
, 0x0,
526 { &hf_vmware_hb_bundle_version
,
527 { "Bundle Version", "vmware_hb.bundle_version",
528 FT_INT32
, BASE_DEC
, NULL
, 0x0,
532 { &hf_vmware_hb_heartbeat_counter
,
533 { "Heartbeat Counter", "vmware_hb.heartbeat_counter",
534 FT_UINT32
, BASE_DEC
, NULL
, 0x0,
538 { &hf_vmware_hb_ip4_address_length
,
539 { "IP4 Address Length", "vmware_hb.ip4_address.length",
540 FT_UINT8
, BASE_DEC
, NULL
, 0x0,
544 { &hf_vmware_hb_ip4_address
,
545 { "IP4 Address", "vmware_hb.ip4_address",
546 FT_STRING
, BASE_NONE
, NULL
, 0x0,
550 { &hf_vmware_hb_verification_signature
,
551 { "Verification Signature", "vmware_hb.verification_signature",
552 FT_BYTES
, BASE_NONE
, NULL
, 0x0,
558 /* Setup protocol subtree array */
559 static int *ett
[] = {
563 /* Register the protocol name and description */
564 proto_vmware_hb
= proto_register_protocol("VMware - HeartBeat",
565 "vmware_hb", "vmware_hb");
567 /* Required function calls to register the header fields and subtrees */
568 proto_register_field_array(proto_vmware_hb
, hf
, array_length(hf
));
569 proto_register_subtree_array(ett
, array_length(ett
));
571 vmware_hb_handle
= register_dissector("vmware_hb", dissect_vmware_hb
,
578 proto_reg_handoff_vmware_hb(void)
580 dissector_add_uint("udp.port", 902, vmware_hb_handle
);
584 * Editor modelines - https://www.wireshark.org/tools/modelines.html
589 * indent-tabs-mode: nil
592 * vi: set shiftwidth=4 tabstop=8 expandtab:
593 * :indentSize=4:tabSize=8:noTabs=true: