Code Review
/
vpp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
Use thread local storage for thread index
[vpp.git]
/
src
/
vnet
/
tcp
/
tcp.c
diff --git
a/src/vnet/tcp/tcp.c
b/src/vnet/tcp/tcp.c
index
c3df5bc
..
b6c3482
100644
(file)
--- a/
src/vnet/tcp/tcp.c
+++ b/
src/vnet/tcp/tcp.c
@@
-578,7
+578,9
@@
tcp_session_send_space (transport_connection_t * trans_conn)
/* If we can't write at least a segment, don't try at all */
if (snd_space < tc->snd_mss)
return 0;
/* If we can't write at least a segment, don't try at all */
if (snd_space < tc->snd_mss)
return 0;
- return snd_space;
+
+ /* round down to mss multiple */
+ return snd_space - (snd_space % tc->snd_mss);
}
/* If in fast recovery, send 1 SMSS if wnd allows */
}
/* If in fast recovery, send 1 SMSS if wnd allows */
@@
-644,10
+646,10
@@
const static transport_proto_vft_t tcp6_proto = {
void
tcp_timer_keep_handler (u32 conn_index)
{
void
tcp_timer_keep_handler (u32 conn_index)
{
- u32
cpu_index = os_get_cpu_number
();
+ u32
thread_index = vlib_get_thread_index
();
tcp_connection_t *tc;
tcp_connection_t *tc;
- tc = tcp_connection_get (conn_index,
cpu
_index);
+ tc = tcp_connection_get (conn_index,
thread
_index);
tc->timers[TCP_TIMER_KEEP] = TCP_TIMER_HANDLE_INVALID;
tcp_connection_close (tc);
tc->timers[TCP_TIMER_KEEP] = TCP_TIMER_HANDLE_INVALID;
tcp_connection_close (tc);
@@
-673,10
+675,10
@@
tcp_timer_establish_handler (u32 conn_index)
void
tcp_timer_waitclose_handler (u32 conn_index)
{
void
tcp_timer_waitclose_handler (u32 conn_index)
{
- u32
cpu_index = os_get_cpu_number
();
+ u32
thread_index = vlib_get_thread_index
();
tcp_connection_t *tc;
tcp_connection_t *tc;
- tc = tcp_connection_get (conn_index,
cpu
_index);
+ tc = tcp_connection_get (conn_index,
thread
_index);
tc->timers[TCP_TIMER_WAITCLOSE] = TCP_TIMER_HANDLE_INVALID;
/* Session didn't come back with a close(). Send FIN either way
tc->timers[TCP_TIMER_WAITCLOSE] = TCP_TIMER_HANDLE_INVALID;
/* Session didn't come back with a close(). Send FIN either way
@@
-706,7
+708,7
@@
static timer_expiration_handler *timer_expiration_handlers[TCP_N_TIMERS] =
{
tcp_timer_retransmit_handler,
tcp_timer_delack_handler,
{
tcp_timer_retransmit_handler,
tcp_timer_delack_handler,
-
0
,
+
tcp_timer_persist_handler
,
tcp_timer_keep_handler,
tcp_timer_waitclose_handler,
tcp_timer_retransmit_syn_handler,
tcp_timer_keep_handler,
tcp_timer_waitclose_handler,
tcp_timer_retransmit_syn_handler,