PageRenderTime 53ms CodeModel.GetById 14ms RepoModel.GetById 1ms app.codeStats 0ms

/epan/dissectors/packet-wassp.c

https://github.com/labx-technologies-llc/wireshark
C | 2116 lines | 1686 code | 344 blank | 86 comment | 29 complexity | 93cdc63562659ffbd8919d361141d04b MD5 | raw file
Possible License(s): GPL-2.0, BSD-3-Clause
  1. /* packet-wassp.c
  2. * Routines for the disassembly of the Chantry/HiPath AP-Controller
  3. * tunneling protocol.
  4. *
  5. * $Id$
  6. *
  7. * Copyright 2009 Joerg Mayer (see AUTHORS file)
  8. *
  9. * Wireshark - Network traffic analyzer
  10. * By Gerald Combs <gerald@wireshark.org>
  11. * Copyright 1998 Gerald Combs
  12. *
  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.
  17. *
  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.
  22. *
  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.
  26. */
  27. /*
  28. http://ietfreport.isoc.org/all-ids/draft-singh-capwap-ctp-02.txt
  29. looks very similar (but not always identical).
  30. AC: Access Controller
  31. BM (old):
  32. BP (old):
  33. MU: Mobile Unit (Wireless client)
  34. RU: Radio Unit (Access point)
  35. TODO:
  36. - Improve heuristics!!!
  37. - Verify TLV descriptions/types
  38. - Add TLV descriptions
  39. - Fix 802.11 frame dissection
  40. */
  41. #include "config.h"
  42. #include <glib.h>
  43. #include <epan/packet.h>
  44. #include <epan/emem.h>
  45. #include <epan/expert.h>
  46. #include <epan/show_exception.h>
  47. /* protocol handles */
  48. static int proto_wassp = -1;
  49. static dissector_handle_t snmp_handle;
  50. static dissector_handle_t ieee80211_handle;
  51. /* ett handles */
  52. static int ett_wassp = -1;
  53. static int ett_wassp_tlv_header = -1;
  54. /* hf elements */
  55. /* tlv generic */
  56. static int hf_wassp_tlv_type = -1;
  57. static int hf_wassp_tlv_length = -1;
  58. static int hf_wassp_tlv_data = -1;
  59. /* tunnel header */
  60. static int hf_wassp_version = -1;
  61. static int hf_wassp_type = -1;
  62. static int hf_wassp_seqno = -1;
  63. static int hf_wassp_flags = -1;
  64. static int hf_wassp_sessionid = -1;
  65. static int hf_wassp_length = -1;
  66. /* tunnel data */
  67. /* static int hf_data = -1; */
  68. /* tunnel tlvs */
  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_mu_stats_block = -1;
  113. static int hf_mu_stats_block_65 = -1;
  114. static int hf_dot1x_stats_block = -1;
  115. static int hf_block_config = -1;
  116. static int hf_config_radio = -1;
  117. static int hf_config_vns = -1;
  118. static int hf_wassp_vlan_tag = -1;
  119. static int hf_wassp_tunnel_type = -1;
  120. static int hf_ap_dhcp_mode = -1;
  121. static int hf_ap_ipaddr = -1;
  122. static int hf_ap_netmask = -1;
  123. static int hf_ap_gateway = -1;
  124. static int hf_preauth_resp = -1;
  125. static int hf_bp_pmk = -1;
  126. static int hf_ac_reg_challenge = -1;
  127. static int hf_ac_reg_response = -1;
  128. static int hf_stats = -1;
  129. static int hf_certificate = -1;
  130. static int hf_radio_id = -1;
  131. static int hf_network_id = -1;
  132. static int hf_mu_mac = -1;
  133. static int hf_time = -1;
  134. static int hf_num_radios = -1;
  135. static int hf_radio_info = -1;
  136. static int hf_network_info = -1;
  137. static int hf_vendor_id = -1;
  138. static int hf_product_id = -1;
  139. static int hf_radio_info_ack = -1;
  140. static int hf_mu_rf_stats_block = -1;
  141. static int hf_stats_request_type = -1;
  142. static int hf_stats_last = -1;
  143. static int hf_mu_pmkid_list = -1;
  144. static int hf_mu_pmk_bp = -1;
  145. static int hf_mu_pmkid_bp = -1;
  146. static int hf_countdown_time = -1;
  147. /* discover header */
  148. static int hf_wassp_discover1 = -1;
  149. /* static int hf_wassp_length = -1; */
  150. static int hf_wassp_discover2 = -1;
  151. static int hf_wassp_subtype = -1;
  152. static int hf_wassp_ether = -1;
  153. static int hf_wassp_discover3 = -1;
  154. /* discover tlvs */
  155. /* peer header */
  156. /* peer tlvs */
  157. /* stats */
  158. static int hf_stats_dot11_ackfailurecount = -1;
  159. static int hf_stats_dot11_fcserrorcount = -1;
  160. static int hf_stats_dot11_failedcount = -1;
  161. static int hf_stats_dot11_frameduplicatecount = -1;
  162. static int hf_stats_dot11_multicastreceivedframecount = -1;
  163. static int hf_stats_dot11_multicasttransmittedframecount = -1;
  164. static int hf_stats_dot11_multipleretrycount = -1;
  165. static int hf_stats_dot11_rtsfailurecount = -1;
  166. static int hf_stats_dot11_rtssuccesscount = -1;
  167. static int hf_stats_dot11_receivedfragementcount = -1;
  168. static int hf_stats_dot11_retrycount = -1;
  169. static int hf_stats_dot11_transmittedfragmentcount = -1;
  170. static int hf_stats_dot11_transmittedframecount = -1;
  171. static int hf_stats_dot11_webundecryptablecount = -1;
  172. static int hf_stats_dot11_wepexcludedcount = -1;
  173. static int hf_stats_dot11_wepicverrorcount = -1;
  174. static int hf_stats_drm_allocfailures = -1;
  175. static int hf_stats_drm_currentchannel = -1;
  176. static int hf_stats_drm_currentpower = -1;
  177. static int hf_stats_drm_datatxfailures = -1;
  178. static int hf_stats_drm_devicetype = -1;
  179. static int hf_stats_drm_indatapackets = -1;
  180. static int hf_stats_drm_inmgmtpackets = -1;
  181. static int hf_stats_drm_loadfactor = -1;
  182. static int hf_stats_drm_mgmttxfailures = -1;
  183. static int hf_stats_drm_msgqfailures = -1;
  184. static int hf_stats_drm_nodrmcurrentchannel = -1;
  185. static int hf_stats_drm_outdatapackets = -1;
  186. static int hf_stats_drm_outmgmtpackets = -1;
  187. static int hf_stats_if_inbcastpackets = -1;
  188. static int hf_stats_if_indiscards = -1;
  189. static int hf_stats_if_inerrors = -1;
  190. static int hf_stats_if_inmcastpackets = -1;
  191. static int hf_stats_if_inoctets = -1;
  192. static int hf_stats_if_inucastpackets = -1;
  193. static int hf_stats_if_mtu = -1;
  194. static int hf_stats_if_outbcastpackets = -1;
  195. static int hf_stats_if_outdiscards = -1;
  196. static int hf_stats_if_outerrors = -1;
  197. static int hf_stats_if_outoctets = -1;
  198. static int hf_stats_if_outucastpackets = -1;
  199. static int hf_stats_if_outmcastpackets = -1;
  200. static int hf_stats_mu_address = -1;
  201. static int hf_stats_mu_associationcount = -1;
  202. static int hf_stats_mu_authenticationcount = -1;
  203. static int hf_stats_mu_deassociationcount = -1;
  204. static int hf_stats_mu_deauthenticationcount = -1;
  205. static int hf_stats_mu_ifindex = -1;
  206. static int hf_stats_mu_reassociationcount = -1;
  207. static int hf_stats_mu_receivedbytes = -1;
  208. static int hf_stats_mu_receivederrors = -1;
  209. static int hf_stats_mu_receivedframecount = -1;
  210. static int hf_stats_mu_receivedrssi = -1;
  211. static int hf_stats_mu_receivedrate = -1;
  212. static int hf_stats_mu_transmittedbytes = -1;
  213. static int hf_stats_mu_transmittederrors = -1;
  214. static int hf_stats_mu_transmittedframecount = -1;
  215. static int hf_stats_mu_transmittedrssi = -1;
  216. static int hf_stats_mu_transmittedrate = -1;
  217. static int hf_stats_mu_rf_stats_end = -1;
  218. static int hf_stats_rfc_1213_sysuptime = -1;
  219. static int hf_dot1x_stats_credent = -1;
  220. static int hf_dot1x_stats_end_date = -1;
  221. static int hf_stats_tlv_max = -1;
  222. /* config */
  223. static int hf_config_trace_status_debug = -1;
  224. static int hf_config_trace_status_config = -1;
  225. static int hf_config_use_bcast_for_disassc = -1;
  226. static int hf_config_bandwidth_voice_assc = -1;
  227. static int hf_config_bandwidth_voice_reassc = -1;
  228. static int hf_config_bandwidth_video_assc = -1;
  229. static int hf_config_bandwidth_video_reassc = -1;
  230. static int hf_config_bandwidth_video_reserve = -1;
  231. static int hf_config_bandwidth_adm_ctrl_reserve = -1;
  232. static int hf_config_vlan_tag = -1;
  233. static int hf_config_country_code = -1;
  234. static int hf_config_poll_duration = -1;
  235. static int hf_config_poll_interval = -1;
  236. static int hf_config_poll_maintain_client_session = -1;
  237. static int hf_config_telnet_enable = -1;
  238. static int hf_config_telnet_password = -1;
  239. static int hf_config_telnet_password_entry_mode = -1;
  240. static int hf_config_outdoor_enable_environment = -1;
  241. static int hf_config_slp_retry_count = -1;
  242. static int hf_config_slp_retry_delay = -1;
  243. static int hf_config_dns_retry_count = -1;
  244. static int hf_config_dns_retry_delay = -1;
  245. static int hf_config_mcast_slp_retry_count = -1;
  246. static int hf_config_mcast_slp_retry_delay = -1;
  247. static int hf_config_disc_retry_count = -1;
  248. static int hf_config_disc_retry_delay = -1;
  249. static int hf_config_logging_alarm_sev = -1;
  250. static int hf_config_blacklist_blacklist_add = -1;
  251. static int hf_config_failover_ac_ip_addr = -1;
  252. static int hf_config_static_ac_ip_addr = -1;
  253. static int hf_config_dhcp_assignment = -1;
  254. static int hf_config_static_ap_ip_addr = -1;
  255. static int hf_config_static_ap_ip_netmask = -1;
  256. static int hf_config_static_ap_default_gw = -1;
  257. static int hf_config_blacklist_del = -1;
  258. static int hf_config_macaddr_req = -1;
  259. static int hf_config_availability_mode = -1;
  260. /* config vns */
  261. static int hf_config_vns_radio_id = -1;
  262. static int hf_config_vns_vns_id = -1;
  263. static int hf_config_vns_turbo_voice = -1;
  264. static int hf_config_vns_prop_ie = -1;
  265. static int hf_config_vns_enable_802_11_h = -1;
  266. static int hf_config_vns_power_backoff = -1;
  267. static int hf_config_vns_bridge_mode = -1;
  268. static int hf_config_vns_vlan_tag = -1;
  269. static int hf_config_vns_process_ie_req = -1;
  270. static int hf_config_vns_enable_u_apsd = -1;
  271. static int hf_config_vns_adm_ctrl_voice = -1;
  272. static int hf_config_vns_adm_ctrl_video = -1;
  273. static int hf_config_vns_qos_up_value = -1;
  274. static int hf_config_vns_priority_override = -1;
  275. static int hf_config_vns_dscp_override_value = -1;
  276. static int hf_config_vns_enable_802_11_e = -1;
  277. static int hf_config_vns_enable_wmm = -1;
  278. static int hf_config_vns_legacy_client_priority = -1;
  279. static int hf_config_vns_ssid_id = -1;
  280. static int hf_config_vns_ssid_bcast_string = -1;
  281. static int hf_config_vns_ssid_suppress = -1;
  282. static int hf_config_vns_802_1_x_enable = -1;
  283. static int hf_config_vns_802_1_x_dyn_rekey = -1;
  284. static int hf_config_vns_wpa_enable = -1;
  285. static int hf_config_vns_wpa_v2_enable = -1;
  286. static int hf_config_vns_wpa_passphrase = -1;
  287. static int hf_config_vns_wpa_cipher_type = -1;
  288. static int hf_config_vns_wpa_v2_cipher_type = -1;
  289. static int hf_config_vns_wep_key_index = -1;
  290. static int hf_config_vns_wep_default_key_value = -1;
  291. static int hf_config_vns_channel_report = -1;
  292. static int hf_config_vns_wds_service = -1;
  293. static int hf_config_vns_wds_pref_parent = -1;
  294. static int hf_config_vns_wds_bridge = -1;
  295. static int hf_config_vns_okc_enabled = -1;
  296. static int hf_config_vns_mu_assoc_retries = -1;
  297. static int hf_config_vns_mu_assoc_timeout = -1;
  298. static int hf_config_vns_wds_parent = -1;
  299. static int hf_config_vns_wds_back_parent = -1;
  300. static int hf_config_vns_wds_name = -1;
  301. /* config radio */
  302. static int hf_config_radio_radio_id = -1;
  303. static int hf_config_radio_enable_radio = -1;
  304. static int hf_config_radio_channel = -1;
  305. static int hf_config_radio_op_rate_set = -1;
  306. static int hf_config_radio_op_rate_max = -1;
  307. static int hf_config_radio_beacon_period = -1;
  308. static int hf_config_radio_dtim_period = -1;
  309. static int hf_config_radio_rts_threshold = -1;
  310. static int hf_config_radio_fragment_threshold = -1;
  311. static int hf_config_radio_power_level = -1;
  312. static int hf_config_radio_diversity_rx = -1;
  313. static int hf_config_radio_diversity_tx = -1;
  314. static int hf_config_radio_short_preamble = -1;
  315. static int hf_config_radio_basic_rate_max = -1;
  316. static int hf_config_radio_basic_rate_min = -1;
  317. static int hf_config_radio_hw_retries = -1;
  318. static int hf_config_radio_tx_power_min = -1;
  319. static int hf_config_radio_tx_power_max = -1;
  320. static int hf_config_radio_domain_id = -1;
  321. static int hf_config_radio_b_enable = -1;
  322. static int hf_config_radio_b_basic_rates = -1;
  323. static int hf_config_radio_g_enable = -1;
  324. static int hf_config_radio_g_protect_mode = -1;
  325. static int hf_config_radio_g_protect_type = -1;
  326. static int hf_config_radio_g_protect_rate = -1;
  327. static int hf_config_radio_g_basic_rate = -1;
  328. static int hf_config_radio_a_support_802_11_j = -1;
  329. static int hf_config_radio_atpc_en_interval = -1;
  330. static int hf_config_radio_acs_ch_list = -1;
  331. static int hf_config_radio_tx_power_adj = -1;
  332. #define PROTO_SHORT_NAME "WASSP"
  333. #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?? */
  337. /* ============= copy/paste/modify from value_string.[hc] ============== */
  338. typedef struct _ext_value_string {
  339. guint32 value;
  340. const gchar *strptr;
  341. int* hf_element;
  342. int (*specialfunction)(tvbuff_t *, packet_info *, proto_tree *, guint32,
  343. guint32, const struct _ext_value_string *);
  344. const struct _ext_value_string *evs;
  345. } ext_value_string;
  346. static const gchar*
  347. match_strextval_idx(guint32 val, const ext_value_string *vs, gint *idx) {
  348. gint i = 0;
  349. if(vs) {
  350. while (vs[i].strptr) {
  351. if (vs[i].value == val) {
  352. if (idx)
  353. *idx = i;
  354. return(vs[i].strptr);
  355. }
  356. i++;
  357. }
  358. }
  359. if (idx)
  360. *idx = -1;
  361. return NULL;
  362. }
  363. static const gchar*
  364. extval_to_str_idx(guint32 val, const ext_value_string *vs, gint *idx, const char *fmt) {
  365. const gchar *ret;
  366. if (!fmt)
  367. fmt="Unknown";
  368. ret = match_strextval_idx(val, vs, idx);
  369. if (ret != NULL)
  370. return ret;
  371. return ep_strdup_printf(fmt, val);
  372. }
  373. /* ============= end copy/paste/modify ============== */
  374. /* Forward decls needed by wassp_tunnel_tlv_vals et al */
  375. static int dissect_snmp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *wassp_tree,
  376. volatile guint32 offset, guint32 length, const ext_value_string *value_array);
  377. static int dissect_ieee80211(tvbuff_t *tvb, packet_info *pinfo, proto_tree *wassp_tree,
  378. volatile guint32 offset, guint32 length, const ext_value_string *value_array);
  379. static int dissect_tlv(tvbuff_t *tvb, packet_info *pinfo, proto_tree *wassp_tree,
  380. guint32 offset, guint32 length, const ext_value_string *value_array);
  381. static const ext_value_string wassp_tunnel_tlv_config_vns_tlv_vals[] = {
  382. { 1, "V_RADIO_ID", &hf_config_vns_radio_id, NULL, NULL },
  383. { 2, "V_VNS_ID", &hf_config_vns_vns_id, NULL, NULL },
  384. { 3, "V_TURBO_VOICE", &hf_config_vns_turbo_voice, NULL, NULL },
  385. { 4, "V_PROP_IE", &hf_config_vns_prop_ie, NULL, NULL },
  386. { 5, "V_ENABLE_802_11_H", &hf_config_vns_enable_802_11_h, NULL, NULL },
  387. { 6, "V_POWER_BACKOFF", &hf_config_vns_power_backoff, NULL, NULL },
  388. { 7, "V_BRIDGE_MODE", &hf_config_vns_bridge_mode, NULL, NULL },
  389. { 8, "V_VLAN_TAG", &hf_config_vns_vlan_tag, NULL, NULL },
  390. { 9, "V_PROCESS_IE_REQ", &hf_config_vns_process_ie_req, NULL, NULL },
  391. { 10, "V_ENABLE_U_APSD", &hf_config_vns_enable_u_apsd, NULL, NULL },
  392. { 11, "V_ADM_CTRL_VOICE", &hf_config_vns_adm_ctrl_voice, NULL, NULL },
  393. { 12, "V_ADM_CTRL_VIDEO", &hf_config_vns_adm_ctrl_video, NULL, NULL },
  394. { 13, "V_QOS_UP_VALUE", &hf_config_vns_qos_up_value, NULL, NULL },
  395. { 14, "V_PRIORITY_OVERRIDE", &hf_config_vns_priority_override, NULL, NULL },
  396. { 15, "V_DSCP_OVERRIDE_VALUE", &hf_config_vns_dscp_override_value, NULL, NULL },
  397. { 16, "V_ENABLE_802_11_E", &hf_config_vns_enable_802_11_e, NULL, NULL },
  398. { 17, "V_ENABLE_WMM", &hf_config_vns_enable_wmm, NULL, NULL },
  399. { 18, "V_LEGACY_CLIENT_PRIORITY", &hf_config_vns_legacy_client_priority, NULL, NULL },
  400. { 19, "V_SSID_ID", &hf_config_vns_ssid_id, NULL, NULL },
  401. { 20, "V_SSID_BCAST_STRING", &hf_config_vns_ssid_bcast_string, NULL, NULL },
  402. { 21, "V_SSID_SUPPRESS", &hf_config_vns_ssid_suppress, NULL, NULL },
  403. { 22, "V_802_1_X_ENABLE", &hf_config_vns_802_1_x_enable, NULL, NULL },
  404. { 23, "V_802_1_X_DYN_REKEY", &hf_config_vns_802_1_x_dyn_rekey, NULL, NULL },
  405. { 24, "V_WPA_ENABLE", &hf_config_vns_wpa_enable, NULL, NULL },
  406. { 25, "V_WPA_V2_ENABLE", &hf_config_vns_wpa_v2_enable, NULL, NULL },
  407. { 26, "V_WPA_PASSPHRASE", &hf_config_vns_wpa_passphrase, NULL, NULL },
  408. { 27, "V_WPA_CIPHER_TYPE", &hf_config_vns_wpa_cipher_type, NULL, NULL },
  409. { 28, "V_WPA_V2_CIPHER_TYPE", &hf_config_vns_wpa_v2_cipher_type, NULL, NULL },
  410. { 29, "V_WEP_KEY_INDEX", &hf_config_vns_wep_key_index, NULL, NULL },
  411. { 30, "V_WEP_DEFAULT_KEY_VALUE", &hf_config_vns_wep_default_key_value, NULL, NULL },
  412. { 31, "V_CHANNEL_REPORT", &hf_config_vns_channel_report, NULL, NULL },
  413. { 32, "V_WDS_SERVICE", &hf_config_vns_wds_service, NULL, NULL },
  414. { 33, "V_WDS_PREF_PARENT", &hf_config_vns_wds_pref_parent, NULL, NULL },
  415. { 34, "V_WDS_BRIDGE", &hf_config_vns_wds_bridge, NULL, NULL },
  416. { 35, "V_OKC_ENABLED", &hf_config_vns_okc_enabled, NULL, NULL },
  417. { 36, "V_MU_ASSOC_RETRIES", &hf_config_vns_mu_assoc_retries, NULL, NULL },
  418. { 37, "V_MU_ASSOC_TIMEOUT", &hf_config_vns_mu_assoc_timeout, NULL, NULL },
  419. { 38, "V_WDS_PARENT", &hf_config_vns_wds_parent, NULL, NULL },
  420. { 39, "V_WDS_BACK_PARENT", &hf_config_vns_wds_back_parent, NULL, NULL },
  421. { 40, "V_WDS_NAME", &hf_config_vns_wds_name, NULL, NULL },
  422. { 0, NULL, NULL, NULL, NULL }
  423. };
  424. static const ext_value_string wassp_tunnel_tlv_config_radio_tlv_vals[] = {
  425. { 1, "R_RADIO_ID", &hf_config_radio_radio_id, NULL, NULL },
  426. { 2, "R_ENABLE_RADIO", &hf_config_radio_enable_radio, NULL, NULL },
  427. { 3, "R_CHANNEL", &hf_config_radio_channel, NULL, NULL },
  428. { 4, "R_OP_RATE_SET", &hf_config_radio_op_rate_set, NULL, NULL },
  429. { 5, "R_OP_RATE_MAX", &hf_config_radio_op_rate_max, NULL, NULL },
  430. { 6, "R_BEACON_PERIOD", &hf_config_radio_beacon_period, NULL, NULL },
  431. { 7, "R_DTIM_PERIOD", &hf_config_radio_dtim_period, NULL, NULL },
  432. { 8, "R_RTS_THRESHOLD", &hf_config_radio_rts_threshold, NULL, NULL },
  433. { 9, "R_RETRY_LIMIT_SHORT", /* hf_, */ NULL, NULL, NULL },
  434. { 10, "R_RETRY_LIMIT_LONG", /* hf_, */ NULL, NULL, NULL },
  435. { 11, "R_FRAGMENT_THRESHOLD", &hf_config_radio_fragment_threshold, NULL, NULL },
  436. { 12, "R_POWER_LEVEL", &hf_config_radio_power_level, NULL, NULL },
  437. { 13, "R_DIVERSITY_LEFT", /* hf_, */ NULL, NULL, NULL },
  438. { 14, "R_DIVERSITY_RIGHT", /* hf_, */ NULL, NULL, NULL },
  439. { 15, "R_DIVERSITY_RX", &hf_config_radio_diversity_rx, NULL, NULL },
  440. { 16, "R_DIVERSITY_TX", &hf_config_radio_diversity_tx, NULL, NULL },
  441. { 17, "R_SHORT_PREAMBLE", &hf_config_radio_short_preamble, NULL, NULL },
  442. { 18, "R_BASIC_RATE_MAX", &hf_config_radio_basic_rate_max, NULL, NULL },
  443. { 19, "R_BASIC_RATE_MIN", &hf_config_radio_basic_rate_min, NULL, NULL },
  444. { 20, "R_HW_RETRIES", &hf_config_radio_hw_retries, NULL, NULL },
  445. { 21, "R_DRM_TX_POWER_MIN", &hf_config_radio_tx_power_min, NULL, NULL },
  446. { 22, "R_DRM_TX_POWER_MAX", &hf_config_radio_tx_power_max, NULL, NULL },
  447. { 23, "R_DRM_AVOID_WLAN", /* hf_, */ NULL, NULL, NULL },
  448. { 24, "R_DRM_DOMAIN_ID", &hf_config_radio_domain_id, NULL, NULL },
  449. { 25, "R_B_ENABLE", &hf_config_radio_b_enable, NULL, NULL },
  450. { 26, "R_B_BASIC_RATES", &hf_config_radio_b_basic_rates, NULL, NULL },
  451. { 27, "R_G_ENABLE", &hf_config_radio_g_enable, NULL, NULL },
  452. { 28, "R_G_PROTECT_MODE", &hf_config_radio_g_protect_mode, NULL, NULL },
  453. { 29, "R_G_PROTECT_TYPE", &hf_config_radio_g_protect_type, NULL, NULL },
  454. { 30, "R_G_PROTECT_RATE", &hf_config_radio_g_protect_rate, NULL, NULL },
  455. { 31, "R_G_BASIC_RATE", &hf_config_radio_g_basic_rate, NULL, NULL },
  456. { 32, "R_A_SUPPORT_802_11_J", &hf_config_radio_a_support_802_11_j, NULL, NULL },
  457. { 33, "R_ATPC_EN_INTERVAL", &hf_config_radio_atpc_en_interval, NULL, NULL },
  458. { 34, "R_ACS_CH_LIST", &hf_config_radio_acs_ch_list, NULL, NULL },
  459. { 35, "R_TX_POWER_ADJ", &hf_config_radio_tx_power_adj, NULL, NULL },
  460. { 0, NULL, NULL, NULL, NULL }
  461. };
  462. static const ext_value_string wassp_tunnel_tlv_config_tlv_vals[] = {
  463. { 1, "RADIO_CONFIG_BLOCK", &hf_config_radio, dissect_tlv, wassp_tunnel_tlv_config_radio_tlv_vals },
  464. { 2, "VNS_CONFIG_BLOCK", &hf_config_vns, dissect_tlv, wassp_tunnel_tlv_config_vns_tlv_vals },
  465. { 3, "DIVERSITY_LEFT", /* hf_, */ NULL, NULL, NULL },
  466. { 4, "DIVERSITY_RIGHT", /* hf_, */ NULL, NULL, NULL },
  467. { 5, "TRACE_STATUS_DEBUG", &hf_config_trace_status_debug, NULL, NULL },
  468. { 6, "TRACE_STATUS_CONFIG", &hf_config_trace_status_config, NULL, NULL },
  469. { 7, "BRIDGE_AT_AP", /* hf_, */ NULL, NULL, NULL },
  470. { 8, "USE_BCAST_FOR_DISASSC", &hf_config_use_bcast_for_disassc, NULL, NULL },
  471. { 9, "BANDWIDTH_VOICE_ASSC", &hf_config_bandwidth_voice_assc, NULL, NULL },
  472. { 10, "BANDWIDTH_VOICE_REASSC", &hf_config_bandwidth_voice_reassc, NULL, NULL },
  473. { 11, "BANDWIDTH_VIDEO_ASSC", &hf_config_bandwidth_video_assc, NULL, NULL },
  474. { 12, "BANDWIDTH_VIDEO_REASSC", &hf_config_bandwidth_video_reassc, NULL, NULL },
  475. { 13, "BANDWIDTH_VIDEO_RESERVE", &hf_config_bandwidth_video_reserve, NULL, NULL },
  476. { 14, "BANDWIDTH_ADM_CTRL_RESERVE", &hf_config_bandwidth_adm_ctrl_reserve, NULL, NULL },
  477. { 15, "VLAN_TAG", &hf_config_vlan_tag, NULL, NULL },
  478. { 16, "COUNTRY_CODE", &hf_config_country_code, NULL, NULL },
  479. { 17, "POLL_DURATION", &hf_config_poll_duration, NULL, NULL },
  480. { 18, "POLL_INTERVAL", &hf_config_poll_interval, NULL, NULL },
  481. { 19, "POLL_REBOOT_ON_FAIL", /* hf_, */ NULL, NULL, NULL },
  482. { 20, "POLL_MAINTAIN_CLIENT_SESSION", &hf_config_poll_maintain_client_session, NULL, NULL },
  483. { 21, "TELNET_ENABLE", &hf_config_telnet_enable, NULL, NULL },
  484. { 22, "TELNET_PASSWORD", &hf_config_telnet_password, NULL, NULL },
  485. { 23, "TELNET_PASSWORD_ENTRY_MODE", &hf_config_telnet_password_entry_mode, NULL, NULL },
  486. { 24, "OUTDOOR_ENABLE-ENVIRONMENT", &hf_config_outdoor_enable_environment, NULL, NULL },
  487. { 25, "BSS_COUNT", /* hf_, */ NULL, NULL, NULL },
  488. { 26, "DRM_ENABLE", /* hf_, */ NULL, NULL, NULL },
  489. { 27, "DRM_ENABLE_SHAPE_COV", /* hf_, */ NULL, NULL, NULL },
  490. { 28, "SLP_RETRY_COUNT", &hf_config_slp_retry_count, NULL, NULL },
  491. { 29, "SLP_RETRY_DELAY", &hf_config_slp_retry_delay, NULL, NULL },
  492. { 30, "DNS_RETRY_COUNT", &hf_config_dns_retry_count, NULL, NULL },
  493. { 31, "DNS_RETRY_DELAY", &hf_config_dns_retry_delay, NULL, NULL },
  494. { 32, "MCAST_SLP_RETRY_COUNT", &hf_config_mcast_slp_retry_count, NULL, NULL },
  495. { 33, "MCAST_SLP_RETRY_DELAY", &hf_config_mcast_slp_retry_delay, NULL, NULL },
  496. { 34, "DISC_RETRY_COUNT", &hf_config_disc_retry_count, NULL, NULL },
  497. { 35, "DISC_RETRY_DELAY", &hf_config_disc_retry_delay, NULL, NULL },
  498. { 36, "LOGGING_ALARM_SEV", &hf_config_logging_alarm_sev, NULL, NULL },
  499. { 37, "BLACKLIST-BLACKLIST_ADD", &hf_config_blacklist_blacklist_add, NULL, NULL },
  500. { 38, "FAILOVER_AC_IP_ADDR", &hf_config_failover_ac_ip_addr, NULL, NULL },
  501. { 39, "STATIC_AC_IP_ADDR", &hf_config_static_ac_ip_addr, NULL, NULL },
  502. { 40, "DHCP_ASSIGNMENT", &hf_config_dhcp_assignment, NULL, NULL },
  503. { 41, "STATIC_AP_IP_ADDR", &hf_config_static_ap_ip_addr, NULL, NULL },
  504. { 42, "STATIC_AP_IP_NETMASK", &hf_config_static_ap_ip_netmask, NULL, NULL },
  505. { 43, "STATIC_AP_DEFAULT_GW", &hf_config_static_ap_default_gw, NULL, NULL },
  506. { 44, "BLACKLIST_DEL", &hf_config_blacklist_del, NULL, NULL },
  507. { 45, "MACADDR_REQ", &hf_config_macaddr_req, NULL, NULL },
  508. { 46, "AVAILABILITY_MODE", &hf_config_availability_mode, NULL, NULL },
  509. { 47, "AP_PERSISTENCE", /* hf_, */ NULL, NULL, NULL },
  510. { 48, "FOREIGN_AP", /* hf_, */ NULL, NULL, NULL },
  511. { 49, "SUPP1X_CREDENTIAL_REMOVE", /* hf_, */ NULL, NULL, NULL },
  512. { 50, "SUPP1X_CERT_TFTP_IP", /* hf_, */ NULL, NULL, NULL },
  513. { 51, "SUPP1X_CERT_TFTP_PATH", /* hf_, */ NULL, NULL, NULL },
  514. { 52, "SUPP1X_PRIVATE", /* hf_, */ NULL, NULL, NULL },
  515. { 53, "SUPP1X_DOMAIN", /* hf_, */ NULL, NULL, NULL },
  516. { 54, "SUPP1X_USERID", /* hf_, */ NULL, NULL, NULL },
  517. { 55, "SUPP1X_PASSWORD", /* hf_, */ NULL, NULL, NULL },
  518. { 56, "SUPP1X_CREDENT", /* hf_, */ NULL, NULL, NULL },
  519. { 57, "SUPP1X_SERIAL", /* hf_, */ NULL, NULL, NULL },
  520. { 58, "SUPP1X_START_DATE", /* hf_, */ NULL, NULL, NULL },
  521. { 59, "SUPP1X_END_DATE", /* hf_, */ NULL, NULL, NULL },
  522. { 60, "SUPP1X_ISSUED_BY", /* hf_, */ NULL, NULL, NULL },
  523. { 61, "SUPP1X_ISSUED_TO", /* hf_, */ NULL, NULL, NULL },
  524. { 0, NULL, NULL, NULL, NULL }
  525. };
  526. static const ext_value_string wassp_tunnel_mu_stats_block_65_tlv_vals[] = {
  527. { 0, NULL, NULL, NULL, NULL }
  528. };
  529. static const ext_value_string wassp_tunnel_mu_stats_block_tlv_vals[] = {
  530. { 65, "MU_STATS_BLOCK_65", &hf_mu_stats_block_65, dissect_tlv, wassp_tunnel_mu_stats_block_65_tlv_vals },
  531. { 0, NULL, NULL, NULL, NULL }
  532. };
  533. static const ext_value_string wassp_tunnel_ap_stats_block_tlv_vals[] = {
  534. { 1, "DOT11_ACKFailureCount", &hf_stats_dot11_ackfailurecount, NULL, NULL },
  535. { 2, "DOT11_FCSErrorCount", &hf_stats_dot11_fcserrorcount, NULL, NULL },
  536. { 3, "DOT11_FailedCount", &hf_stats_dot11_failedcount, NULL, NULL },
  537. { 4, "DOT11_FrameDuplicateCount", &hf_stats_dot11_frameduplicatecount, NULL, NULL },
  538. { 5, "DOT11_MulticastReceivedFrameCount", &hf_stats_dot11_multicastreceivedframecount, NULL, NULL },
  539. { 6, "DOT11_MulticastTransmittedFrameCount", &hf_stats_dot11_multicasttransmittedframecount, NULL, NULL },
  540. { 7, "DOT11_MultipleRetryCount", &hf_stats_dot11_multipleretrycount, NULL, NULL },
  541. { 8, "DOT11_RTSFailureCount", &hf_stats_dot11_rtsfailurecount, NULL, NULL },
  542. { 9, "DOT11_RTSSuccessCount", &hf_stats_dot11_rtssuccesscount, NULL, NULL },
  543. { 10, "DOT11_ReceivedFragementCount", &hf_stats_dot11_receivedfragementcount, NULL, NULL },
  544. { 11, "DOT11_RetryCount", &hf_stats_dot11_retrycount, NULL, NULL },
  545. { 12, "DOT11_TransmittedFragmentCount", &hf_stats_dot11_transmittedfragmentcount, NULL, NULL },
  546. { 13, "DOT11_TransmittedFrameCount", &hf_stats_dot11_transmittedframecount, NULL, NULL },
  547. { 14, "DOT11_WEBUndecryptableCount", &hf_stats_dot11_webundecryptablecount, NULL, NULL },
  548. { 15, "DOT11_WEPExcludedCount", &hf_stats_dot11_wepexcludedcount, NULL, NULL },
  549. { 16, "DOT11_WEPICVErrorCount", &hf_stats_dot11_wepicverrorcount, NULL, NULL },
  550. { 17, "DRM_AllocFailures", &hf_stats_drm_allocfailures, NULL, NULL },
  551. { 18, "DRM_CurrentChannel", &hf_stats_drm_currentchannel, NULL, NULL },
  552. { 19, "DRM_CurrentPower", &hf_stats_drm_currentpower, NULL, NULL },
  553. { 20, "DRM_DataTxFailures", &hf_stats_drm_datatxfailures, NULL, NULL },
  554. { 21, "DRM_DeviceType", &hf_stats_drm_devicetype, NULL, NULL },
  555. { 22, "DRM_InDataPackets", &hf_stats_drm_indatapackets, NULL, NULL },
  556. { 23, "DRM_InMgmtPackets", &hf_stats_drm_inmgmtpackets, NULL, NULL },
  557. { 24, "DRM_LoadFactor", &hf_stats_drm_loadfactor, NULL, NULL },
  558. { 25, "DRM_MgmtTxFailures", &hf_stats_drm_mgmttxfailures, NULL, NULL },
  559. { 26, "DRM_MsgQFailures", &hf_stats_drm_msgqfailures, NULL, NULL },
  560. { 27, "DRM_NoDRMCurrentChannel", &hf_stats_drm_nodrmcurrentchannel, NULL, NULL },
  561. { 28, "DRM_OutDataPackets", &hf_stats_drm_outdatapackets, NULL, NULL },
  562. { 29, "DRM_OutMgmtPackets", &hf_stats_drm_outmgmtpackets, NULL, NULL },
  563. { 30, "IF_InBcastPackets", &hf_stats_if_inbcastpackets, NULL, NULL },
  564. { 31, "IF_InDiscards", &hf_stats_if_indiscards, NULL, NULL },
  565. { 32, "IF_InErrors", &hf_stats_if_inerrors, NULL, NULL },
  566. { 33, "IF_InMcastPackets", &hf_stats_if_inmcastpackets, NULL, NULL },
  567. { 34, "IF_InOctets", &hf_stats_if_inoctets, NULL, NULL },
  568. { 35, "IF_InUcastPackets", &hf_stats_if_inucastpackets, NULL, NULL },
  569. { 36, "IF_MTU", &hf_stats_if_mtu, NULL, NULL },
  570. { 37, "IF_OutBcastPackets", &hf_stats_if_outbcastpackets, NULL, NULL },
  571. { 38, "IF_OutDiscards", &hf_stats_if_outdiscards, NULL, NULL },
  572. { 39, "IF_OutErrors", &hf_stats_if_outerrors, NULL, NULL },
  573. { 40, "IF_OutOctets", &hf_stats_if_outoctets, NULL, NULL },
  574. { 41, "IF_OutUcastPackets", &hf_stats_if_outucastpackets, NULL, NULL },
  575. { 42, "IF_OutMCastPackets", &hf_stats_if_outmcastpackets, NULL, NULL },
  576. { 43, "MU_Address", &hf_stats_mu_address, NULL, NULL },
  577. { 44, "MU_AssociationCount", &hf_stats_mu_associationcount, NULL, NULL },
  578. { 45, "MU_AuthenticationCount", &hf_stats_mu_authenticationcount, NULL, NULL },
  579. { 46, "MU_DeAssociationCount", &hf_stats_mu_deassociationcount, NULL, NULL },
  580. { 47, "MU_DeAuthenticationCount", &hf_stats_mu_deauthenticationcount, NULL, NULL },
  581. { 48, "MU_IfIndex", &hf_stats_mu_ifindex, NULL, NULL },
  582. { 49, "MU_ReAssociationCount", &hf_stats_mu_reassociationcount, NULL, NULL },
  583. { 50, "MU_ReceivedBytes", &hf_stats_mu_receivedbytes, NULL, NULL },
  584. { 51, "MU_ReceivedErrors", &hf_stats_mu_receivederrors, NULL, NULL },
  585. { 52, "MU_ReceivedFrameCount", &hf_stats_mu_receivedframecount, NULL, NULL },
  586. { 53, "MU_ReceivedRSSI", &hf_stats_mu_receivedrssi, NULL, NULL },
  587. { 54, "MU_ReceivedRate", &hf_stats_mu_receivedrate, NULL, NULL },
  588. { 55, "MU_TransmittedBytes", &hf_stats_mu_transmittedbytes, NULL, NULL },
  589. { 56, "MU_TransmittedErrors", &hf_stats_mu_transmittederrors, NULL, NULL },
  590. { 57, "MU_TransmittedFrameCount", &hf_stats_mu_transmittedframecount, NULL, NULL },
  591. { 58, "MU_TransmittedRSSI", &hf_stats_mu_transmittedrssi, NULL, NULL },
  592. { 59, "MU_TransmittedRate", &hf_stats_mu_transmittedrate, NULL, NULL },
  593. { 60, "MU_RF_STATS_END", &hf_stats_mu_rf_stats_end, NULL, NULL },
  594. { 61, "RFC_1213_SYSUPTIME", &hf_stats_rfc_1213_sysuptime, NULL, NULL },
  595. { 62, "STATS_ETHER_BLOCK", &hf_ap_stats_block_ether, dissect_tlv, wassp_tunnel_ap_stats_block_tlv_vals },
  596. { 63, "STATS_RADIO_A_BLOCK", &hf_ap_stats_block_radio_a, dissect_tlv, wassp_tunnel_ap_stats_block_tlv_vals },
  597. { 64, "STATS_RADIO_B_G_BLOCK", &hf_ap_stats_block_radio_b_g, dissect_tlv, wassp_tunnel_ap_stats_block_tlv_vals },
  598. { 65, "MU_STATS_BLOCK", &hf_mu_stats_block, dissect_tlv, wassp_tunnel_ap_stats_block_tlv_vals },
  599. { 66, "WDS_BLOCK", /* hf_, */ NULL, NULL, NULL },
  600. { 67, "WDS_Role", /* hf_, */ NULL, NULL, NULL },
  601. { 68, "WDS_PARENT_MAC", /* hf_, */ NULL, NULL, NULL },
  602. { 69, "WDS_BSSID", /* hf_, */ NULL, NULL, NULL },
  603. { 70, "DOT1x_STATS_BLOCK", &hf_dot1x_stats_block, dissect_tlv, wassp_tunnel_ap_stats_block_tlv_vals },
  604. { 71, "DOT1x_CREDENT", &hf_dot1x_stats_credent, NULL, NULL },
  605. { 72, "DOT1x_END_DATE", &hf_dot1x_stats_end_date, NULL, NULL },
  606. { 73, "TLV_MAX", &hf_stats_tlv_max, NULL, NULL },
  607. { 0, NULL, NULL, NULL, NULL }
  608. };
  609. static const ext_value_string wassp_tunnel_tlv_vals[] = {
  610. { 1, "STATUS", &hf_status, NULL, NULL },
  611. { 2, "RU-SOFT-VERSION", &hf_ru_soft_version, NULL, NULL },
  612. { 3, "RU-SERIAL-NUMBER", &hf_ru_serial_number, NULL, NULL },
  613. { 4, "RU-REG-CHALLENGE", &hf_ru_challenge, NULL, NULL },
  614. { 5, "RU-REG-RESPONSE", &hf_ru_response, NULL, NULL },
  615. { 6, "AC-IPADDR", &hf_ac_ipaddr, NULL, NULL },
  616. { 7, "RU-VNS-ID", &hf_ru_vns_id, NULL, NULL },
  617. { 8, "TFTP-SERVER", &hf_tftp_server, NULL, NULL },
  618. { 9, "IMAGE-PATH", &hf_image_path, NULL, NULL },
  619. { 10, "RU-CONFIG", &hf_ru_config, dissect_snmp, NULL },
  620. { 11, "RU-STATE", &hf_ru_state, NULL, NULL },
  621. { 12, "RU-SESSION-KEY", &hf_ru_session_key, NULL, NULL },
  622. { 13, "MESSAGE-TYPE", &hf_message_type, NULL, NULL },
  623. { 14, "RANDOM-NUMBER", &hf_random_number, NULL, NULL },
  624. { 15, "STANDBY-TIMEOUT", &hf_standby_timeout, NULL, NULL },
  625. { 16, "RU-CHALLENGE-ID", &hf_ru_challenge_id, NULL, NULL },
  626. { 17, "RU-MODEL", &hf_ru_model, NULL, NULL },
  627. { 18, "RU-SCAN-MODE", &hf_ru_scan_mode, NULL, NULL },
  628. { 19, "RU-SCAN-TYPE", &hf_ru_scan_type, NULL, NULL },
  629. { 20, "RU-SCAN-INTERVAL", &hf_ru_scan_interval, NULL, NULL },
  630. { 21, "RU-RADIO-TYPE", &hf_ru_radio_type, NULL, NULL },
  631. { 22, "RU-CHANNEL-DWELL-TIME", &hf_ru_channel_dwell_time, NULL, NULL },
  632. { 23, "RU-CHANNEL-LIST", &hf_ru_channel_list, NULL, NULL },
  633. { 24, "RU-TRAP", &hf_ru_trap, NULL, NULL },
  634. { 25, "RU-SCAN-TIMES", &hf_ru_scan_times, NULL, NULL },
  635. { 26, "RU-SCAN-DELAY", &hf_ru_scan_delay, NULL, NULL },
  636. { 27, "RU-SCAN-REQ-ID", &hf_ru_scan_req_id, NULL, NULL },
  637. { 28, "STATIC-CONFIG", &hf_static_config, NULL, NULL },
  638. { 29, "LOCAL-BRIDGING", &hf_local_bridging, NULL, NULL },
  639. { 30, "STATIC-BP-IPADDR", &hf_static_bp_ipaddr, NULL, NULL },
  640. { 31, "STATIC-BP-NETMASK", &hf_static_bp_netmask, NULL, NULL },
  641. { 32, "STATIC-BP-GATEWAY", &hf_static_bp_gateway, NULL, NULL },
  642. { 33, "STATIC-BM-IPADDR", &hf_static_bm_ipaddr, NULL, NULL },
  643. { 34, "TUNNEL_PROTOCOL/BSSID", /* &hf_, */ NULL, NULL, NULL },
  644. { 35, "BP_WIRED_MACADDR", /* &hf_, */ NULL, NULL, NULL },
  645. { 36, "RU_CAPABILITY", /* &hf_, */ NULL, NULL, NULL },
  646. { 37, "RU_SSID_NAME", /* hf_, */ NULL, NULL, NULL },
  647. { 38, "RU_ALARM", &hf_ru_alarm, dissect_snmp, NULL },
  648. { 39, "PREAUTH_RESP", &hf_preauth_resp, NULL, NULL },
  649. { 40, "BP_PMK", &hf_bp_pmk, NULL, NULL },
  650. { 41, "AC_REG_CHALLENGE", &hf_ac_reg_challenge, NULL, NULL },
  651. { 42, "AC_REG_RESPONSE", &hf_ac_reg_response, NULL, NULL },
  652. { 43, "STATS", &hf_stats, NULL, NULL },
  653. { 44, "CERTIFICATE", &hf_certificate, NULL, NULL },
  654. { 45, "RADIO_ID", &hf_radio_id, NULL, NULL },
  655. { 46, "BP-REQUEST-ID", &hf_bp_request_id, NULL, NULL },
  656. { 47, "NETWORK_ID", &hf_network_id, NULL, NULL },
  657. { 48, "MU_MAC", &hf_mu_mac, NULL, NULL },
  658. { 49, "TIME", &hf_time, NULL, NULL },
  659. { 50, "NUM_RADIOS", &hf_num_radios, NULL, NULL },
  660. { 51, "RADIO_INFO", &hf_radio_info, NULL, NULL },
  661. { 52, "NETWORK_INFO", &hf_network_info, NULL, NULL },
  662. { 53, "VENDOR_ID", &hf_vendor_id, NULL, NULL },
  663. { 54, "PRODUCT_ID", &hf_product_id, NULL, NULL },
  664. { 55, "RADIO_INFO_ACK", &hf_radio_info_ack, NULL, NULL },
  665. { 60, "SNMP-ERROR-STATUS", &hf_snmp_error_status, NULL, NULL },
  666. { 61, "SNMP-ERROR-INDEX", &hf_snmp_error_index, NULL, NULL },
  667. { 62, "ALTERNATE_AC_IPADDR", /* &hf_, */ NULL, NULL, NULL },
  668. { 63, "AP-IMG-TO-RAM", &hf_ap_img_to_ram, NULL, NULL },
  669. { 64, "AP-IMG-ROLE", &hf_ap_img_role, NULL, NULL },
  670. { 65, "AP_STATS_BLOCK", &hf_ap_stats_block, dissect_tlv, wassp_tunnel_ap_stats_block_tlv_vals },
  671. { 66, "MU_RF_STATS_BLOCK", &hf_mu_rf_stats_block, dissect_tlv, wassp_tunnel_mu_stats_block_tlv_vals },
  672. { 67, "STATS_REQUEST_TYPE", &hf_stats_request_type, NULL, NULL },
  673. { 68, "STATS_LAST", &hf_stats_last, NULL, NULL },
  674. { 69, "TLV_CONFIG", &hf_block_config, dissect_tlv, wassp_tunnel_tlv_config_tlv_vals },
  675. { 70, "CONFIG_ERROR_BLOCK", /* &hf_, */ NULL, NULL, NULL },
  676. { 71, "CONFIG_MODIFIED_BLOCK", /* &hf_, */ NULL, NULL, NULL },
  677. { 72, "MU_PMKID_LIST", &hf_mu_pmkid_list, NULL, NULL },
  678. { 73, "MU_PMK_BP", &hf_mu_pmk_bp, NULL, NULL },
  679. { 74, "MU_PMKID_BP", &hf_mu_pmkid_bp, NULL, NULL },
  680. { 75, "COUNTDOWN_TIME", &hf_countdown_time, NULL, NULL },
  681. { 76, "WASSP-VLAN-TAG", &hf_wassp_vlan_tag, NULL, NULL },
  682. { 81, "WASSP-TUNNEL-TYPE", &hf_wassp_tunnel_type, NULL, NULL },
  683. { 88, "AP-DHCP-MODE", &hf_ap_dhcp_mode, NULL, NULL },
  684. { 89, "AP-IPADDR", &hf_ap_ipaddr, NULL, NULL },
  685. { 90, "AP-NETMASK", &hf_ap_netmask, NULL, NULL },
  686. { 91, "AP-GATEWAY", &hf_ap_gateway, NULL, NULL },
  687. { 0, NULL, NULL, NULL, NULL }
  688. };
  689. static const value_string wassp_tunnel_pdu_type[] = {
  690. { 1, "?Discover?" },
  691. { 2, "RU Registration Request" },
  692. { 3, "RU Registration Response" },
  693. { 4, "RU Authentication Request" },
  694. { 5, "RU Authentication Response" },
  695. { 6, "RU Software Version Validate Request" },
  696. { 7, "RU Software Version Validate Response" },
  697. { 8, "RU Configuration Request" },
  698. { 9, "RU Configuration Response" },
  699. { 10, "RU Acknowledge" },
  700. { 11, "RU Configuration Status Notify" },
  701. { 12, "RU Set State Request" },
  702. { 13, "RU Set State Response" },
  703. { 14, "RU Statistics Notify" },
  704. { 15, "Data" },
  705. { 16, "Poll" },
  706. { 17, "SNMP Request" },
  707. { 18, "SNMP Response" },
  708. { 19, "BP Trap Notify" },
  709. { 20, "BP Scan Request" },
  710. { 21, "RFM Notify" },
  711. { 22, "RU SNMP Alarm Notify" },
  712. { 23, "RU SNMP Set Alarm" },
  713. { 24, "RU SNMP Set Log Status" },
  714. { 25, "RU SNMP Get Log Request" },
  715. { 26, "RU SNMP Get Log Response" },
  716. { 27, "SEC Update Notify" },
  717. { 28, "RU Stats Req" },
  718. { 29, "RU Stats Resp" },
  719. { 30, "MU Stats Req" },
  720. { 31, "MU Stats Response" },
  721. { 0, NULL }
  722. };
  723. #if 0
  724. static const value_string wassp_setresult_vals[] = {
  725. { 0, "Success" },
  726. { 1, "Failauth" },
  727. { 0, NULL }
  728. };
  729. #endif
  730. static int
  731. dissect_snmp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *wassp_tree,
  732. volatile guint32 offset, guint32 length, const ext_value_string *value_array _U_)
  733. {
  734. tvbuff_t *snmp_tvb;
  735. /* Don't add SNMP stuff to the info column */
  736. col_set_writable(pinfo->cinfo, FALSE);
  737. snmp_tvb = tvb_new_subset(tvb, offset, length, length);
  738. /* Continue after SNMP dissection errors */
  739. TRY {
  740. call_dissector(snmp_handle, snmp_tvb, pinfo, wassp_tree);
  741. } CATCH_NONFATAL_ERRORS {
  742. show_exception(snmp_tvb, pinfo, wassp_tree, EXCEPT_CODE, GET_MESSAGE);
  743. } ENDTRY;
  744. col_set_writable(pinfo->cinfo, TRUE);
  745. offset += length;
  746. return offset;
  747. }
  748. static int
  749. dissect_ieee80211(tvbuff_t *tvb, packet_info *pinfo, proto_tree *wassp_tree,
  750. volatile guint32 offset, guint32 length, const ext_value_string *value_array _U_)
  751. {
  752. tvbuff_t *ieee80211_tvb;
  753. /* Don't add IEEE 802.11 stuff to the info column */
  754. col_set_writable(pinfo->cinfo, FALSE);
  755. ieee80211_tvb = tvb_new_subset(tvb, offset, length, length);
  756. /* Continue after IEEE 802.11 dissection errors */
  757. TRY {
  758. call_dissector(ieee80211_handle, ieee80211_tvb, pinfo, wassp_tree);
  759. } CATCH_NONFATAL_ERRORS {
  760. show_exception(ieee80211_tvb, pinfo, wassp_tree, EXCEPT_CODE, GET_MESSAGE);
  761. } ENDTRY;
  762. col_set_writable(pinfo->cinfo, TRUE);
  763. offset += length;
  764. return offset;
  765. }
  766. static int
  767. dissect_tlv(tvbuff_t *tvb, packet_info *pinfo, proto_tree *wassp_tree,
  768. guint32 offset, guint32 length _U_, const ext_value_string *value_array)
  769. {
  770. guint32 tlv_type;
  771. guint32 tlv_length;
  772. proto_item *tlv_item;
  773. proto_item *tlv_tree;
  774. proto_item *type_item;
  775. int type_index;
  776. guint32 tlv_end;
  777. tlv_type = tvb_get_ntohs(tvb, offset);
  778. tlv_length = tvb_get_ntohs(tvb, offset + 2);
  779. DISSECTOR_ASSERT(tlv_length >= 4);
  780. tlv_item = proto_tree_add_text(wassp_tree, tvb,
  781. offset, tlv_length,
  782. "T %d, L %d: %s",
  783. tlv_type,
  784. tlv_length,
  785. extval_to_str_idx(tlv_type, value_array, NULL, "Unknown"));
  786. tlv_tree = proto_item_add_subtree(tlv_item,
  787. ett_wassp_tlv_header);
  788. type_item = proto_tree_add_item(tlv_tree, hf_wassp_tlv_type,
  789. tvb, offset, 2, ENC_BIG_ENDIAN);
  790. proto_item_append_text(type_item, " = %s",
  791. extval_to_str_idx(tlv_type, value_array,
  792. &type_index, "Unknown"));
  793. offset += 2;
  794. proto_tree_add_item(tlv_tree, hf_wassp_tlv_length,
  795. tvb, offset, 2, ENC_BIG_ENDIAN);
  796. offset += 2;
  797. tlv_length -= 4;
  798. if (tlv_length == 0)
  799. return offset;
  800. tlv_end = offset + tlv_length;
  801. /* Make hf_ handling independent of specialfuncion */
  802. if ( type_index != -1 && value_array[type_index].hf_element) {
  803. proto_tree_add_item(tlv_tree,
  804. *(value_array[type_index].hf_element),
  805. tvb, offset, tlv_length, ENC_BIG_ENDIAN);
  806. } else {
  807. proto_tree_add_item(tlv_tree, hf_wassp_tlv_data,
  808. tvb, offset, tlv_length, ENC_NA);
  809. }
  810. if ( type_index != -1 && value_array[type_index].specialfunction ) {
  811. guint32 newoffset;
  812. while (offset < tlv_end) {
  813. newoffset = value_array[type_index].specialfunction (
  814. tvb, pinfo, tlv_tree, offset, tlv_length,
  815. value_array[type_index].evs);
  816. DISSECTOR_ASSERT(newoffset > offset);
  817. offset = newoffset;
  818. }
  819. }
  820. return tlv_end;
  821. }
  822. static int
  823. dissect_wassp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
  824. {
  825. proto_item *ti;
  826. proto_tree *wassp_tree = NULL;
  827. guint32 offset = 0;
  828. guint32 packet_length;
  829. guint8 packet_type;
  830. guint32 subtype;
  831. packet_type = tvb_get_guint8(tvb, 1);
  832. col_set_str(pinfo->cinfo, COL_PROTOCOL, PROTO_SHORT_NAME);
  833. col_add_str(pinfo->cinfo, COL_INFO, val_to_str(packet_type,
  834. wassp_tunnel_pdu_type, "Type 0x%02x"));
  835. if (tree) {
  836. /* Header dissection */
  837. ti = proto_tree_add_item(tree, proto_wassp, tvb, offset, -1,
  838. ENC_NA);
  839. wassp_tree = proto_item_add_subtree(ti, ett_wassp);
  840. proto_tree_add_item(wassp_tree, hf_wassp_version, tvb, offset, 1,
  841. ENC_BIG_ENDIAN);
  842. offset += 1;
  843. proto_tree_add_item(wassp_tree, hf_wassp_type, tvb, offset, 1,
  844. ENC_BIG_ENDIAN);
  845. offset += 1;
  846. switch (packet_type) {
  847. case 1: /* Discover ??? */
  848. proto_tree_add_item(wassp_tree, hf_wassp_discover1, tvb, offset, 2,
  849. ENC_BIG_ENDIAN);
  850. offset += 2;
  851. packet_length = tvb_get_ntohs(tvb, offset);
  852. proto_tree_add_item(wassp_tree, hf_wassp_length, tvb, offset, 2,
  853. ENC_BIG_ENDIAN);
  854. offset += 2;
  855. proto_tree_add_item(wassp_tree, hf_wassp_discover2, tvb, offset, 2,
  856. ENC_BIG_ENDIAN);
  857. offset += 2;
  858. subtype = tvb_get_ntohs(tvb, offset);
  859. proto_tree_add_item(wassp_tree, hf_wassp_subtype, tvb, offset, 2,
  860. ENC_BIG_ENDIAN);
  861. offset += 2;
  862. switch (subtype) {
  863. case 1:
  864. proto_tree_add_item(wassp_tree, hf_wassp_ether, tvb, offset, 6,
  865. ENC_NA);
  866. offset += 6;
  867. break;
  868. case 2:
  869. proto_tree_add_item(wassp_tree, hf_wassp_discover3, tvb, offset, 2,
  870. ENC_BIG_ENDIAN);
  871. offset += 2;
  872. break;
  873. }
  874. break;
  875. default:
  876. proto_tree_add_item(wassp_tree, hf_wassp_seqno, tvb, offset, 1,
  877. ENC_BIG_ENDIAN);
  878. offset += 1;
  879. proto_tree_add_item(wassp_tree, hf_wassp_flags, tvb, offset, 1,
  880. ENC_BIG_ENDIAN);
  881. offset += 1;
  882. proto_tree_add_item(wassp_tree, hf_wassp_sessionid, tvb, offset, 2,
  883. ENC_BIG_ENDIAN);
  884. offset += 2;
  885. packet_length = tvb_get_ntohs(tvb, offset);
  886. proto_tree_add_item(wassp_tree, hf_wassp_length, tvb, offset, 2,
  887. ENC_BIG_ENDIAN);
  888. offset += 2;
  889. break;
  890. }
  891. /* Body dissection */
  892. switch (packet_type) {
  893. case 15: /* Data: 802.11 packet with FCS */
  894. offset = dissect_ieee80211(tvb, pinfo, wassp_tree,
  895. offset, packet_length - offset, NULL);
  896. break;
  897. default:
  898. while (offset < packet_length)
  899. offset = dissect_tlv(tvb, pinfo, wassp_tree,
  900. offset, 0, wassp_tunnel_tlv_vals);
  901. break;
  902. }
  903. }
  904. return offset;
  905. }
  906. static gboolean
  907. test_wassp(tvbuff_t *tvb)
  908. {
  909. /* Minimum of 8 bytes, first byte (version) has value of 3 */
  910. if ( tvb_length(tvb) < 8
  911. || tvb_get_guint8(tvb, 0) != 3
  912. /* || tvb_get_guint8(tvb, 2) != 0
  913. || tvb_get_ntohs(tvb, 6) > tvb_reported_length(tvb) */
  914. ) {
  915. return FALSE;
  916. }
  917. return TRUE;
  918. }
  919. #if 0
  920. static gboolean
  921. dissect_wassp_heur(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
  922. {
  923. if ( !test_wassp(tvb) ) {
  924. return FALSE;
  925. }
  926. dissect_wassp(tvb, pinfo, tree);
  927. return TRUE;
  928. }
  929. #endif
  930. static int
  931. dissect_wassp_static(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
  932. {
  933. if ( !test_wassp(tvb) ) {
  934. return 0;
  935. }
  936. return dissect_wassp(tvb, pinfo, tree);
  937. }
  938. void
  939. proto_register_wassp(void)
  940. {
  941. static hf_register_info hf[] = {
  942. /* TLV fields */
  943. { &hf_wassp_tlv_type,
  944. { "TlvType", "wassp.tlv.type", FT_UINT8, BASE_DEC, NULL,
  945. 0x0, NULL, HFILL }},
  946. { &hf_wassp_tlv_length,
  947. { "TlvLength", "wassp.tlv.length", FT_UINT8, BASE_DEC, NULL,
  948. 0x0, NULL, HFILL }},
  949. { &hf_wassp_tlv_data,
  950. { "TlvData", "wassp.tlv.data", FT_BYTES, BASE_NONE, NULL,
  951. 0x0, NULL, HFILL }},
  952. /* WASSP tunnel header */
  953. { &hf_wassp_version,
  954. { "Protocol Version", "wassp.version", FT_UINT8, BASE_DEC, NULL,
  955. 0x0, NULL, HFILL }},
  956. { &hf_wassp_type,
  957. { "PDU Type", "wassp.type", FT_UINT8, BASE_DEC, VALS(wassp_tunnel_pdu_type),
  958. 0x0, NULL, HFILL }},
  959. { &hf_wassp_seqno,
  960. { "Sequence No", "wassp.seqno", FT_UINT8, BASE_DEC, NULL,
  961. 0x0, NULL, HFILL }},
  962. { &hf_wassp_flags,
  963. { "Flags", "wassp.flags", FT_UINT8, BASE_HEX, NULL,
  964. 0x0, NULL, HFILL }},
  965. { &hf_wassp_sessionid,
  966. { "Session ID", "wassp.sessionid", FT_UINT8, BASE_DEC, NULL,
  967. 0x0, NULL, HFILL }},
  968. { &hf_wassp_length,
  969. { "PDU Length", "wassp.length", FT_UINT8, BASE_HEX, NULL,
  970. 0x0, NULL, HFILL }},
  971. /* Data: Embedded IEEE 802.11 Frame */
  972. #if 0
  973. { &hf_data,
  974. { "DATA", "wassp.data", FT_NONE, BASE_NONE, NULL,
  975. 0x0, NULL, HFILL }},
  976. #endif
  977. /* WASSP tunnel data */
  978. { &hf_status,
  979. { "STATUS", "wassp.status", FT_UINT32, BASE_DEC, NULL,
  980. 0x0, NULL, HFILL }},
  981. { &hf_ru_soft_version,
  982. { "RU-SOFT-VERSION", "wassp.ru.soft.version", FT_STRING, BASE_NONE, NULL,
  983. 0x0, NULL, HFILL }},
  984. { &hf_ru_serial_number,
  985. { "RU-SERIAL-NUMBER", "wassp.ru.serial.number", FT_STRING, BASE_NONE, NULL,
  986. 0x0, NULL, HFILL }},
  987. { &hf_ru_challenge,
  988. { "RU-CHALLENGE", "wassp.ru.challenge", FT_BYTES, BASE_NONE, NULL,
  989. 0x0, NULL, HFILL }},
  990. { &hf_ru_response,
  991. { "RU-RESPONSE", "wassp.ru.response", FT_BYTES, BASE_NONE, NULL,
  992. 0x0, NULL, HFILL }},
  993. { &hf_ac_ipaddr,
  994. { "AC-IPADDR", "wassp.ac.ipaddr", FT_IPv4, BASE_NONE, NULL,
  995. 0x0, NULL, HFILL }},
  996. { &hf_ru_vns_id,
  997. { "RU-VNS-ID", "wassp.ru.vns.id", FT_UINT32, BASE_DEC, NULL,
  998. 0x0, NULL, HFILL }},
  999. { &hf_tftp_server,
  1000. { "TFTP-SERVER", "wassp.tftp.server", FT_IPv4, BASE_NONE, NULL,
  1001. 0x0, NULL, HFILL }},
  1002. { &hf_image_path,
  1003. { "IMAGE-PATH", "wassp.image.path", FT_STRING, BASE_NONE, NULL,
  1004. 0x0, NULL, HFILL }},
  1005. { &hf_ru_config,
  1006. { "RU-CONFIG", "wassp.ru.config", FT_NONE, BASE_NONE, NULL,
  1007. 0x0, NULL, HFILL }},
  1008. { &hf_ru_state,
  1009. { "RU-STATE", "wassp.ru.state", FT_UINT32, BASE_DEC, NULL,
  1010. 0x0, NULL, HFILL }},
  1011. { &hf_ru_session_key,
  1012. { "RU-SESSION-KEY", "wassp.ru.session.key", FT_STRING, BASE_NONE, NULL,
  1013. 0x0, NULL, HFILL }},
  1014. { &hf_message_type,
  1015. { "MESSAGE-TYPE", "wassp.message.type", FT_UINT32, BASE_DEC, NULL,
  1016. 0x0, NULL, HFILL }},
  1017. { &hf_random_number,
  1018. { "RANDOM-NUMBER", "wassp.random.number", FT_BYTES, BASE_NONE, NULL,
  1019. 0x0, NULL, HFILL }},
  1020. { &hf_standby_timeout,
  1021. { "STANDBY-TIMEOUT", "wassp.standby.timeout", FT_UINT32, BASE_DEC, NULL,
  1022. 0x0, NULL, HFILL }},
  1023. { &hf_ru_challenge_id,
  1024. { "RU-CHALLENGE-ID", "wassp.ru.challenge.id", FT_UINT32, BASE_DEC, NULL,
  1025. 0x0, NULL, HFILL }},
  1026. { &hf_ru_model,
  1027. { "RU-MODEL", "wassp.ru.model", FT_STRING, BASE_NONE, NULL,
  1028. 0x0, NULL, HFILL }},
  1029. { &hf_ru_scan_mode,
  1030. { "RU-SCAN-MODE", "wassp.ru.scan.mode", FT_UINT32, BASE_DEC, NULL,
  1031. 0x0, NULL, HFILL }},
  1032. { &hf_ru_scan_type,
  1033. { "RU-SCAN-TYPE", "wassp.ru.scan.type", FT_UINT32, BASE_DEC, NULL,
  1034. 0x0, NULL, HFILL }},
  1035. { &hf_ru_scan_interval,
  1036. { "RU-SCAN-INTERVAL", "wassp.ru.scan.interval", FT_UINT32, BASE_DEC, NULL,
  1037. 0x0, NULL, HFILL }},
  1038. { &hf_ru_radio_type,
  1039. { "RU-RADIO-TYPE", "wassp.ru.radio.type", FT_UINT32, BASE_DEC, NULL,
  1040. 0x0, NULL, HFILL }},
  1041. { &hf_ru_channel_dwell_time,
  1042. { "RU-CHANNEL-DWELL-TIME", "wassp.ru.channel.dwell.time", FT_UINT32, BASE_DEC, NULL,
  1043. 0x0, NULL, HFILL }},
  1044. { &hf_ru_channel_list,
  1045. { "RU-CHANNEL-LIST", "wassp.ru.channel.list", FT_UINT32, BASE_DEC, NULL,
  1046. 0x0, NULL, HFILL }},
  1047. { &hf_ru_trap,
  1048. { "RU-TRAP", "wassp.ru.trap", FT_STRING, BASE_NONE, NULL,
  1049. 0x0, NULL, HFILL }},
  1050. { &hf_ru_scan_times,
  1051. { "RU-SCAN-TIMES", "wassp.ru.scan.times", FT_UINT32, BASE_DEC, NULL,
  1052. 0x0, NULL, HFILL }},
  1053. { &hf_ru_scan_delay,
  1054. { "RU-SCAN-DELAY", "wassp.ru.scan.delay", FT_UINT32, BASE_DEC, NULL,
  1055. 0x0, NULL, HFILL }},
  1056. { &hf_ru_scan_req_id,
  1057. { "RU-SCAN-REQ-ID", "wassp.ru.scan.req.id", FT_UINT32, BASE_DEC, NULL,
  1058. 0x0, NULL, HFILL }},
  1059. { &hf_static_config,
  1060. { "STATIC-CONFIG", "wassp.static.config", FT_UINT32, BASE_DEC, NULL,
  1061. 0x0, NULL, HFILL }},
  1062. { &hf_local_bridging,
  1063. { "LOCAL-BRIDGING", "wassp.local.bridging", FT_UINT32, BASE_DEC, NULL,
  1064. 0x0, NULL, HFILL }},
  1065. { &hf_static_bp_ipaddr,
  1066. { "STATIC-BP-IPADDR", "wassp.static.bp.ipaddr", FT_IPv4, BASE_NONE, NULL,
  1067. 0x0, NULL, HFILL }},
  1068. { &hf_static_bp_netmask,
  1069. { "STATIC-BP-NETMASK", "wassp.static.bp.netmask", FT_IPv4, BASE_NONE, NULL,
  1070. 0x0, NULL, HFILL }},
  1071. { &hf_static_bp_gateway,
  1072. { "STATIC-BP-GATEWAY", "wassp.static.bp.gateway", FT_IPv4, BASE_NONE, NULL,
  1073. 0x0, NULL, HFILL }},
  1074. { &hf_static_bm_ipaddr,
  1075. { "STATIC-BM-IPADDR", "wassp.static.bm.ipaddr", FT_IPv4, BASE_NONE, NULL,
  1076. 0x0, NULL, HFILL }},
  1077. { &hf_ru_alarm,
  1078. { "RU-ALARM", "wassp.ru.alarm", FT_NONE, BASE_NONE, NULL,
  1079. 0x0, NULL, HFILL }},
  1080. { &hf_bp_request_id,
  1081. { "BP-REQUEST-ID", "wassp.bp.request.id", FT_UINT32, BASE_DEC, NULL,
  1082. 0x0, NULL, HFILL }},
  1083. { &hf_snmp_error_status,
  1084. { "SNMP-ERROR-STATUS", "wassp.snmp.error.status", FT_UINT32, BASE_DEC, NULL,
  1085. 0x0, NULL, HFILL }},
  1086. { &hf_snmp_error_index,
  1087. { "SNMP-ERROR-INDEX", "wassp.snmp.error.index", FT_UINT32, BASE_DEC, NULL,
  1088. 0x0, NULL, HFILL }},
  1089. { &hf_ap_img_to_ram,
  1090. { "AP-IMG-TO-RAM", "wassp.ap.img.to.ram", FT_UINT32, BASE_DEC, NULL,
  1091. 0x0, NULL, HFILL }},
  1092. { &hf_ap_img_role,
  1093. { "AP-IMG-ROLE", "wassp.ap.img.role", FT_UINT32, BASE_DEC, NULL,
  1094. 0x0, NULL, HFILL }},
  1095. { &hf_ap_stats_block,
  1096. { "AP Stats Block", "wassp.ap_stats_block", FT_NONE, BASE_NONE, NULL,
  1097. 0x0, NULL, HFILL }},
  1098. { &hf_block_config,
  1099. { "Config", "wassp.tlv_config", FT_NONE, BASE_NONE, NULL,
  1100. 0x0, NULL, HFILL }},
  1101. { &hf_wassp_vlan_tag,
  1102. { "WASSP-VLAN-TAG", "wassp.vlan.tag", FT_INT32, BASE_DEC, NULL,
  1103. 0x0, NULL, HFILL }},
  1104. { &hf_wassp_tunnel_type,
  1105. { "WASSP-TUNNEL-TYPE", "wassp.tunnel.type", FT_UINT32, BASE_DEC, NULL,
  1106. 0x0, NULL, HFILL }},
  1107. { &hf_ap_dhcp_mode,
  1108. { "AP-DHCP-MODE", "wassp.ap.dhcp.mode", FT_UINT32, BASE_DEC, NULL,
  1109. 0x0, NULL, HFILL }},
  1110. { &hf_ap_ipaddr,
  1111. { "AP-IPADDR", "wassp.ap.ipaddr", FT_IPv4, BASE_NONE, NULL,
  1112. 0x0, NULL, HFILL }},
  1113. { &hf_ap_netmask,
  1114. { "AP-NETMASK", "wassp.ap.netmask", FT_IPv4, BASE_NONE, NULL,
  1115. 0x0, NULL, HFILL }},
  1116. { &hf_ap_gateway,
  1117. { "AP-GATEWAY", "wassp.ap.gateway", FT_IPv4, BASE_NONE, NULL,
  1118. 0x0, NULL, HFILL }},
  1119. { &hf_preauth_resp,
  1120. { "PREAUTH_RESP", "wassp.preauth.resp", FT_INT32, BASE_DEC, NULL,
  1121. 0x0, NULL, HFILL }},
  1122. { &hf_bp_pmk,
  1123. { "BP_PMK", "wassp.bp.pmk", FT_INT32, BASE_DEC, NULL,
  1124. 0x0, NULL, HFILL }},
  1125. { &hf_ac_reg_challenge,
  1126. { "AC_REG_CHALLENGE", "wassp.ac.reg.challenge", FT_INT32, BASE_DEC, NULL,
  1127. 0x0, NULL, HFILL }},
  1128. { &hf_ac_reg_response,
  1129. { "AC_REG_RESPONSE", "wassp.ac.reg.response", FT_INT32, BASE_DEC, NULL,
  1130. 0x0, NULL, HFILL }},
  1131. { &hf_stats,
  1132. { "STATS", "wassp.stats", FT_INT32, BASE_DEC, NULL,
  1133. 0x0, NULL, HFILL }},
  1134. { &hf_certificate,
  1135. { "CERTIFICATE", "wassp.certificate", FT_INT32, BASE_DEC, NULL,
  1136. 0x0, NULL, HFILL }},
  1137. { &hf_radio_id,
  1138. { "RADIO_ID", "wassp.radio.id", FT_INT32, BASE_DEC, NULL,
  1139. 0x0, NULL, HFILL }},
  1140. { &hf_network_id,
  1141. { "NETWORK_ID", "wassp.network.id", FT_INT32, BASE_DEC, NULL,
  1142. 0x0, NULL, HFILL }},
  1143. { &hf_mu_mac,
  1144. { "MU_MAC", "wassp.mu.mac", FT_INT32, BASE_DEC, NULL,
  1145. 0x0, NULL, HFILL }},
  1146. { &hf_time,
  1147. { "TIME", "wassp.time", FT_INT32, BASE_DEC, NULL,
  1148. 0x0, NULL, HFILL }},
  1149. { &hf_num_radios,
  1150. { "NUM_RADIOS", "wassp.num.radios", FT_INT32, BASE_DEC, NULL,
  1151. 0x0, NULL, HFILL }},
  1152. { &hf_radio_info,
  1153. { "RADIO_INFO", "wassp.radio.info", FT_INT32, BASE_DEC, NULL,
  1154. 0x0, NULL, HFILL }},
  1155. { &hf_network_info,
  1156. { "NETWORK_INFO", "wassp.network.info", FT_INT32, BASE_DEC, NULL,
  1157. 0x0, NULL, HFILL }},
  1158. { &hf_vendor_id,
  1159. { "VENDOR_ID", "wassp.vendor.id", FT_INT32, BASE_DEC, NULL,
  1160. 0x0, NULL, HFILL }},
  1161. { &hf_product_id,
  1162. { "PRODUCT_ID", "wassp.product.id", FT_INT32, BASE_DEC, NULL,
  1163. 0x0, NULL, HFILL }},
  1164. { &hf_radio_info_ack,
  1165. { "RADIO_INFO_ACK", "wassp.radio.info.ack", FT_INT32, BASE_DEC, NULL,
  1166. 0x0, NULL, HFILL }},
  1167. { &hf_mu_rf_stats_block,
  1168. { "MU_RF_STATS_BLOCK", "wassp.mu.rf.stats.block", FT_NONE, BASE_NONE, NULL,
  1169. 0x0, NULL, HFILL }},
  1170. { &hf_stats_request_type,
  1171. { "STATS_REQUEST_TYPE", "wassp.stats.request.type", FT_INT32, BASE_DEC, NULL,
  1172. 0x0, NULL, HFILL }},
  1173. { &hf_stats_last,
  1174. { "STATS_LAST", "wassp.stats.last", FT_INT32, BASE_DEC, NULL,
  1175. 0x0, NULL, HFILL }},
  1176. { &hf_mu_pmkid_list,
  1177. { "MU_PMKID_LIST", "wassp.mu.pmkid.list", FT_INT32, BASE_DEC, NULL,
  1178. 0x0, NULL, HFILL }},
  1179. { &hf_mu_pmk_bp,
  1180. { "MU_PMK_BP", "wassp.mu.pmk.bp", FT_INT32, BASE_DEC, NULL,
  1181. 0x0, NULL, HFILL }},
  1182. { &hf_mu_pmkid_bp,
  1183. { "MU_PMKID_BP", "wassp.mu.pmkid.bp", FT_INT32, BASE_DEC, NULL,
  1184. 0x0, NULL, HFILL }},
  1185. { &hf_countdown_time,
  1186. { "COUNTDOWN_TIME", "wassp.countdown.time", FT_INT32, BASE_DEC, NULL,
  1187. 0x0, NULL, HFILL }},
  1188. /* WASSP tunnel subtypes AP stats block */
  1189. { &hf_ap_stats_block_ether,
  1190. { "Ether Stats", "wassp.ap_stats_block.ether", FT_NONE, BASE_NONE, NULL,
  1191. 0x0, NULL, HFILL }},
  1192. { &hf_ap_stats_block_radio_a,
  1193. { "Radio-A Stats", "wassp.ap_stats_block.radioa", FT_NONE, BASE_NONE, NULL,
  1194. 0x0, NULL, HFILL }},
  1195. { &hf_ap_stats_block_radio_b_g,
  1196. { "Radio-B/G Stats", "wassp.ap_stats_block.radiobg", FT_NONE, BASE_NONE, NULL,
  1197. 0x0, NULL, HFILL }},
  1198. { &hf_mu_stats_block,
  1199. { "Mobile User Stats", "wassp.mustats", FT_NONE, BASE_NONE, NULL,
  1200. 0x0, NULL, HFILL }},
  1201. { &hf_mu_stats_block_65,
  1202. { "MU Stats Unknown 65", "wassp.mustats.65", FT_NONE, BASE_NONE, NULL,
  1203. 0x0, NULL, HFILL }},
  1204. { &hf_dot1x_stats_block,
  1205. { "DOT1x_STATS_BLOCK", "wassp.ap_stats_block.dot1x", FT_NONE, BASE_NONE, NULL,
  1206. 0x0, NULL, HFILL }},
  1207. /* WASSP stats */
  1208. { &hf_stats_dot11_ackfailurecount,
  1209. { "DOT11_ACKFailureCount", "wassp.stats.dot11.ackfailurecount", FT_INT32, BASE_DEC, NULL,
  1210. 0x0, NULL, HFILL }},
  1211. { &hf_stats_dot11_fcserrorcount,
  1212. { "DOT11_FCSErrorCount", "wassp.stats.dot11.fcserrorcount", FT_INT32, BASE_DEC, NULL,
  1213. 0x0, NULL, HFILL }},
  1214. { &hf_stats_dot11_failedcount,
  1215. { "DOT11_FailedCount", "wassp.stats.dot11.failedcount", FT_INT32, BASE_DEC, NULL,
  1216. 0x0, NULL, HFILL }},
  1217. { &hf_stats_dot11_frameduplicatecount,
  1218. { "DOT11_FrameDuplicateCount", "wassp.stats.dot11.frameduplicatecount", FT_INT32, BASE_DEC, NULL,
  1219. 0x0, NULL, HFILL }},
  1220. { &hf_stats_dot11_multicastreceivedframecount,
  1221. { "DOT11_MulticastReceivedFrameCount", "wassp.stats.dot11.multicastreceivedframecount", FT_INT32, BASE_DEC, NULL,
  1222. 0x0, NULL, HFILL }},
  1223. { &hf_stats_dot11_multicasttransmittedframecount,
  1224. { "DOT11_MulticastTransmittedFrameCount", "wassp.stats.dot11.multicasttransmittedframecount", FT_INT32, BASE_DEC, NULL,
  1225. 0x0, NULL, HFILL }},
  1226. { &hf_stats_dot11_multipleretrycount,
  1227. { "DOT11_MultipleRetryCount", "wassp.stats.dot11.multipleretrycount", FT_INT32, BASE_DEC, NULL,
  1228. 0x0, NULL, HFILL }},
  1229. { &hf_stats_dot11_rtsfailurecount,
  1230. { "DOT11_RTSFailureCount", "wassp.stats.dot11.rtsfailurecount", FT_INT32, BASE_DEC, NULL,
  1231. 0x0, NULL, HFILL }},
  1232. { &hf_stats_dot11_rtssuccesscount,
  1233. { "DOT11_RTSSuccessCount", "wassp.stats.dot11.rtssuccesscount", FT_INT32, BASE_DEC, NULL,
  1234. 0x0, NULL, HFILL }},
  1235. { &hf_stats_dot11_receivedfragementcount,
  1236. { "DOT11_ReceivedFragementCount", "wassp.stats.dot11.receivedfragementcount", FT_INT32, BASE_DEC, NULL,
  1237. 0x0, NULL, HFILL }},
  1238. { &hf_stats_dot11_retrycount,
  1239. { "DOT11_RetryCount", "wassp.stats.dot11.retrycount", FT_INT32, BASE_DEC, NULL,
  1240. 0x0, NULL, HFILL }},
  1241. { &hf_stats_dot11_transmittedfragmentcount,
  1242. { "DOT11_TransmittedFragmentCount", "wassp.stats.dot11.transmittedfragmentcount", FT_INT32, BASE_DEC, NULL,
  1243. 0x0, NULL, HFILL }},
  1244. { &hf_stats_dot11_transmittedframecount,
  1245. { "DOT11_TransmittedFrameCount", "wassp.stats.dot11.transmittedframecount", FT_INT32, BASE_DEC, NULL,
  1246. 0x0, NULL, HFILL }},
  1247. { &hf_stats_dot11_webundecryptablecount,
  1248. { "DOT11_WEBUndecryptableCount", "wassp.stats.dot11.webundecryptablecount", FT_INT32, BASE_DEC, NULL,
  1249. 0x0, NULL, HFILL }},
  1250. { &hf_stats_dot11_wepexcludedcount,
  1251. { "DOT11_WEPExcludedCount", "wassp.stats.dot11.wepexcludedcount", FT_INT32, BASE_DEC, NULL,
  1252. 0x0, NULL, HFILL }},
  1253. { &hf_stats_dot11_wepicverrorcount,
  1254. { "DOT11_WEPICVErrorCount", "wassp.stats.dot11.wepicverrorcount", FT_INT32, BASE_DEC, NULL,
  1255. 0x0, NULL, HFILL }},
  1256. { &hf_stats_drm_allocfailures,
  1257. { "DRM_AllocFailures", "wassp.stats.drm.allocfailures", FT_INT32, BASE_DEC, NULL,
  1258. 0x0, NULL, HFILL }},
  1259. { &hf_stats_drm_currentchannel,
  1260. { "DRM_CurrentChannel", "wassp.stats.drm.currentchannel", FT_INT32, BASE_DEC, NULL,
  1261. 0x0, NULL, HFILL }},
  1262. { &hf_stats_drm_currentpower,
  1263. { "DRM_CurrentPower", "wassp.stats.drm.currentpower", FT_INT32, BASE_DEC, NULL,
  1264. 0x0, NULL, HFILL }},
  1265. { &hf_stats_drm_datatxfailures,
  1266. { "DRM_DataTxFailures", "wassp.stats.drm.datatxfailures", FT_INT32, BASE_DEC, NULL,
  1267. 0x0, NULL, HFILL }},
  1268. { &hf_stats_drm_devicetype,
  1269. { "DRM_DeviceType", "wassp.stats.drm.devicetype", FT_INT32, BASE_DEC, NULL,
  1270. 0x0, NULL, HFILL }},
  1271. { &hf_stats_drm_indatapackets,
  1272. { "DRM_InDataPackets", "wassp.stats.drm.indatapackets", FT_INT32, BASE_DEC, NULL,
  1273. 0x0, NULL, HFILL }},
  1274. { &hf_stats_drm_inmgmtpackets,
  1275. { "DRM_InMgmtPackets", "wassp.stats.drm.inmgmtpackets", FT_INT32, BASE_DEC, NULL,
  1276. 0x0, NULL, HFILL }},
  1277. { &hf_stats_drm_loadfactor,
  1278. { "DRM_LoadFactor", "wassp.stats.drm.loadfactor", FT_INT32, BASE_DEC, NULL,
  1279. 0x0, NULL, HFILL }},
  1280. { &hf_stats_drm_mgmttxfailures,
  1281. { "DRM_MgmtTxFailures", "wassp.stats.drm.mgmttxfailures", FT_INT32, BASE_DEC, NULL,
  1282. 0x0, NULL, HFILL }},
  1283. { &hf_stats_drm_msgqfailures,
  1284. { "DRM_MsgQFailures", "wassp.stats.drm.msgqfailures", FT_INT32, BASE_DEC, NULL,
  1285. 0x0, NULL, HFILL }},
  1286. { &hf_stats_drm_nodrmcurrentchannel,
  1287. { "DRM_NoDRMCurrentChannel", "wassp.stats.drm.nodrmcurrentchannel", FT_INT32, BASE_DEC, NULL,
  1288. 0x0, NULL, HFILL }},
  1289. { &hf_stats_drm_outdatapackets,
  1290. { "DRM_OutDataPackets", "wassp.stats.drm.outdatapackets", FT_INT32, BASE_DEC, NULL,
  1291. 0x0, NULL, HFILL }},
  1292. { &hf_stats_drm_outmgmtpackets,
  1293. { "DRM_OutMgmtPackets", "wassp.stats.drm.outmgmtpackets", FT_INT32, BASE_DEC, NULL,
  1294. 0x0, NULL, HFILL }},
  1295. { &hf_stats_if_inbcastpackets,
  1296. { "IF_InBcastPackets", "wassp.stats.if.inbcastpackets", FT_INT32, BASE_DEC, NULL,
  1297. 0x0, NULL, HFILL }},
  1298. { &hf_stats_if_indiscards,
  1299. { "IF_InDiscards", "wassp.stats.if.indiscards", FT_INT32, BASE_DEC, NULL,
  1300. 0x0, NULL, HFILL }},
  1301. { &hf_stats_if_inerrors,
  1302. { "IF_InErrors", "wassp.stats.if.inerrors", FT_INT32, BASE_DEC, NULL,
  1303. 0x0, NULL, HFILL }},
  1304. { &hf_stats_if_inmcastpackets,
  1305. { "IF_InMcastPackets", "wassp.stats.if.inmcastpackets", FT_INT32, BASE_DEC, NULL,
  1306. 0x0, NULL, HFILL }},
  1307. { &hf_stats_if_inoctets,
  1308. { "IF_InOctets", "wassp.stats.if.inoctets", FT_INT32, BASE_DEC, NULL,
  1309. 0x0, NULL, HFILL }},
  1310. { &hf_stats_if_inucastpackets,
  1311. { "IF_InUcastPackets", "wassp.stats.if.inucastpackets", FT_INT32, BASE_DEC, NULL,
  1312. 0x0, NULL, HFILL }},
  1313. { &hf_stats_if_mtu,
  1314. { "IF_MTU", "wassp.stats.if.mtu", FT_INT32, BASE_DEC, NULL,
  1315. 0x0, NULL, HFILL }},
  1316. { &hf_stats_if_outbcastpackets,
  1317. { "IF_OutBcastPackets", "wassp.stats.if.outbcastpackets", FT_INT32, BASE_DEC, NULL,
  1318. 0x0, NULL, HFILL }},
  1319. { &hf_stats_if_outdiscards,
  1320. { "IF_OutDiscards", "wassp.stats.if.outdiscards", FT_INT32, BASE_DEC, NULL,
  1321. 0x0, NULL, HFILL }},
  1322. { &hf_stats_if_outerrors,
  1323. { "IF_OutErrors", "wassp.stats.if.outerrors", FT_INT32, BASE_DEC, NULL,
  1324. 0x0, NULL, HFILL }},
  1325. { &hf_stats_if_outoctets,
  1326. { "IF_OutOctets", "wassp.stats.if.outoctets", FT_INT32, BASE_DEC, NULL,
  1327. 0x0, NULL, HFILL }},
  1328. { &hf_stats_if_outucastpackets,
  1329. { "IF_OutUcastPackets", "wassp.stats.if.outucastpackets", FT_INT32, BASE_DEC, NULL,
  1330. 0x0, NULL, HFILL }},
  1331. { &hf_stats_if_outmcastpackets,
  1332. { "IF_OutMCastPackets", "wassp.stats.if.outmcastpackets", FT_INT32, BASE_DEC, NULL,
  1333. 0x0, NULL, HFILL }},
  1334. { &hf_stats_mu_address,
  1335. { "MU_Address", "wassp.stats.mu.address", FT_INT32, BASE_DEC, NULL,
  1336. 0x0, NULL, HFILL }},
  1337. { &hf_stats_mu_associationcount,
  1338. { "MU_AssociationCount", "wassp.stats.mu.associationcount", FT_INT32, BASE_DEC, NULL,
  1339. 0x0, NULL, HFILL }},
  1340. { &hf_stats_mu_authenticationcount,
  1341. { "MU_AuthenticationCount", "wassp.stats.mu.authenticationcount", FT_INT32, BASE_DEC, NULL,
  1342. 0x0, NULL, HFILL }},
  1343. { &hf_stats_mu_deassociationcount,
  1344. { "MU_DeAssociationCount", "wassp.stats.mu.deassociationcount", FT_INT32, BASE_DEC, NULL,
  1345. 0x0, NULL, HFILL }},
  1346. { &hf_stats_mu_deauthenticationcount,
  1347. { "MU_DeAuthenticationCount", "wassp.stats.mu.deauthenticationcount", FT_INT32, BASE_DEC, NULL,
  1348. 0x0, NULL, HFILL }},
  1349. { &hf_stats_mu_ifindex,
  1350. { "MU_IfIndex", "wassp.stats.mu.ifindex", FT_INT32, BASE_DEC, NULL,
  1351. 0x0, NULL, HFILL }},
  1352. { &hf_stats_mu_reassociationcount,
  1353. { "MU_ReAssociationCount", "wassp.stats.mu.reassociationcount", FT_INT32, BASE_DEC, NULL,
  1354. 0x0, NULL, HFILL }},
  1355. { &hf_stats_mu_receivedbytes,
  1356. { "MU_ReceivedBytes", "wassp.stats.mu.receivedbytes", FT_INT32, BASE_DEC, NULL,
  1357. 0x0, NULL, HFILL }},
  1358. { &hf_stats_mu_receivederrors,
  1359. { "MU_ReceivedErrors", "wassp.stats.mu.receivederrors", FT_INT32, BASE_DEC, NULL,
  1360. 0x0, NULL, HFILL }},
  1361. { &hf_stats_mu_receivedframecount,
  1362. { "MU_ReceivedFrameCount", "wassp.stats.mu.receivedframecount", FT_INT32, BASE_DEC, NULL,
  1363. 0x0, NULL, HFILL }},
  1364. { &hf_stats_mu_receivedrssi,
  1365. { "MU_ReceivedRSSI", "wassp.stats.mu.receivedrssi", FT_INT32, BASE_DEC, NULL,
  1366. 0x0, NULL, HFILL }},
  1367. { &hf_stats_mu_receivedrate,
  1368. { "MU_ReceivedRate", "wassp.stats.mu.receivedrate", FT_INT32, BASE_DEC, NULL,
  1369. 0x0, NULL, HFILL }},
  1370. { &hf_stats_mu_transmittedbytes,
  1371. { "MU_TransmittedBytes", "wassp.stats.mu.transmittedbytes", FT_INT32, BASE_DEC, NULL,
  1372. 0x0, NULL, HFILL }},
  1373. { &hf_stats_mu_transmittederrors,
  1374. { "MU_TransmittedErrors", "wassp.stats.mu.transmittederrors", FT_INT32, BASE_DEC, NULL,
  1375. 0x0, NULL, HFILL }},
  1376. { &hf_stats_mu_transmittedframecount,
  1377. { "MU_TransmittedFrameCount", "wassp.stats.mu.transmittedframecount", FT_INT32, BASE_DEC, NULL,
  1378. 0x0, NULL, HFILL }},
  1379. { &hf_stats_mu_transmittedrssi,
  1380. { "MU_TransmittedRSSI", "wassp.stats.mu.transmittedrssi", FT_INT32, BASE_DEC, NULL,
  1381. 0x0, NULL, HFILL }},
  1382. { &hf_stats_mu_transmittedrate,
  1383. { "MU_TransmittedRate", "wassp.stats.mu.transmittedrate", FT_INT32, BASE_DEC, NULL,
  1384. 0x0, NULL, HFILL }},
  1385. { &hf_stats_mu_rf_stats_end,
  1386. { "MU_RF_STATS_END", "wassp.stats.mu.rf.stats.end", FT_INT32, BASE_DEC, NULL,
  1387. 0x0, NULL, HFILL }},
  1388. { &hf_stats_rfc_1213_sysuptime,
  1389. { "RFC_1213_SYSUPTIME", "wassp.stats.rfc.1213.sysuptime", FT_INT32, BASE_DEC, NULL,
  1390. 0x0, NULL, HFILL }},
  1391. { &hf_dot1x_stats_credent,
  1392. { "DOT1x_CREDENT", "wassp.stats.dot1x.credent", FT_INT32, BASE_DEC, NULL,
  1393. 0x0, NULL, HFILL }},
  1394. { &hf_dot1x_stats_end_date,
  1395. { "DOT1x_END_DATE", "wassp.stats.dot1x.enddate", FT_INT32, BASE_DEC, NULL,
  1396. 0x0, NULL, HFILL }},
  1397. { &hf_stats_tlv_max,
  1398. { "TLV_MAX", "wassp.stats.tlvmax", FT_INT32, BASE_DEC, NULL,
  1399. 0x0, NULL, HFILL }},
  1400. /* WASSP tunnel subtypes TLV config */
  1401. { &hf_config_radio,
  1402. { "Config Radio", "wassp.tlv_config.radio", FT_NONE, BASE_NONE, NULL,
  1403. 0x0, NULL, HFILL }},
  1404. { &hf_config_vns,
  1405. { "Config VNS", "wassp.tlv_config.vns", FT_NONE, BASE_NONE, NULL,
  1406. 0x0, NULL, HFILL }},
  1407. /* WASSP config */
  1408. { &hf_config_trace_status_debug,
  1409. { "TRACE_STATUS_DEBUG", "wassp.config.trace.status.debug", FT_INT32, BASE_DEC, NULL,
  1410. 0x0, NULL, HFILL }},
  1411. { &hf_config_trace_status_config,
  1412. { "TRACE_STATUS_CONFIG", "wassp.config.trace.status.config", FT_INT32, BASE_DEC, NULL,
  1413. 0x0, NULL, HFILL }},
  1414. { &hf_config_use_bcast_for_disassc,
  1415. { "USE_BCAST_FOR_DISASSC", "wassp.config.use.bcast.for.disassc", FT_INT32, BASE_DEC, NULL,
  1416. 0x0, NULL, HFILL }},
  1417. { &hf_config_bandwidth_voice_assc,
  1418. { "BANDWIDTH_VOICE_ASSC", "wassp.config.bandwidth.voice.assc", FT_INT32, BASE_DEC, NULL,
  1419. 0x0, NULL, HFILL }},
  1420. { &hf_config_bandwidth_voice_reassc,
  1421. { "BANDWIDTH_VOICE_REASSC", "wassp.config.bandwidth.voice.reassc", FT_INT32, BASE_DEC, NULL,
  1422. 0x0, NULL, HFILL }},
  1423. { &hf_config_bandwidth_video_assc,
  1424. { "BANDWIDTH_VIDEO_ASSC", "wassp.config.bandwidth.video.assc", FT_INT32, BASE_DEC, NULL,
  1425. 0x0, NULL, HFILL }},
  1426. { &hf_config_bandwidth_video_reassc,
  1427. { "BANDWIDTH_VIDEO_REASSC", "wassp.config.bandwidth.video.reassc", FT_INT32, BASE_DEC, NULL,
  1428. 0x0, NULL, HFILL }},
  1429. { &hf_config_bandwidth_video_reserve,
  1430. { "BANDWIDTH_VIDEO_RESERVE", "wassp.config.bandwidth.video.reserve", FT_INT32, BASE_DEC, NULL,
  1431. 0x0, NULL, HFILL }},
  1432. { &hf_config_bandwidth_adm_ctrl_reserve,
  1433. { "BANDWIDTH_ADM_CTRL_RESERVE", "wassp.config.bandwidth.adm.ctrl.reserve", FT_INT32, BASE_DEC, NULL,
  1434. 0x0, NULL, HFILL }},
  1435. { &hf_config_vlan_tag,
  1436. { "VLAN_TAG", "wassp.config.vlan.tag", FT_INT32, BASE_DEC, NULL,
  1437. 0x0, NULL, HFILL }},
  1438. { &hf_config_country_code,
  1439. { "COUNTRY_CODE", "wassp.config.country.code", FT_INT32, BASE_DEC, NULL,
  1440. 0x0, NULL, HFILL }},
  1441. { &hf_config_poll_duration,
  1442. { "POLL_DURATION", "wassp.config.poll.duration", FT_INT32, BASE_DEC, NULL,
  1443. 0x0, NULL, HFILL }},
  1444. { &hf_config_poll_interval,
  1445. { "POLL_INTERVAL", "wassp.config.poll.interval", FT_INT32, BASE_DEC, NULL,
  1446. 0x0, NULL, HFILL }},
  1447. { &hf_config_poll_maintain_client_session,
  1448. { "POLL_MAINTAIN_CLIENT_SESSION", "wassp.config.poll.maintain.client.session", FT_INT32, BASE_DEC, NULL,
  1449. 0x0, NULL, HFILL }},
  1450. { &hf_config_telnet_enable,
  1451. { "TELNET_ENABLE", "wassp.config.telnet.enable", FT_INT32, BASE_DEC, NULL,
  1452. 0x0, NULL, HFILL }},
  1453. { &hf_config_telnet_password,
  1454. { "TELNET_PASSWORD", "wassp.config.telnet.password", FT_STRING, BASE_NONE, NULL,
  1455. 0x0, NULL, HFILL }},
  1456. { &hf_config_telnet_password_entry_mode,
  1457. { "TELNET_PASSWORD_ENTRY_MODE", "wassp.config.telnet.password.entry.mode", FT_INT32, BASE_DEC, NULL,
  1458. 0x0, NULL, HFILL }},
  1459. { &hf_config_outdoor_enable_environment,
  1460. { "OUTDOOR_ENABLE_ENVIRONMENT", "wassp.config.outdoor.enable.environment", FT_INT32, BASE_DEC, NULL,
  1461. 0x0, NULL, HFILL }},
  1462. { &hf_config_slp_retry_count,
  1463. { "SLP_RETRY_COUNT", "wassp.config.slp.retry.count", FT_INT32, BASE_DEC, NULL,
  1464. 0x0, NULL, HFILL }},
  1465. { &hf_config_slp_retry_delay,
  1466. { "SLP_RETRY_DELAY", "wassp.config.slp.retry.delay", FT_INT32, BASE_DEC, NULL,
  1467. 0x0, NULL, HFILL }},
  1468. { &hf_config_dns_retry_count,
  1469. { "DNS_RETRY_COUNT", "wassp.config.dns.retry.count", FT_INT32, BASE_DEC, NULL,
  1470. 0x0, NULL, HFILL }},
  1471. { &hf_config_dns_retry_delay,
  1472. { "DNS_RETRY_DELAY", "wassp.config.dns.retry.delay", FT_INT32, BASE_DEC, NULL,
  1473. 0x0, NULL, HFILL }},
  1474. { &hf_config_mcast_slp_retry_count,
  1475. { "MCAST_SLP_RETRY_COUNT", "wassp.config.mcast.slp.retry.count", FT_INT32, BASE_DEC, NULL,
  1476. 0x0, NULL, HFILL }},
  1477. { &hf_config_mcast_slp_retry_delay,
  1478. { "MCAST_SLP_RETRY_DELAY", "wassp.config.mcast.slp.retry.delay", FT_INT32, BASE_DEC, NULL,
  1479. 0x0, NULL, HFILL }},
  1480. { &hf_config_disc_retry_count,
  1481. { "DISC_RETRY_COUNT", "wassp.config.disc.retry.count", FT_INT32, BASE_DEC, NULL,
  1482. 0x0, NULL, HFILL }},
  1483. { &hf_config_disc_retry_delay,
  1484. { "DISC_RETRY_DELAY", "wassp.config.disc.retry.delay", FT_BYTES, BASE_NONE, NULL,
  1485. 0x0, NULL, HFILL }},
  1486. { &hf_config_logging_alarm_sev,
  1487. { "LOGGING_ALARM_SEV", "wassp.config.logging.alarm.sev", FT_INT32, BASE_DEC, NULL,
  1488. 0x0, NULL, HFILL }},
  1489. { &hf_config_blacklist_blacklist_add,
  1490. { "BLACKLIST_BLACKLIST_ADD", "wassp.config.blacklist.blacklist.add", FT_INT32, BASE_DEC, NULL,
  1491. 0x0, NULL, HFILL }},
  1492. { &hf_config_failover_ac_ip_addr,
  1493. { "FAILOVER_AC_IP_ADDR", "wassp.config.failover.ac.ip.addr", FT_INT32, BASE_DEC, NULL,
  1494. 0x0, NULL, HFILL }},
  1495. { &hf_config_static_ac_ip_addr,
  1496. { "STATIC_AC_IP_ADDR", "wassp.config.static.ac.ip.addr", FT_INT32, BASE_DEC, NULL,
  1497. 0x0, NULL, HFILL }},
  1498. { &hf_config_dhcp_assignment,
  1499. { "DHCP_ASSIGNMENT", "wassp.config.dhcp.assignment", FT_INT32, BASE_DEC, NULL,
  1500. 0x0, NULL, HFILL }},
  1501. { &hf_config_static_ap_ip_addr,
  1502. { "STATIC_AP_IP_ADDR", "wassp.config.static.ap.ip.addr", FT_INT32, BASE_DEC, NULL,
  1503. 0x0, NULL, HFILL }},
  1504. { &hf_config_static_ap_ip_netmask,
  1505. { "STATIC_AP_IP_NETMASK", "wassp.config.static.ap.ip.netmask", FT_INT32, BASE_DEC, NULL,
  1506. 0x0, NULL, HFILL }},
  1507. { &hf_config_static_ap_default_gw,
  1508. { "STATIC_AP_DEFAULT_GW", "wassp.config.static.ap.default.gw", FT_INT32, BASE_DEC, NULL,
  1509. 0x0, NULL, HFILL }},
  1510. { &hf_config_blacklist_del,
  1511. { "BLACKLIST_DEL", "wassp.config.blacklist.del", FT_INT32, BASE_DEC, NULL,
  1512. 0x0, NULL, HFILL }},
  1513. { &hf_config_macaddr_req,
  1514. { "MACADDR_REQ", "wassp.config.macaddr.req", FT_INT32, BASE_DEC, NULL,
  1515. 0x0, NULL, HFILL }},
  1516. { &hf_config_availability_mode,
  1517. { "AVAILABILITY_MODE", "wassp.config.availability.mode", FT_INT32, BASE_DEC, NULL,
  1518. 0x0, NULL, HFILL }},
  1519. /* WASSP config vns */
  1520. { &hf_config_vns_radio_id,
  1521. { "V_RADIO_ID", "wassp.config.vns.radio.id", FT_INT32, BASE_DEC, NULL,
  1522. 0x0, NULL, HFILL }},
  1523. { &hf_config_vns_vns_id,
  1524. { "V_VNS_ID", "wassp.config.vns.vns.id", FT_INT32, BASE_DEC, NULL,
  1525. 0x0, NULL, HFILL }},
  1526. { &hf_config_vns_turbo_voice,
  1527. { "V_TURBO_VOICE", "wassp.config.vns.turbo.voice", FT_INT32, BASE_DEC, NULL,
  1528. 0x0, NULL, HFILL }},
  1529. { &hf_config_vns_prop_ie,
  1530. { "V_PROP_IE", "wassp.config.vns.prop.ie", FT_INT32, BASE_DEC, NULL,
  1531. 0x0, NULL, HFILL }},
  1532. { &hf_config_vns_enable_802_11_h,
  1533. { "V_ENABLE_802_11_H", "wassp.config.vns.enable.802.11.h", FT_INT32, BASE_DEC, NULL,
  1534. 0x0, NULL, HFILL }},
  1535. { &hf_config_vns_power_backoff,
  1536. { "V_POWER_BACKOFF", "wassp.config.vns.power.backoff", FT_INT32, BASE_DEC, NULL,
  1537. 0x0, NULL, HFILL }},
  1538. { &hf_config_vns_bridge_mode,
  1539. { "V_BRIDGE_MODE", "wassp.config.vns.bridge.mode", FT_INT32, BASE_DEC, NULL,
  1540. 0x0, NULL, HFILL }},
  1541. { &hf_config_vns_vlan_tag,
  1542. { "V_VLAN_TAG", "wassp.config.vns.vlan.tag", FT_INT32, BASE_DEC, NULL,
  1543. 0x0, NULL, HFILL }},
  1544. { &hf_config_vns_process_ie_req,
  1545. { "V_PROCESS_IE_REQ", "wassp.config.vns.process.ie.req", FT_INT32, BASE_DEC, NULL,
  1546. 0x0, NULL, HFILL }},
  1547. { &hf_config_vns_enable_u_apsd,
  1548. { "V_ENABLE_U_APSD", "wassp.config.vns.enable.u.apsd", FT_INT32, BASE_DEC, NULL,
  1549. 0x0, NULL, HFILL }},
  1550. { &hf_config_vns_adm_ctrl_voice,
  1551. { "V_ADM_CTRL_VOICE", "wassp.config.vns.adm.ctrl.voice", FT_INT32, BASE_DEC, NULL,
  1552. 0x0, NULL, HFILL }},
  1553. { &hf_config_vns_adm_ctrl_video,
  1554. { "V_ADM_CTRL_VIDEO", "wassp.config.vns.adm.ctrl.video", FT_INT32, BASE_DEC, NULL,
  1555. 0x0, NULL, HFILL }},
  1556. { &hf_config_vns_qos_up_value,
  1557. { "V_QOS_UP_VALUE", "wassp.config.vns.qos.up.value", FT_BYTES, BASE_NONE, NULL,
  1558. 0x0, NULL, HFILL }},
  1559. { &hf_config_vns_priority_override,
  1560. { "V_PRIORITY_OVERRIDE", "wassp.config.vns.priority.override", FT_INT32, BASE_DEC, NULL,
  1561. 0x0, NULL, HFILL }},
  1562. { &hf_config_vns_dscp_override_value,
  1563. { "V_DSCP_OVERRIDE_VALUE", "wassp.config.vns.dscp.override.value", FT_INT32, BASE_DEC, NULL,
  1564. 0x0, NULL, HFILL }},
  1565. { &hf_config_vns_enable_802_11_e,
  1566. { "V_ENABLE_802_11_E", "wassp.config.vns.enable.802.11.e", FT_INT32, BASE_DEC, NULL,
  1567. 0x0, NULL, HFILL }},
  1568. { &hf_config_vns_enable_wmm,
  1569. { "V_ENABLE_WMM", "wassp.config.vns.enable.wmm", FT_INT32, BASE_DEC, NULL,
  1570. 0x0, NULL, HFILL }},
  1571. { &hf_config_vns_legacy_client_priority,
  1572. { "V_LEGACY_CLIENT_PRIORITY", "wassp.config.vns.legacy.client.priority", FT_INT32, BASE_DEC, NULL,
  1573. 0x0, NULL, HFILL }},
  1574. { &hf_config_vns_ssid_id,
  1575. { "V_SSID_ID", "wassp.config.vns.ssid.id", FT_INT32, BASE_DEC, NULL,
  1576. 0x0, NULL, HFILL }},
  1577. { &hf_config_vns_ssid_bcast_string,
  1578. { "V_SSID_BCAST_STRING", "wassp.config.vns.ssid.bcast.string", FT_STRING, BASE_NONE, NULL,
  1579. 0x0, NULL, HFILL }},
  1580. { &hf_config_vns_ssid_suppress,
  1581. { "V_SSID_SUPPRESS", "wassp.config.vns.ssid.suppress", FT_INT32, BASE_DEC, NULL,
  1582. 0x0, NULL, HFILL }},
  1583. { &hf_config_vns_802_1_x_enable,
  1584. { "V_802_1_X_ENABLE", "wassp.config.vns.802.1.x.enable", FT_INT32, BASE_DEC, NULL,
  1585. 0x0, NULL, HFILL }},
  1586. { &hf_config_vns_802_1_x_dyn_rekey,
  1587. { "V_802_1_X_DYN_REKEY", "wassp.config.vns.802.1.x.dyn.rekey", FT_INT32, BASE_DEC, NULL,
  1588. 0x0, NULL, HFILL }},
  1589. { &hf_config_vns_wpa_enable,
  1590. { "V_WPA_ENABLE", "wassp.config.vns.wpa.enable", FT_INT32, BASE_DEC, NULL,
  1591. 0x0, NULL, HFILL }},
  1592. { &hf_config_vns_wpa_v2_enable,
  1593. { "V_WPA_V2_ENABLE", "wassp.config.vns.wpa.v2.enable", FT_INT32, BASE_DEC, NULL,
  1594. 0x0, NULL, HFILL }},
  1595. { &hf_config_vns_wpa_passphrase,
  1596. { "V_WPA_PASSPHRASE", "wassp.config.vns.wpa.passphrase", FT_STRING, BASE_NONE, NULL,
  1597. 0x0, NULL, HFILL }},
  1598. { &hf_config_vns_wpa_cipher_type,
  1599. { "V_WPA_CIPHER_TYPE", "wassp.config.vns.wpa.cipher.type", FT_INT32, BASE_DEC, NULL,
  1600. 0x0, NULL, HFILL }},
  1601. { &hf_config_vns_wpa_v2_cipher_type,
  1602. { "V_WPA_V2_CIPHER_TYPE", "wassp.config.vns.wpa.v2.cipher.type", FT_INT32, BASE_DEC, NULL,
  1603. 0x0, NULL, HFILL }},
  1604. { &hf_config_vns_wep_key_index,
  1605. { "V_WEP_KEY_INDEX", "wassp.config.vns.wep.key.index", FT_INT32, BASE_DEC, NULL,
  1606. 0x0, NULL, HFILL }},
  1607. { &hf_config_vns_wep_default_key_value,
  1608. { "V_WEP_DEFAULT_KEY_VALUE", "wassp.config.vns.wep.default.key.value", FT_INT32, BASE_DEC, NULL,
  1609. 0x0, NULL, HFILL }},
  1610. { &hf_config_vns_channel_report,
  1611. { "V_CHANNEL_REPORT", "wassp.config.vns.channel.report", FT_INT32, BASE_DEC, NULL,
  1612. 0x0, NULL, HFILL }},
  1613. { &hf_config_vns_wds_service,
  1614. { "V_WDS_SERVICE", "wassp.config.vns.wds.service", FT_INT32, BASE_DEC, NULL,
  1615. 0x0, NULL, HFILL }},
  1616. { &hf_config_vns_wds_pref_parent,
  1617. { "V_WDS_PREF_PARENT", "wassp.config.vns.wds.pref.parent", FT_INT32, BASE_DEC, NULL,
  1618. 0x0, NULL, HFILL }},
  1619. { &hf_config_vns_wds_bridge,
  1620. { "V_WDS_BRIDGE", "wassp.config.vns.wds.bridge", FT_INT32, BASE_DEC, NULL,
  1621. 0x0, NULL, HFILL }},
  1622. { &hf_config_vns_okc_enabled,
  1623. { "V_OKC_ENABLED", "wassp.config.vns.okc.enabled", FT_INT32, BASE_DEC, NULL,
  1624. 0x0, NULL, HFILL }},
  1625. { &hf_config_vns_mu_assoc_retries,
  1626. { "V_MU_ASSOC_RETRIES", "wassp.config.vns.mu.assoc.retries", FT_INT32, BASE_DEC, NULL,
  1627. 0x0, NULL, HFILL }},
  1628. { &hf_config_vns_mu_assoc_timeout,
  1629. { "V_MU_ASSOC_TIMEOUT", "wassp.config.vns.mu.assoc.timeout", FT_INT32, BASE_DEC, NULL,
  1630. 0x0, NULL, HFILL }},
  1631. { &hf_config_vns_wds_parent,
  1632. { "V_WDS_PARENT", "wassp.config.vns.wds.parent", FT_INT32, BASE_DEC, NULL,
  1633. 0x0, NULL, HFILL }},
  1634. { &hf_config_vns_wds_back_parent,
  1635. { "V_WDS_BACK_PARENT", "wassp.config.vns.wds.back.parent", FT_INT32, BASE_DEC, NULL,
  1636. 0x0, NULL, HFILL }},
  1637. { &hf_config_vns_wds_name,
  1638. { "V_WDS_NAME", "wassp.config.vns.wds.name", FT_STRING, BASE_NONE, NULL,
  1639. 0x0, NULL, HFILL }},
  1640. /* WASSP config radio */
  1641. { &hf_config_radio_radio_id,
  1642. { "R_RADIO_ID", "wassp.config.radio.radio.id", FT_INT32, BASE_DEC, NULL,
  1643. 0x0, NULL, HFILL }},
  1644. { &hf_config_radio_enable_radio,
  1645. { "R_ENABLE_RADIO", "wassp.config.radio.enable.radio", FT_INT32, BASE_DEC, NULL,
  1646. 0x0, NULL, HFILL }},
  1647. { &hf_config_radio_channel,
  1648. { "R_CHANNEL", "wassp.config.radio.channel", FT_INT32, BASE_DEC, NULL,
  1649. 0x0, NULL, HFILL }},
  1650. { &hf_config_radio_op_rate_set,
  1651. { "R_OP_RATE_SET", "wassp.config.radio.op.rate.set", FT_INT32, BASE_DEC, NULL,
  1652. 0x0, NULL, HFILL }},
  1653. { &hf_config_radio_op_rate_max,
  1654. { "R_OP_RATE_MAX", "wassp.config.radio.op.rate.max", FT_INT32, BASE_DEC, NULL,
  1655. 0x0, NULL, HFILL }},
  1656. { &hf_config_radio_beacon_period,
  1657. { "R_BEACON_PERIOD", "wassp.config.radio.beacon.period", FT_INT32, BASE_DEC, NULL,
  1658. 0x0, NULL, HFILL }},
  1659. { &hf_config_radio_dtim_period,
  1660. { "R_DTIM_PERIOD", "wassp.config.radio.dtim.period", FT_INT32, BASE_DEC, NULL,
  1661. 0x0, NULL, HFILL }},
  1662. { &hf_config_radio_rts_threshold,
  1663. { "R_RTS_THRESHOLD", "wassp.config.radio.rts.threshold", FT_INT32, BASE_DEC, NULL,
  1664. 0x0, NULL, HFILL }},
  1665. { &hf_config_radio_fragment_threshold,
  1666. { "R_FRAGMENT_THRESHOLD", "wassp.config.radio.fragment.threshold", FT_INT32, BASE_DEC, NULL,
  1667. 0x0, NULL, HFILL }},
  1668. { &hf_config_radio_power_level,
  1669. { "R_POWER_LEVEL", "wassp.config.radio.power.level", FT_INT32, BASE_DEC, NULL,
  1670. 0x0, NULL, HFILL }},
  1671. { &hf_config_radio_diversity_rx,
  1672. { "R_DIVERSITY_RX", "wassp.config.radio.diversity.rx", FT_INT32, BASE_DEC, NULL,
  1673. 0x0, NULL, HFILL }},
  1674. { &hf_config_radio_diversity_tx,
  1675. { "R_DIVERSITY_TX", "wassp.config.radio.diversity.tx", FT_INT32, BASE_DEC, NULL,
  1676. 0x0, NULL, HFILL }},
  1677. { &hf_config_radio_short_preamble,
  1678. { "R_SHORT_PREAMBLE", "wassp.config.radio.short.preamble", FT_INT32, BASE_DEC, NULL,
  1679. 0x0, NULL, HFILL }},
  1680. { &hf_config_radio_basic_rate_max,
  1681. { "R_BASIC_RATE_MAX", "wassp.config.radio.basic.rate.max", FT_INT32, BASE_DEC, NULL,
  1682. 0x0, NULL, HFILL }},
  1683. { &hf_config_radio_basic_rate_min,
  1684. { "R_BASIC_RATE_MIN", "wassp.config.radio.basic.rate.min", FT_INT32, BASE_DEC, NULL,
  1685. 0x0, NULL, HFILL }},
  1686. { &hf_config_radio_hw_retries,
  1687. { "R_HW_RETRIES", "wassp.config.radio.hw.retries", FT_STRING, BASE_NONE, NULL,
  1688. 0x0, NULL, HFILL }},
  1689. { &hf_config_radio_tx_power_min,
  1690. { "R_TX_POWER_MIN", "wassp.config.radio.tx.power.min", FT_INT32, BASE_DEC, NULL,
  1691. 0x0, NULL, HFILL }},
  1692. { &hf_config_radio_tx_power_max,
  1693. { "R_TX_POWER_MAX", "wassp.config.radio.tx.power.max", FT_INT32, BASE_DEC, NULL,
  1694. 0x0, NULL, HFILL }},
  1695. { &hf_config_radio_domain_id,
  1696. { "R_DOMAIN_ID", "wassp.config.radio.domain.id", FT_STRING, BASE_NONE, NULL,
  1697. 0x0, NULL, HFILL }},
  1698. { &hf_config_radio_b_enable,
  1699. { "R_B_ENABLE", "wassp.config.radio.b.enable", FT_INT32, BASE_DEC, NULL,
  1700. 0x0, NULL, HFILL }},
  1701. { &hf_config_radio_b_basic_rates,
  1702. { "R_B_BASIC_RATES", "wassp.config.radio.b.basic.rates", FT_INT32, BASE_DEC, NULL,
  1703. 0x0, NULL, HFILL }},
  1704. { &hf_config_radio_g_enable,
  1705. { "R_G_ENABLE", "wassp.config.radio.g.enable", FT_INT32, BASE_DEC, NULL,
  1706. 0x0, NULL, HFILL }},
  1707. { &hf_config_radio_g_protect_mode,
  1708. { "R_G_PROTECT_MODE", "wassp.config.radio.g.protect.mode", FT_INT32, BASE_DEC, NULL,
  1709. 0x0, NULL, HFILL }},
  1710. { &hf_config_radio_g_protect_type,
  1711. { "R_G_PROTECT_TYPE", "wassp.config.radio.g.protect.type", FT_INT32, BASE_DEC, NULL,
  1712. 0x0, NULL, HFILL }},
  1713. { &hf_config_radio_g_protect_rate,
  1714. { "R_G_PROTECT_RATE", "wassp.config.radio.g.protect.rate", FT_INT32, BASE_DEC, NULL,
  1715. 0x0, NULL, HFILL }},
  1716. { &hf_config_radio_g_basic_rate,
  1717. { "R_G_BASIC_RATE", "wassp.config.radio.g.basic.rate", FT_INT32, BASE_DEC, NULL,
  1718. 0x0, NULL, HFILL }},
  1719. { &hf_config_radio_a_support_802_11_j,
  1720. { "R_A_SUPPORT_802_11_J", "wassp.config.radio.a.support.802.11.j", FT_INT32, BASE_DEC, NULL,
  1721. 0x0, NULL, HFILL }},
  1722. { &hf_config_radio_atpc_en_interval,
  1723. { "R_ATPC_EN_INTERVAL", "wassp.config.radio.atpc.en.interval", FT_INT32, BASE_DEC, NULL,
  1724. 0x0, NULL, HFILL }},
  1725. { &hf_config_radio_acs_ch_list,
  1726. { "R_ACS_CH_LIST", "wassp.config.radio.acs.ch.list", FT_BYTES, BASE_NONE, NULL,
  1727. 0x0, NULL, HFILL }},
  1728. { &hf_config_radio_tx_power_adj,
  1729. { "R_TX_POWER_ADJ", "wassp.config.radio.tx.power.adj", FT_INT32, BASE_DEC, NULL,
  1730. 0x0, NULL, HFILL }},
  1731. /* WASSP discover header */
  1732. { &hf_wassp_discover1,
  1733. { "Discover Header1", "wassp.discover1", FT_UINT8, BASE_HEX, NULL,
  1734. 0x0, NULL, HFILL }},
  1735. /* { &hf_wassp_length, */ /* see tunnel header */
  1736. { &hf_wassp_discover2,
  1737. { "Discover Header2", "wassp.discover2", FT_UINT8, BASE_HEX, NULL,
  1738. 0x0, NULL, HFILL }},
  1739. { &hf_wassp_subtype,
  1740. { "Discover Subtype", "wassp.subtype", FT_UINT8, BASE_DEC, NULL,
  1741. 0x0, NULL, HFILL }},
  1742. { &hf_wassp_ether,
  1743. { "Discover Ether", "wassp.ether", FT_ETHER, BASE_NONE, NULL,
  1744. 0x0, NULL, HFILL }},
  1745. { &hf_wassp_discover3,
  1746. { "Discover Header3", "wassp.discover3", FT_UINT8, BASE_HEX, NULL,
  1747. 0x0, NULL, HFILL }},
  1748. };
  1749. static gint *ett[] = {
  1750. &ett_wassp,
  1751. &ett_wassp_tlv_header,
  1752. };
  1753. proto_wassp = proto_register_protocol(PROTO_LONG_NAME, PROTO_SHORT_NAME, "wassp");
  1754. proto_register_field_array(proto_wassp, hf, array_length(hf));
  1755. proto_register_subtree_array(ett, array_length(ett));
  1756. }
  1757. void
  1758. proto_reg_handoff_wassp(void)
  1759. {
  1760. dissector_handle_t wassp_handle;
  1761. wassp_handle = new_create_dissector_handle(dissect_wassp_static, proto_wassp);
  1762. dissector_add_uint("udp.port", PORT_WASSP_DISCOVER, wassp_handle);
  1763. dissector_add_uint("udp.port", PORT_WASSP_TUNNEL, wassp_handle);
  1764. /* dissector_add_uint("udp.port", PORT_WASSP_PEER, wassp_handle); */
  1765. #if 0
  1766. heur_dissector_add("udp", dissect_wassp_heur, proto_wassp);
  1767. #endif
  1768. snmp_handle = find_dissector("snmp");
  1769. ieee80211_handle = find_dissector("wlan");
  1770. }