Merge 286830306063751378d274cb85d405cc8f5d53d1 on remote branch
Change-Id: I3d760aa0532dea859777b80e62ad17fd72070c28
diff --git a/ipacm/src/IPACM_Config.cpp b/ipacm/src/IPACM_Config.cpp
index c396c6c..d0c33e9 100644
--- a/ipacm/src/IPACM_Config.cpp
+++ b/ipacm/src/IPACM_Config.cpp
@@ -106,7 +106,12 @@
__stringify(IPA_ETH_BRIDGE_CLIENT_ADD), /* ipacm_event_eth_bridge*/
__stringify(IPA_ETH_BRIDGE_CLIENT_DEL), /* ipacm_event_eth_bridge*/
__stringify(IPA_ETH_BRIDGE_WLAN_SCC_MCC_SWITCH), /* ipacm_event_eth_bridge*/
- __stringify(IPA_SSR_NOTICE) /* NULL*/
+ __stringify(IPA_SSR_NOTICE), /* NULL*/
+ __stringify(IPA_COALESCE_NOTICE), /* NULL*/
+#ifdef IPA_MTU_EVENT_MAX
+ __stringify(IPA_MTU_SET), /* ipa_mtu_info */
+ __stringify(IPA_MTU_UPDATE), /* ipacm_event_mtu_info */
+#endif
#ifdef FEATURE_L2TP
__stringify(IPA_ADD_VLAN_IFACE), /* ipa_ioc_vlan_iface_info */
__stringify(IPA_DEL_VLAN_IFACE), /* ipa_ioc_vlan_iface_info */
diff --git a/ipacm/src/IPACM_Lan.cpp b/ipacm/src/IPACM_Lan.cpp
index a6b2b90..c97168d 100644
--- a/ipacm/src/IPACM_Lan.cpp
+++ b/ipacm/src/IPACM_Lan.cpp
@@ -4242,7 +4242,7 @@
}
else
{
- IPACMERR("MTU is 0");
+ IPACMDBG_H("MTU is zero\n");
}
}
IPACMDBG_H("total %d MTU rules are needed\n", mtu_rule_cnt);
diff --git a/ipacm/src/IPACM_LanToLan.cpp b/ipacm/src/IPACM_LanToLan.cpp
index ea016ef..0075418 100644
--- a/ipacm/src/IPACM_LanToLan.cpp
+++ b/ipacm/src/IPACM_LanToLan.cpp
@@ -1308,8 +1308,12 @@
it_own_peer_info++)
{
/* decrement reference count of peer l2 header type on both interfaces*/
- decrement_ref_cnt_peer_l2_hdr_type(it_own_peer_info->peer->get_iface_pointer()->tx_prop->tx[0].hdr_l2_type);
- it_own_peer_info->peer->decrement_ref_cnt_peer_l2_hdr_type(m_p_iface->tx_prop->tx[0].hdr_l2_type);
+ if (it_own_peer_info->peer &&
+ it_own_peer_info->peer->get_iface_pointer() &&
+ it_own_peer_info->peer->get_iface_pointer()->tx_prop)
+ decrement_ref_cnt_peer_l2_hdr_type(it_own_peer_info->peer->get_iface_pointer()->tx_prop->tx[0].hdr_l2_type);
+ if (it_own_peer_info->peer && m_p_iface && m_p_iface->tx_prop)
+ it_own_peer_info->peer->decrement_ref_cnt_peer_l2_hdr_type(m_p_iface->tx_prop->tx[0].hdr_l2_type);
/* first clear all flt rule on target interface */
IPACMDBG_H("Clear all flt rule on target interface.\n");
@@ -1330,7 +1334,8 @@
other_iface->clear_all_rt_rule_for_one_peer_iface(&(*it_other_iface_peer_info));
/* remove the peer info from the list */
other_iface->m_peer_iface_info.erase(it_other_iface_peer_info);
- other_iface->del_hdr_proc_ctx(m_p_iface->tx_prop->tx[0].hdr_l2_type);
+ if (m_p_iface && m_p_iface->tx_prop)
+ other_iface->del_hdr_proc_ctx(m_p_iface->tx_prop->tx[0].hdr_l2_type);
break;
}
}
@@ -1338,6 +1343,9 @@
/* then clear rt rule and hdr proc ctx and release rt table on target interface */
IPACMDBG_H("Clear rt rules and hdr proc ctx and release rt table on target interface.\n");
clear_all_rt_rule_for_one_peer_iface(&(*it_own_peer_info));
+ if (it_own_peer_info->peer &&
+ it_own_peer_info->peer->get_iface_pointer() &&
+ it_own_peer_info->peer->get_iface_pointer()->tx_prop)
del_hdr_proc_ctx(it_own_peer_info->peer->get_iface_pointer()->tx_prop->tx[0].hdr_l2_type);
}
m_peer_iface_info.clear();
diff --git a/ipacm/src/IPACM_Wan.cpp b/ipacm/src/IPACM_Wan.cpp
index 763e16a..2ee9f2c 100644
--- a/ipacm/src/IPACM_Wan.cpp
+++ b/ipacm/src/IPACM_Wan.cpp
@@ -4834,6 +4834,7 @@
int fd_wwan_ioctl;
memset(&wan_state, 0, sizeof(wan_state));
#endif
+ int ret = IPACM_SUCCESS;
IPACMDBG_H("got handle_route_del_evt for STA-mode with ip-family:%d \n", iptype);
@@ -4974,24 +4975,19 @@
if(delete_offload_frag_rule())
{
IPACMERR("Failed to delete DL frag rule \n");
- return IPACM_FAILURE;
+ ret = IPACM_FAILURE;
}
- /* Delete MHI icmpv6 exception rule */
- if(delete_icmpv6_exception_rule())
- {
- IPACMERR("Failed to delete icmpv6 rule \n");
- return IPACM_FAILURE;
- }
+
/* Delete tcp_fin_rst rule */
if(delete_tcp_fin_rst_exception_rule())
{
IPACMERR("Failed to delete tcp_fin_rst rule \n");
- return IPACM_FAILURE;
+ ret = IPACM_FAILURE;
}
+ return ret;
}
else
{
-
wandown_data->backhaul_type = m_is_sta_mode;
memcpy(wandown_data->ipv6_prefix, ipv6_prefix, sizeof(wandown_data->ipv6_prefix));
evt_data.event = IPA_HANDLE_WAN_DOWN_V6;
@@ -5010,6 +5006,13 @@
{
memset(IPACM_Wan::wan_up_dev_name, 0, sizeof(IPACM_Wan::wan_up_dev_name));
}
+ /* Delete MHI icmpv6 exception rule */
+ if(delete_icmpv6_exception_rule())
+ {
+ IPACMERR("Failed to delete icmpv6 rule \n");
+ return IPACM_FAILURE;
+ }
+
}
}
else