Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F102885885
D36721.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
1 KB
Referenced Files
None
Subscribers
None
D36721.diff
View Options
diff --git a/sys/netinet/tcp_input.c b/sys/netinet/tcp_input.c
--- a/sys/netinet/tcp_input.c
+++ b/sys/netinet/tcp_input.c
@@ -1614,6 +1614,10 @@
* XXX: This should be done after segment
* validation to ignore broken/spoofed segs.
*/
+ if (tp->t_idle_reduce &&
+ (tp->snd_max == tp->snd_una) &&
+ ((ticks - tp->t_rcvtime) >= tp->t_rxtcur))
+ cc_after_idle(tp);
tp->t_rcvtime = ticks;
if (thflags & TH_FIN)
diff --git a/sys/netinet/tcp_output.c b/sys/netinet/tcp_output.c
--- a/sys/netinet/tcp_output.c
+++ b/sys/netinet/tcp_output.c
@@ -155,8 +155,6 @@
tcp_timer_active((tp), TT_PERSIST), \
("neither rexmt nor persist timer is set"))
-static void inline cc_after_idle(struct tcpcb *tp);
-
#ifdef TCP_HHOOK
/*
* Wrapper for the TCP established output helper hook.
@@ -183,7 +181,7 @@
/*
* CC wrapper hook functions
*/
-static void inline
+void
cc_after_idle(struct tcpcb *tp)
{
INP_WLOCK_ASSERT(tp->t_inpcb);
diff --git a/sys/netinet/tcp_var.h b/sys/netinet/tcp_var.h
--- a/sys/netinet/tcp_var.h
+++ b/sys/netinet/tcp_var.h
@@ -1206,6 +1206,7 @@
uint32_t tcp_hc_getmtu(struct in_conninfo *);
void tcp_hc_updatemtu(struct in_conninfo *, uint32_t);
void tcp_hc_update(struct in_conninfo *, struct hc_metrics_lite *);
+void cc_after_idle(struct tcpcb *tp);
extern struct protosw tcp_protosw; /* shared for TOE */
extern struct protosw tcp6_protosw; /* shared for TOE */
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Tue, Nov 19, 9:16 AM (20 h, 27 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
14713987
Default Alt Text
D36721.diff (1 KB)
Attached To
Mode
D36721: tcp idle reduce does not work for a server.
Attached
Detach File
Event Timeline
Log In to Comment