* [PATCH iproute2-next 1/2] tc: Add missing documentation for codel and fq_codel parameters @ 2018-03-08 22:31 Toke Høiland-Jørgensen 2018-03-08 22:31 ` [PATCH iproute2-next 2/2] tc: Add JSON output of fq_codel stats Toke Høiland-Jørgensen 2018-03-14 1:07 ` [PATCH iproute2-next 1/2] tc: Add missing documentation for codel and fq_codel parameters David Ahern 0 siblings, 2 replies; 4+ messages in thread From: Toke Høiland-Jørgensen @ 2018-03-08 22:31 UTC (permalink / raw) To: netdev; +Cc: Toke Høiland-Jørgensen Add missing documentation of the memory_limit fq_codel parameter and the ce_threshold codel and fq_codel parameters. Signed-off-by: Toke Høiland-Jørgensen <toke@toke.dk> --- man/man8/tc-codel.8 | 10 +++++++++- man/man8/tc-fq_codel.8 | 18 +++++++++++++++++- tc/q_fq_codel.c | 1 + 3 files changed, 27 insertions(+), 2 deletions(-) diff --git a/man/man8/tc-codel.8 b/man/man8/tc-codel.8 index a0e50a4e..e538e940 100644 --- a/man/man8/tc-codel.8 +++ b/man/man8/tc-codel.8 @@ -13,7 +13,9 @@ TIME ] [ .B ecn | .B noecn -] +] [ +.B ce_threshold +TIME ] .SH DESCRIPTION CoDel (pronounced "coddle") is an adaptive "no-knobs" active queue management @@ -80,6 +82,12 @@ can be used to turn it off and vice-a-versa. By default, .B ecn is turned off. +.SS ce_threshold +sets a threshold above which all packets are marked with ECN Congestion +Experienced. This is useful for DCTCP-style congestion control algorithms that +require marking at very shallow queueing thresholds. + + .SH EXAMPLES # tc qdisc add dev eth0 root codel # tc -s qdisc show diff --git a/man/man8/tc-fq_codel.8 b/man/man8/tc-fq_codel.8 index a80389a1..7ee6c269 100644 --- a/man/man8/tc-fq_codel.8 +++ b/man/man8/tc-fq_codel.8 @@ -17,7 +17,11 @@ BYTES ] [ .B ecn | .B noecn -] +] [ +.B ce_threshold +TIME ] [ +.B memory_limit +BYTES ] .SH DESCRIPTION FQ_Codel (Fair Queuing Controlled Delay) is queuing discipline that combines Fair @@ -35,6 +39,13 @@ and is the hard limit on the real queue size. When this limit is reached, incoming packets are dropped. Default is 10240 packets. +.SS memory_limit +sets a limit on the total number of bytes that can be queued in this FQ-CoDel +instance. The lower of the packet limit of the +.B limit +parameter and the memory limit will be enforced. Default is 32 MB. + + .SS flows is the number of flows into which the incoming packets are classified. Due to the stochastic nature of hashing, multiple flows may end up being hashed into @@ -73,6 +84,11 @@ can be used to turn it off and vice-a-versa. Unlike .B codel, ecn is turned on by default. +.SS ce_threshold +sets a threshold above which all packets are marked with ECN Congestion +Experienced. This is useful for DCTCP-style congestion control algorithms that +require marking at very shallow queueing thresholds. + .SH EXAMPLES #tc qdisc add dev eth0 root fq_codel .br diff --git a/tc/q_fq_codel.c b/tc/q_fq_codel.c index 9e3736fe..1b2931ef 100644 --- a/tc/q_fq_codel.c +++ b/tc/q_fq_codel.c @@ -50,6 +50,7 @@ static void explain(void) { fprintf(stderr, "Usage: ... fq_codel [ limit PACKETS ] [ flows NUMBER ]\n"); + fprintf(stderr, " [ memory_limit BYTES ]\n"); fprintf(stderr, " [ target TIME ] [ interval TIME ]\n"); fprintf(stderr, " [ quantum BYTES ] [ [no]ecn ]\n"); fprintf(stderr, " [ ce_threshold TIME ]\n"); -- 2.16.2 ^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH iproute2-next 2/2] tc: Add JSON output of fq_codel stats 2018-03-08 22:31 [PATCH iproute2-next 1/2] tc: Add missing documentation for codel and fq_codel parameters Toke Høiland-Jørgensen @ 2018-03-08 22:31 ` Toke Høiland-Jørgensen 2018-03-14 1:07 ` David Ahern 2018-03-14 1:07 ` [PATCH iproute2-next 1/2] tc: Add missing documentation for codel and fq_codel parameters David Ahern 1 sibling, 1 reply; 4+ messages in thread From: Toke Høiland-Jørgensen @ 2018-03-08 22:31 UTC (permalink / raw) To: netdev; +Cc: Toke Høiland-Jørgensen Enable proper JSON output support for fq_codel in `tc -s qdisc` output. Signed-off-by: Toke Høiland-Jørgensen <toke@toke.dk> --- tc/q_fq_codel.c | 49 ++++++++++++++++++++++++++++++++----------------- 1 file changed, 32 insertions(+), 17 deletions(-) diff --git a/tc/q_fq_codel.c b/tc/q_fq_codel.c index 1b2931ef..02ad2214 100644 --- a/tc/q_fq_codel.c +++ b/tc/q_fq_codel.c @@ -239,35 +239,50 @@ static int fq_codel_print_xstats(struct qdisc_util *qu, FILE *f, st = &_st; } if (st->type == TCA_FQ_CODEL_XSTATS_QDISC) { - fprintf(f, " maxpacket %u drop_overlimit %u new_flow_count %u ecn_mark %u", - st->qdisc_stats.maxpacket, - st->qdisc_stats.drop_overlimit, - st->qdisc_stats.new_flow_count, + print_uint(PRINT_ANY, "maxpacket", " maxpacket %u", + st->qdisc_stats.maxpacket); + print_uint(PRINT_ANY, "drop_overlimit", " drop_overlimit %u", + st->qdisc_stats.drop_overlimit); + print_uint(PRINT_ANY, "new_flow_count", " new_flow_count %u", + st->qdisc_stats.new_flow_count); + print_uint(PRINT_ANY, "ecn_mark", " ecn_mark %u", st->qdisc_stats.ecn_mark); if (st->qdisc_stats.ce_mark) - fprintf(f, " ce_mark %u", st->qdisc_stats.ce_mark); + print_uint(PRINT_ANY, "ce_mark", " ce_mark %u", + st->qdisc_stats.ce_mark); if (st->qdisc_stats.memory_usage) - fprintf(f, " memory_used %u", st->qdisc_stats.memory_usage); + print_uint(PRINT_ANY, "memory_used", " memory_used %u", + st->qdisc_stats.memory_usage); if (st->qdisc_stats.drop_overmemory) - fprintf(f, " drop_overmemory %u", st->qdisc_stats.drop_overmemory); - fprintf(f, "\n new_flows_len %u old_flows_len %u", - st->qdisc_stats.new_flows_len, + print_uint(PRINT_ANY, "drop_overmemory", " drop_overmemory %u", + st->qdisc_stats.drop_overmemory); + print_uint(PRINT_ANY, "new_flows_len", "\n new_flows_len %u", + st->qdisc_stats.new_flows_len); + print_uint(PRINT_ANY, "old_flows_len", " old_flows_len %u", st->qdisc_stats.old_flows_len); } if (st->type == TCA_FQ_CODEL_XSTATS_CLASS) { - fprintf(f, " deficit %d count %u lastcount %u ldelay %s", - st->class_stats.deficit, - st->class_stats.count, - st->class_stats.lastcount, + print_uint(PRINT_ANY, "deficit", " deficit %u", + st->class_stats.deficit); + print_uint(PRINT_ANY, "count", " count %u", + st->class_stats.count); + print_uint(PRINT_ANY, "lastcount", " lastcount %u", + st->class_stats.lastcount); + print_uint(PRINT_JSON, "ldelay", NULL, + st->class_stats.ldelay); + print_string(PRINT_FP, NULL, " ldelay %s", sprint_time(st->class_stats.ldelay, b1)); if (st->class_stats.dropping) { - fprintf(f, " dropping"); + print_bool(PRINT_ANY, "dropping", " dropping", true); if (st->class_stats.drop_next < 0) - fprintf(f, " drop_next -%s", + print_string(PRINT_FP, NULL, " drop_next -%s", sprint_time(-st->class_stats.drop_next, b1)); - else - fprintf(f, " drop_next %s", + else { + print_uint(PRINT_JSON, "drop_next", NULL, + st->class_stats.drop_next); + print_string(PRINT_FP, NULL, " drop_next %s", sprint_time(st->class_stats.drop_next, b1)); + } } } return 0; -- 2.16.2 ^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH iproute2-next 2/2] tc: Add JSON output of fq_codel stats 2018-03-08 22:31 ` [PATCH iproute2-next 2/2] tc: Add JSON output of fq_codel stats Toke Høiland-Jørgensen @ 2018-03-14 1:07 ` David Ahern 0 siblings, 0 replies; 4+ messages in thread From: David Ahern @ 2018-03-14 1:07 UTC (permalink / raw) To: Toke Høiland-Jørgensen, netdev On 3/8/18 2:31 PM, Toke Høiland-Jørgensen wrote: > Enable proper JSON output support for fq_codel in `tc -s qdisc` output. > > Signed-off-by: Toke Høiland-Jørgensen <toke@toke.dk> > --- > tc/q_fq_codel.c | 49 ++++++++++++++++++++++++++++++++----------------- > 1 file changed, 32 insertions(+), 17 deletions(-) > applied to iproute2-next. ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH iproute2-next 1/2] tc: Add missing documentation for codel and fq_codel parameters 2018-03-08 22:31 [PATCH iproute2-next 1/2] tc: Add missing documentation for codel and fq_codel parameters Toke Høiland-Jørgensen 2018-03-08 22:31 ` [PATCH iproute2-next 2/2] tc: Add JSON output of fq_codel stats Toke Høiland-Jørgensen @ 2018-03-14 1:07 ` David Ahern 1 sibling, 0 replies; 4+ messages in thread From: David Ahern @ 2018-03-14 1:07 UTC (permalink / raw) To: Toke Høiland-Jørgensen, netdev On 3/8/18 2:31 PM, Toke Høiland-Jørgensen wrote: > Add missing documentation of the memory_limit fq_codel parameter and the > ce_threshold codel and fq_codel parameters. > > Signed-off-by: Toke Høiland-Jørgensen <toke@toke.dk> > --- > man/man8/tc-codel.8 | 10 +++++++++- > man/man8/tc-fq_codel.8 | 18 +++++++++++++++++- > tc/q_fq_codel.c | 1 + > 3 files changed, 27 insertions(+), 2 deletions(-) applied to iproute2-next. ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2018-03-14 1:07 UTC | newest] Thread overview: 4+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2018-03-08 22:31 [PATCH iproute2-next 1/2] tc: Add missing documentation for codel and fq_codel parameters Toke Høiland-Jørgensen 2018-03-08 22:31 ` [PATCH iproute2-next 2/2] tc: Add JSON output of fq_codel stats Toke Høiland-Jørgensen 2018-03-14 1:07 ` David Ahern 2018-03-14 1:07 ` [PATCH iproute2-next 1/2] tc: Add missing documentation for codel and fq_codel parameters David Ahern
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).