diff --git a/actube.workspace b/actube.workspace
index b8870938..c63c2d68 100644
--- a/actube.workspace
+++ b/actube.workspace
@@ -3,8 +3,8 @@
-
-
+
+
diff --git a/src/ac/wtpman.c b/src/ac/wtpman.c
index b42b6626..6b89d308 100644
--- a/src/ac/wtpman.c
+++ b/src/ac/wtpman.c
@@ -419,7 +419,7 @@ static void * wtpman_run(void *arg)
- conn->capwap_state = CW_STATE_RUN;
+ conn->capwap_state = CAPWAP_STATE_RUN;
/*
// XXX testing ...
// DBGX("Cofig to sql", "");
@@ -432,7 +432,7 @@ static void * wtpman_run(void *arg)
reset_echointerval_timer(wtpman);
rc = 0;
- while (wtpman->conn->capwap_state == CW_STATE_RUN) {
+ while (wtpman->conn->capwap_state == CAPWAP_STATE_RUN) {
rc = cw_read_messages(wtpman->conn);
if (rc < 0) {
if (errno != EAGAIN)
diff --git a/src/cw/conn_process_packet.c b/src/cw/conn_process_packet.c
index 1be6c074..d5ae821c 100644
--- a/src/cw/conn_process_packet.c
+++ b/src/cw/conn_process_packet.c
@@ -425,9 +425,9 @@ static int process_elements(struct conn *conn, uint8_t * rawmsg, int len,
mavl_destroy(mand_found);
- cw_dbg_ktv_dump(conn->remote_cfg,DBG_CFG_DMP,
+/* cw_dbg_ktv_dump(conn->remote_cfg,DBG_CFG_DMP,
" *** Remote CFG dump ***", "CFG:", " *** End of remote CFG dump");
-
+*/
if (message->postprocess){
diff --git a/src/cw/cw_put_msg.c b/src/cw/cw_put_msg.c
index 7296e1c3..2ddd8c47 100644
--- a/src/cw/cw_put_msg.c
+++ b/src/cw/cw_put_msg.c
@@ -46,7 +46,7 @@ int cw_put_msg(struct conn *conn, uint8_t * rawout)
int len,l;
cw_dbg(DBG_INFO, "Number of elements in ktv: %d",conn->local_cfg->count);
- cw_dbg_ktv_dump(conn->local_cfg,DBG_CFG_DMP,"Local CFG","LOCAL:","End Local CFG");
+/* cw_dbg_ktv_dump(conn->local_cfg,DBG_CFG_DMP,"Local CFG","LOCAL:","End Local CFG");*/
/* rawout is already initialized, so we can get
* msg type from buffer */
diff --git a/src/mod/capwap/capwap_actions_ac.c b/src/mod/capwap/capwap_actions_ac.c
index efb42880..382a8d30 100644
--- a/src/mod/capwap/capwap_actions_ac.c
+++ b/src/mod/capwap/capwap_actions_ac.c
@@ -464,10 +464,10 @@ static struct cw_ElemDef configuration_status_response_elements[] ={
static int configuration_update_request_states[] = {CAPWAP_STATE_RUN,0};
static struct cw_ElemDef configuration_update_request_elements[] ={
- {0,0,CAPWAP_ELEM_AC_NAME, 1, 0},
- {0,0,CAPWAP_ELEM_RADIO_ADMINISTRATIVE_STATE, 1, 0},
- {0,0,CAPWAP_ELEM_STATISTICS_TIMER, 1, 0},
- {0,0,CAPWAP_ELEM_WTP_REBOOT_STATISTICS, 1, 0},
+
+ {0,0,CAPWAP_ELEM_RADIO_ADMINISTRATIVE_STATE, 0, 0},
+ {0,0,CAPWAP_ELEM_STATISTICS_TIMER, 0, 0},
+
{0,0,CAPWAP_ELEM_VENDOR_SPECIFIC_PAYLOAD, 0, CW_IGNORE},
{0,0,0,0,0}
@@ -477,18 +477,12 @@ static struct cw_ElemDef configuration_update_request_elements[] ={
static int echo_request_states[] = {CAPWAP_STATE_RUN,0};
static struct cw_ElemDef echo_request_elements[] ={
- {0,0,CAPWAP_ELEM_AC_NAME, 1, 0},
- {0,0,CAPWAP_ELEM_RADIO_ADMINISTRATIVE_STATE, 1, 0},
- {0,0,CAPWAP_ELEM_STATISTICS_TIMER, 1, 0},
- {0,0,CAPWAP_ELEM_WTP_REBOOT_STATISTICS, 1, 0},
-
{0,0,CAPWAP_ELEM_VENDOR_SPECIFIC_PAYLOAD, 0, CW_IGNORE},
{0,0,0,0,0}
};
static int echo_response_states[] = {CAPWAP_STATE_RUN,0};
static struct cw_ElemDef echo_response_elements[] ={
-
{0,0,0,0,0}
};
diff --git a/src/mod/cisco/capwap_cisco.h b/src/mod/cisco/capwap_cisco.h
index b24e79bd..89978ca4 100644
--- a/src/mod/cisco/capwap_cisco.h
+++ b/src/mod/cisco/capwap_cisco.h
@@ -51,8 +51,8 @@
#define CW_CISCO_MWAR_NAME LW_ELEM_AC_NAME /* 31 */
-#define CW_CISCO_LOCATION_DATA LW_ELEM_LOCATION_DATA /* 35 */
-#define CW_CISCO_STATISTICS_TIMER LW_ELEM_STATISTICS_TIMER /* 37 */
+#define CISCO_ELEM_LOCATION_DATA LW_ELEM_LOCATION_DATA /* 35 */
+#define CISCO_ELEM_STATISTICS_TIMER LW_ELEM_STATISTICS_TIMER /* 37 */
#define CW_CISCO_ANTENNA_PAYLOAD 41
@@ -86,7 +86,7 @@
#define CW_CISCO_LWAPP_CHANNEL_POWER 134
-#define CW_CISCO_AP_CORE_DUMP 135
+#define CISCO_ELEM_AP_CORE_DUMP 135
#define CISCO_ELEM_AP_PRE_STD_SWITCH_CONFIG 137
#define CISCO_ELEM_AP_POWER_INJECTOR_CONFIG 138
diff --git a/src/mod/cisco/cisco_actions_ac.c b/src/mod/cisco/cisco_actions_ac.c
index 2c0ce608..66e65f29 100644
--- a/src/mod/cisco/cisco_actions_ac.c
+++ b/src/mod/cisco/cisco_actions_ac.c
@@ -300,6 +300,15 @@ static cw_KTVStruct_t cisco_ap_qos[]={
{NULL,NULL,0,0}
};
+static cw_KTVStruct_t cisco_ap_core_dump[]={
+ {CW_TYPE_IPADDRESS,"tftp-server",4,-1},
+ {CW_TYPE_BOOL,"enable",1,16},
+ {CW_TYPE_STR,"filename",100,17},
+ {NULL,NULL,0,0}
+};
+
+
+
static struct cw_ElemHandler handlers[] = {
{
@@ -764,6 +773,27 @@ static struct cw_ElemHandler handlers[] = {
cw_out_radio_generic /* put */
},
+ {
+ "Location Data", /* name */
+ CISCO_ELEM_LOCATION_DATA, /* Element ID */
+ CW_VENDOR_ID_CISCO,0, /* Vendor / Proto */
+ 0,1024, /* min/max length */
+ CW_TYPE_BSTR16, /* type */
+ "location-data", /* Key */
+ cw_in_generic, /* get */
+ cw_out_generic /* put */
+ },
+
+ {
+ "AP Core Dump", /* name */
+ CISCO_ELEM_AP_CORE_DUMP, /* Element ID */
+ CW_VENDOR_ID_CISCO,0, /* Vendor / Proto */
+ 0,1024, /* min/max length */
+ cisco_ap_core_dump, /* type */
+ "cisco/ap-core-dump", /* Key */
+ cw_in_generic_struct, /* get */
+ cw_out_generic_struct /* put */
+ },
{0,0,0,0,0,0,0,0}
@@ -825,7 +855,7 @@ static struct cw_ElemDef join_response_elements[] ={
static int configuration_status_request_states[] = {CAPWAP_STATE_JOIN,0};
static struct cw_ElemDef configuration_status_request_elements[] ={
- {0, CW_VENDOR_ID_CISCO, CISCO_ELEM_SPAM_VENDOR_SPECIFIC,1, CW_IGNORE},
+ {0, CW_VENDOR_ID_CISCO, CISCO_ELEM_SPAM_VENDOR_SPECIFIC,0, CW_IGNORE},
{0, CW_VENDOR_ID_CISCO, CISCO_ELEM_AP_UPTIME, 0, 0},
{0, CW_VENDOR_ID_CISCO, CISCO_ELEM_AP_LED_STATE_CONFIG, 0, 0},
@@ -859,7 +889,7 @@ static struct cw_ElemDef configuration_status_response_elements[] ={
{0,0, CAPWAP_ELEM_RADIO_ADMINISTRATIVE_STATE, 1,0},
{0,0, CAPWAP_ELEM_RADIO_OPERATIONAL_STATE, 1,0},
- {0,CW_VENDOR_ID_CISCO, CISCO_ELEM_SPAM_VENDOR_SPECIFIC,1, CW_IGNORE},
+ {0,CW_VENDOR_ID_CISCO, CISCO_ELEM_SPAM_VENDOR_SPECIFIC,0, CW_IGNORE},
{0, CW_VENDOR_ID_CISCO, CISCO_ELEM_MULTI_DOMAIN_CAPABILITY, 0, 0},
{0, CW_VENDOR_ID_CISCO, CISCO_ELEM_WTP_RADIO_CONFIGURATION, 1, 0},
@@ -875,6 +905,42 @@ static struct cw_ElemDef configuration_status_response_elements[] ={
{0,0,0,0}
};
+
+static int configuration_update_request_states[] = {CAPWAP_STATE_RUN,0};
+static struct cw_ElemDef configuration_update_request_elements[] ={
+ {0, CW_VENDOR_ID_CISCO, CISCO_ELEM_SPAM_VENDOR_SPECIFIC,0, CW_IGNORE},
+
+ {0, CW_VENDOR_ID_CISCO, CISCO_ELEM_AP_UPTIME, 0, 0},
+ {0, CW_VENDOR_ID_CISCO, CISCO_ELEM_AP_LED_STATE_CONFIG, 0, 0},
+ {0, CW_VENDOR_ID_CISCO, CISCO_ELEM_AP_LOG_FACILITY, 0, 0},
+ {0, CW_VENDOR_ID_CISCO, CISCO_ELEM_MULTI_DOMAIN_CAPABILITY, 0, 0},
+ {0, CW_VENDOR_ID_CISCO, CISCO_ELEM_WTP_BOARD_DATA, 0, 0},
+ {0, CW_VENDOR_ID_CISCO, CISCO_ELEM_AP_LED_FLASH_CONFIG, 0, 0},
+ {0, CW_VENDOR_ID_CISCO, CISCO_ELEM_AP_PRE_STD_SWITCH_CONFIG, 0, 0},
+ {0, CW_VENDOR_ID_CISCO, CISCO_ELEM_AP_POWER_INJECTOR_CONFIG, 0, 0},
+ {0, CW_VENDOR_ID_CISCO, CISCO_ELEM_AP_MODE_AND_TYPE, 0, 0},
+ {0, CW_VENDOR_ID_CISCO, CISCO_ELEM_AP_STATIC_IP_ADDR, 0, 0},
+ {0, CW_VENDOR_ID_CISCO, CISCO_ELEM_AP_MIN_IOS_VERSION, 0, 0},
+ {0, CW_VENDOR_ID_CISCO, CISCO_ELEM_AP_BACKUP_SOFTWARE_VERSION, 0, 0},
+ {0, CW_VENDOR_ID_CISCO, CISCO_ELEM_AP_REGULATORY_DOMAIN, 0, 0},
+ {0, CW_VENDOR_ID_CISCO, CISCO_ELEM_AP_MODEL, 0, 0},
+ {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_AP_CORE_DUMP, 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},
+
+ {0,0,0,00}
+
+};
+
+
+
static struct cw_MsgDef messages[] = {
{
NULL, /* name */
@@ -927,6 +993,17 @@ static struct cw_MsgDef messages[] = {
NULL /* postprocess */
},
+ {
+ NULL, /* name */
+ CAPWAP_MSG_CONFIGURATION_UPDATE_REQUEST, /* type */
+ CW_ROLE_WTP,
+ configuration_update_request_states,
+ configuration_update_request_elements,
+ NULL /* postprocess */
+ },
+
+
+
{0,0,0,0}
diff --git a/src/wtp/run.c b/src/wtp/run.c
index c3122949..33b468ce 100644
--- a/src/wtp/run.c
+++ b/src/wtp/run.c
@@ -90,6 +90,13 @@ static void update_radios(struct conn * conn, mbag_t result)
static void do_update(struct conn * conn)
{
int rc;
+
+ cw_dbg_ktv_dump(conn->remote_cfg,DBG_INFO,"KTV DUMP ----------------","Remote:", "DUMP done -------");
+
+
+
+
+
if (!update)
return;
update=0;
@@ -117,7 +124,7 @@ int run(struct conn * conn)
- conn->capwap_state = CW_STATE_RUN;
+ conn->capwap_state = CAPWAP_STATE_RUN;
/* conn->msg_end=handle_update_req;*/
@@ -133,7 +140,8 @@ int run(struct conn * conn)
- while (!cw_timer_timeout(timer) && conn->capwap_state == CW_STATE_RUN) {
+ while (!cw_timer_timeout(timer) && conn->capwap_state == CAPWAP_STATE_RUN) {
+ mavl_del_all(conn->remote_cfg);
rc = cw_read_messages(conn);
if (rc < 0 && errno == EAGAIN) {
continue;
@@ -167,7 +175,7 @@ int run(struct conn * conn)
- } while (conn->capwap_state == CW_STATE_RUN);
+ } while (conn->capwap_state == CAPWAP_STATE_RUN);
/*