netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [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).