diff options
author | Linux Build Service Account <lnxbuild@localhost> | 2015-02-06 20:44:46 -0800 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2015-02-06 20:44:46 -0800 |
commit | 9532e63ab2cb343d247c75fa98d7958635947c44 (patch) | |
tree | b6aca44ba711683a422e8ab34f2b5d2f2e3c1e97 /ipacm/inc/IPACM_Wan.h | |
parent | a2e5d950ae7a412ce15f56acb2ca2a1dfae4f04e (diff) | |
parent | b2d6cf941dd8c976cc2961085861dcee10900946 (diff) | |
download | ipacfg-mgr-9532e63ab2cb343d247c75fa98d7958635947c44.tar.gz |
Merge "IPACM: support external-AP running bridge mode"
Diffstat (limited to 'ipacm/inc/IPACM_Wan.h')
-rw-r--r-- | ipacm/inc/IPACM_Wan.h | 39 |
1 files changed, 37 insertions, 2 deletions
diff --git a/ipacm/inc/IPACM_Wan.h b/ipacm/inc/IPACM_Wan.h index 96bb0e6..5160ac3 100644 --- a/ipacm/inc/IPACM_Wan.h +++ b/ipacm/inc/IPACM_Wan.h @@ -134,7 +134,9 @@ private: uint32_t ODU_fl_hdl[IPA_NUM_DEFAULT_WAN_FILTER_RULES]; int num_firewall_v4,num_firewall_v6; uint32_t wan_v4_addr; + uint32_t wan_v4_addr_gw; bool wan_v4_addr_set; + bool wan_v4_addr_gw_set; bool active_v4; bool active_v6; bool header_set_v4; @@ -204,6 +206,39 @@ private: return IPACM_INVALID_INDEX; } + inline int get_wan_client_index_ipv4(uint32_t ipv4_addr) + { + int cnt; + int num_wan_client_tmp = num_wan_client; + + IPACMDBG_H("Passed IPv4 %x\n", ipv4_addr); + + for(cnt = 0; cnt < num_wan_client_tmp; cnt++) + { + if (get_client_memptr(wan_client, cnt)->ipv4_set) + { + IPACMDBG_H("stored IPv4 %x\n", get_client_memptr(wan_client, cnt)->v4_addr); + + if(ipv4_addr == get_client_memptr(wan_client, cnt)->v4_addr) + { + IPACMDBG_H("Matched client index: %d\n", cnt); + IPACMDBG_H("The MAC is %02x:%02x:%02x:%02x:%02x:%02x\n", + get_client_memptr(wan_client, cnt)->mac[0], + get_client_memptr(wan_client, cnt)->mac[1], + get_client_memptr(wan_client, cnt)->mac[2], + get_client_memptr(wan_client, cnt)->mac[3], + get_client_memptr(wan_client, cnt)->mac[4], + get_client_memptr(wan_client, cnt)->mac[5]); + IPACMDBG_H("header set ipv4(%d) ipv6(%d)\n", + get_client_memptr(wan_client, cnt)->ipv4_header_set, + get_client_memptr(wan_client, cnt)->ipv6_header_set); + return cnt; + } + } + } + return IPACM_INVALID_INDEX; + } + inline int delete_wan_rtrules(int clt_indx, ipa_ip_type iptype) { uint32_t tx_index; @@ -279,8 +314,8 @@ private: /* wan default route/filter rule configuration */ int handle_route_add_evt(ipa_ip_type iptype); - /* construct complete ethernet header */ - int handle_header_add_evt(uint8_t *mac_addr); + /* construct complete STA ethernet header */ + int handle_sta_header_add_evt(); int config_dft_firewall_rules(ipa_ip_type iptype); |