diff options
author | Bruno Martins <bgcngm@gmail.com> | 2016-12-04 16:15:12 +0000 |
---|---|---|
committer | davidevinavil <davidevinavil@gmail.com> | 2017-01-21 18:22:42 +0100 |
commit | 06852dbddd5a722d965e6a211916027cb97de6bf (patch) | |
tree | 8453619818a941d032d1ae1f0106ab6ea27fce34 /data-ipa-cfg-mgr/ipacm/src/IPACM_LanToLan.cpp | |
parent | 818d87b312de5d56937381b551abe084bba72c9f (diff) |
z2_plus: Update IPACM from upstream
* Tag: LA.UM.5.5.r1-01300-8x96.0
Change-Id: I3891d0c62c622fd0a0f43f25f63deb4d4ba508d6
Diffstat (limited to 'data-ipa-cfg-mgr/ipacm/src/IPACM_LanToLan.cpp')
-rw-r--r-- | data-ipa-cfg-mgr/ipacm/src/IPACM_LanToLan.cpp | 19 |
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, |