Checks always for mandatory elements.
FossilOrigin-Name: 2e73b184e82e247388dd98ddcb7b4209a5063d58841d3df4600b71ce5732aad1
This commit is contained in:
@ -189,6 +189,20 @@ static cw_action_in_t actions_in[] = {
|
||||
.end = cw_in_check_generic_resp
|
||||
}
|
||||
,
|
||||
/* Capwap Timers - Config Status Resp */
|
||||
{
|
||||
.capwap_state = CW_STATE_CONFIGURE,
|
||||
.msg_id = CW_MSG_CONFIGURATION_STATUS_RESPONSE,
|
||||
.elem_id = CW_ELEM_CAPWAP_TIMERS,
|
||||
.item_id = CW_ITEM_CAPWAP_TIMERS,
|
||||
.start = cw_in_generic2,
|
||||
.min_len = 2,
|
||||
.max_len = 2,
|
||||
.mand = 1
|
||||
}
|
||||
,
|
||||
|
||||
|
||||
|
||||
/* Idle Timeout - Config Status Resp */
|
||||
{
|
||||
@ -203,19 +217,6 @@ static cw_action_in_t actions_in[] = {
|
||||
}
|
||||
,
|
||||
|
||||
/* Capwap Timers - Config Status Resp */
|
||||
{
|
||||
.capwap_state = CW_STATE_CONFIGURE,
|
||||
.msg_id = CW_MSG_CONFIGURATION_STATUS_RESPONSE,
|
||||
.elem_id = CW_ELEM_CAPWAP_TIMERS,
|
||||
.item_id = CW_ITEM_CAPWAP_TIMERS,
|
||||
.start = cw_in_generic2,
|
||||
.min_len = 2,
|
||||
.max_len = 2,
|
||||
.mand = 1
|
||||
}
|
||||
,
|
||||
|
||||
|
||||
|
||||
|
||||
@ -233,6 +234,18 @@ static cw_action_in_t actions_in[] = {
|
||||
,
|
||||
|
||||
|
||||
/* Vendor Specific Payload - Cponfig Status Resp */
|
||||
{
|
||||
.capwap_state = CW_STATE_CONFIGURE,
|
||||
.msg_id = CW_MSG_CONFIGURATION_STATUS_RESPONSE,
|
||||
.elem_id = CW_ELEM_VENDOR_SPECIFIC_PAYLOAD,
|
||||
.start = cw_in_vendor_specific_payload
|
||||
}
|
||||
,
|
||||
|
||||
/* ----------------------------------------------------------------
|
||||
* Change State Event Response - IN
|
||||
*/
|
||||
|
||||
{
|
||||
.capwap_state = CW_STATE_CONFIGURE,
|
||||
@ -285,7 +298,50 @@ static cw_action_in_t actions_in[] = {
|
||||
}
|
||||
,
|
||||
|
||||
/* Vendor Specific Payload - Echo Response */
|
||||
|
||||
/* WTP Name - Config Update Req */
|
||||
{
|
||||
.capwap_state = CW_STATE_RUN,
|
||||
.msg_id = CW_MSG_CONFIGURATION_UPDATE_REQUEST,
|
||||
.elem_id = CW_ELEM_WTP_NAME,
|
||||
.item_id = CW_ITEM_WTP_NAME,
|
||||
.start = cw_in_generic2,
|
||||
.min_len = 1,
|
||||
.max_len = 1024,
|
||||
.mand = 0
|
||||
}
|
||||
,
|
||||
|
||||
|
||||
|
||||
|
||||
/* Location Data - Config Update Req */
|
||||
{
|
||||
.capwap_state = CW_STATE_RUN,
|
||||
.msg_id = CW_MSG_CONFIGURATION_UPDATE_REQUEST,
|
||||
.elem_id = CW_ELEM_LOCATION_DATA,
|
||||
.item_id = CW_ITEM_LOCATION_DATA,
|
||||
.start = cw_in_generic2,
|
||||
.min_len = 1,
|
||||
.max_len = 1024,
|
||||
.mand = 0
|
||||
}
|
||||
,
|
||||
|
||||
|
||||
/* Radio Admin State - Config Status Request */
|
||||
{
|
||||
.capwap_state = CW_STATE_RUN,
|
||||
.msg_id = CW_MSG_CONFIGURATION_UPDATE_REQUEST,
|
||||
.elem_id = CW_ELEM_RADIO_ADMINISTRATIVE_STATE,
|
||||
.item_id = CW_ITEM_RADIO_ADMINISTRATIVE_STATE,
|
||||
.start = cw_in_radio_administrative_state,
|
||||
.mand = 1
|
||||
}
|
||||
,
|
||||
|
||||
|
||||
/* Vendor Specific Payload - Config Update Req */
|
||||
{
|
||||
.capwap_state = CW_STATE_RUN,
|
||||
.msg_id = CW_MSG_CONFIGURATION_UPDATE_REQUEST,
|
||||
|
@ -9,7 +9,9 @@ OBJS=\
|
||||
cisco_out_ac_descriptor.o \
|
||||
cisco_out_wtp_descriptor.o \
|
||||
cisco_in_ac_descriptor.o\
|
||||
cisco80211.o
|
||||
cisco80211.o \
|
||||
cisco_in_radio_administrative_state.o
|
||||
|
||||
|
||||
|
||||
NAME=libcisco.a
|
||||
|
@ -4,14 +4,21 @@
|
||||
#include "cw/conn.h"
|
||||
#include "cw/action.h"
|
||||
|
||||
extern int cisco_out_ap_timesync(struct conn *conn,struct cw_action_out * a,uint8_t *dst);
|
||||
extern int cisco_in_wtp_descriptor(struct conn *conn, struct cw_action_in *a, uint8_t * data,
|
||||
int len, struct sockaddr *from);
|
||||
extern int cisco_out_ac_descriptor(struct conn *conn,struct cw_action_out * a,uint8_t *dst) ;
|
||||
extern int cisco_out_wtp_descriptor(struct conn *conn, struct cw_action_out *a, uint8_t * dst);
|
||||
extern int cisco_out_ap_timesync(struct conn *conn, struct cw_action_out *a,
|
||||
uint8_t * dst);
|
||||
extern int cisco_in_wtp_descriptor(struct conn *conn, struct cw_action_in *a,
|
||||
uint8_t * data, int len, struct sockaddr *from);
|
||||
extern int cisco_out_ac_descriptor(struct conn *conn, struct cw_action_out *a,
|
||||
uint8_t * dst);
|
||||
extern int cisco_out_wtp_descriptor(struct conn *conn, struct cw_action_out *a,
|
||||
uint8_t * dst);
|
||||
|
||||
|
||||
extern int cisco_in_ac_descriptor(struct conn *conn, struct cw_action_in *a, uint8_t * data,
|
||||
int len, struct sockaddr *from);
|
||||
extern int cisco_in_ac_descriptor(struct conn *conn, struct cw_action_in *a,
|
||||
uint8_t * data, int len, struct sockaddr *from);
|
||||
|
||||
extern int cisco_in_radio_administrative_state_wtp(struct conn *conn,
|
||||
struct cw_action_in *a, uint8_t * data,
|
||||
int len, struct sockaddr *from);
|
||||
|
||||
#endif
|
||||
|
@ -34,6 +34,11 @@
|
||||
|
||||
static cw_action_in_t actions_in[] = {
|
||||
|
||||
/* ----------------------------------------------------------------
|
||||
* Discovery Response
|
||||
*/
|
||||
|
||||
|
||||
/* AC Descriptor - Discovery Response */
|
||||
{
|
||||
.capwap_state = CW_STATE_DISCOVERY,
|
||||
@ -48,9 +53,14 @@ static cw_action_in_t actions_in[] = {
|
||||
,
|
||||
|
||||
|
||||
/* ----------------------------------------------------------------
|
||||
* Join Response
|
||||
*/
|
||||
|
||||
|
||||
/* ECN Support - Join Response */
|
||||
{
|
||||
/* Make ECN Support non-mand */
|
||||
.capwap_state = CW_STATE_JOIN,
|
||||
.msg_id = CW_MSG_JOIN_RESPONSE,
|
||||
.elem_id = CW_ELEM_ECN_SUPPORT,
|
||||
@ -64,6 +74,7 @@ static cw_action_in_t actions_in[] = {
|
||||
|
||||
/* AC Descriptor - Join Response */
|
||||
{
|
||||
/* Cisco's AC Descriptor */
|
||||
.capwap_state = CW_STATE_JOIN,
|
||||
.msg_id = CW_MSG_JOIN_RESPONSE,
|
||||
.elem_id = CW_ELEM_AC_DESCRIPTOR,
|
||||
@ -76,15 +87,50 @@ static cw_action_in_t actions_in[] = {
|
||||
,
|
||||
|
||||
|
||||
/* Vendor Specific Payload - Cponfiguration Status Response */
|
||||
/* ----------------------------------------------------------------
|
||||
* Configuration Update Request
|
||||
*/
|
||||
|
||||
/* Location Data - Conf Update Req */
|
||||
{
|
||||
.capwap_state = CW_STATE_CONFIGURE,
|
||||
.msg_id = CW_MSG_CONFIGURATION_STATUS_RESPONSE,
|
||||
.elem_id = CW_ELEM_VENDOR_SPECIFIC_PAYLOAD,
|
||||
.start = cw_in_vendor_specific_payload
|
||||
.capwap_state = CW_STATE_RUN,
|
||||
.vendor_id = CW_VENDOR_ID_CISCO,
|
||||
.msg_id = CW_MSG_CONFIGURATION_UPDATE_REQUEST,
|
||||
.elem_id = LW_ELEM_LOCATION_DATA,
|
||||
.item_id = CW_ITEM_LOCATION_DATA,
|
||||
.start = cw_in_generic2,
|
||||
.min_len = 0,
|
||||
.max_len = 1024,
|
||||
.mand = 0
|
||||
}
|
||||
,
|
||||
|
||||
|
||||
/* WTP Name - Conf Update Req */
|
||||
{
|
||||
.capwap_state = CW_STATE_RUN,
|
||||
.vendor_id = CW_VENDOR_ID_CISCO,
|
||||
.msg_id = CW_MSG_CONFIGURATION_UPDATE_REQUEST,
|
||||
.elem_id = CW_CISCO_RAD_NAME,
|
||||
.item_id = CW_ITEM_WTP_NAME,
|
||||
.start = cw_in_generic2,
|
||||
.min_len = 0,
|
||||
.max_len = 1024,
|
||||
.mand = 0
|
||||
}
|
||||
,
|
||||
|
||||
/* Radio Admin State - Config Status Request */
|
||||
{
|
||||
.capwap_state = CW_STATE_RUN,
|
||||
.msg_id = CW_MSG_CONFIGURATION_UPDATE_REQUEST,
|
||||
.elem_id = CW_ELEM_RADIO_ADMINISTRATIVE_STATE,
|
||||
.item_id = CW_ITEM_RADIO_ADMINISTRATIVE_STATE,
|
||||
.start = cisco_in_radio_administrative_state_wtp,
|
||||
.mand = 1
|
||||
}
|
||||
,
|
||||
|
||||
|
||||
|
||||
/* End of list */
|
||||
{0, 0}
|
||||
|
Reference in New Issue
Block a user