From e74e8772f843aed04d34aae552b1fa0683653cf4 Mon Sep 17 00:00:00 2001 From: "7u83@mail.ru" <7u83@mail.ru@noemail.net> Date: Mon, 30 Mar 2015 05:56:42 +0000 Subject: [PATCH] Playing round with a new state machine concept. FossilOrigin-Name: b15d1beded51369384764d634c232711fc37027a08e25ad22b5ed0e841b9e574 --- doc/capwap_cisco.txt | 9 ++- src/ac/ac_main.c | 79 ++++++++++++++++++- src/ac/db.h | 1 + src/ac/wtpman.c | 13 ++- src/capwap/Makefile | 11 ++- src/capwap/avltree_get.c | 4 +- src/capwap/capwap.h | 37 +++++++-- src/capwap/capwap_80211.h | 4 +- src/capwap/conn.h | 7 ++ src/capwap/conn_process_packet.c | 14 +++- src/capwap/cw_foreach_msgelem.c | 2 +- src/capwap/cw_msgelemtostr.c | 8 +- src/capwap/cw_msgtostr.c | 4 +- src/capwap/cwmsg_addelem_80211_add_wlan.c | 2 +- src/capwap/cwmsg_addelem_wtp_board_data.c | 2 +- src/capwap/cwmsg_addelem_wtp_descriptor.c | 2 +- src/capwap/cwread_discovery_request.c | 8 +- src/capwap/cwread_join_response.c | 2 +- src/capwap/cwsend_discovery_request.c | 4 +- src/capwap/cwsend_join_request.c | 4 +- src/capwap/cwsend_join_response.c | 2 +- src/capwap/hdr_print.c | 1 - src/capwap/process_join_request.c | 10 +-- src/capwap/wtpinfo_readelem_discovery_type.c | 2 +- src/capwap/wtpinfo_readelem_wtp_board_data.c | 2 +- src/capwap/wtpinfo_readelem_wtp_descriptor.c | 2 +- .../wtpinfo_readelem_wtp_frame_tunnel_mode.c | 2 +- src/wtp/Makefile | 2 +- src/wtp/wtp_main.c | 3 + 29 files changed, 189 insertions(+), 54 deletions(-) diff --git a/doc/capwap_cisco.txt b/doc/capwap_cisco.txt index 944b777b..0aed08d6 100644 --- a/doc/capwap_cisco.txt +++ b/doc/capwap_cisco.txt @@ -320,12 +320,15 @@ Vendor spec CAPWAP | Vedor spec LWAPP | Vendor specific LWAPP data Mode: An 8-bit value describing the type of information being sent. The following values are supported: - 0 - Split MAC - 2 - Local MAC + 0 - Split MAC / Local Mode + 1 - Monitor + 2 - Local MAC / FlexConnect + 3 - Rogue Detector + 4 - Sniffer Type: AP Type - 4 - + 0 - ? diff --git a/src/ac/ac_main.c b/src/ac/ac_main.c index 24832e2f..d68db98f 100644 --- a/src/ac/ac_main.c +++ b/src/ac/ac_main.c @@ -16,7 +16,7 @@ */ - +#include #include #include #include @@ -36,6 +36,9 @@ #include "db.h" + + + int ac_run(); void alive_thread(void *data) @@ -46,9 +49,83 @@ void alive_thread(void *data) } } +#include "cw_action.h" + +cw_actionlist_t the_tree; + +int dstart(struct conn *conn,struct cw_action a,uint8_t *data,int len) +{ + printf("DISCO STart Action!!\n"); +} + + int main (int argc, const char * argv[]) { + + +cw_actionlist_t t = cw_actionlist_create(); +the_tree=t; + + +cw_action_t discovery_actions[] = { +{ CW_STATE_DISCOVERY,CW_MSG_DISCOVERY_REQUEST,-1,0,0, + dstart +}, +{CW_STATE_DISCOVERY,CW_MSG_DISCOVERY_REQUEST, CW_ELEM_DISCOVERY_TYPE}, +{CW_STATE_DISCOVERY,CW_MSG_DISCOVERY_REQUEST, CW_ELEM_WTP_BOARD_DATA}, +{CW_STATE_DISCOVERY,CW_MSG_DISCOVERY_REQUEST, CW_ELEM_WTP_DESCRIPTOR}, +{CW_STATE_DISCOVERY,CW_MSG_DISCOVERY_REQUEST, CW_ELEM_WTP_FRAME_TUNNEL_MODE}, +{CW_STATE_DISCOVERY,CW_MSG_DISCOVERY_REQUEST, CW_ELEM_WTP_MAC_TYPE}, +{0} +}; + + + +cw_action_t join_actions[] = { + +{CW_STATE_JOIN,CW_MSG_JOIN_REQUEST,-1,0,0}, +{CW_STATE_JOIN,CW_MSG_JOIN_REQUEST, CW_ELEM_DISCOVERY_TYPE}, +{CW_STATE_JOIN,CW_MSG_JOIN_REQUEST, CW_ELEM_WTP_BOARD_DATA}, +{CW_STATE_JOIN,CW_MSG_JOIN_REQUEST, CW_ELEM_WTP_DESCRIPTOR}, +{CW_STATE_JOIN,CW_MSG_JOIN_REQUEST, CW_ELEM_WTP_FRAME_TUNNEL_MODE}, +{CW_STATE_JOIN,CW_MSG_JOIN_REQUEST, CW_ELEM_WTP_MAC_TYPE}, +{0} + + +}; + + +cw_register_actions(t,discovery_actions); +cw_register_actions(t,join_actions); + + +#define CW_NAME_DISCOVER_REQUEST "Discovery Request" + +/* +int i; +for(i=0; discovery[i].capwap_state!=CW_STATE_MAX; i++){ + printf("State: %d MSG_ID: %d ELEM_ID: %d\n",discovery[i].capwap_state,discovery[i].msg_id,discovery[i].elem_id); + void * rc = msgtree_add(t,&(discovery[i])); + + printf("Added to tree %p\n",rc); + +} +*/ + + +/* +e.capwap_state=0; +e.msg_id = CW_MSG_DISCOVERY_REQUEST; +e.elem_id = CW_ELEM_AC_NAME; +e.name = "AC Name"; + +msgtree_add(t,&e); +*/ + + + + // send_image_file(0,"/home/tube/Downloads/c1130-rcvk9w8-tar.124-25e.JAP.tar"); diff --git a/src/ac/db.h b/src/ac/db.h index a9023a2f..961b06e3 100644 --- a/src/ac/db.h +++ b/src/ac/db.h @@ -1,2 +1,3 @@ extern void db_ping(); +extern int db_init(); diff --git a/src/ac/wtpman.c b/src/ac/wtpman.c index ac65167f..992fc108 100644 --- a/src/ac/wtpman.c +++ b/src/ac/wtpman.c @@ -357,6 +357,13 @@ static void wtpman_run_discovery(void *arg) struct cwrmsg * cwrmsg; +extern cw_actionlist_t the_tree; +wtpman->conn->capwap_state=CW_STATE_DISCOVERY; +wtpman->conn->msgtr=the_tree; + + + + time_t timer = cw_timer_start(10); cwrmsg = wtpman_wait_for_message(wtpman, timer); @@ -559,9 +566,13 @@ static int wtpman_join(void *arg,time_t timer) { struct wtpman * wtpman = (struct wtpman *)arg; +extern cw_actionlist_t the_tree; +wtpman->conn->msgtr=the_tree; +wtpman->conn->capwap_state=CW_STATE_JOIN; + /* timer = cw_timer_start(wtpman->conn->wait_join); */ - int join_msgs[] = { CWMSG_JOIN_REQUEST, -1 }; + int join_msgs[] = { CW_MSG_JOIN_REQUEST, -1 }; struct cwrmsg * cwrmsg; cwrmsg = conn_wait_for_request(wtpman->conn, join_msgs, timer); diff --git a/src/capwap/Makefile b/src/capwap/Makefile index bf781a96..d5d7a8fe 100644 --- a/src/capwap/Makefile +++ b/src/capwap/Makefile @@ -239,10 +239,15 @@ BSTROBJS= bstr_create.o \ FRAGOBJS=fragman.o +CWACTION=cw_action.o \ + cw_process_msg.o + + OBJS=$(CONNOBJS) $(FRAGOBJS) $(SOCKOBJS) $(CAPWAPOBJS) $(WTPINFOOBJS) \ $(LOGOBJS) $(UTILOBJS) $(DTLSOBJS) $(BSTROBJS) \ $(LWAPPOBJS) \ - $(LWAPPCISCOOBJS) + $(LWAPPCISCOOBJS) \ + $(CWACTION) #include $(OBJS:.o=.d) @@ -250,8 +255,8 @@ O:=$(OBJS); OBJS:=$(patsubst %.o,$(ARCH)/%.o,$(OBJS)) -#CFLAGS = -Wall -g -O3 -D_REENTRANT -DWITH_IPV6 -DWITH_RMAC_SUPPORT -CFLAGS = -Wall -g -O0 -D_REENTRANT -DWITH_IPV6 -DWITH_RMAC_SUPPORT -I/usr/local/include +CFLAGS = -Wall -g -O0 -D_REENTRANT -DWITH_IPV6 -DWITH_RMAC_SUPPORT +#CFLAGS += -Wall -g -O0 -D_REENTRANT -DWITH_IPV6 -DWITH_RMAC_SUPPORT -I/usr/local/include CFLAGS += $(GNUTLS_CFLAGS) \ -DWITH_CW_LOG \ diff --git a/src/capwap/avltree_get.c b/src/capwap/avltree_get.c index eafdd28e..bcf9769b 100644 --- a/src/capwap/avltree_get.c +++ b/src/capwap/avltree_get.c @@ -16,6 +16,8 @@ */ +#include + #include "avltree.h" @@ -31,7 +33,7 @@ void * avltree_get(struct avltree *t ,void *data) else n=n->right; } - return 0; + return NULL; } diff --git a/src/capwap/capwap.h b/src/capwap/capwap.h index 47096d91..dde21699 100644 --- a/src/capwap/capwap.h +++ b/src/capwap/capwap.h @@ -55,6 +55,20 @@ enum capwapmodes { CWMODE_ZYXEL }; + +/** + * CAWAP States + */ +enum capwap_states { + CW_STATE_NONE=0, + CW_STATE_DISCOVERY, + CW_STATE_JOIN, + CW_STATE_UPDATE, + CW_STATE_RUN, +}; + + + /* transport header flags */ #define CWTH_FLAGS_R1 0x01 /* bit 0 reserved 1 */ #define CWTH_FLAGS_R2 0x02 /* bit 1 reserved 2 */ @@ -99,8 +113,8 @@ struct capwap_ctrlhdr #define CW_MSG_DISCOVERY_REQUEST 1 #define CW_MSG_DISCOVERY_RESPONSE 2 -#define CWMSG_JOIN_REQUEST 3 -#define CWMSG_JOIN_RESPONSE 4 +#define CW_MSG_JOIN_REQUEST 3 +#define CW_MSG_JOIN_RESPONSE 4 #define CW_MSG_CONFIGURATION_STATUS_REQUEST 5 #define CW_MSG_CONFIGURATION_STATUS_RESPONSE 6 @@ -147,9 +161,8 @@ struct capwap_ctrlhdr #define CW_ELEM_AC_IPV6_LIST 3 #define CW_ELEM_AC_NAME 4 #define CW_ELEM_AC_NAME_WITH_PRIORITY 5 -#define CW_ELEM_AC_NAME_WITH_INDEX 5 /* Draft 7 */ +#define CW_ELEM_AC_NAME_WITH_INDEX 5 /* Draft 7 inaming */ #define CW_ELEM_AC_TIMESTAMP 6 - #define CW_ELEM_ADD_MAC_ACL_ENTRY 7 #define CW_ELEM_ADD_STATION 8 #define CW_ELEM_RESERVED_9 9 @@ -166,7 +179,7 @@ struct capwap_ctrlhdr #define CW_ELEM_DELETE_MAC_ACL_ENTRY 17 #define CW_ELEM_DELETE_STATION 18 #define CW_ELEM_RESEERVED_19 19 -#define CWMSGELEM_DISCOVERY_TYPE 20 +#define CW_ELEM_DISCOVERY_TYPE 20 #define CW_ELEM_DUPLICATE_IPV4_ADDRESS 21 #define CW_ELEM_DUPLICATE_IPV6_ADRESS 22 #define CWMSGELEM_ECN_SUPPORT 53 @@ -185,10 +198,10 @@ struct capwap_ctrlhdr #define CW_ELEM_SESSION_ID 35 #define CW_ELEM_STATISTICS_TIMER 36 #define CW_ELEM_VENDOR_SPECIFIC_PAYLOAD 37 -#define CWMSGELEM_WTP_BOARD_DATA 38 -#define CWMSGELEM_WTP_DESCRIPTOR 39 +#define CW_ELEM_WTP_BOARD_DATA 38 +#define CW_ELEM_WTP_DESCRIPTOR 39 #define CW_ELEM_WTP_FALLBACK 40 -#define CWMSGELEM_WTP_FRAME_TUNNEL_MODE 41 +#define CW_ELEM_WTP_FRAME_TUNNEL_MODE 41 #define CW_ELEM_RESERVED_42 42 #define CW_ELEM_RESERVED_43 43 #define CW_ELEM_WTP_MAC_TYPE 44 @@ -502,6 +515,14 @@ extern int cw_readmsg_configuration_update_request(uint8_t *elems,int elems_len) #define cw_get_hdr_flag_f(th) ((ntohl( *((uint32_t*)th)) & CWTH_FLAGS_F ) ? 1:0) #define cw_get_hdr_flag_t(th) ((ntohl( *((uint32_t*)th)) & CWTH_FLAGS_T ) ? 1:0) +#define cw_get_hdr_msg_offset(th) (4*cw_get_hdr_hlen(th)) + +#define cw_get_msg_id(msgptr) (cw_get_dword(msgptr)) +#define cw_get_msg_type(msgptr) cw_get_msg_id(msgptr) + +#define cw_get_msg_seqnum(msgptr) cw_get_byte( (msgptr) +4 ) +#define cw_get_msg_elems_len(msgptr) ( cw_get_word( (msgptr) +5 )-3) +#define cw_get_msg_elems_ptr(msgptr) ((msgptr)+8) /** * Get length of a CAPWAP message elemet diff --git a/src/capwap/capwap_80211.h b/src/capwap/capwap_80211.h index 4e5546a8..8155e3b0 100644 --- a/src/capwap/capwap_80211.h +++ b/src/capwap/capwap_80211.h @@ -8,8 +8,8 @@ -#define CWMSGELEM_80211_ADD_WLAN 1024 -#define CWMSGELEM_80211_ANTENNA 1025 +#define CW_ELEM_80211_ADD_WLAN 1024 +#define CW_ELEM_80211_ANTENNA 1025 /* IEEE 802.11 Assigned WTP BSSID 1026 IEEE 802.11 Delete WLAN 1027 diff --git a/src/capwap/conn.h b/src/capwap/conn.h index fc7fe49e..8403a5e0 100644 --- a/src/capwap/conn.h +++ b/src/capwap/conn.h @@ -30,11 +30,18 @@ #include "cwrmsg.h" #include "wtpinfo.h" + +#include "cw_action.h" + struct conn{ int sock; struct sockaddr_storage addr; int recv_timeout; + cw_actionlist_t msgtr; + + uint8_t capwap_state; + FRAGMAN * fragman; // void (* process_message)(void *,uint8_t *,uint8_t *, int); diff --git a/src/capwap/conn_process_packet.c b/src/capwap/conn_process_packet.c index 07b7b41c..b87193e7 100644 --- a/src/capwap/conn_process_packet.c +++ b/src/capwap/conn_process_packet.c @@ -130,7 +130,6 @@ static void cw_dbg_packet(struct conn * conn, uint8_t * packet, int len) if (!cw_dbg_is_level(DBG_CW_PKT_IN)) return; -printf("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!Header printer\n"); /* print the header */ char hdr[200]; @@ -138,13 +137,11 @@ printf("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!Header prin if (!cw_dbg_is_level(DBG_CW_PKT_DMP)){ -printf("the dumpi dumper\n"); cw_dbg(DBG_CW_PKT_IN,"Processing capwap packet from %s, len=%d\n%s",sock_addr2str(&conn->addr),len,hdr); return; } -printf("The super dumper\n"); cw_dbg_dmp(DBG_CW_PKT_DMP,packet,len,"Processing packet from %s, len=%d\n%s\n\tDump:", sock_addr2str(&conn->addr),len,hdr ); @@ -186,7 +183,6 @@ void conn_process_packet(struct conn * conn, uint8_t *packet, int len,int (*cb)( return; } -printf("Debug packet **************************************************************************\n"); cw_dbg_packet(conn,packet,len); @@ -229,6 +225,11 @@ printf("Debug packet *********************************************************** cw_dbg_packet(conn,f+4,*(uint32_t*)f); + + extern int cw_process_msg(struct conn * conn,uint8_t*msg,int len); + cw_process_msg(conn,f+4,*(uint32_t*)f); + + if (!cwrmsg_init_ctrlhdr(conn,&cwrmsg,f+4,*(uint32_t*)f)){ free(f); return; @@ -238,11 +239,16 @@ printf("Debug packet *********************************************************** return; } +extern int cw_process_msg(struct conn * conn,uint8_t*msg,int len); +cw_process_msg(conn,packet,len); + + if (!cwrmsg_init_ctrlhdr(conn,&cwrmsg,packet+hlen,len-hlen) ){ // cw_dbg(DBG_CW_PKT_ERR,"Discarding packet from %s, len=%d (too short)",sock_addr2str(&conn->addr)); return; } + process_message(conn,&cwrmsg,cb,cbarg); return; } diff --git a/src/capwap/cw_foreach_msgelem.c b/src/capwap/cw_foreach_msgelem.c index 13a7ea39..3240ed9b 100644 --- a/src/capwap/cw_foreach_msgelem.c +++ b/src/capwap/cw_foreach_msgelem.c @@ -50,7 +50,7 @@ printf("Bumm %d %d\n",i+elen+4,len); callback(arg, type, msgelems + i + 4, elen); i += elen + 4; - printf("left = %d\n",len-i); +// printf("left = %d\n",len-i); } while (i < len); return 1; diff --git a/src/capwap/cw_msgelemtostr.c b/src/capwap/cw_msgelemtostr.c index 22cee289..ff079fcd 100644 --- a/src/capwap/cw_msgelemtostr.c +++ b/src/capwap/cw_msgelemtostr.c @@ -65,7 +65,7 @@ const char * cw_msgelemtostr(int elem_id) Delete Station 18 Reserved 19 */ - case CWMSGELEM_DISCOVERY_TYPE: + case CW_ELEM_DISCOVERY_TYPE: return "discovery type"; /* Duplicate IPv4 Address 21 @@ -116,15 +116,15 @@ const char * cw_msgelemtostr(int elem_id) return "Vendor Specific Payload"; - case CWMSGELEM_WTP_BOARD_DATA: + case CW_ELEM_WTP_BOARD_DATA: return "WTP Board Data"; - case CWMSGELEM_WTP_DESCRIPTOR: + case CW_ELEM_WTP_DESCRIPTOR: return "wtp descriptor"; case CW_ELEM_WTP_FALLBACK: return "WTP Fallback"; - case CWMSGELEM_WTP_FRAME_TUNNEL_MODE: + case CW_ELEM_WTP_FRAME_TUNNEL_MODE: return "Frame Tunnel Mode"; /* case CWMSGELEM_RESERVED_1: diff --git a/src/capwap/cw_msgtostr.c b/src/capwap/cw_msgtostr.c index a0f0e79d..d51cd7c4 100644 --- a/src/capwap/cw_msgtostr.c +++ b/src/capwap/cw_msgtostr.c @@ -27,10 +27,10 @@ const char * cw_msgtostr(int type) case CW_MSG_DISCOVERY_RESPONSE: return "Discovery Response"; - case CWMSG_JOIN_REQUEST: + case CW_MSG_JOIN_REQUEST: return "join request"; - case CWMSG_JOIN_RESPONSE: + case CW_MSG_JOIN_RESPONSE: return "join response"; case CW_MSG_CONFIGURATION_STATUS_REQUEST: diff --git a/src/capwap/cwmsg_addelem_80211_add_wlan.c b/src/capwap/cwmsg_addelem_80211_add_wlan.c index 6dd2fecd..9ecd022a 100644 --- a/src/capwap/cwmsg_addelem_80211_add_wlan.c +++ b/src/capwap/cwmsg_addelem_80211_add_wlan.c @@ -17,7 +17,7 @@ void cwmsg_addelem_80211_add_wlan(struct cwmsg *cwmsg,struct cwwlan *wlan) uint16_t capab=htons(wlan->capab); uint16_t keylen=htons(wlan->key_length); - cwmsg_vaddelem(cwmsg,CWMSGELEM_80211_ADD_WLAN, + cwmsg_vaddelem(cwmsg,CW_ELEM_80211_ADD_WLAN, &wlan->rid,1, &wlan->wid,1, &capab,2, diff --git a/src/capwap/cwmsg_addelem_wtp_board_data.c b/src/capwap/cwmsg_addelem_wtp_board_data.c index 675f55ca..5b461466 100644 --- a/src/capwap/cwmsg_addelem_wtp_board_data.c +++ b/src/capwap/cwmsg_addelem_wtp_board_data.c @@ -52,5 +52,5 @@ void cwmsg_addelem_wtp_board_data(struct cwmsg *cwmsg, struct wtpinfo *wtpinfo) len += wtpinfo->macaddress_len + 4; } - cwmsg_addelem(cwmsg, CWMSGELEM_WTP_BOARD_DATA, msg, len); + cwmsg_addelem(cwmsg, CW_ELEM_WTP_BOARD_DATA, msg, len); } diff --git a/src/capwap/cwmsg_addelem_wtp_descriptor.c b/src/capwap/cwmsg_addelem_wtp_descriptor.c index ea0cfa4a..408ef270 100644 --- a/src/capwap/cwmsg_addelem_wtp_descriptor.c +++ b/src/capwap/cwmsg_addelem_wtp_descriptor.c @@ -61,5 +61,5 @@ void cwmsg_addelem_wtp_descriptor(struct cwmsg * cwmsg, struct wtpinfo * wtpinfo len+=wtpdesc_addsubelem(d+len,CWMSGSUBELEM_WTP_DESCRIPTOR_BOOTLOADER_VERSION, wtpinfo->bootloader_vendor_id,wtpinfo->bootloader_version); - cwmsg_addelem(cwmsg,CWMSGELEM_WTP_DESCRIPTOR,d,len); + cwmsg_addelem(cwmsg,CW_ELEM_WTP_DESCRIPTOR,d,len); } diff --git a/src/capwap/cwread_discovery_request.c b/src/capwap/cwread_discovery_request.c index f9e8dd4f..010f729f 100644 --- a/src/capwap/cwread_discovery_request.c +++ b/src/capwap/cwread_discovery_request.c @@ -80,10 +80,10 @@ void cwread_discovery_request(struct wtpinfo *wtpinfo, uint8_t * msg, int len) { int mand[] = { - CWMSGELEM_DISCOVERY_TYPE, - CWMSGELEM_WTP_BOARD_DATA, - CWMSGELEM_WTP_DESCRIPTOR, - CWMSGELEM_WTP_FRAME_TUNNEL_MODE, + CW_ELEM_DISCOVERY_TYPE, + CW_ELEM_WTP_BOARD_DATA, + CW_ELEM_WTP_DESCRIPTOR, + CW_ELEM_WTP_FRAME_TUNNEL_MODE, CW_ELEM_WTP_MAC_TYPE, CWMSGELEM_80211_WTP_RADIO_INFO, -1 diff --git a/src/capwap/cwread_join_response.c b/src/capwap/cwread_join_response.c index 4a663937..7fced34f 100644 --- a/src/capwap/cwread_join_response.c +++ b/src/capwap/cwread_join_response.c @@ -25,7 +25,7 @@ static int acinfo_readelem_join_resp(void * a,int type,uint8_t* msgelem,int len) { - cw_dbg_msgelem(CWMSG_JOIN_RESPONSE, type, msgelem, len); + cw_dbg_msgelem(CW_MSG_JOIN_RESPONSE, type, msgelem, len); struct ac_info * acinfo = (struct ac_info *)a; // cw_log_debug1("Process join resp msgelem, type=%d, len=%d\n",type,len); diff --git a/src/capwap/cwsend_discovery_request.c b/src/capwap/cwsend_discovery_request.c index c27e0962..6113fde5 100644 --- a/src/capwap/cwsend_discovery_request.c +++ b/src/capwap/cwsend_discovery_request.c @@ -42,7 +42,7 @@ int cwsend_discovery_request(struct conn *conn, struct radioinfo *radioinfo, /* Mandatory elements */ /* discovery type */ - cwmsg_addelem(&cwmsg, CWMSGELEM_DISCOVERY_TYPE, &wtpinfo->discovery_type, sizeof(uint8_t)); + cwmsg_addelem(&cwmsg, CW_ELEM_DISCOVERY_TYPE, &wtpinfo->discovery_type, sizeof(uint8_t)); /* wtp board data */ cwmsg_addelem_wtp_board_data(&cwmsg, wtpinfo); @@ -51,7 +51,7 @@ int cwsend_discovery_request(struct conn *conn, struct radioinfo *radioinfo, cwmsg_addelem_wtp_descriptor(&cwmsg, wtpinfo); /* wtp frame tunnel mode */ - cwmsg_addelem(&cwmsg, CWMSGELEM_WTP_FRAME_TUNNEL_MODE, &wtpinfo->frame_tunnel_mode, + cwmsg_addelem(&cwmsg, CW_ELEM_WTP_FRAME_TUNNEL_MODE, &wtpinfo->frame_tunnel_mode, sizeof(uint8_t)); /* mac type */ diff --git a/src/capwap/cwsend_join_request.c b/src/capwap/cwsend_join_request.c index 1db2acd0..d8f8a9a8 100644 --- a/src/capwap/cwsend_join_request.c +++ b/src/capwap/cwsend_join_request.c @@ -41,7 +41,7 @@ int cwsend_join_request(struct conn *conn, struct radioinfo *radioinfo, struct w //radioinfo->rmac=0; - cwmsg_init(&cwmsg, buffer, CWMSG_JOIN_REQUEST, conn_get_next_seqnum(conn), radioinfo); + cwmsg_init(&cwmsg, buffer, CW_MSG_JOIN_REQUEST, conn_get_next_seqnum(conn), radioinfo); cwmsg.capwap_mode = conn->capwap_mode; // printf("Rad info rmac %s\n",sock_hwaddr2str(bstr_data(radioinfo->rmac),bstr_len(radioinfo->rmac))); @@ -65,7 +65,7 @@ int cwsend_join_request(struct conn *conn, struct radioinfo *radioinfo, struct w cwmsg_addelem_session_id(&cwmsg, wtpinfo->session_id); /* frame tunnel mode */ - cwmsg_addelem(&cwmsg, CWMSGELEM_WTP_FRAME_TUNNEL_MODE, &wtpinfo->frame_tunnel_mode, + cwmsg_addelem(&cwmsg, CW_ELEM_WTP_FRAME_TUNNEL_MODE, &wtpinfo->frame_tunnel_mode, sizeof(uint8_t)); /* WTP MAC type */ diff --git a/src/capwap/cwsend_join_response.c b/src/capwap/cwsend_join_response.c index ebb12a9a..c7e10323 100644 --- a/src/capwap/cwsend_join_response.c +++ b/src/capwap/cwsend_join_response.c @@ -10,7 +10,7 @@ void cwsend_join_response(struct conn *conn, int seqnum, int rc, struct radioinf struct ac_info *acinfo, struct wtpinfo *wtpinfo) { struct cwmsg *cwmsg = &conn->resp_msg; - cwmsg_init(cwmsg, conn->resp_buffer, CWMSG_JOIN_RESPONSE, seqnum, NULL); + cwmsg_init(cwmsg, conn->resp_buffer, CW_MSG_JOIN_RESPONSE, seqnum, NULL); cwmsg->capwap_mode = conn->capwap_mode; /* mandatory messagesg elements */ diff --git a/src/capwap/hdr_print.c b/src/capwap/hdr_print.c index 05eae248..af07144a 100644 --- a/src/capwap/hdr_print.c +++ b/src/capwap/hdr_print.c @@ -28,7 +28,6 @@ int hdr_print(char *str, uint8_t *packet, int len) { -printf("The readl header printer\n"); char *s = str; diff --git a/src/capwap/process_join_request.c b/src/capwap/process_join_request.c index e207eb0d..9a44dada 100644 --- a/src/capwap/process_join_request.c +++ b/src/capwap/process_join_request.c @@ -42,7 +42,7 @@ static int process_elem(void *eparm,int type,uint8_t* msgelem,int len) struct wtpinfo * wtpinfo = e->wtpinfo; - cw_dbg_msgelem(CWMSG_JOIN_REQUEST, type, msgelem, len); + cw_dbg_msgelem(CW_MSG_JOIN_REQUEST, type, msgelem, len); /* mandatory elements */ @@ -103,10 +103,10 @@ void process_join_request(struct wtpinfo * wtpinfo, uint8_t * msg, int len) { int mand[] = { CWMSGELEM_LOCATION_DATA, - CWMSGELEM_WTP_BOARD_DATA, - CWMSGELEM_WTP_DESCRIPTOR, + CW_ELEM_WTP_BOARD_DATA, + CW_ELEM_WTP_DESCRIPTOR, CW_ELEM_WTP_NAME, - CWMSGELEM_WTP_FRAME_TUNNEL_MODE, + CW_ELEM_WTP_FRAME_TUNNEL_MODE, CW_ELEM_WTP_MAC_TYPE, CWMSGELEM_ECN_SUPPORT, XCWMSGELEM_CAPWAP_LOCAL_IP_ADDRESS, @@ -122,7 +122,7 @@ void process_join_request(struct wtpinfo * wtpinfo, uint8_t * msg, int len) cw_foreach_msgelem(msg, len, process_elem, &eparm); - cw_dbg_missing_mand_elems_(0, CWMSG_JOIN_REQUEST, eparm.mand); + cw_dbg_missing_mand_elems_(0, CW_MSG_JOIN_REQUEST, eparm.mand); } diff --git a/src/capwap/wtpinfo_readelem_discovery_type.c b/src/capwap/wtpinfo_readelem_discovery_type.c index 58984a5e..cdc8baba 100644 --- a/src/capwap/wtpinfo_readelem_discovery_type.c +++ b/src/capwap/wtpinfo_readelem_discovery_type.c @@ -7,7 +7,7 @@ int wtpinfo_readelem_discovery_type(struct wtpinfo * wtpinfo, int type, uint8_t * msgelem, int len) { - if (type != CWMSGELEM_DISCOVERY_TYPE) + if (type != CW_ELEM_DISCOVERY_TYPE) return 0; if (len!=1){ diff --git a/src/capwap/wtpinfo_readelem_wtp_board_data.c b/src/capwap/wtpinfo_readelem_wtp_board_data.c index 4eca6b61..c437d40c 100644 --- a/src/capwap/wtpinfo_readelem_wtp_board_data.c +++ b/src/capwap/wtpinfo_readelem_wtp_board_data.c @@ -58,7 +58,7 @@ static void wtpinfo_readsubelems_wtp_board_data(struct wtpinfo * wtpinfo,uint8_t int wtpinfo_readelem_wtp_board_data(struct wtpinfo *wtpinfo, int type, uint8_t *msgelem, int len) { - if (type!=CWMSGELEM_WTP_BOARD_DATA) + if (type!=CW_ELEM_WTP_BOARD_DATA) return 0; if (len<4){ cw_dbg(DBG_ELEM,"Discarding WTP_BOARD_DATA msgelem, wrong size, type=%d, len=%d\n",type,len); diff --git a/src/capwap/wtpinfo_readelem_wtp_descriptor.c b/src/capwap/wtpinfo_readelem_wtp_descriptor.c index 32644b91..26408b91 100644 --- a/src/capwap/wtpinfo_readelem_wtp_descriptor.c +++ b/src/capwap/wtpinfo_readelem_wtp_descriptor.c @@ -28,7 +28,7 @@ static int wtpinfo_readelem_wtp_descriptor_(struct wtpinfo * wtpinfo, int type, uint8_t *msgelem, int len, int capwap_mode) { - if (type != CWMSGELEM_WTP_DESCRIPTOR) + if (type != CW_ELEM_WTP_DESCRIPTOR) return 0; if (len<6) diff --git a/src/capwap/wtpinfo_readelem_wtp_frame_tunnel_mode.c b/src/capwap/wtpinfo_readelem_wtp_frame_tunnel_mode.c index 67724397..4ec1f63c 100644 --- a/src/capwap/wtpinfo_readelem_wtp_frame_tunnel_mode.c +++ b/src/capwap/wtpinfo_readelem_wtp_frame_tunnel_mode.c @@ -7,7 +7,7 @@ int wtpinfo_readelem_wtp_frame_tunnel_mode(struct wtpinfo * wtpinfo, int type, uint8_t * msgelem, int len) { - if (type != CWMSGELEM_WTP_FRAME_TUNNEL_MODE) + if (type != CW_ELEM_WTP_FRAME_TUNNEL_MODE) return 0; if (len!=1){ diff --git a/src/wtp/Makefile b/src/wtp/Makefile index f279e1d7..3afc1dda 100644 --- a/src/wtp/Makefile +++ b/src/wtp/Makefile @@ -20,7 +20,7 @@ ifndef ARCH endif -CFLAGS += -O2 -Wall -g +CFLAGS += -Os -Wall -g LDFLAGS += -L../../src/capwap/$(ARCH) diff --git a/src/wtp/wtp_main.c b/src/wtp/wtp_main.c index d3bf2025..5323d4fc 100644 --- a/src/wtp/wtp_main.c +++ b/src/wtp/wtp_main.c @@ -57,6 +57,9 @@ const char * interfaces[]={ int main() { + + + wtp_main(); }