Compare commits

...

2 Commits

Author SHA1 Message Date
7u83 0ebac6c98e Cisco ht-caps can be parsed 2022-08-28 21:21:21 +02:00
7u83 15e363f34e Read SIG Payload and more cisco elements 2022-08-28 16:19:49 +02:00
9 changed files with 145 additions and 36 deletions

View File

@ -44,7 +44,8 @@ $(PRG): $(OBJS)
$(CC) $(OBJS) -o $(PRG) $(LIBPATH) $(LDFLAGS) $(LIBS)
$(ACTPRG): $(ACTOBJS)
$(CC) $(ACTOBJS) -o $(ACTPRG) $(LIBPATH) $(LDFLAGS) $(LIBS) -ledit
$(CC) $(ACTOBJS) -o $(ACTPRG) $(LIBPATH) $(LIBS) -ledit
#$(CC) $(ACTOBJS) $(ACTPRG) $(LIBPATH) $(LDFLAGS) $(LIBS) -ledit

View File

@ -66,6 +66,18 @@ capwap/ac-descriptor/stations: 0
capwap/control-ip-address/address.0: 192.168.0.14
wlan.0/capwap80211/capability: 0
wlan.0/capwap80211/key-index: 0
wlan.0/capwap80211/key-status: 0
wlan.0/capwap80211/key: 1234
wlan.0/capwap80211/group-tcs: 123
wlan.0/capwap80211/qos: 0
wlan.0/capwap80211/auth-type: 1
wlan.0/capwap80211/mac-mode: 1
wlan.0/capwap80211/tunnel-mode: 1
wlan.0/capwap80211/suppress-ssid: false
wlan.0/capwap80211/ssid: ssid
#
# CAPWAP Timers

View File

@ -86,6 +86,9 @@ enum radioelems {
};
/** IEEE 802.11 Add WLAN Message element */
#define CAPWAP80211_ELEM_ADD_WLAN 1024
/** IEEE 802.11 Antenna Message element */
#define CAPWAP80211_ELEM_ANTENNA 1025
/** IEEE 802.11 WTP Radio Configuration */

View File

