summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammed Javid <mjavid@codeaurora.org>2018-01-04 12:45:45 +0530
committerGerrit - the friendly Code Review server <code-review@localhost>2018-03-05 02:29:10 -0800
commitecbbf811402846cffd587a2a41c19210b39d0ec7 (patch)
tree691b55f4450f842ef52ee97623d3556556690ffa
parent2e0b44cc7059f9a90e131ef26b6b3c52fc6f686f (diff)
downloadipacfg-mgr-ecbbf811402846cffd587a2a41c19210b39d0ec7.tar.gz
ipacm: Support dynamic backhaul switch between LTE and STA
Support dynamic backhaul switch between LTE and STA if framework failed to clean up previous backhaul settings Change-Id: I5b330f81ad5594c5e4c84730cdb414ee722818c3
-rw-r--r--ipacm/src/IPACM_OffloadManager.cpp11
1 files changed, 11 insertions, 0 deletions
diff --git a/ipacm/src/IPACM_OffloadManager.cpp b/ipacm/src/IPACM_OffloadManager.cpp
index a42f919..85ef7e4 100644
--- a/ipacm/src/IPACM_OffloadManager.cpp
+++ b/ipacm/src/IPACM_OffloadManager.cpp
@@ -442,6 +442,17 @@ RET IPACM_OffloadManager::setUpstream(const char *upstream_name, const Prefix& g
/* reset the stats when switch from LTE->STA */
if (index != default_gw_index) {
IPACMDBG_H(" interface switched to %s\n", upstream_name);
+ if (upstream_v4_up == true) {
+ IPACMDBG_H("clean upstream for ipv4-fam(%d) upstream_v4_up(%d)\n", gw_addr_v4.fam, upstream_v4_up);
+ post_route_evt(IPA_IP_v4, default_gw_index, IPA_WAN_UPSTREAM_ROUTE_DEL_EVENT, gw_addr_v4);
+ upstream_v4_up = false;
+ }
+ if (upstream_v6_up == true) {
+ IPACMDBG_H("clean upstream for ipv6-fam(%d) upstream_v6_up(%d)\n", gw_addr_v6.fam, upstream_v6_up);
+ post_route_evt(IPA_IP_v6, default_gw_index, IPA_WAN_UPSTREAM_ROUTE_DEL_EVENT, gw_addr_v6);
+ upstream_v6_up = false;
+ }
+ default_gw_index = INVALID_IFACE;
if(memcmp(upstream_name, "wlan0", sizeof("wlan0")) == 0)
{
IPACMDBG_H("switch to STA mode, need reset wlan-fw stats\n");