Code Review
/
vpp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
tcp: force deschedule if no send space available
[vpp.git]
/
src
/
vnet
/
tcp
/
tcp.c
diff --git
a/src/vnet/tcp/tcp.c
b/src/vnet/tcp/tcp.c
index
4a0ffc1
..
dfcce77
100644
(file)
--- a/
src/vnet/tcp/tcp.c
+++ b/
src/vnet/tcp/tcp.c
@@
-1281,14
+1281,7
@@
tcp_session_send_params (transport_connection_t * trans_conn,
/* This still works if fast retransmit is on */
sp->tx_offset = tc->snd_nxt - tc->snd_una;
/* This still works if fast retransmit is on */
sp->tx_offset = tc->snd_nxt - tc->snd_una;
- sp->flags = 0;
- if (!tc->snd_wnd)
- {
- if (tcp_timer_is_active (tc, TCP_TIMER_PERSIST))
- sp->flags = TRANSPORT_SND_F_DESCHED;
- else
- sp->flags = TRANSPORT_SND_F_POSTPONE;
- }
+ sp->flags = sp->snd_space ? 0 : TRANSPORT_SND_F_DESCHED;
return 0;
}
return 0;
}
@@
-1540,6
+1533,13
@@
tcp_connection_tx_pacer_reset (tcp_connection_t * tc, u32 window,
srtt * CLIB_US_TIME_FREQ);
}
srtt * CLIB_US_TIME_FREQ);
}
+void
+tcp_reschedule (tcp_connection_t * tc)
+{
+ if (tcp_in_cong_recovery (tc) || tcp_snd_space_inline (tc))
+ transport_connection_reschedule (&tc->connection);
+}
+
static void
tcp_expired_timers_dispatch (u32 * expired_timers)
{
static void
tcp_expired_timers_dispatch (u32 * expired_timers)
{