code cleanup

FossilOrigin-Name: 9a108e18195d7c46a978339d7818ac688dec8315eb4afdd826d39f8cebab82a3
This commit is contained in:
7u83@mail.ru 2018-03-19 19:00:58 +00:00
parent 34646183a1
commit 3ea831d90c
21 changed files with 106 additions and 1083 deletions

View File

@ -3,12 +3,10 @@
<VirtualDirectory Name="src">
<VirtualDirectory Name="mod">
<VirtualDirectory Name="cipwap">
<File Name="src/mod/cipwap/cipwap_items.c"/>
<File Name="src/mod/cipwap/cipwap_actions_ac.c"/>
<File Name="src/mod/cipwap/mod_cipwap_ac.c"/>
<File Name="src/mod/cipwap/mod_cipwap.h"/>
<File Name="src/mod/cipwap/mod_cipwap_wtp.c"/>
<File Name="src/mod/cipwap/cipwap_items.h"/>
<File Name="src/mod/cipwap/cipwap_actions_wtp.c"/>
</VirtualDirectory>
</VirtualDirectory>

View File

@ -6,8 +6,6 @@
<File Name="src/mod/cisco/cisco_out_telnet_ssh.c"/>
<File Name="src/mod/cisco/cisco_out_capwap_up.c"/>
<File Name="src/mod/cisco/cisco_in_telnet_ssh.c"/>
<File Name="src/mod/cisco/cisco_items.c"/>
<File Name="src/mod/cisco/capwap_items.h"/>
<File Name="src/mod/cisco/cisco_in_radio_administrative_state.c"/>
<File Name="src/mod/cisco/cisco_actions_wtp.c"/>
<File Name="src/mod/cisco/cisco_out_wtp_descriptor.c"/>
@ -28,7 +26,6 @@
<File Name="src/mod/cisco/cisco80211_out_wtp_radio_configuration.c"/>
<File Name="src/mod/cisco/cisco_in_add_wlan.c"/>
<File Name="src/mod/cisco/cisco80211_in_mac_operation.c"/>
<File Name="src/mod/cisco/cisco_items.h"/>
<File Name="src/mod/cisco/cisco80211_in_wtp_radio_configuration.c"/>
<File Name="src/mod/cisco/cisco80211.h"/>
<File Name="src/mod/cisco/cisco.h"/>
@ -36,6 +33,7 @@
<File Name="src/mod/cisco/mod_cisco_wtp.c"/>
<File Name="src/mod/cisco/cisco80211.c"/>
<File Name="src/mod/cisco/mod_cisco.h"/>
<File Name="src/mod/cisco/capwap_cisco.h"/>
</VirtualDirectory>
</VirtualDirectory>
</VirtualDirectory>

View File

