summaryrefslogtreecommitdiff
path: root/ipacm/inc/IPACM_Wan.h
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@localhost>2015-02-06 20:44:46 -0800
committerGerrit - the friendly Code Review server <code-review@localhost>2015-02-06 20:44:46 -0800
commit9532e63ab2cb343d247c75fa98d7958635947c44 (patch)
treeb6aca44ba711683a422e8ab34f2b5d2f2e3c1e97 /ipacm/inc/IPACM_Wan.h
parenta2e5d950ae7a412ce15f56acb2ca2a1dfae4f04e (diff)
parentb2d6cf941dd8c976cc2961085861dcee10900946 (diff)
downloadipacfg-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.h39
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);