mirror of
https://github.com/freebsd/freebsd-src
synced 2024-07-21 18:27:22 +00:00
tcp: for LRD move sysctl from tcp.do_lrd tp tcp.sack.lrd, remove sockopt
Moving lrd sysctl to the tcp.sack branch, since LRD only works with SACK. Remove the sockopt to programmatically control LRD per session. Reviewed By: #transport, tuexen, rrs Sponsored by: NetApp, Inc. Differential Revision: https://reviews.freebsd.org/D42851
This commit is contained in:
parent
9daf6cd0f4
commit
f42518ff12
|
@ -464,13 +464,6 @@ See
|
|||
Maximum amount of time, in milliseconds, before a delayed ACK is sent.
|
||||
.It Va delayed_ack
|
||||
Delay ACK to try and piggyback it onto a data packet or another ACK.
|
||||
.It Va do_lrd
|
||||
Enable Lost Retransmission Detection for SACK-enabled sessions, enabled by
|
||||
default.
|
||||
Under severe congestion, a retransmission can be lost which then leads to a
|
||||
mandatory Retransmission Timeout (RTO), followed by slow-start.
|
||||
LRD will try to resend the repeatedly lost packet, preventing the time-consuming
|
||||
RTO and performance reducing slow-start.
|
||||
.It Va do_prr
|
||||
Perform SACK loss recovery using the Proportional Rate Reduction (PRR) algorithm
|
||||
described in RFC6937.
|
||||
|
@ -901,6 +894,13 @@ Global number of TCP SACK holes currently allocated.
|
|||
.It Va sack.globalmaxholes
|
||||
Maximum number of SACK holes per system, across all connections.
|
||||
Defaults to 65536.
|
||||
.It Va sack.lrd
|
||||
Enable Lost Retransmission Detection for SACK-enabled sessions, enabled by
|
||||
default.
|
||||
Under severe congestion, a retransmission can be lost which then leads to a
|
||||
mandatory Retransmission Timeout (RTO), followed by slow-start.
|
||||
LRD will try to resend the repeatedly lost packet, preventing the time-consuming
|
||||
RTO and performance reducing slow-start or purge of the SACK scoreboard.
|
||||
.It Va sack.maxholes
|
||||
Maximum number of SACK holes per connection.
|
||||
Defaults to 128.
|
||||
|
|
|
@ -200,7 +200,6 @@ struct tcphdr {
|
|||
#define TCP_PROC_ACCOUNTING 76 /* Do accounting on tcp cpu usage and counts */
|
||||
#define TCP_USE_CMP_ACKS 77 /* The transport can handle the Compressed mbuf acks */
|
||||
#define TCP_PERF_INFO 78 /* retrieve accounting counters */
|
||||
#define TCP_LRD 79 /* toggle Lost Retransmission Detection for A/B testing */
|
||||
#define TCP_KEEPINIT 128 /* N, time to establish connection */
|
||||
#define TCP_KEEPIDLE 256 /* L,N,X start keeplives after this period */
|
||||
#define TCP_KEEPINTVL 512 /* L,N interval between keepalives */
|
||||
|
|
|
@ -162,11 +162,6 @@ SYSCTL_INT(_net_inet_tcp, OID_AUTO, do_prr, CTLFLAG_VNET | CTLFLAG_RW,
|
|||
&VNET_NAME(tcp_do_prr), 1,
|
||||
"Enable Proportional Rate Reduction per RFC 6937");
|
||||
|
||||
VNET_DEFINE(int, tcp_do_lrd) = 1;
|
||||
SYSCTL_INT(_net_inet_tcp, OID_AUTO, do_lrd, CTLFLAG_VNET | CTLFLAG_RW,
|
||||
&VNET_NAME(tcp_do_lrd), 1,
|
||||
"Perform Lost Retransmission Detection");
|
||||
|
||||
VNET_DEFINE(int, tcp_do_newcwv) = 0;
|
||||
SYSCTL_INT(_net_inet_tcp, OID_AUTO, newcwv, CTLFLAG_VNET | CTLFLAG_RW,
|
||||
&VNET_NAME(tcp_do_newcwv), 0,
|
||||
|
|
|
@ -132,6 +132,11 @@ SYSCTL_INT(_net_inet_tcp_sack, OID_AUTO, revised, CTLFLAG_VNET | CTLFLAG_RW,
|
|||
&VNET_NAME(tcp_do_newsack), 0,
|
||||
"Use revised SACK loss recovery per RFC 6675");
|
||||
|
||||
VNET_DEFINE(int, tcp_do_lrd) = 1;
|
||||
SYSCTL_INT(_net_inet_tcp_sack, OID_AUTO, lrd, CTLFLAG_VNET | CTLFLAG_RW,
|
||||
&VNET_NAME(tcp_do_lrd), 1,
|
||||
"Perform Lost Retransmission Detection");
|
||||
|
||||
VNET_DEFINE(int, tcp_sack_maxholes) = 128;
|
||||
SYSCTL_INT(_net_inet_tcp_sack, OID_AUTO, maxholes, CTLFLAG_VNET | CTLFLAG_RW,
|
||||
&VNET_NAME(tcp_sack_maxholes), 0,
|
||||
|
|
|
@ -2118,7 +2118,6 @@ tcp_default_ctloutput(struct tcpcb *tp, struct sockopt *sopt)
|
|||
|
||||
case TCP_NODELAY:
|
||||
case TCP_NOOPT:
|
||||
case TCP_LRD:
|
||||
INP_WUNLOCK(inp);
|
||||
error = sooptcopyin(sopt, &optval, sizeof optval,
|
||||
sizeof optval);
|
||||
|
@ -2133,9 +2132,6 @@ tcp_default_ctloutput(struct tcpcb *tp, struct sockopt *sopt)
|
|||
case TCP_NOOPT:
|
||||
opt = TF_NOOPT;
|
||||
break;
|
||||
case TCP_LRD:
|
||||
opt = TF_LRD;
|
||||
break;
|
||||
default:
|
||||
opt = 0; /* dead code to fool gcc */
|
||||
break;
|
||||
|
@ -2657,11 +2653,6 @@ tcp_default_ctloutput(struct tcpcb *tp, struct sockopt *sopt)
|
|||
sizeof(optval));
|
||||
break;
|
||||
#endif
|
||||
case TCP_LRD:
|
||||
optval = tp->t_flags & TF_LRD;
|
||||
INP_WUNLOCK(inp);
|
||||
error = sooptcopyout(sopt, &optval, sizeof optval);
|
||||
break;
|
||||
default:
|
||||
INP_WUNLOCK(inp);
|
||||
error = ENOPROTOOPT;
|
||||
|
|
Loading…
Reference in a new issue