* [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 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
* 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
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).