More Cisco stuff

FossilOrigin-Name: f5d524e032376c67bfe637ce08b701e55e4be62ac7ee960b0daacda910cf1d2f
This commit is contained in:
7u83@mail.ru
2018-04-19 09:03:18 +00:00
parent 9dadcc3fd5
commit 3dbca93a88
15 changed files with 370 additions and 96 deletions

View File

@ -473,6 +473,12 @@ static struct cw_ElemDef configuration_update_request_elements[] ={
{0,0,0,0,0}
};
static int configuration_update_response_states[] = {CAPWAP_STATE_RUN,0};
static struct cw_ElemDef configuration_update_response_elements[] ={
{0,0,CAPWAP_ELEM_RESULT_CODE, 1, 0},
{0,0,0,0,0}
};
static int echo_request_states[] = {CAPWAP_STATE_RUN,0};
@ -546,6 +552,13 @@ static struct cw_MsgDef messages[] = {
configuration_update_request_elements /* msg elements */
},
{
"Configuration Update Reponse", /* name */
CAPWAP_MSG_CONFIGURATION_UPDATE_RESPONSE, /* msg type */
CW_ROLE_WTP, /* role */
configuration_update_response_states, /* allowed states */
configuration_update_response_elements /* msg elements */
},
{

View File

@ -34,7 +34,7 @@
#define CISCO_ELEM_MWAR_ADDR LWAPP_ELEM_AC_ADDRESS /* 2 */
#define CW_CISCO_RAD 3
#define CW_CISCO_RAD_SLOT 4
#define CW_CISCO_RAD_NAME LWAPP_ELEM_WTP_NAME /* 5 */
#define CISCO_ELEM_RAD_NAME LWAPP_ELEM_WTP_NAME /* 5 */
#define CW_CISCO_MWAR LW_ELEM_AC_DESCRIPTOR /* 6 */
#define CW_CISCO_ADD_WLAN LW_ELEM_80211_ADD_WLAN /* 7 */
#define CISCO_ELEM_WTP_RADIO_CONFIGURATION 8
@ -70,7 +70,7 @@
#define CW_CISCO_SIG_TOGGLE 87
#define CISCO_ELEM_AIRSPACE_CAPABILITY 88
#define CW_CISCO_AC_NAME_WITH_INDEX 91
#define CISCO_ELEM_AC_NAME_WITH_INDEX 91
#define CW_CISCO_SPAM_DOMAIN_SECRET 96
#define CISCO_ELEM_SPAM_VENDOR_SPECIFIC 104

View File

@ -308,6 +308,61 @@ static cw_KTVStruct_t cisco_ap_core_dump[]={
};
int cisco_in_with_index(struct cw_ElemHandler *eh,
struct cw_ElemHandlerParams *params,
uint8_t * data, int len)
{
char key[CW_KTV_MAX_KEY_LEN];
int idx;
idx = cw_get_byte(data);
sprintf(key,"%s.%d",eh->key,idx);
cw_ktv_add(params->conn->remote_cfg,key,eh->type,data+1,len-1);
return 1;
}
int cisco_out_with_index(struct cw_ElemHandler * eh,
struct cw_ElemHandlerParams * params, uint8_t * dst)
{
char key[CW_KTV_MAX_KEY_LEN];
int idx;
cw_KTV_t * result, search;
int len,start;
uint8_t * ob;
idx = 0;
ob = dst;
do {
sprintf(key,"%s.%d",eh->key,idx);
search.key=key;
result = mavl_get_first(params->conn->local_cfg,&search);
if (result==NULL)
break;
if (strncmp(result->key,key,strlen(key))!=0)
break;
start = params->conn->header_len(eh);
len = cw_put_byte(ob+start,idx);
len += result->type->put(result,ob+start+len);
ob += params->conn->write_header(eh,ob,len);
idx++;
}while(1);
return ob-dst;
}
static struct cw_ElemHandler handlers[] = {
@ -349,7 +404,7 @@ static struct cw_ElemHandler handlers[] = {
,
{
"RAD Name -> CAPWAP WTP Name", /* name */
CW_CISCO_RAD_NAME, /* Element ID */
CISCO_ELEM_RAD_NAME, /* Element ID */
CW_VENDOR_ID_CISCO,0, /* Vendor / Proto */
1,512, /* min/max length */
CW_TYPE_BSTR16, /* type */
@ -794,6 +849,53 @@ static struct cw_ElemHandler handlers[] = {
cw_in_generic_struct, /* get */
cw_out_generic_struct /* put */
},
{
"Statitsics Timer", /* name */
CISCO_ELEM_STATISTICS_TIMER, /* Element ID */
CW_VENDOR_ID_CISCO,0, /* Vendor / Proto */
2,2, /* min/max length */
CW_TYPE_WORD, /* type */
"statistics-timer", /* Key */
cw_in_generic, /* get */
cw_out_generic /* put */
}
,
{
"AC Name with Index", /* name */
CISCO_ELEM_AC_NAME_WITH_INDEX, /* Element ID */
CW_VENDOR_ID_CISCO,0, /* Vendor / Proto */
1,513, /* min/max length */
CW_TYPE_BSTR16, /* type */
"cisco/ac-name-with-index", /* Key */
cisco_in_with_index, /* get */
cisco_out_with_index /* put */
}
,
{
"AC IP Address with Index", /* name */
CISCO_LWELEM_AC_IP_ADDR_WITH_INDEX, /* Element ID */
CW_VENDOR_ID_CISCO,CW_PROTO_LWAPP, /* Vendor / Proto */
5,5, /* min/max length */
CW_TYPE_IPADDRESS, /* type */
"cisco/ac-ip-addr-with-index", /* Key */
cisco_in_with_index, /* get */
cisco_out_with_index /* put */
}
,
{
"AP Failover Priority", /* name */
CISCO_LWELEM_AP_FAILOVER_PRIORITY, /* Element ID */
CW_VENDOR_ID_CISCO,CW_PROTO_LWAPP, /* Vendor / Proto */
1,1, /* min/max length */
CW_TYPE_BYTE, /* type */
"cisco/ap-failover-priority", /* Key */
cw_in_generic, /* get */
cw_out_generic /* put */
}
,
{0,0,0,0,0,0,0,0}
@ -804,7 +906,7 @@ static int discovery_request_states[] = {CAPWAP_STATE_DISCOVERY,0};
static struct cw_ElemDef discovery_request_elements[] ={
/* {0,0, CAPWAP_ELEM_WTP_DESCRIPTOR, 1, 0},*/
{0,0, CAPWAP_ELEM_WTP_BOARD_DATA, 0, 0},
{0,CW_VENDOR_ID_CISCO, CW_CISCO_RAD_NAME, 1, 0},
{0,CW_VENDOR_ID_CISCO, CISCO_ELEM_RAD_NAME, 1, 0},
{0,CW_VENDOR_ID_CISCO, CW_CISCO_BOARD_DATA_OPTIONS, 0, 0},
{0,0,0,00}
@ -873,12 +975,16 @@ static struct cw_ElemDef configuration_status_request_elements[] ={
{0, CW_VENDOR_ID_CISCO, CISCO_ELEM_AP_MODEL, 1, 0},
{0, CW_VENDOR_ID_CISCO, CISCO_ELEM_RESET_BUTTON_STATE, 1, 0},
{0, CW_VENDOR_ID_CISCO, CISCO_ELEM_WTP_RADIO_CONFIGURATION, 1, 0},
{0, CW_VENDOR_ID_CISCO, CISCO_ELEM_AC_NAME_WITH_INDEX, 0, 0},
{CW_PROTO_LWAPP, CW_VENDOR_ID_CISCO, CISCO_LWELEM_AP_USERNAME_PASSWORD, 1, 0},
{CW_PROTO_LWAPP, CW_VENDOR_ID_CISCO, CISCO_LWELEM_AP_LOGHOST_CONFIG, 1, 0},
{CW_PROTO_LWAPP, CW_VENDOR_ID_CISCO, CISCO_LWELEM_AP_TELNET_SSH, 1, 0},
{CW_PROTO_LWAPP, CW_VENDOR_ID_CISCO, CISCO_LWELEM_AP_SUBMODE, 1, 0},
{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_AP_FAILOVER_PRIORITY, 1, 0},
{0,0,0,00}
@ -927,13 +1033,18 @@ static struct cw_ElemDef configuration_update_request_elements[] ={
{0, CW_VENDOR_ID_CISCO, CISCO_ELEM_RESET_BUTTON_STATE, 0, 0},
{0, CW_VENDOR_ID_CISCO, CISCO_ELEM_WTP_RADIO_CONFIGURATION, 0, 0},
{0, CW_VENDOR_ID_CISCO, CISCO_ELEM_LOCATION_DATA, 0, 0},
{0, CW_VENDOR_ID_CISCO, CISCO_ELEM_RAD_NAME, 0, 0},
{0, CW_VENDOR_ID_CISCO, CISCO_ELEM_AP_CORE_DUMP, 0, 0},
{0, CW_VENDOR_ID_CISCO, CISCO_ELEM_STATISTICS_TIMER, 0, 0},
{0, CW_VENDOR_ID_CISCO, CISCO_ELEM_AC_NAME_WITH_INDEX, 0, 0},
{CW_PROTO_LWAPP, CW_VENDOR_ID_CISCO, CISCO_LWELEM_AP_USERNAME_PASSWORD, 0, 0},
{CW_PROTO_LWAPP, CW_VENDOR_ID_CISCO, CISCO_LWELEM_AP_LOGHOST_CONFIG, 0, 0},
{CW_PROTO_LWAPP, CW_VENDOR_ID_CISCO, CISCO_LWELEM_AP_TELNET_SSH, 0, 0},
{CW_PROTO_LWAPP, CW_VENDOR_ID_CISCO, CISCO_LWELEM_AP_SUBMODE, 0, 0},
{CW_PROTO_LWAPP, CW_VENDOR_ID_CISCO, CISCO_LWELEM_AP_ETHERNET_PORT_SUBTYPE, 0, 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_AP_FAILOVER_PRIORITY, 0, 0},
{0,0,0,00}

View File

@ -114,7 +114,7 @@ static cw_action_in_t actions_in[] = {
.capwap_state = CW_STATE_RUN,
.vendor_id = CW_VENDOR_ID_CISCO,
.msg_id = CAPWAP_MSG_CONFIGURATION_UPDATE_REQUEST,
.elem_id = CW_CISCO_RAD_NAME,
.elem_id = CISCO_ELEM_RAD_NAME,
.item_id = CW_ITEM_WTP_NAME,
.start = cw_in_generic,
.min_len = 0,
@ -280,7 +280,7 @@ static cw_action_out_t actions_out[]={
{
.msg_id = CAPWAP_MSG_DISCOVERY_REQUEST,
.vendor_id = CW_VENDOR_ID_CISCO,
.elem_id = CW_CISCO_RAD_NAME,
.elem_id = CISCO_ELEM_RAD_NAME,
.item_id = CW_ITEM_WTP_NAME,
.out = cw_out_generic,
/* .get = cw_out_get_config,*/

View File

@ -31,7 +31,7 @@
#define CISCO_LWELEM_AP_USERNAME_PASSWORD 18
#define LW_CISCO_MANAGER_IP_ADDR 19
#define LW_CISCO_RADIO_MODULE_INFO 21
#define LW_CISCO_AC_IP_ADDR_WITH_INDEX 32
#define CISCO_LWELEM_AC_IP_ADDR_WITH_INDEX 32
#define CISCO_LWELEM_AP_ETHERNET_PORT_SUBTYPE 34
#define CISCO_LWELEM_AP_LOGHOST_CONFIG 36
#define LW_CISCO_MCAST_MGID_INFO 39
@ -42,6 +42,7 @@
#define LW_CISCO_PRIMED_DISCOVERY_TIMEOUT 50
#define LW_CISCO_DELETE_WLAN 52
#define CISCO_LWELEM_AP_FAILOVER_PRIORITY 53
#define CISCO_LWELEM_PATH_MTU 73
#define LW_CISCO_PRIMED_JOIN_TIMEOUT 85
#define LW_CISCO_AP_DTLS_DATA_CFG 74

View File

@ -61,7 +61,7 @@ static cw_action_in_t actions_in[] = {
.capwap_state = CAPWAP_STATE_DISCOVERY,
.msg_id = CAPWAP_MSG_DISCOVERY_REQUEST,
.vendor_id = CW_VENDOR_ID_CISCO,
.elem_id = CW_CISCO_RAD_NAME,
.elem_id = CISCO_ELEM_RAD_NAME,
.start=cw_in_generic2,
.item_id = "wtp_name",
.min_len=1,

View File

@ -109,7 +109,7 @@ static cw_action_in_t actions_in[] = {
.capwap_state = CW_STATE_RUN,
.vendor_id = CW_VENDOR_ID_CISCO,
.msg_id = CAPWAP_MSG_CONFIGURATION_UPDATE_REQUEST,
.elem_id = CW_CISCO_RAD_NAME,
.elem_id = CISCO_ELEM_RAD_NAME,
.item_id = CW_ITEM_WTP_NAME,
.start = cw_in_generic2,
.min_len = 0,
@ -158,7 +158,7 @@ static cw_action_out_t actions_out[]={
{
.msg_id = CW_MSG_DISCOVERY_REQUEST,
.vendor_id = CW_VENDOR_ID_CISCO,
.elem_id = CW_CISCO_RAD_NAME,
.elem_id = CISCO_ELEM_RAD_NAME,
.item_id = CW_ITEM_WTP_NAME,
.out = cw_out_generic,
.get = cw_out_get_config,