From 3dbca93a889be4e4022b57718c272a948a60be4e Mon Sep 17 00:00:00 2001
From: "7u83@mail.ru" <7u83@mail.ru@noemail.net>
Date: Thu, 19 Apr 2018 09:03:18 +0000
Subject: [PATCH] More Cisco stuff
FossilOrigin-Name: f5d524e032376c67bfe637ce08b701e55e4be62ac7ee960b0daacda910cf1d2f
---
libcw.project | 1 +
src/ac/config.ktv | 2 +-
src/cw/Makefile | 1 +
src/cw/cw_ktv_save.c | 58 +++++++
src/cw/ktv.h | 3 +-
src/mod/capwap/capwap_actions_ac.c | 13 ++
src/mod/cisco/capwap_cisco.h | 4 +-
src/mod/cisco/cisco_actions_ac.c | 115 +++++++++++-
src/mod/cisco/cisco_actions_wtp.c | 4 +-
src/mod/cisco/lwapp_cisco.h | 3 +-
src/mod/fortinet/fortinet_actions_ac.c | 2 +-
src/mod/fortinet/fortinet_actions_wtp.c | 4 +-
src/wtp/cisco.ktv | 222 +++++++++++++++---------
src/wtp/run.c | 23 ++-
src/wtp/wtp_main.c | 11 +-
15 files changed, 370 insertions(+), 96 deletions(-)
diff --git a/libcw.project b/libcw.project
index 175b45f5..724d2977 100644
--- a/libcw.project
+++ b/libcw.project
@@ -289,6 +289,7 @@
+
diff --git a/src/ac/config.ktv b/src/ac/config.ktv
index e2caf860..b9a3eb97 100644
--- a/src/ac/config.ktv
+++ b/src/ac/config.ktv
@@ -38,7 +38,7 @@ result-code :Dword: 0
-ac-name:Bstr16:"TubesAC"
+ac-name:Bstr16:"CiscoAC73"
#capwap-control-ip-address/address.0:IPAddress:1192.168.0.14
capwap-control-ip-address/address.0:IPAddress:192.168.0.14
diff --git a/src/cw/Makefile b/src/cw/Makefile
index 6d73db87..05970201 100644
--- a/src/cw/Makefile
+++ b/src/cw/Makefile
@@ -131,6 +131,7 @@ KTVSRC=\
cw_ktv_write_struct.c\
cw_ktv_std_types.c\
cw_ktv_base_exists.c\
+ cw_ktv_save.c\
LWSRC=\
diff --git a/src/cw/cw_ktv_save.c b/src/cw/cw_ktv_save.c
index e69de29b..b6e4f869 100644
--- a/src/cw/cw_ktv_save.c
+++ b/src/cw/cw_ktv_save.c
@@ -0,0 +1,58 @@
+
+#include "ktv.h"
+
+
+static int write_str(FILE *outfile,const char *str)
+{
+ if ( (strchr(str,'\\')!=NULL) || (strchr(str,'"')!=NULL) || (strchr(str,'\n')!=NULL)){
+ fprintf(outfile,"\"");
+
+ while (*str != 0){
+ switch(*str){
+ case '\n':
+ fprintf(outfile,"\\n");
+ break;
+ case '\\':
+ fprintf(outfile,"\\\\");
+ break;
+ case '"':
+ fprintf(outfile,"\\\"");
+ break;
+ default:
+ fprintf(outfile,"%c",*str);
+ break;
+ }
+ str++;
+ }
+
+ fprintf(outfile,"\"");
+ return 1;
+ }
+
+ fprintf(outfile,"%s",str);
+ return 1;
+}
+
+int cw_ktv_save(mavl_t ktvstore, const char * filename){
+ mavliter_t it;
+ FILE * outfile;
+
+ outfile = fopen(filename,"w");
+ if (outfile == NULL)
+ return 0;
+
+ mavliter_init(&it,ktvstore);
+ mavliter_foreach(&it){
+ cw_KTV_t * val;
+ char buf[4000];
+ val = mavliter_get(&it);
+ val->type->to_str(val,buf,4000);
+ write_str(outfile,val->key);
+ fprintf(outfile," :%s: ",val->type->name);
+ write_str(outfile,buf);
+ fprintf(outfile,"\n");
+
+ }
+ fclose(outfile);
+ return 1;
+}
\ No newline at end of file
diff --git a/src/cw/ktv.h b/src/cw/ktv.h
index 7d0045d6..003cf1a7 100644
--- a/src/cw/ktv.h
+++ b/src/cw/ktv.h
@@ -172,7 +172,8 @@ char * cw_ktv_get_str(mavl_t ktv,const char *key, char * def);
int cw_ktv_idx_get(mavl_t ktv, const char *key);
cw_KTV_t * cw_ktv_base_exists(mavl_t ktvstore, const char *basekey);
-
+int cw_ktv_save(mavl_t ktvstore, const char * filename);
+
extern const cw_Type_t * cw_ktv_std_types[];
#define CW_KTV_STD_TYPES cw_ktv_std_types
diff --git a/src/mod/capwap/capwap_actions_ac.c b/src/mod/capwap/capwap_actions_ac.c
index 382a8d30..a74e70cf 100644
--- a/src/mod/capwap/capwap_actions_ac.c
+++ b/src/mod/capwap/capwap_actions_ac.c
@@ -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 */
+ },
{
diff --git a/src/mod/cisco/capwap_cisco.h b/src/mod/cisco/capwap_cisco.h
index 89978ca4..810c1be4 100644
--- a/src/mod/cisco/capwap_cisco.h
+++ b/src/mod/cisco/capwap_cisco.h
@@ -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
diff --git a/src/mod/cisco/cisco_actions_ac.c b/src/mod/cisco/cisco_actions_ac.c
index 66e65f29..f4208fca 100644
--- a/src/mod/cisco/cisco_actions_ac.c
+++ b/src/mod/cisco/cisco_actions_ac.c
@@ -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}
diff --git a/src/mod/cisco/cisco_actions_wtp.c b/src/mod/cisco/cisco_actions_wtp.c
index dc664e02..080206e8 100644
--- a/src/mod/cisco/cisco_actions_wtp.c
+++ b/src/mod/cisco/cisco_actions_wtp.c
@@ -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,*/
diff --git a/src/mod/cisco/lwapp_cisco.h b/src/mod/cisco/lwapp_cisco.h
index 54ccec55..3ce86055 100644
--- a/src/mod/cisco/lwapp_cisco.h
+++ b/src/mod/cisco/lwapp_cisco.h
@@ -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
diff --git a/src/mod/fortinet/fortinet_actions_ac.c b/src/mod/fortinet/fortinet_actions_ac.c
index 1f333b93..11110163 100644
--- a/src/mod/fortinet/fortinet_actions_ac.c
+++ b/src/mod/fortinet/fortinet_actions_ac.c
@@ -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,
diff --git a/src/mod/fortinet/fortinet_actions_wtp.c b/src/mod/fortinet/fortinet_actions_wtp.c
index 94db52e3..5741a052 100644
--- a/src/mod/fortinet/fortinet_actions_wtp.c
+++ b/src/mod/fortinet/fortinet_actions_wtp.c
@@ -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,
diff --git a/src/wtp/cisco.ktv b/src/wtp/cisco.ktv
index 04c303b0..4b7dd6bc 100644
--- a/src/wtp/cisco.ktv
+++ b/src/wtp/cisco.ktv
@@ -1,28 +1,154 @@
-cisco/ssl-certfile:Str:"../../ssl/certs/wtpc.crt"
-cisco/ssl-keyfile:Str:"../../ssl/certs/wtpc.key"
-cisco/ssl-cipher:Str:ALL
-
-
-
-discovery-type :Byte: 0
-
+ac-descriptor/dtls-policy :Byte: 0
+ac-descriptor/hardware/vendor :Dword: 4232704
+ac-descriptor/hardware/version :Bstr16: .x01000001
+ac-descriptor/max-wtps :Word: 200
+ac-descriptor/r-mac-field :Byte: 1
+ac-descriptor/reserved1 :Byte: 0
+ac-descriptor/security :Byte: 2
+ac-descriptor/software/vendor :Dword: 4232704
+ac-descriptor/software/version :Bstr16: .x07036500
+ac-descriptor/station-limit :Word: 1000
+ac-descriptor/stations :Word: 0
+ac-name :Bstr16: CiscoAC73
+ac-name-with-priority/TubesAC :Byte: 3
+ac-name-with-priority/ac2 :Byte: 5
+capwap-control-ip-address/address.0 :IPAddress: 192.168.0.173
+capwap-control-ip-address/address.1 :IPAddress: d96c:4c0a:da6c:4c0a:db6c:4c0a:dc6c:4c0a
+capwap-control-ip-address/address.2 :IPAddress: 192.168.0.173
+capwap-control-ip-address/wtps.0 :Word: 0
+capwap-control-ip-address/wtps.1 :Word: 10
+capwap-control-ip-address/wtps.2 :Word: 1
capwap-local-ip-address :IPAddress: 192.168.0.14
+capwap-timers/echo-interval :Byte: 30
+capwap-timers/max-discovery-interval :Byte: 10
+capwap-timers/min-discovery-interval :Byte: 0
+cisco/ac-ip-addr-with-index.0 :IPAddress: 0.0.0.0
+cisco/ac-ip-addr-with-index.1 :IPAddress: 9.9.9.9
+cisco/ac-ip-addr-with-index.2 :IPAddress: 8.8.8.8
+cisco/ac-name-with-index.0 :Bstr16: CiscoAC73
+cisco/ac-name-with-index.1 :Bstr16: nudelnudel
+cisco/ac-name-with-index.2 :Bstr16: nadelnalde
+cisco/ap-failover-priority :Byte: 4
cisco/ap-group-name :Bstr16: default-group
+cisco/ap-led-state-config/led-state :Byte: 1
+cisco/ap-led-state-config/save-flag :Byte: 1
+cisco/ap-log-facility :Byte: 0
+cisco/ap-regulatory-domain.0/code0 :Byte: 0
+cisco/ap-regulatory-domain.0/code1 :Byte: 1
+cisco/ap-regulatory-domain.0/set :Bool: true
+cisco/ap-regulatory-domain.0/slot :Byte: 0
+cisco/ap-regulatory-domain.1/code0 :Byte: 0
+cisco/ap-regulatory-domain.1/code1 :Byte: 1
+cisco/ap-regulatory-domain.1/set :Bool: true
+cisco/ap-regulatory-domain.1/slot :Byte: 1
+cisco/ap-telnet-ssh/ssh :Bool: false
+cisco/ap-telnet-ssh/telnet :Bool: false
+cisco/ap-timesync/timestamp :Dword: 1524133283
+cisco/ap-timesync/type :Byte: 0
cisco/board-data-options :Dword: 16777217
cisco/lw_path_mtu/len :Word: 1095
cisco/lw_path_mtu/max :Word: 1485
cisco/mwar-addr/address :IPAddress: 192.168.0.180
cisco/mwar-addr/mwar-type :Byte: 1
cisco/mwar-addr/unknown :Word: 0
-
-location-data :Bstr16: default location
-maximum-message-length :Word: 14000
+cisco/mwar-hash-value :Bstr16: 25f312452fcb0a908007304aa201d175d0516d7a
+cisco/mwar-type :Byte: 0
+cisco/ssl-certfile :Str: ../../ssl/certs/wtpc.crt
+cisco/ssl-cipher :Str: ALL
+cisco/ssl-keyfile :Str: ../../ssl/certs/wtpc.key
+discovery-type :Byte: 0
+idle-timeout :Dword: 300
+location-data :Bstr16: "superposition\"tobias"
+maximum-message-length :Word: 4096
+radio.0/admin-state :Byte: 1
+radio.0/cisco-multi-domain-capability/first-channel :Word: 1
+radio.0/cisco-multi-domain-capability/max-tx-power-level :Word: 65535
+radio.0/cisco-multi-domain-capability/number-of-channels :Word: 13
+radio.0/cisco-multi-domain-capability/reserved :Byte: 1
+radio.0/cisco/air-space-capability :Byte: 0
+radio.0/cisco/mac-operation/fragmentation-threshold :Word: 2346
+radio.0/cisco/mac-operation/long-retry :Byte: 4
+radio.0/cisco/mac-operation/reserved :Byte: 1
+radio.0/cisco/mac-operation/rts-threshold :Word: 2347
+radio.0/cisco/mac-operation/rx-msdu-lifetime :Dword: 512
+radio.0/cisco/mac-operation/short-retry :Byte: 7
+radio.0/cisco/mac-operation/tx-msdu-lifetime :Dword: 512
+radio.0/cisco/multi-domain-capability/first-channel :Word: 1
+radio.0/cisco/multi-domain-capability/max-tx-power-level :Word: 20
+radio.0/cisco/multi-domain-capability/number-of-channels :Word: 13
+radio.0/cisco/multi-domain-capability/reserved :Byte: 1
+radio.0/cisco/tx-power/current-tx-power :Word: 0
+radio.0/cisco/tx-power/reserved :Byte: 1
+radio.0/cisco/wtp-radio-config/beacon-period :Word: 100
+radio.0/cisco/wtp-radio-config/bss-id :Bstr16: .x04fe7f499b90
+radio.0/cisco/wtp-radio-config/cfg-period :Byte: 4
+radio.0/cisco/wtp-radio-config/cfg-type :Byte: 1
+radio.0/cisco/wtp-radio-config/cfp-maximum-duration :Word: 60
+radio.0/cisco/wtp-radio-config/country-str1 :Bstr16: .x444500
+radio.0/cisco/wtp-radio-config/country-str2 :Bstr16: DE
+radio.0/cisco/wtp-radio-config/gpr-period :Byte: 10
+radio.0/cisco/wtp-radio-config/max-stations :Byte: 200
+radio.0/cisco/wtp-radio-config/occupancy-limit :Word: 100
+radio.0/cisco/wtp-radio-config/reg :Dword: 65536
+radio.0/decryption-error-report-period :Word: 120
+radio.0/operational-state/cause :Byte: 0
+radio.0/operational-state/state :Byte: 2
+radio.0/rate_set :Bstr16: .x82848b960c1218243048606c
+radio.0/wtp-radio-information :Dword: 1
+radio.1/admin-state :Byte: 1
+radio.1/cisco-multi-domain-capability/first-channel :Word: 36
+radio.1/cisco-multi-domain-capability/max-tx-power-level :Word: 65535
+radio.1/cisco-multi-domain-capability/number-of-channels :Word: 16
+radio.1/cisco-multi-domain-capability/reserved :Byte: 1
+radio.1/cisco/air-space-capability :Byte: 0
+radio.1/cisco/mac-operation/fragmentation-threshold :Word: 2346
+radio.1/cisco/mac-operation/long-retry :Byte: 4
+radio.1/cisco/mac-operation/reserved :Byte: 1
+radio.1/cisco/mac-operation/rts-threshold :Word: 2347
+radio.1/cisco/mac-operation/rx-msdu-lifetime :Dword: 512
+radio.1/cisco/mac-operation/short-retry :Byte: 7
+radio.1/cisco/mac-operation/tx-msdu-lifetime :Dword: 512
+radio.1/cisco/multi-domain-capability/first-channel :Word: 36
+radio.1/cisco/multi-domain-capability/max-tx-power-level :Word: 20
+radio.1/cisco/multi-domain-capability/number-of-channels :Word: 4
+radio.1/cisco/multi-domain-capability/reserved :Byte: 1
+radio.1/cisco/tx-power/current-tx-power :Word: 0
+radio.1/cisco/tx-power/reserved :Byte: 1
+radio.1/cisco/wtp-radio-config/beacon-period :Word: 100
+radio.1/cisco/wtp-radio-config/bss-id :Bstr16: .x04fe7f499b90
+radio.1/cisco/wtp-radio-config/cfg-period :Byte: 4
+radio.1/cisco/wtp-radio-config/cfg-type :Byte: 1
+radio.1/cisco/wtp-radio-config/cfp-maximum-duration :Word: 60
+radio.1/cisco/wtp-radio-config/country-str1 :Bstr16: .x444500
+radio.1/cisco/wtp-radio-config/country-str2 :Bstr16: DE
+radio.1/cisco/wtp-radio-config/gpr-period :Byte: 10
+radio.1/cisco/wtp-radio-config/max-stations :Byte: 200
+radio.1/cisco/wtp-radio-config/occupancy-limit :Word: 100
+radio.1/cisco/wtp-radio-config/reg :Dword: 65536
+radio.1/decryption-error-report-period :Word: 120
+radio.1/operational-state/cause :Byte: 0
+radio.1/operational-state/state :Byte: 2
+radio.1/rate_set :Bstr16: .x8c129824b048606c
+radio.1/wtp-radio-information :Dword: 2
+radio.255/admin-state :Byte: 1
+radio.255/operational-state/cause :Byte: 0
+radio.255/operational-state/state :Byte: 2
+radio/0/cisco/regulatory-domain/code0 :Byte: 0
+radio/0/cisco/regulatory-domain/code1 :Byte: 1
+radio/0/cisco/regulatory-domain/set :Bool: true
+radio/0/cisco/regulatory-domain/slot :Byte: 0
radio/0/wtp-radio-information :Dword: 1
radio/1/wtp-radio-information :Dword: 2
+result-code :Dword: 0
session-id :Bstr16: .x00006215
+statistics-timer :Word: 180
+tube.0/main :Byte: 12
+tube.0/zumsel :Byte: 12
+tube.1/main :Byte: 12
+tube.1/zumsel :Byte: 12
wtp-board-data/board-id :Bstr16: .x0000
wtp-board-data/mac-address :Bstr16: .x902b34de9ef1
-wtp-board-data/model-no :Bstr16: AIR-LAP1142N-E-K9
+wtp-board-data/model-no :Bstr16: AIR-LAP1142N-E-K9
wtp-board-data/serial-no :Bstr16: FCZ1406W232
wtp-board-data/vendor :Dword: 4232704
wtp-descriptor/bootloader/vendor :Dword: 4232704
@@ -33,17 +159,10 @@ wtp-descriptor/max-radios :Byte: 2
wtp-descriptor/radios-in-use :Byte: 2
wtp-descriptor/software/vendor :Dword: 4232704
wtp-descriptor/software/version :Bstr16: .x06036500
+wtp-fallback :Byte: 1
wtp-frame-tunnel-mode :Byte: 4
wtp-mac-type :Byte: 1
-wtp-name :Bstr16: WFAT-01
-
-
-capwap-timers/max-discovery-interval:Byte:0
-capwap-timers/min-discovery-interval:Byte:0
-capwap-timers/echo-interval:Byte:3
-
-ac-name-with-priority/TubesAC:Byte:3
-
+wtp-name :Bstr16: Banane
wtp-reboot-statistics/ac-initiated-count :Word: 2
wtp-reboot-statistics/hw-failure-count :Word: 0
wtp-reboot-statistics/last-failure-type :Byte: 0
@@ -52,64 +171,3 @@ wtp-reboot-statistics/other-failure-count :Word: 13
wtp-reboot-statistics/reboot-count :Word: 0
wtp-reboot-statistics/sw-failure-count :Word: 0
wtp-reboot-statistics/unknown-failure-count :Word: 0
-
-
-
-radio/0/cisco/regulatory-domain/code0 :Byte: 0
-radio/0/cisco/regulatory-domain/code1 :Byte: 1
-radio/0/cisco/regulatory-domain/set :Bool: true
-radio/0/cisco/regulatory-domain/slot :Byte: 0
-
-
-cisco/ap-regulatory-domain.0/code0 :Byte: 0
-cisco/ap-regulatory-domain.0/code1 :Byte: 1
-cisco/ap-regulatory-domain.0/set :Bool: true
-cisco/ap-regulatory-domain.0/slot :Byte: 0
-cisco/ap-regulatory-domain.1/code0 :Byte: 0
-cisco/ap-regulatory-domain.1/code1 :Byte: 1
-cisco/ap-regulatory-domain.1/set :Bool: true
-cisco/ap-regulatory-domain.1/slot :Byte: 1
-
-
-tube.0/main : Byte : 12
-tube.0/zumsel : Byte : 12
-tube.1/main : Byte : 12
-tube.1/zumsel : Byte : 12
-
-
-ac-name-with-priority/TubesAC:Byte:3
-ac-name-with-priority/"ac2":Byte:05
-
-radio.0/cisco-multi-domain-capability/first-channel :Word: 1
-radio.0/cisco-multi-domain-capability/max-tx-power-level :Word: 65535
-radio.0/cisco-multi-domain-capability/number-of-channels :Word: 13
-radio.0/cisco-multi-domain-capability/reserved :Byte: 1
-radio.0/cisco/wtp-radio-config/beacon-period :Word: 0
-radio.0/cisco/wtp-radio-config/bss-id :Bstr16: .x04fe7f499b90
-radio.0/cisco/wtp-radio-config/cfg-period :Byte: 0
-radio.0/cisco/wtp-radio-config/cfg-type :Byte: 1
-radio.0/cisco/wtp-radio-config/cfp-maximum-duration :Word: 0
-radio.0/cisco/wtp-radio-config/country-str1 :Bstr16: "DE "
-radio.0/cisco/wtp-radio-config/country-str2 :Bstr16: "DE "
-radio.0/cisco/wtp-radio-config/gpr-period :Byte: 0
-radio.0/cisco/wtp-radio-config/max-stations :Byte: 0
-radio.0/cisco/wtp-radio-config/occupancy-limit :Word: 0
-radio.0/cisco/wtp-radio-config/reg :Dword: 65536
-radio.1/cisco-multi-domain-capability/first-channel :Word: 36
-radio.1/cisco-multi-domain-capability/max-tx-power-level :Word: 65535
-radio.1/cisco-multi-domain-capability/number-of-channels :Word: 16
-radio.1/cisco-multi-domain-capability/reserved :Byte: 1
-radio.1/cisco/wtp-radio-config/beacon-period :Word: 0
-radio.1/cisco/wtp-radio-config/bss-id :Bstr16: .x04fe7f499b90
-radio.1/cisco/wtp-radio-config/cfg-period :Byte: 0
-radio.1/cisco/wtp-radio-config/cfg-type :Byte: 1
-radio.1/cisco/wtp-radio-config/cfp-maximum-duration :Word: 0
-radio.1/cisco/wtp-radio-config/country-str1 :Bstr16: DE
-radio.1/cisco/wtp-radio-config/country-str2 :Bstr16: DE
-radio.1/cisco/wtp-radio-config/gpr-period :Byte: 0
-radio.1/cisco/wtp-radio-config/max-stations :Byte: 0
-radio.1/cisco/wtp-radio-config/occupancy-limit :Word: 0
-radio.1/cisco/wtp-radio-config/reg :Dword: 65536
-
-radio.0/wtp-radio-information :Dword: 1
-radio.1/wtp-radio-information :Dword: 2
diff --git a/src/wtp/run.c b/src/wtp/run.c
index 33b468ce..376da582 100644
--- a/src/wtp/run.c
+++ b/src/wtp/run.c
@@ -116,7 +116,23 @@ static void do_update(struct conn * conn)
}
+void clean_cfg(mavl_t cfg)
+{
+ char key[CW_KTV_MAX_KEY_LEN];
+ cw_KTV_t search;
+ int i;
+ int max;
+ max = cw_ktv_idx_get(cfg,"radio");
+ for (i=0;iremote_cfg);
+ mavl_merge(conn->local_cfg,conn->remote_cfg);
+ cw_ktv_save(conn->local_cfg,"cisco.ktv");
+
/*cw_dbg(DBG_X,"We hav a message processed");*/
diff --git a/src/wtp/wtp_main.c b/src/wtp/wtp_main.c
index f06a3852..c69050ba 100644
--- a/src/wtp/wtp_main.c
+++ b/src/wtp/wtp_main.c
@@ -142,6 +142,10 @@ int main (int argc, char **argv)
cw_dbg_ktv_dump(global_cfg,DBG_CFG_DMP,"----- global cfg start -----","","----- global cfg end -----");
+
+
+ /*clean_cfg(global_cfg);*/
+
/* create a connection object */
conn = conn_create_noq(-1, NULL);
@@ -216,11 +220,16 @@ exit(0);
}
}
*/
+ mavl_del_all(conn->remote_cfg);
join(conn,&dis);
+ clean_cfg(conn->remote_cfg);
mavl_merge(conn->local_cfg,conn->remote_cfg);
-
+ mavl_del_all(conn->remote_cfg);
configure(conn);
+ clean_cfg(conn->remote_cfg);
+ mavl_merge(conn->local_cfg,conn->remote_cfg);
+
run(conn);
cw_discovery_free_results(&dis);