cregit-Linux how code gets into the kernel

Release 4.15 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 Heffner3552.24%112.50%
Arnaldo Carvalho de Melo1217.91%112.50%
Stephen Hemminger811.94%225.00%
Yuchung Cheng68.96%225.00%
Ilpo Järvinen45.97%112.50%
Neal 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 Heffner2767.50%150.00%
Arnaldo Carvalho de Melo1332.50%150.00%
Total40100.00%2100.00%

static struct tcp_congestion_ops tcp_scalable __read_mostly = { .ssthresh = tcp_scalable_ssthresh, .undo_cwnd = tcp_reno_undo_cwnd, .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 Heffner16100.00%1100.00%
Total16100.00%1100.00%


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

Contributors

PersonTokensPropCommitsCommitProp
John 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 Heffner16075.47%18.33%
Arnaldo Carvalho de Melo2511.79%18.33%
Stephen Hemminger94.25%325.00%
Yuchung Cheng73.30%325.00%
Florian Westphal41.89%18.33%
Ilpo Järvinen41.89%18.33%
Neal Cardwell20.94%18.33%
Joe Perches10.47%18.33%
Total212100.00%12100.00%
Directory: net/ipv4
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
Created with cregit.