moved local_cfg, remote_cfg ... to cw_ElemData struct
This commit is contained in:
@ -1,9 +1,8 @@
|
||||
include ../Config.mak
|
||||
all:
|
||||
$(MAKE) -C capwap
|
||||
$(MAKE) -C capwap80211
|
||||
$(MAKE) -C cisco
|
||||
$(MAKE) -C fortinet
|
||||
# $(MAKE) -C fortinet
|
||||
# $(CC) -c modload_ac.c -I../
|
||||
# $(CC) -c modload_wtp.c -I../
|
||||
|
||||
@ -11,5 +10,5 @@ clean:
|
||||
$(MAKE) -C capwap clean
|
||||
$(MAKE) -C capwap80211 clean
|
||||
$(MAKE) -C cisco clean
|
||||
$(MAKE) -C fortinet clean
|
||||
rm *.o
|
||||
# $(MAKE) -C fortinet clean
|
||||
rm -f *.o
|
||||
|
@ -30,6 +30,7 @@ DNAME := $(LIBARCHDIR)/mod_capwap.so
|
||||
|
||||
CFLAGS+=-fPIC
|
||||
CFLAGS+= -I ../../ -I../ -I../../include
|
||||
CFLAGS+=$(INC2)
|
||||
|
||||
all: $(SNAME) $(DNAME)
|
||||
static: $(SNAME)
|
||||
|
@ -549,6 +549,7 @@ static struct cw_ElemDef change_state_event_request_elements[] ={
|
||||
|
||||
static cw_State_t change_state_event_response_states[] = {
|
||||
{CAPWAP_STATE_JOIN,CAPWAP_STATE_JOIN},
|
||||
{CAPWAP_STATE_RUN,CAPWAP_STATE_RUN},
|
||||
{0,0}
|
||||
};
|
||||
static struct cw_ElemDef change_state_event_response_elements[] ={
|
||||
|
@ -16,6 +16,6 @@ int capwap_in_ac_descriptor(struct cw_ElemHandler *eh,
|
||||
};
|
||||
|
||||
|
||||
return cw_read_ac_descriptor(params->conn->remote_cfg,eh,params,data,len,allowed);
|
||||
return cw_read_ac_descriptor(params->remote_cfg,eh,params,data,len,allowed);
|
||||
|
||||
}
|
||||
|
@ -20,7 +20,7 @@
|
||||
* @file
|
||||
* @brief Implements cw_in_capwap_control_ip_address
|
||||
*/
|
||||
|
||||
#include "cw/conn.h"
|
||||
#include "mod_capwap.h"
|
||||
|
||||
|
||||
@ -32,15 +32,15 @@ int capwap_in_capwap_control_ip_address(struct cw_ElemHandler *eh,
|
||||
int idx;
|
||||
|
||||
sprintf(key,"%s/address",eh->key);
|
||||
idx = cw_ktv_idx_get(params->conn->remote_cfg,key);
|
||||
idx = cw_ktv_idx_get(params->remote_cfg,key);
|
||||
|
||||
/* printf("SKEY is %s , idx: %d\n",key,idx);*/
|
||||
|
||||
sprintf(key,"%s/address.%d",eh->key,idx+1);
|
||||
cw_ktv_add(params->conn->remote_cfg,key,CW_TYPE_IPADDRESS,NULL,data,len-2);
|
||||
cw_ktv_add(params->remote_cfg,key,CW_TYPE_IPADDRESS,NULL,data,len-2);
|
||||
|
||||
sprintf(key,"%s/wtps.%d",eh->key,idx+1);
|
||||
cw_ktv_add(params->conn->remote_cfg,key,CW_TYPE_WORD,NULL,data+len-2,2);
|
||||
cw_ktv_add(params->remote_cfg,key,CW_TYPE_WORD,NULL,data+len-2,2);
|
||||
|
||||
/* if (handler-id == CW_ELEM_CAPWAP_CONTROL_IPV4_ADDRESS) {
|
||||
struct sockaddr_in addr;
|
||||
|
@ -36,7 +36,7 @@ int capwap_in_mtu_discovery_padding(struct cw_ElemHandler *eh,
|
||||
cw_dbg(DBG_RFC,
|
||||
"MTU discovery padding msg elem contains %d non-0xFF byte(s) out of %d, See RFC 5415.",
|
||||
n, len);
|
||||
if (params->conn->strict_capwap)
|
||||
if (0 /*params->conn->strict_capwap*/)
|
||||
return CAPWAP_RESULT_UNRECOGNIZED_MESSAGE_ELEMENT;
|
||||
}
|
||||
return CAPWAP_RESULT_SUCCESS;
|
||||
|
@ -22,14 +22,14 @@ int capwap_in_vendor_specific_payload(struct cw_ElemHandler *handler,
|
||||
vendor_id = cw_get_dword(data);
|
||||
elem_id = cw_get_word(data + 4);
|
||||
|
||||
vhandler = cw_msgset_get_elemhandler(params->conn->msgset,0,vendor_id,elem_id);
|
||||
vhandler = cw_msgset_get_elemhandler(params->msgset,0,vendor_id,elem_id);
|
||||
|
||||
|
||||
if (!vhandler) {
|
||||
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_state));
|
||||
params->msgdata->name, NULL /*cw_strstate(params->conn->capwap_state)*/);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -19,6 +19,7 @@
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "cw/conn.h"
|
||||
#include "mod_capwap.h"
|
||||
|
||||
#include "cw/dbg.h"
|
||||
@ -133,7 +134,7 @@ int capwap_in_wtp_board_data(struct cw_ElemHandler *eh, struct cw_ElemHandlerPar
|
||||
|
||||
|
||||
char vendor_key[128];
|
||||
mavl_t cfg = params->conn->remote_cfg;
|
||||
mavl_t cfg = params->remote_cfg;
|
||||
|
||||
|
||||
sprintf(vendor_key,"%s/%s",eh->key,CW_SKEY_VENDOR);
|
||||
|
@ -26,7 +26,8 @@ int capwap_in_wtp_descriptor(struct cw_ElemHandler *eh, struct cw_ElemHandlerPar
|
||||
int len)
|
||||
{
|
||||
int rc;
|
||||
rc =cw_read_wtp_descriptor(params->conn->remote_cfg, params->conn, eh, data, len, NULL);
|
||||
/*rc =cw_read_wtp_descriptor(params->remote_cfg, params->conn, eh, data, len, NULL);*/
|
||||
rc =cw_read_wtp_descriptor(params->remote_cfg, NULL, eh, data, len, NULL);
|
||||
return rc;
|
||||
}
|
||||
|
||||
|
@ -58,22 +58,22 @@ int capwap_out_ac_descriptor(struct cw_ElemHandler * eh,
|
||||
uint8_t *d = dst+4;
|
||||
char key[CW_KTV_MAX_KEY_LEN];
|
||||
|
||||
d+=put_ac_status(params->conn->local_cfg,
|
||||
params->conn->global_cfg,
|
||||
d+=put_ac_status(params->local_cfg,
|
||||
params->global_cfg,
|
||||
d, eh->key);
|
||||
|
||||
sprintf(key,"%s/%s",eh->key,CW_SKEY_HARDWARE);
|
||||
d+=cw_write_descriptor_subelem (d, params->conn->local_cfg,
|
||||
d+=cw_write_descriptor_subelem (d, params->local_cfg,
|
||||
CAPWAP_SUBELEM_AC_HARDWARE_VERSION, key);
|
||||
|
||||
sprintf(key,"%s/%s",eh->key,CW_SKEY_SOFTWARE);
|
||||
d+=cw_write_descriptor_subelem (d, params->conn->local_cfg,
|
||||
d+=cw_write_descriptor_subelem (d, params->local_cfg,
|
||||
CAPWAP_SUBELEM_AC_SOFTWARE_VERSION, key);
|
||||
|
||||
len = d-dst-4;
|
||||
|
||||
l = len + cw_put_elem_hdr(dst,eh->id,len);
|
||||
cw_dbg_elem(DBG_ELEM_OUT,params->conn,params->msgdata->type,eh,dst,l);
|
||||
cw_dbg_elem(DBG_ELEM_OUT,NULL,params->msgdata->type,eh,dst,l);
|
||||
|
||||
return l;
|
||||
|
||||
|
@ -63,9 +63,9 @@ int capwap_out_capwap_control_ip_address(struct cw_ElemHandler * eh,
|
||||
int l;
|
||||
|
||||
sprintf(key,"%s/address.%d",eh->key,i);
|
||||
address = cw_ktv_get(params->conn->local_cfg,key,CW_TYPE_IPADDRESS);
|
||||
address = cw_ktv_get(params->local_cfg,key,CW_TYPE_IPADDRESS);
|
||||
sprintf(key,"%s/wtps.%d",eh->key,i);
|
||||
wtps = cw_ktv_get_word(params->conn->local_cfg,key,0);
|
||||
wtps = cw_ktv_get_word(params->local_cfg,key,0);
|
||||
i++;
|
||||
if (address==NULL){
|
||||
break;
|
||||
@ -93,7 +93,7 @@ int capwap_out_capwap_control_ip_address(struct cw_ElemHandler * eh,
|
||||
l = address->type->put(address,d+4);
|
||||
l+=cw_put_word(dst+4+l,wtps);
|
||||
l+=cw_put_elem_hdr(d,eh->id,l);
|
||||
cw_dbg_elem(DBG_ELEM_OUT,params->conn,params->msgdata->type,eh,d+4,l-4);
|
||||
cw_dbg_elem(DBG_ELEM_OUT,NULL,params->msgdata->type,eh,d+4,l-4);
|
||||
|
||||
d+=l;
|
||||
}while(address != NULL);
|
||||
|
@ -1,3 +1,4 @@
|
||||
#include "cw/conn.h"
|
||||
#include "mod_capwap.h"
|
||||
#include "cw/cw.h"
|
||||
|
||||
@ -5,7 +6,7 @@ int capwap_out_capwap_local_ip_address(struct cw_ElemHandler * eh,
|
||||
struct cw_ElemHandlerParams * params, uint8_t * dst)
|
||||
{
|
||||
cw_KTV_t * ip;
|
||||
ip = cw_ktv_get(params->conn->local_cfg,eh->key,CW_TYPE_IPADDRESS);
|
||||
ip = cw_ktv_get(params->local_cfg,eh->key,CW_TYPE_IPADDRESS);
|
||||
if (ip==NULL){
|
||||
return 0;
|
||||
}
|
||||
|
@ -1,4 +1,5 @@
|
||||
|
||||
#include "cw/conn.h"
|
||||
#include "cw/log.h"
|
||||
#include "cw/ktv.h"
|
||||
#include "cw/msgset.h"
|
||||
@ -47,7 +48,7 @@ int capwap_out_wtp_board_data(struct cw_ElemHandler * eh,
|
||||
|
||||
d=dst+4;
|
||||
|
||||
cfg = params->conn->local_cfg;
|
||||
cfg = params->local_cfg;
|
||||
|
||||
sprintf(key,"%s/%s",eh->key,CW_SKEY_VENDOR);
|
||||
val = cw_ktv_get(cfg,key,CW_TYPE_DWORD);
|
||||
|
@ -36,7 +36,7 @@ int capwap_out_wtp_descriptor(struct cw_ElemHandler * eh,
|
||||
d = dst+4;
|
||||
|
||||
sprintf(key,"%s/%s",eh->key,CW_SKEY_MAX_RADIOS);
|
||||
val = cw_ktv_get(params->conn->local_cfg,key, CW_TYPE_BYTE);
|
||||
val = cw_ktv_get(params->local_cfg,key, CW_TYPE_BYTE);
|
||||
if (val != NULL)
|
||||
d+=val->type->put(val,d);
|
||||
else{
|
||||
@ -45,7 +45,7 @@ int capwap_out_wtp_descriptor(struct cw_ElemHandler * eh,
|
||||
}
|
||||
|
||||
sprintf(key,"%s/%s",eh->key,CW_SKEY_RADIOS_IN_USE);
|
||||
val = cw_ktv_get(params->conn->local_cfg,key, CW_TYPE_BYTE);
|
||||
val = cw_ktv_get(params->local_cfg,key, CW_TYPE_BYTE);
|
||||
if (val != NULL){
|
||||
d+=val->type->put(val,d);
|
||||
}
|
||||
@ -54,29 +54,30 @@ int capwap_out_wtp_descriptor(struct cw_ElemHandler * eh,
|
||||
}
|
||||
|
||||
/* d+=cw_put_encryption_capabilities_7(d,1); */
|
||||
d+=cw_put_encryption_subelems(d,params->conn->capwap_mode);
|
||||
/* d+=cw_put_encryption_subelems(d,params->conn->capwap_mode);*/
|
||||
d+=cw_put_encryption_subelems(d,0);
|
||||
|
||||
|
||||
/*cw_ktv_dump(params->conn->local_cfg,DBG_INFO,"*** ktv dump ***","","*** end of dump ***");*/
|
||||
|
||||
/* hardware version sub element */
|
||||
sprintf(key,"%s/%s",eh->key,CW_SKEY_HARDWARE);
|
||||
d+=cw_write_descriptor_subelem (d, params->conn->local_cfg,
|
||||
d+=cw_write_descriptor_subelem (d, params->local_cfg,
|
||||
CW_SUBELEM_WTP_HARDWARE_VERSION, key);
|
||||
|
||||
/* software version sub element */
|
||||
sprintf(key,"%s/%s",eh->key,CW_SKEY_SOFTWARE);
|
||||
d+=cw_write_descriptor_subelem (d, params->conn->local_cfg,
|
||||
d+=cw_write_descriptor_subelem (d, params->local_cfg,
|
||||
CW_SUBELEM_WTP_SOFTWARE_VERSION, key);
|
||||
|
||||
/* bootloader version sub element */
|
||||
sprintf(key,"%s/%s",eh->key,CW_SKEY_BOOTLOADER);
|
||||
d+=cw_write_descriptor_subelem (d, params->conn->local_cfg,
|
||||
d+=cw_write_descriptor_subelem (d, params->local_cfg,
|
||||
CW_SUBELEM_WTP_BOOTLOADER_VERSION, key);
|
||||
|
||||
len = d-dst-4;
|
||||
l = len + cw_put_elem_hdr(dst,eh->id,len);
|
||||
|
||||
cw_dbg_elem(DBG_ELEM_OUT,params->conn,params->msgdata->type,eh,dst,l);
|
||||
cw_dbg_elem(DBG_ELEM_OUT,NULL,params->msgdata->type,eh,dst,l);
|
||||
return l;
|
||||
}
|
||||
|
@ -64,6 +64,9 @@
|
||||
#define CW_CISCO_ANTENNA_PAYLOAD 41
|
||||
|
||||
#define CW_CISCO_CERTIFICATE LW_ELEM_CERTIFICATE /* 44 */
|
||||
|
||||
#define CISCO_ELEM_47 47 /* 47 */
|
||||
|
||||
#define CISCO_ELEM_WTP_BOARD_DATA LW_ELEM_WTP_BOARD_DATA /* 50 */
|
||||
#define CW_CISCO_BCAST_SSID_MODE LW_BCAST_SSID_MODE
|
||||
#define CISCO_ELEM_AP_MODE_AND_TYPE LW_ELEM_80211_WTP_MODE_AND_TYPE /* 54 */
|
||||
|
@ -229,7 +229,7 @@ int cisco_in_ap_regulatory_domain(struct cw_ElemHandler *eh,
|
||||
int idx;
|
||||
void * type;
|
||||
|
||||
idx = cw_ktv_idx_get(params->conn->remote_cfg,eh->key);
|
||||
idx = cw_ktv_idx_get(params->remote_cfg,eh->key);
|
||||
|
||||
sprintf(key,"%s.%d",eh->key,idx+1);
|
||||
|
||||
@ -237,7 +237,7 @@ int cisco_in_ap_regulatory_domain(struct cw_ElemHandler *eh,
|
||||
type = cisco_ap_regulatory_domain4;
|
||||
if(len==5)
|
||||
type = cisco_ap_regulatory_domain5;
|
||||
cw_ktv_read_struct(params->conn->remote_cfg,type,key,data,len);
|
||||
cw_ktv_read_struct(params->remote_cfg,type,key,data,len);
|
||||
|
||||
return 1;
|
||||
}
|
||||
@ -261,7 +261,7 @@ int cisco_out_ap_regulatory_domain(struct cw_ElemHandler * eh,
|
||||
|
||||
|
||||
type = NULL;
|
||||
result = cw_ktv_get(params->conn->local_cfg,"ac-descriptor/software/version",CW_TYPE_BSTR16);
|
||||
result = cw_ktv_get(params->local_cfg,"ac-descriptor/software/version",CW_TYPE_BSTR16);
|
||||
if (result!=NULL){
|
||||
if(result->type->len(result)==4){
|
||||
uint32_t rv;
|
||||
@ -280,7 +280,7 @@ int cisco_out_ap_regulatory_domain(struct cw_ElemHandler * eh,
|
||||
do {
|
||||
sprintf(key,"%s.%d",eh->key,idx);
|
||||
search.key=key;
|
||||
result = mavl_get_first(params->conn->local_cfg,&search);
|
||||
result = mavl_get_first(params->local_cfg,&search);
|
||||
if (result==NULL)
|
||||
break;
|
||||
if (strncmp(result->key,key,strlen(key))!=0)
|
||||
@ -288,7 +288,7 @@ int cisco_out_ap_regulatory_domain(struct cw_ElemHandler * eh,
|
||||
|
||||
if(type == NULL){
|
||||
sprintf(testkey,"%s/%s",key,"band-id");
|
||||
result = cw_ktv_get(params->conn->local_cfg,key,CW_TYPE_BYTE);
|
||||
result = cw_ktv_get(params->local_cfg,key,CW_TYPE_BYTE);
|
||||
if (result==NULL){
|
||||
type = cisco_ap_regulatory_domain4;
|
||||
}
|
||||
@ -297,9 +297,9 @@ int cisco_out_ap_regulatory_domain(struct cw_ElemHandler * eh,
|
||||
}
|
||||
}
|
||||
|
||||
start = params->conn->header_len(eh);
|
||||
len = cw_ktv_write_struct(params->conn->local_cfg,NULL,type,key,ob+start);
|
||||
ob += params->conn->write_header(eh,ob,len);
|
||||
start = cw_header_len(eh);
|
||||
len = cw_ktv_write_struct(params->local_cfg,NULL,type,key,ob+start);
|
||||
ob += cw_write_header(eh,ob,len);
|
||||
|
||||
idx++;
|
||||
|
||||
@ -543,7 +543,7 @@ static int cisco_in_lw_del_wlan(struct cw_ElemHandler *eh,
|
||||
radio_id=cw_get_byte(data);
|
||||
wlan_id=cw_get_word(data+1);
|
||||
sprintf(key,"radio.%d/wlan.%d",radio_id,wlan_id);
|
||||
cw_ktv_del_sub(params->conn->local_cfg,key);
|
||||
cw_ktv_del_sub(params->local_cfg,key);
|
||||
cw_dbg(DBG_INFO,"Del WLAN rid=%d, id=%d",wlan_id);
|
||||
return 0;
|
||||
}
|
||||
@ -1261,6 +1261,18 @@ static struct cw_ElemHandler handlers70[] = {
|
||||
cw_out_radio_generic /* put */
|
||||
},
|
||||
|
||||
{
|
||||
"Cisco Elem 47", /* name */
|
||||
CISCO_ELEM_47, /* Element ID */
|
||||
CW_VENDOR_ID_CISCO,0, /* Vendor / Proto */
|
||||
5,1024, /* min/max length */
|
||||
CW_TYPE_BSTR16, /* type */
|
||||
"cisco/elem47", /* Key */
|
||||
cw_in_radio_generic, /* get */
|
||||
cw_out_radio_generic /* put */
|
||||
},
|
||||
|
||||
|
||||
|
||||
|
||||
{
|
||||
@ -1704,7 +1716,8 @@ static struct cw_ElemDef configuration_status_request_elements[] ={
|
||||
{0, CW_VENDOR_ID_CISCO, CISCO_ELEM_132, 1, 0},
|
||||
{0, CW_VENDOR_ID_CISCO, CISCO_ELEM_15, 1, 0},
|
||||
{0, CW_VENDOR_ID_CISCO, CISCO_ELEM_19, 1, 0},
|
||||
{0, CW_VENDOR_ID_CISCO, CISCO_ELEM_22, 1, 0},
|
||||
{0, CW_VENDOR_ID_CISCO, CISCO_ELEM_22, 0, 0},
|
||||
{0, CW_VENDOR_ID_CISCO, CISCO_ELEM_47, 0, 0},
|
||||
{0, CW_VENDOR_ID_CISCO, CISCO_ELEM_81, 0, 0},
|
||||
{CW_PROTO_LWAPP, CW_VENDOR_ID_CISCO, CISCO_LWELEM_9, 0, 0},
|
||||
{0, CW_VENDOR_ID_CISCO, CISCO_ELEM_24, 0, 0},
|
||||
@ -1801,6 +1814,7 @@ static struct cw_ElemDef configuration_update_request_elements[] ={
|
||||
{0, CW_VENDOR_ID_CISCO, CISCO_ELEM_15, 0, 0},
|
||||
{0, CW_VENDOR_ID_CISCO, CISCO_ELEM_19, 0, 0},
|
||||
{0, CW_VENDOR_ID_CISCO, CISCO_ELEM_22, 0, 0},
|
||||
{0, CW_VENDOR_ID_CISCO, CISCO_ELEM_47, 0, 0},
|
||||
{0, CW_VENDOR_ID_CISCO, CISCO_ELEM_81, 0, 0},
|
||||
{CW_PROTO_LWAPP, CW_VENDOR_ID_CISCO, CISCO_LWELEM_9, 0, 0},
|
||||
|
||||
@ -1827,7 +1841,7 @@ static struct cw_ElemDef configuration_update_request_elements[] ={
|
||||
{CW_PROTO_LWAPP, CW_VENDOR_ID_CISCO, CISCO_LWELEM_ROUGE_DETECTION, 0, 0},
|
||||
{CW_PROTO_LWAPP, CW_VENDOR_ID_CISCO, CISCO_LWELEM_RAD_EXTENDED_CONFIG, 0, 0},
|
||||
|
||||
{0,0,0,00}
|
||||
{0,0,0,0,0}
|
||||
|
||||
};
|
||||
|
||||
@ -1850,12 +1864,12 @@ static struct cw_ElemDef wtp_event_response_elements[] ={
|
||||
|
||||
|
||||
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_SPAM_VENDOR_SPECIFIC, 1, 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},
|
||||
{0, CW_VENDOR_ID_CISCO, CISCO_ELEM_ADD_WLAN, 1, CW_IGNORE},
|
||||
{0, CW_VENDOR_ID_CISCO, CISCO_ELEM_OPER_STATE_DETAIL_CAUSE, 1, CW_IGNORE},
|
||||
|
||||
{CW_PROTO_LWAPP, CW_VENDOR_ID_CISCO, CISCO_LWELEM_HARDWARE_INFO, 0, 0},
|
||||
{CW_PROTO_LWAPP, CW_VENDOR_ID_CISCO, CISCO_LWELEM_HARDWARE_INFO, 1, 0},
|
||||
|
||||
{0,0,0,0,0}
|
||||
};
|
||||
@ -1981,7 +1995,7 @@ static struct cw_MsgDef messages70[] = {
|
||||
{
|
||||
NULL, /* name */
|
||||
CAPWAP_MSG_CHANGE_STATE_EVENT_REQUEST, /* msg type */
|
||||
CW_ROLE_AC, /* role */
|
||||
CW_ROLE_AC, /* role */
|
||||
NULL, /* allowed states */
|
||||
change_state_event_request_elements /* msg elements */
|
||||
},
|
||||
|
@ -15,7 +15,7 @@ int cisco_in_ac_descriptor(struct cw_ElemHandler *eh,
|
||||
{0,0, NULL,0, 0}
|
||||
};
|
||||
|
||||
return cw_read_ac_descriptor(params->conn->remote_cfg,eh,params,data,len,allowed);
|
||||
return cw_read_ac_descriptor(params->remote_cfg,eh,params,data,len,allowed);
|
||||
|
||||
|
||||
/*return cw_read_ac_descriptor(conn->config,data,len,allowed);*/
|
||||
|
@ -13,14 +13,14 @@ int cisco_in_spam_vendor_specific(struct cw_ElemHandler *eh,
|
||||
vendor_id = cw_get_dword(data);
|
||||
elem_id = cw_get_word(data + 4);
|
||||
|
||||
vhandler = cw_msgset_get_elemhandler(params->conn->msgset,CW_PROTO_LWAPP,vendor_id,elem_id);
|
||||
vhandler = cw_msgset_get_elemhandler(params->msgset,CW_PROTO_LWAPP,vendor_id,elem_id);
|
||||
|
||||
|
||||
if (!vhandler) {
|
||||
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_state));
|
||||
params->msgdata->name, NULL /*cw_strstate(params->conn->capwap_state)*/);
|
||||
return 0;
|
||||
|
||||
}
|
||||
|
@ -35,7 +35,7 @@ int cisco_in_wtp_descriptor(struct cw_ElemHandler *eh, struct cw_ElemHandlerPara
|
||||
};
|
||||
|
||||
|
||||
return cw_read_wtp_descriptor_7(params->conn->remote_cfg, params->conn, eh, data, len, allowed);
|
||||
return cw_read_wtp_descriptor_7(params->remote_cfg, NULL /*params->conn*/, eh, data, len, allowed);
|
||||
}
|
||||
|
||||
|
||||
|
@ -60,18 +60,18 @@ int cisco_out_ac_descriptor(struct cw_ElemHandler * eh,
|
||||
uint8_t *d = dst+4;
|
||||
char key[CW_KTV_MAX_KEY_LEN];
|
||||
|
||||
d+=put_ac_status(params->conn->local_cfg,
|
||||
params->conn->global_cfg,
|
||||
d+=put_ac_status(params->local_cfg,
|
||||
params->global_cfg,
|
||||
d, eh->key);
|
||||
|
||||
/* it is important to send software version first,
|
||||
* because APs don't check the type */
|
||||
sprintf(key,"%s/%s",eh->key,CW_SKEY_SOFTWARE);
|
||||
d+=cw_write_descriptor_subelem (d, params->conn->local_cfg,
|
||||
d+=cw_write_descriptor_subelem (d, params->local_cfg,
|
||||
1, key);
|
||||
|
||||
sprintf(key,"%s/%s",eh->key,CW_SKEY_HARDWARE);
|
||||
d+=cw_write_descriptor_subelem (d, params->conn->local_cfg,
|
||||
d+=cw_write_descriptor_subelem (d, params->local_cfg,
|
||||
0, key);
|
||||
|
||||
|
||||
@ -79,7 +79,7 @@ int cisco_out_ac_descriptor(struct cw_ElemHandler * eh,
|
||||
len = d-dst-4;
|
||||
|
||||
l = len + cw_put_elem_hdr(dst,eh->id,len);
|
||||
cw_dbg_elem(DBG_ELEM_OUT,params->conn,params->msgdata->type,eh,dst,l);
|
||||
cw_dbg_elem(DBG_ELEM_OUT,NULL,params->msgdata->type,eh,dst,l);
|
||||
|
||||
return l;
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
#include <stdint.h>
|
||||
#include <time.h>
|
||||
|
||||
|
||||
#include "cw/conn.h"
|
||||
#include "cw/msgset.h"
|
||||
#include "cw/cw.h"
|
||||
|
||||
|
@ -1,3 +1,5 @@
|
||||
#include "cw/conn.h"
|
||||
|
||||
#include "mod_cisco.h"
|
||||
#include "cw/cw.h"
|
||||
|
||||
@ -5,7 +7,7 @@ int cisco_out_capwap_local_ip_address(struct cw_ElemHandler * eh,
|
||||
struct cw_ElemHandlerParams * params, uint8_t * dst)
|
||||
{
|
||||
cw_KTV_t * ip;
|
||||
ip = cw_ktv_get(params->conn->local_cfg,eh->key,CW_TYPE_IPADDRESS);
|
||||
ip = cw_ktv_get(params->local_cfg,eh->key,CW_TYPE_IPADDRESS);
|
||||
if (ip==NULL){
|
||||
return 0;
|
||||
}
|
||||
|
@ -13,11 +13,11 @@ int cisco_out_lw_path_mtu(struct cw_ElemHandler * eh,
|
||||
int len,max;
|
||||
|
||||
sprintf(key,"%s/%s",eh->key,"len");
|
||||
len = cw_ktv_get_word(params->conn->local_cfg,key,0);
|
||||
len = cw_ktv_get_word(params->local_cfg,key,0);
|
||||
if (len == 0)
|
||||
return 0;
|
||||
sprintf(key,"%s/%s",eh->key,"max");
|
||||
max = cw_ktv_get_word(params->conn->local_cfg,key,0);
|
||||
max = cw_ktv_get_word(params->local_cfg,key,0);
|
||||
|
||||
lw_set_word(dst+16,max);
|
||||
lw_set_word(dst+16+2,len);
|
||||
|
@ -13,11 +13,11 @@ int cisco_out_radio_generic(struct cw_ElemHandler * handler, struct cw_ElemHandl
|
||||
int radios;
|
||||
len =0;
|
||||
|
||||
radios = cw_ktv_get_byte(params->conn->local_cfg,"wtp-descriptor/max-radios",0);
|
||||
radios = cw_ktv_get_byte(params->local_cfg,"wtp-descriptor/max-radios",0);
|
||||
|
||||
for(i=0;i<radios+0;i++){
|
||||
l = cw_write_radio_element(handler,params,i,dst+len);
|
||||
cw_dbg_elem(DBG_ELEM_OUT,params->conn,params->msgdata->type,handler,dst+len,l);
|
||||
cw_dbg_elem(DBG_ELEM_OUT,NULL,params->msgdata->type,handler,dst+len,l);
|
||||
len+=l;
|
||||
}
|
||||
return len;
|
||||
|
@ -16,7 +16,7 @@ int cisco_out_wtp_descriptor(struct cw_ElemHandler * eh,
|
||||
d = dst+4;
|
||||
|
||||
sprintf(key,"%s/%s",eh->key,CW_SKEY_MAX_RADIOS);
|
||||
val = cw_ktv_get(params->conn->local_cfg,key, CW_TYPE_BYTE);
|
||||
val = cw_ktv_get(params->local_cfg,key, CW_TYPE_BYTE);
|
||||
if (val != NULL)
|
||||
d+=val->type->put(val,d);
|
||||
else{
|
||||
@ -25,7 +25,7 @@ int cisco_out_wtp_descriptor(struct cw_ElemHandler * eh,
|
||||
}
|
||||
|
||||
sprintf(key,"%s/%s",eh->key,CW_SKEY_RADIOS_IN_USE);
|
||||
val = cw_ktv_get(params->conn->local_cfg,key, CW_TYPE_BYTE);
|
||||
val = cw_ktv_get(params->local_cfg,key, CW_TYPE_BYTE);
|
||||
if (val != NULL){
|
||||
d+=val->type->put(val,d);
|
||||
}
|
||||
@ -38,17 +38,17 @@ int cisco_out_wtp_descriptor(struct cw_ElemHandler * eh,
|
||||
|
||||
/* hardware version sub element */
|
||||
sprintf(key,"%s/%s",eh->key,CW_SKEY_HARDWARE);
|
||||
d+=cw_write_descriptor_subelem (d, params->conn->local_cfg,
|
||||
d+=cw_write_descriptor_subelem (d, params->local_cfg,
|
||||
CW_SUBELEM_WTP_HARDWARE_VERSION, key);
|
||||
|
||||
/* software version sub element */
|
||||
sprintf(key,"%s/%s",eh->key,CW_SKEY_SOFTWARE);
|
||||
d+=cw_write_descriptor_subelem (d, params->conn->local_cfg,
|
||||
d+=cw_write_descriptor_subelem (d, params->local_cfg,
|
||||
CW_SUBELEM_WTP_SOFTWARE_VERSION, key);
|
||||
|
||||
/* bootloader version sub element */
|
||||
sprintf(key,"%s/%s",eh->key,CW_SKEY_BOOTLOADER);
|
||||
d+=cw_write_descriptor_subelem (d, params->conn->local_cfg,
|
||||
d+=cw_write_descriptor_subelem (d, params->local_cfg,
|
||||
CW_SUBELEM_WTP_BOOTLOADER_VERSION, key);
|
||||
|
||||
len = d-dst-4;
|
||||
|
@ -28,6 +28,7 @@
|
||||
* Vendor specific message elements defined in LWAPP by Cisco
|
||||
*/
|
||||
|
||||
#define CISCO_LWELEM_9 9
|
||||
#define CISCO_LWELEM_AP_USERNAME_PASSWORD 18
|
||||
#define LW_CISCO_MANAGER_IP_ADDR 19
|
||||
#define CISCO_LWELEM_DISCOVERY_PROTOCOL 20
|
||||
|
@ -2,6 +2,7 @@
|
||||
#define __MOD_CISCO_H
|
||||
|
||||
#include <stdint.h>
|
||||
#include "cw/conn.h"
|
||||
#include "cw/msgset.h"
|
||||
|
||||
int cisco_in_wtp_descriptor(struct cw_ElemHandler *eh, struct cw_ElemHandlerParams * params, uint8_t * data,
|
||||
|
Reference in New Issue
Block a user