diff options
Diffstat (limited to 'src/vnet/tcp/tcp.h')
-rw-r--r-- | src/vnet/tcp/tcp.h | 24 |
1 files changed, 18 insertions, 6 deletions
diff --git a/src/vnet/tcp/tcp.h b/src/vnet/tcp/tcp.h index ca650b7fa29..2362a8bb857 100644 --- a/src/vnet/tcp/tcp.h +++ b/src/vnet/tcp/tcp.h @@ -34,7 +34,7 @@ extern timer_expiration_handler tcp_timer_retransmit_syn_handler; typedef enum _tcp_error { -#define tcp_error(n,s) TCP_ERROR_##n, +#define tcp_error(f, n, s, d) TCP_ERROR_##f, #include <vnet/tcp/tcp_error.def> #undef tcp_error TCP_N_ERROR, @@ -66,6 +66,13 @@ typedef struct tcp_wrk_stats_ #undef _ } tcp_wrk_stats_t; +typedef enum +{ +#define _(name, type, str) TCP_STAT_##name, + foreach_tcp_wrk_stat +#undef _ +} tcp_wrk_stats_e; + typedef struct tcp_free_req_ { clib_time_type_t free_time; @@ -215,9 +222,6 @@ typedef struct _tcp_main /** vlib buffer size */ u32 bytes_per_buffer; - /** Session layer edge indices to ip lookup (syns, rst) */ - u32 ipl_next_node[2]; - /** Dispatch table by state and flags */ tcp_lookup_dispatch_t dispatch_table[TCP_N_STATES][64]; @@ -236,6 +240,9 @@ typedef struct _tcp_main /** Flag that indicates if stack is on or off */ u8 is_enabled; + /** Set if counters on stats segment initialized */ + u8 counters_init; + /** Flag that indicates if v4 punting is enabled */ u8 punt_unknown4; @@ -268,6 +275,10 @@ extern vlib_node_registration_t tcp4_rcv_process_node; extern vlib_node_registration_t tcp6_rcv_process_node; extern vlib_node_registration_t tcp4_listen_node; extern vlib_node_registration_t tcp6_listen_node; +extern vlib_node_registration_t tcp4_input_nolookup_node; +extern vlib_node_registration_t tcp6_input_nolookup_node; +extern vlib_node_registration_t tcp4_drop_node; +extern vlib_node_registration_t tcp6_drop_node; #define tcp_cfg tcp_main.cfg #define tcp_node_index(node_id, is_ip4) \ @@ -313,8 +324,8 @@ u32 tcp_snd_space (tcp_connection_t * tc); int tcp_fastrecovery_prr_snd_space (tcp_connection_t * tc); void tcp_reschedule (tcp_connection_t * tc); fib_node_index_t tcp_lookup_rmt_in_fib (tcp_connection_t * tc); -u32 tcp_session_push_header (transport_connection_t * tconn, - vlib_buffer_t * b); +u32 tcp_session_push_header (transport_connection_t *tconn, vlib_buffer_t **b, + u32 n_bufs); int tcp_session_custom_tx (void *conn, transport_send_params_t * sp); void tcp_connection_timers_init (tcp_connection_t * tc); @@ -327,6 +338,7 @@ void tcp_connection_tx_pacer_reset (tcp_connection_t * tc, u32 window, void tcp_program_cleanup (tcp_worker_ctx_t * wrk, tcp_connection_t * tc); void tcp_check_gso (tcp_connection_t *tc); +int tcp_buffer_make_reset (vlib_main_t *vm, vlib_buffer_t *b, u8 is_ip4); void tcp_punt_unknown (vlib_main_t * vm, u8 is_ip4, u8 is_add); int tcp_configure_v4_source_address_range (vlib_main_t * vm, ip4_address_t * start, |