Subject: Re: [PATCH] tcp: don't allow unfair congestion control to be built without warning

From: John Heffner <[email-masked]>
Date: Fri, 27 Oct 2006 13:43:08 -0400

I think "unfair" is a difficult word.  Unfair to what?  It's true that 
Scalable TCP is unfair to itself in that flows with unequal shares do 
not converge, but it's not clear what its interactions are with other 
congestion control algorithms.  It's not clear to me that it's 
significantly more unfair wrt. reno than BIC, etc.  "Known to be broken" 
might be more correct language. :)

One thought would be to use a module parameter that sets one bit of 
state: allow unprivileged use.  Each module could have a sensible 
default value.

   -John

Stephen Hemminger wrote:
> My proposed method restricting TCP choices to fair algorithms.
> This a net wide, not system wide issue, it should not be done
> by kernel policy choice (capability), but by a build choice.
> 
> --- sky2.orig/net/ipv4/Kconfig	2006-10-27 10:10:47.000000000 -0700
> +++ sky2/net/ipv4/Kconfig	2006-10-27 10:15:56.000000000 -0700
> @@ -470,6 +470,16 @@
>  
>  if TCP_CONG_ADVANCED
>  
> +config TCP_CONG_UNFAIR
> +        bool "Allow unfair congestion control algorithms"
> +	depends on EXPERIMENTAL
> +        ---help---
> +	  Some of the congestion control algorithms are for testing
> +	  and research purposes and should not deployed on public
> +	  networks because of the possiblity of unfair behavior.
> +	  These algorithms may be useful for future development
> +	  or comparison purposes.
> +
>  config TCP_CONG_BIC
>  	tristate "Binary Increase Congestion (BIC) control"
>  	default m
> @@ -551,7 +561,7 @@
>  
>  config TCP_CONG_SCALABLE
>  	tristate "Scalable TCP"
> -	depends on EXPERIMENTAL
> +	depends on TCP_CONG_UNFAIR
>  	default n
>  	---help---
>  	Scalable TCP is a sender-side only change to TCP which uses a