From fd06eafb806e6de834b1324f850df33e961cf50e Mon Sep 17 00:00:00 2001 From: "7u83@mail.ru" <7u83@mail.ru@noemail.net> Date: Fri, 4 Mar 2016 19:41:21 +0000 Subject: [PATCH] Added capwap_out_wtp_descriptor FossilOrigin-Name: a0f7e0d4f447c5d3ebe6a177db50c73eeeff5176510a94b040ab34623e73a14a --- src/mod/capwap/Makefile | 3 +- src/mod/capwap/capwap_out_wtp_descriptor.c | 64 ++++++++++++++++++++++ 2 files changed, 66 insertions(+), 1 deletion(-) create mode 100644 src/mod/capwap/capwap_out_wtp_descriptor.c diff --git a/src/mod/capwap/Makefile b/src/mod/capwap/Makefile index 9e41e800..b8c216d0 100644 --- a/src/mod/capwap/Makefile +++ b/src/mod/capwap/Makefile @@ -5,7 +5,8 @@ OBJS=\ capwap_actions_ac.o \ capwap_actions_wtp.o \ capwap_in_wtp_descriptor.o \ - capwap_in_wtp_board_data.o + capwap_in_wtp_board_data.o \ + capwap_out_wtp_descriptor.o NAME=libcapwap.a diff --git a/src/mod/capwap/capwap_out_wtp_descriptor.c b/src/mod/capwap/capwap_out_wtp_descriptor.c new file mode 100644 index 00000000..84e3a9be --- /dev/null +++ b/src/mod/capwap/capwap_out_wtp_descriptor.c @@ -0,0 +1,64 @@ +#include "cw/log.h" +#include "cw/conn.h" +#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) +{ + if (capwap_mode==CW_MODE_CISCO){ + cw_put_word(dst,0x01); + return 2; + } + + int n=2; + + dst+=cw_put_byte(dst,n); + + int i; + for (i=0; iconfig; + + // XXX Dummy WTP Descriptor Header + uint8_t *d = dst+4; + + d+=cw_put_byte(d,conn->radios->count); //max radios + d+=cw_put_byte(d,2); //radios in use + + d+=cw_put_encryption_subelems(d,conn->capwap_mode); + + mbag_item_t * i; + i = mbag_get(mbag,CW_ITEM_WTP_HARDWARE_VERSION); + if ( i ) { + d += cw_put_version(d,CW_SUBELEM_WTP_HARDWARE_VERSION,i->data); + } + else { + cw_log(LOG_ERR, "Can't send Hardware Version in WTP Descriptor, not set."); + } + + i = mbag_get(mbag,CW_ITEM_WTP_SOFTWARE_VERSION); + if ( i ) { + d += cw_put_version(d,CW_SUBELEM_WTP_SOFTWARE_VERSION,i->data); + } + else { + cw_log(LOG_ERR, "Can't send Software Version in WTP descriptor, not set."); + } + + + int len = d-dst-4; + return len + cw_put_elem_hdr(dst,a->elem_id,len); +}