@ -20,12 +20,14 @@
#include "cw/cw.h"
#include "cw/ktv.h"
#include "cw/log.h"
#include "cw/dbg.h"
#include "cw/msgset.h"
#include "cw/keys.h"
#include "mod_capwap.h"
static struct cw_ElemHandler handlers[] = {
{
@ -219,12 +221,16 @@ static struct cw_MsgDef messages[] = {
struct cw_MsgSet * capwap_register_msg_set(struct cw_MsgSet * set, int mode){
if (mode != CW_MOD_MODE_CAPWAP)
return NULL;
cw_dbg(DBG_INFO,"CAPWAP: Register messages");
cw_msgset_add(set,messages, handlers);
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);
mavl_add_ptr(set->types_tree,CW_TYPE_WORD);
cw_dbg(DBG_INFO,"CAPWAP: Done register messages");
return set;
}

View File

@ -33,7 +33,7 @@ int capwap_in_vendor_specific_payload(struct cw_ElemHandler *handler,
return 0;
}
cw_dbg_elem(DBG_ELEM_IN,params->conn,0,vhandler, params, data+6,len-6);
// cw_dbg_elem(DBG_ELEM_IN,params->conn,0,vhandler, data+6,len-6);
//vhandler->get(vhandler, params, data+6, len-6);
cw_process_element(params,0,vendor_id,elem_id,data+6,len-6);

View File

@ -14,6 +14,7 @@ extern int capwap_register_actions_ac(struct cw_actiondef *def);
static int init(struct cw_Mod * mod, mavl_t global_cfg, int role)
{
cw_dbg(DBG_INFO,"CAPWAP: Inititalizing mod_capwap.");
switch (role){
case CW_ROLE_AC:{
cw_dbg(DBG_MOD, "CAPWAP: Initialiazing mod_capwap in AC mode");

View File

@ -1,43 +0,0 @@
#include "cw/mbag.h"
#include "cw/item.h"
#include "cipwap_items.h"
const char CIPWAP_ITEM_SSH_ENABLE[]="ssh_enable";
const char CIPWAP_ITEM_TELNET_ENABLE[]="telnet_enable";
const char CIPWAP_ITEM_AC_HASH_VALUE[]="ac_hash_value";
const char CIPWAP_ITEM_LOG_FACILITY[]="log_facility";
const char CIPWAP_ITEM_WTP_GROUP_NAME[]="wtp_group";
struct cw_itemdef cipwap_itemdefs[] = {
{CIPWAP_ITEM_TELNET_ENABLE,CW_ITEM_NONE,MBAG_BYTE},
{CIPWAP_ITEM_SSH_ENABLE,CW_ITEM_NONE,MBAG_BYTE},
{CIPWAP_ITEM_AC_HASH_VALUE,CW_ITEM_NONE,MBAG_BSTR16},
{CIPWAP_ITEM_LOG_FACILITY,CW_ITEM_NONE,MBAG_BYTE},
{CIPWAP_ITEM_WTP_GROUP_NAME,CW_ITEM_NONE,MBAG_BSTR16},
{CW_ITEM_NONE}
};
const char CIPWAP_RADIOITEM80211_OCCUPANCY_LIMIT[]="occupancy_limit";
const char CIPWAP_RADIOITEM80211_CFP_PERIOD[]="cfp_period";
const char CIPWAP_RADIOITEM80211_CFP_MAXIMUM_DURATION[]="cfp_max_duration";
struct cw_itemdef cipwap_radioitemdefs[] = {
{CIPWAP_RADIOITEM80211_OCCUPANCY_LIMIT,CW_ITEM_NONE,MBAG_WORD},
{CIPWAP_RADIOITEM80211_CFP_PERIOD,CW_ITEM_NONE,MBAG_BYTE},
{CIPWAP_RADIOITEM80211_CFP_MAXIMUM_DURATION,CW_ITEM_NONE,MBAG_WORD},
{CW_ITEM_NONE}
};

View File

@ -1,19 +0,0 @@
#ifndef __CIPWAP_ITEMS_H
#define __CIPWAP_ITEMS_H
extern const char CIPWAP_ITEM_SSH_ENABLE[];
extern const char CIPWAP_ITEM_TELNET_ENABLE[];
extern const char CIPWAP_ITEM_AC_HASH_VALUE[];
extern const char CIPWAP_ITEM_LOG_FACILITY[];
extern const char CIPWAP_ITEM_WTP_GROUP_NAME[];
extern const char CIPWAP_RADIOITEM80211_OCCUPANCY_LIMIT[];
extern const char CIPWAP_RADIOITEM80211_CFP_PERIOD[];
extern const char CIPWAP_RADIOITEM80211_CFP_MAXIMUM_DURATION[];
extern struct cw_itemdef cipwap_itemdefs[];
extern struct cw_itemdef cipwap_radioitemdefs[];
#endif

View File

@ -6,19 +6,19 @@ include ../../Config.local.mak
OBJS=\
mod_cisco_ac.o \
cisco_actions_ac.o \
cisco_actions_wtp.o \
cisco_out_ap_timesync.o \
cisco_in_wtp_descriptor.o \
cisco_out_ac_descriptor.o \
cisco_out_wtp_descriptor.o \
cisco_out_telnet_ssh.o \
cisco_in_ac_descriptor.o\
cisco80211.o \
cisco_out_board_data_options.o \
# cisco80211.o \
# cisco_out_radio_administrative_state.o \
cisco_in_radio_administrative_state.o \
cisco_in_spam_vendor_specific.o \
# cisco_out_ap_timesync.o \
cisco_out_board_data_options.o \
# cisco_out_ac_descriptor.o \
# cisco_out_telnet_ssh.o \
cisco_in_telnet_ssh.o \
cisco_items.o \
cisco_in_ac_descriptor.o\
cisco80211_in_mac_operation.o \
cisco80211_in_wtp_radio_configuration.o \
cisco80211_out_wtp_radio_configuration.o \
@ -31,8 +31,6 @@ OBJS=\
cisco_in_radio_operational_state.o \
cisco_out_wtp_operational_state.o
# cisco_out_radio_administrative_state.o \
LIBDIR := ../../../lib
LIBARCHDIR := $(LIBDIR)/$(ARCH)

View File

@ -27,9 +27,9 @@
#include <string.h>
#include <time.h>
#include "lwapp.h"
#include "cw.h"
#include "vendors.h"
#include "cw/lwapp.h"
#include "cw/cw.h"
#include "cw/vendors.h"
#define CW_CISCO_MWAR_ADDR LW_ELEM_AC_ADDRESS /* 2 */
#define CW_CISCO_RAD 3
@ -112,9 +112,9 @@
#define CW_CISCO_AP_LED_FLASH_CONFIG 254
/*
int cw_put_cisco_ap_timesync(uint8_t * dst, time_t time, uint8_t type);
*/
/*
int cw_out_cisco_ap_timesync(struct conn *conn,struct cw_action_out * a,uint8_t *dst);
@ -142,6 +142,7 @@ static inline int cw_addelem_cisco_mwar(uint8_t *dst, struct ac_info *acinfo){
}
*/
/*
int cw_readelem_cisco_station_cfg(uint8_t *src,int len);
int cw_addelem_cisco_certificate(uint8_t*dst,uint8_t*src,int len);
@ -150,11 +151,13 @@ extern const char * cw_cisco_id_to_str(int elem_id);
int cw_readelem_cisco_wtp_radio_cfg(int elem_id,uint8_t *elem, int len,struct radioinfo *ri);
int cw_addelem_cisco_wtp_radio_cfg(uint8_t*dst,struct radioinfo * ri);
*/
/*
extern int cw_out_cisco_ac_descriptor(struct conn *conn,struct cw_action_out * a,uint8_t *dst) ;
*/
/*
int cw_in_cisco_image_identifier(struct conn *conn,struct cw_action_in * a,uint8_t *data,int len,struct sockaddr *from);
int cw_in_cipwap_wtp_descriptor(struct conn *conn, struct cw_action_in *a, uint8_t * data,
@ -179,5 +182,5 @@ int cw_in_cisco_radio_cfg(struct conn *conn, struct cw_action_in *a, uint8_t * d
int cw_in_cisco_add_wlan(struct conn *conn, struct cw_action_in *a, uint8_t * data, int len,
struct sockaddr *from);
*/
#endif

View File

@ -1,180 +0,0 @@
#ifndef __CAPWAP_ITEMS_H
#define __CAPWAP_ITEMS_H
#include "capwap/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_BOARD_VENDOR,
extern const char CW_ITEM_WTP_BOARD_MODELNO,
extern const char CW_ITEM_WTP_BOARD_MACADDRESS,
extern const char CW_ITEM_WTP_BOARD_ID,
extern const char CW_ITEM_WTP_BOARD_REVISION,
extern const char CW_ITEM_WTP_BOARD_SERIALNO,
*/
extern const char CW_ITEM_WTP_MAC_TYPE[];
extern const char CW_ITEM_WTP_FRAME_TUNNEL_MODE[];
/*
extern const char CW_ITEM_WTP_RADIOS_IN_USE=
extern const char CW_ITEM_WTP_MAX_RADIOS,
*/
/*
extern const char CW_ITEM_WTP_HARDWARE_VENDOR=
extern const char CW_ITEM_WTP_HARDWARE_VERSION="
*/
/*
extern const char CW_ITEM_WTP_SOFTWARE_VENDOR,
extern const char CW_ITEM_WTP_SOFTWARE_VERSION,
extern const char CW_ITEM_WTP_BOOTLOADER_VENDOR,
extern const char CW_ITEM_WTP_BOOTLOADER_VERSION,
extern const char CW_ITEM_WTP_OTHERSOFTWARE_VENDOR,
extern const char CW_ITEM_WTP_OTHERSOFTWARE_VERSION,
*/
extern const char CW_ITEM_WTP_BOARD_DATA[];
extern const char CW_ITEM_WTP_DESCRIPTOR[];
extern const char CW_ITEM_CAPWAP_TIMERS[];
extern const char CW_ITEM_RADIO_ADMINISTRATIVE_STATE[];
extern const char CW_ITEM_AC_NAME[];
extern const char CW_ITEM_AC_DESCRIPTOR[];
extern const char CW_ITEM_RESULT_CODE[];
extern const char CW_ITEM_AC_STATUS[];
extern const char CW_ITEM_AC_HARDWARE_VERSION[];
extern const char CW_ITEM_AC_SOFTWARE_VERSION[];
extern const char CW_ITEM_AC_IP_LIST[];
extern const char CW_ITEM_CAPWAP_CONTROL_IP_ADDRESS_LIST[];
extern const char CW_ITEM_CAPWAP_LOCAL_IP_ADDRESS[];
extern const char CW_ITEM_LOCATION_DATA[];
extern const char CW_ITEM_SESSION_ID[];
extern const char CW_ITEM_AC_TIMESTAMP[];
extern const char CW_ITEM_STATISTICS_TIMER[];
extern const char CW_ITEM_WTP_REBOOT_STATISTICS[];
extern const char CW_ITEM_IMAGE_IDENTIFIER[];
extern const char CW_ITEM_AC_HASH_VALUE[];
extern const char CW_ITEM_AC_NAME_WITH_PRIORITY[];
extern const char CW_ITEM_MAXIMUM_MESSAGE_LENGTH[];
/* CIPWAP and Cisco */
extern const char CW_ITEM_WTP_GROUP_NAME[];
/* Other Items */
extern const char CW_ITEM_AC_IMAGE_DIR[]; /* Path where WTP images are stored */
extern const char CW_ITEM_IMAGE_FILENAME[]; /* Full path of image filename */
extern const char CW_ITEM_DISCOVERIES[];
/** FILE handle for uploading and downloading images */
extern const char CW_ITEM_IMAGE_FILEHANDLE[];
extern const char CW_ITEM_RADIO_CFG[];
extern const char CW_ITEM_AP_MODE_AND_TYPE[];
extern const char CW_ITEM_CISCO_BOARD_DATA_OPTIONS[];
extern const char CW_ITEM_RADIOS[];
extern const char CW_ITEM_RADIO_OPER_STATE[];
extern const char CW_ITEM_WTP_BOARD_VENDOR[];
extern const char CW_ITEM_WTP_BOARD_MODELNO[];
extern const char CW_ITEM_WTP_BOARD_MACADDRESS[];
extern const char CW_ITEM_WTP_BOARD_ID[];
extern const char CW_ITEM_WTP_BOARD_REVISION[];
extern const char CW_ITEM_WTP_BOARD_SERIALNO[];
extern const char CW_ITEM_WTP_SOFTWARE_VERSION[];
extern const char CW_ITEM_WTP_HARDWARE_VERSION[];
extern const char CW_ITEM_WTP_BOOTLOADER_VERSION[];
extern const char CW_ITEM_WTP_RADIOS_IN_USE[];
extern const char CW_ITEM_WTP_MAX_RADIOS[];
extern const char CW_ITEM_RADIO_INFOS[];
extern struct cw_itemdef capwap_itemdefs[];
#endif

View File

@ -1,64 +0,0 @@
#ifndef __CISCO_H
#define __CISCO_H
#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);*/
int cisco_in_wtp_descriptor(struct cw_ElemHandler *eh, struct cw_ElemHandlerParams * params, uint8_t * data,
int len);
extern int cisco_out_ac_descriptor(struct conn *conn, struct cw_action_out *a,
uint8_t * dst);
int cisco_out_wtp_descriptor(struct cw_ElemHandler * handler, struct cw_ElemHandlerParams * params
, uint8_t * dst);
extern int cisco_out_board_data_options(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_radio_administrative_state(struct conn *conn,
struct cw_action_in *a, uint8_t * data,
int len, struct sockaddr *from);
int cisco_in_spam_vendor_specific(struct conn *conn, struct cw_action_in *a, uint8_t * data, int len,
struct sockaddr *from);
int cisco_in_telnet_ssh(struct conn *conn, struct cw_action_in *a, uint8_t * data, int len,
struct sockaddr *from);
int cisco_out_telnet_ssh(struct conn *conn,struct cw_action_out * a,uint8_t *dst);
int cisco_out_radio_administrative_states(struct conn *conn, struct cw_action_out *a, uint8_t * dst);
int cisco80211_in_mac_operation(struct conn *conn, struct cw_action_in *a, uint8_t * data,
int len, struct sockaddr *from);
int cisco80211_in_wtp_radio_configuration(struct conn *conn, struct cw_action_in *a, uint8_t * data,
int len, struct sockaddr *from);
int cisco80211_out_wtp_radio_configuration(struct conn *conn, struct cw_action_out *a, uint8_t * dst);
int cisco_out_manager_ip_addr(struct conn *conn,struct cw_action_out * a,uint8_t *dst) ;
int cisco_out_ac_ipv4_list(struct conn *conn, struct cw_action_out *a, uint8_t * dst);
int cisco_in_add_wlan(struct conn *conn, struct cw_action_in *a, uint8_t * data, int len,
struct sockaddr *from);
int cisco_out_wtp_administrative_state(struct conn *conn, struct cw_action_out *a, uint8_t * dst);
int cisco_out_wtp_operational_state(struct conn *conn, struct cw_action_out *a, uint8_t * dst);
int cisco_out_radio_operational_state(struct conn *conn, struct cw_action_out *a, uint8_t * dst);
int cisco_in_radio_operational_state(struct conn *conn, struct cw_action_in *a, uint8_t * data,
int len, struct sockaddr *from);
struct cw_MsgSet * cisco_register_msg_set(struct cw_MsgSet * set, int mode);
#endif

View File

@ -1,7 +1,7 @@
#include "cw/capwap.h"
#include "cw/capwap_cisco.h"
#include "cw/mbag.h"
#include "cw/radio.h"
#include "cw/log.h"
#include "cw/dbg.h"

View File

@ -18,33 +18,26 @@
#include "cw/capwap.h"
#include "cw/cipwap.h"
#include "cw/action.h"
#include "cw/capwap_items.h"
#include "cw/strheap.h"
#include "cw/radio.h"
#include "cw/capwap_cisco.h"
#include "cw/capwap80211.h"
#include "cw/capwap80211_items.h"
#include "cw/lwapp_cisco.h"
#include "cw/cw_80211.h"
#include "include/capwap_actions.h"
#include "cisco.h"
#include "cisco_items.h"
#include "include/cipwap_items.h"
#include "cw/msgset.h"
#include "cw/ktv.h"
#include "cw/keys.h"
#include "capwap_cisco.h"
#include "mod_cisco.h"
/*#include "cw/strheap.h"
#include "cw/radio.h"
#include "cw/capwap_cisco.h"
#include "cw/capwap80211.h"
#include "cw/lwapp_cisco.h"
#include "cw/cw_80211.h"
*/
/* #include "include/capwap_actions.h" */
static struct cw_ElemHandler handlers[] = {
{
"WTP Descriptor (Draft 7)", /* name */
@ -114,471 +107,6 @@ static struct cw_MsgDef messages[] = {
static cw_action_in_t actions_in[] = {
/* --------------------------------------------------------
* Discovery Resquest
*/
/* Message Discovery Request */
{
.capwap_state = CAPWAP_STATE_DISCOVERY,
.msg_id = CAPWAP_MSG_DISCOVERY_REQUEST,
/* .end = cw_in_check_disc_req*/
}
,
/* Element WTP Descriptor */
{
.capwap_state = CAPWAP_STATE_DISCOVERY,
.msg_id = CAPWAP_MSG_DISCOVERY_REQUEST,
.elem_id = CAPWAP_ELEM_WTP_DESCRIPTOR,
.start = cisco_in_wtp_descriptor,
.item_id = "wtp_descriptor",
.mand = 1,
}
,
/* Element Cisco RAD Name */
{
.capwap_state = CAPWAP_STATE_DISCOVERY,
.msg_id = CAPWAP_MSG_DISCOVERY_REQUEST,
.vendor_id = CW_VENDOR_ID_CISCO,
.elem_id = CW_CISCO_RAD_NAME,
.start=cw_in_generic,
.item_id = "wtp_name",
.min_len=1,
.max_len=512,
.mand=1
}
,
/* Element WTP Board Data - Discovery Request
* Change it to not mandatory, because older Cisco
* firmware does not send this message element.
*/
{
.capwap_state = CAPWAP_STATE_DISCOVERY,
.msg_id = CAPWAP_MSG_DISCOVERY_REQUEST,
.elem_id = CAPWAP_ELEM_WTP_BOARD_DATA,
.start = cw_in_wtp_board_data,
.item_id = CW_ITEM_WTP_BOARD_DATA,
.mand = 0,
}
,
/* --------------------------------------------------------
* Join Resquest
*/
/* WTP Descriptor - Join Request */
{
.capwap_state = CAPWAP_STATE_JOIN,
.msg_id = CAPWAP_MSG_JOIN_REQUEST,
.elem_id = CAPWAP_ELEM_WTP_DESCRIPTOR,
.start = cisco_in_wtp_descriptor,
.item_id = "wtp_descriptor",
.mand = 1,
}
,
/* Session ID - Join Request */
{
/* Cisco uses 4 byte session ids */
.capwap_state = CAPWAP_STATE_JOIN,
.msg_id = CAPWAP_MSG_JOIN_REQUEST,
.elem_id = CW_ELEM_SESSION_ID,
.start = capwap_in_session_id,
.item_id = CW_ITEM_SESSION_ID,
.mand = 1,
.min_len = 4,
.max_len = 16
}
,
/* Local IPv4 Address - Join Request */
{
.capwap_state = CAPWAP_STATE_JOIN,
.msg_id = CAPWAP_MSG_JOIN_REQUEST,
.elem_id = CAPWAP_ELEM_WTP_IPV4_IP_ADDRESS,
.item_id = CW_ITEM_CAPWAP_LOCAL_IP_ADDRESS,
.start = cw_in_capwap_local_ipv4_address,
.mand = 1,
.min_len = 4,
.max_len = 4
}
,
/* Local IPv6 Address - Join Request */
{
.capwap_state = CAPWAP_STATE_JOIN,
.msg_id = CAPWAP_MSG_JOIN_REQUEST,
.elem_id = CAPWAP_ELEM_WTP_IPV6_IP_ADDRESS,
.item_id = CW_ITEM_CAPWAP_LOCAL_IP_ADDRESS,
.start = cw_in_capwap_local_ipv4_address,
.mand = 1,
.min_len = 16,
.max_len = 16
}
,
/* ECN Support - Join Request */
{
/* Cisco (using draft 7) does nothing know
* about ECN support, so make it non-mandatory */
.capwap_state = CAPWAP_STATE_JOIN,
.msg_id = CAPWAP_MSG_JOIN_REQUEST,
.elem_id = CAPWAP_ELEM_ECN_SUPPORT,
.item_id = CW_ITEM_ECN_SUPPORT,
.start = cw_in_generic,
.mand = 0,
.min_len = 1,
.max_len = 1
}
,
/* --------------------------------------------------------
* Configuration Status Request
*/
/* AC Name - Config Status Request */
{
/* We have to deal with zero-length strings */
.capwap_state = CW_STATE_CONFIGURE,
.msg_id = CAPWAP_MSG_CONFIGURATION_STATUS_REQUEST,
.elem_id = CAPWAP_ELEM_AC_NAME,
.item_id = CW_ITEM_AC_NAME,
.start = cw_in_generic,
.min_len = 0,
.max_len = 512,
.mand = 1
}
,
{
.capwap_state = CW_STATE_CONFIGURE,
.msg_id = CAPWAP_MSG_CONFIGURATION_STATUS_REQUEST,
.vendor_id = CW_VENDOR_ID_CISCO,
.elem_id = CW_CISCO_WTP_RADIO_CFG,
.start=cisco80211_in_wtp_radio_configuration,
.item_id = "cisco_radio_cfg",
}
,
/* LED State Config */
{
.capwap_state = CW_STATE_CONFIGURE,
.msg_id = CAPWAP_MSG_CONFIGURATION_STATUS_REQUEST,
.vendor_id = CW_VENDOR_ID_CISCO,
.elem_id = CW_CISCO_AP_LED_STATE_CONFIG,
.item_id = CISCO_ITEM_AP_LED_STATE_CONFIG,
.start = cw_in_generic
}
,
/* LED Flash Config */
{
.capwap_state = CW_STATE_CONFIGURE,
.msg_id = CAPWAP_MSG_CONFIGURATION_STATUS_REQUEST,
.vendor_id = CW_VENDOR_ID_CISCO,
.elem_id = CW_CISCO_AP_LED_FLASH_CONFIG,
.item_id = CISCO_ITEM_AP_LED_FLASH_CONFIG,
.start = cw_in_generic
}
,
{
/* This is Cisco's Vendor specific encapsulation
* of LWAPP elements */
.capwap_state = CW_STATE_CONFIGURE,
.msg_id = CAPWAP_MSG_CONFIGURATION_STATUS_REQUEST,
.vendor_id = CW_VENDOR_ID_CISCO,
.elem_id = CW_CISCO_SPAM_VENDOR_SPECIFIC,
.start = lw_in_vendor_specific,
}
,
/* LWAPP Vendor spec Messages */
/* Telent SSH */
{
.proto = CW_ACTION_PROTO_LWAPP,
.capwap_state = CW_STATE_CONFIGURE,
.msg_id = CAPWAP_MSG_CONFIGURATION_STATUS_REQUEST,
.vendor_id = LW_VENDOR_ID_CISCO,
.elem_id = LW_CISCO_TELNET_SSH,
.start = cisco_in_telnet_ssh
}
,
/* AP Mode and Type */
{
.capwap_state = CW_STATE_CONFIGURE,
.msg_id = CAPWAP_MSG_CONFIGURATION_STATUS_REQUEST,
.vendor_id = CW_VENDOR_ID_CISCO,
.elem_id = CW_CISCO_AP_MODE_AND_TYPE,
.item_id = CISCO_ITEM_AP_MODE_AND_TYPE,
.start = cw_in_generic
}
,
/* Log Facility */
{
.capwap_state = CW_STATE_CONFIGURE,
.msg_id = CAPWAP_MSG_CONFIGURATION_STATUS_REQUEST,
.vendor_id = CW_VENDOR_ID_CISCO,
.elem_id = CW_CISCO_AP_LOG_FACILITY,
.item_id = CIPWAP_ITEM_LOG_FACILITY,
.start = cw_in_generic
}
,
/* Radio Operational State - Run State - Change State Event Req */
{
.capwap_state = CW_STATE_RUN,
.msg_id= CAPWAP_MSG_CHANGE_STATE_EVENT_REQUEST,
.elem_id = CW_ELEM_RADIO_OPERATIONAL_STATE,
.item_id = CW_RADIOITEM_OPER_STATE,
.start = cisco_in_radio_operational_state,
.min_len=3,
.max_len=3,
.mand = 0
}
,
/* Radio Operational State - Configure State - Change State Event Req */
{
.capwap_state = CW_STATE_CONFIGURE,
.msg_id= CAPWAP_MSG_CHANGE_STATE_EVENT_REQUEST,
.elem_id = CW_ELEM_RADIO_OPERATIONAL_STATE,
.item_id = CW_RADIOITEM_OPER_STATE,
.start = cisco_in_radio_operational_state, //operational_state,
.min_len=3,
.max_len=3,
.mand = 0
}
,
/* End of list */
{0, 0}
};
static cw_action_out_t actions_out[]={
/* --------------------------------------------------------
* Discovery Response
*/
/* AC Descriptor - Discovery Response */
{
.msg_id = CAPWAP_MSG_DISCOVERY_RESPONSE,
.item_id = CW_ITEM_AC_DESCRIPTOR,
.elem_id = CAPWAP_ELEM_AC_DESCRIPTOR,
.out = cisco_out_ac_descriptor,
.mand = 1
}
,
/* Cisco AP Timesync - Discovery Request
* Important to get the WTP a DTLS connection established
*/
{
.msg_id = CAPWAP_MSG_DISCOVERY_RESPONSE,
.item_id = CW_ITEM_AC_TIMESTAMP,
.vendor_id = CW_VENDOR_ID_CISCO,
.elem_id = CW_CISCO_AP_TIMESYNC,
.out = cisco_out_ap_timesync,
.mand = 1
}
,
/* AC Descriptor - Join Response */
{
.msg_id = CAPWAP_MSG_JOIN_RESPONSE,
.item_id = CW_ITEM_AC_DESCRIPTOR,
.elem_id = CAPWAP_ELEM_AC_DESCRIPTOR,
.out = cisco_out_ac_descriptor,
.mand = 1
}
,
/* ECN Support - Join Response */
{
.msg_id = CAPWAP_MSG_JOIN_RESPONSE,
.elem_id = CAPWAP_ELEM_ECN_SUPPORT,
.item_id = CW_ITEM_ECN_SUPPORT
}
,
/* --------------------------------------------------------
* Echo Response
*/
/* AP Time Sync - Echo Response */
{
.msg_id = CAPWAP_MSG_ECHO_RESPONSE,
.vendor_id = CW_VENDOR_ID_CISCO,
.item_id = CW_ITEM_AC_TIMESTAMP,
.elem_id = CW_CISCO_AP_TIMESYNC,
.out = cisco_out_ap_timesync,
.mand = 1
}
,
/* --------------------------------------------------------
* Configuration Status Response
*/
/* Manager IP Address */
{
.msg_id = CAPWAP_MSG_CONFIGURATION_STATUS_RESPONSE,
.out = cisco_out_manager_ip_addr,
.mand = 1
}
,
/* --------------------------------------------------------
* Configuration Update Request - Out
*/
{
.msg_id = CAPWAP_MSG_CONFIGURATION_UPDATE_REQUEST,
.out = cisco_out_telnet_ssh,
}
,
{
/* Cisco's APs complain about msg elements of type
45 (WTP Name). So it ist silenced here.
But the method here used to silence the element
isn't effective. TODO: There shuld be a way to remove
or replace such elemenns */
.msg_id = CAPWAP_MSG_CONFIGURATION_UPDATE_REQUEST,
.item_id = CW_ITEM_WTP_NAME,
.elem_id = CAPWAP_ELEM_WTP_NAME,
}
,
/* WTP Name */
{
.msg_id = CAPWAP_MSG_CONFIGURATION_UPDATE_REQUEST,
.item_id = CW_ITEM_WTP_NAME,
.vendor_id = CW_VENDOR_ID_CISCO,
.elem_id = CW_CISCO_RAD_NAME,
.out=cw_out_generic,
/*.get = cw_out_get_outgoing*/
}
,
/* Radio Operational State - OUT */
{
.msg_id = CAPWAP_MSG_CONFIGURATION_UPDATE_REQUEST,
.elem_id = CW_ELEM_RADIO_OPERATIONAL_STATE,
.item_id = CW_RADIOITEM_OPER_STATE,
.out = cisco_out_radio_operational_state,
.mand = 0
}
,
/* LED State Config - OUT */
{
.msg_id = CAPWAP_MSG_CONFIGURATION_UPDATE_REQUEST,
.vendor_id = CW_VENDOR_ID_CISCO,
.elem_id = CW_CISCO_AP_LED_STATE_CONFIG,
.item_id = CISCO_ITEM_AP_LED_STATE_CONFIG,
.out = cw_out_generic,
/*.get = cw_out_get_outgoing,*/
.mand = 0
}
,
/* LED Flash Config - OUT */
{
.msg_id = CAPWAP_MSG_CONFIGURATION_UPDATE_REQUEST,
.vendor_id = CW_VENDOR_ID_CISCO,
.elem_id = CW_CISCO_AP_LED_FLASH_CONFIG,
.item_id = CISCO_ITEM_AP_LED_FLASH_CONFIG,
.out = cw_out_generic,
/*.get = cw_out_get_outgoing,*/
.mand = 0
}
,
/* AP Mode and Type - OUT */
{
.msg_id = CAPWAP_MSG_CONFIGURATION_UPDATE_REQUEST,
.vendor_id = CW_VENDOR_ID_CISCO,
.elem_id = CW_CISCO_AP_MODE_AND_TYPE,
.item_id = CISCO_ITEM_AP_MODE_AND_TYPE,
.out = cw_out_generic,
/*.get = cw_out_get_outgoing,*/
}
,
/* Cisco WTP Admin state - OUT */
{
.msg_id = CAPWAP_MSG_CONFIGURATION_UPDATE_REQUEST,
.vendor_id = CW_VENDOR_ID_CISCO,
// .elem_id = CW_CISCO_AP_MODE_AND_TYPE,
.item_id = CISCO_ITEM_WTP_ADMIN_STATE,
.out = cisco_out_wtp_administrative_state,
// .get = cw_out_get_outgoming,
}
,
{0,0}
};
struct cw_MsgSet * cisco_register_msg_set(struct cw_MsgSet * set, int mode){
if (mode != CW_MOD_MODE_CAPWAP)
return NULL;
@ -586,166 +114,3 @@ struct cw_MsgSet * cisco_register_msg_set(struct cw_MsgSet * set, int mode){
return set;
}
static cw_action_in_t actions80211_in[] = {
/* --------------------------------------------------------
* Discovery Resquest
*/
/* 802.11 Radio Information - Discovery Request */
{
/* Cisco doe't sned this message element in discovery request,
so make it non-mandatory */
.capwap_state = CAPWAP_STATE_DISCOVERY,
.msg_id = CAPWAP_MSG_DISCOVERY_REQUEST,
.elem_id = CW_ELEM80211_WTP_RADIO_INFORMATION,
.item_id = CW_RADIOITEM80211_WTP_RADIO_INFORMATION,
/*.start = cw_in_radio_generic, */
.mand = 0,
.min_len = 5,
.max_len = 5
}
,
/* --------------------------------------------------------
* Configuration Status Resquest - IN
*/
/* Supported Rates - Configruati Status Request */
{
.capwap_state = CW_STATE_CONFIGURE,
.vendor_id = CW_VENDOR_ID_CISCO,
.msg_id = CAPWAP_MSG_CONFIGURATION_STATUS_REQUEST,
.elem_id = CW_CISCO_SUPPORTED_RATES,
.item_id = CW_RADIOITEM80211_SUPPORTED_RATES,
/*.start = cw_in_radio_generic, */
.mand = 0,
.min_len = 5,
.max_len = 5
}
,
/* MAC Operation - Configruation Status Request */
{
.capwap_state = CW_STATE_CONFIGURE,
.vendor_id = CW_VENDOR_ID_CISCO,
.msg_id = CAPWAP_MSG_CONFIGURATION_STATUS_REQUEST,
.elem_id = CW_CISCO_MAC_OPERATION,
.item_id = "mac operation",
.start = cisco80211_in_mac_operation,
.mand = 0,
.min_len = 5,
.max_len = 5
}
,
/* Radio Admin State (IN) - Config Status Request */
{
.capwap_state = CW_STATE_CONFIGURE,
.msg_id = CAPWAP_MSG_CONFIGURATION_STATUS_REQUEST,
.elem_id = CW_ELEM_RADIO_ADMINISTRATIVE_STATE,
.item_id = CW_RADIOITEM_ADMIN_STATE,
.start = cisco_in_radio_administrative_state,
.mand = 1
}
,
{0,0}
};
extern int cisco_out_capwap_up(struct conn *conn, struct cw_action_out *a, uint8_t * dst);
static cw_action_out_t actions80211_out[]={
{
.msg_id = CAPWAP_MSG_CONFIGURATION_UPDATE_REQUEST,
.vendor_id = CW_VENDOR_ID_CISCO,
.elem_id = CW_CISCO_WTP_RADIO_CFG,
.out = cisco80211_out_wtp_radio_configuration,
}
,
{
.msg_id = CAPWAP_MSG_CONFIGURATION_STATUS_RESPONSE,
.out = cisco_out_capwap_up,
}
,
{0,0}
};
#include "cw/item.h"
static struct cw_itemdef _capwap_itemdefs[] = {
{"wtp_name_cisco",CW_ITEM_NONE,MBAG_STR},
/* {"wtp_mac_type",CW_ITEM_NONE,MBAG_BYTE},
{"discovery_type",CW_ITEM_NONE,MBAG_BYTE},
{"wtp_frame_tunnel_mode",CW_ITEM_NONE,MBAG_BYTE},
*/ {CW_ITEM_NONE}
};
#include "../modload.h"
int cisco_register_actions_ac(struct cw_actiondef *def)
{
int rc;
rc = cw_actionlist_in_register_actions(def->in, actions_in);
rc += cw_actionlist_out_register_actions(def->out, actions_out);
rc += cw_strheap_register_strings(def->strmsg, capwap_strings_msg);
rc += cw_strheap_register_strings(def->strelem, cipwap_strings_elem);
rc += cw_itemdefheap_register(def->items, _capwap_itemdefs);
// rc += cw_itemdefheap_register(def->radioitems, cisco_radioitemdefs);
intavltree_add(def->wbids, 0);
return rc;
}
int cisco_register_actions80211_ac(struct cw_actiondef *def)
{
int rc;
rc=0;
rc = cw_actionlist_in_register_actions(def->in, actions80211_in);
rc += cw_actionlist_out_register_actions(def->out, actions80211_out);
rc += cw_itemdefheap_register(def->items, cisco_itemdefs);
rc += cw_itemdefheap_register(def->radioitems, cisco_radioitemdefs);
/* rc += cw_strheap_register_strings(def->strmsg, capwap_strings_msg);
rc += cw_strheap_register_strings(def->strelem, cipwap_strings_elem);
rc += cw_itemdefheap_register(def->radioitems, capwap_radioitemdefs);
intavltree_add(def->wbids, 0);
*/
return rc;
}

View File

@ -17,19 +17,18 @@
*/
#include "cw/cipwap.h"
#include "cw/action.h"
#include "cw/capwap_items.h"
#include "cw/strheap.h"
#include "cw/radio.h"
#include "cw/capwap_cisco.h"
#include "cw/capwap80211.h"
#include "cw/capwap80211_items.h"
#include "cw/lwapp_cisco.h"
#include "cisco_items.h"
#include "include/cipwap_items.h"
#include "cw/lwapp_cisco.h"
/*#include "mod_cisco.h"*/

View File

@ -1,8 +1,8 @@
#include "cw/cw.h"
#include "cw/capwap_items.h"
#include "cw/dbg.h"
#include "cw/mbag.h"
#include "cw/vendors.h"
int cisco_in_ac_descriptor(struct conn *conn, struct cw_action_in *a, uint8_t * data,

View File

@ -19,7 +19,7 @@
#include "cw/keys.h"
#include "cw/cw.h"
#include "cw/vendors.h"
#include "cw/capwap_items.h"
int cisco_in_wtp_descriptor(struct cw_ElemHandler *eh, struct cw_ElemHandlerParams * params, uint8_t * data,

View File

@ -1,36 +0,0 @@
#include "cw/mbag.h"
#include "cw/item.h"
#include "cisco_items.h"
const char CISCO_ITEM_AP_MODE_AND_TYPE[]="cisco_ap_mode_and_type";
const char CISCO_ITEM_AP_LED_STATE_CONFIG[]="cisco_ap_led_state";
const char CISCO_ITEM_AP_LED_FLASH_CONFIG[]="cisco_ap_led_flash";
const char CISCO_ITEM_WTP_OPER_STATE[]="cisco_wtp_oper_state";
const char CISCO_ITEM_WTP_ADMIN_STATE[]="cisco_wtp_admin_state";
struct cw_itemdef cisco_itemdefs[] = {
{CISCO_ITEM_AP_MODE_AND_TYPE,CW_ITEM_NONE,MBAG_WORD},
{CISCO_ITEM_AP_LED_STATE_CONFIG,CW_ITEM_NONE,MBAG_WORD},
{CISCO_ITEM_AP_LED_FLASH_CONFIG,CW_ITEM_NONE,MBAG_BIN},
{CISCO_ITEM_WTP_OPER_STATE,CW_ITEM_NONE,MBAG_WORD},
{CISCO_ITEM_WTP_ADMIN_STATE,CW_ITEM_NONE,MBAG_BYTE},
{CW_ITEM_NONE}
};
const char CISCO_RADIOITEM80211_CFG_TYPE[]="cisco_radio_cfg_type";
const char CISCO_RADIOITEM80211_COUNTRY_STR1[]="cisco_country_str1";
const char CISCO_RADIOITEM80211_COUNTRY_STR2[]="cisco_country_str2";
struct cw_itemdef cisco_radioitemdefs[] = {
{CISCO_RADIOITEM80211_CFG_TYPE,CW_ITEM_NONE,MBAG_BYTE},
{CISCO_RADIOITEM80211_COUNTRY_STR1,CW_ITEM_NONE,MBAG_BSTR16},
{CISCO_RADIOITEM80211_COUNTRY_STR2,CW_ITEM_NONE,MBAG_BSTR16},
{CW_ITEM_NONE}
};

View File

@ -1,18 +0,0 @@
#ifndef __CISCO_ITEMS_H
#define __CISCO_ITEMS_H
extern const char CISCO_ITEM_AP_MODE_AND_TYPE[];
extern const char CISCO_ITEM_AP_LED_STATE_CONFIG[];
extern const char CISCO_ITEM_AP_LED_FLASH_CONFIG[];
extern const char CISCO_ITEM_WTP_OPER_STATE[];
extern const char CISCO_ITEM_WTP_ADMIN_STATE[];
extern struct cw_itemdef cisco_itemdefs[];
extern const char CISCO_RADIOITEM80211_CFG_TYPE[];
extern const char CISCO_RADIOITEM80211_COUNTRY_STR1[];
extern const char CISCO_RADIOITEM80211_COUNTRY_STR2[];
extern struct cw_itemdef cisco_radioitemdefs[];
#endif

View File

@ -19,8 +19,8 @@
#include "cw/log.h"
#include "cw/conn.h"
#include "cw/mbag.h"
#include "cw/capwap_items.h"
#include "cw/cw.h"
extern mbag_t cisco_config;

View File

@ -1,6 +1,6 @@
#include "cisco.h"
#include "cw/capwap_items.h"
#include "cw/lwapp.h"
#include "cw/cw.h"
@ -10,7 +10,7 @@
#include "cw/capwap_cisco.h"
#include "include/cipwap_items.h"

View File

@ -5,45 +5,38 @@
#include "cw/log.h"
#include "cw/dbg.h"
#include "cw/action.h"
/*#include "mod_cisco.h"*/
#include "../modload.h"
#include "cw/vendors.h"
#include "cw/capwap_items.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;
/*mbag_t cisco_config = NULL;*/
static struct cw_Mod * capwap_mod = NULL;
static struct cw_MsgSet * register_messages(struct cw_MsgSet *set, int mode)
{
cw_dbg(DBG_INFO,"CISCO: Register messages");
switch (mode) {
case CW_MOD_MODE_CAPWAP:
{
cw_dbg(DBG_MOD,"Cisco: loading base mod capwap");
capwap_mod->register_messages(set, CW_MOD_MODE_CAPWAP);
struct cw_Mod *cmod = cw_mod_load("capwap");
if (!cmod) {
cw_log(LOG_ERR,
"Can't initialize mod_cisco, failed to load base module mod_cipwap");
return 1;
}
\
cmod->register_messages(set, CW_MOD_MODE_CAPWAP);
cw_dbg(DBG_MOD,"Cisco: loading cisco message set");
/* 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);
return 0;
/* 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");
@ -57,11 +50,11 @@ static struct cw_MsgSet * register_messages(struct cw_MsgSet *set, int mode)
cw_dbg(DBG_INFO, "Initialized mod_cisco 80211 with %d actions", 12);
return 0;
}
*/
}
cw_dbg(DBG_INFO,"CISCO: Done register messages");
return 0;
@ -76,22 +69,32 @@ static void errfunc(cfg_t *cfg, const char *fmt, va_list ap){
cw_log(LOG_ERR, "MOD Cisco cfg file in %s:", cfg->filename);
}
static int init()
static int init(struct cw_Mod *mod, mavl_t global_cfg, int role)
{
uint8_t * str;
static char * hardware_version; /*strdup(".x01000001");*/
static char * software_version; /* = NULL; */
cfg_t *cfg;
int rc = 1;
cw_dbg(DBG_INFO, "Initialiazing mod_cisco ...");
cisco_config = mbag_create();
char * hardware_version = strdup(".x01000001");
char * software_version = NULL;
cfg_opt_t opts[] = {
CFG_SIMPLE_STR("hardware_version", &hardware_version),
CFG_SIMPLE_STR("software_version",&software_version),
CFG_END()
};
cfg_t *cfg;
cw_dbg(DBG_INFO, "CISCO: Initialiazing mod_cisco ...");
cw_dbg(DBG_MOD, "CISCO: Loading base module: capwap");
capwap_mod = cw_mod_load("capwap",global_cfg,role);
if (capwap_mod == NULL){
cw_log(LOG_ERR, "CISCO: failed to load base module 'capwap");
}
/*cisco_config = mbag_create();*/
/*
cfg = cfg_init(opts, CFGF_NONE);
cfg_set_error_function(cfg, errfunc);
@ -105,8 +108,9 @@ static int init()
goto errX;
}
}
*/
uint8_t * str;
/*
str = bstr_create_from_cfgstr(hardware_version);
mbag_set_bstrv(cisco_config, CW_ITEM_AC_HARDWARE_VERSION,
@ -150,7 +154,7 @@ static int detect(struct conn *conn, const uint8_t * rawmsg, int rawlen, int ele
if (id == CAPWAP_ELEM_VENDOR_SPECIFIC_PAYLOAD) {
uint32_t vendor_id = cw_get_dword(cw_get_elem_data(elem));
if (vendor_id == CW_VENDOR_ID_CISCO) {
// conn->actions = &actions;
/* // conn->actions = &actions;*/
if (mode == CW_MOD_MODE_CAPWAP) {
cw_dbg(DBG_MOD, "CISCO capwap detected: yes");
} else {
@ -174,6 +178,7 @@ static int detect(struct conn *conn, const uint8_t * rawmsg, int rawlen, int ele
return 0;
}
/*
static struct cw_Mod capwap_ac = {
.name = "cisco",
.init = init,
@ -181,14 +186,24 @@ static struct cw_Mod capwap_ac = {
// .register_actions = register_actions,
.register_messages = register_messages
};
*/
struct cw_Mod *mod_cisco_ac()
{
return &capwap_ac;
static struct cw_Mod cisco_data = {
"cisco", /* name */
init, /* init */
detect, /* detect */
register_messages, /* register_messages */
NULL, /* dll_handle */
NULL /* data */
};
struct cw_Mod *mod_cisco()
{
return &capwap_ac;
};
return &cisco_data;
}