From 5b1690bfbf4217d2a8714e3a049712d06c5a4cfe Mon Sep 17 00:00:00 2001 From: 7u83 <7u83@mail.ru> Date: Fri, 26 Aug 2022 21:12:39 +0200 Subject: [PATCH] Cisco RRM element implemented --- src/ac/config.ckv | 14 ++++++------- src/mod/cisco/capwap_cisco.h | 3 +++ src/mod/cisco/cisco_actions.c | 28 +++++++++++++++++++++++++ src/mod/cisco/cisco_out_radio_generic.c | 4 ++-- 4 files changed, 40 insertions(+), 9 deletions(-) diff --git a/src/ac/config.ckv b/src/ac/config.ckv index 3b043975..e4e822d2 100644 --- a/src/ac/config.ckv +++ b/src/ac/config.ckv @@ -59,17 +59,17 @@ capwap/ac-descriptor/station-limit: 1000 capwap/ac-descriptor/stations: 0 -capwap/control-ip-address/address.0: 192.168.0.24 +capwap/control-ip-address/address.0: 192.168.0.14 # # CAPWAP Timers # -capwap/timers/change-state-pending-timer: Word: 3 -capwap/timers/data-check-timer: Word: 10 -capwap/timers/echo-interval :Byte: 30 -capwap/timers/max-discovery-interval :Byte: 10 - - +capwap/timers/change-state-pending-timer: 3 +capwap/timers/data-check-timer: 10 +capwap/timers/echo-interval: 30 +capwap/timers/max-discovery-interval: 10 +capwap/decryption-error-report-period: 120 +capwap/idle-timeout: 300 diff --git a/src/mod/cisco/capwap_cisco.h b/src/mod/cisco/capwap_cisco.h index 0867e538..1cf3b7b0 100644 --- a/src/mod/cisco/capwap_cisco.h +++ b/src/mod/cisco/capwap_cisco.h @@ -55,6 +55,9 @@ #define CISCO_ELEM_22 22 /* 22 */ #define CISCO_ELEM_24 24 /* 24 */ +#define CISCO_ELEM_RRM_LOAD 25 /* 25 */ + + #define CW_CISCO_80211_DELETE_WLAN LW_ELEM_80211_DELETE_WLAN /* 28 */ #define CW_CISCO_MWAR_NAME LW_ELEM_AC_NAME /* 31 */ diff --git a/src/mod/cisco/cisco_actions.c b/src/mod/cisco/cisco_actions.c index f51a3a3b..0277b26a 100644 --- a/src/mod/cisco/cisco_actions.c +++ b/src/mod/cisco/cisco_actions.c @@ -451,6 +451,13 @@ static cw_ValStruct_t cisco_lw_radio_module_info_stru[]={ {NULL,NULL,0,0} }; +static cw_ValStruct_t cisco_rrm_load_stru[]={ + {CW_TYPE_BYTE,"rx-load",1,-1}, + {CW_TYPE_BYTE,"tx-load",1,-1}, + {CW_TYPE_BYTE,"cca-load",1,-1}, + {NULL,NULL,0,0} +}; + static cw_ValStruct_t cisco_ap_qos[]={ @@ -1462,6 +1469,22 @@ static struct cw_ElemHandler handlers70[] = { }, + { + "Cisco Elem 25 ", /* name */ + CISCO_ELEM_RRM_LOAD, /* Element ID */ + CW_VENDOR_ID_CISCO,0, /* Vendor / Proto */ + 4,4, /* min/max length */ + CW_TYPE_STRUCT, /* type */ + "cisco/rrm", /* Key */ + cw_in_radio_generic, /* get */ + cw_out_radio_generic, /* put */ + NULL, + NULL, + cisco_rrm_load_stru, + + }, + + { @@ -2194,6 +2217,7 @@ static struct cw_ElemDef configuration_status_request_elements[] ={ {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_24, 0, 0}, + {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_47, 0, 0}, @@ -2278,6 +2302,7 @@ static struct cw_ElemDef configuration_status_response_elements[] ={ {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_24, 0, 0}, + {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_47, 0, 0}, @@ -2341,6 +2366,7 @@ static struct cw_ElemDef configuration_update_request_elements[] ={ {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_24, 0, 0}, + {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_47, 0, 0}, @@ -2438,6 +2464,8 @@ static struct cw_ElemDef configuration_update_request_elements[] ={ static struct cw_ElemDef wtp_event_request_elements[] ={ {0, CW_VENDOR_ID_CISCO, CISCO_ELEM_SPAM_VENDOR_SPECIFIC,0, CW_IGNORE}, {0, CW_VENDOR_ID_CISCO, CISCO_ELEM_ADD_WLAN, 0, CW_IGNORE}, + {0, CW_VENDOR_ID_CISCO, CISCO_ELEM_RRM_LOAD, 0, 0}, + {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}, diff --git a/src/mod/cisco/cisco_out_radio_generic.c b/src/mod/cisco/cisco_out_radio_generic.c index e2c4badb..3a4ee85b 100644 --- a/src/mod/cisco/cisco_out_radio_generic.c +++ b/src/mod/cisco/cisco_out_radio_generic.c @@ -32,8 +32,8 @@ int cisco_out_radio_info(struct cw_ElemHandler * handler, struct cw_ElemHandlerP { if (! (params->msgdata->type & 1) ){ int start = params->msgset->header_len(handler); - cw_put_byte(dst+start,0); - cw_put_dword(dst+start+1,7); + cw_set_byte(dst+start,0); + cw_set_dword(dst+start+1,7); return params->msgset->write_header(handler,dst,5); } return cw_out_radio_generic(handler,params,dst);