diff options
author | Linux Build Service Account <lnxbuild@localhost> | 2015-10-21 06:26:59 -0700 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2015-10-21 06:26:59 -0700 |
commit | 02468249b482ae2bfb0fc8cd79404f1c88509df6 (patch) | |
tree | d5b7b3c40b6eab6b05201e144dea4831409ae6a1 | |
parent | deb2acb9fb1e1272f3e3335ee89b30a0902edb4d (diff) | |
parent | bc093febfd74c250debc755771d721b6f6fd914f (diff) | |
download | ipacfg-mgr-02468249b482ae2bfb0fc8cd79404f1c88509df6.tar.gz |
Merge "IPACM: Fix to clean up default LL routes"
-rw-r--r-- | ipacm/inc/IPACM_Wan.h | 3 | ||||
-rw-r--r-- | ipacm/src/IPACM_Wan.cpp | 34 |
2 files changed, 26 insertions, 11 deletions
diff --git a/ipacm/inc/IPACM_Wan.h b/ipacm/inc/IPACM_Wan.h index 09484ca..711f276 100644 --- a/ipacm/inc/IPACM_Wan.h +++ b/ipacm/inc/IPACM_Wan.h @@ -449,6 +449,9 @@ private: int config_dft_firewall_rules_ex(struct ipa_flt_rule_add* rules, int rule_offset, ipa_ip_type iptype); + /* Change IP Type.*/ + void config_ip_type(ipa_ip_type iptype); + /* init filtering rule in wan dl filtering table */ int init_fl_rule_ex(ipa_ip_type iptype); diff --git a/ipacm/src/IPACM_Wan.cpp b/ipacm/src/IPACM_Wan.cpp index d5e4830..cc06beb 100644 --- a/ipacm/src/IPACM_Wan.cpp +++ b/ipacm/src/IPACM_Wan.cpp @@ -306,9 +306,12 @@ int IPACM_Wan::handle_addr_evt(ipacm_event_data_addr *data) dft_rt_rule_hdl[MAX_DEFAULT_v4_ROUTE_RULES + 2*num_dft_rt_v6], dft_rt_rule_hdl[MAX_DEFAULT_v4_ROUTE_RULES + 2*num_dft_rt_v6+1],num_dft_rt_v6); + /* Update the IP Type. */ + config_ip_type(data->iptype); + /* add default filtering rules when wan-iface get global v6-prefix */ - if (num_dft_rt_v6 == 1) - { + if (num_dft_rt_v6 == 1) + { if(m_is_sta_mode == Q6_WAN) { modem_ipv6_pdn_index = num_ipv6_modem_pdn; @@ -320,7 +323,7 @@ int IPACM_Wan::handle_addr_evt(ipacm_event_data_addr *data) { init_fl_rule(data->iptype); } - } + } /* add WAN DL interface IP specific flt rule for IPv6 when backhaul is not Q6 */ if(m_is_sta_mode != Q6_WAN) @@ -464,6 +467,9 @@ int IPACM_Wan::handle_addr_evt(ipacm_event_data_addr *data) IPACMDBG_H("ipv4 wan iface rt-rule hdll=0x%x\n", dft_rt_rule_hdl[0]); /* initial multicast/broadcast/fragment filter rule */ + /* Update the IP Type. */ + config_ip_type(data->iptype); + /* only do one time */ if(!wan_v4_addr_set) { @@ -3054,13 +3060,8 @@ int IPACM_Wan::config_dft_firewall_rules_ex(struct ipa_flt_rule_add *rules, int return IPACM_SUCCESS; } -int IPACM_Wan::init_fl_rule_ex(ipa_ip_type iptype) +void IPACM_Wan::config_ip_type(ipa_ip_type iptype) { - int res = IPACM_SUCCESS; - - char *dev_wlan0="wlan0"; - char *dev_wlan1="wlan1"; - char *dev_ecm0="ecm0"; /* update the iface ip-type to be IPA_IP_v4, IPA_IP_v6 or both*/ if (iptype == IPA_IP_v4) @@ -3069,7 +3070,7 @@ int IPACM_Wan::init_fl_rule_ex(ipa_ip_type iptype) if ((ip_type == IPA_IP_v4) || (ip_type == IPA_IP_MAX)) { IPACMDBG_H(" interface(%s:%d) already in ip-type %d\n", dev_name, ipa_if_num, ip_type); - return res; + return; } if (ip_type == IPA_IP_v6) @@ -3087,7 +3088,7 @@ int IPACM_Wan::init_fl_rule_ex(ipa_ip_type iptype) if ((ip_type == IPA_IP_v6) || (ip_type == IPA_IP_MAX)) { IPACMDBG_H(" interface(%s:%d) already in ip-type %d\n", dev_name, ipa_if_num, ip_type); - return res; + return; } if (ip_type == IPA_IP_v4) @@ -3102,6 +3103,17 @@ int IPACM_Wan::init_fl_rule_ex(ipa_ip_type iptype) IPACMDBG_H(" interface(%s:%d) now ip-type is %d\n", dev_name, ipa_if_num, ip_type); } + return; +} + +int IPACM_Wan::init_fl_rule_ex(ipa_ip_type iptype) +{ + int res = IPACM_SUCCESS; + + char *dev_wlan0="wlan0"; + char *dev_wlan1="wlan1"; + char *dev_ecm0="ecm0"; + /* ADD corresponding ipa_rm_resource_name of RX-endpoint before adding all IPV4V6 FT-rules */ IPACMDBG_H(" dun add producer dependency from %s with registered rx-prop\n", dev_name); |