diff --git a/src/cw/lw.h b/src/cw/lw.h index 4bbde1ab..eb2e34a9 100644 --- a/src/cw/lw.h +++ b/src/cw/lw.h @@ -152,6 +152,7 @@ static inline int lw_put_elem_hdr(uint8_t *dst,uint8_t type,uint16_t len) extern uint16_t lw_checksum(uint8_t *d,int len); +extern int lw_put_sockaddr(uint8_t *dst, struct sockaddr_storage *addr); /** diff --git a/src/cw/lwapp.h b/src/cw/lwapp.h index 1fa49cee..2eba1488 100644 --- a/src/cw/lwapp.h +++ b/src/cw/lwapp.h @@ -262,7 +262,6 @@ static inline int lw_put_elem_hdr(uint8_t *dst,uint8_t type,uint16_t len) /**@}*/ -extern int lw_put_sockaddr(uint8_t *dst, struct sockaddr_storage *addr); extern int lw_put_cisco_path_mtu(uint8_t *dst, uint16_t max, uint16_t padding); diff --git a/src/mod/capwap/capwap_out_wtp_descriptor.c b/src/mod/capwap/capwap_out_wtp_descriptor.c index dda93783..e335cb53 100644 --- a/src/mod/capwap/capwap_out_wtp_descriptor.c +++ b/src/mod/capwap/capwap_out_wtp_descriptor.c @@ -3,8 +3,6 @@ #include "cw/capwap_items.h" #include "cw/cw.h" -#include "cw/capwap.h" - static int cw_put_encryption_subelems(uint8_t *dst,int capwap_mode) { int n=2; @@ -32,8 +30,8 @@ int capwap_out_wtp_descriptor(struct conn *conn, struct cw_action_out *a, uint8_ uint8_t *d = dst+4; -int n =conn->radios->count; -printf("radio count %d\n",n); +//int n =conn->radios->count; +//printf("radio count %d\n",n); d+=cw_put_byte(d,conn->radios->count); //max radios d+=cw_put_byte(d,2); //radios in use diff --git a/src/mod/cisco/Makefile b/src/mod/cisco/Makefile index 18a923d1..a9332ce2 100644 --- a/src/mod/cisco/Makefile +++ b/src/mod/cisco/Makefile @@ -1,10 +1,13 @@ OBJS=\ mod_cisco_ac.o \ + mod_cisco_wtp.o \ cisco_actions_ac.o \ + cisco_actions_wtp.o \ cisco_out_ap_timesync.o \ cisco_in_wtp_descriptor.o \ - cisco_out_ac_descriptor.o + cisco_out_ac_descriptor.o \ + cisco_out_wtp_descriptor.o NAME=libcisco.a diff --git a/src/mod/cisco/cisco.h b/src/mod/cisco/cisco.h index cc03e067..ebb6af10 100644 --- a/src/mod/cisco/cisco.h +++ b/src/mod/cisco/cisco.h @@ -8,6 +8,8 @@ extern int cisco_out_ap_timesync(struct conn *conn,struct cw_action_out * a,uint extern int cisco_in_wtp_descriptor(struct conn *conn, struct cw_action_in *a, uint8_t * data, int len, struct sockaddr *from); extern int cisco_out_ac_descriptor(struct conn *conn,struct cw_action_out * a,uint8_t *dst) ; +extern int cisco_out_wtp_descriptor(struct conn *conn, struct cw_action_out *a, uint8_t * dst); + #endif diff --git a/src/mod/cisco/cisco_actions_wtp.c b/src/mod/cisco/cisco_actions_wtp.c index 9922ee9f..ef28e278 100644 --- a/src/mod/cisco/cisco_actions_wtp.c +++ b/src/mod/cisco/cisco_actions_wtp.c @@ -17,7 +17,6 @@ */ -#include "cw/capwap.h" #include "cw/cipwap.h" #include "cw/action.h" @@ -30,6 +29,7 @@ #include "mod_cisco.h" #include "cisco.h" + static cw_action_in_t actions_in[] = { @@ -43,7 +43,16 @@ static cw_action_in_t actions_in[] = { static cw_action_out_t actions_out[]={ + /* WTP Descriptor */ + { + .msg_id = CW_MSG_DISCOVERY_REQUEST, + .elem_id = CW_ELEM_WTP_DESCRIPTOR, + .item_id = CW_ITEM_WTP_DESCRIPTOR, + .out = cisco_out_wtp_descriptor, + .mand = 1 + } + , {0,0} diff --git a/src/mod/cisco/mod_cisco.h b/src/mod/cisco/mod_cisco.h index 2377815f..e0e4b9b2 100644 --- a/src/mod/cisco/mod_cisco.h +++ b/src/mod/cisco/mod_cisco.h @@ -2,6 +2,7 @@ #define __MOD_CISCO_H struct mod_ac * mod_cisco_ac(); +struct mod_ac * mod_cisco_wtp(); #endif diff --git a/src/mod/modload.h b/src/mod/modload.h index 18173595..5b2f2576 100644 --- a/src/mod/modload.h +++ b/src/mod/modload.h @@ -12,6 +12,6 @@ struct mod_wtp * modload_wtp(const char *name); #include "capwap80211/mod_capwap80211.h" #define MODS_AC { mod_capwap_ac,mod_cipwap_ac, mod_cisco_ac, mod_capwap80211_ac, NULL } -#define MODS_WTP { mod_capwap_wtp,mod_capwap80211_wtp, NULL } +#define MODS_WTP { mod_capwap_wtp,mod_cisco_wtp, mod_capwap80211_wtp, NULL } diff --git a/src/wtp/wtp_main.c b/src/wtp/wtp_main.c index 20905b33..7c3084eb 100644 --- a/src/wtp/wtp_main.c +++ b/src/wtp/wtp_main.c @@ -138,14 +138,17 @@ int main() // cw_register_actions_cipwap_wtp(&capwap_actions); // cw_register_actions_capwap_80211_wtp(&capwap_actions); +// +#define CWMOD "cisco" +#define CWBIND "cisco" - struct mod_wtp *mod = modload_wtp("capwap"); + struct mod_wtp *mod = modload_wtp(CWMOD); if (!mod) { printf("Can't load mod capwap\n"); exit(0); } mod->register_actions(&capwap_actions,MOD_MODE_CAPWAP); - mod = modload_wtp("capwap80211"); + mod = modload_wtp(CWBIND); if (!mod) { printf("Can't load mod capwap80211\n"); exit(0);