naccyde / rpms / iproute

Forked from rpms/iproute 5 months ago
Clone

Blame SOURCES/0038-man-tc-add-man-page-for-fq-pacer.patch

049c96
From 00e18dfdb109027f8f0380a38939892ae9940242 Mon Sep 17 00:00:00 2001
049c96
From: Phil Sutter <psutter@redhat.com>
049c96
Date: Thu, 18 Feb 2016 15:29:02 +0100
049c96
Subject: [PATCH] man: tc: add man page for fq pacer
049c96
049c96
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1261520
049c96
Upstream Status: iproute2.git commit 484b3f922cfd5
049c96
Conflicts: Changed context due to other missing man pages in RHEL7.
049c96
049c96
commit 484b3f922cfd5a38a73de5981e471f99ecfe3e8b
049c96
Author: Florian Westphal <fw@strlen.de>
049c96
Date:   Thu Sep 24 02:10:28 2015 +0200
049c96
049c96
    man: tc: add man page for fq pacer
049c96
049c96
    Partially based on kernel Kconfig help text, code comments and
049c96
    git commit messages from Eric Dumazet.
049c96
049c96
    Joint work with Phil Sutter.
049c96
049c96
    Signed-off-by: Phil Sutter <phil@nwl.cc>
049c96
    Signed-off-by: Florian Westphal <fw@strlen.de>
049c96
---
049c96
 man/man8/Makefile |  1 +
049c96
 man/man8/tc-fq.8  | 92 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
049c96
 man/man8/tc.8     |  1 +
049c96
 3 files changed, 94 insertions(+)
049c96
 create mode 100644 man/man8/tc-fq.8
049c96
049c96
diff --git a/man/man8/Makefile b/man/man8/Makefile
049c96
index ff80c98..23ac83e 100644
049c96
--- a/man/man8/Makefile
049c96
+++ b/man/man8/Makefile
049c96
@@ -2,6 +2,7 @@ TARGETS = ip-address.8 ip-link.8 ip-route.8
049c96
 
049c96
 MAN8PAGES = $(TARGETS) ip.8 arpd.8 lnstat.8 routel.8 rtacct.8 rtmon.8 ss.8 \
049c96
 	tc.8 tc-bfifo.8 tc-cbq.8 tc-cbq-details.8 tc-choke.8 tc-codel.8 \
049c96
+	tc-fq.8 \
049c96
 	tc-drr.8 tc-ematch.8 tc-fq_codel.8 tc-hfsc.8 tc-htb.8 \
049c96
 	tc-netem.8 tc-pfifo.8 tc-pfifo_fast.8 tc-prio.8 tc-red.8 \
049c96
 	tc-sfb.8 tc-sfq.8 tc-stab.8 tc-tbf.8 \
