Reads Cisco 1048 elements

FossilOrigin-Name: 862bfe7c8db943b9aada1de60f3c537ffe7fd0fc0f943d952c6a912ff9f53cdd
This commit is contained in:
7u83@mail.ru
2018-03-28 07:36:15 +00:00
parent 28b0488a10
commit 17aeec3516
15 changed files with 94 additions and 68 deletions

View File

@ -17,7 +17,7 @@ static struct cw_ElemHandler handlers[] = {
CAPWAP80211_ELEM_WTP_RADIO_INFORMATION, /* Element ID */
0, 0, /* Vendor / Proto */
0, 0, /* min/max length */
CW_TYPE_DWORD, /* type */
CW_TYPE_DWORD, /* type */
"wtp-radio-information", /* Key */
cw_in_radio_generic, /* get */
cw_out_radio_generic /* put */

View File

@ -18,6 +18,7 @@
#include "cw/capwap.h"
#include "cw/capwap80211.h"
#include "cw/msgset.h"
#include "cw/ktv.h"
#include "cw/keys.h"
@ -61,7 +62,7 @@ static struct cw_ElemHandler handlers[] = {
}
,
{
"AC Descriptor (Cisco)", /* name */
"AC Descriptor (Cisco LWAPP)", /* name */
CAPWAP_ELEM_AC_DESCRIPTOR, /* Element ID */
0,0, /* Vendor / Proto */
4,128, /* min/max length */
@ -134,8 +135,9 @@ static struct cw_ElemDef discovery_request_elements[] ={
static int 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},
{0,CW_VENDOR_ID_CISCO, CISCO_ELEM_AP_TIMESYNC, 1, 0},
{0,CW_VENDOR_ID_CISCO, CISCO_ELEM_MWAR_TYPE, 0, 0},
{0,0, CAPWAP80211_ELEM_WTP_RADIO_INFORMATION, 0, 0},
{0,0,0,00}
};
@ -143,15 +145,15 @@ static struct cw_ElemDef discovery_response_elements[] ={
static struct cw_MsgDef messages[] = {
{
"Discovery Request",
CAPWAP_MSG_DISCOVERY_REQUEST,
CW_RECEIVER_AC,
NULL, /* name */
CAPWAP_MSG_DISCOVERY_REQUEST, /* type */
CW_RECEIVER_AC,
discovery_request_states,
discovery_request_elements
},
{
"Discovery Response",
CAPWAP_MSG_DISCOVERY_RESPONSE,
NULL, /* name */
CAPWAP_MSG_DISCOVERY_RESPONSE, /* type */
CW_RECEIVER_WTP,
discovery_response_states,
discovery_response_elements

View File

@ -12,4 +12,6 @@ int cisco_in_ac_descriptor(struct cw_ElemHandler *eh,
struct cw_ElemHandlerParams *params,
uint8_t * data, int len);
struct cw_MsgSet * cisco_register_msg_set(struct cw_MsgSet * set, int mode);
#endif

View File

@ -8,20 +8,23 @@
/*#include "mod_cisco.h"*/
#include "../modload.h"
/*#include "../modload.h"*/
#include "cw/vendors.h"
#include "mod_cisco.h"
/*
extern int cisco_register_actions80211_ac(struct cw_actiondef *def);
extern int cisco_register_actions_ac(struct cw_actiondef *def);
*/
/*mbag_t cisco_config = NULL;*/
static struct cw_Mod * capwap_mod = NULL;
static struct cw_Mod * capwap80211_mod = NULL;
static struct cw_MsgSet * register_messages(struct cw_MsgSet *set, int mode)
{
@ -30,30 +33,25 @@ static struct cw_MsgSet * register_messages(struct cw_MsgSet *set, int mode)
case CW_MOD_MODE_CAPWAP:
{
capwap_mod->register_messages(set, CW_MOD_MODE_CAPWAP);
capwap80211_mod->register_messages(set, CW_MOD_MODE_BINDINGS);
cisco_register_msg_set(set,CW_MOD_MODE_CAPWAP);
/* cw_dbg(DBG_MOD,"Cisco: loading cisco message set");*/
cisco_register_msg_set(set,CW_MOD_MODE_CAPWAP);
/* cw_dbg(DBG_INFO, "Initialized mod_cisco with %d messages", 7);*/
break;
}
/* case CW_MOD_MODE_BINDINGS:
case CW_MOD_MODE_BINDINGS:
{
return 0;
struct cw_Mod *cmod = cw_mod_load("capwap80211"); //modload_ac("capwap80211");
if (!cmod) {
cw_log(LOG_ERR,
"Can't initialize mod_cisco, failed to load base mod mod_capwap80211");
return 1;
}
cmod->register_messages(set, CW_MOD_MODE_BINDINGS);
int rc = cisco_register_actions80211_ac(set);
cw_dbg(DBG_INFO, "Initialized mod_cisco 80211 with %d actions", 12);
return 0;
break;
}
*/
}
cw_dbg(DBG_INFO,"CISCO: Done register messages");
return 0;
@ -90,6 +88,11 @@ static int init(struct cw_Mod *mod, mavl_t global_cfg, int role)
if (capwap_mod == NULL){
cw_log(LOG_ERR, "CISCO: failed to load base module 'capwap");
}
capwap80211_mod = cw_mod_load("capwap80211", global_cfg,role);
if (capwap_mod == NULL){
cw_log(LOG_ERR, "CISCO: failed to load base module 'capwap80211");
}
/*cisco_config = mbag_create();*/
@ -128,7 +131,7 @@ static int init(struct cw_Mod *mod, mavl_t global_cfg, int role)
free(str);
}
*/
errX:
/*errX:*/
if (hardware_version)
free (hardware_version);
if (software_version)