Merge "ipacm: add support on softap intra-bss hw-offload"
diff --git a/ipacm/inc/IPACM_Defs.h b/ipacm/inc/IPACM_Defs.h
index 59a8bb2..d2186b6 100644
--- a/ipacm/inc/IPACM_Defs.h
+++ b/ipacm/inc/IPACM_Defs.h
@@ -368,6 +368,7 @@
uint32_t if_index_tether;
uint32_t ipv6_prefix[2];
bool is_sta;
+ uint8_t xlat_mux_id;
}ipacm_event_iface_up_tehter;
typedef enum
diff --git a/ipacm/src/IPACM_Lan.cpp b/ipacm/src/IPACM_Lan.cpp
index ccb1d73..827839b 100644
--- a/ipacm/src/IPACM_Lan.cpp
+++ b/ipacm/src/IPACM_Lan.cpp
@@ -528,9 +528,10 @@
IPACMERR("No event data is found.\n");
return;
}
- IPACMDBG_H("Backhaul is sta mode?%d, if_index_tether:%d tether_if_name:%s\n", data_wan_tether->is_sta,
+ IPACMDBG_H("Backhaul is sta mode?%d, if_index_tether:%d tether_if_name:%s xlat_mux_id: %d\n", data_wan_tether->is_sta,
data_wan_tether->if_index_tether,
- IPACM_Iface::ipacmcfg->iface_table[data_wan_tether->if_index_tether].iface_name);
+ IPACM_Iface::ipacmcfg->iface_table[data_wan_tether->if_index_tether].iface_name,
+ data_wan_tether->xlat_mux_id);
#ifndef FEATURE_IPACM_HAL
if (data_wan_tether->if_index_tether != ipa_if_num)
{
@@ -591,7 +592,7 @@
{
ext_prop = IPACM_Iface::ipacmcfg->GetExtProp(IPA_IP_v4);
handle_wan_up_ex(ext_prop, IPA_IP_v4,
- IPACM_Wan::getXlat_Mux_Id());
+ data_wan_tether->xlat_mux_id);
} else {
handle_wan_up(IPA_IP_v4);
}
@@ -601,7 +602,7 @@
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, data_wan_tether->xlat_mux_id);
} else {
handle_wan_up(IPA_IP_v4);
}
@@ -775,6 +776,7 @@
ext_prop = IPACM_Iface::ipacmcfg->GetExtProp(data->prefix.iptype);
if (data->prefix.iptype == IPA_IP_v4)
{
+ IPACMDBG_H("check getXlat_Mux_Id:%d\n", IPACM_Wan::getXlat_Mux_Id());
handle_wan_up_ex(ext_prop, data->prefix.iptype,
IPACM_Wan::getXlat_Mux_Id());
}
@@ -1793,6 +1795,7 @@
}
mux.qmap_id = ipacm_config->GetQmapId();
+ IPACMDBG("get mux id %d for rx-endpoint\n", mux.qmap_id);
for(cnt=0; cnt<rx_prop->num_rx_props; cnt++)
{
mux.client = rx_prop->rx[cnt].src_pipe;
diff --git a/ipacm/src/IPACM_Wan.cpp b/ipacm/src/IPACM_Wan.cpp
index 784fb0e..278f9ac 100644
--- a/ipacm/src/IPACM_Wan.cpp
+++ b/ipacm/src/IPACM_Wan.cpp
@@ -1747,9 +1747,14 @@
{
wanup_data->is_sta = false;
}
+ /* xlat mux-id*/
+ if(is_xlat && (m_is_sta_mode == Q6_WAN))
+ wanup_data->xlat_mux_id = ext_prop->ext[0].mux_id;
+ else
+ wanup_data->xlat_mux_id = 0;
IPACMDBG_H("Posting IPA_HANDLE_WAN_UP_TETHER with below information:\n");
- IPACMDBG_H("tether_if_name:%s, is sta mode:%d\n",
- IPACM_Iface::ipacmcfg->iface_table[ipa_if_num_tether].iface_name, wanup_data->is_sta);
+ IPACMDBG_H("tether_if_name:%s, is sta mode:%d xlat_mux_id: %d\n",
+ IPACM_Iface::ipacmcfg->iface_table[ipa_if_num_tether].iface_name, wanup_data->is_sta, wanup_data->xlat_mux_id);
memset(&evt_data, 0, sizeof(evt_data));
if (iptype == IPA_IP_v4)
diff --git a/ipacm/src/IPACM_Wlan.cpp b/ipacm/src/IPACM_Wlan.cpp
index f17c0e9..427aef3 100644
--- a/ipacm/src/IPACM_Wlan.cpp
+++ b/ipacm/src/IPACM_Wlan.cpp
@@ -366,9 +366,10 @@
IPACMERR("No event data is found.\n");
return;
}
- IPACMDBG_H("Backhaul is sta mode?%d, if_index_tether:%d tether_if_name:%s\n", data_wan_tether->is_sta,
+ IPACMDBG_H("Backhaul is sta mode?%d, if_index_tether:%d tether_if_name:%s xlat_mux_id: %d\n", data_wan_tether->is_sta,
data_wan_tether->if_index_tether,
- IPACM_Iface::ipacmcfg->iface_table[data_wan_tether->if_index_tether].iface_name);
+ IPACM_Iface::ipacmcfg->iface_table[data_wan_tether->if_index_tether].iface_name,
+ data_wan_tether->xlat_mux_id);
#ifndef FEATURE_IPACM_HAL
if (data_wan_tether->if_index_tether != ipa_if_num)
{
@@ -390,7 +391,7 @@
{
ext_prop = IPACM_Iface::ipacmcfg->GetExtProp(IPA_IP_v4);
handle_wan_up_ex(ext_prop, IPA_IP_v4,
- IPACM_Wan::getXlat_Mux_Id());
+ data_wan_tether->xlat_mux_id);
} else {
handle_wan_up(IPA_IP_v4);
}