[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