Declare more TCP globals in tcp_var.h, so that alternative TCP stacks
can use them. Gather all TCP tunables in tcp_var.h in one place and alphabetically sort them, to ease maintainance of the list. Don't copy and paste declarations in tcp_stacks/fastpath.c.
This commit is contained in:
parent
ab142b3f49
commit
3bdf4c4274
@ -145,7 +145,6 @@ SYSCTL_INT(_net_inet_tcp, OID_AUTO, delayed_ack, CTLFLAG_VNET | CTLFLAG_RW,
|
||||
"Delay ACK to try and piggyback it onto a data packet");
|
||||
|
||||
VNET_DEFINE(int, drop_synfin) = 0;
|
||||
#define V_drop_synfin VNET(drop_synfin)
|
||||
SYSCTL_INT(_net_inet_tcp, OID_AUTO, drop_synfin, CTLFLAG_VNET | CTLFLAG_RW,
|
||||
&VNET_NAME(drop_synfin), 0,
|
||||
"Drop TCP packets with SYN+FIN set");
|
||||
@ -156,7 +155,6 @@ SYSCTL_INT(_net_inet_tcp, OID_AUTO, rfc6675_pipe, CTLFLAG_VNET | CTLFLAG_RW,
|
||||
"Use calculated pipe/in-flight bytes per RFC 6675");
|
||||
|
||||
VNET_DEFINE(int, tcp_do_rfc3042) = 1;
|
||||
#define V_tcp_do_rfc3042 VNET(tcp_do_rfc3042)
|
||||
SYSCTL_INT(_net_inet_tcp, OID_AUTO, rfc3042, CTLFLAG_VNET | CTLFLAG_RW,
|
||||
&VNET_NAME(tcp_do_rfc3042), 0,
|
||||
"Enable RFC 3042 (Limited Transmit)");
|
||||
@ -194,13 +192,11 @@ SYSCTL_INT(_net_inet_tcp_ecn, OID_AUTO, maxretries, CTLFLAG_VNET | CTLFLAG_RW,
|
||||
"Max retries before giving up on ECN");
|
||||
|
||||
VNET_DEFINE(int, tcp_insecure_syn) = 0;
|
||||
#define V_tcp_insecure_syn VNET(tcp_insecure_syn)
|
||||
SYSCTL_INT(_net_inet_tcp, OID_AUTO, insecure_syn, CTLFLAG_VNET | CTLFLAG_RW,
|
||||
&VNET_NAME(tcp_insecure_syn), 0,
|
||||
"Follow RFC793 instead of RFC5961 criteria for accepting SYN packets");
|
||||
|
||||
VNET_DEFINE(int, tcp_insecure_rst) = 0;
|
||||
#define V_tcp_insecure_rst VNET(tcp_insecure_rst)
|
||||
SYSCTL_INT(_net_inet_tcp, OID_AUTO, insecure_rst, CTLFLAG_VNET | CTLFLAG_RW,
|
||||
&VNET_NAME(tcp_insecure_rst), 0,
|
||||
"Follow RFC793 instead of RFC5961 criteria for accepting RST packets");
|
||||
@ -211,19 +207,16 @@ SYSCTL_INT(_net_inet_tcp, TCPCTL_RECVSPACE, recvspace, CTLFLAG_VNET | CTLFLAG_RW
|
||||
&VNET_NAME(tcp_recvspace), 0, "Initial receive socket buffer size");
|
||||
|
||||
VNET_DEFINE(int, tcp_do_autorcvbuf) = 1;
|
||||
#define V_tcp_do_autorcvbuf VNET(tcp_do_autorcvbuf)
|
||||
SYSCTL_INT(_net_inet_tcp, OID_AUTO, recvbuf_auto, CTLFLAG_VNET | CTLFLAG_RW,
|
||||
&VNET_NAME(tcp_do_autorcvbuf), 0,
|
||||
"Enable automatic receive buffer sizing");
|
||||
|
||||
VNET_DEFINE(int, tcp_autorcvbuf_inc) = 16*1024;
|
||||
#define V_tcp_autorcvbuf_inc VNET(tcp_autorcvbuf_inc)
|
||||
SYSCTL_INT(_net_inet_tcp, OID_AUTO, recvbuf_inc, CTLFLAG_VNET | CTLFLAG_RW,
|
||||
&VNET_NAME(tcp_autorcvbuf_inc), 0,
|
||||
"Incrementor step size of automatic receive buffer");
|
||||
|
||||
VNET_DEFINE(int, tcp_autorcvbuf_max) = 2*1024*1024;
|
||||
#define V_tcp_autorcvbuf_max VNET(tcp_autorcvbuf_max)
|
||||
SYSCTL_INT(_net_inet_tcp, OID_AUTO, recvbuf_max, CTLFLAG_VNET | CTLFLAG_RW,
|
||||
&VNET_NAME(tcp_autorcvbuf_max), 0,
|
||||
"Max size of automatic receive buffer");
|
||||
|
@ -102,7 +102,6 @@ SYSCTL_INT(_net_inet_tcp, OID_AUTO, path_mtu_discovery, CTLFLAG_VNET | CTLFLAG_R
|
||||
"Enable Path MTU Discovery");
|
||||
|
||||
VNET_DEFINE(int, tcp_do_tso) = 1;
|
||||
#define V_tcp_do_tso VNET(tcp_do_tso)
|
||||
SYSCTL_INT(_net_inet_tcp, OID_AUTO, tso, CTLFLAG_VNET | CTLFLAG_RW,
|
||||
&VNET_NAME(tcp_do_tso), 0,
|
||||
"Enable TCP Segmentation Offload");
|
||||
@ -113,19 +112,16 @@ SYSCTL_INT(_net_inet_tcp, TCPCTL_SENDSPACE, sendspace, CTLFLAG_VNET | CTLFLAG_RW
|
||||
&VNET_NAME(tcp_sendspace), 0, "Initial send socket buffer size");
|
||||
|
||||
VNET_DEFINE(int, tcp_do_autosndbuf) = 1;
|
||||
#define V_tcp_do_autosndbuf VNET(tcp_do_autosndbuf)
|
||||
SYSCTL_INT(_net_inet_tcp, OID_AUTO, sendbuf_auto, CTLFLAG_VNET | CTLFLAG_RW,
|
||||
&VNET_NAME(tcp_do_autosndbuf), 0,
|
||||
"Enable automatic send buffer sizing");
|
||||
|
||||
VNET_DEFINE(int, tcp_autosndbuf_inc) = 8*1024;
|
||||
#define V_tcp_autosndbuf_inc VNET(tcp_autosndbuf_inc)
|
||||
SYSCTL_INT(_net_inet_tcp, OID_AUTO, sendbuf_inc, CTLFLAG_VNET | CTLFLAG_RW,
|
||||
&VNET_NAME(tcp_autosndbuf_inc), 0,
|
||||
"Incrementor step size of automatic send buffer");
|
||||
|
||||
VNET_DEFINE(int, tcp_autosndbuf_max) = 2*1024*1024;
|
||||
#define V_tcp_autosndbuf_max VNET(tcp_autosndbuf_max)
|
||||
SYSCTL_INT(_net_inet_tcp, OID_AUTO, sendbuf_max, CTLFLAG_VNET | CTLFLAG_RW,
|
||||
&VNET_NAME(tcp_autosndbuf_max), 0,
|
||||
"Max size of automatic send buffer");
|
||||
|
@ -133,19 +133,16 @@ SYSCTL_INT(_net_inet_tcp_sack, OID_AUTO, enable, CTLFLAG_VNET | CTLFLAG_RW,
|
||||
&VNET_NAME(tcp_do_sack), 0, "Enable/Disable TCP SACK support");
|
||||
|
||||
VNET_DEFINE(int, tcp_sack_maxholes) = 128;
|
||||
#define V_tcp_sack_maxholes VNET(tcp_sack_maxholes)
|
||||
SYSCTL_INT(_net_inet_tcp_sack, OID_AUTO, maxholes, CTLFLAG_VNET | CTLFLAG_RW,
|
||||
&VNET_NAME(tcp_sack_maxholes), 0,
|
||||
"Maximum number of TCP SACK holes allowed per connection");
|
||||
|
||||
VNET_DEFINE(int, tcp_sack_globalmaxholes) = 65536;
|
||||
#define V_tcp_sack_globalmaxholes VNET(tcp_sack_globalmaxholes)
|
||||
SYSCTL_INT(_net_inet_tcp_sack, OID_AUTO, globalmaxholes, CTLFLAG_VNET | CTLFLAG_RW,
|
||||
&VNET_NAME(tcp_sack_globalmaxholes), 0,
|
||||
"Global maximum number of TCP SACK holes");
|
||||
|
||||
VNET_DEFINE(int, tcp_sack_globalholes) = 0;
|
||||
#define V_tcp_sack_globalholes VNET(tcp_sack_globalholes)
|
||||
SYSCTL_INT(_net_inet_tcp_sack, OID_AUTO, globalholes, CTLFLAG_VNET | CTLFLAG_RD,
|
||||
&VNET_NAME(tcp_sack_globalholes), 0,
|
||||
"Global number of TCP SACK holes currently allocated");
|
||||
|
@ -120,21 +120,6 @@ __FBSDID("$FreeBSD$");
|
||||
|
||||
#include <security/mac/mac_framework.h>
|
||||
|
||||
VNET_DECLARE(int, tcp_autorcvbuf_inc);
|
||||
#define V_tcp_autorcvbuf_inc VNET(tcp_autorcvbuf_inc)
|
||||
VNET_DECLARE(int, tcp_autorcvbuf_max);
|
||||
#define V_tcp_autorcvbuf_max VNET(tcp_autorcvbuf_max)
|
||||
VNET_DECLARE(int, tcp_do_rfc3042);
|
||||
#define V_tcp_do_rfc3042 VNET(tcp_do_rfc3042)
|
||||
VNET_DECLARE(int, tcp_do_autorcvbuf);
|
||||
#define V_tcp_do_autorcvbuf VNET(tcp_do_autorcvbuf)
|
||||
VNET_DECLARE(int, tcp_insecure_rst);
|
||||
#define V_tcp_insecure_rst VNET(tcp_insecure_rst)
|
||||
VNET_DECLARE(int, tcp_insecure_syn);
|
||||
#define V_tcp_insecure_syn VNET(tcp_insecure_syn)
|
||||
VNET_DECLARE(int, drop_synfin);
|
||||
#define V_drop_synfin VNET(drop_synfin)
|
||||
|
||||
static void tcp_do_segment_fastslow(struct mbuf *, struct tcphdr *,
|
||||
struct socket *, struct tcpcb *, int, int, uint8_t,
|
||||
int);
|
||||
|
@ -201,12 +201,6 @@ struct tcpcb {
|
||||
#endif /* _KERNEL || _WANT_TCPCB */
|
||||
|
||||
#ifdef _KERNEL
|
||||
/*
|
||||
* Kernel variables for tcp.
|
||||
*/
|
||||
VNET_DECLARE(int, tcp_do_rfc1323);
|
||||
#define V_tcp_do_rfc1323 VNET(tcp_do_rfc1323)
|
||||
|
||||
struct tcptemp {
|
||||
u_char tt_ipgen[40]; /* the size must be of max ip header, now IPv6 */
|
||||
struct tcphdr tt_t;
|
||||
@ -701,50 +695,83 @@ SYSCTL_DECL(_net_inet_tcp_sack);
|
||||
MALLOC_DECLARE(M_TCPLOG);
|
||||
#endif
|
||||
|
||||
VNET_DECLARE(struct inpcbhead, tcb); /* queue of active tcpcb's */
|
||||
VNET_DECLARE(struct inpcbinfo, tcbinfo);
|
||||
extern int tcp_log_in_vain;
|
||||
VNET_DECLARE(int, tcp_mssdflt); /* XXX */
|
||||
VNET_DECLARE(int, tcp_minmss);
|
||||
VNET_DECLARE(int, tcp_delack_enabled);
|
||||
VNET_DECLARE(int, tcp_do_rfc3390);
|
||||
VNET_DECLARE(int, tcp_initcwnd_segments);
|
||||
VNET_DECLARE(int, tcp_sendspace);
|
||||
VNET_DECLARE(int, tcp_recvspace);
|
||||
|
||||
/*
|
||||
* Global TCP tunables shared between different stacks.
|
||||
* Please keep the list sorted.
|
||||
*/
|
||||
VNET_DECLARE(int, drop_synfin);
|
||||
VNET_DECLARE(int, path_mtu_discovery);
|
||||
VNET_DECLARE(int, tcp_do_rfc3465);
|
||||
VNET_DECLARE(int, tcp_abc_l_var);
|
||||
#define V_tcb VNET(tcb)
|
||||
#define V_tcbinfo VNET(tcbinfo)
|
||||
#define V_tcp_mssdflt VNET(tcp_mssdflt)
|
||||
#define V_tcp_minmss VNET(tcp_minmss)
|
||||
#define V_tcp_delack_enabled VNET(tcp_delack_enabled)
|
||||
#define V_tcp_do_rfc3390 VNET(tcp_do_rfc3390)
|
||||
#define V_tcp_initcwnd_segments VNET(tcp_initcwnd_segments)
|
||||
#define V_tcp_sendspace VNET(tcp_sendspace)
|
||||
#define V_tcp_recvspace VNET(tcp_recvspace)
|
||||
#define V_path_mtu_discovery VNET(path_mtu_discovery)
|
||||
#define V_tcp_do_rfc3465 VNET(tcp_do_rfc3465)
|
||||
#define V_tcp_abc_l_var VNET(tcp_abc_l_var)
|
||||
|
||||
VNET_DECLARE(int, tcp_do_sack); /* SACK enabled/disabled */
|
||||
VNET_DECLARE(int, tcp_sc_rst_sock_fail); /* RST on sock alloc failure */
|
||||
#define V_tcp_do_sack VNET(tcp_do_sack)
|
||||
#define V_tcp_sc_rst_sock_fail VNET(tcp_sc_rst_sock_fail)
|
||||
|
||||
VNET_DECLARE(int, tcp_do_ecn); /* TCP ECN enabled/disabled */
|
||||
VNET_DECLARE(int, tcp_autorcvbuf_inc);
|
||||
VNET_DECLARE(int, tcp_autorcvbuf_max);
|
||||
VNET_DECLARE(int, tcp_autosndbuf_inc);
|
||||
VNET_DECLARE(int, tcp_autosndbuf_max);
|
||||
VNET_DECLARE(int, tcp_delack_enabled);
|
||||
VNET_DECLARE(int, tcp_do_autorcvbuf);
|
||||
VNET_DECLARE(int, tcp_do_autosndbuf);
|
||||
VNET_DECLARE(int, tcp_do_ecn);
|
||||
VNET_DECLARE(int, tcp_do_rfc1323);
|
||||
VNET_DECLARE(int, tcp_do_rfc3042);
|
||||
VNET_DECLARE(int, tcp_do_rfc3390);
|
||||
VNET_DECLARE(int, tcp_do_rfc3465);
|
||||
VNET_DECLARE(int, tcp_do_rfc6675_pipe);
|
||||
VNET_DECLARE(int, tcp_do_sack);
|
||||
VNET_DECLARE(int, tcp_do_tso);
|
||||
VNET_DECLARE(int, tcp_ecn_maxretries);
|
||||
#define V_tcp_do_ecn VNET(tcp_do_ecn)
|
||||
#define V_tcp_ecn_maxretries VNET(tcp_ecn_maxretries)
|
||||
VNET_DECLARE(int, tcp_initcwnd_segments);
|
||||
VNET_DECLARE(int, tcp_insecure_rst);
|
||||
VNET_DECLARE(int, tcp_insecure_syn);
|
||||
VNET_DECLARE(int, tcp_minmss);
|
||||
VNET_DECLARE(int, tcp_mssdflt);
|
||||
VNET_DECLARE(int, tcp_recvspace);
|
||||
VNET_DECLARE(int, tcp_sack_globalholes);
|
||||
VNET_DECLARE(int, tcp_sack_globalmaxholes);
|
||||
VNET_DECLARE(int, tcp_sack_maxholes);
|
||||
VNET_DECLARE(int, tcp_sc_rst_sock_fail);
|
||||
VNET_DECLARE(int, tcp_sendspace);
|
||||
VNET_DECLARE(struct inpcbhead, tcb);
|
||||
VNET_DECLARE(struct inpcbinfo, tcbinfo);
|
||||
|
||||
#define V_drop_synfin VNET(drop_synfin)
|
||||
#define V_path_mtu_discovery VNET(path_mtu_discovery)
|
||||
#define V_tcb VNET(tcb)
|
||||
#define V_tcbinfo VNET(tcbinfo)
|
||||
#define V_tcp_abc_l_var VNET(tcp_abc_l_var)
|
||||
#define V_tcp_autorcvbuf_inc VNET(tcp_autorcvbuf_inc)
|
||||
#define V_tcp_autorcvbuf_max VNET(tcp_autorcvbuf_max)
|
||||
#define V_tcp_autosndbuf_inc VNET(tcp_autosndbuf_inc)
|
||||
#define V_tcp_autosndbuf_max VNET(tcp_autosndbuf_max)
|
||||
#define V_tcp_delack_enabled VNET(tcp_delack_enabled)
|
||||
#define V_tcp_do_autorcvbuf VNET(tcp_do_autorcvbuf)
|
||||
#define V_tcp_do_autosndbuf VNET(tcp_do_autosndbuf)
|
||||
#define V_tcp_do_ecn VNET(tcp_do_ecn)
|
||||
#define V_tcp_do_rfc1323 VNET(tcp_do_rfc1323)
|
||||
#define V_tcp_do_rfc3042 VNET(tcp_do_rfc3042)
|
||||
#define V_tcp_do_rfc3390 VNET(tcp_do_rfc3390)
|
||||
#define V_tcp_do_rfc3465 VNET(tcp_do_rfc3465)
|
||||
#define V_tcp_do_rfc6675_pipe VNET(tcp_do_rfc6675_pipe)
|
||||
#define V_tcp_do_sack VNET(tcp_do_sack)
|
||||
#define V_tcp_do_tso VNET(tcp_do_tso)
|
||||
#define V_tcp_ecn_maxretries VNET(tcp_ecn_maxretries)
|
||||
#define V_tcp_initcwnd_segments VNET(tcp_initcwnd_segments)
|
||||
#define V_tcp_insecure_rst VNET(tcp_insecure_rst)
|
||||
#define V_tcp_insecure_syn VNET(tcp_insecure_syn)
|
||||
#define V_tcp_minmss VNET(tcp_minmss)
|
||||
#define V_tcp_mssdflt VNET(tcp_mssdflt)
|
||||
#define V_tcp_recvspace VNET(tcp_recvspace)
|
||||
#define V_tcp_sack_globalholes VNET(tcp_sack_globalholes)
|
||||
#define V_tcp_sack_globalmaxholes VNET(tcp_sack_globalmaxholes)
|
||||
#define V_tcp_sack_maxholes VNET(tcp_sack_maxholes)
|
||||
#define V_tcp_sc_rst_sock_fail VNET(tcp_sc_rst_sock_fail)
|
||||
#define V_tcp_sendspace VNET(tcp_sendspace)
|
||||
|
||||
#ifdef TCP_HHOOK
|
||||
VNET_DECLARE(struct hhook_head *, tcp_hhh[HHOOK_TCP_LAST + 1]);
|
||||
#define V_tcp_hhh VNET(tcp_hhh)
|
||||
#endif
|
||||
|
||||
VNET_DECLARE(int, tcp_do_rfc6675_pipe);
|
||||
#define V_tcp_do_rfc6675_pipe VNET(tcp_do_rfc6675_pipe)
|
||||
|
||||
int tcp_addoptions(struct tcpopt *, u_char *);
|
||||
int tcp_ccalgounload(struct cc_algo *unload_algo);
|
||||
struct tcpcb *
|
||||
|
Loading…
Reference in New Issue
Block a user