@ -145,8 +145,6 @@ int cw_out_radio_generic(struct cw_ElemHandler * handler, struct cw_ElemHandlerP
type = (struct cw_Type*)handler->type;
start = params->msgset->header_len(handler)+len;
l = type->write(params->cfg_list, key,dst+start+1,handler->param);
if (l==-1)
continue;

View File

@ -32,7 +32,6 @@ int cw_out_generic_indexed_enum(struct cw_ElemHandler * handler, struct cw_ElemH
int b;
sprintf(key,"%s/%s",handler->key,e[i].name);
cw_dbg(DBG_X,"Her is the Key: %s %s\n",key,e[i].name);
b = cw_cfg_base_exists(params->cfg_list[0],handler->key);
if (!b){

View File

@ -151,7 +151,7 @@
#define LW_ELEM_CERTIFICATE 44
#define LW_ELEM_WTP_BOARD_DATA 50
#define LW_BCAST_SSID_MODE 51
#define LWAPP_ELEM_BCAST_SSID_MODE 51
#define LW_ELEM_WTP_MODE_AND_TYPE 54
#define LW_ELEM_QOS 57

View File

@ -43,6 +43,21 @@ static cw_ValStruct_t capwap80211_wtp_radio_cfg_stru[]={
static struct cw_ElemHandler handlers[] = {
{
"IEEE 802.11 Add WLAN", /* name */
CAPWAP80211_ELEM_ADD_WLAN, /* Element ID */
0, 0, /* Vendor / Proto */
3, 0, /* min/max length */
CW_TYPE_STRUCT, /* type */
"capwap80211", /* Key */
cw_in_radio_generic, /* get */
cw_out_radio_generic, /* put */
NULL,
NULL,
capwap80211_antenna_stru
}
,
{
"IEEE 802.11 WTP Radio Information", /* name */
CAPWAP80211_ELEM_WTP_RADIO_INFORMATION, /* Element ID */

View File

@ -76,13 +76,14 @@
#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_BCAST_SSID_MODE LWAPP_ELEM_BCAST_SSID_MODE /* 51 */
#define CISCO_ELEM_AP_MODE_AND_TYPE LW_ELEM_80211_WTP_MODE_AND_TYPE /* 54 */
#define CISCO_ELEM_AP_QOS LW_ELEM_QOS /* 57 */
#define CW_CISCO_AC_IPV4_LIST LW_ELEM_AC_IPV4_LIST /* 59 */
#define CISCO_ELEM_CAPWAP_TIMERS LW_ELEM_LWAPP_TIMERS /* 68 */
#define CISCO_ELEM_CLIENT_AUTO_HANDOFF 72 /* 72 */
#define CISCO_ELEM_81 81 /* 81 */
#define CISCO_ELEM_AP_STATIC_IP_ADDR 83
@ -104,7 +105,7 @@
#define CISCO_ELEM_RESET_BUTTON_STATE 128
#define CISCO_ELEM_132 132 /* 132 */
#define CISCO_ELEM_AP_DOT11H 132 /* 132 */
#define CISCO_ELEM_CHANNEL_POWER 134
#define CISCO_ELEM_AP_CORE_DUMP 135

View File

@ -258,6 +258,15 @@ static cw_ValStruct_t cisco_ap_power_injector_config[]={
{NULL,NULL,0,0}
};
static cw_ValStruct_t cisco_ap_dot11h[]={
{CW_TYPE_BYTE,"enable",1,-1},
{CW_TYPE_BYTE,"count",1,-1},
{CW_TYPE_BYTE,"mode",1,-1},
{CW_TYPE_BYTE,"power",1,-1},
{NULL,NULL,0,0}
};
int cisco_in_ap_regulatory_domain(struct cw_ElemHandler *eh,
struct cw_ElemHandlerParams *params,
@ -521,8 +530,14 @@ static cw_ValStruct_t cisco_performance_profile_stru[]={
static cw_ValStruct_t cisco_phy_ht_cap_stru[]={
{CW_TYPE_WORD,"ht-cap-info",2,-1},
{CW_TYPE_WORD,"extendend-ht-cap-info",2,-1},
{CW_TYPE_BSTR16,"rest",-1,-1},
/* {CW_TYPE_WORD,"extendend-ht-cap-info",2,-1},*/
{CW_TYPE_BSTR16,"mcsrates-1",4,-1},
{CW_TYPE_BSTR16,"mcsrates-2",4,-1},
{CW_TYPE_BSTR16,"mcsrates-3",4,-1},
{CW_TYPE_BSTR16,"mcsrates-4",4,-1},
{CW_TYPE_BSTR16,"extended-ht-cap-info",2,-1},
{CW_TYPE_BSTR16,"tx-bf-cap",4,-1},
{CW_TYPE_BYTE,"asel-cap",1,-1},
{NULL,NULL,0,0}
};
@ -530,7 +545,13 @@ static cw_ValStruct_t cisco_phy_ht_control_stru[]={
{CW_TYPE_BYTE,"enable-ht",1,-1},
{CW_TYPE_BYTE,"cfg-type",1,-1,cfg_type},
{CW_TYPE_BYTE,"current-freq",1,-1},
{CW_TYPE_BSTR16,"rest",-1,-1},
{CW_TYPE_BSTR16,"rest",4,-1},
{CW_TYPE_BYTE,"frequency-bands-support",1,-1},
{CW_TYPE_BYTE,"ti-threshold",1,-1},
{CW_TYPE_BYTE,"flash-commit",1,-1}, //byte2
{CW_TYPE_BYTE,"cur-freq-is-dfs-channel",1,-1},
{CW_TYPE_BYTE,"channel-width",1,-1},
{CW_TYPE_BYTE,"ext-channel",1,-1},
{NULL,NULL,0,0}
};
@ -670,25 +691,25 @@ static cw_ValStruct_t cisco_add_wlan[]={
static cw_ValStruct_t cisco_add_wlan70[]={
{CW_TYPE_BYTE,"radio-id",1,-1},
{CW_TYPE_WORD,"wlan-capability",2,-1},
{CW_TYPE_WORD,"capwap80211/capability",2,-1},
{CW_TYPE_BYTE,"wlan-id",1,4},
{CW_TYPE_DWORD,"encryption-policy",4,5},
{CW_TYPE_DWORD,"cisco/encryption-policy",4,5},
{CW_TYPE_BSTR16,"wep-key",13,9},
{CW_TYPE_BYTE,"wep-key-index",1,41},
{CW_TYPE_BOOL,"wep-encryption",1,42},
{CW_TYPE_BSTR16,"cisco/wep-key",13,9},
{CW_TYPE_BYTE,"cisco/wep-key-index",1,41},
{CW_TYPE_BOOL,"cisco/wep-encryption",1,42},
{CW_TYPE_BYTE,"qos",1,324},
{CW_TYPE_WORD,"scan-defer-period",1,328},
{CW_TYPE_WORD,"scan-defer-time",1,330},
{CW_TYPE_BOOL,"broadcast-ssid",1,332},
{CW_TYPE_BOOL,"aironet-ie",1,333},
{CW_TYPE_BYTE,"hreap-local-switch",1,378},
{CW_TYPE_WORD,"session-timout",2,381},
{CW_TYPE_BYTE,"capwap80211/qos",1,324},
{CW_TYPE_WORD,"cisco/scan-defer-period",1,328},
{CW_TYPE_WORD,"cisco/scan-defer-time",1,330},
{CW_TYPE_BOOL,"cisco/broadcast-ssid",1,332},
{CW_TYPE_BOOL,"cisco/aironet-ie",1,333},
{CW_TYPE_BYTE,"cisco/hreap-local-switch",1,378},
{CW_TYPE_WORD,"cisco/session-timout",2,381},
{CW_TYPE_BYTE, "dtim-period",1,440},
{CW_TYPE_STR,"profile-name",30,441},
{CW_TYPE_STR, "ssid",33,474},
{CW_TYPE_BYTE, "cisco/dtim-period",1,440},
{CW_TYPE_STR,"cisco/profile-name",30,441},
{CW_TYPE_STR, "capwap80211/ssid",33,474},
{NULL,NULL,0,0}
@ -743,10 +764,18 @@ static int cisco_add_wlan_mkkey70(const char *pkey, uint8_t*data, int len, char
int wlan_id,radio_id;
radio_id = cw_get_byte(data);
wlan_id = cw_get_byte(data+4);
sprintf(dst,"radio.%d/wlan.%d/add-wlan",radio_id,wlan_id);
sprintf(dst,"radio.%d/wlan.%d",radio_id,wlan_id);
return 1;
}
static int mkkey_sig_payload(const char *pkey, uint8_t*data, int len, char *dst)
{
int id;
id = cw_get_byte(data+4);
sprintf(dst,"%s.%d",pkey,id);
return 0;
}
/*
static int cisco_patch_add_wlan70(uint8_t * data, void * st)
@ -1501,16 +1530,31 @@ static struct cw_ElemHandler handlers70[] = {
{
"Cisco Elem 132", /* name */
CISCO_ELEM_132, /* Element ID */
"Cisco AP 802.11h", /* name */
CISCO_ELEM_AP_DOT11H, /* Element ID */
CW_VENDOR_ID_CISCO,0, /* Vendor / Proto */
1,1024, /* min/max length */
CW_TYPE_BSTR16, /* type */
"cisco/elem132", /* Key */
5,5, /* min/max length */
CW_TYPE_STRUCT, /* type */
"cisco/80211h", /* Key */
cw_in_radio_generic, /* get */
cw_out_radio_generic, /* put */
NULL,
NULL,
cisco_ap_dot11h
},
{
"Cisco Boradcast SSID Mode", /* name */
CISCO_ELEM_BCAST_SSID_MODE, /* Element ID */
CW_VENDOR_ID_CISCO,0, /* Vendor / Proto */
1,1, /* min/max length */
CW_TYPE_BYTE, /* type */
"cisco/bcast-ssid-mode", /* Key */
cw_in_generic, /* get */
cw_out_generic /* put */
},
{
"Cisco Elem 33", /* name */
CISCO_ELEM_33, /* Element ID */
@ -1521,6 +1565,17 @@ static struct cw_ElemHandler handlers70[] = {
cw_in_generic, /* get */
cw_out_generic /* put */
},
{
"Cisco - Client Auto Hand-Off", /* name */
CISCO_ELEM_CLIENT_AUTO_HANDOFF, /* Element ID */
CW_VENDOR_ID_CISCO,0, /* Vendor / Proto */
1,1, /* min/max length */
CW_TYPE_BYTE, /* type */
"cisco/client-auto-handoff", /* Key */
cw_in_generic, /* get */
cw_out_generic /* put */
},
{
"Cisco Elem 15 - Channel Setting (?)", /* name */
@ -1685,7 +1740,7 @@ static struct cw_ElemHandler handlers70[] = {
CISCO_LWELEM_PHY_HT_CAP, /* Element ID */
CW_VENDOR_ID_CISCO,CW_PROTO_LWAPP, /* Vendor / Proto */
1,1024, /* min/max length */
26,26, /* min/max length */
CW_TYPE_STRUCT, /* type */
"cisco/phy-ht-cap", /* Key */
cw_in_radio_generic, /* get */
@ -2194,6 +2249,21 @@ static struct cw_ElemHandler handlers70[] = {
cw_out_generic /* put */
}
,
{
"CISCO Sig Payload", /* name */
CISCO_ELEM_SIG_PAYLOAD, /* Element ID */
CW_VENDOR_ID_CISCO, 0, /* Vendor / Proto */
1, 1024, /* min/max length */
CW_TYPE_BSTR16, /* type */
"cisco/sig-payload", /* Key */
cw_in_generic, /* get */
cw_out_generic, /* put */
mkkey_sig_payload, /* mkkey */
NULL,
}
,
{
"Dot11r WLC Mac And IP (Cisco)", /* name */
@ -2322,10 +2392,12 @@ static struct cw_ElemDef configuration_status_request_elements[] ={
{0, CW_VENDOR_ID_CISCO, CISCO_ELEM_RRM_LOAD, 0, 0},
{0, CW_VENDOR_ID_CISCO, CISCO_ELEM_33, 0, 0},
{0, CW_VENDOR_ID_CISCO, CISCO_ELEM_39, 0, 0},
{0, CW_VENDOR_ID_CISCO, CISCO_ELEM_BCAST_SSID_MODE, 0, 0},
{0, CW_VENDOR_ID_CISCO, CISCO_ELEM_PERFORMANCE_PROFILE, 0, 0},
{0, CW_VENDOR_ID_CISCO, CISCO_ELEM_SPAM_CFP_STATUS, 0, 0},
{0, CW_VENDOR_ID_CISCO, CISCO_ELEM_CLIENT_AUTO_HANDOFF, 0, 0},
{0, CW_VENDOR_ID_CISCO, CISCO_ELEM_81, 0, 0},
{0, CW_VENDOR_ID_CISCO, CISCO_ELEM_132, 0, 0},
{0, CW_VENDOR_ID_CISCO, CISCO_ELEM_AP_DOT11H, 0, 0},
{0, CW_VENDOR_ID_CISCO, CISCO_ELEM_145, 0, 0},
{0, CW_VENDOR_ID_CISCO, CISCO_ELEM_146, 0, 0},
{0, CW_VENDOR_ID_CISCO, CISCO_ELEM_153, 0, 0},
@ -2399,6 +2471,7 @@ static struct cw_ElemDef configuration_status_request_elements[] ={
static struct cw_ElemDef configuration_status_response_elements[] ={
{0, CW_VENDOR_ID_CISCO, CISCO_ELEM_BCAST_SSID_MODE, 0, 0},
{0, CW_VENDOR_ID_CISCO, CISCO_ELEM_15, 0, 0},
{0, CW_VENDOR_ID_CISCO, CISCO_ELEM_SUPPORTED_RATES, 0, 0},
{0, CW_VENDOR_ID_CISCO, CISCO_ELEM_19, 0, 0},
@ -2409,8 +2482,9 @@ static struct cw_ElemDef configuration_status_response_elements[] ={
{0, CW_VENDOR_ID_CISCO, CISCO_ELEM_39, 0, 0},
{0, CW_VENDOR_ID_CISCO, CISCO_ELEM_PERFORMANCE_PROFILE, 0, 0},
{0, CW_VENDOR_ID_CISCO, CISCO_ELEM_SPAM_CFP_STATUS, 0, 0},
{0, CW_VENDOR_ID_CISCO, CISCO_ELEM_CLIENT_AUTO_HANDOFF, 0, 0},
{0, CW_VENDOR_ID_CISCO, CISCO_ELEM_81, 0, 0},
{0, CW_VENDOR_ID_CISCO, CISCO_ELEM_132, 0, 0},
{0, CW_VENDOR_ID_CISCO, CISCO_ELEM_AP_DOT11H, 0, 0},
{0, CW_VENDOR_ID_CISCO, CISCO_ELEM_145, 0, 0},
{0, CW_VENDOR_ID_CISCO, CISCO_ELEM_146, 0, 0},
{0, CW_VENDOR_ID_CISCO, CISCO_ELEM_153, 0, 0},
@ -2459,12 +2533,15 @@ static struct cw_ElemDef configuration_status_response_elements[] ={
};
/*static uint16_t configuration_update_request_states[] = {CAPWAP_STATE_RUN,0};*/
static struct cw_ElemDef configuration_update_request_elements[] ={
{0, 0, CAPWAP_ELEM_RADIO_ADMINISTRATIVE_STATE, 0, 0},
{0, 0, CAPWAP_ELEM_RADIO_OPERATIONAL_STATE, 0, 0},
{0, CW_VENDOR_ID_CISCO, CISCO_ELEM_BCAST_SSID_MODE, 0, 0},
{0, CW_VENDOR_ID_CISCO, CISCO_ELEM_SPAM_VENDOR_SPECIFIC,0, CW_IGNORE},
{0, CW_VENDOR_ID_CISCO, CISCO_ELEM_15, 0, 0},
@ -2477,8 +2554,9 @@ static struct cw_ElemDef configuration_update_request_elements[] ={
{0, CW_VENDOR_ID_CISCO, CISCO_ELEM_39, 0, 0},
{0, CW_VENDOR_ID_CISCO, CISCO_ELEM_PERFORMANCE_PROFILE, 0, 0},
{0, CW_VENDOR_ID_CISCO, CISCO_ELEM_SPAM_CFP_STATUS, 0, 0},
{0, CW_VENDOR_ID_CISCO, CISCO_ELEM_CLIENT_AUTO_HANDOFF, 0, 0},
{0, CW_VENDOR_ID_CISCO, CISCO_ELEM_81, 0, 0},
{0, CW_VENDOR_ID_CISCO, CISCO_ELEM_132, 0, 0},
{0, CW_VENDOR_ID_CISCO, CISCO_ELEM_AP_DOT11H, 0, 0},
{0, CW_VENDOR_ID_CISCO, CISCO_ELEM_145, 0, 0},
{0, CW_VENDOR_ID_CISCO, CISCO_ELEM_146, 0, 0},
{0, CW_VENDOR_ID_CISCO, CISCO_ELEM_153, 0, 0},
@ -2532,6 +2610,8 @@ static struct cw_ElemDef configuration_update_request_elements[] ={
// {0, CW_VENDOR_ID_CISCO, CISCO_ELEM_AP_VENUE_SETTINGS, 0, 0},
{0, CW_VENDOR_ID_CISCO, CISCO_ELEM_80211_ASSOC_LIMIT, 0, 0},
{0, CW_VENDOR_ID_CISCO, CISCO_ELEM_SIG_TOGGLE, 0, 0},
{0, CW_VENDOR_ID_CISCO, CISCO_ELEM_SIG_PAYLOAD, 0, 0},
{0, CW_VENDOR_ID_CISCO, CISCO_ELEM_MAC_OPERATION, 0, 0},
{0, CW_VENDOR_ID_CISCO, CISCO_ELEM_TX_POWER, 0, 0},