Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F144678815
D4294.1776134815.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Size
3 KB
Referenced Files
None
Subscribers
None
D4294.1776134815.diff
View Options
Index: sys/netinet/tcp_input.c
===================================================================
--- sys/netinet/tcp_input.c
+++ sys/netinet/tcp_input.c
@@ -523,7 +523,7 @@
CC_ALGO(tp)->ecnpkt_handler(tp->ccv);
if (tp->ccv->flags & CCF_ACKNOW)
- tcp_timer_activate(tp, TT_DELACK, tcp_delacktime);
+ tcp_timer_activate(tp, TT_DELACK, tp->t_delack);
}
}
@@ -1995,7 +1995,7 @@
*/
if (DELAY_ACK(tp, tlen) && tlen != 0)
tcp_timer_activate(tp, TT_DELACK,
- tcp_delacktime);
+ tp->t_delack);
else
tp->t_flags |= TF_ACKNOW;
@@ -3059,7 +3059,7 @@
if (tp->t_flags & TF_DELACK) {
tp->t_flags &= ~TF_DELACK;
- tcp_timer_activate(tp, TT_DELACK, tcp_delacktime);
+ tcp_timer_activate(tp, TT_DELACK, tp->t_delack);
}
INP_WUNLOCK(tp->t_inpcb);
return;
Index: sys/netinet/tcp_subr.c
===================================================================
--- sys/netinet/tcp_subr.c
+++ sys/netinet/tcp_subr.c
@@ -401,7 +401,7 @@
tcp_rexmit_min = TCPTV_MIN;
if (tcp_rexmit_min < 1)
tcp_rexmit_min = 1;
- tcp_rexmit_slop = TCPTV_CPU_VAR;
+ tcp_rexmit_slop = 0;
tcp_finwait2_timeout = TCPTV_FINWAIT2_TIMEOUT;
tcp_tcbhashsize = hashsize;
@@ -828,6 +828,7 @@
tp->t_rttvar = ((TCPTV_RTOBASE - TCPTV_SRTTBASE) << TCP_RTTVAR_SHIFT) / 4;
tp->t_rttmin = tcp_rexmit_min;
tp->t_rxtcur = TCPTV_RTOBASE;
+ tp->t_delack = tcp_delacktime;
tp->snd_cwnd = TCP_MAXWIN << TCP_MAX_WINSHIFT;
tp->snd_ssthresh = TCP_MAXWIN << TCP_MAX_WINSHIFT;
tp->t_rcvtime = ticks;
Index: sys/netinet/tcp_timer.h
===================================================================
--- sys/netinet/tcp_timer.h
+++ sys/netinet/tcp_timer.h
@@ -75,7 +75,7 @@
#define TCPTV_MSL ( 30*hz) /* max seg lifetime (hah!) */
#define TCPTV_SRTTBASE 0 /* base roundtrip time;
if 0, no idea yet */
-#define TCPTV_RTOBASE ( 3*hz) /* assumed RTO if no info */
+#define TCPTV_RTOBASE ( hz ) /* assumed RTO if no info - RFC 6298 */
#define TCPTV_PERSMIN ( 5*hz) /* retransmit persistence */
#define TCPTV_PERSMAX ( 60*hz) /* maximum persist interval */
@@ -107,7 +107,7 @@
* The prior minimum of 1*hz (1 second) badly breaks throughput on any
* networks faster then a modem that has minor (e.g. 1%) packet loss.
*/
-#define TCPTV_MIN ( hz/33 ) /* minimum allowable value */
+#define TCPTV_MIN ( 3 ) /* minimum allowable value - see above */
#define TCPTV_CPU_VAR ( hz/5 ) /* cpu variance allowed (200ms) */
#define TCPTV_REXMTMAX ( 64*hz) /* max allowable REXMT value */
@@ -117,7 +117,7 @@
#define TCP_MAXRXTSHIFT 12 /* maximum retransmits */
-#define TCPTV_DELACK ( hz/10 ) /* 100ms timeout */
+#define TCPTV_DELACK ( hz/25 ) /* 40ms timeout */
#ifdef TCPTIMERS
static const char *tcptimers[] =
Index: sys/netinet/tcp_timer.c
===================================================================
--- sys/netinet/tcp_timer.c
+++ sys/netinet/tcp_timer.c
@@ -649,6 +649,8 @@
rexmt = TCP_REXMTVAL(tp) * tcp_backoff[tp->t_rxtshift];
TCPT_RANGESET(tp->t_rxtcur, rexmt,
tp->t_rttmin, TCPTV_REXMTMAX);
+ /* 1 < delack < tcp_delacktime - and should scale down with RTO/2 */
+ TCPT_RANGESET(tp->t_delack, (rexmt >> 1), 1, tcp_delacktime);
/*
* We enter the path for PLMTUD if connection is established or, if
Index: sys/netinet/tcp_var.h
===================================================================
--- sys/netinet/tcp_var.h
+++ sys/netinet/tcp_var.h
@@ -206,6 +206,7 @@
u_int t_tsomaxsegsize; /* TSO maximum segment size in bytes */
u_int t_pmtud_saved_maxopd; /* pre-blackhole MSS */
u_int t_flags2; /* More tcpcb flags storage */
+ u_int t_delack; /* delayed ack timer */
uint32_t t_ispare[8]; /* 5 UTO, 3 TBD */
void *t_pspare2[4]; /* 1 TCP_SIGNATURE, 3 TBD */
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Tue, Apr 14, 2:46 AM (9 h, 59 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
28336557
Default Alt Text
D4294.1776134815.diff (3 KB)
Attached To
Mode
D4294: modernize TCP constants
Attached
Detach File
Event Timeline
Log In to Comment