From 77bbcd8fa4f1a4987ca5068a14b6ef973054a88b Mon Sep 17 00:00:00 2001 From: "7u83@mail.ru" <7u83@mail.ru@noemail.net> Date: Sun, 26 Apr 2015 14:50:53 +0000 Subject: [PATCH] Suport for capwap local ip address. FossilOrigin-Name: 1a377603205eff5dd5595fcf440feba134edb2ca9a8ae9c318a819391e02de00 --- src/capwap/Makefile | 1 + src/capwap/capwap.h | 4 +++- src/capwap/capwap_actions_ac.c | 7 ++++++- src/capwap/capwap_items.h | 1 + src/capwap/capwap_strings_elem.c | 2 +- src/capwap/cipwap_strings_elem.c | 1 + 6 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/capwap/Makefile b/src/capwap/Makefile index 2bd5b5d5..fb29c76f 100644 --- a/src/capwap/Makefile +++ b/src/capwap/Makefile @@ -138,6 +138,7 @@ CAPWAPOBJS= \ cw_out_cisco_ac_descriptor.o \ cw_out_cisco_ap_timesync.o \ cw_in_cisco_image_identifier.o\ + cw_out_capwap_local_ip_address.o\ cw_out_capwap_control_ip_addr_list.o \ cw_in_capwap_control_ipv4_address.o\ cw_in_radio_administrative_state.o \ diff --git a/src/capwap/capwap.h b/src/capwap/capwap.h index bd98ba8e..c6df36dd 100644 --- a/src/capwap/capwap.h +++ b/src/capwap/capwap.h @@ -243,7 +243,7 @@ CW_MSG_MAXMSG = 26 #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 naming */ +#define CW_ELEM_AC_NAME_WITH_INDEX CW_ELEM_AC_NAME_WITH_PRIORITY /* Draft 7 naming */ #define CW_ELEM_AC_TIMESTAMP 6 #define CW_ELEM_ADD_MAC_ACL_ENTRY 7 #define CW_ELEM_ADD_STATION 8 @@ -1117,4 +1117,6 @@ int cw_in_radio_administrative_state(struct conn *conn, struct cw_action_in *a, int cw_in_radio_generic(struct conn *conn, struct cw_action_in *a, uint8_t * data, int len, struct sockaddr *from); +int cw_out_capwap_local_ip_address(struct conn *conn, struct cw_action_out *action, uint8_t * dst); + #endif diff --git a/src/capwap/capwap_actions_ac.c b/src/capwap/capwap_actions_ac.c index 00fc4bd2..0c2bac8c 100644 --- a/src/capwap/capwap_actions_ac.c +++ b/src/capwap/capwap_actions_ac.c @@ -208,7 +208,12 @@ cw_action_out_t capwap_actions_ac_out[] = { /* AC Name */ {CW_MSG_JOIN_RESPONSE, CW_ITEM_AC_NAME, 0, - CW_ELEM_AC_NAME, NULL, cw_out_generic, cw_out_get_local} + CW_ELEM_AC_NAME, NULL, cw_out_generic, cw_out_get_local,1} + , + + /* AC Name */ + {CW_MSG_JOIN_RESPONSE, CW_ITEM_CAPWAP_LOCAL_IP_ADDRESS, 0, + 0, NULL, cw_out_capwap_local_ip_address, NULL,1} , diff --git a/src/capwap/capwap_items.h b/src/capwap/capwap_items.h index 1d3f688e..3e5c0e5e 100644 --- a/src/capwap/capwap_items.h +++ b/src/capwap/capwap_items.h @@ -39,6 +39,7 @@ enum capwap_items { CW_ITEM_AC_IP_LIST, CW_ITEM_CAPWAP_CONTROL_IP_ADDRESS_LIST, + CW_ITEM_CAPWAP_LOCAL_IP_ADDRESS, CW_ITEM_LOCATION_DATA, CW_ITEM_SESSION_ID, diff --git a/src/capwap/capwap_strings_elem.c b/src/capwap/capwap_strings_elem.c index 96200ec6..3f91d0a9 100644 --- a/src/capwap/capwap_strings_elem.c +++ b/src/capwap/capwap_strings_elem.c @@ -7,7 +7,7 @@ struct cw_str capwap_strings_elem[] = { {CW_ELEM_AC_IPV6_LIST, "AC IPv6 List"}, {CW_ELEM_AC_NAME, "AC Name"}, {CW_ELEM_AC_NAME_WITH_PRIORITY, "AC Name with Priority"}, - {CW_ELEM_AC_NAME_WITH_INDEX, "AC Name width Index"}, +// {CW_ELEM_AC_NAME_WITH_INDEX, "AC Name with Index"}, {CW_ELEM_AC_TIMESTAMP, "AC Timestamp"}, {CW_ELEM_ADD_MAC_ACL_ENTRY, "Add MAC ACL Entry"}, {CW_ELEM_ADD_STATION, "Add Station"}, diff --git a/src/capwap/cipwap_strings_elem.c b/src/capwap/cipwap_strings_elem.c index e3e81566..370cf598 100644 --- a/src/capwap/cipwap_strings_elem.c +++ b/src/capwap/cipwap_strings_elem.c @@ -8,6 +8,7 @@ struct cw_str cipwap_strings_elem[] = { {CW_ELEM_WTP_IPV4_IP_ADDRESS, "WTP IPv4 IP Address"}, {CW_ELEM_WTP_IPV6_IP_ADDRESS, "WTP IPv6 IP Address"}, + {CW_ELEM_AC_NAME_WITH_INDEX, "AC Name with Index"}, {CW_CISCO_AP_GROUP_NAME, "WTP Group Name" },