A lot of bug fixes and improvments

This commit is contained in:
2022-08-22 01:59:23 +02:00
parent 226c4b832a
commit 65153617b7
37 changed files with 229 additions and 177 deletions

View File

@ -26,6 +26,9 @@ int capwap_in_vendor_specific_payload(struct cw_ElemHandler *handler,
if (!vhandler) {
cw_dbg_elem(params->dbg_level, NULL, params->msgdata->type, handler,
data, len);
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,

View File

@ -30,7 +30,7 @@
#include "cw/keys.h"
static void readsubelems_wtp_board_data(mavl_t cfg, uint8_t * msgelem,
static void readsubelems_wtp_board_data(cw_Cfg_t * cfg, uint8_t * msgelem,
int len)
{
int i = 0;

View File

@ -437,6 +437,17 @@ static cw_ValStruct_t cisco_tx_power[]={
{NULL,NULL,0,0}
};
static cw_ValStruct_t cisco_lw_radio_module_info_stru[]={
{CW_TYPE_STR,"name",21,-1},
{CW_TYPE_STR,"serial",11,-1},
{CW_TYPE_STR,"type",25,-1},
{CW_TYPE_STR,"descr",126,-1},
{NULL,NULL,0,0}
};
static cw_ValStruct_t cisco_ap_qos[]={
{CW_TYPE_BYTE,"tag-packets",1,-1},
{CW_TYPE_BYTE,"uranium-queue-depth",1,-1},
@ -597,7 +608,7 @@ static int cisco_in_lw_del_wlan(struct cw_ElemHandler *eh,
uint8_t * data, int len)
{
stop();
/*
int wlan_id, radio_id;
char key[CW_CFG_MAX_KEY_LEN];
@ -606,7 +617,7 @@ static int cisco_in_lw_del_wlan(struct cw_ElemHandler *eh,
sprintf(key,"radio.%d/wlan.%d",radio_id,wlan_id);
cw_ktv_del_sub(params->cfg,key);
cw_dbg(DBG_INFO,"Del WLAN rid=%d, id=%d",wlan_id);
return 0;
return 0;*/
}
@ -955,7 +966,7 @@ static struct cw_ElemHandler handlers70[] = {
}
,
{
"Path MTU", /* name */
"Cisco LWAPP Path MTU", /* name */
CISCO_LWELEM_PATH_MTU, /* Element ID */
CW_VENDOR_ID_CISCO,CW_PROTO_LWAPP, /* Vendor / Proto */
0,0, /* min/max length */
@ -1518,7 +1529,7 @@ static struct cw_ElemHandler handlers70[] = {
{
"Cisco LWAP Elem 9", /* name */
"Cisco LWAPP Elem 9", /* name */
CISCO_LWELEM_9, /* Element ID */
CW_VENDOR_ID_CISCO,CW_PROTO_LWAPP, /* Vendor / Proto */
@ -1531,7 +1542,7 @@ static struct cw_ElemHandler handlers70[] = {
},
{
"Cisco LWAP Elem 11", /* name */
"Cisco LWAPP Elem 11", /* name */
CISCO_LWELEM_11, /* Element ID */
CW_VENDOR_ID_CISCO,CW_PROTO_LWAPP, /* Vendor / Proto */
@ -1585,7 +1596,7 @@ static struct cw_ElemHandler handlers70[] = {
},
{
"Cisco LWAP Elem 29", /* name */
"Cisco LWAPP Elem 29", /* name */
CISCO_LWELEM_29, /* Element ID */
CW_VENDOR_ID_CISCO,CW_PROTO_LWAPP, /* Vendor / Proto */
@ -1638,6 +1649,21 @@ static struct cw_ElemHandler handlers70[] = {
cw_out_radio_generic /* put */
},
{
"Cisco LWAPP Radio Module Info", /* name */
CISCO_LWELEM_RADIO_MODULE_INFO, /* Element ID */
CW_VENDOR_ID_CISCO,CW_PROTO_LWAPP, /* Vendor / Proto */
183,183, /* min/max length */
CW_TYPE_STRUCT, /* type */
"cisco/radio-module-info", /* Key */
cw_in_radio_generic, /* get */
cw_out_radio_generic, /* put */
NULL,
NULL,
cisco_lw_radio_module_info_stru /* param */
},
{
@ -2033,7 +2059,7 @@ static struct cw_ElemHandler handlers70[] = {
CW_VENDOR_ID_CISCO, 0, /* Vendor / Proto */
1, 1, /* min/max length */
CW_TYPE_BOOL, /* type */
"cisco/sig-toogle", /* Key */
"cisco/sig-toggle", /* Key */
cw_in_generic, /* get */
cw_out_generic /* put */
}
@ -2140,10 +2166,9 @@ static struct cw_ElemDef join_request_elements[] ={
static struct cw_ElemDef join_response_elements[] ={
{0, CW_VENDOR_ID_CISCO, CISCO_ELEM_SPAM_VENDOR_SPECIFIC,0, CW_IGNORE},
{CW_PROTO_LWAPP, CW_VENDOR_ID_CISCO, CISCO_LWELEM_PATH_MTU, 0, 0},
{0,0, CAPWAP_ELEM_ECN_SUPPORT, 0, CW_DELETE},
{CW_PROTO_LWAPP, CW_VENDOR_ID_CISCO, CISCO_LWELEM_PATH_MTU, 1, 0},
{0,0,0,00}
};
@ -2229,10 +2254,11 @@ static struct cw_ElemDef configuration_status_request_elements[] ={
{CW_PROTO_LWAPP, CW_VENDOR_ID_CISCO, CISCO_LWELEM_AP_ETHERNET_PORT_SUBTYPE, 1, 0},
{CW_PROTO_LWAPP, CW_VENDOR_ID_CISCO, CISCO_LWELEM_AC_IP_ADDR_WITH_INDEX, 0, 0},
{CW_PROTO_LWAPP, CW_VENDOR_ID_CISCO, CISCO_LWELEM_VLAN, 0, 0},
{CW_PROTO_LWAPP, CW_VENDOR_ID_CISCO, CISCO_LWELEM_TCP_ADJUST_MSS, 0, 0},
{CW_PROTO_LWAPP, CW_VENDOR_ID_CISCO, CISCO_LWELEM_HARDWARE_INFO, 0, 0},
{CW_PROTO_LWAPP, CW_VENDOR_ID_CISCO, CISCO_LWELEM_ROUGE_DETECTION, 0, 0},
{CW_PROTO_LWAPP, CW_VENDOR_ID_CISCO, CISCO_LWELEM_AP_DTLS_DATA_CFG, 0, 0},
{CW_PROTO_LWAPP, CW_VENDOR_ID_CISCO, CISCO_LWELEM_TCP_ADJUST_MSS, 0, 0},
{CW_PROTO_LWAPP, CW_VENDOR_ID_CISCO, CISCO_LWELEM_HARDWARE_INFO, 0, 0},
{CW_PROTO_LWAPP, CW_VENDOR_ID_CISCO, CISCO_LWELEM_ROUGE_DETECTION, 0, 0},
{CW_PROTO_LWAPP, CW_VENDOR_ID_CISCO, CISCO_LWELEM_AP_DTLS_DATA_CFG, 0, 0},
// {CW_PROTO_LWAPP, CW_VENDOR_ID_CISCO, CISCO_LWELEM_PATH_MTU, 0, 0},
{CW_PROTO_LWAPP, CW_VENDOR_ID_CISCO, CISCO_LWELEM_DISCOVERY_PROTOCOL, 1, 0},
{0,0,0,00}
@ -2410,6 +2436,8 @@ static struct cw_ElemDef wtp_event_request_elements[] ={
{0, CW_VENDOR_ID_CISCO, CISCO_ELEM_ADD_WLAN, 0, CW_IGNORE},
{CW_PROTO_LWAPP, CW_VENDOR_ID_CISCO, CISCO_LWELEM_ADD_WLAN, 0, 0},
{CW_PROTO_LWAPP, CW_VENDOR_ID_CISCO, CISCO_LWELEM_HARDWARE_INFO, 0, 0},
{CW_PROTO_LWAPP, CW_VENDOR_ID_CISCO, CISCO_LWELEM_RADIO_MODULE_INFO, 0, 0},
{CW_PROTO_LWAPP, CW_VENDOR_ID_CISCO, CISCO_LWELEM_29, 0, 0},
{0,0,0,0,0}
};
@ -2428,10 +2456,12 @@ static struct cw_ElemDef change_state_event_request_elements[] ={
{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_105, 0, 0},
{0, 0, CAPWAP_ELEM_RADIO_ADMINISTRATIVE_STATE, 1, 0},
{CW_PROTO_LWAPP, CW_VENDOR_ID_CISCO, CISCO_LWELEM_HARDWARE_INFO, 1, 0},
{CW_PROTO_LWAPP, CW_VENDOR_ID_CISCO, CISCO_LWELEM_HARDWARE_INFO, 1, 0},
{CW_PROTO_LWAPP, CW_VENDOR_ID_CISCO, CISCO_LWELEM_RADIO_MODULE_INFO, 1, 0},
{0,0,0,0,0}

View File

@ -17,6 +17,9 @@ int cisco_in_spam_vendor_specific(struct cw_ElemHandler *eh,
if (!vhandler) {
cw_dbg_elem(params->dbg_level, NULL, params->msgdata->type, eh,
data, len);
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,

View File

@ -14,21 +14,26 @@ int cisco_out_lw_path_mtu(struct cw_ElemHandler * eh,
char key[CW_CFG_MAX_KEY_LEN];
int len,max;
int hl = params->msgset->header_len(eh);
int cl = dst-params->rawmsg;
int wl = 1400-cl-hl;
printf("HL:%d CL:%d WL: %d\n",hl,cl,wl);
sprintf(key,"%s/%s",eh->key,"len");
len = cw_cfg_get_word(params->cfg,key,0);
len = cw_cfg_get_word_l(params->cfg_list,key,0);
if (len == 0)
return 0;
sprintf(key,"%s/%s",eh->key,"max");
max = cw_cfg_get_word(params->cfg,key,0);
max = cw_cfg_get_word_l(params->cfg_list,key,0);
lw_set_word(dst+16,max);
lw_set_word(dst+16+2,len);
memset(dst+16+4,0,len-4);
/* put the lwap elem header */
lw_set_dword(dst + 10, eh->vendor);
lw_set_word(dst + 14, eh->id);
lw_set_word(dst+hl,max);
lw_set_word(dst+hl+2,wl);
memset(dst+hl+4,0,wl-4);
return len + 6 + cw_put_elem_vendor_hdr(dst, eh->vendor, CISCO_ELEM_SPAM_VENDOR_SPECIFIC, len+6);
len = wl;
return params->msgset->write_header(eh,dst,len);
}

View File

@ -97,7 +97,7 @@ static void errfunc(cfg_t *cfg, const char *fmt, va_list ap){
}
*/
static int init(struct cw_Mod *mod, mavl_t global_cfg, int role)
static int init(struct cw_Mod *mod, cw_Cfg_t * global_cfg, int role)
{
/* uint8_t * str;*/
static char * hardware_version; /*strdup(".x01000001");*/