[Codel] [RFCv2 PATCH] iproute2: Add ecn_target option to codel and fq_codel

Eric Dumazet eric.dumazet at gmail.com
Mon Jun 25 01:24:22 EDT 2012


On Sun, 2012-06-24 at 22:00 -0700, Dave Täht wrote:
> From: Dave Taht <dave.taht at bufferbloat.net>
> 
> ECN was not part of the original codel design and adding support
> for it revealed problems in two areas. 1) ECN can be gamed.
> 2) Dropping packets under overload more rapidly frees up
> bandwidth than marking packets.
> 
> Two possible scenarios of use - on egress from a network,
> ecn_target could be set low, to drop more often, to
> ensure lowest latency for other packets.
> 
> On ingress, it could be set high to mark packets more often,
> to lower data loss while still signalling the end application
> that bandwidth is a problem.
> 
> ecn_target is not engaged until after codel enters a dropping
> state overall.
> ---
>  include/linux/pkt_sched.h |    2 ++
>  man/man8/tc-codel.8       |    3 +++
>  man/man8/tc-fq_codel.8    |    5 +++++
>  tc/q_codel.c              |   17 ++++++++++++++++-
>  tc/q_fq_codel.c           |   17 ++++++++++++++++-
>  5 files changed, 42 insertions(+), 2 deletions(-)
> 
> diff --git a/include/linux/pkt_sched.h b/include/linux/pkt_sched.h
> index 32aef0a..f0dcf8c 100644
> --- a/include/linux/pkt_sched.h
> +++ b/include/linux/pkt_sched.h
> @@ -663,6 +663,7 @@ enum {
>  	TCA_CODEL_LIMIT,
>  	TCA_CODEL_INTERVAL,
>  	TCA_CODEL_ECN,
> +	TCA_CODEL_ECN_TARGET,
>  	__TCA_CODEL_MAX
>  };
>  
> @@ -691,6 +692,7 @@ enum {
>  	TCA_FQ_CODEL_ECN,
>  	TCA_FQ_CODEL_FLOWS,
>  	TCA_FQ_CODEL_QUANTUM,
> +	TCA_FQ_CODEL_ECN_TARGET,
>  	__TCA_FQ_CODEL_MAX
>  };
>  
> diff --git a/man/man8/tc-codel.8 b/man/man8/tc-codel.8
> index 61f163f..0e97249 100644
> --- a/man/man8/tc-codel.8
> +++ b/man/man8/tc-codel.8
> @@ -64,6 +64,9 @@ is the acceptable minimum standing/persistent queue delay. This minimum delay
>  is identified by tracking the local minimum queue delay that packets experience.
>  Default and recommended value is 5ms.
>  
> +.SS ecn_target
> +is the overall delay at which ecn marked packets will be dropped rather than marked.
> +
>  .SS interval
>  is used to ensure that the measured minimum delay does not become too stale. The
>  minimum delay must be experienced in the last epoch of length
> diff --git a/man/man8/tc-fq_codel.8 b/man/man8/tc-fq_codel.8
> index 8b43c10..9cb5be8 100644
> --- a/man/man8/tc-fq_codel.8
> +++ b/man/man8/tc-fq_codel.8
> @@ -49,6 +49,11 @@ and is the acceptable minimum
>  standing/persistent queue delay. This minimum delay is identified by tracking
>  the local minimum queue delay that packets experience.  Default value is 5ms.
>  
> +.SS ecn_target
> +has the same semantics as
> +.B codel
> +and is the delay beyond which ecn packets will be dropped rather than marked.
> +

What do you mean by "ecn_target has the same semantics as codel" ?





More information about the Codel mailing list