summaryrefslogtreecommitdiffstats
path: root/src/vnet
diff options
context:
space:
mode:
authorFlorin Coras <fcoras@cisco.com>2019-03-06 21:13:42 -0800
committerDave Barach <openvpp@barachs.net>2019-03-08 20:03:31 +0000
commit14ed6df9006b1266d075ac0af248cb04ebc558d9 (patch)
treec2b167271d794378ab6608423d1283d8e0cb7c7c /src/vnet
parent7e74bf39ecd97f6bf79bde70d07f907548a83783 (diff)
session/tcp/vcl: fixes and optimizations
Change-Id: Idc7dfe743399dd8dee0f6b3ec83f194f3fca580b Signed-off-by: Florin Coras <fcoras@cisco.com>
Diffstat (limited to 'src/vnet')
-rw-r--r--src/vnet/session/session_node.c1
-rw-r--r--src/vnet/tcp/tcp.c7
-rw-r--r--src/vnet/tcp/tcp.h3
-rw-r--r--src/vnet/tcp/tcp_output.c3
4 files changed, 5 insertions, 9 deletions
diff --git a/src/vnet/session/session_node.c b/src/vnet/session/session_node.c
index fb53846afdc..a7ff2144533 100644
--- a/src/vnet/session/session_node.c
+++ b/src/vnet/session/session_node.c
@@ -928,6 +928,7 @@ session_queue_node_fn (vlib_main_t * vm, vlib_node_runtime_t * node,
clib_warning ("session was freed!");
continue;
}
+ CLIB_PREFETCH (s->tx_fifo, 2 * CLIB_CACHE_LINE_BYTES, LOAD);
wrk->ctx.s = s;
/* Spray packets in per session type frames, since they go to
* different nodes */
diff --git a/src/vnet/tcp/tcp.c b/src/vnet/tcp/tcp.c
index 7b28dd3b70c..f40ef424c07 100644
--- a/src/vnet/tcp/tcp.c
+++ b/src/vnet/tcp/tcp.c
@@ -1156,13 +1156,6 @@ tcp_update_time (f64 now, u8 thread_index)
tcp_flush_frames_to_output (wrk);
}
-static u32
-tcp_session_push_header (transport_connection_t * tconn, vlib_buffer_t * b)
-{
- tcp_connection_t *tc = (tcp_connection_t *) tconn;
- return tcp_push_header (tc, b);
-}
-
static void
tcp_session_flush_data (transport_connection_t * tconn)
{
diff --git a/src/vnet/tcp/tcp.h b/src/vnet/tcp/tcp.h
index 511f0131025..07ceb5a67a6 100644
--- a/src/vnet/tcp/tcp.h
+++ b/src/vnet/tcp/tcp.h
@@ -820,7 +820,8 @@ tcp_set_time_now (tcp_worker_ctx_t * wrk)
return wrk->time_now;
}
-u32 tcp_push_header (tcp_connection_t * tconn, vlib_buffer_t * b);
+u32 tcp_session_push_header (transport_connection_t * tconn,
+ vlib_buffer_t * b);
void tcp_connection_timers_init (tcp_connection_t * tc);
void tcp_connection_timers_reset (tcp_connection_t * tc);
diff --git a/src/vnet/tcp/tcp_output.c b/src/vnet/tcp/tcp_output.c
index 94f96b6fb62..2f728cc7333 100644
--- a/src/vnet/tcp/tcp_output.c
+++ b/src/vnet/tcp/tcp_output.c
@@ -1173,8 +1173,9 @@ tcp_push_hdr_i (tcp_connection_t * tc, vlib_buffer_t * b,
}
u32
-tcp_push_header (tcp_connection_t * tc, vlib_buffer_t * b)
+tcp_session_push_header (transport_connection_t * tconn, vlib_buffer_t * b)
{
+ tcp_connection_t *tc = (tcp_connection_t *) tconn;
tcp_push_hdr_i (tc, b, TCP_STATE_ESTABLISHED, /* compute opts */ 0,
/* burst */ 1);
tc->snd_una_max = tc->snd_nxt;