2 * Routines for the disassembly of the Chantry/HiPath AP-Controller
7 * Copyright 2009 Joerg Mayer (see AUTHORS file)
9 * Wireshark - Network traffic analyzer
10 * By Gerald Combs <gerald@wireshark.org>
11 * Copyright 1998 Gerald Combs
13 * This program is free software; you can redistribute it and/or
14 * modify it under the terms of the GNU General Public License
15 * as published by the Free Software Foundation; either version 2
16 * of the License, or (at your option) any later version.
18 * This program is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 * GNU General Public License for more details.
23 * You should have received a copy of the GNU General Public License
24 * along with this program; if not, write to the Free Software
25 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
29 http://ietfreport.isoc.org/all-ids/draft-singh-capwap-ctp-02.txt
30 looks very similar (but not always identical).
33 - Improve heuristics!!!
34 - Verify TLV descriptions/types
35 - Add TLV descriptions
43 #include <epan/packet.h>
44 #include <epan/emem.h>
45 #include <epan/expert.h>
47 /* protocol handles */
48 static int proto_wassp = -1;
50 static dissector_handle_t snmp_handle;
53 static int ett_wassp = -1;
54 static int ett_wassp_tlv_header = -1;
58 static int hf_wassp_tlv_type = -1;
59 static int hf_wassp_tlv_length = -1;
60 static int hf_wassp_tlv_data = -1;
62 static int hf_wassp_version = -1;
63 static int hf_wassp_type = -1;
64 static int hf_wassp_seqno = -1;
65 static int hf_wassp_flags = -1;
66 static int hf_wassp_sessionid = -1;
67 static int hf_wassp_length = -1;
69 static int hf_status = -1;
70 static int hf_ru_soft_version = -1;
71 static int hf_ru_serial_number = -1;
72 static int hf_ru_challenge = -1;
73 static int hf_ru_response = -1;
74 static int hf_ac_ipaddr = -1;
75 static int hf_ru_vns_id = -1;
76 static int hf_tftp_server = -1;
77 static int hf_image_path = -1;
78 static int hf_ru_config = -1;
79 static int hf_ru_state = -1;
80 static int hf_ru_session_key = -1;
81 static int hf_message_type = -1;
82 static int hf_random_number = -1;
83 static int hf_standby_timeout = -1;
84 static int hf_ru_challenge_id = -1;
85 static int hf_ru_model = -1;
86 static int hf_ru_scan_mode = -1;
87 static int hf_ru_scan_type = -1;
88 static int hf_ru_scan_interval = -1;
89 static int hf_ru_radio_type = -1;
90 static int hf_ru_channel_dwell_time = -1;
91 static int hf_ru_channel_list = -1;
92 static int hf_ru_trap = -1;
93 static int hf_ru_scan_times = -1;
94 static int hf_ru_scan_delay = -1;
95 static int hf_ru_scan_req_id = -1;
96 static int hf_static_config = -1;
97 static int hf_local_bridging = -1;
98 static int hf_static_bp_ipaddr = -1;
99 static int hf_static_bp_netmask = -1;
100 static int hf_static_bp_gateway = -1;
101 static int hf_static_bm_ipaddr = -1;
102 static int hf_ru_alarm = -1;
103 static int hf_bp_request_id = -1;
104 static int hf_snmp_error_status = -1;
105 static int hf_snmp_error_index = -1;
106 static int hf_ap_img_to_ram = -1;
107 static int hf_ap_img_role = -1;
108 static int hf_ap_stats_block = -1;
109 static int hf_ap_stats_block_ether = -1;
110 static int hf_ap_stats_block_radio_a = -1;
111 static int hf_ap_stats_block_radio_b_g = -1;
112 static int hf_dot1x_stats_block = -1;
113 static int hf_block_config = -1;
114 static int hf_config_radio = -1;
115 static int hf_config_vns = -1;
116 static int hf_wassp_vlan_tag = -1;
117 static int hf_wassp_tunnel_type = -1;
118 static int hf_ap_dhcp_mode = -1;
119 static int hf_ap_ipaddr = -1;
120 static int hf_ap_netmask = -1;
121 static int hf_ap_gateway = -1;
122 static int hf_preauth_resp = -1;
123 static int hf_bp_pmk = -1;
124 static int hf_ac_reg_challenge = -1;
125 static int hf_ac_reg_response = -1;
126 static int hf_stats = -1;
127 static int hf_certificate = -1;
128 static int hf_radio_id = -1;
129 static int hf_network_id = -1;
130 static int hf_mu_mac = -1;
131 static int hf_time = -1;
132 static int hf_num_radios = -1;
133 static int hf_radio_info = -1;
134 static int hf_network_info = -1;
135 static int hf_vendor_id = -1;
136 static int hf_product_id = -1;
137 static int hf_radio_info_ack = -1;
138 static int hf_mu_rf_stats_block = -1;
139 static int hf_stats_request_type = -1;
140 static int hf_stats_last = -1;
141 static int hf_mu_pmkid_list = -1;
142 static int hf_mu_pmk_bp = -1;
143 static int hf_mu_pmkid_bp = -1;
144 static int hf_countdown_time = -1;
145 /* discover header */
146 static int hf_wassp_discover1 = -1;
147 /* static int hf_wassp_length = -1; */
148 static int hf_wassp_discover2 = -1;
149 static int hf_wassp_subtype = -1;
150 static int hf_wassp_ether = -1;
151 static int hf_wassp_discover3 = -1;
156 static int hf_stats_dot11_ackfailurecount = -1;
157 static int hf_stats_dot11_fcserrorcount = -1;
158 static int hf_stats_dot11_failedcount = -1;
159 static int hf_stats_dot11_frameduplicatecount = -1;
160 static int hf_stats_dot11_multicastreceivedframecount = -1;
161 static int hf_stats_dot11_multicasttransmittedframecount = -1;
162 static int hf_stats_dot11_multipleretrycount = -1;
163 static int hf_stats_dot11_rtsfailurecount = -1;
164 static int hf_stats_dot11_rtssuccesscount = -1;
165 static int hf_stats_dot11_receivedfragementcount = -1;
166 static int hf_stats_dot11_retrycount = -1;
167 static int hf_stats_dot11_transmittedfragmentcount = -1;
168 static int hf_stats_dot11_transmittedframecount = -1;
169 static int hf_stats_dot11_webundecryptablecount = -1;
170 static int hf_stats_dot11_wepexcludedcount = -1;
171 static int hf_stats_dot11_wepicverrorcount = -1;
172 static int hf_stats_drm_allocfailures = -1;
173 static int hf_stats_drm_currentchannel = -1;
174 static int hf_stats_drm_currentpower = -1;
175 static int hf_stats_drm_datatxfailures = -1;
176 static int hf_stats_drm_devicetype = -1;
177 static int hf_stats_drm_indatapackets = -1;
178 static int hf_stats_drm_inmgmtpackets = -1;
179 static int hf_stats_drm_loadfactor = -1;
180 static int hf_stats_drm_mgmttxfailures = -1;
181 static int hf_stats_drm_msgqfailures = -1;
182 static int hf_stats_drm_nodrmcurrentchannel = -1;
183 static int hf_stats_drm_outdatapackets = -1;
184 static int hf_stats_drm_outmgmtpackets = -1;
185 static int hf_stats_if_inbcastpackets = -1;
186 static int hf_stats_if_indiscards = -1;
187 static int hf_stats_if_inerrors = -1;
188 static int hf_stats_if_inmcastpackets = -1;
189 static int hf_stats_if_inoctets = -1;
190 static int hf_stats_if_inucastpackets = -1;
191 static int hf_stats_if_mtu = -1;
192 static int hf_stats_if_outbcastpackets = -1;
193 static int hf_stats_if_outdiscards = -1;
194 static int hf_stats_if_outerrors = -1;
195 static int hf_stats_if_outoctets = -1;
196 static int hf_stats_if_outucastpackets = -1;
197 static int hf_stats_if_outmcastpackets = -1;
198 static int hf_stats_mu_address = -1;
199 static int hf_stats_mu_associationcount = -1;
200 static int hf_stats_mu_authenticationcount = -1;
201 static int hf_stats_mu_deassociationcount = -1;
202 static int hf_stats_mu_deauthenticationcount = -1;
203 static int hf_stats_mu_ifindex = -1;
204 static int hf_stats_mu_reassociationcount = -1;
205 static int hf_stats_mu_receivedbytes = -1;
206 static int hf_stats_mu_receivederrors = -1;
207 static int hf_stats_mu_receivedframecount = -1;
208 static int hf_stats_mu_receivedrssi = -1;
209 static int hf_stats_mu_receivedrate = -1;
210 static int hf_stats_mu_transmittedbytes = -1;
211 static int hf_stats_mu_transmittederrors = -1;
212 static int hf_stats_mu_transmittedframecount = -1;
213 static int hf_stats_mu_transmittedrssi = -1;
214 static int hf_stats_mu_transmittedrate = -1;
215 static int hf_stats_mu_rf_stats_end = -1;
216 static int hf_stats_rfc_1213_sysuptime = -1;
217 static int hf_dot1x_stats_credent = -1;
218 static int hf_dot1x_stats_end_date = -1;
219 static int hf_stats_tlv_max = -1;
221 static int hf_config_trace_status_debug = -1;
222 static int hf_config_trace_status_config = -1;
223 static int hf_config_use_bcast_for_disassc = -1;
224 static int hf_config_bandwidth_voice_assc = -1;
225 static int hf_config_bandwidth_voice_reassc = -1;
226 static int hf_config_bandwidth_video_assc = -1;
227 static int hf_config_bandwidth_video_reassc = -1;
228 static int hf_config_bandwidth_video_reserve = -1;
229 static int hf_config_bandwidth_adm_ctrl_reserve = -1;
230 static int hf_config_vlan_tag = -1;
231 static int hf_config_country_code = -1;
232 static int hf_config_poll_duration = -1;
233 static int hf_config_poll_interval = -1;
234 static int hf_config_poll_maintain_client_session = -1;
235 static int hf_config_telnet_enable = -1;
236 static int hf_config_telnet_password = -1;
237 static int hf_config_telnet_password_entry_mode = -1;
238 static int hf_config_outdoor_enable_environment = -1;
239 static int hf_config_slp_retry_count = -1;
240 static int hf_config_slp_retry_delay = -1;
241 static int hf_config_dns_retry_count = -1;
242 static int hf_config_dns_retry_delay = -1;
243 static int hf_config_mcast_slp_retry_count = -1;
244 static int hf_config_mcast_slp_retry_delay = -1;
245 static int hf_config_disc_retry_count = -1;
246 static int hf_config_disc_retry_delay = -1;
247 static int hf_config_logging_alarm_sev = -1;
248 static int hf_config_blacklist_blacklist_add = -1;
249 static int hf_config_failover_ac_ip_addr = -1;
250 static int hf_config_static_ac_ip_addr = -1;
251 static int hf_config_dhcp_assignment = -1;
252 static int hf_config_static_ap_ip_addr = -1;
253 static int hf_config_static_ap_ip_netmask = -1;
254 static int hf_config_static_ap_default_gw = -1;
255 static int hf_config_blacklist_del = -1;
256 static int hf_config_macaddr_req = -1;
257 static int hf_config_availability_mode = -1;
259 static int hf_config_vns_radio_id = -1;
260 static int hf_config_vns_vns_id = -1;
261 static int hf_config_vns_turbo_voice = -1;
262 static int hf_config_vns_prop_ie = -1;
263 static int hf_config_vns_enable_802_11_h = -1;
264 static int hf_config_vns_power_backoff = -1;
265 static int hf_config_vns_bridge_mode = -1;
266 static int hf_config_vns_vlan_tag = -1;
267 static int hf_config_vns_process_ie_req = -1;
268 static int hf_config_vns_enable_u_apsd = -1;
269 static int hf_config_vns_adm_ctrl_voice = -1;
270 static int hf_config_vns_adm_ctrl_video = -1;
271 static int hf_config_vns_qos_up_value = -1;
272 static int hf_config_vns_priority_override = -1;
273 static int hf_config_vns_dscp_override_value = -1;
274 static int hf_config_vns_enable_802_11_e = -1;
275 static int hf_config_vns_enable_wmm = -1;
276 static int hf_config_vns_legacy_client_priority = -1;
277 static int hf_config_vns_ssid_id = -1;
278 static int hf_config_vns_ssid_bcast_string = -1;
279 static int hf_config_vns_ssid_suppress = -1;
280 static int hf_config_vns_802_1_x_enable = -1;
281 static int hf_config_vns_802_1_x_dyn_rekey = -1;
282 static int hf_config_vns_wpa_enable = -1;
283 static int hf_config_vns_wpa_v2_enable = -1;
284 static int hf_config_vns_wpa_passphrase = -1;
285 static int hf_config_vns_wpa_cipher_type = -1;
286 static int hf_config_vns_wpa_v2_cipher_type = -1;
287 static int hf_config_vns_wep_key_index = -1;
288 static int hf_config_vns_wep_default_key_value = -1;
289 static int hf_config_vns_channel_report = -1;
290 static int hf_config_vns_wds_service = -1;
291 static int hf_config_vns_wds_pref_parent = -1;
292 static int hf_config_vns_wds_bridge = -1;
293 static int hf_config_vns_okc_enabled = -1;
294 static int hf_config_vns_mu_assoc_retries = -1;
295 static int hf_config_vns_mu_assoc_timeout = -1;
296 static int hf_config_vns_wds_parent = -1;
297 static int hf_config_vns_wds_back_parent = -1;
298 static int hf_config_vns_wds_name = -1;
300 static int hf_config_radio_radio_id = -1;
301 static int hf_config_radio_enable_radio = -1;
302 static int hf_config_radio_channel = -1;
303 static int hf_config_radio_op_rate_set = -1;
304 static int hf_config_radio_op_rate_max = -1;
305 static int hf_config_radio_beacon_period = -1;
306 static int hf_config_radio_dtim_period = -1;
307 static int hf_config_radio_rts_threshold = -1;
308 static int hf_config_radio_fragment_threshold = -1;
309 static int hf_config_radio_power_level = -1;
310 static int hf_config_radio_diversity_rx = -1;
311 static int hf_config_radio_diversity_tx = -1;
312 static int hf_config_radio_short_preamble = -1;
313 static int hf_config_radio_basic_rate_max = -1;
314 static int hf_config_radio_basic_rate_min = -1;
315 static int hf_config_radio_hw_retries = -1;
316 static int hf_config_radio_tx_power_min = -1;
317 static int hf_config_radio_tx_power_max = -1;
318 static int hf_config_radio_domain_id = -1;
319 static int hf_config_radio_b_enable = -1;
320 static int hf_config_radio_b_basic_rates = -1;
321 static int hf_config_radio_g_enable = -1;
322 static int hf_config_radio_g_protect_mode = -1;
323 static int hf_config_radio_g_protect_type = -1;
324 static int hf_config_radio_g_protect_rate = -1;
325 static int hf_config_radio_g_basic_rate = -1;
326 static int hf_config_radio_a_support_802_11_j = -1;
327 static int hf_config_radio_atpc_en_interval = -1;
328 static int hf_config_radio_acs_ch_list = -1;
329 static int hf_config_radio_tx_power_adj = -1;
331 #define PROTO_SHORT_NAME "WASSP"
332 #define PROTO_LONG_NAME "Wireless Access Station Session Protocol"
334 #define PORT_WASSP_DISCOVER 13907
335 #define PORT_WASSP_TUNNEL 13910
336 /* #define PORT_WASSP_PEER 13913?? */
338 /* ============= copy/paste/modify from value_string.[hc] ============== */
339 typedef struct _ext_value_string {
343 int (*specialfunction)(tvbuff_t *, packet_info *, proto_tree *, guint32,
344 guint32, const struct _ext_value_string *);
345 const struct _ext_value_string *evs;
350 match_strextval_idx(guint32 val, const ext_value_string *vs, gint *idx) {
354 while (vs[i].strptr) {
355 if (vs[i].value == val) {
358 return(vs[i].strptr);
370 extval_to_str_idx(guint32 val, const ext_value_string *vs, gint *idx, const char *fmt) {
376 ret = match_strextval_idx(val, vs, idx);
380 return ep_strdup_printf(fmt, val);
382 /* ============= end copy/paste/modify ============== */
384 /* Forward decls needed by wassp_tunnel_tlv_vals et al */
385 static int dissect_snmp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *wassp_tree,
386 volatile guint32 offset, guint32 length, const ext_value_string *value_array);
387 static int dissect_tlv(tvbuff_t *tvb, packet_info *pinfo, proto_tree *wassp_tree,
388 guint32 offset, guint32 length, const ext_value_string *value_array);
390 static const ext_value_string wassp_tunnel_tlv_config_vns_tlv_vals[] = {
391 { 1, "V_RADIO_ID", &hf_config_vns_radio_id, NULL, NULL },
392 { 2, "V_VNS_ID", &hf_config_vns_vns_id, NULL, NULL },
393 { 3, "V_TURBO_VOICE", &hf_config_vns_turbo_voice, NULL, NULL },
394 { 4, "V_PROP_IE", &hf_config_vns_prop_ie, NULL, NULL },
395 { 5, "V_ENABLE_802_11_H", &hf_config_vns_enable_802_11_h, NULL, NULL },
396 { 6, "V_POWER_BACKOFF", &hf_config_vns_power_backoff, NULL, NULL },
397 { 7, "V_BRIDGE_MODE", &hf_config_vns_bridge_mode, NULL, NULL },
398 { 8, "V_VLAN_TAG", &hf_config_vns_vlan_tag, NULL, NULL },
399 { 9, "V_PROCESS_IE_REQ", &hf_config_vns_process_ie_req, NULL, NULL },
400 { 10, "V_ENABLE_U_APSD", &hf_config_vns_enable_u_apsd, NULL, NULL },
401 { 11, "V_ADM_CTRL_VOICE", &hf_config_vns_adm_ctrl_voice, NULL, NULL },
402 { 12, "V_ADM_CTRL_VIDEO", &hf_config_vns_adm_ctrl_video, NULL, NULL },
403 { 13, "V_QOS_UP_VALUE", &hf_config_vns_qos_up_value, NULL, NULL },
404 { 14, "V_PRIORITY_OVERRIDE", &hf_config_vns_priority_override, NULL, NULL },
405 { 15, "V_DSCP_OVERRIDE_VALUE", &hf_config_vns_dscp_override_value, NULL, NULL },
406 { 16, "V_ENABLE_802_11_E", &hf_config_vns_enable_802_11_e, NULL, NULL },
407 { 17, "V_ENABLE_WMM", &hf_config_vns_enable_wmm, NULL, NULL },
408 { 18, "V_LEGACY_CLIENT_PRIORITY", &hf_config_vns_legacy_client_priority, NULL, NULL },
409 { 19, "V_SSID_ID", &hf_config_vns_ssid_id, NULL, NULL },
410 { 20, "V_SSID_BCAST_STRING", &hf_config_vns_ssid_bcast_string, NULL, NULL },
411 { 21, "V_SSID_SUPPRESS", &hf_config_vns_ssid_suppress, NULL, NULL },
412 { 22, "V_802_1_X_ENABLE", &hf_config_vns_802_1_x_enable, NULL, NULL },
413 { 23, "V_802_1_X_DYN_REKEY", &hf_config_vns_802_1_x_dyn_rekey, NULL, NULL },
414 { 24, "V_WPA_ENABLE", &hf_config_vns_wpa_enable, NULL, NULL },
415 { 25, "V_WPA_V2_ENABLE", &hf_config_vns_wpa_v2_enable, NULL, NULL },
416 { 26, "V_WPA_PASSPHRASE", &hf_config_vns_wpa_passphrase, NULL, NULL },
417 { 27, "V_WPA_CIPHER_TYPE", &hf_config_vns_wpa_cipher_type, NULL, NULL },
418 { 28, "V_WPA_V2_CIPHER_TYPE", &hf_config_vns_wpa_v2_cipher_type, NULL, NULL },
419 { 29, "V_WEP_KEY_INDEX", &hf_config_vns_wep_key_index, NULL, NULL },
420 { 30, "V_WEP_DEFAULT_KEY_VALUE", &hf_config_vns_wep_default_key_value, NULL, NULL },
421 { 31, "V_CHANNEL_REPORT", &hf_config_vns_channel_report, NULL, NULL },
422 { 32, "V_WDS_SERVICE", &hf_config_vns_wds_service, NULL, NULL },
423 { 33, "V_WDS_PREF_PARENT", &hf_config_vns_wds_pref_parent, NULL, NULL },
424 { 34, "V_WDS_BRIDGE", &hf_config_vns_wds_bridge, NULL, NULL },
425 { 35, "V_OKC_ENABLED", &hf_config_vns_okc_enabled, NULL, NULL },
426 { 36, "V_MU_ASSOC_RETRIES", &hf_config_vns_mu_assoc_retries, NULL, NULL },
427 { 37, "V_MU_ASSOC_TIMEOUT", &hf_config_vns_mu_assoc_timeout, NULL, NULL },
428 { 38, "V_WDS_PARENT", &hf_config_vns_wds_parent, NULL, NULL },
429 { 39, "V_WDS_BACK_PARENT", &hf_config_vns_wds_back_parent, NULL, NULL },
430 { 40, "V_WDS_NAME", &hf_config_vns_wds_name, NULL, NULL },
432 { 0, NULL, NULL, NULL, NULL }
435 static const ext_value_string wassp_tunnel_tlv_config_radio_tlv_vals[] = {
436 { 1, "R_RADIO_ID", &hf_config_radio_radio_id, NULL, NULL },
437 { 2, "R_ENABLE_RADIO", &hf_config_radio_enable_radio, NULL, NULL },
438 { 3, "R_CHANNEL", &hf_config_radio_channel, NULL, NULL },
439 { 4, "R_OP_RATE_SET", &hf_config_radio_op_rate_set, NULL, NULL },
440 { 5, "R_OP_RATE_MAX", &hf_config_radio_op_rate_max, NULL, NULL },
441 { 6, "R_BEACON_PERIOD", &hf_config_radio_beacon_period, NULL, NULL },
442 { 7, "R_DTIM_PERIOD", &hf_config_radio_dtim_period, NULL, NULL },
443 { 8, "R_RTS_THRESHOLD", &hf_config_radio_rts_threshold, NULL, NULL },
444 { 9, "R_RETRY_LIMIT_SHORT", /* hf_, */ NULL, NULL, NULL },
445 { 10, "R_RETRY_LIMIT_LONG", /* hf_, */ NULL, NULL, NULL },
446 { 11, "R_FRAGMENT_THRESHOLD", &hf_config_radio_fragment_threshold, NULL, NULL },
447 { 12, "R_POWER_LEVEL", &hf_config_radio_power_level, NULL, NULL },
448 { 13, "R_DIVERSITY_LEFT", /* hf_, */ NULL, NULL, NULL },
449 { 14, "R_DIVERSITY_RIGHT", /* hf_, */ NULL, NULL, NULL },
450 { 15, "R_DIVERSITY_RX", &hf_config_radio_diversity_rx, NULL, NULL },
451 { 16, "R_DIVERSITY_TX", &hf_config_radio_diversity_tx, NULL, NULL },
452 { 17, "R_SHORT_PREAMBLE", &hf_config_radio_short_preamble, NULL, NULL },
453 { 18, "R_BASIC_RATE_MAX", &hf_config_radio_basic_rate_max, NULL, NULL },
454 { 19, "R_BASIC_RATE_MIN", &hf_config_radio_basic_rate_min, NULL, NULL },
455 { 20, "R_HW_RETRIES", &hf_config_radio_hw_retries, NULL, NULL },
456 { 21, "R_DRM_TX_POWER_MIN", &hf_config_radio_tx_power_min, NULL, NULL },
457 { 22, "R_DRM_TX_POWER_MAX", &hf_config_radio_tx_power_max, NULL, NULL },
458 { 23, "R_DRM_AVOID_WLAN", /* hf_, */ NULL, NULL, NULL },
459 { 24, "R_DRM_DOMAIN_ID", &hf_config_radio_domain_id, NULL, NULL },
460 { 25, "R_B_ENABLE", &hf_config_radio_b_enable, NULL, NULL },
461 { 26, "R_B_BASIC_RATES", &hf_config_radio_b_basic_rates, NULL, NULL },
462 { 27, "R_G_ENABLE", &hf_config_radio_g_enable, NULL, NULL },
463 { 28, "R_G_PROTECT_MODE", &hf_config_radio_g_protect_mode, NULL, NULL },
464 { 29, "R_G_PROTECT_TYPE", &hf_config_radio_g_protect_type, NULL, NULL },
465 { 30, "R_G_PROTECT_RATE", &hf_config_radio_g_protect_rate, NULL, NULL },
466 { 31, "R_G_BASIC_RATE", &hf_config_radio_g_basic_rate, NULL, NULL },
467 { 32, "R_A_SUPPORT_802_11_J", &hf_config_radio_a_support_802_11_j, NULL, NULL },
468 { 33, "R_ATPC_EN_INTERVAL", &hf_config_radio_atpc_en_interval, NULL, NULL },
469 { 34, "R_ACS_CH_LIST", &hf_config_radio_acs_ch_list, NULL, NULL },
470 { 35, "R_TX_POWER_ADJ", &hf_config_radio_tx_power_adj, NULL, NULL },
472 { 0, NULL, NULL, NULL, NULL }
475 static const ext_value_string wassp_tunnel_tlv_config_tlv_vals[] = {
476 { 1, "RADIO_CONFIG_BLOCK", &hf_config_radio, dissect_tlv, wassp_tunnel_tlv_config_radio_tlv_vals },
477 { 2, "VNS_CONFIG_BLOCK", &hf_config_vns, dissect_tlv, wassp_tunnel_tlv_config_vns_tlv_vals },
478 { 3, "DIVERSITY_LEFT", /* hf_, */ NULL, NULL, NULL },
479 { 4, "DIVERSITY_RIGHT", /* hf_, */ NULL, NULL, NULL },
480 { 5, "TRACE_STATUS_DEBUG", &hf_config_trace_status_debug, NULL, NULL },
481 { 6, "TRACE_STATUS_CONFIG", &hf_config_trace_status_config, NULL, NULL },
482 { 7, "BRIDGE_AT_AP", /* hf_, */ NULL, NULL, NULL },
483 { 8, "USE_BCAST_FOR_DISASSC", &hf_config_use_bcast_for_disassc, NULL, NULL },
484 { 9, "BANDWIDTH_VOICE_ASSC", &hf_config_bandwidth_voice_assc, NULL, NULL },
485 { 10, "BANDWIDTH_VOICE_REASSC", &hf_config_bandwidth_voice_reassc, NULL, NULL },
486 { 11, "BANDWIDTH_VIDEO_ASSC", &hf_config_bandwidth_video_assc, NULL, NULL },
487 { 12, "BANDWIDTH_VIDEO_REASSC", &hf_config_bandwidth_video_reassc, NULL, NULL },
488 { 13, "BANDWIDTH_VIDEO_RESERVE", &hf_config_bandwidth_video_reserve, NULL, NULL },
489 { 14, "BANDWIDTH_ADM_CTRL_RESERVE", &hf_config_bandwidth_adm_ctrl_reserve, NULL, NULL },
490 { 15, "VLAN_TAG", &hf_config_vlan_tag, NULL, NULL },
491 { 16, "COUNTRY_CODE", &hf_config_country_code, NULL, NULL },
492 { 17, "POLL_DURATION", &hf_config_poll_duration, NULL, NULL },
493 { 18, "POLL_INTERVAL", &hf_config_poll_interval, NULL, NULL },
494 { 19, "POLL_REBOOT_ON_FAIL", /* hf_, */ NULL, NULL, NULL },
495 { 20, "POLL_MAINTAIN_CLIENT_SESSION", &hf_config_poll_maintain_client_session, NULL, NULL },
496 { 21, "TELNET_ENABLE", &hf_config_telnet_enable, NULL, NULL },
497 { 22, "TELNET_PASSWORD", &hf_config_telnet_password, NULL, NULL },
498 { 23, "TELNET_PASSWORD_ENTRY_MODE", &hf_config_telnet_password_entry_mode, NULL, NULL },
499 { 24, "OUTDOOR_ENABLE-ENVIRONMENT", &hf_config_outdoor_enable_environment, NULL, NULL },
500 { 25, "BSS_COUNT", /* hf_, */ NULL, NULL, NULL },
501 { 26, "DRM_ENABLE", /* hf_, */ NULL, NULL, NULL },
502 { 27, "DRM_ENABLE_SHAPE_COV", /* hf_, */ NULL, NULL, NULL },
503 { 28, "SLP_RETRY_COUNT", &hf_config_slp_retry_count, NULL, NULL },
504 { 29, "SLP_RETRY_DELAY", &hf_config_slp_retry_delay, NULL, NULL },
505 { 30, "DNS_RETRY_COUNT", &hf_config_dns_retry_count, NULL, NULL },
506 { 31, "DNS_RETRY_DELAY", &hf_config_dns_retry_delay, NULL, NULL },
507 { 32, "MCAST_SLP_RETRY_COUNT", &hf_config_mcast_slp_retry_count, NULL, NULL },
508 { 33, "MCAST_SLP_RETRY_DELAY", &hf_config_mcast_slp_retry_delay, NULL, NULL },
509 { 34, "DISC_RETRY_COUNT", &hf_config_disc_retry_count, NULL, NULL },
510 { 35, "DISC_RETRY_DELAY", &hf_config_disc_retry_delay, NULL, NULL },
511 { 36, "LOGGING_ALARM_SEV", &hf_config_logging_alarm_sev, NULL, NULL },
512 { 37, "BLACKLIST-BLACKLIST_ADD", &hf_config_blacklist_blacklist_add, NULL, NULL },
513 { 38, "FAILOVER_AC_IP_ADDR", &hf_config_failover_ac_ip_addr, NULL, NULL },
514 { 39, "STATIC_AC_IP_ADDR", &hf_config_static_ac_ip_addr, NULL, NULL },
515 { 40, "DHCP_ASSIGNMENT", &hf_config_dhcp_assignment, NULL, NULL },
516 { 41, "STATIC_AP_IP_ADDR", &hf_config_static_ap_ip_addr, NULL, NULL },
517 { 42, "STATIC_AP_IP_NETMASK", &hf_config_static_ap_ip_netmask, NULL, NULL },
518 { 43, "STATIC_AP_DEFAULT_GW", &hf_config_static_ap_default_gw, NULL, NULL },
519 { 44, "BLACKLIST_DEL", &hf_config_blacklist_del, NULL, NULL },
520 { 45, "MACADDR_REQ", &hf_config_macaddr_req, NULL, NULL },
521 { 46, "AVAILABILITY_MODE", &hf_config_availability_mode, NULL, NULL },
522 { 47, "AP_PERSISTENCE", /* hf_, */ NULL, NULL, NULL },
523 { 48, "FOREIGN_AP", /* hf_, */ NULL, NULL, NULL },
524 { 49, "SUPP1X_CREDENTIAL_REMOVE", /* hf_, */ NULL, NULL, NULL },
525 { 50, "SUPP1X_CERT_TFTP_IP", /* hf_, */ NULL, NULL, NULL },
526 { 51, "SUPP1X_CERT_TFTP_PATH", /* hf_, */ NULL, NULL, NULL },
527 { 52, "SUPP1X_PRIVATE", /* hf_, */ NULL, NULL, NULL },
528 { 53, "SUPP1X_DOMAIN", /* hf_, */ NULL, NULL, NULL },
529 { 54, "SUPP1X_USERID", /* hf_, */ NULL, NULL, NULL },
530 { 55, "SUPP1X_PASSWORD", /* hf_, */ NULL, NULL, NULL },
531 { 56, "SUPP1X_CREDENT", /* hf_, */ NULL, NULL, NULL },
532 { 57, "SUPP1X_SERIAL", /* hf_, */ NULL, NULL, NULL },
533 { 58, "SUPP1X_START_DATE", /* hf_, */ NULL, NULL, NULL },
534 { 59, "SUPP1X_END_DATE", /* hf_, */ NULL, NULL, NULL },
535 { 60, "SUPP1X_ISSUED_BY", /* hf_, */ NULL, NULL, NULL },
536 { 61, "SUPP1X_ISSUED_TO", /* hf_, */ NULL, NULL, NULL },
538 { 0, NULL, NULL, NULL, NULL }
541 static const ext_value_string wassp_tunnel_ap_stats_block_tlv_vals[] = {
542 { 1, "DOT11_ACKFailureCount", &hf_stats_dot11_ackfailurecount, NULL, NULL },
543 { 2, "DOT11_FCSErrorCount", &hf_stats_dot11_fcserrorcount, NULL, NULL },
544 { 3, "DOT11_FailedCount", &hf_stats_dot11_failedcount, NULL, NULL },
545 { 4, "DOT11_FrameDuplicateCount", &hf_stats_dot11_frameduplicatecount, NULL, NULL },
546 { 5, "DOT11_MulticastReceivedFrameCount", &hf_stats_dot11_multicastreceivedframecount, NULL, NULL },
547 { 6, "DOT11_MulticastTransmittedFrameCount", &hf_stats_dot11_multicasttransmittedframecount, NULL, NULL },
548 { 7, "DOT11_MultipleRetryCount", &hf_stats_dot11_multipleretrycount, NULL, NULL },
549 { 8, "DOT11_RTSFailureCount", &hf_stats_dot11_rtsfailurecount, NULL, NULL },
550 { 9, "DOT11_RTSSuccessCount", &hf_stats_dot11_rtssuccesscount, NULL, NULL },
551 { 10, "DOT11_ReceivedFragementCount", &hf_stats_dot11_receivedfragementcount, NULL, NULL },
552 { 11, "DOT11_RetryCount", &hf_stats_dot11_retrycount, NULL, NULL },
553 { 12, "DOT11_TransmittedFragmentCount", &hf_stats_dot11_transmittedfragmentcount, NULL, NULL },
554 { 13, "DOT11_TransmittedFrameCount", &hf_stats_dot11_transmittedframecount, NULL, NULL },
555 { 14, "DOT11_WEBUndecryptableCount", &hf_stats_dot11_webundecryptablecount, NULL, NULL },
556 { 15, "DOT11_WEPExcludedCount", &hf_stats_dot11_wepexcludedcount, NULL, NULL },
557 { 16, "DOT11_WEPICVErrorCount", &hf_stats_dot11_wepicverrorcount, NULL, NULL },
558 { 17, "DRM_AllocFailures", &hf_stats_drm_allocfailures, NULL, NULL },
559 { 18, "DRM_CurrentChannel", &hf_stats_drm_currentchannel, NULL, NULL },
560 { 19, "DRM_CurrentPower", &hf_stats_drm_currentpower, NULL, NULL },
561 { 20, "DRM_DataTxFailures", &hf_stats_drm_datatxfailures, NULL, NULL },
562 { 21, "DRM_DeviceType", &hf_stats_drm_devicetype, NULL, NULL },
563 { 22, "DRM_InDataPackets", &hf_stats_drm_indatapackets, NULL, NULL },
564 { 23, "DRM_InMgmtPackets", &hf_stats_drm_inmgmtpackets, NULL, NULL },
565 { 24, "DRM_LoadFactor", &hf_stats_drm_loadfactor, NULL, NULL },
566 { 25, "DRM_MgmtTxFailures", &hf_stats_drm_mgmttxfailures, NULL, NULL },
567 { 26, "DRM_MsgQFailures", &hf_stats_drm_msgqfailures, NULL, NULL },
568 { 27, "DRM_NoDRMCurrentChannel", &hf_stats_drm_nodrmcurrentchannel, NULL, NULL },
569 { 28, "DRM_OutDataPackets", &hf_stats_drm_outdatapackets, NULL, NULL },
570 { 29, "DRM_OutMgmtPackets", &hf_stats_drm_outmgmtpackets, NULL, NULL },
571 { 30, "IF_InBcastPackets", &hf_stats_if_inbcastpackets, NULL, NULL },
572 { 31, "IF_InDiscards", &hf_stats_if_indiscards, NULL, NULL },
573 { 32, "IF_InErrors", &hf_stats_if_inerrors, NULL, NULL },
574 { 33, "IF_InMcastPackets", &hf_stats_if_inmcastpackets, NULL, NULL },
575 { 34, "IF_InOctets", &hf_stats_if_inoctets, NULL, NULL },
576 { 35, "IF_InUcastPackets", &hf_stats_if_inucastpackets, NULL, NULL },
577 { 36, "IF_MTU", &hf_stats_if_mtu, NULL, NULL },
578 { 37, "IF_OutBcastPackets", &hf_stats_if_outbcastpackets, NULL, NULL },
579 { 38, "IF_OutDiscards", &hf_stats_if_outdiscards, NULL, NULL },
580 { 39, "IF_OutErrors", &hf_stats_if_outerrors, NULL, NULL },
581 { 40, "IF_OutOctets", &hf_stats_if_outoctets, NULL, NULL },
582 { 41, "IF_OutUcastPackets", &hf_stats_if_outucastpackets, NULL, NULL },
583 { 42, "IF_OutMCastPackets", &hf_stats_if_outmcastpackets, NULL, NULL },
584 { 43, "MU_Address", &hf_stats_mu_address, NULL, NULL },
585 { 44, "MU_AssociationCount", &hf_stats_mu_associationcount, NULL, NULL },
586 { 45, "MU_AuthenticationCount", &hf_stats_mu_authenticationcount, NULL, NULL },
587 { 46, "MU_DeAssociationCount", &hf_stats_mu_deassociationcount, NULL, NULL },
588 { 47, "MU_DeAuthenticationCount", &hf_stats_mu_deauthenticationcount, NULL, NULL },
589 { 48, "MU_IfIndex", &hf_stats_mu_ifindex, NULL, NULL },
590 { 49, "MU_ReAssociationCount", &hf_stats_mu_reassociationcount, NULL, NULL },
591 { 50, "MU_ReceivedBytes", &hf_stats_mu_receivedbytes, NULL, NULL },
592 { 51, "MU_ReceivedErrors", &hf_stats_mu_receivederrors, NULL, NULL },
593 { 52, "MU_ReceivedFrameCount", &hf_stats_mu_receivedframecount, NULL, NULL },
594 { 53, "MU_ReceivedRSSI", &hf_stats_mu_receivedrssi, NULL, NULL },
595 { 54, "MU_ReceivedRate", &hf_stats_mu_receivedrate, NULL, NULL },
596 { 55, "MU_TransmittedBytes", &hf_stats_mu_transmittedbytes, NULL, NULL },
597 { 56, "MU_TransmittedErrors", &hf_stats_mu_transmittederrors, NULL, NULL },
598 { 57, "MU_TransmittedFrameCount", &hf_stats_mu_transmittedframecount, NULL, NULL },
599 { 58, "MU_TransmittedRSSI", &hf_stats_mu_transmittedrssi, NULL, NULL },
600 { 59, "MU_TransmittedRate", &hf_stats_mu_transmittedrate, NULL, NULL },
601 { 60, "MU_RF_STATS_END", &hf_stats_mu_rf_stats_end, NULL, NULL },
602 { 61, "RFC_1213_SYSUPTIME", &hf_stats_rfc_1213_sysuptime, NULL, NULL },
603 { 62, "STATS_ETHER_BLOCK", &hf_ap_stats_block_ether, dissect_tlv, wassp_tunnel_ap_stats_block_tlv_vals },
604 { 63, "STATS_RADIO_A_BLOCK", &hf_ap_stats_block_radio_a, dissect_tlv, wassp_tunnel_ap_stats_block_tlv_vals },
605 { 64, "STATS_RADIO_B_G_BLOCK", &hf_ap_stats_block_radio_b_g, dissect_tlv, wassp_tunnel_ap_stats_block_tlv_vals },
606 { 65, "MU_STATS_BLOCK", /* hf_, */ NULL, NULL, NULL },
607 { 66, "WDS_BLOCK", /* hf_, */ NULL, NULL, NULL },
608 { 67, "WDS_Role", /* hf_, */ NULL, NULL, NULL },
609 { 68, "WDS_PARENT_MAC", /* hf_, */ NULL, NULL, NULL },
610 { 69, "WDS_BSSID", /* hf_, */ NULL, NULL, NULL },
611 { 70, "DOT1x_STATS_BLOCK", &hf_dot1x_stats_block, dissect_tlv, wassp_tunnel_ap_stats_block_tlv_vals },
612 { 71, "DOT1x_CREDENT", &hf_dot1x_stats_credent, NULL, NULL },
613 { 72, "DOT1x_END_DATE", &hf_dot1x_stats_end_date, NULL, NULL },
614 { 73, "TLV_MAX", &hf_stats_tlv_max, NULL, NULL },
616 { 0, NULL, NULL, NULL, NULL }
619 static const ext_value_string wassp_tunnel_tlv_vals[] = {
620 { 1, "STATUS", &hf_status, NULL, NULL },
621 { 2, "RU-SOFT-VERSION", &hf_ru_soft_version, NULL, NULL },
622 { 3, "RU-SERIAL-NUMBER", &hf_ru_serial_number, NULL, NULL },
623 { 4, "RU-REG-CHALLENGE", &hf_ru_challenge, NULL, NULL },
624 { 5, "RU-REG-RESPONSE", &hf_ru_response, NULL, NULL },
625 { 6, "AC-IPADDR", &hf_ac_ipaddr, NULL, NULL },
626 { 7, "RU-VNS-ID", &hf_ru_vns_id, NULL, NULL },
627 { 8, "TFTP-SERVER", &hf_tftp_server, NULL, NULL },
628 { 9, "IMAGE-PATH", &hf_image_path, NULL, NULL },
629 { 10, "RU-CONFIG", &hf_ru_config, dissect_snmp, NULL },
630 { 11, "RU-STATE", &hf_ru_state, NULL, NULL },
631 { 12, "RU-SESSION-KEY", &hf_ru_session_key, NULL, NULL },
632 { 13, "MESSAGE-TYPE", &hf_message_type, NULL, NULL },
633 { 14, "RANDOM-NUMBER", &hf_random_number, NULL, NULL },
634 { 15, "STANDBY-TIMEOUT", &hf_standby_timeout, NULL, NULL },
635 { 16, "RU-CHALLENGE-ID", &hf_ru_challenge_id, NULL, NULL },
636 { 17, "RU-MODEL", &hf_ru_model, NULL, NULL },
637 { 18, "RU-SCAN-MODE", &hf_ru_scan_mode, NULL, NULL },
638 { 19, "RU-SCAN-TYPE", &hf_ru_scan_type, NULL, NULL },
639 { 20, "RU-SCAN-INTERVAL", &hf_ru_scan_interval, NULL, NULL },
640 { 21, "RU-RADIO-TYPE", &hf_ru_radio_type, NULL, NULL },
641 { 22, "RU-CHANNEL-DWELL-TIME", &hf_ru_channel_dwell_time, NULL, NULL },
642 { 23, "RU-CHANNEL-LIST", &hf_ru_channel_list, NULL, NULL },
643 { 24, "RU-TRAP", &hf_ru_trap, NULL, NULL },
644 { 25, "RU-SCAN-TIMES", &hf_ru_scan_times, NULL, NULL },
645 { 26, "RU-SCAN-DELAY", &hf_ru_scan_delay, NULL, NULL },
646 { 27, "RU-SCAN-REQ-ID", &hf_ru_scan_req_id, NULL, NULL },
647 { 28, "STATIC-CONFIG", &hf_static_config, NULL, NULL },
648 { 29, "LOCAL-BRIDGING", &hf_local_bridging, NULL, NULL },
649 { 30, "STATIC-BP-IPADDR", &hf_static_bp_ipaddr, NULL, NULL },
650 { 31, "STATIC-BP-NETMASK", &hf_static_bp_netmask, NULL, NULL },
651 { 32, "STATIC-BP-GATEWAY", &hf_static_bp_gateway, NULL, NULL },
652 { 33, "STATIC-BM-IPADDR", &hf_static_bm_ipaddr, NULL, NULL },
653 { 34, "TUNNEL_PROTOCOL/BSSID", /* &hf_, */ NULL, NULL, NULL },
654 { 35, "BP_WIRED_MACADDR", /* &hf_, */ NULL, NULL, NULL },
655 { 36, "RU_CAPABILITY", /* &hf_, */ NULL, NULL, NULL },
656 { 37, "RU_SSID_NAME", /* hf_, */ NULL, NULL, NULL },
657 { 38, "RU_ALARM", &hf_ru_alarm, dissect_snmp, NULL },
658 { 39, "PREAUTH_RESP", &hf_preauth_resp, NULL, NULL },
659 { 40, "BP_PMK", &hf_bp_pmk, NULL, NULL },
660 { 41, "AC_REG_CHALLENGE", &hf_ac_reg_challenge, NULL, NULL },
661 { 42, "AC_REG_RESPONSE", &hf_ac_reg_response, NULL, NULL },
662 { 43, "STATS", &hf_stats, NULL, NULL },
663 { 44, "CERTIFICATE", &hf_certificate, NULL, NULL },
664 { 45, "RADIO_ID", &hf_radio_id, NULL, NULL },
665 { 46, "BP-REQUEST-ID", &hf_bp_request_id, NULL, NULL },
666 { 47, "NETWORK_ID", &hf_network_id, NULL, NULL },
667 { 48, "MU_MAC", &hf_mu_mac, NULL, NULL },
668 { 49, "TIME", &hf_time, NULL, NULL },
669 { 50, "NUM_RADIOS", &hf_num_radios, NULL, NULL },
670 { 51, "RADIO_INFO", &hf_radio_info, NULL, NULL },
671 { 52, "NETWORK_INFO", &hf_network_info, NULL, NULL },
672 { 53, "VENDOR_ID", &hf_vendor_id, NULL, NULL },
673 { 54, "PRODUCT_ID", &hf_product_id, NULL, NULL },
674 { 55, "RADIO_INFO_ACK", &hf_radio_info_ack, NULL, NULL },
675 { 60, "SNMP-ERROR-STATUS", &hf_snmp_error_status, NULL, NULL },
676 { 61, "SNMP-ERROR-INDEX", &hf_snmp_error_index, NULL, NULL },
677 { 62, "ALTERNATE_AC_IPADDR", /* &hf_, */ NULL, NULL, NULL },
678 { 63, "AP-IMG-TO-RAM", &hf_ap_img_to_ram, NULL, NULL },
679 { 64, "AP-IMG-ROLE", &hf_ap_img_role, NULL, NULL },
680 { 65, "AP_STATS_BLOCK", &hf_ap_stats_block, dissect_tlv, wassp_tunnel_ap_stats_block_tlv_vals },
681 { 66, "MU_RF_STATS_BLOCK", &hf_mu_rf_stats_block, NULL, NULL },
682 { 67, "STATS_REQUEST_TYPE", &hf_stats_request_type, NULL, NULL },
683 { 68, "STATS_LAST", &hf_stats_last, NULL, NULL },
684 { 69, "TLV_CONFIG", &hf_block_config, dissect_tlv, wassp_tunnel_tlv_config_tlv_vals },
685 { 70, "CONFIG_ERROR_BLOCK", /* &hf_, */ NULL, NULL, NULL },
686 { 71, "CONFIG_MODIFIED_BLOCK", /* &hf_, */ NULL, NULL, NULL },
687 { 72, "MU_PMKID_LIST", &hf_mu_pmkid_list, NULL, NULL },
688 { 73, "MU_PMK_BP", &hf_mu_pmk_bp, NULL, NULL },
689 { 74, "MU_PMKID_BP", &hf_mu_pmkid_bp, NULL, NULL },
690 { 75, "COUNTDOWN_TIME", &hf_countdown_time, NULL, NULL },
691 { 76, "WASSP-VLAN-TAG", &hf_wassp_vlan_tag, NULL, NULL },
692 { 81, "WASSP-TUNNEL-TYPE", &hf_wassp_tunnel_type, NULL, NULL },
693 { 88, "AP-DHCP-MODE", &hf_ap_dhcp_mode, NULL, NULL },
694 { 89, "AP-IPADDR", &hf_ap_ipaddr, NULL, NULL },
695 { 90, "AP-NETMASK", &hf_ap_netmask, NULL, NULL },
696 { 91, "AP-GATEWAY", &hf_ap_gateway, NULL, NULL },
698 { 0, NULL, NULL, NULL, NULL }
701 static const value_string wassp_tunnel_pdu_type[] = {
703 { 2, "RU Registration Request" },
704 { 3, "RU Registration Response" },
705 { 4, "RU Authentication Request" },
706 { 5, "RU Authentication Response" },
707 { 6, "RU Software Version Validate Request" },
708 { 7, "RU Software Version Validate Response" },
709 { 8, "RU Configuration Request" },
710 { 9, "RU Configuration Response" },
711 { 10, "RU Acknowledge" },
712 { 11, "RU Configuration Status Notify" },
713 { 12, "RU Set State Request" },
714 { 13, "RU Set State Response" },
715 { 14, "RU Statistics Notify" },
718 { 17, "SNMP Request" },
719 { 18, "SNMP Response" },
720 { 19, "BP Trap Notify" },
721 { 20, "BP Scan Request" },
722 { 21, "RFM Notify" },
723 { 22, "RU SNMP Alarm Notify" },
724 { 23, "RU SNMP Set Alarm" },
725 { 24, "RU SNMP Set Log Status" },
726 { 25, "RU SNMP Get Log Request" },
727 { 26, "RU SNMP Get Log Response" },
728 { 27, "SEC Update Notify" },
729 { 28, "RU Stats Req" },
730 { 29, "RU Stats Resp" },
731 { 30, "MU Stats Req" },
732 { 31, "MU Stats Response" },
738 static const value_string wassp_setresult_vals[] = {
747 dissect_snmp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *wassp_tree,
748 volatile guint32 offset, guint32 length, const ext_value_string *value_array _U_)
752 /* Don't add SNMP stuff to the info column */
753 if (check_col(pinfo->cinfo, COL_INFO))
754 col_set_writable(pinfo->cinfo, FALSE);
756 snmp_tvb = tvb_new_subset(tvb, offset, length, length);
758 /* Continue after SNMP dissection errors */
760 call_dissector(snmp_handle, snmp_tvb, pinfo, wassp_tree);
761 } CATCH2(BoundsError, ReportedBoundsError) {
762 expert_add_info_format(pinfo, NULL,
763 PI_MALFORMED, PI_ERROR,
764 "Malformed or short SNMP subpacket");
766 col_append_str(pinfo->cinfo, COL_INFO,
767 " [Malformed or short SNMP subpacket] " );
770 if (check_col(pinfo->cinfo, COL_INFO))
771 col_set_writable(pinfo->cinfo, TRUE);
779 dissect_tlv(tvbuff_t *tvb, packet_info *pinfo, proto_tree *wassp_tree,
780 guint32 offset, guint32 length _U_, const ext_value_string *value_array)
784 proto_item *tlv_item;
785 proto_item *tlv_tree;
786 proto_item *type_item;
790 tlv_type = tvb_get_ntohs(tvb, offset);
791 tlv_length = tvb_get_ntohs(tvb, offset + 2);
792 DISSECTOR_ASSERT(tlv_length >= 4);
793 tlv_item = proto_tree_add_text(wassp_tree, tvb,
798 extval_to_str_idx(tlv_type, value_array, NULL, "Unknown"));
799 tlv_tree = proto_item_add_subtree(tlv_item,
800 ett_wassp_tlv_header);
801 type_item = proto_tree_add_item(tlv_tree, hf_wassp_tlv_type,
802 tvb, offset, 2, FALSE);
803 proto_item_append_text(type_item, " = %s",
804 extval_to_str_idx(tlv_type, value_array,
805 &type_index, "Unknown"));
807 proto_tree_add_item(tlv_tree, hf_wassp_tlv_length,
808 tvb, offset, 2, FALSE);
816 tlv_end = offset + tlv_length;
818 /* Make hf_ handling independent of specialfuncion */
819 if ( type_index != -1 && value_array[type_index].hf_element) {
820 proto_tree_add_item(tlv_tree,
821 *(value_array[type_index].hf_element),
822 tvb, offset, tlv_length, FALSE);
824 proto_tree_add_item(tlv_tree, hf_wassp_tlv_data,
825 tvb, offset, tlv_length, FALSE);
827 if ( type_index != -1 && value_array[type_index].specialfunction ) {
830 while (offset < tlv_end) {
831 newoffset = value_array[type_index].specialfunction (
832 tvb, pinfo, tlv_tree, offset, tlv_length,
833 value_array[type_index].evs);
834 DISSECTOR_ASSERT(newoffset > offset);
842 dissect_wassp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
845 proto_tree *wassp_tree = NULL;
847 guint32 packet_length;
851 packet_type = tvb_get_guint8(tvb, 1);
852 if (check_col(pinfo->cinfo, COL_PROTOCOL))
853 col_set_str(pinfo->cinfo, COL_PROTOCOL, PROTO_SHORT_NAME);
854 if (check_col(pinfo->cinfo, COL_INFO))
855 col_add_str(pinfo->cinfo, COL_INFO, val_to_str(packet_type,
856 wassp_tunnel_pdu_type, "Type 0x%02x"));
859 ti = proto_tree_add_item(tree, proto_wassp, tvb, offset, -1,
861 wassp_tree = proto_item_add_subtree(ti, ett_wassp);
863 proto_tree_add_item(wassp_tree, hf_wassp_version, tvb, offset, 1,
867 proto_tree_add_item(wassp_tree, hf_wassp_type, tvb, offset, 1,
871 switch (packet_type) {
872 case 1: /* Discover ??? */
873 proto_tree_add_item(wassp_tree, hf_wassp_discover1, tvb, offset, 2,
876 packet_length = tvb_get_ntohs(tvb, offset);
877 proto_tree_add_item(wassp_tree, hf_wassp_length, tvb, offset, 2,
880 proto_tree_add_item(wassp_tree, hf_wassp_discover2, tvb, offset, 2,
883 subtype = tvb_get_ntohs(tvb, offset);
884 proto_tree_add_item(wassp_tree, hf_wassp_subtype, tvb, offset, 2,
889 proto_tree_add_item(wassp_tree, hf_wassp_ether, tvb, offset, 6,
894 proto_tree_add_item(wassp_tree, hf_wassp_discover3, tvb, offset, 2,
901 proto_tree_add_item(wassp_tree, hf_wassp_seqno, tvb, offset, 1,
905 proto_tree_add_item(wassp_tree, hf_wassp_flags, tvb, offset, 1,
909 proto_tree_add_item(wassp_tree, hf_wassp_sessionid, tvb, offset, 2,
913 packet_length = tvb_get_ntohs(tvb, offset);
914 proto_tree_add_item(wassp_tree, hf_wassp_length, tvb, offset, 2,
920 while (offset < packet_length)
921 offset = dissect_tlv(tvb, pinfo, wassp_tree,
922 offset, 0, wassp_tunnel_tlv_vals);
928 test_wassp(tvbuff_t *tvb)
930 /* Minimum of 8 bytes, first byte (version) has value of 3 */
931 if ( tvb_length(tvb) < 8
932 || tvb_get_guint8(tvb, 0) != 3
933 /* || tvb_get_guint8(tvb, 2) != 0
934 || tvb_get_ntohs(tvb, 6) > tvb_reported_length(tvb) */
943 dissect_wassp_heur(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
945 if ( !test_wassp(tvb) ) {
948 dissect_wassp(tvb, pinfo, tree);
954 dissect_wassp_static(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
956 if ( !test_wassp(tvb) ) {
959 return dissect_wassp(tvb, pinfo, tree);
963 proto_register_wassp(void)
965 static hf_register_info hf[] = {
968 { &hf_wassp_tlv_type,
969 { "TlvType", "wassp.tlv.type", FT_UINT8, BASE_DEC, NULL,
972 { &hf_wassp_tlv_length,
973 { "TlvLength", "wassp.tlv.length", FT_UINT8, BASE_DEC, NULL,
976 { &hf_wassp_tlv_data,
977 { "TlvData", "wassp.tlv.data", FT_BYTES, BASE_NONE, NULL,
980 /* WASSP tunnel header */
982 { "Protocol Version", "wassp.version", FT_UINT8, BASE_DEC, NULL,
986 { "PDU Type", "wassp.type", FT_UINT8, BASE_DEC, VALS(wassp_tunnel_pdu_type),
990 { "Sequence No", "wassp.seqno", FT_UINT8, BASE_DEC, NULL,
994 { "Flags", "wassp.flags", FT_UINT8, BASE_HEX, NULL,
997 { &hf_wassp_sessionid,
998 { "Session ID", "wassp.sessionid", FT_UINT8, BASE_DEC, NULL,
1002 { "PDU Length", "wassp.length", FT_UINT8, BASE_HEX, NULL,
1003 0x0, NULL, HFILL }},
1005 /* WASSP tunnel data */
1007 { "STATUS", "wassp.status", FT_UINT32, BASE_DEC, NULL,
1008 0x0, NULL, HFILL }},
1010 { &hf_ru_soft_version,
1011 { "RU-SOFT-VERSION", "wassp.ru.soft.version", FT_STRING, BASE_NONE, NULL,
1012 0x0, NULL, HFILL }},
1014 { &hf_ru_serial_number,
1015 { "RU-SERIAL-NUMBER", "wassp.ru.serial.number", FT_STRING, BASE_NONE, NULL,
1016 0x0, NULL, HFILL }},
1019 { "RU-CHALLENGE", "wassp.ru.challenge", FT_BYTES, BASE_NONE, NULL,
1020 0x0, NULL, HFILL }},
1023 { "RU-RESPONSE", "wassp.ru.response", FT_BYTES, BASE_NONE, NULL,
1024 0x0, NULL, HFILL }},
1027 { "AC-IPADDR", "wassp.ac.ipaddr", FT_IPv4, BASE_NONE, NULL,
1028 0x0, NULL, HFILL }},
1031 { "RU-VNS-ID", "wassp.ru.vns.id", FT_UINT32, BASE_DEC, NULL,
1032 0x0, NULL, HFILL }},
1035 { "TFTP-SERVER", "wassp.tftp.server", FT_IPv4, BASE_NONE, NULL,
1036 0x0, NULL, HFILL }},
1039 { "IMAGE-PATH", "wassp.image.path", FT_STRING, BASE_NONE, NULL,
1040 0x0, NULL, HFILL }},
1043 { "RU-CONFIG", "wassp.ru.config", FT_NONE, BASE_NONE, NULL,
1044 0x0, NULL, HFILL }},
1047 { "RU-STATE", "wassp.ru.state", FT_UINT32, BASE_DEC, NULL,
1048 0x0, NULL, HFILL }},
1050 { &hf_ru_session_key,
1051 { "RU-SESSION-KEY", "wassp.ru.session.key", FT_STRING, BASE_NONE, NULL,
1052 0x0, NULL, HFILL }},
1055 { "MESSAGE-TYPE", "wassp.message.type", FT_UINT32, BASE_DEC, NULL,
1056 0x0, NULL, HFILL }},
1058 { &hf_random_number,
1059 { "RANDOM-NUMBER", "wassp.random.number", FT_BYTES, BASE_NONE, NULL,
1060 0x0, NULL, HFILL }},
1062 { &hf_standby_timeout,
1063 { "STANDBY-TIMEOUT", "wassp.standby.timeout", FT_UINT32, BASE_DEC, NULL,
1064 0x0, NULL, HFILL }},
1066 { &hf_ru_challenge_id,
1067 { "RU-CHALLENGE-ID", "wassp.ru.challenge.id", FT_UINT32, BASE_DEC, NULL,
1068 0x0, NULL, HFILL }},
1071 { "RU-MODEL", "wassp.ru.model", FT_STRING, BASE_NONE, NULL,
1072 0x0, NULL, HFILL }},
1075 { "RU-SCAN-MODE", "wassp.ru.scan.mode", FT_UINT32, BASE_DEC, NULL,
1076 0x0, NULL, HFILL }},
1079 { "RU-SCAN-TYPE", "wassp.ru.scan.type", FT_UINT32, BASE_DEC, NULL,
1080 0x0, NULL, HFILL }},
1082 { &hf_ru_scan_interval,
1083 { "RU-SCAN-INTERVAL", "wassp.ru.scan.interval", FT_UINT32, BASE_DEC, NULL,
1084 0x0, NULL, HFILL }},
1086 { &hf_ru_radio_type,
1087 { "RU-RADIO-TYPE", "wassp.ru.radio.type", FT_UINT32, BASE_DEC, NULL,
1088 0x0, NULL, HFILL }},
1090 { &hf_ru_channel_dwell_time,
1091 { "RU-CHANNEL-DWELL-TIME", "wassp.ru.channel.dwell.time", FT_UINT32, BASE_DEC, NULL,
1092 0x0, NULL, HFILL }},
1094 { &hf_ru_channel_list,
1095 { "RU-CHANNEL-LIST", "wassp.ru.channel.list", FT_UINT32, BASE_DEC, NULL,
1096 0x0, NULL, HFILL }},
1099 { "RU-TRAP", "wassp.ru.trap", FT_STRING, BASE_NONE, NULL,
1100 0x0, NULL, HFILL }},
1102 { &hf_ru_scan_times,
1103 { "RU-SCAN-TIMES", "wassp.ru.scan.times", FT_UINT32, BASE_DEC, NULL,
1104 0x0, NULL, HFILL }},
1106 { &hf_ru_scan_delay,
1107 { "RU-SCAN-DELAY", "wassp.ru.scan.delay", FT_UINT32, BASE_DEC, NULL,
1108 0x0, NULL, HFILL }},
1110 { &hf_ru_scan_req_id,
1111 { "RU-SCAN-REQ-ID", "wassp.ru.scan.req.id", FT_UINT32, BASE_DEC, NULL,
1112 0x0, NULL, HFILL }},
1114 { &hf_static_config,
1115 { "STATIC-CONFIG", "wassp.static.config", FT_UINT32, BASE_DEC, NULL,
1116 0x0, NULL, HFILL }},
1118 { &hf_local_bridging,
1119 { "LOCAL-BRIDGING", "wassp.local.bridging", FT_UINT32, BASE_DEC, NULL,
1120 0x0, NULL, HFILL }},
1122 { &hf_static_bp_ipaddr,
1123 { "STATIC-BP-IPADDR", "wassp.static.bp.ipaddr", FT_IPv4, BASE_NONE, NULL,
1124 0x0, NULL, HFILL }},
1126 { &hf_static_bp_netmask,
1127 { "STATIC-BP-NETMASK", "wassp.static.bp.netmask", FT_IPv4, BASE_NONE, NULL,
1128 0x0, NULL, HFILL }},
1130 { &hf_static_bp_gateway,
1131 { "STATIC-BP-GATEWAY", "wassp.static.bp.gateway", FT_IPv4, BASE_NONE, NULL,
1132 0x0, NULL, HFILL }},
1134 { &hf_static_bm_ipaddr,
1135 { "STATIC-BM-IPADDR", "wassp.static.bm.ipaddr", FT_IPv4, BASE_NONE, NULL,
1136 0x0, NULL, HFILL }},
1139 { "RU-ALARM", "wassp.ru.alarm", FT_NONE, BASE_NONE, NULL,
1140 0x0, NULL, HFILL }},
1142 { &hf_bp_request_id,
1143 { "BP-REQUEST-ID", "wassp.bp.request.id", FT_UINT32, BASE_DEC, NULL,
1144 0x0, NULL, HFILL }},
1146 { &hf_snmp_error_status,
1147 { "SNMP-ERROR-STATUS", "wassp.snmp.error.status", FT_UINT32, BASE_DEC, NULL,
1148 0x0, NULL, HFILL }},
1150 { &hf_snmp_error_index,
1151 { "SNMP-ERROR-INDEX", "wassp.snmp.error.index", FT_UINT32, BASE_DEC, NULL,
1152 0x0, NULL, HFILL }},
1154 { &hf_ap_img_to_ram,
1155 { "AP-IMG-TO-RAM", "wassp.ap.img.to.ram", FT_UINT32, BASE_DEC, NULL,
1156 0x0, NULL, HFILL }},
1159 { "AP-IMG-ROLE", "wassp.ap.img.role", FT_UINT32, BASE_DEC, NULL,
1160 0x0, NULL, HFILL }},
1162 { &hf_ap_stats_block,
1163 { "AP Stats Block", "wassp.ap_stats_block", FT_NONE, BASE_NONE, NULL,
1164 0x0, NULL, HFILL }},
1167 { "Config", "wassp.tlv_config", FT_NONE, BASE_NONE, NULL,
1168 0x0, NULL, HFILL }},
1170 { &hf_wassp_vlan_tag,
1171 { "WASSP-VLAN-TAG", "wassp.wassp.vlan.tag", FT_INT32, BASE_DEC, NULL,
1172 0x0, NULL, HFILL }},
1174 { &hf_wassp_tunnel_type,
1175 { "WASSP-TUNNEL-TYPE", "wassp.wassp.tunnel.type", FT_UINT32, BASE_DEC, NULL,
1176 0x0, NULL, HFILL }},
1179 { "AP-DHCP-MODE", "wassp.ap.dhcp.mode", FT_UINT32, BASE_DEC, NULL,
1180 0x0, NULL, HFILL }},
1183 { "AP-IPADDR", "wassp.ap.ipaddr", FT_IPv4, BASE_NONE, NULL,
1184 0x0, NULL, HFILL }},
1187 { "AP-NETMASK", "wassp.ap.netmask", FT_IPv4, BASE_NONE, NULL,
1188 0x0, NULL, HFILL }},
1191 { "AP-GATEWAY", "wassp.ap.gateway", FT_IPv4, BASE_NONE, NULL,
1192 0x0, NULL, HFILL }},
1195 { "PREAUTH_RESP", "wassp.preauth.resp", FT_INT32, BASE_DEC, NULL,
1196 0x0, NULL, HFILL }},
1199 { "BP_PMK", "wassp.bp.pmk", FT_INT32, BASE_DEC, NULL,
1200 0x0, NULL, HFILL }},
1202 { &hf_ac_reg_challenge,
1203 { "AC_REG_CHALLENGE", "wassp.ac.reg.challenge", FT_INT32, BASE_DEC, NULL,
1204 0x0, NULL, HFILL }},
1206 { &hf_ac_reg_response,
1207 { "AC_REG_RESPONSE", "wassp.ac.reg.response", FT_INT32, BASE_DEC, NULL,
1208 0x0, NULL, HFILL }},
1211 { "STATS", "wassp.stats", FT_INT32, BASE_DEC, NULL,
1212 0x0, NULL, HFILL }},
1215 { "CERTIFICATE", "wassp.certificate", FT_INT32, BASE_DEC, NULL,
1216 0x0, NULL, HFILL }},
1219 { "RADIO_ID", "wassp.radio.id", FT_INT32, BASE_DEC, NULL,
1220 0x0, NULL, HFILL }},
1223 { "NETWORK_ID", "wassp.network.id", FT_INT32, BASE_DEC, NULL,
1224 0x0, NULL, HFILL }},
1227 { "MU_MAC", "wassp.mu.mac", FT_INT32, BASE_DEC, NULL,
1228 0x0, NULL, HFILL }},
1231 { "TIME", "wassp.time", FT_INT32, BASE_DEC, NULL,
1232 0x0, NULL, HFILL }},
1235 { "NUM_RADIOS", "wassp.num.radios", FT_INT32, BASE_DEC, NULL,
1236 0x0, NULL, HFILL }},
1239 { "RADIO_INFO", "wassp.radio.info", FT_INT32, BASE_DEC, NULL,
1240 0x0, NULL, HFILL }},
1243 { "NETWORK_INFO", "wassp.network.info", FT_INT32, BASE_DEC, NULL,
1244 0x0, NULL, HFILL }},
1247 { "VENDOR_ID", "wassp.vendor.id", FT_INT32, BASE_DEC, NULL,
1248 0x0, NULL, HFILL }},
1251 { "PRODUCT_ID", "wassp.product.id", FT_INT32, BASE_DEC, NULL,
1252 0x0, NULL, HFILL }},
1254 { &hf_radio_info_ack,
1255 { "RADIO_INFO_ACK", "wassp.radio.info.ack", FT_INT32, BASE_DEC, NULL,
1256 0x0, NULL, HFILL }},
1258 { &hf_mu_rf_stats_block,
1259 { "MU_RF_STATS_BLOCK", "wassp.mu.rf.stats.block", FT_INT32, BASE_DEC, NULL,
1260 0x0, NULL, HFILL }},
1262 { &hf_stats_request_type,
1263 { "STATS_REQUEST_TYPE", "wassp.stats.request.type", FT_INT32, BASE_DEC, NULL,
1264 0x0, NULL, HFILL }},
1267 { "STATS_LAST", "wassp.stats.last", FT_INT32, BASE_DEC, NULL,
1268 0x0, NULL, HFILL }},
1270 { &hf_mu_pmkid_list,
1271 { "MU_PMKID_LIST", "wassp.mu.pmkid.list", FT_INT32, BASE_DEC, NULL,
1272 0x0, NULL, HFILL }},
1275 { "MU_PMK_BP", "wassp.mu.pmk.bp", FT_INT32, BASE_DEC, NULL,
1276 0x0, NULL, HFILL }},
1279 { "MU_PMKID_BP", "wassp.mu.pmkid.bp", FT_INT32, BASE_DEC, NULL,
1280 0x0, NULL, HFILL }},
1282 { &hf_countdown_time,
1283 { "COUNTDOWN_TIME", "wassp.countdown.time", FT_INT32, BASE_DEC, NULL,
1284 0x0, NULL, HFILL }},
1286 /* WASSP tunnel subtypes AP stats block */
1287 { &hf_ap_stats_block_ether,
1288 { "Ether Stats", "wassp.ap_stats_block.ether", FT_NONE, BASE_NONE, NULL,
1289 0x0, NULL, HFILL }},
1291 { &hf_ap_stats_block_radio_a,
1292 { "Radio-A Stats", "wassp.ap_stats_block.radioa", FT_NONE, BASE_NONE, NULL,
1293 0x0, NULL, HFILL }},
1295 { &hf_ap_stats_block_radio_b_g,
1296 { "Radio-B/G Stats", "wassp.ap_stats_block.radiobg", FT_NONE, BASE_NONE, NULL,
1297 0x0, NULL, HFILL }},
1299 { &hf_dot1x_stats_block,
1300 { "DOT1x_STATS_BLOCK", "wassp.ap_stats_block.dot1x", FT_NONE, BASE_NONE, NULL,
1301 0x0, NULL, HFILL }},
1304 { &hf_stats_dot11_ackfailurecount,
1305 { "DOT11_ACKFailureCount", "wassp.stats.dot11.ackfailurecount", FT_INT32, BASE_DEC, NULL,
1306 0x0, NULL, HFILL }},
1308 { &hf_stats_dot11_fcserrorcount,
1309 { "DOT11_FCSErrorCount", "wassp.stats.dot11.fcserrorcount", FT_INT32, BASE_DEC, NULL,
1310 0x0, NULL, HFILL }},
1312 { &hf_stats_dot11_failedcount,
1313 { "DOT11_FailedCount", "wassp.stats.dot11.failedcount", FT_INT32, BASE_DEC, NULL,
1314 0x0, NULL, HFILL }},
1316 { &hf_stats_dot11_frameduplicatecount,
1317 { "DOT11_FrameDuplicateCount", "wassp.stats.dot11.frameduplicatecount", FT_INT32, BASE_DEC, NULL,
1318 0x0, NULL, HFILL }},
1320 { &hf_stats_dot11_multicastreceivedframecount,
1321 { "DOT11_MulticastReceivedFrameCount", "wassp.stats.dot11.multicastreceivedframecount", FT_INT32, BASE_DEC, NULL,
1322 0x0, NULL, HFILL }},
1324 { &hf_stats_dot11_multicasttransmittedframecount,
1325 { "DOT11_MulticastTransmittedFrameCount", "wassp.stats.dot11.multicasttransmittedframecount", FT_INT32, BASE_DEC, NULL,
1326 0x0, NULL, HFILL }},
1328 { &hf_stats_dot11_multipleretrycount,
1329 { "DOT11_MultipleRetryCount", "wassp.stats.dot11.multipleretrycount", FT_INT32, BASE_DEC, NULL,
1330 0x0, NULL, HFILL }},
1332 { &hf_stats_dot11_rtsfailurecount,
1333 { "DOT11_RTSFailureCount", "wassp.stats.dot11.rtsfailurecount", FT_INT32, BASE_DEC, NULL,
1334 0x0, NULL, HFILL }},
1336 { &hf_stats_dot11_rtssuccesscount,
1337 { "DOT11_RTSSuccessCount", "wassp.stats.dot11.rtssuccesscount", FT_INT32, BASE_DEC, NULL,
1338 0x0, NULL, HFILL }},
1340 { &hf_stats_dot11_receivedfragementcount,
1341 { "DOT11_ReceivedFragementCount", "wassp.stats.dot11.receivedfragementcount", FT_INT32, BASE_DEC, NULL,
1342 0x0, NULL, HFILL }},
1344 { &hf_stats_dot11_retrycount,
1345 { "DOT11_RetryCount", "wassp.stats.dot11.retrycount", FT_INT32, BASE_DEC, NULL,
1346 0x0, NULL, HFILL }},
1348 { &hf_stats_dot11_transmittedfragmentcount,
1349 { "DOT11_TransmittedFragmentCount", "wassp.stats.dot11.transmittedfragmentcount", FT_INT32, BASE_DEC, NULL,
1350 0x0, NULL, HFILL }},
1352 { &hf_stats_dot11_transmittedframecount,
1353 { "DOT11_TransmittedFrameCount", "wassp.stats.dot11.transmittedframecount", FT_INT32, BASE_DEC, NULL,
1354 0x0, NULL, HFILL }},
1356 { &hf_stats_dot11_webundecryptablecount,
1357 { "DOT11_WEBUndecryptableCount", "wassp.stats.dot11.webundecryptablecount", FT_INT32, BASE_DEC, NULL,
1358 0x0, NULL, HFILL }},
1360 { &hf_stats_dot11_wepexcludedcount,
1361 { "DOT11_WEPExcludedCount", "wassp.stats.dot11.wepexcludedcount", FT_INT32, BASE_DEC, NULL,
1362 0x0, NULL, HFILL }},
1364 { &hf_stats_dot11_wepicverrorcount,
1365 { "DOT11_WEPICVErrorCount", "wassp.stats.dot11.wepicverrorcount", FT_INT32, BASE_DEC, NULL,
1366 0x0, NULL, HFILL }},
1368 { &hf_stats_drm_allocfailures,
1369 { "DRM_AllocFailures", "wassp.stats.drm.allocfailures", FT_INT32, BASE_DEC, NULL,
1370 0x0, NULL, HFILL }},
1372 { &hf_stats_drm_currentchannel,
1373 { "DRM_CurrentChannel", "wassp.stats.drm.currentchannel", FT_INT32, BASE_DEC, NULL,
1374 0x0, NULL, HFILL }},
1376 { &hf_stats_drm_currentpower,
1377 { "DRM_CurrentPower", "wassp.stats.drm.currentpower", FT_INT32, BASE_DEC, NULL,
1378 0x0, NULL, HFILL }},
1380 { &hf_stats_drm_datatxfailures,
1381 { "DRM_DataTxFailures", "wassp.stats.drm.datatxfailures", FT_INT32, BASE_DEC, NULL,
1382 0x0, NULL, HFILL }},
1384 { &hf_stats_drm_devicetype,
1385 { "DRM_DeviceType", "wassp.stats.drm.devicetype", FT_INT32, BASE_DEC, NULL,
1386 0x0, NULL, HFILL }},
1388 { &hf_stats_drm_indatapackets,
1389 { "DRM_InDataPackets", "wassp.stats.drm.indatapackets", FT_INT32, BASE_DEC, NULL,
1390 0x0, NULL, HFILL }},
1392 { &hf_stats_drm_inmgmtpackets,
1393 { "DRM_InMgmtPackets", "wassp.stats.drm.inmgmtpackets", FT_INT32, BASE_DEC, NULL,
1394 0x0, NULL, HFILL }},
1396 { &hf_stats_drm_loadfactor,
1397 { "DRM_LoadFactor", "wassp.stats.drm.loadfactor", FT_INT32, BASE_DEC, NULL,
1398 0x0, NULL, HFILL }},
1400 { &hf_stats_drm_mgmttxfailures,
1401 { "DRM_MgmtTxFailures", "wassp.stats.drm.mgmttxfailures", FT_INT32, BASE_DEC, NULL,
1402 0x0, NULL, HFILL }},
1404 { &hf_stats_drm_msgqfailures,
1405 { "DRM_MsgQFailures", "wassp.stats.drm.msgqfailures", FT_INT32, BASE_DEC, NULL,
1406 0x0, NULL, HFILL }},
1408 { &hf_stats_drm_nodrmcurrentchannel,
1409 { "DRM_NoDRMCurrentChannel", "wassp.stats.drm.nodrmcurrentchannel", FT_INT32, BASE_DEC, NULL,
1410 0x0, NULL, HFILL }},
1412 { &hf_stats_drm_outdatapackets,
1413 { "DRM_OutDataPackets", "wassp.stats.drm.outdatapackets", FT_INT32, BASE_DEC, NULL,
1414 0x0, NULL, HFILL }},
1416 { &hf_stats_drm_outmgmtpackets,
1417 { "DRM_OutMgmtPackets", "wassp.stats.drm.outmgmtpackets", FT_INT32, BASE_DEC, NULL,
1418 0x0, NULL, HFILL }},
1420 { &hf_stats_if_inbcastpackets,
1421 { "IF_InBcastPackets", "wassp.stats.if.inbcastpackets", FT_INT32, BASE_DEC, NULL,
1422 0x0, NULL, HFILL }},
1424 { &hf_stats_if_indiscards,
1425 { "IF_InDiscards", "wassp.stats.if.indiscards", FT_INT32, BASE_DEC, NULL,
1426 0x0, NULL, HFILL }},
1428 { &hf_stats_if_inerrors,
1429 { "IF_InErrors", "wassp.stats.if.inerrors", FT_INT32, BASE_DEC, NULL,
1430 0x0, NULL, HFILL }},
1432 { &hf_stats_if_inmcastpackets,
1433 { "IF_InMcastPackets", "wassp.stats.if.inmcastpackets", FT_INT32, BASE_DEC, NULL,
1434 0x0, NULL, HFILL }},
1436 { &hf_stats_if_inoctets,
1437 { "IF_InOctets", "wassp.stats.if.inoctets", FT_INT32, BASE_DEC, NULL,
1438 0x0, NULL, HFILL }},
1440 { &hf_stats_if_inucastpackets,
1441 { "IF_InUcastPackets", "wassp.stats.if.inucastpackets", FT_INT32, BASE_DEC, NULL,
1442 0x0, NULL, HFILL }},
1445 { "IF_MTU", "wassp.stats.if.mtu", FT_INT32, BASE_DEC, NULL,
1446 0x0, NULL, HFILL }},
1448 { &hf_stats_if_outbcastpackets,
1449 { "IF_OutBcastPackets", "wassp.stats.if.outbcastpackets", FT_INT32, BASE_DEC, NULL,
1450 0x0, NULL, HFILL }},
1452 { &hf_stats_if_outdiscards,
1453 { "IF_OutDiscards", "wassp.stats.if.outdiscards", FT_INT32, BASE_DEC, NULL,
1454 0x0, NULL, HFILL }},
1456 { &hf_stats_if_outerrors,
1457 { "IF_OutErrors", "wassp.stats.if.outerrors", FT_INT32, BASE_DEC, NULL,
1458 0x0, NULL, HFILL }},
1460 { &hf_stats_if_outoctets,
1461 { "IF_OutOctets", "wassp.stats.if.outoctets", FT_INT32, BASE_DEC, NULL,
1462 0x0, NULL, HFILL }},
1464 { &hf_stats_if_outucastpackets,
1465 { "IF_OutUcastPackets", "wassp.stats.if.outucastpackets", FT_INT32, BASE_DEC, NULL,
1466 0x0, NULL, HFILL }},
1468 { &hf_stats_if_outmcastpackets,
1469 { "IF_OutMCastPackets", "wassp.stats.if.outmcastpackets", FT_INT32, BASE_DEC, NULL,
1470 0x0, NULL, HFILL }},
1472 { &hf_stats_mu_address,
1473 { "MU_Address", "wassp.stats.mu.address", FT_INT32, BASE_DEC, NULL,
1474 0x0, NULL, HFILL }},
1476 { &hf_stats_mu_associationcount,
1477 { "MU_AssociationCount", "wassp.stats.mu.associationcount", FT_INT32, BASE_DEC, NULL,
1478 0x0, NULL, HFILL }},
1480 { &hf_stats_mu_authenticationcount,
1481 { "MU_AuthenticationCount", "wassp.stats.mu.authenticationcount", FT_INT32, BASE_DEC, NULL,
1482 0x0, NULL, HFILL }},
1484 { &hf_stats_mu_deassociationcount,
1485 { "MU_DeAssociationCount", "wassp.stats.mu.deassociationcount", FT_INT32, BASE_DEC, NULL,
1486 0x0, NULL, HFILL }},
1488 { &hf_stats_mu_deauthenticationcount,
1489 { "MU_DeAuthenticationCount", "wassp.stats.mu.deauthenticationcount", FT_INT32, BASE_DEC, NULL,
1490 0x0, NULL, HFILL }},
1492 { &hf_stats_mu_ifindex,
1493 { "MU_IfIndex", "wassp.stats.mu.ifindex", FT_INT32, BASE_DEC, NULL,
1494 0x0, NULL, HFILL }},
1496 { &hf_stats_mu_reassociationcount,
1497 { "MU_ReAssociationCount", "wassp.stats.mu.reassociationcount", FT_INT32, BASE_DEC, NULL,
1498 0x0, NULL, HFILL }},
1500 { &hf_stats_mu_receivedbytes,
1501 { "MU_ReceivedBytes", "wassp.stats.mu.receivedbytes", FT_INT32, BASE_DEC, NULL,
1502 0x0, NULL, HFILL }},
1504 { &hf_stats_mu_receivederrors,
1505 { "MU_ReceivedErrors", "wassp.stats.mu.receivederrors", FT_INT32, BASE_DEC, NULL,
1506 0x0, NULL, HFILL }},
1508 { &hf_stats_mu_receivedframecount,
1509 { "MU_ReceivedFrameCount", "wassp.stats.mu.receivedframecount", FT_INT32, BASE_DEC, NULL,
1510 0x0, NULL, HFILL }},
1512 { &hf_stats_mu_receivedrssi,
1513 { "MU_ReceivedRSSI", "wassp.stats.mu.receivedrssi", FT_INT32, BASE_DEC, NULL,
1514 0x0, NULL, HFILL }},
1516 { &hf_stats_mu_receivedrate,
1517 { "MU_ReceivedRate", "wassp.stats.mu.receivedrate", FT_INT32, BASE_DEC, NULL,
1518 0x0, NULL, HFILL }},
1520 { &hf_stats_mu_transmittedbytes,
1521 { "MU_TransmittedBytes", "wassp.stats.mu.transmittedbytes", FT_INT32, BASE_DEC, NULL,
1522 0x0, NULL, HFILL }},
1524 { &hf_stats_mu_transmittederrors,
1525 { "MU_TransmittedErrors", "wassp.stats.mu.transmittederrors", FT_INT32, BASE_DEC, NULL,
1526 0x0, NULL, HFILL }},
1528 { &hf_stats_mu_transmittedframecount,
1529 { "MU_TransmittedFrameCount", "wassp.stats.mu.transmittedframecount", FT_INT32, BASE_DEC, NULL,
1530 0x0, NULL, HFILL }},
1532 { &hf_stats_mu_transmittedrssi,
1533 { "MU_TransmittedRSSI", "wassp.stats.mu.transmittedrssi", FT_INT32, BASE_DEC, NULL,
1534 0x0, NULL, HFILL }},
1536 { &hf_stats_mu_transmittedrate,
1537 { "MU_TransmittedRate", "wassp.stats.mu.transmittedrate", FT_INT32, BASE_DEC, NULL,
1538 0x0, NULL, HFILL }},
1540 { &hf_stats_mu_rf_stats_end,
1541 { "MU_RF_STATS_END", "wassp.stats.mu.rf.stats.end", FT_INT32, BASE_DEC, NULL,
1542 0x0, NULL, HFILL }},
1544 { &hf_stats_rfc_1213_sysuptime,
1545 { "RFC_1213_SYSUPTIME", "wassp.stats.rfc.1213.sysuptime", FT_INT32, BASE_DEC, NULL,
1546 0x0, NULL, HFILL }},
1548 { &hf_dot1x_stats_credent,
1549 { "DOT1x_CREDENT", "wassp.stats.dot1x.credent", FT_INT32, BASE_DEC, NULL,
1550 0x0, NULL, HFILL }},
1552 { &hf_dot1x_stats_end_date,
1553 { "DOT1x_END_DATE", "wassp.stats.dot1x.enddate", FT_INT32, BASE_DEC, NULL,
1554 0x0, NULL, HFILL }},
1556 { &hf_stats_tlv_max,
1557 { "TLV_MAX", "wassp.stats.tlvmax", FT_INT32, BASE_DEC, NULL,
1558 0x0, NULL, HFILL }},
1560 /* WASSP tunnel subtypes TLV config */
1562 { "Config Radio", "wassp.tlv_config.radio", FT_NONE, BASE_NONE, NULL,
1563 0x0, NULL, HFILL }},
1566 { "Config VNS", "wassp.tlv_config.vns", FT_NONE, BASE_NONE, NULL,
1567 0x0, NULL, HFILL }},
1570 { &hf_config_trace_status_debug,
1571 { "TRACE_STATUS_DEBUG", "wassp.config.trace.status.debug", FT_INT32, BASE_DEC, NULL,
1572 0x0, NULL, HFILL }},
1574 { &hf_config_trace_status_config,
1575 { "TRACE_STATUS_CONFIG", "wassp.config.trace.status.config", FT_INT32, BASE_DEC, NULL,
1576 0x0, NULL, HFILL }},
1578 { &hf_config_use_bcast_for_disassc,
1579 { "USE_BCAST_FOR_DISASSC", "wassp.config.use.bcast.for.disassc", FT_INT32, BASE_DEC, NULL,
1580 0x0, NULL, HFILL }},
1582 { &hf_config_bandwidth_voice_assc,
1583 { "BANDWIDTH_VOICE_ASSC", "wassp.config.bandwidth.voice.assc", FT_INT32, BASE_DEC, NULL,
1584 0x0, NULL, HFILL }},
1586 { &hf_config_bandwidth_voice_reassc,
1587 { "BANDWIDTH_VOICE_REASSC", "wassp.config.bandwidth.voice.reassc", FT_INT32, BASE_DEC, NULL,
1588 0x0, NULL, HFILL }},
1590 { &hf_config_bandwidth_video_assc,
1591 { "BANDWIDTH_VIDEO_ASSC", "wassp.config.bandwidth.video.assc", FT_INT32, BASE_DEC, NULL,
1592 0x0, NULL, HFILL }},
1594 { &hf_config_bandwidth_video_reassc,
1595 { "BANDWIDTH_VIDEO_REASSC", "wassp.config.bandwidth.video.reassc", FT_INT32, BASE_DEC, NULL,
1596 0x0, NULL, HFILL }},
1598 { &hf_config_bandwidth_video_reserve,
1599 { "BANDWIDTH_VIDEO_RESERVE", "wassp.config.bandwidth.video.reserve", FT_INT32, BASE_DEC, NULL,
1600 0x0, NULL, HFILL }},
1602 { &hf_config_bandwidth_adm_ctrl_reserve,
1603 { "BANDWIDTH_ADM_CTRL_RESERVE", "wassp.config.bandwidth.adm.ctrl.reserve", FT_INT32, BASE_DEC, NULL,
1604 0x0, NULL, HFILL }},
1606 { &hf_config_vlan_tag,
1607 { "VLAN_TAG", "wassp.config.vlan.tag", FT_INT32, BASE_DEC, NULL,
1608 0x0, NULL, HFILL }},
1610 { &hf_config_country_code,
1611 { "COUNTRY_CODE", "wassp.config.country.code", FT_INT32, BASE_DEC, NULL,
1612 0x0, NULL, HFILL }},
1614 { &hf_config_poll_duration,
1615 { "POLL_DURATION", "wassp.config.poll.duration", FT_INT32, BASE_DEC, NULL,
1616 0x0, NULL, HFILL }},
1618 { &hf_config_poll_interval,
1619 { "POLL_INTERVAL", "wassp.config.poll.interval", FT_INT32, BASE_DEC, NULL,
1620 0x0, NULL, HFILL }},
1622 { &hf_config_poll_maintain_client_session,
1623 { "POLL_MAINTAIN_CLIENT_SESSION", "wassp.config.poll.maintain.client.session", FT_INT32, BASE_DEC, NULL,
1624 0x0, NULL, HFILL }},
1626 { &hf_config_telnet_enable,
1627 { "TELNET_ENABLE", "wassp.config.telnet.enable", FT_INT32, BASE_DEC, NULL,
1628 0x0, NULL, HFILL }},
1630 { &hf_config_telnet_password,
1631 { "TELNET_PASSWORD", "wassp.config.telnet.password", FT_STRING, BASE_NONE, NULL,
1632 0x0, NULL, HFILL }},
1634 { &hf_config_telnet_password_entry_mode,
1635 { "TELNET_PASSWORD_ENTRY_MODE", "wassp.config.telnet.password.entry.mode", FT_INT32, BASE_DEC, NULL,
1636 0x0, NULL, HFILL }},
1638 { &hf_config_outdoor_enable_environment,
1639 { "OUTDOOR_ENABLE_ENVIRONMENT", "wassp.config.outdoor.enable.environment", FT_INT32, BASE_DEC, NULL,
1640 0x0, NULL, HFILL }},
1642 { &hf_config_slp_retry_count,
1643 { "SLP_RETRY_COUNT", "wassp.config.slp.retry.count", FT_INT32, BASE_DEC, NULL,
1644 0x0, NULL, HFILL }},
1646 { &hf_config_slp_retry_delay,
1647 { "SLP_RETRY_DELAY", "wassp.config.slp.retry.delay", FT_INT32, BASE_DEC, NULL,
1648 0x0, NULL, HFILL }},
1650 { &hf_config_dns_retry_count,
1651 { "DNS_RETRY_COUNT", "wassp.config.dns.retry.count", FT_INT32, BASE_DEC, NULL,
1652 0x0, NULL, HFILL }},
1654 { &hf_config_dns_retry_delay,
1655 { "DNS_RETRY_DELAY", "wassp.config.dns.retry.delay", FT_INT32, BASE_DEC, NULL,
1656 0x0, NULL, HFILL }},
1658 { &hf_config_mcast_slp_retry_count,
1659 { "MCAST_SLP_RETRY_COUNT", "wassp.config.mcast.slp.retry.count", FT_INT32, BASE_DEC, NULL,
1660 0x0, NULL, HFILL }},
1662 { &hf_config_mcast_slp_retry_delay,
1663 { "MCAST_SLP_RETRY_DELAY", "wassp.config.mcast.slp.retry.delay", FT_INT32, BASE_DEC, NULL,
1664 0x0, NULL, HFILL }},
1666 { &hf_config_disc_retry_count,
1667 { "DISC_RETRY_COUNT", "wassp.config.disc.retry.count", FT_INT32, BASE_DEC, NULL,
1668 0x0, NULL, HFILL }},
1670 { &hf_config_disc_retry_delay,
1671 { "DISC_RETRY_DELAY", "wassp.config.disc.retry.delay", FT_BYTES, BASE_NONE, NULL,
1672 0x0, NULL, HFILL }},
1674 { &hf_config_logging_alarm_sev,
1675 { "LOGGING_ALARM_SEV", "wassp.config.logging.alarm.sev", FT_INT32, BASE_DEC, NULL,
1676 0x0, NULL, HFILL }},
1678 { &hf_config_blacklist_blacklist_add,
1679 { "BLACKLIST_BLACKLIST_ADD", "wassp.config.blacklist.blacklist.add", FT_INT32, BASE_DEC, NULL,
1680 0x0, NULL, HFILL }},
1682 { &hf_config_failover_ac_ip_addr,
1683 { "FAILOVER_AC_IP_ADDR", "wassp.config.failover.ac.ip.addr", FT_INT32, BASE_DEC, NULL,
1684 0x0, NULL, HFILL }},
1686 { &hf_config_static_ac_ip_addr,
1687 { "STATIC_AC_IP_ADDR", "wassp.config.static.ac.ip.addr", FT_INT32, BASE_DEC, NULL,
1688 0x0, NULL, HFILL }},
1690 { &hf_config_dhcp_assignment,
1691 { "DHCP_ASSIGNMENT", "wassp.config.dhcp.assignment", FT_INT32, BASE_DEC, NULL,
1692 0x0, NULL, HFILL }},
1694 { &hf_config_static_ap_ip_addr,
1695 { "STATIC_AP_IP_ADDR", "wassp.config.static.ap.ip.addr", FT_INT32, BASE_DEC, NULL,
1696 0x0, NULL, HFILL }},
1698 { &hf_config_static_ap_ip_netmask,
1699 { "STATIC_AP_IP_NETMASK", "wassp.config.static.ap.ip.netmask", FT_INT32, BASE_DEC, NULL,
1700 0x0, NULL, HFILL }},
1702 { &hf_config_static_ap_default_gw,
1703 { "STATIC_AP_DEFAULT_GW", "wassp.config.static.ap.default.gw", FT_INT32, BASE_DEC, NULL,
1704 0x0, NULL, HFILL }},
1706 { &hf_config_blacklist_del,
1707 { "BLACKLIST_DEL", "wassp.config.blacklist.del", FT_INT32, BASE_DEC, NULL,
1708 0x0, NULL, HFILL }},
1710 { &hf_config_macaddr_req,
1711 { "MACADDR_REQ", "wassp.config.macaddr.req", FT_INT32, BASE_DEC, NULL,
1712 0x0, NULL, HFILL }},
1714 { &hf_config_availability_mode,
1715 { "AVAILABILITY_MODE", "wassp.config.availability.mode", FT_INT32, BASE_DEC, NULL,
1716 0x0, NULL, HFILL }},
1718 /* WASSP config vns */
1719 { &hf_config_vns_radio_id,
1720 { "V_RADIO_ID", "wassp.config.vns.radio.id", FT_INT32, BASE_DEC, NULL,
1721 0x0, NULL, HFILL }},
1723 { &hf_config_vns_vns_id,
1724 { "V_VNS_ID", "wassp.config.vns.vns.id", FT_INT32, BASE_DEC, NULL,
1725 0x0, NULL, HFILL }},
1727 { &hf_config_vns_turbo_voice,
1728 { "V_TURBO_VOICE", "wassp.config.vns.turbo.voice", FT_INT32, BASE_DEC, NULL,
1729 0x0, NULL, HFILL }},
1731 { &hf_config_vns_prop_ie,
1732 { "V_PROP_IE", "wassp.config.vns.prop.ie", FT_INT32, BASE_DEC, NULL,
1733 0x0, NULL, HFILL }},
1735 { &hf_config_vns_enable_802_11_h,
1736 { "V_ENABLE_802_11_H", "wassp.config.vns.enable.802.11.h", FT_INT32, BASE_DEC, NULL,
1737 0x0, NULL, HFILL }},
1739 { &hf_config_vns_power_backoff,
1740 { "V_POWER_BACKOFF", "wassp.config.vns.power.backoff", FT_INT32, BASE_DEC, NULL,
1741 0x0, NULL, HFILL }},
1743 { &hf_config_vns_bridge_mode,
1744 { "V_BRIDGE_MODE", "wassp.config.vns.bridge.mode", FT_INT32, BASE_DEC, NULL,
1745 0x0, NULL, HFILL }},
1747 { &hf_config_vns_vlan_tag,
1748 { "V_VLAN_TAG", "wassp.config.vns.vlan.tag", FT_INT32, BASE_DEC, NULL,
1749 0x0, NULL, HFILL }},
1751 { &hf_config_vns_process_ie_req,
1752 { "V_PROCESS_IE_REQ", "wassp.config.vns.process.ie.req", FT_INT32, BASE_DEC, NULL,
1753 0x0, NULL, HFILL }},
1755 { &hf_config_vns_enable_u_apsd,
1756 { "V_ENABLE_U_APSD", "wassp.config.vns.enable.u.apsd", FT_INT32, BASE_DEC, NULL,
1757 0x0, NULL, HFILL }},
1759 { &hf_config_vns_adm_ctrl_voice,
1760 { "V_ADM_CTRL_VOICE", "wassp.config.vns.adm.ctrl.voice", FT_INT32, BASE_DEC, NULL,
1761 0x0, NULL, HFILL }},
1763 { &hf_config_vns_adm_ctrl_video,
1764 { "V_ADM_CTRL_VIDEO", "wassp.config.vns.adm.ctrl.video", FT_INT32, BASE_DEC, NULL,
1765 0x0, NULL, HFILL }},
1767 { &hf_config_vns_qos_up_value,
1768 { "V_QOS_UP_VALUE", "wassp.config.vns.qos.up.value", FT_BYTES, BASE_NONE, NULL,
1769 0x0, NULL, HFILL }},
1771 { &hf_config_vns_priority_override,
1772 { "V_PRIORITY_OVERRIDE", "wassp.config.vns.priority.override", FT_INT32, BASE_DEC, NULL,
1773 0x0, NULL, HFILL }},
1775 { &hf_config_vns_dscp_override_value,
1776 { "V_DSCP_OVERRIDE_VALUE", "wassp.config.vns.dscp.override.value", FT_INT32, BASE_DEC, NULL,
1777 0x0, NULL, HFILL }},
1779 { &hf_config_vns_enable_802_11_e,
1780 { "V_ENABLE_802_11_E", "wassp.config.vns.enable.802.11.e", FT_INT32, BASE_DEC, NULL,
1781 0x0, NULL, HFILL }},
1783 { &hf_config_vns_enable_wmm,
1784 { "V_ENABLE_WMM", "wassp.config.vns.enable.wmm", FT_INT32, BASE_DEC, NULL,
1785 0x0, NULL, HFILL }},
1787 { &hf_config_vns_legacy_client_priority,
1788 { "V_LEGACY_CLIENT_PRIORITY", "wassp.config.vns.legacy.client.priority", FT_INT32, BASE_DEC, NULL,
1789 0x0, NULL, HFILL }},
1791 { &hf_config_vns_ssid_id,
1792 { "V_SSID_ID", "wassp.config.vns.ssid.id", FT_INT32, BASE_DEC, NULL,
1793 0x0, NULL, HFILL }},
1795 { &hf_config_vns_ssid_bcast_string,
1796 { "V_SSID_BCAST_STRING", "wassp.config.vns.ssid.bcast.string", FT_STRING, BASE_NONE, NULL,
1797 0x0, NULL, HFILL }},
1799 { &hf_config_vns_ssid_suppress,
1800 { "V_SSID_SUPPRESS", "wassp.config.vns.ssid.suppress", FT_INT32, BASE_DEC, NULL,
1801 0x0, NULL, HFILL }},
1803 { &hf_config_vns_802_1_x_enable,
1804 { "V_802_1_X_ENABLE", "wassp.config.vns.802.1.x.enable", FT_INT32, BASE_DEC, NULL,
1805 0x0, NULL, HFILL }},
1807 { &hf_config_vns_802_1_x_dyn_rekey,
1808 { "V_802_1_X_DYN_REKEY", "wassp.config.vns.802.1.x.dyn.rekey", FT_INT32, BASE_DEC, NULL,
1809 0x0, NULL, HFILL }},
1811 { &hf_config_vns_wpa_enable,
1812 { "V_WPA_ENABLE", "wassp.config.vns.wpa.enable", FT_INT32, BASE_DEC, NULL,
1813 0x0, NULL, HFILL }},
1815 { &hf_config_vns_wpa_v2_enable,
1816 { "V_WPA_V2_ENABLE", "wassp.config.vns.wpa.v2.enable", FT_INT32, BASE_DEC, NULL,
1817 0x0, NULL, HFILL }},
1819 { &hf_config_vns_wpa_passphrase,
1820 { "V_WPA_PASSPHRASE", "wassp.config.vns.wpa.passphrase", FT_STRING, BASE_NONE, NULL,
1821 0x0, NULL, HFILL }},
1823 { &hf_config_vns_wpa_cipher_type,
1824 { "V_WPA_CIPHER_TYPE", "wassp.config.vns.wpa.cipher.type", FT_INT32, BASE_DEC, NULL,
1825 0x0, NULL, HFILL }},
1827 { &hf_config_vns_wpa_v2_cipher_type,
1828 { "V_WPA_V2_CIPHER_TYPE", "wassp.config.vns.wpa.v2.cipher.type", FT_INT32, BASE_DEC, NULL,
1829 0x0, NULL, HFILL }},
1831 { &hf_config_vns_wep_key_index,
1832 { "V_WEP_KEY_INDEX", "wassp.config.vns.wep.key.index", FT_INT32, BASE_DEC, NULL,
1833 0x0, NULL, HFILL }},
1835 { &hf_config_vns_wep_default_key_value,
1836 { "V_WEP_DEFAULT_KEY_VALUE", "wassp.config.vns.wep.default.key.value", FT_INT32, BASE_DEC, NULL,
1837 0x0, NULL, HFILL }},
1839 { &hf_config_vns_channel_report,
1840 { "V_CHANNEL_REPORT", "wassp.config.vns.channel.report", FT_INT32, BASE_DEC, NULL,
1841 0x0, NULL, HFILL }},
1843 { &hf_config_vns_wds_service,
1844 { "V_WDS_SERVICE", "wassp.config.vns.wds.service", FT_INT32, BASE_DEC, NULL,
1845 0x0, NULL, HFILL }},
1847 { &hf_config_vns_wds_pref_parent,
1848 { "V_WDS_PREF_PARENT", "wassp.config.vns.wds.pref.parent", FT_INT32, BASE_DEC, NULL,
1849 0x0, NULL, HFILL }},
1851 { &hf_config_vns_wds_bridge,
1852 { "V_WDS_BRIDGE", "wassp.config.vns.wds.bridge", FT_INT32, BASE_DEC, NULL,
1853 0x0, NULL, HFILL }},
1855 { &hf_config_vns_okc_enabled,
1856 { "V_OKC_ENABLED", "wassp.config.vns.okc.enabled", FT_INT32, BASE_DEC, NULL,
1857 0x0, NULL, HFILL }},
1859 { &hf_config_vns_mu_assoc_retries,
1860 { "V_MU_ASSOC_RETRIES", "wassp.config.vns.mu.assoc.retries", FT_INT32, BASE_DEC, NULL,
1861 0x0, NULL, HFILL }},
1863 { &hf_config_vns_mu_assoc_timeout,
1864 { "V_MU_ASSOC_TIMEOUT", "wassp.config.vns.mu.assoc.timeout", FT_INT32, BASE_DEC, NULL,
1865 0x0, NULL, HFILL }},
1867 { &hf_config_vns_wds_parent,
1868 { "V_WDS_PARENT", "wassp.config.vns.wds.parent", FT_INT32, BASE_DEC, NULL,
1869 0x0, NULL, HFILL }},
1871 { &hf_config_vns_wds_back_parent,
1872 { "V_WDS_BACK_PARENT", "wassp.config.vns.wds.back.parent", FT_INT32, BASE_DEC, NULL,
1873 0x0, NULL, HFILL }},
1875 { &hf_config_vns_wds_name,
1876 { "V_WDS_NAME", "wassp.config.vns.wds.name", FT_STRING, BASE_NONE, NULL,
1877 0x0, NULL, HFILL }},
1879 /* WASSP config radio */
1880 { &hf_config_radio_radio_id,
1881 { "R_RADIO_ID", "wassp.config.radio.radio.id", FT_INT32, BASE_DEC, NULL,
1882 0x0, NULL, HFILL }},
1884 { &hf_config_radio_enable_radio,
1885 { "R_ENABLE_RADIO", "wassp.config.radio.enable.radio", FT_INT32, BASE_DEC, NULL,
1886 0x0, NULL, HFILL }},
1888 { &hf_config_radio_channel,
1889 { "R_CHANNEL", "wassp.config.radio.channel", FT_INT32, BASE_DEC, NULL,
1890 0x0, NULL, HFILL }},
1892 { &hf_config_radio_op_rate_set,
1893 { "R_OP_RATE_SET", "wassp.config.radio.op.rate.set", FT_INT32, BASE_DEC, NULL,
1894 0x0, NULL, HFILL }},
1896 { &hf_config_radio_op_rate_max,
1897 { "R_OP_RATE_MAX", "wassp.config.radio.op.rate.max", FT_INT32, BASE_DEC, NULL,
1898 0x0, NULL, HFILL }},
1900 { &hf_config_radio_beacon_period,
1901 { "R_BEACON_PERIOD", "wassp.config.radio.beacon.period", FT_INT32, BASE_DEC, NULL,
1902 0x0, NULL, HFILL }},
1904 { &hf_config_radio_dtim_period,
1905 { "R_DTIM_PERIOD", "wassp.config.radio.dtim.period", FT_INT32, BASE_DEC, NULL,
1906 0x0, NULL, HFILL }},
1908 { &hf_config_radio_rts_threshold,
1909 { "R_RTS_THRESHOLD", "wassp.config.radio.rts.threshold", FT_INT32, BASE_DEC, NULL,
1910 0x0, NULL, HFILL }},
1912 { &hf_config_radio_fragment_threshold,
1913 { "R_FRAGMENT_THRESHOLD", "wassp.config.radio.fragment.threshold", FT_INT32, BASE_DEC, NULL,
1914 0x0, NULL, HFILL }},
1916 { &hf_config_radio_power_level,
1917 { "R_POWER_LEVEL", "wassp.config.radio.power.level", FT_INT32, BASE_DEC, NULL,
1918 0x0, NULL, HFILL }},
1920 { &hf_config_radio_diversity_rx,
1921 { "R_DIVERSITY_RX", "wassp.config.radio.diversity.rx", FT_INT32, BASE_DEC, NULL,
1922 0x0, NULL, HFILL }},
1924 { &hf_config_radio_diversity_tx,
1925 { "R_DIVERSITY_TX", "wassp.config.radio.diversity.tx", FT_INT32, BASE_DEC, NULL,
1926 0x0, NULL, HFILL }},
1928 { &hf_config_radio_short_preamble,
1929 { "R_SHORT_PREAMBLE", "wassp.config.radio.short.preamble", FT_INT32, BASE_DEC, NULL,
1930 0x0, NULL, HFILL }},
1932 { &hf_config_radio_basic_rate_max,
1933 { "R_BASIC_RATE_MAX", "wassp.config.radio.basic.rate.max", FT_INT32, BASE_DEC, NULL,
1934 0x0, NULL, HFILL }},
1936 { &hf_config_radio_basic_rate_min,
1937 { "R_BASIC_RATE_MIN", "wassp.config.radio.basic.rate.min", FT_INT32, BASE_DEC, NULL,
1938 0x0, NULL, HFILL }},
1940 { &hf_config_radio_hw_retries,
1941 { "R_HW_RETRIES", "wassp.config.radio.hw.retries", FT_STRING, BASE_NONE, NULL,
1942 0x0, NULL, HFILL }},
1944 { &hf_config_radio_tx_power_min,
1945 { "R_TX_POWER_MIN", "wassp.config.radio.tx.power.min", FT_INT32, BASE_DEC, NULL,
1946 0x0, NULL, HFILL }},
1948 { &hf_config_radio_tx_power_max,
1949 { "R_TX_POWER_MAX", "wassp.config.radio.tx.power.max", FT_INT32, BASE_DEC, NULL,
1950 0x0, NULL, HFILL }},
1952 { &hf_config_radio_domain_id,
1953 { "R_DOMAIN_ID", "wassp.config.radio.domain.id", FT_STRING, BASE_NONE, NULL,
1954 0x0, NULL, HFILL }},
1956 { &hf_config_radio_b_enable,
1957 { "R_B_ENABLE", "wassp.config.radio.b.enable", FT_INT32, BASE_DEC, NULL,
1958 0x0, NULL, HFILL }},
1960 { &hf_config_radio_b_basic_rates,
1961 { "R_B_BASIC_RATES", "wassp.config.radio.b.basic.rates", FT_INT32, BASE_DEC, NULL,
1962 0x0, NULL, HFILL }},
1964 { &hf_config_radio_g_enable,
1965 { "R_G_ENABLE", "wassp.config.radio.g.enable", FT_INT32, BASE_DEC, NULL,
1966 0x0, NULL, HFILL }},
1968 { &hf_config_radio_g_protect_mode,
1969 { "R_G_PROTECT_MODE", "wassp.config.radio.g.protect.mode", FT_INT32, BASE_DEC, NULL,
1970 0x0, NULL, HFILL }},
1972 { &hf_config_radio_g_protect_type,
1973 { "R_G_PROTECT_TYPE", "wassp.config.radio.g.protect.type", FT_INT32, BASE_DEC, NULL,
1974 0x0, NULL, HFILL }},
1976 { &hf_config_radio_g_protect_rate,
1977 { "R_G_PROTECT_RATE", "wassp.config.radio.g.protect.rate", FT_INT32, BASE_DEC, NULL,
1978 0x0, NULL, HFILL }},
1980 { &hf_config_radio_g_basic_rate,
1981 { "R_G_BASIC_RATE", "wassp.config.radio.g.basic.rate", FT_INT32, BASE_DEC, NULL,
1982 0x0, NULL, HFILL }},
1984 { &hf_config_radio_a_support_802_11_j,
1985 { "R_A_SUPPORT_802_11_J", "wassp.config.radio.a.support.802.11.j", FT_INT32, BASE_DEC, NULL,
1986 0x0, NULL, HFILL }},
1988 { &hf_config_radio_atpc_en_interval,
1989 { "R_ATPC_EN_INTERVAL", "wassp.config.radio.atpc.en.interval", FT_INT32, BASE_DEC, NULL,
1990 0x0, NULL, HFILL }},
1992 { &hf_config_radio_acs_ch_list,
1993 { "R_ACS_CH_LIST", "wassp.config.radio.acs.ch.list", FT_BYTES, BASE_NONE, NULL,
1994 0x0, NULL, HFILL }},
1996 { &hf_config_radio_tx_power_adj,
1997 { "R_TX_POWER_ADJ", "wassp.config.radio.tx.power.adj", FT_INT32, BASE_DEC, NULL,
1998 0x0, NULL, HFILL }},
2000 /* WASSP discover header */
2001 { &hf_wassp_discover1,
2002 { "Discover Header1", "wassp.discover1", FT_UINT8, BASE_HEX, NULL,
2003 0x0, NULL, HFILL }},
2005 /* { &hf_wassp_length, */ /* see tunnel header */
2007 { &hf_wassp_discover2,
2008 { "Discover Header2", "wassp.discover2", FT_UINT8, BASE_HEX, NULL,
2009 0x0, NULL, HFILL }},
2011 { &hf_wassp_subtype,
2012 { "Discover Subtype", "wassp.subtype", FT_UINT8, BASE_DEC, NULL,
2013 0x0, NULL, HFILL }},
2016 { "Discover Ether", "wassp.ether", FT_ETHER, BASE_NONE, NULL,
2017 0x0, NULL, HFILL }},
2019 { &hf_wassp_discover3,
2020 { "Discover Header3", "wassp.discover3", FT_UINT8, BASE_HEX, NULL,
2021 0x0, NULL, HFILL }},
2024 static gint *ett[] = {
2026 &ett_wassp_tlv_header,
2029 proto_wassp = proto_register_protocol(PROTO_LONG_NAME, PROTO_SHORT_NAME, "wassp");
2030 proto_register_field_array(proto_wassp, hf, array_length(hf));
2031 proto_register_subtree_array(ett, array_length(ett));
2035 proto_reg_handoff_wassp(void)
2037 dissector_handle_t wassp_handle;
2040 wassp_handle = new_create_dissector_handle(dissect_wassp_static, proto_wassp);
2041 dissector_add("udp.port", PORT_WASSP_DISCOVER, wassp_handle);
2042 dissector_add("udp.port", PORT_WASSP_TUNNEL, wassp_handle);
2043 /* dissector_add("udp.port", PORT_WASSP_PEER, wassp_handle); */
2045 heur_dissector_add("udp", dissect_wassp_heur, proto_wassp);
2048 snmp_handle = find_dissector("snmp");