diff options
author | Deepak S <deepak.s@linux.intel.com> | 2018-06-05 19:44:01 +0530 |
---|---|---|
committer | Deepak S <deepak.s@linux.intel.com> | 2018-06-05 19:52:24 +0530 |
commit | 0b35af460f2ebb480fa1cdc46c69956be117cfa7 (patch) | |
tree | 91ec9925723ed5d47d860685d621a3990d1ead6c /VNFs/vCGNAPT | |
parent | 552f5992678ad6a226e0c8216eafed9a795c96ee (diff) |
TempFix: vCGNAPT/vACL ipv4 perf issue
Change-Id: I924fcac7a65c0d221d5d422f419deb9c0f864172
Signed-off-by: Deepak S <deepak.s@linux.intel.com>
Diffstat (limited to 'VNFs/vCGNAPT')
-rw-r--r-- | VNFs/vCGNAPT/pipeline/pipeline_cgnapt_be.c | 40 |
1 files changed, 25 insertions, 15 deletions
diff --git a/VNFs/vCGNAPT/pipeline/pipeline_cgnapt_be.c b/VNFs/vCGNAPT/pipeline/pipeline_cgnapt_be.c index a1779aa0..a5f9e4ef 100644 --- a/VNFs/vCGNAPT/pipeline/pipeline_cgnapt_be.c +++ b/VNFs/vCGNAPT/pipeline/pipeline_cgnapt_be.c @@ -1972,8 +1972,9 @@ static int cgnapt_in_port_ah_mix(struct rte_pipeline *rte_p, struct arp_entry_data *ret_arp_data = NULL; uint32_t src_phy_port = *src_port; - gw_get_nh_port_ipv4(dest_address, - &dest_if, &nhip); + dest_if = prv_to_pub_map[src_phy_port]; + gw_get_route_nh_port_ipv4(dest_address, + &dest_if, &nhip, dest_if); if (dest_if == INVALID_DESTIF) { p_nat->invalid_packets |= @@ -2218,9 +2219,9 @@ static int cgnapt_in_port_ah_mix(struct rte_pipeline *rte_p, struct arp_entry_data *ret_arp_data = NULL; dest_if = INVALID_DESTIF; uint32_t src_phy_port = *src_port; - - gw_get_nh_port_ipv4(dest_address, - &dest_if, &nhip); + dest_if = pub_to_prv_map[src_phy_port]; + gw_get_route_nh_port_ipv4(dest_address, + &dest_if, &nhip, dest_if); if (dest_if == INVALID_DESTIF) { p_nat->invalid_packets |= @@ -3728,8 +3729,9 @@ pkt_work_cgnapt_ipv4_prv( struct arp_entry_data *ret_arp_data = NULL; uint32_t src_phy_port = *src_port; - - gw_get_nh_port_ipv4(dest_address, &dest_if, &nhip); + dest_if = prv_to_pub_map[src_phy_port]; + gw_get_route_nh_port_ipv4(dest_address, + &dest_if, &nhip, dest_if); ret_arp_data = get_dest_mac_addr_ipv4(nhip, dest_if, (struct ether_addr *)eth_dest); @@ -4082,7 +4084,10 @@ pkt_work_cgnapt_ipv4_pub( uint32_t src_phy_port = *src_port; - gw_get_nh_port_ipv4(dest_address, &dest_if, &nhip); + + dest_if = pub_to_prv_map[src_phy_port]; + gw_get_route_nh_port_ipv4(dest_address, + &dest_if, &nhip, dest_if); ret_arp_data = get_dest_mac_addr_ipv4(nhip, dest_if, (struct ether_addr *)eth_dest); @@ -4530,8 +4535,9 @@ pkt4_work_cgnapt_ipv4_prv( struct arp_entry_data *ret_arp_data = NULL; uint64_t start, end; uint32_t src_phy_port = *src_port; - - gw_get_nh_port_ipv4(dest_address, &dest_if, &nhip); + dest_if = prv_to_pub_map[src_phy_port]; + gw_get_route_nh_port_ipv4(dest_address, + &dest_if, &nhip, dest_if); ret_arp_data = get_dest_mac_addr_ipv4(nhip, dest_if, (struct ether_addr *)eth_dest); @@ -4900,8 +4906,9 @@ pkt4_work_cgnapt_ipv4_pub( dest_address = entry->data.u.prv_ip; struct arp_entry_data *ret_arp_data = NULL; uint32_t src_phy_port = *src_port; - - gw_get_nh_port_ipv4(dest_address, &dest_if, &nhip); + dest_if = pub_to_prv_map[src_phy_port]; + gw_get_route_nh_port_ipv4(dest_address, + &dest_if, &nhip, dest_if); ret_arp_data = get_dest_mac_addr_ipv4(nhip, dest_if, (struct ether_addr *)eth_dest); @@ -6080,7 +6087,9 @@ pkt_work_cgnapt_ipv6_prv( uint32_t src_phy_port = *src_port; - gw_get_nh_port_ipv4(dest_address, &dest_if, &nhip); + dest_if = prv_to_pub_map[src_phy_port]; + gw_get_route_nh_port_ipv4(dest_address, + &dest_if, &nhip, dest_if); ret_arp_data = get_dest_mac_addr_ipv4(nhip, dest_if, (struct ether_addr *)eth_dest); @@ -6570,8 +6579,9 @@ pkt4_work_cgnapt_ipv6_prv( { struct arp_entry_data *ret_arp_data; uint32_t src_phy_port = *src_port; - - gw_get_nh_port_ipv4(dest_address, &dest_if, &nhip); + dest_if = prv_to_pub_map[src_phy_port]; + gw_get_route_nh_port_ipv4(dest_address, + &dest_if, &nhip, dest_if); ret_arp_data = get_dest_mac_addr_ipv4(nhip, dest_if, (struct ether_addr *)eth_dest); |