FossilOrigin-Name: af10cb591d1e6db629c886cdbb268a2753bb93012e410e42f65b8385befb9896bsdmakefiles
parent
5edd4ab621
commit
b0b08c1f7c
@ -1,333 +0,0 @@ |
||||
/*
|
||||
This file is part of libcapwap. |
||||
|
||||
libcapwap is free software: you can redistribute it and/or modify |
||||
it under the terms of the GNU General Public License as published by |
||||
the Free Software Foundation, either version 3 of the License, or |
||||
(at your option) any later version. |
||||
|
||||
libcapwap is distributed in the hope that it will be useful, |
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
GNU General Public License for more details. |
||||
|
||||
You should have received a copy of the GNU General Public License |
||||
along with Foobar. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
*/ |
||||
|
||||
/**
|
||||
* @file |
||||
* @brief Implementation of methods for actionlists. |
||||
*/ |
||||
|
||||
#include "mbag.h" |
||||
#include <stdlib.h> |
||||
#include <string.h> |
||||
|
||||
#include "action.h" |
||||
|
||||
/* ---------------------------------------------
|
||||
* cw_actionlist_in stuff
|
||||
*/ |
||||
|
||||
|
||||
static int cw_action_in_cmp(const void *elem1, const void *elem2) |
||||
{ |
||||
struct cw_action_in *e1 = (struct cw_action_in *) elem1; |
||||
struct cw_action_in *e2 = (struct cw_action_in *) elem2; |
||||
int r; |
||||
|
||||
r = e1->capwap_state - e2->capwap_state; |
||||
if (r != 0) |
||||
return r; |
||||
|
||||
r = e1->msg_id - e2->msg_id; |
||||
if (r != 0) |
||||
return r; |
||||
|
||||
r = e1->elem_id - e2->elem_id; |
||||
if (r != 0) |
||||
return r; |
||||
|
||||
r = e1->vendor_id - e2->vendor_id; |
||||
if (r != 0) |
||||
return r; |
||||
|
||||
r = e1->proto - e2->proto; |
||||
if (r != 0) |
||||
return r; |
||||
|
||||
return 0; |
||||
} |
||||
|
||||
/**
|
||||
* Create an action list for incomming messages |
||||
* @return the create list or NULL if an error has occured |
||||
*/ |
||||
cw_actionlist_in_t cw_actionlist_in_create() |
||||
{ |
||||
return mavl_create(cw_action_in_cmp, free,1312); |
||||
} |
||||
|
||||
/**
|
||||
* Add an element to an "in-list" |
||||
* @param t action list to elem to |
||||
* @param a element to add |
||||
* @rturn a pointer to the added element
|
||||
*/ |
||||
cw_action_in_t *cw_actionlist_in_add(cw_actionlist_in_t t, struct cw_action_in * a) |
||||
{ |
||||
int s = sizeof(struct cw_action_in); |
||||
|
||||
void *r = mavl_replace_data(t, a, s); |
||||
if (r)
|
||||
return r; |
||||
|
||||
void *an = malloc(s); |
||||
if (!an) |
||||
return NULL; |
||||
|
||||
memcpy(an, a, s); |
||||
return mavl_add(t, an,NULL); |
||||
} |
||||
|
||||
/**
|
||||
* Get an element from an actionlist_in |
||||
* @param t action list |
||||
* @param a element to search for |
||||
* @return the elemen or NULL if not found |
||||
*/ |
||||
struct cw_action_in *cw_actionlist_in_get(cw_actionlist_in_t t, struct cw_action_in *a) |
||||
{ |
||||
return mavl_get(t, a); |
||||
} |
||||
|
||||
|
||||
/**
|
||||
* Register actions in an action list for incommin messages
|
||||
* @param t action list, where messaes will be registered |
||||
* @param actions an array of actions to reggister |
||||
* @return the number of registred actions |
||||
*/ |
||||
int cw_actionlist_in_register_actions(cw_actionlist_in_t t, cw_action_in_t * actions) |
||||
{ |
||||
int n=0; |
||||
while (actions->capwap_state) { |
||||
cw_action_in_t *rc = cw_actionlist_in_add(t, actions); |
||||
if (!rc) |
||||
return 0; |
||||
actions++; |
||||
n++; |
||||
} |
||||
return n; |
||||
} |
||||
|
||||
/* ---------------------------------------------
|
||||
* cw_actionlist_out stuff
|
||||
*/ |
||||
|
||||
|
||||
|
||||
struct outelem{ |
||||
uint32_t msg_id; |
||||
mlist_t * mlist; |
||||
}; |
||||
|
||||
|
||||
static int mout_cmp(void *elem1,void *elem2) |
||||
{ |
||||
|
||||
struct cw_action_out *e1 = (struct cw_action_out *) elem1; |
||||
struct cw_action_out *e2 = (struct cw_action_out *) elem2; |
||||
int r; |
||||
|
||||
r = e1->msg_id - e2->msg_id; |
||||
if (r ) |
||||
return r; |
||||
|
||||
r = e1->elem_id - e2->elem_id; |
||||
if (r ) |
||||
return r; |
||||
|
||||
|
||||
r = e1->vendor_id - e2->vendor_id; |
||||
if (r ) |
||||
return r; |
||||
|
||||
if (e1->item_id == e2->item_id) |
||||
return 0; |
||||
|
||||
if (e1->item_id && e2->item_id) |
||||
return strcmp(e1->item_id,e2->item_id); |
||||
|
||||
return 1;
|
||||
} |
||||
|
||||
|
||||
|
||||
struct outelem * cw_actionlist_mout_create(int msg_id) |
||||
{ |
||||
/* struct outelem * o = malloc(sizeof(struct outelem));
|
||||
if (!o) |
||||
return NULL; |
||||
|
||||
o->mlist= mlist_create(mout_cmp); |
||||
if (!o->mlist){ |
||||
free(o); |
||||
return NULL; |
||||
} |
||||
o->msg_id=msg_id; |
||||
return o; |
||||
*/ |
||||
} |
||||
|
||||
static struct outelem * cw_actionlist_out_get_outelem(cw_actionlist_out_t t, int msg_id) |
||||
{ |
||||
struct outelem search; |
||||
search.msg_id=msg_id; |
||||
return mavl_get(t,&search); |
||||
} |
||||
|
||||
|
||||
|
||||
/*
|
||||
* Compare function for actionlist_out_t lists |
||||
*/ |
||||
static int cw_action_out_cmp(const void *elem1, const void *elem2) |
||||
{ |
||||
struct outelem *e1 = (struct outelem *) elem1; |
||||
struct outelem *e2 = (struct outelem *) elem2; |
||||
return e1->msg_id - e2->msg_id; |
||||
} |
||||
|
||||
|
||||
|
||||
/**
|
||||
* Add an element to an actionlist_out |
||||
* @param t action list |
||||
* @param a element to add |
||||
*/ |
||||
cw_action_out_t *cw_actionlist_out_add(cw_actionlist_out_t t, struct cw_action_out * a) |
||||
{ |
||||
struct outelem * o = cw_actionlist_out_get_outelem(t,a->msg_id); |
||||
|
||||
|
||||
if (!o){ |
||||
o = cw_actionlist_mout_create(a->msg_id); |
||||
if (!o) { |
||||
return NULL; |
||||
} |
||||
mavl_add(t,o,NULL); |
||||
} |
||||
|
||||
struct mlistelem * e = mlist_replace(o->mlist,a); |
||||
if (!e) |
||||
e = mlist_append(o->mlist,a); |
||||
|
||||
if (e) |
||||
return a; |
||||
|
||||
return 0; |
||||
} |
||||
|
||||
|
||||
/**
|
||||
* Register actions in an action list for incommin messages
|
||||
* @param t action list, where messaes will be registered |
||||
* @param actions an array of actions to reggister |
||||
* @return the number of registred actions |
||||
*/ |
||||
|
||||
int cw_actionlist_out_register_actions(cw_actionlist_out_t t, cw_action_out_t * actions) |
||||
{ |
||||
int n=0; |
||||
while (actions->msg_id != 0) { |
||||
cw_action_out_t *rc = cw_actionlist_out_add(t, actions); |
||||
if (rc == 0) |
||||
return 0; |
||||
actions++; |
||||
n++; |
||||
} |
||||
return n; |
||||
} |
||||
|
||||
|
||||
|
||||
/**
|
||||
* Add an action to an action
|
||||
* @param t actionlist |
||||
* @param a action to add |
||||
* @param s size of element to add |
||||
* @return pointer to added element or NULL if an error has opccured |
||||
*/ |
||||
void *cw_actionlist_add(struct mavl *t, void *a, size_t s) |
||||
{ |
||||
|
||||
void *r = mavl_replace_data(t, a, s); //sizeof(struct cw_action_in));
|
||||
if (r) { |
||||
return r; |
||||
} |
||||
|
||||
void *an = malloc(s); |
||||
if (!an) |
||||
return NULL; |
||||
|
||||
memcpy(an, a, s); |
||||
return mavl_add(t, an,NULL); |
||||
|
||||
} |
||||
|
||||
|
||||
/**
|
||||
* Create an action list for outgoing message lements |
||||
* @return the created action list or NULL if an erro has occured. |
||||
*/ |
||||
cw_actionlist_out_t cw_actionlist_out_create() |
||||
{ |
||||
return mavl_create(cw_action_out_cmp, free,1312); |
||||
} |
||||
|
||||
|
||||
|
||||
mlist_t * cw_actionlist_out_get(cw_actionlist_out_t t,int msg_id) |
||||
{ |
||||
struct outelem *o = cw_actionlist_out_get_outelem(t,msg_id); |
||||
if (!o) |
||||
return NULL; |
||||
return o->mlist; |
||||
} |
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/* misc stuff */ |
||||
|
||||
|
||||
cw_action_fun_t cw_set_msg_end_callback(struct cw_actiondef *actions,
|
||||
int capwap_state,int msg_id, cw_action_fun_t callback) |
||||
{ |
||||
cw_action_in_t as; |
||||
as.capwap_state = capwap_state; |
||||
as.msg_id = msg_id; |
||||
as.vendor_id = 0; |
||||
as.elem_id = 0; |
||||
as.proto = 0; |
||||
|
||||
cw_action_in_t *af; |
||||
|
||||
|
||||
af = cw_actionlist_in_get(actions->in, &as); |
||||
if (!af)
|
||||
return NULL; |
||||
|
||||
cw_action_fun_t old = af->end; |
||||
af->end =callback; |
||||
return old; |
||||
|
||||
} |
||||
|
||||
|
||||
|
@ -1,203 +0,0 @@ |
||||
/*
|
||||
This file is part of libcapwap. |
||||
|
||||
libcapwap is free software: you can redistribute it and/or modify |
||||
it under the terms of the GNU General Public License as published by |
||||
the Free Software Foundation, either version 3 of the License, or |
||||
(at your option) any later version. |
||||
|
||||
libcapwap is distributed in the hope that it will be useful, |
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
GNU General Public License for more details. |
||||
|
||||
You should have received a copy of the GNU General Public License |
||||
along with Foobar. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
*/ |
||||
|
||||
/**
|
||||
* @file |
||||
* @brief CAPWAP ACtions Header |
||||
* @defgroup ACTION CAPWAP/LWAPP Actions |
||||
* @{ |
||||
*/
|
||||
#ifndef __ACTION_H |
||||
#define __ACTION_H |
||||
|
||||
#include <stdint.h> |
||||
|
||||
#include "mavl.h" |
||||
#include "conn.h" |
||||
/*#include "mbag.h"*/ |
||||
#include "strheap.h" |
||||
#include "intavltree.h" |
||||
#include "item.h" |
||||
#include "mlist.h" |
||||
|
||||
|
||||
struct conn; |
||||
|
||||
|
||||
|
||||
/**
|
||||
* @file action.h |
||||
* @brief Header for actions |
||||
*/ |
||||
|
||||
|
||||
#define CW_ACTION_PROTO_CAPWAP 0 |
||||
#define CW_ACTION_PROTO_LWAPP 1 |
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* @defgroup ACTION Action |
||||
* @{ |
||||
*/ |
||||
|
||||
|
||||
|
||||
/**
|
||||
* Definition of an action for incomming messages
|
||||
*/ |
||||
struct cw_action_in{ |
||||
uint32_t vendor_id; |
||||
uint8_t proto; |
||||
uint8_t capwap_state; |
||||
uint32_t msg_id; |
||||
uint16_t elem_id; |
||||
int (*start)(struct conn *conn,struct cw_action_in *a,uint8_t*data,int len,struct sockaddr *from); |
||||
int (*end)(struct conn *conn,struct cw_action_in *a,uint8_t*elem,int len,struct sockaddr *from); |
||||
const struct mbag_typedef * itemtype; |
||||
const char * item_id; |
||||
uint16_t min_len; |
||||
uint16_t max_len; |
||||
uint8_t mand; |
||||
}; |
||||
|
||||
|
||||
/** a handy type for incomming actions */ |
||||
typedef struct cw_action_in cw_action_in_t; |
||||
|
||||
/** Definition of an action list for incomming messages */ |
||||
typedef mavl_t cw_actionlist_in_t; |
||||
|
||||
|
||||
extern cw_actionlist_in_t cw_actionlist_in_create(); |
||||
extern cw_action_in_t * cw_actionlist_in_get(cw_actionlist_in_t t,cw_action_in_t *a); |
||||
|
||||
/*
|
||||
//extern cw_action_in_t * cw_actionlist_in_add(cw_actionlist_in_t t,cw_action_in_t *a);
|
||||
*/ |
||||
extern int cw_actionlist_in_register_actions(cw_actionlist_in_t t,cw_action_in_t * actions); |
||||
|
||||
|
||||
|
||||
/**
|
||||
* Definitioni of an action foroutgoing messages
|
||||
* */ |
||||
struct cw_action_out{ |
||||
uint32_t msg_id; |
||||
const char * item_id; |
||||
uint32_t vendor_id; |
||||
uint16_t elem_id; |
||||
|
||||
int (*init)(struct conn * conn, struct cw_action_out *a, uint8_t * dst);
|
||||
int (*out)(struct conn * conn, struct cw_action_out *a, uint8_t * dst);
|
||||
struct mbag_item *(*get)(struct conn *conn,struct cw_action_out *a); |
||||
uint8_t mand; |
||||
struct mbag_typedef * itemtype; |
||||
void *defval; |
||||
}; |
||||
|
||||
|
||||
typedef struct cw_action_out cw_action_out_t; |
||||
typedef struct mavl *cw_actionlist_out_t; |
||||
|
||||
|
||||
extern cw_actionlist_out_t cw_actionlist_out_create(); |
||||
extern int cw_actionlist_out_register_actions(cw_actionlist_out_t t,cw_action_out_t * actions); |
||||
mlist_t * cw_actionlist_out_get(cw_actionlist_out_t,int msg_id); |
||||
|
||||
/*
|
||||
//extern cw_action_out_t * cw_actionlist_out_add(cw_actionlist_out_t t, struct cw_action_out * a);
|
||||
*/ |
||||
|
||||
/**
|
||||
* @} |
||||
*/ |
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
extern cw_actionlist_out_t cw_actionlist_out_create(); |
||||
extern cw_action_out_t * cw_actionlist_out_add(cw_actionlist_out_t t, struct cw_action_out * a); |
||||
extern int cw_actionlist_out_register_actions(cw_actionlist_out_t t,cw_action_out_t * actions); |
||||
|
||||
/**
|
||||
* Definition CAPWAP modes |
||||
*/ |
||||
enum capwapmodes { |
||||
/** Auto -- means auto detect the CAPWAP mode and
|
||||
it set as soon as possible */ |
||||
CW_MODE_AUTO, |
||||
/** Standard CAPWAP mode as specified in RFC 5415 */ |
||||
CW_MODE_CAPWAP, |
||||
/** Cisco specific CAPWAP */ |
||||
CW_MODE_CISCO, |
||||
/** CIPWAP, a mix of standard CAPWAP and some
|
||||
Cisco extension */ |
||||
CW_MODE_CIPWAP, |
||||
/** Zyxel */ |
||||
CW_MODE_ZYXEL, |
||||
/** Lancom */ |
||||
CW_MODE_LANCOM, |
||||
/** Fortinet */ |
||||
CW_MODE_FORTINET |
||||
}; |
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
struct cw_actiondef{ |
||||
cw_actionlist_in_t in; |
||||
cw_actionlist_out_t out; |
||||
cw_strheap_t strmsg; |
||||
cw_strheap_t strelem; |
||||
cw_itemdefheap_t items; |
||||
cw_itemdefheap_t radioitems; |
||||
|
||||
mlist_t * mout;
|
||||
|
||||
/** Supported Wireless Binding IDs (WBID) */ |
||||
struct avltree * wbids; |
||||
}; |
||||
|
||||
|
||||
|
||||
extern struct outelem * cw_actionlist_out_get_mlist(cw_actionlist_out_t t, int msg_id); |
||||
|
||||
|
||||
typedef int(*cw_action_fun_t)(struct conn *,struct cw_action_in *,uint8_t*,int,struct sockaddr *); |
||||
|
||||
|
||||
cw_action_fun_t cw_set_msg_end_callback(struct cw_actiondef * actions,
|
||||
int capwap_state,int msg_id, cw_action_fun_t callback); |
||||
|
||||
|
||||
#define cw_actionlist_get_node(t,a) avltree_get_node(t,a) |
||||
|
||||
/**@}*/ |
||||
|
||||
#endif |
||||
|
||||
|
@ -1,63 +0,0 @@ |
||||
#include "mbag.h" |
||||
#include "item.h" |
||||
#include "capwap80211_items.h" |
||||
#include "capwap80211_types.h" |
||||
|
||||
|
||||
|
||||
const char CW_RADIOITEM80211_SUPPORTED_RATES[]="802.11 supported_rates"; |
||||
const char CW_RADIOITEM80211_WTP_RADIO_INFORMATION[]="802.11 radio_info"; |
||||
const char CW_RADIOITEM80211_RATE_SET[]="802.11 rate set"; |
||||
|
||||
/* MAC Operation Items */ |
||||
const char CW_RADIOITEM80211_RTS_THRESHOLD[]="rts_threshold"; |
||||
const char CW_RADIOITEM80211_FRAGMENTATION_THRESHOLD[]="fragmentation_threshold"; |
||||
const char CW_RADIOITEM80211_SHORT_RETRY[]="short_retry"; |
||||
const char CW_RADIOITEM80211_LONG_RETRY[]="long_retry"; |
||||
const char CW_RADIOITEM80211_TX_MSDU_LIFETIME[]="tx_msdu_lifetime"; |
||||
const char CW_RADIOITEM80211_RX_MSDU_LIFETIME[]="rx_msdu_lifetime"; |
||||
|
||||
/* Radio Config Items */ |
||||
const char CW_RADIOITEM80211_SHORT_PREAMBLE[]="short_preamble"; |
||||
const char CW_RADIOITEM80211_NUM_BSS_IDS[]="num_bss_ids"; |
||||
const char CW_RADIOITEM80211_DTIM_PERIOD[]="dtim_period"; |
||||
const char CW_RADIOITEM80211_BSSID[]="bssid"; |
||||
const char CW_RADIOITEM80211_BEACON_PERIOD[]="beacon_period"; |
||||
const char CW_RADIOITEM80211_COUNTRY_STRING[]="country_string"; |
||||
|
||||
|
||||
struct cw_itemdef capwap80211_itemdefs[] = { |
||||
|
||||
{CW_ITEM_NONE} |
||||
|
||||
}; |
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
struct cw_itemdef capwap80211_radioitemdefs[] = { |
||||
|
||||
{CW_RADIOITEM80211_SUPPORTED_RATES,CW_ITEM_NONE,CAPWAP80211_TYPE_RATESET}, |
||||
{CW_RADIOITEM80211_RATE_SET,CW_ITEM_NONE,CAPWAP80211_TYPE_RATESET}, |
||||
{CW_RADIOITEM80211_WTP_RADIO_INFORMATION,CW_ITEM_NONE,MTYPE_DWORD}, |
||||
|
||||
/* MAC Operation */ |
||||
{CW_RADIOITEM80211_RTS_THRESHOLD,CW_ITEM_NONE,MBAG_WORD}, |
||||
{CW_RADIOITEM80211_SHORT_RETRY,CW_ITEM_NONE,MBAG_BYTE}, |
||||
{CW_RADIOITEM80211_LONG_RETRY,CW_ITEM_NONE,MBAG_BYTE}, |
||||
{CW_RADIOITEM80211_FRAGMENTATION_THRESHOLD,CW_ITEM_NONE,MBAG_WORD}, |
||||
{CW_RADIOITEM80211_TX_MSDU_LIFETIME,CW_ITEM_NONE,MTYPE_DWORD}, |
||||
{CW_RADIOITEM80211_RX_MSDU_LIFETIME,CW_ITEM_NONE,MTYPE_DWORD}, |
||||
|
||||
/* Radio Config Items */ |
||||
{CW_RADIOITEM80211_SHORT_PREAMBLE,CW_ITEM_NONE,MBAG_BYTE}, |
||||
{CW_RADIOITEM80211_NUM_BSS_IDS,CW_ITEM_NONE,MBAG_BYTE}, |
||||
{CW_RADIOITEM80211_DTIM_PERIOD,CW_ITEM_NONE,MBAG_BYTE}, |
||||
{CW_RADIOITEM80211_BSSID,CW_ITEM_NONE,MBAG_DATA}, |
||||
{CW_RADIOITEM80211_BEACON_PERIOD,CW_ITEM_NONE,MBAG_WORD}, |
||||
{CW_RADIOITEM80211_COUNTRY_STRING,CW_ITEM_NONE,MBAG_BSTR16}, |
||||
|
||||
{CW_ITEM_NONE} |
||||
}; |
@ -1,32 +0,0 @@ |
||||
#ifndef __CAPWAP80211_ITEMS_H |
||||
#define __CAPWAP80211_ITEMS_H |
||||
|
||||
#include "item.h" |
||||
|
||||
extern const char CW_RADIOITEM80211_SUPPORTED_RATES[]; |
||||
extern const char CW_RADIOITEM80211_RATE_SET[]; |
||||
extern const char CW_RADIOITEM80211_WTP_RADIO_INFORMATION[]; |
||||
|
||||
extern struct cw_itemdef capwap80211_itemdefs[]; |
||||
extern struct cw_itemdef capwap80211_radioitemdefs[]; |
||||
|
||||
|
||||
/* MAC Operation Items */ |
||||
extern const char CW_RADIOITEM80211_RTS_THRESHOLD[]; |
||||
extern const char CW_RADIOITEM80211_FRAGMENTATION_THRESHOLD[]; |
||||
extern const char CW_RADIOITEM80211_SHORT_RETRY[]; |
||||
extern const char CW_RADIOITEM80211_LONG_RETRY[]; |
||||
extern const char CW_RADIOITEM80211_TX_MSDU_LIFETIME[]; |
||||
extern const char CW_RADIOITEM80211_RX_MSDU_LIFETIME[]; |
||||
|
||||
/* Radio Config Items */ |
||||
extern const char CW_RADIOITEM80211_SHORT_PREAMBLE[]; |
||||
extern const char CW_RADIOITEM80211_NUM_BSS_IDS[]; |
||||
extern const char CW_RADIOITEM80211_DTIM_PERIOD[]; |
||||
extern const char CW_RADIOITEM80211_BSSID[]; |
||||
extern const char CW_RADIOITEM80211_BEACON_PERIOD[]; |
||||
extern const char CW_RADIOITEM80211_COUNTRY_STRING[]; |
||||
|
||||
|
||||
#endif |
||||
|
@ -1,10 +1,11 @@ |
||||
#ifndef __CAPWAP80211_TYPES_H |
||||
#define __CAPWAP80211_TYPES_H |
||||
|
||||
#include "mbag.h" |
||||
|
||||
/*
|
||||
extern const struct mbag_typedef capwap80211_type_rateset; |
||||
|
||||
#define CAPWAP80211_TYPE_RATESET (&capwap80211_type_rateset) |
||||
*/ |
||||
|
||||
#endif |
||||
#endif |
@ -1,196 +0,0 @@ |
||||
/*
|
||||
This file is part of libcapwap. |
||||
|
||||
libcapwap is free software: you can redistribute it and/or modify |
||||
it under the terms of the GNU General Public License as published by |
||||
the Free Software Foundation, either version 3 of the License, or |
||||
(at your option) any later version. |
||||
|
||||
libcapwap is distributed in the hope that it will be useful, |
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
GNU General Public License for more details. |
||||
|
||||
You should have received a copy of the GNU General Public License |
||||
along with Foobar. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
*/ |
||||
|
||||
#ifndef __CAPWAP_ACTIONS_H |
||||
#define __CAPWAP_ACTIONS_H |
||||
|
||||
|
||||
#include "capwap.h" |
||||
#include "capwap_items.h" |
||||
|
||||
|
||||
#define CW_ACTION_IN_LOCATION_DATA \ |
||||
CW_ELEM_LOCATION_DATA, /* Element ID*/ \
|
||||
cw_in_generic, 0, /* start/end callback */ \
|
||||
MBAG_STR, /* Type of element */ \
|
||||
CW_ITEM_LOCATION_DATA, /* ID to use store */ \
|
||||
1, 1024 /* min/max length */ |
||||
|
||||
|
||||
#define CW_ACTION_IN_WTP_NAME \ |
||||
CW_ELEM_WTP_NAME, /* Element ID*/ \
|
||||
cw_in_generic, 0, /* start/end callback */ \
|
||||
MBAG_STR, /* Type of element */ \
|
||||
CW_ITEM_WTP_NAME, /* ID to use store */ \
|
||||
1, 1024 /* min/max length */ |
||||
|
||||
#define CW_ACTION_IN_SESSION_ID \ |
||||
CW_ELEM_SESSION_ID, /* Element ID*/ \
|
||||
cw_in_generic, 0, /* start/end callback */ \
|
||||
MBAG_BSTR, /* Type of element */ \
|
||||
CW_ITEM_SESSION_ID, /* ID to use store */ \
|
||||
16, 16 /* min/max length */ |
||||
|
||||
#define CW_ACTION_IN_IMAGE_IDENTIFIER \ |
||||
CW_ELEM_IMAGE_IDENTIFIER, /* Element ID*/ \
|
||||
cw_in_generic, 0, /* start/end callback */ \
|
||||
MBAG_VENDORSTR, /* Type of element */ \
|
||||
CW_ITEM_IMAGE_IDENTIFIER, /* ID to use store */ \
|
||||
5, 4096 /* min/max length */ |
||||
|
||||
#define CW_ACTION_IN_AC_NAME \ |
||||
CW_ELEM_AC_NAME, /* Element ID*/ \
|
||||
cw_in_generic, 0, /* start/end callback */ \
|
||||
MBAG_STR, /* Type of element */ \
|
||||
CW_ITEM_AC_NAME, /* ID to use store */ \
|
||||
1, 512 /* min/max length */ |
||||
|
||||
#define CW_ACTION_IN_STATISTICS_TIMER \ |
||||
CW_ELEM_STATISTICS_TIMER, /* Element ID*/ \
|
||||
cw_in_generic, 0, /* start/end callback */ \
|
||||
MBAG_WORD, /* Type of element */ \
|
||||
CW_ITEM_STATISTICS_TIMER, /* ID to use store */ \
|
||||
2, 2 /* min/max length */ |
||||
|
||||
#define CW_ACTION_IN_WTP_REBOOT_STATISTICS \ |
||||
CW_ELEM_WTP_REBOOT_STATISTICS, /* Element ID*/ \
|
||||
cw_in_generic, 0, /* start/end callback */ \
|
||||
MBAG_DATA, /* Type of element */ \
|
||||
CW_ITEM_WTP_REBOOT_STATISTICS, /* ID to use store */ \
|
||||
15, 15 /* min/max length */ |
||||
|
||||
|
||||
#define CW_ACTION_IN_WTP_FRAME_TUNNEL_MODE \ |
||||
CW_ELEM_WTP_FRAME_TUNNEL_MODE, /* Element ID*/ \
|
||||
cw_in_generic, 0, /* start/end callback */ \
|
||||
MBAG_BYTE, /* Type of element */ \
|
||||
CW_ITEM_WTP_FRAME_TUNNEL_MODE, /* ID to use store */ \
|
||||
1, 1 /* min/max length */ |
||||
|
||||
|
||||
#define CW_ACTION_IN_WTP_MAC_TYPE \ |
||||
CW_ELEM_WTP_MAC_TYPE, /* Element ID*/ \
|
||||
cw_in_generic, 0, /* start/end callback */ \
|
||||
MBAG_BYTE, /* Type of element */ \
|
||||
CW_ITEM_WTP_MAC_TYPE, /* ID to use store */ \
|
||||
1, 1 /* min/max length */ |
||||
|
||||
#define CW_ACTION_IN_VENDOR_SPECIFIC_PAYLOAD \ |
||||
CW_ELEM_VENDOR_SPECIFIC_PAYLOAD, /* Element ID */ \
|
||||
cw_in_vendor_specific_payload,0, /* start/end callback*/ \
|
||||
0, \
|
||||
0, \
|
||||
0,0
|
||||
|
||||
#define CW_ACTION_IN_WTP_BOARD_DATA \ |
||||
CW_ELEM_WTP_BOARD_DATA, /* Element ID */ \
|
||||
cw_in_wtp_board_data, 0, /* start/end callback */ \
|
||||
0, \
|
||||
CW_ITEM_WTP_BOARD_DATA, \
|
||||
0,0
|
||||
|
||||
#define CW_ACTION_IN_WTP_DESCRIPTOR \ |
||||
CW_ELEM_WTP_DESCRIPTOR, /* Element ID */ \
|
||||
cw_in_wtp_descriptor, 0, /* start/end callback */ \
|
||||
0, \
|
||||
CW_ITEM_WTP_DESCRIPTOR, \
|
||||
0,0
|
||||
|
||||
|
||||
#define CW_ACTION_IN_CAPWAP_CONTROL_IPV4_ADDRESS \ |
||||
CW_ELEM_CAPWAP_CONTROL_IPV4_ADDRESS, /* Element ID*/ \
|
||||
cw_in_capwap_control_ip_address, 0, /* start/end callback */ \
|
||||
MBAG_AVLTREE, /* Type of element */ \
|
||||
CW_ITEM_CAPWAP_CONTROL_IP_ADDRESS_LIST, /* ID to use store */ \
|
||||
6, 6 /* min/max length */ |
||||
|
||||
#define CW_ACTION_IN_CAPWAP_CONTROL_IPV6_ADDRESS \ |
||||
CW_ELEM_CAPWAP_CONTROL_IPV6_ADDRESS, /* Element ID*/ \
|
||||
cw_in_capwap_control_ip_address, 0, /* start/end callback */ \
|
||||
MBAG_AVLTREE, /* Type of element */ \
|
||||
CW_ITEM_CAPWAP_CONTROL_IP_ADDRESS_LIST, /* ID to use store */ \
|
||||
18,18 /* min/max length */ |
||||
|
||||
|
||||
|
||||
#define CW_ACTION_IN_AC_DESCRIPTOR \ |
||||
CW_ELEM_AC_DESCRIPTOR, /* Element ID*/ \
|
||||
cw_in_ac_descriptor, 0, /* start/end callback */ \
|
||||
MBAG_DATA, /* Type of element */ \
|
||||
CW_ITEM_AC_DESCRIPTOR, /* ID to use store */ \
|
||||
12, 8192 /* min/max length */ |
||||
|
||||
|
||||
#define CW_ACTION_IN_RESULT_CODE \ |
||||
CW_ELEM_RESULT_CODE, /* Element ID*/ \
|
||||
cw_in_generic, 0, /* start/end callback */ \
|
||||
MBAG_DWORD, /* Type of element */ \
|
||||
CW_ITEM_RESULT_CODE, /* ID to use store */ \
|
||||
4, 4 /* min/max length */ |
||||
|
||||
#define CW_ACTION_IN_CAPWAP_TIMERS \ |
||||
CW_ELEM_CAPWAP_TIMERS, /* Element ID*/ \
|
||||
cw_in_generic, 0, /* start/end callback */ \
|
||||
MBAG_WORD, /* Type of element */ \
|
||||
CW_ITEM_CAPWAP_TIMERS, /* ID to use store */ \
|
||||
2, 2 /* min/max length */ |
||||
|
||||
#define CW_ACTION_IN_IDLE_TIMEOUT \ |
||||
CW_ELEM_IDLE_TIMEOUT, /* Element ID*/ \
|
||||
cw_in_generic, 0, /* start/end callback */ \
|
||||
MBAG_DWORD, /* Type of element */ \
|
||||
CW_ITEM_IDLE_TIMEOUT, /* ID to use store */ \
|
||||
4, 4 /* min/max length */ |
||||
|
||||
|
||||
#define CW_ACTION_IN_AC_NAME_WITH_PRIORITY \ |
||||
CW_ELEM_IDLE_TIMEOUT, /* Element ID*/ \
|
||||
cw_in_generic, 0, /* start/end callback */ \
|
||||
MBAG_DWORD, /* Type of element */ \
|
||||
CW_ITEM_IDLE_TIMEOUT, /* ID to use store */ \
|
||||
4, 4 /* min/max length */ |
||||
|
||||
|
||||
|
||||
#define CW_ACTION_IN_RADIO_ADMINISTRATIVE_STATE \ |
||||
CW_ELEM_RADIO_ADMINISTRATIVE_STATE, /* Element ID*/ \
|
||||
cw_in_radio_administrative_state, 0, /* start/end callback */ \
|
||||
MBAG_DWORD, /* Type of element */ \
|
||||
0, /* ID to use store */ \
|
||||
4, 4 /* min/max length */ |
||||
|
||||
#define CW_ACTION_IN_RADIO_ADMINISTRATIVE_STATE_WTP \ |
||||
CW_ELEM_RADIO_ADMINISTRATIVE_STATE, /* Element ID*/ \
|
||||
cw_in_radio_administrative_state_wtp, 0, /* start/end callback */ \
|
||||
MBAG_DWORD, /* Type of element */ \
|
||||
0, /* ID to use store */ \
|
||||
4, 4 /* min/max length */ |
||||
|
||||
|
||||
|
||||
|
||||
#define CW_ACTION_IN_MAXIMUM_MESSAGE_LENGTH \ |
||||
CW_ELEM_MAXIMUM_MESSAGE_LENGTH, /* Element ID*/ \
|
||||
cw_in_generic, 0, /* start/end callback */ \
|
||||
MBAG_WORD, /* Type of element */ \
|
||||
CW_ITEM_MAXIMUM_MESSAGE_LENGTH, /* ID to use store */ \
|
||||
2, 2 /* min/max length */ |
||||
|
||||
|
||||
|
||||
#endif |
@ -1,180 +0,0 @@ |
||||
#include "mbag.h" |
||||
#include "item.h" |
||||
|
||||
#include "capwap_items.h" |
||||
|
||||
|
||||
const char CW_ITEM_CAPWAP_TRANSPORT_PROTOCOL[]="capwap_transport_protocol"; |
||||
const char CW_ITEM_IDLE_TIMEOUT[]="idle_timeout"; |
||||
const char CW_ITEM_DISCOVERY_TYPE[]="discovery_type"; |
||||
const char CW_ITEM_WTP_NAME[]="wtp_name"; |
||||
const char CW_ITEM_ECN_SUPPORT[]="ecn_support"; |
||||
const char CW_ITEM_WTP_FALLBACK[]="wtp_fallback"; |
||||
|
||||
|
||||
|
||||
const char CW_ITEM_WTP_MAC_TYPE[]="wtp_mac_type"; |
||||
const char CW_ITEM_WTP_FRAME_TUNNEL_MODE[]="wtp_frame_tunnel_mode"; |
||||
const char CW_ITEM_WTP_RADIOS_IN_USE[]="max_radios"; |
||||
const char CW_ITEM_WTP_MAX_RADIOS[]="radios_in_use"; |
||||
|
||||
/*
|
||||
const char CW_ITEM_WTP_HARDWARE_VENDOR= |
||||
*/ |
||||
|
||||
const char CW_ITEM_WTP_HARDWARE_VERSION[]="wtp_hardware_version"; |
||||
const char CW_ITEM_WTP_SOFTWARE_VERSION[]="wtp_software_version"; |
||||
const char CW_ITEM_WTP_BOOT_VERSION[]="wtp_boot_version"; |
||||
const char CW_ITEM_WTP_OTHER_VERSION[]="wtp_other_version"; |
||||
|
||||
/*
|
||||
const char CW_ITEM_WTP_SOFTWARE_VENDOR, |
||||
*/ |
||||
|
||||
/*
|
||||
const char CW_ITEM_WTP_BOOTLOADER_VENDOR, |
||||
*/ |
||||
const char CW_ITEM_WTP_BOOTLOADER_VERSION[]="wtp_bootloader_version"; |
||||
/*
|
||||
const char CW_ITEM_WTP_OTHERSOFTWARE_VENDOR, |
||||
const char CW_ITEM_WTP_OTHERSOFTWARE_VERSION, |
||||
*/ |
||||
const char CW_ITEM_WTP_BOARD_DATA[]="wtp_board_data"; |
||||
const char CW_ITEM_WTP_DESCRIPTOR[]="0wtp_descriptor"; |
||||
const char CW_ITEM_CAPWAP_TIMERS[]="capwap_timers"; |
||||
|
||||
const char CW_ITEM_AC_NAME[]="ac_name"; |
||||
const char CW_ITEM_AC_DESCRIPTOR[]="ac_descriptor"; |
||||
const char CW_ITEM_RESULT_CODE[]="result_code"; |
||||
const char CW_ITEM_AC_STATUS[]="ac_status"; |
||||
|
||||
const char CW_ITEM_AC_HARDWARE_VERSION[]="ac_hardware_version"; |
||||
const char CW_ITEM_AC_SOFTWARE_VERSION[]="ac_software_version"; |
||||
|
||||
const char CW_ITEM_AC_IP_LIST[]="ac_ip_list"; |
||||
const char CW_ITEM_CAPWAP_CONTROL_IP_ADDRESS_LIST[]="capwap_ctrl_ip_addr"; |
||||
const char CW_ITEM_CAPWAP_LOCAL_IP_ADDRESS[]="capwap_local_ip_addr"; |
||||
|
||||
const char CW_ITEM_LOCATION_DATA[]="location_data"; |
||||
const char CW_ITEM_SESSION_ID[]="session_id"; |
||||
|
||||
const char CW_ITEM_AC_TIMESTAMP[]="ac_timestamp"; |
||||
const char CW_ITEM_STATISTICS_TIMER[]="statistics_timer"; |
||||
const char CW_ITEM_WTP_REBOOT_STATISTICS[]="wtp_reboot_statistics"; |
||||
const char CW_ITEM_IMAGE_IDENTIFIER[]="image_identifier"; |
||||
//const char CW_ITEM_AC_HASH_VALUE[]="ac_hash_value";
|
||||
|
||||
const char CW_ITEM_AC_NAME_WITH_PRIORITY[]="ac_name_with_priority"; |
||||
const char CW_ITEM_MAXIMUM_MESSAGE_LENGTH[]="maximum_message_length"; |
||||
|
||||
|
||||
/* CIPWAP and Cisco */ |
||||
//const char CW_ITEM_WTP_GROUP_NAME[]="wtp_group_name";
|
||||
|
||||
|
||||
/* Other Items */ |
||||
const char CW_ITEM_AC_IMAGE_DIR[]="ac_img_dir"; /* Path where WTP images are stored */ |
||||
const char CW_ITEM_IMAGE_FILENAME[]="img_filename"; /* Full path of image filename */ |
||||
const char CW_ITEM_DISCOVERIES[]="discoveries"; |
||||
|
||||
/** FILE handle for uploading and downloading images */ |
||||
const char CW_ITEM_IMAGE_FILEHANDLE[]="image_file_handle"; |
||||
|
||||
const char CW_ITEM_RADIO_CFG[]="radio_cfg"; |
||||
|
||||
const char CW_ITEM_CISCO_BOARD_DATA_OPTIONS[]="cisco_board_data_options"; |
||||
const char CW_ITEM_RADIOS[]="radios"; |
||||
const char CW_ITEM_RADIO_OPER_STATE[]="radio_oper_state"; |
||||
|
||||
|
||||
const char CW_ITEM_WTP_BOARD_VENDOR[]="vendor_id"; |
||||
const char CW_ITEM_WTP_BOARD_MODELNO[]="model_no"; |
||||
const char CW_ITEM_WTP_BOARD_MACADDRESS[]="wtp_board_macaddress"; |
||||
const char CW_ITEM_WTP_BOARD_ID[]="wtp_board_id"; |
||||
const char CW_ITEM_WTP_BOARD_REVISION[]="wtp_board_revision"; |
||||
const char CW_ITEM_WTP_BOARD_SERIALNO[]="serial_no"; |
||||
const char CW_ITEM_RADIO_INFOS[]="radio_infos"; |
||||
|
||||
//const char CW_ITEM_XY[]="wtp_name";
|
||||
|
||||
|
||||
struct cw_itemdef capwap_itemdefs[] = { |
||||
|
||||
{CW_ITEM_WTP_NAME,CW_ITEM_NONE,MBAG_STR}, |
||||
{CW_ITEM_WTP_MAC_TYPE,CW_ITEM_NONE,MBAG_BYTE}, |
||||
{CW_ITEM_WTP_FRAME_TUNNEL_MODE,CW_ITEM_NONE,MBAG_BYTE}, |
||||
{CW_ITEM_WTP_FALLBACK,CW_ITEM_NONE,MBAG_BYTE}, |
||||
|
||||
|
||||
/* Reboot Statistics */ |
||||
{CW_ITEM_WTP_REBOOT_STATISTICS,CW_ITEM_NONE,MBAG_MBAG}, |
||||
{CW_ITEM_WTP_REBOOT_STATISTICS,CW_ITEM_REBOOT_COUNT,MBAG_WORD}, |
||||
{CW_ITEM_WTP_REBOOT_STATISTICS,CW_ITEM_REBOOT_AC_INITIATED_COUNT,MBAG_WORD}, |
||||
{CW_ITEM_WTP_REBOOT_STATISTICS,CW_ITEM_REBOOT_LINK_FAILURE_COUNT,MBAG_WORD}, |
||||
{CW_ITEM_WTP_REBOOT_STATISTICS,CW_ITEM_REBOOT_SW_FAILURE_COUNT,MBAG_WORD}, |
||||
{CW_ITEM_WTP_REBOOT_STATISTICS,CW_ITEM_REBOOT_HW_FAILURE_COUNT,MBAG_WORD}, |
||||
{CW_ITEM_WTP_REBOOT_STATISTICS,CW_ITEM_REBOOT_OTHER_FAILURE_COUNT,MBAG_WORD}, |
||||
{CW_ITEM_WTP_REBOOT_STATISTICS,CW_ITEM_REBOOT_UNKNOWN_FAILURE_COUNT,MBAG_WORD}, |
||||
{CW_ITEM_WTP_REBOOT_STATISTICS,CW_ITEM_REBOOT_LAST_FAILURE_TYPE,MBAG_BYTE}, |
||||
|
||||
|
||||
|
||||
|
||||
|
||||
{CW_ITEM_CAPWAP_TRANSPORT_PROTOCOL,CW_ITEM_NONE,MBAG_BYTE}, |
||||
|
||||
{CW_ITEM_LOCATION_DATA,CW_ITEM_NONE,MBAG_STR}, |
||||
|
||||
|
||||
|
||||
|
||||
//{CW_ITEM_WTP_GROUP_NAME,CW_ITEM_NONE,MBAG_STR},
|
||||
{CW_ITEM_MAXIMUM_MESSAGE_LENGTH,CW_ITEM_NONE,MBAG_WORD}, |
||||
{CW_ITEM_STATISTICS_TIMER,CW_ITEM_NONE,MBAG_WORD}, |
||||
{CW_ITEM_IDLE_TIMEOUT,CW_ITEM_NONE,MTYPE_DWORD}, |
||||
{CW_ITEM_CAPWAP_TIMERS,CW_ITEM_NONE,MBAG_WORD}, |
||||
|
||||
{CW_ITEM_AC_NAME_WITH_PRIORITY,CW_ITEM_ANY,MBAG_STR}, |
||||
{CW_ITEM_AC_NAME,CW_ITEM_NONE,MBAG_STR}, |
||||
{CW_ITEM_RESULT_CODE,CW_ITEM_NONE,MTYPE_DWORD}, |
||||
{CW_ITEM_ECN_SUPPORT,CW_ITEM_NONE,MBAG_BYTE}, |
||||
{CW_ITEM_DISCOVERY_TYPE,CW_ITEM_NONE,MBAG_BYTE}, |
||||
{ CW_ITEM_SESSION_ID,CW_ITEM_NONE,MBAG_BSTR}, |
||||
|
||||
|
||||
|
||||
//{CW_ITEM_AP_MODE_AND_TYPE,CW_ITEM_NONE,MBAG_WORD},
|
||||
|
||||
/* Board Data */ |
||||
{CW_ITEM_WTP_BOARD_DATA,CW_ITEM_NONE,MBAG_MBAG}, |
||||
{CW_ITEM_WTP_BOARD_DATA,CW_ITEM_WTP_BOARD_VENDOR,MTYPE_DWORD}, |
||||
{CW_ITEM_WTP_BOARD_DATA,CW_ITEM_WTP_BOARD_MODELNO,MBAG_BSTR16}, |
||||
{CW_ITEM_WTP_BOARD_DATA,CW_ITEM_WTP_BOARD_SERIALNO,MBAG_BSTR16}, |
||||
|
||||
|
||||
/* Cisco Specific items, should be moved to a file like
|
||||
cisco_items or so */ |
||||
|
||||
{CW_ITEM_CISCO_BOARD_DATA_OPTIONS,CW_ITEM_NONE,MBAG_BSTR16}, |
||||
|
||||
|
||||
|
||||
|
||||
{CW_ITEM_NONE} |
||||
|
||||
}; |
||||
|
||||
|
||||
const char CW_RADIOITEM_ADMIN_STATE[]="admin_state"; |
||||
const char CW_RADIOITEM_OPER_STATE[]="oper_state"; |
||||
const char CW_RADIOITEM_DECRYPTION_ERROR_REPORT_PERIOD[]="decryption_error_report_period"; |
||||
|
||||
|
||||
struct cw_itemdef capwap_radioitemdefs[] = { |
||||
{CW_RADIOITEM_ADMIN_STATE,CW_ITEM_NONE,MBAG_BYTE}, |
||||
{CW_RADIOITEM_OPER_STATE,CW_ITEM_NONE,MBAG_WORD}, |
||||
|
||||
{CW_RADIOITEM_DECRYPTION_ERROR_REPORT_PERIOD,CW_ITEM_NONE,MBAG_WORD}, |
||||
|
||||
{CW_ITEM_NONE} |
||||
}; |
@ -1,207 +0,0 @@ |
||||
#ifndef __CAPWAP_ITEMS_H |
||||
#define __CAPWAP_ITEMS_H |
||||
|
||||
#include "item.h" |
||||
|
||||
/*
|
||||
CW_ITEM_NONE=0, |
||||
CW_ITEM_IDLE_TIMEOUT, |
||||
CW_ITEM_DISCOVERY_TYPE, |
||||
CW_ITEM_WTP_NAME, |
||||
CW_ITEM_WTP_BOARD_VENDOR, |
||||
CW_ITEM_WTP_BOARD_MODELNO, |
||||
CW_ITEM_WTP_BOARD_MACADDRESS, |
||||
CW_ITEM_WTP_BOARD_ID, |
||||
CW_ITEM_WTP_BOARD_REVISION, |
||||
CW_ITEM_WTP_BOARD_SERIALNO, |
||||
CW_ITEM_WTP_MAC_TYPE, |
||||
CW_ITEM_WTP_FRAME_TUNNEL_MODE, |
||||
CW_ITEM_WTP_RADIOS_IN_USE, |
||||
CW_ITEM_WTP_MAX_RADIOS, |
||||
CW_ITEM_WTP_HARDWARE_VENDOR, |
||||
CW_ITEM_WTP_HARDWARE_VERSION, |
||||
CW_ITEM_WTP_SOFTWARE_VENDOR, |
||||
CW_ITEM_WTP_SOFTWARE_VERSION, |
||||
CW_ITEM_WTP_BOOTLOADER_VENDOR, |
||||
CW_ITEM_WTP_BOOTLOADER_VERSION, |
||||
CW_ITEM_WTP_OTHERSOFTWARE_VENDOR, |
||||
CW_ITEM_WTP_OTHERSOFTWARE_VERSION, |
||||
CW_ITEM_WTP_BOARD_DATA, |
||||
CW_ITEM_WTP_DESCRIPTOR, |
||||
CW_ITEM_CAPWAP_TIMERS, |
||||
CW_ITEM_RADIO_ADMINISTRATIVE_STATE, |
||||
|
||||
CW_ITEM_AC_NAME, |
||||
CW_ITEM_AC_DESCRIPTOR, |
||||
CW_ITEM_RESULT_CODE, |
||||
CW_ITEM_AC_STATUS, |
||||
|
||||
CW_ITEM_AC_HARDWARE_VERSION, |
||||
CW_ITEM_AC_SOFTWARE_VERSION, |
||||
|
||||
CW_ITEM_AC_IP_LIST, |
||||
CW_ITEM_CAPWAP_CONTROL_IP_ADDRESS_LIST, |
||||
CW_ITEM_CAPWAP_LOCAL_IP_ADDRESS, |
||||
|
||||
CW_ITEM_LOCATION_DATA, |
||||
CW_ITEM_SESSION_ID, |
||||
|
||||
CW_ITEM_AC_TIMESTAMP, |
||||
CW_ITEM_STATISTICS_TIMER, |
||||
CW_ITEM_WTP_REBOOT_STATISTICS, |
||||
CW_ITEM_IMAGE_IDENTIFIER, |
||||
CW_ITEM_AC_HASH_VALUE, |
||||
|
||||
CW_ITEM_AC_NAME_WITH_PRIORITY, |
||||
CW_ITEM_MAXIMUM_MESSAGE_LENGTH, |
||||
|
||||
|
||||
CW_ITEM_WTP_GROUP_NAME, |
||||
|
||||
|
||||
CW_ITEM_AC_IMAGE_DIR, |
||||
CW_ITEM_IMAGE_FILENAME, |
||||
CW_ITEM_DISCOVERIES, |
||||
|
||||
CW_ITEM_IMAGE_FILEHANDLE, |
||||
|
||||
CW_ITEM_RADIO_CFG, |
||||
CW_ITEM_AP_MODE_AND_TYPE, |
||||
|
||||
CW_ITEM_CISCO_BOARD_DATA_OPTIONS, |
||||
CW_ITEM_RADIOS, |
||||
CW_ITEM_RADIO_OPER_STATE, |
||||
|
||||
|
||||
*/ |
||||
|
||||
extern const char CW_ITEM_IDLE_TIMEOUT[]; |
||||
extern const char CW_ITEM_DISCOVERY_TYPE[]; |
||||
extern const char CW_ITEM_WTP_NAME[]; |
||||
extern const char CW_ITEM_WTP_FALLBACK[]; |
||||
|
||||