Persist timers TCPTV_PERSMIN and TCPTV_PERSMAX are hardcoded with 5 seconds and
60 seconds, respectively. Turn them into sysctls that can be tuned live. The default values of 5 seconds and 60 seconds have been retained. Submitted by: Jason Wolfe (j at nitrology dot com) Reviewed by: gnn, rrs, hiren, bz MFC after: 1 week Sponsored by: Limelight Networks Differential Revision: https://reviews.freebsd.org/D5024
This commit is contained in:
parent
fe68f570d4
commit
0645c6049d
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=294840
@ -1626,7 +1626,7 @@ tcp_setpersist(struct tcpcb *tp)
|
||||
* Start/restart persistance timer.
|
||||
*/
|
||||
TCPT_RANGESET(tt, t * tcp_backoff[tp->t_rxtshift],
|
||||
TCPTV_PERSMIN, TCPTV_PERSMAX);
|
||||
tcp_persmin, tcp_persmax);
|
||||
tcp_timer_activate(tp, TT_PERSIST, tt);
|
||||
if (tp->t_rxtshift < TCP_MAXRXTSHIFT)
|
||||
tp->t_rxtshift++;
|
||||
|
@ -675,6 +675,8 @@ tcp_init(void)
|
||||
tcp_rexmit_min = TCPTV_MIN;
|
||||
if (tcp_rexmit_min < 1)
|
||||
tcp_rexmit_min = 1;
|
||||
tcp_persmin = TCPTV_PERSMIN;
|
||||
tcp_persmax = TCPTV_PERSMAX;
|
||||
tcp_rexmit_slop = TCPTV_CPU_VAR;
|
||||
tcp_finwait2_timeout = TCPTV_FINWAIT2_TIMEOUT;
|
||||
tcp_tcbhashsize = hashsize;
|
||||
|
@ -77,6 +77,14 @@ __FBSDID("$FreeBSD$");
|
||||
#include <netinet/tcp_debug.h>
|
||||
#endif
|
||||
|
||||
int tcp_persmin;
|
||||
SYSCTL_PROC(_net_inet_tcp, OID_AUTO, persmin, CTLTYPE_INT|CTLFLAG_RW,
|
||||
&tcp_persmin, 0, sysctl_msec_to_ticks, "I", "minimum persistence interval");
|
||||
|
||||
int tcp_persmax;
|
||||
SYSCTL_PROC(_net_inet_tcp, OID_AUTO, persmax, CTLTYPE_INT|CTLFLAG_RW,
|
||||
&tcp_persmax, 0, sysctl_msec_to_ticks, "I", "maximum persistence interval");
|
||||
|
||||
int tcp_keepinit;
|
||||
SYSCTL_PROC(_net_inet_tcp, TCPCTL_KEEPINIT, keepinit, CTLTYPE_INT|CTLFLAG_RW,
|
||||
&tcp_keepinit, 0, sysctl_msec_to_ticks, "I", "time to establish connection");
|
||||
|
@ -77,7 +77,7 @@
|
||||
if 0, no idea yet */
|
||||
#define TCPTV_RTOBASE ( 3*hz) /* assumed RTO if no info */
|
||||
|
||||
#define TCPTV_PERSMIN ( 5*hz) /* retransmit persistence */
|
||||
#define TCPTV_PERSMIN ( 5*hz) /* minimum persist interval */
|
||||
#define TCPTV_PERSMAX ( 60*hz) /* maximum persist interval */
|
||||
|
||||
#define TCPTV_KEEP_INIT ( 75*hz) /* initial connect keepalive */
|
||||
@ -173,6 +173,8 @@ struct tcp_timer {
|
||||
#define TP_KEEPCNT(tp) ((tp)->t_keepcnt ? (tp)->t_keepcnt : tcp_keepcnt)
|
||||
#define TP_MAXIDLE(tp) (TP_KEEPCNT(tp) * TP_KEEPINTVL(tp))
|
||||
|
||||
extern int tcp_persmin; /* minimum persist interval */
|
||||
extern int tcp_persmax; /* maximum persist interval */
|
||||
extern int tcp_keepinit; /* time to establish connection */
|
||||
extern int tcp_keepidle; /* time before keepalive probes begin */
|
||||
extern int tcp_keepintvl; /* time between keepalive probes */
|
||||
|
Loading…
Reference in New Issue
Block a user