summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@localhost>2018-07-10 02:12:35 -0600
committerLinux Build Service Account <lnxbuild@localhost>2018-07-10 02:12:35 -0600
commit665f1f97ebbc1d726d88d278484979f90ac14daa (patch)
tree35482cbd66a6f7ca270d222d95b3953384305b70
parent93aaa0f1af99c47e26e3a8a021e28c6fb96a5467 (diff)
parent7ef6ebd06a624baa631136928ace06b44ac87026 (diff)
Merge 7ef6ebd06a624baa631136928ace06b44ac87026 on remote branch
Change-Id: I625a21ce005be28556891abe6f4b184ab875ddfa
-rw-r--r--ipacm/src/Android.mk1
-rw-r--r--ipacm/src/IPACM_Lan.cpp14
-rw-r--r--ipacm/src/IPACM_OffloadManager.cpp4
-rw-r--r--ipacm/src/IPACM_Wan.cpp21
-rw-r--r--ipacm/src/IPACM_Wlan.cpp14
5 files changed, 47 insertions, 7 deletions
diff --git a/ipacm/src/Android.mk b/ipacm/src/Android.mk
index 0a7f2ed..036454f 100644
--- a/ipacm/src/Android.mk
+++ b/ipacm/src/Android.mk
@@ -11,6 +11,7 @@ BOARD_IPAv3_LIST += msmnile
BOARD_IPAv3_LIST += $(MSMSTEPPE)
BOARD_IPACM_RESTART_LIST := sdm845
BOARD_IPACM_RESTART_LIST += sdm710
+BOARD_IPACM_RESTART_LIST += msmnile
ifneq ($(call is-board-platform-in-list,$(BOARD_PLATFORM_LIST)),true)
ifneq (,$(filter $(QCOM_BOARD_PLATFORMS),$(TARGET_BOARD_PLATFORM)))
diff --git a/ipacm/src/IPACM_Lan.cpp b/ipacm/src/IPACM_Lan.cpp
index 289044a..b1cdb2f 100644
--- a/ipacm/src/IPACM_Lan.cpp
+++ b/ipacm/src/IPACM_Lan.cpp
@@ -590,7 +590,8 @@ void IPACM_Lan::event_callback(ipa_cm_event_id event, void *param)
if (data_wan_tether->is_sta == false)
{
ext_prop = IPACM_Iface::ipacmcfg->GetExtProp(IPA_IP_v4);
- handle_wan_up_ex(ext_prop, IPA_IP_v4, 0);
+ handle_wan_up_ex(ext_prop, IPA_IP_v4,
+ IPACM_Wan::getXlat_Mux_Id());
} else {
handle_wan_up(IPA_IP_v4);
}
@@ -772,7 +773,14 @@ void IPACM_Lan::event_callback(ipa_cm_event_id event, void *param)
if (IPACM_Wan::backhaul_is_sta_mode == false) /* LTE */
{
ext_prop = IPACM_Iface::ipacmcfg->GetExtProp(data->prefix.iptype);
- handle_wan_up_ex(ext_prop, data->prefix.iptype, 0);
+ if (data->prefix.iptype == IPA_IP_v4)
+ {
+ handle_wan_up_ex(ext_prop, data->prefix.iptype,
+ IPACM_Wan::getXlat_Mux_Id());
+ }
+ else {
+ handle_wan_up_ex(ext_prop, data->prefix.iptype, 0);
+ }
} else {
handle_wan_up(data->prefix.iptype); /* STA */
}
@@ -2916,9 +2924,11 @@ int IPACM_Lan::handle_down_evt()
IPACMDBG_H("LAN IF goes down, backhaul type %d\n", IPACM_Wan::backhaul_is_sta_mode);
handle_wan_down(IPACM_Wan::backhaul_is_sta_mode);
#ifdef FEATURE_IPA_ANDROID
+#ifndef FEATURE_IPACM_HAL
/* Clean-up tethered-iface list */
IPACM_Wan::delete_tether_iface(IPA_IP_v4, ipa_if_num);
#endif
+#endif
}
if (IPACM_Wan::isWanUP_V6(ipa_if_num) && rx_prop != NULL)
diff --git a/ipacm/src/IPACM_OffloadManager.cpp b/ipacm/src/IPACM_OffloadManager.cpp
index 12ee5ce..b8c3cf5 100644
--- a/ipacm/src/IPACM_OffloadManager.cpp
+++ b/ipacm/src/IPACM_OffloadManager.cpp
@@ -678,11 +678,11 @@ int IPACM_OffloadManager::post_route_evt(enum ipa_ip_type iptype, int index, ipa
IPACMDBG_H("IPV6 gateway: %08x:%08x:%08x:%08x \n",
evt_data_route->ipv6_addr_gw[0], evt_data_route->ipv6_addr_gw[1], evt_data_route->ipv6_addr_gw[2], evt_data_route->ipv6_addr_gw[3]);
#endif
- if (event == WAN_UPSTREAM_ROUTE_ADD) {
+ if (event == IPA_WAN_UPSTREAM_ROUTE_ADD_EVENT) {
IPACMDBG_H("Received WAN_UPSTREAM_ROUTE_ADD: fid(%d) tether_fid(%d) ip-type(%d)\n", evt_data_route->if_index,
evt_data_route->if_index_tether, evt_data_route->iptype);
}
- else if (event == WAN_UPSTREAM_ROUTE_DEL) {
+ else if (event == IPA_WAN_UPSTREAM_ROUTE_DEL_EVENT) {
IPACMDBG_H("Received WAN_UPSTREAM_ROUTE_DEL: fid(%d) tether_fid(%d) ip-type(%d)\n",
evt_data_route->if_index,
evt_data_route->if_index_tether, evt_data_route->iptype);
diff --git a/ipacm/src/IPACM_Wan.cpp b/ipacm/src/IPACM_Wan.cpp
index a131b23..f0fd119 100644
--- a/ipacm/src/IPACM_Wan.cpp
+++ b/ipacm/src/IPACM_Wan.cpp
@@ -1747,6 +1747,7 @@ int IPACM_Wan::post_wan_up_tether_evt(ipa_ip_type iptype, int ipa_if_num_tether)
if (iptype == IPA_IP_v4)
{
evt_data.event = IPA_HANDLE_WAN_UP_TETHER;
+#ifndef FEATURE_IPACM_HAL
/* Add support tether ifaces to its array*/
IPACM_Wan::ipa_if_num_tether_v4[IPACM_Wan::ipa_if_num_tether_v4_total] = ipa_if_num_tether;
IPACMDBG_H("adding tether iface(%s) ipa_if_num_tether_v4_total(%d) on wan_iface(%s)\n",
@@ -1754,11 +1755,13 @@ int IPACM_Wan::post_wan_up_tether_evt(ipa_ip_type iptype, int ipa_if_num_tether)
IPACM_Wan::ipa_if_num_tether_v4_total,
IPACM_Iface::ipacmcfg->iface_table[ipa_if_num].iface_name);
IPACM_Wan::ipa_if_num_tether_v4_total++;
+#endif
}
else
{
evt_data.event = IPA_HANDLE_WAN_UP_V6_TETHER;
memcpy(wanup_data->ipv6_prefix, ipv6_prefix, sizeof(wanup_data->ipv6_prefix));
+#ifndef FEATURE_IPACM_HAL
/* Add support tether ifaces to its array*/
IPACM_Wan::ipa_if_num_tether_v6[IPACM_Wan::ipa_if_num_tether_v6_total] = ipa_if_num_tether;
IPACMDBG_H("adding tether iface(%s) ipa_if_num_tether_v6_total(%d) on wan_iface(%s)\n",
@@ -1766,6 +1769,7 @@ int IPACM_Wan::post_wan_up_tether_evt(ipa_ip_type iptype, int ipa_if_num_tether)
IPACM_Wan::ipa_if_num_tether_v6_total,
IPACM_Iface::ipacmcfg->iface_table[ipa_if_num].iface_name);
IPACM_Wan::ipa_if_num_tether_v6_total++;
+#endif
}
evt_data.evt_data = (void *)wanup_data;
IPACM_EvtDispatcher::PostEvt(&evt_data);
@@ -1804,22 +1808,26 @@ int IPACM_Wan::post_wan_down_tether_evt(ipa_ip_type iptype, int ipa_if_num_tethe
if (iptype == IPA_IP_v4)
{
+#ifndef FEATURE_IPACM_HAL
if(delete_tether_iface(iptype, ipa_if_num_tether))
{
IPACMDBG_H("Not finding the tethered client on ipv4.\n");
free(wandown_data);
return IPACM_SUCCESS;
}
+#endif
evt_data.event = IPA_HANDLE_WAN_DOWN_TETHER;
}
else
{
+#ifndef FEATURE_IPACM_HAL
if(delete_tether_iface(iptype, ipa_if_num_tether))
{
IPACMDBG_H("Not finding the tethered client on ipv6.\n");
free(wandown_data);
return IPACM_SUCCESS;
}
+#endif
evt_data.event = IPA_HANDLE_WAN_DOWN_V6_TETHER;
}
evt_data.evt_data = (void *)wandown_data;
@@ -4713,8 +4721,11 @@ fail:
int IPACM_Wan::handle_down_evt_ex()
{
int res = IPACM_SUCCESS;
- uint32_t i, tether_total;
+ uint32_t i;
+#ifndef FEATURE_IPACM_HAL
+ uint32_t tether_total;
int ipa_if_num_tether_tmp[IPA_MAX_IFACE_ENTRIES];
+#endif
IPACMDBG_H(" wan handle_down_evt \n");
@@ -4759,6 +4770,9 @@ int IPACM_Wan::handle_down_evt_ex()
handle_route_del_evt_ex(IPA_IP_v4);
#ifdef FEATURE_IPA_ANDROID
/* posting wan_down_tether for all lan clients */
+#ifdef FEATURE_IPACM_HAL
+ post_wan_down_tether_evt(IPA_IP_v4, 0);
+#else
for (i=0; i < IPACM_Wan::ipa_if_num_tether_v4_total; i++)
{
ipa_if_num_tether_tmp[i] = IPACM_Wan::ipa_if_num_tether_v4[i];
@@ -4771,6 +4785,7 @@ int IPACM_Wan::handle_down_evt_ex()
i, IPACM_Iface::ipacmcfg->iface_table[ipa_if_num_tether_tmp[i]].iface_name);
}
#endif
+#endif
if(IPACM_Wan::wan_up_v6)
{
IPACMDBG_H("modem v6-call still up(%s), not reset\n", IPACM_Wan::wan_up_dev_name);
@@ -4811,6 +4826,9 @@ int IPACM_Wan::handle_down_evt_ex()
handle_route_del_evt_ex(IPA_IP_v6);
#ifdef FEATURE_IPA_ANDROID
/* posting wan_down_tether for all lan clients */
+#ifdef FEATURE_IPACM_HAL
+ post_wan_down_tether_evt(IPA_IP_v6, 0);
+#else
for (i=0; i < IPACM_Wan::ipa_if_num_tether_v6_total; i++)
{
ipa_if_num_tether_tmp[i] = IPACM_Wan::ipa_if_num_tether_v6[i];
@@ -4823,6 +4841,7 @@ int IPACM_Wan::handle_down_evt_ex()
i, IPACM_Iface::ipacmcfg->iface_table[ipa_if_num_tether_tmp[i]].iface_name);
}
#endif
+#endif
if(IPACM_Wan::wan_up)
{
IPACMDBG_H("modem v4-call still up(%s), not reset\n", IPACM_Wan::wan_up_dev_name);
diff --git a/ipacm/src/IPACM_Wlan.cpp b/ipacm/src/IPACM_Wlan.cpp
index 4925e1c..df1c569 100644
--- a/ipacm/src/IPACM_Wlan.cpp
+++ b/ipacm/src/IPACM_Wlan.cpp
@@ -384,7 +384,8 @@ void IPACM_Wlan::event_callback(ipa_cm_event_id event, void *param)
if(data_wan_tether->is_sta == false)
{
ext_prop = IPACM_Iface::ipacmcfg->GetExtProp(IPA_IP_v4);
- handle_wan_up_ex(ext_prop, IPA_IP_v4, 0);
+ handle_wan_up_ex(ext_prop, IPA_IP_v4,
+ IPACM_Wan::getXlat_Mux_Id());
} else {
handle_wan_up(IPA_IP_v4);
}
@@ -578,7 +579,14 @@ void IPACM_Wlan::event_callback(ipa_cm_event_id event, void *param)
if (IPACM_Wan::backhaul_is_sta_mode == false) /* LTE */
{
ext_prop = IPACM_Iface::ipacmcfg->GetExtProp(data->prefix.iptype);
- handle_wan_up_ex(ext_prop, data->prefix.iptype, 0);
+ if (data->prefix.iptype == IPA_IP_v4)
+ {
+ handle_wan_up_ex(ext_prop, data->prefix.iptype,
+ IPACM_Wan::getXlat_Mux_Id());
+ }
+ else {
+ handle_wan_up_ex(ext_prop, data->prefix.iptype, 0);
+ }
} else {
handle_wan_up(data->prefix.iptype); /* STA */
}
@@ -1755,9 +1763,11 @@ int IPACM_Wlan::handle_down_evt()
IPACMDBG_H("LAN IF goes down, backhaul type %d\n", IPACM_Wan::backhaul_is_sta_mode);
IPACM_Lan::handle_wan_down(IPACM_Wan::backhaul_is_sta_mode);
#ifdef FEATURE_IPA_ANDROID
+#ifndef FEATURE_IPACM_HAL
/* Clean-up tethered-iface list */
IPACM_Wan::delete_tether_iface(IPA_IP_v4, ipa_if_num);
#endif
+#endif
}
if (IPACM_Wan::isWanUP_V6(ipa_if_num) && rx_prop != NULL)