X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fplugins%2Fnat%2Fnat.h;h=d3fa3eea38a1087ce2872d1620319dfe0824de5e;hb=9fbacbc56b9f075e9f5fc3f5df1c18043145562c;hp=ee712f4748f9bda8f1cf01bc7ef8ff26fc60fea7;hpb=3bab8f9c5396a7bf1115b93a9e0691a76a9ed14c;p=vpp.git diff --git a/src/plugins/nat/nat.h b/src/plugins/nat/nat.h index ee712f4748f..d3fa3eea38a 100644 --- a/src/plugins/nat/nat.h +++ b/src/plugins/nat/nat.h @@ -58,11 +58,8 @@ typedef enum NAT_NEXT_IN2OUT_ED_FAST_PATH, NAT_NEXT_IN2OUT_ED_SLOW_PATH, NAT_NEXT_IN2OUT_ED_OUTPUT_SLOW_PATH, - NAT_NEXT_IN2OUT_ED_REASS, - NAT_NEXT_IN2OUT_ED_OUTPUT_REASS, NAT_NEXT_OUT2IN_ED_FAST_PATH, NAT_NEXT_OUT2IN_ED_SLOW_PATH, - NAT_NEXT_OUT2IN_ED_REASS, NAT_N_NEXT, } nat_next_t; @@ -534,8 +531,14 @@ typedef u32 (snat_icmp_match_function_t) (struct snat_main_s * sm, void *e); /* Return worker thread index for given packet */ -typedef u32 (snat_get_worker_function_t) (ip4_header_t * ip, - u32 rx_fib_index, u8 is_output); +typedef u32 (snat_get_worker_in2out_function_t) (ip4_header_t * ip, + u32 rx_fib_index, + u8 is_output); + +typedef u32 (snat_get_worker_out2in_function_t) (vlib_buffer_t * b, + ip4_header_t * ip, + u32 rx_fib_index, + u8 is_output); /* NAT address and port allacotaion function */ typedef int (nat_alloc_out_addr_and_port_function_t) (snat_address_t * @@ -556,8 +559,8 @@ typedef struct snat_main_s u32 num_workers; u32 first_worker_index; u32 *workers; - snat_get_worker_function_t *worker_in2out_cb; - snat_get_worker_function_t *worker_out2in_cb; + snat_get_worker_in2out_function_t *worker_in2out_cb; + snat_get_worker_out2in_function_t *worker_out2in_cb; u16 port_per_thread; u32 num_snat_thread; @@ -629,16 +632,12 @@ typedef struct snat_main_s u32 in2out_fast_node_index; u32 in2out_slowpath_node_index; u32 in2out_slowpath_output_node_index; - u32 in2out_reass_node_index; u32 ed_in2out_node_index; u32 ed_in2out_slowpath_node_index; - u32 ed_in2out_reass_node_index; u32 out2in_node_index; u32 out2in_fast_node_index; - u32 out2in_reass_node_index; u32 ed_out2in_node_index; u32 ed_out2in_slowpath_node_index; - u32 ed_out2in_reass_node_index; u32 det_in2out_node_index; u32 det_out2in_node_index; @@ -675,9 +674,9 @@ typedef struct snat_main_s /* values of various timeouts */ u32 udp_timeout; - u32 tcp_established_timeout; - u32 tcp_transitory_timeout; u32 icmp_timeout; + u32 tcp_transitory_timeout; + u32 tcp_established_timeout; /* TCP MSS clamping */ u16 mss_clamping; @@ -756,7 +755,6 @@ format_function_t format_snat_key; format_function_t format_static_mapping_key; format_function_t format_snat_protocol; format_function_t format_nat_addr_and_port_alloc_alg; -format_function_t format_nat44_reass_trace; /* unformat functions */ unformat_function_t unformat_snat_protocol; @@ -848,7 +846,11 @@ unformat_function_t unformat_snat_protocol; @param t TCP header @return 1 if client initiating TCP connection */ -#define tcp_is_init(t) ((t->flags & TCP_FLAG_SYN) && !(t->flags & TCP_FLAG_ACK)) +always_inline bool +tcp_flags_is_init (u8 f) +{ + return (f & TCP_FLAG_SYN) && !(f & TCP_FLAG_ACK); +} /* logging */ #define nat_log_err(...) \