Merge "ipacm: Fix MTU rule modify and add"
diff --git a/ipacm/src/IPACM_Lan.cpp b/ipacm/src/IPACM_Lan.cpp
index 0a532fd..65bd3ca 100644
--- a/ipacm/src/IPACM_Lan.cpp
+++ b/ipacm/src/IPACM_Lan.cpp
@@ -4205,9 +4205,14 @@
mtu[i] = IPACM_Wan::queryMTU(ipa_if_num, IPA_IP_v4);
if (mtu[i] > 0)
+ {
mtu_rule_cnt++;
+ IPACMDBG_H("MTU[%d] is %d\n", i, mtu[i]);
+ }
else
- IPACMERR("MTU is zero\n");
+ {
+ IPACMERR("MTU is 0");
+ }
}
IPACMDBG_H("total %d MTU rules are needed\n", mtu_rule_cnt);
@@ -4237,16 +4242,16 @@
flt_rule.rule.retain_hdr = 1;
flt_rule.rule.to_uc = 0;
- flt_rule.rule.action = IPA_PASS_TO_ROUTING;
- flt_rule.rule.eq_attrib_type = 0;
- flt_rule.rule.rt_tbl_hdl = IPACM_Iface::ipacmcfg->rt_tbl_default_v4.hdl;
IPACMDBG_H("Private filter rule use table: %s\n",IPACM_Iface::ipacmcfg->rt_tbl_default_v4.name);
for (i = 0; i < (IPACM_Iface::ipacmcfg->ipa_num_private_subnet); i++)
{
/* add private subnet rule for ipv4 */
+ /* these 3 properties below will be reset during construct_mtu_rule */
flt_rule.rule.action = IPA_PASS_TO_ROUTING;
flt_rule.rule.eq_attrib_type = 0;
+ flt_rule.rule.rt_tbl_hdl = IPACM_Iface::ipacmcfg->rt_tbl_default_v4.hdl;
+
flt_rule.rule_hdl = private_fl_rule_hdl[i];
memcpy(&flt_rule.rule.attrib, &rx_prop->rx[0].attrib, sizeof(flt_rule.rule.attrib));
flt_rule.rule.attrib.attrib_mask |= IPA_FLT_DST_ADDR;
@@ -4264,7 +4269,9 @@
flt_rule.rule.attrib.u.v4.src_addr = IPACM_Iface::ipacmcfg->private_subnet_table[i].subnet_addr;
flt_rule.rule.attrib.attrib_mask |= IPA_FLT_SRC_ADDR;
if (construct_mtu_rule(&flt_rule.rule, IPA_IP_v4, mtu[i]))
+ {
IPACMERR("Failed to modify MTU filtering rule.\n");
+ }
memcpy(&(pFilteringTable->rules[mtu_rule_idx + i]), &flt_rule, sizeof(struct ipa_flt_rule_mdfy));
IPACMDBG_H("Adding MTU rule for private subnet 0x%x.\n", flt_rule.rule.attrib.u.v4.src_addr);
}
@@ -4302,7 +4309,14 @@
uint16_t mtu = IPACM_Wan::queryMTU(ipa_if_num, IPA_IP_v6);
if (mtu > 0)
+ {
+ IPACMDBG_H("MTU is %d\n", mtu);
rule_cnt ++;
+ }
+ else
+ {
+ IPACMERR("MTU is 0");
+ }
if(rx_prop != NULL)
{