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/dslite | |
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/dslite')
-rw-r--r-- | src/plugins/nat/dslite/dslite_ce_decap.c | 2 | ||||
-rw-r--r-- | src/plugins/nat/dslite/dslite_ce_encap.c | 2 | ||||
-rw-r--r-- | src/plugins/nat/dslite/dslite_in2out.c | 2 | ||||
-rw-r--r-- | src/plugins/nat/dslite/dslite_out2in.c | 2 |
4 files changed, 4 insertions, 4 deletions
diff --git a/src/plugins/nat/dslite/dslite_ce_decap.c b/src/plugins/nat/dslite/dslite_ce_decap.c index 56af25129f2..f36a87f8bc1 100644 --- a/src/plugins/nat/dslite/dslite_ce_decap.c +++ b/src/plugins/nat/dslite/dslite_ce_decap.c @@ -81,7 +81,7 @@ VLIB_NODE_FN (dslite_ce_decap_node) (vlib_main_t * vm, ip40 = vlib_buffer_get_current (b0) + sizeof (ip6_header_t); proto0 = ip_proto_to_nat_proto (ip40->protocol); - if (PREDICT_FALSE (proto0 == ~0)) + if (PREDICT_FALSE (proto0 == NAT_PROTOCOL_OTHER)) { error0 = DSLITE_ERROR_UNSUPPORTED_PROTOCOL; next0 = DSLITE_CE_DECAP_NEXT_DROP; diff --git a/src/plugins/nat/dslite/dslite_ce_encap.c b/src/plugins/nat/dslite/dslite_ce_encap.c index 74b5bc39fbe..d8d0e400919 100644 --- a/src/plugins/nat/dslite/dslite_ce_encap.c +++ b/src/plugins/nat/dslite/dslite_ce_encap.c @@ -67,7 +67,7 @@ VLIB_NODE_FN (dslite_ce_encap_node) (vlib_main_t * vm, ip40 = vlib_buffer_get_current (b0); proto0 = ip_proto_to_nat_proto (ip40->protocol); - if (PREDICT_FALSE (proto0 == ~0)) + if (PREDICT_FALSE (proto0 == NAT_PROTOCOL_OTHER)) { error0 = DSLITE_ERROR_UNSUPPORTED_PROTOCOL; next0 = DSLITE_CE_ENCAP_NEXT_DROP; diff --git a/src/plugins/nat/dslite/dslite_in2out.c b/src/plugins/nat/dslite/dslite_in2out.c index 1d00bb2d7fe..a8204179a58 100644 --- a/src/plugins/nat/dslite/dslite_in2out.c +++ b/src/plugins/nat/dslite/dslite_in2out.c @@ -316,7 +316,7 @@ dslite_in2out_node_fn_inline (vlib_main_t * vm, vlib_node_runtime_t * node, ip40 = vlib_buffer_get_current (b0) + sizeof (ip6_header_t); proto0 = ip_proto_to_nat_proto (ip40->protocol); - if (PREDICT_FALSE (proto0 == ~0)) + if (PREDICT_FALSE (proto0 == NAT_PROTOCOL_OTHER)) { error0 = DSLITE_ERROR_UNSUPPORTED_PROTOCOL; next0 = DSLITE_IN2OUT_NEXT_DROP; diff --git a/src/plugins/nat/dslite/dslite_out2in.c b/src/plugins/nat/dslite/dslite_out2in.c index 96cf9188cf6..c2fa767bd7d 100644 --- a/src/plugins/nat/dslite/dslite_out2in.c +++ b/src/plugins/nat/dslite/dslite_out2in.c @@ -146,7 +146,7 @@ VLIB_NODE_FN (dslite_out2in_node) (vlib_main_t * vm, ip40 = vlib_buffer_get_current (b0); proto0 = ip_proto_to_nat_proto (ip40->protocol); - if (PREDICT_FALSE (proto0 == ~0)) + if (PREDICT_FALSE (proto0 == NAT_PROTOCOL_OTHER)) { error0 = DSLITE_ERROR_UNSUPPORTED_PROTOCOL; next0 = DSLITE_OUT2IN_NEXT_DROP; |