diff options
| -rw-r--r-- | data-ipa-cfg-mgr/ipacm/src/IPACM_Iface.cpp | 28 | 
1 files changed, 6 insertions, 22 deletions
| diff --git a/data-ipa-cfg-mgr/ipacm/src/IPACM_Iface.cpp b/data-ipa-cfg-mgr/ipacm/src/IPACM_Iface.cpp index d05cefd..512846f 100644 --- a/data-ipa-cfg-mgr/ipacm/src/IPACM_Iface.cpp +++ b/data-ipa-cfg-mgr/ipacm/src/IPACM_Iface.cpp @@ -854,29 +854,13 @@ int IPACM_Iface::init_fl_rule(ipa_ip_type iptype)  #ifdef FEATURE_IPA_ANDROID  		/* Add the ipv6 tcp 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_EXCEPTION; -#ifdef FEATURE_IPA_V3 -		flt_rule_entry.rule.hashable = true; -#endif -		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); +		IPACMDBG_H("Adding IPv6 TCP fragment filter rule\n"); + +		flt_rule_entry.rule.attrib.attrib_mask &= ~((uint32_t)IPA_FLT_DST_ADDR); + +		flt_rule_entry.rule.attrib.attrib_mask |= IPA_FLT_NEXT_HDR; +		flt_rule_entry.rule.attrib.u.v6.next_hdr = IPACM_FIREWALL_IPPROTO_TCP;  		flt_rule_entry.rule.attrib.attrib_mask |= IPA_FLT_FRAGMENT; | 
