netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* is non-inheritance of congestion control algorithm from the listen socket a bug or a feature?
@ 2011-11-29 20:03 Rick Jones
  2011-11-29 20:27 ` Dave Taht
  2011-11-29 20:56 ` Eric Dumazet
  0 siblings, 2 replies; 9+ messages in thread
From: Rick Jones @ 2011-11-29 20:03 UTC (permalink / raw)
  To: netdev

Dave Taht asked me if I would consider adding control/reporting of the 
congestion control algorithm to netperf.  I'm in the midst of doing that 
and have noticed that setting a valid congestion control algorithm on a 
listen endpoint does not seem to be inherited by subsequent connections. 
  Rather than rely on netperf/netserver I cobbled-together a quick test 
program to show what I mean.

raj@raj-ubuntu-guest:~$ uname -a
Linux raj-ubuntu-guest 3.2.0-rc2+ #1 SMP Mon Nov 28 16:39:21 PST 2011 
x86_64 x86_64 x86_64 GNU/Linux

raj@raj-ubuntu-guest:~$ find /proc -name "*cong*" -print -exec cat {} \; 
2>/dev/null
/proc/sys/net/ipv4/tcp_congestion_control
cubic
/proc/sys/net/ipv4/tcp_available_congestion_control
cubic reno
/proc/sys/net/ipv4/tcp_allowed_congestion_control
cubic reno


# first just report what one gets
raj@raj-ubuntu-guest:~$ ./tcp_congestion_test
Will make no request to set congestion control algorithm
active socket has '' for congestion control
passive socket has '' for congestion control
after listen() passive socket has '' for congestion control
after connect() active has 'cubic' for congestion control
after accept() accepted has 'cubic' for congestion control

# now specify a valid alternative
raj@raj-ubuntu-guest:~$ ./tcp_congestion_test  reno
Will be requesting 'reno' as the congestion control algorithm
active socket has 'reno' for congestion control
passive socket has 'reno' for congestion control
after listen() passive socket has 'reno' for congestion control
after connect() active has 'reno' for congestion control
after accept() accepted has 'cubic' for congestion control

# now specify an invalid alternative just for completeness
raj@raj-ubuntu-guest:~$ ./tcp_congestion_test  bogus
Will be requesting 'bogus' as the congestion control algorithm
active socket has '' for congestion control
passive socket has '' for congestion control
after listen() passive socket has '' for congestion control
after connect() active has 'cubic' for congestion control
after accept() accepted has 'cubic' for congestion control

Is the non-inheritance of the congestion control algorithm a bug or a 
feature?

rick jones

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2011-11-29 22:02 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-11-29 20:03 is non-inheritance of congestion control algorithm from the listen socket a bug or a feature? Rick Jones
2011-11-29 20:27 ` Dave Taht
2011-11-29 20:56 ` Eric Dumazet
2011-11-29 21:17   ` Rick Jones
2011-11-29 21:20   ` Yuchung Cheng
2011-11-29 21:46     ` Eric Dumazet
2011-11-29 21:52       ` David Miller
2011-11-29 21:56         ` Eric Dumazet
2011-11-29 22:01           ` Stephen Hemminger

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).