Monday, May 10, 2010

congestion control algorithm to be used for new connections


ahiliation:~$cat /proc/sys/net/ipv4/tcp_congestion_control
cubic
ahiliation:~$echo reno > /proc/sys/net/ipv4/tcp_congestion_control
bash: /proc/sys/net/ipv4/tcp_congestion_control: Permission denied
ahiliation:~$su -
Password:
debianlabs:~# echo reno > /proc/sys/net/ipv4/tcp_congestion_control
debianlabs:~# cat /proc/sys/net/ipv4/tcp_congestion_control
reno
debianlabs:~# echo dreno > /proc/sys/net/ipv4/tcp_congestion_control
-su: echo: write error: No such file or directory


Set the congestion control algorithm to be used for new
connections. The algorithm "reno" is always available, but
additional choices may be available based on kernel configuration.
Default is set as part of kernel configuration.


[ linux kernel source tcp_yeah.c ]
else if (!yeah->doing_reno_now) {
/* Scalable */
tp->snd_cwnd_cnt += yeah->pkts_acked;


grepping through linux kernel source 2.6.32
sysctl_net_ipv4.c: .procname = "tcp_congestion_control",
sysctl_net_ipv4.c: .proc_handler = proc_tcp_congestion_control,
sysctl_net_ipv4.c: .strategy = sysctl_tcp_congestion_control,


Problem : Find exactly where the default algorithm is done in code