Add reference of IEEE802.11 message type
This commit is contained in:
parent
f0e7a37cca
commit
059f6d9dc9
@ -158,6 +158,12 @@ int ac_dfa_state_run(struct ac_session_t* session, struct capwap_parsed_packet*
|
|||||||
capwap_set_timeout(AC_MAX_ECHO_INTERVAL, &session->timeout, CAPWAP_TIMER_CONTROL_CONNECTION);
|
capwap_set_timeout(AC_MAX_ECHO_INTERVAL, &session->timeout, CAPWAP_TIMER_CONTROL_CONNECTION);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
case CAPWAP_IEEE80211_WLAN_CONFIGURATION_RESPONSE: {
|
||||||
|
/* TODO */
|
||||||
|
capwap_set_timeout(AC_MAX_ECHO_INTERVAL, &session->timeout, CAPWAP_TIMER_CONTROL_CONNECTION);
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
@ -164,13 +164,16 @@ int capwap_check_message_type(struct capwap_packet_rxmng* rxmngpacket) {
|
|||||||
if (rxmngpacket->isctrlpacket && rxmngpacket->fragmentlist->first) {
|
if (rxmngpacket->isctrlpacket && rxmngpacket->fragmentlist->first) {
|
||||||
struct capwap_fragment_packet_item* packet = (struct capwap_fragment_packet_item*)rxmngpacket->fragmentlist->first->item;
|
struct capwap_fragment_packet_item* packet = (struct capwap_fragment_packet_item*)rxmngpacket->fragmentlist->first->item;
|
||||||
struct capwap_header* header = (struct capwap_header*)packet->buffer;
|
struct capwap_header* header = (struct capwap_header*)packet->buffer;
|
||||||
|
unsigned short binding = GET_WBID_HEADER(rxmngpacket->header);
|
||||||
|
|
||||||
lengthpayload = packet->offset - GET_HLEN_HEADER(header) * 4;
|
lengthpayload = packet->offset - GET_HLEN_HEADER(header) * 4;
|
||||||
if (lengthpayload >= sizeof(struct capwap_control_message)) {
|
if (lengthpayload >= sizeof(struct capwap_control_message)) {
|
||||||
if ((rxmngpacket->ctrlmsg.type >= CAPWAP_FIRST_MESSAGE_TYPE) && (rxmngpacket->ctrlmsg.type <= CAPWAP_LAST_MESSAGE_TYPE)) {
|
if (CAPWAP_VALID_MESSAGE_TYPE(rxmngpacket->ctrlmsg.type)) {
|
||||||
|
return VALID_MESSAGE_TYPE;
|
||||||
|
} else if ((binding == CAPWAP_WIRELESS_BINDING_IEEE80211) && CAPWAP_VALID_IEEE80211_MESSAGE_TYPE(rxmngpacket->ctrlmsg.type)) {
|
||||||
return VALID_MESSAGE_TYPE;
|
return VALID_MESSAGE_TYPE;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Unknown message type */
|
/* Unknown message type */
|
||||||
if ((rxmngpacket->ctrlmsg.type % 2) != 0) {
|
if ((rxmngpacket->ctrlmsg.type % 2) != 0) {
|
||||||
return INVALID_REQUEST_MESSAGE_TYPE;
|
return INVALID_REQUEST_MESSAGE_TYPE;
|
||||||
|
@ -116,6 +116,13 @@ struct capwap_message_element {
|
|||||||
#define CAPWAP_STATION_CONFIGURATION_REQUEST 25
|
#define CAPWAP_STATION_CONFIGURATION_REQUEST 25
|
||||||
#define CAPWAP_STATION_CONFIGURATION_RESPONSE 26
|
#define CAPWAP_STATION_CONFIGURATION_RESPONSE 26
|
||||||
#define CAPWAP_LAST_MESSAGE_TYPE 26
|
#define CAPWAP_LAST_MESSAGE_TYPE 26
|
||||||
|
#define CAPWAP_VALID_MESSAGE_TYPE(x) (((x) >= CAPWAP_FIRST_MESSAGE_TYPE) && ((x) <= CAPWAP_LAST_MESSAGE_TYPE))
|
||||||
|
|
||||||
|
#define CAPWAP_IEEE80211_FIRST_MESSAGE_TYPE 3398913
|
||||||
|
#define CAPWAP_IEEE80211_WLAN_CONFIGURATION_REQUEST 3398913
|
||||||
|
#define CAPWAP_IEEE80211_WLAN_CONFIGURATION_RESPONSE 3398914
|
||||||
|
#define CAPWAP_IEEE80211_LAST_MESSAGE_TYPE 3398914
|
||||||
|
#define CAPWAP_VALID_IEEE80211_MESSAGE_TYPE(x) (((x) >= CAPWAP_IEEE80211_FIRST_MESSAGE_TYPE) && ((x) <= CAPWAP_IEEE80211_LAST_MESSAGE_TYPE))
|
||||||
|
|
||||||
/* Control Message */
|
/* Control Message */
|
||||||
#define CAPWAP_CONTROL_MESSAGE_MIN_LENGTH 3
|
#define CAPWAP_CONTROL_MESSAGE_MIN_LENGTH 3
|
||||||
|
@ -158,6 +158,11 @@ int wtp_dfa_state_run(struct capwap_parsed_packet* packet, struct timeout_contro
|
|||||||
status = WTP_DFA_NO_PACKET;
|
status = WTP_DFA_NO_PACKET;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
case CAPWAP_IEEE80211_WLAN_CONFIGURATION_REQUEST: {
|
||||||
|
/* TODO */
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
Loading…
Reference in New Issue
Block a user