* About disabling congestion control
@ 2011-01-07 1:25 Syed Obaid Amin
2011-01-07 1:37 ` Stephen Hemminger
0 siblings, 1 reply; 4+ messages in thread
From: Syed Obaid Amin @ 2011-01-07 1:25 UTC (permalink / raw)
To: netdev
Hey all,
I am currently working on a socket option to disable the tcp
congestion control. I think the simplest approach to do this is to
ignore cwnd before sending out a packet.
After going through tcp output engine it seems that tcp_cwnd_test is
the method that decides that how many segments can be sent out on a
wire. For testing it out, I changed this method so that if no-cc
option is ON, just return a big constant value. But, it didn't work
and I am unable to see a burst of pkts. It looks like that I am
missing something here.
Any suggestions that what is the right place to look for disabling the
congestion control ?
Thanks much!
Obaid
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: About disabling congestion control
2011-01-07 1:25 About disabling congestion control Syed Obaid Amin
@ 2011-01-07 1:37 ` Stephen Hemminger
2011-01-07 10:04 ` Syed Obaid Amin
0 siblings, 1 reply; 4+ messages in thread
From: Stephen Hemminger @ 2011-01-07 1:37 UTC (permalink / raw)
To: Syed Obaid Amin; +Cc: netdev
On Thu, 6 Jan 2011 20:25:18 -0500
Syed Obaid Amin <obaidasyed@gmail.com> wrote:
> Hey all,
>
> I am currently working on a socket option to disable the tcp
> congestion control. I think the simplest approach to do this is to
> ignore cwnd before sending out a packet.
>
> After going through tcp output engine it seems that tcp_cwnd_test is
> the method that decides that how many segments can be sent out on a
> wire. For testing it out, I changed this method so that if no-cc
> option is ON, just return a big constant value. But, it didn't work
> and I am unable to see a burst of pkts. It looks like that I am
> missing something here.
>
> Any suggestions that what is the right place to look for disabling the
> congestion control ?
>
> Thanks much!
>
> Obaid
I assume this is just a local hack experiment; not something you
want to actually submit for other users to use...
The easiest/safest way to do this would be to build/define a new TCP congestion
control type that does nothing.
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: About disabling congestion control
2011-01-07 1:37 ` Stephen Hemminger
@ 2011-01-07 10:04 ` Syed Obaid Amin
2011-01-07 10:33 ` Eric Dumazet
0 siblings, 1 reply; 4+ messages in thread
From: Syed Obaid Amin @ 2011-01-07 10:04 UTC (permalink / raw)
To: Stephen Hemminger; +Cc: netdev
Thanks for the reply. Yes I also thought to create a sort of NULL
congestion control type that does nothing. But this way the changes
would be system wide. BTW, would some one share the insight that why
linux uses sysctl to select a congestion control algorithm instead of
socket options.
Thanks again,
Obaid
On Thu, Jan 6, 2011 at 8:37 PM, Stephen Hemminger <shemminger@vyatta.com> wrote:
> On Thu, 6 Jan 2011 20:25:18 -0500
> Syed Obaid Amin <obaidasyed@gmail.com> wrote:
>
>> Hey all,
>>
>> I am currently working on a socket option to disable the tcp
>> congestion control. I think the simplest approach to do this is to
>> ignore cwnd before sending out a packet.
>>
>> After going through tcp output engine it seems that tcp_cwnd_test is
>> the method that decides that how many segments can be sent out on a
>> wire. For testing it out, I changed this method so that if no-cc
>> option is ON, just return a big constant value. But, it didn't work
>> and I am unable to see a burst of pkts. It looks like that I am
>> missing something here.
>>
>> Any suggestions that what is the right place to look for disabling the
>> congestion control ?
>>
>> Thanks much!
>>
>> Obaid
>
> I assume this is just a local hack experiment; not something you
> want to actually submit for other users to use...
>
> The easiest/safest way to do this would be to build/define a new TCP congestion
> control type that does nothing.
>
>
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: About disabling congestion control
2011-01-07 10:04 ` Syed Obaid Amin
@ 2011-01-07 10:33 ` Eric Dumazet
0 siblings, 0 replies; 4+ messages in thread
From: Eric Dumazet @ 2011-01-07 10:33 UTC (permalink / raw)
To: Syed Obaid Amin; +Cc: Stephen Hemminger, netdev, Michael Kerrisk
Le vendredi 07 janvier 2011 à 05:04 -0500, Syed Obaid Amin a écrit :
> Thanks for the reply. Yes I also thought to create a sort of NULL
> congestion control type that does nothing. But this way the changes
> would be system wide. BTW, would some one share the insight that why
> linux uses sysctl to select a congestion control algorithm instead of
> socket options.
Hmm, maybe "man 7 tcp" is not up2date.
It mentions TCP_CONGESTION once but doesnt describe it.
CC Michael Kerrisk <mtk.manpages@gmail.com> ;)
http://www.kernel.org/doc/man-pages/online/pages/man7/tcp.7.html
Lets say you have a kernel with support for two congestion controls :
# cat /proc/sys/net/ipv4/tcp_allowed_congestion_control
cubic reno
# cat /proc/sys/net/ipv4/tcp_congestion_control
cubic
Therefore, default is cubic, but you can change to reno if you want.
setsockopt(sock, SOL_TCP, TCP_CONGESTION, "reno", strlen("reno"));
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2011-01-07 10:33 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-01-07 1:25 About disabling congestion control Syed Obaid Amin
2011-01-07 1:37 ` Stephen Hemminger
2011-01-07 10:04 ` Syed Obaid Amin
2011-01-07 10:33 ` Eric Dumazet
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).