049c96
diff --git a/man/man8/tc-fq.8 b/man/man8/tc-fq.8
049c96
new file mode 100644
049c96
index 0000000..993beb6
049c96
--- /dev/null
049c96
+++ b/man/man8/tc-fq.8
049c96
@@ -0,0 +1,92 @@
049c96
+.TH FQ 8 "10 Sept 2015" "iproute2" "Linux"
049c96
+.SH NAME
049c96
+Fair Queuing (FQ) \- Traffic Pacing
049c96
+.SH SYNOPSIS
049c96
+.B tc qdisc ... fq
049c96
+[
049c96
+.B limit
049c96
+PACKETS ] [
049c96
+.B flow_limit
049c96
+PACKETS ] [
049c96
+.B quantum
049c96
+BYTES ] [
049c96
+.B initial_quantum
049c96
+BYTES ] [
049c96
+.B maxrate
049c96
+RATE ] [
049c96
+.B buckets
049c96
+NUMBER ]  [
049c96
+.B pacing
049c96
+|
049c96
+.B nopacing
049c96
+]
049c96
+
049c96
+.SH DESCRIPTION
049c96
+FQ (Fair Queue) is a classless packet scheduler meant to be mostly
049c96
+used for locally generated traffic.  It is designed to achieve per flow pacing.
049c96
+FQ does flow separation, and is able to respect pacing requirements set by TCP stack.
049c96
+All packets belonging to a socket are considered as a 'flow'.
049c96
+For non local packets (router workload), packet rxhash is used as fallback.
049c96
+
049c96
+An application can specify a maximum pacing rate using the
049c96
+.B SO_MAX_PACING_RATE
049c96
+setsockopt call.  This packet scheduler adds delay between packets to
049c96
+respect rate limitation set by TCP stack.
049c96
+
049c96
+Dequeueing happens in a round-robin fashion.
049c96
+A special FIFO queue is reserved for high priority packets (
049c96
+.B TC_PRIO_CONTROL
049c96
+priority), such packets are always dequeued first.
049c96
+
049c96
+FQ is non-work-conserving.
049c96
+
049c96
+TCP pacing is good for flows having idle times, as the congestion
049c96
+window permits TCP stack to queue a possibly large number of packets.
049c96
+This removes the 'slow start after idle' choice, badly hitting
049c96
+large BDP flows and applications delivering chunks of data such as video streams.
049c96
+
049c96
+.SH PARAMETERS
049c96
+.SS limit
049c96
+Hard limit on the real queue size. When this limit is reached, new packets
049c96
+are dropped. If the value is lowered, packets are dropped so that the new limit is
049c96
+met. Default is 10000 packets.
049c96
+.SS flow_limit
049c96
+Hard limit on the maximum number of packets queued per flow.
049c96
+Default value is 100.
049c96
+.SS quantum
049c96
+The credit per dequeue RR round, i.e. the amount of bytes a flow is allowed to
049c96
+dequeue at once. A larger value means a longer time period before the next flow
049c96
+will be served.
049c96
+Default is 2 * interface MTU bytes.
049c96
+.SS initial_quantum
049c96
+The initial sending rate credit, i.e. the amount of bytes a new flow is allowed
049c96
+to dequeue initially.
049c96
+This is specifically meant to allow using IW10 without added delay.
049c96
+Default is 10 * interface MTU, i.e. 15140 for 'standard' ethernet.
049c96
+.SS maxrate
049c96
+Maximum sending rate of a flow.  Default is unlimited.
049c96
+Application specific setting via
049c96
+.B SO_MAX_PACING_RATE
049c96
+is ignored only if it is larger than this value.
049c96
+.SS buckets
049c96
+The size of the hash table used for flow lookups. Each bucket is assigned a
049c96
+red-black tree for efficient collision sorting.
049c96
+Default: 1024.
049c96
+.SS [no]pacing
049c96
+Enable or disable flow pacing. Default is enabled.
049c96
+.SH EXAMPLES
049c96
+#tc qdisc add dev eth0 root fq
049c96
+.br
049c96
+#tc -s -d qdisc
049c96
+.br
049c96
+qdisc fq 8003: dev eth0 root refcnt 2 limit 10000p flow_limit 100p buckets 1024 quantum 3028 initial_quantum 15140
049c96
+ Sent 503727981 bytes 1146972 pkt (dropped 0, overlimits 0 requeues 54452)
049c96
+ backlog 0b 0p requeues 54452
049c96
+  1289 flows (1289 inactive, 0 throttled)
049c96
+  0 gc, 31 highprio, 27411 throttled
049c96
+.br
049c96
+.SH SEE ALSO
049c96
+.BR tc (8),
049c96
+.BR socket (7)
049c96
+.SH AUTHORS
049c96
+FQ was written by Eric Dumazet.
049c96
diff --git a/man/man8/tc.8 b/man/man8/tc.8
049c96
index dfb6e20..80eaa3b 100644
049c96
--- a/man/man8/tc.8
049c96
+++ b/man/man8/tc.8
049c96
@@ -589,6 +589,7 @@ was written by Alexey N. Kuznetsov and added in Linux 2.2.
049c96
 .BR tc-codel (8),
049c96
 .BR tc-drr (8),
049c96
 .BR tc-ematch (8),
049c96
+.BR tc-fq (8),
049c96
 .BR tc-fq_codel (8),
049c96
 .BR tc-hfsc (7),
049c96
 .BR tc-hfsc (8),
049c96
-- 
049c96
1.8.3.1
049c96