[wtp] prepare message elements for vendor element handling

convert message element type into a struct{ vendor, type }.
Vendor will be 0 for all RFC types.
This commit is contained in:
Andreas Schultz 2016-03-08 10:21:51 +01:00
parent 140be9b143
commit 471d1058c4
82 changed files with 451 additions and 201 deletions

View File

@ -6,102 +6,108 @@
/* */ /* */
#define element_ops(Id, Ops) [(Id) - CAPWAP_MESSAGE_ELEMENTS_START] = &(Ops) #define element_ops(Id, Ops) [(Id) - CAPWAP_MESSAGE_ELEMENTS_START] = &(Ops)
static const struct capwap_message_elements_ops * capwap_message_elements[] = { static const struct capwap_message_elements_ops * capwap_message_elements[] = {
element_ops(CAPWAP_ELEMENT_ACDESCRIPTION, capwap_element_acdescriptor_ops), element_ops(CAPWAP_ELEMENT_ACDESCRIPTION_TYPE, capwap_element_acdescriptor_ops),
element_ops(CAPWAP_ELEMENT_ACIPV4LIST, capwap_element_acipv4list_ops), element_ops(CAPWAP_ELEMENT_ACIPV4LIST_TYPE, capwap_element_acipv4list_ops),
element_ops(CAPWAP_ELEMENT_ACIPV6LIST, capwap_element_acipv6list_ops), element_ops(CAPWAP_ELEMENT_ACIPV6LIST_TYPE, capwap_element_acipv6list_ops),
element_ops(CAPWAP_ELEMENT_ACNAME, capwap_element_acname_ops), element_ops(CAPWAP_ELEMENT_ACNAME_TYPE, capwap_element_acname_ops),
element_ops(CAPWAP_ELEMENT_ACNAMEPRIORITY, capwap_element_acnamepriority_ops), element_ops(CAPWAP_ELEMENT_ACNAMEPRIORITY_TYPE, capwap_element_acnamepriority_ops),
element_ops(CAPWAP_ELEMENT_ACTIMESTAMP, capwap_element_actimestamp_ops), element_ops(CAPWAP_ELEMENT_ACTIMESTAMP_TYPE, capwap_element_actimestamp_ops),
element_ops(CAPWAP_ELEMENT_ADDMACACL, capwap_element_addmacacl_ops), element_ops(CAPWAP_ELEMENT_ADDMACACL_TYPE, capwap_element_addmacacl_ops),
element_ops(CAPWAP_ELEMENT_ADDSTATION, capwap_element_addstation_ops), element_ops(CAPWAP_ELEMENT_ADDSTATION_TYPE, capwap_element_addstation_ops),
element_ops(CAPWAP_ELEMENT_CONTROLIPV4, capwap_element_controlipv4_ops), element_ops(CAPWAP_ELEMENT_CONTROLIPV4_TYPE, capwap_element_controlipv4_ops),
element_ops(CAPWAP_ELEMENT_CONTROLIPV6, capwap_element_controlipv6_ops), element_ops(CAPWAP_ELEMENT_CONTROLIPV6_TYPE, capwap_element_controlipv6_ops),
element_ops(CAPWAP_ELEMENT_TIMERS, capwap_element_timers_ops), element_ops(CAPWAP_ELEMENT_TIMERS_TYPE, capwap_element_timers_ops),
element_ops(CAPWAP_ELEMENT_DATATRANSFERDATA, capwap_element_datatransferdata_ops), element_ops(CAPWAP_ELEMENT_DATATRANSFERDATA_TYPE, capwap_element_datatransferdata_ops),
element_ops(CAPWAP_ELEMENT_DATATRANSFERMODE, capwap_element_datatransfermode_ops), element_ops(CAPWAP_ELEMENT_DATATRANSFERMODE_TYPE, capwap_element_datatransfermode_ops),
element_ops(CAPWAP_ELEMENT_DECRYPTERRORREPORT, capwap_element_decrypterrorreport_ops), element_ops(CAPWAP_ELEMENT_DECRYPTERRORREPORT_TYPE, capwap_element_decrypterrorreport_ops),
element_ops(CAPWAP_ELEMENT_DECRYPTERRORREPORTPERIOD, capwap_element_decrypterrorreportperiod_ops), element_ops(CAPWAP_ELEMENT_DECRYPTERRORREPORTPERIOD_TYPE, capwap_element_decrypterrorreportperiod_ops),
element_ops(CAPWAP_ELEMENT_DELETEMACACL, capwap_element_deletemacacl_ops), element_ops(CAPWAP_ELEMENT_DELETEMACACL_TYPE, capwap_element_deletemacacl_ops),
element_ops(CAPWAP_ELEMENT_DELETESTATION, capwap_element_deletestation_ops), element_ops(CAPWAP_ELEMENT_DELETESTATION_TYPE, capwap_element_deletestation_ops),
element_ops(CAPWAP_ELEMENT_DISCOVERYTYPE, capwap_element_discoverytype_ops), element_ops(CAPWAP_ELEMENT_DISCOVERYTYPE_TYPE, capwap_element_discoverytype_ops),
element_ops(CAPWAP_ELEMENT_DUPLICATEIPV4, capwap_element_duplicateipv4_ops), element_ops(CAPWAP_ELEMENT_DUPLICATEIPV4_TYPE, capwap_element_duplicateipv4_ops),
element_ops(CAPWAP_ELEMENT_DUPLICATEIPV6, capwap_element_duplicateipv6_ops), element_ops(CAPWAP_ELEMENT_DUPLICATEIPV6_TYPE, capwap_element_duplicateipv6_ops),
element_ops(CAPWAP_ELEMENT_IDLETIMEOUT, capwap_element_idletimeout_ops), element_ops(CAPWAP_ELEMENT_IDLETIMEOUT_TYPE, capwap_element_idletimeout_ops),
element_ops(CAPWAP_ELEMENT_IMAGEDATA, capwap_element_imagedata_ops), element_ops(CAPWAP_ELEMENT_IMAGEDATA_TYPE, capwap_element_imagedata_ops),
element_ops(CAPWAP_ELEMENT_IMAGEIDENTIFIER, capwap_element_imageidentifier_ops), element_ops(CAPWAP_ELEMENT_IMAGEIDENTIFIER_TYPE, capwap_element_imageidentifier_ops),
element_ops(CAPWAP_ELEMENT_IMAGEINFO, capwap_element_imageinfo_ops), element_ops(CAPWAP_ELEMENT_IMAGEINFO_TYPE, capwap_element_imageinfo_ops),
element_ops(CAPWAP_ELEMENT_INITIATEDOWNLOAD, capwap_element_initdownload_ops), element_ops(CAPWAP_ELEMENT_INITIATEDOWNLOAD_TYPE, capwap_element_initdownload_ops),
element_ops(CAPWAP_ELEMENT_LOCATION, capwap_element_location_ops), element_ops(CAPWAP_ELEMENT_LOCATION_TYPE, capwap_element_location_ops),
element_ops(CAPWAP_ELEMENT_MAXIMUMLENGTH, capwap_element_maximumlength_ops), element_ops(CAPWAP_ELEMENT_MAXIMUMLENGTH_TYPE, capwap_element_maximumlength_ops),
element_ops(CAPWAP_ELEMENT_LOCALIPV4, capwap_element_localipv4_ops), element_ops(CAPWAP_ELEMENT_LOCALIPV4_TYPE, capwap_element_localipv4_ops),
element_ops(CAPWAP_ELEMENT_RADIOADMSTATE, capwap_element_radioadmstate_ops), element_ops(CAPWAP_ELEMENT_RADIOADMSTATE_TYPE, capwap_element_radioadmstate_ops),
element_ops(CAPWAP_ELEMENT_RADIOOPRSTATE, capwap_element_radiooprstate_ops), element_ops(CAPWAP_ELEMENT_RADIOOPRSTATE_TYPE, capwap_element_radiooprstate_ops),
element_ops(CAPWAP_ELEMENT_RESULTCODE, capwap_element_resultcode_ops), element_ops(CAPWAP_ELEMENT_RESULTCODE_TYPE, capwap_element_resultcode_ops),
element_ops(CAPWAP_ELEMENT_RETURNEDMESSAGE, capwap_element_returnedmessage_ops), element_ops(CAPWAP_ELEMENT_RETURNEDMESSAGE_TYPE, capwap_element_returnedmessage_ops),
element_ops(CAPWAP_ELEMENT_SESSIONID, capwap_element_sessionid_ops), element_ops(CAPWAP_ELEMENT_SESSIONID_TYPE, capwap_element_sessionid_ops),
element_ops(CAPWAP_ELEMENT_STATISTICSTIMER, capwap_element_statisticstimer_ops), element_ops(CAPWAP_ELEMENT_STATISTICSTIMER_TYPE, capwap_element_statisticstimer_ops),
element_ops(CAPWAP_ELEMENT_VENDORPAYLOAD, capwap_element_vendorpayload_ops), element_ops(CAPWAP_ELEMENT_VENDORPAYLOAD_TYPE, capwap_element_vendorpayload_ops),
element_ops(CAPWAP_ELEMENT_WTPBOARDDATA, capwap_element_wtpboarddata_ops), element_ops(CAPWAP_ELEMENT_WTPBOARDDATA_TYPE, capwap_element_wtpboarddata_ops),
element_ops(CAPWAP_ELEMENT_WTPDESCRIPTOR, capwap_element_wtpdescriptor_ops), element_ops(CAPWAP_ELEMENT_WTPDESCRIPTOR_TYPE, capwap_element_wtpdescriptor_ops),
element_ops(CAPWAP_ELEMENT_WTPFALLBACK, capwap_element_wtpfallback_ops), element_ops(CAPWAP_ELEMENT_WTPFALLBACK_TYPE, capwap_element_wtpfallback_ops),
element_ops(CAPWAP_ELEMENT_WTPFRAMETUNNELMODE, capwap_element_wtpframetunnelmode_ops), element_ops(CAPWAP_ELEMENT_WTPFRAMETUNNELMODE_TYPE, capwap_element_wtpframetunnelmode_ops),
element_ops(CAPWAP_ELEMENT_WTPMACTYPE, capwap_element_wtpmactype_ops), element_ops(CAPWAP_ELEMENT_WTPMACTYPE_TYPE, capwap_element_wtpmactype_ops),
element_ops(CAPWAP_ELEMENT_WTPNAME, capwap_element_wtpname_ops), element_ops(CAPWAP_ELEMENT_WTPNAME_TYPE, capwap_element_wtpname_ops),
element_ops(CAPWAP_ELEMENT_WTPRADIOSTAT, capwap_element_wtpradiostat_ops), element_ops(CAPWAP_ELEMENT_WTPRADIOSTAT_TYPE, capwap_element_wtpradiostat_ops),
element_ops(CAPWAP_ELEMENT_WTPREBOOTSTAT, capwap_element_wtprebootstat_ops), element_ops(CAPWAP_ELEMENT_WTPREBOOTSTAT_TYPE, capwap_element_wtprebootstat_ops),
element_ops(CAPWAP_ELEMENT_WTPSTATICIPADDRESS, capwap_element_wtpstaticipaddress_ops), element_ops(CAPWAP_ELEMENT_WTPSTATICIPADDRESS_TYPE, capwap_element_wtpstaticipaddress_ops),
element_ops(CAPWAP_ELEMENT_LOCALIPV6, capwap_element_localipv6_ops), element_ops(CAPWAP_ELEMENT_LOCALIPV6_TYPE, capwap_element_localipv6_ops),
element_ops(CAPWAP_ELEMENT_TRANSPORT, capwap_element_transport_ops), element_ops(CAPWAP_ELEMENT_TRANSPORT_TYPE, capwap_element_transport_ops),
element_ops(CAPWAP_ELEMENT_MTUDISCOVERY, capwap_element_mtudiscovery_ops), element_ops(CAPWAP_ELEMENT_MTUDISCOVERY_TYPE, capwap_element_mtudiscovery_ops),
element_ops(CAPWAP_ELEMENT_ECNSUPPORT, capwap_element_ecnsupport_ops) element_ops(CAPWAP_ELEMENT_ECNSUPPORT_TYPE, capwap_element_ecnsupport_ops)
}; };
#undef element_ops #undef element_ops
/* */ /* */
#define element_ops(Id, Ops) [(Id) - CAPWAP_80211_MESSAGE_ELEMENTS_START] = &(Ops) #define element_ops(Id, Ops) [(Id) - CAPWAP_80211_MESSAGE_ELEMENTS_START] = &(Ops)
static const struct capwap_message_elements_ops * capwap_80211_message_elements[] = { static const struct capwap_message_elements_ops * capwap_80211_message_elements[] = {
element_ops(CAPWAP_ELEMENT_80211_ADD_WLAN, capwap_element_80211_addwlan_ops), element_ops(CAPWAP_ELEMENT_80211_ADD_WLAN_TYPE, capwap_element_80211_addwlan_ops),
element_ops(CAPWAP_ELEMENT_80211_ANTENNA, capwap_element_80211_antenna_ops), element_ops(CAPWAP_ELEMENT_80211_ANTENNA_TYPE, capwap_element_80211_antenna_ops),
element_ops(CAPWAP_ELEMENT_80211_ASSIGN_BSSID, capwap_element_80211_assignbssid_ops), element_ops(CAPWAP_ELEMENT_80211_ASSIGN_BSSID_TYPE, capwap_element_80211_assignbssid_ops),
element_ops(CAPWAP_ELEMENT_80211_DELETE_WLAN, capwap_element_80211_deletewlan_ops), element_ops(CAPWAP_ELEMENT_80211_DELETE_WLAN_TYPE, capwap_element_80211_deletewlan_ops),
element_ops(CAPWAP_ELEMENT_80211_DIRECTSEQUENCECONTROL, capwap_element_80211_directsequencecontrol_ops), element_ops(CAPWAP_ELEMENT_80211_DIRECTSEQUENCECONTROL_TYPE, capwap_element_80211_directsequencecontrol_ops),
element_ops(CAPWAP_ELEMENT_80211_IE, capwap_element_80211_ie_ops), element_ops(CAPWAP_ELEMENT_80211_IE_TYPE, capwap_element_80211_ie_ops),
element_ops(CAPWAP_ELEMENT_80211_MACOPERATION, capwap_element_80211_macoperation_ops), element_ops(CAPWAP_ELEMENT_80211_MACOPERATION_TYPE, capwap_element_80211_macoperation_ops),
element_ops(CAPWAP_ELEMENT_80211_MIC_COUNTERMEASURES, capwap_element_80211_miccountermeasures_ops), element_ops(CAPWAP_ELEMENT_80211_MIC_COUNTERMEASURES_TYPE, capwap_element_80211_miccountermeasures_ops),
element_ops(CAPWAP_ELEMENT_80211_MULTIDOMAINCAPABILITY, capwap_element_80211_multidomaincapability_ops), element_ops(CAPWAP_ELEMENT_80211_MULTIDOMAINCAPABILITY_TYPE, capwap_element_80211_multidomaincapability_ops),
element_ops(CAPWAP_ELEMENT_80211_OFDMCONTROL, capwap_element_80211_ofdmcontrol_ops), element_ops(CAPWAP_ELEMENT_80211_OFDMCONTROL_TYPE, capwap_element_80211_ofdmcontrol_ops),
element_ops(CAPWAP_ELEMENT_80211_RATESET, capwap_element_80211_rateset_ops), element_ops(CAPWAP_ELEMENT_80211_RATESET_TYPE, capwap_element_80211_rateset_ops),
element_ops(CAPWAP_ELEMENT_80211_RSNA_ERROR_REPORT, capwap_element_80211_rsnaerrorreport_ops), element_ops(CAPWAP_ELEMENT_80211_RSNA_ERROR_REPORT_TYPE, capwap_element_80211_rsnaerrorreport_ops),
element_ops(CAPWAP_ELEMENT_80211_STATION, capwap_element_80211_station_ops), element_ops(CAPWAP_ELEMENT_80211_STATION_TYPE, capwap_element_80211_station_ops),
element_ops(CAPWAP_ELEMENT_80211_STATION_QOS_PROFILE, capwap_element_80211_stationqos_ops), element_ops(CAPWAP_ELEMENT_80211_STATION_QOS_PROFILE_TYPE, capwap_element_80211_stationqos_ops),
element_ops(CAPWAP_ELEMENT_80211_STATION_SESSION_KEY_PROFILE, capwap_element_80211_stationkey_ops), element_ops(CAPWAP_ELEMENT_80211_STATION_SESSION_KEY_PROFILE_TYPE, capwap_element_80211_stationkey_ops),
element_ops(CAPWAP_ELEMENT_80211_STATISTICS, capwap_element_80211_statistics_ops), element_ops(CAPWAP_ELEMENT_80211_STATISTICS_TYPE, capwap_element_80211_statistics_ops),
element_ops(CAPWAP_ELEMENT_80211_SUPPORTEDRATES, capwap_element_80211_supportedrates_ops), element_ops(CAPWAP_ELEMENT_80211_SUPPORTEDRATES_TYPE, capwap_element_80211_supportedrates_ops),
element_ops(CAPWAP_ELEMENT_80211_TXPOWER, capwap_element_80211_txpower_ops), element_ops(CAPWAP_ELEMENT_80211_TXPOWER_TYPE, capwap_element_80211_txpower_ops),
element_ops(CAPWAP_ELEMENT_80211_TXPOWERLEVEL, capwap_element_80211_txpowerlevel_ops), element_ops(CAPWAP_ELEMENT_80211_TXPOWERLEVEL_TYPE, capwap_element_80211_txpowerlevel_ops),
element_ops(CAPWAP_ELEMENT_80211_UPDATE_STATION_QOS, capwap_element_80211_updatestationqos_ops), element_ops(CAPWAP_ELEMENT_80211_UPDATE_STATION_QOS_TYPE, capwap_element_80211_updatestationqos_ops),
element_ops(CAPWAP_ELEMENT_80211_UPDATE_WLAN, capwap_element_80211_updatewlan_ops), element_ops(CAPWAP_ELEMENT_80211_UPDATE_WLAN_TYPE, capwap_element_80211_updatewlan_ops),
element_ops(CAPWAP_ELEMENT_80211_WTP_QOS, capwap_element_80211_wtpqos_ops), element_ops(CAPWAP_ELEMENT_80211_WTP_QOS_TYPE, capwap_element_80211_wtpqos_ops),
element_ops(CAPWAP_ELEMENT_80211_WTP_RADIO_CONF, capwap_element_80211_wtpradioconf_ops), element_ops(CAPWAP_ELEMENT_80211_WTP_RADIO_CONF_TYPE, capwap_element_80211_wtpradioconf_ops),
element_ops(CAPWAP_ELEMENT_80211_WTP_RADIO_FAIL_ALARM, capwap_element_80211_wtpradiofailalarm_ops), element_ops(CAPWAP_ELEMENT_80211_WTP_RADIO_FAIL_ALARM_TYPE, capwap_element_80211_wtpradiofailalarm_ops),
element_ops(CAPWAP_ELEMENT_80211_WTPRADIOINFORMATION, capwap_element_80211_wtpradioinformation_ops) element_ops(CAPWAP_ELEMENT_80211_WTPRADIOINFORMATION_TYPE, capwap_element_80211_wtpradioinformation_ops)
}; };
#undef element_ops #undef element_ops
/* */ /* */
const struct capwap_message_elements_ops *capwap_get_message_element_ops(unsigned short code) const struct capwap_message_elements_ops *
capwap_get_message_element_ops(const struct capwap_message_element_id id)
{ {
if (IS_MESSAGE_ELEMENTS(code)) { switch (id.vendor) {
return capwap_message_elements[code - CAPWAP_MESSAGE_ELEMENTS_START]; case 0:
} else if (IS_80211_MESSAGE_ELEMENTS(code)) { if (IS_MESSAGE_ELEMENTS(id)) {
return capwap_80211_message_elements[code - CAPWAP_80211_MESSAGE_ELEMENTS_START]; return capwap_message_elements[id.type - CAPWAP_MESSAGE_ELEMENTS_START];
} else if (IS_80211_MESSAGE_ELEMENTS(id)) {
return capwap_80211_message_elements[id.type - CAPWAP_80211_MESSAGE_ELEMENTS_START];
}
} }
return NULL; return NULL;
} }
/* */ /* */
struct capwap_list_item* capwap_get_message_element(struct capwap_parsed_packet* packet, uint16_t type) { struct capwap_list_item* capwap_get_message_element(struct capwap_parsed_packet* packet,
const struct capwap_message_element_id id)
{
struct capwap_list_item* search; struct capwap_list_item* search;
ASSERT(packet != NULL); ASSERT(packet != NULL);
@ -109,11 +115,11 @@ struct capwap_list_item* capwap_get_message_element(struct capwap_parsed_packet*
search = packet->messages->first; search = packet->messages->first;
while (search) { while (search) {
struct capwap_message_element_itemlist* messageelement = (struct capwap_message_element_itemlist*)search->item; struct capwap_message_element_itemlist* messageelement =
(struct capwap_message_element_itemlist*)search->item;
if (messageelement->type == type) { if (memcmp(&messageelement->id, &id, sizeof(id)) == 0)
return search; return search;
}
/* */ /* */
search = search->next; search = search->next;
@ -123,12 +129,14 @@ struct capwap_list_item* capwap_get_message_element(struct capwap_parsed_packet*
} }
/* */ /* */
void* capwap_get_message_element_data(struct capwap_parsed_packet* packet, uint16_t type) { void* capwap_get_message_element_data(struct capwap_parsed_packet* packet,
const struct capwap_message_element_id id)
{
struct capwap_list_item* itemlist; struct capwap_list_item* itemlist;
struct capwap_message_element_itemlist* messageelement; struct capwap_message_element_itemlist* messageelement;
/* Retrieve item list */ /* Retrieve item list */
itemlist = capwap_get_message_element(packet, type); itemlist = capwap_get_message_element(packet, id);
if (!itemlist) { if (!itemlist) {
return NULL; return NULL;
} }
@ -161,7 +169,7 @@ int capwap_parsing_packet(struct capwap_packet_rxmng* rxmngpacket, struct capwap
/* */ /* */
bodylength = rxmngpacket->ctrlmsg.length - CAPWAP_CONTROL_MESSAGE_MIN_LENGTH; bodylength = rxmngpacket->ctrlmsg.length - CAPWAP_CONTROL_MESSAGE_MIN_LENGTH;
while (bodylength > 0) { while (bodylength > 0) {
uint16_t type; struct capwap_message_element_id id;
uint16_t msglength; uint16_t msglength;
struct capwap_list_item* itemlist; struct capwap_list_item* itemlist;
struct capwap_message_element_itemlist* messageelement; struct capwap_message_element_itemlist* messageelement;
@ -170,18 +178,21 @@ int capwap_parsing_packet(struct capwap_packet_rxmng* rxmngpacket, struct capwap
/* Get type and length */ /* Get type and length */
rxmngpacket->readerpacketallowed = sizeof(struct capwap_message_element); rxmngpacket->readerpacketallowed = sizeof(struct capwap_message_element);
if (rxmngpacket->read_ops.read_u16((capwap_message_elements_handle)rxmngpacket, &type) != sizeof(uint16_t)) { if (rxmngpacket->read_ops.read_u16((capwap_message_elements_handle)rxmngpacket, &id.type) != sizeof(uint16_t)) {
return INVALID_MESSAGE_ELEMENT; return INVALID_MESSAGE_ELEMENT;
} }
/* TODO: implement actual vendor handling */
id.vendor = 0;
/* Check type */ /* Check type */
capwap_logging_debug("MESSAGE ELEMENT: %d", type); capwap_logging_debug("MESSAGE ELEMENT: %06x:%d", id.vendor, id.type);
if (!IS_VALID_MESSAGE_ELEMENTS(type)) { if (!IS_VALID_MESSAGE_ELEMENTS(id)) {
return UNRECOGNIZED_MESSAGE_ELEMENT; return UNRECOGNIZED_MESSAGE_ELEMENT;
} }
/* Check binding */ /* Check binding */
if (IS_80211_MESSAGE_ELEMENTS(type) && (binding != CAPWAP_WIRELESS_BINDING_IEEE80211)) { if (IS_80211_MESSAGE_ELEMENTS(id) && (binding != CAPWAP_WIRELESS_BINDING_IEEE80211)) {
return UNRECOGNIZED_MESSAGE_ELEMENT; return UNRECOGNIZED_MESSAGE_ELEMENT;
} }
@ -195,7 +206,7 @@ int capwap_parsing_packet(struct capwap_packet_rxmng* rxmngpacket, struct capwap
} }
/* Reader function */ /* Reader function */
read_ops = capwap_get_message_element_ops(type); read_ops = capwap_get_message_element_ops(id);
capwap_logging_debug("read_ops: %p", read_ops); capwap_logging_debug("read_ops: %p", read_ops);
if (!read_ops) { if (!read_ops) {
return INVALID_MESSAGE_ELEMENT; return INVALID_MESSAGE_ELEMENT;
@ -210,7 +221,7 @@ int capwap_parsing_packet(struct capwap_packet_rxmng* rxmngpacket, struct capwap
return INVALID_MESSAGE_ELEMENT; return INVALID_MESSAGE_ELEMENT;
/* */ /* */
itemlist = capwap_get_message_element(packet, type); itemlist = capwap_get_message_element(packet, id);
if (read_ops->category == CAPWAP_MESSAGE_ELEMENT_SINGLE) { if (read_ops->category == CAPWAP_MESSAGE_ELEMENT_SINGLE) {
/* Check for multiple message element */ /* Check for multiple message element */
if (itemlist) { if (itemlist) {
@ -220,7 +231,7 @@ int capwap_parsing_packet(struct capwap_packet_rxmng* rxmngpacket, struct capwap
/* Create new message element */ /* Create new message element */
itemlist = capwap_itemlist_create(sizeof(struct capwap_message_element_itemlist)); itemlist = capwap_itemlist_create(sizeof(struct capwap_message_element_itemlist));
messageelement = (struct capwap_message_element_itemlist*)itemlist->item; messageelement = (struct capwap_message_element_itemlist*)itemlist->item;
messageelement->type = type; messageelement->id = id;
messageelement->category = CAPWAP_MESSAGE_ELEMENT_SINGLE; messageelement->category = CAPWAP_MESSAGE_ELEMENT_SINGLE;
messageelement->data = element; messageelement->data = element;
@ -239,7 +250,7 @@ int capwap_parsing_packet(struct capwap_packet_rxmng* rxmngpacket, struct capwap
/* */ /* */
itemlist = capwap_itemlist_create(sizeof(struct capwap_message_element_itemlist)); itemlist = capwap_itemlist_create(sizeof(struct capwap_message_element_itemlist));
messageelement = (struct capwap_message_element_itemlist*)itemlist->item; messageelement = (struct capwap_message_element_itemlist*)itemlist->item;
messageelement->type = type; messageelement->id = id;
messageelement->category = CAPWAP_MESSAGE_ELEMENT_ARRAY; messageelement->category = CAPWAP_MESSAGE_ELEMENT_ARRAY;
messageelement->data = (void*)arraymessageelement; messageelement->data = (void*)arraymessageelement;
@ -601,7 +612,7 @@ void capwap_free_parsed_packet(struct capwap_parsed_packet* packet) {
while (itemlist) { while (itemlist) {
messageelement = (struct capwap_message_element_itemlist*)itemlist->item; messageelement = (struct capwap_message_element_itemlist*)itemlist->item;
if (messageelement->data) { if (messageelement->data) {
msgops = capwap_get_message_element_ops(messageelement->type); msgops = capwap_get_message_element_ops(messageelement->id);
if (messageelement->category == CAPWAP_MESSAGE_ELEMENT_SINGLE) { if (messageelement->category == CAPWAP_MESSAGE_ELEMENT_SINGLE) {
msgops->free(messageelement->data); msgops->free(messageelement->data);

View File

@ -4,6 +4,12 @@
#include "capwap_array.h" #include "capwap_array.h"
#include "capwap_list.h" #include "capwap_list.h"
struct capwap_message_element_id
{
uint32_t vendor;
uint16_t type;
};
/* */ /* */
typedef void* capwap_message_elements_handle; typedef void* capwap_message_elements_handle;
struct capwap_write_message_elements_ops { struct capwap_write_message_elements_ops {
@ -36,7 +42,7 @@ struct capwap_message_elements_ops
void (*free)(void*); void (*free)(void*);
}; };
const struct capwap_message_elements_ops *capwap_get_message_element_ops(unsigned short code); const struct capwap_message_elements_ops *capwap_get_message_element_ops(const struct capwap_message_element_id id);
/*********************************************************************************************************************/ /*********************************************************************************************************************/
/* Standard message elements */ /* Standard message elements */
@ -130,8 +136,9 @@ const struct capwap_message_elements_ops *capwap_get_message_element_ops(unsigne
#define CAPWAP_MESSAGE_ELEMENT_ARRAY 1 #define CAPWAP_MESSAGE_ELEMENT_ARRAY 1
int capwap_get_message_element_category(uint16_t type); int capwap_get_message_element_category(uint16_t type);
struct capwap_message_element_itemlist { struct capwap_message_element_itemlist
uint16_t type; {
struct capwap_message_element_id id;
int category; int category;
void* data; void* data;
}; };
@ -150,7 +157,9 @@ int capwap_parsing_packet(struct capwap_packet_rxmng* rxmngpacket, struct capwap
int capwap_validate_parsed_packet(struct capwap_parsed_packet* packet, struct capwap_array* returnedmessage); int capwap_validate_parsed_packet(struct capwap_parsed_packet* packet, struct capwap_array* returnedmessage);
void capwap_free_parsed_packet(struct capwap_parsed_packet* packet); void capwap_free_parsed_packet(struct capwap_parsed_packet* packet);
struct capwap_list_item* capwap_get_message_element(struct capwap_parsed_packet* packet, uint16_t type); struct capwap_list_item *capwap_get_message_element(struct capwap_parsed_packet *packet,
void* capwap_get_message_element_data(struct capwap_parsed_packet* packet, uint16_t type); const struct capwap_message_element_id id);
void *capwap_get_message_element_data(struct capwap_parsed_packet *packet,
const struct capwap_message_element_id id);
#endif /* __CAPWAP_ELEMENT_HEADER__ */ #endif /* __CAPWAP_ELEMENT_HEADER__ */

View File

@ -1,7 +1,10 @@
#ifndef __CAPWAP_ELEMENT_80211_ADD_WLAN_HEADER__ #ifndef __CAPWAP_ELEMENT_80211_ADD_WLAN_HEADER__
#define __CAPWAP_ELEMENT_80211_ADD_WLAN_HEADER__ #define __CAPWAP_ELEMENT_80211_ADD_WLAN_HEADER__
#define CAPWAP_ELEMENT_80211_ADD_WLAN 1024 #define CAPWAP_ELEMENT_80211_ADD_WLAN_VENDOR 0
#define CAPWAP_ELEMENT_80211_ADD_WLAN_TYPE 1024
#define CAPWAP_ELEMENT_80211_ADD_WLAN (struct capwap_message_element_id){ .vendor = CAPWAP_ELEMENT_80211_ADD_WLAN_VENDOR, .type = CAPWAP_ELEMENT_80211_ADD_WLAN_TYPE }
#define CAPWAP_ADD_WLAN_GROUPTSC_LENGTH 6 #define CAPWAP_ADD_WLAN_GROUPTSC_LENGTH 6
#define CAPWAP_ADD_WLAN_SSID_LENGTH 32 #define CAPWAP_ADD_WLAN_SSID_LENGTH 32

View File

@ -1,7 +1,10 @@
#ifndef __CAPWAP_ELEMENT_80211_ANTENNA_HEADER__ #ifndef __CAPWAP_ELEMENT_80211_ANTENNA_HEADER__
#define __CAPWAP_ELEMENT_80211_ANTENNA_HEADER__ #define __CAPWAP_ELEMENT_80211_ANTENNA_HEADER__
#define CAPWAP_ELEMENT_80211_ANTENNA 1025 #define CAPWAP_ELEMENT_80211_ANTENNA_VENDOR 0
#define CAPWAP_ELEMENT_80211_ANTENNA_TYPE 1025
#define CAPWAP_ELEMENT_80211_ANTENNA (struct capwap_message_element_id){ .vendor = CAPWAP_ELEMENT_80211_ANTENNA_VENDOR, .type = CAPWAP_ELEMENT_80211_ANTENNA_TYPE }
#define CAPWAP_ANTENNA_DIVERSITY_DISABLE 0 #define CAPWAP_ANTENNA_DIVERSITY_DISABLE 0
#define CAPWAP_ANTENNA_DIVERSITY_ENABLE 1 #define CAPWAP_ANTENNA_DIVERSITY_ENABLE 1

View File

@ -1,7 +1,10 @@
#ifndef __CAPWAP_ELEMENT_80211_ASSIGN_BSSID_HEADER__ #ifndef __CAPWAP_ELEMENT_80211_ASSIGN_BSSID_HEADER__
#define __CAPWAP_ELEMENT_80211_ASSIGN_BSSID_HEADER__ #define __CAPWAP_ELEMENT_80211_ASSIGN_BSSID_HEADER__
#define CAPWAP_ELEMENT_80211_ASSIGN_BSSID 1026 #define CAPWAP_ELEMENT_80211_ASSIGN_BSSID_VENDOR 0
#define CAPWAP_ELEMENT_80211_ASSIGN_BSSID_TYPE 1026
#define CAPWAP_ELEMENT_80211_ASSIGN_BSSID (struct capwap_message_element_id){ .vendor = CAPWAP_ELEMENT_80211_ASSIGN_BSSID_VENDOR, .type = CAPWAP_ELEMENT_80211_ASSIGN_BSSID_TYPE }
struct capwap_80211_assignbssid_element { struct capwap_80211_assignbssid_element {
uint8_t radioid; uint8_t radioid;

View File

@ -1,7 +1,10 @@
#ifndef __CAPWAP_ELEMENT_80211_DELETE_WLAN_HEADER__ #ifndef __CAPWAP_ELEMENT_80211_DELETE_WLAN_HEADER__
#define __CAPWAP_ELEMENT_80211_DELETE_WLAN_HEADER__ #define __CAPWAP_ELEMENT_80211_DELETE_WLAN_HEADER__
#define CAPWAP_ELEMENT_80211_DELETE_WLAN 1027 #define CAPWAP_ELEMENT_80211_DELETE_WLAN_VENDOR 0
#define CAPWAP_ELEMENT_80211_DELETE_WLAN_TYPE 1027
#define CAPWAP_ELEMENT_80211_DELETE_WLAN (struct capwap_message_element_id){ .vendor = CAPWAP_ELEMENT_80211_DELETE_WLAN_VENDOR, .type = CAPWAP_ELEMENT_80211_DELETE_WLAN_TYPE }
struct capwap_80211_deletewlan_element { struct capwap_80211_deletewlan_element {
uint8_t radioid; uint8_t radioid;

View File

@ -1,7 +1,10 @@
#ifndef __CAPWAP_ELEMENT_80211_DIRECTSEQUENCECONTROL_HEADER__ #ifndef __CAPWAP_ELEMENT_80211_DIRECTSEQUENCECONTROL_HEADER__
#define __CAPWAP_ELEMENT_80211_DIRECTSEQUENCECONTROL_HEADER__ #define __CAPWAP_ELEMENT_80211_DIRECTSEQUENCECONTROL_HEADER__
#define CAPWAP_ELEMENT_80211_DIRECTSEQUENCECONTROL 1028 #define CAPWAP_ELEMENT_80211_DIRECTSEQUENCECONTROL_VENDOR 0
#define CAPWAP_ELEMENT_80211_DIRECTSEQUENCECONTROL_TYPE 1028
#define CAPWAP_ELEMENT_80211_DIRECTSEQUENCECONTROL (struct capwap_message_element_id){ .vendor = CAPWAP_ELEMENT_80211_DIRECTSEQUENCECONTROL_VENDOR, .type = CAPWAP_ELEMENT_80211_DIRECTSEQUENCECONTROL_TYPE }
#define CAPWAP_DSCONTROL_CCA_EDONLY 1 #define CAPWAP_DSCONTROL_CCA_EDONLY 1
#define CAPWAP_DSCONTROL_CCA_CSONLY 2 #define CAPWAP_DSCONTROL_CCA_CSONLY 2

View File

@ -1,7 +1,10 @@
#ifndef __CAPWAP_ELEMENT_80211_IE_HEADER__ #ifndef __CAPWAP_ELEMENT_80211_IE_HEADER__
#define __CAPWAP_ELEMENT_80211_IE_HEADER__ #define __CAPWAP_ELEMENT_80211_IE_HEADER__
#define CAPWAP_ELEMENT_80211_IE 1029 #define CAPWAP_ELEMENT_80211_IE_VENDOR 0
#define CAPWAP_ELEMENT_80211_IE_TYPE 1029
#define CAPWAP_ELEMENT_80211_IE (struct capwap_message_element_id){ .vendor = CAPWAP_ELEMENT_80211_IE_VENDOR, .type = CAPWAP_ELEMENT_80211_IE_TYPE }
#define CAPWAP_IE_BEACONS_ASSOCIATED 0x80 #define CAPWAP_IE_BEACONS_ASSOCIATED 0x80
#define CAPWAP_IE_PROBE_RESPONSE_ASSOCIATED 0x40 #define CAPWAP_IE_PROBE_RESPONSE_ASSOCIATED 0x40

View File

@ -1,7 +1,10 @@
#ifndef __CAPWAP_ELEMENT_80211_MACOPERATION_HEADER__ #ifndef __CAPWAP_ELEMENT_80211_MACOPERATION_HEADER__
#define __CAPWAP_ELEMENT_80211_MACOPERATION_HEADER__ #define __CAPWAP_ELEMENT_80211_MACOPERATION_HEADER__
#define CAPWAP_ELEMENT_80211_MACOPERATION 1030 #define CAPWAP_ELEMENT_80211_MACOPERATION_VENDOR 0
#define CAPWAP_ELEMENT_80211_MACOPERATION_TYPE 1030
#define CAPWAP_ELEMENT_80211_MACOPERATION (struct capwap_message_element_id){ .vendor = CAPWAP_ELEMENT_80211_MACOPERATION_VENDOR, .type = CAPWAP_ELEMENT_80211_MACOPERATION_TYPE }
struct capwap_80211_macoperation_element { struct capwap_80211_macoperation_element {
uint8_t radioid; uint8_t radioid;

View File

@ -1,7 +1,10 @@
#ifndef __CAPWAP_ELEMENT_80211_MIC_COUNTERMEASURES_HEADER__ #ifndef __CAPWAP_ELEMENT_80211_MIC_COUNTERMEASURES_HEADER__
#define __CAPWAP_ELEMENT_80211_MIC_COUNTERMEASURES_HEADER__ #define __CAPWAP_ELEMENT_80211_MIC_COUNTERMEASURES_HEADER__
#define CAPWAP_ELEMENT_80211_MIC_COUNTERMEASURES 1031 #define CAPWAP_ELEMENT_80211_MIC_COUNTERMEASURES_VENDOR 0
#define CAPWAP_ELEMENT_80211_MIC_COUNTERMEASURES_TYPE 1031
#define CAPWAP_ELEMENT_80211_MIC_COUNTERMEASURES (struct capwap_message_element_id){ .vendor = CAPWAP_ELEMENT_80211_MIC_COUNTERMEASURES_VENDOR, .type = CAPWAP_ELEMENT_80211_MIC_COUNTERMEASURES_TYPE }
struct capwap_80211_miccountermeasures_element { struct capwap_80211_miccountermeasures_element {
uint8_t radioid; uint8_t radioid;

View File

@ -1,7 +1,10 @@
#ifndef __CAPWAP_ELEMENT_80211_MULTIDOMAINCAPABILITY_HEADER__ #ifndef __CAPWAP_ELEMENT_80211_MULTIDOMAINCAPABILITY_HEADER__
#define __CAPWAP_ELEMENT_80211_MULTIDOMAINCAPABILITY_HEADER__ #define __CAPWAP_ELEMENT_80211_MULTIDOMAINCAPABILITY_HEADER__
#define CAPWAP_ELEMENT_80211_MULTIDOMAINCAPABILITY 1032 #define CAPWAP_ELEMENT_80211_MULTIDOMAINCAPABILITY_VENDOR 0
#define CAPWAP_ELEMENT_80211_MULTIDOMAINCAPABILITY_TYPE 1032
#define CAPWAP_ELEMENT_80211_MULTIDOMAINCAPABILITY (struct capwap_message_element_id){ .vendor = CAPWAP_ELEMENT_80211_MULTIDOMAINCAPABILITY_VENDOR, .type = CAPWAP_ELEMENT_80211_MULTIDOMAINCAPABILITY_TYPE }
struct capwap_80211_multidomaincapability_element { struct capwap_80211_multidomaincapability_element {
uint8_t radioid; uint8_t radioid;

View File

@ -1,7 +1,10 @@
#ifndef __CAPWAP_ELEMENT_80211_OFDMCONTROL_HEADER__ #ifndef __CAPWAP_ELEMENT_80211_OFDMCONTROL_HEADER__
#define __CAPWAP_ELEMENT_80211_OFDMCONTROL_HEADER__ #define __CAPWAP_ELEMENT_80211_OFDMCONTROL_HEADER__
#define CAPWAP_ELEMENT_80211_OFDMCONTROL 1033 #define CAPWAP_ELEMENT_80211_OFDMCONTROL_VENDOR 0
#define CAPWAP_ELEMENT_80211_OFDMCONTROL_TYPE 1033
#define CAPWAP_ELEMENT_80211_OFDMCONTROL (struct capwap_message_element_id){ .vendor = CAPWAP_ELEMENT_80211_OFDMCONTROL_VENDOR, .type = CAPWAP_ELEMENT_80211_OFDMCONTROL_TYPE }
#define CAPWAP_OFDMCONTROL_BAND_515_525 0x01 #define CAPWAP_OFDMCONTROL_BAND_515_525 0x01
#define CAPWAP_OFDMCONTROL_BAND_525_535 0x02 #define CAPWAP_OFDMCONTROL_BAND_525_535 0x02

View File

@ -1,7 +1,10 @@
#ifndef __CAPWAP_ELEMENT_80211_RATESET_HEADER__ #ifndef __CAPWAP_ELEMENT_80211_RATESET_HEADER__
#define __CAPWAP_ELEMENT_80211_RATESET_HEADER__ #define __CAPWAP_ELEMENT_80211_RATESET_HEADER__
#define CAPWAP_ELEMENT_80211_RATESET 1034 #define CAPWAP_ELEMENT_80211_RATESET_VENDOR 0
#define CAPWAP_ELEMENT_80211_RATESET_TYPE 1034
#define CAPWAP_ELEMENT_80211_RATESET (struct capwap_message_element_id){ .vendor = CAPWAP_ELEMENT_80211_RATESET_VENDOR, .type = CAPWAP_ELEMENT_80211_RATESET_TYPE }
#define CAPWAP_RATESET_MINLENGTH 2 #define CAPWAP_RATESET_MINLENGTH 2
#define CAPWAP_RATESET_MAXLENGTH 8 #define CAPWAP_RATESET_MAXLENGTH 8

View File

@ -1,7 +1,10 @@
#ifndef __CAPWAP_ELEMENT_80211_RSNA_ERROR_REPORT_HEADER__ #ifndef __CAPWAP_ELEMENT_80211_RSNA_ERROR_REPORT_HEADER__
#define __CAPWAP_ELEMENT_80211_RSNA_ERROR_REPORT_HEADER__ #define __CAPWAP_ELEMENT_80211_RSNA_ERROR_REPORT_HEADER__
#define CAPWAP_ELEMENT_80211_RSNA_ERROR_REPORT 1035 #define CAPWAP_ELEMENT_80211_RSNA_ERROR_REPORT_VENDOR 0
#define CAPWAP_ELEMENT_80211_RSNA_ERROR_REPORT_TYPE 1035
#define CAPWAP_ELEMENT_80211_RSNA_ERROR_REPORT (struct capwap_message_element_id){ .vendor = CAPWAP_ELEMENT_80211_RSNA_ERROR_REPORT_VENDOR, .type = CAPWAP_ELEMENT_80211_RSNA_ERROR_REPORT_TYPE }
struct capwap_80211_rsnaerrorreport_element { struct capwap_80211_rsnaerrorreport_element {
uint8_t client[MACADDRESS_EUI48_LENGTH]; uint8_t client[MACADDRESS_EUI48_LENGTH];

View File

@ -1,7 +1,10 @@
#ifndef __CAPWAP_ELEMENT_80211_STATION_HEADER__ #ifndef __CAPWAP_ELEMENT_80211_STATION_HEADER__
#define __CAPWAP_ELEMENT_80211_STATION_HEADER__ #define __CAPWAP_ELEMENT_80211_STATION_HEADER__
#define CAPWAP_ELEMENT_80211_STATION 1036 #define CAPWAP_ELEMENT_80211_STATION_VENDOR 0
#define CAPWAP_ELEMENT_80211_STATION_TYPE 1036
#define CAPWAP_ELEMENT_80211_STATION (struct capwap_message_element_id){ .vendor = CAPWAP_ELEMENT_80211_STATION_VENDOR, .type = CAPWAP_ELEMENT_80211_STATION_TYPE }
#define CAPWAP_STATION_RATES_MAXLENGTH 128 #define CAPWAP_STATION_RATES_MAXLENGTH 128

View File

@ -1,7 +1,10 @@
#ifndef __CAPWAP_ELEMENT_80211_STATION_SESSION_KEY_HEADER__ #ifndef __CAPWAP_ELEMENT_80211_STATION_SESSION_KEY_HEADER__
#define __CAPWAP_ELEMENT_80211_STATION_SESSION_KEY_HEADER__ #define __CAPWAP_ELEMENT_80211_STATION_SESSION_KEY_HEADER__
#define CAPWAP_ELEMENT_80211_STATION_SESSION_KEY_PROFILE 1038 #define CAPWAP_ELEMENT_80211_STATION_SESSION_KEY_PROFILE_VENDOR 0
#define CAPWAP_ELEMENT_80211_STATION_SESSION_KEY_PROFILE_TYPE 1038
#define CAPWAP_ELEMENT_80211_STATION_SESSION_KEY_PROFILE (struct capwap_message_element_id){ .vendor = CAPWAP_ELEMENT_80211_STATION_SESSION_KEY_PROFILE_VENDOR, .type = CAPWAP_ELEMENT_80211_STATION_SESSION_KEY_PROFILE_TYPE }
#define CAPWAP_STATION_SESSION_KEY_PAIRWISE_TSC_LENGTH 6 #define CAPWAP_STATION_SESSION_KEY_PAIRWISE_TSC_LENGTH 6
#define CAPWAP_STATION_SESSION_KEY_PAIRWISE_RSC_LENGTH 6 #define CAPWAP_STATION_SESSION_KEY_PAIRWISE_RSC_LENGTH 6

View File

@ -1,7 +1,10 @@
#ifndef __CAPWAP_ELEMENT_80211_STATION_QOS_PROFILE_HEADER__ #ifndef __CAPWAP_ELEMENT_80211_STATION_QOS_PROFILE_HEADER__
#define __CAPWAP_ELEMENT_80211_STATION_QOS_PROFILE_HEADER__ #define __CAPWAP_ELEMENT_80211_STATION_QOS_PROFILE_HEADER__
#define CAPWAP_ELEMENT_80211_STATION_QOS_PROFILE 1037 #define CAPWAP_ELEMENT_80211_STATION_QOS_PROFILE_VENDOR 0
#define CAPWAP_ELEMENT_80211_STATION_QOS_PROFILE_TYPE 1037
#define CAPWAP_ELEMENT_80211_STATION_QOS_PROFILE (struct capwap_message_element_id){ .vendor = CAPWAP_ELEMENT_80211_STATION_QOS_PROFILE_VENDOR, .type = CAPWAP_ELEMENT_80211_STATION_QOS_PROFILE_TYPE }
struct capwap_80211_stationqos_element { struct capwap_80211_stationqos_element {
uint8_t address[MACADDRESS_EUI48_LENGTH]; uint8_t address[MACADDRESS_EUI48_LENGTH];

View File

@ -1,7 +1,10 @@
#ifndef __CAPWAP_ELEMENT_80211_STATISTICS_HEADER__ #ifndef __CAPWAP_ELEMENT_80211_STATISTICS_HEADER__
#define __CAPWAP_ELEMENT_80211_STATISTICS_HEADER__ #define __CAPWAP_ELEMENT_80211_STATISTICS_HEADER__
#define CAPWAP_ELEMENT_80211_STATISTICS 1039 #define CAPWAP_ELEMENT_80211_STATISTICS_VENDOR 0
#define CAPWAP_ELEMENT_80211_STATISTICS_TYPE 1039
#define CAPWAP_ELEMENT_80211_STATISTICS (struct capwap_message_element_id){ .vendor = CAPWAP_ELEMENT_80211_STATISTICS_VENDOR, .type = CAPWAP_ELEMENT_80211_STATISTICS_TYPE }
struct capwap_80211_statistics_element { struct capwap_80211_statistics_element {
uint8_t radioid; uint8_t radioid;

View File

@ -1,7 +1,10 @@
#ifndef __CAPWAP_ELEMENT_80211_SUPPORTEDRATES_HEADER__ #ifndef __CAPWAP_ELEMENT_80211_SUPPORTEDRATES_HEADER__
#define __CAPWAP_ELEMENT_80211_SUPPORTEDRATES_HEADER__ #define __CAPWAP_ELEMENT_80211_SUPPORTEDRATES_HEADER__
#define CAPWAP_ELEMENT_80211_SUPPORTEDRATES 1040 #define CAPWAP_ELEMENT_80211_SUPPORTEDRATES_VENDOR 0
#define CAPWAP_ELEMENT_80211_SUPPORTEDRATES_TYPE 1040
#define CAPWAP_ELEMENT_80211_SUPPORTEDRATES (struct capwap_message_element_id){ .vendor = CAPWAP_ELEMENT_80211_SUPPORTEDRATES_VENDOR, .type = CAPWAP_ELEMENT_80211_SUPPORTEDRATES_TYPE }
#define CAPWAP_SUPPORTEDRATES_MINLENGTH 2 #define CAPWAP_SUPPORTEDRATES_MINLENGTH 2
#define CAPWAP_SUPPORTEDRATES_MAXLENGTH 8 #define CAPWAP_SUPPORTEDRATES_MAXLENGTH 8

View File

@ -1,7 +1,10 @@
#ifndef __CAPWAP_ELEMENT_80211_TXPOWER_HEADER__ #ifndef __CAPWAP_ELEMENT_80211_TXPOWER_HEADER__
#define __CAPWAP_ELEMENT_80211_TXPOWER_HEADER__ #define __CAPWAP_ELEMENT_80211_TXPOWER_HEADER__
#define CAPWAP_ELEMENT_80211_TXPOWER 1041 #define CAPWAP_ELEMENT_80211_TXPOWER_VENDOR 0
#define CAPWAP_ELEMENT_80211_TXPOWER_TYPE 1041
#define CAPWAP_ELEMENT_80211_TXPOWER (struct capwap_message_element_id){ .vendor = CAPWAP_ELEMENT_80211_TXPOWER_VENDOR, .type = CAPWAP_ELEMENT_80211_TXPOWER_TYPE }
struct capwap_80211_txpower_element { struct capwap_80211_txpower_element {
uint8_t radioid; uint8_t radioid;

View File

@ -1,7 +1,10 @@
#ifndef __CAPWAP_ELEMENT_80211_TXPOWERLEVEL_HEADER__ #ifndef __CAPWAP_ELEMENT_80211_TXPOWERLEVEL_HEADER__
#define __CAPWAP_ELEMENT_80211_TXPOWERLEVEL_HEADER__ #define __CAPWAP_ELEMENT_80211_TXPOWERLEVEL_HEADER__
#define CAPWAP_ELEMENT_80211_TXPOWERLEVEL 1042 #define CAPWAP_ELEMENT_80211_TXPOWERLEVEL_VENDOR 0
#define CAPWAP_ELEMENT_80211_TXPOWERLEVEL_TYPE 1042
#define CAPWAP_ELEMENT_80211_TXPOWERLEVEL (struct capwap_message_element_id){ .vendor = CAPWAP_ELEMENT_80211_TXPOWERLEVEL_VENDOR, .type = CAPWAP_ELEMENT_80211_TXPOWERLEVEL_TYPE }
#define CAPWAP_TXPOWERLEVEL_MAXLENGTH 8 #define CAPWAP_TXPOWERLEVEL_MAXLENGTH 8

View File

@ -1,7 +1,10 @@
#ifndef __CAPWAP_ELEMENT_80211_UPDATE_STATION_QOS_HEADER__ #ifndef __CAPWAP_ELEMENT_80211_UPDATE_STATION_QOS_HEADER__
#define __CAPWAP_ELEMENT_80211_UPDATE_STATION_QOS_HEADER__ #define __CAPWAP_ELEMENT_80211_UPDATE_STATION_QOS_HEADER__
#define CAPWAP_ELEMENT_80211_UPDATE_STATION_QOS 1043 #define CAPWAP_ELEMENT_80211_UPDATE_STATION_QOS_VENDOR 0
#define CAPWAP_ELEMENT_80211_UPDATE_STATION_QOS_TYPE 1043
#define CAPWAP_ELEMENT_80211_UPDATE_STATION_QOS (struct capwap_message_element_id){ .vendor = CAPWAP_ELEMENT_80211_UPDATE_STATION_QOS_VENDOR, .type = CAPWAP_ELEMENT_80211_UPDATE_STATION_QOS_TYPE }
#define CAPWAP_UPDATE_STATION_QOS_SUBELEMENTS 4 #define CAPWAP_UPDATE_STATION_QOS_SUBELEMENTS 4

View File

@ -1,7 +1,10 @@
#ifndef __CAPWAP_ELEMENT_80211_UPDATE_WLAN_HEADER__ #ifndef __CAPWAP_ELEMENT_80211_UPDATE_WLAN_HEADER__
#define __CAPWAP_ELEMENT_80211_UPDATE_WLAN_HEADER__ #define __CAPWAP_ELEMENT_80211_UPDATE_WLAN_HEADER__
#define CAPWAP_ELEMENT_80211_UPDATE_WLAN 1044 #define CAPWAP_ELEMENT_80211_UPDATE_WLAN_VENDOR 0
#define CAPWAP_ELEMENT_80211_UPDATE_WLAN_TYPE 1044
#define CAPWAP_ELEMENT_80211_UPDATE_WLAN (struct capwap_message_element_id){ .vendor = CAPWAP_ELEMENT_80211_UPDATE_WLAN_VENDOR, .type = CAPWAP_ELEMENT_80211_UPDATE_WLAN_TYPE }
#define CAPWAP_UPDATE_WLAN_CAPABILITY_ESS 0x8000 #define CAPWAP_UPDATE_WLAN_CAPABILITY_ESS 0x8000
#define CAPWAP_UPDATE_WLAN_CAPABILITY_IBSS 0x4000 #define CAPWAP_UPDATE_WLAN_CAPABILITY_IBSS 0x4000

View File

@ -1,7 +1,10 @@
#ifndef __CAPWAP_ELEMENT_80211_WTP_QOS_HEADER__ #ifndef __CAPWAP_ELEMENT_80211_WTP_QOS_HEADER__
#define __CAPWAP_ELEMENT_80211_WTP_QOS_HEADER__ #define __CAPWAP_ELEMENT_80211_WTP_QOS_HEADER__
#define CAPWAP_ELEMENT_80211_WTP_QOS 1045 #define CAPWAP_ELEMENT_80211_WTP_QOS_VENDOR 0
#define CAPWAP_ELEMENT_80211_WTP_QOS_TYPE 1045
#define CAPWAP_ELEMENT_80211_WTP_QOS (struct capwap_message_element_id){ .vendor = CAPWAP_ELEMENT_80211_WTP_QOS_VENDOR, .type = CAPWAP_ELEMENT_80211_WTP_QOS_TYPE }
#define CAPWAP_WTP_QOS_SUBELEMENT_VOICE 0 #define CAPWAP_WTP_QOS_SUBELEMENT_VOICE 0
#define CAPWAP_WTP_QOS_SUBELEMENT_VIDEO 1 #define CAPWAP_WTP_QOS_SUBELEMENT_VIDEO 1

View File

@ -1,7 +1,10 @@
#ifndef __CAPWAP_ELEMENT_80211_WTP_RADIO_CONF_HEADER__ #ifndef __CAPWAP_ELEMENT_80211_WTP_RADIO_CONF_HEADER__
#define __CAPWAP_ELEMENT_80211_WTP_RADIO_CONF_HEADER__ #define __CAPWAP_ELEMENT_80211_WTP_RADIO_CONF_HEADER__
#define CAPWAP_ELEMENT_80211_WTP_RADIO_CONF 1046 #define CAPWAP_ELEMENT_80211_WTP_RADIO_CONF_VENDOR 0
#define CAPWAP_ELEMENT_80211_WTP_RADIO_CONF_TYPE 1046
#define CAPWAP_ELEMENT_80211_WTP_RADIO_CONF (struct capwap_message_element_id){ .vendor = CAPWAP_ELEMENT_80211_WTP_RADIO_CONF_VENDOR, .type = CAPWAP_ELEMENT_80211_WTP_RADIO_CONF_TYPE }
#define CAPWAP_WTP_RADIO_CONF_COUNTRY_LENGTH 4 #define CAPWAP_WTP_RADIO_CONF_COUNTRY_LENGTH 4

View File

@ -1,7 +1,10 @@
#ifndef __CAPWAP_ELEMENT_80211_WTP_RADIO_FAIL_ALARM_HEADER__ #ifndef __CAPWAP_ELEMENT_80211_WTP_RADIO_FAIL_ALARM_HEADER__
#define __CAPWAP_ELEMENT_80211_WTP_RADIO_FAIL_ALARM_HEADER__ #define __CAPWAP_ELEMENT_80211_WTP_RADIO_FAIL_ALARM_HEADER__
#define CAPWAP_ELEMENT_80211_WTP_RADIO_FAIL_ALARM 1047 #define CAPWAP_ELEMENT_80211_WTP_RADIO_FAIL_ALARM_VENDOR 0
#define CAPWAP_ELEMENT_80211_WTP_RADIO_FAIL_ALARM_TYPE 1047
#define CAPWAP_ELEMENT_80211_WTP_RADIO_FAIL_ALARM (struct capwap_message_element_id){ .vendor = CAPWAP_ELEMENT_80211_WTP_RADIO_FAIL_ALARM_VENDOR, .type = CAPWAP_ELEMENT_80211_WTP_RADIO_FAIL_ALARM_TYPE }
#define CAPWAP_WTP_RADIO_FAIL_ALARM_TYPE_RECEIVER 1 #define CAPWAP_WTP_RADIO_FAIL_ALARM_TYPE_RECEIVER 1
#define CAPWAP_WTP_RADIO_FAIL_ALARM_TYPE_TRANSMITTER 2 #define CAPWAP_WTP_RADIO_FAIL_ALARM_TYPE_TRANSMITTER 2

View File

@ -1,7 +1,10 @@
#ifndef __CAPWAP_ELEMENT_80211_WTPRADIOINFORMATION_HEADER__ #ifndef __CAPWAP_ELEMENT_80211_WTPRADIOINFORMATION_HEADER__
#define __CAPWAP_ELEMENT_80211_WTPRADIOINFORMATION_HEADER__ #define __CAPWAP_ELEMENT_80211_WTPRADIOINFORMATION_HEADER__
#define CAPWAP_ELEMENT_80211_WTPRADIOINFORMATION 1048 #define CAPWAP_ELEMENT_80211_WTPRADIOINFORMATION_VENDOR 0
#define CAPWAP_ELEMENT_80211_WTPRADIOINFORMATION_TYPE 1048
#define CAPWAP_ELEMENT_80211_WTPRADIOINFORMATION (struct capwap_message_element_id){ .vendor = CAPWAP_ELEMENT_80211_WTPRADIOINFORMATION_VENDOR, .type = CAPWAP_ELEMENT_80211_WTPRADIOINFORMATION_TYPE }
#define CAPWAP_RADIO_TYPE_80211B 0x00000001 #define CAPWAP_RADIO_TYPE_80211B 0x00000001
#define CAPWAP_RADIO_TYPE_80211A 0x00000002 #define CAPWAP_RADIO_TYPE_80211A 0x00000002

View File

@ -1,7 +1,10 @@
#ifndef __CAPWAP_ELEMENT_80211N_RADIO_CONF_HEADER__ #ifndef __CAPWAP_ELEMENT_80211N_RADIO_CONF_HEADER__
#define __CAPWAP_ELEMENT_80211N_RADIO_CONF_HEADER__ #define __CAPWAP_ELEMENT_80211N_RADIO_CONF_HEADER__
#define CAPWAP_ELEMENT_80211N_RADIO_CONF 1046 #define CAPWAP_ELEMENT_80211N_RADIO_CONF_VENDOR 0
#define CAPWAP_ELEMENT_80211N_RADIO_CONF_TYPE 1046
#define CAPWAP_ELEMENT_80211N_RADIO_CONF (struct capwap_message_element_id){ .vendor = CAPWAP_ELEMENT_80211N_RADIO_CONF_VENDOR, .type = CAPWAP_ELEMENT_80211N_RADIO_CONF_TYPE }
#define CAPWAP_80211N_RADIO_CONF_A_MSDU (1 << 7) #define CAPWAP_80211N_RADIO_CONF_A_MSDU (1 << 7)
#define CAPWAP_80211N_RADIO_CONF_A_MPDU (1 << 6) #define CAPWAP_80211N_RADIO_CONF_A_MPDU (1 << 6)

View File

@ -1,7 +1,10 @@
#ifndef __CAPWAP_ELEMENT_80211N_STATION_INFO_HEADER__ #ifndef __CAPWAP_ELEMENT_80211N_STATION_INFO_HEADER__
#define __CAPWAP_ELEMENT_80211N_STATION_INFO_HEADER__ #define __CAPWAP_ELEMENT_80211N_STATION_INFO_HEADER__
#define CAPWAP_ELEMENT_80211N_STATION_INFO 1046 #define CAPWAP_ELEMENT_80211N_STATION_INFO_VENDOR 0
#define CAPWAP_ELEMENT_80211N_STATION_INFO_TYPE 1046
#define CAPWAP_ELEMENT_80211N_STATION_INFO (struct capwap_message_element_id){ .vendor = CAPWAP_ELEMENT_80211N_STATION_INFO_VENDOR, .type = CAPWAP_ELEMENT_80211N_STATION_INFO_TYPE }
#define CAPWAP_80211N_STATION_INFO_40MHZ_BANDWITH (1 << 7) #define CAPWAP_80211N_STATION_INFO_40MHZ_BANDWITH (1 << 7)
#define CAPWAP_80211N_STATION_INFO_POWER_SAVE_MODE ((1 << 6) | (1 << 5)) #define CAPWAP_80211N_STATION_INFO_POWER_SAVE_MODE ((1 << 6) | (1 << 5))

View File

@ -1,7 +1,10 @@
#ifndef __CAPWAP_ELEMENT_ACDESCRIPTOR_HEADER__ #ifndef __CAPWAP_ELEMENT_ACDESCRIPTOR_HEADER__
#define __CAPWAP_ELEMENT_ACDESCRIPTOR_HEADER__ #define __CAPWAP_ELEMENT_ACDESCRIPTOR_HEADER__
#define CAPWAP_ELEMENT_ACDESCRIPTION 1 #define CAPWAP_ELEMENT_ACDESCRIPTION_VENDOR 0
#define CAPWAP_ELEMENT_ACDESCRIPTION_TYPE 1
#define CAPWAP_ELEMENT_ACDESCRIPTION (struct capwap_message_element_id){ .vendor = CAPWAP_ELEMENT_ACDESCRIPTION_VENDOR, .type = CAPWAP_ELEMENT_ACDESCRIPTION_TYPE }
#define CAPWAP_ACDESC_SECURITY_PRESHARED_KEY 0x04 #define CAPWAP_ACDESC_SECURITY_PRESHARED_KEY 0x04
#define CAPWAP_ACDESC_SECURITY_X509_CERT 0x02 #define CAPWAP_ACDESC_SECURITY_X509_CERT 0x02

View File

@ -1,7 +1,10 @@
#ifndef __CAPWAP_ELEMENT_ACIPV4LIST_HEADER__ #ifndef __CAPWAP_ELEMENT_ACIPV4LIST_HEADER__
#define __CAPWAP_ELEMENT_ACIPV4LIST_HEADER__ #define __CAPWAP_ELEMENT_ACIPV4LIST_HEADER__
#define CAPWAP_ELEMENT_ACIPV4LIST 2 #define CAPWAP_ELEMENT_ACIPV4LIST_VENDOR 0
#define CAPWAP_ELEMENT_ACIPV4LIST_TYPE 2
#define CAPWAP_ELEMENT_ACIPV4LIST (struct capwap_message_element_id){ .vendor = CAPWAP_ELEMENT_ACIPV4LIST_VENDOR, .type = CAPWAP_ELEMENT_ACIPV4LIST_TYPE }
#define CAPWAP_ACIPV4LIST_MAX_ELEMENTS 1024 #define CAPWAP_ACIPV4LIST_MAX_ELEMENTS 1024

View File

@ -1,7 +1,10 @@
#ifndef __CAPWAP_ELEMENT_ACIPV6LIST_HEADER__ #ifndef __CAPWAP_ELEMENT_ACIPV6LIST_HEADER__
#define __CAPWAP_ELEMENT_ACIPV6LIST_HEADER__ #define __CAPWAP_ELEMENT_ACIPV6LIST_HEADER__
#define CAPWAP_ELEMENT_ACIPV6LIST 3 #define CAPWAP_ELEMENT_ACIPV6LIST_VENDOR 0
#define CAPWAP_ELEMENT_ACIPV6LIST_TYPE 3
#define CAPWAP_ELEMENT_ACIPV6LIST (struct capwap_message_element_id){ .vendor = CAPWAP_ELEMENT_ACIPV6LIST_VENDOR, .type = CAPWAP_ELEMENT_ACIPV6LIST_TYPE }
#define CAPWAP_ACIPV6LIST_MAX_ELEMENTS 1024 #define CAPWAP_ACIPV6LIST_MAX_ELEMENTS 1024

View File

@ -1,7 +1,10 @@
#ifndef __CAPWAP_ELEMENT_ACNAME_HEADER__ #ifndef __CAPWAP_ELEMENT_ACNAME_HEADER__
#define __CAPWAP_ELEMENT_ACNAME_HEADER__ #define __CAPWAP_ELEMENT_ACNAME_HEADER__
#define CAPWAP_ELEMENT_ACNAME 4 #define CAPWAP_ELEMENT_ACNAME_VENDOR 0
#define CAPWAP_ELEMENT_ACNAME_TYPE 4
#define CAPWAP_ELEMENT_ACNAME (struct capwap_message_element_id){ .vendor = CAPWAP_ELEMENT_ACNAME_VENDOR, .type = CAPWAP_ELEMENT_ACNAME_TYPE }
#define CAPWAP_ACNAME_MAXLENGTH 512 #define CAPWAP_ACNAME_MAXLENGTH 512

View File

@ -1,7 +1,10 @@
#ifndef __CAPWAP_ELEMENT_ACNAMEPRIORITY_HEADER__ #ifndef __CAPWAP_ELEMENT_ACNAMEPRIORITY_HEADER__
#define __CAPWAP_ELEMENT_ACNAMEPRIORITY_HEADER__ #define __CAPWAP_ELEMENT_ACNAMEPRIORITY_HEADER__
#define CAPWAP_ELEMENT_ACNAMEPRIORITY 5 #define CAPWAP_ELEMENT_ACNAMEPRIORITY_VENDOR 0
#define CAPWAP_ELEMENT_ACNAMEPRIORITY_TYPE 5
#define CAPWAP_ELEMENT_ACNAMEPRIORITY (struct capwap_message_element_id){ .vendor = CAPWAP_ELEMENT_ACNAMEPRIORITY_VENDOR, .type = CAPWAP_ELEMENT_ACNAMEPRIORITY_TYPE }
#define CAPWAP_ACNAMEPRIORITY_MAXLENGTH 512 #define CAPWAP_ACNAMEPRIORITY_MAXLENGTH 512

View File

@ -1,7 +1,10 @@
#ifndef __CAPWAP_ELEMENT_AC_TIMESTAMP_HEADER__ #ifndef __CAPWAP_ELEMENT_AC_TIMESTAMP_HEADER__
#define __CAPWAP_ELEMENT_AC_TIMESTAMP_HEADER__ #define __CAPWAP_ELEMENT_AC_TIMESTAMP_HEADER__
#define CAPWAP_ELEMENT_ACTIMESTAMP 6 #define CAPWAP_ELEMENT_ACTIMESTAMP_VENDOR 0
#define CAPWAP_ELEMENT_ACTIMESTAMP_TYPE 6
#define CAPWAP_ELEMENT_ACTIMESTAMP (struct capwap_message_element_id){ .vendor = CAPWAP_ELEMENT_ACTIMESTAMP_VENDOR, .type = CAPWAP_ELEMENT_ACTIMESTAMP_TYPE }
struct capwap_actimestamp_element { struct capwap_actimestamp_element {

View File

@ -1,7 +1,10 @@
#ifndef __CAPWAP_ELEMENT_ADD_MAC_ACL__HEADER__ #ifndef __CAPWAP_ELEMENT_ADD_MAC_ACL__HEADER__
#define __CAPWAP_ELEMENT_ADD_MAC_ACL__HEADER__ #define __CAPWAP_ELEMENT_ADD_MAC_ACL__HEADER__
#define CAPWAP_ELEMENT_ADDMACACL 7 #define CAPWAP_ELEMENT_ADDMACACL_VENDOR 0
#define CAPWAP_ELEMENT_ADDMACACL_TYPE 7
#define CAPWAP_ELEMENT_ADDMACACL (struct capwap_message_element_id){ .vendor = CAPWAP_ELEMENT_ADDMACACL_VENDOR, .type = CAPWAP_ELEMENT_ADDMACACL_TYPE }
struct capwap_addmacacl_element { struct capwap_addmacacl_element {
uint8_t entry; uint8_t entry;

View File

@ -1,7 +1,10 @@
#ifndef __CAPWAP_ELEMENT_ADD_STATION__HEADER__ #ifndef __CAPWAP_ELEMENT_ADD_STATION__HEADER__
#define __CAPWAP_ELEMENT_ADD_STATION__HEADER__ #define __CAPWAP_ELEMENT_ADD_STATION__HEADER__
#define CAPWAP_ELEMENT_ADDSTATION 8 #define CAPWAP_ELEMENT_ADDSTATION_VENDOR 0
#define CAPWAP_ELEMENT_ADDSTATION_TYPE 8
#define CAPWAP_ELEMENT_ADDSTATION (struct capwap_message_element_id){ .vendor = CAPWAP_ELEMENT_ADDSTATION_VENDOR, .type = CAPWAP_ELEMENT_ADDSTATION_TYPE }
#define CAPWAP_ADDSTATION_VLAN_MAX_LENGTH 512 #define CAPWAP_ADDSTATION_VLAN_MAX_LENGTH 512

View File

@ -1,7 +1,10 @@
#ifndef __CAPWAP_ELEMENT_CONTROLIPV4_HEADER__ #ifndef __CAPWAP_ELEMENT_CONTROLIPV4_HEADER__
#define __CAPWAP_ELEMENT_CONTROLIPV4_HEADER__ #define __CAPWAP_ELEMENT_CONTROLIPV4_HEADER__
#define CAPWAP_ELEMENT_CONTROLIPV4 10 #define CAPWAP_ELEMENT_CONTROLIPV4_VENDOR 0
#define CAPWAP_ELEMENT_CONTROLIPV4_TYPE 10
#define CAPWAP_ELEMENT_CONTROLIPV4 (struct capwap_message_element_id){ .vendor = CAPWAP_ELEMENT_CONTROLIPV4_VENDOR, .type = CAPWAP_ELEMENT_CONTROLIPV4_TYPE }
struct capwap_controlipv4_element { struct capwap_controlipv4_element {
struct in_addr address; struct in_addr address;

View File

@ -1,7 +1,10 @@
#ifndef __CAPWAP_ELEMENT_CONTROLIPV6_HEADER__ #ifndef __CAPWAP_ELEMENT_CONTROLIPV6_HEADER__
#define __CAPWAP_ELEMENT_CONTROLIPV6_HEADER__ #define __CAPWAP_ELEMENT_CONTROLIPV6_HEADER__
#define CAPWAP_ELEMENT_CONTROLIPV6 11 #define CAPWAP_ELEMENT_CONTROLIPV6_VENDOR 0
#define CAPWAP_ELEMENT_CONTROLIPV6_TYPE 11
#define CAPWAP_ELEMENT_CONTROLIPV6 (struct capwap_message_element_id){ .vendor = CAPWAP_ELEMENT_CONTROLIPV6_VENDOR, .type = CAPWAP_ELEMENT_CONTROLIPV6_TYPE }
struct capwap_controlipv6_element { struct capwap_controlipv6_element {
struct in6_addr address; struct in6_addr address;

View File

@ -1,7 +1,10 @@
#ifndef __CAPWAP_ELEMENT_DATA_TRANSFER_DATA_HEADER__ #ifndef __CAPWAP_ELEMENT_DATA_TRANSFER_DATA_HEADER__
#define __CAPWAP_ELEMENT_DATA_TRANSFER_DATA_HEADER__ #define __CAPWAP_ELEMENT_DATA_TRANSFER_DATA_HEADER__
#define CAPWAP_ELEMENT_DATATRANSFERDATA 13 #define CAPWAP_ELEMENT_DATATRANSFERDATA_VENDOR 0
#define CAPWAP_ELEMENT_DATATRANSFERDATA_TYPE 13
#define CAPWAP_ELEMENT_DATATRANSFERDATA (struct capwap_message_element_id){ .vendor = CAPWAP_ELEMENT_DATATRANSFERDATA_VENDOR, .type = CAPWAP_ELEMENT_DATATRANSFERDATA_TYPE }
#define CAPWAP_DATATRANSFERDATA_TYPE_DATA_IS_INCLUDED 1 #define CAPWAP_DATATRANSFERDATA_TYPE_DATA_IS_INCLUDED 1
#define CAPWAP_DATATRANSFERDATA_TYPE_DATA_EOF 2 #define CAPWAP_DATATRANSFERDATA_TYPE_DATA_EOF 2

View File

@ -1,7 +1,10 @@
#ifndef __CAPWAP_ELEMENT_DATA_TRANSFER_MODE_HEADER__ #ifndef __CAPWAP_ELEMENT_DATA_TRANSFER_MODE_HEADER__
#define __CAPWAP_ELEMENT_DATA_TRANSFER_MODE_HEADER__ #define __CAPWAP_ELEMENT_DATA_TRANSFER_MODE_HEADER__
#define CAPWAP_ELEMENT_DATATRANSFERMODE 14 #define CAPWAP_ELEMENT_DATATRANSFERMODE_VENDOR 0
#define CAPWAP_ELEMENT_DATATRANSFERMODE_TYPE 14
#define CAPWAP_ELEMENT_DATATRANSFERMODE (struct capwap_message_element_id){ .vendor = CAPWAP_ELEMENT_DATATRANSFERMODE_VENDOR, .type = CAPWAP_ELEMENT_DATATRANSFERMODE_TYPE }
#define CAPWAP_DATATRANSFERMODE_MODE_CRASH_DUMP 1 #define CAPWAP_DATATRANSFERMODE_MODE_CRASH_DUMP 1
#define CAPWAP_DATATRANSFERMODE_MODE_MEMORY_DUMP 2 #define CAPWAP_DATATRANSFERMODE_MODE_MEMORY_DUMP 2

View File

@ -1,7 +1,10 @@
#ifndef __CAPWAP_ELEMENT_DECRYPT_ERROR_REPORT__HEADER__ #ifndef __CAPWAP_ELEMENT_DECRYPT_ERROR_REPORT__HEADER__
#define __CAPWAP_ELEMENT_DECRYPT_ERROR_REPORT__HEADER__ #define __CAPWAP_ELEMENT_DECRYPT_ERROR_REPORT__HEADER__
#define CAPWAP_ELEMENT_DECRYPTERRORREPORT 15 #define CAPWAP_ELEMENT_DECRYPTERRORREPORT_VENDOR 0
#define CAPWAP_ELEMENT_DECRYPTERRORREPORT_TYPE 15
#define CAPWAP_ELEMENT_DECRYPTERRORREPORT (struct capwap_message_element_id){ .vendor = CAPWAP_ELEMENT_DECRYPTERRORREPORT_VENDOR, .type = CAPWAP_ELEMENT_DECRYPTERRORREPORT_TYPE }
struct capwap_decrypterrorreport_element { struct capwap_decrypterrorreport_element {
uint8_t radioid; uint8_t radioid;

View File

@ -1,7 +1,10 @@
#ifndef __CAPWAP_ELEMENT_DECRYPTERRORREPORTPERIOD_HEADER__ #ifndef __CAPWAP_ELEMENT_DECRYPTERRORREPORTPERIOD_HEADER__
#define __CAPWAP_ELEMENT_DECRYPTERRORREPORTPERIOD_HEADER__ #define __CAPWAP_ELEMENT_DECRYPTERRORREPORTPERIOD_HEADER__
#define CAPWAP_ELEMENT_DECRYPTERRORREPORTPERIOD 16 #define CAPWAP_ELEMENT_DECRYPTERRORREPORTPERIOD_VENDOR 0
#define CAPWAP_ELEMENT_DECRYPTERRORREPORTPERIOD_TYPE 16
#define CAPWAP_ELEMENT_DECRYPTERRORREPORTPERIOD (struct capwap_message_element_id){ .vendor = CAPWAP_ELEMENT_DECRYPTERRORREPORTPERIOD_VENDOR, .type = CAPWAP_ELEMENT_DECRYPTERRORREPORTPERIOD_TYPE }
struct capwap_decrypterrorreportperiod_element { struct capwap_decrypterrorreportperiod_element {
uint8_t radioid; uint8_t radioid;

View File

@ -1,7 +1,10 @@
#ifndef __CAPWAP_ELEMENT_DELETE_MAC_ACL__HEADER__ #ifndef __CAPWAP_ELEMENT_DELETE_MAC_ACL__HEADER__
#define __CAPWAP_ELEMENT_DELETE_MAC_ACL__HEADER__ #define __CAPWAP_ELEMENT_DELETE_MAC_ACL__HEADER__
#define CAPWAP_ELEMENT_DELETEMACACL 17 #define CAPWAP_ELEMENT_DELETEMACACL_VENDOR 0
#define CAPWAP_ELEMENT_DELETEMACACL_TYPE 17
#define CAPWAP_ELEMENT_DELETEMACACL (struct capwap_message_element_id){ .vendor = CAPWAP_ELEMENT_DELETEMACACL_VENDOR, .type = CAPWAP_ELEMENT_DELETEMACACL_TYPE }
struct capwap_deletemacacl_element { struct capwap_deletemacacl_element {
uint8_t entry; uint8_t entry;

View File

@ -1,7 +1,10 @@
#ifndef __CAPWAP_ELEMENT_DELETE_STATION__HEADER__ #ifndef __CAPWAP_ELEMENT_DELETE_STATION__HEADER__
#define __CAPWAP_ELEMENT_DELETE_STATION__HEADER__ #define __CAPWAP_ELEMENT_DELETE_STATION__HEADER__
#define CAPWAP_ELEMENT_DELETESTATION 18 #define CAPWAP_ELEMENT_DELETESTATION_VENDOR 0
#define CAPWAP_ELEMENT_DELETESTATION_TYPE 18
#define CAPWAP_ELEMENT_DELETESTATION (struct capwap_message_element_id){ .vendor = CAPWAP_ELEMENT_DELETESTATION_VENDOR, .type = CAPWAP_ELEMENT_DELETESTATION_TYPE }
struct capwap_deletestation_element { struct capwap_deletestation_element {
uint8_t radioid; uint8_t radioid;

View File

@ -1,7 +1,10 @@
#ifndef __CAPWAP_ELEMENT_DISCOVERYTYPE_HEADER__ #ifndef __CAPWAP_ELEMENT_DISCOVERYTYPE_HEADER__
#define __CAPWAP_ELEMENT_DISCOVERYTYPE_HEADER__ #define __CAPWAP_ELEMENT_DISCOVERYTYPE_HEADER__
#define CAPWAP_ELEMENT_DISCOVERYTYPE 20 #define CAPWAP_ELEMENT_DISCOVERYTYPE_VENDOR 0
#define CAPWAP_ELEMENT_DISCOVERYTYPE_TYPE 20
#define CAPWAP_ELEMENT_DISCOVERYTYPE (struct capwap_message_element_id){ .vendor = CAPWAP_ELEMENT_DISCOVERYTYPE_VENDOR, .type = CAPWAP_ELEMENT_DISCOVERYTYPE_TYPE }
#define CAPWAP_DISCOVERYTYPE_TYPE_UNKNOWN 0 #define CAPWAP_DISCOVERYTYPE_TYPE_UNKNOWN 0
#define CAPWAP_DISCOVERYTYPE_TYPE_STATIC 1 #define CAPWAP_DISCOVERYTYPE_TYPE_STATIC 1

View File

@ -1,7 +1,10 @@
#ifndef __CAPWAP_ELEMENT_DUPLICATE_IPv4__HEADER__ #ifndef __CAPWAP_ELEMENT_DUPLICATE_IPv4__HEADER__
#define __CAPWAP_ELEMENT_DUPLICATE_IPv4__HEADER__ #define __CAPWAP_ELEMENT_DUPLICATE_IPv4__HEADER__
#define CAPWAP_ELEMENT_DUPLICATEIPV4 21 #define CAPWAP_ELEMENT_DUPLICATEIPV4_VENDOR 0
#define CAPWAP_ELEMENT_DUPLICATEIPV4_TYPE 21
#define CAPWAP_ELEMENT_DUPLICATEIPV4 (struct capwap_message_element_id){ .vendor = CAPWAP_ELEMENT_DUPLICATEIPV4_VENDOR, .type = CAPWAP_ELEMENT_DUPLICATEIPV4_TYPE }
#define CAPWAP_DUPLICATEIPv4_CLEARED 0 #define CAPWAP_DUPLICATEIPv4_CLEARED 0
#define CAPWAP_DUPLICATEIPv4_DETECTED 1 #define CAPWAP_DUPLICATEIPv4_DETECTED 1

View File

@ -1,7 +1,10 @@
#ifndef __CAPWAP_ELEMENT_DUPLICATE_IPv6__HEADER__ #ifndef __CAPWAP_ELEMENT_DUPLICATE_IPv6__HEADER__
#define __CAPWAP_ELEMENT_DUPLICATE_IPv6__HEADER__ #define __CAPWAP_ELEMENT_DUPLICATE_IPv6__HEADER__
#define CAPWAP_ELEMENT_DUPLICATEIPV6 22 #define CAPWAP_ELEMENT_DUPLICATEIPV6_VENDOR 0
#define CAPWAP_ELEMENT_DUPLICATEIPV6_TYPE 22
#define CAPWAP_ELEMENT_DUPLICATEIPV6 (struct capwap_message_element_id){ .vendor = CAPWAP_ELEMENT_DUPLICATEIPV6_VENDOR, .type = CAPWAP_ELEMENT_DUPLICATEIPV6_TYPE }
#define CAPWAP_DUPLICATEIPv6_CLEARED 0 #define CAPWAP_DUPLICATEIPv6_CLEARED 0
#define CAPWAP_DUPLICATEIPv6_DETECTED 1 #define CAPWAP_DUPLICATEIPv6_DETECTED 1

View File

@ -1,7 +1,10 @@
#ifndef __CAPWAP_ELEMENT_ECNSUPPORT_HEADER__ #ifndef __CAPWAP_ELEMENT_ECNSUPPORT_HEADER__
#define __CAPWAP_ELEMENT_ECNSUPPORT_HEADER__ #define __CAPWAP_ELEMENT_ECNSUPPORT_HEADER__
#define CAPWAP_ELEMENT_ECNSUPPORT 53 #define CAPWAP_ELEMENT_ECNSUPPORT_VENDOR 0
#define CAPWAP_ELEMENT_ECNSUPPORT_TYPE 53
#define CAPWAP_ELEMENT_ECNSUPPORT (struct capwap_message_element_id){ .vendor = CAPWAP_ELEMENT_ECNSUPPORT_VENDOR, .type = CAPWAP_ELEMENT_ECNSUPPORT_TYPE }
#define CAPWAP_LIMITED_ECN_SUPPORT 0 #define CAPWAP_LIMITED_ECN_SUPPORT 0
#define CAPWAP_FULL_ECN_SUPPORT 1 #define CAPWAP_FULL_ECN_SUPPORT 1

View File

@ -1,7 +1,10 @@
#ifndef __CAPWAP_ELEMENT_IDLETIMEOUT_HEADER__ #ifndef __CAPWAP_ELEMENT_IDLETIMEOUT_HEADER__
#define __CAPWAP_ELEMENT_IDLETIMEOUT_HEADER__ #define __CAPWAP_ELEMENT_IDLETIMEOUT_HEADER__
#define CAPWAP_ELEMENT_IDLETIMEOUT 23 #define CAPWAP_ELEMENT_IDLETIMEOUT_VENDOR 0
#define CAPWAP_ELEMENT_IDLETIMEOUT_TYPE 23
#define CAPWAP_ELEMENT_IDLETIMEOUT (struct capwap_message_element_id){ .vendor = CAPWAP_ELEMENT_IDLETIMEOUT_VENDOR, .type = CAPWAP_ELEMENT_IDLETIMEOUT_TYPE }
struct capwap_idletimeout_element { struct capwap_idletimeout_element {
uint32_t timeout; uint32_t timeout;

View File

@ -1,7 +1,10 @@
#ifndef __CAPWAP_ELEMENT_IMAGE_DATA_HEADER__ #ifndef __CAPWAP_ELEMENT_IMAGE_DATA_HEADER__
#define __CAPWAP_ELEMENT_IMAGE_DATA_HEADER__ #define __CAPWAP_ELEMENT_IMAGE_DATA_HEADER__
#define CAPWAP_ELEMENT_IMAGEDATA 24 #define CAPWAP_ELEMENT_IMAGEDATA_VENDOR 0
#define CAPWAP_ELEMENT_IMAGEDATA_TYPE 24
#define CAPWAP_ELEMENT_IMAGEDATA (struct capwap_message_element_id){ .vendor = CAPWAP_ELEMENT_IMAGEDATA_VENDOR, .type = CAPWAP_ELEMENT_IMAGEDATA_TYPE }
#define CAPWAP_IMAGEDATA_TYPE_DATA_IS_INCLUDED 1 #define CAPWAP_IMAGEDATA_TYPE_DATA_IS_INCLUDED 1
#define CAPWAP_IMAGEDATA_TYPE_DATA_EOF 2 #define CAPWAP_IMAGEDATA_TYPE_DATA_EOF 2

View File

@ -1,7 +1,10 @@
#ifndef __CAPWAP_ELEMENT_IMAGEIDENTIFIER_HEADER__ #ifndef __CAPWAP_ELEMENT_IMAGEIDENTIFIER_HEADER__
#define __CAPWAP_ELEMENT_IMAGEIDENTIFIER_HEADER__ #define __CAPWAP_ELEMENT_IMAGEIDENTIFIER_HEADER__
#define CAPWAP_ELEMENT_IMAGEIDENTIFIER 25 #define CAPWAP_ELEMENT_IMAGEIDENTIFIER_VENDOR 0
#define CAPWAP_ELEMENT_IMAGEIDENTIFIER_TYPE 25
#define CAPWAP_ELEMENT_IMAGEIDENTIFIER (struct capwap_message_element_id){ .vendor = CAPWAP_ELEMENT_IMAGEIDENTIFIER_VENDOR, .type = CAPWAP_ELEMENT_IMAGEIDENTIFIER_TYPE }
#define CAPWAP_IMAGEIDENTIFIER_MAXLENGTH 1024 #define CAPWAP_IMAGEIDENTIFIER_MAXLENGTH 1024

View File

@ -1,7 +1,10 @@
#ifndef __CAPWAP_ELEMENT_IMAGE_INFO_HEADER__ #ifndef __CAPWAP_ELEMENT_IMAGE_INFO_HEADER__
#define __CAPWAP_ELEMENT_IMAGE_INFO_HEADER__ #define __CAPWAP_ELEMENT_IMAGE_INFO_HEADER__
#define CAPWAP_ELEMENT_IMAGEINFO 26 #define CAPWAP_ELEMENT_IMAGEINFO_VENDOR 0
#define CAPWAP_ELEMENT_IMAGEINFO_TYPE 26
#define CAPWAP_ELEMENT_IMAGEINFO (struct capwap_message_element_id){ .vendor = CAPWAP_ELEMENT_IMAGEINFO_VENDOR, .type = CAPWAP_ELEMENT_IMAGEINFO_TYPE }
#define CAPWAP_IMAGEINFO_HASH_LENGTH 16 #define CAPWAP_IMAGEINFO_HASH_LENGTH 16

View File

@ -1,7 +1,10 @@
#ifndef __CAPWAP_ELEMENT_INIT_DOWNLOAD_HEADER__ #ifndef __CAPWAP_ELEMENT_INIT_DOWNLOAD_HEADER__
#define __CAPWAP_ELEMENT_INIT_DOWNLOAD_HEADER__ #define __CAPWAP_ELEMENT_INIT_DOWNLOAD_HEADER__
#define CAPWAP_ELEMENT_INITIATEDOWNLOAD 27 #define CAPWAP_ELEMENT_INITIATEDOWNLOAD_VENDOR 0
#define CAPWAP_ELEMENT_INITIATEDOWNLOAD_TYPE 27
#define CAPWAP_ELEMENT_INITIATEDOWNLOAD (struct capwap_message_element_id){ .vendor = CAPWAP_ELEMENT_INITIATEDOWNLOAD_VENDOR, .type = CAPWAP_ELEMENT_INITIATEDOWNLOAD_TYPE }
struct capwap_initdownload_element { struct capwap_initdownload_element {
uint8_t dummy; uint8_t dummy;

View File

@ -1,7 +1,10 @@
#ifndef __CAPWAP_ELEMENT_LOCALIPV4_HEADER__ #ifndef __CAPWAP_ELEMENT_LOCALIPV4_HEADER__
#define __CAPWAP_ELEMENT_LOCALIPV4_HEADER__ #define __CAPWAP_ELEMENT_LOCALIPV4_HEADER__
#define CAPWAP_ELEMENT_LOCALIPV4 30 #define CAPWAP_ELEMENT_LOCALIPV4_VENDOR 0
#define CAPWAP_ELEMENT_LOCALIPV4_TYPE 30
#define CAPWAP_ELEMENT_LOCALIPV4 (struct capwap_message_element_id){ .vendor = CAPWAP_ELEMENT_LOCALIPV4_VENDOR, .type = CAPWAP_ELEMENT_LOCALIPV4_TYPE }
struct capwap_localipv4_element { struct capwap_localipv4_element {
struct in_addr address; struct in_addr address;

View File

@ -1,7 +1,10 @@
#ifndef __CAPWAP_ELEMENT_LOCALIPV6_HEADER__ #ifndef __CAPWAP_ELEMENT_LOCALIPV6_HEADER__
#define __CAPWAP_ELEMENT_LOCALIPV6_HEADER__ #define __CAPWAP_ELEMENT_LOCALIPV6_HEADER__
#define CAPWAP_ELEMENT_LOCALIPV6 50 #define CAPWAP_ELEMENT_LOCALIPV6_VENDOR 0
#define CAPWAP_ELEMENT_LOCALIPV6_TYPE 50
#define CAPWAP_ELEMENT_LOCALIPV6 (struct capwap_message_element_id){ .vendor = CAPWAP_ELEMENT_LOCALIPV6_VENDOR, .type = CAPWAP_ELEMENT_LOCALIPV6_TYPE }
struct capwap_localipv6_element { struct capwap_localipv6_element {
struct in6_addr address; struct in6_addr address;

View File

@ -1,7 +1,10 @@
#ifndef __CAPWAP_ELEMENT_LOCATION_HEADER__ #ifndef __CAPWAP_ELEMENT_LOCATION_HEADER__
#define __CAPWAP_ELEMENT_LOCATION_HEADER__ #define __CAPWAP_ELEMENT_LOCATION_HEADER__
#define CAPWAP_ELEMENT_LOCATION 28 #define CAPWAP_ELEMENT_LOCATION_VENDOR 0
#define CAPWAP_ELEMENT_LOCATION_TYPE 28
#define CAPWAP_ELEMENT_LOCATION (struct capwap_message_element_id){ .vendor = CAPWAP_ELEMENT_LOCATION_VENDOR, .type = CAPWAP_ELEMENT_LOCATION_TYPE }
#define CAPWAP_LOCATION_MAXLENGTH 1024 #define CAPWAP_LOCATION_MAXLENGTH 1024

View File

@ -1,7 +1,10 @@
#ifndef __CAPWAP_ELEMENT_MAXIMUMLENGTH_HEADER__ #ifndef __CAPWAP_ELEMENT_MAXIMUMLENGTH_HEADER__
#define __CAPWAP_ELEMENT_MAXIMUMLENGTH_HEADER__ #define __CAPWAP_ELEMENT_MAXIMUMLENGTH_HEADER__
#define CAPWAP_ELEMENT_MAXIMUMLENGTH 29 #define CAPWAP_ELEMENT_MAXIMUMLENGTH_VENDOR 0
#define CAPWAP_ELEMENT_MAXIMUMLENGTH_TYPE 29
#define CAPWAP_ELEMENT_MAXIMUMLENGTH (struct capwap_message_element_id){ .vendor = CAPWAP_ELEMENT_MAXIMUMLENGTH_VENDOR, .type = CAPWAP_ELEMENT_MAXIMUMLENGTH_TYPE }
struct capwap_maximumlength_element { struct capwap_maximumlength_element {
uint16_t length; uint16_t length;

View File

@ -1,7 +1,10 @@
#ifndef __CAPWAP_ELEMENT_MTUDISCOVERY_HEADER__ #ifndef __CAPWAP_ELEMENT_MTUDISCOVERY_HEADER__
#define __CAPWAP_ELEMENT_MTUDISCOVERY_HEADER__ #define __CAPWAP_ELEMENT_MTUDISCOVERY_HEADER__
#define CAPWAP_ELEMENT_MTUDISCOVERY 52 #define CAPWAP_ELEMENT_MTUDISCOVERY_VENDOR 0
#define CAPWAP_ELEMENT_MTUDISCOVERY_TYPE 52
#define CAPWAP_ELEMENT_MTUDISCOVERY (struct capwap_message_element_id){ .vendor = CAPWAP_ELEMENT_MTUDISCOVERY_VENDOR, .type = CAPWAP_ELEMENT_MTUDISCOVERY_TYPE }
struct capwap_mtudiscovery_element { struct capwap_mtudiscovery_element {
uint16_t length; uint16_t length;

View File

@ -1,7 +1,10 @@
#ifndef __CAPWAP_ELEMENT_RADIOADMSTATE_HEADER__ #ifndef __CAPWAP_ELEMENT_RADIOADMSTATE_HEADER__
#define __CAPWAP_ELEMENT_RADIOADMSTATE_HEADER__ #define __CAPWAP_ELEMENT_RADIOADMSTATE_HEADER__
#define CAPWAP_ELEMENT_RADIOADMSTATE 31 #define CAPWAP_ELEMENT_RADIOADMSTATE_VENDOR 0
#define CAPWAP_ELEMENT_RADIOADMSTATE_TYPE 31
#define CAPWAP_ELEMENT_RADIOADMSTATE (struct capwap_message_element_id){ .vendor = CAPWAP_ELEMENT_RADIOADMSTATE_VENDOR, .type = CAPWAP_ELEMENT_RADIOADMSTATE_TYPE }
#define CAPWAP_RADIO_ADMIN_STATE_ENABLED 1 #define CAPWAP_RADIO_ADMIN_STATE_ENABLED 1
#define CAPWAP_RADIO_ADMIN_STATE_DISABLED 2 #define CAPWAP_RADIO_ADMIN_STATE_DISABLED 2

View File

@ -1,7 +1,10 @@
#ifndef __CAPWAP_ELEMENT_RADIOOPRSTATE_HEADER__ #ifndef __CAPWAP_ELEMENT_RADIOOPRSTATE_HEADER__
#define __CAPWAP_ELEMENT_RADIOOPRSTATE_HEADER__ #define __CAPWAP_ELEMENT_RADIOOPRSTATE_HEADER__
#define CAPWAP_ELEMENT_RADIOOPRSTATE 32 #define CAPWAP_ELEMENT_RADIOOPRSTATE_VENDOR 0
#define CAPWAP_ELEMENT_RADIOOPRSTATE_TYPE 32
#define CAPWAP_ELEMENT_RADIOOPRSTATE (struct capwap_message_element_id){ .vendor = CAPWAP_ELEMENT_RADIOOPRSTATE_VENDOR, .type = CAPWAP_ELEMENT_RADIOOPRSTATE_TYPE }
#define CAPWAP_RADIO_OPERATIONAL_STATE_ENABLED 1 #define CAPWAP_RADIO_OPERATIONAL_STATE_ENABLED 1
#define CAPWAP_RADIO_OPERATIONAL_STATE_DISABLED 2 #define CAPWAP_RADIO_OPERATIONAL_STATE_DISABLED 2

View File

@ -1,7 +1,10 @@
#ifndef __CAPWAP_ELEMENT_RESULTCODE_HEADER__ #ifndef __CAPWAP_ELEMENT_RESULTCODE_HEADER__
#define __CAPWAP_ELEMENT_RESULTCODE_HEADER__ #define __CAPWAP_ELEMENT_RESULTCODE_HEADER__
#define CAPWAP_ELEMENT_RESULTCODE 33 #define CAPWAP_ELEMENT_RESULTCODE_VENDOR 0
#define CAPWAP_ELEMENT_RESULTCODE_TYPE 33
#define CAPWAP_ELEMENT_RESULTCODE (struct capwap_message_element_id){ .vendor = CAPWAP_ELEMENT_RESULTCODE_VENDOR, .type = CAPWAP_ELEMENT_RESULTCODE_TYPE }
#define CAPWAP_RESULTCODE_FIRST 0 #define CAPWAP_RESULTCODE_FIRST 0
#define CAPWAP_RESULTCODE_SUCCESS 0 #define CAPWAP_RESULTCODE_SUCCESS 0

View File

@ -1,7 +1,10 @@
#ifndef __CAPWAP_ELEMENT_RETURNEDMESSAGE_HEADER__ #ifndef __CAPWAP_ELEMENT_RETURNEDMESSAGE_HEADER__
#define __CAPWAP_ELEMENT_RETURNEDMESSAGE_HEADER__ #define __CAPWAP_ELEMENT_RETURNEDMESSAGE_HEADER__
#define CAPWAP_ELEMENT_RETURNEDMESSAGE 34 #define CAPWAP_ELEMENT_RETURNEDMESSAGE_VENDOR 0
#define CAPWAP_ELEMENT_RETURNEDMESSAGE_TYPE 34
#define CAPWAP_ELEMENT_RETURNEDMESSAGE (struct capwap_message_element_id){ .vendor = CAPWAP_ELEMENT_RETURNEDMESSAGE_VENDOR, .type = CAPWAP_ELEMENT_RETURNEDMESSAGE_TYPE }
#define CAPWAP_RETURNED_MESSAGE_UNKNOWN_MESSAGE_ELEMENT 1 #define CAPWAP_RETURNED_MESSAGE_UNKNOWN_MESSAGE_ELEMENT 1
#define CAPWAP_RETURNED_MESSAGE_UNSUPPORTED_MESSAGE_ELEMENT 2 #define CAPWAP_RETURNED_MESSAGE_UNSUPPORTED_MESSAGE_ELEMENT 2

View File

@ -1,7 +1,10 @@
#ifndef __CAPWAP_ELEMENT_SESSIONID_HEADER__ #ifndef __CAPWAP_ELEMENT_SESSIONID_HEADER__
#define __CAPWAP_ELEMENT_SESSIONID_HEADER__ #define __CAPWAP_ELEMENT_SESSIONID_HEADER__
#define CAPWAP_ELEMENT_SESSIONID 35 #define CAPWAP_ELEMENT_SESSIONID_VENDOR 0
#define CAPWAP_ELEMENT_SESSIONID_TYPE 35
#define CAPWAP_ELEMENT_SESSIONID (struct capwap_message_element_id){ .vendor = CAPWAP_ELEMENT_SESSIONID_VENDOR, .type = CAPWAP_ELEMENT_SESSIONID_TYPE }
struct capwap_sessionid_element { struct capwap_sessionid_element {
uint8_t id[16]; uint8_t id[16];

View File

@ -1,7 +1,10 @@
#ifndef __CAPWAP_ELEMENT_STATISTICSTIMER_HEADER__ #ifndef __CAPWAP_ELEMENT_STATISTICSTIMER_HEADER__
#define __CAPWAP_ELEMENT_STATISTICSTIMER_HEADER__ #define __CAPWAP_ELEMENT_STATISTICSTIMER_HEADER__
#define CAPWAP_ELEMENT_STATISTICSTIMER 36 #define CAPWAP_ELEMENT_STATISTICSTIMER_VENDOR 0
#define CAPWAP_ELEMENT_STATISTICSTIMER_TYPE 36
#define CAPWAP_ELEMENT_STATISTICSTIMER (struct capwap_message_element_id){ .vendor = CAPWAP_ELEMENT_STATISTICSTIMER_VENDOR, .type = CAPWAP_ELEMENT_STATISTICSTIMER_TYPE }
struct capwap_statisticstimer_element { struct capwap_statisticstimer_element {
uint16_t timer; uint16_t timer;

View File

@ -1,7 +1,10 @@
#ifndef __CAPWAP_ELEMENT_TIMERS_HEADER__ #ifndef __CAPWAP_ELEMENT_TIMERS_HEADER__
#define __CAPWAP_ELEMENT_TIMERS_HEADER__ #define __CAPWAP_ELEMENT_TIMERS_HEADER__
#define CAPWAP_ELEMENT_TIMERS 12 #define CAPWAP_ELEMENT_TIMERS_VENDOR 0
#define CAPWAP_ELEMENT_TIMERS_TYPE 12
#define CAPWAP_ELEMENT_TIMERS (struct capwap_message_element_id){ .vendor = CAPWAP_ELEMENT_TIMERS_VENDOR, .type = CAPWAP_ELEMENT_TIMERS_TYPE }
struct capwap_timers_element { struct capwap_timers_element {
uint8_t discovery; uint8_t discovery;

View File

@ -1,7 +1,10 @@
#ifndef __CAPWAP_ELEMENT_TRANSPORT_HEADER__ #ifndef __CAPWAP_ELEMENT_TRANSPORT_HEADER__
#define __CAPWAP_ELEMENT_TRANSPORT_HEADER__ #define __CAPWAP_ELEMENT_TRANSPORT_HEADER__
#define CAPWAP_ELEMENT_TRANSPORT 51 #define CAPWAP_ELEMENT_TRANSPORT_VENDOR 0
#define CAPWAP_ELEMENT_TRANSPORT_TYPE 51
#define CAPWAP_ELEMENT_TRANSPORT (struct capwap_message_element_id){ .vendor = CAPWAP_ELEMENT_TRANSPORT_VENDOR, .type = CAPWAP_ELEMENT_TRANSPORT_TYPE }
#define CAPWAP_UDPLITE_TRANSPORT 1 #define CAPWAP_UDPLITE_TRANSPORT 1
#define CAPWAP_UDP_TRANSPORT 2 #define CAPWAP_UDP_TRANSPORT 2

View File

@ -5,7 +5,10 @@
#define VENDOR_TRAVELPING_ELEMENT_80211N_RADIO_CONF 123 #define VENDOR_TRAVELPING_ELEMENT_80211N_RADIO_CONF 123
#define VENDOR_TRAVELPING_ELEMENT_80211N_STATION_INFO 124 #define VENDOR_TRAVELPING_ELEMENT_80211N_STATION_INFO 124
#define CAPWAP_ELEMENT_VENDORPAYLOAD 37 #define CAPWAP_ELEMENT_VENDORPAYLOAD_VENDOR 0
#define CAPWAP_ELEMENT_VENDORPAYLOAD_TYPE 37
#define CAPWAP_ELEMENT_VENDORPAYLOAD (struct capwap_message_element_id){ .vendor = CAPWAP_ELEMENT_VENDORPAYLOAD_VENDOR, .type = CAPWAP_ELEMENT_VENDORPAYLOAD_TYPE }
#define CAPWAP_VENDORPAYLOAD_MAXLENGTH 2048 #define CAPWAP_VENDORPAYLOAD_MAXLENGTH 2048

View File

@ -1,7 +1,10 @@
#ifndef __CAPWAP_ELEMENT_WTPBOARDDATA_HEADER__ #ifndef __CAPWAP_ELEMENT_WTPBOARDDATA_HEADER__
#define __CAPWAP_ELEMENT_WTPBOARDDATA_HEADER__ #define __CAPWAP_ELEMENT_WTPBOARDDATA_HEADER__
#define CAPWAP_ELEMENT_WTPBOARDDATA 38 #define CAPWAP_ELEMENT_WTPBOARDDATA_VENDOR 0
#define CAPWAP_ELEMENT_WTPBOARDDATA_TYPE 38
#define CAPWAP_ELEMENT_WTPBOARDDATA (struct capwap_message_element_id){ .vendor = CAPWAP_ELEMENT_WTPBOARDDATA_VENDOR, .type = CAPWAP_ELEMENT_WTPBOARDDATA_TYPE }
struct capwap_wtpboarddata_element { struct capwap_wtpboarddata_element {
uint32_t vendor; uint32_t vendor;

View File

@ -1,7 +1,10 @@
#ifndef __CAPWAP_ELEMENT_WTPDESCRIPTOR_HEADER__ #ifndef __CAPWAP_ELEMENT_WTPDESCRIPTOR_HEADER__
#define __CAPWAP_ELEMENT_WTPDESCRIPTOR_HEADER__ #define __CAPWAP_ELEMENT_WTPDESCRIPTOR_HEADER__
#define CAPWAP_ELEMENT_WTPDESCRIPTOR 39 #define CAPWAP_ELEMENT_WTPDESCRIPTOR_VENDOR 0
#define CAPWAP_ELEMENT_WTPDESCRIPTOR_TYPE 39
#define CAPWAP_ELEMENT_WTPDESCRIPTOR (struct capwap_message_element_id){ .vendor = CAPWAP_ELEMENT_WTPDESCRIPTOR_VENDOR, .type = CAPWAP_ELEMENT_WTPDESCRIPTOR_TYPE }
struct capwap_wtpdescriptor_element { struct capwap_wtpdescriptor_element {
uint8_t maxradios; uint8_t maxradios;

View File

@ -1,7 +1,10 @@
#ifndef __CAPWAP_ELEMENT_WTPFALLBACK_HEADER__ #ifndef __CAPWAP_ELEMENT_WTPFALLBACK_HEADER__
#define __CAPWAP_ELEMENT_WTPFALLBACK_HEADER__ #define __CAPWAP_ELEMENT_WTPFALLBACK_HEADER__
#define CAPWAP_ELEMENT_WTPFALLBACK 40 #define CAPWAP_ELEMENT_WTPFALLBACK_VENDOR 0
#define CAPWAP_ELEMENT_WTPFALLBACK_TYPE 40
#define CAPWAP_ELEMENT_WTPFALLBACK (struct capwap_message_element_id){ .vendor = CAPWAP_ELEMENT_WTPFALLBACK_VENDOR, .type = CAPWAP_ELEMENT_WTPFALLBACK_TYPE }
#define CAPWAP_WTP_FALLBACK_ENABLED 1 #define CAPWAP_WTP_FALLBACK_ENABLED 1
#define CAPWAP_WTP_FALLBACK_DISABLED 2 #define CAPWAP_WTP_FALLBACK_DISABLED 2

View File

@ -1,7 +1,10 @@
#ifndef __CAPWAP_ELEMENT_WTPFRAMETUNNELMODE_HEADER__ #ifndef __CAPWAP_ELEMENT_WTPFRAMETUNNELMODE_HEADER__
#define __CAPWAP_ELEMENT_WTPFRAMETUNNELMODE_HEADER__ #define __CAPWAP_ELEMENT_WTPFRAMETUNNELMODE_HEADER__
#define CAPWAP_ELEMENT_WTPFRAMETUNNELMODE 41 #define CAPWAP_ELEMENT_WTPFRAMETUNNELMODE_VENDOR 0
#define CAPWAP_ELEMENT_WTPFRAMETUNNELMODE_TYPE 41
#define CAPWAP_ELEMENT_WTPFRAMETUNNELMODE (struct capwap_message_element_id){ .vendor = CAPWAP_ELEMENT_WTPFRAMETUNNELMODE_VENDOR, .type = CAPWAP_ELEMENT_WTPFRAMETUNNELMODE_TYPE }
#define CAPWAP_WTP_FRAME_TUNNEL_MODE_MASK 0x0e #define CAPWAP_WTP_FRAME_TUNNEL_MODE_MASK 0x0e
#define CAPWAP_WTP_NATIVE_FRAME_TUNNEL 0x08 #define CAPWAP_WTP_NATIVE_FRAME_TUNNEL 0x08

View File

@ -1,7 +1,10 @@
#ifndef __CAPWAP_ELEMENT_WTPMACTYPE_HEADER__ #ifndef __CAPWAP_ELEMENT_WTPMACTYPE_HEADER__
#define __CAPWAP_ELEMENT_WTPMACTYPE_HEADER__ #define __CAPWAP_ELEMENT_WTPMACTYPE_HEADER__
#define CAPWAP_ELEMENT_WTPMACTYPE 44 #define CAPWAP_ELEMENT_WTPMACTYPE_VENDOR 0
#define CAPWAP_ELEMENT_WTPMACTYPE_TYPE 44
#define CAPWAP_ELEMENT_WTPMACTYPE (struct capwap_message_element_id){ .vendor = CAPWAP_ELEMENT_WTPMACTYPE_VENDOR, .type = CAPWAP_ELEMENT_WTPMACTYPE_TYPE }
#define CAPWAP_LOCALMAC 0 #define CAPWAP_LOCALMAC 0
#define CAPWAP_SPLITMAC 1 #define CAPWAP_SPLITMAC 1

View File

@ -1,7 +1,10 @@
#ifndef __CAPWAP_ELEMENT_WTPNAME_HEADER__ #ifndef __CAPWAP_ELEMENT_WTPNAME_HEADER__
#define __CAPWAP_ELEMENT_WTPNAME_HEADER__ #define __CAPWAP_ELEMENT_WTPNAME_HEADER__
#define CAPWAP_ELEMENT_WTPNAME 45 #define CAPWAP_ELEMENT_WTPNAME_VENDOR 0
#define CAPWAP_ELEMENT_WTPNAME_TYPE 45
#define CAPWAP_ELEMENT_WTPNAME (struct capwap_message_element_id){ .vendor = CAPWAP_ELEMENT_WTPNAME_VENDOR, .type = CAPWAP_ELEMENT_WTPNAME_TYPE }
#define CAPWAP_WTPNAME_MAXLENGTH 512 #define CAPWAP_WTPNAME_MAXLENGTH 512

View File

@ -1,7 +1,10 @@
#ifndef __CAPWAP_ELEMENT_WTPRADIOSTAT_HEADER__ #ifndef __CAPWAP_ELEMENT_WTPRADIOSTAT_HEADER__
#define __CAPWAP_ELEMENT_WTPRADIOSTAT_HEADER__ #define __CAPWAP_ELEMENT_WTPRADIOSTAT_HEADER__
#define CAPWAP_ELEMENT_WTPRADIOSTAT 47 #define CAPWAP_ELEMENT_WTPRADIOSTAT_VENDOR 0
#define CAPWAP_ELEMENT_WTPRADIOSTAT_TYPE 47
#define CAPWAP_ELEMENT_WTPRADIOSTAT (struct capwap_message_element_id){ .vendor = CAPWAP_ELEMENT_WTPRADIOSTAT_VENDOR, .type = CAPWAP_ELEMENT_WTPRADIOSTAT_TYPE }
#define CAPWAP_WTPRADIOSTAT_FAILER_TYPE_STATNOTSUPP 0 #define CAPWAP_WTPRADIOSTAT_FAILER_TYPE_STATNOTSUPP 0
#define CAPWAP_WTPRADIOSTAT_FAILER_TYPE_SWFAIL 1 #define CAPWAP_WTPRADIOSTAT_FAILER_TYPE_SWFAIL 1

View File

@ -1,7 +1,10 @@
#ifndef __CAPWAP_ELEMENT_WTPREBOOTSTAT_HEADER__ #ifndef __CAPWAP_ELEMENT_WTPREBOOTSTAT_HEADER__
#define __CAPWAP_ELEMENT_WTPREBOOTSTAT_HEADER__ #define __CAPWAP_ELEMENT_WTPREBOOTSTAT_HEADER__
#define CAPWAP_ELEMENT_WTPREBOOTSTAT 48 #define CAPWAP_ELEMENT_WTPREBOOTSTAT_VENDOR 0
#define CAPWAP_ELEMENT_WTPREBOOTSTAT_TYPE 48
#define CAPWAP_ELEMENT_WTPREBOOTSTAT (struct capwap_message_element_id){ .vendor = CAPWAP_ELEMENT_WTPREBOOTSTAT_VENDOR, .type = CAPWAP_ELEMENT_WTPREBOOTSTAT_TYPE }
#define CAPWAP_NOTAVAILABLE_REBOOT_COUNT 65535 #define CAPWAP_NOTAVAILABLE_REBOOT_COUNT 65535
#define CAPWAP_NOTAVAILABLE_ACINIT_COUNT 65535 #define CAPWAP_NOTAVAILABLE_ACINIT_COUNT 65535

View File

@ -1,7 +1,10 @@
#ifndef __CAPWAP_ELEMENT_WTPSTATICIPADDRESS_HEADER__ #ifndef __CAPWAP_ELEMENT_WTPSTATICIPADDRESS_HEADER__
#define __CAPWAP_ELEMENT_WTPSTATICIPADDRESS_HEADER__ #define __CAPWAP_ELEMENT_WTPSTATICIPADDRESS_HEADER__
#define CAPWAP_ELEMENT_WTPSTATICIPADDRESS 49 #define CAPWAP_ELEMENT_WTPSTATICIPADDRESS_VENDOR 0
#define CAPWAP_ELEMENT_WTPSTATICIPADDRESS_TYPE 49
#define CAPWAP_ELEMENT_WTPSTATICIPADDRESS (struct capwap_message_element_id){ .vendor = CAPWAP_ELEMENT_WTPSTATICIPADDRESS_VENDOR, .type = CAPWAP_ELEMENT_WTPSTATICIPADDRESS_TYPE }
struct capwap_wtpstaticipaddress_element { struct capwap_wtpstaticipaddress_element {
struct in_addr address; struct in_addr address;

View File

@ -487,18 +487,21 @@ struct capwap_packet_txmng* capwap_packet_txmng_create_ctrl_message(struct capwa
} }
/* */ /* */
void capwap_packet_txmng_add_message_element(struct capwap_packet_txmng* txmngpacket, unsigned short type, void* data) { void capwap_packet_txmng_add_message_element(struct capwap_packet_txmng *txmngpacket,
const struct capwap_message_element_id id,
void *data)
{
const struct capwap_message_elements_ops* func; const struct capwap_message_elements_ops* func;
struct write_block_from_pos writepos; struct write_block_from_pos writepos;
ASSERT(txmngpacket != NULL); ASSERT(txmngpacket != NULL);
/* Retrieve message element function */ /* Retrieve message element function */
func = capwap_get_message_element_ops(type); func = capwap_get_message_element_ops(id);
ASSERT(func != NULL); ASSERT(func != NULL);
ASSERT(func->create != NULL); ASSERT(func->create != NULL);
/* /*
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
@ -510,7 +513,7 @@ void capwap_packet_txmng_add_message_element(struct capwap_packet_txmng* txmngpa
Type and Length is add to this function, only custom create write Value message element Type and Length is add to this function, only custom create write Value message element
*/ */
txmngpacket->write_ops.write_u16((capwap_message_elements_handle)txmngpacket, type); txmngpacket->write_ops.write_u16((capwap_message_elements_handle)txmngpacket, id.type);
/* Length of message element is calculate after create function */ /* Length of message element is calculate after create function */
writepos.item = txmngpacket->fragmentlist->last; writepos.item = txmngpacket->fragmentlist->last;

View File

@ -59,7 +59,9 @@ struct capwap_packet_txmng {
/* */ /* */
struct capwap_packet_txmng* capwap_packet_txmng_create_ctrl_message(struct capwap_header_data* data, unsigned long type, unsigned char seq, unsigned short mtu); struct capwap_packet_txmng* capwap_packet_txmng_create_ctrl_message(struct capwap_header_data* data, unsigned long type, unsigned char seq, unsigned short mtu);
void capwap_packet_txmng_add_message_element(struct capwap_packet_txmng* txmngpacket, unsigned short type, void* data); void capwap_packet_txmng_add_message_element(struct capwap_packet_txmng *txmngpacket,
const struct capwap_message_element_id id,
void *data);
void capwap_packet_txmng_get_fragment_packets(struct capwap_packet_txmng* txmngpacket, struct capwap_list* fragmentlist, unsigned short fragmentid); void capwap_packet_txmng_get_fragment_packets(struct capwap_packet_txmng* txmngpacket, struct capwap_list* fragmentlist, unsigned short fragmentid);
void capwap_packet_txmng_free(struct capwap_packet_txmng* txmngpacket); void capwap_packet_txmng_free(struct capwap_packet_txmng* txmngpacket);

View File

@ -222,13 +222,13 @@ struct capwap_macaddress_eui64 {
#define CAPWAP_MESSAGE_ELEMENTS_START 1 #define CAPWAP_MESSAGE_ELEMENTS_START 1
#define CAPWAP_MESSAGE_ELEMENTS_STOP 53 #define CAPWAP_MESSAGE_ELEMENTS_STOP 53
#define CAPWAP_MESSAGE_ELEMENTS_COUNT ((CAPWAP_MESSAGE_ELEMENTS_STOP - CAPWAP_MESSAGE_ELEMENTS_START) + 1) #define CAPWAP_MESSAGE_ELEMENTS_COUNT ((CAPWAP_MESSAGE_ELEMENTS_STOP - CAPWAP_MESSAGE_ELEMENTS_START) + 1)
#define IS_MESSAGE_ELEMENTS(x) (((x >= CAPWAP_MESSAGE_ELEMENTS_START) && (x <= CAPWAP_MESSAGE_ELEMENTS_STOP)) ? 1 : 0) #define IS_MESSAGE_ELEMENTS(x) ((((x).vendor == 0) && ((x).type >= CAPWAP_MESSAGE_ELEMENTS_START) && ((x).type <= CAPWAP_MESSAGE_ELEMENTS_STOP)) ? 1 : 0)
/* 802.11 message elements 1024 -> 1024 (1024 - 2047) */ /* 802.11 message elements 1024 -> 1024 (1024 - 2047) */
#define CAPWAP_80211_MESSAGE_ELEMENTS_START 1024 #define CAPWAP_80211_MESSAGE_ELEMENTS_START 1024
#define CAPWAP_80211_MESSAGE_ELEMENTS_STOP 1048 #define CAPWAP_80211_MESSAGE_ELEMENTS_STOP 1048
#define CAPWAP_80211_MESSAGE_ELEMENTS_COUNT ((CAPWAP_80211_MESSAGE_ELEMENTS_STOP - CAPWAP_80211_MESSAGE_ELEMENTS_START) + 1) #define CAPWAP_80211_MESSAGE_ELEMENTS_COUNT ((CAPWAP_80211_MESSAGE_ELEMENTS_STOP - CAPWAP_80211_MESSAGE_ELEMENTS_START) + 1)
#define IS_80211_MESSAGE_ELEMENTS(x) (((x >= CAPWAP_80211_MESSAGE_ELEMENTS_START) && (x <= CAPWAP_80211_MESSAGE_ELEMENTS_STOP)) ? 1 : 0) #define IS_80211_MESSAGE_ELEMENTS(x) ((((x).vendor == 0) && ((x).type >= CAPWAP_80211_MESSAGE_ELEMENTS_START) && ((x).type <= CAPWAP_80211_MESSAGE_ELEMENTS_STOP)) ? 1 : 0)
/* */ /* */
#define IS_VALID_MESSAGE_ELEMENTS(x) (IS_MESSAGE_ELEMENTS(x) || IS_80211_MESSAGE_ELEMENTS(x)) #define IS_VALID_MESSAGE_ELEMENTS(x) (IS_MESSAGE_ELEMENTS(x) || IS_80211_MESSAGE_ELEMENTS(x))

View File

@ -158,7 +158,7 @@ static void receive_ieee80211_wlan_configuration_request(struct capwap_parsed_pa
/* */ /* */
binding = GET_WBID_HEADER(packet->rxmngpacket->header); binding = GET_WBID_HEADER(packet->rxmngpacket->header);
if ((binding == g_wtp.binding) && IS_SEQUENCE_SMALLER(g_wtp.remoteseqnumber, packet->rxmngpacket->ctrlmsg.seq)) { if ((binding == g_wtp.binding) && IS_SEQUENCE_SMALLER(g_wtp.remoteseqnumber, packet->rxmngpacket->ctrlmsg.seq)) {
int action = 0; struct capwap_message_element_id action = {0, 0};
struct capwap_header_data capwapheader; struct capwap_header_data capwapheader;
struct capwap_packet_txmng* txmngpacket; struct capwap_packet_txmng* txmngpacket;
struct capwap_80211_assignbssid_element bssid; struct capwap_80211_assignbssid_element bssid;
@ -182,9 +182,9 @@ static void receive_ieee80211_wlan_configuration_request(struct capwap_parsed_pa
/* Add message element */ /* Add message element */
capwap_packet_txmng_add_message_element(txmngpacket, CAPWAP_ELEMENT_RESULTCODE, &resultcode); capwap_packet_txmng_add_message_element(txmngpacket, CAPWAP_ELEMENT_RESULTCODE, &resultcode);
if ((resultcode.code == CAPWAP_RESULTCODE_SUCCESS) && (action == CAPWAP_ELEMENT_80211_ADD_WLAN)) { if (resultcode.code == CAPWAP_RESULTCODE_SUCCESS &&
memcmp(&action, &CAPWAP_ELEMENT_80211_ADD_WLAN, sizeof(CAPWAP_ELEMENT_80211_ADD_WLAN)) == 0)
capwap_packet_txmng_add_message_element(txmngpacket, CAPWAP_ELEMENT_80211_ASSIGN_BSSID, &bssid); capwap_packet_txmng_add_message_element(txmngpacket, CAPWAP_ELEMENT_80211_ASSIGN_BSSID, &bssid);
}
/* CAPWAP_ELEMENT_VENDORPAYLOAD */ /* TODO */ /* CAPWAP_ELEMENT_VENDORPAYLOAD */ /* TODO */

View File

@ -170,9 +170,9 @@ int wtp_radio_setconfiguration(struct capwap_parsed_packet* packet) {
struct capwap_message_element_itemlist* messageelement = (struct capwap_message_element_itemlist*)search->item; struct capwap_message_element_itemlist* messageelement = (struct capwap_message_element_itemlist*)search->item;
/* Parsing only IEEE 802.11 message element */ /* Parsing only IEEE 802.11 message element */
if (IS_80211_MESSAGE_ELEMENTS(messageelement->type)) { if (IS_80211_MESSAGE_ELEMENTS(messageelement->id)) {
switch (messageelement->type) { switch (messageelement->id.type) {
case CAPWAP_ELEMENT_80211_DIRECTSEQUENCECONTROL: { case CAPWAP_ELEMENT_80211_DIRECTSEQUENCECONTROL_TYPE: {
messageelements = (struct capwap_array*)messageelement->data; messageelements = (struct capwap_array*)messageelement->data;
if (messageelements && (messageelements->count > 0)) { if (messageelements && (messageelements->count > 0)) {
struct capwap_80211_directsequencecontrol_element* directsequencecontrol; struct capwap_80211_directsequencecontrol_element* directsequencecontrol;
@ -190,7 +190,7 @@ int wtp_radio_setconfiguration(struct capwap_parsed_packet* packet) {
break; break;
} }
case CAPWAP_ELEMENT_80211_OFDMCONTROL: { case CAPWAP_ELEMENT_80211_OFDMCONTROL_TYPE: {
messageelements = (struct capwap_array*)messageelement->data; messageelements = (struct capwap_array*)messageelement->data;
if (messageelements && (messageelements->count > 0)) { if (messageelements && (messageelements->count > 0)) {
struct capwap_80211_ofdmcontrol_element* ofdmcontrol; struct capwap_80211_ofdmcontrol_element* ofdmcontrol;
@ -208,7 +208,7 @@ int wtp_radio_setconfiguration(struct capwap_parsed_packet* packet) {
break; break;
} }
case CAPWAP_ELEMENT_80211_WTPRADIOINFORMATION: { case CAPWAP_ELEMENT_80211_WTPRADIOINFORMATION_TYPE: {
messageelements = (struct capwap_array*)messageelement->data; messageelements = (struct capwap_array*)messageelement->data;
if (messageelements && (messageelements->count > 0)) { if (messageelements && (messageelements->count > 0)) {
struct capwap_80211_wtpradioinformation_element* radioinformation; struct capwap_80211_wtpradioinformation_element* radioinformation;
@ -237,9 +237,9 @@ int wtp_radio_setconfiguration(struct capwap_parsed_packet* packet) {
struct capwap_message_element_itemlist* messageelement = (struct capwap_message_element_itemlist*)search->item; struct capwap_message_element_itemlist* messageelement = (struct capwap_message_element_itemlist*)search->item;
/* Parsing only IEEE 802.11 message element */ /* Parsing only IEEE 802.11 message element */
if (IS_80211_MESSAGE_ELEMENTS(messageelement->type)) { if (IS_80211_MESSAGE_ELEMENTS(messageelement->id)) {
switch (messageelement->type) { switch (messageelement->id.type) {
case CAPWAP_ELEMENT_80211_ANTENNA: { case CAPWAP_ELEMENT_80211_ANTENNA_TYPE: {
messageelements = (struct capwap_array*)messageelement->data; messageelements = (struct capwap_array*)messageelement->data;
if (messageelements && (messageelements->count > 0)) { if (messageelements && (messageelements->count > 0)) {
struct capwap_80211_antenna_element* antenna; struct capwap_80211_antenna_element* antenna;
@ -256,7 +256,7 @@ int wtp_radio_setconfiguration(struct capwap_parsed_packet* packet) {
break; break;
} }
case CAPWAP_ELEMENT_80211_MACOPERATION: { case CAPWAP_ELEMENT_80211_MACOPERATION_TYPE: {
messageelements = (struct capwap_array*)messageelement->data; messageelements = (struct capwap_array*)messageelement->data;
if (messageelements && (messageelements->count > 0)) { if (messageelements && (messageelements->count > 0)) {
struct capwap_80211_macoperation_element* macoperation; struct capwap_80211_macoperation_element* macoperation;
@ -273,7 +273,7 @@ int wtp_radio_setconfiguration(struct capwap_parsed_packet* packet) {
break; break;
} }
case CAPWAP_ELEMENT_80211_MULTIDOMAINCAPABILITY: { case CAPWAP_ELEMENT_80211_MULTIDOMAINCAPABILITY_TYPE: {
messageelements = (struct capwap_array*)messageelement->data; messageelements = (struct capwap_array*)messageelement->data;
if (messageelements && (messageelements->count > 0)) { if (messageelements && (messageelements->count > 0)) {
struct capwap_80211_multidomaincapability_element* multidomaincapability; struct capwap_80211_multidomaincapability_element* multidomaincapability;
@ -290,7 +290,7 @@ int wtp_radio_setconfiguration(struct capwap_parsed_packet* packet) {
break; break;
} }
case CAPWAP_ELEMENT_80211_DIRECTSEQUENCECONTROL: { case CAPWAP_ELEMENT_80211_DIRECTSEQUENCECONTROL_TYPE: {
messageelements = (struct capwap_array*)messageelement->data; messageelements = (struct capwap_array*)messageelement->data;
if (messageelements && (messageelements->count > 0)) { if (messageelements && (messageelements->count > 0)) {
struct capwap_80211_directsequencecontrol_element* directsequencecontrol; struct capwap_80211_directsequencecontrol_element* directsequencecontrol;
@ -314,7 +314,7 @@ int wtp_radio_setconfiguration(struct capwap_parsed_packet* packet) {
break; break;
} }
case CAPWAP_ELEMENT_80211_OFDMCONTROL: { case CAPWAP_ELEMENT_80211_OFDMCONTROL_TYPE: {
messageelements = (struct capwap_array*)messageelement->data; messageelements = (struct capwap_array*)messageelement->data;
if (messageelements && (messageelements->count > 0)) { if (messageelements && (messageelements->count > 0)) {
struct capwap_80211_ofdmcontrol_element* ofdmcontrol; struct capwap_80211_ofdmcontrol_element* ofdmcontrol;
@ -338,7 +338,7 @@ int wtp_radio_setconfiguration(struct capwap_parsed_packet* packet) {
break; break;
} }
case CAPWAP_ELEMENT_80211_RATESET: { case CAPWAP_ELEMENT_80211_RATESET_TYPE: {
messageelements = (struct capwap_array*)messageelement->data; messageelements = (struct capwap_array*)messageelement->data;
if (messageelements && (messageelements->count > 0)) { if (messageelements && (messageelements->count > 0)) {
struct capwap_80211_rateset_element* rateset; struct capwap_80211_rateset_element* rateset;
@ -360,7 +360,7 @@ int wtp_radio_setconfiguration(struct capwap_parsed_packet* packet) {
break; break;
} }
case CAPWAP_ELEMENT_80211_SUPPORTEDRATES: { case CAPWAP_ELEMENT_80211_SUPPORTEDRATES_TYPE: {
messageelements = (struct capwap_array*)messageelement->data; messageelements = (struct capwap_array*)messageelement->data;
if (messageelements && (messageelements->count > 0)) { if (messageelements && (messageelements->count > 0)) {
struct capwap_80211_supportedrates_element* supportedrates; struct capwap_80211_supportedrates_element* supportedrates;
@ -377,7 +377,7 @@ int wtp_radio_setconfiguration(struct capwap_parsed_packet* packet) {
break; break;
} }
case CAPWAP_ELEMENT_80211_TXPOWER: { case CAPWAP_ELEMENT_80211_TXPOWER_TYPE: {
messageelements = (struct capwap_array*)messageelement->data; messageelements = (struct capwap_array*)messageelement->data;
if (messageelements && (messageelements->count > 0)) { if (messageelements && (messageelements->count > 0)) {
struct capwap_80211_txpower_element* txpower; struct capwap_80211_txpower_element* txpower;
@ -394,7 +394,7 @@ int wtp_radio_setconfiguration(struct capwap_parsed_packet* packet) {
break; break;
} }
case CAPWAP_ELEMENT_80211_WTP_QOS: { case CAPWAP_ELEMENT_80211_WTP_QOS_TYPE: {
messageelements = (struct capwap_array*)messageelement->data; messageelements = (struct capwap_array*)messageelement->data;
if (messageelements && (messageelements->count > 0)) { if (messageelements && (messageelements->count > 0)) {
struct capwap_80211_wtpqos_element* qos; struct capwap_80211_wtpqos_element* qos;
@ -416,7 +416,7 @@ int wtp_radio_setconfiguration(struct capwap_parsed_packet* packet) {
break; break;
} }
case CAPWAP_ELEMENT_80211_WTP_RADIO_CONF: { case CAPWAP_ELEMENT_80211_WTP_RADIO_CONF_TYPE: {
messageelements = (struct capwap_array*)messageelement->data; messageelements = (struct capwap_array*)messageelement->data;
if (messageelements && (messageelements->count > 0)) { if (messageelements && (messageelements->count > 0)) {
struct capwap_80211_wtpradioconf_element* radioconfig; struct capwap_80211_wtpradioconf_element* radioconfig;