IPACM: add meta-data mask on ALG FLT rules
In rmnet-tethering enable scenario, if embedded
call is up on the 2st PDN for wlan-tethering, the
traffic from modem to rmnet-tethered PC will detour
to Apps if either src/dst-port matches ALG ports.
The fix is to have those ALG rules to maintain
meta-data mask.
Change-Id: I20b0ec3b9bddc22137477401d1682d1782d6fe6f
diff --git a/ipacm/src/IPACM_Wan.cpp b/ipacm/src/IPACM_Wan.cpp
index 0a52ad5..3cda91e 100644
--- a/ipacm/src/IPACM_Wan.cpp
+++ b/ipacm/src/IPACM_Wan.cpp
@@ -3289,11 +3289,10 @@
IPACM_Wan::num_v4_flt_rule++;
/* Configure ALG filtering rules */
+ /* maintain meta data mask */
memcpy(&flt_rule_entry.rule.attrib,
&rx_prop->rx[0].attrib,
sizeof(flt_rule_entry.rule.attrib));
- /* remove meta data mask */
- flt_rule_entry.rule.attrib.attrib_mask &= ~((uint32_t)IPA_FLT_META_DATA);
flt_rule_entry.rule.attrib.attrib_mask |= IPA_FLT_SRC_PORT;
flt_rule_entry.rule.attrib.attrib_mask |= IPA_FLT_PROTOCOL;
for(i = 0; i < ipacm_config->ipa_num_alg_ports; i++)
@@ -3317,11 +3316,10 @@
IPACM_Wan::num_v4_flt_rule++;
}
+ /* maintain meta data mask */
memcpy(&flt_rule_entry.rule.attrib,
&rx_prop->rx[0].attrib,
sizeof(flt_rule_entry.rule.attrib));
- /* remove meta data mask */
- flt_rule_entry.rule.attrib.attrib_mask &= ~((uint32_t)IPA_FLT_META_DATA);
flt_rule_entry.rule.attrib.attrib_mask |= IPA_FLT_DST_PORT;
flt_rule_entry.rule.attrib.attrib_mask |= IPA_FLT_PROTOCOL;
for(i = 0; i < ipacm_config->ipa_num_alg_ports; i++)