Work on Cisco elements
FossilOrigin-Name: e85120145936b3c53bef57144667078010c2e22d7db08797259bbc2670eb0a4b
This commit is contained in:
@ -401,7 +401,10 @@ static struct cw_ElemHandler handlers[] = {
|
||||
};
|
||||
|
||||
|
||||
static uint16_t discovery_request_states[] = {CAPWAP_STATE_DISCOVERY,0};
|
||||
static cw_State_t discovery_request_states[] = {
|
||||
{CAPWAP_STATE_DISCOVERY,CAPWAP_STATE_DISCOVERY},
|
||||
{0,0}
|
||||
};
|
||||
static struct cw_ElemDef discovery_request_elements[] ={
|
||||
{0,0,CAPWAP_ELEM_DISCOVERY_TYPE, 1, 0},
|
||||
{0,0,CAPWAP_ELEM_WTP_BOARD_DATA, 1, 0},
|
||||
@ -414,7 +417,10 @@ static struct cw_ElemDef discovery_request_elements[] ={
|
||||
};
|
||||
|
||||
|
||||
static uint16_t discovery_response_states[] = {CAPWAP_STATE_DISCOVERY,0};
|
||||
static cw_State_t discovery_response_states[] = {
|
||||
{CAPWAP_STATE_DISCOVERY,CAPWAP_STATE_DISCOVERY},
|
||||
{0,0}
|
||||
};
|
||||
static struct cw_ElemDef discovery_response_elements[] ={
|
||||
{0,0,CAPWAP_ELEM_AC_DESCRIPTOR, 1, 0},
|
||||
{0,0,CAPWAP_ELEM_AC_NAME, 1, 0},
|
||||
@ -425,9 +431,10 @@ static struct cw_ElemDef discovery_response_elements[] ={
|
||||
|
||||
};
|
||||
|
||||
static uint16_t join_request_states[] = {
|
||||
CW_TRANSITION(CAPWAP_STATE_DTLS_SETUP,CAPWAP_STATE_JOIN),
|
||||
0};
|
||||
static cw_State_t join_request_states[] = {
|
||||
{CAPWAP_STATE_JOIN, CAPWAP_STATE_JOIN},
|
||||
{0,0}
|
||||
};
|
||||
static struct cw_ElemDef join_request_elements[] ={
|
||||
{0,0,CAPWAP_ELEM_LOCATION_DATA, 1, 0},
|
||||
{0,0,CAPWAP_ELEM_WTP_BOARD_DATA, 1, 0},
|
||||
@ -446,7 +453,10 @@ static struct cw_ElemDef join_request_elements[] ={
|
||||
{0,0,0,0,0}
|
||||
};
|
||||
|
||||
static uint16_t join_response_states[] = {CAPWAP_STATE_JOIN,0};
|
||||
static cw_State_t join_response_states[] = {
|
||||
{CAPWAP_STATE_JOIN,CAPWAP_STATE_JOIN},
|
||||
{0,0}
|
||||
};
|
||||
static struct cw_ElemDef join_response_elements[] ={
|
||||
{0,0,CAPWAP_ELEM_RESULT_CODE, 1, 0},
|
||||
{0,0,CAPWAP_ELEM_AC_DESCRIPTOR, 1, 0},
|
||||
@ -465,9 +475,10 @@ static struct cw_ElemDef join_response_elements[] ={
|
||||
};
|
||||
|
||||
|
||||
static uint16_t configuration_status_request_states[] = {
|
||||
CW_TRANSITION(CAPWAP_STATE_JOIN, CAPWAP_STATE_JOIN),
|
||||
0};
|
||||
static cw_State_t configuration_status_request_states[] = {
|
||||
{CAPWAP_STATE_JOIN, CAPWAP_STATE_CONFIGURE},
|
||||
{0,0}
|
||||
};
|
||||
static struct cw_ElemDef configuration_status_request_elements[] ={
|
||||
{0,0,CAPWAP_ELEM_AC_NAME, 1, 0},
|
||||
{0,0,CAPWAP_ELEM_RADIO_ADMINISTRATIVE_STATE, 1, 0},
|
||||
@ -479,7 +490,10 @@ static struct cw_ElemDef configuration_status_request_elements[] ={
|
||||
{0,0,0,0,0}
|
||||
};
|
||||
|
||||
static uint16_t configuration_status_response_states[] = {CAPWAP_STATE_JOIN,0};
|
||||
static cw_State_t configuration_status_response_states[] = {
|
||||
{CAPWAP_STATE_JOIN,CAPWAP_STATE_JOIN},
|
||||
{0,0}
|
||||
};
|
||||
static struct cw_ElemDef configuration_status_response_elements[] ={
|
||||
{0,0,CAPWAP_ELEM_CAPWAP_TIMERS, 1, 0},
|
||||
{0,0,CAPWAP_ELEM_DECRYPTION_ERROR_REPORT_PERIOD, 1, 0},
|
||||
@ -491,7 +505,10 @@ static struct cw_ElemDef configuration_status_response_elements[] ={
|
||||
};
|
||||
|
||||
|
||||
static uint16_t configuration_update_request_states[] = {CAPWAP_STATE_RUN,0};
|
||||
static cw_State_t configuration_update_request_states[] = {
|
||||
{CAPWAP_STATE_RUN,CAPWAP_STATE_RUN},
|
||||
{0,0}
|
||||
};
|
||||
static struct cw_ElemDef configuration_update_request_elements[] ={
|
||||
|
||||
{0,0,CAPWAP_ELEM_RADIO_ADMINISTRATIVE_STATE, 0, 0},
|
||||
@ -505,16 +522,21 @@ static struct cw_ElemDef configuration_update_request_elements[] ={
|
||||
|
||||
|
||||
|
||||
static uint16_t configuration_update_response_states[] = {CAPWAP_STATE_RUN,0};
|
||||
static cw_State_t configuration_update_response_states[] = {
|
||||
{CAPWAP_STATE_RUN,CAPWAP_STATE_RUN},
|
||||
{0,0}
|
||||
};
|
||||
static struct cw_ElemDef configuration_update_response_elements[] ={
|
||||
{0,0,CAPWAP_ELEM_RESULT_CODE, 1, 0},
|
||||
|
||||
{0,0,0,0,0}
|
||||
};
|
||||
|
||||
static uint16_t change_state_event_request_states[] = {
|
||||
CW_TRANSITION(CAPWAP_STATE_JOIN, CAPWAP_STATE_CONFIGURE),
|
||||
0};
|
||||
static cw_State_t change_state_event_request_states[] = {
|
||||
{CAPWAP_STATE_CONFIGURE,CAPWAP_STATE_DATA_CHECK},
|
||||
{CAPWAP_STATE_RUN,CAPWAP_STATE_RUN},
|
||||
{0,0}
|
||||
};
|
||||
static struct cw_ElemDef change_state_event_request_elements[] ={
|
||||
|
||||
{0,0,CAPWAP_ELEM_RADIO_OPERATIONAL_STATE, 1,0},
|
||||
@ -524,7 +546,10 @@ static struct cw_ElemDef change_state_event_request_elements[] ={
|
||||
{0,0,0,0,0}
|
||||
};
|
||||
|
||||
static uint16_t change_state_event_response_states[] = {CAPWAP_STATE_JOIN,0};
|
||||
static cw_State_t change_state_event_response_states[] = {
|
||||
{CAPWAP_STATE_JOIN,CAPWAP_STATE_JOIN},
|
||||
{0,0}
|
||||
};
|
||||
static struct cw_ElemDef change_state_event_response_elements[] ={
|
||||
{0,0,CAPWAP_ELEM_RESULT_CODE, 1, 0},
|
||||
|
||||
@ -532,14 +557,20 @@ static struct cw_ElemDef change_state_event_response_elements[] ={
|
||||
};
|
||||
|
||||
|
||||
static uint16_t wtp_event_request_states[] = {CAPWAP_STATE_JOIN,0};
|
||||
static cw_State_t wtp_event_request_states[] = {
|
||||
{CAPWAP_STATE_RUN,CAPWAP_STATE_RUN},
|
||||
{0,0}
|
||||
};
|
||||
static struct cw_ElemDef wtp_event_request_elements[] ={
|
||||
|
||||
{0,0,CAPWAP_ELEM_VENDOR_SPECIFIC_PAYLOAD, 0, CW_IGNORE},
|
||||
{0,0,0,0,0}
|
||||
};
|
||||
|
||||
static uint16_t wtp_event_response_states[] = {CAPWAP_STATE_JOIN,0};
|
||||
static cw_State_t wtp_event_response_states[] = {
|
||||
{CAPWAP_STATE_JOIN,0},
|
||||
{0,0}
|
||||
};
|
||||
static struct cw_ElemDef wtp_event_response_elements[] ={
|
||||
{0,0,CAPWAP_ELEM_RESULT_CODE, 1, 0},
|
||||
|
||||
@ -547,13 +578,19 @@ static struct cw_ElemDef wtp_event_response_elements[] ={
|
||||
};
|
||||
|
||||
|
||||
static uint16_t echo_request_states[] = {CAPWAP_STATE_RUN,0};
|
||||
static cw_State_t echo_request_states[] = {
|
||||
{CAPWAP_STATE_RUN,CAPWAP_STATE_RUN},
|
||||
{0,0}
|
||||
};
|
||||
static struct cw_ElemDef echo_request_elements[] ={
|
||||
{0,0,CAPWAP_ELEM_VENDOR_SPECIFIC_PAYLOAD, 0, CW_IGNORE},
|
||||
{0,0,0,0,0}
|
||||
};
|
||||
|
||||
static uint16_t echo_response_states[] = {CAPWAP_STATE_RUN,0};
|
||||
static cw_State_t echo_response_states[] = {
|
||||
{CAPWAP_STATE_RUN,0},
|
||||
{0,0}
|
||||
};
|
||||
static struct cw_ElemDef echo_response_elements[] ={
|
||||
{0,0,CAPWAP_ELEM_VENDOR_SPECIFIC_PAYLOAD, 0, CW_IGNORE},
|
||||
{0,0,0,0,0}
|
||||
@ -587,8 +624,6 @@ static struct cw_MsgDef messages[] = {
|
||||
join_request_elements,
|
||||
NULL,
|
||||
postprocess_join_request,
|
||||
CAPWAP_STATE_JOIN,
|
||||
|
||||
},
|
||||
|
||||
{
|
||||
@ -607,7 +642,6 @@ static struct cw_MsgDef messages[] = {
|
||||
configuration_status_request_elements, /* msg elements */
|
||||
NULL,
|
||||
NULL,
|
||||
CAPWAP_STATE_CONFIGURE
|
||||
},
|
||||
|
||||
{
|
||||
@ -639,10 +673,9 @@ static struct cw_MsgDef messages[] = {
|
||||
CAPWAP_MSG_CHANGE_STATE_EVENT_REQUEST, /* msg type */
|
||||
CW_ROLE_AC, /* role */
|
||||
change_state_event_request_states, /* allowed states */
|
||||
change_state_event_request_elements /* msg elements */
|
||||
change_state_event_request_elements, /* msg elements */
|
||||
NULL,
|
||||
NULL,
|
||||
CAPWAP_STATE_DATA_CHECK
|
||||
},
|
||||
|
||||
{
|
||||
@ -698,6 +731,72 @@ static int postprocess_join_request(struct conn *conn)
|
||||
}
|
||||
|
||||
|
||||
static cw_StateMachineState_t statemachine_states[]={
|
||||
{
|
||||
CAPWAP_STATE_DTLS_SETUP, CAPWAP_STATE_JOIN, /* transition */
|
||||
"wait-join",CAPWAP_WAIT_JOIN, /* timer */
|
||||
1 /* retval */
|
||||
}
|
||||
,
|
||||
{
|
||||
CAPWAP_STATE_JOIN,CAPWAP_STATE_TIMEOUT,
|
||||
NULL,0,
|
||||
0, "WTP Join timeout"
|
||||
}
|
||||
,
|
||||
{
|
||||
CAPWAP_STATE_JOIN, CAPWAP_STATE_JOIN,
|
||||
NULL,0,
|
||||
1, "WTP has joined"
|
||||
|
||||
}
|
||||
,
|
||||
{
|
||||
CAPWAP_STATE_JOIN, CAPWAP_STATE_CONFIGURE,
|
||||
"capwap-timers/change-state-pending-timer",CAPWAP_TIMER_CHANGE_STATE_PENDING_TIMER,
|
||||
1, NULL
|
||||
}
|
||||
,
|
||||
{
|
||||
CAPWAP_STATE_CONFIGURE,CAPWAP_STATE_TIMEOUT,
|
||||
NULL,0,
|
||||
0, "WTP change state timeout"
|
||||
}
|
||||
,
|
||||
{
|
||||
CAPWAP_STATE_CONFIGURE,CAPWAP_STATE_DATA_CHECK,
|
||||
"capwap-timers/data-check-timer",CAPWAP_TIMER_DATA_CHECK_TIMER,
|
||||
1, NULL
|
||||
}
|
||||
,
|
||||
{
|
||||
CAPWAP_STATE_DATA_CHECK,CAPWAP_STATE_TIMEOUT,
|
||||
NULL,0,
|
||||
0, "WTP data check timeout"
|
||||
}
|
||||
,
|
||||
|
||||
{
|
||||
CAPWAP_STATE_DATA_CHECK,CAPWAP_STATE_RUN,
|
||||
"capwap-timers/echo-interval",CAPWAP_ECHO_INTERVAL,
|
||||
1, NULL
|
||||
}
|
||||
,
|
||||
{
|
||||
CAPWAP_STATE_RUN,CAPWAP_STATE_RUN,
|
||||
"capwap-timers/echo-interval",CAPWAP_ECHO_INTERVAL,
|
||||
1, NULL
|
||||
}
|
||||
,
|
||||
{
|
||||
CAPWAP_STATE_RUN,CAPWAP_STATE_TIMEOUT,
|
||||
NULL,0,
|
||||
0, "WTP echo timout"
|
||||
}
|
||||
,
|
||||
{0,0,0}
|
||||
};
|
||||
|
||||
|
||||
|
||||
struct cw_MsgSet * capwap_register_msg_set(struct cw_MsgSet * set, int mode){
|
||||
@ -707,6 +806,9 @@ struct cw_MsgSet * capwap_register_msg_set(struct cw_MsgSet * set, int mode){
|
||||
cw_dbg(DBG_INFO,"CAPWAP: Register messages");
|
||||
|
||||
cw_msgset_add(set,messages, handlers);
|
||||
|
||||
cw_msgset_add_states(set,statemachine_states);
|
||||
|
||||
mavl_add_ptr(set->types_tree,CW_TYPE_BSTR16);
|
||||
mavl_add_ptr(set->types_tree,CW_TYPE_BYTE);
|
||||
mavl_add_ptr(set->types_tree,CW_TYPE_DWORD);
|
||||
|
@ -29,7 +29,7 @@ int capwap_in_vendor_specific_payload(struct cw_ElemHandler *handler,
|
||||
cw_dbg(DBG_WARN,
|
||||
"Can't handle Vendor Specific Payload %s/%d, in msg %d (%s) in %s state.",
|
||||
cw_strvendor(vendor_id), elem_id, params->msgdata->type,
|
||||
params->msgdata->name, cw_strstate(params->conn->capwap_transition));
|
||||
params->msgdata->name, cw_strstate(params->conn->capwap_state));
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -44,7 +44,7 @@ OBJDIR := ../../../obj/mod_cisco/$(ARCH)
|
||||
SNAME := $(LIBARCHDIR)/libmod_cisco.a
|
||||
DNAME := $(LIBARCHDIR)/mod_cisco.so
|
||||
MODNAME := $(LIBDIR)/mod_cisco.so
|
||||
SLIBS := -lcw -lmod_capwap -lconfuse
|
||||
SLIBS := -lcw -lconfuse
|
||||
|
||||
|
||||
include ../Mod.mak
|
||||
|
@ -102,7 +102,7 @@
|
||||
#define CW_CISCO_TLV_PAYLOAD 215
|
||||
#define CISCO_ELEM_AP_LOG_FACILITY 224
|
||||
|
||||
#define CW_CISCO_OPER_STATE_DETAIL_CAUSE 235
|
||||
#define CISCO_ELEM_OPER_STATE_DETAIL_CAUSE 235
|
||||
|
||||
|
||||
#define CW_CISCO_AP_RETRANSMIT_PARAM 240
|
||||
|
@ -1333,12 +1333,35 @@ static struct cw_ElemHandler handlers73[] = {
|
||||
cw_out_generic_struct /* put */
|
||||
}
|
||||
,
|
||||
|
||||
{
|
||||
"AP DTLS Data CFG", /* name */
|
||||
CISCO_LWELEM_AP_DTLS_DATA_CFG, /* Element ID */
|
||||
CW_VENDOR_ID_CISCO, CW_PROTO_LWAPP, /* Vendor / Proto */
|
||||
3, 3, /* min/max length */
|
||||
CW_TYPE_BSTR16, /* type */
|
||||
"cisco/ap-dtls-data-cfg", /* Key */
|
||||
cw_in_generic, /* get */
|
||||
cw_out_generic /* put */
|
||||
}
|
||||
,
|
||||
{
|
||||
"Operational State Detail Cause", /* name */
|
||||
CISCO_ELEM_OPER_STATE_DETAIL_CAUSE, /* Element ID */
|
||||
CW_VENDOR_ID_CISCO, 0, /* Vendor / Proto */
|
||||
4, 4, /* min/max length */
|
||||
CW_TYPE_WORD, /* type */
|
||||
"cisco/operational-state-detail-cause", /* Key */
|
||||
cw_in_radio_generic, /* get */
|
||||
cw_out_radio_generic /* put */
|
||||
}
|
||||
,
|
||||
{0,0,0,0,0,0,0,0}
|
||||
|
||||
};
|
||||
|
||||
|
||||
static uint16_t discovery_request_states[] = {CAPWAP_STATE_DISCOVERY,0};
|
||||
/*static uint16_t discovery_request_states[] = {CAPWAP_STATE_DISCOVERY,0};*/
|
||||
static struct cw_ElemDef discovery_request_elements[] ={
|
||||
/* {0,0, CAPWAP_ELEM_WTP_DESCRIPTOR, 1, 0},*/
|
||||
{0,0, CAPWAP_ELEM_WTP_BOARD_DATA, 0, 0},
|
||||
@ -1348,7 +1371,7 @@ static struct cw_ElemDef discovery_request_elements[] ={
|
||||
|
||||
};
|
||||
|
||||
static uint16_t discovery_response_states[] = {CAPWAP_STATE_DISCOVERY,0};
|
||||
/*static uint16_t discovery_response_states[] = {CAPWAP_STATE_DISCOVERY,0};*/
|
||||
static struct cw_ElemDef discovery_response_elements[] ={
|
||||
{0,CW_VENDOR_ID_CISCO, CISCO_ELEM_AP_TIMESYNC, 1, 0},
|
||||
{0,CW_VENDOR_ID_CISCO, CISCO_ELEM_MWAR_TYPE, 0, 0},
|
||||
@ -1378,7 +1401,7 @@ static struct cw_ElemDef join_request_elements[] ={
|
||||
|
||||
};
|
||||
|
||||
static uint16_t join_response_states[] = {CAPWAP_STATE_JOIN,0};
|
||||
/*static uint16_t join_response_states[] = {CAPWAP_STATE_JOIN,0};*/
|
||||
static struct cw_ElemDef join_response_elements[] ={
|
||||
{0, CW_VENDOR_ID_CISCO, CISCO_ELEM_SPAM_VENDOR_SPECIFIC,0, CW_IGNORE},
|
||||
|
||||
@ -1415,6 +1438,8 @@ static struct cw_ElemDef configuration_status_request_elements[] ={
|
||||
{0, CW_VENDOR_ID_CISCO, CISCO_ELEM_AC_NAME_WITH_INDEX, 0, CW_IGNORE},
|
||||
{0, CW_VENDOR_ID_CISCO, CISCO_ELEM_AP_CORE_DUMP, 0, 0},
|
||||
{0, CW_VENDOR_ID_CISCO, CISCO_ELEM_AP_VENUE_SETTINGS, 0, 0},
|
||||
{0, CW_VENDOR_ID_CISCO, CISCO_ELEM_MAC_OPERATION, 0, 0},
|
||||
{0, CW_VENDOR_ID_CISCO, CISCO_ELEM_TX_POWER, 0, 0},
|
||||
|
||||
{CW_PROTO_LWAPP, CW_VENDOR_ID_CISCO, CISCO_LWELEM_AP_USERNAME_PASSWORD, 1, 0},
|
||||
{CW_PROTO_LWAPP, CW_VENDOR_ID_CISCO, CISCO_LWELEM_AP_LOGHOST_CONFIG, 1, 0},
|
||||
@ -1426,14 +1451,14 @@ static struct cw_ElemDef configuration_status_request_elements[] ={
|
||||
{CW_PROTO_LWAPP, CW_VENDOR_ID_CISCO, CISCO_LWELEM_TCP_ADJUST_MSS, 0, 0},
|
||||
{CW_PROTO_LWAPP, CW_VENDOR_ID_CISCO, CISCO_LWELEM_HARDWARE_INFO, 0, 0},
|
||||
{CW_PROTO_LWAPP, CW_VENDOR_ID_CISCO, CISCO_LWELEM_ROUGE_DETECTION, 0, 0},
|
||||
|
||||
{CW_PROTO_LWAPP, CW_VENDOR_ID_CISCO, CISCO_LWELEM_AP_DTLS_DATA_CFG, 0, 0},
|
||||
|
||||
{CW_PROTO_LWAPP, CW_VENDOR_ID_CISCO, CISCO_LWELEM_DISCOVERY_PROTOCOL, 1, 0},
|
||||
{0,0,0,00}
|
||||
|
||||
};
|
||||
|
||||
static uint16_t configuration_status_response_states[] = {CAPWAP_STATE_JOIN,0};
|
||||
/*static uint16_t configuration_status_response_states[] = {CAPWAP_STATE_JOIN,0};*/
|
||||
static struct cw_ElemDef configuration_status_response_elements[] ={
|
||||
{0,0, CAPWAP_ELEM_RADIO_ADMINISTRATIVE_STATE, 1,0},
|
||||
{0,0, CAPWAP_ELEM_RADIO_OPERATIONAL_STATE, 1,0},
|
||||
@ -1455,7 +1480,7 @@ static struct cw_ElemDef configuration_status_response_elements[] ={
|
||||
};
|
||||
|
||||
|
||||
static uint16_t configuration_update_request_states[] = {CAPWAP_STATE_RUN,0};
|
||||
/*static uint16_t configuration_update_request_states[] = {CAPWAP_STATE_RUN,0};*/
|
||||
static struct cw_ElemDef configuration_update_request_elements[] ={
|
||||
{0, CW_VENDOR_ID_CISCO, CISCO_ELEM_SPAM_VENDOR_SPECIFIC,0, CW_IGNORE},
|
||||
|
||||
@ -1513,21 +1538,47 @@ static struct cw_ElemDef configuration_update_request_elements[] ={
|
||||
|
||||
};
|
||||
|
||||
static uint16_t wtp_event_request_states[] = {CAPWAP_STATE_JOIN,0};
|
||||
/*static uint16_t wtp_event_request_states[] = {CAPWAP_STATE_JOIN,0};*/
|
||||
static struct cw_ElemDef wtp_event_request_elements[] ={
|
||||
{0, CW_VENDOR_ID_CISCO, CISCO_ELEM_SPAM_VENDOR_SPECIFIC,0, CW_IGNORE},
|
||||
{0, CW_VENDOR_ID_CISCO, CISCO_ELEM_ADD_WLAN, 0, CW_IGNORE},
|
||||
|
||||
{CW_PROTO_LWAPP, CW_VENDOR_ID_CISCO, CISCO_LWELEM_HARDWARE_INFO, 0, 0},
|
||||
|
||||
{0,0,0,0,0}
|
||||
};
|
||||
|
||||
static uint16_t wtp_event_response_states[] = {CAPWAP_STATE_JOIN,0};
|
||||
/*static uint16_t wtp_event_response_states[] = {CAPWAP_STATE_JOIN,0};*/
|
||||
static struct cw_ElemDef wtp_event_response_elements[] ={
|
||||
/* {0,0,CAPWAP_ELEM_RESULT_CODE, 1, 0},*/
|
||||
|
||||
{0,0,0,0,0}
|
||||
};
|
||||
|
||||
static uint16_t wtp_echo_response_states[] = {CAPWAP_STATE_RUN,0};
|
||||
|
||||
static struct cw_ElemDef change_state_event_request_elements[] ={
|
||||
{0, CW_VENDOR_ID_CISCO, CISCO_ELEM_SPAM_VENDOR_SPECIFIC, 0, CW_IGNORE},
|
||||
|
||||
{0, CW_VENDOR_ID_CISCO, CISCO_ELEM_ADD_WLAN, 0, CW_IGNORE},
|
||||
{0, CW_VENDOR_ID_CISCO, CISCO_ELEM_OPER_STATE_DETAIL_CAUSE, 0, CW_IGNORE},
|
||||
|
||||
{CW_PROTO_LWAPP, CW_VENDOR_ID_CISCO, CISCO_LWELEM_HARDWARE_INFO, 0, 0},
|
||||
|
||||
{0,0,0,0,0}
|
||||
};
|
||||
|
||||
/*static uint16_t wtp_event_response_states[] = {CAPWAP_STATE_JOIN,0};*/
|
||||
static struct cw_ElemDef change_state_event_response_elements[] ={
|
||||
/* {0,0,CAPWAP_ELEM_RESULT_CODE, 1, 0},*/
|
||||
|
||||
{0,0,0,0,0}
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/*static uint16_t wtp_echo_response_states[] = {CAPWAP_STATE_RUN,0};*/
|
||||
static struct cw_ElemDef wtp_echo_response_elements[] ={
|
||||
{0,CW_VENDOR_ID_CISCO, CISCO_ELEM_AP_TIMESYNC, 1, 0},
|
||||
{0,0,0,0,0}
|
||||
@ -1539,7 +1590,7 @@ static struct cw_MsgDef messages[] = {
|
||||
NULL, /* name */
|
||||
CAPWAP_MSG_DISCOVERY_REQUEST, /* type */
|
||||
CW_ROLE_AC, /* role */
|
||||
discovery_request_states, /* states */
|
||||
NULL, /* states */
|
||||
discovery_request_elements, /* elements */
|
||||
NULL, /* preprocess fun */
|
||||
postprocess_discovery /* postprocess fun */
|
||||
@ -1548,7 +1599,7 @@ static struct cw_MsgDef messages[] = {
|
||||
NULL, /* name */
|
||||
CAPWAP_MSG_DISCOVERY_RESPONSE, /* type */
|
||||
CW_ROLE_WTP,
|
||||
discovery_response_states,
|
||||
NULL,
|
||||
discovery_response_elements,
|
||||
|
||||
},
|
||||
@ -1565,7 +1616,7 @@ static struct cw_MsgDef messages[] = {
|
||||
NULL, /* name */
|
||||
CAPWAP_MSG_JOIN_RESPONSE, /* type */
|
||||
CW_ROLE_WTP,
|
||||
join_response_states,
|
||||
NULL,
|
||||
join_response_elements
|
||||
},
|
||||
|
||||
@ -1583,7 +1634,7 @@ static struct cw_MsgDef messages[] = {
|
||||
NULL, /* name */
|
||||
CAPWAP_MSG_CONFIGURATION_STATUS_RESPONSE, /* type */
|
||||
CW_ROLE_WTP,
|
||||
configuration_status_response_states,
|
||||
NULL,
|
||||
configuration_status_response_elements,
|
||||
NULL /* postprocess */
|
||||
},
|
||||
@ -1592,7 +1643,7 @@ static struct cw_MsgDef messages[] = {
|
||||
NULL, /* name */
|
||||
CAPWAP_MSG_CONFIGURATION_UPDATE_REQUEST, /* type */
|
||||
CW_ROLE_WTP,
|
||||
configuration_update_request_states,
|
||||
NULL,
|
||||
configuration_update_request_elements,
|
||||
NULL /* postprocess */
|
||||
},
|
||||
@ -1602,7 +1653,7 @@ static struct cw_MsgDef messages[] = {
|
||||
NULL, /* name */
|
||||
CAPWAP_MSG_WTP_EVENT_REQUEST, /* msg type */
|
||||
CW_ROLE_AC, /* role */
|
||||
wtp_event_request_states, /* allowed states */
|
||||
NULL, /* allowed states */
|
||||
wtp_event_request_elements /* msg elements */
|
||||
},
|
||||
|
||||
@ -1610,16 +1661,33 @@ static struct cw_MsgDef messages[] = {
|
||||
NULL, /* name */
|
||||
CAPWAP_MSG_WTP_EVENT_RESPONSE, /* msg type */
|
||||
CW_ROLE_WTP, /* role */
|
||||
wtp_event_response_states, /* allowed states */
|
||||
NULL, /* allowed states */
|
||||
wtp_event_response_elements /* msg elements */
|
||||
},
|
||||
|
||||
{
|
||||
NULL, /* name */
|
||||
CAPWAP_MSG_CHANGE_STATE_EVENT_REQUEST, /* msg type */
|
||||
CW_ROLE_AC, /* role */
|
||||
NULL, /* allowed states */
|
||||
change_state_event_request_elements /* msg elements */
|
||||
},
|
||||
|
||||
{
|
||||
NULL, /* name */
|
||||
CAPWAP_MSG_CHANGE_STATE_EVENT_RESPONSE, /* msg type */
|
||||
CW_ROLE_WTP, /* role */
|
||||
NULL, /* allowed states */
|
||||
change_state_event_response_elements /* msg elements */
|
||||
},
|
||||
|
||||
|
||||
|
||||
{
|
||||
NULL, /* name */
|
||||
CAPWAP_MSG_ECHO_RESPONSE, /* msg type */
|
||||
CW_ROLE_WTP, /* role */
|
||||
wtp_echo_response_states, /* allowed states */
|
||||
NULL, /* allowed states */
|
||||
wtp_echo_response_elements /* msg elements */
|
||||
},
|
||||
|
||||
@ -1641,7 +1709,7 @@ static struct cw_ElemHandler handlers75[] = {
|
||||
}
|
||||
,
|
||||
{
|
||||
"Mac Operation (Version >= 7.5", /* name */
|
||||
"Mac Operation (Version >= 7.5)", /* name */
|
||||
CISCO_ELEM_MAC_OPERATION, /* Element ID */
|
||||
CW_VENDOR_ID_CISCO,0, /* Vendor / Proto */
|
||||
17,17, /* min/max length */
|
||||
@ -1654,15 +1722,35 @@ static struct cw_ElemHandler handlers75[] = {
|
||||
{0,0,0,0,0,0,0,0}
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
static struct cw_MsgDef messages75[] = {
|
||||
{0,0,0,0}
|
||||
};
|
||||
|
||||
|
||||
|
||||
static cw_StateMachineState_t statemachine_states[]={
|
||||
{
|
||||
CAPWAP_STATE_CONFIGURE,CAPWAP_STATE_DATA_CHECK,
|
||||
NULL,0,
|
||||
1, NULL,
|
||||
CAPWAP_STATE_DATA_CHECK,CAPWAP_STATE_RUN
|
||||
}
|
||||
,
|
||||
{0,0,0}
|
||||
};
|
||||
|
||||
|
||||
|
||||
struct cw_MsgSet * cisco_register_msg_set(struct cw_MsgSet * set, int mode){
|
||||
if (mode != CW_MOD_MODE_CAPWAP)
|
||||
return NULL;
|
||||
cw_msgset_add(set,messages, handlers73);
|
||||
cw_msgset_add_states(set,statemachine_states);
|
||||
return set;
|
||||
}
|
||||
|
||||
|
@ -20,7 +20,7 @@ int cisco_in_spam_vendor_specific(struct cw_ElemHandler *eh,
|
||||
cw_dbg(DBG_WARN,
|
||||
"Can't handle Vendor Specific LWAPP Payload %s/%d, in msg %d (%s) in %s state.",
|
||||
cw_strvendor(vendor_id), elem_id, params->msgdata->type,
|
||||
params->msgdata->name, cw_strstate(params->conn->capwap_transition));
|
||||
params->msgdata->name, cw_strstate(params->conn->capwap_state));
|
||||
return 0;
|
||||
|
||||
}
|
||||
|
@ -49,10 +49,11 @@
|
||||
#define CISCO_LWELEM_PATH_MTU 73
|
||||
#define CISCO_LWELEM_TCP_ADJUST_MSS 77
|
||||
#define LW_CISCO_PRIMED_JOIN_TIMEOUT 85
|
||||
#define LW_CISCO_AP_DTLS_DATA_CFG 74
|
||||
#define CISCO_LWELEM_AP_DTLS_DATA_CFG 74
|
||||
|
||||
#define CISCO_LWELEM_RAD_EXTENDED_CONFIG 111
|
||||
#define CISCO_LWELEM_ADD_WLAN 128
|
||||
#define CISCO_LWELEM_AP_DNS_SERV_IP_ADD 121
|
||||
#define CISCO_LWELEM_VLAN 123
|
||||
|
||||
#define CISCO_LWELEM_SSC_HASH_VALIDATION 133
|
||||
|
Reference in New Issue
Block a user