summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin Peng <robinpeng@google.com>2019-02-21 01:05:47 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2019-02-21 01:05:47 +0000
commitf420bce43cd1fe216024707249f76ef40900f1dc (patch)
treed1e8bdef4446f870d4e22d6d0582f6b6edc708b4
parente829d45d7b0a56b9a027123bc945aa1700d60e42 (diff)
parent30cc245fa6c0bf7b18995b131e20d48153143d6b (diff)
downloadipacfg-mgr-f420bce43cd1fe216024707249f76ef40900f1dc.tar.gz
Merge "Merge remote-tracking branch 'goog/qcom/release/LA.UM.7.8.9.C1.08.00.00.516.083'"
-rw-r--r--ipacm/src/IPACM_Main.cpp2
-rw-r--r--ipacm/src/IPACM_Netlink.cpp6
-rw-r--r--ipacm/src/IPACM_OffloadManager.cpp6
-rw-r--r--ipacm/src/IPACM_Wan.cpp29
4 files changed, 11 insertions, 32 deletions
diff --git a/ipacm/src/IPACM_Main.cpp b/ipacm/src/IPACM_Main.cpp
index 1292d04..4716a47 100644
--- a/ipacm/src/IPACM_Main.cpp
+++ b/ipacm/src/IPACM_Main.cpp
@@ -607,6 +607,7 @@ void* ipa_driver_msg_notifier(void *param)
case WLAN_SWITCH_TO_SCC:
IPACMDBG_H("Received WLAN_SWITCH_TO_SCC\n");
+ [[fallthrough]];
case WLAN_WDI_ENABLE:
IPACMDBG_H("Received WLAN_WDI_ENABLE\n");
if (IPACM_Iface::ipacmcfg->isMCC_Mode == true)
@@ -618,6 +619,7 @@ void* ipa_driver_msg_notifier(void *param)
continue;
case WLAN_SWITCH_TO_MCC:
IPACMDBG_H("Received WLAN_SWITCH_TO_MCC\n");
+ [[fallthrough]];
case WLAN_WDI_DISABLE:
IPACMDBG_H("Received WLAN_WDI_DISABLE\n");
if (IPACM_Iface::ipacmcfg->isMCC_Mode == false)
diff --git a/ipacm/src/IPACM_Netlink.cpp b/ipacm/src/IPACM_Netlink.cpp
index 9c35497..fa4b8b7 100644
--- a/ipacm/src/IPACM_Netlink.cpp
+++ b/ipacm/src/IPACM_Netlink.cpp
@@ -686,7 +686,8 @@ static int ipa_nl_decode_nlmsg
evt_data.evt_data = data_fid;
IPACM_EvtDispatcher::PostEvt(&evt_data);
}
-
+ /* Andorid platform will use events from usb-driver directly */
+#ifndef FEATURE_IPA_ANDROID
/* Add IPACM support for ECM plug-in/plug_out */
/*--------------------------------------------------------------------------
Check if the interface is running.If its a RTM_NEWLINK and the interface
@@ -723,7 +724,7 @@ static int ipa_nl_decode_nlmsg
---------------------------------------------------------------------------*/
evt_data.event = IPA_USB_LINK_UP_EVENT;
evt_data.evt_data = data_fid;
- IPACMDBG_H("Posting usb IPA_LINK_UP_EVENT with if index: %d\n",
+ IPACMDBG_H("Posting usb IPA_USB_LINK_UP_EVENT with if index: %d\n",
data_fid->if_index);
IPACM_EvtDispatcher::PostEvt(&evt_data);
}
@@ -754,6 +755,7 @@ static int ipa_nl_decode_nlmsg
data_fid->if_index);
IPACM_EvtDispatcher::PostEvt(&evt_data);
}
+#endif /* not defined(FEATURE_IPA_ANDROID)*/
}
break;
diff --git a/ipacm/src/IPACM_OffloadManager.cpp b/ipacm/src/IPACM_OffloadManager.cpp
index d9a9f4b..34c945b 100644
--- a/ipacm/src/IPACM_OffloadManager.cpp
+++ b/ipacm/src/IPACM_OffloadManager.cpp
@@ -233,8 +233,6 @@ RET IPACM_OffloadManager::addDownstream(const char * downstream_name, const Pref
if (cache_need)
{
IPACMDBG_H("addDownstream name(%s) currently not support in ipa \n", downstream_name);
- /* add ipacm restart support */
- push_iface_up(downstream_name, false);
/* copy to the cache */
for(int i = 0; i < MAX_EVENT_CACHE ;i++)
@@ -796,7 +794,7 @@ bool IPACM_OffloadManager::search_framwork_cache(char * interface_name)
int IPACM_OffloadManager::push_iface_up(const char * if_name, bool upstream)
{
ipacm_cmd_q_data evt_data;
- ipacm_event_data_fid *data_fid;
+ ipacm_event_data_fid *data_fid = NULL;
ipacm_event_data_mac *data = NULL;
int index;
@@ -869,7 +867,7 @@ int IPACM_OffloadManager::push_iface_up(const char * if_name, bool upstream)
evt_data.event = IPA_WLAN_STA_LINK_UP_EVENT;
evt_data.evt_data = data;
IPACMDBG_H("Posting IPA_WLAN_STA_LINK_UP_EVENT with if index: %d\n",
- data_fid->if_index);
+ data->if_index);
IPACM_EvtDispatcher::PostEvt(&evt_data);
}
diff --git a/ipacm/src/IPACM_Wan.cpp b/ipacm/src/IPACM_Wan.cpp
index 1a34388..0c2c395 100644
--- a/ipacm/src/IPACM_Wan.cpp
+++ b/ipacm/src/IPACM_Wan.cpp
@@ -3765,34 +3765,11 @@ int IPACM_Wan::add_dft_filtering_rule(struct ipa_flt_rule_add *rules, int rule_o
memcpy(&(rules[rule_offset + 2]), &flt_rule_entry, sizeof(struct ipa_flt_rule_add));
- /* Add the fragment filtering rule. */
- memset(&flt_rule_entry, 0, sizeof(struct ipa_flt_rule_add));
-
- flt_rule_entry.at_rear = true;
- flt_rule_entry.flt_rule_hdl = -1;
- flt_rule_entry.status = -1;
-
- flt_rule_entry.rule.retain_hdr = 1;
- flt_rule_entry.rule.to_uc = 0;
- flt_rule_entry.rule.eq_attrib_type = 1;
- flt_rule_entry.rule.action = IPA_PASS_TO_ROUTING;
-#ifdef FEATURE_IPA_V3
- flt_rule_entry.rule.hashable = true;
-#endif
- flt_rule_entry.rule.rt_tbl_idx = rt_tbl_idx.idx;
- flt_rule_entry.rule.eq_attrib.rule_eq_bitmap |= (1<<1);
- flt_rule_entry.rule.eq_attrib.protocol_eq_present = 1;
- flt_rule_entry.rule.eq_attrib.protocol_eq = IPACM_FIREWALL_IPPROTO_TCP;
- flt_rule_entry.rule.attrib.u.v6.next_hdr = (uint8_t)IPACM_FIREWALL_IPPROTO_TCP;
-
/* Configuring fragment Filtering Rule */
- memcpy(&flt_rule_entry.rule.attrib,
- &rx_prop->rx[0].attrib,
- sizeof(flt_rule_entry.rule.attrib));
- /* remove meta data mask since we only install default flt rules once for all modem PDN*/
- flt_rule_entry.rule.attrib.attrib_mask &= ~((uint32_t)IPA_FLT_META_DATA);
-
+ flt_rule_entry.rule.attrib.attrib_mask &= ~((uint32_t)IPA_FLT_DST_ADDR);
flt_rule_entry.rule.attrib.attrib_mask |= IPA_FLT_FRAGMENT;
+ flt_rule_entry.rule.attrib.attrib_mask |= IPA_FLT_NEXT_HDR;
+ flt_rule_entry.rule.attrib.u.v6.next_hdr = IPACM_FIREWALL_IPPROTO_TCP;
memset(&flt_eq, 0, sizeof(flt_eq));
memcpy(&flt_eq.attrib, &flt_rule_entry.rule.attrib, sizeof(flt_eq.attrib));