aboutsummaryrefslogtreecommitdiff
path: root/data-ipa-cfg-mgr/ipacm/src/IPACM_LanToLan.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'data-ipa-cfg-mgr/ipacm/src/IPACM_LanToLan.cpp')
-rw-r--r--data-ipa-cfg-mgr/ipacm/src/IPACM_LanToLan.cpp19
1 files changed, 14 insertions, 5 deletions
diff --git a/data-ipa-cfg-mgr/ipacm/src/IPACM_LanToLan.cpp b/data-ipa-cfg-mgr/ipacm/src/IPACM_LanToLan.cpp
index be33acd..d77f389 100644
--- a/data-ipa-cfg-mgr/ipacm/src/IPACM_LanToLan.cpp
+++ b/data-ipa-cfg-mgr/ipacm/src/IPACM_LanToLan.cpp
@@ -205,11 +205,15 @@ void IPACM_LanToLan::handle_iface_up(ipacm_event_eth_bridge *data)
{
for(it = ++m_iface.begin(); it != m_iface.end(); it++)
{
- /* populate hdr_proc_ctx and routing table handle */
- handle_new_iface_up(&front_iface, &(*it));
+ /* add peer info only when both interfaces support inter-interface communication */
+ if(it->get_m_support_inter_iface_offload())
+ {
+ /* populate hdr_proc_ctx and routing table handle */
+ handle_new_iface_up(&front_iface, &(*it));
- /* add client specific routing rule on existing interface */
- it->add_client_rt_rule_for_new_iface();
+ /* add client specific routing rule on existing interface */
+ it->add_client_rt_rule_for_new_iface();
+ }
}
/* add client specific filtering rule on new interface */
@@ -593,7 +597,6 @@ void IPACM_LanToLan_Iface::add_client_flt_rule(peer_iface_info *peer, client_inf
m_p_iface->eth_bridge_add_flt_rule(client->mac_addr, rt_tbl.hdl,
iptype, &flt_rule_hdl);
IPACMDBG_H("Installed flt rule for IP type %d: handle %d\n", iptype, flt_rule_hdl);
- IPACM_Iface::m_routing.PutRoutingTable(rt_tbl.hdl);
for(it_flt = peer->flt_rule.begin(); it_flt != peer->flt_rule.end(); it_flt++)
{
@@ -889,6 +892,12 @@ void IPACM_LanToLan_Iface::handle_intra_interface_info()
{
uint32_t hdr_proc_ctx_hdl;
+ if(m_p_iface->tx_prop == NULL)
+ {
+ IPACMERR("No tx prop.\n");
+ return;
+ }
+
m_intra_interface_info.peer = this;
snprintf(m_intra_interface_info.rt_tbl_name_for_flt[IPA_IP_v4], IPA_RESOURCE_NAME_MAX,