From ea80dfc883223198a6654b78dec6ad6f17784f76 Mon Sep 17 00:00:00 2001 From: "7u83@mail.ru" <7u83@mail.ru@noemail.net> Date: Wed, 9 Mar 2016 19:15:36 +0000 Subject: [PATCH] The dummy WTP goes with CAPWAP until run state. FossilOrigin-Name: a37b72762fff7de284209c42086e17d92c5c03adc7ed1d3ffd1a3d1a9d83a4dc --- src/cw/Makefile | 1 + src/cw/cw.h | 4 ++ src/cw/cw_in_radio_operational_state.c | 2 +- src/mod/capwap/capwap_actions_ac.c | 62 ++++++++++++++++++++++++++ src/mod/capwap/capwap_actions_wtp.c | 39 ++++++++++++++++ src/wtp/run.c | 1 - 6 files changed, 107 insertions(+), 2 deletions(-) diff --git a/src/cw/Makefile b/src/cw/Makefile index 430d74f9..eb7d2a7f 100644 --- a/src/cw/Makefile +++ b/src/cw/Makefile @@ -156,6 +156,7 @@ CAPWAPOBJS= \ cw_in_capwap_local_ipv6_address.o \ cw_in_radio_administrative_state.o \ cw_in_radio_administrative_state_wtp.o \ + cw_in_radio_operational_state.o\ strheap.o \ cw_check_missing_mand.o \ md5sum.o \ diff --git a/src/cw/cw.h b/src/cw/cw.h index c415235e..7b9415d1 100644 --- a/src/cw/cw.h +++ b/src/cw/cw.h @@ -110,6 +110,10 @@ extern int cw_in_capwap_local_ipv4_address(struct conn *conn, struct cw_action_i extern int cw_in_capwap_local_ipv6_address(struct conn *conn, struct cw_action_in *a, uint8_t * data, int len,struct sockaddr *from); +extern int cw_in_radio_operational_state(struct conn *conn, struct cw_action_in *a, uint8_t * data, + int len, struct sockaddr *from); + + /** * @} */ diff --git a/src/cw/cw_in_radio_operational_state.c b/src/cw/cw_in_radio_operational_state.c index 986aa27f..40442e73 100644 --- a/src/cw/cw_in_radio_operational_state.c +++ b/src/cw/cw_in_radio_operational_state.c @@ -12,6 +12,6 @@ int cw_in_radio_operational_state(struct conn *conn, struct cw_action_in *a, uin { - + return 1; } diff --git a/src/mod/capwap/capwap_actions_ac.c b/src/mod/capwap/capwap_actions_ac.c index d84a0f8b..2cca4741 100644 --- a/src/mod/capwap/capwap_actions_ac.c +++ b/src/mod/capwap/capwap_actions_ac.c @@ -309,6 +309,49 @@ static cw_action_in_t actions_in[] = { + /* Message: Change State Event Request - in Config State */ + { + .capwap_state=CW_STATE_CONFIGURE, + .msg_id = CW_MSG_CHANGE_STATE_EVENT_REQUEST, + .end = cw_in_check_chng_state_evnt_req + } + , + + /* Element: Result Code */ + { + .capwap_state = CW_STATE_CONFIGURE, + .msg_id= CW_MSG_CHANGE_STATE_EVENT_REQUEST, + .elem_id = CW_ELEM_RESULT_CODE, + .item_id = CW_ITEM_RESULT_CODE, + .start = cw_in_generic2, + .min_len=4, + .max_len=4, + .mand = 1 + } + , + + /* Element: Radio Poprational State */ + { + .capwap_state = CW_STATE_CONFIGURE, + .msg_id= CW_MSG_CHANGE_STATE_EVENT_REQUEST, + .elem_id = CW_ELEM_RADIO_OPERATIONAL_STATE, + .item_id = CW_RADIO_OPER_STATE, + .start = cw_in_radio_operational_state, + .min_len=3, + .max_len=3, + .mand = 0 + } + , + + + /* ------------------------------------------------------------------------------- */ + /* ECHO REQUEST Request */ + { + .capwap_state = CW_STATE_RUN, + .msg_id = CW_MSG_ECHO_REQUEST, + } + , + /* End of list */ {0, 0} @@ -386,6 +429,25 @@ static cw_action_out_t actions_out[]={ , + /* Change State Event Response */ + + { + .msg_id = CW_MSG_CHANGE_STATE_EVENT_RESPONSE, + .elem_id = CW_ELEM_RESULT_CODE, + .item_id = CW_ITEM_RESULT_CODE, + .out = cw_out_generic, + .get = cw_out_get_outgoing, + .mand = 1 + } + , + + + /* ECHO Response */ + + { + .msg_id = CW_MSG_ECHO_RESPONSE, + } + , {0,0} diff --git a/src/mod/capwap/capwap_actions_wtp.c b/src/mod/capwap/capwap_actions_wtp.c index d02e433b..65144ac5 100644 --- a/src/mod/capwap/capwap_actions_wtp.c +++ b/src/mod/capwap/capwap_actions_wtp.c @@ -137,7 +137,36 @@ static cw_action_in_t actions_in[] = { } , + + + { + .capwap_state = CW_STATE_CONFIGURE, + .msg_id = CW_MSG_CHANGE_STATE_EVENT_RESPONSE, + .end = cw_in_check_cfg_update_req + } + , + + { + .capwap_state = CW_STATE_CONFIGURE, + .msg_id = CW_MSG_CHANGE_STATE_EVENT_RESPONSE, + .elem_id = CW_ELEM_RESULT_CODE, + .item_id = CW_ITEM_RESULT_CODE, + .start = cw_in_generic2, + .min_len = 4, + .max_len = 4, + .mand = 1 + } + , + + + + { + .capwap_state = CW_STATE_RUN, + .msg_id = CW_MSG_ECHO_RESPONSE, + } + , + }; @@ -350,6 +379,16 @@ static cw_action_out_t actions_out[] = { , + /* --------------------------------------------------------------- + * Echo Request - Out + */ + + /* Echo Request */ + { + .msg_id = CW_MSG_ECHO_REQUEST, + } + , + /* Radio Ooerational State */ diff --git a/src/wtp/run.c b/src/wtp/run.c index dbcd30a9..f8f1fad1 100644 --- a/src/wtp/run.c +++ b/src/wtp/run.c @@ -29,7 +29,6 @@ int run() { - struct conn *conn = get_conn(); conn->capwap_state = CW_STATE_RUN;