diff options
author | Klement Sekera <ksekera@cisco.com> | 2020-05-11 08:58:05 +0000 |
---|---|---|
committer | Ole Trøan <otroan@employees.org> | 2020-05-13 11:36:42 +0000 |
commit | bc752e432ff3e252f6e1a3f0372c9532f14909cd (patch) | |
tree | 5399347c1e469d21529a0bc20ffd2d0783434e40 /src/plugins/nat/nat64_out2in.c | |
parent | 1d61c2194d21df2003ff07ff5feae4130de6277e (diff) |
nat: perf improvement - replace branchy code
Use a lookup table instead.
Type: improvement
Signed-off-by: Klement Sekera <ksekera@cisco.com>
Change-Id: Ia8461099828bb8824bf016201f135e6b69c444d1
Diffstat (limited to 'src/plugins/nat/nat64_out2in.c')
-rw-r--r-- | src/plugins/nat/nat64_out2in.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/plugins/nat/nat64_out2in.c b/src/plugins/nat/nat64_out2in.c index 6c0075102a1..ef0f8214ddd 100644 --- a/src/plugins/nat/nat64_out2in.c +++ b/src/plugins/nat/nat64_out2in.c @@ -575,9 +575,9 @@ VLIB_NODE_FN (nat64_out2in_node) (vlib_main_t * vm, next0 = NAT64_OUT2IN_NEXT_IP6_LOOKUP; - proto0 = ip_proto_to_snat_proto (ip40->protocol); + proto0 = ip_proto_to_nat_proto (ip40->protocol); - if (PREDICT_FALSE (proto0 == ~0)) + if (PREDICT_FALSE (proto0 == NAT_PROTOCOL_OTHER)) { if (nat64_out2in_unk_proto (vm, b0, &ctx0)) { @@ -588,7 +588,7 @@ VLIB_NODE_FN (nat64_out2in_node) (vlib_main_t * vm, goto trace0; } - if (proto0 == SNAT_PROTOCOL_ICMP) + if (proto0 == NAT_PROTOCOL_ICMP) { icmp_packets++; if (icmp_to_icmp6 @@ -602,7 +602,7 @@ VLIB_NODE_FN (nat64_out2in_node) (vlib_main_t * vm, } else { - if (proto0 == SNAT_PROTOCOL_TCP) + if (proto0 == NAT_PROTOCOL_TCP) tcp_packets++; else udp_packets++; @@ -614,7 +614,7 @@ VLIB_NODE_FN (nat64_out2in_node) (vlib_main_t * vm, * Send DHCP packets to the ipv4 stack, or we won't * be able to use dhcp client on the outside interface */ - if ((proto0 == SNAT_PROTOCOL_UDP) + if ((proto0 == NAT_PROTOCOL_UDP) && (udp0->dst_port == clib_host_to_net_u16 (UDP_DST_PORT_dhcp_to_client))) { |