cc.c (db0ac6ded61105caab4700aeac255328d4238dc4) cc.c (a9696510f5caef4a7c525fcf4359597798829350)
1/*-
2 * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
3 *
4 * Copyright (c) 2007-2008
5 * Swinburne University of Technology, Melbourne, Australia.
6 * Copyright (c) 2009-2010 Lawrence Stewart <lstewart@freebsd.org>
7 * Copyright (c) 2010 The FreeBSD Foundation
8 * All rights reserved.

--- 70 unchanged lines hidden (view full) ---

79
80/*
81 * Have a sane default if no CC_DEFAULT is specified in the kernel config file.
82 */
83#ifndef CC_DEFAULT
84#define CC_DEFAULT "newreno"
85#endif
86
1/*-
2 * SPDX-License-Identifier: BSD-2-Clause-FreeBSD
3 *
4 * Copyright (c) 2007-2008
5 * Swinburne University of Technology, Melbourne, Australia.
6 * Copyright (c) 2009-2010 Lawrence Stewart <lstewart@freebsd.org>
7 * Copyright (c) 2010 The FreeBSD Foundation
8 * All rights reserved.

--- 70 unchanged lines hidden (view full) ---

79
80/*
81 * Have a sane default if no CC_DEFAULT is specified in the kernel config file.
82 */
83#ifndef CC_DEFAULT
84#define CC_DEFAULT "newreno"
85#endif
86
87uint32_t hystart_minrtt_thresh = 4000;
88uint32_t hystart_maxrtt_thresh = 16000;
89uint32_t hystart_n_rttsamples = 8;
90uint32_t hystart_css_growth_div = 4;
91uint32_t hystart_css_rounds = 5;
92uint32_t hystart_bblogs = 0;
93
87MALLOC_DEFINE(M_CC_MEM, "CC Mem", "Congestion Control State memory");
88
89/*
90 * List of available cc algorithms on the current system. First element
91 * is used as the system default CC algorithm.
92 */
93struct cc_head cc_list = STAILQ_HEAD_INITIALIZER(cc_list);
94

--- 482 unchanged lines hidden (view full) ---

577 NULL, 0, cc_default_algo, "A",
578 "Default congestion control algorithm");
579
580SYSCTL_PROC(_net_inet_tcp_cc, OID_AUTO, available,
581 CTLTYPE_STRING | CTLFLAG_RD | CTLFLAG_MPSAFE,
582 NULL, 0, cc_list_available, "A",
583 "List available congestion control algorithms");
584
94MALLOC_DEFINE(M_CC_MEM, "CC Mem", "Congestion Control State memory");
95
96/*
97 * List of available cc algorithms on the current system. First element
98 * is used as the system default CC algorithm.
99 */
100struct cc_head cc_list = STAILQ_HEAD_INITIALIZER(cc_list);
101

--- 482 unchanged lines hidden (view full) ---

584 NULL, 0, cc_default_algo, "A",
585 "Default congestion control algorithm");
586
587SYSCTL_PROC(_net_inet_tcp_cc, OID_AUTO, available,
588 CTLTYPE_STRING | CTLFLAG_RD | CTLFLAG_MPSAFE,
589 NULL, 0, cc_list_available, "A",
590 "List available congestion control algorithms");
591
592SYSCTL_NODE(_net_inet_tcp_cc, OID_AUTO, hystartplusplus,
593 CTLFLAG_RW | CTLFLAG_MPSAFE, NULL,
594 "New Reno related HyStart++ settings");
595
596SYSCTL_UINT(_net_inet_tcp_cc_hystartplusplus, OID_AUTO, minrtt_thresh,
597 CTLFLAG_RW,
598 &hystart_minrtt_thresh, 4000,
599 "HyStarts++ minimum RTT thresh used in clamp (in microseconds)");
600
601SYSCTL_UINT(_net_inet_tcp_cc_hystartplusplus, OID_AUTO, maxrtt_thresh,
602 CTLFLAG_RW,
603 &hystart_maxrtt_thresh, 16000,
604 "HyStarts++ maximum RTT thresh used in clamp (in microseconds)");
605
606SYSCTL_UINT(_net_inet_tcp_cc_hystartplusplus, OID_AUTO, n_rttsamples,
607 CTLFLAG_RW,
608 &hystart_n_rttsamples, 8,
609 "The number of RTT samples that must be seen to consider HyStart++");
610
611SYSCTL_UINT(_net_inet_tcp_cc_hystartplusplus, OID_AUTO, css_growth_div,
612 CTLFLAG_RW,
613 &hystart_css_growth_div, 4,
614 "The divisor to the growth when in Hystart++ CSS");
615
616SYSCTL_UINT(_net_inet_tcp_cc_hystartplusplus, OID_AUTO, css_rounds,
617 CTLFLAG_RW,
618 &hystart_css_rounds, 5,
619 "The number of rounds HyStart++ lasts in CSS before falling to CA");
620
621SYSCTL_UINT(_net_inet_tcp_cc_hystartplusplus, OID_AUTO, bblogs,
622 CTLFLAG_RW,
623 &hystart_bblogs, 0,
624 "Do we enable HyStart++ Black Box logs to be generated if BB logging is on");
625
585VNET_DEFINE(int, cc_do_abe) = 0;
586SYSCTL_INT(_net_inet_tcp_cc, OID_AUTO, abe, CTLFLAG_VNET | CTLFLAG_RW,
587 &VNET_NAME(cc_do_abe), 0,
588 "Enable draft-ietf-tcpm-alternativebackoff-ecn (TCP Alternative Backoff with ECN)");
589
590VNET_DEFINE(int, cc_abe_frlossreduce) = 0;
591SYSCTL_INT(_net_inet_tcp_cc, OID_AUTO, abe_frlossreduce, CTLFLAG_VNET | CTLFLAG_RW,
592 &VNET_NAME(cc_abe_frlossreduce), 0,
593 "Apply standard beta instead of ABE-beta during ECN-signalled congestion "
594 "recovery episodes if loss also needs to be repaired");
626VNET_DEFINE(int, cc_do_abe) = 0;
627SYSCTL_INT(_net_inet_tcp_cc, OID_AUTO, abe, CTLFLAG_VNET | CTLFLAG_RW,
628 &VNET_NAME(cc_do_abe), 0,
629 "Enable draft-ietf-tcpm-alternativebackoff-ecn (TCP Alternative Backoff with ECN)");
630
631VNET_DEFINE(int, cc_abe_frlossreduce) = 0;
632SYSCTL_INT(_net_inet_tcp_cc, OID_AUTO, abe_frlossreduce, CTLFLAG_VNET | CTLFLAG_RW,
633 &VNET_NAME(cc_abe_frlossreduce), 0,
634 "Apply standard beta instead of ABE-beta during ECN-signalled congestion "
635 "recovery episodes if loss also needs to be repaired");