Revert "TODO epan/dissectors/asn1/kerberos/packet-kerberos-template.c new GSS flags"
[wireshark-sm.git] / epan / dissectors / packet-wassp.c
blob9fee1db49c18b2c5bfde4f312b06b835f64d4ee9
1 /* packet-wassp.c
2 * Routines for the disassembly of the Chantry/Enterasys/ExtremeNetworks AP-Controller
3 * tunneling protocol.
5 * By Zhong Wei Situ <zsitu@extremenetworks.com>
6 * Copyright 2019 Extreme Networks
8 * SPDX-License-Identifier: GPL-2.0-or-later
9 */
12 https://tools.ietf.org/html/draft-singh-capwap-ctp-02
13 looks very similar (but not always identical).
15 AC: Access Controller
16 MU: Mobile Unit (Wireless client)
17 RU: Radio Unit (Access point)
21 #include "config.h"
22 #include <epan/packet.h>
23 #include <epan/reassemble.h>
24 #include <epan/conversation.h>
25 #include <epan/tfs.h>
27 #include <wsutil/array.h>
29 #define PROTO_SHORT_NAME "WASSP"
30 #define PROTO_LONG_NAME "Wireless Access Station Session Protocol"
31 #define LBS_HDR_MAGIC 0x7c83
32 #define MU_NETFLOW_RECORD_SIZE 46
33 #define WASSP_SNMP 161
35 /* TLV structure offsets. */
36 #define TLV_TYPE 0
37 #define TLV_LENGTH 2
38 #define TLV_VALUE 4
40 /* header lengths */
41 #define WASSP_HDR_LEN 8
42 #define RU_HEADER_WITH_MAC_LEN 16
43 #define RU_HEADER_WITHOUT_MAC_LEN 12
44 #define WASSP_MU_HDR_LEN 14
46 /* WASSP header offsets in bytes */
47 #define WASSP_HDR_VERSION 0
48 #define WASSP_HDR_TYPE 1
49 #define WASSP_HDR_SEQ_NUM 2
50 #define WASSP_HDR_FLAGS 3
51 #define WASSP_HDR_SESSIONID 4
52 #define WASSP_HDR_PLENGTH 6
55 /* RU Discover header offsets in bytes */
56 #define RU_HDR_VERSION 0
57 #define RU_HDR_TYPE 1
58 #define RU_HDR_RAD_NUM 2
59 #define RU_HDR_LENGTH 4
60 #define RU_HDR_CHECKSUM 6
61 #define RU_HDR_AC_OP 8
62 #define RU_HDR_MAC 10
63 #define RU_HDR_AC_MODE 10
66 #define RU_HDR_CONTAIN_MAC 1
67 /* MU NetFlow header offsets in bytes */
68 #define MU_NETFLOW_HDR_VERSION 0
69 #define MU_NETFLOW_HDR_LENGTH 2
70 #define MU_NETFLOW_HDR_FLAG 4
71 #define MU_NETFLOW_HDR_UPTIME 6
73 #define MU_NETFLOW_HEADER_TOTAL_LENGTH 10
76 /* WASSP MU header offsets in bytes */
77 #define WASSP_MU_HDR_TYPE 0
78 #define WASSP_MU_HDR_QOS 1
79 #define WASSP_MU_HDR_ACTION_SSID 2
80 #define WASSP_MU_HDR_MAC 4
81 #define WASSP_MU_HDR_RESV_0 10
82 #define WASSP_MU_HDR_RESV_1 12
83 #define WASSP_MU_HDR_WITH_ASSO_STATUS_LEN 15
84 #define WASSP_MU_HDR_WITHOUT_ASSO_STATUS_LEN 14
86 #define RU_WASSP_FLAGS_MORE_FRAGMENTS_FOLLOWING 0x01
87 #define RU_WASSP_FLAGS_NOT_FIRST_FRAGMENT 0x04
88 #define RU_WASSP_FLAGS_USE_FRAGMENTATION 0x08
89 #define RU_WASSP_FLAGS 0x3f
91 #define RU_DISCOVER_OP_MODE 1
92 #define WASSP_MOBILITY 0x10
93 #define WASSP_DATA_FRAGMENT 0x2
95 /* Define WASSP UDP port */
96 #define UDP_PORT_WASSP 13910
97 #define PORT_WASSP_DISCOVER 13907
98 #define PORT_WASSP_RANGE "13907,13910" /* Not IANA registered */
100 #define WASSP_DATA_FRAGMENT_BIT 0x2
104 typedef struct tlv_mac_add
106 uint16_t tlvType ;
107 uint16_t tlvLen;
108 uint8_t tlvMac[6/* MAC_ADDR_SIZE */];
109 } TLV_MAC_ADD;
110 #define TLV_MAC_ADD_SIZE sizeof (TLV_MAC_ADD)
115 typedef struct
117 uint16_t tlvType;
118 uint16_t tlvLen;
119 TLV_MAC_ADD tlvMacAddress;
120 uint32_t radioId;
121 } TLV_RADIO_BLOCK;
124 typedef struct tlvVnsBlock
126 uint16_t tlvType;
127 uint16_t tlvLen;
128 uint32_t radioId;
129 uint32_t bssidId;
130 uint32_t ssidId;
131 } TLV_VNS_BLOCK;
134 typedef struct
136 TLV_MAC_ADD tlvMacAddress;
137 TLV_RADIO_BLOCK tlvRadioB[2];
138 TLV_VNS_BLOCK tlvVnsB[16];
139 } tlvSsiddBssidMap;
144 /* @*@ */
145 typedef struct
147 uint16_t tlvId;
148 char *name;
149 uint16_t type;
150 uint16_t length;
151 #define WASSP_TAB_IDX length
152 uint32_t (*parseFunc)(void);
153 uint32_t (*setFunc)(void);
154 uint32_t offset;
155 uint8_t flags;
156 uint32_t minValue;
157 uint32_t maxValue;
158 uint32_t (*customCheckFunc)(void);
159 } TLV_PARSER_ENTRY;
161 /* @*@ */
162 #define TLV_TYPE_UNKNOWN 0
163 #define TLV_TYPE_STRING 1 //- PW_TYPE_STRING
164 #define TLV_TYPE_INT 2 //- PW_TYPE_INTEGER
165 #define TLV_TYPE_UINT 3 //- PW_TYPE_INTEGER
166 #define TLV_TYPE_BOOL 4 //- PW_TYPE_INTEGER
167 #define TLV_TYPE_OCTETS 5 //- PW_TYPE_OCTETS
168 #define TLV_TYPE_MACADD 6 //- PW_TYPE_MACADD
169 #define TLV_TYPE_BLOCK_TLV 7
170 #define TLV_TYPE_INDEX 8 //- PW_TYPE_INTEGER
171 #define TLV_TYPE_IP_ADDR 9 //- PW_TYPE_INTEGER
173 typedef enum
175 CONFIG_GLOBAL_BLOCK,
176 CONFIG_ERROR_BLOCK,
177 TAB_CONFIG_MODIFIED,
178 RADIO_CONFIG_BLOCK,
179 VNS_CONFIG_BLOCK,
180 MU_RF_STATS_BLOCK,
181 AP_STATS_BLOCK,
182 STATS_MU_BLOCK,
183 TAB_STATS_RADIO,
184 TAB_STATS_ETH,
185 TAB_STATS_WDS,
186 TAB_STATS_DOT1x,
187 TAB_CONFIG_FILTER,
188 TAB_STATS_VNS,
189 TAB_CONFIG_RADIUS_SERVER,
190 TAB_CONFIG_SITE,
191 TAB_CONFIG_POLICY,
192 TAB_CONFIG_COS,
193 TAB_CONFIG_LOC_BASE_LP,
194 TAB_CONFIG_RADIUS,
195 EVENT_BLOCK,
196 TAB_SSS_MU_BLOCK,
197 TAB_EID_MU_BLOCK,
198 BULK_MU_BLOCK,
199 MU_BLOCK,
200 BULK_VNS_BLOCK,
201 VNS_BLOCK,
202 TAB_SIAPP_PMK_BLOCK,
203 TAB_SIAPP_RADIO_CONFIG_BLOCK,
204 TAB_SIAPP_MU_STATS_BLOCK,
205 TAB_SIAPP_THIN_BLOCK,
206 TAB_SIAPP_BLOCK,
207 TAB_ASSOC_SSID_ARRAY,
208 TAB_ASSOC_SSID_BLOCK,
209 TAB_AP_LIST_BLOCK,
210 TAB_AP_LIST_ARRAY,
211 TAB_SCAN_PROFILE_BLOCK,
212 TAB_THREAT_DEF_ARRAY,
213 TAB_THREAT_DEF_BLOCK,
214 TAB_THREAT_PATTERN_ARRAY,
215 TAB_THREAT_PATTERN_BLOCK,
216 TAB_SURVEILLANCE_DATA_ARRAY,
217 TAB_SURVEILLANCE_DATA_BLOCK,
218 TAB_THREAT_DATA_ARRAY,
219 TAB_THREAT_DATA_BLOCK,
220 TAB_THREAT_CLASSIFY_ARRAY,
221 TAB_THREAT_CLASSIFY_BLOCK,
222 TAB_USER_CLASSIFY_ARRAY,
223 TAB_USER_CLASSIFY_BLOCK,
224 TAB_MU_EVENT_ARRAY,
225 TAB_MU_EVENT_BLOCK,
226 TAB_COUNTRY_ARRAY,
227 TAB_COUNTRY_BLOCK,
228 TAB_LOCATOR_LOC_BLOCK,
229 TAB_LOCATOR_LOC_ARRAY,
230 TAB_RSS_DATA_ARRAY,
231 TAB_RSS_DATA_BLOCK,
232 TAB_MCAST_FILTER_BLOCK,
233 TAB_MCAST_FILTER_BLOCK_ENTRY,
234 TAB_MU_SESSION_ARRAY,
235 TAB_MU_SESSION_BLOCK,
236 TAB_DETECTED_ROGUE_ARRAY,
237 TAB_DETECTED_ROGUE_BLOCK,
238 TAB_FILTER_RULES_EXT_BLOCK,
239 TAB_APP_POLICY_FIXED_BLOCK,
240 TAB_V_FILTER_RULES_EXT_BLOCK,
241 TAB_V_SITE_FILTER_RULES_EXT_BLOCK,
242 TAB_APP_POLICY_ENTRY_BLOCK,
243 TAB_11U_ANQP_BLOCK,
244 TAB_HS2_BLOCK,
245 TAB_RU_ACK_RADIO_CONFIG,
246 TAB_MU_APPL_STATS_BLOCK,
247 TAB_EXTAPP_CONF_BLOCK,
248 TAB_V_CP_CONFIG_BLOCK,
249 TAB_TOPOLOGY_ARRAY_BLOCK,
250 TAB_TOPOLOGY_STRUCT_BLOCK,
251 TAB_FILTER_CONFIG_STRUCT_BLOCK,
252 TAB_S_TOPOLOGY_ARRAY_BLOCK,
253 TAB_S_TOPOLOGY_STRUCT_BLOCK,
254 TAB_S_TOPO_MCAST_FILTER_CONFIG_BLOCK,
255 TAB_S_TOPO_MCAST_FILTER_RULES_EXT_BLOCK,
256 TAB_NAC_SERVER_CONFIG_ARRAY,
257 TAB_NAC_SERVER_CONFIG_BLOCK,
258 TAB_NAC_WEB_AUTH_USER_GROUP_ARRAY,
259 TAB_NAC_WEB_AUTH_USER_GROUP_BLOCK,
261 TAB_MAX
262 } WASSP_SUBTLV_TAB_e;
265 /* Wassp RU Message/Header Types */
266 typedef enum
268 WASSP_RU_UNUSED_0 = 0,
269 WASSP_RU_Discov, // 1
270 WASSP_RU_Register_Req, // 2
271 WASSP_RU_Register_Rsp, // 3
272 WASSP_RU_Authentication_Req, // 4
273 WASSP_RU_Authentication_Rsp, // 5
274 WASSP_RU_SW_Version_Validate_Req, // 6
275 WASSP_RU_SW_Version_Validate_Rsp, // 7
276 WASSP_RU_Config_Req, // 8
277 WASSP_RU_Config_Rsp, // 9
278 WASSP_RU_Ack, // 10
279 WASSP_RU_Config_Status_Notify, // 11
280 WASSP_RU_Set_State_Req, // 12
281 WASSP_RU_Set_State_Rsp, // 13
282 WASSP_RU_Stats_Notify, // 14
283 WASSP_Data, // 15
284 WASSP_RU_Poll, // 16
285 WASSP_RU_SNMP_Req, // 17
286 WASSP_RU_SNMP_Rsp, // 18
287 WASSP_BP_Trap_Notify, // 19
288 WASSP_BP_Scan_Req, // 20
289 WASSP_RFM_Notify, // 21
290 WASSP_RU_SNMP_Alarm_Notify, // 22
291 WASSP_RU_SNMP_Set_Alarm_Clear, // 23
292 WASSP_RU_SNMP_Set_Log_Status, // 24
293 WASSP_RU_SNMP_Get_Log_Req, // 25
294 WASSP_RU_SNMP_Get_Log_Resp, // 26
295 WASSP_SEC_Update_Notify, // 27
296 WASSP_RU_STATS_Req, // 28
297 WASSP_RU_STATS_Rsp, // 29
298 WASSP_RU_UNUSED_30, // 30
299 WASSP_RU_UNUSED_31, // 31
300 WASSP_RU_Get_Req, // 32
301 WASSP_RU_Get_Rsp, // 33
302 WASSP_RU_Alarm_Notify, // 34
303 WASSP_RU_Set_Alarm_Clear, // 35
304 WASSP_RU_Get_Log_Req, // 36
305 WASSP_RU_Get_Log_Rsp, // 37
306 WASSP_RU_UNUSED_38, // 38
307 WASSP_RU_UNUSED_39, // 39
308 WASSP_P_PEER_DOWN_NOTIFY, // 40
309 WASSP_P_LINK_STATE_CHANGE_REQ, // 41
310 WASSP_P_LINK_STATE_CHANGE_RSP, // 42
311 WASSP_RU_AC_Poll, // 43
312 WASSP_RU_GetIP_Req, // 44
313 WASSP_RU_GetIP_Rsp, // 45
314 WASSP_RU_LAMG_Update_Req, // 46
315 WASSP_RU_LAMG_Update_Rsp, // 47
316 WASSP_RU_Event_Req, // 48
317 WASSP_RU_Event_Rsp, // 49
318 WASSP_RU_BULK_MU_UPDATE_REQ, // 50
319 WASSP_RU_BULK_MU_UPDATE_RSP, // 51
320 WASSP_ROAMED_MU_FILTER_STATS_REQ, // 52
321 WASSP_ROAMED_MU_FILTER_STATS_RESP, // 53
322 WASSP_RU_UNUSED_54, // 54
323 WASSP_LBS_TAG_REPORT, // 55
324 WASSP_RU_AC_Event_Req, // 56
325 WASSP_RU_AC_Event_Rsp, // 57
326 WASSP_RU_Event_Notify, // 58
327 WASSP_RU_AC_EVENT, // 59
328 WASSP_WIDS_WIPS_Config_Req, // 60
329 WASSP_WIDS_WIPS_Config_Rsp, // 61
330 WASSP_Scan_Data_Notify, // 62
331 WASSP_Scan_Data_Notify_Ack, // 63
332 WASSP_Loc_Data_Notify, // 64
333 WASSP_Loc_Data_Notify_Ack, // 65
334 WASSP_RU_SW_Version_Validate_Ack, // 66
335 WASSP_NEIGHBOUR_STATS_Rsp, // 67
336 WASSP_APPL_STATS_RESP, // 68
337 WASSP_RU_Capture_Req, // 69
338 WASSP_RU_Capture_Rsp, // 70
339 /* AC/AC tunneling */
340 WASSP_AC_Register_Req = 101, // 101
341 WASSP_AC_Register_Rsp, // 102
342 WASSP_AC_Deregister_Req, // 103
343 WASSP_AC_Deregister_Rsp, // 104
345 WASSP_P_MAX
347 } wassp_ru_msg_t;
353 /* Value string object enumerates wassp header type field */
354 static const value_string wassp_header_types[] =
356 { WASSP_RU_UNUSED_0, "WASSP Reserved 0"},
357 { WASSP_RU_Discov, "WASSP RU Discover"},
358 { WASSP_RU_Register_Req, "RU Registration Request"},
359 { WASSP_RU_Register_Rsp, "RU Registration Response"},
360 { WASSP_RU_Authentication_Req, "RU Authentication Request"},
361 { WASSP_RU_Authentication_Rsp, "RU Authentication Response"},
362 { WASSP_RU_SW_Version_Validate_Req, "RU Software Version Report"},
363 { WASSP_RU_SW_Version_Validate_Rsp, "RU Software Version Command"},
364 { WASSP_RU_Config_Req, "RU Configuration Request"},
365 { WASSP_RU_Config_Rsp, "RU Configuration Response"},
366 { WASSP_RU_Ack, "RU Acknowledge"},
367 { WASSP_RU_Config_Status_Notify, "RU Configuration Status Notify"},
368 { WASSP_RU_Set_State_Req, "RU Set State Request"},
369 { WASSP_RU_Set_State_Rsp, "RU Set State Response"},
370 { WASSP_RU_Stats_Notify, "RU Statistics Notify"},
371 { WASSP_Data, "WASSP Data"},
372 { WASSP_RU_Poll, "RU Poll"},
373 { WASSP_RU_SNMP_Req, "SNMP Request"},
374 { WASSP_RU_SNMP_Rsp, "SNMP Response"},
375 { WASSP_BP_Trap_Notify, "BP Trap Notify"},
376 { WASSP_BP_Scan_Req, "BP Trap Notify"},
377 { WASSP_RFM_Notify, "RFM Notify"},
378 { WASSP_RU_SNMP_Alarm_Notify, "RU SNMP Alarm Notify"},
379 { WASSP_RU_SNMP_Set_Alarm_Clear, "RU SNMP Set Alarm"},
380 { WASSP_RU_SNMP_Set_Log_Status, "RU SNMP Set Log Status"},
381 { WASSP_RU_SNMP_Get_Log_Req, "RU SNMP Get Log Request"},
382 { WASSP_RU_SNMP_Get_Log_Resp, "RU SNMP Get Log Response"},
383 { WASSP_SEC_Update_Notify, "SEC Update Notify"},
384 { WASSP_RU_STATS_Req, "RU Statistics Request"},
385 { WASSP_RU_STATS_Rsp, "RU Statistics Response"},
386 { WASSP_RU_UNUSED_30, "WASSP MU Statistics Request" },
387 { WASSP_RU_UNUSED_31, "WASSP MU Statistics Response" },
388 { WASSP_RU_Get_Req, "Dot1x Get Request"},
389 { WASSP_RU_Get_Rsp, "Dot1x Get Response"},
390 { WASSP_RU_Alarm_Notify, "RU Alarm Notify"},
391 { WASSP_RU_Set_Alarm_Clear, "RU Set Alarm Clear"},
392 { WASSP_RU_Get_Log_Req, "RU Get Log Request"},
393 { WASSP_RU_Get_Log_Rsp, "RU Get Log Response"},
394 { WASSP_RU_UNUSED_38, "WASSP UNUSED 38"},
395 { WASSP_RU_UNUSED_39, "WASSP UNUSED 39"},
396 { WASSP_P_PEER_DOWN_NOTIFY, "Availability Peer Controller down Notify"},
397 { WASSP_P_LINK_STATE_CHANGE_REQ, "Availability Peer Controller Link State Change Request"},
398 { WASSP_P_LINK_STATE_CHANGE_RSP, "Availability Peer Controller Link State Change Response"},
399 { WASSP_RU_AC_Poll, "RU Poll Controller"},
400 { WASSP_RU_GetIP_Req, "RU Get IP Request"},
401 { WASSP_RU_GetIP_Rsp, "RU Get IP Response"},
402 { WASSP_RU_LAMG_Update_Req, "WASSP reserved"},
403 { WASSP_RU_LAMG_Update_Rsp, "WASSP reserved"},
404 { WASSP_RU_Event_Req, "RU Event Request"},
405 { WASSP_RU_Event_Rsp, "RU Event Response"},
406 { WASSP_RU_BULK_MU_UPDATE_REQ, "RU Bulk MUs Update Request"},
407 { WASSP_RU_BULK_MU_UPDATE_RSP, "RU Bulk MUs Update Response"},
408 { WASSP_ROAMED_MU_FILTER_STATS_REQ, "Roamed MU Filter Statistics Request"},
409 { WASSP_ROAMED_MU_FILTER_STATS_RESP, "Roamed MU Filter Statistics Response"},
410 { WASSP_RU_UNUSED_54, "WASSP reserved"},
411 { WASSP_LBS_TAG_REPORT, "Location Base Service Tag Report"},
412 { WASSP_RU_AC_Event_Req, "RU Alarm Clear Event Request"},
413 { WASSP_RU_AC_Event_Rsp, "RU Alarm Clear Event Response"},
414 { WASSP_RU_Event_Notify, "RU Event Notify"},
415 { WASSP_RU_AC_EVENT, "RU Alarm Clear Event"},
416 { WASSP_WIDS_WIPS_Config_Req, "WIDS WIPS Configuration Request"},
417 { WASSP_WIDS_WIPS_Config_Rsp, "WIDS WIPS Configuration Response"},
418 { WASSP_Scan_Data_Notify, "Scan Data Notify"},
419 { WASSP_Scan_Data_Notify_Ack, "Scan Data Notify Acknowledge"},
420 { WASSP_Loc_Data_Notify, "Location Data Notify"},
421 { WASSP_Loc_Data_Notify_Ack, "Location Data Notify Acknowledge"},
422 { WASSP_RU_SW_Version_Validate_Ack, "RU Software Version Validate Acknowledge"},
423 { WASSP_NEIGHBOUR_STATS_Rsp, "Neighbor Statistics Response"},
424 { WASSP_APPL_STATS_RESP, "Application Statistics Response"},
425 { WASSP_RU_Capture_Req, "RU Capture Request"},
426 { WASSP_RU_Capture_Rsp, "RU Capture Response"},
427 /* AC/AC tunneling */
428 { WASSP_AC_Register_Req, "Tunnel Register Request"},
429 { WASSP_AC_Register_Rsp, "Tunnel Register Response"},
430 { WASSP_AC_Deregister_Req, "Tunnel Deregister Request"},
431 { WASSP_AC_Deregister_Rsp, "Tunnel deregister Response"},
432 { 0, NULL }
437 /* Wassp MU Header Types */
438 typedef enum
440 WASSP_MU_UNUSED_0 = 0,
441 WASSP_MU_Associate_Req, // 1
442 WASSP_MU_Associate_Rsp, // 2
443 WASSP_MU_Data, // 3
444 WASSP_MU_Disconnect_Req, // 4
445 WASSP_MU_Disconnect_Rsp, // 5
446 WASSP_MU_Roam_Notify, // 6
447 WASSP_MU_Disconnect_Notify, // 7
448 WASSP_MU_INVALID_PMK_REQ, // 8
449 WASSP_MU_Update_Req, // 9
450 WASSP_MU_Update_Rsp, // 10
451 WASSP_MU_MIRRORN, // 11
452 WASSP_MU_NETFLOW, // 12
453 WASSP_MU_Radius_Update, // 13
454 WASSP_AP2AC_MU_Inform_Req, // 14
455 WASSP_AP2AC_MU_Inform_Rsp, // 15
456 WASSP_MU_Eap_Last, // 16
457 WASSP_MU_PMIRROR, // 17
458 WASSP_MU_UNUSED_18, // 18
459 WASSP_MU_UNUSED_19, // 19
460 WASSP_MU_UNUSED_20, // 20
461 WASSP_MU_UNUSED_21, // 21
462 WASSP_MU_UNUSED_22, // 22
463 WASSP_MU_UNUSED_23, // 23
464 WASSP_MU_UNUSED_24, // 24
465 WASSP_MU_UNUSED_25, // 25
466 WASSP_MU_UNUSED_26, // 26
467 WASSP_MU_UNUSED_27, // 27
468 WASSP_MU_UNUSED_28, // 28
469 WASSP_MU_UNUSED_29, // 29
470 WASSP_MU_STATS_Req, // 30
471 WASSP_MU_STATS_Rsp, // 31
472 WASSP_MU_UNUSED_32, // 32
473 WASSP_MU_UNUSED_33, // 33
474 WASSP_MU_UNUSED_34, // 34
475 WASSP_MU_UNUSED_35, // 35
476 WASSP_MU_UNUSED_36, // 36
477 WASSP_MU_UNUSED_37, // 37
478 WASSP_MU_BULK_Associate_Req, // 38
479 WASSP_MU_BULK_Associate_Rsp // 39
482 } wassp_mu_msg_t;
484 /* Value string object enumerates wassp mu header type field */
485 static const value_string wassp_mu_header_types[] =
487 { WASSP_MU_UNUSED_0, "MU Unused 0"},
488 { WASSP_MU_Associate_Req, "MU Association Request"},
489 { WASSP_MU_Associate_Rsp, "MU Association Response"},
490 { WASSP_MU_Data, "MU Data"},
491 { WASSP_MU_Disconnect_Req, "MU Disconnect Request"},
492 { WASSP_MU_Disconnect_Rsp, "MU Disconnect Response"},
493 { WASSP_MU_Roam_Notify, "MU Roam Notify"},
494 { WASSP_MU_Disconnect_Notify, "MU Disconnect Notify"},
495 { WASSP_MU_INVALID_PMK_REQ, "MU Invalid PMK Request"},
496 { WASSP_MU_Update_Req, "MU Update Request"},
497 { WASSP_MU_Update_Rsp, "MU Update Response"},
498 { WASSP_MU_MIRRORN, "MU Mirror N"},
499 { WASSP_MU_NETFLOW, "MU Netflow"},
500 { WASSP_MU_Radius_Update, "MU Radius Update"},
501 { WASSP_AP2AC_MU_Inform_Req, "AccessPoint To Controller MU Info Request"},
502 { WASSP_AP2AC_MU_Inform_Rsp, "AccessPoint To Controller MU Info Response"},
503 { WASSP_MU_Eap_Last, "MU Extensible Authentication Protocol Last"},
504 { WASSP_MU_PMIRROR, "MU P Mirror"},
505 { WASSP_MU_UNUSED_18, "MU Unused 18"},
506 { WASSP_MU_UNUSED_19, "MU Unused 19"},
507 { WASSP_MU_UNUSED_20, "MU Unused 20"},
508 { WASSP_MU_UNUSED_21, "MU Unused 21"},
509 { WASSP_MU_UNUSED_22, "MU Unused 22"},
510 { WASSP_MU_UNUSED_23, "MU Unused 23"},
511 { WASSP_MU_UNUSED_24, "MU Unused 24"},
512 { WASSP_MU_UNUSED_25, "MU Unused 25"},
513 { WASSP_MU_UNUSED_26, "MU Unused 26"},
514 { WASSP_MU_UNUSED_27, "MU Unused 27"},
515 { WASSP_MU_UNUSED_28, "MU Unused 28"},
516 { WASSP_MU_UNUSED_29, "MU Unused 29"},
517 { WASSP_MU_STATS_Req, "MU Statistics Request"},
518 { WASSP_MU_STATS_Rsp, "MU Statistics Response"},
519 { WASSP_MU_UNUSED_32, "MU Unused 32"},
520 { WASSP_MU_UNUSED_33, "MU Unused 33"},
521 { WASSP_MU_UNUSED_34, "MU Unused 34"},
522 { WASSP_MU_UNUSED_35, "MU Unused 35"},
523 { WASSP_MU_UNUSED_36, "MU Unused 36"},
524 { WASSP_MU_UNUSED_37, "MU Unused 37"},
525 { WASSP_MU_BULK_Associate_Req, "MU Bulk Associate Request"},
526 { WASSP_MU_BULK_Associate_Rsp, "MU Bulk Associate Response"},
527 { 0, NULL }
536 /*****************************************************
537 * Main TLVs
538 ****************************************************/
540 /* TLV Header Types */
541 typedef enum
543 EID_UNUSED_0 = 0, // 0
544 EID_STATUS, // 1
545 EID_RU_SW_VERSION, // 2
546 EID_RU_SERIAL_NUMBER, // 3
547 EID_RU_REG_CHALLENGE, // 4
548 EID_RU_REG_RESPONSE, // 5
549 EID_AC_IPADDR, // 6
550 EID_RU_VNSID, // 7
551 EID_TFTP_SERVER, // 8
552 EID_IMAGE_PATH, // 9
553 EID_CONFIG, // 10
554 EID_RU_STATE, // 11
555 EID_SESSION_KEY, // 12
556 EID_RU_PROTOCOL, // 13
557 EID_RANDOM_NUMBER, // 14
558 EID_STANDBY_TIMEOUT, // 15
559 EID_RU_CHALLENGE_ID, // 16
560 EID_RU_MODEL, // 17
561 EID_RU_SCAN_MODE, // 18
562 EID_RU_SCAN_TYPE, // 19
563 EID_RU_SCAN_INTERVAL, // 20
564 EID_RU_RADIO_TYPE, // 21
565 EID_RU_CHANNEL_DWELL_TIME, // 22
566 EID_RU_CHANNEL_LIST, // 23
567 EID_RU_TRAP, // 24
568 EID_RU_SCAN_TIMES, // 25
569 EID_RU_SCAN_DELAY, // 26
570 EID_RU_SCAN_REQ_ID, // 27
571 EID_STATIC_CONFIG, // 28
572 EID_LOCAL_BRIDGING, // 29
573 EID_STATIC_BP_IPADDR, // 30
574 EID_STATIC_BP_NETMASK, // 31
575 EID_STATIC_BP_GATEWAY, // 32
576 EID_STATIC_BM_IPADDR, // 33
577 EID_BP_BPSSID, // 34
578 EID_BP_WIRED_MACADDR, // 35
579 EID_RU_CAPABILITY, // 36
580 EID_RU_SSID_NAME, // 37
581 EID_ALARM, // 38
582 EID_RU_PREAUTH, // 39
583 EID_RU_PMK, // 40
584 EID_AC_REG_CHALLENGE, // 41
585 EID_AC_REG_RESPONSE, // 42
586 EID_STATS, // 43
587 EID_CERTIFICATE, // 44
588 EID_RADIO_ID, // 45
589 EID_REQ_ID, // 46
590 EID_NETWORK_ID, // 47
591 EID_MU_MAC, // 48
592 EID_TIME, // 49
593 EID_NUM_RADIOS, // 50
594 EID_RADIO_INFO, // 51
595 EID_NETWORK_INFO, // 52
596 EID_VENDOR_ID, // 53
597 EID_PRODUCT_ID, // 54
598 EID_RADIO_INFO_ACK, // 55
599 EID_SECURE_TUNNEL, // 56
600 EID_MU_TOPOLOGY_ID, // 57
601 EID_SSID, // 58
602 EID_EVENT_BLOCK, // 59
603 EID_SNMP_ERROR_STATUS, // 60
604 EID_SNMP_ERROR_INDEX, // 61
605 EID_RU_REAUTH_TIMER, // 62
606 EID_AP_IMG_TO_RAM, // 63
607 EID_AP_IMG_ROLE, // 64
608 EID_AP_STATS_BLOCK, // 65
609 EID_MU_RF_STATS_BLOCK, // 66
610 EID_STATS_REQUEST_TYPE, // 67
611 EID_STATS_LAST, // 68
612 EID_TLV_CONFIG, // 69
613 EID_CONFIG_ERROR_BLOCK, // 70
614 EID_CONFIG_MODIFIED_BLOCK, // 71
615 EID_MU_PMKID_LIST, // 72
616 EID_MU_PMK_BP, // 73
617 EID_MU_PMKID_BP, // 74
618 EID_COUNTDOWN_TIME, // 75
619 EID_WASSP_VLAN_TAG, // 76
620 EID_SSID_ID, // 77
621 EID_BULK_MU_BLOCK, // 78
622 EID_MU_BLOCK, // 79
623 EID_PORT_OPEN_FLAG, // 80
624 EID_WASSP_TUNNEL_TYPE, // 81
625 EID_LOG_TYPE, // 82
626 EID_LOG_FILE, // 83
627 EID_ALARM_SEVERITY, // 84
628 EID_ALARM_DESCRIPTION, // 85
629 EID_BULK_VNS_BLOCK, // 86
630 EID_VNS_BLOCK, // 87
631 EID_AP_DHCP_MODE, // 88
632 EID_AP_IPADDR, // 89
633 EID_AP_NETMASK, // 90
634 EID_AP_GATEWAY, // 91
635 EID_BSSID2IP_BLOCK, // 92
636 EID_RU_BACKUP_VERSION, // 93
637 EID_AC_SW_VERSION, // 94
638 EID_MCAST_LAMG_LIST, // 95
639 EID_FILTER_NAME, // 96
640 EID_FILTER_RULES, // 97
641 EID_AUTH_STATE, // 98
642 EID_MU_DISC_AFTER_AUTH, // 99
643 EID_MU_MAC_LIST, // 100
644 EID_TRANS_ID, // 101
645 EID_TIMEZONE_OFFSET, // 102
646 EID_SENSOR_FORCE_DOWNLOAD, // 103
647 EID_SENSOR_IMG_VERSION, // 104
648 EID_BRIDGE_MODE, // 105
649 EID_MU_VLAN_TAG, // 106
650 EID_RATECTRL_CIR_UL, // 107
651 EID_RATECTRL_CIR_DL, // 108
652 EID_RATECTRL_CBS_UL, // 109
653 EID_RATECTRL_CBS_DL, // 110
654 EID_RATECTRL_NAME_UL, // 111
655 EID_RATECTRL_NAME_DL, // 112
656 EID_POLICY_NAME, // 113
657 EID_SIAPP_PMK_BLOCK, // 114
658 EID_SIAPP_PMKID, // 115
659 EID_SIAPP_PMK_REAUTH, // 116
660 EID_SIAPP_PMK_LIFETIME, // 117
661 EID_SIAPP_PMKID_FLAG, // 118
662 EID_SIAPP_MU_PMK, // 119
663 EID_SIAPP_AP_NAME, // 120
664 EID_SIAPP_RADIO_CONFIG_BLOCK, // 121
665 EID_SIAPP_CLUSTER_ACS_REQ, // 122
666 EID_SIAPP_SIAPP_MU_STATS_BLOCK, // 123
667 EID_SIAPP_PACKET_RETRIES, // 124
668 EID_SIAPP_ASSOC_IN_WLAN, // 125
669 EID_SIAPP_ASSOC_IN_CLUSTER, // 126
670 EID_SIAPP_REASSOC_IN_CLUSTER, // 127
671 EID_SIAPP_THIN_BLOCK, // 128
672 EID_SIAPP_NEWAP_BSSID, // 129
673 EID_SIAPP_OLDAP_BSSID, // 130
674 EID_SIAPP_RAD_CACS_REQ, // 131
675 EID_SIAPP_RADIOBLOCK, // 132
676 EID_SIAPP_CLIENT_COUNT, // 133
677 EID_SIAPP_BLOCK, // 134
678 EID_SIAPP_MU_TransmittedFrameCount, // 135
679 EID_SIAPP_MU_ReceivedFrameCount, // 136
680 EID_SIAPP_MU_TransmittedBytes, // 137
681 EID_SIAPP_MU_ReceivedBytes, // 138
682 EID_SIAPP_MU_UL_DroppedRateControlPackets, // 139
683 EID_SIAPP_MU_DL_DroppedRateControlPackets, // 140
684 EID_SIAPP_MU_DL_DroppedBufferFullPackets, // 141
685 EID_SIAPP_MU_DL_LostRetriesPackets, // 142
686 EID_SIAPP_MU_UL_DroppedRateControlBytes, // 143
687 EID_SIAPP_MU_DL_DroppedRateControlBytes, // 144
688 EID_SIAPP_MU_DL_DroppedBufferFullBytes, // 145
689 EID_SIAPP_MU_DL_LostRetriesBytes, // 146
690 EID_SIAPP_BP_BSSID, // 147
691 EID_SIAPP_RADIO_ID, // 148
692 EID_SIAPP_MACADDR, // 149
693 EID_SIAPP_PREAUTH_REQ, // 150
694 EID_SIAPP_USER_IDENTITY, // 151
695 EID_SIAPP_LOADBAL_BLOCK, // 152
696 EID_SIAPP_LOADBAL_PKT_TYPE, // 153
697 EID_SIAPP_LOADBAL_LOADGROUP_ID, // 154
698 EID_SIAPP_LOADBAL_LOAD_VALUE, // 155
699 EID_SIAPP_AC_MGMT_MAC, // 156
700 EID_SIAPP_FILTER_COS, // 157
701 EID_COS, // 158
702 EID_RATE_LIMIT_RESOURCE_TBL, // 159
703 EID_UCAST_FILTER_DISABLE, // 160
704 EID_MU_INFORM_REASON, // 161
705 EID_MU_FILTER_POLICY_NAME, // 162
706 EID_MU_TOPOLOGY_POLICY_NAME, // 163
707 EID_MU_COS_POLICY_NAME, // 164
708 EID_MU_FILTER_KEY, // 165
709 EID_MU_TOPOLOGY_KEY, // 166
710 EID_MU_COS_KEY, // 167
711 EID_MU_SESSION_TIMEOUT, // 168
712 EID_MU_ACCOUNTING_CLASS, // 169
713 EID_MU_LOGIN_LAT_PORT, // 170
714 EID_MU_IDLE_TIMEOUT, // 171
715 EID_MU_ACCT_INTERIM_INTERVAL, // 172
716 EID_MU_IP_ADDR, // 173
717 EID_MU_TERMINATE_ACTION, // 174
718 EID_SITE_NAME, // 175
719 EID_PEER_SITE_IP, // 176
720 EID_INTERFERENCE_EVENTS_ENABLE, // 177
721 EID_EVENT_TYPE, // 178
722 EID_EVENT_CHANNEL, // 179
723 EID_EVENT_VALUE, // 180
724 EID_SSS_MU_BLOCK, // 181
725 EID_SSS_MU_ASSOC_TIME, // 182
726 EID_SSS_TS64_MU_UPDATE, // 183
727 EID_SSS_TS64_AP_CURRENT, // 184
728 EID_SSS_MU_AUTH_STATE, // 185
729 EID_SSS_AP_HOMEHASH, // 186
730 EID_TIME_FIRST_DETECTED, // 187
731 EID_TIME_LAST_REPORTED, // 188
732 EID_EVENT_ARRAY, // 189
733 EID_SSS_DEFAULT_SESSION_TIMEOUT, // 190
734 EID_SSS_SSID, // 191
735 EID_SSS_PRIVACY_TYPE, // 192
736 EID_POLICY_ZONE_NAME, // 193
737 EID_RU_AC_EVENT_COMPONENT_ID, // 194
738 EID_MU_AUTH_STATE, // 195
739 EID_MU_USER_NAME, // 196
740 EID_BULK_TYPE, // 197
741 EID_SENT_TIME, // 198
742 EID_INFORM_MU_PMK, // 199
743 EID_COLLECTOR_IP_ADDR, // 200
744 EID_ARP_PROXY, // 201
745 EID_MCAST_FILTER_RULES, // 202
746 EID_AP_PARAMS, // 203
747 EID_ASSOC_SSID_ARRAY, // 204
748 EID_ASSOC_SSID_BLOCK, // 205
749 EID_AP_LIST_BLOCK, // 206
750 EID_AP_LIST_ARRAY, // 207
751 EID_MAC_ADDR, // 208
752 EID_SCAN_PROFILE_ID, // 209
753 EID_ACTION_REQ, // 210
754 EID_CHANNEL_LIST, // 211
755 EID_COUNTERMEASURES_MAX_CH, // 212
756 EID_COUNTERMEASURES_SET, // 213
757 EID_SCAN_PROFILE_BLOCK, // 214
758 EID_SEQ_NUM, // 215
759 EID_THREAT_DEF_ARRAY, // 216
760 EID_THREAT_DEF_BLOCK, // 217
761 EID_THREAT_TYPE, // 218
762 EID_THREAT_ID, // 219
763 EID_THREAT_STATS_F, // 220
764 EID_THREAT_FR_SFR, // 221
765 EID_THREAT_PATTERN_ARRAY, // 222
766 EID_THREAT_PATTERN_BLOCK, // 223
767 EID_THREAT_PATTERN, // 224
768 EID_THREAT_ALERT_TH_DUR, // 225
769 EID_THREAT_CLEAR_TH_DUR, // 226
770 EID_THREAT_PRIORITY, // 227
771 EID_THREAT_MITIGATION_LIST, // 228
772 EID_SSS_MU_IS_PORT_CLOSED, // 229
773 EID_FULL_UPDATE, // 230
774 EID_REASON, // 231
775 EID_SURVEILLANCE_DATA_ARRAY, // 232
776 EID_SURVEILLANCE_DATA_BLOCK, // 233
777 EID_SCAN_BSSID, // 234
778 EID_PARAMS, // 235
779 EID_SCAN_RSS_RSSI, // 236
780 EID_SCAN_SSID, // 237
781 EID_SCAN_CAP, // 238
782 EID_THREAT_CLASSIFICATION, // 239
783 EID_THREAT_DATA_ARRAY, // 240
784 EID_THREAT_DATA_BLOCK, // 241
785 EID_STATE, // 242
786 EID_DROP_FR_CNT, // 243
787 EID_STOP_ROAM_CNT, // 244
788 EID_SPOOF_CNT, // 245
789 EID_THREAT_CLASSIFY_ARRAY, // 246
790 EID_THREAT_CLASSIFY_BLOCK, // 247
791 EID_THREAT_NAME, // 248
792 EID_LOCATION, // 249
793 EID_ENCRYPTION_TYPE, // 250
794 EID_MU_EVENT_ARRAY, // 251
795 EID_MU_EVENT_BLOCK, // 252
796 EID_COMPONENT_ID, // 253
797 EID_MU_EVENT_STRING, // 254
798 EID_BYPASS_BMCAST, // 255
799 EID_GETTIMEOFDAY, // 256
800 EID_COUNTRY_ID, // 257
801 EID_COUNTRY_ARRAY, // 258
802 EID_COUNTRY_BLOCK, // 259
803 EID_MU_EVENT_TYPE, // 260
804 EID_LOCATOR_FLOOR_ID, // 261
805 EID_LOCATOR_LOC_TYPE, // 262
806 EID_LOCATOR_LOC_BLOCK, // 263
807 EID_LOCATOR_LOC_ARRAY, // 264
808 EID_LOCATOR_LOC_POINT, // 265
809 EID_MU_EVENT_DETAILS, // 266
810 EID_MU_EVENT_FROM_AP, // 267
811 EID_MU_EVENT_LOC_BLOCK, // 268
812 EID_LOCATOR_LOC_AP_DISTANCE, // 269
813 EID_LOCATOR_LOC_PRECISION, // 270
814 EID_RSS_DATA_ARRAY, // 271
815 EID_RSS_DATA_BLOCK, // 272
816 EID_LOCATOR_MU_ACTION, // 273
817 EID_EFFECTIVE_EGRESS_VLAN, // 274
818 EID_REBOOT_ACK, // 275
819 EID_MU_BSSID, // 276
820 EID_AUTH_FLAG, // 277
821 EID_ROAMED_FLAG, // 278
822 EID_MU_RSS, // 279
823 EID_FILTER_RULES_VER, // 280
824 EID_FILTER_TYPE, // 281
825 EID_MCAST_FILTER_BLOCK, // 282
826 EID_MCAST_FILTER_BLOCK_ENTRY, // 283
827 EID_DEFAULT_ACTION_TYPE, // 284
828 EID_DEFAULT_CONTAIN_TO_VLAN, // 285
829 EID_DEFAULT_BRIDGE_MODE, // 286
830 EID_INVALID_POLICY, // 287
831 EID_LOCATOR_FLOOR_NAME, // 288
832 EID_AP_FLAGS, // 289
833 EID_AP_PVID, // 290
834 EID_AP_REDIRECT, // 291
835 EID_MU_CVLAN_BAP, // 292
836 EID_MU_SESSION_ARRAY, // 293
837 EID_MU_SESSION_BLOCK, // 294
838 EID_MU_SESSION_ID, // 295
839 EID_MU_RFS_NAME, // 296
840 EID_MU_FLAGS, // 297
841 EID_MU_ASSOC_TIME, // 298
842 EID_MU_ACTIVE_TIME, // 299
843 EID_REPORT_REQ, // 300
844 EID_MU_URL, // 301
845 EID_MU_SESSION_LIFETIME, // 302
846 EID_MU_REAUTH_TIMER, // 303
847 EID_MU_ACCT_SESSION_ID_STRING, // 304
848 EID_MU_ACCT_POLICY_NAME, // 305
849 EID_MU_ACCT_START_TIME, // 306
850 EID_MU_ACCT_CLASS, // 307
851 EID_MU_LOGIN_LAT_GROUP, // 308
852 EID_MU_TUNNEL_PRIVATE_GROUP_ID_STRING, // 309
853 EID_MU_USER_ID_STRING, // 310
854 EID_MU_DEFENDED_STATE, // 311
855 EID_MU_MOD_MASK, // 312
856 EID_LOCATOR_TRACKED, // 313
857 EID_PORT, // 314
858 EID_RETRIES_COUNT, // 315
859 EID_MODULATION_TYPE, // 316
860 EID_DETECTED_ROGUE_ARRAY, // 317
861 EID_DETECTED_ROGUE_BLOCK, // 318
862 EID_ROGUE_DETECTION, // 319
863 EID_MAC_ADDR_TX, // 320
864 EID_MAC_ADDR_RX, // 321
865 EID_IP_ADDR_TX, // 322
866 EID_IP_ADDR_RX, // 323
867 EID_TTL, // 324
868 EID_GW_IP_ADDR, // 325
869 EID_LOCATOR_STATE_DATA, // 326
870 EID_LOCATOR_POINT_SET, // 327
871 EID_FILTER_RULE_FIXED_APP_ID, // 328
872 EID_FILTER_RULES_EXT_BLOCK, // 329
873 EID_MU_AREA_BLOCK, // 330
874 EID_MU_LOCATION, // 331
875 EID_MU_LOCATION_TS, // 332
876 EID_DNS_IP_ADDR, // 333
877 EID_IN_SERVICE_AP_LIST, // 334
878 EID_OUT_SERVICE_AP_LIST, // 335
879 EID_LAST_RD_AP, // 336
880 EID_ROGUE_INFO, // 337
881 EID_MU_IS_FT, // 338
882 EID_MU_PMK_R1, // 339
883 EID_SIAPP_R0KHID, // 340
884 EID_SIAPP_R1KHID, // 341
885 EID_SIAPP_FT_NONCE, // 342
886 EID_SIAPP_FT_PMKR0NAME, // 343
887 EID_SIAPP_FT_R1KHID, // 344
888 EID_SIAPP_FT_S1KHID, // 345
889 EID_SIAPP_FT_PMKR1, // 346
890 EID_SIAPP_FT_PMKR1NAME, // 347
891 EID_SIAPP_FT_PAIRWISE, // 348
892 EID_SIAPP_FT_LIFETIME, // 349
893 EID_MU_POWER_CAP, // 350
894 EID_AREA_NAME, // 351
895 EID_PERIODIC_NEIGHBOUR_REPORT, // 352
896 EID_TIMESTAMP, // 353
897 EID_NEIGHBOUR_ENTRY, // 354
898 EID_MU_REQ, // 355
899 EID_RU_REQ, // 356
900 EID_NEIGHBOUR_REQ, // 357
901 EID_SSS_FT_ASSOC, // 358
902 EID_DEFAULT_MIRRORN, // 359
903 EID_FILTER_RULE_EXT_ACT_FLAGS, // 360
904 EID_TOPO_GROUP_MAPPING, // 361
905 EID_MU_PMK_R0NAME, // 362
906 EID_CUI, // 363
907 EID_SSS_CAPINFO, // 364
908 EID_SSS_CAPPOWER, // 365
909 EID_WFA_VSA, // 366
910 EID_WFA_HS20_REMED_METHOD, // 367
911 EID_WFA_HS20_URL, // 368
912 EID_WFA_HS20_DEAUTH_CODE, // 369
913 EID_WFA_HS20_REAUTH_DELAY, // 370
914 EID_WFA_HS20_SWT, // 371
915 EID_POWER_STATUS, // 372
916 EID_IPV6_ADDR, // 373
917 EID_FILTER_RULES_APP_SIG_GROUP_ID, // 374
918 EID_FILTER_RULES_APP_SIG_DISP_ID, // 375
919 EID_MU_DEV_IDENTITY, // 376
920 EID_APPL_STATS_REQ, // 377
921 EID_MU_APPL_STATS_BLOCK, // 378
922 EID_TOPOLOGY_ARRAY, // 379
923 EID_TOPOLOGY_STRUCT, // 380
924 EID_FILTER_CONFIG_STRUCT, // 381
925 EID_DHCP_HOST_NAME, // 382
926 EID_NEIGHBOUR_ENTRY_2, // 383
927 EID_CHANNEL_ENTRY, // 384
928 EID_MU_ECP_PW, // 385
929 EID_MU_ECP_TOKEN, // 386
930 EID_STATIC_VSA_IPADDR, // 387
931 EID_STATIC_VSA_NETMASK, // 388
932 EID_PKT_CAPTURE_STATUS, // 389
933 EID_PKT_CAPTURE_FILTERS, // 390
934 EID_PKT_F_WIRELESS, // 391
935 EID_PKT_F_WIREDCLIENT, // 392
936 EID_PKT_F_DIRECTION, // 393
937 EID_PKT_F_RADIO, // 394
938 EID_PKT_F_FLAGS, // 395
939 EID_PKT_F_IP_ARRAY, // 396
940 EID_PKT_F_MAC, // 397
941 EID_PKT_F_PROTOCOL, // 398
942 EID_PKT_F_PORT, // 399
943 EID_VSA_SSID_ID, // 400
944 EID_MU_AUTH_TYPE, // 401
945 EID_PKT_F_MAX_PKT_COUNT, // 402
946 EID_PKT_F_FLAG_2, // 403
947 EID_IMAGE_PORT, // 404
948 EID_FILTER_ROLE_ID, // 405
949 EID_FILTER_ROLE_TIMESTAMP, // 406
950 EID_MAX
951 } wassp_tlv_type_t;
953 /* Value string object enumerates wassp tlv type field */
954 static const value_string wassp_tlv_types[] =
956 { EID_STATUS, "Status/Action"},
957 { EID_RU_SW_VERSION, "Software Version"},
958 { EID_RU_SERIAL_NUMBER, "Serial Number"},
959 { EID_RU_REG_CHALLENGE, "Registration Challenge"},
960 { EID_RU_REG_RESPONSE, "Challenge Response"},
961 { EID_AC_IPADDR, "Controller IP Address"},
962 { EID_RU_VNSID, "AccessPoint VNS ID"},
963 { EID_TFTP_SERVER, "TFTP Server Address"},
964 { EID_IMAGE_PATH, "Path/Filename of Upgrade Image"},
965 { EID_CONFIG, "SNMP Encoded Configuration"},
966 { EID_RU_STATE, "AccessPoint State"},
967 { EID_SESSION_KEY, "Binding Key"},
968 { EID_RU_PROTOCOL, "Message Type"},
969 { EID_RANDOM_NUMBER, "Random Number"},
970 { EID_STANDBY_TIMEOUT, "Standby Timeout"},
971 { EID_RU_CHALLENGE_ID, "AccessPoint Challenge ID"},
972 { EID_RU_MODEL, "AccessPoint Model"},
973 { EID_RU_SCAN_MODE, "AccessPoint Scan Mode"},
974 { EID_RU_SCAN_TYPE, "AccessPoint Scan Type"},
975 { EID_RU_SCAN_INTERVAL, "AccessPoint Scan Interval"},
976 { EID_RU_RADIO_TYPE, "AccessPoint Radio Type"},
977 { EID_RU_CHANNEL_DWELL_TIME, "AccessPoint Channel Dwell Time"},
978 { EID_RU_CHANNEL_LIST, "AccessPoint Channel List"},
979 { EID_RU_TRAP, "AccessPoint Trap"},
980 { EID_RU_SCAN_TIMES, "AccessPoint Scan Times"},
981 { EID_RU_SCAN_DELAY, "AccessPoint Scan Delay"},
982 { EID_RU_SCAN_REQ_ID, "AccessPoint Scan Request ID"},
983 { EID_STATIC_CONFIG, "Static Configuration"},
984 { EID_LOCAL_BRIDGING, "Local Bridging"},
985 { EID_STATIC_BP_IPADDR, "Static AccessPoint IP Address"},
986 { EID_STATIC_BP_NETMASK, "Static AccessPoint NetMask"},
987 { EID_STATIC_BP_GATEWAY, "Static AccessPoint Gateway"},
988 { EID_STATIC_BM_IPADDR, "Static Controller IP Address"},
989 { EID_BP_BPSSID, "AccessPoint BSSID"},
990 { EID_BP_WIRED_MACADDR, "AccessPoint Wired MAC"},
991 { EID_RU_CAPABILITY, "AccessPoint Capability"},
992 { EID_RU_SSID_NAME, "AccessPoint SSID Name"},
993 { EID_ALARM, "Alarm"},
994 { EID_RU_PREAUTH, "AccessPoint Preauthorization"},
995 { EID_RU_PMK, "AccessPoint Pairwise Master Key"},
996 { EID_AC_REG_CHALLENGE, "Controller Register Challenge"},
997 { EID_AC_REG_RESPONSE, "Controller Register Response"},
998 { EID_STATS, "Stats"},
999 { EID_CERTIFICATE, "Certificate"},
1000 { EID_RADIO_ID, "Radio ID"},
1001 { EID_REQ_ID, "Request ID"},
1002 { EID_NETWORK_ID, "Network ID"},
1003 { EID_MU_MAC, "MU MAC Address"},
1004 { EID_TIME, "Time"},
1005 { EID_NUM_RADIOS, "Number of Radios"},
1006 { EID_RADIO_INFO, "Radio Info"},
1007 { EID_NETWORK_INFO, "Network Info"},
1008 { EID_VENDOR_ID, "Vendor ID"},
1009 { EID_PRODUCT_ID, "Product ID"},
1010 { EID_RADIO_INFO_ACK, "Radio Info Acknowledge"},
1011 { EID_SECURE_TUNNEL, "Secure Tunnel"},
1012 { EID_MU_TOPOLOGY_ID, "MU Topology ID"},
1013 { EID_SSID, "SSID"},
1014 { EID_EVENT_BLOCK, "Event Block"},
1015 { EID_SNMP_ERROR_STATUS, "SNMP Error Status"},
1016 { EID_SNMP_ERROR_INDEX, "SNMP Error Index"},
1017 { EID_RU_REAUTH_TIMER, "AccessPoint ReAuthentication Timer"},
1018 { EID_AP_IMG_TO_RAM, "AccessPoint Image Store to RAM"},
1019 { EID_AP_IMG_ROLE, "AccessPoint Image Type"},
1020 { EID_AP_STATS_BLOCK, "AccessPoint Statistics Block"},
1021 { EID_MU_RF_STATS_BLOCK, "AccessPoint RF Statistics Block"},
1022 { EID_STATS_REQUEST_TYPE, "AccessPoint Statistics Request Type"},
1023 { EID_STATS_LAST, "AccessPoint Statistics Last Flag"},
1024 { EID_TLV_CONFIG, "TLV Configuration"},
1025 { EID_CONFIG_ERROR_BLOCK, "AccessPoint Configuration Error Block"},
1026 { EID_CONFIG_MODIFIED_BLOCK, "AccessPoint Configuration Modified Block"},
1027 { EID_MU_PMKID_LIST, "MU Pairwise Master Key List"},
1028 { EID_MU_PMK_BP, "MU and AccessPoint Pairwise Master Key"},
1029 { EID_MU_PMKID_BP, "MU and AccessPoint Pairwise Master Key ID"},
1030 { EID_COUNTDOWN_TIME, "CountDown Time"},
1031 { EID_WASSP_VLAN_TAG, "VLAN Tag"},
1032 { EID_SSID_ID, "SSID(Service Set Identifier)"},
1033 { EID_BULK_MU_BLOCK, "Bulk MU Block"},
1034 { EID_MU_BLOCK, "MU Block" },
1035 { EID_PORT_OPEN_FLAG, "Port Open Flag"},
1036 { EID_WASSP_TUNNEL_TYPE, "Tunnel Type"},
1037 { EID_LOG_TYPE, "Log type"},
1038 { EID_LOG_FILE, "Log File"},
1039 { EID_ALARM_SEVERITY, "Alarm Severity"},
1040 { EID_ALARM_DESCRIPTION, "Alarm Information"},
1041 { EID_BULK_VNS_BLOCK, "Bulk VNS Block"},
1042 { EID_VNS_BLOCK, "VNS Block"},
1043 { EID_AP_DHCP_MODE, "AccessPoint DHCP Mode"},
1044 { EID_AP_IPADDR, "AccessPoint IP Address"},
1045 { EID_AP_NETMASK, "AccessPoint IP Netmask"},
1046 { EID_AP_GATEWAY, "AccessPoint IP Gateway"},
1047 { EID_BSSID2IP_BLOCK, "BSSID to IP Address Mapping Block"},
1048 { EID_RU_BACKUP_VERSION, "AccessPoint Upgrade: Software Version of The Backup Image"},
1049 { EID_AC_SW_VERSION, "AccessPoint Upgrade: Software Version"},
1050 { EID_MCAST_LAMG_LIST, "Multicast Optimization"},
1051 { EID_FILTER_NAME, "Filter Rule Name"},
1052 { EID_FILTER_RULES, "Array of Filter Rules"},
1053 { EID_AUTH_STATE, "Authentication State( MU Not Authenticate = 0, ANON_AUTHENTICATED=0, MU Authenticated = 1"},
1054 { EID_MU_DISC_AFTER_AUTH, "After Authenticated MU State( Disconnected = 0, Connected = 1"},
1055 { EID_MU_MAC_LIST, "Array of MAC Addresses"},
1056 { EID_TRANS_ID, "Transaction ID of The Message Determined At The Home Controller"},
1057 { EID_TIMEZONE_OFFSET, "Timezone Offset"},
1058 { EID_SENSOR_FORCE_DOWNLOAD, "Force Download of Sensor Image"},
1059 { EID_SENSOR_IMG_VERSION, "Sensor Image Version"},
1060 { EID_BRIDGE_MODE, "Bridge Mode"},
1061 { EID_MU_VLAN_TAG, "MU VLAN Tag"},
1062 { EID_RATECTRL_CIR_UL, "Up Link Bandwidth Control: Committed Information Rate (CIR)"},
1063 { EID_RATECTRL_CIR_DL, "Down Link Bandwidth Control: Committed Information Rate (CIR)"},
1064 { EID_RATECTRL_CBS_UL, "Up Link Bandwidth Control: Committed Burst Size (CBS)"},
1065 { EID_RATECTRL_CBS_DL, "Down Link Bandwidth Control: Committed Burst Size (CBS)"},
1066 { EID_RATECTRL_NAME_UL, "Up Link Bandwidth Control Profile Name"},
1067 { EID_RATECTRL_NAME_DL, "Down Link Bandwidth Control Profile Name"},
1068 { EID_POLICY_NAME, "Policy Profile Name"},
1069 { EID_SIAPP_PMK_BLOCK, "Secure Inter-Access Point Protocol(SIAPP) Pairwise Master Key Block"},
1070 { EID_SIAPP_PMKID, "Secure Inter-Access Point Protocol(SIAPP) Pairwise Master Key ID"},
1071 { EID_SIAPP_PMK_REAUTH, "Secure Inter-Access Point Protocol(SIAPP) Pairwise Master Key ReAuthenticate"},
1072 { EID_SIAPP_PMK_LIFETIME, "Secure Inter-Access Point Protocol(SIAPP) Pairwise Master Key Life Time"},
1073 { EID_SIAPP_PMKID_FLAG, "Secure Inter-Access Point Protocol(SIAPP) Pairwise Master Key ID Flag"},
1074 { EID_SIAPP_MU_PMK, "MU Secure Inter-Access Point Protocol(SIAPP) Pairwise Master Key"},
1075 { EID_SIAPP_AP_NAME, "SIAPP AP Name"},
1076 { EID_SIAPP_RADIO_CONFIG_BLOCK, "SIAPP Radio Configuration Block"},
1077 { EID_SIAPP_CLUSTER_ACS_REQ, "SIAPP Cluster ACS Request"},
1078 { EID_SIAPP_SIAPP_MU_STATS_BLOCK, "SIAPP MU Statistics Block"},
1079 { EID_SIAPP_PACKET_RETRIES, "SIAPP Packet Retries"},
1080 { EID_SIAPP_ASSOC_IN_WLAN, "SIAPP MU Association With In Same WLAN"},
1081 { EID_SIAPP_ASSOC_IN_CLUSTER, "SIAPP MU Association With In Same Cluster"},
1082 { EID_SIAPP_REASSOC_IN_CLUSTER, "SIAPP MU Reassociation With In Same Cluster"},
1083 { EID_SIAPP_THIN_BLOCK, "SIAPP Thin Access Points Block"},
1084 { EID_SIAPP_NEWAP_BSSID, "SIAPP New Access Points BSSID"},
1085 { EID_SIAPP_OLDAP_BSSID, "SIAPP Old Access Points BSSID"},
1086 { EID_SIAPP_RAD_CACS_REQ, "SIAPP Radio CACS Request"},
1087 { EID_SIAPP_RADIOBLOCK, "SIAPP Radio Block"},
1088 { EID_SIAPP_CLIENT_COUNT, "SIAPP Client Count"},
1089 { EID_SIAPP_BLOCK, "SIAPP Block"},
1090 { EID_SIAPP_MU_TransmittedFrameCount, "SIAPP MU _Transmitted Frame Count"},
1091 { EID_SIAPP_MU_ReceivedFrameCount, "SIAPP MU Received Frame Count"},
1092 { EID_SIAPP_MU_TransmittedBytes, "SIAPP MU Transmitted Bytes"},
1093 { EID_SIAPP_MU_ReceivedBytes, "SIAPP MU Received Bytes"},
1094 { EID_SIAPP_MU_UL_DroppedRateControlPackets, "SIAPP MU Up Link Dropped Rate Control Packets"},
1095 { EID_SIAPP_MU_DL_DroppedRateControlPackets, "SIAPP MU Down Link Dropped Rate Control Packets"},
1096 { EID_SIAPP_MU_DL_DroppedBufferFullPackets, "SIAPP MU Down Link Dropped Buffer Full Packets"},
1097 { EID_SIAPP_MU_DL_LostRetriesPackets, "SIAPP MU Down Link Lost Retries Packets"},
1098 { EID_SIAPP_MU_UL_DroppedRateControlBytes, "SIAPP MU Up Link Dropped Rate Control Bytes"},
1099 { EID_SIAPP_MU_DL_DroppedRateControlBytes, "SIAPP MU Down Link Dropped Rate Control Bytes"},
1100 { EID_SIAPP_MU_DL_DroppedBufferFullBytes, "SIAPP MU Down Link Dropped Buffer Full Bytes"},
1101 { EID_SIAPP_MU_DL_LostRetriesBytes, "SIAPP MU Down Link Lost Retries Bytes"},
1102 { EID_SIAPP_BP_BSSID, "SIAPP Access Points BSSID"},
1103 { EID_SIAPP_RADIO_ID, "SIAPP Radio ID"},
1104 { EID_SIAPP_MACADDR, "SIAPP Mac Address"},
1105 { EID_SIAPP_PREAUTH_REQ, "SIAPP Preauthentication Request"},
1106 { EID_SIAPP_USER_IDENTITY, "SIAPP Client IDY"},
1107 { EID_SIAPP_LOADBAL_BLOCK, "SIAPP Load Balance block"},
1108 { EID_SIAPP_LOADBAL_PKT_TYPE, "SIAPP Load Balance PKT Type"},
1109 { EID_SIAPP_LOADBAL_LOADGROUP_ID, "SIAPP Load Balance Load Group ID"},
1110 { EID_SIAPP_LOADBAL_LOAD_VALUE, "SIAPP Load Balance Load Value"},
1111 { EID_SIAPP_AC_MGMT_MAC, "SIAPP Controller Management Mac Address"},
1112 { EID_SIAPP_FILTER_COS, "SIAPP Filter Rule COS"},
1113 { EID_COS, "Classes of Service(COS)"},
1114 { EID_RATE_LIMIT_RESOURCE_TBL, "Bandwidth Control Rate Limit Resource Table"},
1115 { EID_UCAST_FILTER_DISABLE, "Unicast Filter Disable Flag"},
1116 { EID_MU_INFORM_REASON, "MU Information"},
1117 { EID_MU_FILTER_POLICY_NAME, "MU Filter Rule Name"},
1118 { EID_MU_TOPOLOGY_POLICY_NAME, "MU Topology Name"},
1119 { EID_MU_COS_POLICY_NAME, "MU COS Name"},
1120 { EID_MU_FILTER_KEY, "MU Filter Rule ID"},
1121 { EID_MU_TOPOLOGY_KEY, "MU Topology ID"},
1122 { EID_MU_COS_KEY, "MU COS ID"},
1123 { EID_MU_SESSION_TIMEOUT, "MU Session Life Time"},
1124 { EID_MU_ACCOUNTING_CLASS, "MU Accounting Class"},
1125 { EID_MU_LOGIN_LAT_PORT, "MU Login authentication state(0 = Non-auth, 1 = Auth)"},
1126 { EID_MU_IDLE_TIMEOUT, "MU Session Idle Timeout"},
1127 { EID_MU_ACCT_INTERIM_INTERVAL, "Client Acct-Interim-Interval(RADIUS)"},
1128 { EID_MU_IP_ADDR, "MU IP Address"},
1129 { EID_MU_TERMINATE_ACTION, "MU Terminate Action"},
1130 { EID_SITE_NAME, "Site Name"},
1131 { EID_PEER_SITE_IP, "Peer Site IP Address"},
1132 { EID_INTERFERENCE_EVENTS_ENABLE, "Interference Events Enable Flag"},
1133 { EID_EVENT_TYPE, "Event Type"},
1134 { EID_EVENT_CHANNEL, "Event Channel"},
1135 { EID_EVENT_VALUE, "Event Value"},
1136 { EID_SSS_MU_BLOCK, "Site Section MU Block"},
1137 { EID_SSS_MU_ASSOC_TIME, "Site Section MU Association Time"},
1138 { EID_SSS_TS64_MU_UPDATE, "Site Section MU Update Time Stamp"},
1139 { EID_SSS_TS64_AP_CURRENT, "Site Section AccessPoint Current Time"},
1140 { EID_SSS_MU_AUTH_STATE, "Site Section MU Authentication State"},
1141 { EID_SSS_AP_HOMEHASH, "Site Section AccessPoint Home Hashed Value"},
1142 { EID_TIME_FIRST_DETECTED, "First Detected Time"},
1143 { EID_TIME_LAST_REPORTED, "Last Reported Time"},
1144 { EID_EVENT_ARRAY, "Array Of Events"},
1145 { EID_SSS_DEFAULT_SESSION_TIMEOUT, "Site Section Default Timeout Time"},
1146 { EID_SSS_SSID, "Site Section SSID"},
1147 { EID_SSS_PRIVACY_TYPE, "Site Section Privacy Type"},
1148 { EID_POLICY_ZONE_NAME, "Policy Zone Name"},
1149 { EID_RU_AC_EVENT_COMPONENT_ID, "Event Component ID"},
1150 { EID_MU_AUTH_STATE, "MU Authentication State"},
1151 { EID_MU_USER_NAME, "MU User Name"},
1152 { EID_BULK_TYPE, "Bulk Type"},
1153 { EID_SENT_TIME, "Sent Time"},
1154 { EID_INFORM_MU_PMK, "Pairwise Master Key Informed From AP"},
1155 { EID_COLLECTOR_IP_ADDR, "Collector IP Address"},
1156 { EID_ARP_PROXY, "Enable/Disable Proxying of ARP Per Topology"},
1157 { EID_MCAST_FILTER_RULES, "Multicast Filter Rules Per Topology"},
1158 { EID_AP_PARAMS, "AP Parameters"},
1159 { EID_ASSOC_SSID_ARRAY, "Array of Associated SSID"},
1160 { EID_ASSOC_SSID_BLOCK, "Block of Associated SSID"},
1161 { EID_AP_LIST_BLOCK, "Bloc of AP List"},
1162 { EID_AP_LIST_ARRAY, "Array of AP List"},
1163 { EID_MAC_ADDR, "MAC Address"},
1164 { EID_SCAN_PROFILE_ID, "Scan Profile ID"},
1165 { EID_ACTION_REQ, "Action Request"},
1166 { EID_CHANNEL_LIST, "Channel List"},
1167 { EID_COUNTERMEASURES_MAX_CH, "CounterMeasures Max Channel"},
1168 { EID_COUNTERMEASURES_SET, "Enable/disable CounterMeasures"},
1169 { EID_SCAN_PROFILE_BLOCK, "Scan Profile Block"},
1170 { EID_SEQ_NUM, "Sequence Number"},
1171 { EID_THREAT_DEF_ARRAY, "Array Of Threat Definition"},
1172 { EID_THREAT_DEF_BLOCK, "Block Of Threat Definition"},
1173 { EID_THREAT_TYPE, "Threat Type"},
1174 { EID_THREAT_ID, "Threat ID"},
1175 { EID_THREAT_STATS_F, "Threat State"},
1176 { EID_THREAT_FR_SFR, "Threat FR SFR"},
1177 { EID_THREAT_PATTERN_ARRAY, "Array Of Threat Pattern"},
1178 { EID_THREAT_PATTERN_BLOCK, "Block Of Threat Pattern"},
1179 { EID_THREAT_PATTERN, "Threat Pattern"},
1180 { EID_THREAT_ALERT_TH_DUR, "Threat Alert"},
1181 { EID_THREAT_CLEAR_TH_DUR, "Threat Clear"},
1182 { EID_THREAT_PRIORITY, "Threat Priority"},
1183 { EID_THREAT_MITIGATION_LIST, "Threat Mitigation List"},
1184 { EID_SSS_MU_IS_PORT_CLOSED, "Enable/Disable Site Section MU Port"},
1185 { EID_FULL_UPDATE, "Full Update"},
1186 { EID_REASON, "Reason"},
1187 { EID_SURVEILLANCE_DATA_ARRAY, "Array of Surveillance Data"},
1188 { EID_SURVEILLANCE_DATA_BLOCK, "Block of Surveillance Data"},
1189 { EID_SCAN_BSSID, "Scan BSSID"},
1190 { EID_PARAMS, "Parameters"},
1191 { EID_SCAN_RSS_RSSI, "Scan RSS and RSSI"},
1192 { EID_SCAN_SSID, "Scan SSID"},
1193 { EID_SCAN_CAP, "Scan Capability"},
1194 { EID_THREAT_CLASSIFICATION, "Threat Classification"},
1195 { EID_THREAT_DATA_ARRAY, "Array Of Threat Data"},
1196 { EID_THREAT_DATA_BLOCK, "Block Of Threat Data"},
1197 { EID_STATE, "State"},
1198 { EID_DROP_FR_CNT, "Drop FR Count"},
1199 { EID_STOP_ROAM_CNT, "Stop ROAM Count"},
1200 { EID_SPOOF_CNT, "Spoof Count"},
1201 { EID_THREAT_CLASSIFY_ARRAY, "Array Of Classify Threat"},
1202 { EID_THREAT_CLASSIFY_BLOCK, "Block Of Classify Threat"},
1203 { EID_THREAT_NAME, "Threat Name"},
1204 { EID_LOCATION, "Location"},
1205 { EID_ENCRYPTION_TYPE, "Encryption Type"},
1206 { EID_MU_EVENT_ARRAY, "Array Of MU Events"},
1207 { EID_MU_EVENT_BLOCK, "Block Of MU Events"},
1208 { EID_COMPONENT_ID, "Component ID"},
1209 { EID_MU_EVENT_STRING, "MU Event String"},
1210 { EID_BYPASS_BMCAST, "Bypass Broadcast and Multicast"},
1211 { EID_GETTIMEOFDAY, "Get Time of Day"},
1212 /* Dedicated scanner / Guardian */
1213 { EID_COUNTRY_ID, "Country ID"},
1214 { EID_COUNTRY_ARRAY, "Array of Country"},
1215 { EID_COUNTRY_BLOCK, "Country Block"},
1216 /* Location Engine */
1217 { EID_MU_EVENT_TYPE, "MU Event Type"},
1218 { EID_LOCATOR_FLOOR_ID, "Floor ID"},
1219 { EID_LOCATOR_LOC_TYPE, "Location Type"},
1220 { EID_LOCATOR_LOC_BLOCK, "Block of Location Data"},
1221 { EID_LOCATOR_LOC_ARRAY, "Array of Location Data"},
1222 { EID_LOCATOR_LOC_POINT, "Location Point"},
1223 { EID_MU_EVENT_DETAILS, "MU Event Details"},
1224 { EID_MU_EVENT_FROM_AP, "MU Event From AP"},
1225 { EID_MU_EVENT_LOC_BLOCK, "Block of MU Location Event"},
1226 { EID_LOCATOR_LOC_AP_DISTANCE, "AP Location Distance"},
1227 { EID_LOCATOR_LOC_PRECISION, "Location Precision"},
1228 { EID_RSS_DATA_ARRAY, "Array of RSS Data"},
1229 { EID_RSS_DATA_BLOCK, "Block of RSS Data"},
1230 { EID_LOCATOR_MU_ACTION, "Location MU Action"},
1231 { EID_EFFECTIVE_EGRESS_VLAN, "Effective Egress Vlan"},
1232 { EID_REBOOT_ACK, "Reboot Acknowledgement"},
1233 { EID_MU_BSSID, "MU BSSID"},
1234 { EID_AUTH_FLAG, "Authentication Flag"},
1235 { EID_ROAMED_FLAG, "ROAMED Flag"},
1236 { EID_MU_RSS, "MU RSS"},
1237 { EID_FILTER_RULES_VER, "Filter Rule Struct Version"},
1238 { EID_FILTER_TYPE, "Filter Rule Type"},
1239 { EID_MCAST_FILTER_BLOCK, "Multicast Filter Rule Block"},
1240 { EID_MCAST_FILTER_BLOCK_ENTRY, "Multicast Filter Rule Block Entry"},
1241 { EID_DEFAULT_ACTION_TYPE, "Default Action Type"},
1242 { EID_DEFAULT_CONTAIN_TO_VLAN, "Default Contain to Vlan Flag"},
1243 { EID_DEFAULT_BRIDGE_MODE, "Default Bridge Mode Flag"},
1244 { EID_INVALID_POLICY, "Invalid Policy Flag"},
1245 { EID_LOCATOR_FLOOR_NAME, "Floor Name"},
1246 { EID_AP_FLAGS, "AP Flags"},
1247 { EID_AP_PVID, "AP PVID"},
1248 { EID_AP_REDIRECT, "AP Redirect Flag"},
1249 { EID_MU_CVLAN_BAP, "AP Contain to Vlan Has Bridge At AP Topology Flag"},
1250 { EID_MU_SESSION_ARRAY, "Array Of MU Session"},
1251 { EID_MU_SESSION_BLOCK, "MU Session Block"},
1252 { EID_MU_SESSION_ID, "MU Session ID"},
1253 { EID_MU_RFS_NAME, "MU RFS Name"},
1254 { EID_MU_FLAGS, "MU Flags"},
1255 { EID_MU_ASSOC_TIME, "MU Associated Time"},
1256 { EID_MU_ACTIVE_TIME, "MU Active Time"},
1257 { EID_REPORT_REQ, "Report Request"},
1258 { EID_MU_URL, "MU Captive Portal Url"},
1259 { EID_MU_SESSION_LIFETIME, "MU Session Life Time"},
1260 { EID_MU_REAUTH_TIMER, "MU Re-Authentication Timer"},
1261 { EID_MU_ACCT_SESSION_ID_STRING, "MU Acct Session ID String"},
1262 { EID_MU_ACCT_POLICY_NAME, "MU Acct Policy Name"},
1263 { EID_MU_ACCT_START_TIME, "MU Acct Start Time"},
1264 { EID_MU_ACCT_CLASS, "MU Acct Class"},
1265 { EID_MU_LOGIN_LAT_GROUP, "MU Login Group"},
1266 { EID_MU_TUNNEL_PRIVATE_GROUP_ID_STRING, "MU Tunnel Private Group ID String"},
1267 { EID_MU_USER_ID_STRING, "MU User ID String"},
1268 { EID_MU_DEFENDED_STATE, "MU Defended State"},
1269 { EID_MU_MOD_MASK, "MU Modulation Mask"},
1270 { EID_LOCATOR_TRACKED, "Locator Tracked"},
1271 { EID_PORT, "Port"},
1272 { EID_RETRIES_COUNT, "Retries Count"},
1273 { EID_MODULATION_TYPE, "Modulation Type"},
1274 { EID_DETECTED_ROGUE_ARRAY, "Array Of Detected Rogue"},
1275 { EID_DETECTED_ROGUE_BLOCK, "Detected Rogue Block"},
1276 { EID_ROGUE_DETECTION, "Rogue Detection"},
1277 { EID_MAC_ADDR_TX, "Tx Mac Address"},
1278 { EID_MAC_ADDR_RX, "Rx Mac Address"},
1279 { EID_IP_ADDR_TX, "Tx IP Address"},
1280 { EID_IP_ADDR_RX, "Rx IP Address"},
1281 { EID_TTL, "TTL"},
1282 { EID_GW_IP_ADDR, "Gateway IP Address"},
1283 { EID_LOCATOR_STATE_DATA, "Location State Data"},
1284 { EID_LOCATOR_POINT_SET, "Location Point Set"},
1285 { EID_FILTER_RULE_FIXED_APP_ID, "Filter Rule Fixed Application ID"},
1286 { EID_FILTER_RULES_EXT_BLOCK, "Filter Rule Extended Block"},
1287 { EID_MU_AREA_BLOCK, "MU Area Block"},
1288 { EID_MU_LOCATION, "MU Location"},
1289 { EID_MU_LOCATION_TS, "MU Location Time Stamp"},
1290 { EID_DNS_IP_ADDR, "DNS IP Address"},
1291 { EID_IN_SERVICE_AP_LIST, "In-Service AP List"},
1292 { EID_OUT_SERVICE_AP_LIST, "Out of Service AP List"},
1293 { EID_LAST_RD_AP, "Last RD AP"},
1294 { EID_ROGUE_INFO, "Rogue Info"},
1295 { EID_MU_IS_FT, "Enable/Disable MU Fast Transition"},
1296 { EID_MU_PMK_R1, "MU Fast Transition Roaming"},
1297 { EID_SIAPP_R0KHID, "SIAPP R0KH ID"},
1298 { EID_SIAPP_R1KHID, "SIAPP R1KH ID"},
1299 { EID_SIAPP_FT_NONCE, "SIAPP Fast Transition Nonce"},
1300 { EID_SIAPP_FT_PMKR0NAME, "SIAPP Fast Transition PMKR0 Name"},
1301 { EID_SIAPP_FT_R1KHID, "SIAPP Fast Transition R1KH ID"},
1302 { EID_SIAPP_FT_S1KHID, "SIAPP Fast Transition S1KH ID"},
1303 { EID_SIAPP_FT_PMKR1, "SIAPP Fast Transition PMKR1"},
1304 { EID_SIAPP_FT_PMKR1NAME, "SIAPP Fast Transition PMKR1 Name"},
1305 { EID_SIAPP_FT_PAIRWISE, "SIAPP Fast Transition Pairwise"},
1306 { EID_SIAPP_FT_LIFETIME, "SIAPP Fast Transition Life Time"},
1307 { EID_MU_POWER_CAP, "MU Power Capable"},
1308 { EID_AREA_NAME, "Area Name"},
1309 { EID_PERIODIC_NEIGHBOUR_REPORT, "Periodic Neighbour Report"},
1310 { EID_TIMESTAMP, "Time Stamp"},
1311 { EID_NEIGHBOUR_ENTRY, "Neighbour Entry"},
1312 { EID_MU_REQ, "MU Request"},
1313 { EID_RU_REQ, "RU Request"},
1314 { EID_NEIGHBOUR_REQ, "Neighbour Request"},
1315 { EID_SSS_FT_ASSOC, "Site Section Fast Transition Association"},
1316 { EID_DEFAULT_MIRRORN, "Enables the First N Packets of a Flow to The Controller"},
1317 { EID_FILTER_RULE_EXT_ACT_FLAGS, "Extension to Filter Rule Definition. Specifies Additional Actions Per Filter Rule"},
1318 { EID_TOPO_GROUP_MAPPING, "Topology Group Mapping"},
1319 { EID_MU_PMK_R0NAME, "MU Pairwise Master Key R0 Name"},
1320 { EID_CUI, "CUI"},
1321 { EID_SSS_CAPINFO, "Site Section CAP Info"},
1322 { EID_SSS_CAPPOWER, "Site Section CAP Power"},
1323 { EID_WFA_VSA, "WFA Vendor Specific Hotspot"},
1324 { EID_WFA_HS20_REMED_METHOD, "Online Signup Method for HS2.0 Remediation"},
1325 { EID_WFA_HS20_URL, "Remediation Server Url for Online Signup In HS2.0"},
1326 { EID_WFA_HS20_DEAUTH_CODE, "WFA HS20 De-Authentication Code"},
1327 { EID_WFA_HS20_REAUTH_DELAY, "WFA HS20 Re-Authentication Delay"},
1328 { EID_WFA_HS20_SWT, "WFA HS20 SWT"},
1329 { EID_POWER_STATUS, "Power Status"},
1330 { EID_IPV6_ADDR, "IPV6 Address"},
1331 { EID_FILTER_RULES_APP_SIG_GROUP_ID, "Filter Rule Application Signature Group ID"},
1332 { EID_FILTER_RULES_APP_SIG_DISP_ID, "Filter Rule Application Signature Display ID"},
1333 { EID_MU_DEV_IDENTITY, "MU Device ID"},
1334 { EID_APPL_STATS_REQ, "Application Rule Stats Request"},
1335 { EID_MU_APPL_STATS_BLOCK, "MU Application Rule Stats Block"},
1336 { EID_TOPOLOGY_ARRAY, "Array of Topologies"},
1337 { EID_TOPOLOGY_STRUCT, "Topology Struct"},
1338 { EID_FILTER_CONFIG_STRUCT, "Filter Rule Configuration Struct"},
1339 { EID_DHCP_HOST_NAME, "DHCP Host Name"},
1340 { EID_NEIGHBOUR_ENTRY_2, "Neighbour Entry 2"},
1341 { EID_CHANNEL_ENTRY, "Channel Entry"},
1342 { EID_MU_ECP_PW, "MU External Captive Portal Password"},
1343 { EID_MU_ECP_TOKEN, "MU External Captive Portal Token"},
1344 { EID_STATIC_VSA_IPADDR, "AP Endpoint on Overlay Network IP Address"},
1345 { EID_STATIC_VSA_NETMASK, "AP Endpoint on Overlay Network IP Mask"},
1346 { EID_PKT_CAPTURE_STATUS, "Packet Capture Status"},
1347 { EID_PKT_CAPTURE_FILTERS, "Packet Capture Filters"},
1348 { EID_PKT_F_WIRELESS, "Enable Packet Capture On Wireless"},
1349 { EID_PKT_F_WIREDCLIENT, "Enable Packet Capture on Wired Client"},
1350 { EID_PKT_F_DIRECTION, "Packet Capture Direction"},
1351 { EID_PKT_F_RADIO, "Packet Capture on Radio"},
1352 { EID_PKT_F_FLAGS, "Packet Capture Flag"},
1353 { EID_PKT_F_IP_ARRAY, "Array of Packet Capture IP Addresses"},
1354 { EID_PKT_F_MAC, "Array of Packet Capture Mac Addresses"},
1355 { EID_PKT_F_PROTOCOL, "Packet Capture On Protocol"},
1356 { EID_PKT_F_PORT, "Packet Capture On Port"},
1357 { EID_VSA_SSID_ID, "VSA SSID ID"},
1358 { EID_MU_AUTH_TYPE, "MU Authentication Type"},
1359 { EID_PKT_F_MAX_PKT_COUNT, "Max Captured Packet Count"},
1360 { EID_PKT_F_FLAG_2, "Packet Capture Flag 2"},
1361 { EID_IMAGE_PORT, "Image Port"},
1362 { EID_FILTER_ROLE_ID, "Filter Rule ID"},
1363 { EID_FILTER_ROLE_TIMESTAMP, "Time Stamp of When Role Was Last Changed"},
1364 { 0, NULL }
1368 static const TLV_PARSER_ENTRY tlvMainTable[] =
1370 { EID_UNUSED_0, "Unused 0", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1371 { EID_STATUS, "Status/Action", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1372 { EID_RU_SW_VERSION, "Software Version", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
1373 { EID_RU_SERIAL_NUMBER, "Serial Number", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
1374 { EID_RU_REG_CHALLENGE, "Registration Challenge", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
1375 { EID_RU_REG_RESPONSE, "Challenge Response", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
1376 { EID_AC_IPADDR, "Controller IP Address", TLV_TYPE_IP_ADDR, 0, 0, 0, 0, 0, 0, 0, 0},
1377 { EID_RU_VNSID, "AccessPoint VNS ID", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1378 { EID_TFTP_SERVER, "TFTP Server Address", TLV_TYPE_IP_ADDR, 0, 0, 0, 0, 0, 0, 0, 0},
1379 { EID_IMAGE_PATH, "Path/Filename of Upgrade Image", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
1380 { EID_CONFIG, "SNMP Encoded Configuration", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
1381 { EID_RU_STATE, "AccessPoint State", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1382 { EID_SESSION_KEY, "Binding Key", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
1383 { EID_RU_PROTOCOL, "Message Type", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1384 { EID_RANDOM_NUMBER, "Random Number", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
1385 { EID_STANDBY_TIMEOUT, "Standby Timeout", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1386 { EID_RU_CHALLENGE_ID, "AccessPoint Challenge ID", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1387 { EID_RU_MODEL, "AccessPoint Model", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1388 { EID_RU_SCAN_MODE, "AccessPoint Scan Mode", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1389 { EID_RU_SCAN_TYPE, "AccessPoint Scan Type", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1390 { EID_RU_SCAN_INTERVAL, "AccessPoint Scan Interval", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1391 { EID_RU_RADIO_TYPE, "AccessPoint Radio Type", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1392 { EID_RU_CHANNEL_DWELL_TIME, "AccessPoint Channel Dwell Time", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1393 { EID_RU_CHANNEL_LIST, "AccessPoint Channel List", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1394 { EID_RU_TRAP, "AccessPoint Trap", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1395 { EID_RU_SCAN_TIMES, "AccessPoint Scan Times", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1396 { EID_RU_SCAN_DELAY, "AccessPoint Scan Delay", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1397 { EID_RU_SCAN_REQ_ID, "AccessPoint Scan Request ID", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1398 { EID_STATIC_CONFIG, "Static Configuration", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1399 { EID_LOCAL_BRIDGING, "Local Bridging", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1400 { EID_STATIC_BP_IPADDR, "Static AccessPoint IP Address", TLV_TYPE_IP_ADDR, 0, 0, 0, 0, 0, 0, 0, 0},
1401 { EID_STATIC_BP_NETMASK, "Static AccessPoint NetMask", TLV_TYPE_IP_ADDR, 0, 0, 0, 0, 0, 0, 0, 0},
1402 { EID_STATIC_BP_GATEWAY, "Static AccessPoint Gateway", TLV_TYPE_IP_ADDR, 0, 0, 0, 0, 0, 0, 0, 0},
1403 { EID_STATIC_BM_IPADDR, "Static Controller IP Address", TLV_TYPE_IP_ADDR, 0, 0, 0, 0, 0, 0, 0, 0},
1404 { EID_BP_BPSSID, "AccessPoint BSSID", TLV_TYPE_MACADD, 0, 0, 0, 0, 0, 0, 0, 0},
1405 { EID_BP_WIRED_MACADDR, "AccessPoint Wired MAC", TLV_TYPE_MACADD, 0, 0, 0, 0, 0, 0, 0, 0},
1406 { EID_RU_CAPABILITY, "AccessPoint Capability", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1407 { EID_RU_SSID_NAME, "AccessPoint SSID Name", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
1408 { EID_ALARM, "Alarm", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1409 { EID_RU_PREAUTH, "AccessPoint Preauthorization", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1410 { EID_RU_PMK, "AccessPoint Pairwise Master Key", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1411 { EID_AC_REG_CHALLENGE, "Controller Register Challenge", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
1412 { EID_AC_REG_RESPONSE, "Controller Register Response", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
1413 { EID_STATS, "Stats", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
1414 { EID_CERTIFICATE, "Certificate", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
1415 { EID_RADIO_ID, "Radio ID", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1416 { EID_REQ_ID, "Request ID", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1417 { EID_NETWORK_ID, "Network ID", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1418 { EID_MU_MAC, "MU MAC Address", TLV_TYPE_MACADD, 0, 0, 0, 0, 0, 0, 0, 0},
1419 { EID_TIME, "Time", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1420 { EID_NUM_RADIOS, "Number of Radios", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1421 { EID_RADIO_INFO, "Radio Info", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
1422 { EID_NETWORK_INFO, "Network Info", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
1423 { EID_VENDOR_ID, "Vendor ID", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1424 { EID_PRODUCT_ID, "Product ID", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1425 { EID_RADIO_INFO_ACK, "Radio Info Acknowledge", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
1426 { EID_SECURE_TUNNEL, " secure tunnel", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1427 { EID_MU_TOPOLOGY_ID, "MU topology ID", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1428 { EID_SSID, "SSID", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
1429 { EID_EVENT_BLOCK, "Event Block", TLV_TYPE_BLOCK_TLV, EVENT_BLOCK, 0, 0, 0, 0, 0, 0, 0},
1430 { EID_SNMP_ERROR_STATUS, "SNMP Error Status", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1431 { EID_SNMP_ERROR_INDEX, "SNMP Error Index", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1432 { EID_RU_REAUTH_TIMER, "AccessPoint ReAuthentication Timer", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1433 { EID_AP_IMG_TO_RAM, "AccessPoint Image Store to RAM", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1434 { EID_AP_IMG_ROLE, "AccessPoint Image Type", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1435 { EID_AP_STATS_BLOCK, "AccessPoint Statistics Block", TLV_TYPE_BLOCK_TLV, AP_STATS_BLOCK, 0, 0, 0, 0, 0, 0, 0},
1436 { EID_MU_RF_STATS_BLOCK, "AccessPoint RF Statistics Block", TLV_TYPE_BLOCK_TLV, MU_RF_STATS_BLOCK, 0, 0, 0, 0, 0, 0, 0},
1437 { EID_STATS_REQUEST_TYPE, "AccessPoint Statistics Request Type", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1438 { EID_STATS_LAST, "AccessPoint Statistics Last Flag", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1439 { EID_TLV_CONFIG, "TLV Configuration", TLV_TYPE_BLOCK_TLV, CONFIG_GLOBAL_BLOCK, 0, 0, 0, 0, 0, 0, 0},
1440 { EID_CONFIG_ERROR_BLOCK, "AccessPoint Configuration Error Block", TLV_TYPE_BLOCK_TLV, CONFIG_ERROR_BLOCK, 0, 0, 0, 0, 0, 0, 0},
1441 { EID_CONFIG_MODIFIED_BLOCK, "AccessPoint Configuration Modified Block", TLV_TYPE_BLOCK_TLV, CONFIG_ERROR_BLOCK, 0, 0, 0, 0, 0, 0, 0},
1442 { EID_MU_PMKID_LIST, "MU Pairwise Master Key List", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
1443 { EID_MU_PMK_BP, "MU and AccessPoint Pairwise Master Key", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
1444 { EID_MU_PMKID_BP, "MU and AccessPoint Pairwise Master Key ID", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
1445 { EID_COUNTDOWN_TIME, "CountDown Time", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1446 { EID_WASSP_VLAN_TAG, "VLAN Tag", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1447 { EID_SSID_ID, "SSID(Service Set Identifier)", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1448 { EID_BULK_MU_BLOCK, "Bulk MU Block", TLV_TYPE_BLOCK_TLV, BULK_MU_BLOCK, 0, 0, 0, 0, 0, 0, 0},
1449 { EID_MU_BLOCK, "MU Block", TLV_TYPE_BLOCK_TLV, MU_BLOCK, 0, 0, 0, 0, 0, 0, 0},
1450 { EID_PORT_OPEN_FLAG, "Port Open Flag", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1451 { EID_WASSP_TUNNEL_TYPE, "Tunnel Type", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1452 { EID_LOG_TYPE, "Log type", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1453 { EID_LOG_FILE, "Log File", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
1454 { EID_ALARM_SEVERITY, "Alarm Severity", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1455 { EID_ALARM_DESCRIPTION, "Alarm Information", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
1456 { EID_BULK_VNS_BLOCK, "Bulk VNS Block", TLV_TYPE_BLOCK_TLV, BULK_VNS_BLOCK, 0, 0, 0, 0, 0, 0, 0},
1457 { EID_VNS_BLOCK, "VNS Block", TLV_TYPE_BLOCK_TLV, VNS_BLOCK, 0, 0, 0, 0, 0, 0, 0},
1458 { EID_AP_DHCP_MODE, "AccessPoint DHCP Mode", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1459 { EID_AP_IPADDR, "AccessPoint IP Address", TLV_TYPE_IP_ADDR, 0, 0, 0, 0, 0, 0, 0, 0},
1460 { EID_AP_NETMASK, "AccessPoint IP Netmask", TLV_TYPE_IP_ADDR, 0, 0, 0, 0, 0, 0, 0, 0},
1461 { EID_AP_GATEWAY, "AccessPoint IP Gateway", TLV_TYPE_IP_ADDR, 0, 0, 0, 0, 0, 0, 0, 0},
1462 { EID_BSSID2IP_BLOCK, "BSSID to IP Address Mapping Block", TLV_TYPE_BLOCK_TLV, CONFIG_ERROR_BLOCK, 0, 0, 0, 0, 0, 0, 0},
1463 { EID_RU_BACKUP_VERSION, "AccessPoint Upgrade: Software Version of The Backup Image", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
1464 { EID_AC_SW_VERSION, "AccessPoint Upgrade: Software Version", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
1465 { EID_MCAST_LAMG_LIST, " Multicast Optimization", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
1466 { EID_FILTER_NAME, "Filter Rule Name", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
1467 { EID_FILTER_RULES, "Array of Filter Rules", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
1468 { EID_AUTH_STATE, "Authentication State( MU Not Authenticate = 0, ANON_AUTHENTICATED=0, MU Authenticated = 1", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1469 { EID_MU_DISC_AFTER_AUTH, "After Authenticated MU State( Disconnected = 0, Connected = 1", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1470 { EID_MU_MAC_LIST, "Array of MAC Addresses", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
1471 { EID_TRANS_ID, "Transaction ID of The Message Determined At The Home Controller", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1472 { EID_TIMEZONE_OFFSET, "Timezone Offset", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1473 { EID_SENSOR_FORCE_DOWNLOAD, " Force Download of Sensor Image", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1474 { EID_SENSOR_IMG_VERSION, " Sensor Image Version", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
1475 { EID_BRIDGE_MODE, "Bridge Mode", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1476 { EID_MU_VLAN_TAG, "MU VLAN Tag", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1477 { EID_RATECTRL_CIR_UL, "Up Link Bandwidth Control: Committed Information Rate (CIR)", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1478 { EID_RATECTRL_CIR_DL, "Down Link Bandwidth Control: Committed Information Rate (CIR)", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1479 { EID_RATECTRL_CBS_UL, "Up Link Bandwidth Control: Committed Burst Size (CBS)", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1480 { EID_RATECTRL_CBS_DL, "Down Link Bandwidth Control: Committed Burst Size (CBS)", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1481 { EID_RATECTRL_NAME_UL, "Up Link Bandwidth Control Profile Name", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
1482 { EID_RATECTRL_NAME_DL, "Down Link Bandwidth Control Profile Name", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
1483 { EID_POLICY_NAME, "Policy Profile Name", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
1484 { EID_SIAPP_PMK_BLOCK, "Secure Inter-Access Point Protocol(SIAPP) Pairwise Master Key Block", TLV_TYPE_BLOCK_TLV, TAB_SIAPP_PMK_BLOCK, 0, 0, 0, 0, 0, 0, 0},
1485 { EID_SIAPP_PMKID, "Secure Inter-Access Point Protocol(SIAPP) Pairwise Master Key ID", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1486 { EID_SIAPP_PMK_REAUTH, "Secure Inter-Access Point Protocol(SIAPP) Pairwise Master Key ReAuthenticate", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1487 { EID_SIAPP_PMK_LIFETIME, "Secure Inter-Access Point Protocol(SIAPP) Pairwise Master Key Life Time", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1488 { EID_SIAPP_PMKID_FLAG, "Secure Inter-Access Point Protocol(SIAPP) Pairwise Master Key ID Flag", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1489 { EID_SIAPP_MU_PMK, "MU Secure Inter-Access Point Protocol(SIAPP) Pairwise Master Key", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
1490 { EID_SIAPP_AP_NAME, "SIAPP AP Name", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
1491 { EID_SIAPP_RADIO_CONFIG_BLOCK, "SIAPP Radio Configuration Block", TLV_TYPE_BLOCK_TLV, TAB_SIAPP_RADIO_CONFIG_BLOCK, 0, 0, 0, 0, 0, 0, 0},
1492 { EID_SIAPP_CLUSTER_ACS_REQ, "SIAPP Cluster ACS Request", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1493 { EID_SIAPP_SIAPP_MU_STATS_BLOCK, "SIAPP MU Statistics Block", TLV_TYPE_BLOCK_TLV, TAB_SIAPP_MU_STATS_BLOCK, 0, 0, 0, 0, 0, 0, 0},
1494 { EID_SIAPP_PACKET_RETRIES, "SIAPP Packet Retries", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1495 { EID_SIAPP_ASSOC_IN_WLAN, "SIAPP MU Association With In Same WLAN", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1496 { EID_SIAPP_ASSOC_IN_CLUSTER, "SIAPP MU Association With In Same Cluster", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1497 { EID_SIAPP_REASSOC_IN_CLUSTER, "SIAPP MU Reassociation With In Same Cluster", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1498 { EID_SIAPP_THIN_BLOCK, "SIAPP Thin Access Points Block", TLV_TYPE_BLOCK_TLV, TAB_SIAPP_THIN_BLOCK, 0, 0, 0, 0, 0, 0, 0},
1499 { EID_SIAPP_NEWAP_BSSID, "SIAPP New Access Points BSSID", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1500 { EID_SIAPP_OLDAP_BSSID, "SIAPP Old Access Points BSSID", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1501 { EID_SIAPP_RAD_CACS_REQ, "SIAPP Radio CACS Request", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1502 { EID_SIAPP_RADIOBLOCK, "SIAPP Radio Block", TLV_TYPE_BLOCK_TLV, TAB_SIAPP_MU_STATS_BLOCK, 0, 0, 0, 0, 0, 0, 0},
1503 { EID_SIAPP_CLIENT_COUNT, "SIAPP Client Count", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1504 { EID_SIAPP_BLOCK, "SIAPP Block", TLV_TYPE_BLOCK_TLV, TAB_SIAPP_BLOCK, 0, 0, 0, 0, 0, 0, 0},
1505 { EID_SIAPP_MU_TransmittedFrameCount, "SIAPP MU Transmitted Frame Count", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1506 { EID_SIAPP_MU_ReceivedFrameCount, "SIAPP MU Received Frame Count", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1507 { EID_SIAPP_MU_TransmittedBytes, "SIAPP MU Transmitted Bytes", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1508 { EID_SIAPP_MU_ReceivedBytes, "SIAPP MU Received Bytes", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1509 { EID_SIAPP_MU_UL_DroppedRateControlPackets, "SIAPP MU Up Link Dropped Rate Control Packets", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1510 { EID_SIAPP_MU_DL_DroppedRateControlPackets, "SIAPP MU Down Link Dropped Rate Control Packets", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1511 { EID_SIAPP_MU_DL_DroppedBufferFullPackets, "SIAPP MU Down Link Dropped Buffer Full Packets", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1512 { EID_SIAPP_MU_DL_LostRetriesPackets, "SIAPP MU Down Link Lost Retries Packets", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1513 { EID_SIAPP_MU_UL_DroppedRateControlBytes, "SIAPP MU Up Link Dropped Rate Control Bytes", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1514 { EID_SIAPP_MU_DL_DroppedRateControlBytes, "SIAPP MU Down Link Dropped Rate Control Bytes", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1515 { EID_SIAPP_MU_DL_DroppedBufferFullBytes, "SIAPP MU Down Link Dropped Buffer Full Bytes", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1516 { EID_SIAPP_MU_DL_LostRetriesBytes, "SIAPP MU Down Link Lost Retries Bytes", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1517 { EID_SIAPP_BP_BSSID, "SIAPP Access Points BSSID", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1518 { EID_SIAPP_RADIO_ID, "SIAPP Radio ID", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1519 { EID_SIAPP_MACADDR, "SIAPP Mac Address", TLV_TYPE_MACADD, 0, 0, 0, 0, 0, 0, 0, 0},
1520 { EID_SIAPP_PREAUTH_REQ, "SIAPP Preauthentication Request", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1521 { EID_SIAPP_USER_IDENTITY, "SIAPP Client ID", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
1522 { EID_SIAPP_LOADBAL_BLOCK, "SIAPP Load Balance Block", TLV_TYPE_BLOCK_TLV, CONFIG_ERROR_BLOCK, 0, 0, 0, 0, 0, 0, 0},
1523 { EID_SIAPP_LOADBAL_PKT_TYPE, "SIAPP Load Balance PKT Type", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1524 { EID_SIAPP_LOADBAL_LOADGROUP_ID, "SIAPP Load Balance Load Group ID", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
1525 { EID_SIAPP_LOADBAL_LOAD_VALUE, "SIAPP Load Balance Load Value", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1526 { EID_SIAPP_AC_MGMT_MAC, "SIAPP Controller Management Mac Address", TLV_TYPE_MACADD, 0, 0, 0, 0, 0, 0, 0, 0},
1527 { EID_SIAPP_FILTER_COS, "SIAPP Filter Rule COS", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1528 { EID_COS, "Classes of Service(COS)", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
1529 { EID_RATE_LIMIT_RESOURCE_TBL, "Bandwidth Control Rate Limit Resource Table", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
1530 { EID_UCAST_FILTER_DISABLE, "Unicast Filter Disable Flag", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1531 { EID_MU_INFORM_REASON, "MU Information", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1532 { EID_MU_FILTER_POLICY_NAME, "MU Filter Rule Name", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
1533 { EID_MU_TOPOLOGY_POLICY_NAME, "MU Topology Name", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
1534 { EID_MU_COS_POLICY_NAME, "MU COS Name", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
1535 { EID_MU_FILTER_KEY, "MU Filter Rule ID", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1536 { EID_MU_TOPOLOGY_KEY, "MU Topology ID", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1537 { EID_MU_COS_KEY, "MU COS ID", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1538 { EID_MU_SESSION_TIMEOUT, "MU Session Life Time", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1539 { EID_MU_ACCOUNTING_CLASS, "MU Accounting Class", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1540 { EID_MU_LOGIN_LAT_PORT, "MU Login authentication state(0 = Non-auth, 1 = Auth)", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1541 { EID_MU_IDLE_TIMEOUT, "MU Session Idle Timeout", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1542 { EID_MU_ACCT_INTERIM_INTERVAL, "Client Acct-Interim-Interval(RADIUS)", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1543 { EID_MU_IP_ADDR, "MU IP Address", TLV_TYPE_IP_ADDR, 0, 0, 0, 0, 0, 0, 0, 0},
1544 { EID_MU_TERMINATE_ACTION, "MU Terminate Action", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1545 { EID_SITE_NAME, "Site Name", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
1546 { EID_PEER_SITE_IP, "Peer Site IP Address", TLV_TYPE_IP_ADDR, 0, 0, 0, 0, 0, 0, 0, 0},
1547 { EID_INTERFERENCE_EVENTS_ENABLE, "Interference Events Enable Flag", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1548 { EID_EVENT_TYPE, "Event Type", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1549 { EID_EVENT_CHANNEL, " Event Channel", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1550 { EID_EVENT_VALUE, "Event Value", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1551 { EID_SSS_MU_BLOCK, "Site Section MU Block", TLV_TYPE_BLOCK_TLV, TAB_SSS_MU_BLOCK, 0, 0, 0, 0, 0, 0, 0},
1552 { EID_SSS_MU_ASSOC_TIME, "Site Section MU Association Time", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1553 { EID_SSS_TS64_MU_UPDATE, "Site Section MU Update Time Stamp", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
1554 { EID_SSS_TS64_AP_CURRENT, "Site Section AccessPoint Current Time", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1555 { EID_SSS_MU_AUTH_STATE, "Site Section MU Authentication State", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1556 { EID_SSS_AP_HOMEHASH, "Site Section AccessPoint Home Hashed Value", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1557 { EID_TIME_FIRST_DETECTED, "First Detected Time", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1558 { EID_TIME_LAST_REPORTED, "Last Reported Time", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1559 { EID_EVENT_ARRAY, "Array Of Events", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
1560 { EID_SSS_DEFAULT_SESSION_TIMEOUT, "Site Section Default Timeout Time", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1561 { EID_SSS_SSID, "Site Section SSID", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
1562 { EID_SSS_PRIVACY_TYPE, "Site Section Privacy Type", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1563 { EID_POLICY_ZONE_NAME, "Policy Zone Name", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
1564 { EID_RU_AC_EVENT_COMPONENT_ID, "Event Component ID", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1565 { EID_MU_AUTH_STATE, "MU Authentication State", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1566 { EID_MU_USER_NAME, "MU User Name", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
1567 { EID_BULK_TYPE, "Bulk Type", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1568 { EID_SENT_TIME, "Sent Time", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1569 { EID_INFORM_MU_PMK, "Pairwise Master Key Informed From AP", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
1570 { EID_COLLECTOR_IP_ADDR, "Collector IP Address", TLV_TYPE_IP_ADDR, 0, 0, 0, 0, 0, 0, 0, 0 },
1571 { EID_ARP_PROXY, "Enable/Disable Proxying of ARP Per Topology", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
1572 { EID_MCAST_FILTER_RULES, "Multicast Filter Rules Per Topology", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
1573 { EID_AP_PARAMS, "AP Parameters", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
1574 { EID_ASSOC_SSID_ARRAY, "Array of Associated SSID", TLV_TYPE_BLOCK_TLV, TAB_ASSOC_SSID_ARRAY, 0, 0, 0, 0, 0, 0, 0},
1575 { EID_ASSOC_SSID_BLOCK, "Block of Associated SSID", TLV_TYPE_BLOCK_TLV, TAB_ASSOC_SSID_BLOCK, 0, 0, 0, 0, 0, 0, 0},
1576 { EID_AP_LIST_BLOCK, "Bloc of AP List", TLV_TYPE_BLOCK_TLV, TAB_AP_LIST_BLOCK, 0, 0, 0, 0, 0, 0, 0},
1577 { EID_AP_LIST_ARRAY, " Array of AP List", TLV_TYPE_BLOCK_TLV, TAB_AP_LIST_ARRAY, 0, 0, 0, 0, 0, 0, 0},
1578 { EID_MAC_ADDR, "MAC Address", TLV_TYPE_MACADD, 0, 0, 0, 0, 0, 0, 0, 0},
1579 { EID_SCAN_PROFILE_ID, "Scan Profile ID", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1580 { EID_ACTION_REQ, "Action Request", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1581 { EID_CHANNEL_LIST, "Channel List", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
1582 { EID_COUNTERMEASURES_MAX_CH, "CounterMeasures Max Channel", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1583 { EID_COUNTERMEASURES_SET, "Enable/disable CounterMeasures", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1584 { EID_SCAN_PROFILE_BLOCK, "Scan Profile Block", TLV_TYPE_BLOCK_TLV, TAB_SCAN_PROFILE_BLOCK, 0, 0, 0, 0, 0, 0, 0},
1585 { EID_SEQ_NUM, "Sequence Number", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1586 { EID_THREAT_DEF_ARRAY, "Array Of Threat Definition", TLV_TYPE_BLOCK_TLV, TAB_THREAT_DEF_ARRAY, 0, 0, 0, 0, 0, 0, 0},
1587 { EID_THREAT_DEF_BLOCK, "Block Of Threat Definition", TLV_TYPE_BLOCK_TLV, TAB_THREAT_DEF_BLOCK, 0, 0, 0, 0, 0, 0, 0},
1588 { EID_THREAT_TYPE, "Threat Type", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1589 { EID_THREAT_ID, "Threat ID", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1590 { EID_THREAT_STATS_F, "Threat State", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
1591 { EID_THREAT_FR_SFR, "Threat FR SFR", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1592 { EID_THREAT_PATTERN_ARRAY, "Array Of Threat Pattern", TLV_TYPE_BLOCK_TLV, TAB_THREAT_PATTERN_ARRAY, 0, 0, 0, 0, 0, 0, 0},
1593 { EID_THREAT_PATTERN_BLOCK, "Block Of Threat Pattern", TLV_TYPE_BLOCK_TLV, TAB_THREAT_PATTERN_BLOCK, 0, 0, 0, 0, 0, 0, 0},
1594 { EID_THREAT_PATTERN, "Threat Pattern", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
1595 { EID_THREAT_ALERT_TH_DUR, "Threat Alert", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1596 { EID_THREAT_CLEAR_TH_DUR, "Threat Clear", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1597 { EID_THREAT_PRIORITY, "Threat Priority", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1598 { EID_THREAT_MITIGATION_LIST, "Threat Mitigation List", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1599 { EID_SSS_MU_IS_PORT_CLOSED, "Enable/Disable Site Section MU Port", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1600 { EID_FULL_UPDATE, "Full Update", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1601 { EID_REASON, "Reason", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1602 { EID_SURVEILLANCE_DATA_ARRAY, "Array of Surveillance Data", TLV_TYPE_BLOCK_TLV, TAB_SURVEILLANCE_DATA_ARRAY, 0, 0, 0, 0, 0, 0, 0},
1603 { EID_SURVEILLANCE_DATA_BLOCK, "Block of Surveillance Data", TLV_TYPE_BLOCK_TLV, TAB_SURVEILLANCE_DATA_BLOCK, 0, 0, 0, 0, 0, 0, 0},
1604 { EID_SCAN_BSSID, "Scan BSSID", TLV_TYPE_MACADD, 0, 0, 0, 0, 0, 0, 0, 0},
1605 { EID_PARAMS, "Parameters", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1606 { EID_SCAN_RSS_RSSI, "Scan RSS and RSSI", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
1607 { EID_SCAN_SSID, "Scan SSID", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
1608 { EID_SCAN_CAP, "Scan Capability", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1609 { EID_THREAT_CLASSIFICATION, "Threat Classification", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1610 { EID_THREAT_DATA_ARRAY, "Array Of Threat Data", TLV_TYPE_BLOCK_TLV, TAB_THREAT_DATA_ARRAY, 0, 0, 0, 0, 0, 0, 0},
1611 { EID_THREAT_DATA_BLOCK, "Block Of Threat Data", TLV_TYPE_BLOCK_TLV, TAB_THREAT_DATA_BLOCK, 0, 0, 0, 0, 0, 0, 0},
1612 { EID_STATE, "State", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1613 { EID_DROP_FR_CNT, "Drop FR Count", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1614 { EID_STOP_ROAM_CNT, "Stop ROAM Count", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1615 { EID_SPOOF_CNT, "Spoof Count", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1616 { EID_THREAT_CLASSIFY_ARRAY, "Array Of Classify Threat", TLV_TYPE_BLOCK_TLV, TAB_THREAT_CLASSIFY_ARRAY, 0, 0, 0, 0, 0, 0, 0},
1617 { EID_THREAT_CLASSIFY_BLOCK, "Block Of Classify Threat", TLV_TYPE_BLOCK_TLV, TAB_THREAT_CLASSIFY_BLOCK, 0, 0, 0, 0, 0, 0, 0},
1618 { EID_THREAT_NAME, "Threat Name", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
1619 { EID_LOCATION, "Location", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
1620 { EID_ENCRYPTION_TYPE, "Encryption Type", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1621 { EID_MU_EVENT_ARRAY, "Array Of MU Events", TLV_TYPE_BLOCK_TLV, TAB_MU_EVENT_ARRAY, 0, 0, 0, 0, 0, 0, 0},
1622 { EID_MU_EVENT_BLOCK, "Block Of MU Events", TLV_TYPE_BLOCK_TLV, TAB_MU_EVENT_BLOCK, 0, 0, 0, 0, 0, 0, 0},
1623 { EID_COMPONENT_ID, "Component ID", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1624 { EID_MU_EVENT_STRING, "MU Event String", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
1625 { EID_BYPASS_BMCAST, "Bypass Broadcast and Multicast", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1626 { EID_GETTIMEOFDAY, "Get Time of Day", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1627 { EID_COUNTRY_ID, "Country ID", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1628 { EID_COUNTRY_ARRAY, "Array of Country", TLV_TYPE_BLOCK_TLV, TAB_COUNTRY_ARRAY, 0, 0, 0, 0, 0, 0, 0},
1629 { EID_COUNTRY_BLOCK, "Country Block", TLV_TYPE_BLOCK_TLV, TAB_COUNTRY_BLOCK, 0, 0, 0, 0, 0, 0, 0},
1630 { EID_MU_EVENT_TYPE, "MU Event Type", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1631 { EID_LOCATOR_FLOOR_ID, "Floor ID", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1632 { EID_LOCATOR_LOC_TYPE, "Location Type", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1633 { EID_LOCATOR_LOC_BLOCK, "Block of Location Data", TLV_TYPE_BLOCK_TLV, TAB_LOCATOR_LOC_BLOCK, 0, 0, 0, 0, 0, 0, 0},
1634 { EID_LOCATOR_LOC_ARRAY, "Array of Location Data", TLV_TYPE_BLOCK_TLV, TAB_LOCATOR_LOC_ARRAY, 0, 0, 0, 0, 0, 0, 0},
1635 { EID_LOCATOR_LOC_POINT, "Location Point", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
1636 { EID_MU_EVENT_DETAILS, "MU Event Details", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
1637 { EID_MU_EVENT_FROM_AP, "MU Event From AP", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1638 { EID_MU_EVENT_LOC_BLOCK, "Block of MU Location Event", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
1639 { EID_LOCATOR_LOC_AP_DISTANCE, "AP Location Distance", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1640 { EID_LOCATOR_LOC_PRECISION, "Location Precision", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1641 { EID_RSS_DATA_ARRAY, "Array of RSS Data", TLV_TYPE_BLOCK_TLV, TAB_RSS_DATA_ARRAY, 0, 0, 0, 0, 0, 0, 0},
1642 { EID_RSS_DATA_BLOCK, "Block of RSS Data", TLV_TYPE_BLOCK_TLV, TAB_RSS_DATA_BLOCK, 0, 0, 0, 0, 0, 0, 0},
1643 { EID_LOCATOR_MU_ACTION, "Location MU Action", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1644 { EID_EFFECTIVE_EGRESS_VLAN, "Effective Egress Vlan", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1645 { EID_REBOOT_ACK, "Reboot Acknowledgement", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1646 { EID_MU_BSSID, "MU BSSID", TLV_TYPE_MACADD, 0, 0, 0, 0, 0, 0, 0, 0},
1647 { EID_AUTH_FLAG, "Authentication Flag", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1648 { EID_ROAMED_FLAG, "ROAMED Flag", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1649 { EID_MU_RSS, "MU RSS", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1650 { EID_FILTER_RULES_VER, "Filter Rule Struct Version", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1651 { EID_FILTER_TYPE, "Filter Rule Type", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1652 { EID_MCAST_FILTER_BLOCK, "Multicast Filter Rule Block", TLV_TYPE_BLOCK_TLV, TAB_MCAST_FILTER_BLOCK, 0, 0, 0, 0, 0, 0, 0},
1653 { EID_MCAST_FILTER_BLOCK_ENTRY, "Multicast Filter Rule Block Entry", TLV_TYPE_BLOCK_TLV, TAB_MCAST_FILTER_BLOCK_ENTRY, 0, 0, 0, 0, 0, 0, 0},
1654 { EID_DEFAULT_ACTION_TYPE, "Default Action Type", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1655 { EID_DEFAULT_CONTAIN_TO_VLAN, "Default Contain to Vlan Flag", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1656 { EID_DEFAULT_BRIDGE_MODE, "Default Bridge Mode Flag", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1657 { EID_INVALID_POLICY, "Invalid Policy Flag", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1658 { EID_LOCATOR_FLOOR_NAME, "Floor Name", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
1659 { EID_AP_FLAGS, "AP Flags", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1660 { EID_AP_PVID, "AP PVID", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1661 { EID_AP_REDIRECT, "AP Redirect Flag", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1662 { EID_MU_CVLAN_BAP, "AP Contain to Vlan Has Bridge At AP Topology Flag", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1663 { EID_MU_SESSION_ARRAY, "Array Of MU Session", TLV_TYPE_BLOCK_TLV, TAB_MU_SESSION_ARRAY, 0, 0, 0, 0, 0, 0, 0},
1664 { EID_MU_SESSION_BLOCK, "MU Session Block", TLV_TYPE_BLOCK_TLV, TAB_MU_SESSION_BLOCK, 0, 0, 0, 0, 0, 0, 0},
1665 { EID_MU_SESSION_ID, "MU Session ID", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1666 { EID_MU_RFS_NAME, "MU RFS Name", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
1667 { EID_MU_FLAGS, "MU Flags", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1668 { EID_MU_ASSOC_TIME, "MU Associated Time", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1669 { EID_MU_ACTIVE_TIME, "MU Actived Time", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1670 { EID_REPORT_REQ, "Report Request", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1671 { EID_MU_URL, "MU Captive Portal Url", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
1672 { EID_MU_SESSION_LIFETIME, "MU Session Life Time", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1673 { EID_MU_REAUTH_TIMER, "MU Re-Authentication Timer", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1674 { EID_MU_ACCT_SESSION_ID_STRING, "MU Acct Session ID String", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
1675 { EID_MU_ACCT_POLICY_NAME, "MU Acct Policy Name", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
1676 { EID_MU_ACCT_START_TIME, "MU Acct Start Time", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1677 { EID_MU_ACCT_CLASS, "MU Acct Class", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1678 { EID_MU_LOGIN_LAT_GROUP, "MU Login Group", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1679 { EID_MU_TUNNEL_PRIVATE_GROUP_ID_STRING, "MU Tunnel Private Group ID String", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
1680 { EID_MU_USER_ID_STRING, "MU User ID String", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
1681 { EID_MU_DEFENDED_STATE, "MU Defended State", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1682 { EID_MU_MOD_MASK, "MU Modulation Maske", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1683 { EID_LOCATOR_TRACKED, "Locator Tracked", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1684 { EID_PORT, "Port", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1685 { EID_RETRIES_COUNT, "Retries Count", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1686 { EID_MODULATION_TYPE, "Modulation Type", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1687 { EID_DETECTED_ROGUE_ARRAY, "Array Of Detected Rogue", TLV_TYPE_BLOCK_TLV, TAB_DETECTED_ROGUE_ARRAY, 0, 0, 0, 0, 0, 0, 0},
1688 { EID_DETECTED_ROGUE_BLOCK, "Detected Rogue Block", TLV_TYPE_BLOCK_TLV, TAB_DETECTED_ROGUE_BLOCK, 0, 0, 0, 0, 0, 0, 0},
1689 { EID_ROGUE_DETECTION, "Rogue Detection", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1690 { EID_MAC_ADDR_TX, "Tx Mac Address", TLV_TYPE_MACADD, 0, 0, 0, 0, 0, 0, 0, 0},
1691 { EID_MAC_ADDR_RX, "Rx Mac Address", TLV_TYPE_MACADD, 0, 0, 0, 0, 0, 0, 0, 0},
1692 { EID_IP_ADDR_TX, "Tx IP Address", TLV_TYPE_IP_ADDR, 0, 0, 0, 0, 0, 0, 0, 0},
1693 { EID_IP_ADDR_RX, "Rx IP Address", TLV_TYPE_IP_ADDR, 0, 0, 0, 0, 0, 0, 0, 0},
1694 { EID_TTL, "TTL", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1695 { EID_GW_IP_ADDR, "Gateway IP Address", TLV_TYPE_IP_ADDR, 0, 0, 0, 0, 0, 0, 0, 0},
1696 { EID_LOCATOR_STATE_DATA, "Location State Data", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1697 { EID_LOCATOR_POINT_SET, "Location Point Set", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1698 { EID_FILTER_RULE_FIXED_APP_ID, "Filter Rule Fixed Application ID", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
1699 { EID_FILTER_RULES_EXT_BLOCK, "Filter Rule Extended Block", TLV_TYPE_BLOCK_TLV, TAB_FILTER_RULES_EXT_BLOCK, 0, 0, 0, 0, 0, 0, 0},
1700 { EID_MU_AREA_BLOCK, "MU Area Block", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
1701 { EID_MU_LOCATION, "MU Location", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
1702 { EID_MU_LOCATION_TS, "MU Location Time Stamp", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1703 { EID_DNS_IP_ADDR, "DNS IP Address", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
1704 { EID_IN_SERVICE_AP_LIST, "In-Service AP List", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
1705 { EID_OUT_SERVICE_AP_LIST, "Out of Service AP List", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
1706 { EID_LAST_RD_AP, "Last RD AP", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
1707 { EID_ROGUE_INFO, "Rogue Info", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
1708 { EID_MU_IS_FT, "Enable/Disable MU Fast Transition", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1709 { EID_MU_PMK_R1, "MU Fast Transition Roaming", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
1710 { EID_SIAPP_R0KHID, "SIAPP R0KH ID", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
1711 { EID_SIAPP_R1KHID, "SIAPP R1KH ID", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
1712 { EID_SIAPP_FT_NONCE, "SIAPP Fast Transition Nonce", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
1713 { EID_SIAPP_FT_PMKR0NAME, "SIAPP Fast Transition PMKR0 Name", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
1714 { EID_SIAPP_FT_R1KHID, "SIAPP Fast Transition R1KH ID", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
1715 { EID_SIAPP_FT_S1KHID, "SIAPP Fast Transition S1KH ID", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
1716 { EID_SIAPP_FT_PMKR1, "SIAPP Fast Transition PMKR1", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
1717 { EID_SIAPP_FT_PMKR1NAME, "SIAPP Fast Transition PMKR1 Name", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
1718 { EID_SIAPP_FT_PAIRWISE, "SIAPP Fast Transition Pairwise", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
1719 { EID_SIAPP_FT_LIFETIME, "SIAPP Fast Transition Life Time", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
1720 { EID_MU_POWER_CAP, "MU Power Capable", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
1721 { EID_AREA_NAME, "Area Name", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
1722 { EID_PERIODIC_NEIGHBOUR_REPORT, "Periodic Neighbour Report", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
1723 { EID_TIMESTAMP, "Time Stamp", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1724 { EID_NEIGHBOUR_ENTRY, "Neighbour Entry", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
1725 { EID_MU_REQ, "MU Request", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1726 { EID_RU_REQ, "RU Request", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1727 { EID_NEIGHBOUR_REQ, "Neighbour Request", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1728 { EID_SSS_FT_ASSOC, "Site Section Fast Transition Association", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1729 { EID_DEFAULT_MIRRORN, "Enables the First N Packets of a Flow to The Controller", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1730 { EID_FILTER_RULE_EXT_ACT_FLAGS, "Extension to Filter Rule Definition. Specifies Additional Actions Per Filter Rule", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1731 { EID_TOPO_GROUP_MAPPING, "Topology Group Mapping", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1732 { EID_MU_PMK_R0NAME, "MU Pairwise Master Key R0 Name", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
1733 { EID_CUI, "CUI", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
1734 { EID_SSS_CAPINFO, "Site Section CAP Info", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1735 { EID_SSS_CAPPOWER, "Site Section CAP Power", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1736 { EID_WFA_VSA, "WFA Vendor Specific Hotspot", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1737 { EID_WFA_HS20_REMED_METHOD, "Online Signup Method for HS2.0 Remediation", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1738 { EID_WFA_HS20_URL, "Remediation Server Url for Online Signup In HS2.0", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
1739 { EID_WFA_HS20_DEAUTH_CODE, "WFA HS20 De-Authentication Code", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1740 { EID_WFA_HS20_REAUTH_DELAY, "WFA HS20 Re-Authentication Delay", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1741 { EID_WFA_HS20_SWT, "WFA HS20 SWT", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1742 { EID_POWER_STATUS, "Power Status", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
1743 { EID_IPV6_ADDR, "IPV6 Address", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
1744 { EID_FILTER_RULES_APP_SIG_GROUP_ID, "Filter Rule Application Signature Group ID", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1745 { EID_FILTER_RULES_APP_SIG_DISP_ID, "Filter Rule Application Signature Display ID", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
1746 { EID_MU_DEV_IDENTITY, "MU Device ID", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
1747 { EID_APPL_STATS_REQ, "Application Rule Stats Request", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
1748 { EID_MU_APPL_STATS_BLOCK, "MU Application Rule Stats Block", TLV_TYPE_BLOCK_TLV, TAB_MU_APPL_STATS_BLOCK, 0, 0, 0, 0, 0, 0, 0},
1749 { EID_TOPOLOGY_ARRAY, "Array of Topologies", TLV_TYPE_BLOCK_TLV, TAB_TOPOLOGY_ARRAY_BLOCK, 0, 0, 0, 0, 0, 0, 0},
1750 { EID_TOPOLOGY_STRUCT, "Topology Struct", TLV_TYPE_BLOCK_TLV, TAB_TOPOLOGY_STRUCT_BLOCK, 0, 0, 0, 0, 0, 0, 0},
1751 { EID_FILTER_CONFIG_STRUCT, "Filter Rule Configuration Struct", TLV_TYPE_BLOCK_TLV, TAB_FILTER_CONFIG_STRUCT_BLOCK, 0, 0, 0, 0, 0, 0, 0},
1752 { EID_DHCP_HOST_NAME, "DHCP Host Name", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
1753 { EID_NEIGHBOUR_ENTRY_2, "Neighbour Entry 2", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
1754 { EID_CHANNEL_ENTRY, "Channel Entry", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
1755 { EID_MU_ECP_PW, "MU External Captive Portal Password", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
1756 { EID_MU_ECP_TOKEN, "MU External Captive Portal Token", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
1757 { EID_STATIC_VSA_IPADDR, "AP Endpoint on Overlay Network IP Address", TLV_TYPE_IP_ADDR, 0, 0, 0, 0, 0, 0, 0, 0},
1758 { EID_STATIC_VSA_NETMASK, "AP Endpoint on Overlay Network IP Mask", TLV_TYPE_IP_ADDR, 0, 0, 0, 0, 0, 0, 0, 0},
1759 { EID_PKT_CAPTURE_STATUS, "Packet Capture Status", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
1760 { EID_PKT_CAPTURE_FILTERS, "Packet Capture Filters", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
1761 { EID_PKT_F_WIRELESS, "Enable Packet Capture On Wireless", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
1762 { EID_PKT_F_WIREDCLIENT, "Enable Packet Capture on Wired Client", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
1763 { EID_PKT_F_DIRECTION, "Packet Capture Direction", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
1764 { EID_PKT_F_RADIO, "Packet Capture on Radio", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
1765 { EID_PKT_F_FLAGS, "Packet Capture Flag", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
1766 { EID_PKT_F_IP_ARRAY, "Array of Packet Capture IP Addresses", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
1767 { EID_PKT_F_MAC, "Array of Packet Capture Mac Addresses", TLV_TYPE_MACADD, 0, 0, 0, 0, 0, 0, 0, 0},
1768 { EID_PKT_F_PROTOCOL, "Packet Capture On Protocol", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
1769 { EID_PKT_F_PORT, "Packet Capture On Port", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
1770 { EID_VSA_SSID_ID, "VSA SSID ID", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
1771 { EID_MU_AUTH_TYPE, "MU Authentication Type", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
1772 { EID_PKT_F_MAX_PKT_COUNT, "Max Captured Packet Count", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
1773 { EID_PKT_F_FLAG_2, "Packet Capture Flag 2", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
1774 { EID_IMAGE_PORT, "Image Port", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
1775 { EID_FILTER_ROLE_ID, " Filter Rule ID", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
1776 { EID_FILTER_ROLE_TIMESTAMP, " Time Stamp of When Role Was Last Changed", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
1777 { EID_MAX, "EID_MAX", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0}
1784 typedef enum
1786 EID_CONFIG_UNUSED_0 = 0,
1787 EID_RADIO_CONFIG_BLOCK,
1788 EID_VNS_CONFIG_BLOCK,
1789 EID_AP_ROLE,
1790 EID_LOC_ACTION_REQ,
1791 EID_TRACE_STATUS_DEBUG,
1792 EID_TRACE_STATUS_CONFIG,
1793 EID_MIC_ERR,
1794 EID_USE_BCAST_FOR_DISASSC,
1795 EID_BANDWIDTH_VOICE_ASSC,
1796 EID_BANDWIDTH_VOICE_REASSC,
1797 EID_BANDWIDTH_VIDEO_ASSC,
1798 EID_BANDWIDTH_VIDEO_REASSC,
1799 EID_BANDWIDTH_VIDEO_RESERVE,
1800 EID_BANDWIDTH_ADM_CTRL_RESERVE,
1801 EID_VLAN_TAG,
1802 EID_COUNTRY_CODE,
1803 EID_POLL_DURATION,
1804 EID_POLL_INTERVAL,
1805 EID_LOC_AUTO_COLLECT_ENABLE,
1806 EID_POLL_MAINTAIN_CLIENT_SESSION,
1807 EID_TELNET_ENABLE,
1808 EID_TELNET_PASSWORD,
1809 EID_TELNET_PASSWORD_ENTRY_MODE,
1810 EID_OUTDOOR_ENABLE,
1811 EID_ON_DEMAND_ARRAY,
1812 EID_LAG_ENABLED,
1813 EID_APP_POLICY_FIXED_BLOCK,
1814 EID_SLP_RETRY_COUNT,
1815 EID_SLP_RETRY_DELAY,
1816 EID_DNS_RETRY_COUNT,
1817 EID_DNS_RETRY_DELAY,
1818 EID_MCAST_SLP_RETRY_COUNT,
1819 EID_MCAST_SLP_RETRY_DELAY,
1820 EID_DISC_RETRY_COUNT,
1821 EID_DISC_RETRY_DELAY,
1822 EID_LOGGING_ALARM_SEV,
1823 EID_BLACKLIST_ADD,
1824 EID_FAILOVER_AC_IP_ADDR,
1825 EID_STATIC_AC_IP_ADDR,
1826 EID_DHCP_ASSIGNMENT,
1827 EID_STATIC_AP_IP_ADDR,
1828 EID_STATIC_AP_IP_NETMASK,
1829 EID_STATIC_AP_DEFAULT_GW,
1830 EID_BLACKLIST_DEL,
1831 EID_MACADDR_REQ,
1832 EID_AVAILABILITY_MODE,
1833 EID_AP_PERSISTENCE,
1834 EID_FOREIGN_AP,
1835 EID_SUPP1X_CREDENTIAL_REMOVE,
1836 EID_SUPP1X_CERT_TFTP_IP,
1837 EID_SUPP1X_CERT_TFTP_PATH,
1838 EID_SUPP1X_PRIVATE,
1839 EID_SUPP1X_DOMAIN,
1840 EID_SUPP1X_USERID,
1841 EID_SUPP1X_PASSWORD,
1842 EID_SUPP1X_CREDENT,
1843 EID_SUPP1X_SERIAL,
1844 EID_SUPP1X_START_DATE,
1845 EID_SUPP1X_END_DATE,
1846 EID_SUPP1X_ISSUED_BY,
1847 EID_SUPP1X_ISSUED_TO,
1848 EID_SUPP1X_SUBJALTNAME,
1849 EID_NOT_USED_CONFIG_TLV_63,
1850 EID_FAILOVER_AC_HOME_IP_ADDR,
1851 EID_FAILOVER_AC_FOREIGN_IP_ADDR,
1852 EID_AP_HOSTNAME,
1853 EID_LLDP_ENABLED,
1854 EID_LLDP_TTL,
1855 EID_LLDP_ANNOUNCEMENT_INT,
1856 EID_LLDP_ANNOUNCEMENT_DELAY,
1857 EID_VOWIFI_EXPIRATION_TIME,
1858 EID_MOBILITY_SHARED_KEY,
1859 EID_CHANNEL_REPORT_2_4G,
1860 EID_CHANNEL_REPORT_5G,
1861 EID_RATE_CONTROL_BLOCK,
1862 EID_AP_DNS,
1863 EID_STATIC_MTU,
1864 EID_MACFILTER_MODE,
1865 EID_SITE_CONFIG_BLOCK,
1866 EID_TOPOLOGY_BLOCK,
1867 EID_AP_NAME,
1868 EID_ANTENNA_MODELS,
1869 EID_AIRTIME_FAIRNESS_LEVEL,
1870 EID_VLAN_DEFAULT,
1871 EID_CLUSTER_PASSWORD,
1872 EID_SIAPP_PRIVACY,
1873 EID_LED_STATUS,
1874 EID_LBS_SRC_IP,
1875 EID_LBS_SRC_PORT,
1876 EID_LBS_DST_IP,
1877 EID_LBS_DST_PORT,
1878 EID_LBS_MCAST,
1879 EID_LBS_TAG_MODE,
1880 EID_ETH_PORT_MODE,
1881 EID_INTER_AP_ROAM,
1882 EID_MGMT_MAC,
1883 EID_REAL_CAPTURE_TIMEOUT,
1884 EID_POLICY_BLOCK,
1885 EID_FILTER_CONFIG_BLOCK,
1886 EID_COS_CONFIG_BLOCK,
1887 EID_LOCATION_BASED_LOOKUP_BLOCK,
1888 EID_RADIUS_SERVER_BLOCK,
1889 EID_DISC_RETRY_DELAY_WOUI_ADD,
1890 EID_DISC_RETRY_DELAY_WOUI_DEL,
1891 EID_SNIFFER_RADIO_BITMAP,
1892 EID_MCAST_ASSEMB,
1893 EID_JUMBO_FRAME,
1894 EID_DYN_ON_DEMAND_ARRAY,
1895 EID_BANDWIDTH_BE_ASSC,
1896 EID_BANDWIDTH_BE_REASSC,
1897 EID_BANDWIDTH_BK_ASSC,
1898 EID_BANDWIDTH_BK_REASSC,
1899 EID_NETFLOW_EXPORT_INTERVAL,
1900 EID_MIRRORN_PACKETS,
1901 EID_ICON_NAME,
1902 EID_ICON_FILE,
1903 EID_ICON_BLOCK,
1904 EID_BOARD_STATUS,
1905 EID_CP_MU_AUTO_LOGIN,
1906 EID_EXTAPP_CONF_BLOCK,
1907 EID_RB_REDIRECT,
1908 EID_RB_REDIRECT_PORTS,
1909 EID_S_TOPOLOGY_ARRAY,
1910 EID_S_TOPOLOGY_STRUCT,
1911 EID_S_TOPOLOGY_KEY,
1912 EID_S_TOPOLOGY_VLAN_TAG,
1913 EID_S_TOPOLOGY_ARP_PROXY,
1914 EID_S_TOPO_MCAST_FILTER_CONFIG_BLOCK,
1915 EID_MCAST_PRIORITIZED_VOICE,
1916 EID_IOT_CONTROL,
1917 EID_IOT_APPLICATION_ID,
1918 EID_AP_LOCATION,
1919 EID_IOT_ADMIN,
1920 EID_IOT_IMAGE,
1921 EID_IOT_BLE_ADVERTISE_INTERVAL,
1922 EID_IOT_BLE_ADVERTISE_POWER,
1923 EID_IOT_IBEACON_MAJOR,
1924 EID_IOT_IBEACON_MINOR,
1925 EID_IOT_IBEACON_UUID,
1926 EID_STATIC_ADSP_IP_ADDR,
1927 EID_OBSS_CHAN_ADJ_ACTIVE,
1928 EID_IOT_BLE_SCAN_SRC_IP,
1929 EID_IOT_BLE_SCAN_SRC_PORT,
1930 EID_IOT_BLE_SCAN_DST_IP,
1931 EID_IOT_BLE_SCAN_DST_PORT,
1932 EID_IOT_BLE_SCAN_INTERVAL,
1933 EID_IOT_BLE_SCAN_WINDOW,
1934 EID_IOT_BLE_SCAN_MIN_RSSI,
1935 EID_LISENSE_SERVER,
1936 EID_LISENSE_MIN_RSSI,
1937 EID_LISENSE_REP_FREQ,
1938 EID_DPI_SIG_HASH,
1939 EID_ANT_MODELS_IOT,
1940 EID_FABRICATTACH_ARRAY,
1941 EID_IOT_THREAD_CHANNEL,
1942 EID_IOT_THREAD_FACTORY_RESET,
1943 EID_IOT_THREAD_SHORT_PAN_ID,
1944 EID_IOT_THREAD_SHORT_EUI,
1945 EID_IOT_THREAD_PSKD,
1946 EID_IOT_THREAD_MASTER_KEY,
1947 EID_IOT_THREAD_NWK_NAME,
1948 EID_IOT_THREAD_COMM_CREDENTIAL,
1949 EID_IOT_THREAD_LONG_EUI,
1950 EID_IOT_THREAD_EXTENDED_PAN_ID,
1951 EID_AP_VSA_SSID_ID,
1952 EID_AP_STATIC_VSA_IPADDR,
1953 EID_AP_STATIC_VSA_NETMASK,
1954 EID_IOT_BLE_URL,
1955 EID_AP_PERSONALITY,
1956 EID_ADSP_RADIO_SHARE,
1957 EID_LOCATION_TENANT_ID,
1958 EID_IOT_BLE_BEACON_MEASURED_RSSI,
1959 EID_MU_NUM_RADAR_BACK
1960 } wassp_subtlv_config_type_t;
1962 /***************************************************
1963 get define from packet-wassp.h 's wassp_subtlv_config_type_t struct
1965 ****************************************************/
1967 static const TLV_PARSER_ENTRY tlvGlobalConfigTable[] =
1969 { EID_CONFIG_UNUSED_0, "Unused 0", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1970 { EID_RADIO_CONFIG_BLOCK, "Radio Configuration Block", TLV_TYPE_BLOCK_TLV, RADIO_CONFIG_BLOCK, 0, 0, 0, 0, 0, 0, 0},
1971 { EID_VNS_CONFIG_BLOCK, "VNS Configuration Block", TLV_TYPE_BLOCK_TLV, VNS_CONFIG_BLOCK, 0, 0, 0, 0, 0, 0, 0},
1972 { EID_AP_ROLE, "AccessPoint Role(0 - Traffic Forwarder, 1 - Dedicated Scanner, 2 - ADSP Sensor)", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1973 { EID_LOC_ACTION_REQ, "Enable RSS Collection for Positioning Engine Request", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1974 { EID_TRACE_STATUS_DEBUG, "Enable Trace Debug", TLV_TYPE_BOOL, 0, 0, 0, 0, 0, 0, 0, 0},
1975 { EID_TRACE_STATUS_CONFIG, "Enable Trace Configuration", TLV_TYPE_BOOL, 0, 0, 0, 0, 0, 0, 0, 0},
1976 { EID_MIC_ERR, "Message Integrity Check on AP26xx", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1977 { EID_USE_BCAST_FOR_DISASSC, "Use Broadcast for Client Disassociation", TLV_TYPE_BOOL, 0, 0, 0, 0, 0, 0, 0, 0},
1978 { EID_BANDWIDTH_VOICE_ASSC, "Admission Control: Maximum Bandwidth for Voice Clients", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1979 { EID_BANDWIDTH_VOICE_REASSC, "Admission Control: Maximum Bandwidth for Reassociation of Voice Clients", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1980 { EID_BANDWIDTH_VIDEO_ASSC, "Admission Control: Maximum Bandwidth for Video Clients", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1981 { EID_BANDWIDTH_VIDEO_REASSC, "Admission Control: Maximum Bandwidth for Reassociation of Video Clients", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1982 { EID_BANDWIDTH_VIDEO_RESERVE, "Admission Control: Maximum Bandwidth for Reserve of Video Clients", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1983 { EID_BANDWIDTH_ADM_CTRL_RESERVE, "Admission Control: Maximum Bandwidth for Reserve of Admin", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1984 { EID_VLAN_TAG, "VLAN Tag of AP Uplink", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
1985 { EID_COUNTRY_CODE, "Country Code", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1986 { EID_POLL_DURATION, "Poll Timeout in Seconds", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1987 { EID_POLL_INTERVAL, "Poll Interval in Seconds", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1988 { EID_LOC_AUTO_COLLECT_ENABLE, "Enable Auto Collection of RSS for Positioning Engine", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1989 { EID_POLL_MAINTAIN_CLIENT_SESSION, "Enable Maintaining of Client Session When Poll to Controller Times Out", TLV_TYPE_BOOL, 0, 0, 0, 0, 0, 0, 0, 0},
1990 { EID_TELNET_ENABLE, "Enable SSH Access to AP", TLV_TYPE_BOOL, 0, 0, 0, 0, 0, 0, 0, 0},
1991 { EID_TELNET_PASSWORD, "Hash SSH Password", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
1992 { EID_TELNET_PASSWORD_ENTRY_MODE, "Telnet Password Entry Mode", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1993 { EID_OUTDOOR_ENABLE, "AP Environment (1 - Indoor, 2 - Outdoor)", TLV_TYPE_BOOL, 0, 0, 0, 0, 0, 0, 0, 0},
1994 { EID_ON_DEMAND_ARRAY, "Array of MAC Addresses to Collect RSS for Positioning Engine (each element is 6 bytes)", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
1995 { EID_LAG_ENABLED, "Enable Link Aggregation on Uplink Ethernet Ports", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1996 { EID_APP_POLICY_FIXED_BLOCK, "Application Definition for Layer 4 Filters ", TLV_TYPE_BLOCK_TLV, TAB_APP_POLICY_FIXED_BLOCK, 0, 0, 0, 0, 0, 0, 0},
1997 { EID_SLP_RETRY_COUNT, "Retry Count for SLP Discovery", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1998 { EID_SLP_RETRY_DELAY, "Delay Between SLP Retries", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
1999 { EID_DNS_RETRY_COUNT, "Retry Count for DNS Discovery", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2000 { EID_DNS_RETRY_DELAY, "Delay Between DNS Retries", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2001 { EID_MCAST_SLP_RETRY_COUNT, "Retry Count for Multicast SLP Discovery", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2002 { EID_MCAST_SLP_RETRY_DELAY, "Delay Between Multicast SLP Retries", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2003 { EID_DISC_RETRY_COUNT, "Retry Count for Discovery", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2004 { EID_DISC_RETRY_DELAY, "Delay Between Discovery Retries", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
2005 { EID_LOGGING_ALARM_SEV, "Minimum Severity of Event to Report", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2006 { EID_BLACKLIST_ADD, "Add Clients to MAC Access List", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
2007 { EID_FAILOVER_AC_IP_ADDR, "Array of Controllers IP Addresses for Legacy Failover", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
2008 { EID_STATIC_AC_IP_ADDR, "Array of Static Controller IP Addresses", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
2009 { EID_DHCP_ASSIGNMENT, "Uplink IP Address Assignment (0 - Static, 1 - DHCP)", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2010 { EID_STATIC_AP_IP_ADDR, "Uplink Static IP Address", TLV_TYPE_IP_ADDR, 0, 0, 0, 0, 0, 0, 0, 0},
2011 { EID_STATIC_AP_IP_NETMASK, "Uplink Netmask", TLV_TYPE_IP_ADDR, 0, 0, 0, 0, 0, 0, 0, 0},
2012 { EID_STATIC_AP_DEFAULT_GW, "Uplink Default Gateway", TLV_TYPE_IP_ADDR, 0, 0, 0, 0, 0, 0, 0, 0},
2013 { EID_BLACKLIST_DEL, "Remove Clients from MAC Access List", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
2014 { EID_MACADDR_REQ, "Request to Send Radio BSSIDs in Config Acknowledge", TLV_TYPE_BOOL, 0, 0, 0, 0, 0, 0, 0, 0},
2015 { EID_AVAILABILITY_MODE, "Availability Mode", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2016 { EID_AP_PERSISTENCE, "Keep Client Sessions When Connection to Controller Times Out", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2017 { EID_FOREIGN_AP, "Home AP = 0, Foreign AP = 1", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2018 { EID_SUPP1X_CREDENTIAL_REMOVE, "Remove Credential from AP,type: bitmask (1 - EAP-TLS, 2 - PEAP)", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2019 { EID_SUPP1X_CERT_TFTP_IP, "TFTP Server IP Address for EAP-TLS Credential", TLV_TYPE_IP_ADDR, 0, 0, 0, 0, 0, 0, 0, 0},
2020 { EID_SUPP1X_CERT_TFTP_PATH, "TFTP Path for EAP-TLS Credential", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
2021 { EID_SUPP1X_PRIVATE, "EAP-TLS Private Key, Blowfish Encrypted", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
2022 { EID_SUPP1X_DOMAIN, "Community Domain", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
2023 { EID_SUPP1X_USERID, "PEAP User Id", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
2024 { EID_SUPP1X_PASSWORD, "PEAP Password, Blowfish Encrypted", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
2025 { EID_SUPP1X_CREDENT, "Credential Configuration of AP", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2026 { EID_SUPP1X_SERIAL, "Certificate Serial", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
2027 { EID_SUPP1X_START_DATE, "Certificate Start Date", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2028 { EID_SUPP1X_END_DATE, "Certificate Expiry Date", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2029 { EID_SUPP1X_ISSUED_BY, "Certificate Issuer Name", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
2030 { EID_SUPP1X_ISSUED_TO, "Certificate Issued to Name", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
2031 { EID_SUPP1X_SUBJALTNAME, "Certificate Subject Alternative Name (Required From Microsoft)", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
2032 { EID_NOT_USED_CONFIG_TLV_63, "Not Used", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2033 { EID_FAILOVER_AC_HOME_IP_ADDR, "Array of Home Controller IP Addresses", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
2034 { EID_FAILOVER_AC_FOREIGN_IP_ADDR, "Array of Foreign Controller IP Addresses", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
2035 { EID_AP_HOSTNAME, "AP Hostname", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
2036 { EID_LLDP_ENABLED, "Enable LLDP", TLV_TYPE_BOOL, 0, 0, 0, 0, 0, 0, 0, 0},
2037 { EID_LLDP_TTL, "LLDP Time To Live", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2038 { EID_LLDP_ANNOUNCEMENT_INT, "LLDP Announcement Interval", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2039 { EID_LLDP_ANNOUNCEMENT_DELAY, "LLDP Announcement Delay", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2040 { EID_VOWIFI_EXPIRATION_TIME, "Voice Over WiFi Expiration Time", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2041 { EID_MOBILITY_SHARED_KEY, "Encrypted With Blowfish Using AP Serial Number As Seed", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
2042 { EID_CHANNEL_REPORT_2_4G, "Channel Report Based On 2.4GHz", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
2043 { EID_CHANNEL_REPORT_5G, "Channel Report Based On 5GHz", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
2044 { EID_RATE_CONTROL_BLOCK, "Rate Control Block For Site", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
2045 { EID_AP_DNS, "AP DNS", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
2046 { EID_STATIC_MTU, "Uplink Static MTU", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2047 { EID_MACFILTER_MODE, "MAC Access List Mode (1 - Blacklist, 2 - Whitelist)", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2048 { EID_SITE_CONFIG_BLOCK, "Configuration Block for Site", TLV_TYPE_BLOCK_TLV, TAB_CONFIG_SITE, 0, 0, 0, 0, 0, 0, 0},
2049 { EID_TOPOLOGY_BLOCK, "Topology Configuration Block for Site", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
2050 { EID_AP_NAME, "AP Name", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
2051 { EID_ANTENNA_MODELS, "Array of Antenna Model IDs", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
2052 { EID_AIRTIME_FAIRNESS_LEVEL, "Airtime Fairness Level: 0-4", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2053 { EID_VLAN_DEFAULT, "Thick AP Default Vlan (Untagged: -1, Vlan: 0~4094)", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2054 { EID_CLUSTER_PASSWORD, "SIAPP Cluster Password", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
2055 { EID_SIAPP_PRIVACY, "Enable SIAPP Encryption", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2056 { EID_LED_STATUS, "LED Status (0 - Off, 1 - WDS Signal Strength, 2 - Locate, 3 - Normal)", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2057 { EID_LBS_SRC_IP, "Location Base Service Source IP Address", TLV_TYPE_IP_ADDR, 0, 0, 0, 0, 0, 0, 0, 0},
2058 { EID_LBS_SRC_PORT, "Location Base Service Source Port", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2059 { EID_LBS_DST_IP, "Location Base Service Destination IP Address", TLV_TYPE_IP_ADDR, 0, 0, 0, 0, 0, 0, 0, 0},
2060 { EID_LBS_DST_PORT, "Location Base Service Destination Port", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2061 { EID_LBS_MCAST, "Location Base Service Multicast", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
2062 { EID_LBS_TAG_MODE, "Location Base Service Tag Mode", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
2063 { EID_ETH_PORT_MODE, "Ethernet Port Mode", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
2064 { EID_INTER_AP_ROAM, "Inter AP Roam", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2065 { EID_MGMT_MAC, "Management Mac Address", TLV_TYPE_MACADD, 0, 0, 0, 0, 0, 0, 0, 0},
2066 { EID_REAL_CAPTURE_TIMEOUT, "Real Capture Time Out", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
2067 { EID_POLICY_BLOCK, "Policy Block", TLV_TYPE_BLOCK_TLV, TAB_CONFIG_POLICY, 0, 0, 0, 0, 0, 0, 0},
2068 { EID_FILTER_CONFIG_BLOCK, "Filter Rule Configuration Block", TLV_TYPE_BLOCK_TLV, TAB_CONFIG_FILTER, 0, 0, 0, 0, 0, 0, 0},
2069 { EID_COS_CONFIG_BLOCK, "COS Configuration Block", TLV_TYPE_BLOCK_TLV, TAB_CONFIG_COS, 0, 0, 0, 0, 0, 0, 0},
2070 { EID_LOCATION_BASED_LOOKUP_BLOCK, "Location Based Lookup Block", TLV_TYPE_BLOCK_TLV, TAB_CONFIG_LOC_BASE_LP, 0, 0, 0, 0, 0, 0, 0},
2071 { EID_RADIUS_SERVER_BLOCK, "RADIUS Server Block", TLV_TYPE_BLOCK_TLV, TAB_CONFIG_RADIUS_SERVER, 0, 0, 0, 0, 0, 0, 0},
2072 { EID_DISC_RETRY_DELAY_WOUI_ADD, "Blacklist WOUI Add", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2073 { EID_DISC_RETRY_DELAY_WOUI_DEL, "Blacklist WOUI Delete", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2074 { EID_SNIFFER_RADIO_BITMAP, "Sniffer Radio Bit Map", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2075 { EID_MCAST_ASSEMB, "Multicast Assemble", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2076 { EID_JUMBO_FRAME, "Jumbo Frame", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2077 { EID_DYN_ON_DEMAND_ARRAY, "Location Dynamic On-demand MAC List", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
2078 { EID_BANDWIDTH_BE_ASSC, "Best Effort Bandwidth for Association", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2079 { EID_BANDWIDTH_BE_REASSC, "Best Effort Bandwidth for Reassociation", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2080 { EID_BANDWIDTH_BK_ASSC, "Background Bandwidth for Association", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2081 { EID_BANDWIDTH_BK_REASSC, "Background Bandwidth for Reassociation", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2082 { EID_NETFLOW_EXPORT_INTERVAL, "Netflow Export Interval", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2083 { EID_MIRRORN_PACKETS, "MirrorN Packets", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2084 { EID_ICON_NAME, "Hotspot 2.0 ICON Name", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
2085 { EID_ICON_FILE, "Hotspot 2.0 ICON File", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
2086 { EID_ICON_BLOCK, "Hotspot 2.0 ICON Block", TLV_TYPE_BLOCK_TLV, VNS_CONFIG_BLOCK, 0, 0, 0, 0, 0, 0, 0},
2087 { EID_BOARD_STATUS, "Board Status", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2088 { EID_CP_MU_AUTO_LOGIN, "Client Auto Login Handling: 0 : Hide Auto Login, 1 : Redirect Auto Login, 2 : Drop Auto Login", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2089 { EID_EXTAPP_CONF_BLOCK, "Application Control Configuration Block", TLV_TYPE_BLOCK_TLV, TAB_EXTAPP_CONF_BLOCK, 0, 0, 0, 0, 0, 0, 0},
2090 { EID_RB_REDIRECT, "Role Based Redirection", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2091 { EID_RB_REDIRECT_PORTS, "Role Based Redirection Ports", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
2092 { EID_S_TOPOLOGY_ARRAY, "Array of Site Topologies", TLV_TYPE_BLOCK_TLV, TAB_S_TOPOLOGY_ARRAY_BLOCK, 0, 0, 0, 0, 0, 0, 0},
2093 { EID_S_TOPOLOGY_STRUCT, "Site Topology Struct", TLV_TYPE_BLOCK_TLV, TAB_S_TOPOLOGY_STRUCT_BLOCK, 0, 0, 0, 0, 0, 0, 0},
2094 { EID_S_TOPOLOGY_KEY, "Site Topology Key", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2095 { EID_S_TOPOLOGY_VLAN_TAG, "Site Topology Vlan Tag", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2096 { EID_S_TOPOLOGY_ARP_PROXY, "Site Topology Arp Proxy", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
2097 { EID_S_TOPO_MCAST_FILTER_CONFIG_BLOCK, "Site Topology Multicast Filter Configuration Block", TLV_TYPE_BLOCK_TLV, TAB_S_TOPO_MCAST_FILTER_CONFIG_BLOCK, 0, 0, 0, 0, 0, 0, 0},
2098 { EID_MCAST_PRIORITIZED_VOICE, "Multicast Prioritized Voice", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2099 { EID_IOT_CONTROL, "IOT Control", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2100 { EID_IOT_APPLICATION_ID, "IOT Application ID", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2101 { EID_AP_LOCATION, "AP Location", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
2102 { EID_IOT_ADMIN, "Enable/Disable IOT Admin", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2103 { EID_IOT_IMAGE, "Enable IoT-KW41Z Image Upgrade", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2104 { EID_IOT_BLE_ADVERTISE_INTERVAL, "IOT BLE Advertise Interval", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2105 { EID_IOT_BLE_ADVERTISE_POWER, "IOT BLE Advertise Power", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2106 { EID_IOT_IBEACON_MAJOR, "IOT Ibeacon Major", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2107 { EID_IOT_IBEACON_MINOR, "IOT Ibeacon Minor", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2108 { EID_IOT_IBEACON_UUID, "IOT Ibeacon UUID", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
2109 { EID_STATIC_ADSP_IP_ADDR, "Set ADSP Url", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
2110 { EID_OBSS_CHAN_ADJ_ACTIVE, "Set Auto Channel Width", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2111 { EID_IOT_BLE_SCAN_SRC_IP, "IOT BLE Scan Source IP Address", TLV_TYPE_IP_ADDR, 0, 0, 0, 0, 0, 0, 0, 0},
2112 { EID_IOT_BLE_SCAN_SRC_PORT, "IOT BLE Scan Source Port", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2113 { EID_IOT_BLE_SCAN_DST_IP, "IOT BLE Scan Destination IP Address", TLV_TYPE_IP_ADDR, 0, 0, 0, 0, 0, 0, 0, 0},
2114 { EID_IOT_BLE_SCAN_DST_PORT, "IOT BLE Scan Destination Port", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2115 { EID_IOT_BLE_SCAN_INTERVAL, "IOT BLE Scan Interval In Milliseconds", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2116 { EID_IOT_BLE_SCAN_WINDOW, "IOT BLE Scan Window In Milliseconds", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2117 { EID_IOT_BLE_SCAN_MIN_RSSI, "IOT BLE Scan Min RSSI", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2118 { EID_LISENSE_SERVER, "License Server", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
2119 { EID_LISENSE_MIN_RSSI, "License Min RSSI", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2120 { EID_LISENSE_REP_FREQ, "License Report Frequency", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2121 { EID_DPI_SIG_HASH, "Deep Packet Inspection Signature Hash", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
2122 { EID_ANT_MODELS_IOT, "Antanna Type for IOT Radio", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2123 { EID_FABRICATTACH_ARRAY, "Array Of FabricAttach ID", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
2124 { EID_IOT_THREAD_CHANNEL, "IoT-Thread Network Parameter 802.15.4 Channel", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2125 { EID_IOT_THREAD_FACTORY_RESET, "IoT-Thread Network Factory Reset", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2126 { EID_IOT_THREAD_SHORT_PAN_ID, "IoT-Thread Network Parameter PAN ID", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
2127 { EID_IOT_THREAD_SHORT_EUI, "IoT-Thread network Parameter EUI", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
2128 { EID_IOT_THREAD_PSKD, "IoT-Thread network Parameter PSKd - Pre-Shared Key for the Device", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
2129 { EID_IOT_THREAD_MASTER_KEY, "IoT-Thread Network Parameter: Master Key", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
2130 { EID_IOT_THREAD_NWK_NAME, "IoT-Thread Network Name", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
2131 { EID_IOT_THREAD_COMM_CREDENTIAL, "IoT-Thread Commissioner Credential", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
2132 { EID_IOT_THREAD_LONG_EUI, "IoT-Thread Network Parameter EUI", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
2133 { EID_IOT_THREAD_EXTENDED_PAN_ID, "IoT-Thread Network Parameter PAN ID", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
2134 { EID_AP_VSA_SSID_ID, "Configure VSA Interface", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2135 { EID_AP_STATIC_VSA_IPADDR, "Configure VSA IP Address", TLV_TYPE_IP_ADDR, 0, 0, 0, 0, 0, 0, 0, 0},
2136 { EID_AP_STATIC_VSA_NETMASK, "Configure VSA Network Mask", TLV_TYPE_IP_ADDR, 0, 0, 0, 0, 0, 0, 0, 0},
2137 { EID_IOT_BLE_URL, "IoT-Eddystone URL Parameter", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
2138 { EID_AP_PERSONALITY, "WING Or Identifi AP 1: WING AP, 0 : Identifi AP", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2139 { EID_ADSP_RADIO_SHARE, "ADSP Radio Share Mode", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2140 { EID_LOCATION_TENANT_ID, "Location Tenant ID", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0}
2145 /*Members of EID_S_TOPO_MCAST_FILTER_CONFIG_BLOCK: */
2146 typedef enum
2148 EID_S_TOPO_MCAST_FILTER_NAME = 1,
2149 EID_S_TOPO_MCAST_FILTER_RULES,
2150 EID_S_TOPO_MCAST_FILTER_RULES_EXT_BLOCK
2151 } wassp_tlv_S_topo_mcast_type_t;
2154 static const TLV_PARSER_ENTRY tlvSTopoMcastFilterBlock[] =
2156 { EID_S_TOPO_MCAST_FILTER_NAME, "Site Topology Multicast Filter Name", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
2157 { EID_S_TOPO_MCAST_FILTER_RULES, "Site Topology Multicast Filter Rules", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
2158 { EID_S_TOPO_MCAST_FILTER_RULES_EXT_BLOCK, "Site Topology Multicast Filter Rules Block", TLV_TYPE_BLOCK_TLV, TAB_S_TOPO_MCAST_FILTER_RULES_EXT_BLOCK, 0, 0, 0, 0, 0, 0, 0}
2164 /* Members of EID_S_TOPO_MCAST_FILTER_RULES_EXT_BLOCK: */
2165 typedef enum
2167 EID_S_TOPO_MCAST_FILTER_RULE_EXT_ACT_FLAGS = 1,
2168 EID_S_TOPO_MCAST_FILTER_RULES_IPV6
2170 } wassp_tlv_S_topo_mcast_rule_type_t;
2172 static const TLV_PARSER_ENTRY tlvSTopoMcastFilterRuleBlock[] =
2174 { EID_S_TOPO_MCAST_FILTER_RULE_EXT_ACT_FLAGS, "Site Topology Multicast Filter Rule Action Flags", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
2175 { EID_S_TOPO_MCAST_FILTER_RULES_IPV6, "Site Topology Multicast Filter Rule IPv6 Addresses", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0}
2182 /* TLV Stats Types Layer 1 */
2183 typedef enum
2185 EID_DOT11_NOT_USED = 0, // 0
2186 EID_DOT11_ACKFailureCount, // 1
2187 EID_DOT11_FCSErrorCount, // 2
2188 EID_DOT11_FailedCount, // 3
2189 EID_DOT11_FrameDuplicateCount, // 4
2190 EID_DOT11_MulticastReceivedFrameCount, // 5
2191 EID_DOT11_MulticastTransmittedFrameCount, // 6
2192 EID_DOT11_MultipleRetryCount, // 7
2193 EID_DOT11_RTSFailureCount, // 8
2194 EID_DOT11_RTSSuccessCount, // 9
2195 EID_DOT11_ReceivedFragmentCount, // 10
2196 EID_DOT11_RetryCount, // 11
2197 EID_DOT11_TransmittedFragmentCount, // 12
2198 EID_DOT11_TransmittedFrameCount, // 13
2199 EID_DOT11_WEBUndecryptableCount, // 14
2200 EID_DOT11_WEPExcludedCount, // 15
2201 EID_DOT11_WEPICVErrorCount, // 16
2202 EID_DRM_AllocFailures, // 17
2203 EID_DRM_CurrentChannel, // 18
2204 EID_DRM_CurrentPower, // 19
2205 EID_DRM_DataTxFailures, // 20
2206 EID_DRM_DeviceType, // 21
2207 EID_DRM_InDataPackets, // 22
2208 EID_DRM_InMgmtPackets, // 23
2209 EID_DRM_LoadFactor, // 24
2210 EID_DRM_MgmtTxFailures, // 25
2211 EID_DRM_MsgQFailures, // 26
2212 EID_DRM_NoDRMCurrentChannel, // 27
2213 EID_DRM_OutDataPackets, // 28
2214 EID_DRM_OutMgmtPackets, // 29
2215 EID_IF_InBcastPackets, // 30
2216 EID_IF_InDiscards, // 31
2217 EID_IF_InErrors, // 32
2218 EID_IF_InMcastPackets, // 33
2219 EID_IF_InOctets, // 34
2220 EID_IF_InUcastPackets, // 35
2221 EID_IF_MTU, // 36
2222 EID_IF_OutBcastPackets, // 37
2223 EID_IF_OutDiscards, // 38
2224 EID_IF_OutErrors, // 39
2225 EID_IF_OutOctets, // 40
2226 EID_IF_OutUcastPackets, // 41
2227 EID_IF_OutMCastPackets, // 42
2228 EID_MU_Address, // 43
2229 EID_MU_AssociationCount, // 44
2230 EID_MU_AuthenticationCount, // 45
2231 EID_MU_DeAssociationCount, // 46
2232 EID_MU_DeAuthenticationCount, // 47
2233 EID_MU_IfIndex, // 48
2234 EID_MU_ReAssociationCount, // 49
2235 EID_MU_ReceivedBytes, // 50
2236 EID_MU_ReceivedErrors, // 51
2237 EID_MU_ReceivedFrameCount, // 52
2238 EID_MU_ReceivedRSSI, // 53
2239 EID_MU_ReceivedRate, // 54
2240 EID_MU_TransmittedBytes, // 55
2241 EID_MU_TransmittedErrors, // 56
2242 EID_MU_TransmittedFrameCount, // 57
2243 EID_MU_TransmittedRSSI, // 58
2244 EID_MU_TransmittedRate, // 59
2245 EID_MU_RF_STATS_END, // 60
2246 EID_RFC_1213_SYSUPTIME, // 61
2247 EID_STATS_ETHER_BLOCK, // 62
2248 EID_STATS_RADIO_A_BLOCK, // 63
2249 EID_STATS_RADIO_B_G_BLOCK, // 64
2250 EID_MU_STATS_BLOCK, // 65
2251 EID_STATS_WDS_BLOCK, // 66
2252 EID_WDS_ROLE, // 67
2253 EID_WDS_PARENTMAC, // 68
2254 EID_WDS_SSID, // 69
2255 EID_STATS_SUPP1x_BLOCK, // 70
2256 EID_STATS_SUPP1X_CREDENT, // 71
2257 EID_STATS_SUPP1X_END_DATE, // 72
2258 EID_DOT11_ProtectionMode, // 73
2259 EID_MU_TSPEC_Stats_Block, // 74
2260 EID_DOT11_ChannelBonding, // 75
2261 EID_DCS_STAS_NF, // 76
2262 EID_DCS_STAS_CHANN_OCCUPANCY, // 77
2263 EID_DCS_STAS_TX_OCCUPANCY, // 78
2264 EID_DCS_STAS_RX_OCCUPANCY, // 79
2265 EID_CAC_DEAUTH, // 80
2266 EID_MU_IP, // 81
2267 EID_STATS_CHECK, // 82
2268 EID_WDS_BONDING, // 83
2269 EID_MU_ReceivedRSS, // 84
2270 EID_MU_RadioIndex, // 85
2271 EID_MU_FltPktAllowed, // 86
2272 EID_MU_FltPktDenied, // 87
2273 EID_MU_FltName, // 88
2274 EID_MU_FltReset, // 89
2275 EID_MU_DL_DroppedRateControlPackets, // 90
2276 EID_MU_DL_DroppedRateControlBytes, // 91
2277 EID_MU_DL_DroppedBufferFullPackets, // 92
2278 EID_MU_DL_DroppedBufferFullBytes, // 93
2279 EID_MU_DL_LostRetriesPackets, // 94
2280 EID_MU_DL_LostRetriesBytes, // 95
2281 EID_MU_UL_DroppedRateControlPackets, // 96
2282 EID_MU_UL_DroppedRateControlBytes, // 97
2283 EID_SiappClusterName, // 98
2284 EID_LB_LoadGroupID, // 99
2285 EID_LB_LoadValue, // 100
2286 EID_LB_MemberCount, // 101
2287 EID_LB_ClientCount, // 102
2288 EID_LB_LoadState, // 103
2289 EID_LB_ProbeReqsDeclined, // 104
2290 EID_LB_AuthReqsDeclined, // 105
2291 EID_LB_RebalanceEvents, // 106
2292 EID_MU_DOT11_CAPABILITY, // 107
2293 EID_BAND_PREFERENCE_STATS, // 108
2294 EID_R_LC_STATUS, // 109
2295 EID_WDS_ROAM_COUNT, // 110
2296 EID_WDS_TX_RETRIES, // 111
2297 EID_RealCaptureTimeout, // 112
2298 EID_MU_11N_ADVANCED, // 113
2299 EID_MU_Count, // 114
2300 EID_R_Clear_channel, // 115
2301 EID_R_RX_Occupancy, // 116
2302 EID_STATS_VNS_BLOCK, // 117
2303 EID_STATS_VNS_ENTRY, // 118
2304 EID_ETH_STATUS, // 119
2305 EID_LAG_ACT_AGGREGATE_STATUS, // 120
2306 EID_PERFORMANCE_STATS, // 121
2307 EID_APPL_STATS, // 122
2308 EID_APPL_COUNT, // 123
2309 EID_APPL_MAC, // 124
2310 EID_APPL_DISPLAY_ID, // 125
2311 EID_APPL_TX_BYTES, // 126
2312 EID_APPL_RX_BYTES, // 127
2313 EID_MU_TRANSMITTED_MCS, // 128
2314 EID_MU_TOTAL_LOST_FRAMES, // 129
2315 EID_MU_DL_AGGR_SIZE, // 130
2316 EID_RX_PHYS_ERRORS, // 131
2317 EID_RADIO_HARDWARE_RESET, // 132
2318 EID_TOTAL_PACKET_ERROR_RATE, // 133
2319 EID_STATS_PORT_BLOCK, // 134
2320 EID_PORT_ID, // 135
2321 EID_MU_RADIO_ID, // 136
2322 EID_IF_LinkSpeed, // 137
2323 EID_MU_DL_RETRY_ATTEMPTS, // 138
2324 EID_FILTER_STATS_BLOCK, // 139
2325 EID_FILTER_STATS_RULES_BLOCK, // 140
2326 EID_ROLE_ID, // 141
2327 EID_ROLE_TIMESTAMP, // 142
2328 EID_DEFAULT_HIT_COUNT_IN, // 143
2329 EID_DEFAULT_HIT_COUNT_OUT, // 144
2330 EID_RULE_HIT_COUNT_IN, // 145
2331 EID_RULE_HIT_COUNT_OUT, // 146
2332 EID_STATS_RADIO_ID, // 147
2333 EID_STATS_RADIO_BLOCK, // 148
2334 EID_MU_RFQI, // 149
2335 EID_RADIO_RFQI, // 150
2336 EID_IF_InBcastPackets_D, // 151
2337 EID_IF_InDiscards_D, // 152
2338 EID_IF_InErrors_D, // 153
2339 EID_IF_InMcastPackets_D, // 154
2340 EID_IF_InOctets_D, // 155
2341 EID_IF_InUcastPackets_D, // 156
2342 EID_IF_OutBcastPackets_D, // 157
2343 EID_IF_OutDiscards_D, // 158
2344 EID_IF_OutErrors_D, // 159
2345 EID_IF_OutOctets_D, // 160
2346 EID_IF_OutUcastPackets_D, // 161
2347 EID_IF_OutMCastPackets_D, // 162
2348 EID_MU_ReceivedFrameCount_D, // 163
2349 EID_MU_TransmittedFrameCount_D, // 164
2350 EID_MU_ReceivedErrors_D, // 165
2351 EID_MU_TransmittedErrors_D, // 166
2352 EID_MU_ReceivedBytes_D, // 167
2353 EID_MU_TransmittedBytes_D, // 168
2354 EID_MU_rc_ul_dropped_pkts_D, // 169
2355 EID_MU_rc_ul_dropped_bytes_D, // 170
2356 EID_MU_rc_dl_dropped_pkts_D, // 171
2357 EID_MU_rc_dl_dropped_bytes_D, // 172
2358 EID_STATS_TLV_MAX // Make shure this is the MAX
2359 } wassp_tlv_stats_1_type_t;
2362 /* Value string object enumerates wassp tlv type field */
2363 static const TLV_PARSER_ENTRY tlvBeastConfigTable[] =
2365 { EID_DOT11_NOT_USED, "DOT11Unused 0", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2366 { EID_DOT11_ACKFailureCount, "802.11 Ack Failure Count", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2367 { EID_DOT11_FCSErrorCount, "802.11 FCS Error Count", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2368 { EID_DOT11_FailedCount, "802.11 Failed Count", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2369 { EID_DOT11_FrameDuplicateCount, "802.11 Frame Duplicated Count", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2370 { EID_DOT11_MulticastReceivedFrameCount, "802.11 Multicast Received Frame Count", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2371 { EID_DOT11_MulticastTransmittedFrameCount, "802.11 Multicast Transmitted Frame Count", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2372 { EID_DOT11_MultipleRetryCount, "802.11 Multiple Retry Count", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2373 { EID_DOT11_RTSFailureCount, "802.11 RTS Failure Count", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2374 { EID_DOT11_RTSSuccessCount, "802.11 RTS Success Count", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2375 { EID_DOT11_ReceivedFragmentCount, "802.11 Received Fragment Count", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2376 { EID_DOT11_RetryCount, "802.11 Retry Count", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2377 { EID_DOT11_TransmittedFragmentCount, "802.11 Transmitted Fragment Count", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2378 { EID_DOT11_TransmittedFrameCount, "802.11 Transmitted Frame Count", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2379 { EID_DOT11_WEBUndecryptableCount, "802.11 WEP Undecryptable Count", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2380 { EID_DOT11_WEPExcludedCount, "802.11 WEP Excluded Count", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2381 { EID_DOT11_WEPICVErrorCount, "802.11 WEP ICV Error Count", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2382 { EID_DRM_AllocFailures, "802.11 DRM Allocated Failures", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2383 { EID_DRM_CurrentChannel, "802.11 DRM Current Channel", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2384 { EID_DRM_CurrentPower, "802.11 DRM Current Power", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2385 { EID_DRM_DataTxFailures, "802.11 DRM Data Tx Failures", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2386 { EID_DRM_DeviceType, "802.11 DRM Device Type", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2387 { EID_DRM_InDataPackets, "802.11 DRM In Data Packets", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2388 { EID_DRM_InMgmtPackets, "802.11 DRM In Management Packets", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2389 { EID_DRM_LoadFactor, "802.11 DRM Load Factor", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2390 { EID_DRM_MgmtTxFailures, "802.11 DRM Management Tx Failures", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2391 { EID_DRM_MsgQFailures, "802.11 DRM Message Q Failures", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2392 { EID_DRM_NoDRMCurrentChannel, "802.11 No DRM Current Channel", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2393 { EID_DRM_OutDataPackets, "802.11 DRM Out Data Packets", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2394 { EID_DRM_OutMgmtPackets, "802.11 DRM Out Management Packets", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2395 { EID_IF_InBcastPackets, "Interface In Bcast Packets", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2396 { EID_IF_InDiscards, "Interface In Discards", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2397 { EID_IF_InErrors, "Interface In Errors", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2398 { EID_IF_InMcastPackets, "Interface In Mcast Packets", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2399 { EID_IF_InOctets, "Interface In Octets", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2400 { EID_IF_InUcastPackets, "Interface In Ucast Packets", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2401 { EID_IF_MTU, "Interface MTU", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2402 { EID_IF_OutBcastPackets, "Interface Out Bcast Packets", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2403 { EID_IF_OutDiscards, "Interface Out Discards", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2404 { EID_IF_OutErrors, "Interface Out Errors", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2405 { EID_IF_OutOctets, "Interface Out Octets", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2406 { EID_IF_OutUcastPackets, "Interface Out Ucast Packets", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2407 { EID_IF_OutMCastPackets, "Interface Out MCast Packets", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2408 { EID_MU_Address, "MU Address", TLV_TYPE_MACADD, 0, 0, 0, 0, 0, 0, 0, 0},
2409 { EID_MU_AssociationCount, "MU Association Count", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2410 { EID_MU_AuthenticationCount, "MU Authentication Count", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2411 { EID_MU_DeAssociationCount, "MU DeAssociation Count", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2412 { EID_MU_DeAuthenticationCount, "MU DeAuthentication Count", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2413 { EID_MU_IfIndex, "MU Interface Index", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2414 { EID_MU_ReAssociationCount, "MU ReAssociation Count", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2415 { EID_MU_ReceivedBytes, "MU Received Bytes", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2416 { EID_MU_ReceivedErrors, "MU Received Errors", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2417 { EID_MU_ReceivedFrameCount, "MU Received Frame Count", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2418 { EID_MU_ReceivedRSSI, "MU Received RSSI", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2419 { EID_MU_ReceivedRate, "MU Received Rate", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2420 { EID_MU_TransmittedBytes, "MU Transmitted Bytes", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2421 { EID_MU_TransmittedErrors, "MU Transmitted Errors", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2422 { EID_MU_TransmittedFrameCount, "MU Transmitted Frame Count", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2423 { EID_MU_TransmittedRSSI, "MU Transmitted RSSI", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2424 { EID_MU_TransmittedRate, "MU Transmitted Rate", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2425 { EID_MU_RF_STATS_END, "MU RF Stats End", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2426 { EID_RFC_1213_SYSUPTIME, "RFC1213 System Up Time", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2427 { EID_STATS_ETHER_BLOCK, "Stats Ethernet Block", TLV_TYPE_BLOCK_TLV, TAB_STATS_ETH, 0, 0, 0, 0, 0, 0, 0},
2428 { EID_STATS_RADIO_A_BLOCK, "Stats Radio A Block", TLV_TYPE_BLOCK_TLV, TAB_STATS_RADIO, 0, 0, 0, 0, 0, 0, 0},
2429 { EID_STATS_RADIO_B_G_BLOCK, "Stats Radio BG Block", TLV_TYPE_BLOCK_TLV, TAB_STATS_RADIO, 0, 0, 0, 0, 0, 0, 0},
2430 { EID_MU_STATS_BLOCK, "MU Stats Block", TLV_TYPE_BLOCK_TLV, STATS_MU_BLOCK, 0, 0, 0, 0, 0, 0, 0},
2431 { EID_STATS_WDS_BLOCK, "Stats WDS Block", TLV_TYPE_BLOCK_TLV, TAB_STATS_WDS, 0, 0, 0, 0, 0, 0, 0},
2432 { EID_WDS_ROLE, "WDS Role", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2433 { EID_WDS_PARENTMAC, "WDS Parent Name", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
2434 { EID_WDS_SSID, "WDS SSID", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
2435 { EID_STATS_SUPP1x_BLOCK, "802.11X Stats Block", TLV_TYPE_BLOCK_TLV, TAB_STATS_WDS, 0, 0, 0, 0, 0, 0, 0},
2436 { EID_STATS_SUPP1X_CREDENT, "802.11X Credent", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2437 { EID_STATS_SUPP1X_END_DATE, "802.11X Expiry Date", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2438 { EID_DOT11_ProtectionMode, "802.11 Protection Mode", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2439 { EID_MU_TSPEC_Stats_Block, "MU TSPEC Stats Block", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
2440 { EID_DOT11_ChannelBonding, "802.11 Channel Bonding", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2441 { EID_DCS_STAS_NF, "DCS STAS NF", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2442 { EID_DCS_STAS_CHANN_OCCUPANCY, "DCS Stats Channel Occupancy", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2443 { EID_DCS_STAS_TX_OCCUPANCY, "DCS Stats Tx Occupancy", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2444 { EID_DCS_STAS_RX_OCCUPANCY, "DCS Stats Rx Occupancy", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2445 { EID_CAC_DEAUTH, "CAC DeAuthentication", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2446 { EID_MU_IP, "MU IP", TLV_TYPE_IP_ADDR, 0, 0, 0, 0, 0, 0, 0, 0},
2447 { EID_STATS_CHECK, "Stats Check", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2448 { EID_WDS_BONDING, "WDS Bonding", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2449 { EID_MU_ReceivedRSS, "MU Received RSS", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2450 { EID_MU_RadioIndex, "MU Radio Index", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2451 { EID_MU_FltPktAllowed, "MU Allowed Packet", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2452 { EID_MU_FltPktDenied, "MU Denied Packet", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2453 { EID_MU_FltName, "MU Filter Rule Name", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
2454 { EID_MU_FltReset, "MU Filter Reset", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2455 { EID_MU_DL_DroppedRateControlPackets, "MU Down Link Dropped Rate Control Packets", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2456 { EID_MU_DL_DroppedRateControlBytes, "MU Down Link Dropped Rate Control Bytes", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2457 { EID_MU_DL_DroppedBufferFullPackets, "MU Down Link Dropped Buffer Full Packets", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2458 { EID_MU_DL_DroppedBufferFullBytes, "MU Down Link Dropped Buffer Full Bytes", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2459 { EID_MU_DL_LostRetriesPackets, "MU Down Link Lost Retries Packets", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2460 { EID_MU_DL_LostRetriesBytes, "MU Down Link Lost Retries Bytes", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2461 { EID_MU_UL_DroppedRateControlPackets, "MU Up Link Dropped Rate Control Packets", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2462 { EID_MU_UL_DroppedRateControlBytes, "MU Up Link Dropped Rate Control Bytes", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2463 { EID_SiappClusterName, "Siapp Cluster Mac address", TLV_TYPE_MACADD, 0, 0, 0, 0, 0, 0, 0, 0},
2464 { EID_LB_LoadGroupID, "Load Balance Load Group ID", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
2465 { EID_LB_LoadValue, "Load Balance Load value", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2466 { EID_LB_MemberCount, "Load Balance Member Count", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2467 { EID_LB_ClientCount, "Load Balance Client Count", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2468 { EID_LB_LoadState, "Load Balance Load State", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2469 { EID_LB_ProbeReqsDeclined, "Load Balance Probe Request Declined", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2470 { EID_LB_AuthReqsDeclined, "Load Balance Authentication request Declined", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2471 { EID_LB_RebalanceEvents, "Load Balance Rebalance Events", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2472 { EID_MU_DOT11_CAPABILITY, "MU 802.11 Capability", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2473 { EID_BAND_PREFERENCE_STATS, "Band Preference Stats", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2474 { EID_R_LC_STATUS, "Radio Load Control Stats", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2475 { EID_WDS_ROAM_COUNT, "WDS Roam Count", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2476 { EID_WDS_TX_RETRIES, "WDS Tx Retries", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2477 { EID_RealCaptureTimeout, "Real Capture Timeout", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
2478 { EID_MU_11N_ADVANCED, "MU 802.11N Advanced", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2479 { EID_MU_Count, "MU Count", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2480 { EID_R_Clear_channel, "Radio Clear Channel", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2481 { EID_R_RX_Occupancy, "Radio Rx Occupancy", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2482 { EID_STATS_VNS_BLOCK, "VNS Stats Block", TLV_TYPE_BLOCK_TLV, TAB_STATS_VNS, 0, 0, 0, 0, 0, 0, 0},
2483 { EID_STATS_VNS_ENTRY, "VNS Stats Entry", TLV_TYPE_BLOCK_TLV, TAB_STATS_VNS, 0, 0, 0, 0, 0, 0, 0},
2484 { EID_ETH_STATUS, "Ethernet Stats", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2485 { EID_LAG_ACT_AGGREGATE_STATUS, "LAG Aggregate Stats", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
2486 { EID_PERFORMANCE_STATS, "Performance Stats", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
2487 { EID_APPL_STATS, "Application Stats", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2488 { EID_APPL_COUNT, "Application Count", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2489 { EID_APPL_MAC, "Application Mac Address", TLV_TYPE_MACADD, 0, 0, 0, 0, 0, 0, 0, 0},
2490 { EID_APPL_DISPLAY_ID, "Application Display ID", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2491 { EID_APPL_TX_BYTES, "Application Tx Bytes", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2492 { EID_APPL_RX_BYTES, "Application Rx Bytes", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2493 { EID_MU_TRANSMITTED_MCS, "MU Transmitted MCS", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2494 { EID_MU_TOTAL_LOST_FRAMES, "MU Total Lost Frames", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2495 { EID_MU_DL_AGGR_SIZE, "MU Down Link Aggregate Size", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2496 { EID_RX_PHYS_ERRORS, "Rx Phys Errors", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2497 { EID_RADIO_HARDWARE_RESET, "Radio hardware Reset", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2498 { EID_TOTAL_PACKET_ERROR_RATE, "total Packet Error Rate", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2499 { EID_STATS_PORT_BLOCK, "ports Stats Block", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
2500 { EID_PORT_ID, "Port ID", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2501 { EID_MU_RADIO_ID, "MU Radio ID", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2502 { EID_IF_LinkSpeed, "Interface Link Speed", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2503 { EID_MU_DL_RETRY_ATTEMPTS, "MU Down Link Retry Attempts", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2504 { EID_FILTER_STATS_BLOCK, "Filter Stats Block", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
2505 { EID_FILTER_STATS_RULES_BLOCK, "Filter Stats Rules Block", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
2506 { EID_ROLE_ID, "Role ID", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2507 { EID_ROLE_TIMESTAMP, "Role Timestamp", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2508 { EID_DEFAULT_HIT_COUNT_IN, "Default In Direction Hit Count", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2509 { EID_DEFAULT_HIT_COUNT_OUT, "Default Out Direction Hit Count", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2510 { EID_RULE_HIT_COUNT_IN, "Role In Direction Hit Count", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2511 { EID_RULE_HIT_COUNT_OUT, "Role Out Direction Hit Count", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2512 { EID_STATS_RADIO_ID, "Stats Radio ID", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2513 { EID_STATS_RADIO_BLOCK, "Stats Radio ID Block", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
2514 { EID_MU_RFQI, "MU RFQI", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2515 { EID_RADIO_RFQI, "Radio RFQI", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2516 { EID_IF_InBcastPackets_D, "Interface In Bcast Packets Delta Value Since Last Message", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
2517 { EID_IF_InDiscards_D, "Interface In Discards Packets Delta Value Since Last Message", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
2518 { EID_IF_InErrors_D, "Interface In Error Packets Delta Value Since Last Message", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
2519 { EID_IF_InMcastPackets_D, "Interface In Mcast Packets Delta Value Since Last Message", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
2520 { EID_IF_InOctets_D, "Interface In Octets Delta Value Since Last Message", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
2521 { EID_IF_InUcastPackets_D, "Interface In Ucast Packets Delta Value Since Last Message", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
2522 { EID_IF_OutBcastPackets_D, "Interface Out Bcast Packets Delta Value Since Last Message", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
2523 { EID_IF_OutDiscards_D, "Interface Out Discards Packets Delta Value Since Last Message", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
2524 { EID_IF_OutErrors_D, "Interface Out Error Packets Delta Value Since Last Message", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
2525 { EID_IF_OutOctets_D, "Interface Out Octets Delta Value Since Last Message", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
2526 { EID_IF_OutUcastPackets_D, "Interface Out Ucast Packets Delta Value Since Last Message", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
2527 { EID_IF_OutMCastPackets_D, "Interface Out Mcast Packets Delta Value Since Last Message", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
2528 { EID_MU_ReceivedFrameCount_D, "MU Received Fram Count Delta Value Since Last Message", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
2529 { EID_MU_TransmittedFrameCount_D, "MU Transmitted Fram Count Delta Value Since Last Message", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
2530 { EID_MU_ReceivedErrors_D, "MU Received Error Count Delta Value Since Last Message", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
2531 { EID_MU_TransmittedErrors_D, "MU Transmitted Error Count Delta Value Since Last Message", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
2532 { EID_MU_ReceivedBytes_D, "MU Received Bytes Delta Value Since Last Message", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
2533 { EID_MU_TransmittedBytes_D, "MU Transmitted Bytes Delta Value Since Last Message", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
2534 { EID_MU_rc_ul_dropped_pkts_D, "MU Received Up Link Dropped Packets Delta Value Since Last Message", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
2535 { EID_MU_rc_ul_dropped_bytes_D, "MU Received Up Link Dropped Bytes Delta Value Since Last Message", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
2536 { EID_MU_rc_dl_dropped_pkts_D, "MU Received Down Link Dropped Packets Delta Value Since Last Message", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
2537 { EID_MU_rc_dl_dropped_bytes_D, "MU Received Down Link Dropped Bytes Delta Value Since Last Message", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
2538 { EID_STATS_TLV_MAX, "Last Stats TLV",0, 0, 0, 0, 0, 0, 0, 0, 0}
2544 #define WASSP_MAX_DECR_INFO_NUM 18
2545 #define WASSP_MAX_SUBTREE_LEN 50
2546 #define EID_PARSE_ERROR (EID_MAX+1)
2548 #define SET_WASSP_TLV_VERSION(val) (g_wassp_ver = (val))
2549 #define GET_WASSP_TLV_VERSION() (g_wassp_ver)
2551 // #define WASSP_PRINT printf
2552 #define WASSP_PRINT
2554 #define WASSP_SUBTLV_GET_NAME(in_ptr) ((in_ptr)->name)
2555 #define WASSP_SUBTLV_GET_TYPE(in_ptr) ((in_ptr)->type)
2559 typedef enum
2561 EID_R_UNUSED_0 = 0,
2562 EID_R_RADIO_ID,
2563 EID_R_ENABLE_RADIO,
2564 EID_R_CHANNEL,
2565 EID_R_OP_RATE_SET,
2566 EID_R_OP_RATE_MAX,
2567 EID_R_BEACON_PERIOD,
2568 EID_R_DTIM_PERIOD,
2569 EID_R_RTS_THRESHOLD,
2570 EID_R_ANTENNA_TYPE,
2571 EID_R_A_CHAN_PLAN_TYPE,
2572 EID_R_FRAGMENT_THRESHOLD,
2573 EID_R_POWER_LEVEL,
2574 EID_R_LC_ASSOC_TRY_MAX,
2575 EID_R_LC_STRICT_CLIENT_COUNT_LIMIT,
2576 EID_R_DIVERSITY_RX,
2577 EID_R_DIVERSITY_TX,
2578 EID_R_SHORT_PREAMBLE,
2579 EID_R_BASIC_RATE_MAX,
2580 EID_R_BASIC_RATE_MIN,
2581 EID_R_HW_RETRIES,
2582 EID_R_TX_POWER_MIN,
2583 EID_R_TX_POWER_MAX,
2584 EID_R_INTERFERENCE_EVENT_TYPE,
2585 EID_R_DOMAIN_ID,
2586 EID_R_B_ENABLE,
2587 EID_R_B_BASIC_RATES,
2588 EID_R_G_ENABLE,
2589 EID_R_G_PROTECT_MODE,
2590 EID_R_G_PROTECT_TYPE,
2591 EID_R_G_PROTECT_RATE,
2592 EID_R_G_BASIC_RATE,
2593 EID_R_A_SUPPORT_802_11_J,
2594 EID_R_ATPC_EN_INTERVAL,
2595 EID_R_ACS_CH_LIST,
2596 EID_R_TX_POWER_ADJ,
2597 EID_R_WIRELESS_MODE,
2598 EID_R_N_CHANNEL_BONDING,
2599 EID_R_N_CHANNEL_WIDTH,
2600 EID_R_N_GUARD_INTERVAL,
2601 EID_R_N_PROTECT_ENABLE,
2602 EID_R_N_PROTECT_TYPE,
2603 EID_R_N_PROTECT_OFFSET,
2604 EID_R_N_PROTECT_BUSY_THRESHOLD,
2605 EID_R_AGGREGATE_MSDU,
2606 EID_R_AGGREGATE_MSDU_MAX_LEN,
2607 EID_R_AGGREGATE_MPDU,
2608 EID_R_AGGREGATE_MPDU_MAX_LEN,
2609 EID_R_AGGREGATE_MPDU_SUBFRAMES,
2610 EID_R_ADDBA_SUPPORT,
2611 EID_R_DCS_MODE,
2612 EID_R_DCS_NOISE_THRESHOLD,
2613 EID_R_DCS_CHL_OCCUPANCY_THRESHOLD,
2614 EID_R_DCS_UPDATE_PERIOD,
2615 EID_R_ANTENNA_SELECTION,
2616 EID_R_BKGND_SCAN_ENABLE,
2617 EID_R_BKGND_SCAN_INTERVAL,
2618 EID_R_BCMCRATECTRL_AIRTIME,
2619 EID_R_CACS,
2620 EID_R_MAX_DISTANCE,
2621 EID_R_LOADGROUP_ID,
2622 EID_R_GROUP_BALANCING,
2623 EID_R_LC_CLIENT_COUNT_LIMIT,
2624 EID_R_ENABLE_LDPC,
2625 EID_R_ENABLE_TXSTBC,
2626 EID_R_ENABLE_RXSTBC,
2627 EID_R_ENABLE_TXBF,
2628 EID_R_TXBF_CLIENT_LIMIT,
2629 EID_R_INTERFERENCE_WAIT_TIME,
2630 EID_R_LC_ASSOC_TRY_TIMEOUT,
2631 EID_R_OPT_MCAST_PS,
2632 EID_R_MCAST_TO_UCAST_DELIVERY,
2633 EID_R_ADAPTABLE_RATE_FOR_MCAST,
2634 EID_R_ANTENNA_PORT_ATT,
2635 EID_R_PROBE_SUP_ENABLE,
2636 EID_R_PROBE_SUP_CAP,
2637 EID_R_PROBE_SUP_THRESH,
2638 EID_R_MU_NUM_RADAR_BACK,
2639 EID_R_ADSP_RADIO_SHARE,
2640 EID_R_OCS_CHANNEL_ENABLE,
2641 EID_R_OCS_CHANNEL_LIST,
2642 EID_R_OCS_SCAN_INTERVAL,
2643 EID_R_SENSOR_SCAN_MODE,
2644 EID_R_SENSOR_SCAN_LIST
2647 } wassp_subtlv_radio_block_type_t;
2649 static const TLV_PARSER_ENTRY tlvRadioConfigTable[] =
2651 { EID_R_UNUSED_0, "Radio Unused 0", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2652 { EID_R_RADIO_ID, "Radio ID", TLV_TYPE_INDEX, 0, 0, 0, 0, 0, 0, 0, 0},
2653 { EID_R_ENABLE_RADIO, "Enable/Disable Radio", TLV_TYPE_BOOL, 0, 0, 0, 0, 0, 0, 0, 0},
2654 { EID_R_CHANNEL, "Radio Frequency In MHz", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2655 { EID_R_OP_RATE_SET, "Operation Rate", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2656 { EID_R_OP_RATE_MAX, "Max Operation Rate", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2657 { EID_R_BEACON_PERIOD, "Beacon Interval", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2658 { EID_R_DTIM_PERIOD, "DTIM Count", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2659 { EID_R_RTS_THRESHOLD, "RTS/CTS Threshold", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2660 { EID_R_ANTENNA_TYPE, "Radio Antenna Type", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2661 { EID_R_A_CHAN_PLAN_TYPE, "Radio Channel Plan Type", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2662 { EID_R_FRAGMENT_THRESHOLD, "Fragment Threshold", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2663 { EID_R_POWER_LEVEL, "Power Level", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2664 { EID_R_LC_ASSOC_TRY_MAX, "LC Association Max Try", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2665 { EID_R_LC_STRICT_CLIENT_COUNT_LIMIT, "LC Strict Client Count Limit", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2666 { EID_R_DIVERSITY_RX, "Rx Diversity", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2667 { EID_R_DIVERSITY_TX, "Tx Diversity", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2668 { EID_R_SHORT_PREAMBLE, "Radio Short Preamble", TLV_TYPE_BOOL, 0, 0, 0, 0, 0, 0, 0, 0},
2669 { EID_R_BASIC_RATE_MAX, "Max Basic Rate", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2670 { EID_R_BASIC_RATE_MIN, "Min Basic Rate", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2671 { EID_R_HW_RETRIES, "Hardware Retries", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
2672 { EID_R_TX_POWER_MIN, "Min Tx Power", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2673 { EID_R_TX_POWER_MAX, "Max Tx Power", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2674 { EID_R_INTERFERENCE_EVENT_TYPE, "Interference Event Type", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2675 { EID_R_DOMAIN_ID, "Domain ID", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
2676 { EID_R_B_ENABLE, "Enable Radio B", TLV_TYPE_BOOL, 0, 0, 0, 0, 0, 0, 0, 0},
2677 { EID_R_B_BASIC_RATES, "Radio B Basic Rates", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2678 { EID_R_G_ENABLE, "Enable Radio G", TLV_TYPE_BOOL, 0, 0, 0, 0, 0, 0, 0, 0},
2679 { EID_R_G_PROTECT_MODE, "Radio G Protect Mode", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2680 { EID_R_G_PROTECT_TYPE, "Radio G Protect Type", TLV_TYPE_INDEX, 0, 0, 0, 0, 0, 0, 0, 0},
2681 { EID_R_G_PROTECT_RATE, "Radio G Protect Rate", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2682 { EID_R_G_BASIC_RATE, "Radio G Basic Rate", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2683 { EID_R_A_SUPPORT_802_11_J, "Radio A Support 802.11J", TLV_TYPE_BOOL, 0, 0, 0, 0, 0, 0, 0, 0},
2684 { EID_R_ATPC_EN_INTERVAL, "Automatic Transmit Power Control Interval", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2685 { EID_R_ACS_CH_LIST, "Radio ACS Channel List", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
2686 { EID_R_TX_POWER_ADJ, "Radio Tx Power Adjustment", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2687 { EID_R_WIRELESS_MODE, "Wireless Radio Mode", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2688 { EID_R_N_CHANNEL_BONDING, "802.11n Channel Bonding: 0=No Bonding, 1=Bond-Up, 2=Bond-Down", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2689 { EID_R_N_CHANNEL_WIDTH, "802.11n Channel Width: 1=20Mhz, 2=40Mhz, 3=both", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2690 { EID_R_N_GUARD_INTERVAL, "802.11n Guard Interval: 1=short, 2=long", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2691 { EID_R_N_PROTECT_ENABLE, "802.11n Channel Protection Mode: 0=disabled, 1=enabled", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2692 { EID_R_N_PROTECT_TYPE, "802.11n 40Mhz Channel Protection: 0=None, 1=CTS only, 2=RTS/CTS", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2693 { EID_R_N_PROTECT_OFFSET, "802.11n Channel Protection Offset: 1=20Mhz, 2=25MHz", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2694 { EID_R_N_PROTECT_BUSY_THRESHOLD, "802.11n 40Mhz Channel Busy Threshold: 0...100", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2695 { EID_R_AGGREGATE_MSDU, "Aggregate MSDUs: 0=disabled, 1=enabled", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2696 { EID_R_AGGREGATE_MSDU_MAX_LEN, "Aggregate MSDU Max Length: 2290...4096", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2697 { EID_R_AGGREGATE_MPDU, "Aggregate MPDUs: 0=disabled, 1=enabled", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2698 { EID_R_AGGREGATE_MPDU_MAX_LEN, "Aggregate MPDU Max Length: 1024...65535", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2699 { EID_R_AGGREGATE_MPDU_SUBFRAMES, "Aggregate MPDU Max # of Sub-frames: 2...64", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2700 { EID_R_ADDBA_SUPPORT, "ADDBA Support: 0=disabled, 1=enabled", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2701 { EID_R_DCS_MODE, "Dynamic channel Selection Mode: 0=off, 1=monitor, 2=active", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2702 { EID_R_DCS_NOISE_THRESHOLD, "Dynamic channel Selection Noise Threshold", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2703 { EID_R_DCS_CHL_OCCUPANCY_THRESHOLD, "Dynamic channel Selection Channel Occupancy", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2704 { EID_R_DCS_UPDATE_PERIOD, "Dynamic channel Selection Update Period", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2705 { EID_R_ANTENNA_SELECTION, "Antenna selection. LSB 0 - Left, bit 1 - Middle, bit 2 - Right", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2706 { EID_R_BKGND_SCAN_ENABLE, "Voice Over WIFI: 0=off, 1=on ", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2707 { EID_R_BKGND_SCAN_INTERVAL, "Voice Over WIFI Interval", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2708 { EID_R_BCMCRATECTRL_AIRTIME, "Broadcast/Multicast Rate Control: The Percentage of Airtime Allowed for Broadcast/Multicast Traffic", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2709 { EID_R_CACS, "Thick/Thin AP: Cluster ACS", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2710 { EID_R_MAX_DISTANCE, "Radio Max Distance (used for WDS)", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2711 { EID_R_LOADGROUP_ID, "Radio Load Group or Balance Group ID", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
2712 { EID_R_GROUP_BALANCING, "Group Balancing Mode", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2713 { EID_R_LC_CLIENT_COUNT_LIMIT, "Radio Client Count Limit", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2714 { EID_R_ENABLE_LDPC, "Enable/Disable LDPC Coding: 0 = Disable, 1 = Enable", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2715 { EID_R_ENABLE_TXSTBC, "Enable/Disable Radio TxSTBC: 0 = Disable, 1 = Enable", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2716 { EID_R_ENABLE_RXSTBC, "Enable/Disable Radio RxSTBC: 0 = Disable, 1 = Enable", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2717 { EID_R_ENABLE_TXBF, "Set TxBF Mode", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2718 { EID_R_TXBF_CLIENT_LIMIT, "TxBF Client Limit", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2719 { EID_R_INTERFERENCE_WAIT_TIME, "Interference Wait Time", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2720 { EID_R_LC_ASSOC_TRY_TIMEOUT, "LC Association Try Time Out", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2721 { EID_R_OPT_MCAST_PS, "Enable/Disable Optimized Multicast Power Save: 0 = Disable, 1 = Enable", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2722 { EID_R_MCAST_TO_UCAST_DELIVERY, "Multicast to Unicast Delivery: 0 = Disable, 1 = Auto", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2723 { EID_R_ADAPTABLE_RATE_FOR_MCAST, "Enable/Disable Adaptable Rate for Multicast: 0 = Disable, 1 = Enable", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2724 { EID_R_ANTENNA_PORT_ATT, "Antenna Port ATT", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2725 { EID_R_PROBE_SUP_ENABLE, "Enable/Disable Probe Suppression: 0 = Disable, 1 = Enable", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2726 { EID_R_PROBE_SUP_CAP, "Probe Suppression Capacity", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2727 { EID_R_PROBE_SUP_THRESH, "Probe Suppression Threshold", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2728 { EID_R_MU_NUM_RADAR_BACK, "DFS Max Number of Clients Allow Return to Original Channel After DFS", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2729 { EID_R_ADSP_RADIO_SHARE, "ADSP Radio Share", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2730 { EID_R_OCS_CHANNEL_ENABLE, "Enable/Disable OCS", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2731 { EID_R_OCS_CHANNEL_LIST, "List Of OCS Channel", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
2732 { EID_R_OCS_SCAN_INTERVAL, "OCS Scan Interval", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2733 { EID_R_SENSOR_SCAN_MODE, "Sensor Scan Mode", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2734 { EID_R_SENSOR_SCAN_LIST, "Sensor Scan List", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0}
2742 typedef enum
2744 EID_V_UNUSED = 0,
2745 EID_V_RADIO_ID,
2746 EID_V_VNS_ID,
2747 EID_V_TURBO_VOICE,
2748 EID_V_PROP_IE,
2749 EID_V_ENABLE_802_11_H,
2750 EID_V_POWER_BACKOFF,
2751 EID_V_BRIDGE_MODE,
2752 EID_V_VLAN_TAG,
2753 EID_V_PROCESS_IE_REQ,
2754 EID_V_ENABLE_U_APSD,
2755 EID_V_ADM_CTRL_VOICE,
2756 EID_V_ADM_CTRL_VIDEO,
2757 EID_V_QOS_UP_VALUE,
2758 EID_V_PRIORITY_OVERRIDE,
2759 EID_V_DSCP_OVERRIDE_VALUE,
2760 EID_V_ENABLE_802_11_E,
2761 EID_V_ENABLE_WMM,
2762 EID_V_LEGACY_CLIENT_PRIORITY,
2763 EID_V_SSID_ID,
2764 EID_V_SSID_BCAST_STRING,
2765 EID_V_SSID_SUPPRESS,
2766 EID_V_802_1_X_ENABLE,
2767 EID_V_802_1_X_DYN_REKEY,
2768 EID_V_WPA_ENABLE,
2769 EID_V_WPA_V2_ENABLE,
2770 EID_V_WPA_PASSPHRASE,
2771 EID_V_WPA_CIPHER_TYPE,
2772 EID_V_WPA_V2_CIPHER_TYPE,
2773 EID_V_WEP_KEY_INDEX,
2774 EID_V_WEP_DEFAULT_KEY_VALUE,
2775 EID_V_CHANNEL_REPORT,
2776 EID_V_WDS_SERVICE,
2777 EID_V_WDS_BSSID_PARENT,
2778 EID_V_WDS_BRIDGE,
2779 EID_V_OKC_ENABLED,
2780 EID_V_MU_ASSOC_RETRIES,
2781 EID_V_MU_ASSOC_TIMEOUT,
2782 EID_V_WDS_PARENT,
2783 EID_V_WDS_BACK_PARENT,
2784 EID_V_WDS_NAME,
2785 EID_V_SESSION_AVAIL,
2786 EID_V_UL_POLICER_ACTION,
2787 EID_V_DL_POLICER_ACTION,
2788 EID_V_ENABLE_802_11_K,
2789 EID_V_ENABLE_802_11_H_BG,
2790 EID_V_SITE_EGRESS_FILTER_MODE,
2791 EID_V_DEFAULT_IDLE_PRE_TIMEOUT,
2792 EID_V_DEFAULT_IDLE_POST_TIMEOUT,
2793 EID_V_IGNORE_COS,
2794 EID_V_RADIUS_SERVER_INDEX2,
2795 EID_V_MCAST_OPTIMIZATION,
2796 EID_V_MCAST_IGMP_TIMEOUT,
2797 EID_V_MCAST_FILTER_ENABLE,
2798 EID_V_FILTER_CONFIG_BLOCK,
2799 EID_V_DATA_REASSEMBLY_ENABLE,
2800 EID_V_UCAST_FILTER_ENABLE,
2801 EID_V_RATECTRL_CIR_UL,
2802 EID_V_RATECTRL_CIR_DL,
2803 EID_V_RATECTRL_CBS_UL,
2804 EID_V_RATECTRL_CBS_DL,
2805 EID_V_AIRTIME_FAIRNESS_ENABLE,
2806 EID_V_POWERSAVE_ENABLE,
2807 EID_V_GROUP_KP_SAVE_RETRY,
2808 EID_V_BALANCE_GROUP,
2809 EID_V_MESH_TYPE,
2810 EID_V_MESH_ROAMING_THRESHOLD,
2811 EID_V_COS,
2812 EID_V_RATE_LIMIT_RESOURCE_TBL,
2813 EID_V_AP_AUTH_CLIENT_MODES,
2814 EID_V_DEFAULT_POLICY_INDEX,
2815 EID_V_AUTH_POLICY_INDEX,
2816 EID_V_NONAUTH_POLICY_INDEX,
2817 EID_V_RADIUS_SERVER_INDEX,
2818 EID_V_NAS_IP,
2819 EID_V_NAS_ID,
2820 EID_V_VSA_SELMASK,
2821 EID_V_MBA_OPTIONS_MASK,
2822 EID_V_MBA_TIMEOUT_POLICY_KEY,
2823 EID_V_WLAN_SERVICE_NAME,
2824 EID_V_DEFAULT_SESSION_TIMEOUT,
2825 EID_V_RADIUS_CALLED_STATION_ID,
2826 EID_V_CAPTIVE_PORTAL,
2827 EID_V_COS_CONFIG_BLOCK,
2828 EID_V_TOPOLOGY_KEY,
2829 EID_V_MU_INIT_PERIOD_BEHAVIOUR,
2830 EID_V_DYNAMIC_EGRESS_VLANS,
2831 EID_V_STATIC_EGRESS_VLANS,
2832 EID_V_FLAGS,
2833 EID_V_DEFAULT_ACTION,
2834 EID_V_CONTAIN_TO_VLAN,
2835 EID_V_PVID_TOPOLOGY_KEY,
2836 EID_V_AP_REDIRECT,
2837 EID_V_ADM_CTRL_BE,
2838 EID_V_ADM_CTRL_BK,
2839 EID_V_11K_ENABLE,
2840 EID_V_11K_RM_CAP,
2841 EID_V_11R_ENABLE,
2842 EID_V_11R_R0KH_ID,
2843 EID_V_11R_MD_ID,
2844 EID_V_MGMT_FRAME_PROTECTION,
2845 EID_V_NETFLOW,
2846 EID_V_WLAN_DEFAULT_MIRRORN,
2847 EID_V_DEFAULT_MIRRORN,
2848 EID_V_11U_ANQP_BLOCK,
2849 EID_V_HS2_BLOCK,
2850 EID_V_APP_IDENTIFICATION_ENABLED,
2851 EID_V_PRIVACY,
2852 EID_V_11U_OSEN,
2853 EID_V_QOS_IN_USE,
2854 EID_V_CP_CONFIG_BLOCK,
2855 EID_V_CP_IDENTITY,
2856 EID_V_CP_PASSPHRASE,
2857 EID_V_CP_REDIRECT_URL,
2858 EID_V_CP_USE_HTTPS,
2859 EID_V_CP_AUTH_URL,
2860 EID_V_CP_FLAGS,
2861 EID_V_CP_AP_FQDN,
2862 EID_V_VNS_NAME,
2863 EID_V_LDAP_SERVER_INDEX,
2864 EID_V_AIRTIME_RESERVATION,
2865 EID_V_MU_DISCON_REQ_ENABLE
2867 } wassp_subtlv_vns_config_type_t;
2869 static const TLV_PARSER_ENTRY tlvVnsConfigTable[] =
2871 { EID_V_UNUSED, "Unused 0", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2872 { EID_V_RADIO_ID, "Radio ID", TLV_TYPE_INDEX, 0, 0, 0, 0, 0, 0, 0, 0},
2873 { EID_V_VNS_ID, "VNS ID", TLV_TYPE_INDEX, 0, 0, 0, 0, 0, 0, 0, 0},
2874 { EID_V_TURBO_VOICE, "Enable Turbo Voice", TLV_TYPE_BOOL, 0, 0, 0, 0, 0, 0, 0, 0},
2875 { EID_V_PROP_IE, "Process IE", TLV_TYPE_BOOL, 0, 0, 0, 0, 0, 0, 0, 0},
2876 { EID_V_ENABLE_802_11_H, "Enable 802.11H", TLV_TYPE_BOOL, 0, 0, 0, 0, 0, 0, 0, 0},
2877 { EID_V_POWER_BACKOFF, "Enable 802.11H Power Back Off", TLV_TYPE_BOOL, 0, 0, 0, 0, 0, 0, 0, 0},
2878 { EID_V_BRIDGE_MODE, "VNS Bridge Mode: 0 = Tunnel, 1 = Bridge, 3 = WDS, 10 = Any ", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2879 { EID_V_VLAN_TAG, "Vlan Tag: -1 = Untagged, -2 = Tunnel, 0 = WDS, 1-4094 = Tagged", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2880 { EID_V_PROCESS_IE_REQ, "Process IE Request", TLV_TYPE_BOOL, 0, 0, 0, 0, 0, 0, 0, 0},
2881 { EID_V_ENABLE_U_APSD, "Enable UAPSD Mode", TLV_TYPE_BOOL, 0, 0, 0, 0, 0, 0, 0, 0},
2882 { EID_V_ADM_CTRL_VOICE, "Enable Admission Control for Voice", TLV_TYPE_BOOL, 0, 0, 0, 0, 0, 0, 0, 0},
2883 { EID_V_ADM_CTRL_VIDEO, "Enable Admission Control for Video", TLV_TYPE_BOOL, 0, 0, 0, 0, 0, 0, 0, 0},
2884 { EID_V_QOS_UP_VALUE, "DSCP to UP Mapping", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
2885 { EID_V_PRIORITY_OVERRIDE, "Enable DSCP to UP Override", TLV_TYPE_BOOL, 0, 0, 0, 0, 0, 0, 0, 0},
2886 { EID_V_DSCP_OVERRIDE_VALUE, "DSCP to UP Override value", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2887 { EID_V_ENABLE_802_11_E, "Enable 802.11E", TLV_TYPE_BOOL, 0, 0, 0, 0, 0, 0, 0, 0},
2888 { EID_V_ENABLE_WMM, "Enable WMM Mode", TLV_TYPE_BOOL, 0, 0, 0, 0, 0, 0, 0, 0},
2889 { EID_V_LEGACY_CLIENT_PRIORITY, "Enable Legacy Value", TLV_TYPE_BOOL, 0, 0, 0, 0, 0, 0, 0, 0},
2890 { EID_V_SSID_ID, "Internal VID Number Assigned by Controller", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2891 { EID_V_SSID_BCAST_STRING, "SSID String", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
2892 { EID_V_SSID_SUPPRESS, "Enable Suppress SSID", TLV_TYPE_BOOL, 0, 0, 0, 0, 0, 0, 0, 0},
2893 { EID_V_802_1_X_ENABLE, "Enable 802.11X", TLV_TYPE_BOOL, 0, 0, 0, 0, 0, 0, 0, 0},
2894 { EID_V_802_1_X_DYN_REKEY, "VAP Group Key Update Interval", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2895 { EID_V_WPA_ENABLE, "Enable WPA", TLV_TYPE_BOOL, 0, 0, 0, 0, 0, 0, 0, 0},
2896 { EID_V_WPA_V2_ENABLE, "Enable WPA V2", TLV_TYPE_BOOL, 0, 0, 0, 0, 0, 0, 0, 0},
2897 { EID_V_WPA_PASSPHRASE, "WPA-PSK Passphrase", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
2898 { EID_V_WPA_CIPHER_TYPE, "WPA Cipher Type", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2899 { EID_V_WPA_V2_CIPHER_TYPE, "WPA V2 Cipher Type", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2900 { EID_V_WEP_KEY_INDEX, "WEP Key Index", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2901 { EID_V_WEP_DEFAULT_KEY_VALUE, "WEP Default Key", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
2902 { EID_V_CHANNEL_REPORT, "Channel Report", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
2903 { EID_V_WDS_SERVICE, "WDS Service Type: 0 = None, 1 = Child, 2 = Parent, 3 = Both", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2904 { EID_V_WDS_BSSID_PARENT, "WDS Parent BSSID", TLV_TYPE_MACADD, 0, 0, 0, 0, 0, 0, 0, 0},
2905 { EID_V_WDS_BRIDGE, "Enable WDS Bridge: 0 = Unknown, 1 = Enable, 2 = Disable", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2906 { EID_V_OKC_ENABLED, "OKC/Preauthentication", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2907 { EID_V_MU_ASSOC_RETRIES, "MU Association Retries", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2908 { EID_V_MU_ASSOC_TIMEOUT, "MU Association Request Time Out", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2909 { EID_V_WDS_PARENT, "WDS Parent AP", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
2910 { EID_V_WDS_BACK_PARENT, "WDS Backup Parent AP", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
2911 { EID_V_WDS_NAME, "WDS AP Name", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
2912 { EID_V_SESSION_AVAIL, "Enable Session Availability", TLV_TYPE_BOOL, 0, 0, 0, 0, 0, 0, 0, 0},
2913 { EID_V_UL_POLICER_ACTION, "Up Link Policer Action: Bit0 Set = Downgrade, Bit1 Set = Drop, Bit2 Set = Delete TSPEC", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2914 { EID_V_DL_POLICER_ACTION, "Down Link Policer Action: Bit0 Set = Downgrade, Bit1 Set = Drop, Bit2 Set = Delete TSPEC", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2915 { EID_V_ENABLE_802_11_K, "Enable 802.11K", TLV_TYPE_BOOL, 0, 0, 0, 0, 0, 0, 0, 0},
2916 { EID_V_ENABLE_802_11_H_BG, "Enable 802.11H For BG Radio", TLV_TYPE_BOOL, 0, 0, 0, 0, 0, 0, 0, 0},
2917 { EID_V_SITE_EGRESS_FILTER_MODE, "Site Egress Filter Mode", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2918 { EID_V_DEFAULT_IDLE_PRE_TIMEOUT, "Default Idle Pre Timeout", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2919 { EID_V_DEFAULT_IDLE_POST_TIMEOUT, "Default Idle Post Timeout", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2920 { EID_V_IGNORE_COS, "Ignore CoS In This VNS", TLV_TYPE_BOOL, 0, 0, 0, 0, 0, 0, 0, 0},
2921 { EID_V_RADIUS_SERVER_INDEX2, "Secondary Radius Server Index", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2922 { EID_V_MCAST_OPTIMIZATION, "Multicast: IGMP Snooping Enable/Disable Per VNS", TLV_TYPE_BOOL, 0, 0, 0, 0, 0, 0, 0, 0},
2923 { EID_V_MCAST_IGMP_TIMEOUT, "Multicast: IGMP Snooping LDMG Entry Expire Timer In Minutes", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2924 { EID_V_MCAST_FILTER_ENABLE, "Enable Multicast Filtering at AP", TLV_TYPE_BOOL, 0, 0, 0, 0, 0, 0, 0, 0},
2925 { EID_V_FILTER_CONFIG_BLOCK, "Filter Config Block", TLV_TYPE_BLOCK_TLV, TAB_CONFIG_FILTER, 0, 0, 0, 0, 0, 0, 0},
2926 { EID_V_DATA_REASSEMBLY_ENABLE, "Enable Fragmentation", TLV_TYPE_BOOL, 0, 0, 0, 0, 0, 0, 0, 0},
2927 { EID_V_UCAST_FILTER_ENABLE, "Enable Unicast Filter", TLV_TYPE_BOOL, 0, 0, 0, 0, 0, 0, 0, 0},
2928 { EID_V_RATECTRL_CIR_UL, "Uplink CIR", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2929 { EID_V_RATECTRL_CIR_DL, "Downlink CIR", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2930 { EID_V_RATECTRL_CBS_UL, "Uplink CBS", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2931 { EID_V_RATECTRL_CBS_DL, "Downlink CBS", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2932 { EID_V_AIRTIME_FAIRNESS_ENABLE, "Enable Airtime Fairness", TLV_TYPE_BOOL, 0, 0, 0, 0, 0, 0, 0, 0},
2933 { EID_V_POWERSAVE_ENABLE, "Enable Power Save", TLV_TYPE_BOOL, 0, 0, 0, 0, 0, 0, 0, 0},
2934 { EID_V_GROUP_KP_SAVE_RETRY, "Group Power Save Retry", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2935 { EID_V_BALANCE_GROUP, "Enable Vlan Membership to The Radio Balance", TLV_TYPE_BOOL, 0, 0, 0, 0, 0, 0, 0, 0},
2936 { EID_V_MESH_TYPE, "Mesh Type: 0 = Static WDS, 1 = Dynamic WDS", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2937 { EID_V_MESH_ROAMING_THRESHOLD, "Mesh Roaming Threshold", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2938 { EID_V_COS, "AP COS", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
2939 { EID_V_RATE_LIMIT_RESOURCE_TBL, "Rate Limit Resource List", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
2940 { EID_V_AP_AUTH_CLIENT_MODES, "Client Authentication Mode: Bit0 Set = MBA, Bit1 SET = Dot1x, Bit2 Set = CP", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2941 { EID_V_DEFAULT_POLICY_INDEX, "Default Policy Index", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2942 { EID_V_AUTH_POLICY_INDEX, "Authentication Policy Index", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2943 { EID_V_NONAUTH_POLICY_INDEX, "Non Authentication Policy Index", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2944 { EID_V_RADIUS_SERVER_INDEX, "Primary Radius Server", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2945 { EID_V_NAS_IP, "NAS IP", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
2946 { EID_V_NAS_ID, "NAS Name", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
2947 { EID_V_VSA_SELMASK, "VSA Mask", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2948 { EID_V_MBA_OPTIONS_MASK, "MBA Options Mask", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2949 { EID_V_MBA_TIMEOUT_POLICY_KEY, "MBA Timeout Policy Key", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2950 { EID_V_WLAN_SERVICE_NAME, "WLAN Service Name", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
2951 { EID_V_DEFAULT_SESSION_TIMEOUT, "Default Session Timeout", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2952 { EID_V_RADIUS_CALLED_STATION_ID, "Radius Called Station ID", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2953 { EID_V_CAPTIVE_PORTAL, "Enable Captive Portal", TLV_TYPE_BOOL, 0, 0, 0, 0, 0, 0, 0, 0},
2954 { EID_V_COS_CONFIG_BLOCK, "COS Configuration Block Index", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2955 { EID_V_TOPOLOGY_KEY, "Topology Key", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2956 { EID_V_MU_INIT_PERIOD_BEHAVIOUR, "MU Init Behaviour: 0 = Discard Non Auth Traffic, 1 = Default Policy", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2957 { EID_V_DYNAMIC_EGRESS_VLANS, "Dynamic Egress Vlan list", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
2958 { EID_V_STATIC_EGRESS_VLANS, "Static Egress Vlan list", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
2959 { EID_V_FLAGS, "Policy Flags Based on Analyzing The Rules Inside The Policy", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2960 { EID_V_DEFAULT_ACTION, "Default Action", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2961 { EID_V_CONTAIN_TO_VLAN, "Default Contain Vlan", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2962 { EID_V_PVID_TOPOLOGY_KEY, "PVID Topology Key", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2963 { EID_V_AP_REDIRECT, "AP Redirect Mode: -1 = Invalid, 0 = Disable, 1 = At Controller, 2 = At AP", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
2964 { EID_V_ADM_CTRL_BE, "Enable Admission Control For Best Effort", TLV_TYPE_BOOL, 0, 0, 0, 0, 0, 0, 0, 0},
2965 { EID_V_ADM_CTRL_BK, "Enable Admission Control For Background", TLV_TYPE_BOOL, 0, 0, 0, 0, 0, 0, 0, 0},
2966 { EID_V_11K_ENABLE, "Enable 802.11K", TLV_TYPE_BOOL, 0, 0, 0, 0, 0, 0, 0, 0},
2967 { EID_V_11K_RM_CAP, "802.11K RM Capacity", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2968 { EID_V_11R_ENABLE, "Enable 802.11R", TLV_TYPE_BOOL, 0, 0, 0, 0, 0, 0, 0, 0},
2969 { EID_V_11R_R0KH_ID, "802.11R R0 Key Holder ID", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
2970 { EID_V_11R_MD_ID, "802.11R Mobility Domain ID", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2971 { EID_V_MGMT_FRAME_PROTECTION, "Protected Management Frames: 0 = Enable, 1 = Disable, 2 = Require", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2972 { EID_V_NETFLOW, "Control for NetFlow: 1 = Enable, 2 = Disable", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2973 { EID_V_WLAN_DEFAULT_MIRRORN, "V_WLAN_DEFAULT_MIRRORN", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2974 { EID_V_DEFAULT_MIRRORN, "WLAN Default MirrorN: 0 = None, 1 = Prohibited, 2 = Enable, 3 = Enable TCP and UDP Both Direction, 4 = Enable TCP and UDP In Direction ", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2975 { EID_V_11U_ANQP_BLOCK, "802.11U ANQP Config Block", TLV_TYPE_BLOCK_TLV, TAB_11U_ANQP_BLOCK, 0, 0, 0, 0, 0, 0, 0},
2976 { EID_V_HS2_BLOCK, "HS2 Configuration Block", TLV_TYPE_BLOCK_TLV, TAB_HS2_BLOCK, 0, 0, 0, 0, 0, 0, 0},
2977 { EID_V_APP_IDENTIFICATION_ENABLED, "Enable/Disable Application Identification", TLV_TYPE_BOOL, 0, 0, 0, 0, 0, 0, 0, 0},
2978 { EID_V_PRIVACY, "Privacy", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2979 { EID_V_11U_OSEN, "Enable OSU Server-Only Authenticated L2 Encryption Network", TLV_TYPE_BOOL, 0, 0, 0, 0, 0, 0, 0, 0},
2980 { EID_V_QOS_IN_USE, "Bitmask Used to Select DHCP Values for QoS Mapping", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
2981 { EID_V_CP_CONFIG_BLOCK, "CP Configuration Block", TLV_TYPE_BLOCK_TLV, TAB_V_CP_CONFIG_BLOCK, 0, 0, 0, 0, 0, 0, 0},
2982 { EID_V_CP_IDENTITY, "User Identity", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
2983 { EID_V_CP_PASSPHRASE, "Shared Secret in Encryption Form", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
2984 { EID_V_CP_REDIRECT_URL, "Redirection Url for Non-auth Policy", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
2985 { EID_V_CP_USE_HTTPS, "Enable HTTPS", TLV_TYPE_BOOL, 0, 0, 0, 0, 0, 0, 0, 0},
2986 { EID_V_CP_AUTH_URL, "Where to Redirect MU After Successful Authentication", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
2987 { EID_V_CP_FLAGS, "Bitmap for Captive Portal Flags", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2988 { EID_V_CP_AP_FQDN, "AP FQDN Name", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
2989 { EID_V_VNS_NAME, "VNS Name", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
2990 { EID_V_LDAP_SERVER_INDEX, "LDAP Server for CP Authentication", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
2991 { EID_V_AIRTIME_RESERVATION, "Assign Airtime to VNS In Percentage In Steps of 10%", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0}
2999 //EID_STATS_VNS_BLOCK
3000 typedef enum
3002 EID_V_STATS_UNUSED0,
3003 EID_V_STATS_VNSID,
3004 EID_V_STATS_RADCL_REQS,
3005 EID_V_STATS_RADCL_FAILED,
3006 EID_V_STATS_RADCL_REJECTS,
3007 EID_V_STATS_VNS_ENTRY = 118
3008 } wassp_subtlv_vns_status_type_t;
3010 static const TLV_PARSER_ENTRY tlvVnsStatusTable[] =
3012 { EID_V_STATS_UNUSED0, "VNS Stats Unused 0", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
3013 { EID_V_STATS_VNSID, "VNS ID", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
3014 { EID_V_STATS_RADCL_REQS, "VNS Radius Stats Request", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
3015 { EID_V_STATS_RADCL_FAILED, "VNS Radius Stats Failed", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
3016 { EID_V_STATS_RADCL_REJECTS, "VNS Radius Stats Reject", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
3017 { EID_V_STATS_VNS_ENTRY, "VNS Stats Entry", TLV_TYPE_BLOCK_TLV, TAB_STATS_VNS, 0, 0, 0, 0, 0, 0, 0}
3025 //RADIUS: Global Radius Config Block (V8R11: Site)
3027 typedef enum
3029 EID_RADIUS_ID = 0,
3030 EID_RADIUS_IP_NAME,
3031 EID_RADIUS_SHAREDSECRET,
3032 EID_RADIUS_PROTOCOL,
3033 EID_RADIUS_PORT,
3034 EID_RADIUS_TIMEOUT,
3035 EID_RADIUS_RETRY,
3036 EID_RADIUS_MBA_MAC_FORMAT,
3037 EID_RADIUS_MBA_PASSWORD
3039 } wassp_subtlv_radius_config_type_t;
3041 static const TLV_PARSER_ENTRY tlvRadiusConfigTable[] =
3043 { EID_RADIUS_ID, "Radius ID", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
3044 { EID_RADIUS_IP_NAME, "Radius Name", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
3045 { EID_RADIUS_SHAREDSECRET, "Radius Shared Secret", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
3046 { EID_RADIUS_PROTOCOL, "Radius Protocol: 0 = PAP, 1 = CHAP, 2 = MS CHAP, 3 = MS CHAP2", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
3047 { EID_RADIUS_PORT, "Radius Port", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
3048 { EID_RADIUS_TIMEOUT, "Radius Timeout", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
3049 { EID_RADIUS_RETRY, "Radius Retry Count", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
3050 { EID_RADIUS_MBA_MAC_FORMAT, "Radius MBA MAC Format", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
3051 { EID_RADIUS_MBA_PASSWORD, "Radius MBA Password", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0}
3057 //RADSRV:Radius Server Config Block for a specific VNS (for V6R0: Branch 802.1x)
3058 typedef enum
3060 EID_V_UNUSED0,
3061 EID_V_RADSRV_SRV_ID,
3062 EID_V_RADSRV_SRV_TYPE,
3063 EID_V_RADSRV_SRV_PORT,
3064 EID_V_RADSRV_SRV_RETRY,
3065 EID_V_RADSRV_SRV_TIMEOUT,
3066 EID_V_RADSRV_AUTH_TYPE,
3067 EID_V_RADSRV_PASSWORD,
3068 EID_V_RADSRV_NAS_IP,
3069 EID_V_RADSRV_NAS_ID
3071 } wassp_subtlv_radius_server_config_type_t;
3073 static const TLV_PARSER_ENTRY tlvRadiusServerConfigTable[] =
3075 { EID_V_UNUSED0, "V_UNUSED0", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
3076 { EID_V_RADSRV_SRV_ID, "Radius Server ID", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
3077 { EID_V_RADSRV_SRV_TYPE, "Radius Server Type", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
3078 { EID_V_RADSRV_SRV_PORT, "Radius Server Port", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
3079 { EID_V_RADSRV_SRV_RETRY, "Radius Server Retry", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
3080 { EID_V_RADSRV_SRV_TIMEOUT, "Radius Server Timeout", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
3081 { EID_V_RADSRV_AUTH_TYPE, "Radius Server Authentication Type", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
3082 { EID_V_RADSRV_PASSWORD, "Radius Server Password", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
3083 { EID_V_RADSRV_NAS_IP, "Radius Server NAS IP Address", TLV_TYPE_IP_ADDR, 0, 0, 0, 0, 0, 0, 0, 0},
3084 { EID_V_RADSRV_NAS_ID, "Radius Server NAS ID", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0}
3088 typedef enum
3090 EID_V_FILTER_UNUSED_0,
3091 EID_V_FILTER_NAME,
3092 EID_V_FILTER_RULES,
3093 EID_V_FILTER_TYPE,
3094 EID_V_FILTER_KEY,
3095 EID_V_SITE_FILTER_RULES,
3096 EID_V_FILTER_BYPASS_BMCAST,
3097 EID_V_FILTER_RULES_EXT_BLOCK,
3098 EID_V_SITE_FILTER_RULES_EXT_BLOCK
3101 } wassp_subtlv_filter_block_type_t;
3104 static const TLV_PARSER_ENTRY tlvFilterConfigTable[] =
3106 { EID_V_FILTER_UNUSED_0, "Filter Unused 0", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
3107 { EID_V_FILTER_NAME, "Filter Rule Name", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
3108 { EID_V_FILTER_RULES, "Filter Rule Bit Mask", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
3109 { EID_V_FILTER_TYPE, "Filter Rule Type", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
3110 { EID_V_FILTER_KEY, "Filter Rule Key", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
3111 { EID_V_SITE_FILTER_RULES, "Site Filter Rules", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
3112 { EID_V_FILTER_BYPASS_BMCAST, "Bypass Broadcast and Multicast", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
3113 { EID_V_FILTER_RULES_EXT_BLOCK, "Filter Rule Extended Block", TLV_TYPE_BLOCK_TLV, TAB_V_FILTER_RULES_EXT_BLOCK, 0, 0, 0, 0, 0, 0, 0},
3114 { EID_V_SITE_FILTER_RULES_EXT_BLOCK, "Site Filter Rule Extended Block", TLV_TYPE_BLOCK_TLV, TAB_V_SITE_FILTER_RULES_EXT_BLOCK, 0, 0, 0, 0, 0, 0, 0}
3119 typedef enum
3121 EID_V_FILTER_UNUSED0,
3122 EID_V_FILTER_RULE_FIXED_APP_ID,
3123 EID_V_FILTER_RULE_EXT_ACT_FLAGS,
3124 EID_V_FILTER_RULES_APP_SIG_GROUP_ID,
3125 EID_V_FILTER_RULES_APP_SIG_DISP_ID,
3126 EID_V_FILTER_RULES_IPV6_ADDR
3128 } wassp_subtlv_filter_rule_ext_block_type_t;
3132 static const TLV_PARSER_ENTRY tlvFilterRuleExtConfigTable[] =
3134 { EID_V_FILTER_UNUSED0, "Filter Rule Unused 0", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
3135 { EID_V_FILTER_RULE_FIXED_APP_ID, "Fixed Application Rule ID", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
3136 { EID_V_FILTER_RULE_EXT_ACT_FLAGS, "Filter Rule Ext Act Flag", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
3137 { EID_V_FILTER_RULES_APP_SIG_GROUP_ID, "Application Signature group ID", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
3138 { EID_V_FILTER_RULES_APP_SIG_DISP_ID, "Application Signature Display ID", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
3139 { EID_V_FILTER_RULES_IPV6_ADDR, "Filter Rule IPV6 List", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0}
3144 typedef enum
3146 EID_V_SITE_FILTER_UNUSED0,
3147 EID_V_SITE_FILTER_RULE_FIXED_APP_ID,
3148 EID_V_SITE_FILTER_RULE_EXT_ACT_FLAGS,
3149 EID_V_SITE_FILTER_RULES_APP_SIG_GROUP_ID,
3150 EID_V_SITE_FILTER_RULES_APP_SIG_DISP_ID,
3151 EID_V_SITE_FILTER_RULES_IPV6_ADDR
3153 } wassp_subtlv_site_filter_rule_ext_block_type_t;
3157 static const TLV_PARSER_ENTRY tlvSiteFilterRuleExtConfigTable[] =
3159 { EID_V_SITE_FILTER_UNUSED0, "Site Filter Rule Unused 0", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
3160 { EID_V_SITE_FILTER_RULE_FIXED_APP_ID, "Site Fixed Application Rule ID", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
3161 { EID_V_SITE_FILTER_RULE_EXT_ACT_FLAGS, "Site Filter Rule Ext Act Flag", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
3162 { EID_V_SITE_FILTER_RULES_APP_SIG_GROUP_ID, "Site Application Signature group ID", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
3163 { EID_V_SITE_FILTER_RULES_APP_SIG_DISP_ID, "Site Application Signature Display ID", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
3164 { EID_V_SITE_FILTER_RULES_IPV6_ADDR, "Site Filter Rule IPV6 List", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0}
3169 #if 0
3170 //BSSID2IP: BSSID to IP mapping block (for V6R0: VoWIFI)
3171 typedef enum
3173 EID_BSSID2IP_UNUSED0,
3174 EID_BSSID2IP_BSSID,
3175 EID_BSSID2IP_IP
3177 } wassp_subtlv_bssid2ip_block_type_t;
3180 static const TLV_PARSER_ENTRY tlvBssid2ipConfigTable[] =
3182 { EID_BSSID2IP_UNUSED0, "BSSID2IP Unused 0", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
3183 { EID_BSSID2IP_BSSID, "BSSID2IP BSSID", TLV_TYPE_MACADD, 0, 0, 0, 0, 0, 0, 0, 0},
3184 { EID_BSSID2IP_IP, "BSSID2IP IP Address", TLV_TYPE_IP_ADDR, 0, 0, 0, 0, 0, 0, 0, 0}
3187 #endif
3189 //EID_SITE_CONFIG_BLOCK: Site Config Block (V8.11: Rad@AP)
3190 typedef enum
3192 EID_G_SITE_ENABLE = 4,
3193 EID_G_SITE_NAME,
3194 EID_G_RADIUS_CLIENT_AT_AP,
3195 EID_G_HYBRID_POLICY_MODE,
3196 EID_G_LOCATION,
3197 EID_G_INVALID_POLICY,
3198 EID_NAC_MBA_LOCAL_AUTH,
3199 EID_NAC_RULE_ARRAY,
3200 EID_NAC_RULE_BLOCK,
3201 EID_NAC_RULE_FLAGS,
3202 EID_NAC_RULE_AUTH_TYPE,
3203 EID_NAC_RULE_USER_USERNAME_GROUP_KEY,
3204 EID_NAC_RULE_USER_LDAPUSER_GROUP_KEY,
3205 EID_NAC_RULE_ENDSYS_HOSTNAME_GROUP_KEY,
3206 EID_NAC_RULE_ENDSYS_LDAPHOST_GROUP_KEY,
3207 EID_NAC_RULE_ENDSYS_IPv4_GROUP_KEY,
3208 EID_NAC_RULE_ENDSYS_MAC_GROUP_KEY,
3209 EID_NAC_RULE_DEV_TYPE_GROUP_KEY,
3210 EID_NAC_RULE_LOCATION_GROUP_KEY,
3211 EID_NAC_RULE_TIME_GROUP_KEY,
3212 EID_NAC_RULE_POLICY_KEY,
3213 EID_NAC_LDAP_USER_GROUP_ARRAY,
3214 EID_NAC_LDAP_USER_GROUP_BLOCK,
3215 EID_NAC_LDAP_USER_GROUP_KEY,
3216 EID_NAC_LDAP_USER_GROUP_MATCH_MODE,
3217 EID_NAC_LDAP_USER_ATTR_ARRAY,
3218 EID_NAC_LDAP_USER_ATTR_BLOCK,
3219 EID_NAC_LDAP_USER_ATTR_KEY,
3220 EID_NAC_LDAP_USER_ATTR_VAL,
3221 EID_NAC_USERNAME_GROUP_ARRAY,
3222 EID_NAC_USERNAME_GROUP_BLOCK,
3223 EID_NAC_USERNAME_GROUP_KEY,
3224 EID_NAC_USERNAME_ARRAY,
3225 EID_NAC_USERNAME,
3226 EID_NAC_HOSTNAME_GROUP_ARRAY,
3227 EID_NAC_HOSTNAME_GROUP_BLOCK,
3228 EID_NAC_HOSTNAME_GROUP_KEY,
3229 EID_NAC_HOSTNAME_ARRAY,
3230 EID_NAC_HOSTNAME,
3231 EID_NAC_HOST_IPv4_GROUP_ARRAY,
3232 EID_NAC_HOST_IPv4_GROUP_BLOCK,
3233 EID_NAC_HOST_IPv4_GROUP_KEY,
3234 EID_NAC_HOST_IPv4_ARRAY,
3235 EID_NAC_HOST_IPv4_ADDRESS,
3236 EID_NAC_LDAP_HOST_GROUP_ARRAY,
3237 EID_NAC_LDAP_HOST_GROUP_BLOCK,
3238 EID_NAC_LDAP_HOST_GROUP_KEY,
3239 EID_NAC_LDAP_HOST_GROUP_MATCH_MODE,
3240 EID_NAC_LDAP_HOST_ATTR_ARRAY,
3241 EID_NAC_LDAP_HOST_ATTR_BLOCK,
3242 EID_NAC_LDAP_HOST_ATTR_KEY,
3243 EID_NAC_LDAP_HOST_ATTR_VAL,
3244 EID_NAC_HOST_MAC_GROUP_ARRAY,
3245 EID_NAC_HOST_MAC_GROUP_BLOCK,
3246 EID_NAC_HOST_MAC_GROUP_KEY,
3247 EID_NAC_HOST_MAC_ARRAY,
3248 EID_NAC_HOST_MAC,
3249 EID_NAC_DEV_TYPE_GROUP_ARRAY,
3250 EID_NAC_DEV_TYPE_GROUP_BLOCK,
3251 EID_NAC_DEV_TYPE_GROUP_KEY,
3252 EID_NAC_DEV_TYPE_ARRAY,
3253 EID_NAC_DEV_TYPE_ATTRIBUTE,
3254 EID_NAC_TIME_GROUP_ARRAY,
3255 EID_NAC_TIME_GROUP_BLOCK,
3256 EID_NAC_TIME_RANGE_GROUP_KEY,
3257 EID_NAC_TIME_RANGE_ARRAY,
3258 EID_NAC_TIME_RANGE,
3259 EID_NAC_LOC_GROUP_ARRAY,
3260 EID_NAC_LOC_GROUP_BLOCK,
3261 EID_NAC_LOC_GROUP_KEY,
3262 EID_NAC_LOC_ATTR_ARRAY,
3263 EID_SITE_RATE_CONTROL_BLOCK,
3264 EID_NAC_LOC_ATTR_BLOCK,
3265 EID_NAC_LOC_SSID,
3266 EID_NAC_LOC_APID,
3267 EID_NAC_LDAP_SRV_ARRAY,
3268 EID_SITE_TOPOLOGY_BLOCK,
3269 EID_NAC_LDAP_SRV_BLOCK,
3270 EID_NAC_LDAP_SRV_KEY,
3271 EID_NAC_LDAP_SRV_URL,
3272 EID_NAC_LDAP_SRV_TIMEOUT,
3273 EID_NAC_LDAP_USER_SRCH_ROOT,
3274 EID_NAC_LDAP_HOST_SRCH_ROOT,
3275 EID_NAC_LDAP_OU_SRCH_ROOT,
3276 EID_NAC_LDAP_USER_OBJ_CLASS,
3277 EID_NAC_LDAP_USER_SRCH_ATTR,
3278 EID_NAC_LDAP_HOST_OBJ_CLASS,
3279 EID_NAC_LDAP_HOST_SRCH_ATTR,
3280 EID_NAC_LDAP_FLAGS,
3281 EID_NAC_LDAP_USER_AUTH_TYPE,
3282 EID_NAC_LDAP_OU_OBJ_CLASS_ARRAY,
3283 EID_NAC_LDAP_OU_OBJ_CLASS,
3284 EID_NAC_KRB_REALM_ARRAY,
3285 EID_NAC_KRB_REALM_BLOCK,
3286 EID_SITE_POLICY_BLOCK,
3287 EID_SITE_FILTER_CONFIG_BLOCK,
3288 EID_SITE_COS_CONFIG_BLOCK,
3289 EID_SITE_LOCATION_BASED_LOOKUP_BLOCK,
3290 EID_SITE_RADIUS_SERVER_BLOCK,
3291 EID_NAC_KRB_KDCS,
3292 EID_NAC_LDAP_SERVER_INDEX,
3293 EID_NAC_SERVER_CONFIG_ARRAY,
3294 EID_NAC_SERVER_CONFIG_BLOCK,
3295 EID_NAC_SERVER_FQDN,
3296 EID_NAC_SERVER_IPV4_ADDR,
3297 EID_NAC_SERVER_DOMAIN,
3298 EID_NAC_SERVER_ADMIN_ID,
3299 EID_NAC_SERVER_ADMIN_PWD,
3300 EID_NAC_SERVER_WORKGROUP,
3301 EID_NAC_RULE_ENDSYS_WEB_AUTH_USER_GROUP_KEY,
3302 EID_NAC_WEB_AUTH_USER_GROUP_ARRAY,
3303 EID_NAC_WEB_AUTH_USER_GROUP_BLOCK,
3304 EID_NAC_WEB_AUTH_USER_GROUP_KEY,
3305 EID_NAC_WEB_AUTH_USER_ARRAY,
3306 EID_G_SITE_MAX
3308 } wassp_subtlv_site_config_type_t;
3310 static const TLV_PARSER_ENTRY tlvSiteConfigTable[] =
3312 { EID_G_SITE_ENABLE, "Enable Site", TLV_TYPE_BOOL, 0, 0, 0, 0, 0, 0, 0, 0},
3313 { EID_G_SITE_NAME, "Site Name", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
3314 { EID_G_RADIUS_CLIENT_AT_AP, "Enables Radius Client At AP", TLV_TYPE_BOOL, 0, 0, 0, 0, 0, 0, 0, 0},
3315 { EID_G_HYBRID_POLICY_MODE, "Hybrid Policy Mode", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
3316 { EID_G_LOCATION, "Location", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
3317 { EID_G_INVALID_POLICY, "Invalid Policy Action", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
3318 { EID_NAC_MBA_LOCAL_AUTH, "NAC MBA Authentication Type", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
3319 { EID_NAC_RULE_ARRAY, "Array of NAC Rule Structures", TLV_TYPE_BLOCK_TLV, TAB_CONFIG_SITE, 0, 0, 0, 0, 0, 0, 0},
3320 { EID_NAC_RULE_BLOCK, "NAC Rule Configuration Block", TLV_TYPE_BLOCK_TLV, TAB_CONFIG_SITE, 0, 0, 0, 0, 0, 0, 0},
3321 { EID_NAC_RULE_FLAGS, "Negate Flags For Different Groups", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
3322 { EID_NAC_RULE_AUTH_TYPE, "Authentication Type", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
3323 { EID_NAC_RULE_USER_USERNAME_GROUP_KEY, "Key Identifier of User Name Group", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
3324 { EID_NAC_RULE_USER_LDAPUSER_GROUP_KEY, "Key identifier of LDAP User Group", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
3325 { EID_NAC_RULE_ENDSYS_HOSTNAME_GROUP_KEY, "Key Identifier of End System Host Name Group", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
3326 { EID_NAC_RULE_ENDSYS_LDAPHOST_GROUP_KEY, "Key Identifier of End System LDAP Host Group", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
3327 { EID_NAC_RULE_ENDSYS_IPv4_GROUP_KEY, "Key Identifier of End System IPv4 Group", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
3328 { EID_NAC_RULE_ENDSYS_MAC_GROUP_KEY, "Key Identifier of End System Mac Group", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
3329 { EID_NAC_RULE_DEV_TYPE_GROUP_KEY, "Key Identifier of Device", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
3330 { EID_NAC_RULE_LOCATION_GROUP_KEY, "Key Identifier of Location Group", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
3331 { EID_NAC_RULE_TIME_GROUP_KEY, "Key Identifier of Time Group", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
3332 { EID_NAC_RULE_POLICY_KEY, "Policy ID", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
3333 { EID_NAC_LDAP_USER_GROUP_ARRAY, "NAC LDAP User Group Array", TLV_TYPE_BLOCK_TLV, TAB_CONFIG_SITE, 0, 0, 0, 0, 0, 0, 0},
3334 { EID_NAC_LDAP_USER_GROUP_BLOCK, "NAC LDAP User Group Block", TLV_TYPE_BLOCK_TLV, TAB_CONFIG_SITE, 0, 0, 0, 0, 0, 0, 0},
3335 { EID_NAC_LDAP_USER_GROUP_KEY, "Key Identifier of Specific LDAP User Group", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
3336 { EID_NAC_LDAP_USER_GROUP_MATCH_MODE, "Match Mode of LDAP User Group", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
3337 { EID_NAC_LDAP_USER_ATTR_ARRAY, "NAC LDAP User Attribute Array", TLV_TYPE_BLOCK_TLV, TAB_CONFIG_SITE, 0, 0, 0, 0, 0, 0, 0},
3338 { EID_NAC_LDAP_USER_ATTR_BLOCK, "NAC LDAP User Attribute Block", TLV_TYPE_BLOCK_TLV, TAB_CONFIG_SITE, 0, 0, 0, 0, 0, 0, 0},
3339 { EID_NAC_LDAP_USER_ATTR_KEY, "LDAP User Attribute Key", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
3340 { EID_NAC_LDAP_USER_ATTR_VAL, "LDAP User Attribute Value", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
3341 { EID_NAC_USERNAME_GROUP_ARRAY, "NAC Username Group Array", TLV_TYPE_BLOCK_TLV, TAB_CONFIG_SITE, 0, 0, 0, 0, 0, 0, 0},
3342 { EID_NAC_USERNAME_GROUP_BLOCK, "NAC Username Group Block", TLV_TYPE_BLOCK_TLV, TAB_CONFIG_SITE, 0, 0, 0, 0, 0, 0, 0},
3343 { EID_NAC_USERNAME_GROUP_KEY, "Key Identifier of Specific Username Group", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
3344 { EID_NAC_USERNAME_ARRAY, "NAC Username Array", TLV_TYPE_BLOCK_TLV, TAB_CONFIG_SITE, 0, 0, 0, 0, 0, 0, 0},
3345 { EID_NAC_USERNAME, "NAC Username", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
3346 { EID_NAC_HOSTNAME_GROUP_ARRAY, "NAC Host Name Group Array", TLV_TYPE_BLOCK_TLV, TAB_CONFIG_SITE, 0, 0, 0, 0, 0, 0, 0},
3347 { EID_NAC_HOSTNAME_GROUP_BLOCK, "NAC Host Name Group Block", TLV_TYPE_BLOCK_TLV, TAB_CONFIG_SITE, 0, 0, 0, 0, 0, 0, 0},
3348 { EID_NAC_HOSTNAME_GROUP_KEY, "NAC Host Name Group Key", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
3349 { EID_NAC_HOSTNAME_ARRAY, "NAC Host Name Array", TLV_TYPE_BLOCK_TLV, TAB_CONFIG_SITE, 0, 0, 0, 0, 0, 0, 0},
3350 { EID_NAC_HOSTNAME, "NAC Host Name", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
3351 { EID_NAC_HOST_IPv4_GROUP_ARRAY, "Array of Host By IPv4 Groups", TLV_TYPE_BLOCK_TLV, TAB_CONFIG_SITE, 0, 0, 0, 0, 0, 0, 0},
3352 { EID_NAC_HOST_IPv4_GROUP_BLOCK, "NAC Host IPv4 Group Block", TLV_TYPE_BLOCK_TLV, TAB_CONFIG_SITE, 0, 0, 0, 0, 0, 0, 0},
3353 { EID_NAC_HOST_IPv4_GROUP_KEY, "NAC Host IPv4 Group key", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
3354 { EID_NAC_HOST_IPv4_ARRAY, "NAC Host IPv4 Array", TLV_TYPE_BLOCK_TLV, TAB_CONFIG_SITE, 0, 0, 0, 0, 0, 0, 0},
3355 { EID_NAC_HOST_IPv4_ADDRESS, "NAC Host IPv4 Address", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
3356 { EID_NAC_LDAP_HOST_GROUP_ARRAY, "NAC LDAP Host Group Array", TLV_TYPE_BLOCK_TLV, TAB_CONFIG_SITE, 0, 0, 0, 0, 0, 0, 0},
3357 { EID_NAC_LDAP_HOST_GROUP_BLOCK, "NAC LDAP Host Group Block", TLV_TYPE_BLOCK_TLV, TAB_CONFIG_SITE, 0, 0, 0, 0, 0, 0, 0},
3358 { EID_NAC_LDAP_HOST_GROUP_KEY, "NAC LDAP Host Group Key", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
3359 { EID_NAC_LDAP_HOST_GROUP_MATCH_MODE, "Match Mode of Specific LDAP Host Group", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
3360 { EID_NAC_LDAP_HOST_ATTR_ARRAY, "NAC LDAP Host Attribute Array", TLV_TYPE_BLOCK_TLV, TAB_CONFIG_SITE, 0, 0, 0, 0, 0, 0, 0},
3361 { EID_NAC_LDAP_HOST_ATTR_BLOCK, "NAC LDAP Host Attribute Block", TLV_TYPE_BLOCK_TLV, TAB_CONFIG_SITE, 0, 0, 0, 0, 0, 0, 0},
3362 { EID_NAC_LDAP_HOST_ATTR_KEY, "NAC LDAP Host Attribute Key", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
3363 { EID_NAC_LDAP_HOST_ATTR_VAL, "NAC LDAP Host Attribute value", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
3364 { EID_NAC_HOST_MAC_GROUP_ARRAY, "NAC Host Mac Group Array", TLV_TYPE_BLOCK_TLV, TAB_CONFIG_SITE, 0, 0, 0, 0, 0, 0, 0},
3365 { EID_NAC_HOST_MAC_GROUP_BLOCK, "NAC Host Mac Group Block", TLV_TYPE_BLOCK_TLV, TAB_CONFIG_SITE, 0, 0, 0, 0, 0, 0, 0},
3366 { EID_NAC_HOST_MAC_GROUP_KEY, "NAC Host Mac Group Key", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
3367 { EID_NAC_HOST_MAC_ARRAY, "NAC Host Mac Array", TLV_TYPE_BLOCK_TLV, TAB_CONFIG_SITE, 0, 0, 0, 0, 0, 0, 0},
3368 { EID_NAC_HOST_MAC, "NAC Host Mac", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
3369 { EID_NAC_DEV_TYPE_GROUP_ARRAY, "NAC Device Type Group Array", TLV_TYPE_BLOCK_TLV, TAB_CONFIG_SITE, 0, 0, 0, 0, 0, 0, 0},
3370 { EID_NAC_DEV_TYPE_GROUP_BLOCK, "NAC Device Type Group Block", TLV_TYPE_BLOCK_TLV, TAB_CONFIG_SITE, 0, 0, 0, 0, 0, 0, 0},
3371 { EID_NAC_DEV_TYPE_GROUP_KEY, "NAC Device Type Group Key", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
3372 { EID_NAC_DEV_TYPE_ARRAY, "NAC Device Type Array", TLV_TYPE_BLOCK_TLV, TAB_CONFIG_SITE, 0, 0, 0, 0, 0, 0, 0},
3373 { EID_NAC_DEV_TYPE_ATTRIBUTE, "NAC Device Type Attribute", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
3374 { EID_NAC_TIME_GROUP_ARRAY, "NAC Time Group Array", TLV_TYPE_BLOCK_TLV, TAB_CONFIG_SITE, 0, 0, 0, 0, 0, 0, 0},
3375 { EID_NAC_TIME_GROUP_BLOCK, "NAC Time Group Block", TLV_TYPE_BLOCK_TLV, TAB_CONFIG_SITE, 0, 0, 0, 0, 0, 0, 0},
3376 { EID_NAC_TIME_RANGE_GROUP_KEY, "NAC Time Group Key", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
3377 { EID_NAC_TIME_RANGE_ARRAY, "NAC Time Range Array", TLV_TYPE_BLOCK_TLV, TAB_CONFIG_SITE, 0, 0, 0, 0, 0, 0, 0},
3378 { EID_NAC_TIME_RANGE, "NAC Time Range", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
3379 { EID_NAC_LOC_GROUP_ARRAY, "NAC Location Group Array", TLV_TYPE_BLOCK_TLV, TAB_CONFIG_SITE, 0, 0, 0, 0, 0, 0, 0},
3380 { EID_NAC_LOC_GROUP_BLOCK, "NAC Location Group Block", TLV_TYPE_BLOCK_TLV, TAB_CONFIG_SITE, 0, 0, 0, 0, 0, 0, 0},
3381 { EID_NAC_LOC_GROUP_KEY, "NAC Location Group Key", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
3382 { EID_NAC_LOC_ATTR_ARRAY, "NAC Location Attribute Array", TLV_TYPE_BLOCK_TLV, TAB_CONFIG_SITE, 0, 0, 0, 0, 0, 0, 0},
3383 { EID_SITE_RATE_CONTROL_BLOCK, "Site Rate Control Block", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
3384 { EID_NAC_LOC_ATTR_BLOCK, "NAC Location Attribute Block", TLV_TYPE_BLOCK_TLV, TAB_CONFIG_SITE, 0, 0, 0, 0, 0, 0, 0},
3385 { EID_NAC_LOC_SSID, "NAC Location SSID", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
3386 { EID_NAC_LOC_APID, "NAC Location AP ID", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
3387 { EID_NAC_LDAP_SRV_ARRAY, "NAC Array of LDAP Servers", TLV_TYPE_BLOCK_TLV, TAB_CONFIG_SITE, 0, 0, 0, 0, 0, 0, 0},
3388 { EID_SITE_TOPOLOGY_BLOCK, "Site Topology Block", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
3389 { EID_NAC_LDAP_SRV_BLOCK, "NAC LDAP Server Block", TLV_TYPE_BLOCK_TLV, TAB_CONFIG_SITE, 0, 0, 0, 0, 0, 0, 0},
3390 { EID_NAC_LDAP_SRV_KEY, "NAC LDAP Server Key", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
3391 { EID_NAC_LDAP_SRV_URL, "NAC LDAP Server Url", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
3392 { EID_NAC_LDAP_SRV_TIMEOUT, "Timeout for Response From LDAP Server", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
3393 { EID_NAC_LDAP_USER_SRCH_ROOT, "LDAP Server User Search Root", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
3394 { EID_NAC_LDAP_HOST_SRCH_ROOT, "LDAP Server Hostname Search Root", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
3395 { EID_NAC_LDAP_OU_SRCH_ROOT, "LDAP Server OU Search Root", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
3396 { EID_NAC_LDAP_USER_OBJ_CLASS, "LDAP Server User Object Class", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
3397 { EID_NAC_LDAP_USER_SRCH_ATTR, "LDAP Server User Search Attribute", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
3398 { EID_NAC_LDAP_HOST_OBJ_CLASS, "LDAP Server Host object Class", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
3399 { EID_NAC_LDAP_HOST_SRCH_ATTR, "LDAP Server Host Search Attribute", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
3400 { EID_NAC_LDAP_FLAGS, "LDAP Server Flag", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
3401 { EID_NAC_LDAP_USER_AUTH_TYPE, "User Authentication Type", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
3402 { EID_NAC_LDAP_OU_OBJ_CLASS_ARRAY, "Array of NAC LDAP Organizational Units (OU) Object Classes", TLV_TYPE_BLOCK_TLV, TAB_CONFIG_SITE, 0, 0, 0, 0, 0, 0, 0},
3403 { EID_NAC_LDAP_OU_OBJ_CLASS, "NAC LDAP Organizational Units (OU) Object Class", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
3404 { EID_NAC_KRB_REALM_ARRAY, "Array of NAC Kerberos Realms", TLV_TYPE_BLOCK_TLV, TAB_CONFIG_SITE, 0, 0, 0, 0, 0, 0, 0},
3405 { EID_NAC_KRB_REALM_BLOCK, "NAC Kerberos Realm Block", TLV_TYPE_BLOCK_TLV, TAB_CONFIG_SITE, 0, 0, 0, 0, 0, 0, 0},
3406 { EID_SITE_POLICY_BLOCK, "Policy Block", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
3407 { EID_SITE_FILTER_CONFIG_BLOCK, "Filter Configuration Block",TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
3408 { EID_SITE_COS_CONFIG_BLOCK, "COS Configuration Block", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
3409 { EID_SITE_LOCATION_BASED_LOOKUP_BLOCK, "Location Based Lookup Block", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
3410 { EID_SITE_RADIUS_SERVER_BLOCK, "Radius Server Block", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
3411 { EID_NAC_KRB_KDCS, "List of Kerberos KDC FQDN", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
3412 { EID_NAC_LDAP_SERVER_INDEX, "LDAP Server for MU Authorization", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
3413 { EID_NAC_SERVER_CONFIG_ARRAY, "Array of NAC Authentication Server Configurations", TLV_TYPE_BLOCK_TLV, TAB_NAC_SERVER_CONFIG_ARRAY, 0, 0, 0, 0, 0, 0, 0},
3414 { EID_NAC_SERVER_CONFIG_BLOCK, "NAC Authentication Server Block", TLV_TYPE_BLOCK_TLV, TAB_NAC_SERVER_CONFIG_BLOCK, 0, 0, 0, 0, 0, 0, 0},
3415 { EID_NAC_SERVER_FQDN, "Authentication Server FQDN", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
3416 { EID_NAC_SERVER_IPV4_ADDR, "Authentication Server IPv4 address", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
3417 { EID_NAC_SERVER_DOMAIN, "Authentication Server Domain", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
3418 { EID_NAC_SERVER_ADMIN_ID, "NAC Authentication Server Admin ID", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
3419 { EID_NAC_SERVER_ADMIN_PWD, "NAC Authentication Server Admin Password", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
3420 { EID_NAC_SERVER_WORKGROUP, "NAC Authentication Server Workgroup", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
3421 { EID_NAC_RULE_ENDSYS_WEB_AUTH_USER_GROUP_KEY, "NAC Rule End System WEB Authentication User Group Key", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
3422 { EID_NAC_WEB_AUTH_USER_GROUP_ARRAY, "NAC WEB Authentication User Group Array", TLV_TYPE_BLOCK_TLV, TAB_NAC_WEB_AUTH_USER_GROUP_ARRAY, 0, 0, 0, 0, 0, 0, 0},
3423 { EID_NAC_WEB_AUTH_USER_GROUP_BLOCK, "NAC WEB Authentication User Group Block", TLV_TYPE_BLOCK_TLV, TAB_NAC_WEB_AUTH_USER_GROUP_BLOCK, 0, 0, 0, 0, 0, 0, 0},
3424 { EID_NAC_WEB_AUTH_USER_GROUP_KEY, "NAC WEB Authentication User Group key", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
3425 { EID_NAC_WEB_AUTH_USER_ARRAY, "NAC WEB Authentication User", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
3426 { EID_G_SITE_MAX, "G_SITE_MAX",0, 0, 0, 0, 0, 0, 0, 0, 0}
3434 //EID_POLICY_BLOCK: Policy Table
3435 typedef enum
3437 EID_POLICY_UNUSED0,
3438 EID_POLICY_ENTRY_NAME,
3439 EID_POLICY_ENTRY_KEY,
3440 EID_POLICY_TOPOLOGY_KEY,
3441 EID_POLICY_TOPOLOGY_VLAN_ID,
3442 EID_POLICY_TOPOLOGY_TYPE,
3443 EID_POLICY_FILTER_KEY,
3444 EID_POLICY_COS_KEY,
3445 EID_POLICY_IGNORE_COS,
3446 EID_POLICY_DYNAMIC_EGRESS_VLANS,
3447 EID_POLICY_STATIC_EGRESS_VLANS,
3448 EID_POLICY_DEFAULT_ACTION,
3449 EID_POLICY_FLAGS,
3450 EID_POLICY_DEFAULT_MIRRORN,
3451 EID_POLICY_RB_REDIRECT_URL
3453 // update below tlvPolicyConfigTable
3454 } wassp_subtlv_policy_config_type_t;
3456 static const TLV_PARSER_ENTRY tlvPolicyConfigTable[] =
3458 { EID_POLICY_UNUSED0, "Policy Unused 0", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
3459 { EID_POLICY_ENTRY_NAME, "Policy Entry name", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
3460 { EID_POLICY_ENTRY_KEY, "Policy Entry Key", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
3461 { EID_POLICY_TOPOLOGY_KEY, "Policy Topology Key", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
3462 { EID_POLICY_TOPOLOGY_VLAN_ID, "Topology Vlan ID", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
3463 { EID_POLICY_TOPOLOGY_TYPE, "Policy Topology Type", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
3464 { EID_POLICY_FILTER_KEY, "Policy Filter Key", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
3465 { EID_POLICY_COS_KEY, "Policy COS Key", TLV_TYPE_INT, 0, 0, 0, 0, 0, 0, 0, 0},
3466 { EID_POLICY_IGNORE_COS, "Policy Ignore COS", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
3467 { EID_POLICY_DYNAMIC_EGRESS_VLANS, "list of Dynamic Egress VLAN IDs", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
3468 { EID_POLICY_STATIC_EGRESS_VLANS, "list of static egress VLAN IDs", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
3469 { EID_POLICY_DEFAULT_ACTION, "Default Action for Policy", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
3470 { EID_POLICY_FLAGS, "Policy Flags", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
3471 { EID_POLICY_DEFAULT_MIRRORN, "Set Default MirrorN", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
3472 { EID_POLICY_RB_REDIRECT_URL, "Policy Redirect Url", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0}
3478 //EID_COS_CONFIG_BLOCK
3479 typedef enum
3481 EID_COS_UNUSED0,
3482 EID_COS_KEY,
3483 EID_COS_DEFINITION,
3484 EID_COS_IN_RATE_LIMIT,
3485 EID_COS_OUT_RATE_LIMIT
3486 } wassp_subtlv_cos_config_type_t;
3488 static const TLV_PARSER_ENTRY tlvCosConfigTable[] =
3490 { EID_COS_UNUSED0, "COS Unused 0", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
3491 { EID_COS_KEY, "COS Key", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
3492 { EID_COS_DEFINITION, "Binary Encoded COS Definition", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
3493 { EID_COS_IN_RATE_LIMIT, "Input Rate Limit in Kbps", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
3494 { EID_COS_OUT_RATE_LIMIT, "Output Rate Limit in Kbps", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0}
3498 //EID_11U_ANQP_BLOCK
3499 typedef enum
3501 EID_11U_UNUSED0,
3502 EID_11U_3GPP_CELL_NETWORK_ARRAY,
3503 EID_11U_3GPP_CELL_NETWORK_STRUCT,
3504 EID_11U_3GPP_CELL_NETWORK_MCC,
3505 EID_11U_3GPP_CELL_NETWORK_MNC,
3506 EID_11U_ACCESS_NETWORK_TYPE,
3507 EID_11U_ASRA,
3508 EID_11U_DOMAIN_NAME,
3509 EID_11U_EAP_AUTH_PARAM,
3510 EID_11U_EAP_AUTH_PARAM_ARRAY,
3511 EID_11U_EAP_AUTH_PARAM_STRUCT,
3512 EID_11U_EAP_AUTH_TYPE,
3513 EID_11U_EAP_METHOD,
3514 EID_11U_EAP_METHODS_ARRAY,
3515 EID_11U_EAP_METHODS_STRUCT,
3516 EID_11U_HESSID,
3517 EID_11U_INTERNET_AVAILABLE,
3518 EID_11U_IPV4_ADDR_TYPE_AVAIL,
3519 EID_11U_IPV6_ADDR_TYPE_AVAIL,
3520 EID_11U_NAI_REALM,
3521 EID_11U_NAI_REALM_ARRAY,
3522 EID_11U_NAI_REALM_STRUCT,
3523 EID_11U_NETWORK_AUTH_TYPE,
3524 EID_11U_ROAMING_CONSORTIUM,
3525 EID_11U_ROAMING_CONSORTIUM_ARRAY,
3526 EID_11U_VENUE_INFO_GROUP_CODE,
3527 EID_11U_VENUE_INFO_TYPE_ASSIGNMENTS,
3528 EID_11U_VENUE_NAME_ARRAY,
3529 EID_11U_VENUE_NAME,
3530 EID_11U_NETWORK_AUTH_TYPE_URL
3531 } wassp_subtlv_11u_anqp_config_type_t;
3534 static const TLV_PARSER_ENTRY tlv11U_ANQP_blockTable[] =
3536 //Members of EID_11U_ANQP_BLOCK block
3537 { EID_11U_UNUSED0, "11U Unused 0", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
3538 { EID_11U_3GPP_CELL_NETWORK_ARRAY, "11U 3GPP Cell Network Array", TLV_TYPE_BLOCK_TLV, TAB_11U_ANQP_BLOCK, 0, 0, 0, 0, 0, 0, 0},
3539 { EID_11U_3GPP_CELL_NETWORK_STRUCT, "11U 3GPP Cell Network Struct", TLV_TYPE_BLOCK_TLV, TAB_11U_ANQP_BLOCK, 0, 0, 0, 0, 0, 0, 0},
3540 { EID_11U_3GPP_CELL_NETWORK_MCC, "11U 3GPP Cell Network MCC", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
3541 { EID_11U_3GPP_CELL_NETWORK_MNC, "11U 3GPP Cell Network MNC", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
3542 { EID_11U_ACCESS_NETWORK_TYPE, "11U Access network Type", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
3543 { EID_11U_ASRA, "11U ASRA", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
3544 { EID_11U_DOMAIN_NAME, "11U Domain Name", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
3545 { EID_11U_EAP_AUTH_PARAM, "11U EAP Authentication Parameter", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
3546 { EID_11U_EAP_AUTH_PARAM_ARRAY, "11U EAP Authentication Parameter Array", TLV_TYPE_BLOCK_TLV, TAB_11U_ANQP_BLOCK, 0, 0, 0, 0, 0, 0, 0},
3547 { EID_11U_EAP_AUTH_PARAM_STRUCT, "11U EAP Authentication Parameter Struct", TLV_TYPE_BLOCK_TLV, TAB_11U_ANQP_BLOCK, 0, 0, 0, 0, 0, 0, 0},
3548 { EID_11U_EAP_AUTH_TYPE, "11U EAP Authentication Type", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
3549 { EID_11U_EAP_METHOD, "11U EAP Authentication Method", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
3550 { EID_11U_EAP_METHODS_ARRAY, "11U EAP Authentication Methods Array", TLV_TYPE_BLOCK_TLV, TAB_11U_ANQP_BLOCK, 0, 0, 0, 0, 0, 0, 0},
3551 { EID_11U_EAP_METHODS_STRUCT, "11U EAP Authentication Method Struct", TLV_TYPE_BLOCK_TLV, TAB_11U_ANQP_BLOCK, 0, 0, 0, 0, 0, 0, 0},
3552 { EID_11U_HESSID, "11U HESSID", TLV_TYPE_MACADD, 0, 0, 0, 0, 0, 0, 0, 0},
3553 { EID_11U_INTERNET_AVAILABLE, "11U Internet Available", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
3554 { EID_11U_IPV4_ADDR_TYPE_AVAIL, "11U IPv4 Address Type Availability", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
3555 { EID_11U_IPV6_ADDR_TYPE_AVAIL, "11U IPv6 Address Type Availability", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
3556 { EID_11U_NAI_REALM, "11U NAI Realm", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
3557 { EID_11U_NAI_REALM_ARRAY, "11U NAI Realm Array", TLV_TYPE_BLOCK_TLV, TAB_11U_ANQP_BLOCK, 0, 0, 0, 0, 0, 0, 0},
3558 { EID_11U_NAI_REALM_STRUCT, "11U NAI Realm Struct", TLV_TYPE_BLOCK_TLV, TAB_11U_ANQP_BLOCK, 0, 0, 0, 0, 0, 0, 0},
3559 { EID_11U_NETWORK_AUTH_TYPE, "11U Network Authentication Type", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
3560 { EID_11U_ROAMING_CONSORTIUM, "11U Roaming Consortium", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
3561 { EID_11U_ROAMING_CONSORTIUM_ARRAY, "11U Roaming Consortium Array", TLV_TYPE_BLOCK_TLV, TAB_11U_ANQP_BLOCK, 0, 0, 0, 0, 0, 0, 0},
3562 { EID_11U_VENUE_INFO_GROUP_CODE, "11U Venue Info Group Code", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
3563 { EID_11U_VENUE_INFO_TYPE_ASSIGNMENTS, "11U Venue Info Type Assignments", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
3564 { EID_11U_VENUE_NAME_ARRAY, "1U Venue Name Array", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
3565 { EID_11U_VENUE_NAME, "1U Venue Name", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
3566 { EID_11U_NETWORK_AUTH_TYPE_URL, "11U Network Authentication Type Url", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0}
3573 // AppVisibility Enforce config block EID_EXTAPP_CONF_BLOCK
3574 typedef enum
3576 EID_EXTAPP_UNUSED0,
3577 EID_EXTAPP_DISP_NAME,
3578 EID_EXTAPP_DISP_ID,
3579 EID_EXTAPP_MATCH_STR,
3580 EID_EXTAPP_APP_ID,
3581 EID_EXTAPP_GROUP_ID
3582 } wassp_subtlv_extapp_conf_block_type_t;
3584 static const TLV_PARSER_ENTRY tlvExtapp_conf_blockTable[] =
3586 { EID_EXTAPP_UNUSED0, "EXTAPP Unused 0", TLV_TYPE_UNKNOWN, 0, 0, 0, 0, 0, 0, 0, 0},
3587 { EID_EXTAPP_DISP_NAME, "EXTAPP Display Name", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
3588 { EID_EXTAPP_DISP_ID, "EXTAPP Display ID", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
3589 { EID_EXTAPP_MATCH_STR, "EXTAPP Match String", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
3590 { EID_EXTAPP_APP_ID, "EXTAPP Application ID", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
3591 { EID_EXTAPP_GROUP_ID, "EXTAPP Application Group ID", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0}
3596 //Members of EID_HS2_BLOCK block
3597 typedef enum
3599 EID_HS2_UNUSED0,
3600 EID_HS2_ANQP_DOMAIN_ID,
3601 EID_HS2_CONNECTION_CAP,
3602 EID_HS2_CONNECTION_CAP_ARRAY,
3603 EID_HS2_DGAF,
3604 EID_HS2_ICON_NAME,
3605 EID_HS2_OPERATING_CLASS,
3606 EID_HS2_OP_FRIENDLY_NAME_ARRAY,
3607 EID_HS2_OP_FRIENDLY_NAME,
3608 EID_HS2_OSU_STRUCT,
3609 EID_HS2_OSU_SP_ARRAY,
3610 EID_HS2_OSU_SP_STRUCT,
3611 EID_HS2_OSU_SP_DESC_ARRAY,
3612 EID_HS2_OSU_SP_DESC,
3613 EID_HS2_OSU_SP_FRIENDLY_NAME_ARRAY,
3614 EID_HS2_OSU_SP_FRIENDLY_NAME,
3615 EID_HS2_OSU_SP_ICON_ARRAY,
3616 EID_HS2_OSU_SP_ICON_STRUCT,
3617 EID_HS2_OSU_SP_METHOD_LIST,
3618 EID_HS2_OSU_SP_NAI,
3619 EID_HS2_OSU_SP_SERVER_URI,
3620 EID_HS2_OSU_SSID,
3621 EID_HS2_RELEASE,
3622 EID_HS2_WAN_METRICS_STRUCT,
3623 EID_HS2_UPLINK_LOAD,
3624 EID_HS2_UPLINK_SPEED,
3625 EID_HS2_WIDTH,
3626 EID_HS2_DOWLINK_LOAD,
3627 EID_HS2_DOWLINK_SPEED,
3628 EID_HS2_HIGHT
3629 } wassp_subtlv_hs2_block_type_t;
3631 static const TLV_PARSER_ENTRY tlvHS2_blockTable[] =
3633 { EID_HS2_UNUSED0, "HS2 Unused 0", TLV_TYPE_UNKNOWN, 0, 0, 0, 0, 0, 0, 0, 0},
3634 { EID_HS2_ANQP_DOMAIN_ID, "HS2 ANQP Domain ID", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
3635 { EID_HS2_CONNECTION_CAP, "HS2 Connection Capacity", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
3636 { EID_HS2_CONNECTION_CAP_ARRAY, "HS2 Connection Capacity Array", TLV_TYPE_BLOCK_TLV, TAB_HS2_BLOCK, 0, 0, 0, 0, 0, 0, 0},
3637 { EID_HS2_DGAF, "Enable HS2 DGAF", TLV_TYPE_BOOL, 0, 0, 0, 0, 0, 0, 0, 0},
3638 { EID_HS2_ICON_NAME, "HS2 Icon Name", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
3639 { EID_HS2_OPERATING_CLASS, "HS2 Operating Class", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
3640 { EID_HS2_OP_FRIENDLY_NAME_ARRAY, "HS2 Operation Friendly Name Array", TLV_TYPE_BLOCK_TLV, TAB_HS2_BLOCK, 0, 0, 0, 0, 0, 0, 0},
3641 { EID_HS2_OP_FRIENDLY_NAME, "HS2 Operation Friendly Name", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
3642 { EID_HS2_OSU_STRUCT, "HS2 OSU Struct", TLV_TYPE_BLOCK_TLV, TAB_HS2_BLOCK, 0, 0, 0, 0, 0, 0, 0},
3643 { EID_HS2_OSU_SP_ARRAY, "HS2 OSU SP Array", TLV_TYPE_BLOCK_TLV, TAB_HS2_BLOCK, 0, 0, 0, 0, 0, 0, 0},
3644 { EID_HS2_OSU_SP_STRUCT, "HS2 OSU SP Struct", TLV_TYPE_BLOCK_TLV, TAB_HS2_BLOCK, 0, 0, 0, 0, 0, 0, 0},
3645 { EID_HS2_OSU_SP_DESC_ARRAY, "HS2 OSU SP Description Array", TLV_TYPE_BLOCK_TLV, TAB_HS2_BLOCK, 0, 0, 0, 0, 0, 0, 0},
3646 { EID_HS2_OSU_SP_DESC, "HS2 OSU SP Description", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
3647 { EID_HS2_OSU_SP_FRIENDLY_NAME_ARRAY, "HS2 OSU SP Friendly Name Array", TLV_TYPE_BLOCK_TLV, TAB_HS2_BLOCK, 0, 0, 0, 0, 0, 0, 0},
3648 { EID_HS2_OSU_SP_FRIENDLY_NAME, "HS2 OSU SP Friendly Name", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
3649 { EID_HS2_OSU_SP_ICON_ARRAY, "HS2 OSU SP Icon Array", TLV_TYPE_BLOCK_TLV, TAB_HS2_BLOCK, 0, 0, 0, 0, 0, 0, 0},
3650 { EID_HS2_OSU_SP_ICON_STRUCT, "HS2 OSU SP Icon Struct", TLV_TYPE_BLOCK_TLV, TAB_HS2_BLOCK, 0, 0, 0, 0, 0, 0, 0},
3651 { EID_HS2_OSU_SP_METHOD_LIST, "HS2 OSU SP Method List", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
3652 { EID_HS2_OSU_SP_NAI, "HS2 OSU SP NAI", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
3653 { EID_HS2_OSU_SP_SERVER_URI, "HS2 OSU SP Server Uri", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
3654 { EID_HS2_OSU_SSID, "HS2 OSU SSID", TLV_TYPE_STRING, 0, 0, 0, 0, 0, 0, 0, 0},
3655 { EID_HS2_RELEASE, "HS2 Release", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
3656 { EID_HS2_WAN_METRICS_STRUCT, "HS2 WAN method Struct", TLV_TYPE_BLOCK_TLV, TAB_HS2_BLOCK, 0, 0, 0, 0, 0, 0, 0},
3657 { EID_HS2_UPLINK_LOAD, "HS2 Uplink Load", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
3658 { EID_HS2_UPLINK_SPEED, "HS2 Uplink Speed", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
3659 { EID_HS2_WIDTH, "HS2 Width", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
3660 { EID_HS2_DOWLINK_LOAD, "HS2 Downlink Load", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
3661 { EID_HS2_DOWLINK_SPEED, "HS2 Downlink Speed", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
3662 { EID_HS2_HIGHT, "HS2 Height", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0}
3667 //EID_LOCATION_BASED_LOOKUP_BLOCK
3668 typedef enum
3670 EID_LOC_UNUSED0,
3671 EID_LOC_VLAN_ID_KEY, // 1
3672 EID_LOC_POLICY_TOPOLOGY_KEY // 2
3673 } wassp_subtlv_locationbased_lookup_type_t;
3676 static const TLV_PARSER_ENTRY tlvLocationBaseLookUpTable[] =
3678 { EID_LOC_UNUSED0, "Location Unused 0", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
3679 { EID_LOC_VLAN_ID_KEY, "Location Vlan ID", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
3680 { EID_LOC_POLICY_TOPOLOGY_KEY, "Location Topology ID", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0}
3686 //EID_APP_POLICY_FIXED_BLOCK
3687 typedef enum
3689 EID_APP_POLICY_UNUSED0,
3690 EID_APP_POLICY_ENTRY_BLOCK // 1
3691 } wassp_subtlv_app_policy_fixed_type_t;
3693 static const TLV_PARSER_ENTRY tlvAppPolicyFixedTable[] =
3695 { EID_APP_POLICY_UNUSED0, "Application Policy Unused 0", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
3696 { EID_APP_POLICY_ENTRY_BLOCK, "Application Policy Entry Block", TLV_TYPE_BLOCK_TLV, TAB_APP_POLICY_ENTRY_BLOCK, 0, 0, 0, 0, 0, 0, 0}
3704 // EID_APP_POLICY_ENTRY_BLOCK
3705 typedef enum
3707 EID_APP_POLICY_ENTRY_UNUSED0,
3708 EID_APP_POLICY_APP_ID, // 1
3709 EID_APP_POLICY_OFFSET_LW, // 2
3710 EID_APP_POLICY_MASK, // 3
3711 EID_APP_POLICY_VALUE // 4
3712 } wassp_subtlv_app_policy_entry_type_t;
3715 static const TLV_PARSER_ENTRY tlvAppPolicyEntryTable[] =
3717 { EID_APP_POLICY_ENTRY_UNUSED0, "Application Policy Entry Unused 0", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
3718 { EID_APP_POLICY_APP_ID, "Application Policy ID", TLV_TYPE_UINT, 0, 0, 0, 0, 0, 0, 0, 0},
3719 { EID_APP_POLICY_OFFSET_LW, "Application Policy Offset", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
3720 { EID_APP_POLICY_MASK, "Application Policy Masks", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0},
3721 { EID_APP_POLICY_VALUE, "Application Policy Values", TLV_TYPE_OCTETS, 0, 0, 0, 0, 0, 0, 0, 0}
3731 typedef struct
3733 char subtree_name[WASSP_MAX_SUBTREE_LEN];
3734 int* ett_num;
3735 int max_entry;
3736 const TLV_PARSER_ENTRY *entry;
3737 } WASSP_SUBTLV_DECODER_INFO_t;
3741 /* EID_ACTION -- upgrade command */
3742 #define UPGRADE_ACTION_REPORT (0) /* report current status */
3743 #define UPGRADE_ACTION_NO_CHANGE (1) /* no upgrade is required */
3744 #define UPGRADE_ACTION_LEGACY (2) /* legacy upgrade, stop service and upgrade*/
3745 #define UPGRADE_ACTION_BACKGROUND (3) /* background download, keep service then upgrade */
3746 #define UPGRADE_ACTION_SAVE_BACKUP (4) /* download image, overwrite backup image*/
3747 #define UPGRADE_ACTION_SWITCH_VERSION (5) /* switch to a previously downloaded image */
3748 #define UPGRADE_ACTION_ABORT (6) /* abort current download operation */
3749 #define UPGRADE_ACTION_STOP_SERVICE (7) /* put AP on hold, stopping service */
3750 #define UPGRADE_ACTION_HOLD (8) /* put AP on hold, continue providing service !!!*/
3751 #define UPGRADE_ACTION_REBOOT (9) /* reboot AP */
3753 /* EID_STATUS -- version report */
3754 #define UPGRADE_STATUS_NONE (0) /* not used */
3755 #define UPGRADE_STATUS_SUCCESS (1) /* command is successful */
3756 #define UPGRADE_STATUS_FAIL (2) /* command has failed */
3757 #define UPGRADE_STATUS_INPROGRESS (100) /* download and writing to flash */
3758 #define UPGRADE_STATUS_DOWNLOAD_FAIL (101) /* download and writing to flash */
3759 #define UPGRADE_STATUS_WRITE_FAIL (102) /* writing to flash failed */
3760 #define UPGRADE_STATUS_CORRUPTED_FILE (103) /*corrupted/unusable image */
3761 #define UPGRADE_STATUS_REBOOTING (104) /*AP is rebooting*/
3762 #define UPGRADE_STATUS_INVALID_FILE (105) /*invalid image file (checksum, type etc..)*/
3763 #define UPGRADE_STATUS_VERSION_MISMATCH (106) /* requested version is not found*/
3765 /* Wassp EID Status Type */
3766 typedef enum
3768 EID_STATUS_UNDEFINED = 0,
3769 EID_STATUS_SUCCESS,
3770 EID_STATUS_FAILURE,
3771 EID_STATUS_INPROGRESS,
3772 EID_STATUS_DOWNLOAD_FAIL,
3773 EID_STATUS_WRITE_FAIL,
3774 EID_STATUS_CORRUPTED_FILE,
3775 EID_STATUS_REBOOTING,
3776 EID_STATUS_INVALID_FILE,
3777 EID_STATUS_VERSION_MISMATCH
3778 } wassp_eid_status_t;
3780 /* Wassp EID action Type */
3781 typedef enum
3783 EID_ACTION_REPORT = 0,
3784 EID_ACTION_NOCHANGE,
3785 EID_ACTION_LEGACY,
3786 EID_ACTION_BACKGROUND,
3787 EID_ACTION_SAVE_BACKUP,
3788 EID_ACTION_SWITCH_VERSION,
3789 EID_ACTION_ABORT,
3790 EID_ACTION_STOP_SERVICE,
3791 EID_ACTION_HOLD,
3792 EID_ACTION_REBOOT
3793 } wassp_eid_action_t;
3801 static const value_string wassp_eid_status_types[] =
3803 { UPGRADE_STATUS_NONE, "Unused" },
3804 { UPGRADE_STATUS_SUCCESS, "success" },
3805 { UPGRADE_STATUS_FAIL, "failure" },
3806 { UPGRADE_STATUS_INPROGRESS, "download in progress" },
3807 { UPGRADE_STATUS_DOWNLOAD_FAIL, "image download failed" },
3808 { UPGRADE_STATUS_WRITE_FAIL, "writing image to flash failed" },
3809 { UPGRADE_STATUS_CORRUPTED_FILE, "main image file is corrupted/unusable" },
3810 { UPGRADE_STATUS_REBOOTING, "AP is rebooting" },
3811 { UPGRADE_STATUS_INVALID_FILE, "bad header in downloaded image" },
3812 { UPGRADE_STATUS_VERSION_MISMATCH, "image version requested does not exist" },
3813 { 0, NULL }
3816 /* Value string object enumerates wassp action type field */
3817 static const value_string wassp_eid_action_types[] =
3819 { UPGRADE_ACTION_REPORT, "request status report" },
3820 { UPGRADE_ACTION_NO_CHANGE, "no change required" },
3821 { UPGRADE_ACTION_LEGACY, "legacy AP upgrade -no service" },
3822 { UPGRADE_ACTION_BACKGROUND, "upgrade AP while providing service" },
3823 { UPGRADE_ACTION_SAVE_BACKUP, "download and save to backup image" },
3824 { UPGRADE_ACTION_SWITCH_VERSION, "switch to a given version" },
3825 { UPGRADE_ACTION_ABORT, "abort current download" },
3826 { UPGRADE_ACTION_STOP_SERVICE, "put AP on hold,stop wireless service" },
3827 { UPGRADE_ACTION_HOLD, "put AP on hold,keep wireless service" },
3828 { UPGRADE_ACTION_REBOOT, "reboot AP" },
3829 { 0, NULL }
3832 static const value_string mu_resv0_strings[] =
3834 { 0x0000, "UnUsed" },
3835 { 0x4000, "Netflow" },
3836 { 0x8000, "Mirrorn & Netflow" },
3837 { 0xc000, "Mirrorn" },
3838 { 0, NULL }
3841 static const value_string mu_action_field_strings[] =
3843 { 0x0, "SSID" },
3844 { 0x2, "Redirect With Vlan ID" },
3845 { 0x3, "Vlan ID" },
3846 { 0, NULL }
3849 static const value_string threat_state_strings[] =
3851 { 0x0, "NA" },
3852 { 0x1, "Active" },
3853 { 0x2, "Inactive" },
3854 { 0, NULL }
3857 static const value_string radio_params_strings[] =
3859 { 0x0, "NONE" },
3860 { 0x1, "WMM" },
3861 { 0x2, "80211E" },
3862 { 0x3, "WMM & 80211E" },
3863 { 0x4, "NA" },
3864 { 0, NULL }
3867 /* True False string object masks RU state boolean labels */
3868 static const true_false_string wassp_eid_rustate_types =
3870 "Standby",
3871 "Active",
3875 #define WASSP_SUBTLV_GET_SUBTREE(in_ptr) ((in_ptr)->subtree_name)
3876 #define WASSP_SUBTLV_GET_ETTNUM(in_ptr) ((in_ptr)->ett_num)
3877 #define WASSP_SUBTLV_GET_MAXENTRY(in_ptr) ((in_ptr)->max_entry)
3878 #define WASSP_SUBTLV_GET_ENTRY(in_ptr) ((in_ptr)->entry)
3879 #define WASSP_SUBTLV_GET_ENTRY_IDX(in_ptr, idx) ((in_ptr)->entry[(idx)])
3880 #define WASSP_SUBTLV_GET_ENTRY_IDX_TYPE(in_ptr, idx) (((in_ptr)->entry[(idx)]).type)
3881 #define WASSP_SUBTLV_GET_ENTRY_IDX_NAME(in_ptr, idx) (((in_ptr)->entry[(idx)]).name)
3882 #define WASSP_SUBTLV_GET_ENTRY_IDX_TABIDX(in_ptr, idx) (((in_ptr)->entry[(idx)]).length)
3886 /* Wassp protocol registered fields or ru discover fields*/
3887 static int proto_wassp;
3888 static int hf_wassp_version;
3889 static int hf_wassp_type;
3890 static int hf_ru_rad_num;
3891 static int hf_ru_checksum;
3892 static int hf_ru_ac_op;
3893 static int hf_ru_mac;
3894 static int hf_ru_ac_mode;
3895 static int hf_wassp_seq_num_flag;
3896 static int hf_seq_num;
3897 static int hf_wassp_use_frag;
3898 static int hf_wassp_data_frag;
3899 static int hf_wassp_more_frag;
3900 static int hf_wassp_first_frag;
3901 static int hf_wassp_sessionid;
3902 static int hf_wassp_length;
3903 static int hf_wassp_header;
3904 static int hf_ru_discover_header;
3906 /* ----------- MU data --------------*/
3907 static int hf_wassp_mu_type;
3908 static int hf_wassp_mu_qos;
3909 static int hf_wassp_mu_action_ssid;
3910 static int hf_wassp_mu_mac;
3911 static int hf_wassp_mu_data_tree;
3912 static int hf_wassp_mu_resv0;
3913 static int hf_wassp_mu_resv1;
3914 static int hf_wassp_mu_assoc_status;
3915 static int hf_wassp_mu_data_header;
3916 static int hf_wassp_mu_action;
3917 static int hf_wassp_mu_action_field_value;
3921 // netflow
3922 static int hf_wassp_mu_netflow_version;
3923 static int hf_wassp_mu_netflow_length;
3924 static int hf_wassp_mu_netflow_flags;
3925 static int hf_wassp_mu_netflow_uptime;
3926 static int hf_wassp_mu_netflow_record;
3927 static int hf_wassp_mu_netflow_in_bytes;
3928 static int hf_wassp_mu_netflow_in_packets;
3929 static int hf_wassp_mu_netflow_ip_protocol_number;
3930 static int hf_wassp_mu_netflow_source_tos;
3931 static int hf_wassp_mu_netflow_source_port;
3932 static int hf_wassp_mu_netflow_source_ip;
3933 static int hf_wassp_mu_netflow_input_snmp;
3934 static int hf_wassp_mu_netflow_dest_port;
3935 static int hf_wassp_mu_netflow_dest_ip;
3936 static int hf_wassp_mu_netflow_output_snmp;
3937 static int hf_wassp_mu_netflow_last_time;
3938 static int hf_wassp_mu_netflow_first_time;
3939 static int hf_wassp_mu_netflow_in_source_mac;
3940 static int hf_wassp_mu_netflow_in_dest_mac;
3941 static int hf_wassp_mu_netflow_tree;
3942 static int hf_wassp_mu_netflow_header;
3946 /* ------ wassp TLV -------*/
3947 static int hf_wassp_tlv_value;
3948 static int hf_wassp_tlv_type_main;
3949 static int hf_wassp_tlv_type_sub;
3950 static int hf_wassp_tlv_length;
3951 static int hf_wassp_tlv_value_octext; // PW_TYPE_OCTETS
3952 static int hf_wassp_tlv_value_string;
3953 static int hf_wassp_tlv_value_ip;
3954 static int hf_wassp_tlv_value_int;
3955 static int hf_wassp_tlv_eid_status;
3956 static int hf_wassp_tlv_eid_action;
3957 static int hf_wassp_tlv_eid_rustate;
3958 static int hf_wassp_tlv_unknown;
3959 static int hf_wassp_tlv_invalid;
3961 static int hf_wassp_ipaddress;
3962 static int hf_wassp_sub_tree;
3963 static int hf_wassp_topologykey;
3964 static int hf_wassp_vlanid;
3965 static int hf_wassp_topology_mode;
3966 static int hf_wassp_in_cir;
3967 static int hf_wassp_out_cir;
3969 static int hf_wassp_flag_1b;
3970 static int hf_wassp_tos;
3971 static int hf_cos_tos;
3972 static int hf_cos_tos_mask;
3973 static int hf_cos_priority_txq;
3975 static int hf_wassp_tos_mask;
3976 static int hf_filter_tos_maskbit_priority;
3977 static int hf_wassp_priority;
3978 static int hf_cos_rateid;
3979 static int hf_wassp_filter_rule;
3980 static int hf_wassp_filter_flag;
3981 static int hf_filter_rule_port_range;
3982 static int hf_wassp_ipprotocol;
3983 static int hf_wassp_netmasklength;
3984 static int hf_wassp_macaddr;
3985 static int hf_wassp_macaddr_mask;
3986 static int hf_wassp_ethernet_type;
3987 static int hf_wassp_reserve;
3988 static int hf_wassp_freq;
3989 static int hf_wassp_rss;
3990 static int hf_wassp_rssi;
3991 static int hf_wassp_threatstate;
3992 static int hf_wassp_radioparams;
3993 static int hf_wassp_channelfreq;
3994 static int hf_wassp_mu;
3995 static int hf_wassp_apprules;
3996 static int hf_wassp_displayid;
3997 static int hf_wassp_txbytes;
3998 static int hf_wassp_rxbytes;
4002 /* ************************************************************************* */
4003 /* Header values for reassembly */
4004 /* ************************************************************************* */
4005 static int hf_wassp_fragments;
4006 static int hf_wassp_fragment;
4007 static int hf_wassp_fragment_overlap;
4008 static int hf_wassp_fragment_overlap_conflict;
4009 static int hf_wassp_fragment_multiple_tails;
4010 static int hf_wassp_fragment_too_long_fragment;
4011 static int hf_wassp_fragment_error;
4012 static int hf_wassp_fragment_count;
4013 static int hf_wassp_reassembled_in;
4014 static int hf_wassp_reassembled_length;
4015 static int ett_wassp_fragment;
4016 static int ett_wassp_fragments;
4019 static const fragment_items wassp_frag_items =
4021 /* Fragment subtrees */
4022 &ett_wassp_fragment,
4023 &ett_wassp_fragments,
4024 /* Fragment fields */
4025 &hf_wassp_fragments,
4026 &hf_wassp_fragment,
4027 &hf_wassp_fragment_overlap,
4028 &hf_wassp_fragment_overlap_conflict,
4029 &hf_wassp_fragment_multiple_tails,
4030 &hf_wassp_fragment_too_long_fragment,
4031 &hf_wassp_fragment_error,
4032 &hf_wassp_fragment_count,
4033 &hf_wassp_reassembled_in,
4034 &hf_wassp_reassembled_length,
4035 NULL,
4036 "fragments"
4042 /* Wassp protocol registered subtrees */
4043 static int ett_wassp;
4044 static int ett_seq_flags;
4045 static int ett_wassp_header;
4046 static int ett_mu_data_header;
4047 static int ett_mu_action_field;
4049 static int ett_ru_discover_header;
4050 static int ett_wassp_tlv;
4051 static int ett_wassp_filter_rule;
4052 static int ett_lbs_header;
4054 static int ett_wassp_mu_appl_stats;
4055 static int ett_wassp_data;
4056 static int ett_wassp_mu_data_netflow;
4057 static int ett_wassp_mu_data_netflow_header;
4058 static int ett_wassp_tlv_missing;
4059 static int ett_wassp_ap_stats_block;
4060 static int ett_wassp_mu_rf_stats_block;
4061 static int ett_wassp_config_error_block;
4062 static int ett_wassp_config_modified_block;
4063 static int ett_wassp_global_config_block;
4064 static int ett_wassp_radio_config_block;
4065 static int ett_wassp_vns_config_block;
4066 static int ett_wassp_mu_stats_block;
4067 static int ett_wassp_radio_stats_block;
4068 static int ett_wassp_ether_stats_block;
4069 static int ett_wassp_wds_stats_block;
4070 static int ett_wassp_dot1x_stats_block;
4071 static int ett_wassp_filter_config_block;
4072 static int ett_wassp_site_filter_config_block;
4073 static int ett_wassp_filter_ext_config_block;
4074 static int ett_wassp_vns_stats_block;
4075 static int ett_wassp_radius_config_block;
4076 static int ett_wassp_eid_main_tlv_block;
4077 static int ett_wassp_radius_server_config_block;
4078 static int ett_wassp_site_config_block;
4079 static int ett_wassp_policy_config_block;
4080 static int ett_wassp_cos_config_block;
4081 static int ett_wassp_localbase_lookup_block;
4082 static int ett_wassp_app_policy_fixed_block;
4083 static int ett_wassp_app_policy_entry_block;
4084 static int ett_wassp_s_topo_m_filter_entry_block;
4085 static int ett_wassp_s_topo_m_filter_ext_entry_block;
4086 static int ett_wassp_11u_config_entry_block;
4087 static int ett_wassp_hs2_config_entry_block;
4088 static int ett_wassp_extapp_config_entry_block;
4091 /* aeroscout */
4092 static int hf_aeroscout_header;
4093 static int hf_aeroscout_header_magic_number; // 2 bytes
4094 static int hf_aeroscout_request_id; // 2 bytes
4095 static int hf_aeroscout_code; // 1 byte
4096 static int hf_aeroscout_sub_code; // 1 byte
4097 static int hf_aeroscout_datalength; // 2 bytes
4098 static int hf_lbs_vendor_id; // 2 byte
4099 static int hf_lbs_rsvd1; // 2 bytes
4100 static int hf_lbs_ap_bssid; // 6 bytes
4101 static int hf_lbs_rsvd2; // 1
4102 static int hf_lbs_rxchan; // 1
4103 static int hf_lsb_tstamp; // 4 bytes
4104 static int hf_lsb_rsvd3; // 2 bytes
4105 static int hf_lsb_rssi; // 1
4106 static int hf_lsb_rsvd; // 1
4107 static int hf_lsb_noise_floor; // 1
4108 static int hf_lsb_rsvd4; // 3 bytes
4109 static int hf_lsb_chan_rate; // 1
4110 static int hf_lsb_rsvd5; // 1
4111 static int hf_lsb_wh_addr2; // 6 bytes
4112 static int hf_lsb_wh_fc; // 2 bytes
4113 static int hf_lsb_wh_seq; // 2 bytes
4114 static int hf_lsb_rsvd6; // 2 bytes
4115 static int hf_lsb_wh_addr3; // 6 bytes
4116 static int hf_lsb_wh_addr4; // 6 bytes
4120 /* Our dissector handle */
4121 static dissector_handle_t wassp_handle;
4123 /* Dissector handles used in dissector registration */
4124 static dissector_handle_t data_handle;
4125 static dissector_handle_t eth_handle;
4126 static dissector_handle_t ip_handle;
4127 static dissector_handle_t ieee80211_handle;
4128 static dissector_handle_t snmp_handle;
4131 static const WASSP_SUBTLV_DECODER_INFO_t wassp_decr_info[TAB_MAX] =
4133 /*CONFIG_GLOBAL_BLOCK */
4134 {"WASSP Global Config", &ett_wassp_global_config_block, array_length(tlvGlobalConfigTable), tlvGlobalConfigTable},
4135 /*CONFIG_ERROR_BLOCK */
4136 {"WASSP Config Error", &ett_wassp_config_error_block, array_length(tlvGlobalConfigTable), tlvGlobalConfigTable},
4137 /*TAB_CONFIG_MODIFIED */
4138 {"WASSP Config Modified", &ett_wassp_config_modified_block, array_length(tlvGlobalConfigTable), tlvGlobalConfigTable},
4139 /*RADIO_CONFIG_BLOCK */
4140 {"WASSP Radio Configure", &ett_wassp_radio_config_block, array_length(tlvRadioConfigTable), tlvRadioConfigTable},
4141 /*VNS_CONFIG_BLOCK */
4142 {"WASSP VNS Configure", &ett_wassp_vns_config_block, array_length(tlvVnsConfigTable), tlvVnsConfigTable},
4143 /*MU_RF_STATS_BLOCK */
4144 {"WASSP MU RF Stats", &ett_wassp_mu_rf_stats_block, array_length(tlvBeastConfigTable), tlvBeastConfigTable},
4145 /*AP_STATS_BLOCK */
4146 {"WASSP RU RF Stats", &ett_wassp_ap_stats_block, array_length(tlvBeastConfigTable), tlvBeastConfigTable},
4147 /*STATS_MU_BLOCK */
4148 {"WASSP MU Stats", &ett_wassp_mu_stats_block, array_length(tlvBeastConfigTable), tlvBeastConfigTable},
4149 /*TAB_STATS_RADIO */
4150 {"WASSP Radio Stats", &ett_wassp_radio_stats_block, array_length(tlvBeastConfigTable), tlvBeastConfigTable},
4151 /*TAB_STATS_ETH */
4152 {"WASSP Ethernet Stats", &ett_wassp_ether_stats_block, array_length(tlvBeastConfigTable), tlvBeastConfigTable},
4153 /*TAB_STATS_WDS */
4154 {"WASSP Wds Stats", &ett_wassp_wds_stats_block, array_length(tlvBeastConfigTable), tlvBeastConfigTable},
4155 /*TAB_STATS_DOT1x */
4156 {"WASSP Dot1x Stats", &ett_wassp_dot1x_stats_block, array_length(tlvBeastConfigTable), tlvBeastConfigTable},
4157 /*TAB_CONFIG_FILTER */
4158 {"WASSP Filter Config", &ett_wassp_filter_config_block, array_length(tlvFilterConfigTable), tlvFilterConfigTable},
4159 /*TAB_STATS_VNS */
4160 {"WASSP VNS Status", &ett_wassp_vns_stats_block, array_length(tlvVnsStatusTable), tlvVnsStatusTable},
4161 /*TAB_CONFIG_RADIUS_SERVER */
4162 {"WASSP Radius Server Config", &ett_wassp_radius_server_config_block, array_length(tlvRadiusServerConfigTable), tlvRadiusServerConfigTable},
4163 /*TAB_CONFIG_SITE */
4164 {"WASSP Site Config", &ett_wassp_site_config_block, array_length(tlvSiteConfigTable), tlvSiteConfigTable},
4165 /*TAB_CONFIG_POLICY */
4166 {"WASSP Policy Config", &ett_wassp_policy_config_block, array_length(tlvPolicyConfigTable), tlvPolicyConfigTable},
4167 /*TAB_CONFIG_COS */
4168 {"WASSP Class of Service Configuration", &ett_wassp_cos_config_block, array_length(tlvCosConfigTable), tlvCosConfigTable},
4169 /*TAB_CONFIG_LOC_BASE_LP */
4170 {"WASSP LocalBase Lookup", &ett_wassp_localbase_lookup_block, array_length(tlvLocationBaseLookUpTable), tlvLocationBaseLookUpTable},
4171 /*TAB_CONFIG_RADIUS */
4172 {"WASSP Radius Config", &ett_wassp_radius_config_block, array_length(tlvRadiusConfigTable), tlvRadiusConfigTable},
4173 /*EVENT_BLOCK */
4174 {"WASSP Event Block", &ett_wassp_eid_main_tlv_block, array_length(tlvMainTable), tlvMainTable},
4175 /*TAB_SSS_MU_BLOCK */
4176 {"WASSP SSS MU Block", &ett_wassp_eid_main_tlv_block, array_length(tlvMainTable), tlvMainTable},
4177 /*TAB_EID_MU_BLOCK */
4178 {"WASSP EID MU Block", &ett_wassp_eid_main_tlv_block, array_length(tlvMainTable), tlvMainTable},
4179 /*BULK_MU_BLOCK */
4180 {"WASSP BULK MU Block", &ett_wassp_eid_main_tlv_block, array_length(tlvMainTable), tlvMainTable},
4181 /*MU_BLOCK */
4182 {"WASSP MU Block", &ett_wassp_eid_main_tlv_block, array_length(tlvMainTable), tlvMainTable},
4183 /*BULK_VNS_BLOCK */
4184 {"WASSP BULK VNS Block", &ett_wassp_eid_main_tlv_block, array_length(tlvMainTable), tlvMainTable},
4185 /*VNS_BLOCK */
4186 {"WASSP VNS Block", &ett_wassp_eid_main_tlv_block, array_length(tlvMainTable), tlvMainTable},
4187 /*TAB_SIAPP_PMK_BLOCK */
4188 {"SIAPP PMK Block", &ett_wassp_eid_main_tlv_block, array_length(tlvMainTable), tlvMainTable},
4189 /*TAB_SIAPP_RADIO_CONFIG_BLOCK */
4190 {"SIAPP Radio Config Block", &ett_wassp_eid_main_tlv_block, array_length(tlvMainTable), tlvMainTable},
4191 /*TAB_SIAPP_MU_STATS_BLOCK */
4192 {"SIAPP MU STATS Block", &ett_wassp_eid_main_tlv_block, array_length(tlvMainTable), tlvMainTable},
4193 /*TAB_SIAPP_THIN_BLOCK */
4194 {"SIAPP THIN Block", &ett_wassp_eid_main_tlv_block, array_length(tlvMainTable), tlvMainTable},
4195 /*TAB_SIAPP_BLOCK */
4196 {"SIAPP Block", &ett_wassp_eid_main_tlv_block, array_length(tlvMainTable), tlvMainTable},
4197 /*TAB_ASSOC_SSID_ARRAY*/
4198 {"Assoc SSID array", &ett_wassp_eid_main_tlv_block, array_length(tlvMainTable), tlvMainTable},
4199 /*TAB_ASSOC_SSID_BLOCK*/
4200 {"Assoc SSID Block", &ett_wassp_eid_main_tlv_block, array_length(tlvMainTable), tlvMainTable},
4201 /*TAB_AP_LIST_BLOCK*/
4202 {"AP list Block", &ett_wassp_eid_main_tlv_block, array_length(tlvMainTable), tlvMainTable},
4203 /*TAB_AP_LIST_ARRAY*/
4204 {"AP list array", &ett_wassp_eid_main_tlv_block, array_length(tlvMainTable), tlvMainTable},
4205 /*TAB_SCAN_PROFILE_BLOCK*/
4206 {"Scan profile Block", &ett_wassp_eid_main_tlv_block, array_length(tlvMainTable), tlvMainTable},
4207 /*TAB_THREAT_DEF_ARRAY*/
4208 {"Threat def array", &ett_wassp_eid_main_tlv_block, array_length(tlvMainTable), tlvMainTable},
4209 /*TAB_THREAT_DEF_BLOCK*/
4210 {"Thread def Block", &ett_wassp_eid_main_tlv_block, array_length(tlvMainTable), tlvMainTable},
4211 /*TAB_THREAT_PATTERN_ARRAY*/
4212 {"Thread pattern array", &ett_wassp_eid_main_tlv_block, array_length(tlvMainTable), tlvMainTable},
4213 /*TAB_THREAT_PATTERN_BLOCK*/
4214 {"Thread pattern Block", &ett_wassp_eid_main_tlv_block, array_length(tlvMainTable), tlvMainTable},
4215 /*TAB_SURVEILLANCE_DATA_ARRAY,*/
4216 {"Surveillance Data Array", &ett_wassp_eid_main_tlv_block, array_length(tlvMainTable), tlvMainTable},
4217 /*TAB_SURVEILLANCE_DATA_BLOCK,*/
4218 {"Surveillance Data Block", &ett_wassp_eid_main_tlv_block, array_length(tlvMainTable), tlvMainTable},
4219 /*TAB_THREAT_DATA_ARRAY,*/
4220 {"Thread Data Array", &ett_wassp_eid_main_tlv_block, array_length(tlvMainTable), tlvMainTable},
4221 /*TAB_THREAT_DATA_BLOCK,*/
4222 {"Thread Data Block", &ett_wassp_eid_main_tlv_block, array_length(tlvMainTable), tlvMainTable},
4223 /*TAB_THREAT_CLASSIFY_ARRAY,*/
4224 {"Thread Classify Array", &ett_wassp_eid_main_tlv_block, array_length(tlvMainTable), tlvMainTable},
4225 /*TAB_THREAT_CLASSIFY_BLOCK,*/
4226 {"Thread Classify Block", &ett_wassp_eid_main_tlv_block, array_length(tlvMainTable), tlvMainTable},
4227 /*TAB_USER_CLASSIFY_ARRAY,*/
4228 {"User Classify Array", &ett_wassp_eid_main_tlv_block, array_length(tlvMainTable), tlvMainTable},
4229 /*TAB_USER_CLASSIFY_BLOCK,*/
4230 {"User Classify Block", &ett_wassp_eid_main_tlv_block, array_length(tlvMainTable), tlvMainTable},
4231 /*TAB_MU_EVENT_ARRAY, */
4232 {"MU Event Array", &ett_wassp_eid_main_tlv_block, array_length(tlvMainTable), tlvMainTable},
4233 /*TAB_MU_EVENT_BLOCK,*/
4234 {"MU Event Block", &ett_wassp_eid_main_tlv_block, array_length(tlvMainTable), tlvMainTable},
4235 /*TAB_COUNTRY_ARRAY,*/
4236 {"Country Array", &ett_wassp_eid_main_tlv_block, array_length(tlvMainTable), tlvMainTable},
4237 /*TAB_COUNTRY_BLOCK,*/
4238 {"Country Block", &ett_wassp_eid_main_tlv_block, array_length(tlvMainTable), tlvMainTable},
4239 /*TAB_LOCATOR_LOC_BLOCK,*/
4240 {"Locator LOC Block", &ett_wassp_eid_main_tlv_block, array_length(tlvMainTable), tlvMainTable},
4241 /*TAB_LOCATOR_LOC_ARRAY,*/
4242 {"Locator LOC Array", &ett_wassp_eid_main_tlv_block, array_length(tlvMainTable), tlvMainTable},
4243 /*TAB_RSS_DATA_ARRAY,*/
4244 {"RSS Data Array", &ett_wassp_eid_main_tlv_block, array_length(tlvMainTable), tlvMainTable},
4245 /*TAB_RSS_DATA_BLOCK,*/
4246 {"RSS Data Block", &ett_wassp_eid_main_tlv_block, array_length(tlvMainTable), tlvMainTable},
4247 /*TAB_MCAST_FILTER_BLOCK, */
4248 {"MCAST Filter Block", &ett_wassp_eid_main_tlv_block, array_length(tlvMainTable), tlvMainTable},
4249 /*TAB_MCAST_FILTER_BLOCK_ENTRY */
4250 {"MCAST Filter Block Entry", &ett_wassp_eid_main_tlv_block, array_length(tlvMainTable), tlvMainTable},
4251 /*TAB_MU_SESSION_ARRAY,*/
4252 {"MU Session Array", &ett_wassp_eid_main_tlv_block, array_length(tlvMainTable), tlvMainTable},
4253 /*TAB_MU_SESSION_BLOCK,*/
4254 {"MU Session Block", &ett_wassp_eid_main_tlv_block, array_length(tlvMainTable), tlvMainTable},
4255 /*TAB_DETECTED_ROGUE_ARRAY,*/
4256 {"Detected Rogue Array", &ett_wassp_eid_main_tlv_block, array_length(tlvMainTable), tlvMainTable},
4257 /*TAB_DETECTED_ROGUE_BLOCK,*/
4258 {"Detected Rogue Block", &ett_wassp_eid_main_tlv_block, array_length(tlvMainTable), tlvMainTable},
4259 /*TAB_FILTER_RULES_EXT_BLOCK */
4260 {"Filter Rule Ext Block", &ett_wassp_eid_main_tlv_block, array_length(tlvMainTable), tlvMainTable},
4261 /*TAB_APP_POLICY_FIXED_BLOCK */
4262 {"App Policy Fixed Block", &ett_wassp_app_policy_fixed_block, array_length(tlvAppPolicyFixedTable), tlvAppPolicyFixedTable},
4263 /*TAB_V_FILTER_RULES_EXT_BLOCK */
4264 {"FilterRules Ext Block", &ett_wassp_filter_ext_config_block, array_length(tlvFilterRuleExtConfigTable), tlvFilterRuleExtConfigTable},
4265 /*TAB_V_SITE_FILTER_RULES_EXT_BLOCK */
4266 {"Site FilterRules Ext Block", &ett_wassp_site_filter_config_block, array_length(tlvSiteFilterRuleExtConfigTable), tlvSiteFilterRuleExtConfigTable},
4267 /*TAB_APP_POLICY_ENTRY_BLOCK */
4268 {"App Policy Entry Block", &ett_wassp_app_policy_entry_block, array_length(tlvAppPolicyEntryTable), tlvAppPolicyEntryTable},
4269 /*TAB_11U_ANQP_BLOCK, */
4270 {"11u Config Block", &ett_wassp_11u_config_entry_block, array_length(tlv11U_ANQP_blockTable), tlv11U_ANQP_blockTable},
4271 /*TAB_HS2_BLOCK, */
4272 {"HS2 config Block", &ett_wassp_hs2_config_entry_block, array_length(tlvHS2_blockTable), tlvHS2_blockTable},
4273 /*TAB_RU_ACK_RADIO_CONFIG,*/
4274 {"WASSP RU Ack Radio Configure", &ett_wassp_eid_main_tlv_block, array_length(tlvMainTable), tlvMainTable},
4275 /*TAB_MU_APPL_STATS_BLOCK */
4276 {"MU Appl Stats Block", &ett_wassp_eid_main_tlv_block, array_length(tlvMainTable), tlvMainTable},
4277 /*TAB_EXTAPP_CONF_BLOCK */
4278 {"Extend AppControl Config Block", &ett_wassp_extapp_config_entry_block, array_length(tlvExtapp_conf_blockTable), tlvExtapp_conf_blockTable},
4279 /*TAB_V_CP_CONFIG_BLOCK */
4280 {"CP Config Block", &ett_wassp_vns_config_block, array_length(tlvVnsConfigTable), tlvVnsConfigTable},
4281 /*TAB_TOPOLOGY_ARRAY_BLOCK */
4282 {"Topology Array Block", &ett_wassp_eid_main_tlv_block, array_length(tlvMainTable), tlvMainTable},
4283 /*TAB_TOPOLOGY_STRUCT_BLOCK */
4284 {"Topology Struct Block", &ett_wassp_eid_main_tlv_block, array_length(tlvMainTable), tlvMainTable},
4285 /*TAB_FILTER_CONFIG_STRUCT_BLOCK */
4286 {"Filter Config Struct Block", &ett_wassp_eid_main_tlv_block, array_length(tlvMainTable), tlvMainTable},
4287 /*TAB_S_TOPOLOGY_ARRAY_BLOCK, */
4288 {"Site Topology Array Block", &ett_wassp_site_config_block, array_length(tlvSiteConfigTable), tlvSiteConfigTable},
4289 /*TAB_S_TOPOLOGY_STRUCT_BLOCK,*/
4290 {"Site Topology Struct Block", &ett_wassp_site_config_block, array_length(tlvSiteConfigTable), tlvSiteConfigTable},
4291 /*TAB_S_TOPO_MCAST_FILTER_CONFIG_BLOCK,*/
4292 {"Site Topology Mcast Filter Config Struct Block", &ett_wassp_s_topo_m_filter_entry_block, array_length(tlvSTopoMcastFilterBlock), tlvSTopoMcastFilterBlock},
4293 /*TAB_S_TOPO_MCAST_FILTER_RULES_EXT_BLOCK,*/
4294 {"Site Topology Mcast Filter Rule Ext Block", &ett_wassp_s_topo_m_filter_ext_entry_block, array_length(tlvSTopoMcastFilterRuleBlock), tlvSTopoMcastFilterRuleBlock},
4295 /*TAB_NAC_SERVER_CONFIG_ARRAY,*/
4296 {"NAC service config array", &ett_wassp_site_config_block, array_length(tlvSiteConfigTable), tlvSiteConfigTable},
4297 /*TAB_NAC_SERVER_CONFIG_BLOCK,*/
4298 {"NAC service config Block", &ett_wassp_site_config_block, array_length(tlvSiteConfigTable), tlvSiteConfigTable},
4299 /*TAB_NAC_WEB_AUTH_USER_GROUP_ARRAY,*/
4300 {"NAC WEB auth user group config array", &ett_wassp_site_config_block, array_length(tlvSiteConfigTable), tlvSiteConfigTable},
4301 /*TAB_NAC_WEB_AUTH_USER_GROUP_BLOCK,*/
4302 {"NAC WEB auth user group Block", &ett_wassp_site_config_block, array_length(tlvSiteConfigTable), tlvSiteConfigTable},
4312 static int wassp_type_converter(int in_tlv_type)
4314 int rtn_val = hf_wassp_tlv_value_octext;
4316 switch (in_tlv_type)
4318 case 1:
4319 rtn_val = hf_wassp_tlv_value_string;
4320 break;
4321 case 2:
4322 case 3:
4323 case 4:
4324 case 7:
4325 case 8:
4326 rtn_val = hf_wassp_tlv_value_int;
4327 break;
4328 case 5:
4329 rtn_val = hf_wassp_tlv_value_octext;
4330 break;
4331 case 6:
4332 rtn_val = hf_wassp_mu_mac;
4333 break;
4334 case 9:
4335 rtn_val = hf_wassp_tlv_value_ip;
4336 break;
4338 default:
4339 break;
4341 return rtn_val;
4347 static int dissect_wassp_sub_tlv(proto_tree *wassp_tree, tvbuff_t *tvb, packet_info *pinfo, int offset, int in_len, int which_tab, int ru_msg_type);
4348 static int dissect_wassp_tlv(proto_tree *wassp_tree, tvbuff_t *tvb, packet_info *pinfo, int offset, wassp_ru_msg_t rumsg_type);
4352 /* Registered WASSP subdissectors */
4353 static dissector_table_t wassp_dissector_table;
4355 /* WASSP dissector routines */
4356 static int dissect_wassp_mu(proto_tree *, tvbuff_t *, packet_info *, int, int);
4357 static int dissect_wassp(tvbuff_t *, packet_info *, proto_tree *);
4359 /* Dissector registration routines */
4360 void proto_register_wassp(void);
4361 void proto_reg_handoff_wassp(void);
4362 static int dissect_wassp_static(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_);
4364 static int g_wassp_ver;
4365 static reassembly_table wassp_reassembled_table;
4366 static void wassp_defragment_init(void)
4368 reassembly_table_init(&wassp_reassembled_table, &addresses_reassembly_table_functions);
4371 static const char* wassp_match_strval(const WASSP_SUBTLV_DECODER_INFO_t *in_ptr, int in_type)
4373 if (in_ptr == NULL)
4375 return NULL;
4377 if (in_ptr->max_entry <= in_type)
4379 return NULL;
4382 return in_ptr->entry[in_type].name;
4385 static void
4386 port_range_print(char *buf, uint32_t temp)
4388 snprintf(buf, ITEM_LABEL_LENGTH, " %d - %d", (temp & 0xffff), (temp >> 16));
4394 static void topology_moder_print(char *buf, uint16_t temp)
4396 uint16_t temp3 = temp & 0xc000;
4397 uint16_t temp4 = temp & 0x0fff;
4398 switch (temp3)
4400 case 0xc000:
4401 if (temp4)
4402 snprintf(buf, ITEM_LABEL_LENGTH, " Routed At Controller with vlanId = %d (0x%x)", temp4, temp);
4403 else
4404 snprintf(buf, ITEM_LABEL_LENGTH, " Routed At Controller, Untagged (0x%x)", temp);
4405 break;
4406 case 0x4000:
4407 if (temp4)
4408 snprintf(buf, ITEM_LABEL_LENGTH, " Bridge At AP with vlanId = %d (0x%x)", temp4, temp);
4409 else
4410 snprintf(buf, ITEM_LABEL_LENGTH, " Bridge At AP, Untagged (0x%x) ", temp);
4411 break;
4412 case 0x8000:
4413 if (temp4)
4414 snprintf(buf, ITEM_LABEL_LENGTH, " Bridge At Controller with vlanId = %d (0x%x) ", temp4, temp);
4415 else
4416 snprintf(buf, ITEM_LABEL_LENGTH, " Bridge At Controller, Untagged (0x%x) ", temp);
4417 break;
4418 default:
4419 if (temp4)
4420 snprintf(buf, ITEM_LABEL_LENGTH, " Unknown mode with vlanId = %d (0x%x)", temp4, temp);
4421 else
4422 snprintf(buf, ITEM_LABEL_LENGTH, " Unknown mode, Untagged (0x%x) ", temp);
4423 break;
4429 static void
4430 maskbit_priority_print(char *buf, uint8_t temp)
4432 snprintf(buf, ITEM_LABEL_LENGTH, " Type of Service Mask bits : %d Priority TxQ : %d", (temp >> 4) & 0xf, temp & 0xf);
4435 static void
4436 cos_priority_txq_print(char *buf, uint8_t temp)
4438 snprintf(buf, ITEM_LABEL_LENGTH, " Class of Service priority bits : %d Class of Service Transmit Queue : %d", (temp >> 4) & 0xf, temp & 0xf);
4441 static void
4442 cos_rate_id_print(char *buf, uint8_t temp)
4444 snprintf(buf, ITEM_LABEL_LENGTH, " Class of Service Inbound Rate Limit ID : %d Class of Service Outbound Rate Limit ID : %d", (temp >> 4) & 0xf, temp & 0xf);
4449 #define V831_FILTER_RULE_FORMAT 4
4450 #define BEFORE_V831_FILTER_RULE_FORMAT 2
4451 #define AFTER_V831_FILTER_RULE_FORMAT 1
4452 #define V831_FILTER_RULE_STRUCT_SIZE 36
4453 #define BEFORE_V831_FILTER_RULE_STRUCT_SIZE 16
4454 #define AFTER_V831_FILTER_RULE_STRUCT_SIZE 20
4455 static void decode_filter_rule_octext_string(proto_tree *tree, tvbuff_t *tvb, int offset, int length )
4457 int flag = 0, suboffset, count, i;
4458 proto_tree *filter_rule_tree = proto_item_add_subtree(tree, ett_wassp_filter_rule);
4459 /* there are 3 kinds of filter rule struct.
4460 before V8.31 -- 16 bytes
4461 V83.1 -- 36 bytes
4462 after V8.31 -- 20 bytes
4465 if (((length - 4) % V831_FILTER_RULE_STRUCT_SIZE) == 0) // might be V8.31 filter struct
4466 flag |= V831_FILTER_RULE_FORMAT;
4468 if (((length - 4) % AFTER_V831_FILTER_RULE_STRUCT_SIZE) == 0) // might be new filter struct
4469 flag |= AFTER_V831_FILTER_RULE_FORMAT;
4471 if (((length - 4) % BEFORE_V831_FILTER_RULE_STRUCT_SIZE) == 0) // might be old filter struct
4472 flag |= BEFORE_V831_FILTER_RULE_FORMAT;
4476 if (flag & V831_FILTER_RULE_FORMAT) // display as V8.31 filter struct
4478 suboffset = offset + 4;
4479 //proto_tree_add_debug_text(filter_rule_tree, "-----------Display Filter Rule(s) in V3 Struct Format------------");
4480 count = (length - 4) / V831_FILTER_RULE_STRUCT_SIZE;
4481 for (i = 0; i < count; i++)
4483 //proto_tree_add_debug_text(filter_rule_tree, " filter rule %d", i + 1);
4484 proto_tree_add_item(filter_rule_tree, hf_wassp_filter_rule, tvb, suboffset, V831_FILTER_RULE_STRUCT_SIZE, ENC_NA);
4485 proto_tree_add_item(filter_rule_tree, hf_wassp_filter_flag, tvb, suboffset, 4, ENC_BIG_ENDIAN);
4486 suboffset += 4;
4487 proto_tree_add_item(filter_rule_tree, hf_wassp_ipaddress, tvb, suboffset, 4, ENC_BIG_ENDIAN);
4488 suboffset += 4;
4489 proto_tree_add_item(filter_rule_tree, hf_filter_rule_port_range, tvb, suboffset, 4, ENC_BIG_ENDIAN);
4490 suboffset += 4;
4491 proto_tree_add_item(filter_rule_tree, hf_wassp_ipprotocol, tvb, suboffset, 1, ENC_BIG_ENDIAN);
4492 suboffset += 1;
4493 proto_tree_add_item(filter_rule_tree, hf_wassp_netmasklength, tvb, suboffset, 1, ENC_BIG_ENDIAN);
4494 suboffset += 1;
4495 proto_tree_add_item(filter_rule_tree, hf_wassp_tos, tvb, suboffset, 1, ENC_BIG_ENDIAN);
4496 suboffset += 1;
4497 proto_tree_add_item(filter_rule_tree, hf_filter_tos_maskbit_priority, tvb, suboffset, 1, ENC_BIG_ENDIAN);
4498 suboffset += 1;
4499 proto_tree_add_item(filter_rule_tree, hf_cos_tos, tvb, suboffset, 1, ENC_BIG_ENDIAN);
4500 suboffset += 1;
4501 proto_tree_add_item(filter_rule_tree, hf_cos_tos_mask, tvb, suboffset, 1, ENC_BIG_ENDIAN);
4502 suboffset += 1;
4503 proto_tree_add_item(filter_rule_tree, hf_cos_priority_txq, tvb, suboffset, 1, ENC_BIG_ENDIAN);
4504 suboffset += 1;
4505 proto_tree_add_item(filter_rule_tree, hf_cos_rateid, tvb, suboffset, 1, ENC_BIG_ENDIAN);
4506 suboffset += 1;
4507 proto_tree_add_item(filter_rule_tree, hf_wassp_macaddr, tvb, suboffset, 6, ENC_NA);
4508 suboffset += 6;
4509 proto_tree_add_item(filter_rule_tree, hf_wassp_macaddr_mask, tvb, suboffset, 6, ENC_NA);
4510 suboffset += 6;
4511 proto_tree_add_item(filter_rule_tree, hf_wassp_vlanid, tvb, suboffset, 2, ENC_BIG_ENDIAN);
4512 suboffset += 2;
4513 proto_tree_add_item(filter_rule_tree, hf_wassp_ethernet_type, tvb, suboffset, 2, ENC_BIG_ENDIAN);
4514 suboffset += 2;
4518 if (flag & AFTER_V831_FILTER_RULE_FORMAT) // display as new filter struct
4520 suboffset = offset + 4;
4521 //proto_tree_add_debug_text(filter_rule_tree, "-----------Display Filter Rule(s) in V2 Struct Format------------");
4522 count = (length - 4) / AFTER_V831_FILTER_RULE_STRUCT_SIZE;
4523 for (i = 0; i < count; i++)
4525 //proto_tree_add_debug_text(filter_rule_tree, " filter rule %d", i + 1);
4526 proto_tree_add_item(filter_rule_tree, hf_wassp_filter_rule, tvb, suboffset, AFTER_V831_FILTER_RULE_STRUCT_SIZE, ENC_NA);
4527 proto_tree_add_item(filter_rule_tree, hf_wassp_filter_flag, tvb, suboffset, 4, ENC_BIG_ENDIAN);
4528 suboffset += 4;
4529 proto_tree_add_item(filter_rule_tree, hf_wassp_ipaddress, tvb, suboffset, 4, ENC_BIG_ENDIAN);
4530 suboffset += 4;
4531 proto_tree_add_item(filter_rule_tree, hf_filter_rule_port_range, tvb, suboffset, 4, ENC_BIG_ENDIAN);
4532 suboffset += 4;
4533 proto_tree_add_item(filter_rule_tree, hf_wassp_ipprotocol, tvb, suboffset, 1, ENC_BIG_ENDIAN);
4534 suboffset += 1;
4535 proto_tree_add_item(filter_rule_tree, hf_wassp_netmasklength, tvb, suboffset, 1, ENC_BIG_ENDIAN);
4536 suboffset += 1;
4537 proto_tree_add_item(filter_rule_tree, hf_wassp_tos, tvb, suboffset, 1, ENC_BIG_ENDIAN);
4538 suboffset += 1;
4539 proto_tree_add_item(filter_rule_tree, hf_filter_tos_maskbit_priority, tvb, suboffset, 1, ENC_BIG_ENDIAN);
4540 suboffset += 1;
4541 proto_tree_add_item(filter_rule_tree, hf_cos_tos, tvb, suboffset, 1, ENC_BIG_ENDIAN);
4542 suboffset += 1;
4543 proto_tree_add_item(filter_rule_tree, hf_cos_tos_mask, tvb, suboffset, 1, ENC_BIG_ENDIAN);
4544 suboffset += 1;
4545 proto_tree_add_item(filter_rule_tree, hf_cos_priority_txq, tvb, suboffset, 1, ENC_BIG_ENDIAN);
4546 suboffset += 1;
4547 proto_tree_add_item(filter_rule_tree, hf_cos_rateid, tvb, suboffset, 1, ENC_BIG_ENDIAN);
4548 suboffset += 1;
4552 if (flag & BEFORE_V831_FILTER_RULE_FORMAT)
4554 suboffset = offset + 4;
4555 //proto_tree_add_debug_text(filter_rule_tree, "-----------Display Filter Rule(s) in V1 Struct Format------------");
4556 count = (length - 4) / BEFORE_V831_FILTER_RULE_STRUCT_SIZE;
4557 for (i = 0; i < count; i++)
4559 //proto_tree_add_debug_text(filter_rule_tree, " filter rule %d", i + 1);
4560 proto_tree_add_item(filter_rule_tree, hf_wassp_filter_rule, tvb, suboffset, BEFORE_V831_FILTER_RULE_STRUCT_SIZE, ENC_NA);
4561 proto_tree_add_item(filter_rule_tree, hf_wassp_filter_flag, tvb, suboffset, 4, ENC_BIG_ENDIAN);
4562 suboffset += 4;
4563 proto_tree_add_item(filter_rule_tree, hf_wassp_ipaddress, tvb, suboffset, 4, ENC_BIG_ENDIAN);
4564 suboffset += 4;
4565 proto_tree_add_item(filter_rule_tree, hf_filter_rule_port_range, tvb, suboffset, 4, ENC_BIG_ENDIAN);
4566 suboffset += 4;
4567 proto_tree_add_item(filter_rule_tree, hf_wassp_ipprotocol, tvb, suboffset, 1, ENC_BIG_ENDIAN);
4568 suboffset += 1;
4569 proto_tree_add_item(filter_rule_tree, hf_wassp_netmasklength, tvb, suboffset, 1, ENC_BIG_ENDIAN);
4570 suboffset += 1;
4571 proto_tree_add_item(filter_rule_tree, hf_wassp_reserve, tvb, suboffset, 2, ENC_BIG_ENDIAN);
4572 suboffset += 2;
4578 static void decode_mu_appl_stats_block(proto_tree *tree, tvbuff_t *tvb, int offset )
4580 int suboffset, count, i;
4581 proto_tree *tlv_tree = proto_item_add_subtree(tree, ett_wassp_mu_appl_stats);
4583 suboffset = offset;
4584 count = tvb_get_ntohl(tvb, suboffset);
4585 proto_tree_add_item(tlv_tree, hf_wassp_mu, tvb, suboffset, 4, ENC_BIG_ENDIAN);
4586 suboffset += 4;
4587 for (i = 1; i <= count; i++)
4589 //proto_tree_add_debug_text(tlv_tree, "MU_%d", i);
4590 proto_tree_add_item(tlv_tree, hf_wassp_macaddr, tvb, suboffset, 6, ENC_NA);
4591 suboffset += 6;
4592 proto_tree_add_item(tlv_tree, hf_wassp_apprules, tvb, suboffset, 2, ENC_BIG_ENDIAN);
4593 suboffset += 2;
4594 proto_tree_add_item(tlv_tree, hf_wassp_displayid, tvb, suboffset, 2, ENC_BIG_ENDIAN);
4595 suboffset += 2;
4596 proto_tree_add_item(tlv_tree, hf_wassp_txbytes, tvb, suboffset, 4, ENC_BIG_ENDIAN);
4597 suboffset += 4;
4598 proto_tree_add_item(tlv_tree, hf_wassp_rxbytes, tvb, suboffset, 4, ENC_BIG_ENDIAN);
4599 suboffset += 4;
4606 static void decode_cos_struct(proto_tree *tree, tvbuff_t *tvb, int offset )
4608 int suboffset = offset;
4609 proto_tree_add_item(tree, hf_wassp_flag_1b, tvb, suboffset, 1, ENC_BIG_ENDIAN);
4610 suboffset += 1;
4611 proto_tree_add_item(tree, hf_wassp_tos, tvb, suboffset, 1, ENC_BIG_ENDIAN);
4612 suboffset += 1;
4613 proto_tree_add_item(tree, hf_wassp_tos_mask, tvb, suboffset, 1, ENC_BIG_ENDIAN);
4614 suboffset += 1;
4615 proto_tree_add_item(tree, hf_wassp_priority, tvb, suboffset, 1, ENC_BIG_ENDIAN);
4616 suboffset += 1;
4617 proto_tree_add_item(tree, hf_cos_rateid, tvb, suboffset, 1, ENC_BIG_ENDIAN);
4621 static void decode_rate_limit_struct(proto_tree *tree, tvbuff_t *tvb, int offset, int length )
4623 int suboffset = offset, count = length / 4, i;
4625 for (i = 0; i < count; i++)
4627 proto_tree_add_item(tree, hf_wassp_in_cir, tvb, suboffset, 2, ENC_BIG_ENDIAN);
4628 suboffset += 2;
4629 proto_tree_add_item(tree, hf_wassp_out_cir, tvb, suboffset, 2, ENC_BIG_ENDIAN);
4630 suboffset += 2;
4635 static void decode_mac_list_struct(proto_tree *tree, tvbuff_t *tvb, int offset, int length )
4637 int suboffset = offset, count = length / 6, i;
4639 for (i = 0; i < count; i++)
4641 proto_tree_add_item(tree, hf_wassp_macaddr, tvb, suboffset, 6, ENC_NA);
4642 suboffset += 6;
4647 static void decode_ipv4_list_struct(proto_tree *tree, tvbuff_t *tvb, int offset, int length )
4649 int suboffset = offset, count = length / 4, i;
4651 for (i = 0; i < count; i++)
4653 proto_tree_add_item(tree, hf_wassp_ipaddress, tvb, suboffset, 4, ENC_BIG_ENDIAN);
4654 suboffset += 4;
4658 static void decode_Channel_list(proto_tree *tree, tvbuff_t *tvb, int offset, int length )
4660 int suboffset = offset, count = length / 2, i;
4662 for (i = 0; i < count; i++)
4664 proto_tree_add_item(tree, hf_wassp_freq, tvb, suboffset, 2, ENC_BIG_ENDIAN);
4665 suboffset += 2;
4671 static int decode_lbs_tag_header(proto_tree *tree, tvbuff_t *tvb, int offset)
4673 int suboffset = offset;
4674 proto_item *temp;
4675 proto_tree *lbs_header_tree;
4677 temp = proto_tree_add_item(tree, hf_aeroscout_header, tvb, suboffset, 64, ENC_NA);
4678 lbs_header_tree = proto_item_add_subtree(temp, ett_wassp_header);
4679 proto_tree_add_item(lbs_header_tree, hf_aeroscout_header_magic_number, tvb, suboffset, 2, ENC_BIG_ENDIAN);
4680 suboffset += 2;
4681 proto_tree_add_item(lbs_header_tree, hf_aeroscout_request_id, tvb, suboffset, 2, ENC_BIG_ENDIAN);
4682 suboffset += 2;
4683 proto_tree_add_item(lbs_header_tree, hf_aeroscout_code, tvb, suboffset, 1, ENC_BIG_ENDIAN);
4684 suboffset += 1;
4685 proto_tree_add_item(lbs_header_tree, hf_aeroscout_sub_code, tvb, suboffset, 1, ENC_BIG_ENDIAN);
4686 suboffset += 1;
4687 proto_tree_add_item(lbs_header_tree, hf_aeroscout_datalength, tvb, suboffset, 2, ENC_BIG_ENDIAN);
4688 suboffset += 2;
4689 proto_tree_add_item(lbs_header_tree, hf_wassp_mu_mac, tvb, suboffset, 6, ENC_NA);
4690 suboffset += 6;
4691 proto_tree_add_item(lbs_header_tree, hf_lbs_vendor_id, tvb, suboffset, 2, ENC_BIG_ENDIAN);
4692 suboffset += 2;
4693 proto_tree_add_item(lbs_header_tree, hf_lbs_rsvd1, tvb, suboffset, 2, ENC_BIG_ENDIAN);
4694 suboffset += 2;
4695 proto_tree_add_item(lbs_header_tree, hf_lbs_ap_bssid, tvb, suboffset, 6, ENC_NA);
4696 suboffset += 6;
4697 proto_tree_add_item(lbs_header_tree, hf_lbs_rsvd2, tvb, suboffset, 1, ENC_BIG_ENDIAN);
4698 suboffset += 1;
4699 proto_tree_add_item(lbs_header_tree, hf_lbs_rxchan, tvb, suboffset, 1, ENC_BIG_ENDIAN);
4700 suboffset += 1;
4701 proto_tree_add_item(lbs_header_tree, hf_lsb_tstamp, tvb, suboffset, 4, ENC_BIG_ENDIAN);
4702 suboffset += 4;
4703 proto_tree_add_item(lbs_header_tree, hf_lsb_rsvd3, tvb, suboffset, 2, ENC_BIG_ENDIAN);
4704 suboffset += 2;
4705 proto_tree_add_item(lbs_header_tree, hf_lsb_rssi, tvb, suboffset, 1, ENC_BIG_ENDIAN);
4706 suboffset += 1;
4707 proto_tree_add_item(lbs_header_tree, hf_lsb_rsvd, tvb, suboffset, 1, ENC_BIG_ENDIAN);
4708 suboffset += 1;
4709 proto_tree_add_item(lbs_header_tree, hf_lsb_noise_floor, tvb, suboffset, 1, ENC_BIG_ENDIAN);
4710 suboffset += 1;
4711 proto_tree_add_item(lbs_header_tree, hf_lsb_rsvd4, tvb, suboffset, 3, ENC_BIG_ENDIAN);
4712 suboffset += 3;
4713 proto_tree_add_item(lbs_header_tree, hf_lsb_chan_rate, tvb, suboffset, 1, ENC_BIG_ENDIAN);
4714 suboffset += 1;
4715 proto_tree_add_item(lbs_header_tree, hf_lsb_rsvd5, tvb, suboffset, 1, ENC_BIG_ENDIAN);
4716 suboffset += 1;
4717 proto_tree_add_item(lbs_header_tree, hf_lsb_wh_addr2, tvb, suboffset, 6, ENC_NA);
4718 suboffset += 6;
4719 proto_tree_add_item(lbs_header_tree, hf_lsb_wh_fc, tvb, suboffset, 2, ENC_BIG_ENDIAN);
4720 suboffset += 2;
4721 proto_tree_add_item(lbs_header_tree, hf_lsb_wh_seq, tvb, suboffset, 2, ENC_BIG_ENDIAN);
4722 suboffset += 2;
4723 proto_tree_add_item(lbs_header_tree, hf_lsb_rsvd6, tvb, suboffset, 2, ENC_BIG_ENDIAN);
4724 suboffset += 2;
4725 proto_tree_add_item(lbs_header_tree, hf_lsb_wh_addr3, tvb, suboffset, 6, ENC_NA);
4726 suboffset += 6;
4727 proto_tree_add_item(lbs_header_tree, hf_lsb_wh_addr4, tvb, suboffset, 6, ENC_NA);
4728 suboffset += 6;
4729 return suboffset;
4738 // NOLINTNEXTLINE(misc-no-recursion)
4739 int dissect_wassp_sub_tlv(proto_tree *wassp_tree, tvbuff_t *tvb, packet_info *pinfo, int offset, int in_len, int which_tab, int ru_msg_type)
4741 proto_item *tlvi;
4742 proto_item *ti;
4743 proto_tree *tmp_tree;
4744 const char *label;
4745 uint32_t value;
4746 uint16_t tlv_type = EID_PARSE_ERROR;
4747 uint16_t length = 0, org_offset = offset;
4748 const WASSP_SUBTLV_DECODER_INFO_t *tmp_decr = NULL;
4749 uint32_t i, tableNo;
4750 int suboffset;
4752 if (which_tab >= TAB_MAX)
4754 return offset;
4757 tmp_decr = &wassp_decr_info[which_tab];
4759 if (tvb_reported_length_remaining(tvb, offset) > 0)
4761 ti = proto_tree_add_item(wassp_tree, hf_wassp_sub_tree, tvb, offset, in_len, ENC_NA);
4762 proto_item_append_text(ti, " : %s", tmp_decr->subtree_name);
4763 tmp_tree = proto_item_add_subtree(ti, *((int*)(WASSP_SUBTLV_GET_ETTNUM(tmp_decr))));
4765 while (((value = tvb_reported_length_remaining(tvb, offset)) >= 4) && (offset - org_offset < in_len))
4767 tlv_type = tvb_get_ntohs(tvb, offset + TLV_TYPE);
4768 length = tvb_get_ntohs(tvb, offset + TLV_LENGTH);
4769 if (tlv_type >= WASSP_SUBTLV_GET_MAXENTRY(tmp_decr))
4771 proto_tree_add_uint_format_value(tmp_tree, hf_wassp_tlv_unknown, tvb, offset, 4, tlv_type, "Unknown Wassp TLV (%d)", tlv_type);
4772 proto_tree_add_item(tmp_tree, hf_wassp_tlv_length, tvb, offset + TLV_LENGTH, 2, ENC_BIG_ENDIAN);
4773 proto_tree_add_item(tmp_tree, hf_wassp_tlv_value_octext, tvb, offset + TLV_VALUE, length - 4, ENC_NA);
4774 offset += length;
4775 continue;
4778 label = wassp_match_strval(tmp_decr, tlv_type);
4779 label = (label == NULL) ? "Unknown Type" : label;
4781 if (length > value)
4783 proto_tree_add_item(tmp_tree, hf_wassp_tlv_invalid, tvb, offset, 4, ENC_BIG_ENDIAN);
4784 tlv_type = EID_PARSE_ERROR;
4786 else if (length < 4)
4788 proto_tree_add_item(tmp_tree, hf_wassp_tlv_invalid, tvb, offset, 4, ENC_BIG_ENDIAN);
4789 tlv_type = EID_PARSE_ERROR;
4791 else if (length == 4)
4793 if ((which_tab == TAB_RSS_DATA_ARRAY) && (tlv_type == EID_RSS_DATA_BLOCK))
4795 proto_tree_add_item(tmp_tree, hf_wassp_tlv_value_octext, tvb, offset, length, ENC_NA);
4797 else
4799 tlvi = proto_tree_add_item(tmp_tree, hf_wassp_tlv_value, tvb, offset, length, ENC_NA);
4800 proto_item_append_text(tlvi, " : %s (%d)", label, tlv_type);
4802 offset += length;
4803 continue;
4805 else
4807 if ((which_tab == TAB_RSS_DATA_ARRAY) && (tlv_type == EID_RSS_DATA_BLOCK))
4809 proto_tree_add_item(tmp_tree, hf_wassp_tlv_value_octext, tvb, offset, length, ENC_NA);
4811 else
4813 tlvi = proto_tree_add_item(tmp_tree, hf_wassp_tlv_value, tvb, offset, length, ENC_NA);
4814 proto_item_append_text(tlvi, " : %s (%d)", label, tlv_type);
4818 tlvi = proto_tree_add_item(tmp_tree, hf_wassp_tlv_type_sub, tvb, offset + TLV_TYPE, 2, ENC_NA);
4819 proto_item_append_text(tlvi, " : %s (%d)", label, tlv_type);
4820 proto_tree_add_item(tmp_tree, hf_wassp_tlv_length, tvb, offset + TLV_LENGTH, 2, ENC_BIG_ENDIAN);
4822 if (tlv_type == EID_PARSE_ERROR)
4824 proto_tree_add_item(wassp_tree, hf_wassp_tlv_invalid, tvb, offset, value, ENC_BIG_ENDIAN);
4825 offset += length;
4826 break;
4828 else
4830 if (WASSP_SUBTLV_GET_ENTRY_IDX_TYPE(tmp_decr, tlv_type) != TLV_TYPE_BLOCK_TLV)
4832 proto_tree_add_item(tmp_tree, wassp_type_converter(WASSP_SUBTLV_GET_ENTRY_IDX_TYPE(tmp_decr, tlv_type)), tvb, offset + TLV_VALUE, length - 4, false);
4833 if ((which_tab == TAB_CONFIG_SITE) && (tlv_type == EID_SITE_TOPOLOGY_BLOCK))
4835 suboffset = offset + 4;
4836 for (i = 0; i < (uint32_t)(length / 4 - 1); i++)
4838 proto_tree_add_item(tmp_tree, hf_wassp_topologykey, tvb, suboffset, 2, ENC_BIG_ENDIAN);
4839 suboffset += 2;
4840 proto_tree_add_item(tmp_tree, hf_wassp_topology_mode, tvb, suboffset, 2, ENC_BIG_ENDIAN);
4841 suboffset += 2;
4845 if (which_tab == VNS_CONFIG_BLOCK)
4847 if (tlv_type == EID_V_COS)
4849 decode_cos_struct(tmp_tree, tvb, offset + 4 );
4851 else if (tlv_type == EID_V_RATE_LIMIT_RESOURCE_TBL)
4853 decode_rate_limit_struct(tmp_tree,tvb, offset + 4,length-4 );
4857 if (which_tab == TAB_CONFIG_FILTER || which_tab == TAB_FILTER_CONFIG_STRUCT_BLOCK)
4859 if (tlv_type == EID_V_FILTER_RULES || tlv_type == EID_FILTER_RULES || tlv_type == EID_V_SITE_FILTER_RULES )
4861 if (length < 20)
4862 break;
4863 decode_filter_rule_octext_string(tmp_tree, tvb, offset + 4, length );
4869 if (which_tab == TAB_SCAN_PROFILE_BLOCK)
4871 if (tlv_type == EID_CHANNEL_LIST)
4873 decode_Channel_list(tmp_tree, tvb, offset + 4, length -4 );
4877 if (which_tab == TAB_SURVEILLANCE_DATA_BLOCK)
4879 if (tlv_type == EID_SCAN_RSS_RSSI)
4881 suboffset = offset + 4;
4882 proto_tree_add_item(tmp_tree, hf_wassp_rss, tvb, suboffset, 2, ENC_BIG_ENDIAN);
4883 suboffset += 2;
4884 proto_tree_add_item(tmp_tree, hf_wassp_rssi, tvb, suboffset, 2, ENC_BIG_ENDIAN);
4887 if (tlv_type == EID_PARAMS)
4889 suboffset = offset + 4;
4890 proto_tree_add_item(tmp_tree, hf_wassp_threatstate, tvb, suboffset, 1, ENC_BIG_ENDIAN);
4891 suboffset += 1;
4892 proto_tree_add_item(tmp_tree, hf_wassp_radioparams, tvb, suboffset, 1, ENC_BIG_ENDIAN);
4893 suboffset += 1;
4894 proto_tree_add_item(tmp_tree, hf_wassp_channelfreq, tvb, suboffset, 2, ENC_BIG_ENDIAN);
4900 if (which_tab == CONFIG_GLOBAL_BLOCK)
4902 if (tlv_type == EID_ON_DEMAND_ARRAY || tlv_type == EID_DYN_ON_DEMAND_ARRAY)
4904 decode_mac_list_struct(tmp_tree, tvb, offset + 4, length -4 );
4908 if (which_tab == TAB_DETECTED_ROGUE_BLOCK)
4910 if (tlv_type == EID_DNS_IP_ADDR)
4912 decode_ipv4_list_struct(tmp_tree, tvb, offset + 4, length -4 );
4916 offset += length;
4918 else
4921 tableNo = WASSP_SUBTLV_GET_ENTRY_IDX_TABIDX(tmp_decr, tlv_type);
4922 if ((tableNo == RADIO_CONFIG_BLOCK) && (ru_msg_type == WASSP_RU_Ack))
4924 // We recurse here, but we'll run out of packet before we run out of stack.
4925 offset = dissect_wassp_sub_tlv(tmp_tree, tvb, pinfo, offset + TLV_VALUE, length - TLV_VALUE, TAB_RU_ACK_RADIO_CONFIG, ru_msg_type);
4927 else
4928 // We recurse here, but we'll run out of packet before we run out of stack.
4929 offset = dissect_wassp_sub_tlv(tmp_tree, tvb, pinfo, offset + TLV_VALUE, length - TLV_VALUE, tableNo, ru_msg_type);
4935 return offset;
4939 int dissect_wassp_tlv(proto_tree *wassp_tree, tvbuff_t *tvb, packet_info *pinfo, int offset, wassp_ru_msg_t rumsg_type)
4941 proto_item *tlvi = NULL;
4942 proto_tree *tlv_tree;
4943 uint16_t tlv_type = WASSP_RU_UNUSED_0;
4944 uint16_t length;
4945 uint32_t value;
4946 int suboffset;
4947 wassp_ru_msg_t ru_msg_type = rumsg_type;
4948 const char *label;
4952 SET_WASSP_TLV_VERSION(0);
4953 while ((value = tvb_reported_length_remaining(tvb, offset)) >= 4)
4955 tlv_type = tvb_get_ntohs(tvb, offset + TLV_TYPE);
4956 length = tvb_get_ntohs(tvb, offset + TLV_LENGTH);
4957 label = try_val_to_str(tlv_type, wassp_tlv_types);
4958 label = (label == NULL) ? "Unknown Type" : label;
4960 if (length > value)
4962 tlvi = proto_tree_add_item(wassp_tree, hf_wassp_tlv_invalid, tvb, offset, 4, ENC_BIG_ENDIAN);
4963 tlv_type = EID_UNUSED_0;
4965 else if (length < 4)
4967 tlvi = proto_tree_add_item(wassp_tree, hf_wassp_tlv_invalid, tvb, offset, 4, ENC_BIG_ENDIAN);
4968 tlv_type = EID_UNUSED_0;
4970 else
4972 tlvi = proto_tree_add_item(wassp_tree, hf_wassp_tlv_value, tvb, offset, length, ENC_NA);
4973 proto_item_append_text(tlvi, " : %s (%d)", label, tlv_type);
4977 tlv_tree = proto_item_add_subtree(tlvi, ett_wassp_tlv);
4978 proto_tree_add_item(tlv_tree, hf_wassp_tlv_type_main, tvb, offset + TLV_TYPE, 2, ENC_BIG_ENDIAN);
4979 proto_tree_add_item(tlv_tree, hf_wassp_tlv_length, tvb, offset + TLV_LENGTH, 2, ENC_BIG_ENDIAN);
4981 switch (tlv_type)
4983 case EID_UNUSED_0: // 0
4984 offset += 4;
4985 break;
4987 case EID_STATUS: // 1
4988 ru_msg_type = (wassp_ru_msg_t) tvb_get_uint8(tvb, WASSP_HDR_TYPE);
4990 /*this is an action TLV*/
4991 if (WASSP_RU_SW_Version_Validate_Rsp == ru_msg_type)
4993 proto_item_append_text(tlvi, " (upgrade action)");
4994 proto_tree_add_item(tlv_tree, hf_wassp_tlv_eid_action, tvb, offset + TLV_VALUE, length - 4, ENC_BIG_ENDIAN);
4996 else /*assume status TLV*/
4998 proto_item_append_text(tlvi, " (status)");
4999 proto_tree_add_item(tlv_tree, hf_wassp_tlv_eid_status, tvb, offset + TLV_VALUE, length - 4, ENC_BIG_ENDIAN);
5001 offset += length;
5002 break;
5004 /* display as string */
5005 case EID_RU_SW_VERSION: // 2
5006 case EID_RU_SERIAL_NUMBER: // 3
5007 case EID_IMAGE_PATH: // 9
5008 case EID_RANDOM_NUMBER: // 14
5009 case EID_RU_MODEL: // 17
5010 case EID_RU_TRAP: // 24
5011 case EID_RU_SSID_NAME: // 37
5012 case EID_AC_REG_CHALLENGE: // 41
5013 case EID_AC_REG_RESPONSE: // 42
5014 case EID_STATS: // 43
5015 case EID_CERTIFICATE: // 44
5016 case EID_RADIO_INFO: // 51
5017 case EID_NETWORK_INFO: // 52
5018 case EID_PRODUCT_ID: // 54
5019 case EID_RADIO_INFO_ACK: // 55
5020 case EID_SSID: // 58
5021 case EID_MU_PMKID_LIST: // 72
5022 case EID_MU_PMK_BP: // 73
5023 case EID_MU_PMKID_BP: // 74
5024 case EID_LOG_FILE: // 83
5025 case EID_ALARM_DESCRIPTION: // 85
5026 case EID_RU_BACKUP_VERSION: // 93
5027 case EID_AC_SW_VERSION: // 94
5028 case EID_MCAST_LAMG_LIST: // 95
5029 case EID_FILTER_NAME: // 96
5030 case EID_SENSOR_IMG_VERSION: // 104
5031 case EID_RATECTRL_NAME_UL: // 111
5032 case EID_RATECTRL_NAME_DL: // 112
5033 case EID_POLICY_NAME: // 113
5034 case EID_SIAPP_AP_NAME: // 120
5035 case EID_SIAPP_USER_IDENTITY: // 151
5036 case EID_MU_FILTER_POLICY_NAME: // 162
5037 case EID_MU_TOPOLOGY_POLICY_NAME: // 163
5038 case EID_MU_COS_POLICY_NAME: // 164
5039 case EID_SITE_NAME: // 175
5040 case EID_SSS_SSID: // 191
5041 case EID_POLICY_ZONE_NAME: // 193
5042 case EID_MU_USER_NAME: // 196
5043 case EID_SCAN_SSID: // 237
5044 case EID_THREAT_NAME: // 248
5045 case EID_LOCATION: // 249
5046 case EID_MU_EVENT_STRING: // 254
5047 case EID_LOCATOR_FLOOR_NAME: // 288
5048 case EID_MU_RFS_NAME: // 296
5049 case EID_MU_URL: // 301
5050 case EID_MU_ACCT_SESSION_ID_STRING: // 304
5051 case EID_MU_ACCT_POLICY_NAME: // 305
5052 case EID_MU_TUNNEL_PRIVATE_GROUP_ID_STRING: // 309
5053 case EID_MU_USER_ID_STRING: // 310
5054 case EID_MU_LOCATION: // 331
5055 case EID_AREA_NAME: // 335
5056 case EID_CUI: // 363
5057 case EID_WFA_HS20_URL: // 368
5058 case EID_DHCP_HOST_NAME: // 382
5059 case EID_MU_ECP_PW: // 385
5060 case EID_MU_ECP_TOKEN: // 386
5061 proto_tree_add_item(tlv_tree, hf_wassp_tlv_value_string, tvb, offset + TLV_VALUE, length - 4, ENC_ASCII);
5062 offset += length;
5063 break;
5065 /* display as octext string */
5066 case EID_RU_REG_CHALLENGE: // 4
5067 case EID_RU_REG_RESPONSE: // 5
5068 case EID_RU_VNSID: // 7
5069 case EID_SESSION_KEY: // 12
5070 case EID_RU_PREAUTH: // 39
5071 case EID_RU_PMK: // 40
5072 case EID_SIAPP_PMKID: // 115
5073 case EID_SIAPP_PMK_REAUTH: // 116
5074 case EID_SIAPP_PMK_LIFETIME: // 117
5075 case EID_SIAPP_PMKID_FLAG: // 118
5076 case EID_SIAPP_MU_PMK: // 119
5077 case EID_SIAPP_CLUSTER_ACS_REQ: // 122
5078 case EID_SIAPP_PACKET_RETRIES: // 124
5079 case EID_SIAPP_ASSOC_IN_WLAN: // 125
5080 case EID_SIAPP_ASSOC_IN_CLUSTER: // 126
5081 case EID_SIAPP_REASSOC_IN_CLUSTER: // 127
5082 case EID_SIAPP_NEWAP_BSSID: // 129
5083 case EID_SIAPP_OLDAP_BSSID: // 130
5084 case EID_SIAPP_RAD_CACS_REQ: // 131
5085 case EID_SIAPP_CLIENT_COUNT: // 133
5086 case EID_SIAPP_MU_TransmittedFrameCount: // 135
5087 case EID_SIAPP_MU_ReceivedFrameCount: // 136
5088 case EID_SIAPP_MU_TransmittedBytes: // 137
5089 case EID_SIAPP_MU_ReceivedBytes: // 138
5090 case EID_SIAPP_MU_UL_DroppedRateControlPackets: // 139
5091 case EID_SIAPP_MU_DL_DroppedRateControlPackets: // 140
5092 case EID_SIAPP_MU_DL_DroppedBufferFullPackets: // 141
5093 case EID_SIAPP_MU_DL_LostRetriesPackets: // 142
5094 case EID_SIAPP_MU_UL_DroppedRateControlBytes: // 143
5095 case EID_SIAPP_MU_DL_DroppedRateControlBytes: // 144
5096 case EID_SIAPP_MU_DL_DroppedBufferFullBytes: // 145
5097 case EID_SIAPP_MU_DL_LostRetriesBytes: // 146
5098 case EID_SIAPP_BP_BSSID: // 147
5099 case EID_SIAPP_RADIO_ID: // 148
5100 case EID_SIAPP_PREAUTH_REQ: // 150
5101 case EID_SIAPP_LOADBAL_LOADGROUP_ID: // 154
5102 case EID_MU_ACCOUNTING_CLASS: // 169
5103 case EID_SSS_TS64_MU_UPDATE: // 183
5104 case EID_SSS_TS64_AP_CURRENT: // 184
5105 case EID_SSS_AP_HOMEHASH: // 186
5106 case EID_EVENT_ARRAY: // 189
5107 case EID_INFORM_MU_PMK: // 199
5108 case EID_ARP_PROXY: // 201
5109 case EID_MCAST_FILTER_RULES: // 202
5110 case EID_AP_PARAMS: // 203
5111 case EID_THREAT_STATS_F: // 220
5112 case EID_THREAT_PATTERN: // 224
5113 case EID_LOCATOR_LOC_POINT: // 265
5114 case EID_MU_EVENT_DETAILS: // 266
5115 case EID_MU_EVENT_LOC_BLOCK: // 268
5116 case EID_AP_REDIRECT: // 291
5117 case EID_MU_CVLAN_BAP: // 292
5118 case EID_MU_SESSION_ID: // 295
5119 case EID_MU_FLAGS: // 297
5120 case EID_MU_ASSOC_TIME: // 298
5121 case EID_MU_ACTIVE_TIME: // 299
5122 case EID_REPORT_REQ: // 300
5123 case EID_MU_SESSION_LIFETIME: // 302
5124 case EID_MU_REAUTH_TIMER: // 303
5125 case EID_MU_ACCT_START_TIME: // 306
5126 case EID_MU_ACCT_CLASS: // 307
5127 case EID_MU_LOGIN_LAT_GROUP: // 308
5128 case EID_MU_DEFENDED_STATE: // 311
5129 case EID_MU_MOD_MASK: // 312
5130 case EID_LOCATOR_TRACKED: // 313
5131 case EID_PORT: // 314
5132 case EID_RETRIES_COUNT: // 315
5133 case EID_MODULATION_TYPE: // 316
5134 case EID_ROGUE_DETECTION: // 319
5135 case EID_TTL: // 324
5136 case EID_LOCATOR_STATE_DATA: // 326
5137 case EID_LOCATOR_POINT_SET: // 327
5138 case EID_FILTER_RULE_FIXED_APP_ID: // 328
5139 case EID_MU_AREA_BLOCK: // 330
5140 case EID_IN_SERVICE_AP_LIST: // 334
5141 case EID_OUT_SERVICE_AP_LIST: // 335
5142 case EID_LAST_RD_AP: // 336
5143 case EID_ROGUE_INFO: // 337
5144 case EID_MU_PMK_R1: // 339
5145 case EID_SIAPP_R0KHID: // 340
5146 case EID_SIAPP_R1KHID: // 341
5147 case EID_SIAPP_FT_NONCE: // 342
5148 case EID_SIAPP_FT_PMKR0NAME: // 343
5149 case EID_SIAPP_FT_R1KHID: // 344
5150 case EID_SIAPP_FT_S1KHID: // 345
5151 case EID_SIAPP_FT_PMKR1: // 346
5152 case EID_SIAPP_FT_PMKR1NAME: // 347
5153 case EID_SIAPP_FT_PAIRWISE: // 348
5154 case EID_SIAPP_FT_LIFETIME: // 349
5155 case EID_MU_POWER_CAP: // 350
5156 case EID_PERIODIC_NEIGHBOUR_REPORT: // 352
5157 case EID_NEIGHBOUR_ENTRY: // 354
5158 case EID_MU_PMK_R0NAME: // 362
5159 case EID_IPV6_ADDR: // 373
5160 case EID_MU_DEV_IDENTITY: // 376
5161 case EID_NEIGHBOUR_ENTRY_2: // 383
5162 case EID_CHANNEL_ENTRY: // 384
5163 case EID_PKT_F_WIRELESS: // 391
5164 case EID_PKT_F_WIREDCLIENT: // 392
5165 case EID_PKT_F_DIRECTION: // 393
5166 case EID_PKT_F_IP_ARRAY: // 396
5167 case EID_PKT_F_RADIO: // 394
5168 case EID_VSA_SSID_ID: // 400
5169 proto_tree_add_item(tlv_tree, hf_wassp_tlv_value_octext, tvb, offset + TLV_VALUE, length - 4, ENC_NA);
5170 offset += length;
5171 break;
5173 /* display as IP address format */
5174 case EID_AC_IPADDR: // 6
5175 case EID_TFTP_SERVER: // 8
5176 case EID_STATIC_BP_IPADDR: // 30
5177 case EID_STATIC_BP_NETMASK: // 31
5178 case EID_STATIC_BP_GATEWAY: // 32
5179 case EID_STATIC_BM_IPADDR: // 33
5180 case EID_AP_IPADDR: // 89
5181 case EID_AP_NETMASK: // 90
5182 case EID_AP_GATEWAY: // 91
5183 case EID_MU_IP_ADDR: // 173
5184 case EID_PEER_SITE_IP: // 176
5185 case EID_COLLECTOR_IP_ADDR: // 200
5186 case EID_IP_ADDR_TX: // 322
5187 case EID_IP_ADDR_RX: // 323
5188 case EID_GW_IP_ADDR: // 325
5189 case EID_STATIC_VSA_IPADDR: // 387
5190 case EID_STATIC_VSA_NETMASK: // 388
5191 proto_tree_add_item(tlv_tree, hf_wassp_tlv_value_ip, tvb, offset, 4, ENC_BIG_ENDIAN);
5192 offset += length;
5193 break;
5195 case EID_CONFIG: // 10
5196 case EID_ALARM: // 38
5197 /* Dissect SNMP encoded configuration */
5198 dissector_try_uint(wassp_dissector_table, WASSP_SNMP, tvb_new_subset_length(tvb, offset + TLV_VALUE, length - 4), pinfo, tlv_tree);
5199 offset += length;
5200 break;
5202 case EID_RU_STATE: // 11
5203 proto_tree_add_item(tlv_tree, hf_wassp_tlv_eid_rustate, tvb, offset + TLV_VALUE, length - 4, ENC_BIG_ENDIAN);
5204 proto_item_append_text(tlvi, ": %s",
5205 tfs_get_string(tvb_get_uint8(tvb, offset + TLV_VALUE), &wassp_eid_rustate_types));
5206 offset += length;
5207 break;
5209 /* display as int */
5210 case EID_RU_PROTOCOL: // 13
5211 case EID_STANDBY_TIMEOUT: // 15
5212 case EID_RU_CHALLENGE_ID: // 16
5213 case EID_RU_SCAN_MODE: // 18
5214 case EID_RU_SCAN_TYPE: // 19
5215 case EID_RU_SCAN_INTERVAL: // 20
5216 case EID_RU_RADIO_TYPE: // 21
5217 case EID_RU_CHANNEL_DWELL_TIME: // 22
5218 case EID_RU_CHANNEL_LIST: // 23
5219 case EID_RU_SCAN_TIMES: // 25
5220 case EID_RU_SCAN_DELAY: // 26
5221 case EID_RU_SCAN_REQ_ID: // 27
5222 case EID_STATIC_CONFIG: // 28
5223 case EID_LOCAL_BRIDGING: // 29
5224 case EID_RU_CAPABILITY: // 36
5225 case EID_RADIO_ID: // 45
5226 case EID_REQ_ID: // 46
5227 case EID_NETWORK_ID: // 47
5228 case EID_TIME: // 49
5229 case EID_NUM_RADIOS: // 50
5230 case EID_VENDOR_ID: // 53
5231 case EID_SECURE_TUNNEL: // 56
5232 case EID_MU_TOPOLOGY_ID: // 57
5233 case EID_SNMP_ERROR_STATUS: // 60
5234 case EID_SNMP_ERROR_INDEX: // 61
5235 case EID_RU_REAUTH_TIMER: // 62
5236 case EID_AP_IMG_TO_RAM: // 63
5237 case EID_AP_IMG_ROLE: // 64
5238 case EID_STATS_REQUEST_TYPE: // 67
5239 case EID_STATS_LAST: // 68
5240 case EID_COUNTDOWN_TIME: // 75
5241 case EID_WASSP_VLAN_TAG: // 76
5242 case EID_SSID_ID: // 77
5243 case EID_PORT_OPEN_FLAG: // 80
5244 case EID_WASSP_TUNNEL_TYPE: // 81
5245 case EID_LOG_TYPE: // 82
5246 case EID_ALARM_SEVERITY: // 84
5247 case EID_AP_DHCP_MODE: // 88
5248 case EID_AUTH_STATE: // 98
5249 case EID_MU_DISC_AFTER_AUTH: // 99
5250 case EID_TRANS_ID: // 101
5251 case EID_TIMEZONE_OFFSET: // 102
5252 case EID_SENSOR_FORCE_DOWNLOAD: // 103
5253 case EID_BRIDGE_MODE: // 105
5254 case EID_MU_VLAN_TAG: // 106
5255 case EID_RATECTRL_CIR_UL: // 107
5256 case EID_RATECTRL_CIR_DL: // 108
5257 case EID_RATECTRL_CBS_UL: // 109
5258 case EID_RATECTRL_CBS_DL: // 110
5259 case EID_SIAPP_LOADBAL_PKT_TYPE: // 153
5260 case EID_SIAPP_LOADBAL_LOAD_VALUE: // 155
5261 case EID_SIAPP_FILTER_COS: // 157
5262 case EID_UCAST_FILTER_DISABLE: // 160
5263 case EID_MU_INFORM_REASON: // 161
5264 case EID_MU_FILTER_KEY: // 165
5265 case EID_MU_TOPOLOGY_KEY: // 166
5266 case EID_MU_COS_KEY: // 167
5267 case EID_MU_SESSION_TIMEOUT: // 168
5268 case EID_MU_LOGIN_LAT_PORT: // 170
5269 case EID_MU_IDLE_TIMEOUT: // 171
5270 case EID_MU_ACCT_INTERIM_INTERVAL: // 172
5271 case EID_MU_TERMINATE_ACTION: // 174
5272 case EID_INTERFERENCE_EVENTS_ENABLE: // 177
5273 case EID_EVENT_TYPE: // 178
5274 case EID_EVENT_CHANNEL: // 179
5275 case EID_EVENT_VALUE: // 180
5276 case EID_SSS_MU_ASSOC_TIME: // 182
5277 case EID_SSS_MU_AUTH_STATE: // 185
5278 case EID_TIME_FIRST_DETECTED: // 187
5279 case EID_TIME_LAST_REPORTED: // 188
5280 case EID_SSS_DEFAULT_SESSION_TIMEOUT: // 190
5281 case EID_SSS_PRIVACY_TYPE: // 192
5282 case EID_RU_AC_EVENT_COMPONENT_ID: // 194
5283 case EID_MU_AUTH_STATE: // 195
5284 case EID_BULK_TYPE: // 197
5285 case EID_SENT_TIME: // 198
5286 case EID_SCAN_PROFILE_ID: // 209
5287 case EID_ACTION_REQ: // 210
5288 case EID_COUNTERMEASURES_MAX_CH: // 212
5289 case EID_COUNTERMEASURES_SET: // 213
5290 case EID_SEQ_NUM: // 215
5291 case EID_THREAT_TYPE: // 218
5292 case EID_THREAT_ID: // 219
5293 case EID_THREAT_FR_SFR: // 221
5294 case EID_THREAT_ALERT_TH_DUR: // 225
5295 case EID_THREAT_CLEAR_TH_DUR: // 226
5296 case EID_THREAT_PRIORITY: // 227
5297 case EID_THREAT_MITIGATION_LIST: // 228
5298 case EID_PARAMS: // 235
5299 case EID_MU_EVENT_TYPE: // 260
5300 case EID_SSS_MU_IS_PORT_CLOSED: // 229
5301 case EID_FULL_UPDATE: // 230
5302 case EID_REASON: // 231
5303 case EID_SCAN_CAP: // 238
5304 case EID_THREAT_CLASSIFICATION: // 239
5305 case EID_STATE: // 242
5306 case EID_DROP_FR_CNT: // 243
5307 case EID_STOP_ROAM_CNT: // 244
5308 case EID_SPOOF_CNT: // 245
5309 case EID_ENCRYPTION_TYPE: // 250
5310 case EID_COMPONENT_ID: // 253
5311 case EID_BYPASS_BMCAST: // 255
5312 case EID_GETTIMEOFDAY: // 256
5313 case EID_COUNTRY_ID: // 257
5314 case EID_LOCATOR_FLOOR_ID: // 261
5315 case EID_LOCATOR_LOC_TYPE: // 262
5316 case EID_MU_EVENT_FROM_AP: // 267
5317 case EID_LOCATOR_LOC_AP_DISTANCE: // 269
5318 case EID_LOCATOR_LOC_PRECISION: // 270
5319 case EID_LOCATOR_MU_ACTION: // 273
5320 case EID_EFFECTIVE_EGRESS_VLAN: // 274
5321 case EID_REBOOT_ACK: // 275
5322 case EID_AUTH_FLAG: // 277
5323 case EID_ROAMED_FLAG: // 278
5324 case EID_MU_RSS: // 279
5325 case EID_FILTER_RULES_VER: // 280
5326 case EID_FILTER_TYPE: // 281
5327 case EID_DEFAULT_ACTION_TYPE: // 284
5328 case EID_DEFAULT_CONTAIN_TO_VLAN: // 285
5329 case EID_DEFAULT_BRIDGE_MODE: // 286
5330 case EID_INVALID_POLICY: // 287
5331 case EID_AP_FLAGS: // 289
5332 case EID_AP_PVID: // 290
5333 case EID_MU_LOCATION_TS: // 332
5334 case EID_MU_IS_FT: // 338
5335 case EID_TIMESTAMP: // 353
5336 case EID_MU_REQ: // 355
5337 case EID_RU_REQ: // 356
5338 case EID_NEIGHBOUR_REQ: // 357
5339 case EID_SSS_FT_ASSOC: // 358
5340 case EID_DEFAULT_MIRRORN: // 359
5341 case EID_FILTER_RULE_EXT_ACT_FLAGS: // 360
5342 case EID_TOPO_GROUP_MAPPING: // 361
5343 case EID_SSS_CAPINFO: // 364
5344 case EID_SSS_CAPPOWER: // 365
5345 case EID_WFA_VSA: // 366
5346 case EID_WFA_HS20_REMED_METHOD: // 367
5347 case EID_WFA_HS20_DEAUTH_CODE: // 369
5348 case EID_WFA_HS20_REAUTH_DELAY: // 370
5349 case EID_WFA_HS20_SWT: // 371
5350 case EID_POWER_STATUS: // 372
5351 case EID_FILTER_RULES_APP_SIG_GROUP_ID: // 374
5352 case EID_FILTER_RULES_APP_SIG_DISP_ID: // 375
5353 case EID_APPL_STATS_REQ: // 377
5354 case EID_PKT_CAPTURE_STATUS: // 389
5355 case EID_PKT_CAPTURE_FILTERS: // 390
5356 case EID_PKT_F_FLAGS: // 395
5357 case EID_PKT_F_PROTOCOL: // 398
5358 case EID_PKT_F_PORT: // 399
5359 case EID_MU_AUTH_TYPE: // 401
5360 case EID_PKT_F_MAX_PKT_COUNT: // 402
5361 case EID_PKT_F_FLAG_2: // 403
5362 case EID_IMAGE_PORT: // 404
5363 proto_tree_add_item(tlv_tree, hf_wassp_tlv_value_int, tvb, offset + TLV_VALUE, length - 4, ENC_NA);
5364 offset += length;
5365 break;
5366 /* display as Mac address */
5367 case EID_BP_BPSSID: // 34
5368 case EID_BP_WIRED_MACADDR: // 35
5369 case EID_SIAPP_MACADDR: // 149
5370 case EID_SIAPP_AC_MGMT_MAC: // 156
5371 case EID_MAC_ADDR: // 208
5372 case EID_SCAN_BSSID: // 233
5373 case EID_MU_BSSID: // 276
5374 case EID_MAC_ADDR_TX: // 320
5375 case EID_MAC_ADDR_RX: // 321
5376 proto_tree_add_item(tlv_tree, hf_wassp_macaddr, tvb, offset + TLV_VALUE, length - 4, ENC_NA);
5377 offset += length;
5378 break;
5379 case EID_MU_MAC: // 48
5380 case EID_PKT_F_MAC: // 397
5381 proto_tree_add_item(tlv_tree, hf_wassp_mu_mac, tvb, offset + TLV_VALUE, length - 4, ENC_NA);
5382 offset += length;
5383 break;
5385 /* call sub tlv */
5386 case EID_EVENT_BLOCK: // 59
5387 offset = dissect_wassp_sub_tlv(tlv_tree, tvb, pinfo, offset + TLV_VALUE, length - TLV_VALUE, EVENT_BLOCK, ru_msg_type);
5388 break;
5389 case EID_AP_STATS_BLOCK: // 65
5390 offset = dissect_wassp_sub_tlv(tlv_tree, tvb, pinfo, offset + TLV_VALUE, length - TLV_VALUE, AP_STATS_BLOCK, ru_msg_type);
5391 break;
5392 case EID_MU_RF_STATS_BLOCK: // 66
5393 offset = dissect_wassp_sub_tlv(tlv_tree, tvb, pinfo, offset + TLV_VALUE, length - TLV_VALUE, MU_RF_STATS_BLOCK, ru_msg_type);
5394 break;
5395 case EID_TLV_CONFIG: // 69
5396 case EID_BSSID2IP_BLOCK: // 92
5397 offset = dissect_wassp_sub_tlv(tlv_tree, tvb, pinfo, offset + TLV_VALUE, length - TLV_VALUE, CONFIG_GLOBAL_BLOCK, ru_msg_type);
5398 break;
5399 case EID_CONFIG_ERROR_BLOCK: // 70
5400 offset = dissect_wassp_sub_tlv(tlv_tree, tvb, pinfo, offset + TLV_VALUE, length - TLV_VALUE, CONFIG_ERROR_BLOCK, ru_msg_type);
5401 break;
5402 case EID_CONFIG_MODIFIED_BLOCK: // 71
5403 offset = dissect_wassp_sub_tlv(tlv_tree, tvb, pinfo, offset + TLV_VALUE, length - TLV_VALUE, TAB_CONFIG_MODIFIED, ru_msg_type);
5404 break;
5405 case EID_BULK_MU_BLOCK: // 78
5406 offset = dissect_wassp_sub_tlv(tlv_tree, tvb, pinfo, offset + TLV_VALUE, length - TLV_VALUE, BULK_MU_BLOCK, ru_msg_type);
5407 break;
5408 case EID_MU_BLOCK: // 79
5409 offset = dissect_wassp_sub_tlv(tlv_tree, tvb, pinfo, offset + TLV_VALUE, length - TLV_VALUE, MU_BLOCK, ru_msg_type);
5410 break;
5411 case EID_BULK_VNS_BLOCK: // 86
5412 offset = dissect_wassp_sub_tlv(tlv_tree, tvb, pinfo, offset + TLV_VALUE, length - TLV_VALUE, BULK_VNS_BLOCK, ru_msg_type);
5413 break;
5414 case EID_VNS_BLOCK: // 87
5415 offset = dissect_wassp_sub_tlv(tlv_tree, tvb, pinfo, offset + TLV_VALUE, length - TLV_VALUE, VNS_BLOCK, ru_msg_type);
5416 break;
5417 case EID_SIAPP_PMK_BLOCK: // 114
5418 offset = dissect_wassp_sub_tlv(tlv_tree, tvb, pinfo, offset + TLV_VALUE, length - TLV_VALUE, TAB_SIAPP_PMK_BLOCK, ru_msg_type);
5419 break;
5420 case EID_SIAPP_RADIO_CONFIG_BLOCK: // 121
5421 offset = dissect_wassp_sub_tlv(tlv_tree, tvb, pinfo, offset + TLV_VALUE, length - TLV_VALUE, TAB_SIAPP_RADIO_CONFIG_BLOCK, ru_msg_type);
5422 break;
5423 case EID_SIAPP_SIAPP_MU_STATS_BLOCK: // 123
5424 offset = dissect_wassp_sub_tlv(tlv_tree, tvb, pinfo, offset + TLV_VALUE, length - TLV_VALUE, TAB_SIAPP_MU_STATS_BLOCK, ru_msg_type);
5425 break;
5426 case EID_SIAPP_THIN_BLOCK: // 128
5427 offset = dissect_wassp_sub_tlv(tlv_tree, tvb, pinfo, offset + TLV_VALUE, length - TLV_VALUE, TAB_SIAPP_THIN_BLOCK, ru_msg_type);
5428 break;
5429 case EID_SIAPP_RADIOBLOCK: // 132
5430 offset = dissect_wassp_sub_tlv(tlv_tree, tvb, pinfo, offset + TLV_VALUE, length - TLV_VALUE, TAB_SIAPP_MU_STATS_BLOCK, ru_msg_type);
5431 break;
5432 case EID_SIAPP_BLOCK: // 134
5433 offset = dissect_wassp_sub_tlv(tlv_tree, tvb, pinfo, offset + TLV_VALUE, length - TLV_VALUE, TAB_SIAPP_BLOCK, ru_msg_type);
5434 break;
5435 case EID_SIAPP_LOADBAL_BLOCK: // 152
5436 offset = dissect_wassp_sub_tlv(tlv_tree, tvb, pinfo, offset + TLV_VALUE, length - TLV_VALUE, VNS_BLOCK, ru_msg_type);
5437 break;
5438 case EID_SSS_MU_BLOCK: // 181
5439 offset = dissect_wassp_sub_tlv(tlv_tree, tvb, pinfo, offset + TLV_VALUE, length - TLV_VALUE, TAB_SSS_MU_BLOCK, ru_msg_type);
5440 break;
5441 case EID_ASSOC_SSID_ARRAY: // 204
5442 offset = dissect_wassp_sub_tlv(tlv_tree, tvb, pinfo, offset + TLV_VALUE, length - TLV_VALUE, TAB_ASSOC_SSID_ARRAY, ru_msg_type);
5443 break;
5444 case EID_ASSOC_SSID_BLOCK: // 205
5445 offset = dissect_wassp_sub_tlv(tlv_tree, tvb, pinfo, offset + TLV_VALUE, length - TLV_VALUE, TAB_ASSOC_SSID_BLOCK, ru_msg_type);
5446 break;
5447 case EID_AP_LIST_BLOCK: // 206
5448 offset = dissect_wassp_sub_tlv(tlv_tree, tvb, pinfo, offset + TLV_VALUE, length - TLV_VALUE, TAB_AP_LIST_BLOCK, ru_msg_type);
5449 break;
5450 case EID_AP_LIST_ARRAY: // 207
5451 offset = dissect_wassp_sub_tlv(tlv_tree, tvb, pinfo, offset + TLV_VALUE, length - TLV_VALUE, TAB_AP_LIST_ARRAY, ru_msg_type);
5452 break;
5453 case EID_SCAN_PROFILE_BLOCK: // 214
5454 offset = dissect_wassp_sub_tlv(tlv_tree, tvb, pinfo, offset + TLV_VALUE, length - TLV_VALUE, TAB_SCAN_PROFILE_BLOCK, ru_msg_type);
5455 break;
5456 case EID_THREAT_DEF_ARRAY: // 216
5457 offset = dissect_wassp_sub_tlv(tlv_tree, tvb, pinfo, offset + TLV_VALUE, length - TLV_VALUE, TAB_THREAT_DEF_ARRAY, ru_msg_type);
5458 break;
5459 case EID_THREAT_DEF_BLOCK: // 217
5460 offset = dissect_wassp_sub_tlv(tlv_tree, tvb, pinfo, offset + TLV_VALUE, length - TLV_VALUE, TAB_THREAT_DEF_BLOCK, ru_msg_type);
5461 break;
5462 case EID_THREAT_PATTERN_ARRAY: // 222
5463 offset = dissect_wassp_sub_tlv(tlv_tree, tvb, pinfo, offset + TLV_VALUE, length - TLV_VALUE, TAB_THREAT_PATTERN_ARRAY, ru_msg_type);
5464 break;
5465 case EID_THREAT_PATTERN_BLOCK: // 223
5466 offset = dissect_wassp_sub_tlv(tlv_tree, tvb, pinfo, offset + TLV_VALUE, length - TLV_VALUE, TAB_THREAT_PATTERN_BLOCK, ru_msg_type);
5467 break;
5468 case EID_SURVEILLANCE_DATA_ARRAY: // 231
5469 offset = dissect_wassp_sub_tlv(tlv_tree, tvb, pinfo, offset + TLV_VALUE, length - TLV_VALUE, TAB_SURVEILLANCE_DATA_ARRAY, ru_msg_type);
5470 break;
5471 case EID_SURVEILLANCE_DATA_BLOCK: // 232
5472 offset = dissect_wassp_sub_tlv(tlv_tree, tvb, pinfo, offset + TLV_VALUE, length - TLV_VALUE, TAB_SURVEILLANCE_DATA_BLOCK, ru_msg_type);
5473 break;
5474 case EID_THREAT_DATA_ARRAY: // 239
5475 offset = dissect_wassp_sub_tlv(tlv_tree, tvb, pinfo, offset + TLV_VALUE, length - TLV_VALUE, TAB_THREAT_DATA_ARRAY, ru_msg_type);
5476 break;
5477 case EID_THREAT_DATA_BLOCK: // 240
5478 offset = dissect_wassp_sub_tlv(tlv_tree, tvb, pinfo, offset + TLV_VALUE, length - TLV_VALUE, TAB_THREAT_DATA_BLOCK, ru_msg_type);
5479 break;
5480 case EID_THREAT_CLASSIFY_ARRAY: // 245
5481 offset = dissect_wassp_sub_tlv(tlv_tree, tvb, pinfo, offset + TLV_VALUE, length - TLV_VALUE, TAB_THREAT_CLASSIFY_ARRAY, ru_msg_type);
5482 break;
5483 case EID_THREAT_CLASSIFY_BLOCK: // 246
5484 offset = dissect_wassp_sub_tlv(tlv_tree, tvb, pinfo, offset + TLV_VALUE, length - TLV_VALUE, TAB_THREAT_CLASSIFY_BLOCK, ru_msg_type);
5485 break;
5486 case EID_MU_EVENT_ARRAY: // 251
5487 offset = dissect_wassp_sub_tlv(tlv_tree, tvb, pinfo, offset + TLV_VALUE, length - TLV_VALUE, TAB_MU_EVENT_ARRAY, ru_msg_type);
5488 break;
5489 case EID_MU_EVENT_BLOCK: // 252
5490 offset = dissect_wassp_sub_tlv(tlv_tree, tvb, pinfo, offset + TLV_VALUE, length - TLV_VALUE, TAB_MU_EVENT_BLOCK, ru_msg_type);
5491 break;
5492 case EID_COUNTRY_ARRAY: // 258
5493 offset = dissect_wassp_sub_tlv(tlv_tree, tvb, pinfo, offset + TLV_VALUE, length - TLV_VALUE, TAB_COUNTRY_ARRAY, ru_msg_type);
5494 break;
5495 case EID_COUNTRY_BLOCK: // 259
5496 offset = dissect_wassp_sub_tlv(tlv_tree, tvb, pinfo, offset + TLV_VALUE, length - TLV_VALUE, TAB_COUNTRY_BLOCK, ru_msg_type);
5497 break;
5498 case EID_LOCATOR_LOC_BLOCK: // 263
5499 offset = dissect_wassp_sub_tlv(tlv_tree, tvb, pinfo, offset + TLV_VALUE, length - TLV_VALUE, TAB_LOCATOR_LOC_BLOCK, ru_msg_type);
5500 break;
5501 case EID_LOCATOR_LOC_ARRAY: // 264
5502 offset = dissect_wassp_sub_tlv(tlv_tree, tvb, pinfo, offset + TLV_VALUE, length - TLV_VALUE, TAB_LOCATOR_LOC_ARRAY, ru_msg_type);
5503 break;
5504 case EID_RSS_DATA_ARRAY: // 271
5505 offset = dissect_wassp_sub_tlv(tlv_tree, tvb, pinfo, offset + TLV_VALUE, length - TLV_VALUE, TAB_RSS_DATA_ARRAY, ru_msg_type);
5506 break;
5507 case EID_RSS_DATA_BLOCK: // 272
5508 offset = dissect_wassp_sub_tlv(tlv_tree, tvb, pinfo, offset + TLV_VALUE, length - TLV_VALUE, TAB_RSS_DATA_BLOCK, ru_msg_type);
5509 break;
5510 case EID_MCAST_FILTER_BLOCK: // 282
5511 offset = dissect_wassp_sub_tlv(tlv_tree, tvb, pinfo, offset + TLV_VALUE, length - TLV_VALUE, TAB_MCAST_FILTER_BLOCK, ru_msg_type);
5512 break;
5513 case EID_MCAST_FILTER_BLOCK_ENTRY: // 283
5514 offset = dissect_wassp_sub_tlv(tlv_tree, tvb, pinfo, offset + TLV_VALUE, length - TLV_VALUE, TAB_MCAST_FILTER_BLOCK_ENTRY, ru_msg_type);
5515 break;
5516 case EID_MU_SESSION_ARRAY: // 293
5517 offset = dissect_wassp_sub_tlv(tlv_tree, tvb, pinfo, offset + TLV_VALUE, length - TLV_VALUE, TAB_MU_SESSION_ARRAY, ru_msg_type);
5518 break;
5519 case EID_MU_SESSION_BLOCK: // 294
5520 offset = dissect_wassp_sub_tlv(tlv_tree, tvb, pinfo, offset + TLV_VALUE, length - TLV_VALUE, TAB_MU_SESSION_BLOCK, ru_msg_type);
5521 break;
5522 case EID_DETECTED_ROGUE_ARRAY: // 317
5523 offset = dissect_wassp_sub_tlv(tlv_tree, tvb, pinfo, offset + TLV_VALUE, length - TLV_VALUE, TAB_DETECTED_ROGUE_ARRAY, ru_msg_type);
5524 break;
5525 case EID_DETECTED_ROGUE_BLOCK: // 318
5526 offset = dissect_wassp_sub_tlv(tlv_tree, tvb, pinfo, offset + TLV_VALUE, length - TLV_VALUE, TAB_DETECTED_ROGUE_BLOCK, ru_msg_type);
5527 break;
5528 case EID_FILTER_RULES_EXT_BLOCK: // 329
5529 offset = dissect_wassp_sub_tlv(tlv_tree, tvb, pinfo, offset + TLV_VALUE, length - TLV_VALUE, TAB_FILTER_RULES_EXT_BLOCK, ru_msg_type);
5530 break;
5531 case EID_TOPOLOGY_ARRAY: // 379
5532 offset = dissect_wassp_sub_tlv(tlv_tree, tvb, pinfo, offset + TLV_VALUE, length - TLV_VALUE, TAB_TOPOLOGY_ARRAY_BLOCK, ru_msg_type);
5533 break;
5534 case EID_TOPOLOGY_STRUCT: // 380
5535 offset = dissect_wassp_sub_tlv(tlv_tree, tvb, pinfo, offset + TLV_VALUE, length - TLV_VALUE, TAB_TOPOLOGY_STRUCT_BLOCK, ru_msg_type);
5536 break;
5537 case EID_FILTER_CONFIG_STRUCT: // 381
5538 offset = dissect_wassp_sub_tlv(tlv_tree, tvb, pinfo, offset + TLV_VALUE, length - TLV_VALUE, TAB_FILTER_CONFIG_STRUCT_BLOCK, ru_msg_type);
5539 break;
5541 case EID_FILTER_RULES: // 97
5542 proto_tree_add_item(tlv_tree, hf_wassp_tlv_value_octext, tvb, offset + TLV_VALUE, length - 4, ENC_NA);
5543 decode_filter_rule_octext_string(tlv_tree, tvb, offset + 4, length );
5544 offset += length;
5545 break;
5546 case EID_MU_MAC_LIST: // 100
5547 proto_tree_add_item(tlv_tree, hf_wassp_tlv_value_octext, tvb, offset + TLV_VALUE, length - 4, ENC_NA);
5548 decode_mac_list_struct(tlv_tree, tvb, offset + 4, length -4 );
5549 offset += length;
5550 break;
5551 case EID_COS: // 158
5552 proto_tree_add_item(tlv_tree, hf_wassp_tlv_value_octext, tvb, offset + TLV_VALUE, length - 4, ENC_NA);
5553 decode_cos_struct(tlv_tree, tvb, offset + 4 );
5554 offset += length;
5555 break;
5556 case EID_RATE_LIMIT_RESOURCE_TBL: // 159
5557 proto_tree_add_item(tlv_tree, hf_wassp_tlv_value_octext, tvb, offset + TLV_VALUE, length - 4, ENC_NA);
5558 decode_rate_limit_struct(tlv_tree,tvb, offset + 4,length-4 );
5559 offset += length;
5560 break;
5561 case EID_CHANNEL_LIST: // 211
5562 proto_tree_add_item(tlv_tree, hf_wassp_tlv_value_octext, tvb, offset + TLV_VALUE, length - 4, ENC_NA);
5563 decode_Channel_list(tlv_tree, tvb, offset + 4, length -4 );
5564 offset += length;
5565 break;
5566 case EID_DNS_IP_ADDR: // 333
5567 proto_tree_add_item(tlv_tree, hf_wassp_tlv_value_octext, tvb, offset + TLV_VALUE, length - 4, ENC_NA);
5568 decode_ipv4_list_struct(tlv_tree, tvb, offset + 4, length -4 );
5569 offset += length;
5570 break;
5571 case EID_MU_APPL_STATS_BLOCK: // 378
5572 proto_tree_add_item(tlv_tree, hf_wassp_tlv_value_octext, tvb, offset + TLV_VALUE, length - 4, ENC_NA);
5573 decode_mu_appl_stats_block(tlv_tree, tvb, offset + 4 );
5574 offset += length;
5575 break;
5577 case EID_SCAN_RSS_RSSI: // 236
5578 proto_tree_add_item(tlv_tree, hf_wassp_tlv_value_int, tvb, offset + TLV_VALUE, length - 4, ENC_NA);
5579 suboffset = offset + 4;
5580 proto_tree_add_item(tlv_tree, hf_wassp_rss, tvb, suboffset, 2, ENC_BIG_ENDIAN);
5581 suboffset += 2;
5582 proto_tree_add_item(tlv_tree, hf_wassp_rssi, tvb, suboffset, 2, ENC_BIG_ENDIAN);
5583 offset += length;
5584 break;
5586 default:
5587 /* If tlv isn't in the list, then just display the raw data*/
5588 proto_tree_add_item(tlv_tree, hf_wassp_tlv_value_octext, tvb, offset + TLV_VALUE, length - 4, ENC_NA);
5589 call_dissector(data_handle, tvb_new_subset_length(tvb, offset + TLV_VALUE, length - 4), pinfo, wassp_tree);
5590 offset += length;
5593 if (tlv_type == EID_UNUSED_0)
5595 proto_tree_add_item(wassp_tree, hf_wassp_tlv_invalid, tvb, offset, value, ENC_BIG_ENDIAN);
5596 offset += length;
5599 return offset;
5604 static void
5605 mu_association_status(char *buf, uint8_t value)
5607 if (value == 1)
5608 snprintf(buf, ITEM_LABEL_LENGTH, " Success (%d)", value);
5609 else if (value == 2)
5610 snprintf(buf, ITEM_LABEL_LENGTH, " Reject (%d)", value);
5611 else
5612 snprintf(buf, ITEM_LABEL_LENGTH, " Failure (%d)", value);
5617 static int dissect_mu_netflow(proto_tree *tree, tvbuff_t *tvb, int offset)
5619 proto_item *ti, *temp;
5620 proto_tree *wassp_mu_netflow_tree, *mu_netflow_header_tree;
5621 uint16_t netflowLen, totalRecord, i;
5623 ti = proto_tree_add_item(tree, hf_wassp_mu_netflow_tree, tvb, offset, -1, ENC_NA);
5624 wassp_mu_netflow_tree = proto_item_add_subtree(ti, ett_wassp_mu_data_netflow);
5626 temp = proto_tree_add_item(wassp_mu_netflow_tree, hf_wassp_mu_netflow_header, tvb, MU_NETFLOW_HDR_VERSION, MU_NETFLOW_HEADER_TOTAL_LENGTH, ENC_NA);
5627 mu_netflow_header_tree = proto_item_add_subtree(temp, ett_wassp_mu_data_netflow_header);
5628 proto_tree_add_item(mu_netflow_header_tree, hf_wassp_mu_netflow_version, tvb, MU_NETFLOW_HDR_VERSION, 2, ENC_BIG_ENDIAN);
5629 proto_tree_add_item(mu_netflow_header_tree, hf_wassp_mu_netflow_length, tvb, MU_NETFLOW_HDR_LENGTH, 2, ENC_BIG_ENDIAN);
5630 proto_tree_add_item(mu_netflow_header_tree, hf_wassp_mu_netflow_flags, tvb, MU_NETFLOW_HDR_FLAG, 2, ENC_BIG_ENDIAN);
5631 proto_tree_add_item(mu_netflow_header_tree, hf_wassp_mu_netflow_uptime, tvb, MU_NETFLOW_HDR_UPTIME, 4, ENC_NA);
5632 offset += MU_NETFLOW_HEADER_TOTAL_LENGTH;
5634 netflowLen = tvb_get_ntohs(tvb, MU_NETFLOW_HDR_LENGTH);
5635 totalRecord = (netflowLen - MU_NETFLOW_HEADER_TOTAL_LENGTH) / MU_NETFLOW_RECORD_SIZE; //netflow record size is 46 bytes
5636 if (totalRecord > 0)
5638 for (i = 1; i <= totalRecord; i++)
5640 //proto_tree_add_debug_text(wassp_mu_netflow_tree, " WASSP MU Netflow Record %d ", i);
5641 proto_tree_add_item(wassp_mu_netflow_tree, hf_wassp_mu_netflow_record, tvb, offset, MU_NETFLOW_RECORD_SIZE, ENC_NA);
5642 proto_tree_add_item(wassp_mu_netflow_tree, hf_wassp_mu_netflow_in_bytes, tvb, offset, 4, ENC_BIG_ENDIAN);
5643 offset += 4;
5644 proto_tree_add_item(wassp_mu_netflow_tree, hf_wassp_mu_netflow_in_packets, tvb, offset, 4, ENC_BIG_ENDIAN);
5645 offset += 4;
5646 proto_tree_add_item(wassp_mu_netflow_tree, hf_wassp_mu_netflow_ip_protocol_number, tvb, offset, 1, ENC_BIG_ENDIAN);
5647 offset += 1;
5648 proto_tree_add_item(wassp_mu_netflow_tree, hf_wassp_mu_netflow_source_tos, tvb, offset, 1, ENC_BIG_ENDIAN);
5649 offset += 1;
5650 proto_tree_add_item(wassp_mu_netflow_tree, hf_wassp_mu_netflow_source_port, tvb, offset, 2, ENC_BIG_ENDIAN);
5651 offset += 2;
5652 proto_tree_add_item(wassp_mu_netflow_tree, hf_wassp_mu_netflow_source_ip, tvb, offset, 4, ENC_BIG_ENDIAN);
5653 offset += 4;
5654 proto_tree_add_item(wassp_mu_netflow_tree, hf_wassp_mu_netflow_input_snmp, tvb, offset, 2, ENC_BIG_ENDIAN);
5655 offset += 2;
5656 proto_tree_add_item(wassp_mu_netflow_tree, hf_wassp_mu_netflow_dest_port, tvb, offset, 2, ENC_BIG_ENDIAN);
5657 offset += 2;
5658 proto_tree_add_item(wassp_mu_netflow_tree, hf_wassp_mu_netflow_dest_ip, tvb, offset, 4, ENC_BIG_ENDIAN);
5659 offset += 4;
5660 proto_tree_add_item(wassp_mu_netflow_tree, hf_wassp_mu_netflow_output_snmp, tvb, offset, 2, ENC_BIG_ENDIAN);
5661 offset += 2;
5662 proto_tree_add_item(wassp_mu_netflow_tree, hf_wassp_mu_netflow_last_time, tvb, offset, 4, ENC_BIG_ENDIAN);
5663 offset += 4;
5664 proto_tree_add_item(wassp_mu_netflow_tree, hf_wassp_mu_netflow_first_time, tvb, offset, 4, ENC_BIG_ENDIAN);
5665 offset += 4;
5666 proto_tree_add_item(wassp_mu_netflow_tree, hf_wassp_mu_netflow_in_source_mac, tvb, offset, 6, ENC_NA);
5667 offset += 6;
5668 proto_tree_add_item(wassp_mu_netflow_tree, hf_wassp_mu_netflow_in_dest_mac, tvb, offset, 6, ENC_NA);
5669 offset += 6;
5672 else
5674 //proto_tree_add_debug_text(wassp_mu_netflow_tree, "WASSP MU Netflow Records are incomplete ");
5675 offset += netflowLen;
5678 return offset;
5684 /* Dissect Wassp MU message: return offset in current tvb */
5685 static int dissect_wassp_mu(proto_tree *wassp_tree, tvbuff_t *tvb, packet_info *pinfo, int offset, int plength)
5687 proto_item *ti, *temp;
5688 proto_tree *wassp_mu_tree, *mu_data_header_tree, *mu_action_field_tree;
5689 wassp_mu_msg_t mu_msg_type;
5690 char *label;
5691 uint16_t length = WASSP_MU_HDR_WITHOUT_ASSO_STATUS_LEN;
5693 if (tvb_reported_length_remaining(tvb, offset) > 0)
5695 mu_msg_type = (wassp_mu_msg_t)tvb_get_uint8(tvb, offset + WASSP_MU_HDR_TYPE);
5696 ti = proto_tree_add_item(wassp_tree, hf_wassp_mu_data_tree, tvb, offset, -1, ENC_NA);
5697 wassp_mu_tree = proto_item_add_subtree(ti, ett_wassp_data);
5698 label = (char*)try_val_to_str(mu_msg_type, wassp_mu_header_types);
5699 label = (label == NULL) ? "Unknown Type" : label;
5700 proto_item_append_text(ti, ", %s", label);
5702 if ( mu_msg_type == WASSP_MU_Associate_Rsp )
5703 length = WASSP_MU_HDR_WITH_ASSO_STATUS_LEN;
5705 /* Dissect the WASSP MU header */
5706 temp = proto_tree_add_item(wassp_mu_tree, hf_wassp_mu_data_header, tvb, WASSP_MU_HDR_TYPE, length, ENC_NA);
5707 mu_data_header_tree = proto_item_add_subtree(temp, ett_mu_data_header);
5708 proto_tree_add_item(mu_data_header_tree, hf_wassp_mu_type, tvb, offset + WASSP_MU_HDR_TYPE, 1, ENC_BIG_ENDIAN);
5709 proto_tree_add_item(mu_data_header_tree, hf_wassp_mu_qos, tvb, offset + WASSP_MU_HDR_QOS, 1, ENC_BIG_ENDIAN);
5710 temp = proto_tree_add_item(mu_data_header_tree, hf_wassp_mu_action_ssid, tvb, offset + WASSP_MU_HDR_ACTION_SSID, 2, ENC_BIG_ENDIAN);
5711 mu_action_field_tree = proto_item_add_subtree(temp, ett_mu_action_field);
5712 proto_tree_add_item(mu_action_field_tree, hf_wassp_mu_action, tvb, offset + WASSP_MU_HDR_ACTION_SSID, 2, ENC_BIG_ENDIAN);
5713 proto_tree_add_item(mu_action_field_tree, hf_wassp_mu_action_field_value, tvb, offset + WASSP_MU_HDR_ACTION_SSID, 2, ENC_BIG_ENDIAN);
5714 proto_tree_add_item(mu_data_header_tree, hf_wassp_mu_mac, tvb, offset + WASSP_MU_HDR_MAC, 6, ENC_NA);
5715 proto_tree_add_item(mu_data_header_tree, hf_wassp_mu_resv0, tvb, offset + WASSP_MU_HDR_RESV_0, 2, ENC_BIG_ENDIAN);
5716 proto_tree_add_item(mu_data_header_tree, hf_wassp_mu_resv1, tvb, offset + WASSP_MU_HDR_RESV_1, 2, ENC_BIG_ENDIAN);
5717 if ( mu_msg_type == WASSP_MU_Associate_Rsp )
5718 proto_tree_add_item(mu_data_header_tree, hf_wassp_mu_assoc_status, tvb, offset + WASSP_MU_HDR_RESV_1 + 2, 1, ENC_BIG_ENDIAN);
5720 offset += length;
5721 /* WASSP MU payload length */
5722 plength -= length;
5724 /* Dissect the WASSP MU payload */
5725 switch (mu_msg_type)
5727 case WASSP_MU_NETFLOW:
5728 offset = dissect_mu_netflow(wassp_mu_tree, tvb, offset);
5729 break;
5730 case WASSP_MU_Associate_Req:
5731 case WASSP_MU_Update_Req:
5732 case WASSP_MU_Update_Rsp:
5733 case WASSP_AP2AC_MU_Inform_Req:
5734 case WASSP_AP2AC_MU_Inform_Rsp:
5735 case WASSP_MU_BULK_Associate_Req:
5736 case WASSP_MU_BULK_Associate_Rsp:
5737 case WASSP_MU_Disconnect_Req:
5738 case WASSP_MU_Disconnect_Rsp:
5739 case WASSP_MU_Associate_Rsp:
5740 offset = dissect_wassp_tlv(wassp_mu_tree, tvb, pinfo, offset, WASSP_RU_UNUSED_0);
5741 break;
5742 case WASSP_MU_MIRRORN:
5743 case WASSP_MU_Data:
5744 case WASSP_MU_Eap_Last:
5745 /* Dissect the WASSP MU ethernet frame */
5746 call_dissector(eth_handle, tvb_new_subset_length(tvb, offset, plength), pinfo, wassp_mu_tree);
5747 offset += plength;
5748 break;
5749 case WASSP_MU_Roam_Notify:
5750 case WASSP_MU_Disconnect_Notify:
5751 offset += plength;
5752 break;
5753 default:
5754 /* Dissect the WASSP MU payload as data by default */
5755 call_dissector(data_handle, tvb_new_subset_length(tvb, offset, plength), pinfo, wassp_mu_tree);
5756 offset += plength;
5757 break;
5760 return offset;
5766 static void dissect_unfragmented_wassp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, uint16_t plength2, wassp_ru_msg_t ru_msg_type, int offset2)
5768 proto_tree *wassp_tree;
5769 int offset = offset2;
5770 uint16_t plength = plength2;
5771 uint16_t lsbHeaderMagic = 0;
5773 if (tree)
5775 wassp_tree = tree;
5776 plength -= WASSP_HDR_LEN;
5778 switch (ru_msg_type)
5780 case WASSP_RU_Discov: // 1
5781 case WASSP_RU_Register_Req: // 2
5782 case WASSP_RU_Register_Rsp: // 3
5783 case WASSP_RU_Authentication_Req: // 4
5784 case WASSP_RU_Authentication_Rsp: // 5
5785 case WASSP_RU_SW_Version_Validate_Req: // 6
5786 case WASSP_RU_SW_Version_Validate_Rsp: // 7
5787 case WASSP_RU_Config_Req: // 8
5788 case WASSP_RU_Config_Rsp: // 9
5789 case WASSP_RU_Ack: // 10
5790 case WASSP_RU_Config_Status_Notify: // 11
5791 case WASSP_RU_Set_State_Req: // 12
5792 case WASSP_RU_Set_State_Rsp: // 13
5793 case WASSP_RU_Poll: // 16
5794 case WASSP_RU_SNMP_Req: // 17
5795 case WASSP_RU_SNMP_Rsp: // 18
5796 case WASSP_BP_Trap_Notify: // 19
5797 case WASSP_BP_Scan_Req: // 20
5798 case WASSP_RFM_Notify: // 21
5799 case WASSP_RU_SNMP_Alarm_Notify: // 22
5800 case WASSP_RU_SNMP_Set_Alarm_Clear: // 23
5801 case WASSP_RU_SNMP_Set_Log_Status: // 24
5802 case WASSP_RU_SNMP_Get_Log_Req: // 25
5803 case WASSP_RU_SNMP_Get_Log_Resp: // 26
5804 case WASSP_SEC_Update_Notify: // 27
5805 case WASSP_RU_STATS_Req: // 28
5806 case WASSP_RU_STATS_Rsp: // 29
5807 case WASSP_RU_UNUSED_30: // 30
5808 case WASSP_RU_UNUSED_31: // 31
5809 case WASSP_RU_Get_Req: // 32
5810 case WASSP_RU_Get_Rsp: // 33
5811 case WASSP_RU_Alarm_Notify: // 34
5812 case WASSP_RU_Set_Alarm_Clear: // 35
5813 case WASSP_RU_Get_Log_Req: // 36
5814 case WASSP_RU_Get_Log_Rsp: // 37
5815 case WASSP_RU_UNUSED_38: // 38
5816 case WASSP_RU_UNUSED_39: // 39
5817 case WASSP_P_PEER_DOWN_NOTIFY: // 40
5818 case WASSP_P_LINK_STATE_CHANGE_REQ: // 41
5819 case WASSP_P_LINK_STATE_CHANGE_RSP: // 42
5820 case WASSP_RU_GetIP_Req: // 44
5821 case WASSP_RU_GetIP_Rsp: // 45
5822 case WASSP_RU_LAMG_Update_Req: // 46
5823 case WASSP_RU_LAMG_Update_Rsp: // 47
5824 case WASSP_RU_Event_Req: // 48
5825 case WASSP_RU_Event_Rsp: // 49
5826 case WASSP_RU_BULK_MU_UPDATE_REQ: // 50
5827 case WASSP_RU_BULK_MU_UPDATE_RSP: // 51
5828 case WASSP_ROAMED_MU_FILTER_STATS_REQ: // 52
5829 case WASSP_ROAMED_MU_FILTER_STATS_RESP: // 53
5830 case WASSP_RU_AC_Event_Req: // 56
5831 case WASSP_RU_AC_Event_Rsp: // 57
5832 case WASSP_RU_Event_Notify: // 58
5833 case WASSP_RU_AC_EVENT: // 59
5834 case WASSP_WIDS_WIPS_Config_Req: // 60
5835 case WASSP_WIDS_WIPS_Config_Rsp: // 61
5836 case WASSP_Scan_Data_Notify: // 62
5837 case WASSP_Scan_Data_Notify_Ack: // 63
5838 case WASSP_Loc_Data_Notify: // 64
5839 case WASSP_Loc_Data_Notify_Ack: // 65
5840 case WASSP_RU_SW_Version_Validate_Ack: // 66
5841 case WASSP_NEIGHBOUR_STATS_Rsp: // 67
5842 case WASSP_APPL_STATS_RESP: // 68
5843 case WASSP_AC_Register_Req: // 101
5844 case WASSP_AC_Register_Rsp: // 102
5845 case WASSP_AC_Deregister_Req: // 103
5846 case WASSP_AC_Deregister_Rsp: // 104
5847 goto tlv_dissect;
5848 case WASSP_RU_Stats_Notify: // 14
5849 /* Dissect SNMP encoded RU statistics */
5850 dissector_try_uint(wassp_dissector_table, WASSP_SNMP, tvb_new_subset_length(tvb, offset, plength), pinfo, wassp_tree);
5851 offset += plength;
5852 goto data_dissect;
5853 case WASSP_LBS_TAG_REPORT: // 55
5854 lsbHeaderMagic = tvb_get_ntohs(tvb, 36);
5855 call_dissector(ip_handle, tvb_new_subset_length(tvb, offset, plength), pinfo, wassp_tree);
5856 if (lsbHeaderMagic == LBS_HDR_MAGIC)
5857 offset = decode_lbs_tag_header(wassp_tree, tvb, offset + 28);
5858 else
5860 return;
5862 goto data_dissect;
5863 case WASSP_Data: // 15
5864 offset = dissect_wassp_mu(wassp_tree, tvb, pinfo, offset, plength);
5865 goto data_dissect;
5866 default:
5867 offset += plength;
5868 goto data_dissect;
5870 tlv_dissect:
5871 /* Dissect all RU messages containing TLVs */
5872 offset = dissect_wassp_tlv(wassp_tree, tvb, pinfo, offset, ru_msg_type);
5873 data_dissect:
5874 /* Call data dissector on any remaining bytes */
5875 call_dissector(data_handle, tvb_new_subset_length(tvb, offset, -1), pinfo, wassp_tree);
5882 static int dissect_wassp(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree )
5885 proto_item *ti, *temp;
5886 proto_tree *wassp_tree;
5887 proto_tree *wassp_header_tree, *ru_discover_header_tree, *wassp_seq_flag_tree;
5888 wassp_ru_msg_t ru_msg_type;
5889 int offset = 0;
5890 uint16_t flag = 0, seq_number = 0;
5891 uint32_t fragment = false, complete = true;
5892 uint32_t remain_len = 0, length;
5893 fragment_head *wassp_frag_msg = NULL;
5894 bool save_fragmented;
5895 tvbuff_t *next_tvb = NULL, *combined_tvb = NULL;
5896 const char *label;
5897 conversation_t *conv = NULL;
5898 uint32_t reassembly_id;
5900 /**********************************************************************************************************************************************************
5901 UDP Port = 13910 --> Wassp Protocol
5902 UDP port = 13907 --> Access Point Discover
5904 Wassp header format:
5905 Byte 1 Byte 2 Byte 3 and Byte 4 Byte 5 and Byte 6 Byte 7 and Byte 8
5906 | Version | Type | Seq. Number & Flag | Session ID | Length of Payload |
5908 RU discover header format:
5909 Byte 1 Byte 2 Byte 3 and Byte 4 Byte 5 and Byte 6 Byte 7 and Byte 8 Byte 7 and Byte 8 Byte 9 to Byte 12 if mac, else Byte 9 to Byte 10 for operation
5910 | Version | Type | Random Number | Length of Payload | Check Sum | Controller Operation | Mac or Operation
5912 ************************************************************************************************************************************************************/
5914 col_set_str(pinfo->cinfo, COL_PROTOCOL, PROTO_SHORT_NAME);
5915 remain_len = tvb_reported_length_remaining(tvb, WASSP_HDR_VERSION);
5916 next_tvb = tvb;
5917 ru_msg_type = (wassp_ru_msg_t)tvb_get_uint8(tvb, WASSP_HDR_TYPE);
5919 if ( ru_msg_type == WASSP_Data ) // wassp mu header
5921 label = val_to_str_const(tvb_get_uint8(tvb, WASSP_HDR_LEN + WASSP_MU_HDR_TYPE), wassp_mu_header_types, "Unknown WASSP MU Message Type");
5922 col_add_str(pinfo->cinfo, COL_INFO, label);
5924 else if (ru_msg_type == WASSP_RU_Discov) /* ap discover header*/
5926 if (tvb_get_ntohs(tvb, RU_HDR_AC_OP) == RU_DISCOVER_OP_MODE)
5927 col_set_str(pinfo->cinfo, COL_INFO, "RU Discover Request");
5928 else
5929 col_set_str(pinfo->cinfo, COL_INFO, "RU Discover Response");
5931 else
5933 col_set_str(pinfo->cinfo, COL_INFO, val_to_str_const(tvb_get_uint8(tvb, WASSP_HDR_TYPE), wassp_header_types, "Unknown WASSP Message Type"));
5936 save_fragmented = pinfo->fragmented;
5938 ti = proto_tree_add_item(tree, proto_wassp, tvb, offset, -1, ENC_NA);
5939 wassp_tree = proto_item_add_subtree(ti, ett_wassp);
5941 if (ru_msg_type == WASSP_RU_Discov) /* UDP port = 13907, ap discover tlv, decode AP discover header */
5943 flag = tvb_get_ntohs(tvb, RU_HDR_AC_OP);
5944 if ( flag == RU_HDR_CONTAIN_MAC) // ru mac or ac-mode
5945 length = RU_HEADER_WITH_MAC_LEN;
5946 else
5947 length = RU_HEADER_WITHOUT_MAC_LEN;
5949 temp = proto_tree_add_item(wassp_tree, hf_ru_discover_header, tvb, RU_HDR_VERSION, length, ENC_NA);
5950 ru_discover_header_tree = proto_item_add_subtree(temp, ett_ru_discover_header);
5951 proto_tree_add_item(ru_discover_header_tree, hf_wassp_version, tvb, RU_HDR_VERSION, 1, ENC_BIG_ENDIAN);
5952 proto_item_append_text(ti, ", %s", (char*)try_val_to_str(ru_msg_type, wassp_header_types)); //Update WASSP protocol with message type
5953 proto_tree_add_item(ru_discover_header_tree, hf_wassp_type, tvb, RU_HDR_TYPE, 1, ENC_BIG_ENDIAN);
5954 proto_tree_add_item(ru_discover_header_tree, hf_ru_rad_num, tvb, RU_HDR_RAD_NUM, 2, ENC_BIG_ENDIAN);
5955 proto_tree_add_item(ru_discover_header_tree, hf_wassp_length, tvb, RU_HDR_LENGTH, 2, ENC_BIG_ENDIAN);
5956 proto_tree_add_item(ru_discover_header_tree, hf_ru_checksum, tvb, RU_HDR_CHECKSUM, 2, ENC_BIG_ENDIAN);
5957 proto_tree_add_item(ru_discover_header_tree, hf_ru_ac_op, tvb, RU_HDR_AC_OP, 2, ENC_BIG_ENDIAN);
5958 if ( flag == RU_HDR_CONTAIN_MAC) // ru mac or ac-mode
5959 proto_tree_add_item(ru_discover_header_tree, hf_ru_mac, tvb, RU_HDR_MAC, 6, ENC_NA);
5960 else
5961 proto_tree_add_item(ru_discover_header_tree, hf_ru_ac_mode, tvb, RU_HDR_AC_MODE, 2, ENC_BIG_ENDIAN);
5962 offset = length;
5964 else /* UDP port = 13910, decode Wassp protocol header */
5966 temp = proto_tree_add_item(wassp_tree, hf_wassp_header, tvb, WASSP_HDR_VERSION, WASSP_HDR_LEN, ENC_NA);
5967 wassp_header_tree = proto_item_add_subtree(temp, ett_wassp_header);
5968 flag = tvb_get_ntohs(tvb, WASSP_HDR_SEQ_NUM);
5969 /* seq_number used 10 bits only */
5970 seq_number = flag >> 6;
5971 proto_tree_add_item(wassp_header_tree, hf_wassp_version, tvb, WASSP_HDR_VERSION, 1, ENC_NA);
5972 proto_item_append_text(ti, ", %s", (char*)try_val_to_str(ru_msg_type, wassp_header_types)); //Update WASSP protocol with message type
5973 proto_tree_add_item(wassp_header_tree, hf_wassp_type, tvb, WASSP_HDR_TYPE, 1, ENC_BIG_ENDIAN);
5974 temp = proto_tree_add_item(wassp_header_tree, hf_wassp_seq_num_flag, tvb, WASSP_HDR_SEQ_NUM, 2, ENC_BIG_ENDIAN);
5975 wassp_seq_flag_tree = proto_item_add_subtree(temp, ett_seq_flags);
5976 proto_tree_add_item(wassp_seq_flag_tree, hf_seq_num, tvb, WASSP_HDR_SEQ_NUM, 2, ENC_BIG_ENDIAN);
5977 proto_tree_add_item(wassp_seq_flag_tree, hf_wassp_use_frag, tvb, WASSP_HDR_SEQ_NUM, 2, ENC_BIG_ENDIAN);
5978 proto_tree_add_item(wassp_seq_flag_tree, hf_wassp_data_frag, tvb, WASSP_HDR_SEQ_NUM, 2, ENC_BIG_ENDIAN);
5979 proto_tree_add_item(wassp_seq_flag_tree, hf_wassp_more_frag, tvb, WASSP_HDR_SEQ_NUM, 2, ENC_BIG_ENDIAN);
5980 proto_tree_add_item(wassp_seq_flag_tree, hf_wassp_first_frag, tvb, WASSP_HDR_SEQ_NUM, 2, ENC_BIG_ENDIAN);
5981 proto_tree_add_item(wassp_header_tree, hf_wassp_sessionid, tvb, WASSP_HDR_SESSIONID, 2, ENC_BIG_ENDIAN);/* display session id */
5982 proto_tree_add_item(wassp_header_tree, hf_wassp_length, tvb, WASSP_HDR_PLENGTH, 2, ENC_BIG_ENDIAN);
5984 if ( flag & RU_WASSP_FLAGS_USE_FRAGMENTATION)
5986 fragment = true;
5987 complete = false;
5989 offset = WASSP_HDR_LEN;
5993 if (fragment) /* fragmented */
5995 pinfo->fragmented = true;
5996 offset = WASSP_HDR_LEN;
5997 conv = find_conversation_pinfo(pinfo, 0);
5998 DISSECTOR_ASSERT(conv);
5999 reassembly_id = (((conv->conv_index) & 0x00FFFFFF) << 8) + ru_msg_type;
6000 wassp_frag_msg = fragment_add_seq_next(&wassp_reassembled_table, tvb, offset, pinfo, reassembly_id, NULL, remain_len - WASSP_HDR_LEN, flag & RU_WASSP_FLAGS_MORE_FRAGMENTS_FOLLOWING);
6001 if ( wassp_frag_msg )
6002 combined_tvb = process_reassembled_data(tvb, offset, pinfo, "Reassembled Wassp", wassp_frag_msg, &wassp_frag_items, NULL, wassp_tree);
6004 if ( combined_tvb)
6006 col_append_str(pinfo->cinfo, COL_INFO, " (Message Reassembled)");
6007 next_tvb = combined_tvb;
6008 complete = true;
6009 offset = 0;
6011 else
6013 col_append_fstr(pinfo->cinfo, COL_INFO, " (Message fragment %u)", seq_number);
6014 next_tvb = tvb_new_subset_length(tvb, WASSP_HDR_LEN, -1);
6019 if (complete)
6020 dissect_unfragmented_wassp(next_tvb, pinfo, wassp_tree, remain_len, ru_msg_type, offset);
6022 pinfo->fragmented = save_fragmented;
6023 return 1;
6030 /* Register WASSP protocol */
6031 void proto_register_wassp(void)
6033 static hf_register_info hf[] =
6036 &hf_aeroscout_header,
6038 "Location Base Service Header", "wassp.aeroscout.header", FT_BYTES, BASE_NONE, NULL,
6039 0x0, "Aeroscout header", HFILL
6043 &hf_aeroscout_header_magic_number,
6045 "Header Magic Number", "wassp.aeroscout.header_magic", FT_UINT16, BASE_HEX, NULL,
6046 0x0, "Aeroscout header magic number", HFILL
6050 &hf_aeroscout_request_id,
6052 "Request ID", "wassp.aeroscout.request_id", FT_UINT16, BASE_DEC, NULL,
6053 0x0, "Aeroscout Request ID", HFILL
6057 &hf_aeroscout_code,
6059 "Operation Code", "wassp.aeroscout.code", FT_UINT8, BASE_DEC, NULL,
6060 0x0, "Aeroscout Operation Code", HFILL
6065 &hf_aeroscout_sub_code,
6067 "Operation Sub Code", "wassp.aeroscout.sub_code", FT_UINT8, BASE_DEC, NULL,
6068 0x0, "Aeroscout Operation Sub Code", HFILL
6072 &hf_aeroscout_datalength,
6074 "Length of Data Payload", "wassp.aeroscout.datalength", FT_UINT16, BASE_DEC, NULL,
6075 0x0, "Aeroscout Length of Data Payload", HFILL
6079 &hf_lbs_vendor_id,
6081 "Location Base Service Vendor ID", "wassp.lbs.vendor_id", FT_UINT16, BASE_DEC, NULL,
6082 0x0, "LBS TAG Vendor ID", HFILL
6086 &hf_lbs_rsvd1,
6088 "LBS Rsvd", "wassp.lbs.rsvd1", FT_UINT16, BASE_HEX, NULL,
6089 0x0, "LBS TAG rsvd", HFILL
6093 &hf_lbs_ap_bssid,
6095 "Location Base Service AccessPoint BSSID", "wassp.lbs.ap_bssid", FT_BYTES, BASE_NONE, NULL,
6096 0x0, "LBS TAG ap bssid", HFILL
6100 &hf_lbs_rsvd2,
6102 "LBS Rsvd", "wassp.lbs.rsvd2", FT_UINT8, BASE_HEX, NULL,
6103 0x0, "LBS TAG rsvd2", HFILL
6107 &hf_lbs_rxchan,
6109 "LBS rxchan", "wassp.lbs.rxchan", FT_UINT8, BASE_DEC, NULL,
6110 0x0, "LBS TAG rxchan", HFILL
6115 &hf_lsb_tstamp,
6117 "Location Base Service Time Stamp", "wassp.lbs.tstamp", FT_UINT32, BASE_DEC, NULL,
6118 0x0, "LBS TAG tstamp", HFILL
6122 &hf_lsb_rsvd3,
6124 "LBS Rsvd", "wassp.lbs.rsvd3", FT_UINT16, BASE_HEX, NULL,
6125 0x0, "LBS TAG rsvd3", HFILL
6129 &hf_lsb_rssi,
6131 "Location Base Service RSSI", "wassp.lbs.rssi", FT_INT8, BASE_DEC, NULL,
6132 0x0, "LBS TAG rssi", HFILL
6136 &hf_lsb_rsvd,
6138 "LBS Rsvd", "wassp.lbs.rsvd", FT_UINT8, BASE_HEX, NULL,
6139 0x0, "LBS TAG rsvd4", HFILL
6143 &hf_lsb_noise_floor,
6145 "LBS Noise Floor", "wassp.lsb.noise_floor", FT_INT8, BASE_DEC, NULL,
6146 0x0, "LBS TAG noise floor", HFILL
6150 &hf_lsb_rsvd4,
6152 "LBS Rsvd", "wassp.lsb.rsvd4", FT_UINT24, BASE_HEX, NULL,
6153 0x0, "LBS TAG rsvd5", HFILL
6157 &hf_lsb_chan_rate,
6159 "LBS channel Rate", "wassp.lsb.chan_rate", FT_UINT8, BASE_DEC, NULL,
6160 0x0, "LBS TAG channel rate", HFILL
6164 &hf_lsb_rsvd5,
6166 "LBS Rsvd", "wassp.lsb.rsvd5", FT_UINT8, BASE_HEX, NULL,
6167 0x0, "LBS TAG rsvd6", HFILL
6171 &hf_lsb_wh_fc,
6173 "LBS Wireless Header Frame Control", "wassp.lsb.wh_fc", FT_UINT16, BASE_HEX, NULL,
6174 0x0, "LBS TAG Frame Control", HFILL
6178 &hf_lsb_wh_seq,
6180 "LBS Wireless Header Sequence Number", "wassp.hf_lsb_wh_seq", FT_UINT16, BASE_HEX, NULL,
6181 0x0, "LBS TAG Sequence Number", HFILL
6185 &hf_lsb_rsvd6,
6187 "LBS Rsvd", "wassp.lsb.rsvd6", FT_UINT16, BASE_HEX, NULL,
6188 0x0, "LBS TAG rsvd7", HFILL
6192 &hf_lsb_wh_addr2,
6194 "MAC address2", "wassp.data.mu_mac", FT_ETHER, BASE_NONE, NULL,
6195 0x0, "Mobile Unit Ethernet address", HFILL
6199 &hf_lsb_wh_addr3,
6201 "MAC address3", "wassp.data.mu_mac", FT_ETHER, BASE_NONE, NULL,
6202 0x0, "Mobile Unit Ethernet address", HFILL
6206 &hf_lsb_wh_addr4,
6208 "MAC address4", "wassp.data.mu_mac", FT_ETHER, BASE_NONE, NULL,
6209 0x0, "Mobile Unit Ethernet address", HFILL
6213 &hf_wassp_version,
6215 "Version", "wassp.version", FT_UINT8, BASE_DEC, NULL,
6216 0x0, "Wassp Protocol Version", HFILL
6219 /* ru discover header */
6221 &hf_ru_rad_num,
6223 "RU Random Number", "wassp.ru_xid", FT_UINT16, BASE_DEC, NULL,
6224 0x0, "random number for checking the session", HFILL
6228 &hf_ru_checksum,
6230 "RU Messages Checksum", "wassp.ru_checksum", FT_UINT16, BASE_DEC, NULL,
6231 0x0, "AccessPoint messages checksum", HFILL
6235 &hf_ru_ac_op,
6237 "Controller Operation", "wassp.ru_ac_op", FT_UINT16, BASE_DEC, NULL,
6238 0x0, NULL, HFILL
6242 &hf_ru_ac_mode,
6244 "Controller Operation Mode", "wassp.ru_ac_mode", FT_UINT16, BASE_DEC, NULL,
6245 0x0, NULL, HFILL
6249 &hf_ru_mac,
6251 "AP MAC address", "wassp.ru_mac", FT_ETHER, BASE_NONE, NULL,
6252 0x0, "AP Ethernet address", HFILL
6256 &hf_ru_discover_header,
6258 "RU Discover Header", "wassp.ru.header", FT_BYTES, BASE_NONE, NULL ,
6259 0x0, "AccessPoint Discover Header", HFILL
6263 &hf_wassp_header,
6265 "Wassp Header", "wassp.header", FT_BYTES, BASE_NONE, NULL ,
6266 0x0, "Wassp Message Header", HFILL
6270 &hf_wassp_type,
6272 "WASSP Type", "wassp.type", FT_UINT8, BASE_DEC,
6273 VALS(wassp_header_types), 0x0, "Wassp message type", HFILL
6277 &hf_wassp_seq_num_flag,
6279 "Sequence Number & Flag", "wassp.seq_num_flag", FT_UINT16, BASE_DEC, NULL,
6280 0x0, "Sequence number and flag for multi-message", HFILL
6284 &hf_seq_num,
6286 "Sequence Number", "wassp.seq_num", FT_UINT16, BASE_DEC, NULL,
6287 0xffc0, "Sequence number for multi-message", HFILL
6291 &hf_wassp_use_frag,
6293 "Wassp Use Fragmentation", "wassp.use_frag", FT_BOOLEAN, 6, NULL,
6294 0x8, "Wassp Packet Use Fragmentation", HFILL
6298 &hf_wassp_data_frag,
6300 "Wassp Data Fragmentation", "wassp.data_frag", FT_BOOLEAN, 6, NULL,
6301 0x2, NULL, HFILL
6305 &hf_wassp_more_frag,
6307 "Fragments following", "wassp.following_frag", FT_BOOLEAN, 6, NULL,
6308 0x1, "Wassp Fragments following", HFILL
6312 &hf_wassp_first_frag,
6314 "Not First fragment packet", "wassp.no_first_frag", FT_BOOLEAN, 6, NULL,
6315 0x4, "Wassp Not First Fragment Packet", HFILL
6319 &hf_wassp_sessionid,
6321 "Session ID", "wassp.session_id", FT_UINT16, BASE_DEC, NULL,
6322 0x0, "Concentrator Session ID", HFILL
6326 &hf_wassp_length,
6328 "Length", "wassp.length", FT_UINT16, BASE_DEC, NULL,
6329 0x0, "Length of Payload", HFILL
6332 /* wassp MU data --- start */
6334 &hf_wassp_mu_data_tree,
6336 "WASSP MU Data tree", "wassp.mu.data.subtree",
6337 FT_NONE, BASE_NONE, NULL, 0x00,
6338 NULL, HFILL
6342 &hf_wassp_mu_data_header,
6344 "Wassp MU Data Header", "wassp.mu_data_header", FT_BYTES, BASE_NONE, NULL,
6345 0x0, NULL, HFILL
6349 &hf_wassp_mu_type,
6351 "Type", "wassp.data.mu_type", FT_UINT8, BASE_DEC, NULL,
6352 0x0, "Wassp MU message type", HFILL
6356 &hf_wassp_mu_qos,
6358 "QOS", "wassp.data.mu_qos", FT_UINT8, BASE_DEC, NULL,
6359 0x0, "Quality of Service identifier", HFILL
6363 &hf_wassp_mu_action_ssid,
6365 "Action & SSID/Vlan ID", "wassp.data.mu_action_ssid", FT_UINT16, BASE_DEC, NULL,
6366 0x0, "Action and where device is currently registered", HFILL
6370 &hf_wassp_mu_action,
6372 "Action", "wassp.data.mu_action", FT_UINT16, BASE_HEX, VALS(mu_action_field_strings),
6373 0xf000, "Notify what kind of action", HFILL
6378 &hf_wassp_mu_action_field_value,
6380 "SSID/Vlan ID", "wassp.data.mu_action_field_value", FT_UINT16, BASE_DEC, NULL,
6381 0x0fff, "SSID value or VlanID value", HFILL
6385 &hf_wassp_mu_resv0,
6387 "Reserved0", "wassp.data.mu_resv0", FT_UINT16, BASE_HEX, VALS(mu_resv0_strings),
6388 0x0, "MU data Reserved0 or Flag", HFILL
6392 &hf_wassp_mu_resv1,
6394 "Reserved1", "wassp.data.mu_resv1", FT_UINT16, BASE_DEC, NULL,
6395 0x0, "MU data Reserved 1", HFILL
6399 &hf_wassp_mu_assoc_status,
6401 "Association Status", "wassp.data.mu_assoc_status", FT_UINT8, BASE_CUSTOM, CF_FUNC(mu_association_status),
6402 0x0, "MU Association Status", HFILL
6406 &hf_wassp_mu_mac,
6408 "MAC address", "wassp.data.mu_mac", FT_ETHER, BASE_NONE, NULL,
6409 0x0, "Mobile Unit Ethernet address", HFILL
6412 /* netflow */
6414 &hf_wassp_mu_netflow_tree,
6416 "WASSP MU Data NetFlow Tree", "wassp.mu.data.netflow.subtree", FT_NONE, BASE_NONE, NULL,
6417 0x0, NULL, HFILL
6421 &hf_wassp_mu_netflow_header,
6423 "Wassp MU Data NetFlow Header", "wassp.mu_data_netflow_header", FT_BYTES, BASE_NONE, NULL,
6424 0x0, NULL, HFILL
6428 &hf_wassp_mu_netflow_version,
6430 "Version", "wassp.data.mu_netflow_version", FT_UINT16, BASE_DEC, NULL,
6431 0x0, "MU NetFlow Version", HFILL
6435 &hf_wassp_mu_netflow_length,
6437 "Length", "wassp.data.mu_netflow_length", FT_UINT16, BASE_DEC, NULL,
6438 0x0, "MU NetFlow Length", HFILL
6442 &hf_wassp_mu_netflow_flags,
6444 "Flag", "wassp.data.mu_netflow_flag", FT_UINT16, BASE_HEX, NULL,
6445 0x0, "MU NetFlow Flag", HFILL
6449 &hf_wassp_mu_netflow_uptime,
6451 "UpTime", "wassp.data.mu_netflow_uptime", FT_ABSOLUTE_TIME, ABSOLUTE_TIME_LOCAL, NULL,
6452 0x0, "MU NetFlow Up Time", HFILL
6456 &hf_wassp_mu_netflow_record,
6458 "Record", "wassp.data.mu_netflow_record", FT_BYTES, BASE_NONE, NULL,
6459 0x0, "MU NetFlow Record", HFILL
6463 &hf_wassp_mu_netflow_in_bytes,
6465 "InBytes", "wassp.data.mu_netflow_inbytes", FT_UINT32, BASE_DEC, NULL,
6466 0x0, "MU NetFlow In Bytes", HFILL
6470 &hf_wassp_mu_netflow_in_packets,
6472 "InPackets", "wassp.data.mu_netflow_inpackets", FT_UINT32, BASE_DEC, NULL,
6473 0x0, "MU NetFlow In Packets", HFILL
6477 &hf_wassp_mu_netflow_ip_protocol_number,
6479 "Protocol", "wassp.data.mu_netflow_protocol", FT_UINT8, BASE_DEC, NULL,
6480 0x0, "MU NetFlow IP Protocol", HFILL
6484 &hf_wassp_mu_netflow_source_tos,
6486 "Source TOS", "wassp.data.mu_netflow_tos", FT_UINT8, BASE_HEX, NULL,
6487 0x0, "MU NetFlow Source TOS", HFILL
6491 &hf_wassp_mu_netflow_source_port,
6493 "Source Port", "wassp.data.mu_netflow_source_port", FT_INT16, BASE_DEC, NULL,
6494 0x0, "MU NetFlow Source Port", HFILL
6498 &hf_wassp_mu_netflow_source_ip,
6500 "IP", "wassp.data.mu_netflow_source_ip", FT_IPv4, BASE_NONE, NULL,
6501 0x0, "MU NetFlow Source IP", HFILL
6505 &hf_wassp_mu_netflow_input_snmp,
6507 "In SNMP", "wassp.data.mu_netflow_in_snmp", FT_UINT16, BASE_DEC, NULL,
6508 0x0, "MU NetFlow In Snmp", HFILL
6512 &hf_wassp_mu_netflow_dest_port,
6514 "Dest Port", "wassp.data.mu_netflow_dest_port", FT_INT16, BASE_DEC, NULL,
6515 0x0, "MU NetFlow Dest Port", HFILL
6519 &hf_wassp_mu_netflow_dest_ip,
6521 "Dest IP", "wassp.data.mu_netflow_dest_ip", FT_IPv4, BASE_NONE, NULL,
6522 0x0, "MU NetFlow Dest IP", HFILL
6526 &hf_wassp_mu_netflow_output_snmp,
6528 "Out SNMP", "wassp.data.mu_netflow_out_snmp", FT_UINT16, BASE_DEC, NULL,
6529 0x0, "MU NetFlow Out Snmp", HFILL
6533 &hf_wassp_mu_netflow_last_time,
6535 "Last Time", "wassp.data.mu_netflow_last_time", FT_UINT32, BASE_DEC, NULL,
6536 0x0, "MU NetFlow Last Time", HFILL
6540 &hf_wassp_mu_netflow_first_time,
6542 "First Time", "wassp.data.mu_netflow_first_time", FT_UINT32, BASE_DEC, NULL,
6543 0x0, "MU NetFlow First Time", HFILL
6547 &hf_wassp_mu_netflow_in_source_mac,
6549 "Source Mac", "wassp.data.mu_netflow_source_mac", FT_ETHER, BASE_NONE, NULL,
6550 0x0, "MU NetFlow Source MAC Address", HFILL
6554 &hf_wassp_mu_netflow_in_dest_mac,
6556 "Dest Mac", "wassp.data.mu_netflow_dest_mac", FT_ETHER, BASE_NONE, NULL,
6557 0x0, "MU NetFlow Dest MAC Address", HFILL
6560 /* wassp TLV */
6562 &hf_wassp_tlv_value,
6564 "Wassp TLV", "wassp.tlv.value", FT_NONE, BASE_NONE, NULL,
6565 0x0, "Wassp TLV in hexadecimal", HFILL
6569 &hf_wassp_tlv_type_main,
6571 "Type", "wassp.tlv.type", FT_UINT16, BASE_DEC, VALS(wassp_tlv_types),
6572 0x0, "Wassp TLV type", HFILL
6576 &hf_wassp_tlv_type_sub,
6578 "Type", "wassp.tlv.type", FT_NONE, BASE_NONE, NULL,
6579 0x0, "Wassp TLV type", HFILL
6583 &hf_wassp_tlv_length,
6585 "Length", "wassp.tlv.length", FT_UINT16, BASE_DEC, NULL,
6586 0x0, "Wassp TLV length", HFILL
6590 &hf_wassp_tlv_value_octext,
6592 "value", "wassp.tlv.value_octext", FT_BYTES, BASE_NONE, NULL,
6593 0x0, "Wassp TLV Value in hexadecimal", HFILL
6597 &hf_wassp_tlv_value_string,
6599 "Value", "wassp.tlv.valuestr", FT_STRING, BASE_NONE, NULL,
6600 0x0, "Wassp TLV Value in string format", HFILL
6604 &hf_wassp_tlv_value_ip,
6606 "Value", "wassp.tlv.valueip", FT_IPv4, BASE_NONE, NULL,
6607 0x0, "Wassp TLV Value in IP format", HFILL
6611 &hf_wassp_tlv_value_int,
6613 "Value", "wassp.tlv.valueint", FT_UINT8, BASE_DEC, NULL,
6614 0x0, "Wassp TLV Value in an integer", HFILL
6618 &hf_wassp_tlv_eid_status,
6620 "Status", "wassp.tlv.eid.status", FT_UINT32, BASE_DEC, VALS(wassp_eid_status_types),
6621 0x0, "Explicit indication of request's status", HFILL
6625 &hf_wassp_tlv_eid_action,
6627 "action", "wassp.tlv.eid.action", FT_UINT32, BASE_DEC, VALS(wassp_eid_action_types),
6628 0x0, "upgrade action request", HFILL
6632 &hf_wassp_tlv_eid_rustate,
6634 "RU State", "wassp.tlv.eid.rustate", FT_BOOLEAN, BASE_NONE, TFS(&wassp_eid_rustate_types),
6635 0x0, "Remote Unit State", HFILL
6639 &hf_wassp_ipaddress,
6641 "IPv4 address", "wassp.ipaddress", FT_IPv4, BASE_NONE, NULL,
6642 0x0, "IPv4 IP address", HFILL
6645 /* fragmentation */
6647 &hf_wassp_fragment_overlap,
6649 "Fragment overlap", "wassp.fragment.overlap", FT_BOOLEAN, BASE_NONE, NULL,
6650 0x0, "Fragment overlaps with other fragments", HFILL
6654 &hf_wassp_fragment_overlap_conflict,
6656 "Conflicting data in fragment overlap", "wassp.fragment.overlap.conflict", FT_BOOLEAN, BASE_NONE, NULL,
6657 0x0, "Overlapping fragments contained conflicting data", HFILL
6661 &hf_wassp_fragment_multiple_tails,
6663 "Multiple tail fragments found", "wassp.fragment.multipletails", FT_BOOLEAN, BASE_NONE, NULL,
6664 0x0, "Several tails were found when defragmenting the packet", HFILL
6668 &hf_wassp_fragment_too_long_fragment,
6670 "Fragment too long", "wassp.fragment.toolongfragment", FT_BOOLEAN, BASE_NONE, NULL, 0x0,
6671 "Fragment contained data past end of packet", HFILL
6675 &hf_wassp_fragment_error,
6677 "Defragmentation error", "wassp.fragment.error", FT_FRAMENUM, BASE_NONE, NULL,
6678 0x0, "Defragmentation error due to illegal fragments", HFILL
6682 &hf_wassp_fragment,
6684 "WASSP Fragment", "wassp.fragment", FT_FRAMENUM, BASE_NONE, NULL,
6685 0x0, "wassp Fragmented", HFILL
6689 &hf_wassp_fragments,
6691 "WASSP Fragments", "wassp.fragments", FT_NONE, BASE_NONE, NULL,
6692 0x0, "wassp more Fragments", HFILL
6696 &hf_wassp_fragment_count,
6698 "WASSP Fragment count", "wassp.fragment.count", FT_UINT32, BASE_DEC, NULL,
6699 0x0, NULL, HFILL
6703 &hf_wassp_reassembled_in,
6705 "Reassembled WASSP in frame", "wassp.reassembled_in", FT_FRAMENUM, BASE_NONE, NULL,
6706 0x0, "This WASSP frame is reassembled in this frame", HFILL
6710 &hf_wassp_reassembled_length,
6712 "Reassembled WASSP length", "wassp.reassembled.length", FT_UINT32, BASE_DEC, NULL,
6713 0x0, "The total length of the reassembled payload", HFILL
6717 &hf_wassp_sub_tree,
6719 "WASSP Sub TLV Block", "wassp.subtree", FT_NONE, BASE_NONE, NULL,
6720 0x0, "WASSP sub tree", HFILL
6724 &hf_wassp_tlv_unknown,
6726 "WASSP unknown tlv", "wassp.tlv.unknown", FT_UINT32, BASE_DEC, NULL,
6727 0x0, NULL, HFILL
6731 &hf_wassp_tlv_invalid,
6733 "WASSP invalid tlv", "wassp.tlv.invalid", FT_UINT32, BASE_DEC, NULL,
6734 0x0, NULL, HFILL
6738 &hf_wassp_topologykey,
6740 "Topology Key", "wassp.topology_key", FT_UINT16, BASE_DEC, NULL,
6741 0x0, "Topology ID", HFILL
6745 &hf_wassp_vlanid,
6747 "Vlan ID", "wassp.vlan_id", FT_UINT16, BASE_DEC, NULL,
6748 0x0, "Vlan Number", HFILL
6752 &hf_wassp_topology_mode,
6754 "Topology Mode", "wassp.topology_mode", FT_UINT16,BASE_CUSTOM, CF_FUNC(topology_moder_print),
6755 0x0, "Wassp Topology Mode", HFILL
6759 &hf_wassp_in_cir,
6761 "Committed Information Rate(In direction)", "wassp.in_cir", FT_UINT16, BASE_DEC, NULL,
6762 0x0, "Committed Information Rate", HFILL
6766 &hf_wassp_out_cir,
6768 "Committed Information Rate(out direction)", "wassp.out_cir", FT_UINT16, BASE_DEC, NULL,
6769 0x0, "Committed Information Rate", HFILL
6773 &hf_wassp_flag_1b,
6775 "Flag (1 byte)", "wassp.flag.1b", FT_UINT8, BASE_HEX, NULL,
6776 0x0, NULL, HFILL
6780 &hf_wassp_tos,
6782 "Type of Service", "wassp.tos", FT_UINT8, BASE_HEX, NULL,
6783 0x0, "Tos", HFILL
6787 &hf_cos_tos,
6789 "COS Tos", "wassp.cos_tos", FT_UINT8, BASE_HEX, NULL, 0x00,
6790 NULL, HFILL
6794 &hf_wassp_tos_mask,
6796 "Type of Service Mask", "wassp.tos.mask", FT_UINT8, BASE_HEX, NULL,
6797 0x0, "ToS Mask", HFILL
6801 &hf_cos_tos_mask,
6803 "Class of Service ToS Mask", "wassp.cos_tos.mask", FT_UINT8, BASE_HEX, NULL,
6804 0x0, "Cos Tos Mask", HFILL
6808 &hf_filter_tos_maskbit_priority,
6810 "Mask bit and Priority", "wassp.mask_bit", FT_UINT8, BASE_CUSTOM, CF_FUNC(maskbit_priority_print),
6811 0xff, NULL, HFILL
6815 &hf_wassp_priority,
6817 "Priority bit", "wassp.priority", FT_BOOLEAN, 8, NULL,
6818 0xff, NULL, HFILL
6822 &hf_cos_priority_txq,
6824 "COS Priority and TxQ", "wassp.cos_priority_txq", FT_UINT8, BASE_CUSTOM, CF_FUNC(cos_priority_txq_print),
6825 0x0, "Cos Priority and Transmit Queue", HFILL
6829 &hf_cos_rateid,
6831 "COS In&Out Rate Id", "wassp.rate_id", FT_UINT8, BASE_CUSTOM, CF_FUNC(cos_rate_id_print),
6832 0x0, NULL, HFILL
6836 &hf_wassp_filter_rule,
6838 "WASSP Filter Rule", "wassp.filter.rule", FT_BYTES, BASE_NONE, NULL,
6839 0x0, NULL, HFILL
6843 &hf_wassp_filter_flag,
6845 "WASSP Filter Flag", "wassp.filter.flag", FT_UINT32, BASE_HEX, NULL,
6846 0x0, NULL, HFILL
6850 &hf_filter_rule_port_range,
6852 "TCP/UDP Port range", "wassp.port", FT_UINT32, BASE_CUSTOM, CF_FUNC(port_range_print),
6853 0x0, "WASSP TCP/UDP Port", HFILL
6857 &hf_wassp_ipprotocol,
6859 "IP Protocol", "wassp.ip_protocol", FT_UINT8, BASE_DEC, NULL,
6860 0x0, "WASSP IP Protocol", HFILL
6864 &hf_wassp_netmasklength,
6866 "Netmask Length Bit", "wassp.netmask_length", FT_UINT8, BASE_DEC, NULL,
6867 0x0, "WASSP Netmask Length Bit", HFILL
6871 &hf_wassp_macaddr,
6873 "MAC address", "wassp.mac_address", FT_ETHER, BASE_NONE, NULL,
6874 0x0, "WASSP MAC address", HFILL
6878 &hf_wassp_macaddr_mask,
6880 "MAC address mask", "wassp.mac_address.mask", FT_ETHER, BASE_NONE, NULL,
6881 0x0, NULL, HFILL
6885 &hf_wassp_ethernet_type,
6887 "Ethernet Type", "wassp.ethernet_type", FT_UINT16, BASE_HEX, NULL,
6888 0x0, "Ethernet Type Field", HFILL
6892 &hf_wassp_reserve,
6894 "Reserve", "wassp.reserve", FT_UINT16, BASE_DEC, NULL,
6895 0x0, "Reserve value", HFILL
6899 &hf_wassp_freq,
6901 "Freq in MHz", "wassp.freq", FT_UINT16, BASE_DEC, NULL,
6902 0x0, "WASSP Freq", HFILL
6906 &hf_wassp_rss,
6908 "RSS", "wassp.rss", FT_UINT16, BASE_DEC, NULL,
6909 0x0, "WASSP RSS", HFILL
6913 &hf_wassp_rssi,
6915 "RSSI", "wassp.rssi", FT_UINT16, BASE_DEC, NULL,
6916 0x0, "WASSP RSSI", HFILL
6920 &hf_wassp_threatstate,
6922 "WASSP Threat State", "wassp.threat_state", FT_UINT8, BASE_HEX, VALS(threat_state_strings),
6923 0x0, "WASSP Threat State (NA/Active/Inactive)", HFILL
6927 &hf_wassp_radioparams,
6929 "Radio Params QOS", "wassp.radio_params", FT_UINT8, BASE_HEX, VALS(radio_params_strings),
6930 0x0, "WASSP Radio Params QOS", HFILL
6934 &hf_wassp_channelfreq,
6936 "Channel Frequency", "wassp.channel_freq", FT_UINT16, BASE_DEC, NULL,
6937 0x0, "WASSP Channel Frequency", HFILL
6941 &hf_wassp_mu,
6943 "Total Mu", "wassp.mu", FT_UINT32, BASE_DEC, NULL,
6944 0x0, "WASSP Total Mu", HFILL
6948 &hf_wassp_apprules,
6950 "Number of Application Rules", "wassp.num_apprules", FT_UINT16, BASE_DEC, NULL,
6951 0x0, "WASSP number of app rules", HFILL
6955 &hf_wassp_displayid,
6957 "Display ID", "wassp.display_id", FT_UINT16, BASE_DEC, NULL,
6958 0x0, "WASSP display ID", HFILL
6962 &hf_wassp_txbytes,
6964 "Tx Bytes", "wassp.tx_bytes", FT_UINT32, BASE_DEC, NULL,
6965 0x0, "WASSP Tx Bytes", HFILL
6969 &hf_wassp_rxbytes,
6971 "Rx Bytes", "wassp.rx_bytes", FT_UINT32, BASE_DEC, NULL,
6972 0x0, "WASSP Rx Bytes", HFILL
6977 static int * ett[] =
6979 &ett_wassp,
6980 &ett_wassp_tlv,
6981 &ett_wassp_filter_rule,
6982 &ett_lbs_header,
6983 &ett_wassp_mu_appl_stats,
6984 &ett_wassp_header,
6985 &ett_ru_discover_header,
6986 &ett_mu_data_header,
6987 &ett_mu_action_field,
6988 &ett_wassp_data,
6989 &ett_wassp_mu_data_netflow,
6990 &ett_wassp_mu_data_netflow_header,
6991 &ett_seq_flags,
6992 &ett_wassp_tlv_missing,
6993 &ett_wassp_ap_stats_block,
6994 &ett_wassp_mu_rf_stats_block,
6995 &ett_wassp_config_error_block,
6996 &ett_wassp_config_modified_block,
6997 &ett_wassp_global_config_block,
6998 &ett_wassp_radio_config_block,
6999 &ett_wassp_vns_config_block,
7000 &ett_wassp_mu_stats_block,
7001 &ett_wassp_radio_stats_block,
7002 &ett_wassp_ether_stats_block,
7003 &ett_wassp_wds_stats_block,
7004 &ett_wassp_dot1x_stats_block,
7005 &ett_wassp_fragment,
7006 &ett_wassp_fragments,
7007 &ett_wassp_filter_config_block,
7008 &ett_wassp_filter_ext_config_block,
7009 &ett_wassp_site_filter_config_block,
7010 &ett_wassp_vns_stats_block,
7011 &ett_wassp_radius_server_config_block,
7012 &ett_wassp_site_config_block,
7013 &ett_wassp_policy_config_block,
7014 &ett_wassp_cos_config_block,
7015 &ett_wassp_localbase_lookup_block,
7016 &ett_wassp_radius_config_block,
7017 &ett_wassp_eid_main_tlv_block,
7018 &ett_wassp_app_policy_fixed_block,
7019 &ett_wassp_app_policy_entry_block,
7020 &ett_wassp_s_topo_m_filter_entry_block,
7021 &ett_wassp_s_topo_m_filter_ext_entry_block,
7022 &ett_wassp_11u_config_entry_block,
7023 &ett_wassp_hs2_config_entry_block,
7024 &ett_wassp_extapp_config_entry_block,
7029 /* Register wassp protocol */
7030 proto_wassp = proto_register_protocol("Wireless Access Station Session Protocol", "WASSP", "wassp");
7031 /* Register wassp protocol fields */
7032 proto_register_field_array(proto_wassp, hf, array_length(hf));
7033 /* Register dissector handle */
7034 wassp_handle = register_dissector("wassp", dissect_wassp_static, proto_wassp);
7035 /* Register wassp protocol sub-trees */
7036 proto_register_subtree_array(ett, array_length(ett));
7037 wassp_dissector_table = register_dissector_table("wassp.subd", "WASSP subdissectors", proto_wassp, FT_UINT16, BASE_DEC);
7038 register_init_routine(&wassp_defragment_init);
7042 static bool
7043 test_wassp(tvbuff_t *tvb)
7045 /* Minimum of 8 bytes, first byte (version) has value of 3 */
7046 if (tvb_captured_length(tvb) < 8
7047 || tvb_get_uint8(tvb, 0) != 3
7048 /* || tvb_get_uint8(tvb, 2) != 0
7049 || tvb_get_ntohs(tvb, 6) > tvb_reported_length(tvb) */
7052 return false;
7054 return true;
7059 static bool
7060 dissect_wassp_heur(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
7062 if (!test_wassp(tvb))
7064 return false;
7066 dissect_wassp(tvb, pinfo, tree);
7067 return true;
7070 static int
7071 dissect_wassp_static(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
7073 if (!test_wassp(tvb))
7075 return 0;
7077 return dissect_wassp(tvb, pinfo, tree);
7081 /* The registration hand-off routing for WASSP */
7083 void
7084 proto_reg_handoff_wassp(void)
7086 dissector_add_uint_range_with_preference("udp.port", PORT_WASSP_RANGE, wassp_handle);
7087 heur_dissector_add("udp", dissect_wassp_heur, "WASSP over UDP", "wassp_udp", proto_wassp, HEURISTIC_DISABLE);
7089 snmp_handle = find_dissector_add_dependency("snmp", proto_wassp);
7090 ieee80211_handle = find_dissector_add_dependency("wlan_withoutfcs", proto_wassp);
7091 eth_handle = find_dissector("eth_withoutfcs");
7092 data_handle = find_dissector("data");
7093 ip_handle = find_dissector("ip");
7097 * Editor modelines - https://www.wireshark.org/tools/modelines.html
7099 * Local variables:
7100 * c-basic-offset: 8
7101 * tab-width: 8
7102 * indent-tabs-mode: t
7103 * End:
7105 * vi: set shiftwidth=8 tabstop=8 noexpandtab:
7106 * :indentSize=8:tabSize=8:noTabs=false: