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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
29 http://ietfreport.isoc.org/all-ids/draft-singh-capwap-ctp-02.txt
30 looks very similar (but not always identical).
35 MU: Mobile Unit (Wireless client)
36 RU: Radio Unit (Access point)
39 - Improve heuristics!!!
40 - Verify TLV descriptions/types
41 - Add TLV descriptions
42 - Fix 802.11 frame dissection
48 #include <epan/packet.h>
49 #include <epan/exceptions.h>
50 #include <epan/wmem/wmem.h>
51 #include <epan/expert.h>
52 #include <epan/show_exception.h>
54 /* protocol handles */
55 static int proto_wassp
= -1;
57 static dissector_handle_t snmp_handle
;
58 static dissector_handle_t ieee80211_handle
;
61 static int ett_wassp
= -1;
62 static int ett_wassp_tlv_header
= -1;
66 static int hf_wassp_tlv_type
= -1;
67 static int hf_wassp_tlv_length
= -1;
68 static int hf_wassp_tlv_data
= -1;
70 static int hf_wassp_version
= -1;
71 static int hf_wassp_type
= -1;
72 static int hf_wassp_seqno
= -1;
73 static int hf_wassp_flags
= -1;
74 static int hf_wassp_sessionid
= -1;
75 static int hf_wassp_length
= -1;
77 /* static int hf_data = -1; */
79 static int hf_status
= -1;
80 static int hf_ru_soft_version
= -1;
81 static int hf_ru_serial_number
= -1;
82 static int hf_ru_challenge
= -1;
83 static int hf_ru_response
= -1;
84 static int hf_ac_ipaddr
= -1;
85 static int hf_ru_vns_id
= -1;
86 static int hf_tftp_server
= -1;
87 static int hf_image_path
= -1;
88 static int hf_ru_config
= -1;
89 static int hf_ru_state
= -1;
90 static int hf_ru_session_key
= -1;
91 static int hf_message_type
= -1;
92 static int hf_random_number
= -1;
93 static int hf_standby_timeout
= -1;
94 static int hf_ru_challenge_id
= -1;
95 static int hf_ru_model
= -1;
96 static int hf_ru_scan_mode
= -1;
97 static int hf_ru_scan_type
= -1;
98 static int hf_ru_scan_interval
= -1;
99 static int hf_ru_radio_type
= -1;
100 static int hf_ru_channel_dwell_time
= -1;
101 static int hf_ru_channel_list
= -1;
102 static int hf_ru_trap
= -1;
103 static int hf_ru_scan_times
= -1;
104 static int hf_ru_scan_delay
= -1;
105 static int hf_ru_scan_req_id
= -1;
106 static int hf_static_config
= -1;
107 static int hf_local_bridging
= -1;
108 static int hf_static_bp_ipaddr
= -1;
109 static int hf_static_bp_netmask
= -1;
110 static int hf_static_bp_gateway
= -1;
111 static int hf_static_bm_ipaddr
= -1;
112 static int hf_ru_alarm
= -1;
113 static int hf_bp_request_id
= -1;
114 static int hf_snmp_error_status
= -1;
115 static int hf_snmp_error_index
= -1;
116 static int hf_ap_img_to_ram
= -1;
117 static int hf_ap_img_role
= -1;
118 static int hf_ap_stats_block
= -1;
119 static int hf_ap_stats_block_ether
= -1;
120 static int hf_ap_stats_block_radio_a
= -1;
121 static int hf_ap_stats_block_radio_b_g
= -1;
122 static int hf_mu_stats_block
= -1;
123 static int hf_mu_stats_block_65
= -1;
124 static int hf_dot1x_stats_block
= -1;
125 static int hf_block_config
= -1;
126 static int hf_config_radio
= -1;
127 static int hf_config_vns
= -1;
128 static int hf_wassp_vlan_tag
= -1;
129 static int hf_wassp_tunnel_type
= -1;
130 static int hf_ap_dhcp_mode
= -1;
131 static int hf_ap_ipaddr
= -1;
132 static int hf_ap_netmask
= -1;
133 static int hf_ap_gateway
= -1;
134 static int hf_preauth_resp
= -1;
135 static int hf_bp_pmk
= -1;
136 static int hf_ac_reg_challenge
= -1;
137 static int hf_ac_reg_response
= -1;
138 static int hf_stats
= -1;
139 static int hf_certificate
= -1;
140 static int hf_radio_id
= -1;
141 static int hf_network_id
= -1;
142 static int hf_mu_mac
= -1;
143 static int hf_time
= -1;
144 static int hf_num_radios
= -1;
145 static int hf_radio_info
= -1;
146 static int hf_network_info
= -1;
147 static int hf_vendor_id
= -1;
148 static int hf_product_id
= -1;
149 static int hf_radio_info_ack
= -1;
150 static int hf_mu_rf_stats_block
= -1;
151 static int hf_stats_request_type
= -1;
152 static int hf_stats_last
= -1;
153 static int hf_mu_pmkid_list
= -1;
154 static int hf_mu_pmk_bp
= -1;
155 static int hf_mu_pmkid_bp
= -1;
156 static int hf_countdown_time
= -1;
157 /* discover header */
158 static int hf_wassp_discover1
= -1;
159 /* static int hf_wassp_length = -1; */
160 static int hf_wassp_discover2
= -1;
161 static int hf_wassp_subtype
= -1;
162 static int hf_wassp_ether
= -1;
163 static int hf_wassp_discover3
= -1;
168 static int hf_stats_dot11_ackfailurecount
= -1;
169 static int hf_stats_dot11_fcserrorcount
= -1;
170 static int hf_stats_dot11_failedcount
= -1;
171 static int hf_stats_dot11_frameduplicatecount
= -1;
172 static int hf_stats_dot11_multicastreceivedframecount
= -1;
173 static int hf_stats_dot11_multicasttransmittedframecount
= -1;
174 static int hf_stats_dot11_multipleretrycount
= -1;
175 static int hf_stats_dot11_rtsfailurecount
= -1;
176 static int hf_stats_dot11_rtssuccesscount
= -1;
177 static int hf_stats_dot11_receivedfragementcount
= -1;
178 static int hf_stats_dot11_retrycount
= -1;
179 static int hf_stats_dot11_transmittedfragmentcount
= -1;
180 static int hf_stats_dot11_transmittedframecount
= -1;
181 static int hf_stats_dot11_webundecryptablecount
= -1;
182 static int hf_stats_dot11_wepexcludedcount
= -1;
183 static int hf_stats_dot11_wepicverrorcount
= -1;
184 static int hf_stats_drm_allocfailures
= -1;
185 static int hf_stats_drm_currentchannel
= -1;
186 static int hf_stats_drm_currentpower
= -1;
187 static int hf_stats_drm_datatxfailures
= -1;
188 static int hf_stats_drm_devicetype
= -1;
189 static int hf_stats_drm_indatapackets
= -1;
190 static int hf_stats_drm_inmgmtpackets
= -1;
191 static int hf_stats_drm_loadfactor
= -1;
192 static int hf_stats_drm_mgmttxfailures
= -1;
193 static int hf_stats_drm_msgqfailures
= -1;
194 static int hf_stats_drm_nodrmcurrentchannel
= -1;
195 static int hf_stats_drm_outdatapackets
= -1;
196 static int hf_stats_drm_outmgmtpackets
= -1;
197 static int hf_stats_if_inbcastpackets
= -1;
198 static int hf_stats_if_indiscards
= -1;
199 static int hf_stats_if_inerrors
= -1;
200 static int hf_stats_if_inmcastpackets
= -1;
201 static int hf_stats_if_inoctets
= -1;
202 static int hf_stats_if_inucastpackets
= -1;
203 static int hf_stats_if_mtu
= -1;
204 static int hf_stats_if_outbcastpackets
= -1;
205 static int hf_stats_if_outdiscards
= -1;
206 static int hf_stats_if_outerrors
= -1;
207 static int hf_stats_if_outoctets
= -1;
208 static int hf_stats_if_outucastpackets
= -1;
209 static int hf_stats_if_outmcastpackets
= -1;
210 static int hf_stats_mu_address
= -1;
211 static int hf_stats_mu_associationcount
= -1;
212 static int hf_stats_mu_authenticationcount
= -1;
213 static int hf_stats_mu_deassociationcount
= -1;
214 static int hf_stats_mu_deauthenticationcount
= -1;
215 static int hf_stats_mu_ifindex
= -1;
216 static int hf_stats_mu_reassociationcount
= -1;
217 static int hf_stats_mu_receivedbytes
= -1;
218 static int hf_stats_mu_receivederrors
= -1;
219 static int hf_stats_mu_receivedframecount
= -1;
220 static int hf_stats_mu_receivedrssi
= -1;
221 static int hf_stats_mu_receivedrate
= -1;
222 static int hf_stats_mu_transmittedbytes
= -1;
223 static int hf_stats_mu_transmittederrors
= -1;
224 static int hf_stats_mu_transmittedframecount
= -1;
225 static int hf_stats_mu_transmittedrssi
= -1;
226 static int hf_stats_mu_transmittedrate
= -1;
227 static int hf_stats_mu_rf_stats_end
= -1;
228 static int hf_stats_rfc_1213_sysuptime
= -1;
229 static int hf_dot1x_stats_credent
= -1;
230 static int hf_dot1x_stats_end_date
= -1;
231 static int hf_stats_tlv_max
= -1;
233 static int hf_config_trace_status_debug
= -1;
234 static int hf_config_trace_status_config
= -1;
235 static int hf_config_use_bcast_for_disassc
= -1;
236 static int hf_config_bandwidth_voice_assc
= -1;
237 static int hf_config_bandwidth_voice_reassc
= -1;
238 static int hf_config_bandwidth_video_assc
= -1;
239 static int hf_config_bandwidth_video_reassc
= -1;
240 static int hf_config_bandwidth_video_reserve
= -1;
241 static int hf_config_bandwidth_adm_ctrl_reserve
= -1;
242 static int hf_config_vlan_tag
= -1;
243 static int hf_config_country_code
= -1;
244 static int hf_config_poll_duration
= -1;
245 static int hf_config_poll_interval
= -1;
246 static int hf_config_poll_maintain_client_session
= -1;
247 static int hf_config_telnet_enable
= -1;
248 static int hf_config_telnet_password
= -1;
249 static int hf_config_telnet_password_entry_mode
= -1;
250 static int hf_config_outdoor_enable_environment
= -1;
251 static int hf_config_slp_retry_count
= -1;
252 static int hf_config_slp_retry_delay
= -1;
253 static int hf_config_dns_retry_count
= -1;
254 static int hf_config_dns_retry_delay
= -1;
255 static int hf_config_mcast_slp_retry_count
= -1;
256 static int hf_config_mcast_slp_retry_delay
= -1;
257 static int hf_config_disc_retry_count
= -1;
258 static int hf_config_disc_retry_delay
= -1;
259 static int hf_config_logging_alarm_sev
= -1;
260 static int hf_config_blacklist_blacklist_add
= -1;
261 static int hf_config_failover_ac_ip_addr
= -1;
262 static int hf_config_static_ac_ip_addr
= -1;
263 static int hf_config_dhcp_assignment
= -1;
264 static int hf_config_static_ap_ip_addr
= -1;
265 static int hf_config_static_ap_ip_netmask
= -1;
266 static int hf_config_static_ap_default_gw
= -1;
267 static int hf_config_blacklist_del
= -1;
268 static int hf_config_macaddr_req
= -1;
269 static int hf_config_availability_mode
= -1;
271 static int hf_config_vns_radio_id
= -1;
272 static int hf_config_vns_vns_id
= -1;
273 static int hf_config_vns_turbo_voice
= -1;
274 static int hf_config_vns_prop_ie
= -1;
275 static int hf_config_vns_enable_802_11_h
= -1;
276 static int hf_config_vns_power_backoff
= -1;
277 static int hf_config_vns_bridge_mode
= -1;
278 static int hf_config_vns_vlan_tag
= -1;
279 static int hf_config_vns_process_ie_req
= -1;
280 static int hf_config_vns_enable_u_apsd
= -1;
281 static int hf_config_vns_adm_ctrl_voice
= -1;
282 static int hf_config_vns_adm_ctrl_video
= -1;
283 static int hf_config_vns_qos_up_value
= -1;
284 static int hf_config_vns_priority_override
= -1;
285 static int hf_config_vns_dscp_override_value
= -1;
286 static int hf_config_vns_enable_802_11_e
= -1;
287 static int hf_config_vns_enable_wmm
= -1;
288 static int hf_config_vns_legacy_client_priority
= -1;
289 static int hf_config_vns_ssid_id
= -1;
290 static int hf_config_vns_ssid_bcast_string
= -1;
291 static int hf_config_vns_ssid_suppress
= -1;
292 static int hf_config_vns_802_1_x_enable
= -1;
293 static int hf_config_vns_802_1_x_dyn_rekey
= -1;
294 static int hf_config_vns_wpa_enable
= -1;
295 static int hf_config_vns_wpa_v2_enable
= -1;
296 static int hf_config_vns_wpa_passphrase
= -1;
297 static int hf_config_vns_wpa_cipher_type
= -1;
298 static int hf_config_vns_wpa_v2_cipher_type
= -1;
299 static int hf_config_vns_wep_key_index
= -1;
300 static int hf_config_vns_wep_default_key_value
= -1;
301 static int hf_config_vns_channel_report
= -1;
302 static int hf_config_vns_wds_service
= -1;
303 static int hf_config_vns_wds_pref_parent
= -1;
304 static int hf_config_vns_wds_bridge
= -1;
305 static int hf_config_vns_okc_enabled
= -1;
306 static int hf_config_vns_mu_assoc_retries
= -1;
307 static int hf_config_vns_mu_assoc_timeout
= -1;
308 static int hf_config_vns_wds_parent
= -1;
309 static int hf_config_vns_wds_back_parent
= -1;
310 static int hf_config_vns_wds_name
= -1;
312 static int hf_config_radio_radio_id
= -1;
313 static int hf_config_radio_enable_radio
= -1;
314 static int hf_config_radio_channel
= -1;
315 static int hf_config_radio_op_rate_set
= -1;
316 static int hf_config_radio_op_rate_max
= -1;
317 static int hf_config_radio_beacon_period
= -1;
318 static int hf_config_radio_dtim_period
= -1;
319 static int hf_config_radio_rts_threshold
= -1;
320 static int hf_config_radio_fragment_threshold
= -1;
321 static int hf_config_radio_power_level
= -1;
322 static int hf_config_radio_diversity_rx
= -1;
323 static int hf_config_radio_diversity_tx
= -1;
324 static int hf_config_radio_short_preamble
= -1;
325 static int hf_config_radio_basic_rate_max
= -1;
326 static int hf_config_radio_basic_rate_min
= -1;
327 static int hf_config_radio_hw_retries
= -1;
328 static int hf_config_radio_tx_power_min
= -1;
329 static int hf_config_radio_tx_power_max
= -1;
330 static int hf_config_radio_domain_id
= -1;
331 static int hf_config_radio_b_enable
= -1;
332 static int hf_config_radio_b_basic_rates
= -1;
333 static int hf_config_radio_g_enable
= -1;
334 static int hf_config_radio_g_protect_mode
= -1;
335 static int hf_config_radio_g_protect_type
= -1;
336 static int hf_config_radio_g_protect_rate
= -1;
337 static int hf_config_radio_g_basic_rate
= -1;
338 static int hf_config_radio_a_support_802_11_j
= -1;
339 static int hf_config_radio_atpc_en_interval
= -1;
340 static int hf_config_radio_acs_ch_list
= -1;
341 static int hf_config_radio_tx_power_adj
= -1;
343 #define PROTO_SHORT_NAME "WASSP"
344 #define PROTO_LONG_NAME "Wireless Access Station Session Protocol"
346 #define PORT_WASSP_DISCOVER 13907
347 #define PORT_WASSP_TUNNEL 13910
348 /* #define PORT_WASSP_PEER 13913?? */
350 /* ============= copy/paste/modify from value_string.[hc] ============== */
351 typedef struct _ext_value_string
{
355 int (*specialfunction
)(tvbuff_t
*, packet_info
*, proto_tree
*, guint32
,
356 guint32
, const struct _ext_value_string
*);
357 const struct _ext_value_string
*evs
;
362 match_strextval_idx(guint32 val
, const ext_value_string
*vs
, gint
*idx
) {
366 while (vs
[i
].strptr
) {
367 if (vs
[i
].value
== val
) {
370 return(vs
[i
].strptr
);
382 extval_to_str_idx(guint32 val
, const ext_value_string
*vs
, gint
*idx
, const char *fmt
) {
388 ret
= match_strextval_idx(val
, vs
, idx
);
392 return wmem_strdup_printf(wmem_packet_scope(), fmt
, val
);
394 /* ============= end copy/paste/modify ============== */
396 /* Forward decls needed by wassp_tunnel_tlv_vals et al */
397 static int dissect_snmp(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*wassp_tree
,
398 volatile guint32 offset
, guint32 length
, const ext_value_string
*value_array
);
399 static int dissect_ieee80211(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*wassp_tree
,
400 volatile guint32 offset
, guint32 length
, const ext_value_string
*value_array
);
401 static int dissect_tlv(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*wassp_tree
,
402 guint32 offset
, guint32 length
, const ext_value_string
*value_array
);
404 static const ext_value_string wassp_tunnel_tlv_config_vns_tlv_vals
[] = {
405 { 1, "V_RADIO_ID", &hf_config_vns_radio_id
, NULL
, NULL
},
406 { 2, "V_VNS_ID", &hf_config_vns_vns_id
, NULL
, NULL
},
407 { 3, "V_TURBO_VOICE", &hf_config_vns_turbo_voice
, NULL
, NULL
},
408 { 4, "V_PROP_IE", &hf_config_vns_prop_ie
, NULL
, NULL
},
409 { 5, "V_ENABLE_802_11_H", &hf_config_vns_enable_802_11_h
, NULL
, NULL
},
410 { 6, "V_POWER_BACKOFF", &hf_config_vns_power_backoff
, NULL
, NULL
},
411 { 7, "V_BRIDGE_MODE", &hf_config_vns_bridge_mode
, NULL
, NULL
},
412 { 8, "V_VLAN_TAG", &hf_config_vns_vlan_tag
, NULL
, NULL
},
413 { 9, "V_PROCESS_IE_REQ", &hf_config_vns_process_ie_req
, NULL
, NULL
},
414 { 10, "V_ENABLE_U_APSD", &hf_config_vns_enable_u_apsd
, NULL
, NULL
},
415 { 11, "V_ADM_CTRL_VOICE", &hf_config_vns_adm_ctrl_voice
, NULL
, NULL
},
416 { 12, "V_ADM_CTRL_VIDEO", &hf_config_vns_adm_ctrl_video
, NULL
, NULL
},
417 { 13, "V_QOS_UP_VALUE", &hf_config_vns_qos_up_value
, NULL
, NULL
},
418 { 14, "V_PRIORITY_OVERRIDE", &hf_config_vns_priority_override
, NULL
, NULL
},
419 { 15, "V_DSCP_OVERRIDE_VALUE", &hf_config_vns_dscp_override_value
, NULL
, NULL
},
420 { 16, "V_ENABLE_802_11_E", &hf_config_vns_enable_802_11_e
, NULL
, NULL
},
421 { 17, "V_ENABLE_WMM", &hf_config_vns_enable_wmm
, NULL
, NULL
},
422 { 18, "V_LEGACY_CLIENT_PRIORITY", &hf_config_vns_legacy_client_priority
, NULL
, NULL
},
423 { 19, "V_SSID_ID", &hf_config_vns_ssid_id
, NULL
, NULL
},
424 { 20, "V_SSID_BCAST_STRING", &hf_config_vns_ssid_bcast_string
, NULL
, NULL
},
425 { 21, "V_SSID_SUPPRESS", &hf_config_vns_ssid_suppress
, NULL
, NULL
},
426 { 22, "V_802_1_X_ENABLE", &hf_config_vns_802_1_x_enable
, NULL
, NULL
},
427 { 23, "V_802_1_X_DYN_REKEY", &hf_config_vns_802_1_x_dyn_rekey
, NULL
, NULL
},
428 { 24, "V_WPA_ENABLE", &hf_config_vns_wpa_enable
, NULL
, NULL
},
429 { 25, "V_WPA_V2_ENABLE", &hf_config_vns_wpa_v2_enable
, NULL
, NULL
},
430 { 26, "V_WPA_PASSPHRASE", &hf_config_vns_wpa_passphrase
, NULL
, NULL
},
431 { 27, "V_WPA_CIPHER_TYPE", &hf_config_vns_wpa_cipher_type
, NULL
, NULL
},
432 { 28, "V_WPA_V2_CIPHER_TYPE", &hf_config_vns_wpa_v2_cipher_type
, NULL
, NULL
},
433 { 29, "V_WEP_KEY_INDEX", &hf_config_vns_wep_key_index
, NULL
, NULL
},
434 { 30, "V_WEP_DEFAULT_KEY_VALUE", &hf_config_vns_wep_default_key_value
, NULL
, NULL
},
435 { 31, "V_CHANNEL_REPORT", &hf_config_vns_channel_report
, NULL
, NULL
},
436 { 32, "V_WDS_SERVICE", &hf_config_vns_wds_service
, NULL
, NULL
},
437 { 33, "V_WDS_PREF_PARENT", &hf_config_vns_wds_pref_parent
, NULL
, NULL
},
438 { 34, "V_WDS_BRIDGE", &hf_config_vns_wds_bridge
, NULL
, NULL
},
439 { 35, "V_OKC_ENABLED", &hf_config_vns_okc_enabled
, NULL
, NULL
},
440 { 36, "V_MU_ASSOC_RETRIES", &hf_config_vns_mu_assoc_retries
, NULL
, NULL
},
441 { 37, "V_MU_ASSOC_TIMEOUT", &hf_config_vns_mu_assoc_timeout
, NULL
, NULL
},
442 { 38, "V_WDS_PARENT", &hf_config_vns_wds_parent
, NULL
, NULL
},
443 { 39, "V_WDS_BACK_PARENT", &hf_config_vns_wds_back_parent
, NULL
, NULL
},
444 { 40, "V_WDS_NAME", &hf_config_vns_wds_name
, NULL
, NULL
},
446 { 0, NULL
, NULL
, NULL
, NULL
}
449 static const ext_value_string wassp_tunnel_tlv_config_radio_tlv_vals
[] = {
450 { 1, "R_RADIO_ID", &hf_config_radio_radio_id
, NULL
, NULL
},
451 { 2, "R_ENABLE_RADIO", &hf_config_radio_enable_radio
, NULL
, NULL
},
452 { 3, "R_CHANNEL", &hf_config_radio_channel
, NULL
, NULL
},
453 { 4, "R_OP_RATE_SET", &hf_config_radio_op_rate_set
, NULL
, NULL
},
454 { 5, "R_OP_RATE_MAX", &hf_config_radio_op_rate_max
, NULL
, NULL
},
455 { 6, "R_BEACON_PERIOD", &hf_config_radio_beacon_period
, NULL
, NULL
},
456 { 7, "R_DTIM_PERIOD", &hf_config_radio_dtim_period
, NULL
, NULL
},
457 { 8, "R_RTS_THRESHOLD", &hf_config_radio_rts_threshold
, NULL
, NULL
},
458 { 9, "R_RETRY_LIMIT_SHORT", /* hf_, */ NULL
, NULL
, NULL
},
459 { 10, "R_RETRY_LIMIT_LONG", /* hf_, */ NULL
, NULL
, NULL
},
460 { 11, "R_FRAGMENT_THRESHOLD", &hf_config_radio_fragment_threshold
, NULL
, NULL
},
461 { 12, "R_POWER_LEVEL", &hf_config_radio_power_level
, NULL
, NULL
},
462 { 13, "R_DIVERSITY_LEFT", /* hf_, */ NULL
, NULL
, NULL
},
463 { 14, "R_DIVERSITY_RIGHT", /* hf_, */ NULL
, NULL
, NULL
},
464 { 15, "R_DIVERSITY_RX", &hf_config_radio_diversity_rx
, NULL
, NULL
},
465 { 16, "R_DIVERSITY_TX", &hf_config_radio_diversity_tx
, NULL
, NULL
},
466 { 17, "R_SHORT_PREAMBLE", &hf_config_radio_short_preamble
, NULL
, NULL
},
467 { 18, "R_BASIC_RATE_MAX", &hf_config_radio_basic_rate_max
, NULL
, NULL
},
468 { 19, "R_BASIC_RATE_MIN", &hf_config_radio_basic_rate_min
, NULL
, NULL
},
469 { 20, "R_HW_RETRIES", &hf_config_radio_hw_retries
, NULL
, NULL
},
470 { 21, "R_DRM_TX_POWER_MIN", &hf_config_radio_tx_power_min
, NULL
, NULL
},
471 { 22, "R_DRM_TX_POWER_MAX", &hf_config_radio_tx_power_max
, NULL
, NULL
},
472 { 23, "R_DRM_AVOID_WLAN", /* hf_, */ NULL
, NULL
, NULL
},
473 { 24, "R_DRM_DOMAIN_ID", &hf_config_radio_domain_id
, NULL
, NULL
},
474 { 25, "R_B_ENABLE", &hf_config_radio_b_enable
, NULL
, NULL
},
475 { 26, "R_B_BASIC_RATES", &hf_config_radio_b_basic_rates
, NULL
, NULL
},
476 { 27, "R_G_ENABLE", &hf_config_radio_g_enable
, NULL
, NULL
},
477 { 28, "R_G_PROTECT_MODE", &hf_config_radio_g_protect_mode
, NULL
, NULL
},
478 { 29, "R_G_PROTECT_TYPE", &hf_config_radio_g_protect_type
, NULL
, NULL
},
479 { 30, "R_G_PROTECT_RATE", &hf_config_radio_g_protect_rate
, NULL
, NULL
},
480 { 31, "R_G_BASIC_RATE", &hf_config_radio_g_basic_rate
, NULL
, NULL
},
481 { 32, "R_A_SUPPORT_802_11_J", &hf_config_radio_a_support_802_11_j
, NULL
, NULL
},
482 { 33, "R_ATPC_EN_INTERVAL", &hf_config_radio_atpc_en_interval
, NULL
, NULL
},
483 { 34, "R_ACS_CH_LIST", &hf_config_radio_acs_ch_list
, NULL
, NULL
},
484 { 35, "R_TX_POWER_ADJ", &hf_config_radio_tx_power_adj
, NULL
, NULL
},
486 { 0, NULL
, NULL
, NULL
, NULL
}
489 static const ext_value_string wassp_tunnel_tlv_config_tlv_vals
[] = {
490 { 1, "RADIO_CONFIG_BLOCK", &hf_config_radio
, dissect_tlv
, wassp_tunnel_tlv_config_radio_tlv_vals
},
491 { 2, "VNS_CONFIG_BLOCK", &hf_config_vns
, dissect_tlv
, wassp_tunnel_tlv_config_vns_tlv_vals
},
492 { 3, "DIVERSITY_LEFT", /* hf_, */ NULL
, NULL
, NULL
},
493 { 4, "DIVERSITY_RIGHT", /* hf_, */ NULL
, NULL
, NULL
},
494 { 5, "TRACE_STATUS_DEBUG", &hf_config_trace_status_debug
, NULL
, NULL
},
495 { 6, "TRACE_STATUS_CONFIG", &hf_config_trace_status_config
, NULL
, NULL
},
496 { 7, "BRIDGE_AT_AP", /* hf_, */ NULL
, NULL
, NULL
},
497 { 8, "USE_BCAST_FOR_DISASSC", &hf_config_use_bcast_for_disassc
, NULL
, NULL
},
498 { 9, "BANDWIDTH_VOICE_ASSC", &hf_config_bandwidth_voice_assc
, NULL
, NULL
},
499 { 10, "BANDWIDTH_VOICE_REASSC", &hf_config_bandwidth_voice_reassc
, NULL
, NULL
},
500 { 11, "BANDWIDTH_VIDEO_ASSC", &hf_config_bandwidth_video_assc
, NULL
, NULL
},
501 { 12, "BANDWIDTH_VIDEO_REASSC", &hf_config_bandwidth_video_reassc
, NULL
, NULL
},
502 { 13, "BANDWIDTH_VIDEO_RESERVE", &hf_config_bandwidth_video_reserve
, NULL
, NULL
},
503 { 14, "BANDWIDTH_ADM_CTRL_RESERVE", &hf_config_bandwidth_adm_ctrl_reserve
, NULL
, NULL
},
504 { 15, "VLAN_TAG", &hf_config_vlan_tag
, NULL
, NULL
},
505 { 16, "COUNTRY_CODE", &hf_config_country_code
, NULL
, NULL
},
506 { 17, "POLL_DURATION", &hf_config_poll_duration
, NULL
, NULL
},
507 { 18, "POLL_INTERVAL", &hf_config_poll_interval
, NULL
, NULL
},
508 { 19, "POLL_REBOOT_ON_FAIL", /* hf_, */ NULL
, NULL
, NULL
},
509 { 20, "POLL_MAINTAIN_CLIENT_SESSION", &hf_config_poll_maintain_client_session
, NULL
, NULL
},
510 { 21, "TELNET_ENABLE", &hf_config_telnet_enable
, NULL
, NULL
},
511 { 22, "TELNET_PASSWORD", &hf_config_telnet_password
, NULL
, NULL
},
512 { 23, "TELNET_PASSWORD_ENTRY_MODE", &hf_config_telnet_password_entry_mode
, NULL
, NULL
},
513 { 24, "OUTDOOR_ENABLE-ENVIRONMENT", &hf_config_outdoor_enable_environment
, NULL
, NULL
},
514 { 25, "BSS_COUNT", /* hf_, */ NULL
, NULL
, NULL
},
515 { 26, "DRM_ENABLE", /* hf_, */ NULL
, NULL
, NULL
},
516 { 27, "DRM_ENABLE_SHAPE_COV", /* hf_, */ NULL
, NULL
, NULL
},
517 { 28, "SLP_RETRY_COUNT", &hf_config_slp_retry_count
, NULL
, NULL
},
518 { 29, "SLP_RETRY_DELAY", &hf_config_slp_retry_delay
, NULL
, NULL
},
519 { 30, "DNS_RETRY_COUNT", &hf_config_dns_retry_count
, NULL
, NULL
},
520 { 31, "DNS_RETRY_DELAY", &hf_config_dns_retry_delay
, NULL
, NULL
},
521 { 32, "MCAST_SLP_RETRY_COUNT", &hf_config_mcast_slp_retry_count
, NULL
, NULL
},
522 { 33, "MCAST_SLP_RETRY_DELAY", &hf_config_mcast_slp_retry_delay
, NULL
, NULL
},
523 { 34, "DISC_RETRY_COUNT", &hf_config_disc_retry_count
, NULL
, NULL
},
524 { 35, "DISC_RETRY_DELAY", &hf_config_disc_retry_delay
, NULL
, NULL
},
525 { 36, "LOGGING_ALARM_SEV", &hf_config_logging_alarm_sev
, NULL
, NULL
},
526 { 37, "BLACKLIST-BLACKLIST_ADD", &hf_config_blacklist_blacklist_add
, NULL
, NULL
},
527 { 38, "FAILOVER_AC_IP_ADDR", &hf_config_failover_ac_ip_addr
, NULL
, NULL
},
528 { 39, "STATIC_AC_IP_ADDR", &hf_config_static_ac_ip_addr
, NULL
, NULL
},
529 { 40, "DHCP_ASSIGNMENT", &hf_config_dhcp_assignment
, NULL
, NULL
},
530 { 41, "STATIC_AP_IP_ADDR", &hf_config_static_ap_ip_addr
, NULL
, NULL
},
531 { 42, "STATIC_AP_IP_NETMASK", &hf_config_static_ap_ip_netmask
, NULL
, NULL
},
532 { 43, "STATIC_AP_DEFAULT_GW", &hf_config_static_ap_default_gw
, NULL
, NULL
},
533 { 44, "BLACKLIST_DEL", &hf_config_blacklist_del
, NULL
, NULL
},
534 { 45, "MACADDR_REQ", &hf_config_macaddr_req
, NULL
, NULL
},
535 { 46, "AVAILABILITY_MODE", &hf_config_availability_mode
, NULL
, NULL
},
536 { 47, "AP_PERSISTENCE", /* hf_, */ NULL
, NULL
, NULL
},
537 { 48, "FOREIGN_AP", /* hf_, */ NULL
, NULL
, NULL
},
538 { 49, "SUPP1X_CREDENTIAL_REMOVE", /* hf_, */ NULL
, NULL
, NULL
},
539 { 50, "SUPP1X_CERT_TFTP_IP", /* hf_, */ NULL
, NULL
, NULL
},
540 { 51, "SUPP1X_CERT_TFTP_PATH", /* hf_, */ NULL
, NULL
, NULL
},
541 { 52, "SUPP1X_PRIVATE", /* hf_, */ NULL
, NULL
, NULL
},
542 { 53, "SUPP1X_DOMAIN", /* hf_, */ NULL
, NULL
, NULL
},
543 { 54, "SUPP1X_USERID", /* hf_, */ NULL
, NULL
, NULL
},
544 { 55, "SUPP1X_PASSWORD", /* hf_, */ NULL
, NULL
, NULL
},
545 { 56, "SUPP1X_CREDENT", /* hf_, */ NULL
, NULL
, NULL
},
546 { 57, "SUPP1X_SERIAL", /* hf_, */ NULL
, NULL
, NULL
},
547 { 58, "SUPP1X_START_DATE", /* hf_, */ NULL
, NULL
, NULL
},
548 { 59, "SUPP1X_END_DATE", /* hf_, */ NULL
, NULL
, NULL
},
549 { 60, "SUPP1X_ISSUED_BY", /* hf_, */ NULL
, NULL
, NULL
},
550 { 61, "SUPP1X_ISSUED_TO", /* hf_, */ NULL
, NULL
, NULL
},
552 { 0, NULL
, NULL
, NULL
, NULL
}
555 static const ext_value_string wassp_tunnel_mu_stats_block_65_tlv_vals
[] = {
557 { 0, NULL
, NULL
, NULL
, NULL
}
560 static const ext_value_string wassp_tunnel_mu_stats_block_tlv_vals
[] = {
561 { 65, "MU_STATS_BLOCK_65", &hf_mu_stats_block_65
, dissect_tlv
, wassp_tunnel_mu_stats_block_65_tlv_vals
},
563 { 0, NULL
, NULL
, NULL
, NULL
}
566 static const ext_value_string wassp_tunnel_ap_stats_block_tlv_vals
[] = {
567 { 1, "DOT11_ACKFailureCount", &hf_stats_dot11_ackfailurecount
, NULL
, NULL
},
568 { 2, "DOT11_FCSErrorCount", &hf_stats_dot11_fcserrorcount
, NULL
, NULL
},
569 { 3, "DOT11_FailedCount", &hf_stats_dot11_failedcount
, NULL
, NULL
},
570 { 4, "DOT11_FrameDuplicateCount", &hf_stats_dot11_frameduplicatecount
, NULL
, NULL
},
571 { 5, "DOT11_MulticastReceivedFrameCount", &hf_stats_dot11_multicastreceivedframecount
, NULL
, NULL
},
572 { 6, "DOT11_MulticastTransmittedFrameCount", &hf_stats_dot11_multicasttransmittedframecount
, NULL
, NULL
},
573 { 7, "DOT11_MultipleRetryCount", &hf_stats_dot11_multipleretrycount
, NULL
, NULL
},
574 { 8, "DOT11_RTSFailureCount", &hf_stats_dot11_rtsfailurecount
, NULL
, NULL
},
575 { 9, "DOT11_RTSSuccessCount", &hf_stats_dot11_rtssuccesscount
, NULL
, NULL
},
576 { 10, "DOT11_ReceivedFragementCount", &hf_stats_dot11_receivedfragementcount
, NULL
, NULL
},
577 { 11, "DOT11_RetryCount", &hf_stats_dot11_retrycount
, NULL
, NULL
},
578 { 12, "DOT11_TransmittedFragmentCount", &hf_stats_dot11_transmittedfragmentcount
, NULL
, NULL
},
579 { 13, "DOT11_TransmittedFrameCount", &hf_stats_dot11_transmittedframecount
, NULL
, NULL
},
580 { 14, "DOT11_WEBUndecryptableCount", &hf_stats_dot11_webundecryptablecount
, NULL
, NULL
},
581 { 15, "DOT11_WEPExcludedCount", &hf_stats_dot11_wepexcludedcount
, NULL
, NULL
},
582 { 16, "DOT11_WEPICVErrorCount", &hf_stats_dot11_wepicverrorcount
, NULL
, NULL
},
583 { 17, "DRM_AllocFailures", &hf_stats_drm_allocfailures
, NULL
, NULL
},
584 { 18, "DRM_CurrentChannel", &hf_stats_drm_currentchannel
, NULL
, NULL
},
585 { 19, "DRM_CurrentPower", &hf_stats_drm_currentpower
, NULL
, NULL
},
586 { 20, "DRM_DataTxFailures", &hf_stats_drm_datatxfailures
, NULL
, NULL
},
587 { 21, "DRM_DeviceType", &hf_stats_drm_devicetype
, NULL
, NULL
},
588 { 22, "DRM_InDataPackets", &hf_stats_drm_indatapackets
, NULL
, NULL
},
589 { 23, "DRM_InMgmtPackets", &hf_stats_drm_inmgmtpackets
, NULL
, NULL
},
590 { 24, "DRM_LoadFactor", &hf_stats_drm_loadfactor
, NULL
, NULL
},
591 { 25, "DRM_MgmtTxFailures", &hf_stats_drm_mgmttxfailures
, NULL
, NULL
},
592 { 26, "DRM_MsgQFailures", &hf_stats_drm_msgqfailures
, NULL
, NULL
},
593 { 27, "DRM_NoDRMCurrentChannel", &hf_stats_drm_nodrmcurrentchannel
, NULL
, NULL
},
594 { 28, "DRM_OutDataPackets", &hf_stats_drm_outdatapackets
, NULL
, NULL
},
595 { 29, "DRM_OutMgmtPackets", &hf_stats_drm_outmgmtpackets
, NULL
, NULL
},
596 { 30, "IF_InBcastPackets", &hf_stats_if_inbcastpackets
, NULL
, NULL
},
597 { 31, "IF_InDiscards", &hf_stats_if_indiscards
, NULL
, NULL
},
598 { 32, "IF_InErrors", &hf_stats_if_inerrors
, NULL
, NULL
},
599 { 33, "IF_InMcastPackets", &hf_stats_if_inmcastpackets
, NULL
, NULL
},
600 { 34, "IF_InOctets", &hf_stats_if_inoctets
, NULL
, NULL
},
601 { 35, "IF_InUcastPackets", &hf_stats_if_inucastpackets
, NULL
, NULL
},
602 { 36, "IF_MTU", &hf_stats_if_mtu
, NULL
, NULL
},
603 { 37, "IF_OutBcastPackets", &hf_stats_if_outbcastpackets
, NULL
, NULL
},
604 { 38, "IF_OutDiscards", &hf_stats_if_outdiscards
, NULL
, NULL
},
605 { 39, "IF_OutErrors", &hf_stats_if_outerrors
, NULL
, NULL
},
606 { 40, "IF_OutOctets", &hf_stats_if_outoctets
, NULL
, NULL
},
607 { 41, "IF_OutUcastPackets", &hf_stats_if_outucastpackets
, NULL
, NULL
},
608 { 42, "IF_OutMCastPackets", &hf_stats_if_outmcastpackets
, NULL
, NULL
},
609 { 43, "MU_Address", &hf_stats_mu_address
, NULL
, NULL
},
610 { 44, "MU_AssociationCount", &hf_stats_mu_associationcount
, NULL
, NULL
},
611 { 45, "MU_AuthenticationCount", &hf_stats_mu_authenticationcount
, NULL
, NULL
},
612 { 46, "MU_DeAssociationCount", &hf_stats_mu_deassociationcount
, NULL
, NULL
},
613 { 47, "MU_DeAuthenticationCount", &hf_stats_mu_deauthenticationcount
, NULL
, NULL
},
614 { 48, "MU_IfIndex", &hf_stats_mu_ifindex
, NULL
, NULL
},
615 { 49, "MU_ReAssociationCount", &hf_stats_mu_reassociationcount
, NULL
, NULL
},
616 { 50, "MU_ReceivedBytes", &hf_stats_mu_receivedbytes
, NULL
, NULL
},
617 { 51, "MU_ReceivedErrors", &hf_stats_mu_receivederrors
, NULL
, NULL
},
618 { 52, "MU_ReceivedFrameCount", &hf_stats_mu_receivedframecount
, NULL
, NULL
},
619 { 53, "MU_ReceivedRSSI", &hf_stats_mu_receivedrssi
, NULL
, NULL
},
620 { 54, "MU_ReceivedRate", &hf_stats_mu_receivedrate
, NULL
, NULL
},
621 { 55, "MU_TransmittedBytes", &hf_stats_mu_transmittedbytes
, NULL
, NULL
},
622 { 56, "MU_TransmittedErrors", &hf_stats_mu_transmittederrors
, NULL
, NULL
},
623 { 57, "MU_TransmittedFrameCount", &hf_stats_mu_transmittedframecount
, NULL
, NULL
},
624 { 58, "MU_TransmittedRSSI", &hf_stats_mu_transmittedrssi
, NULL
, NULL
},
625 { 59, "MU_TransmittedRate", &hf_stats_mu_transmittedrate
, NULL
, NULL
},
626 { 60, "MU_RF_STATS_END", &hf_stats_mu_rf_stats_end
, NULL
, NULL
},
627 { 61, "RFC_1213_SYSUPTIME", &hf_stats_rfc_1213_sysuptime
, NULL
, NULL
},
628 { 62, "STATS_ETHER_BLOCK", &hf_ap_stats_block_ether
, dissect_tlv
, wassp_tunnel_ap_stats_block_tlv_vals
},
629 { 63, "STATS_RADIO_A_BLOCK", &hf_ap_stats_block_radio_a
, dissect_tlv
, wassp_tunnel_ap_stats_block_tlv_vals
},
630 { 64, "STATS_RADIO_B_G_BLOCK", &hf_ap_stats_block_radio_b_g
, dissect_tlv
, wassp_tunnel_ap_stats_block_tlv_vals
},
631 { 65, "MU_STATS_BLOCK", &hf_mu_stats_block
, dissect_tlv
, wassp_tunnel_ap_stats_block_tlv_vals
},
632 { 66, "WDS_BLOCK", /* hf_, */ NULL
, NULL
, NULL
},
633 { 67, "WDS_Role", /* hf_, */ NULL
, NULL
, NULL
},
634 { 68, "WDS_PARENT_MAC", /* hf_, */ NULL
, NULL
, NULL
},
635 { 69, "WDS_BSSID", /* hf_, */ NULL
, NULL
, NULL
},
636 { 70, "DOT1x_STATS_BLOCK", &hf_dot1x_stats_block
, dissect_tlv
, wassp_tunnel_ap_stats_block_tlv_vals
},
637 { 71, "DOT1x_CREDENT", &hf_dot1x_stats_credent
, NULL
, NULL
},
638 { 72, "DOT1x_END_DATE", &hf_dot1x_stats_end_date
, NULL
, NULL
},
639 { 73, "TLV_MAX", &hf_stats_tlv_max
, NULL
, NULL
},
641 { 0, NULL
, NULL
, NULL
, NULL
}
644 static const ext_value_string wassp_tunnel_tlv_vals
[] = {
645 { 1, "STATUS", &hf_status
, NULL
, NULL
},
646 { 2, "RU-SOFT-VERSION", &hf_ru_soft_version
, NULL
, NULL
},
647 { 3, "RU-SERIAL-NUMBER", &hf_ru_serial_number
, NULL
, NULL
},
648 { 4, "RU-REG-CHALLENGE", &hf_ru_challenge
, NULL
, NULL
},
649 { 5, "RU-REG-RESPONSE", &hf_ru_response
, NULL
, NULL
},
650 { 6, "AC-IPADDR", &hf_ac_ipaddr
, NULL
, NULL
},
651 { 7, "RU-VNS-ID", &hf_ru_vns_id
, NULL
, NULL
},
652 { 8, "TFTP-SERVER", &hf_tftp_server
, NULL
, NULL
},
653 { 9, "IMAGE-PATH", &hf_image_path
, NULL
, NULL
},
654 { 10, "RU-CONFIG", &hf_ru_config
, dissect_snmp
, NULL
},
655 { 11, "RU-STATE", &hf_ru_state
, NULL
, NULL
},
656 { 12, "RU-SESSION-KEY", &hf_ru_session_key
, NULL
, NULL
},
657 { 13, "MESSAGE-TYPE", &hf_message_type
, NULL
, NULL
},
658 { 14, "RANDOM-NUMBER", &hf_random_number
, NULL
, NULL
},
659 { 15, "STANDBY-TIMEOUT", &hf_standby_timeout
, NULL
, NULL
},
660 { 16, "RU-CHALLENGE-ID", &hf_ru_challenge_id
, NULL
, NULL
},
661 { 17, "RU-MODEL", &hf_ru_model
, NULL
, NULL
},
662 { 18, "RU-SCAN-MODE", &hf_ru_scan_mode
, NULL
, NULL
},
663 { 19, "RU-SCAN-TYPE", &hf_ru_scan_type
, NULL
, NULL
},
664 { 20, "RU-SCAN-INTERVAL", &hf_ru_scan_interval
, NULL
, NULL
},
665 { 21, "RU-RADIO-TYPE", &hf_ru_radio_type
, NULL
, NULL
},
666 { 22, "RU-CHANNEL-DWELL-TIME", &hf_ru_channel_dwell_time
, NULL
, NULL
},
667 { 23, "RU-CHANNEL-LIST", &hf_ru_channel_list
, NULL
, NULL
},
668 { 24, "RU-TRAP", &hf_ru_trap
, NULL
, NULL
},
669 { 25, "RU-SCAN-TIMES", &hf_ru_scan_times
, NULL
, NULL
},
670 { 26, "RU-SCAN-DELAY", &hf_ru_scan_delay
, NULL
, NULL
},
671 { 27, "RU-SCAN-REQ-ID", &hf_ru_scan_req_id
, NULL
, NULL
},
672 { 28, "STATIC-CONFIG", &hf_static_config
, NULL
, NULL
},
673 { 29, "LOCAL-BRIDGING", &hf_local_bridging
, NULL
, NULL
},
674 { 30, "STATIC-BP-IPADDR", &hf_static_bp_ipaddr
, NULL
, NULL
},
675 { 31, "STATIC-BP-NETMASK", &hf_static_bp_netmask
, NULL
, NULL
},
676 { 32, "STATIC-BP-GATEWAY", &hf_static_bp_gateway
, NULL
, NULL
},
677 { 33, "STATIC-BM-IPADDR", &hf_static_bm_ipaddr
, NULL
, NULL
},
678 { 34, "TUNNEL_PROTOCOL/BSSID", /* &hf_, */ NULL
, NULL
, NULL
},
679 { 35, "BP_WIRED_MACADDR", /* &hf_, */ NULL
, NULL
, NULL
},
680 { 36, "RU_CAPABILITY", /* &hf_, */ NULL
, NULL
, NULL
},
681 { 37, "RU_SSID_NAME", /* hf_, */ NULL
, NULL
, NULL
},
682 { 38, "RU_ALARM", &hf_ru_alarm
, dissect_snmp
, NULL
},
683 { 39, "PREAUTH_RESP", &hf_preauth_resp
, NULL
, NULL
},
684 { 40, "BP_PMK", &hf_bp_pmk
, NULL
, NULL
},
685 { 41, "AC_REG_CHALLENGE", &hf_ac_reg_challenge
, NULL
, NULL
},
686 { 42, "AC_REG_RESPONSE", &hf_ac_reg_response
, NULL
, NULL
},
687 { 43, "STATS", &hf_stats
, NULL
, NULL
},
688 { 44, "CERTIFICATE", &hf_certificate
, NULL
, NULL
},
689 { 45, "RADIO_ID", &hf_radio_id
, NULL
, NULL
},
690 { 46, "BP-REQUEST-ID", &hf_bp_request_id
, NULL
, NULL
},
691 { 47, "NETWORK_ID", &hf_network_id
, NULL
, NULL
},
692 { 48, "MU_MAC", &hf_mu_mac
, NULL
, NULL
},
693 { 49, "TIME", &hf_time
, NULL
, NULL
},
694 { 50, "NUM_RADIOS", &hf_num_radios
, NULL
, NULL
},
695 { 51, "RADIO_INFO", &hf_radio_info
, NULL
, NULL
},
696 { 52, "NETWORK_INFO", &hf_network_info
, NULL
, NULL
},
697 { 53, "VENDOR_ID", &hf_vendor_id
, NULL
, NULL
},
698 { 54, "PRODUCT_ID", &hf_product_id
, NULL
, NULL
},
699 { 55, "RADIO_INFO_ACK", &hf_radio_info_ack
, NULL
, NULL
},
700 { 60, "SNMP-ERROR-STATUS", &hf_snmp_error_status
, NULL
, NULL
},
701 { 61, "SNMP-ERROR-INDEX", &hf_snmp_error_index
, NULL
, NULL
},
702 { 62, "ALTERNATE_AC_IPADDR", /* &hf_, */ NULL
, NULL
, NULL
},
703 { 63, "AP-IMG-TO-RAM", &hf_ap_img_to_ram
, NULL
, NULL
},
704 { 64, "AP-IMG-ROLE", &hf_ap_img_role
, NULL
, NULL
},
705 { 65, "AP_STATS_BLOCK", &hf_ap_stats_block
, dissect_tlv
, wassp_tunnel_ap_stats_block_tlv_vals
},
706 { 66, "MU_RF_STATS_BLOCK", &hf_mu_rf_stats_block
, dissect_tlv
, wassp_tunnel_mu_stats_block_tlv_vals
},
707 { 67, "STATS_REQUEST_TYPE", &hf_stats_request_type
, NULL
, NULL
},
708 { 68, "STATS_LAST", &hf_stats_last
, NULL
, NULL
},
709 { 69, "TLV_CONFIG", &hf_block_config
, dissect_tlv
, wassp_tunnel_tlv_config_tlv_vals
},
710 { 70, "CONFIG_ERROR_BLOCK", /* &hf_, */ NULL
, NULL
, NULL
},
711 { 71, "CONFIG_MODIFIED_BLOCK", /* &hf_, */ NULL
, NULL
, NULL
},
712 { 72, "MU_PMKID_LIST", &hf_mu_pmkid_list
, NULL
, NULL
},
713 { 73, "MU_PMK_BP", &hf_mu_pmk_bp
, NULL
, NULL
},
714 { 74, "MU_PMKID_BP", &hf_mu_pmkid_bp
, NULL
, NULL
},
715 { 75, "COUNTDOWN_TIME", &hf_countdown_time
, NULL
, NULL
},
716 { 76, "WASSP-VLAN-TAG", &hf_wassp_vlan_tag
, NULL
, NULL
},
717 { 81, "WASSP-TUNNEL-TYPE", &hf_wassp_tunnel_type
, NULL
, NULL
},
718 { 88, "AP-DHCP-MODE", &hf_ap_dhcp_mode
, NULL
, NULL
},
719 { 89, "AP-IPADDR", &hf_ap_ipaddr
, NULL
, NULL
},
720 { 90, "AP-NETMASK", &hf_ap_netmask
, NULL
, NULL
},
721 { 91, "AP-GATEWAY", &hf_ap_gateway
, NULL
, NULL
},
723 { 0, NULL
, NULL
, NULL
, NULL
}
726 static const value_string wassp_tunnel_pdu_type
[] = {
728 { 2, "RU Registration Request" },
729 { 3, "RU Registration Response" },
730 { 4, "RU Authentication Request" },
731 { 5, "RU Authentication Response" },
732 { 6, "RU Software Version Validate Request" },
733 { 7, "RU Software Version Validate Response" },
734 { 8, "RU Configuration Request" },
735 { 9, "RU Configuration Response" },
736 { 10, "RU Acknowledge" },
737 { 11, "RU Configuration Status Notify" },
738 { 12, "RU Set State Request" },
739 { 13, "RU Set State Response" },
740 { 14, "RU Statistics Notify" },
743 { 17, "SNMP Request" },
744 { 18, "SNMP Response" },
745 { 19, "BP Trap Notify" },
746 { 20, "BP Scan Request" },
747 { 21, "RFM Notify" },
748 { 22, "RU SNMP Alarm Notify" },
749 { 23, "RU SNMP Set Alarm" },
750 { 24, "RU SNMP Set Log Status" },
751 { 25, "RU SNMP Get Log Request" },
752 { 26, "RU SNMP Get Log Response" },
753 { 27, "SEC Update Notify" },
754 { 28, "RU Stats Req" },
755 { 29, "RU Stats Resp" },
756 { 30, "MU Stats Req" },
757 { 31, "MU Stats Response" },
763 static const value_string wassp_setresult_vals
[] = {
772 dissect_snmp(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*wassp_tree
,
773 volatile guint32 offset
, guint32 length
, const ext_value_string
*value_array _U_
)
777 /* Don't add SNMP stuff to the info column */
778 col_set_writable(pinfo
->cinfo
, FALSE
);
780 snmp_tvb
= tvb_new_subset(tvb
, offset
, length
, length
);
782 /* Continue after SNMP dissection errors */
784 call_dissector(snmp_handle
, snmp_tvb
, pinfo
, wassp_tree
);
785 } CATCH_NONFATAL_ERRORS
{
786 show_exception(snmp_tvb
, pinfo
, wassp_tree
, EXCEPT_CODE
, GET_MESSAGE
);
789 col_set_writable(pinfo
->cinfo
, TRUE
);
797 dissect_ieee80211(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*wassp_tree
,
798 volatile guint32 offset
, guint32 length
, const ext_value_string
*value_array _U_
)
800 tvbuff_t
*ieee80211_tvb
;
802 /* Don't add IEEE 802.11 stuff to the info column */
803 col_set_writable(pinfo
->cinfo
, FALSE
);
805 ieee80211_tvb
= tvb_new_subset(tvb
, offset
, length
, length
);
807 /* Continue after IEEE 802.11 dissection errors */
809 call_dissector(ieee80211_handle
, ieee80211_tvb
, pinfo
, wassp_tree
);
810 } CATCH_NONFATAL_ERRORS
{
811 show_exception(ieee80211_tvb
, pinfo
, wassp_tree
, EXCEPT_CODE
, GET_MESSAGE
);
814 col_set_writable(pinfo
->cinfo
, TRUE
);
822 dissect_tlv(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*wassp_tree
,
823 guint32 offset
, guint32 length _U_
, const ext_value_string
*value_array
)
827 proto_item
*tlv_item
;
828 proto_item
*tlv_tree
;
829 proto_item
*type_item
;
833 tlv_type
= tvb_get_ntohs(tvb
, offset
);
834 tlv_length
= tvb_get_ntohs(tvb
, offset
+ 2);
835 DISSECTOR_ASSERT(tlv_length
>= 4);
836 tlv_item
= proto_tree_add_text(wassp_tree
, tvb
,
841 extval_to_str_idx(tlv_type
, value_array
, NULL
, "Unknown"));
842 tlv_tree
= proto_item_add_subtree(tlv_item
,
843 ett_wassp_tlv_header
);
844 type_item
= proto_tree_add_item(tlv_tree
, hf_wassp_tlv_type
,
845 tvb
, offset
, 2, ENC_BIG_ENDIAN
);
846 proto_item_append_text(type_item
, " = %s",
847 extval_to_str_idx(tlv_type
, value_array
,
848 &type_index
, "Unknown"));
850 proto_tree_add_item(tlv_tree
, hf_wassp_tlv_length
,
851 tvb
, offset
, 2, ENC_BIG_ENDIAN
);
859 tlv_end
= offset
+ tlv_length
;
861 /* Make hf_ handling independent of specialfuncion */
862 if ( type_index
!= -1 && value_array
[type_index
].hf_element
) {
863 proto_tree_add_item(tlv_tree
,
864 *(value_array
[type_index
].hf_element
),
865 tvb
, offset
, tlv_length
, ENC_BIG_ENDIAN
);
867 proto_tree_add_item(tlv_tree
, hf_wassp_tlv_data
,
868 tvb
, offset
, tlv_length
, ENC_NA
);
870 if ( type_index
!= -1 && value_array
[type_index
].specialfunction
) {
873 while (offset
< tlv_end
) {
874 newoffset
= value_array
[type_index
].specialfunction (
875 tvb
, pinfo
, tlv_tree
, offset
, tlv_length
,
876 value_array
[type_index
].evs
);
877 DISSECTOR_ASSERT(newoffset
> offset
);
885 dissect_wassp(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
)
888 proto_tree
*wassp_tree
= NULL
;
890 guint32 packet_length
;
894 packet_type
= tvb_get_guint8(tvb
, 1);
895 col_set_str(pinfo
->cinfo
, COL_PROTOCOL
, PROTO_SHORT_NAME
);
896 col_add_str(pinfo
->cinfo
, COL_INFO
, val_to_str(packet_type
,
897 wassp_tunnel_pdu_type
, "Type 0x%02x"));
900 /* Header dissection */
901 ti
= proto_tree_add_item(tree
, proto_wassp
, tvb
, offset
, -1,
903 wassp_tree
= proto_item_add_subtree(ti
, ett_wassp
);
905 proto_tree_add_item(wassp_tree
, hf_wassp_version
, tvb
, offset
, 1,
909 proto_tree_add_item(wassp_tree
, hf_wassp_type
, tvb
, offset
, 1,
913 switch (packet_type
) {
914 case 1: /* Discover ??? */
915 proto_tree_add_item(wassp_tree
, hf_wassp_discover1
, tvb
, offset
, 2,
918 packet_length
= tvb_get_ntohs(tvb
, offset
);
919 proto_tree_add_item(wassp_tree
, hf_wassp_length
, tvb
, offset
, 2,
922 proto_tree_add_item(wassp_tree
, hf_wassp_discover2
, tvb
, offset
, 2,
925 subtype
= tvb_get_ntohs(tvb
, offset
);
926 proto_tree_add_item(wassp_tree
, hf_wassp_subtype
, tvb
, offset
, 2,
931 proto_tree_add_item(wassp_tree
, hf_wassp_ether
, tvb
, offset
, 6,
936 proto_tree_add_item(wassp_tree
, hf_wassp_discover3
, tvb
, offset
, 2,
943 proto_tree_add_item(wassp_tree
, hf_wassp_seqno
, tvb
, offset
, 1,
947 proto_tree_add_item(wassp_tree
, hf_wassp_flags
, tvb
, offset
, 1,
951 proto_tree_add_item(wassp_tree
, hf_wassp_sessionid
, tvb
, offset
, 2,
955 packet_length
= tvb_get_ntohs(tvb
, offset
);
956 proto_tree_add_item(wassp_tree
, hf_wassp_length
, tvb
, offset
, 2,
962 /* Body dissection */
963 switch (packet_type
) {
964 case 15: /* Data: 802.11 packet with FCS */
965 offset
= dissect_ieee80211(tvb
, pinfo
, wassp_tree
,
966 offset
, packet_length
- offset
, NULL
);
969 while (offset
< packet_length
)
970 offset
= dissect_tlv(tvb
, pinfo
, wassp_tree
,
971 offset
, 0, wassp_tunnel_tlv_vals
);
979 test_wassp(tvbuff_t
*tvb
)
981 /* Minimum of 8 bytes, first byte (version) has value of 3 */
982 if ( tvb_length(tvb
) < 8
983 || tvb_get_guint8(tvb
, 0) != 3
984 /* || tvb_get_guint8(tvb, 2) != 0
985 || tvb_get_ntohs(tvb, 6) > tvb_reported_length(tvb) */
994 dissect_wassp_heur(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
)
996 if ( !test_wassp(tvb
) ) {
999 dissect_wassp(tvb
, pinfo
, tree
);
1005 dissect_wassp_static(tvbuff_t
*tvb
, packet_info
*pinfo
, proto_tree
*tree
, void *data _U_
)
1007 if ( !test_wassp(tvb
) ) {
1010 return dissect_wassp(tvb
, pinfo
, tree
);
1014 proto_register_wassp(void)
1016 static hf_register_info hf
[] = {
1019 { &hf_wassp_tlv_type
,
1020 { "TlvType", "wassp.tlv.type", FT_UINT8
, BASE_DEC
, NULL
,
1021 0x0, NULL
, HFILL
}},
1023 { &hf_wassp_tlv_length
,
1024 { "TlvLength", "wassp.tlv.length", FT_UINT8
, BASE_DEC
, NULL
,
1025 0x0, NULL
, HFILL
}},
1027 { &hf_wassp_tlv_data
,
1028 { "TlvData", "wassp.tlv.data", FT_BYTES
, BASE_NONE
, NULL
,
1029 0x0, NULL
, HFILL
}},
1031 /* WASSP tunnel header */
1032 { &hf_wassp_version
,
1033 { "Protocol Version", "wassp.version", FT_UINT8
, BASE_DEC
, NULL
,
1034 0x0, NULL
, HFILL
}},
1037 { "PDU Type", "wassp.type", FT_UINT8
, BASE_DEC
, VALS(wassp_tunnel_pdu_type
),
1038 0x0, NULL
, HFILL
}},
1041 { "Sequence No", "wassp.seqno", FT_UINT8
, BASE_DEC
, NULL
,
1042 0x0, NULL
, HFILL
}},
1045 { "Flags", "wassp.flags", FT_UINT8
, BASE_HEX
, NULL
,
1046 0x0, NULL
, HFILL
}},
1048 { &hf_wassp_sessionid
,
1049 { "Session ID", "wassp.sessionid", FT_UINT8
, BASE_DEC
, NULL
,
1050 0x0, NULL
, HFILL
}},
1053 { "PDU Length", "wassp.length", FT_UINT8
, BASE_HEX
, NULL
,
1054 0x0, NULL
, HFILL
}},
1056 /* Data: Embedded IEEE 802.11 Frame */
1059 { "DATA", "wassp.data", FT_NONE
, BASE_NONE
, NULL
,
1060 0x0, NULL
, HFILL
}},
1063 /* WASSP tunnel data */
1065 { "STATUS", "wassp.status", FT_UINT32
, BASE_DEC
, NULL
,
1066 0x0, NULL
, HFILL
}},
1068 { &hf_ru_soft_version
,
1069 { "RU-SOFT-VERSION", "wassp.ru.soft.version", FT_STRING
, BASE_NONE
, NULL
,
1070 0x0, NULL
, HFILL
}},
1072 { &hf_ru_serial_number
,
1073 { "RU-SERIAL-NUMBER", "wassp.ru.serial.number", FT_STRING
, BASE_NONE
, NULL
,
1074 0x0, NULL
, HFILL
}},
1077 { "RU-CHALLENGE", "wassp.ru.challenge", FT_BYTES
, BASE_NONE
, NULL
,
1078 0x0, NULL
, HFILL
}},
1081 { "RU-RESPONSE", "wassp.ru.response", FT_BYTES
, BASE_NONE
, NULL
,
1082 0x0, NULL
, HFILL
}},
1085 { "AC-IPADDR", "wassp.ac.ipaddr", FT_IPv4
, BASE_NONE
, NULL
,
1086 0x0, NULL
, HFILL
}},
1089 { "RU-VNS-ID", "wassp.ru.vns.id", FT_UINT32
, BASE_DEC
, NULL
,
1090 0x0, NULL
, HFILL
}},
1093 { "TFTP-SERVER", "wassp.tftp.server", FT_IPv4
, BASE_NONE
, NULL
,
1094 0x0, NULL
, HFILL
}},
1097 { "IMAGE-PATH", "wassp.image.path", FT_STRING
, BASE_NONE
, NULL
,
1098 0x0, NULL
, HFILL
}},
1101 { "RU-CONFIG", "wassp.ru.config", FT_NONE
, BASE_NONE
, NULL
,
1102 0x0, NULL
, HFILL
}},
1105 { "RU-STATE", "wassp.ru.state", FT_UINT32
, BASE_DEC
, NULL
,
1106 0x0, NULL
, HFILL
}},
1108 { &hf_ru_session_key
,
1109 { "RU-SESSION-KEY", "wassp.ru.session.key", FT_STRING
, BASE_NONE
, NULL
,
1110 0x0, NULL
, HFILL
}},
1113 { "MESSAGE-TYPE", "wassp.message.type", FT_UINT32
, BASE_DEC
, NULL
,
1114 0x0, NULL
, HFILL
}},
1116 { &hf_random_number
,
1117 { "RANDOM-NUMBER", "wassp.random.number", FT_BYTES
, BASE_NONE
, NULL
,
1118 0x0, NULL
, HFILL
}},
1120 { &hf_standby_timeout
,
1121 { "STANDBY-TIMEOUT", "wassp.standby.timeout", FT_UINT32
, BASE_DEC
, NULL
,
1122 0x0, NULL
, HFILL
}},
1124 { &hf_ru_challenge_id
,
1125 { "RU-CHALLENGE-ID", "wassp.ru.challenge.id", FT_UINT32
, BASE_DEC
, NULL
,
1126 0x0, NULL
, HFILL
}},
1129 { "RU-MODEL", "wassp.ru.model", FT_STRING
, BASE_NONE
, NULL
,
1130 0x0, NULL
, HFILL
}},
1133 { "RU-SCAN-MODE", "wassp.ru.scan.mode", FT_UINT32
, BASE_DEC
, NULL
,
1134 0x0, NULL
, HFILL
}},
1137 { "RU-SCAN-TYPE", "wassp.ru.scan.type", FT_UINT32
, BASE_DEC
, NULL
,
1138 0x0, NULL
, HFILL
}},
1140 { &hf_ru_scan_interval
,
1141 { "RU-SCAN-INTERVAL", "wassp.ru.scan.interval", FT_UINT32
, BASE_DEC
, NULL
,
1142 0x0, NULL
, HFILL
}},
1144 { &hf_ru_radio_type
,
1145 { "RU-RADIO-TYPE", "wassp.ru.radio.type", FT_UINT32
, BASE_DEC
, NULL
,
1146 0x0, NULL
, HFILL
}},
1148 { &hf_ru_channel_dwell_time
,
1149 { "RU-CHANNEL-DWELL-TIME", "wassp.ru.channel.dwell.time", FT_UINT32
, BASE_DEC
, NULL
,
1150 0x0, NULL
, HFILL
}},
1152 { &hf_ru_channel_list
,
1153 { "RU-CHANNEL-LIST", "wassp.ru.channel.list", FT_UINT32
, BASE_DEC
, NULL
,
1154 0x0, NULL
, HFILL
}},
1157 { "RU-TRAP", "wassp.ru.trap", FT_STRING
, BASE_NONE
, NULL
,
1158 0x0, NULL
, HFILL
}},
1160 { &hf_ru_scan_times
,
1161 { "RU-SCAN-TIMES", "wassp.ru.scan.times", FT_UINT32
, BASE_DEC
, NULL
,
1162 0x0, NULL
, HFILL
}},
1164 { &hf_ru_scan_delay
,
1165 { "RU-SCAN-DELAY", "wassp.ru.scan.delay", FT_UINT32
, BASE_DEC
, NULL
,
1166 0x0, NULL
, HFILL
}},
1168 { &hf_ru_scan_req_id
,
1169 { "RU-SCAN-REQ-ID", "wassp.ru.scan.req.id", FT_UINT32
, BASE_DEC
, NULL
,
1170 0x0, NULL
, HFILL
}},
1172 { &hf_static_config
,
1173 { "STATIC-CONFIG", "wassp.static.config", FT_UINT32
, BASE_DEC
, NULL
,
1174 0x0, NULL
, HFILL
}},
1176 { &hf_local_bridging
,
1177 { "LOCAL-BRIDGING", "wassp.local.bridging", FT_UINT32
, BASE_DEC
, NULL
,
1178 0x0, NULL
, HFILL
}},
1180 { &hf_static_bp_ipaddr
,
1181 { "STATIC-BP-IPADDR", "wassp.static.bp.ipaddr", FT_IPv4
, BASE_NONE
, NULL
,
1182 0x0, NULL
, HFILL
}},
1184 { &hf_static_bp_netmask
,
1185 { "STATIC-BP-NETMASK", "wassp.static.bp.netmask", FT_IPv4
, BASE_NONE
, NULL
,
1186 0x0, NULL
, HFILL
}},
1188 { &hf_static_bp_gateway
,
1189 { "STATIC-BP-GATEWAY", "wassp.static.bp.gateway", FT_IPv4
, BASE_NONE
, NULL
,
1190 0x0, NULL
, HFILL
}},
1192 { &hf_static_bm_ipaddr
,
1193 { "STATIC-BM-IPADDR", "wassp.static.bm.ipaddr", FT_IPv4
, BASE_NONE
, NULL
,
1194 0x0, NULL
, HFILL
}},
1197 { "RU-ALARM", "wassp.ru.alarm", FT_NONE
, BASE_NONE
, NULL
,
1198 0x0, NULL
, HFILL
}},
1200 { &hf_bp_request_id
,
1201 { "BP-REQUEST-ID", "wassp.bp.request.id", FT_UINT32
, BASE_DEC
, NULL
,
1202 0x0, NULL
, HFILL
}},
1204 { &hf_snmp_error_status
,
1205 { "SNMP-ERROR-STATUS", "wassp.snmp.error.status", FT_UINT32
, BASE_DEC
, NULL
,
1206 0x0, NULL
, HFILL
}},
1208 { &hf_snmp_error_index
,
1209 { "SNMP-ERROR-INDEX", "wassp.snmp.error.index", FT_UINT32
, BASE_DEC
, NULL
,
1210 0x0, NULL
, HFILL
}},
1212 { &hf_ap_img_to_ram
,
1213 { "AP-IMG-TO-RAM", "wassp.ap.img.to.ram", FT_UINT32
, BASE_DEC
, NULL
,
1214 0x0, NULL
, HFILL
}},
1217 { "AP-IMG-ROLE", "wassp.ap.img.role", FT_UINT32
, BASE_DEC
, NULL
,
1218 0x0, NULL
, HFILL
}},
1220 { &hf_ap_stats_block
,
1221 { "AP Stats Block", "wassp.ap_stats_block", FT_NONE
, BASE_NONE
, NULL
,
1222 0x0, NULL
, HFILL
}},
1225 { "Config", "wassp.tlv_config", FT_NONE
, BASE_NONE
, NULL
,
1226 0x0, NULL
, HFILL
}},
1228 { &hf_wassp_vlan_tag
,
1229 { "WASSP-VLAN-TAG", "wassp.vlan.tag", FT_INT32
, BASE_DEC
, NULL
,
1230 0x0, NULL
, HFILL
}},
1232 { &hf_wassp_tunnel_type
,
1233 { "WASSP-TUNNEL-TYPE", "wassp.tunnel.type", FT_UINT32
, BASE_DEC
, NULL
,
1234 0x0, NULL
, HFILL
}},
1237 { "AP-DHCP-MODE", "wassp.ap.dhcp.mode", FT_UINT32
, BASE_DEC
, NULL
,
1238 0x0, NULL
, HFILL
}},
1241 { "AP-IPADDR", "wassp.ap.ipaddr", FT_IPv4
, BASE_NONE
, NULL
,
1242 0x0, NULL
, HFILL
}},
1245 { "AP-NETMASK", "wassp.ap.netmask", FT_IPv4
, BASE_NONE
, NULL
,
1246 0x0, NULL
, HFILL
}},
1249 { "AP-GATEWAY", "wassp.ap.gateway", FT_IPv4
, BASE_NONE
, NULL
,
1250 0x0, NULL
, HFILL
}},
1253 { "PREAUTH_RESP", "wassp.preauth.resp", FT_INT32
, BASE_DEC
, NULL
,
1254 0x0, NULL
, HFILL
}},
1257 { "BP_PMK", "wassp.bp.pmk", FT_INT32
, BASE_DEC
, NULL
,
1258 0x0, NULL
, HFILL
}},
1260 { &hf_ac_reg_challenge
,
1261 { "AC_REG_CHALLENGE", "wassp.ac.reg.challenge", FT_INT32
, BASE_DEC
, NULL
,
1262 0x0, NULL
, HFILL
}},
1264 { &hf_ac_reg_response
,
1265 { "AC_REG_RESPONSE", "wassp.ac.reg.response", FT_INT32
, BASE_DEC
, NULL
,
1266 0x0, NULL
, HFILL
}},
1269 { "STATS", "wassp.stats", FT_INT32
, BASE_DEC
, NULL
,
1270 0x0, NULL
, HFILL
}},
1273 { "CERTIFICATE", "wassp.certificate", FT_INT32
, BASE_DEC
, NULL
,
1274 0x0, NULL
, HFILL
}},
1277 { "RADIO_ID", "wassp.radio.id", FT_INT32
, BASE_DEC
, NULL
,
1278 0x0, NULL
, HFILL
}},
1281 { "NETWORK_ID", "wassp.network.id", FT_INT32
, BASE_DEC
, NULL
,
1282 0x0, NULL
, HFILL
}},
1285 { "MU_MAC", "wassp.mu.mac", FT_INT32
, BASE_DEC
, NULL
,
1286 0x0, NULL
, HFILL
}},
1289 { "TIME", "wassp.time", FT_INT32
, BASE_DEC
, NULL
,
1290 0x0, NULL
, HFILL
}},
1293 { "NUM_RADIOS", "wassp.num.radios", FT_INT32
, BASE_DEC
, NULL
,
1294 0x0, NULL
, HFILL
}},
1297 { "RADIO_INFO", "wassp.radio.info", FT_INT32
, BASE_DEC
, NULL
,
1298 0x0, NULL
, HFILL
}},
1301 { "NETWORK_INFO", "wassp.network.info", FT_INT32
, BASE_DEC
, NULL
,
1302 0x0, NULL
, HFILL
}},
1305 { "VENDOR_ID", "wassp.vendor.id", FT_INT32
, BASE_DEC
, NULL
,
1306 0x0, NULL
, HFILL
}},
1309 { "PRODUCT_ID", "wassp.product.id", FT_INT32
, BASE_DEC
, NULL
,
1310 0x0, NULL
, HFILL
}},
1312 { &hf_radio_info_ack
,
1313 { "RADIO_INFO_ACK", "wassp.radio.info.ack", FT_INT32
, BASE_DEC
, NULL
,
1314 0x0, NULL
, HFILL
}},
1316 { &hf_mu_rf_stats_block
,
1317 { "MU_RF_STATS_BLOCK", "wassp.mu.rf.stats.block", FT_NONE
, BASE_NONE
, NULL
,
1318 0x0, NULL
, HFILL
}},
1320 { &hf_stats_request_type
,
1321 { "STATS_REQUEST_TYPE", "wassp.stats.request.type", FT_INT32
, BASE_DEC
, NULL
,
1322 0x0, NULL
, HFILL
}},
1325 { "STATS_LAST", "wassp.stats.last", FT_INT32
, BASE_DEC
, NULL
,
1326 0x0, NULL
, HFILL
}},
1328 { &hf_mu_pmkid_list
,
1329 { "MU_PMKID_LIST", "wassp.mu.pmkid.list", FT_INT32
, BASE_DEC
, NULL
,
1330 0x0, NULL
, HFILL
}},
1333 { "MU_PMK_BP", "wassp.mu.pmk.bp", FT_INT32
, BASE_DEC
, NULL
,
1334 0x0, NULL
, HFILL
}},
1337 { "MU_PMKID_BP", "wassp.mu.pmkid.bp", FT_INT32
, BASE_DEC
, NULL
,
1338 0x0, NULL
, HFILL
}},
1340 { &hf_countdown_time
,
1341 { "COUNTDOWN_TIME", "wassp.countdown.time", FT_INT32
, BASE_DEC
, NULL
,
1342 0x0, NULL
, HFILL
}},
1344 /* WASSP tunnel subtypes AP stats block */
1345 { &hf_ap_stats_block_ether
,
1346 { "Ether Stats", "wassp.ap_stats_block.ether", FT_NONE
, BASE_NONE
, NULL
,
1347 0x0, NULL
, HFILL
}},
1349 { &hf_ap_stats_block_radio_a
,
1350 { "Radio-A Stats", "wassp.ap_stats_block.radioa", FT_NONE
, BASE_NONE
, NULL
,
1351 0x0, NULL
, HFILL
}},
1353 { &hf_ap_stats_block_radio_b_g
,
1354 { "Radio-B/G Stats", "wassp.ap_stats_block.radiobg", FT_NONE
, BASE_NONE
, NULL
,
1355 0x0, NULL
, HFILL
}},
1357 { &hf_mu_stats_block
,
1358 { "Mobile User Stats", "wassp.mustats", FT_NONE
, BASE_NONE
, NULL
,
1359 0x0, NULL
, HFILL
}},
1361 { &hf_mu_stats_block_65
,
1362 { "MU Stats Unknown 65", "wassp.mustats.65", FT_NONE
, BASE_NONE
, NULL
,
1363 0x0, NULL
, HFILL
}},
1365 { &hf_dot1x_stats_block
,
1366 { "DOT1x_STATS_BLOCK", "wassp.ap_stats_block.dot1x", FT_NONE
, BASE_NONE
, NULL
,
1367 0x0, NULL
, HFILL
}},
1370 { &hf_stats_dot11_ackfailurecount
,
1371 { "DOT11_ACKFailureCount", "wassp.stats.dot11.ackfailurecount", FT_INT32
, BASE_DEC
, NULL
,
1372 0x0, NULL
, HFILL
}},
1374 { &hf_stats_dot11_fcserrorcount
,
1375 { "DOT11_FCSErrorCount", "wassp.stats.dot11.fcserrorcount", FT_INT32
, BASE_DEC
, NULL
,
1376 0x0, NULL
, HFILL
}},
1378 { &hf_stats_dot11_failedcount
,
1379 { "DOT11_FailedCount", "wassp.stats.dot11.failedcount", FT_INT32
, BASE_DEC
, NULL
,
1380 0x0, NULL
, HFILL
}},
1382 { &hf_stats_dot11_frameduplicatecount
,
1383 { "DOT11_FrameDuplicateCount", "wassp.stats.dot11.frameduplicatecount", FT_INT32
, BASE_DEC
, NULL
,
1384 0x0, NULL
, HFILL
}},
1386 { &hf_stats_dot11_multicastreceivedframecount
,
1387 { "DOT11_MulticastReceivedFrameCount", "wassp.stats.dot11.multicastreceivedframecount", FT_INT32
, BASE_DEC
, NULL
,
1388 0x0, NULL
, HFILL
}},
1390 { &hf_stats_dot11_multicasttransmittedframecount
,
1391 { "DOT11_MulticastTransmittedFrameCount", "wassp.stats.dot11.multicasttransmittedframecount", FT_INT32
, BASE_DEC
, NULL
,
1392 0x0, NULL
, HFILL
}},
1394 { &hf_stats_dot11_multipleretrycount
,
1395 { "DOT11_MultipleRetryCount", "wassp.stats.dot11.multipleretrycount", FT_INT32
, BASE_DEC
, NULL
,
1396 0x0, NULL
, HFILL
}},
1398 { &hf_stats_dot11_rtsfailurecount
,
1399 { "DOT11_RTSFailureCount", "wassp.stats.dot11.rtsfailurecount", FT_INT32
, BASE_DEC
, NULL
,
1400 0x0, NULL
, HFILL
}},
1402 { &hf_stats_dot11_rtssuccesscount
,
1403 { "DOT11_RTSSuccessCount", "wassp.stats.dot11.rtssuccesscount", FT_INT32
, BASE_DEC
, NULL
,
1404 0x0, NULL
, HFILL
}},
1406 { &hf_stats_dot11_receivedfragementcount
,
1407 { "DOT11_ReceivedFragementCount", "wassp.stats.dot11.receivedfragementcount", FT_INT32
, BASE_DEC
, NULL
,
1408 0x0, NULL
, HFILL
}},
1410 { &hf_stats_dot11_retrycount
,
1411 { "DOT11_RetryCount", "wassp.stats.dot11.retrycount", FT_INT32
, BASE_DEC
, NULL
,
1412 0x0, NULL
, HFILL
}},
1414 { &hf_stats_dot11_transmittedfragmentcount
,
1415 { "DOT11_TransmittedFragmentCount", "wassp.stats.dot11.transmittedfragmentcount", FT_INT32
, BASE_DEC
, NULL
,
1416 0x0, NULL
, HFILL
}},
1418 { &hf_stats_dot11_transmittedframecount
,
1419 { "DOT11_TransmittedFrameCount", "wassp.stats.dot11.transmittedframecount", FT_INT32
, BASE_DEC
, NULL
,
1420 0x0, NULL
, HFILL
}},
1422 { &hf_stats_dot11_webundecryptablecount
,
1423 { "DOT11_WEBUndecryptableCount", "wassp.stats.dot11.webundecryptablecount", FT_INT32
, BASE_DEC
, NULL
,
1424 0x0, NULL
, HFILL
}},
1426 { &hf_stats_dot11_wepexcludedcount
,
1427 { "DOT11_WEPExcludedCount", "wassp.stats.dot11.wepexcludedcount", FT_INT32
, BASE_DEC
, NULL
,
1428 0x0, NULL
, HFILL
}},
1430 { &hf_stats_dot11_wepicverrorcount
,
1431 { "DOT11_WEPICVErrorCount", "wassp.stats.dot11.wepicverrorcount", FT_INT32
, BASE_DEC
, NULL
,
1432 0x0, NULL
, HFILL
}},
1434 { &hf_stats_drm_allocfailures
,
1435 { "DRM_AllocFailures", "wassp.stats.drm.allocfailures", FT_INT32
, BASE_DEC
, NULL
,
1436 0x0, NULL
, HFILL
}},
1438 { &hf_stats_drm_currentchannel
,
1439 { "DRM_CurrentChannel", "wassp.stats.drm.currentchannel", FT_INT32
, BASE_DEC
, NULL
,
1440 0x0, NULL
, HFILL
}},
1442 { &hf_stats_drm_currentpower
,
1443 { "DRM_CurrentPower", "wassp.stats.drm.currentpower", FT_INT32
, BASE_DEC
, NULL
,
1444 0x0, NULL
, HFILL
}},
1446 { &hf_stats_drm_datatxfailures
,
1447 { "DRM_DataTxFailures", "wassp.stats.drm.datatxfailures", FT_INT32
, BASE_DEC
, NULL
,
1448 0x0, NULL
, HFILL
}},
1450 { &hf_stats_drm_devicetype
,
1451 { "DRM_DeviceType", "wassp.stats.drm.devicetype", FT_INT32
, BASE_DEC
, NULL
,
1452 0x0, NULL
, HFILL
}},
1454 { &hf_stats_drm_indatapackets
,
1455 { "DRM_InDataPackets", "wassp.stats.drm.indatapackets", FT_INT32
, BASE_DEC
, NULL
,
1456 0x0, NULL
, HFILL
}},
1458 { &hf_stats_drm_inmgmtpackets
,
1459 { "DRM_InMgmtPackets", "wassp.stats.drm.inmgmtpackets", FT_INT32
, BASE_DEC
, NULL
,
1460 0x0, NULL
, HFILL
}},
1462 { &hf_stats_drm_loadfactor
,
1463 { "DRM_LoadFactor", "wassp.stats.drm.loadfactor", FT_INT32
, BASE_DEC
, NULL
,
1464 0x0, NULL
, HFILL
}},
1466 { &hf_stats_drm_mgmttxfailures
,
1467 { "DRM_MgmtTxFailures", "wassp.stats.drm.mgmttxfailures", FT_INT32
, BASE_DEC
, NULL
,
1468 0x0, NULL
, HFILL
}},
1470 { &hf_stats_drm_msgqfailures
,
1471 { "DRM_MsgQFailures", "wassp.stats.drm.msgqfailures", FT_INT32
, BASE_DEC
, NULL
,
1472 0x0, NULL
, HFILL
}},
1474 { &hf_stats_drm_nodrmcurrentchannel
,
1475 { "DRM_NoDRMCurrentChannel", "wassp.stats.drm.nodrmcurrentchannel", FT_INT32
, BASE_DEC
, NULL
,
1476 0x0, NULL
, HFILL
}},
1478 { &hf_stats_drm_outdatapackets
,
1479 { "DRM_OutDataPackets", "wassp.stats.drm.outdatapackets", FT_INT32
, BASE_DEC
, NULL
,
1480 0x0, NULL
, HFILL
}},
1482 { &hf_stats_drm_outmgmtpackets
,
1483 { "DRM_OutMgmtPackets", "wassp.stats.drm.outmgmtpackets", FT_INT32
, BASE_DEC
, NULL
,
1484 0x0, NULL
, HFILL
}},
1486 { &hf_stats_if_inbcastpackets
,
1487 { "IF_InBcastPackets", "wassp.stats.if.inbcastpackets", FT_INT32
, BASE_DEC
, NULL
,
1488 0x0, NULL
, HFILL
}},
1490 { &hf_stats_if_indiscards
,
1491 { "IF_InDiscards", "wassp.stats.if.indiscards", FT_INT32
, BASE_DEC
, NULL
,
1492 0x0, NULL
, HFILL
}},
1494 { &hf_stats_if_inerrors
,
1495 { "IF_InErrors", "wassp.stats.if.inerrors", FT_INT32
, BASE_DEC
, NULL
,
1496 0x0, NULL
, HFILL
}},
1498 { &hf_stats_if_inmcastpackets
,
1499 { "IF_InMcastPackets", "wassp.stats.if.inmcastpackets", FT_INT32
, BASE_DEC
, NULL
,
1500 0x0, NULL
, HFILL
}},
1502 { &hf_stats_if_inoctets
,
1503 { "IF_InOctets", "wassp.stats.if.inoctets", FT_INT32
, BASE_DEC
, NULL
,
1504 0x0, NULL
, HFILL
}},
1506 { &hf_stats_if_inucastpackets
,
1507 { "IF_InUcastPackets", "wassp.stats.if.inucastpackets", FT_INT32
, BASE_DEC
, NULL
,
1508 0x0, NULL
, HFILL
}},
1511 { "IF_MTU", "wassp.stats.if.mtu", FT_INT32
, BASE_DEC
, NULL
,
1512 0x0, NULL
, HFILL
}},
1514 { &hf_stats_if_outbcastpackets
,
1515 { "IF_OutBcastPackets", "wassp.stats.if.outbcastpackets", FT_INT32
, BASE_DEC
, NULL
,
1516 0x0, NULL
, HFILL
}},
1518 { &hf_stats_if_outdiscards
,
1519 { "IF_OutDiscards", "wassp.stats.if.outdiscards", FT_INT32
, BASE_DEC
, NULL
,
1520 0x0, NULL
, HFILL
}},
1522 { &hf_stats_if_outerrors
,
1523 { "IF_OutErrors", "wassp.stats.if.outerrors", FT_INT32
, BASE_DEC
, NULL
,
1524 0x0, NULL
, HFILL
}},
1526 { &hf_stats_if_outoctets
,
1527 { "IF_OutOctets", "wassp.stats.if.outoctets", FT_INT32
, BASE_DEC
, NULL
,
1528 0x0, NULL
, HFILL
}},
1530 { &hf_stats_if_outucastpackets
,
1531 { "IF_OutUcastPackets", "wassp.stats.if.outucastpackets", FT_INT32
, BASE_DEC
, NULL
,
1532 0x0, NULL
, HFILL
}},
1534 { &hf_stats_if_outmcastpackets
,
1535 { "IF_OutMCastPackets", "wassp.stats.if.outmcastpackets", FT_INT32
, BASE_DEC
, NULL
,
1536 0x0, NULL
, HFILL
}},
1538 { &hf_stats_mu_address
,
1539 { "MU_Address", "wassp.stats.mu.address", FT_INT32
, BASE_DEC
, NULL
,
1540 0x0, NULL
, HFILL
}},
1542 { &hf_stats_mu_associationcount
,
1543 { "MU_AssociationCount", "wassp.stats.mu.associationcount", FT_INT32
, BASE_DEC
, NULL
,
1544 0x0, NULL
, HFILL
}},
1546 { &hf_stats_mu_authenticationcount
,
1547 { "MU_AuthenticationCount", "wassp.stats.mu.authenticationcount", FT_INT32
, BASE_DEC
, NULL
,
1548 0x0, NULL
, HFILL
}},
1550 { &hf_stats_mu_deassociationcount
,
1551 { "MU_DeAssociationCount", "wassp.stats.mu.deassociationcount", FT_INT32
, BASE_DEC
, NULL
,
1552 0x0, NULL
, HFILL
}},
1554 { &hf_stats_mu_deauthenticationcount
,
1555 { "MU_DeAuthenticationCount", "wassp.stats.mu.deauthenticationcount", FT_INT32
, BASE_DEC
, NULL
,
1556 0x0, NULL
, HFILL
}},
1558 { &hf_stats_mu_ifindex
,
1559 { "MU_IfIndex", "wassp.stats.mu.ifindex", FT_INT32
, BASE_DEC
, NULL
,
1560 0x0, NULL
, HFILL
}},
1562 { &hf_stats_mu_reassociationcount
,
1563 { "MU_ReAssociationCount", "wassp.stats.mu.reassociationcount", FT_INT32
, BASE_DEC
, NULL
,
1564 0x0, NULL
, HFILL
}},
1566 { &hf_stats_mu_receivedbytes
,
1567 { "MU_ReceivedBytes", "wassp.stats.mu.receivedbytes", FT_INT32
, BASE_DEC
, NULL
,
1568 0x0, NULL
, HFILL
}},
1570 { &hf_stats_mu_receivederrors
,
1571 { "MU_ReceivedErrors", "wassp.stats.mu.receivederrors", FT_INT32
, BASE_DEC
, NULL
,
1572 0x0, NULL
, HFILL
}},
1574 { &hf_stats_mu_receivedframecount
,
1575 { "MU_ReceivedFrameCount", "wassp.stats.mu.receivedframecount", FT_INT32
, BASE_DEC
, NULL
,
1576 0x0, NULL
, HFILL
}},
1578 { &hf_stats_mu_receivedrssi
,
1579 { "MU_ReceivedRSSI", "wassp.stats.mu.receivedrssi", FT_INT32
, BASE_DEC
, NULL
,
1580 0x0, NULL
, HFILL
}},
1582 { &hf_stats_mu_receivedrate
,
1583 { "MU_ReceivedRate", "wassp.stats.mu.receivedrate", FT_INT32
, BASE_DEC
, NULL
,
1584 0x0, NULL
, HFILL
}},
1586 { &hf_stats_mu_transmittedbytes
,
1587 { "MU_TransmittedBytes", "wassp.stats.mu.transmittedbytes", FT_INT32
, BASE_DEC
, NULL
,
1588 0x0, NULL
, HFILL
}},
1590 { &hf_stats_mu_transmittederrors
,
1591 { "MU_TransmittedErrors", "wassp.stats.mu.transmittederrors", FT_INT32
, BASE_DEC
, NULL
,
1592 0x0, NULL
, HFILL
}},
1594 { &hf_stats_mu_transmittedframecount
,
1595 { "MU_TransmittedFrameCount", "wassp.stats.mu.transmittedframecount", FT_INT32
, BASE_DEC
, NULL
,
1596 0x0, NULL
, HFILL
}},
1598 { &hf_stats_mu_transmittedrssi
,
1599 { "MU_TransmittedRSSI", "wassp.stats.mu.transmittedrssi", FT_INT32
, BASE_DEC
, NULL
,
1600 0x0, NULL
, HFILL
}},
1602 { &hf_stats_mu_transmittedrate
,
1603 { "MU_TransmittedRate", "wassp.stats.mu.transmittedrate", FT_INT32
, BASE_DEC
, NULL
,
1604 0x0, NULL
, HFILL
}},
1606 { &hf_stats_mu_rf_stats_end
,
1607 { "MU_RF_STATS_END", "wassp.stats.mu.rf.stats.end", FT_INT32
, BASE_DEC
, NULL
,
1608 0x0, NULL
, HFILL
}},
1610 { &hf_stats_rfc_1213_sysuptime
,
1611 { "RFC_1213_SYSUPTIME", "wassp.stats.rfc.1213.sysuptime", FT_INT32
, BASE_DEC
, NULL
,
1612 0x0, NULL
, HFILL
}},
1614 { &hf_dot1x_stats_credent
,
1615 { "DOT1x_CREDENT", "wassp.stats.dot1x.credent", FT_INT32
, BASE_DEC
, NULL
,
1616 0x0, NULL
, HFILL
}},
1618 { &hf_dot1x_stats_end_date
,
1619 { "DOT1x_END_DATE", "wassp.stats.dot1x.enddate", FT_INT32
, BASE_DEC
, NULL
,
1620 0x0, NULL
, HFILL
}},
1622 { &hf_stats_tlv_max
,
1623 { "TLV_MAX", "wassp.stats.tlvmax", FT_INT32
, BASE_DEC
, NULL
,
1624 0x0, NULL
, HFILL
}},
1626 /* WASSP tunnel subtypes TLV config */
1628 { "Config Radio", "wassp.tlv_config.radio", FT_NONE
, BASE_NONE
, NULL
,
1629 0x0, NULL
, HFILL
}},
1632 { "Config VNS", "wassp.tlv_config.vns", FT_NONE
, BASE_NONE
, NULL
,
1633 0x0, NULL
, HFILL
}},
1636 { &hf_config_trace_status_debug
,
1637 { "TRACE_STATUS_DEBUG", "wassp.config.trace.status.debug", FT_INT32
, BASE_DEC
, NULL
,
1638 0x0, NULL
, HFILL
}},
1640 { &hf_config_trace_status_config
,
1641 { "TRACE_STATUS_CONFIG", "wassp.config.trace.status.config", FT_INT32
, BASE_DEC
, NULL
,
1642 0x0, NULL
, HFILL
}},
1644 { &hf_config_use_bcast_for_disassc
,
1645 { "USE_BCAST_FOR_DISASSC", "wassp.config.use.bcast.for.disassc", FT_INT32
, BASE_DEC
, NULL
,
1646 0x0, NULL
, HFILL
}},
1648 { &hf_config_bandwidth_voice_assc
,
1649 { "BANDWIDTH_VOICE_ASSC", "wassp.config.bandwidth.voice.assc", FT_INT32
, BASE_DEC
, NULL
,
1650 0x0, NULL
, HFILL
}},
1652 { &hf_config_bandwidth_voice_reassc
,
1653 { "BANDWIDTH_VOICE_REASSC", "wassp.config.bandwidth.voice.reassc", FT_INT32
, BASE_DEC
, NULL
,
1654 0x0, NULL
, HFILL
}},
1656 { &hf_config_bandwidth_video_assc
,
1657 { "BANDWIDTH_VIDEO_ASSC", "wassp.config.bandwidth.video.assc", FT_INT32
, BASE_DEC
, NULL
,
1658 0x0, NULL
, HFILL
}},
1660 { &hf_config_bandwidth_video_reassc
,
1661 { "BANDWIDTH_VIDEO_REASSC", "wassp.config.bandwidth.video.reassc", FT_INT32
, BASE_DEC
, NULL
,
1662 0x0, NULL
, HFILL
}},
1664 { &hf_config_bandwidth_video_reserve
,
1665 { "BANDWIDTH_VIDEO_RESERVE", "wassp.config.bandwidth.video.reserve", FT_INT32
, BASE_DEC
, NULL
,
1666 0x0, NULL
, HFILL
}},
1668 { &hf_config_bandwidth_adm_ctrl_reserve
,
1669 { "BANDWIDTH_ADM_CTRL_RESERVE", "wassp.config.bandwidth.adm.ctrl.reserve", FT_INT32
, BASE_DEC
, NULL
,
1670 0x0, NULL
, HFILL
}},
1672 { &hf_config_vlan_tag
,
1673 { "VLAN_TAG", "wassp.config.vlan.tag", FT_INT32
, BASE_DEC
, NULL
,
1674 0x0, NULL
, HFILL
}},
1676 { &hf_config_country_code
,
1677 { "COUNTRY_CODE", "wassp.config.country.code", FT_INT32
, BASE_DEC
, NULL
,
1678 0x0, NULL
, HFILL
}},
1680 { &hf_config_poll_duration
,
1681 { "POLL_DURATION", "wassp.config.poll.duration", FT_INT32
, BASE_DEC
, NULL
,
1682 0x0, NULL
, HFILL
}},
1684 { &hf_config_poll_interval
,
1685 { "POLL_INTERVAL", "wassp.config.poll.interval", FT_INT32
, BASE_DEC
, NULL
,
1686 0x0, NULL
, HFILL
}},
1688 { &hf_config_poll_maintain_client_session
,
1689 { "POLL_MAINTAIN_CLIENT_SESSION", "wassp.config.poll.maintain.client.session", FT_INT32
, BASE_DEC
, NULL
,
1690 0x0, NULL
, HFILL
}},
1692 { &hf_config_telnet_enable
,
1693 { "TELNET_ENABLE", "wassp.config.telnet.enable", FT_INT32
, BASE_DEC
, NULL
,
1694 0x0, NULL
, HFILL
}},
1696 { &hf_config_telnet_password
,
1697 { "TELNET_PASSWORD", "wassp.config.telnet.password", FT_STRING
, BASE_NONE
, NULL
,
1698 0x0, NULL
, HFILL
}},
1700 { &hf_config_telnet_password_entry_mode
,
1701 { "TELNET_PASSWORD_ENTRY_MODE", "wassp.config.telnet.password.entry.mode", FT_INT32
, BASE_DEC
, NULL
,
1702 0x0, NULL
, HFILL
}},
1704 { &hf_config_outdoor_enable_environment
,
1705 { "OUTDOOR_ENABLE_ENVIRONMENT", "wassp.config.outdoor.enable.environment", FT_INT32
, BASE_DEC
, NULL
,
1706 0x0, NULL
, HFILL
}},
1708 { &hf_config_slp_retry_count
,
1709 { "SLP_RETRY_COUNT", "wassp.config.slp.retry.count", FT_INT32
, BASE_DEC
, NULL
,
1710 0x0, NULL
, HFILL
}},
1712 { &hf_config_slp_retry_delay
,
1713 { "SLP_RETRY_DELAY", "wassp.config.slp.retry.delay", FT_INT32
, BASE_DEC
, NULL
,
1714 0x0, NULL
, HFILL
}},
1716 { &hf_config_dns_retry_count
,
1717 { "DNS_RETRY_COUNT", "wassp.config.dns.retry.count", FT_INT32
, BASE_DEC
, NULL
,
1718 0x0, NULL
, HFILL
}},
1720 { &hf_config_dns_retry_delay
,
1721 { "DNS_RETRY_DELAY", "wassp.config.dns.retry.delay", FT_INT32
, BASE_DEC
, NULL
,
1722 0x0, NULL
, HFILL
}},
1724 { &hf_config_mcast_slp_retry_count
,
1725 { "MCAST_SLP_RETRY_COUNT", "wassp.config.mcast.slp.retry.count", FT_INT32
, BASE_DEC
, NULL
,
1726 0x0, NULL
, HFILL
}},
1728 { &hf_config_mcast_slp_retry_delay
,
1729 { "MCAST_SLP_RETRY_DELAY", "wassp.config.mcast.slp.retry.delay", FT_INT32
, BASE_DEC
, NULL
,
1730 0x0, NULL
, HFILL
}},
1732 { &hf_config_disc_retry_count
,
1733 { "DISC_RETRY_COUNT", "wassp.config.disc.retry.count", FT_INT32
, BASE_DEC
, NULL
,
1734 0x0, NULL
, HFILL
}},
1736 { &hf_config_disc_retry_delay
,
1737 { "DISC_RETRY_DELAY", "wassp.config.disc.retry.delay", FT_BYTES
, BASE_NONE
, NULL
,
1738 0x0, NULL
, HFILL
}},
1740 { &hf_config_logging_alarm_sev
,
1741 { "LOGGING_ALARM_SEV", "wassp.config.logging.alarm.sev", FT_INT32
, BASE_DEC
, NULL
,
1742 0x0, NULL
, HFILL
}},
1744 { &hf_config_blacklist_blacklist_add
,
1745 { "BLACKLIST_BLACKLIST_ADD", "wassp.config.blacklist.blacklist.add", FT_INT32
, BASE_DEC
, NULL
,
1746 0x0, NULL
, HFILL
}},
1748 { &hf_config_failover_ac_ip_addr
,
1749 { "FAILOVER_AC_IP_ADDR", "wassp.config.failover.ac.ip.addr", FT_INT32
, BASE_DEC
, NULL
,
1750 0x0, NULL
, HFILL
}},
1752 { &hf_config_static_ac_ip_addr
,
1753 { "STATIC_AC_IP_ADDR", "wassp.config.static.ac.ip.addr", FT_INT32
, BASE_DEC
, NULL
,
1754 0x0, NULL
, HFILL
}},
1756 { &hf_config_dhcp_assignment
,
1757 { "DHCP_ASSIGNMENT", "wassp.config.dhcp.assignment", FT_INT32
, BASE_DEC
, NULL
,
1758 0x0, NULL
, HFILL
}},
1760 { &hf_config_static_ap_ip_addr
,
1761 { "STATIC_AP_IP_ADDR", "wassp.config.static.ap.ip.addr", FT_INT32
, BASE_DEC
, NULL
,
1762 0x0, NULL
, HFILL
}},
1764 { &hf_config_static_ap_ip_netmask
,
1765 { "STATIC_AP_IP_NETMASK", "wassp.config.static.ap.ip.netmask", FT_INT32
, BASE_DEC
, NULL
,
1766 0x0, NULL
, HFILL
}},
1768 { &hf_config_static_ap_default_gw
,
1769 { "STATIC_AP_DEFAULT_GW", "wassp.config.static.ap.default.gw", FT_INT32
, BASE_DEC
, NULL
,
1770 0x0, NULL
, HFILL
}},
1772 { &hf_config_blacklist_del
,
1773 { "BLACKLIST_DEL", "wassp.config.blacklist.del", FT_INT32
, BASE_DEC
, NULL
,
1774 0x0, NULL
, HFILL
}},
1776 { &hf_config_macaddr_req
,
1777 { "MACADDR_REQ", "wassp.config.macaddr.req", FT_INT32
, BASE_DEC
, NULL
,
1778 0x0, NULL
, HFILL
}},
1780 { &hf_config_availability_mode
,
1781 { "AVAILABILITY_MODE", "wassp.config.availability.mode", FT_INT32
, BASE_DEC
, NULL
,
1782 0x0, NULL
, HFILL
}},
1784 /* WASSP config vns */
1785 { &hf_config_vns_radio_id
,
1786 { "V_RADIO_ID", "wassp.config.vns.radio.id", FT_INT32
, BASE_DEC
, NULL
,
1787 0x0, NULL
, HFILL
}},
1789 { &hf_config_vns_vns_id
,
1790 { "V_VNS_ID", "wassp.config.vns.vns.id", FT_INT32
, BASE_DEC
, NULL
,
1791 0x0, NULL
, HFILL
}},
1793 { &hf_config_vns_turbo_voice
,
1794 { "V_TURBO_VOICE", "wassp.config.vns.turbo.voice", FT_INT32
, BASE_DEC
, NULL
,
1795 0x0, NULL
, HFILL
}},
1797 { &hf_config_vns_prop_ie
,
1798 { "V_PROP_IE", "wassp.config.vns.prop.ie", FT_INT32
, BASE_DEC
, NULL
,
1799 0x0, NULL
, HFILL
}},
1801 { &hf_config_vns_enable_802_11_h
,
1802 { "V_ENABLE_802_11_H", "wassp.config.vns.enable.802.11.h", FT_INT32
, BASE_DEC
, NULL
,
1803 0x0, NULL
, HFILL
}},
1805 { &hf_config_vns_power_backoff
,
1806 { "V_POWER_BACKOFF", "wassp.config.vns.power.backoff", FT_INT32
, BASE_DEC
, NULL
,
1807 0x0, NULL
, HFILL
}},
1809 { &hf_config_vns_bridge_mode
,
1810 { "V_BRIDGE_MODE", "wassp.config.vns.bridge.mode", FT_INT32
, BASE_DEC
, NULL
,
1811 0x0, NULL
, HFILL
}},
1813 { &hf_config_vns_vlan_tag
,
1814 { "V_VLAN_TAG", "wassp.config.vns.vlan.tag", FT_INT32
, BASE_DEC
, NULL
,
1815 0x0, NULL
, HFILL
}},
1817 { &hf_config_vns_process_ie_req
,
1818 { "V_PROCESS_IE_REQ", "wassp.config.vns.process.ie.req", FT_INT32
, BASE_DEC
, NULL
,
1819 0x0, NULL
, HFILL
}},
1821 { &hf_config_vns_enable_u_apsd
,
1822 { "V_ENABLE_U_APSD", "wassp.config.vns.enable.u.apsd", FT_INT32
, BASE_DEC
, NULL
,
1823 0x0, NULL
, HFILL
}},
1825 { &hf_config_vns_adm_ctrl_voice
,
1826 { "V_ADM_CTRL_VOICE", "wassp.config.vns.adm.ctrl.voice", FT_INT32
, BASE_DEC
, NULL
,
1827 0x0, NULL
, HFILL
}},
1829 { &hf_config_vns_adm_ctrl_video
,
1830 { "V_ADM_CTRL_VIDEO", "wassp.config.vns.adm.ctrl.video", FT_INT32
, BASE_DEC
, NULL
,
1831 0x0, NULL
, HFILL
}},
1833 { &hf_config_vns_qos_up_value
,
1834 { "V_QOS_UP_VALUE", "wassp.config.vns.qos.up.value", FT_BYTES
, BASE_NONE
, NULL
,
1835 0x0, NULL
, HFILL
}},
1837 { &hf_config_vns_priority_override
,
1838 { "V_PRIORITY_OVERRIDE", "wassp.config.vns.priority.override", FT_INT32
, BASE_DEC
, NULL
,
1839 0x0, NULL
, HFILL
}},
1841 { &hf_config_vns_dscp_override_value
,
1842 { "V_DSCP_OVERRIDE_VALUE", "wassp.config.vns.dscp.override.value", FT_INT32
, BASE_DEC
, NULL
,
1843 0x0, NULL
, HFILL
}},
1845 { &hf_config_vns_enable_802_11_e
,
1846 { "V_ENABLE_802_11_E", "wassp.config.vns.enable.802.11.e", FT_INT32
, BASE_DEC
, NULL
,
1847 0x0, NULL
, HFILL
}},
1849 { &hf_config_vns_enable_wmm
,
1850 { "V_ENABLE_WMM", "wassp.config.vns.enable.wmm", FT_INT32
, BASE_DEC
, NULL
,
1851 0x0, NULL
, HFILL
}},
1853 { &hf_config_vns_legacy_client_priority
,
1854 { "V_LEGACY_CLIENT_PRIORITY", "wassp.config.vns.legacy.client.priority", FT_INT32
, BASE_DEC
, NULL
,
1855 0x0, NULL
, HFILL
}},
1857 { &hf_config_vns_ssid_id
,
1858 { "V_SSID_ID", "wassp.config.vns.ssid.id", FT_INT32
, BASE_DEC
, NULL
,
1859 0x0, NULL
, HFILL
}},
1861 { &hf_config_vns_ssid_bcast_string
,
1862 { "V_SSID_BCAST_STRING", "wassp.config.vns.ssid.bcast.string", FT_STRING
, BASE_NONE
, NULL
,
1863 0x0, NULL
, HFILL
}},
1865 { &hf_config_vns_ssid_suppress
,
1866 { "V_SSID_SUPPRESS", "wassp.config.vns.ssid.suppress", FT_INT32
, BASE_DEC
, NULL
,
1867 0x0, NULL
, HFILL
}},
1869 { &hf_config_vns_802_1_x_enable
,
1870 { "V_802_1_X_ENABLE", "wassp.config.vns.802.1.x.enable", FT_INT32
, BASE_DEC
, NULL
,
1871 0x0, NULL
, HFILL
}},
1873 { &hf_config_vns_802_1_x_dyn_rekey
,
1874 { "V_802_1_X_DYN_REKEY", "wassp.config.vns.802.1.x.dyn.rekey", FT_INT32
, BASE_DEC
, NULL
,
1875 0x0, NULL
, HFILL
}},
1877 { &hf_config_vns_wpa_enable
,
1878 { "V_WPA_ENABLE", "wassp.config.vns.wpa.enable", FT_INT32
, BASE_DEC
, NULL
,
1879 0x0, NULL
, HFILL
}},
1881 { &hf_config_vns_wpa_v2_enable
,
1882 { "V_WPA_V2_ENABLE", "wassp.config.vns.wpa.v2.enable", FT_INT32
, BASE_DEC
, NULL
,
1883 0x0, NULL
, HFILL
}},
1885 { &hf_config_vns_wpa_passphrase
,
1886 { "V_WPA_PASSPHRASE", "wassp.config.vns.wpa.passphrase", FT_STRING
, BASE_NONE
, NULL
,
1887 0x0, NULL
, HFILL
}},
1889 { &hf_config_vns_wpa_cipher_type
,
1890 { "V_WPA_CIPHER_TYPE", "wassp.config.vns.wpa.cipher.type", FT_INT32
, BASE_DEC
, NULL
,
1891 0x0, NULL
, HFILL
}},
1893 { &hf_config_vns_wpa_v2_cipher_type
,
1894 { "V_WPA_V2_CIPHER_TYPE", "wassp.config.vns.wpa.v2.cipher.type", FT_INT32
, BASE_DEC
, NULL
,
1895 0x0, NULL
, HFILL
}},
1897 { &hf_config_vns_wep_key_index
,
1898 { "V_WEP_KEY_INDEX", "wassp.config.vns.wep.key.index", FT_INT32
, BASE_DEC
, NULL
,
1899 0x0, NULL
, HFILL
}},
1901 { &hf_config_vns_wep_default_key_value
,
1902 { "V_WEP_DEFAULT_KEY_VALUE", "wassp.config.vns.wep.default.key.value", FT_INT32
, BASE_DEC
, NULL
,
1903 0x0, NULL
, HFILL
}},
1905 { &hf_config_vns_channel_report
,
1906 { "V_CHANNEL_REPORT", "wassp.config.vns.channel.report", FT_INT32
, BASE_DEC
, NULL
,
1907 0x0, NULL
, HFILL
}},
1909 { &hf_config_vns_wds_service
,
1910 { "V_WDS_SERVICE", "wassp.config.vns.wds.service", FT_INT32
, BASE_DEC
, NULL
,
1911 0x0, NULL
, HFILL
}},
1913 { &hf_config_vns_wds_pref_parent
,
1914 { "V_WDS_PREF_PARENT", "wassp.config.vns.wds.pref.parent", FT_INT32
, BASE_DEC
, NULL
,
1915 0x0, NULL
, HFILL
}},
1917 { &hf_config_vns_wds_bridge
,
1918 { "V_WDS_BRIDGE", "wassp.config.vns.wds.bridge", FT_INT32
, BASE_DEC
, NULL
,
1919 0x0, NULL
, HFILL
}},
1921 { &hf_config_vns_okc_enabled
,
1922 { "V_OKC_ENABLED", "wassp.config.vns.okc.enabled", FT_INT32
, BASE_DEC
, NULL
,
1923 0x0, NULL
, HFILL
}},
1925 { &hf_config_vns_mu_assoc_retries
,
1926 { "V_MU_ASSOC_RETRIES", "wassp.config.vns.mu.assoc.retries", FT_INT32
, BASE_DEC
, NULL
,
1927 0x0, NULL
, HFILL
}},
1929 { &hf_config_vns_mu_assoc_timeout
,
1930 { "V_MU_ASSOC_TIMEOUT", "wassp.config.vns.mu.assoc.timeout", FT_INT32
, BASE_DEC
, NULL
,
1931 0x0, NULL
, HFILL
}},
1933 { &hf_config_vns_wds_parent
,
1934 { "V_WDS_PARENT", "wassp.config.vns.wds.parent", FT_INT32
, BASE_DEC
, NULL
,
1935 0x0, NULL
, HFILL
}},
1937 { &hf_config_vns_wds_back_parent
,
1938 { "V_WDS_BACK_PARENT", "wassp.config.vns.wds.back.parent", FT_INT32
, BASE_DEC
, NULL
,
1939 0x0, NULL
, HFILL
}},
1941 { &hf_config_vns_wds_name
,
1942 { "V_WDS_NAME", "wassp.config.vns.wds.name", FT_STRING
, BASE_NONE
, NULL
,
1943 0x0, NULL
, HFILL
}},
1945 /* WASSP config radio */
1946 { &hf_config_radio_radio_id
,
1947 { "R_RADIO_ID", "wassp.config.radio.radio.id", FT_INT32
, BASE_DEC
, NULL
,
1948 0x0, NULL
, HFILL
}},
1950 { &hf_config_radio_enable_radio
,
1951 { "R_ENABLE_RADIO", "wassp.config.radio.enable.radio", FT_INT32
, BASE_DEC
, NULL
,
1952 0x0, NULL
, HFILL
}},
1954 { &hf_config_radio_channel
,
1955 { "R_CHANNEL", "wassp.config.radio.channel", FT_INT32
, BASE_DEC
, NULL
,
1956 0x0, NULL
, HFILL
}},
1958 { &hf_config_radio_op_rate_set
,
1959 { "R_OP_RATE_SET", "wassp.config.radio.op.rate.set", FT_INT32
, BASE_DEC
, NULL
,
1960 0x0, NULL
, HFILL
}},
1962 { &hf_config_radio_op_rate_max
,
1963 { "R_OP_RATE_MAX", "wassp.config.radio.op.rate.max", FT_INT32
, BASE_DEC
, NULL
,
1964 0x0, NULL
, HFILL
}},
1966 { &hf_config_radio_beacon_period
,
1967 { "R_BEACON_PERIOD", "wassp.config.radio.beacon.period", FT_INT32
, BASE_DEC
, NULL
,
1968 0x0, NULL
, HFILL
}},
1970 { &hf_config_radio_dtim_period
,
1971 { "R_DTIM_PERIOD", "wassp.config.radio.dtim.period", FT_INT32
, BASE_DEC
, NULL
,
1972 0x0, NULL
, HFILL
}},
1974 { &hf_config_radio_rts_threshold
,
1975 { "R_RTS_THRESHOLD", "wassp.config.radio.rts.threshold", FT_INT32
, BASE_DEC
, NULL
,
1976 0x0, NULL
, HFILL
}},
1978 { &hf_config_radio_fragment_threshold
,
1979 { "R_FRAGMENT_THRESHOLD", "wassp.config.radio.fragment.threshold", FT_INT32
, BASE_DEC
, NULL
,
1980 0x0, NULL
, HFILL
}},
1982 { &hf_config_radio_power_level
,
1983 { "R_POWER_LEVEL", "wassp.config.radio.power.level", FT_INT32
, BASE_DEC
, NULL
,
1984 0x0, NULL
, HFILL
}},
1986 { &hf_config_radio_diversity_rx
,
1987 { "R_DIVERSITY_RX", "wassp.config.radio.diversity.rx", FT_INT32
, BASE_DEC
, NULL
,
1988 0x0, NULL
, HFILL
}},
1990 { &hf_config_radio_diversity_tx
,
1991 { "R_DIVERSITY_TX", "wassp.config.radio.diversity.tx", FT_INT32
, BASE_DEC
, NULL
,
1992 0x0, NULL
, HFILL
}},
1994 { &hf_config_radio_short_preamble
,
1995 { "R_SHORT_PREAMBLE", "wassp.config.radio.short.preamble", FT_INT32
, BASE_DEC
, NULL
,
1996 0x0, NULL
, HFILL
}},
1998 { &hf_config_radio_basic_rate_max
,
1999 { "R_BASIC_RATE_MAX", "wassp.config.radio.basic.rate.max", FT_INT32
, BASE_DEC
, NULL
,
2000 0x0, NULL
, HFILL
}},
2002 { &hf_config_radio_basic_rate_min
,
2003 { "R_BASIC_RATE_MIN", "wassp.config.radio.basic.rate.min", FT_INT32
, BASE_DEC
, NULL
,
2004 0x0, NULL
, HFILL
}},
2006 { &hf_config_radio_hw_retries
,
2007 { "R_HW_RETRIES", "wassp.config.radio.hw.retries", FT_STRING
, BASE_NONE
, NULL
,
2008 0x0, NULL
, HFILL
}},
2010 { &hf_config_radio_tx_power_min
,
2011 { "R_TX_POWER_MIN", "wassp.config.radio.tx.power.min", FT_INT32
, BASE_DEC
, NULL
,
2012 0x0, NULL
, HFILL
}},
2014 { &hf_config_radio_tx_power_max
,
2015 { "R_TX_POWER_MAX", "wassp.config.radio.tx.power.max", FT_INT32
, BASE_DEC
, NULL
,
2016 0x0, NULL
, HFILL
}},
2018 { &hf_config_radio_domain_id
,
2019 { "R_DOMAIN_ID", "wassp.config.radio.domain.id", FT_STRING
, BASE_NONE
, NULL
,
2020 0x0, NULL
, HFILL
}},
2022 { &hf_config_radio_b_enable
,
2023 { "R_B_ENABLE", "wassp.config.radio.b.enable", FT_INT32
, BASE_DEC
, NULL
,
2024 0x0, NULL
, HFILL
}},
2026 { &hf_config_radio_b_basic_rates
,
2027 { "R_B_BASIC_RATES", "wassp.config.radio.b.basic.rates", FT_INT32
, BASE_DEC
, NULL
,
2028 0x0, NULL
, HFILL
}},
2030 { &hf_config_radio_g_enable
,
2031 { "R_G_ENABLE", "wassp.config.radio.g.enable", FT_INT32
, BASE_DEC
, NULL
,
2032 0x0, NULL
, HFILL
}},
2034 { &hf_config_radio_g_protect_mode
,
2035 { "R_G_PROTECT_MODE", "wassp.config.radio.g.protect.mode", FT_INT32
, BASE_DEC
, NULL
,
2036 0x0, NULL
, HFILL
}},
2038 { &hf_config_radio_g_protect_type
,
2039 { "R_G_PROTECT_TYPE", "wassp.config.radio.g.protect.type", FT_INT32
, BASE_DEC
, NULL
,
2040 0x0, NULL
, HFILL
}},
2042 { &hf_config_radio_g_protect_rate
,
2043 { "R_G_PROTECT_RATE", "wassp.config.radio.g.protect.rate", FT_INT32
, BASE_DEC
, NULL
,
2044 0x0, NULL
, HFILL
}},
2046 { &hf_config_radio_g_basic_rate
,
2047 { "R_G_BASIC_RATE", "wassp.config.radio.g.basic.rate", FT_INT32
, BASE_DEC
, NULL
,
2048 0x0, NULL
, HFILL
}},
2050 { &hf_config_radio_a_support_802_11_j
,
2051 { "R_A_SUPPORT_802_11_J", "wassp.config.radio.a.support.802.11.j", FT_INT32
, BASE_DEC
, NULL
,
2052 0x0, NULL
, HFILL
}},
2054 { &hf_config_radio_atpc_en_interval
,
2055 { "R_ATPC_EN_INTERVAL", "wassp.config.radio.atpc.en.interval", FT_INT32
, BASE_DEC
, NULL
,
2056 0x0, NULL
, HFILL
}},
2058 { &hf_config_radio_acs_ch_list
,
2059 { "R_ACS_CH_LIST", "wassp.config.radio.acs.ch.list", FT_BYTES
, BASE_NONE
, NULL
,
2060 0x0, NULL
, HFILL
}},
2062 { &hf_config_radio_tx_power_adj
,
2063 { "R_TX_POWER_ADJ", "wassp.config.radio.tx.power.adj", FT_INT32
, BASE_DEC
, NULL
,
2064 0x0, NULL
, HFILL
}},
2066 /* WASSP discover header */
2067 { &hf_wassp_discover1
,
2068 { "Discover Header1", "wassp.discover1", FT_UINT8
, BASE_HEX
, NULL
,
2069 0x0, NULL
, HFILL
}},
2071 /* { &hf_wassp_length, */ /* see tunnel header */
2073 { &hf_wassp_discover2
,
2074 { "Discover Header2", "wassp.discover2", FT_UINT8
, BASE_HEX
, NULL
,
2075 0x0, NULL
, HFILL
}},
2077 { &hf_wassp_subtype
,
2078 { "Discover Subtype", "wassp.subtype", FT_UINT8
, BASE_DEC
, NULL
,
2079 0x0, NULL
, HFILL
}},
2082 { "Discover Ether", "wassp.ether", FT_ETHER
, BASE_NONE
, NULL
,
2083 0x0, NULL
, HFILL
}},
2085 { &hf_wassp_discover3
,
2086 { "Discover Header3", "wassp.discover3", FT_UINT8
, BASE_HEX
, NULL
,
2087 0x0, NULL
, HFILL
}},
2090 static gint
*ett
[] = {
2092 &ett_wassp_tlv_header
,
2095 proto_wassp
= proto_register_protocol(PROTO_LONG_NAME
, PROTO_SHORT_NAME
, "wassp");
2096 proto_register_field_array(proto_wassp
, hf
, array_length(hf
));
2097 proto_register_subtree_array(ett
, array_length(ett
));
2101 proto_reg_handoff_wassp(void)
2103 dissector_handle_t wassp_handle
;
2106 wassp_handle
= new_create_dissector_handle(dissect_wassp_static
, proto_wassp
);
2107 dissector_add_uint("udp.port", PORT_WASSP_DISCOVER
, wassp_handle
);
2108 dissector_add_uint("udp.port", PORT_WASSP_TUNNEL
, wassp_handle
);
2109 /* dissector_add_uint("udp.port", PORT_WASSP_PEER, wassp_handle); */
2111 heur_dissector_add("udp", dissect_wassp_heur
, proto_wassp
);
2114 snmp_handle
= find_dissector("snmp");
2115 ieee80211_handle
= find_dissector("wlan");