cregit-Linux how code gets into the kernel

Release 4.8 net/ipv4/tcp_scalable.c

Directory: net/ipv4
/* Tom Kelly's Scalable TCP
 *
 * See http://www.deneholme.net/tom/scalable/
 *
 * John Heffner <jheffner@sc.edu>
 */

#include <linux/module.h>
#include <net/tcp.h>

/* These factors derived from the recommended values in the aer:
 * .01 and and 7/8. We use 50 instead of 100 to account for
 * delayed ack.
 */

#define TCP_SCALABLE_AI_CNT	50U

#define TCP_SCALABLE_MD_SCALE	3


static void tcp_scalable_cong_avoid(struct sock *sk, u32 ack, u32 acked) { struct tcp_sock *tp = tcp_sk(sk); if (!tcp_is_cwnd_limited(sk)) return; if (tcp_in_slow_start(tp)) tcp_slow_start(tp, acked); else tcp_cong_avoid_ai(tp, min(tp->snd_cwnd, TCP_SCALABLE_AI_CNT), 1); }

Contributors

PersonTokensPropCommitsCommitProp
john heffnerjohn heffner3552.24%112.50%
arnaldo carvalho de meloarnaldo carvalho de melo1217.91%112.50%
stephen hemmingerstephen hemminger811.94%225.00%
yuchung chengyuchung cheng68.96%225.00%
ilpo jarvinenilpo jarvinen45.97%112.50%
neal cardwellneal cardwell22.99%112.50%
Total67100.00%8100.00%


static u32 tcp_scalable_ssthresh(struct sock *sk) { const struct tcp_sock *tp = tcp_sk(sk); return max(tp->snd_cwnd - (tp->snd_cwnd>>TCP_SCALABLE_MD_SCALE), 2U); }

Contributors

PersonTokensPropCommitsCommitProp
john heffnerjohn heffner2767.50%150.00%
arnaldo carvalho de meloarnaldo carvalho de melo1332.50%150.00%
Total40100.00%2100.00%

static struct tcp_congestion_ops tcp_scalable __read_mostly = { .ssthresh = tcp_scalable_ssthresh, .cong_avoid = tcp_scalable_cong_avoid, .owner = THIS_MODULE, .name = "scalable", };
static int __init tcp_scalable_register(void) { return tcp_register_congestion_control(&tcp_scalable); }

Contributors

PersonTokensPropCommitsCommitProp
john heffnerjohn heffner16100.00%1100.00%
Total16100.00%1100.00%


static void __exit tcp_scalable_unregister(void) { tcp_unregister_congestion_control(&tcp_scalable); }

Contributors

PersonTokensPropCommitsCommitProp
john heffnerjohn heffner15100.00%1100.00%
Total15100.00%1100.00%

module_init(tcp_scalable_register); module_exit(tcp_scalable_unregister); MODULE_AUTHOR("John Heffner"); MODULE_LICENSE("GPL"); MODULE_DESCRIPTION("Scalable TCP");

Overall Contributors

PersonTokensPropCommitsCommitProp
john heffnerjohn heffner16077.29%110.00%
arnaldo carvalho de meloarnaldo carvalho de melo2512.08%110.00%
stephen hemmingerstephen hemminger94.35%330.00%
yuchung chengyuchung cheng62.90%220.00%
ilpo jarvinenilpo jarvinen41.93%110.00%
neal cardwellneal cardwell20.97%110.00%
joe perchesjoe perches10.48%110.00%
Total207100.00%10100.00%
Directory: net/ipv4
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.