|
|
049c96 |
From ec65031c65c10110cbbefbeb222984813782ebb3 Mon Sep 17 00:00:00 2001
|
|
|
049c96 |
From: Phil Sutter <psutter@redhat.com>
|
|
|
049c96 |
Date: Mon, 7 Mar 2016 20:45:51 +0100
|
|
|
049c96 |
Subject: [PATCH] man8: scrub trailing whitespace
|
|
|
049c96 |
|
|
|
049c96 |
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1251186
|
|
|
049c96 |
Upstream Status: iproute2.git commit 5699275b424c6
|
|
|
049c96 |
|
|
|
049c96 |
commit 5699275b424c637edc60f46c89071d4e8f4edde3
|
|
|
049c96 |
Author: Stephen Hemminger <shemming@brocade.com>
|
|
|
049c96 |
Date: Mon Nov 23 15:41:37 2015 -0800
|
|
|
049c96 |
|
|
|
049c96 |
man8: scrub trailing whitespace
|
|
|
049c96 |
|
|
|
049c96 |
Remove extraneous whitespace
|
|
|
049c96 |
---
|
|
|
049c96 |
man/man8/bridge.8 | 6 +-
|
|
|
049c96 |
man/man8/ip-addrlabel.8 | 5 +-
|
|
|
049c96 |
man/man8/ip-neighbour.8 | 4 +-
|
|
|
049c96 |
man/man8/ip-ntable.8 | 4 +-
|
|
|
049c96 |
man/man8/ip-rule.8 | 2 +-
|
|
|
049c96 |
man/man8/ip-xfrm.8 | 2 +-
|
|
|
049c96 |
man/man8/ip.8 | 2 +-
|
|
|
049c96 |
man/man8/routel.8 | 20 +++---
|
|
|
049c96 |
man/man8/rtacct.8 | 1 -
|
|
|
049c96 |
man/man8/rtmon.8 | 8 +--
|
|
|
049c96 |
man/man8/ss.8 | 6 +-
|
|
|
049c96 |
man/man8/tc-bfifo.8 | 32 ++++-----
|
|
|
049c96 |
man/man8/tc-cbq-details.8 | 178 +++++++++++++++++++++++-----------------------
|
|
|
049c96 |
man/man8/tc-cbq.8 | 158 ++++++++++++++++++++--------------------
|
|
|
049c96 |
man/man8/tc-drr.8 | 1 -
|
|
|
049c96 |
man/man8/tc-htb.8 | 80 ++++++++++-----------
|
|
|
049c96 |
man/man8/tc-netem.8 | 22 +++---
|
|
|
049c96 |
man/man8/tc-pfifo_fast.8 | 14 ++--
|
|
|
049c96 |
man/man8/tc-prio.8 | 28 ++++----
|
|
|
049c96 |
man/man8/tc-red.8 | 62 ++++++++--------
|
|
|
049c96 |
man/man8/tc-sfq.8 | 40 +++++------
|
|
|
049c96 |
man/man8/tc-tbf.8 | 48 ++++++-------
|
|
|
049c96 |
man/man8/tc.8 | 1 -
|
|
|
049c96 |
23 files changed, 351 insertions(+), 373 deletions(-)
|
|
|
049c96 |
|
|
|
049c96 |
diff --git a/man/man8/bridge.8 b/man/man8/bridge.8
|
|
|
049c96 |
index 4fcf2e8..3cda7d6 100644
|
|
|
049c96 |
--- a/man/man8/bridge.8
|
|
|
049c96 |
+++ b/man/man8/bridge.8
|
|
|
049c96 |
@@ -84,7 +84,7 @@ bridge \- show / manipulate bridge addresses and devices
|
|
|
049c96 |
.BR "bridge vlan" " { " add " | " del " } "
|
|
|
049c96 |
.B dev
|
|
|
049c96 |
.IR DEV
|
|
|
049c96 |
-.B vid
|
|
|
049c96 |
+.B vid
|
|
|
049c96 |
.IR VID " [ "
|
|
|
049c96 |
.BR pvid " ] [ " untagged " ] [ "
|
|
|
049c96 |
.BR self " ] [ " master " ] "
|
|
|
049c96 |
@@ -142,7 +142,7 @@ to
|
|
|
049c96 |
- Bridge port.
|
|
|
049c96 |
|
|
|
049c96 |
.TP
|
|
|
049c96 |
-.B fdb
|
|
|
049c96 |
+.B fdb
|
|
|
049c96 |
- Forwarding Database entry.
|
|
|
049c96 |
|
|
|
049c96 |
.TP
|
|
|
049c96 |
@@ -340,7 +340,7 @@ If omitted the default value is used.
|
|
|
049c96 |
.BI via " DEVICE"
|
|
|
049c96 |
device name of the outgoing interface for the
|
|
|
049c96 |
VXLAN device driver to reach the
|
|
|
049c96 |
-remote VXLAN tunnel endpoint.
|
|
|
049c96 |
+remote VXLAN tunnel endpoint.
|
|
|
049c96 |
|
|
|
049c96 |
.SS bridge fdb append - append a forwarding database entry
|
|
|
049c96 |
This command adds a new fdb entry with an already known
|
|
|
049c96 |
diff --git a/man/man8/ip-addrlabel.8 b/man/man8/ip-addrlabel.8
|
|
|
049c96 |
index 5fc18fe..51ef572 100644
|
|
|
049c96 |
--- a/man/man8/ip-addrlabel.8
|
|
|
049c96 |
+++ b/man/man8/ip-addrlabel.8
|
|
|
049c96 |
@@ -7,8 +7,8 @@ ip-addrlabel \- protocol address label management
|
|
|
049c96 |
.in +8
|
|
|
049c96 |
.ti -8
|
|
|
049c96 |
.B ip
|
|
|
049c96 |
-.RI "[ " OPTIONS " ]"
|
|
|
049c96 |
-.B addrlabel
|
|
|
049c96 |
+.RI "[ " OPTIONS " ]"
|
|
|
049c96 |
+.B addrlabel
|
|
|
049c96 |
.RI " { " COMMAND " | "
|
|
|
049c96 |
.BR help " }"
|
|
|
049c96 |
.sp
|
|
|
049c96 |
@@ -66,4 +66,3 @@ flush all address labels in the kernel. This does not restore any default settin
|
|
|
049c96 |
|
|
|
049c96 |
.SH AUTHOR
|
|
|
049c96 |
Manpage by Yoshifuji Hideaki / åè¤è±æ
|
|
|
049c96 |
-
|
|
|
049c96 |
diff --git a/man/man8/ip-neighbour.8 b/man/man8/ip-neighbour.8
|
|
|
049c96 |
index f3068f4..c94c654 100644
|
|
|
049c96 |
--- a/man/man8/ip-neighbour.8
|
|
|
049c96 |
+++ b/man/man8/ip-neighbour.8
|
|
|
049c96 |
@@ -38,9 +38,9 @@ ip-neighbour \- neighbour/arp tables management.
|
|
|
049c96 |
.BR permanent " | " noarp " | " stale " | " reachable " }"
|
|
|
049c96 |
|
|
|
049c96 |
.SH DESCRIPTION
|
|
|
049c96 |
-The
|
|
|
049c96 |
+The
|
|
|
049c96 |
.B ip neigh
|
|
|
049c96 |
-command manipulates
|
|
|
049c96 |
+command manipulates
|
|
|
049c96 |
.I neighbour
|
|
|
049c96 |
objects that establish bindings between protocol addresses and
|
|
|
049c96 |
link layer addresses for hosts sharing the same link.
|
|
|
049c96 |
diff --git a/man/man8/ip-ntable.8 b/man/man8/ip-ntable.8
|
|
|
049c96 |
index 2b95632..4f0f2e5 100644
|
|
|
049c96 |
--- a/man/man8/ip-ntable.8
|
|
|
049c96 |
+++ b/man/man8/ip-ntable.8
|
|
|
049c96 |
@@ -60,7 +60,7 @@ ip-ntable - neighbour table configuration
|
|
|
049c96 |
|
|
|
049c96 |
.SH DESCRIPTION
|
|
|
049c96 |
.I ip ntable
|
|
|
049c96 |
-controls the parameters for the neighbour tables.
|
|
|
049c96 |
+controls the parameters for the neighbour tables.
|
|
|
049c96 |
|
|
|
049c96 |
.SS ip ntable show - list the ip neighbour tables
|
|
|
049c96 |
|
|
|
049c96 |
@@ -103,4 +103,4 @@ default value (3) to 8 packets.
|
|
|
049c96 |
.BR ip (8)
|
|
|
049c96 |
|
|
|
049c96 |
.SH AUTHOR
|
|
|
049c96 |
-Manpage by Stephen Hemminger
|
|
|
049c96 |
+Manpage by Stephen Hemminger
|
|
|
049c96 |
diff --git a/man/man8/ip-rule.8 b/man/man8/ip-rule.8
|
|
|
049c96 |
index 2594ff3..0661061 100644
|
|
|
049c96 |
--- a/man/man8/ip-rule.8
|
|
|
049c96 |
+++ b/man/man8/ip-rule.8
|
|
|
049c96 |
@@ -62,7 +62,7 @@ ip-rule \- routing policy database management
|
|
|
049c96 |
|
|
|
049c96 |
.SH DESCRIPTION
|
|
|
049c96 |
.I ip rule
|
|
|
049c96 |
-manipulates rules
|
|
|
049c96 |
+manipulates rules
|
|
|
049c96 |
in the routing policy database control the route selection algorithm.
|
|
|
049c96 |
|
|
|
049c96 |
.P
|
|
|
049c96 |
diff --git a/man/man8/ip-xfrm.8 b/man/man8/ip-xfrm.8
|
|
|
049c96 |
index a9c5890..aa04804 100644
|
|
|
049c96 |
--- a/man/man8/ip-xfrm.8
|
|
|
049c96 |
+++ b/man/man8/ip-xfrm.8
|
|
|
049c96 |
@@ -119,7 +119,7 @@ ip-xfrm \- transform configuration
|
|
|
049c96 |
|
|
|
049c96 |
.ti -8
|
|
|
049c96 |
.IR ALGO " :="
|
|
|
049c96 |
-.RB "{ " enc " | " auth " } "
|
|
|
049c96 |
+.RB "{ " enc " | " auth " } "
|
|
|
049c96 |
.IR ALGO-NAME " " ALGO-KEYMAT " |"
|
|
|
049c96 |
.br
|
|
|
049c96 |
.B auth-trunc
|
|
|
049c96 |
diff --git a/man/man8/ip.8 b/man/man8/ip.8
|
|
|
049c96 |
index c28cee0..a95264d 100644
|
|
|
049c96 |
--- a/man/man8/ip.8
|
|
|
049c96 |
+++ b/man/man8/ip.8
|
|
|
049c96 |
@@ -12,7 +12,7 @@ ip \- show / manipulate routing, devices, policy routing and tunnels
|
|
|
049c96 |
.sp
|
|
|
049c96 |
|
|
|
049c96 |
.ti -8
|
|
|
049c96 |
-.B ip
|
|
|
049c96 |
+.B ip
|
|
|
049c96 |
.RB "[ " -force " ] "
|
|
|
049c96 |
.BI "-batch " filename
|
|
|
049c96 |
.sp
|
|
|
049c96 |
diff --git a/man/man8/routel.8 b/man/man8/routel.8
|
|
|
049c96 |
index cdf8f55..82d580f 100644
|
|
|
049c96 |
--- a/man/man8/routel.8
|
|
|
049c96 |
+++ b/man/man8/routel.8
|
|
|
049c96 |
@@ -1,16 +1,16 @@
|
|
|
049c96 |
.TH "ROUTEL" "8" "3 Jan, 2008" "iproute2" "Linux"
|
|
|
049c96 |
.SH "NAME"
|
|
|
049c96 |
-.LP
|
|
|
049c96 |
+.LP
|
|
|
049c96 |
routel \- list routes with pretty output format
|
|
|
049c96 |
.br
|
|
|
049c96 |
routef \- flush routes
|
|
|
049c96 |
.SH "SYNTAX"
|
|
|
049c96 |
-.LP
|
|
|
049c96 |
+.LP
|
|
|
049c96 |
routel [\fItablenr\fP [\fIraw ip args...\fP]]
|
|
|
049c96 |
-.br
|
|
|
049c96 |
+.br
|
|
|
049c96 |
routef
|
|
|
049c96 |
.SH "DESCRIPTION"
|
|
|
049c96 |
-.LP
|
|
|
049c96 |
+.LP
|
|
|
049c96 |
These programs are a set of helper scripts you can use instead of raw iproute2 commands.
|
|
|
049c96 |
.br
|
|
|
049c96 |
The routel script will list routes in a format that some might consider easier to interpret then the ip route list equivalent.
|
|
|
049c96 |
@@ -18,15 +18,15 @@ The routel script will list routes in a format that some might consider easier t
|
|
|
049c96 |
The routef script does not take any arguments and will simply flush the routing table down the drain. Beware! This means deleting all routes which will make your network unusable!
|
|
|
049c96 |
|
|
|
049c96 |
.SH "FILES"
|
|
|
049c96 |
-.LP
|
|
|
049c96 |
-\fI/usr/bin/routef\fP
|
|
|
049c96 |
-.br
|
|
|
049c96 |
-\fI/usr/bin/routel\fP
|
|
|
049c96 |
+.LP
|
|
|
049c96 |
+\fI/usr/bin/routef\fP
|
|
|
049c96 |
+.br
|
|
|
049c96 |
+\fI/usr/bin/routel\fP
|
|
|
049c96 |
.SH "AUTHORS"
|
|
|
049c96 |
-.LP
|
|
|
049c96 |
+.LP
|
|
|
049c96 |
The routel script was written by Stephen R. van den Berg <srb@cuci.nl>, 1999/04/18 and donated to the public domain.
|
|
|
049c96 |
.br
|
|
|
049c96 |
This manual page was written by Andreas Henriksson <andreas@fatal.se>, for the Debian GNU/Linux system.
|
|
|
049c96 |
.SH "SEE ALSO"
|
|
|
049c96 |
-.LP
|
|
|
049c96 |
+.LP
|
|
|
049c96 |
ip(8)
|
|
|
049c96 |
diff --git a/man/man8/rtacct.8 b/man/man8/rtacct.8
|
|
|
049c96 |
index fb9afe8..b10839f 100644
|
|
|
049c96 |
--- a/man/man8/rtacct.8
|
|
|
049c96 |
+++ b/man/man8/rtacct.8
|
|
|
049c96 |
@@ -45,4 +45,3 @@ Time interval to average rates. Default value is 60 seconds.
|
|
|
049c96 |
|
|
|
049c96 |
.SH SEE ALSO
|
|
|
049c96 |
lnstat(8)
|
|
|
049c96 |
-
|
|
|
049c96 |
diff --git a/man/man8/rtmon.8 b/man/man8/rtmon.8
|
|
|
049c96 |
index 0538752..38a2b77 100644
|
|
|
049c96 |
--- a/man/man8/rtmon.8
|
|
|
049c96 |
+++ b/man/man8/rtmon.8
|
|
|
049c96 |
@@ -10,11 +10,11 @@ This manual page documents briefly the
|
|
|
049c96 |
command.
|
|
|
049c96 |
.PP
|
|
|
049c96 |
.B rtmon
|
|
|
049c96 |
-listens on
|
|
|
049c96 |
-.I netlink
|
|
|
049c96 |
+listens on
|
|
|
049c96 |
+.I netlink
|
|
|
049c96 |
socket and monitors routing table changes.
|
|
|
049c96 |
|
|
|
049c96 |
-.I rtmon
|
|
|
049c96 |
+.I rtmon
|
|
|
049c96 |
can be started before the first network configuration command is issued.
|
|
|
049c96 |
For example if you insert:
|
|
|
049c96 |
|
|
|
049c96 |
@@ -61,7 +61,7 @@ to display logged output from file.
|
|
|
049c96 |
.SH SEE ALSO
|
|
|
049c96 |
.BR ip (8)
|
|
|
049c96 |
.SH AUTHOR
|
|
|
049c96 |
-.B rtmon
|
|
|
049c96 |
+.B rtmon
|
|
|
049c96 |
was written by Alexey Kuznetsov <kuznet@ms2.inr.ac.ru>.
|
|
|
049c96 |
.PP
|
|
|
049c96 |
This manual page was written by Michael Prokop <mika@grml.org>,
|
|
|
049c96 |
diff --git a/man/man8/ss.8 b/man/man8/ss.8
|
|
|
049c96 |
index 6afbabb..f4d5264 100644
|
|
|
049c96 |
--- a/man/man8/ss.8
|
|
|
049c96 |
+++ b/man/man8/ss.8
|
|
|
049c96 |
@@ -12,7 +12,7 @@ to
|
|
|
049c96 |
It can display more TCP and state informations than other tools.
|
|
|
049c96 |
|
|
|
049c96 |
.SH OPTIONS
|
|
|
049c96 |
-When no option is used ss displays a list of
|
|
|
049c96 |
+When no option is used ss displays a list of
|
|
|
049c96 |
open non-listening sockets (e.g. TCP/UNIX/UDP) that have established connection.
|
|
|
049c96 |
.TP
|
|
|
049c96 |
.B \-h, \-\-help
|
|
|
049c96 |
@@ -189,10 +189,10 @@ List all the tcp sockets in state FIN-WAIT-1 for our apache to network 193.233.7
|
|
|
049c96 |
.BR /usr/share/doc/iproute-doc/ss.html " (package iproutedoc)",
|
|
|
049c96 |
.br
|
|
|
049c96 |
.BR RFC " 793 "
|
|
|
049c96 |
-- https://tools.ietf.org/rfc/rfc793.txt (TCP states)
|
|
|
049c96 |
+- https://tools.ietf.org/rfc/rfc793.txt (TCP states)
|
|
|
049c96 |
|
|
|
049c96 |
.SH AUTHOR
|
|
|
049c96 |
-.I ss
|
|
|
049c96 |
+.I ss
|
|
|
049c96 |
was written by Alexey Kuznetsov, <kuznet@ms2.inr.ac.ru>.
|
|
|
049c96 |
.PP
|
|
|
049c96 |
This manual page was written by Michael Prokop <mika@grml.org>
|
|
|
049c96 |
diff --git a/man/man8/tc-bfifo.8 b/man/man8/tc-bfifo.8
|
|
|
049c96 |
index f04090c..3e29032 100644
|
|
|
049c96 |
--- a/man/man8/tc-bfifo.8
|
|
|
049c96 |
+++ b/man/man8/tc-bfifo.8
|
|
|
049c96 |
@@ -6,37 +6,37 @@ bfifo \- Byte limited First In, First Out queue
|
|
|
049c96 |
|
|
|
049c96 |
.SH SYNOPSIS
|
|
|
049c96 |
.B tc qdisc ... add pfifo
|
|
|
049c96 |
-.B [ limit
|
|
|
049c96 |
+.B [ limit
|
|
|
049c96 |
packets
|
|
|
049c96 |
.B ]
|
|
|
049c96 |
.P
|
|
|
049c96 |
.B tc qdisc ... add bfifo
|
|
|
049c96 |
-.B [ limit
|
|
|
049c96 |
+.B [ limit
|
|
|
049c96 |
bytes
|
|
|
049c96 |
.B ]
|
|
|
049c96 |
|
|
|
049c96 |
.SH DESCRIPTION
|
|
|
049c96 |
The pfifo and bfifo qdiscs are unadorned First In, First Out queues. They are the
|
|
|
049c96 |
-simplest queues possible and therefore have no overhead.
|
|
|
049c96 |
+simplest queues possible and therefore have no overhead.
|
|
|
049c96 |
.B pfifo
|
|
|
049c96 |
-constrains the queue size as measured in packets.
|
|
|
049c96 |
+constrains the queue size as measured in packets.
|
|
|
049c96 |
.B bfifo
|
|
|
049c96 |
does so as measured in bytes.
|
|
|
049c96 |
|
|
|
049c96 |
-Like all non-default qdiscs, they maintain statistics. This might be a reason to prefer
|
|
|
049c96 |
+Like all non-default qdiscs, they maintain statistics. This might be a reason to prefer
|
|
|
049c96 |
pfifo or bfifo over the default.
|
|
|
049c96 |
|
|
|
049c96 |
.SH ALGORITHM
|
|
|
049c96 |
A list of packets is maintained, when a packet is enqueued it gets inserted at the tail of
|
|
|
049c96 |
-a list. When a packet needs to be sent out to the network, it is taken from the head of the list.
|
|
|
049c96 |
+a list. When a packet needs to be sent out to the network, it is taken from the head of the list.
|
|
|
049c96 |
|
|
|
049c96 |
If the list is too long, no further packets are allowed on. This is called 'tail drop'.
|
|
|
049c96 |
|
|
|
049c96 |
.SH PARAMETERS
|
|
|
049c96 |
-.TP
|
|
|
049c96 |
+.TP
|
|
|
049c96 |
limit
|
|
|
049c96 |
-Maximum queue size. Specified in bytes for bfifo, in packets for pfifo. For pfifo, defaults
|
|
|
049c96 |
-to the interface txqueuelen, as specified with
|
|
|
049c96 |
+Maximum queue size. Specified in bytes for bfifo, in packets for pfifo. For pfifo, defaults
|
|
|
049c96 |
+to the interface txqueuelen, as specified with
|
|
|
049c96 |
.BR ifconfig (8)
|
|
|
049c96 |
or
|
|
|
049c96 |
.BR ip (8).
|
|
|
049c96 |
@@ -48,20 +48,20 @@ The range for this parameter is [0, UINT32_MAX] bytes.
|
|
|
049c96 |
Note: The link layer header was considered when counting packets length.
|
|
|
049c96 |
|
|
|
049c96 |
.SH OUTPUT
|
|
|
049c96 |
-The output of
|
|
|
049c96 |
+The output of
|
|
|
049c96 |
.B tc -s qdisc ls
|
|
|
049c96 |
-contains the limit, either in packets or in bytes, and the number of bytes
|
|
|
049c96 |
-and packets actually sent. An unsent and dropped packet only appears between braces
|
|
|
049c96 |
+contains the limit, either in packets or in bytes, and the number of bytes
|
|
|
049c96 |
+and packets actually sent. An unsent and dropped packet only appears between braces
|
|
|
049c96 |
and is not counted as 'Sent'.
|
|
|
049c96 |
|
|
|
049c96 |
-In this example, the queue length is 100 packets, 45894 bytes were sent over 681 packets.
|
|
|
049c96 |
+In this example, the queue length is 100 packets, 45894 bytes were sent over 681 packets.
|
|
|
049c96 |
No packets were dropped, and as the pfifo queue does not slow down packets, there were also no
|
|
|
049c96 |
overlimits:
|
|
|
049c96 |
.P
|
|
|
049c96 |
.nf
|
|
|
049c96 |
-# tc -s qdisc ls dev eth0
|
|
|
049c96 |
+# tc -s qdisc ls dev eth0
|
|
|
049c96 |
qdisc pfifo 8001: dev eth0 limit 100p
|
|
|
049c96 |
- Sent 45894 bytes 681 pkts (dropped 0, overlimits 0)
|
|
|
049c96 |
+ Sent 45894 bytes 681 pkts (dropped 0, overlimits 0)
|
|
|
049c96 |
.fi
|
|
|
049c96 |
|
|
|
049c96 |
If a backlog occurs, this is displayed as well.
|
|
|
049c96 |
@@ -72,5 +72,3 @@ If a backlog occurs, this is displayed as well.
|
|
|
049c96 |
Alexey N. Kuznetsov, <kuznet@ms2.inr.ac.ru>
|
|
|
049c96 |
|
|
|
049c96 |
This manpage maintained by bert hubert <ahu@ds9a.nl>
|
|
|
049c96 |
-
|
|
|
049c96 |
-
|
|
|
049c96 |
diff --git a/man/man8/tc-cbq-details.8 b/man/man8/tc-cbq-details.8
|
|
|
049c96 |
index 86353b5..9368103 100644
|
|
|
049c96 |
--- a/man/man8/tc-cbq-details.8
|
|
|
049c96 |
+++ b/man/man8/tc-cbq-details.8
|
|
|
049c96 |
@@ -5,54 +5,54 @@ CBQ \- Class Based Queueing
|
|
|
049c96 |
.B tc qdisc ... dev
|
|
|
049c96 |
dev
|
|
|
049c96 |
.B ( parent
|
|
|
049c96 |
-classid
|
|
|
049c96 |
-.B | root) [ handle
|
|
|
049c96 |
-major:
|
|
|
049c96 |
+classid
|
|
|
049c96 |
+.B | root) [ handle
|
|
|
049c96 |
+major:
|
|
|
049c96 |
.B ] cbq avpkt
|
|
|
049c96 |
bytes
|
|
|
049c96 |
.B bandwidth
|
|
|
049c96 |
rate
|
|
|
049c96 |
-.B [ cell
|
|
|
049c96 |
+.B [ cell
|
|
|
049c96 |
bytes
|
|
|
049c96 |
.B ] [ ewma
|
|
|
049c96 |
log
|
|
|
049c96 |
.B ] [ mpu
|
|
|
049c96 |
bytes
|
|
|
049c96 |
-.B ]
|
|
|
049c96 |
+.B ]
|
|
|
049c96 |
|
|
|
049c96 |
.B tc class ... dev
|
|
|
049c96 |
dev
|
|
|
049c96 |
-.B parent
|
|
|
049c96 |
+.B parent
|
|
|
049c96 |
major:[minor]
|
|
|
049c96 |
-.B [ classid
|
|
|
049c96 |
+.B [ classid
|
|
|
049c96 |
major:minor
|
|
|
049c96 |
.B ] cbq allot
|
|
|
049c96 |
bytes
|
|
|
049c96 |
-.B [ bandwidth
|
|
|
049c96 |
-rate
|
|
|
049c96 |
-.B ] [ rate
|
|
|
049c96 |
+.B [ bandwidth
|
|
|
049c96 |
+rate
|
|
|
049c96 |
+.B ] [ rate
|
|
|
049c96 |
rate
|
|
|
049c96 |
.B ] prio
|
|
|
049c96 |
priority
|
|
|
049c96 |
.B [ weight
|
|
|
049c96 |
weight
|
|
|
049c96 |
-.B ] [ minburst
|
|
|
049c96 |
+.B ] [ minburst
|
|
|
049c96 |
+packets
|
|
|
049c96 |
+.B ] [ maxburst
|
|
|
049c96 |
packets
|
|
|
049c96 |
-.B ] [ maxburst
|
|
|
049c96 |
-packets
|
|
|
049c96 |
-.B ] [ ewma
|
|
|
049c96 |
+.B ] [ ewma
|
|
|
049c96 |
log
|
|
|
049c96 |
.B ] [ cell
|
|
|
049c96 |
bytes
|
|
|
049c96 |
.B ] avpkt
|
|
|
049c96 |
bytes
|
|
|
049c96 |
.B [ mpu
|
|
|
049c96 |
-bytes
|
|
|
049c96 |
+bytes
|
|
|
049c96 |
.B ] [ bounded isolated ] [ split
|
|
|
049c96 |
handle
|
|
|
049c96 |
.B & defmap
|
|
|
049c96 |
defmap
|
|
|
049c96 |
-.B ] [ estimator
|
|
|
049c96 |
+.B ] [ estimator
|
|
|
049c96 |
interval timeconstant
|
|
|
049c96 |
.B ]
|
|
|
049c96 |
|
|
|
049c96 |
@@ -60,7 +60,7 @@ interval timeconstant
|
|
|
049c96 |
Class Based Queueing is a classful qdisc that implements a rich
|
|
|
049c96 |
linksharing hierarchy of classes. It contains shaping elements as
|
|
|
049c96 |
well as prioritizing capabilities. Shaping is performed using link
|
|
|
049c96 |
-idle time calculations based on the timing of dequeue events and
|
|
|
049c96 |
+idle time calculations based on the timing of dequeue events and
|
|
|
049c96 |
underlying link bandwidth.
|
|
|
049c96 |
|
|
|
049c96 |
.SH SHAPING ALGORITHM
|
|
|
049c96 |
@@ -71,10 +71,10 @@ When shaping a 10mbit/s connection to 1mbit/s, the link will
|
|
|
049c96 |
be idle 90% of the time. If it isn't, it needs to be throttled so that it
|
|
|
049c96 |
IS idle 90% of the time.
|
|
|
049c96 |
|
|
|
049c96 |
-From the kernel's perspective, this is hard to measure, so CBQ instead
|
|
|
049c96 |
-derives the idle time from the number of microseconds (in fact, jiffies)
|
|
|
049c96 |
-that elapse between requests from the device driver for more data. Combined
|
|
|
049c96 |
-with the knowledge of packet sizes, this is used to approximate how full or
|
|
|
049c96 |
+From the kernel's perspective, this is hard to measure, so CBQ instead
|
|
|
049c96 |
+derives the idle time from the number of microseconds (in fact, jiffies)
|
|
|
049c96 |
+that elapse between requests from the device driver for more data. Combined
|
|
|
049c96 |
+with the knowledge of packet sizes, this is used to approximate how full or
|
|
|
049c96 |
empty the link is.
|
|
|
049c96 |
|
|
|
049c96 |
This is rather circumspect and doesn't always arrive at proper
|
|
|
049c96 |
@@ -84,9 +84,9 @@ perhaps because of a badly implemented driver? A PCMCIA network card
|
|
|
049c96 |
will also never achieve 100mbit/s because of the way the bus is
|
|
|
049c96 |
designed - again, how do we calculate the idle time?
|
|
|
049c96 |
|
|
|
049c96 |
-The physical link bandwidth may be ill defined in case of not-quite-real
|
|
|
049c96 |
-network devices like PPP over Ethernet or PPTP over TCP/IP. The effective
|
|
|
049c96 |
-bandwidth in that case is probably determined by the efficiency of pipes
|
|
|
049c96 |
+The physical link bandwidth may be ill defined in case of not-quite-real
|
|
|
049c96 |
+network devices like PPP over Ethernet or PPTP over TCP/IP. The effective
|
|
|
049c96 |
+bandwidth in that case is probably determined by the efficiency of pipes
|
|
|
049c96 |
to userspace - which not defined.
|
|
|
049c96 |
|
|
|
049c96 |
During operations, the effective idletime is measured using an
|
|
|
049c96 |
@@ -104,59 +104,59 @@ CBQ throttles and is then 'overlimit'.
|
|
|
049c96 |
|
|
|
049c96 |
Conversely, an idle link might amass a huge avgidle, which would then
|
|
|
049c96 |
allow infinite bandwidths after a few hours of silence. To prevent
|
|
|
049c96 |
-this, avgidle is capped at
|
|
|
049c96 |
+this, avgidle is capped at
|
|
|
049c96 |
.B maxidle.
|
|
|
049c96 |
|
|
|
049c96 |
If overlimit, in theory, the CBQ could throttle itself for exactly the
|
|
|
049c96 |
amount of time that was calculated to pass between packets, and then
|
|
|
049c96 |
pass one packet, and throttle again. Due to timer resolution constraints,
|
|
|
049c96 |
-this may not be feasible, see the
|
|
|
049c96 |
+this may not be feasible, see the
|
|
|
049c96 |
.B minburst
|
|
|
049c96 |
parameter below.
|
|
|
049c96 |
|
|
|
049c96 |
.SH CLASSIFICATION
|
|
|
049c96 |
Within the one CBQ instance many classes may exist. Each of these classes
|
|
|
049c96 |
-contains another qdisc, by default
|
|
|
049c96 |
+contains another qdisc, by default
|
|
|
049c96 |
.BR tc-pfifo (8).
|
|
|
049c96 |
|
|
|
049c96 |
-When enqueueing a packet, CBQ starts at the root and uses various methods to
|
|
|
049c96 |
+When enqueueing a packet, CBQ starts at the root and uses various methods to
|
|
|
049c96 |
determine which class should receive the data. If a verdict is reached, this
|
|
|
049c96 |
process is repeated for the recipient class which might have further
|
|
|
049c96 |
means of classifying traffic to its children, if any.
|
|
|
049c96 |
|
|
|
049c96 |
-CBQ has the following methods available to classify a packet to any child
|
|
|
049c96 |
+CBQ has the following methods available to classify a packet to any child
|
|
|
049c96 |
classes.
|
|
|
049c96 |
.TP
|
|
|
049c96 |
(i)
|
|
|
049c96 |
.B skb->priority class encoding.
|
|
|
049c96 |
-Can be set from userspace by an application with the
|
|
|
049c96 |
+Can be set from userspace by an application with the
|
|
|
049c96 |
.B SO_PRIORITY
|
|
|
049c96 |
setsockopt.
|
|
|
049c96 |
-The
|
|
|
049c96 |
+The
|
|
|
049c96 |
.B skb->priority class encoding
|
|
|
049c96 |
-only applies if the skb->priority holds a major:minor handle of an existing
|
|
|
049c96 |
+only applies if the skb->priority holds a major:minor handle of an existing
|
|
|
049c96 |
class within this qdisc.
|
|
|
049c96 |
.TP
|
|
|
049c96 |
(ii)
|
|
|
049c96 |
tc filters attached to the class.
|
|
|
049c96 |
.TP
|
|
|
049c96 |
(iii)
|
|
|
049c96 |
-The defmap of a class, as set with the
|
|
|
049c96 |
+The defmap of a class, as set with the
|
|
|
049c96 |
.B split & defmap
|
|
|
049c96 |
parameters. The defmap may contain instructions for each possible Linux packet
|
|
|
049c96 |
priority.
|
|
|
049c96 |
|
|
|
049c96 |
.P
|
|
|
049c96 |
-Each class also has a
|
|
|
049c96 |
+Each class also has a
|
|
|
049c96 |
.B level.
|
|
|
049c96 |
Leaf nodes, attached to the bottom of the class hierarchy, have a level of 0.
|
|
|
049c96 |
.SH CLASSIFICATION ALGORITHM
|
|
|
049c96 |
|
|
|
049c96 |
-Classification is a loop, which terminates when a leaf class is found. At any
|
|
|
049c96 |
+Classification is a loop, which terminates when a leaf class is found. At any
|
|
|
049c96 |
point the loop may jump to the fallback algorithm.
|
|
|
049c96 |
|
|
|
049c96 |
The loop consists of the following steps:
|
|
|
049c96 |
-.TP
|
|
|
049c96 |
+.TP
|
|
|
049c96 |
(i)
|
|
|
049c96 |
If the packet is generated locally and has a valid classid encoded within its
|
|
|
049c96 |
.B skb->priority,
|
|
|
049c96 |
@@ -169,40 +169,40 @@ a class which is not a leaf class, restart loop from the class returned.
|
|
|
049c96 |
If it is a leaf, choose it and terminate.
|
|
|
049c96 |
.TP
|
|
|
049c96 |
(iii)
|
|
|
049c96 |
-If the tc filters did not return a class, but did return a classid,
|
|
|
049c96 |
-try to find a class with that id within this qdisc.
|
|
|
049c96 |
+If the tc filters did not return a class, but did return a classid,
|
|
|
049c96 |
+try to find a class with that id within this qdisc.
|
|
|
049c96 |
Check if the found class is of a lower
|
|
|
049c96 |
.B level
|
|
|
049c96 |
than the current class. If so, and the returned class is not a leaf node,
|
|
|
049c96 |
restart the loop at the found class. If it is a leaf node, terminate.
|
|
|
049c96 |
-If we found an upward reference to a higher level, enter the fallback
|
|
|
049c96 |
+If we found an upward reference to a higher level, enter the fallback
|
|
|
049c96 |
algorithm.
|
|
|
049c96 |
.TP
|
|
|
049c96 |
(iv)
|
|
|
049c96 |
If the tc filters did not return a class, nor a valid reference to one,
|
|
|
049c96 |
consider the minor number of the reference to be the priority. Retrieve
|
|
|
049c96 |
a class from the defmap of this class for the priority. If this did not
|
|
|
049c96 |
-contain a class, consult the defmap of this class for the
|
|
|
049c96 |
+contain a class, consult the defmap of this class for the
|
|
|
049c96 |
+.B BEST_EFFORT
|
|
|
049c96 |
+class. If this is an upward reference, or no
|
|
|
049c96 |
.B BEST_EFFORT
|
|
|
049c96 |
-class. If this is an upward reference, or no
|
|
|
049c96 |
-.B BEST_EFFORT
|
|
|
049c96 |
class was defined,
|
|
|
049c96 |
enter the fallback algorithm. If a valid class was found, and it is not a
|
|
|
049c96 |
-leaf node, restart the loop at this class. If it is a leaf, choose it and
|
|
|
049c96 |
+leaf node, restart the loop at this class. If it is a leaf, choose it and
|
|
|
049c96 |
terminate. If
|
|
|
049c96 |
-neither the priority distilled from the classid, nor the
|
|
|
049c96 |
-.B BEST_EFFORT
|
|
|
049c96 |
+neither the priority distilled from the classid, nor the
|
|
|
049c96 |
+.B BEST_EFFORT
|
|
|
049c96 |
priority yielded a class, enter the fallback algorithm.
|
|
|
049c96 |
.P
|
|
|
049c96 |
The fallback algorithm resides outside of the loop and is as follows.
|
|
|
049c96 |
.TP
|
|
|
049c96 |
(i)
|
|
|
049c96 |
-Consult the defmap of the class at which the jump to fallback occurred. If
|
|
|
049c96 |
-the defmap contains a class for the
|
|
|
049c96 |
+Consult the defmap of the class at which the jump to fallback occurred. If
|
|
|
049c96 |
+the defmap contains a class for the
|
|
|
049c96 |
.B
|
|
|
049c96 |
priority
|
|
|
049c96 |
-of the class (which is related to the TOS field), choose this class and
|
|
|
049c96 |
-terminate.
|
|
|
049c96 |
+of the class (which is related to the TOS field), choose this class and
|
|
|
049c96 |
+terminate.
|
|
|
049c96 |
.TP
|
|
|
049c96 |
(ii)
|
|
|
049c96 |
Consult the map for a class for the
|
|
|
049c96 |
@@ -212,28 +212,28 @@ priority. If found, choose it, and terminate.
|
|
|
049c96 |
(iii)
|
|
|
049c96 |
Choose the class at which break out to the fallback algorithm occurred. Terminate.
|
|
|
049c96 |
.P
|
|
|
049c96 |
-The packet is enqueued to the class which was chosen when either algorithm
|
|
|
049c96 |
+The packet is enqueued to the class which was chosen when either algorithm
|
|
|
049c96 |
terminated. It is therefore possible for a packet to be enqueued *not* at a
|
|
|
049c96 |
leaf node, but in the middle of the hierarchy.
|
|
|
049c96 |
|
|
|
049c96 |
.SH LINK SHARING ALGORITHM
|
|
|
049c96 |
-When dequeuing for sending to the network device, CBQ decides which of its
|
|
|
049c96 |
+When dequeuing for sending to the network device, CBQ decides which of its
|
|
|
049c96 |
classes will be allowed to send. It does so with a Weighted Round Robin process
|
|
|
049c96 |
in which each class with packets gets a chance to send in turn. The WRR process
|
|
|
049c96 |
-starts by asking the highest priority classes (lowest numerically -
|
|
|
049c96 |
+starts by asking the highest priority classes (lowest numerically -
|
|
|
049c96 |
highest semantically) for packets, and will continue to do so until they
|
|
|
049c96 |
-have no more data to offer, in which case the process repeats for lower
|
|
|
049c96 |
+have no more data to offer, in which case the process repeats for lower
|
|
|
049c96 |
priorities.
|
|
|
049c96 |
|
|
|
049c96 |
.B CERTAINTY ENDS HERE, ANK PLEASE HELP
|
|
|
049c96 |
|
|
|
049c96 |
Each class is not allowed to send at length though - they can only dequeue a
|
|
|
049c96 |
-configurable amount of data during each round.
|
|
|
049c96 |
+configurable amount of data during each round.
|
|
|
049c96 |
|
|
|
049c96 |
If a class is about to go overlimit, and it is not
|
|
|
049c96 |
.B bounded
|
|
|
049c96 |
it will try to borrow avgidle from siblings that are not
|
|
|
049c96 |
-.B isolated.
|
|
|
049c96 |
+.B isolated.
|
|
|
049c96 |
This process is repeated from the bottom upwards. If a class is unable
|
|
|
049c96 |
to borrow enough avgidle to send a packet, it is throttled and not asked
|
|
|
049c96 |
for a packet for enough time for the avgidle to increase above zero.
|
|
|
049c96 |
@@ -244,7 +244,7 @@ for a packet for enough time for the avgidle to increase above zero.
|
|
|
049c96 |
.SH QDISC
|
|
|
049c96 |
The root qdisc of a CBQ class tree has the following parameters:
|
|
|
049c96 |
|
|
|
049c96 |
-.TP
|
|
|
049c96 |
+.TP
|
|
|
049c96 |
parent major:minor | root
|
|
|
049c96 |
This mandatory parameter determines the place of the CBQ instance, either at the
|
|
|
049c96 |
.B root
|
|
|
049c96 |
@@ -259,22 +259,22 @@ For calculations, the average packet size must be known. It is silently capped
|
|
|
049c96 |
at a minimum of 2/3 of the interface MTU. Mandatory.
|
|
|
049c96 |
.TP
|
|
|
049c96 |
bandwidth rate
|
|
|
049c96 |
-To determine the idle time, CBQ must know the bandwidth of your underlying
|
|
|
049c96 |
+To determine the idle time, CBQ must know the bandwidth of your underlying
|
|
|
049c96 |
physical interface, or parent qdisc. This is a vital parameter, more about it
|
|
|
049c96 |
later. Mandatory.
|
|
|
049c96 |
.TP
|
|
|
049c96 |
cell
|
|
|
049c96 |
The cell size determines he granularity of packet transmission time calculations. Has a sensible default.
|
|
|
049c96 |
-.TP
|
|
|
049c96 |
+.TP
|
|
|
049c96 |
mpu
|
|
|
049c96 |
A zero sized packet may still take time to transmit. This value is the lower
|
|
|
049c96 |
cap for packet transmission time calculations - packets smaller than this value
|
|
|
049c96 |
are still deemed to have this size. Defaults to zero.
|
|
|
049c96 |
.TP
|
|
|
049c96 |
ewma log
|
|
|
049c96 |
-When CBQ needs to measure the average idle time, it does so using an
|
|
|
049c96 |
+When CBQ needs to measure the average idle time, it does so using an
|
|
|
049c96 |
Exponentially Weighted Moving Average which smooths out measurements into
|
|
|
049c96 |
-a moving average. The EWMA LOG determines how much smoothing occurs. Defaults
|
|
|
049c96 |
+a moving average. The EWMA LOG determines how much smoothing occurs. Defaults
|
|
|
049c96 |
to 5. Lower values imply greater sensitivity. Must be between 0 and 31.
|
|
|
049c96 |
.P
|
|
|
049c96 |
A CBQ qdisc does not shape out of its own accord. It only needs to know certain
|
|
|
049c96 |
@@ -283,35 +283,35 @@ parameters about the underlying link. Actual shaping is done in classes.
|
|
|
049c96 |
.SH CLASSES
|
|
|
049c96 |
Classes have a host of parameters to configure their operation.
|
|
|
049c96 |
|
|
|
049c96 |
-.TP
|
|
|
049c96 |
+.TP
|
|
|
049c96 |
parent major:minor
|
|
|
049c96 |
-Place of this class within the hierarchy. If attached directly to a qdisc
|
|
|
049c96 |
+Place of this class within the hierarchy. If attached directly to a qdisc
|
|
|
049c96 |
and not to another class, minor can be omitted. Mandatory.
|
|
|
049c96 |
-.TP
|
|
|
049c96 |
+.TP
|
|
|
049c96 |
classid major:minor
|
|
|
049c96 |
Like qdiscs, classes can be named. The major number must be equal to the
|
|
|
049c96 |
-major number of the qdisc to which it belongs. Optional, but needed if this
|
|
|
049c96 |
+major number of the qdisc to which it belongs. Optional, but needed if this
|
|
|
049c96 |
class is going to have children.
|
|
|
049c96 |
-.TP
|
|
|
049c96 |
+.TP
|
|
|
049c96 |
weight weight
|
|
|
049c96 |
-When dequeuing to the interface, classes are tried for traffic in a
|
|
|
049c96 |
+When dequeuing to the interface, classes are tried for traffic in a
|
|
|
049c96 |
round-robin fashion. Classes with a higher configured qdisc will generally
|
|
|
049c96 |
have more traffic to offer during each round, so it makes sense to allow
|
|
|
049c96 |
it to dequeue more traffic. All weights under a class are normalized, so
|
|
|
049c96 |
-only the ratios matter. Defaults to the configured rate, unless the priority
|
|
|
049c96 |
+only the ratios matter. Defaults to the configured rate, unless the priority
|
|
|
049c96 |
of this class is maximal, in which case it is set to 1.
|
|
|
049c96 |
-.TP
|
|
|
049c96 |
+.TP
|
|
|
049c96 |
allot bytes
|
|
|
049c96 |
Allot specifies how many bytes a qdisc can dequeue
|
|
|
049c96 |
-during each round of the process. This parameter is weighted using the
|
|
|
049c96 |
+during each round of the process. This parameter is weighted using the
|
|
|
049c96 |
renormalized class weight described above.
|
|
|
049c96 |
|
|
|
049c96 |
-.TP
|
|
|
049c96 |
+.TP
|
|
|
049c96 |
priority priority
|
|
|
049c96 |
-In the round-robin process, classes with the lowest priority field are tried
|
|
|
049c96 |
+In the round-robin process, classes with the lowest priority field are tried
|
|
|
049c96 |
for packets first. Mandatory.
|
|
|
049c96 |
|
|
|
049c96 |
-.TP
|
|
|
049c96 |
+.TP
|
|
|
049c96 |
rate rate
|
|
|
049c96 |
Maximum rate this class and all its children combined can send at. Mandatory.
|
|
|
049c96 |
|
|
|
049c96 |
@@ -321,7 +321,7 @@ This is different from the bandwidth specified when creating a CBQ disc. Only
|
|
|
049c96 |
used to determine maxidle and offtime, which are only calculated when
|
|
|
049c96 |
specifying maxburst or minburst. Mandatory if specifying maxburst or minburst.
|
|
|
049c96 |
|
|
|
049c96 |
-.TP
|
|
|
049c96 |
+.TP
|
|
|
049c96 |
maxburst
|
|
|
049c96 |
This number of packets is used to calculate maxidle so that when
|
|
|
049c96 |
avgidle is at maxidle, this number of average packets can be burst
|
|
|
049c96 |
@@ -329,7 +329,7 @@ before avgidle drops to 0. Set it higher to be more tolerant of
|
|
|
049c96 |
bursts. You can't set maxidle directly, only via this parameter.
|
|
|
049c96 |
|
|
|
049c96 |
.TP
|
|
|
049c96 |
-minburst
|
|
|
049c96 |
+minburst
|
|
|
049c96 |
As mentioned before, CBQ needs to throttle in case of
|
|
|
049c96 |
overlimit. The ideal solution is to do so for exactly the calculated
|
|
|
049c96 |
idle time, and pass 1 packet. However, Unix kernels generally have a
|
|
|
049c96 |
@@ -352,21 +352,21 @@ Minidle is specified in negative microseconds, so 10 means that
|
|
|
049c96 |
avgidle is capped at -10us.
|
|
|
049c96 |
|
|
|
049c96 |
.TP
|
|
|
049c96 |
-bounded
|
|
|
049c96 |
+bounded
|
|
|
049c96 |
Signifies that this class will not borrow bandwidth from its siblings.
|
|
|
049c96 |
-.TP
|
|
|
049c96 |
+.TP
|
|
|
049c96 |
isolated
|
|
|
049c96 |
Means that this class will not borrow bandwidth to its siblings
|
|
|
049c96 |
|
|
|
049c96 |
-.TP
|
|
|
049c96 |
+.TP
|
|
|
049c96 |
split major:minor & defmap bitmap[/bitmap]
|
|
|
049c96 |
-If consulting filters attached to a class did not give a verdict,
|
|
|
049c96 |
+If consulting filters attached to a class did not give a verdict,
|
|
|
049c96 |
CBQ can also classify based on the packet's priority. There are 16
|
|
|
049c96 |
-priorities available, numbered from 0 to 15.
|
|
|
049c96 |
+priorities available, numbered from 0 to 15.
|
|
|
049c96 |
|
|
|
049c96 |
-The defmap specifies which priorities this class wants to receive,
|
|
|
049c96 |
-specified as a bitmap. The Least Significant Bit corresponds to priority
|
|
|
049c96 |
-zero. The
|
|
|
049c96 |
+The defmap specifies which priorities this class wants to receive,
|
|
|
049c96 |
+specified as a bitmap. The Least Significant Bit corresponds to priority
|
|
|
049c96 |
+zero. The
|
|
|
049c96 |
.B split
|
|
|
049c96 |
parameter tells CBQ at which class the decision must be made, which should
|
|
|
049c96 |
be a (grand)parent of the class you are adding.
|
|
|
049c96 |
@@ -374,7 +374,7 @@ be a (grand)parent of the class you are adding.
|
|
|
049c96 |
As an example, 'tc class add ... classid 10:1 cbq .. split 10:0 defmap c0'
|
|
|
049c96 |
configures class 10:0 to send packets with priorities 6 and 7 to 10:1.
|
|
|
049c96 |
|
|
|
049c96 |
-The complimentary configuration would then
|
|
|
049c96 |
+The complimentary configuration would then
|
|
|
049c96 |
be: 'tc class add ... classid 10:2 cbq ... split 10:0 defmap 3f'
|
|
|
049c96 |
Which would send all packets 0, 1, 2, 3, 4 and 5 to 10:1.
|
|
|
049c96 |
.TP
|
|
|
049c96 |
@@ -384,11 +384,11 @@ can use to classify packets with. In order to determine the bandwidth
|
|
|
049c96 |
it uses a very simple estimator that measures once every
|
|
|
049c96 |
.B interval
|
|
|
049c96 |
microseconds how much traffic has passed. This again is a EWMA, for which
|
|
|
049c96 |
-the time constant can be specified, also in microseconds. The
|
|
|
049c96 |
+the time constant can be specified, also in microseconds. The
|
|
|
049c96 |
.B time constant
|
|
|
049c96 |
-corresponds to the sluggishness of the measurement or, conversely, to the
|
|
|
049c96 |
+corresponds to the sluggishness of the measurement or, conversely, to the
|
|
|
049c96 |
sensitivity of the average to short bursts. Higher values mean less
|
|
|
049c96 |
-sensitivity.
|
|
|
049c96 |
+sensitivity.
|
|
|
049c96 |
|
|
|
049c96 |
|
|
|
049c96 |
|
|
|
049c96 |
@@ -399,7 +399,7 @@ Sally Floyd and Van Jacobson, "Link-sharing and Resource
|
|
|
049c96 |
Management Models for Packet Networks",
|
|
|
049c96 |
IEEE/ACM Transactions on Networking, Vol.3, No.4, 1995
|
|
|
049c96 |
|
|
|
049c96 |
-.TP
|
|
|
049c96 |
+.TP
|
|
|
049c96 |
o
|
|
|
049c96 |
Sally Floyd, "Notes on CBQ and Guarantee Service", 1995
|
|
|
049c96 |
|
|
|
049c96 |
@@ -408,7 +408,7 @@ o
|
|
|
049c96 |
Sally Floyd, "Notes on Class-Based Queueing: Setting
|
|
|
049c96 |
Parameters", 1996
|
|
|
049c96 |
|
|
|
049c96 |
-.TP
|
|
|
049c96 |
+.TP
|
|
|
049c96 |
o
|
|
|
049c96 |
Sally Floyd and Michael Speer, "Experimental Results
|
|
|
049c96 |
for Class-Based Queueing", 1998, not published.
|
|
|
049c96 |
@@ -421,5 +421,3 @@ for Class-Based Queueing", 1998, not published.
|
|
|
049c96 |
.SH AUTHOR
|
|
|
049c96 |
Alexey N. Kuznetsov, <kuznet@ms2.inr.ac.ru>. This manpage maintained by
|
|
|
049c96 |
bert hubert <ahu@ds9a.nl>
|
|
|
049c96 |
-
|
|
|
049c96 |
-
|
|
|
049c96 |
diff --git a/man/man8/tc-cbq.8 b/man/man8/tc-cbq.8
|
|
|
049c96 |
index b900e1c..301265d 100644
|
|
|
049c96 |
--- a/man/man8/tc-cbq.8
|
|
|
049c96 |
+++ b/man/man8/tc-cbq.8
|
|
|
049c96 |
@@ -5,56 +5,56 @@ CBQ \- Class Based Queueing
|
|
|
049c96 |
.B tc qdisc ... dev
|
|
|
049c96 |
dev
|
|
|
049c96 |
.B ( parent
|
|
|
049c96 |
-classid
|
|
|
049c96 |
-.B | root) [ handle
|
|
|
049c96 |
-major:
|
|
|
049c96 |
-.B ] cbq [ allot
|
|
|
049c96 |
+classid
|
|
|
049c96 |
+.B | root) [ handle
|
|
|
049c96 |
+major:
|
|
|
049c96 |
+.B ] cbq [ allot
|
|
|
049c96 |
bytes
|
|
|
049c96 |
.B ] avpkt
|
|
|
049c96 |
bytes
|
|
|
049c96 |
.B bandwidth
|
|
|
049c96 |
rate
|
|
|
049c96 |
-.B [ cell
|
|
|
049c96 |
+.B [ cell
|
|
|
049c96 |
bytes
|
|
|
049c96 |
.B ] [ ewma
|
|
|
049c96 |
log
|
|
|
049c96 |
.B ] [ mpu
|
|
|
049c96 |
bytes
|
|
|
049c96 |
-.B ]
|
|
|
049c96 |
+.B ]
|
|
|
049c96 |
|
|
|
049c96 |
.B tc class ... dev
|
|
|
049c96 |
dev
|
|
|
049c96 |
-.B parent
|
|
|
049c96 |
+.B parent
|
|
|
049c96 |
major:[minor]
|
|
|
049c96 |
-.B [ classid
|
|
|
049c96 |
+.B [ classid
|
|
|
049c96 |
major:minor
|
|
|
049c96 |
.B ] cbq allot
|
|
|
049c96 |
bytes
|
|
|
049c96 |
-.B [ bandwidth
|
|
|
049c96 |
-rate
|
|
|
049c96 |
-.B ] [ rate
|
|
|
049c96 |
+.B [ bandwidth
|
|
|
049c96 |
+rate
|
|
|
049c96 |
+.B ] [ rate
|
|
|
049c96 |
rate
|
|
|
049c96 |
.B ] prio
|
|
|
049c96 |
priority
|
|
|
049c96 |
.B [ weight
|
|
|
049c96 |
weight
|
|
|
049c96 |
-.B ] [ minburst
|
|
|
049c96 |
+.B ] [ minburst
|
|
|
049c96 |
+packets
|
|
|
049c96 |
+.B ] [ maxburst
|
|
|
049c96 |
packets
|
|
|
049c96 |
-.B ] [ maxburst
|
|
|
049c96 |
-packets
|
|
|
049c96 |
-.B ] [ ewma
|
|
|
049c96 |
+.B ] [ ewma
|
|
|
049c96 |
log
|
|
|
049c96 |
.B ] [ cell
|
|
|
049c96 |
bytes
|
|
|
049c96 |
.B ] avpkt
|
|
|
049c96 |
bytes
|
|
|
049c96 |
.B [ mpu
|
|
|
049c96 |
-bytes
|
|
|
049c96 |
+bytes
|
|
|
049c96 |
.B ] [ bounded isolated ] [ split
|
|
|
049c96 |
handle
|
|
|
049c96 |
.B & defmap
|
|
|
049c96 |
defmap
|
|
|
049c96 |
-.B ] [ estimator
|
|
|
049c96 |
+.B ] [ estimator
|
|
|
049c96 |
interval timeconstant
|
|
|
049c96 |
.B ]
|
|
|
049c96 |
|
|
|
049c96 |
@@ -62,7 +62,7 @@ interval timeconstant
|
|
|
049c96 |
Class Based Queueing is a classful qdisc that implements a rich
|
|
|
049c96 |
linksharing hierarchy of classes. It contains shaping elements as
|
|
|
049c96 |
well as prioritizing capabilities. Shaping is performed using link
|
|
|
049c96 |
-idle time calculations based on the timing of dequeue events and
|
|
|
049c96 |
+idle time calculations based on the timing of dequeue events and
|
|
|
049c96 |
underlying link bandwidth.
|
|
|
049c96 |
|
|
|
049c96 |
.SH SHAPING ALGORITHM
|
|
|
049c96 |
@@ -85,71 +85,71 @@ CBQ throttles and is then 'overlimit'.
|
|
|
049c96 |
|
|
|
049c96 |
Conversely, an idle link might amass a huge avgidle, which would then
|
|
|
049c96 |
allow infinite bandwidths after a few hours of silence. To prevent
|
|
|
049c96 |
-this, avgidle is capped at
|
|
|
049c96 |
+this, avgidle is capped at
|
|
|
049c96 |
.B maxidle.
|
|
|
049c96 |
|
|
|
049c96 |
If overlimit, in theory, the CBQ could throttle itself for exactly the
|
|
|
049c96 |
amount of time that was calculated to pass between packets, and then
|
|
|
049c96 |
pass one packet, and throttle again. Due to timer resolution constraints,
|
|
|
049c96 |
-this may not be feasible, see the
|
|
|
049c96 |
+this may not be feasible, see the
|
|
|
049c96 |
.B minburst
|
|
|
049c96 |
parameter below.
|
|
|
049c96 |
|
|
|
049c96 |
.SH CLASSIFICATION
|
|
|
049c96 |
Within the one CBQ instance many classes may exist. Each of these classes
|
|
|
049c96 |
-contains another qdisc, by default
|
|
|
049c96 |
+contains another qdisc, by default
|
|
|
049c96 |
.BR tc-pfifo (8).
|
|
|
049c96 |
|
|
|
049c96 |
-When enqueueing a packet, CBQ starts at the root and uses various methods to
|
|
|
049c96 |
-determine which class should receive the data.
|
|
|
049c96 |
+When enqueueing a packet, CBQ starts at the root and uses various methods to
|
|
|
049c96 |
+determine which class should receive the data.
|
|
|
049c96 |
|
|
|
049c96 |
-In the absence of uncommon configuration options, the process is rather easy.
|
|
|
049c96 |
-At each node we look for an instruction, and then go to the class the
|
|
|
049c96 |
-instruction refers us to. If the class found is a barren leaf-node (without
|
|
|
049c96 |
-children), we enqueue the packet there. If it is not yet a leaf node, we do
|
|
|
049c96 |
-the whole thing over again starting from that node.
|
|
|
049c96 |
+In the absence of uncommon configuration options, the process is rather easy.
|
|
|
049c96 |
+At each node we look for an instruction, and then go to the class the
|
|
|
049c96 |
+instruction refers us to. If the class found is a barren leaf-node (without
|
|
|
049c96 |
+children), we enqueue the packet there. If it is not yet a leaf node, we do
|
|
|
049c96 |
+the whole thing over again starting from that node.
|
|
|
049c96 |
|
|
|
049c96 |
-The following actions are performed, in order at each node we visit, until one
|
|
|
049c96 |
+The following actions are performed, in order at each node we visit, until one
|
|
|
049c96 |
sends us to another node, or terminates the process.
|
|
|
049c96 |
.TP
|
|
|
049c96 |
(i)
|
|
|
049c96 |
-Consult filters attached to the class. If sent to a leafnode, we are done.
|
|
|
049c96 |
+Consult filters attached to the class. If sent to a leafnode, we are done.
|
|
|
049c96 |
Otherwise, restart.
|
|
|
049c96 |
.TP
|
|
|
049c96 |
(ii)
|
|
|
049c96 |
-Consult the defmap for the priority assigned to this packet, which depends
|
|
|
049c96 |
+Consult the defmap for the priority assigned to this packet, which depends
|
|
|
049c96 |
on the TOS bits. Check if the referral is leafless, otherwise restart.
|
|
|
049c96 |
.TP
|
|
|
049c96 |
(iii)
|
|
|
049c96 |
-Ask the defmap for instructions for the 'best effort' priority. Check the
|
|
|
049c96 |
+Ask the defmap for instructions for the 'best effort' priority. Check the
|
|
|
049c96 |
answer for leafness, otherwise restart.
|
|
|
049c96 |
.TP
|
|
|
049c96 |
(iv)
|
|
|
049c96 |
If none of the above returned with an instruction, enqueue at this node.
|
|
|
049c96 |
.P
|
|
|
049c96 |
This algorithm makes sure that a packet always ends up somewhere, even while
|
|
|
049c96 |
-you are busy building your configuration.
|
|
|
049c96 |
+you are busy building your configuration.
|
|
|
049c96 |
|
|
|
049c96 |
For more details, see
|
|
|
049c96 |
.BR tc-cbq-details(8).
|
|
|
049c96 |
|
|
|
049c96 |
.SH LINK SHARING ALGORITHM
|
|
|
049c96 |
-When dequeuing for sending to the network device, CBQ decides which of its
|
|
|
049c96 |
+When dequeuing for sending to the network device, CBQ decides which of its
|
|
|
049c96 |
classes will be allowed to send. It does so with a Weighted Round Robin process
|
|
|
049c96 |
in which each class with packets gets a chance to send in turn. The WRR process
|
|
|
049c96 |
-starts by asking the highest priority classes (lowest numerically -
|
|
|
049c96 |
+starts by asking the highest priority classes (lowest numerically -
|
|
|
049c96 |
highest semantically) for packets, and will continue to do so until they
|
|
|
049c96 |
-have no more data to offer, in which case the process repeats for lower
|
|
|
049c96 |
+have no more data to offer, in which case the process repeats for lower
|
|
|
049c96 |
priorities.
|
|
|
049c96 |
|
|
|
049c96 |
-Classes by default borrow bandwidth from their siblings. A class can be
|
|
|
049c96 |
-prevented from doing so by declaring it 'bounded'. A class can also indicate
|
|
|
049c96 |
+Classes by default borrow bandwidth from their siblings. A class can be
|
|
|
049c96 |
+prevented from doing so by declaring it 'bounded'. A class can also indicate
|
|
|
049c96 |
its unwillingness to lend out bandwidth by being 'isolated'.
|
|
|
049c96 |
|
|
|
049c96 |
.SH QDISC
|
|
|
049c96 |
The root of a CBQ qdisc class tree has the following parameters:
|
|
|
049c96 |
|
|
|
049c96 |
-.TP
|
|
|
049c96 |
+.TP
|
|
|
049c96 |
parent major:minor | root
|
|
|
049c96 |
This mandatory parameter determines the place of the CBQ instance, either at the
|
|
|
049c96 |
.B root
|
|
|
049c96 |
@@ -159,7 +159,7 @@ handle major:
|
|
|
049c96 |
Like all other qdiscs, the CBQ can be assigned a handle. Should consist only
|
|
|
049c96 |
of a major number, followed by a colon. Optional, but very useful if classes
|
|
|
049c96 |
will be generated within this qdisc.
|
|
|
049c96 |
-.TP
|
|
|
049c96 |
+.TP
|
|
|
049c96 |
allot bytes
|
|
|
049c96 |
This allotment is the 'chunkiness' of link sharing and is used for determining packet
|
|
|
049c96 |
transmission time tables. The qdisc allot differs slightly from the class allot discussed
|
|
|
049c96 |
@@ -170,23 +170,23 @@ The average size of a packet is needed for calculating maxidle, and is also used
|
|
|
049c96 |
for making sure 'allot' has a safe value. Mandatory.
|
|
|
049c96 |
.TP
|
|
|
049c96 |
bandwidth rate
|
|
|
049c96 |
-To determine the idle time, CBQ must know the bandwidth of your underlying
|
|
|
049c96 |
+To determine the idle time, CBQ must know the bandwidth of your underlying
|
|
|
049c96 |
physical interface, or parent qdisc. This is a vital parameter, more about it
|
|
|
049c96 |
later. Mandatory.
|
|
|
049c96 |
.TP
|
|
|
049c96 |
cell
|
|
|
049c96 |
The cell size determines he granularity of packet transmission time calculations. Has a sensible default.
|
|
|
049c96 |
-.TP
|
|
|
049c96 |
+.TP
|
|
|
049c96 |
mpu
|
|
|
049c96 |
A zero sized packet may still take time to transmit. This value is the lower
|
|
|
049c96 |
cap for packet transmission time calculations - packets smaller than this value
|
|
|
049c96 |
are still deemed to have this size. Defaults to zero.
|
|
|
049c96 |
.TP
|
|
|
049c96 |
ewma log
|
|
|
049c96 |
-When CBQ needs to measure the average idle time, it does so using an
|
|
|
049c96 |
+When CBQ needs to measure the average idle time, it does so using an
|
|
|
049c96 |
Exponentially Weighted Moving Average which smooths out measurements into
|
|
|
049c96 |
-a moving average. The EWMA LOG determines how much smoothing occurs. Lower
|
|
|
049c96 |
-values imply greater sensitivity. Must be between 0 and 31. Defaults
|
|
|
049c96 |
+a moving average. The EWMA LOG determines how much smoothing occurs. Lower
|
|
|
049c96 |
+values imply greater sensitivity. Must be between 0 and 31. Defaults
|
|
|
049c96 |
to 5.
|
|
|
049c96 |
.P
|
|
|
049c96 |
A CBQ qdisc does not shape out of its own accord. It only needs to know certain
|
|
|
049c96 |
@@ -195,40 +195,40 @@ parameters about the underlying link. Actual shaping is done in classes.
|
|
|
049c96 |
.SH CLASSES
|
|
|
049c96 |
Classes have a host of parameters to configure their operation.
|
|
|
049c96 |
|
|
|
049c96 |
-.TP
|
|
|
049c96 |
+.TP
|
|
|
049c96 |
parent major:minor
|
|
|
049c96 |
-Place of this class within the hierarchy. If attached directly to a qdisc
|
|
|
049c96 |
+Place of this class within the hierarchy. If attached directly to a qdisc
|
|
|
049c96 |
and not to another class, minor can be omitted. Mandatory.
|
|
|
049c96 |
-.TP
|
|
|
049c96 |
+.TP
|
|
|
049c96 |
classid major:minor
|
|
|
049c96 |
Like qdiscs, classes can be named. The major number must be equal to the
|
|
|
049c96 |
-major number of the qdisc to which it belongs. Optional, but needed if this
|
|
|
049c96 |
+major number of the qdisc to which it belongs. Optional, but needed if this
|
|
|
049c96 |
class is going to have children.
|
|
|
049c96 |
-.TP
|
|
|
049c96 |
+.TP
|
|
|
049c96 |
weight weight
|
|
|
049c96 |
-When dequeuing to the interface, classes are tried for traffic in a
|
|
|
049c96 |
+When dequeuing to the interface, classes are tried for traffic in a
|
|
|
049c96 |
round-robin fashion. Classes with a higher configured qdisc will generally
|
|
|
049c96 |
have more traffic to offer during each round, so it makes sense to allow
|
|
|
049c96 |
it to dequeue more traffic. All weights under a class are normalized, so
|
|
|
049c96 |
-only the ratios matter. Defaults to the configured rate, unless the priority
|
|
|
049c96 |
+only the ratios matter. Defaults to the configured rate, unless the priority
|
|
|
049c96 |
of this class is maximal, in which case it is set to 1.
|
|
|
049c96 |
-.TP
|
|
|
049c96 |
+.TP
|
|
|
049c96 |
allot bytes
|
|
|
049c96 |
Allot specifies how many bytes a qdisc can dequeue
|
|
|
049c96 |
-during each round of the process. This parameter is weighted using the
|
|
|
049c96 |
+during each round of the process. This parameter is weighted using the
|
|
|
049c96 |
renormalized class weight described above. Silently capped at a minimum of
|
|
|
049c96 |
3/2 avpkt. Mandatory.
|
|
|
049c96 |
|
|
|
049c96 |
-.TP
|
|
|
049c96 |
+.TP
|
|
|
049c96 |
prio priority
|
|
|
049c96 |
-In the round-robin process, classes with the lowest priority field are tried
|
|
|
049c96 |
+In the round-robin process, classes with the lowest priority field are tried
|
|
|
049c96 |
for packets first. Mandatory.
|
|
|
049c96 |
|
|
|
049c96 |
-.TP
|
|
|
049c96 |
+.TP
|
|
|
049c96 |
avpkt
|
|
|
049c96 |
See the QDISC section.
|
|
|
049c96 |
|
|
|
049c96 |
-.TP
|
|
|
049c96 |
+.TP
|
|
|
049c96 |
rate rate
|
|
|
049c96 |
Maximum rate this class and all its children combined can send at. Mandatory.
|
|
|
049c96 |
|
|
|
049c96 |
@@ -238,7 +238,7 @@ This is different from the bandwidth specified when creating a CBQ disc! Only
|
|
|
049c96 |
used to determine maxidle and offtime, which are only calculated when
|
|
|
049c96 |
specifying maxburst or minburst. Mandatory if specifying maxburst or minburst.
|
|
|
049c96 |
|
|
|
049c96 |
-.TP
|
|
|
049c96 |
+.TP
|
|
|
049c96 |
maxburst
|
|
|
049c96 |
This number of packets is used to calculate maxidle so that when
|
|
|
049c96 |
avgidle is at maxidle, this number of average packets can be burst
|
|
|
049c96 |
@@ -246,7 +246,7 @@ before avgidle drops to 0. Set it higher to be more tolerant of
|
|
|
049c96 |
bursts. You can't set maxidle directly, only via this parameter.
|
|
|
049c96 |
|
|
|
049c96 |
.TP
|
|
|
049c96 |
-minburst
|
|
|
049c96 |
+minburst
|
|
|
049c96 |
As mentioned before, CBQ needs to throttle in case of
|
|
|
049c96 |
overlimit. The ideal solution is to do so for exactly the calculated
|
|
|
049c96 |
idle time, and pass 1 packet. However, Unix kernels generally have a
|
|
|
049c96 |
@@ -269,21 +269,21 @@ Minidle is specified in negative microseconds, so 10 means that
|
|
|
049c96 |
avgidle is capped at -10us. Optional.
|
|
|
049c96 |
|
|
|
049c96 |
.TP
|
|
|
049c96 |
-bounded
|
|
|
049c96 |
+bounded
|
|
|
049c96 |
Signifies that this class will not borrow bandwidth from its siblings.
|
|
|
049c96 |
-.TP
|
|
|
049c96 |
+.TP
|
|
|
049c96 |
isolated
|
|
|
049c96 |
Means that this class will not borrow bandwidth to its siblings
|
|
|
049c96 |
|
|
|
049c96 |
-.TP
|
|
|
049c96 |
+.TP
|
|
|
049c96 |
split major:minor & defmap bitmap[/bitmap]
|
|
|
049c96 |
-If consulting filters attached to a class did not give a verdict,
|
|
|
049c96 |
+If consulting filters attached to a class did not give a verdict,
|
|
|
049c96 |
CBQ can also classify based on the packet's priority. There are 16
|
|
|
049c96 |
-priorities available, numbered from 0 to 15.
|
|
|
049c96 |
+priorities available, numbered from 0 to 15.
|
|
|
049c96 |
|
|
|
049c96 |
-The defmap specifies which priorities this class wants to receive,
|
|
|
049c96 |
-specified as a bitmap. The Least Significant Bit corresponds to priority
|
|
|
049c96 |
-zero. The
|
|
|
049c96 |
+The defmap specifies which priorities this class wants to receive,
|
|
|
049c96 |
+specified as a bitmap. The Least Significant Bit corresponds to priority
|
|
|
049c96 |
+zero. The
|
|
|
049c96 |
.B split
|
|
|
049c96 |
parameter tells CBQ at which class the decision must be made, which should
|
|
|
049c96 |
be a (grand)parent of the class you are adding.
|
|
|
049c96 |
@@ -291,7 +291,7 @@ be a (grand)parent of the class you are adding.
|
|
|
049c96 |
As an example, 'tc class add ... classid 10:1 cbq .. split 10:0 defmap c0'
|
|
|
049c96 |
configures class 10:0 to send packets with priorities 6 and 7 to 10:1.
|
|
|
049c96 |
|
|
|
049c96 |
-The complimentary configuration would then
|
|
|
049c96 |
+The complimentary configuration would then
|
|
|
049c96 |
be: 'tc class add ... classid 10:2 cbq ... split 10:0 defmap 3f'
|
|
|
049c96 |
Which would send all packets 0, 1, 2, 3, 4 and 5 to 10:1.
|
|
|
049c96 |
.TP
|
|
|
049c96 |
@@ -301,22 +301,22 @@ can use to classify packets with. In order to determine the bandwidth
|
|
|
049c96 |
it uses a very simple estimator that measures once every
|
|
|
049c96 |
.B interval
|
|
|
049c96 |
microseconds how much traffic has passed. This again is a EWMA, for which
|
|
|
049c96 |
-the time constant can be specified, also in microseconds. The
|
|
|
049c96 |
+the time constant can be specified, also in microseconds. The
|
|
|
049c96 |
.B time constant
|
|
|
049c96 |
-corresponds to the sluggishness of the measurement or, conversely, to the
|
|
|
049c96 |
+corresponds to the sluggishness of the measurement or, conversely, to the
|
|
|
049c96 |
sensitivity of the average to short bursts. Higher values mean less
|
|
|
049c96 |
-sensitivity.
|
|
|
049c96 |
+sensitivity.
|
|
|
049c96 |
|
|
|
049c96 |
.SH BUGS
|
|
|
049c96 |
-The actual bandwidth of the underlying link may not be known, for example
|
|
|
049c96 |
-in the case of PPoE or PPTP connections which in fact may send over a
|
|
|
049c96 |
+The actual bandwidth of the underlying link may not be known, for example
|
|
|
049c96 |
+in the case of PPoE or PPTP connections which in fact may send over a
|
|
|
049c96 |
pipe, instead of over a physical device. CBQ is quite resilient to major
|
|
|
049c96 |
errors in the configured bandwidth, probably a the cost of coarser shaping.
|
|
|
049c96 |
|
|
|
049c96 |
-Default kernels rely on coarse timing information for making decisions. These
|
|
|
049c96 |
+Default kernels rely on coarse timing information for making decisions. These
|
|
|
049c96 |
may make shaping precise in the long term, but inaccurate on second long scales.
|
|
|
049c96 |
|
|
|
049c96 |
-See
|
|
|
049c96 |
+See
|
|
|
049c96 |
.BR tc-cbq-details(8)
|
|
|
049c96 |
for hints on how to improve this.
|
|
|
049c96 |
|
|
|
049c96 |
@@ -327,7 +327,7 @@ Sally Floyd and Van Jacobson, "Link-sharing and Resource
|
|
|
049c96 |
Management Models for Packet Networks",
|
|
|
049c96 |
IEEE/ACM Transactions on Networking, Vol.3, No.4, 1995
|
|
|
049c96 |
|
|
|
049c96 |
-.TP
|
|
|
049c96 |
+.TP
|
|
|
049c96 |
o
|
|
|
049c96 |
Sally Floyd, "Notes on CBQ and Guaranteed Service", 1995
|
|
|
049c96 |
|
|
|
049c96 |
@@ -336,7 +336,7 @@ o
|
|
|
049c96 |
Sally Floyd, "Notes on Class-Based Queueing: Setting
|
|
|
049c96 |
Parameters", 1996
|
|
|
049c96 |
|
|
|
049c96 |
-.TP
|
|
|
049c96 |
+.TP
|
|
|
049c96 |
o
|
|
|
049c96 |
Sally Floyd and Michael Speer, "Experimental Results
|
|
|
049c96 |
for Class-Based Queueing", 1998, not published.
|
|
|
049c96 |
@@ -349,5 +349,3 @@ for Class-Based Queueing", 1998, not published.
|
|
|
049c96 |
.SH AUTHOR
|
|
|
049c96 |
Alexey N. Kuznetsov, <kuznet@ms2.inr.ac.ru>. This manpage maintained by
|
|
|
049c96 |
bert hubert <ahu@ds9a.nl>
|
|
|
049c96 |
-
|
|
|
049c96 |
-
|
|
|
049c96 |
diff --git a/man/man8/tc-drr.8 b/man/man8/tc-drr.8
|
|
|
049c96 |
index f550a35..2fea4ee 100644
|
|
|
049c96 |
--- a/man/man8/tc-drr.8
|
|
|
049c96 |
+++ b/man/man8/tc-drr.8
|
|
|
049c96 |
@@ -92,4 +92,3 @@ as limits are handled by the individual child qdiscs.
|
|
|
049c96 |
|
|
|
049c96 |
.SH AUTHOR
|
|
|
049c96 |
sched_drr was written by Patrick McHardy.
|
|
|
049c96 |
-
|
|
|
049c96 |
diff --git a/man/man8/tc-htb.8 b/man/man8/tc-htb.8
|
|
|
049c96 |
index 95f25de..ae310f4 100644
|
|
|
049c96 |
--- a/man/man8/tc-htb.8
|
|
|
049c96 |
+++ b/man/man8/tc-htb.8
|
|
|
049c96 |
@@ -5,30 +5,30 @@ HTB \- Hierarchy Token Bucket
|
|
|
049c96 |
.B tc qdisc ... dev
|
|
|
049c96 |
dev
|
|
|
049c96 |
.B ( parent
|
|
|
049c96 |
-classid
|
|
|
049c96 |
-.B | root) [ handle
|
|
|
049c96 |
-major:
|
|
|
049c96 |
-.B ] htb [ default
|
|
|
049c96 |
+classid
|
|
|
049c96 |
+.B | root) [ handle
|
|
|
049c96 |
+major:
|
|
|
049c96 |
+.B ] htb [ default
|
|
|
049c96 |
minor-id
|
|
|
049c96 |
-.B ]
|
|
|
049c96 |
+.B ]
|
|
|
049c96 |
|
|
|
049c96 |
.B tc class ... dev
|
|
|
049c96 |
dev
|
|
|
049c96 |
-.B parent
|
|
|
049c96 |
+.B parent
|
|
|
049c96 |
major:[minor]
|
|
|
049c96 |
-.B [ classid
|
|
|
049c96 |
+.B [ classid
|
|
|
049c96 |
major:minor
|
|
|
049c96 |
.B ] htb rate
|
|
|
049c96 |
rate
|
|
|
049c96 |
.B [ ceil
|
|
|
049c96 |
-rate
|
|
|
049c96 |
-.B ] burst
|
|
|
049c96 |
+rate
|
|
|
049c96 |
+.B ] burst
|
|
|
049c96 |
bytes
|
|
|
049c96 |
.B [ cburst
|
|
|
049c96 |
bytes
|
|
|
049c96 |
.B ] [ prio
|
|
|
049c96 |
priority
|
|
|
049c96 |
-.B ]
|
|
|
049c96 |
+.B ]
|
|
|
049c96 |
|
|
|
049c96 |
.SH DESCRIPTION
|
|
|
049c96 |
HTB is meant as a more understandable and intuitive replacement for
|
|
|
049c96 |
@@ -37,9 +37,9 @@ of the outbound bandwidth on a given link. Both allow you to use one
|
|
|
049c96 |
physical link to simulate several slower links and to send different
|
|
|
049c96 |
kinds of traffic on different simulated links. In both cases, you have
|
|
|
049c96 |
to specify how to divide the physical link into simulated links and
|
|
|
049c96 |
-how to decide which simulated link to use for a given packet to be sent.
|
|
|
049c96 |
+how to decide which simulated link to use for a given packet to be sent.
|
|
|
049c96 |
|
|
|
049c96 |
-Unlike CBQ, HTB shapes traffic based on the Token Bucket Filter algorithm
|
|
|
049c96 |
+Unlike CBQ, HTB shapes traffic based on the Token Bucket Filter algorithm
|
|
|
049c96 |
which does not depend on interface characteristics and so does not need to
|
|
|
049c96 |
know the underlying bandwidth of the outgoing interface.
|
|
|
049c96 |
|
|
|
049c96 |
@@ -49,30 +49,30 @@ Shaping works as documented in
|
|
|
049c96 |
|
|
|
049c96 |
.SH CLASSIFICATION
|
|
|
049c96 |
Within the one HTB instance many classes may exist. Each of these classes
|
|
|
049c96 |
-contains another qdisc, by default
|
|
|
049c96 |
+contains another qdisc, by default
|
|
|
049c96 |
.BR tc-pfifo (8).
|
|
|
049c96 |
|
|
|
049c96 |
-When enqueueing a packet, HTB starts at the root and uses various methods to
|
|
|
049c96 |
-determine which class should receive the data.
|
|
|
049c96 |
+When enqueueing a packet, HTB starts at the root and uses various methods to
|
|
|
049c96 |
+determine which class should receive the data.
|
|
|
049c96 |
|
|
|
049c96 |
-In the absence of uncommon configuration options, the process is rather easy.
|
|
|
049c96 |
-At each node we look for an instruction, and then go to the class the
|
|
|
049c96 |
-instruction refers us to. If the class found is a barren leaf-node (without
|
|
|
049c96 |
-children), we enqueue the packet there. If it is not yet a leaf node, we do
|
|
|
049c96 |
-the whole thing over again starting from that node.
|
|
|
049c96 |
+In the absence of uncommon configuration options, the process is rather easy.
|
|
|
049c96 |
+At each node we look for an instruction, and then go to the class the
|
|
|
049c96 |
+instruction refers us to. If the class found is a barren leaf-node (without
|
|
|
049c96 |
+children), we enqueue the packet there. If it is not yet a leaf node, we do
|
|
|
049c96 |
+the whole thing over again starting from that node.
|
|
|
049c96 |
|
|
|
049c96 |
-The following actions are performed, in order at each node we visit, until one
|
|
|
049c96 |
+The following actions are performed, in order at each node we visit, until one
|
|
|
049c96 |
sends us to another node, or terminates the process.
|
|
|
049c96 |
.TP
|
|
|
049c96 |
(i)
|
|
|
049c96 |
-Consult filters attached to the class. If sent to a leafnode, we are done.
|
|
|
049c96 |
+Consult filters attached to the class. If sent to a leafnode, we are done.
|
|
|
049c96 |
Otherwise, restart.
|
|
|
049c96 |
.TP
|
|
|
049c96 |
(ii)
|
|
|
049c96 |
If none of the above returned with an instruction, enqueue at this node.
|
|
|
049c96 |
.P
|
|
|
049c96 |
This algorithm makes sure that a packet always ends up somewhere, even while
|
|
|
049c96 |
-you are busy building your configuration.
|
|
|
049c96 |
+you are busy building your configuration.
|
|
|
049c96 |
|
|
|
049c96 |
.SH LINK SHARING ALGORITHM
|
|
|
049c96 |
FIXME
|
|
|
049c96 |
@@ -80,7 +80,7 @@ FIXME
|
|
|
049c96 |
.SH QDISC
|
|
|
049c96 |
The root of a HTB qdisc class tree has the following parameters:
|
|
|
049c96 |
|
|
|
049c96 |
-.TP
|
|
|
049c96 |
+.TP
|
|
|
049c96 |
parent major:minor | root
|
|
|
049c96 |
This mandatory parameter determines the place of the HTB instance, either at the
|
|
|
049c96 |
.B root
|
|
|
049c96 |
@@ -90,54 +90,54 @@ handle major:
|
|
|
049c96 |
Like all other qdiscs, the HTB can be assigned a handle. Should consist only
|
|
|
049c96 |
of a major number, followed by a colon. Optional, but very useful if classes
|
|
|
049c96 |
will be generated within this qdisc.
|
|
|
049c96 |
-.TP
|
|
|
049c96 |
+.TP
|
|
|
049c96 |
default minor-id
|
|
|
049c96 |
Unclassified traffic gets sent to the class with this minor-id.
|
|
|
049c96 |
|
|
|
049c96 |
.SH CLASSES
|
|
|
049c96 |
Classes have a host of parameters to configure their operation.
|
|
|
049c96 |
|
|
|
049c96 |
-.TP
|
|
|
049c96 |
+.TP
|
|
|
049c96 |
parent major:minor
|
|
|
049c96 |
-Place of this class within the hierarchy. If attached directly to a qdisc
|
|
|
049c96 |
+Place of this class within the hierarchy. If attached directly to a qdisc
|
|
|
049c96 |
and not to another class, minor can be omitted. Mandatory.
|
|
|
049c96 |
-.TP
|
|
|
049c96 |
+.TP
|
|
|
049c96 |
classid major:minor
|
|
|
049c96 |
Like qdiscs, classes can be named. The major number must be equal to the
|
|
|
049c96 |
-major number of the qdisc to which it belongs. Optional, but needed if this
|
|
|
049c96 |
+major number of the qdisc to which it belongs. Optional, but needed if this
|
|
|
049c96 |
class is going to have children.
|
|
|
049c96 |
-.TP
|
|
|
049c96 |
+.TP
|
|
|
049c96 |
prio priority
|
|
|
049c96 |
-In the round-robin process, classes with the lowest priority field are tried
|
|
|
049c96 |
+In the round-robin process, classes with the lowest priority field are tried
|
|
|
049c96 |
for packets first. Mandatory.
|
|
|
049c96 |
|
|
|
049c96 |
-.TP
|
|
|
049c96 |
+.TP
|
|
|
049c96 |
rate rate
|
|
|
049c96 |
Maximum rate this class and all its children are guaranteed. Mandatory.
|
|
|
049c96 |
|
|
|
049c96 |
.TP
|
|
|
049c96 |
ceil rate
|
|
|
049c96 |
-Maximum rate at which a class can send, if its parent has bandwidth to spare.
|
|
|
049c96 |
+Maximum rate at which a class can send, if its parent has bandwidth to spare.
|
|
|
049c96 |
Defaults to the configured rate, which implies no borrowing
|
|
|
049c96 |
|
|
|
049c96 |
-.TP
|
|
|
049c96 |
+.TP
|
|
|
049c96 |
burst bytes
|
|
|
049c96 |
-Amount of bytes that can be burst at
|
|
|
049c96 |
+Amount of bytes that can be burst at
|
|
|
049c96 |
.B ceil
|
|
|
049c96 |
speed, in excess of the configured
|
|
|
049c96 |
-.B rate.
|
|
|
049c96 |
+.B rate.
|
|
|
049c96 |
Should be at least as high as the highest burst of all children.
|
|
|
049c96 |
|
|
|
049c96 |
-.TP
|
|
|
049c96 |
+.TP
|
|
|
049c96 |
cburst bytes
|
|
|
049c96 |
Amount of bytes that can be burst at 'infinite' speed, in other words, as fast
|
|
|
049c96 |
as the interface can transmit them. For perfect evening out, should be equal to at most one average
|
|
|
049c96 |
packet. Should be at least as high as the highest cburst of all children.
|
|
|
049c96 |
|
|
|
049c96 |
.SH NOTES
|
|
|
049c96 |
-Due to Unix timing constraints, the maximum ceil rate is not infinite and may in fact be quite low. On Intel,
|
|
|
049c96 |
+Due to Unix timing constraints, the maximum ceil rate is not infinite and may in fact be quite low. On Intel,
|
|
|
049c96 |
there are 100 timer events per second, the maximum rate is that rate at which 'burst' bytes are sent each timer tick.
|
|
|
049c96 |
-From this, the minimum burst size for a specified rate can be calculated. For i386, a 10mbit rate requires a 12 kilobyte
|
|
|
049c96 |
+From this, the minimum burst size for a specified rate can be calculated. For i386, a 10mbit rate requires a 12 kilobyte
|
|
|
049c96 |
burst as 100*12kb*8 equals 10mbit.
|
|
|
049c96 |
|
|
|
049c96 |
.SH SEE ALSO
|
|
|
049c96 |
@@ -146,5 +146,3 @@ burst as 100*12kb*8 equals 10mbit.
|
|
|
049c96 |
HTB website: http://luxik.cdi.cz/~devik/qos/htb/
|
|
|
049c96 |
.SH AUTHOR
|
|
|
049c96 |
Martin Devera <devik@cdi.cz>. This manpage maintained by bert hubert <ahu@ds9a.nl>
|
|
|
049c96 |
-
|
|
|
049c96 |
-
|
|
|
049c96 |
diff --git a/man/man8/tc-netem.8 b/man/man8/tc-netem.8
|
|
|
049c96 |
index 53c4de9..b31384f 100644
|
|
|
049c96 |
--- a/man/man8/tc-netem.8
|
|
|
049c96 |
+++ b/man/man8/tc-netem.8
|
|
|
049c96 |
@@ -2,9 +2,9 @@
|
|
|
049c96 |
.SH NAME
|
|
|
049c96 |
NetEm \- Network Emulator
|
|
|
049c96 |
.SH SYNOPSIS
|
|
|
049c96 |
-.B "tc qdisc ... dev"
|
|
|
049c96 |
+.B "tc qdisc ... dev"
|
|
|
049c96 |
.IR DEVICE " ] "
|
|
|
049c96 |
-.BR "add netem"
|
|
|
049c96 |
+.BR "add netem"
|
|
|
049c96 |
.I OPTIONS
|
|
|
049c96 |
|
|
|
049c96 |
.IR OPTIONS " := [ " LIMIT " ] [ " DELAY " ] [ " LOSS \
|
|
|
049c96 |
@@ -15,15 +15,15 @@ NetEm \- Network Emulator
|
|
|
049c96 |
.I packets
|
|
|
049c96 |
|
|
|
049c96 |
.IR DELAY " := "
|
|
|
049c96 |
-.BI delay
|
|
|
049c96 |
+.BI delay
|
|
|
049c96 |
.IR TIME " [ " JITTER " [ " CORRELATION " ]]]"
|
|
|
049c96 |
.br
|
|
|
049c96 |
- [
|
|
|
049c96 |
+ [
|
|
|
049c96 |
.BR distribution " { "uniform " | " normal " | " pareto " | " paretonormal " } ]"
|
|
|
049c96 |
|
|
|
049c96 |
.IR LOSS " := "
|
|
|
049c96 |
.BR loss " { "
|
|
|
049c96 |
-.BI random
|
|
|
049c96 |
+.BI random
|
|
|
049c96 |
.IR PERCENT " [ " CORRELATION " ] |"
|
|
|
049c96 |
.br
|
|
|
049c96 |
.RB " " state
|
|
|
049c96 |
@@ -44,13 +44,13 @@ NetEm \- Network Emulator
|
|
|
049c96 |
.IR REORDERING " := "
|
|
|
049c96 |
.B reorder
|
|
|
049c96 |
.IR PERCENT " [ " CORRELATION " ] [ "
|
|
|
049c96 |
-.B gap
|
|
|
049c96 |
+.B gap
|
|
|
049c96 |
.IR DISTANCE " ]"
|
|
|
049c96 |
|
|
|
049c96 |
.IR RATE " := "
|
|
|
049c96 |
.B rate
|
|
|
049c96 |
.IR RATE " [ " PACKETOVERHEAD " [ " CELLSIZE " [ " CELLOVERHEAD " ]]]]"
|
|
|
049c96 |
-
|
|
|
049c96 |
+
|
|
|
049c96 |
|
|
|
049c96 |
.SH DESCRIPTION
|
|
|
049c96 |
NetEm is an enhancement of the Linux traffic control facilities
|
|
|
049c96 |
@@ -139,11 +139,11 @@ in this second example 25% of packets are sent immediately (with correlation of
|
|
|
049c96 |
50%) while the others are delayed by 10 ms.
|
|
|
049c96 |
|
|
|
049c96 |
.SS rate
|
|
|
049c96 |
-delay packets based on packet size and is a replacement for
|
|
|
049c96 |
+delay packets based on packet size and is a replacement for
|
|
|
049c96 |
.IR TBF .
|
|
|
049c96 |
Rate can be
|
|
|
049c96 |
-specified in common units (e.g. 100kbit). Optional
|
|
|
049c96 |
-.I PACKETOVERHEAD
|
|
|
049c96 |
+specified in common units (e.g. 100kbit). Optional
|
|
|
049c96 |
+.I PACKETOVERHEAD
|
|
|
049c96 |
(in bytes) specify an per packet overhead and can be negative. A positive value can be
|
|
|
049c96 |
used to simulate additional link layer headers. A negative value can be used to
|
|
|
049c96 |
artificial strip the Ethernet header (e.g. -14) and/or simulate a link layer
|
|
|
049c96 |
@@ -152,7 +152,7 @@ the cellsize. Cellsize can be used to simulate link layer schemes. ATM for
|
|
|
049c96 |
example has an payload cellsize of 48 bytes and 5 byte per cell header. If a
|
|
|
049c96 |
packet is 50 byte then ATM must use two cells: 2 * 48 bytes payload including 2
|
|
|
049c96 |
* 5 byte header, thus consume 106 byte on the wire. The last optional value
|
|
|
049c96 |
-.I CELLOVERHEAD
|
|
|
049c96 |
+.I CELLOVERHEAD
|
|
|
049c96 |
can be used to specify per cell overhead - for our ATM example 5.
|
|
|
049c96 |
.I CELLOVERHEAD
|
|
|
049c96 |
can be negative, but use negative values with caution.
|
|
|
049c96 |
diff --git a/man/man8/tc-pfifo_fast.8 b/man/man8/tc-pfifo_fast.8
|
|
|
049c96 |
index 43ab166..baf34b1 100644
|
|
|
049c96 |
--- a/man/man8/tc-pfifo_fast.8
|
|
|
049c96 |
+++ b/man/man8/tc-pfifo_fast.8
|
|
|
049c96 |
@@ -13,14 +13,14 @@ is detached.
|
|
|
049c96 |
In this sense this qdisc is magic, and unlike other qdiscs.
|
|
|
049c96 |
|
|
|
049c96 |
.SH ALGORITHM
|
|
|
049c96 |
-The algorithm is very similar to that of the classful
|
|
|
049c96 |
+The algorithm is very similar to that of the classful
|
|
|
049c96 |
.BR tc-prio (8)
|
|
|
049c96 |
-qdisc.
|
|
|
049c96 |
+qdisc.
|
|
|
049c96 |
.B pfifo_fast
|
|
|
049c96 |
is like three
|
|
|
049c96 |
.BR tc-pfifo (8)
|
|
|
049c96 |
queues side by side, where packets can be enqueued in any of the three bands
|
|
|
049c96 |
-based on their Type of Service bits or assigned priority.
|
|
|
049c96 |
+based on their Type of Service bits or assigned priority.
|
|
|
049c96 |
|
|
|
049c96 |
Not all three bands are dequeued simultaneously - as long as lower bands
|
|
|
049c96 |
have traffic, higher bands are never dequeued. This can be used to
|
|
|
049c96 |
@@ -28,7 +28,7 @@ prioritize interactive traffic or penalize 'lowest cost' traffic.
|
|
|
049c96 |
|
|
|
049c96 |
Each band can be txqueuelen packets long, as configured with
|
|
|
049c96 |
.BR ifconfig (8)
|
|
|
049c96 |
-or
|
|
|
049c96 |
+or
|
|
|
049c96 |
.BR ip (8).
|
|
|
049c96 |
Additional packets coming in are not enqueued but are instead dropped.
|
|
|
049c96 |
|
|
|
049c96 |
@@ -36,7 +36,7 @@ See
|
|
|
049c96 |
.BR tc-prio (8)
|
|
|
049c96 |
for complete details on how TOS bits are translated into bands.
|
|
|
049c96 |
.SH PARAMETERS
|
|
|
049c96 |
-.TP
|
|
|
049c96 |
+.TP
|
|
|
049c96 |
txqueuelen
|
|
|
049c96 |
The length of the three bands depends on the interface txqueuelen, as
|
|
|
049c96 |
specified with
|
|
|
049c96 |
@@ -46,7 +46,7 @@ or
|
|
|
049c96 |
|
|
|
049c96 |
.SH BUGS
|
|
|
049c96 |
Does not maintain statistics and does not show up in tc qdisc ls. This is because
|
|
|
049c96 |
-it is the automatic default in the absence of a configured qdisc.
|
|
|
049c96 |
+it is the automatic default in the absence of a configured qdisc.
|
|
|
049c96 |
|
|
|
049c96 |
.SH SEE ALSO
|
|
|
049c96 |
.BR tc (8)
|
|
|
049c96 |
@@ -55,5 +55,3 @@ it is the automatic default in the absence of a configured qdisc.
|
|
|
049c96 |
Alexey N. Kuznetsov, <kuznet@ms2.inr.ac.ru>
|
|
|
049c96 |
|
|
|
049c96 |
This manpage maintained by bert hubert <ahu@ds9a.nl>
|
|
|
049c96 |
-
|
|
|
049c96 |
-
|
|
|
049c96 |
diff --git a/man/man8/tc-prio.8 b/man/man8/tc-prio.8
|
|
|
049c96 |
index 8c8cb54..0b4ba8b 100644
|
|
|
049c96 |
--- a/man/man8/tc-prio.8
|
|
|
049c96 |
+++ b/man/man8/tc-prio.8
|
|
|
049c96 |
@@ -5,21 +5,21 @@ PRIO \- Priority qdisc
|
|
|
049c96 |
.B tc qdisc ... dev
|
|
|
049c96 |
dev
|
|
|
049c96 |
.B ( parent
|
|
|
049c96 |
-classid
|
|
|
049c96 |
-.B | root) [ handle
|
|
|
049c96 |
-major:
|
|
|
049c96 |
-.B ] prio [ bands
|
|
|
049c96 |
+classid
|
|
|
049c96 |
+.B | root) [ handle
|
|
|
049c96 |
+major:
|
|
|
049c96 |
+.B ] prio [ bands
|
|
|
049c96 |
bands
|
|
|
049c96 |
.B ] [ priomap
|
|
|
049c96 |
band band band...
|
|
|
049c96 |
-.B ] [ estimator
|
|
|
049c96 |
+.B ] [ estimator
|
|
|
049c96 |
interval timeconstant
|
|
|
049c96 |
.B ]
|
|
|
049c96 |
|
|
|
049c96 |
.SH DESCRIPTION
|
|
|
049c96 |
The PRIO qdisc is a simple classful queueing discipline that contains
|
|
|
049c96 |
an arbitrary number of classes of differing priority. The classes are
|
|
|
049c96 |
-dequeued in numerical descending order of priority. PRIO is a scheduler
|
|
|
049c96 |
+dequeued in numerical descending order of priority. PRIO is a scheduler
|
|
|
049c96 |
and never delays packets - it is a work-conserving qdisc, though the qdiscs
|
|
|
049c96 |
contained in the classes may not be.
|
|
|
049c96 |
|
|
|
049c96 |
@@ -51,22 +51,22 @@ From userspace
|
|
|
049c96 |
A process with sufficient privileges can encode the destination class
|
|
|
049c96 |
directly with SO_PRIORITY, see
|
|
|
049c96 |
.BR socket(7).
|
|
|
049c96 |
-.TP
|
|
|
049c96 |
+.TP
|
|
|
049c96 |
with a tc filter
|
|
|
049c96 |
A tc filter attached to the root qdisc can point traffic directly to a class
|
|
|
049c96 |
-.TP
|
|
|
049c96 |
+.TP
|
|
|
049c96 |
with the priomap
|
|
|
049c96 |
Based on the packet priority, which in turn is derived from the Type of
|
|
|
049c96 |
Service assigned to the packet.
|
|
|
049c96 |
.P
|
|
|
049c96 |
-Only the priomap is specific to this qdisc.
|
|
|
049c96 |
+Only the priomap is specific to this qdisc.
|
|
|
049c96 |
.SH QDISC PARAMETERS
|
|
|
049c96 |
.TP
|
|
|
049c96 |
bands
|
|
|
049c96 |
Number of bands. If changed from the default of 3,
|
|
|
049c96 |
.B priomap
|
|
|
049c96 |
must be updated as well.
|
|
|
049c96 |
-.TP
|
|
|
049c96 |
+.TP
|
|
|
049c96 |
priomap
|
|
|
049c96 |
The priomap maps the priority of
|
|
|
049c96 |
a packet to a class. The priority can either be set directly from userspace,
|
|
|
049c96 |
@@ -126,7 +126,7 @@ TOS Bits Means Linux Priority Band
|
|
|
049c96 |
The second column contains the value of the relevant
|
|
|
049c96 |
four TOS bits, followed by their translated meaning. For example, 15 stands
|
|
|
049c96 |
for a packet wanting Minimal Monetary Cost, Maximum Reliability, Maximum
|
|
|
049c96 |
-Throughput AND Minimum Delay.
|
|
|
049c96 |
+Throughput AND Minimum Delay.
|
|
|
049c96 |
|
|
|
049c96 |
The fourth column lists the way the Linux kernel interprets the TOS bits, by
|
|
|
049c96 |
showing to which Priority they are mapped.
|
|
|
049c96 |
@@ -151,7 +151,7 @@ FTP
|
|
|
049c96 |
|
|
|
049c96 |
TFTP 1000 (minimize delay)
|
|
|
049c96 |
|
|
|
049c96 |
-SMTP
|
|
|
049c96 |
+SMTP
|
|
|
049c96 |
Command phase 1000 (minimize delay)
|
|
|
049c96 |
DATA phase 0100 (maximize throughput)
|
|
|
049c96 |
|
|
|
049c96 |
@@ -176,12 +176,10 @@ further qdisc.
|
|
|
049c96 |
|
|
|
049c96 |
.SH BUGS
|
|
|
049c96 |
Large amounts of traffic in the lower bands can cause starvation of higher
|
|
|
049c96 |
-bands. Can be prevented by attaching a shaper (for example,
|
|
|
049c96 |
+bands. Can be prevented by attaching a shaper (for example,
|
|
|
049c96 |
.BR tc-tbf(8)
|
|
|
049c96 |
to these bands to make sure they cannot dominate the link.
|
|
|
049c96 |
|
|
|
049c96 |
.SH AUTHORS
|
|
|
049c96 |
Alexey N. Kuznetsov, <kuznet@ms2.inr.ac.ru>, J Hadi Salim
|
|
|
049c96 |
<hadi@cyberus.ca>. This manpage maintained by bert hubert <ahu@ds9a.nl>
|
|
|
049c96 |
-
|
|
|
049c96 |
-
|
|
|
049c96 |
diff --git a/man/man8/tc-red.8 b/man/man8/tc-red.8
|
|
|
049c96 |
index d001c49..dd1ab74 100644
|
|
|
049c96 |
--- a/man/man8/tc-red.8
|
|
|
049c96 |
+++ b/man/man8/tc-red.8
|
|
|
049c96 |
@@ -1,17 +1,17 @@
|
|
|
049c96 |
.TH RED 8 "13 December 2001" "iproute2" "Linux"
|
|
|
049c96 |
.SH NAME
|
|
|
049c96 |
-red \- Random Early Detection
|
|
|
049c96 |
+red \- Random Early Detection
|
|
|
049c96 |
.SH SYNOPSIS
|
|
|
049c96 |
.B tc qdisc ... red
|
|
|
049c96 |
-.B limit
|
|
|
049c96 |
+.B limit
|
|
|
049c96 |
+bytes
|
|
|
049c96 |
+.B [ min
|
|
|
049c96 |
+bytes
|
|
|
049c96 |
+.B ] [ max
|
|
|
049c96 |
bytes
|
|
|
049c96 |
-.B [ min
|
|
|
049c96 |
-bytes
|
|
|
049c96 |
-.B ] [ max
|
|
|
049c96 |
-bytes
|
|
|
049c96 |
.B ] avpkt
|
|
|
049c96 |
bytes
|
|
|
049c96 |
-.B [ burst
|
|
|
049c96 |
+.B [ burst
|
|
|
049c96 |
packets
|
|
|
049c96 |
.B ] [ ecn ] [ harddrop] [ bandwidth
|
|
|
049c96 |
rate
|
|
|
049c96 |
@@ -46,51 +46,51 @@ The average queue size is used for determining the marking
|
|
|
049c96 |
probability. This is calculated using an Exponential Weighted Moving
|
|
|
049c96 |
Average, which can be more or less sensitive to bursts.
|
|
|
049c96 |
|
|
|
049c96 |
-When the average queue size is below
|
|
|
049c96 |
+When the average queue size is below
|
|
|
049c96 |
.B min
|
|
|
049c96 |
-bytes, no packet will ever be marked. When it exceeds
|
|
|
049c96 |
-.B min,
|
|
|
049c96 |
+bytes, no packet will ever be marked. When it exceeds
|
|
|
049c96 |
+.B min,
|
|
|
049c96 |
the probability of doing so climbs linearly up
|
|
|
049c96 |
-to
|
|
|
049c96 |
-.B probability,
|
|
|
049c96 |
+to
|
|
|
049c96 |
+.B probability,
|
|
|
049c96 |
until the average queue size hits
|
|
|
049c96 |
.B max
|
|
|
049c96 |
-bytes. Because
|
|
|
049c96 |
-.B probability
|
|
|
049c96 |
+bytes. Because
|
|
|
049c96 |
+.B probability
|
|
|
049c96 |
is normally not set to 100%, the queue size might
|
|
|
049c96 |
-conceivably rise above
|
|
|
049c96 |
+conceivably rise above
|
|
|
049c96 |
.B max
|
|
|
049c96 |
-bytes, so the
|
|
|
049c96 |
+bytes, so the
|
|
|
049c96 |
.B limit
|
|
|
049c96 |
parameter is provided to set a hard maximum for the size of the queue.
|
|
|
049c96 |
|
|
|
049c96 |
.SH PARAMETERS
|
|
|
049c96 |
-.TP
|
|
|
049c96 |
+.TP
|
|
|
049c96 |
min
|
|
|
049c96 |
Average queue size at which marking becomes a possibility. Defaults to
|
|
|
049c96 |
.B max
|
|
|
049c96 |
/3
|
|
|
049c96 |
|
|
|
049c96 |
-.TP
|
|
|
049c96 |
+.TP
|
|
|
049c96 |
max
|
|
|
049c96 |
At this average queue size, the marking probability is maximal. Should be at
|
|
|
049c96 |
least twice
|
|
|
049c96 |
.B min
|
|
|
049c96 |
-to prevent synchronous retransmits, higher for low
|
|
|
049c96 |
+to prevent synchronous retransmits, higher for low
|
|
|
049c96 |
.B min.
|
|
|
049c96 |
-Default to
|
|
|
049c96 |
+Default to
|
|
|
049c96 |
.B limit
|
|
|
049c96 |
/4
|
|
|
049c96 |
-.TP
|
|
|
049c96 |
+.TP
|
|
|
049c96 |
probability
|
|
|
049c96 |
Maximum probability for marking, specified as a floating point
|
|
|
049c96 |
number from 0.0 to 1.0. Suggested values are 0.01 or 0.02 (1 or 2%,
|
|
|
049c96 |
respectively). Default : 0.02
|
|
|
049c96 |
-.TP
|
|
|
049c96 |
+.TP
|
|
|
049c96 |
limit
|
|
|
049c96 |
Hard limit on the real (not average) queue size in bytes. Further packets
|
|
|
049c96 |
are dropped. Should be set higher than max+burst. It is advised to set this
|
|
|
049c96 |
-a few times higher than
|
|
|
049c96 |
+a few times higher than
|
|
|
049c96 |
.B max.
|
|
|
049c96 |
.TP
|
|
|
049c96 |
burst
|
|
|
049c96 |
@@ -98,7 +98,7 @@ Used for determining how fast the average queue size is influenced by the
|
|
|
049c96 |
real queue size. Larger values make the calculation more sluggish, allowing
|
|
|
049c96 |
longer bursts of traffic before marking starts. Real life experiments
|
|
|
049c96 |
support the following guideline: (min+min+max)/(3*avpkt).
|
|
|
049c96 |
-.TP
|
|
|
049c96 |
+.TP
|
|
|
049c96 |
avpkt
|
|
|
049c96 |
Specified in bytes. Used with burst to determine the time constant for
|
|
|
049c96 |
average queue size calculations. 1000 is a good value.
|
|
|
049c96 |
@@ -126,15 +126,15 @@ bytes, this parameter forces a drop instead of ecn marking.
|
|
|
049c96 |
adaptive
|
|
|
049c96 |
(Added in linux-3.3) Sets RED in adaptive mode as described in http://icir.org/floyd/papers/adaptiveRed.pdf
|
|
|
049c96 |
.nf
|
|
|
049c96 |
-Goal of Adaptive RED is to make 'probability' dynamic value between 1% and 50% to reach the target average queue :
|
|
|
049c96 |
+Goal of Adaptive RED is to make 'probability' dynamic value between 1% and 50% to reach the target average queue :
|
|
|
049c96 |
.B (max - min) / 2
|
|
|
049c96 |
.fi
|
|
|
049c96 |
|
|
|
049c96 |
.SH EXAMPLE
|
|
|
049c96 |
|
|
|
049c96 |
.P
|
|
|
049c96 |
-# tc qdisc add dev eth0 parent 1:1 handle 10: red
|
|
|
049c96 |
- limit 400000 min 30000 max 90000 avpkt 1000
|
|
|
049c96 |
+# tc qdisc add dev eth0 parent 1:1 handle 10: red
|
|
|
049c96 |
+ limit 400000 min 30000 max 90000 avpkt 1000
|
|
|
049c96 |
burst 55 ecn adaptive bandwidth 10Mbit
|
|
|
049c96 |
|
|
|
049c96 |
.SH SEE ALSO
|
|
|
049c96 |
@@ -142,11 +142,11 @@ Goal of Adaptive RED is to make 'probability' dynamic value between 1% and 50% t
|
|
|
049c96 |
.BR tc-choke (8)
|
|
|
049c96 |
|
|
|
049c96 |
.SH SOURCES
|
|
|
049c96 |
-.TP
|
|
|
049c96 |
+.TP
|
|
|
049c96 |
o
|
|
|
049c96 |
Floyd, S., and Jacobson, V., Random Early Detection gateways for
|
|
|
049c96 |
Congestion Avoidance. http://www.aciri.org/floyd/papers/red/red.html
|
|
|
049c96 |
-.TP
|
|
|
049c96 |
+.TP
|
|
|
049c96 |
o
|
|
|
049c96 |
Some changes to the algorithm by Alexey N. Kuznetsov.
|
|
|
049c96 |
.TP
|
|
|
049c96 |
@@ -156,7 +156,5 @@ Adaptive RED : http://icir.org/floyd/papers/adaptiveRed.pdf
|
|
|
049c96 |
.SH AUTHORS
|
|
|
049c96 |
Alexey N. Kuznetsov, <kuznet@ms2.inr.ac.ru>, Alexey Makarenko
|
|
|
049c96 |
<makar@phoenix.kharkov.ua>, J Hadi Salim <hadi@nortelnetworks.com>,
|
|
|
049c96 |
-Eric Dumazet <eric.dumazet@gmail.com>.
|
|
|
049c96 |
+Eric Dumazet <eric.dumazet@gmail.com>.
|
|
|
049c96 |
This manpage maintained by bert hubert <ahu@ds9a.nl>
|
|
|
049c96 |
-
|
|
|
049c96 |
-
|
|
|
049c96 |
diff --git a/man/man8/tc-sfq.8 b/man/man8/tc-sfq.8
|
|
|
049c96 |
index 9afb5b2..ec4d8b8 100644
|
|
|
049c96 |
--- a/man/man8/tc-sfq.8
|
|
|
049c96 |
+++ b/man/man8/tc-sfq.8
|
|
|
049c96 |
@@ -33,11 +33,11 @@ P
|
|
|
049c96 |
.SH DESCRIPTION
|
|
|
049c96 |
|
|
|
049c96 |
Stochastic Fairness Queueing is a classless queueing discipline available for
|
|
|
049c96 |
-traffic control with the
|
|
|
049c96 |
+traffic control with the
|
|
|
049c96 |
.BR tc (8)
|
|
|
049c96 |
command.
|
|
|
049c96 |
|
|
|
049c96 |
-SFQ does not shape traffic but only schedules the transmission of packets, based on 'flows'.
|
|
|
049c96 |
+SFQ does not shape traffic but only schedules the transmission of packets, based on 'flows'.
|
|
|
049c96 |
The goal is to ensure fairness so that each flow is able to send data in turn, thus preventing
|
|
|
049c96 |
any single flow from drowning out the rest.
|
|
|
049c96 |
|
|
|
049c96 |
@@ -62,13 +62,13 @@ Destination address
|
|
|
049c96 |
(iii)
|
|
|
049c96 |
Source and Destination port
|
|
|
049c96 |
.P
|
|
|
049c96 |
-If these are available. SFQ knows about ipv4 and ipv6 and also UDP, TCP and ESP.
|
|
|
049c96 |
-Packets with other protocols are hashed based on the 32bits representation of their
|
|
|
049c96 |
+If these are available. SFQ knows about ipv4 and ipv6 and also UDP, TCP and ESP.
|
|
|
049c96 |
+Packets with other protocols are hashed based on the 32bits representation of their
|
|
|
049c96 |
destination and source. A flow corresponds mostly to a TCP/IP connection.
|
|
|
049c96 |
|
|
|
049c96 |
Each of these buckets should represent a unique flow. Because multiple flows may
|
|
|
049c96 |
-get hashed to the same bucket, sfqs internal hashing algorithm may be perturbed at configurable
|
|
|
049c96 |
-intervals so that the unfairness lasts only for a short while. Perturbation may
|
|
|
049c96 |
+get hashed to the same bucket, sfqs internal hashing algorithm may be perturbed at configurable
|
|
|
049c96 |
+intervals so that the unfairness lasts only for a short while. Perturbation may
|
|
|
049c96 |
however cause some inadvertent packet reordering to occur. After linux-3.3, there is
|
|
|
049c96 |
no packet reordering problem, but possible packet drops if rehashing hits one limit
|
|
|
049c96 |
(number of flows or packets per flow)
|
|
|
049c96 |
@@ -88,7 +88,7 @@ divisor
|
|
|
049c96 |
Can be used to set a different hash table size, available from kernel 2.6.39 onwards.
|
|
|
049c96 |
The specified divisor must be a power of two and cannot be larger than 65536.
|
|
|
049c96 |
Default value: 1024.
|
|
|
049c96 |
-.TP
|
|
|
049c96 |
+.TP
|
|
|
049c96 |
limit
|
|
|
049c96 |
Upper limit of the SFQ. Can be used to reduce the default length of 127 packets.
|
|
|
049c96 |
After linux-3.3, it can be raised.
|
|
|
049c96 |
@@ -97,12 +97,12 @@ depth
|
|
|
049c96 |
Limit of packets per flow (after linux-3.3). Default to 127 and can be lowered.
|
|
|
049c96 |
.TP
|
|
|
049c96 |
perturb
|
|
|
049c96 |
-Interval in seconds for queue algorithm perturbation. Defaults to 0, which means that
|
|
|
049c96 |
+Interval in seconds for queue algorithm perturbation. Defaults to 0, which means that
|
|
|
049c96 |
no perturbation occurs. Do not set too low for each perturbation may cause some packet
|
|
|
049c96 |
reordering or losses. Advised value: 60
|
|
|
049c96 |
This value has no effect when external flow classification is used.
|
|
|
049c96 |
Its better to increase divisor value to lower risk of hash collisions.
|
|
|
049c96 |
-.TP
|
|
|
049c96 |
+.TP
|
|
|
049c96 |
quantum
|
|
|
049c96 |
Amount of bytes a flow is allowed to dequeue during a round of the round robin process.
|
|
|
049c96 |
Defaults to the MTU of the interface which is also the advised value and the minimum value.
|
|
|
049c96 |
@@ -142,7 +142,7 @@ Specified in bytes. Used with burst to determine the time constant for average q
|
|
|
049c96 |
burst
|
|
|
049c96 |
Used for determining how fast the average queue size is influenced by the real queue size.
|
|
|
049c96 |
.nf
|
|
|
049c96 |
-Default value is :
|
|
|
049c96 |
+Default value is :
|
|
|
049c96 |
.B (2 * min + max) / (3 * avpkt)
|
|
|
049c96 |
.fi
|
|
|
049c96 |
.TP
|
|
|
049c96 |
@@ -166,16 +166,16 @@ To attach to device ppp0:
|
|
|
049c96 |
.P
|
|
|
049c96 |
# tc qdisc add dev ppp0 root sfq
|
|
|
049c96 |
.P
|
|
|
049c96 |
-Please note that SFQ, like all non-shaping (work-conserving) qdiscs, is only useful
|
|
|
049c96 |
+Please note that SFQ, like all non-shaping (work-conserving) qdiscs, is only useful
|
|
|
049c96 |
if it owns the queue.
|
|
|
049c96 |
-This is the case when the link speed equals the actually available bandwidth. This holds
|
|
|
049c96 |
-for regular phone modems, ISDN connections and direct non-switched ethernet links.
|
|
|
049c96 |
+This is the case when the link speed equals the actually available bandwidth. This holds
|
|
|
049c96 |
+for regular phone modems, ISDN connections and direct non-switched ethernet links.
|
|
|
049c96 |
.P
|
|
|
049c96 |
-Most often, cable modems and DSL devices do not fall into this category. The same holds
|
|
|
049c96 |
-for when connected to a switch and trying to send data to a congested segment also
|
|
|
049c96 |
+Most often, cable modems and DSL devices do not fall into this category. The same holds
|
|
|
049c96 |
+for when connected to a switch and trying to send data to a congested segment also
|
|
|
049c96 |
connected to the switch.
|
|
|
049c96 |
.P
|
|
|
049c96 |
-In this case, the effective queue does not reside within Linux and is therefore not
|
|
|
049c96 |
+In this case, the effective queue does not reside within Linux and is therefore not
|
|
|
049c96 |
available for scheduling.
|
|
|
049c96 |
.P
|
|
|
049c96 |
Embed SFQ in a classful qdisc to make sure it owns the queue.
|
|
|
049c96 |
@@ -191,11 +191,11 @@ changed the sfq default of 1024, use the same value for the flow hash filter, to
|
|
|
049c96 |
.P
|
|
|
049c96 |
Example of sfq with optional RED mode :
|
|
|
049c96 |
.P
|
|
|
049c96 |
-# tc qdisc add dev eth0 parent 1:1 handle 10: sfq limit 3000 flows 512 divisor 16384
|
|
|
049c96 |
+# tc qdisc add dev eth0 parent 1:1 handle 10: sfq limit 3000 flows 512 divisor 16384
|
|
|
049c96 |
redflowlimit 100000 min 8000 max 60000 probability 0.20 ecn headdrop
|
|
|
049c96 |
|
|
|
049c96 |
.SH SOURCE
|
|
|
049c96 |
-.TP
|
|
|
049c96 |
+.TP
|
|
|
049c96 |
o
|
|
|
049c96 |
Paul E. McKenney "Stochastic Fairness Queuing",
|
|
|
049c96 |
IEEE INFOCOMM'90 Proceedings, San Francisco, 1990.
|
|
|
049c96 |
@@ -205,7 +205,7 @@ o
|
|
|
049c96 |
Paul E. McKenney "Stochastic Fairness Queuing",
|
|
|
049c96 |
"Interworking: Research and Experience", v.2, 1991, p.113-131.
|
|
|
049c96 |
|
|
|
049c96 |
-.TP
|
|
|
049c96 |
+.TP
|
|
|
049c96 |
o
|
|
|
049c96 |
See also:
|
|
|
049c96 |
M. Shreedhar and George Varghese "Efficient Fair
|
|
|
049c96 |
@@ -220,5 +220,3 @@ Alexey N. Kuznetsov, <kuznet@ms2.inr.ac.ru>,
|
|
|
049c96 |
Eric Dumazet <eric.dumazet@gmail.com>.
|
|
|
049c96 |
.P
|
|
|
049c96 |
This manpage maintained by bert hubert <ahu@ds9a.nl>
|
|
|
049c96 |
-
|
|
|
049c96 |
-
|
|
|
049c96 |
diff --git a/man/man8/tc-tbf.8 b/man/man8/tc-tbf.8
|
|
|
049c96 |
index fc2c837..d721b5d 100644
|
|
|
049c96 |
--- a/man/man8/tc-tbf.8
|
|
|
049c96 |
+++ b/man/man8/tc-tbf.8
|
|
|
049c96 |
@@ -6,11 +6,11 @@ tbf \- Token Bucket Filter
|
|
|
049c96 |
rate
|
|
|
049c96 |
.B burst
|
|
|
049c96 |
bytes/cell
|
|
|
049c96 |
-.B ( latency
|
|
|
049c96 |
-ms
|
|
|
049c96 |
+.B ( latency
|
|
|
049c96 |
+ms
|
|
|
049c96 |
.B | limit
|
|
|
049c96 |
bytes
|
|
|
049c96 |
-.B ) [ mpu
|
|
|
049c96 |
+.B ) [ mpu
|
|
|
049c96 |
bytes
|
|
|
049c96 |
.B [ peakrate
|
|
|
049c96 |
rate
|
|
|
049c96 |
@@ -22,46 +22,46 @@ burst is also known as buffer and maxburst. mtu is also known as minburst.
|
|
|
049c96 |
.SH DESCRIPTION
|
|
|
049c96 |
|
|
|
049c96 |
The Token Bucket Filter is a classful queueing discipline available for
|
|
|
049c96 |
-traffic control with the
|
|
|
049c96 |
+traffic control with the
|
|
|
049c96 |
.BR tc (8)
|
|
|
049c96 |
command.
|
|
|
049c96 |
|
|
|
049c96 |
TBF is a pure shaper and never schedules traffic. It is non-work-conserving and may throttle
|
|
|
049c96 |
-itself, although packets are available, to ensure that the configured rate is not exceeded.
|
|
|
049c96 |
-It is able to shape up to 1mbit/s of normal traffic with ideal minimal burstiness,
|
|
|
049c96 |
+itself, although packets are available, to ensure that the configured rate is not exceeded.
|
|
|
049c96 |
+It is able to shape up to 1mbit/s of normal traffic with ideal minimal burstiness,
|
|
|
049c96 |
sending out data exactly at the configured rates.
|
|
|
049c96 |
|
|
|
049c96 |
Much higher rates are possible but at the cost of losing the minimal burstiness. In that
|
|
|
049c96 |
-case, data is on average dequeued at the configured rate but may be sent much faster at millisecond
|
|
|
049c96 |
+case, data is on average dequeued at the configured rate but may be sent much faster at millisecond
|
|
|
049c96 |
timescales. Because of further queues living in network adaptors, this is often not a problem.
|
|
|
049c96 |
|
|
|
049c96 |
.SH ALGORITHM
|
|
|
049c96 |
-As the name implies, traffic is filtered based on the expenditure of
|
|
|
049c96 |
+As the name implies, traffic is filtered based on the expenditure of
|
|
|
049c96 |
.B tokens.
|
|
|
049c96 |
Tokens roughly correspond to bytes, with the additional constraint
|
|
|
049c96 |
that each packet consumes some tokens, no matter how small it is. This
|
|
|
049c96 |
reflects the fact that even a zero-sized packet occupies the link for
|
|
|
049c96 |
some time.
|
|
|
049c96 |
|
|
|
049c96 |
-On creation, the TBF is stocked with tokens which correspond to the amount of traffic that can be burst
|
|
|
049c96 |
+On creation, the TBF is stocked with tokens which correspond to the amount of traffic that can be burst
|
|
|
049c96 |
in one go. Tokens arrive at a steady rate, until the bucket is full.
|
|
|
049c96 |
|
|
|
049c96 |
-If no tokens are available, packets are queued, up to a configured limit. The TBF now
|
|
|
049c96 |
+If no tokens are available, packets are queued, up to a configured limit. The TBF now
|
|
|
049c96 |
calculates the token deficit, and throttles until the first packet in the queue can be sent.
|
|
|
049c96 |
|
|
|
049c96 |
-If it is not acceptable to burst out packets at maximum speed, a peakrate can be configured
|
|
|
049c96 |
+If it is not acceptable to burst out packets at maximum speed, a peakrate can be configured
|
|
|
049c96 |
to limit the speed at which the bucket empties. This peakrate is implemented as a second TBF
|
|
|
049c96 |
with a very small bucket, so that it doesn't burst.
|
|
|
049c96 |
|
|
|
049c96 |
-To achieve perfection, the second bucket may contain only a single packet, which leads to
|
|
|
049c96 |
-the earlier mentioned 1mbit/s limit.
|
|
|
049c96 |
+To achieve perfection, the second bucket may contain only a single packet, which leads to
|
|
|
049c96 |
+the earlier mentioned 1mbit/s limit.
|
|
|
049c96 |
|
|
|
049c96 |
This limit is caused by the fact that the kernel can only throttle for at minimum 1 'jiffy', which depends
|
|
|
049c96 |
-on HZ as 1/HZ. For perfect shaping, only a single packet can get sent per jiffy - for HZ=100, this means 100
|
|
|
049c96 |
+on HZ as 1/HZ. For perfect shaping, only a single packet can get sent per jiffy - for HZ=100, this means 100
|
|
|
049c96 |
packets of on average 1000 bytes each, which roughly corresponds to 1mbit/s.
|
|
|
049c96 |
|
|
|
049c96 |
.SH PARAMETERS
|
|
|
049c96 |
-See
|
|
|
049c96 |
+See
|
|
|
049c96 |
.BR tc (8)
|
|
|
049c96 |
for how to specify the units of these values.
|
|
|
049c96 |
.TP
|
|
|
049c96 |
@@ -71,30 +71,30 @@ available. You can also specify this the other way around by setting the
|
|
|
049c96 |
latency parameter, which specifies the maximum amount of time a packet can
|
|
|
049c96 |
sit in the TBF. The latter calculation takes into account the size of the
|
|
|
049c96 |
bucket, the rate and possibly the peakrate (if set). These two parameters
|
|
|
049c96 |
-are mutually exclusive.
|
|
|
049c96 |
+are mutually exclusive.
|
|
|
049c96 |
.TP
|
|
|
049c96 |
burst
|
|
|
049c96 |
Also known as buffer or maxburst.
|
|
|
049c96 |
-Size of the bucket, in bytes. This is the maximum amount of bytes that tokens can be available for instantaneously.
|
|
|
049c96 |
-In general, larger shaping rates require a larger buffer. For 10mbit/s on Intel, you need at least 10kbyte buffer
|
|
|
049c96 |
+Size of the bucket, in bytes. This is the maximum amount of bytes that tokens can be available for instantaneously.
|
|
|
049c96 |
+In general, larger shaping rates require a larger buffer. For 10mbit/s on Intel, you need at least 10kbyte buffer
|
|
|
049c96 |
if you want to reach your configured rate!
|
|
|
049c96 |
|
|
|
049c96 |
If your buffer is too small, packets may be dropped because more tokens arrive per timer tick than fit in your bucket.
|
|
|
049c96 |
The minimum buffer size can be calculated by dividing the rate by HZ.
|
|
|
049c96 |
|
|
|
049c96 |
-Token usage calculations are performed using a table which by default has a resolution of 8 packets.
|
|
|
049c96 |
-This resolution can be changed by specifying the
|
|
|
049c96 |
+Token usage calculations are performed using a table which by default has a resolution of 8 packets.
|
|
|
049c96 |
+This resolution can be changed by specifying the
|
|
|
049c96 |
.B cell
|
|
|
049c96 |
size with the burst. For example, to specify a 6000 byte buffer with a 16
|
|
|
049c96 |
byte cell size, set a burst of 6000/16. You will probably never have to set
|
|
|
049c96 |
this. Must be an integral power of 2.
|
|
|
049c96 |
.TP
|
|
|
049c96 |
mpu
|
|
|
049c96 |
-A zero-sized packet does not use zero bandwidth. For ethernet, no packet uses less than 64 bytes. The Minimum Packet Unit
|
|
|
049c96 |
+A zero-sized packet does not use zero bandwidth. For ethernet, no packet uses less than 64 bytes. The Minimum Packet Unit
|
|
|
049c96 |
determines the minimal token usage (specified in bytes) for a packet. Defaults to zero.
|
|
|
049c96 |
.TP
|
|
|
049c96 |
rate
|
|
|
049c96 |
-The speed knob. See remarks above about limits! See
|
|
|
049c96 |
+The speed knob. See remarks above about limits! See
|
|
|
049c96 |
.BR tc (8)
|
|
|
049c96 |
for units.
|
|
|
049c96 |
.PP
|
|
|
049c96 |
@@ -112,7 +112,7 @@ Specifies the size of the peakrate bucket. For perfect accuracy, should be set t
|
|
|
049c96 |
If a peakrate is needed, but some burstiness is acceptable, this size can be raised. A 3000 byte minburst
|
|
|
049c96 |
allows around 3mbit/s of peakrate, given 1000 byte packets.
|
|
|
049c96 |
|
|
|
049c96 |
-Like the regular burstsize you can also specify a
|
|
|
049c96 |
+Like the regular burstsize you can also specify a
|
|
|
049c96 |
.B cell
|
|
|
049c96 |
size.
|
|
|
049c96 |
.SH EXAMPLE & USAGE
|
|
|
049c96 |
@@ -139,5 +139,3 @@ the limit/latency is not effective anymore.
|
|
|
049c96 |
.SH AUTHOR
|
|
|
049c96 |
Alexey N. Kuznetsov, <kuznet@ms2.inr.ac.ru>. This manpage maintained by
|
|
|
049c96 |
bert hubert <ahu@ds9a.nl>
|
|
|
049c96 |
-
|
|
|
049c96 |
-
|
|
|
049c96 |
diff --git a/man/man8/tc.8 b/man/man8/tc.8
|
|
|
049c96 |
index fb4efd9..391d7c7 100644
|
|
|
049c96 |
--- a/man/man8/tc.8
|
|
|
049c96 |
+++ b/man/man8/tc.8
|
|
|
049c96 |
@@ -656,4 +656,3 @@ was written by Alexey N. Kuznetsov and added in Linux 2.2.
|
|
|
049c96 |
|
|
|
049c96 |
.SH AUTHOR
|
|
|
049c96 |
Manpage maintained by bert hubert (ahu@ds9a.nl)
|
|
|
049c96 |
-
|
|
|
049c96 |
--
|
|
|
049c96 |
1.8.3.1
|
|
|
049c96 |
|