Code Review
/
vpp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
vcl/ldp: add write msg function and fine tuning
[vpp.git]
/
src
/
vnet
/
tcp
/
tcp.c
diff --git
a/src/vnet/tcp/tcp.c
b/src/vnet/tcp/tcp.c
index
564f200
..
7f6a087
100644
(file)
--- a/
src/vnet/tcp/tcp.c
+++ b/
src/vnet/tcp/tcp.c
@@
-284,7
+284,8
@@
tcp_connection_reset (tcp_connection_t * tc)
break;
case TCP_STATE_SYN_SENT:
session_stream_connect_notify (&tc->connection, 1 /* fail */ );
break;
case TCP_STATE_SYN_SENT:
session_stream_connect_notify (&tc->connection, 1 /* fail */ );
- tcp_connection_cleanup (tc);
+ tcp_connection_set_state (tc, TCP_STATE_CLOSED);
+ tcp_timer_set (tc, TCP_TIMER_WAITCLOSE, TCP_CLEANUP_TIME);
break;
case TCP_STATE_ESTABLISHED:
tcp_connection_timers_reset (tc);
break;
case TCP_STATE_ESTABLISHED:
tcp_connection_timers_reset (tc);
@@
-307,6
+308,7
@@
tcp_connection_reset (tcp_connection_t * tc)
tcp_connection_set_state (tc, TCP_STATE_CLOSED);
break;
case TCP_STATE_CLOSED:
tcp_connection_set_state (tc, TCP_STATE_CLOSED);
break;
case TCP_STATE_CLOSED:
+ case TCP_STATE_TIME_WAIT:
break;
default:
TCP_DBG ("reset state: %u", tc->state);
break;
default:
TCP_DBG ("reset state: %u", tc->state);
@@
-1293,9
+1295,9
@@
tcp_timer_waitclose_handler (u32 conn_index)
* is closed. We haven't sent everything but we did try. */
tcp_cong_recovery_off (tc);
tcp_send_fin (tc);
* is closed. We haven't sent everything but we did try. */
tcp_cong_recovery_off (tc);
tcp_send_fin (tc);
- rto = clib_max (
tc->rto >> tc->rto_boff
, 1);
+ rto = clib_max (
(tc->rto >> tc->rto_boff) * TCP_TO_TIMER_TICK
, 1);
tcp_timer_set (tc, TCP_TIMER_WAITCLOSE,
tcp_timer_set (tc, TCP_TIMER_WAITCLOSE,
- clib_min (rto
* TCP_TO_TIMER_TICK
, TCP_2MSL_TIME));
+ clib_min (rto, TCP_2MSL_TIME));
session_transport_closed_notify (&tc->connection);
}
else
session_transport_closed_notify (&tc->connection);
}
else