diff options
Diffstat (limited to 'src/vnet')
-rw-r--r-- | src/vnet/session/application_local.c | 4 | ||||
-rw-r--r-- | src/vnet/session/transport.c | 8 | ||||
-rw-r--r-- | src/vnet/session/transport.h | 1 | ||||
-rw-r--r-- | src/vnet/tcp/tcp_input.c | 3 |
4 files changed, 12 insertions, 4 deletions
diff --git a/src/vnet/session/application_local.c b/src/vnet/session/application_local.c index 9b0136f95dc..6e0aee2aae3 100644 --- a/src/vnet/session/application_local.c +++ b/src/vnet/session/application_local.c @@ -217,10 +217,6 @@ ct_init_accepted_session (app_worker_t * server_wrk, ls->rx_fifo->segment_index = seg_index; ls->tx_fifo->segment_index = seg_index; - /* Disable ooo lookups on the cut-through fifos. TODO remove once init of - * chunk lookup rbtrees is delegated to transports */ - svm_fifo_free_chunk_lookup (ls->tx_fifo); - segment_handle = segment_manager_segment_handle (sm, seg); if ((rv = app_worker_add_segment_notify (server_wrk, segment_handle))) { diff --git a/src/vnet/session/transport.c b/src/vnet/session/transport.c index 8e5df3f8418..967ff5d9cba 100644 --- a/src/vnet/session/transport.c +++ b/src/vnet/session/transport.c @@ -770,6 +770,14 @@ transport_connection_reschedule (transport_connection_t * tc) } void +transport_fifos_init_ooo (transport_connection_t * tc) +{ + session_t *s = session_get (tc->s_index, tc->thread_index); + svm_fifo_init_ooo_lookup (s->rx_fifo, 0 /* ooo enq */ ); + svm_fifo_init_ooo_lookup (s->tx_fifo, 1 /* ooo deq */ ); +} + +void transport_update_time (clib_time_type_t time_now, u8 thread_index) { transport_proto_vft_t *vft; diff --git a/src/vnet/session/transport.h b/src/vnet/session/transport.h index 9c873b12caf..c8d4e27be66 100644 --- a/src/vnet/session/transport.h +++ b/src/vnet/session/transport.h @@ -217,6 +217,7 @@ transport_connection_is_cless (transport_connection_t * tc) } void transport_connection_reschedule (transport_connection_t * tc); +void transport_fifos_init_ooo (transport_connection_t * tc); /** * Register transport virtual function table. diff --git a/src/vnet/tcp/tcp_input.c b/src/vnet/tcp/tcp_input.c index 305e2d34461..0f7006a01fa 100644 --- a/src/vnet/tcp/tcp_input.c +++ b/src/vnet/tcp/tcp_input.c @@ -1967,6 +1967,7 @@ tcp46_syn_sent_inline (vlib_main_t * vm, vlib_node_runtime_t * node, goto cleanup_ho; } + transport_fifos_init_ooo (&new_tc0->connection); new_tc0->tx_fifo_size = transport_tx_fifo_size (&new_tc0->connection); /* Update rtt with the syn-ack sample */ @@ -1990,6 +1991,7 @@ tcp46_syn_sent_inline (vlib_main_t * vm, vlib_node_runtime_t * node, goto cleanup_ho; } + transport_fifos_init_ooo (&new_tc0->connection); new_tc0->tx_fifo_size = transport_tx_fifo_size (&new_tc0->connection); new_tc0->rtt_ts = 0; @@ -2646,6 +2648,7 @@ tcp46_listen_inline (vlib_main_t * vm, vlib_node_runtime_t * node, goto done; } + transport_fifos_init_ooo (&child->connection); child->tx_fifo_size = transport_tx_fifo_size (&child->connection); tcp_send_synack (child); |