summaryrefslogtreecommitdiff
path: root/docs/ch10-qos.rst
diff options
context:
space:
mode:
authorChristian Poessinger <christian@poessinger.com>2018-10-03 10:44:26 +0200
committerChristian Poessinger <christian@poessinger.com>2018-10-03 10:44:26 +0200
commit117abf06d8fe9eac41d18effddcbce7fb0928a04 (patch)
tree2e3615460a633bc4ac2dff263b3b00af33c94db1 /docs/ch10-qos.rst
parent8c87d8f47ef80df181451dd282d3d07df33536cf (diff)
downloadvyos-documentation-117abf06d8fe9eac41d18effddcbce7fb0928a04.tar.gz
vyos-documentation-117abf06d8fe9eac41d18effddcbce7fb0928a04.zip
Add QoS chapter
Diffstat (limited to 'docs/ch10-qos.rst')
-rw-r--r--docs/ch10-qos.rst65
1 files changed, 65 insertions, 0 deletions
diff --git a/docs/ch10-qos.rst b/docs/ch10-qos.rst
new file mode 100644
index 00000000..3dba8e71
--- /dev/null
+++ b/docs/ch10-qos.rst
@@ -0,0 +1,65 @@
+QoS and Traffic Policy
+======================
+
+The traffic policy subsystem provides an interface to Linux traffic control.
+
+One common use of traffic policy is to limit bandwidth for an interface. In
+the example below we limit bandwidth for our LAN connection to 200 Mbit
+download and out WAN connection to 50 Mbit upload:
+
+.. code-block:: sh
+
+ set traffic-policy shaper WAN-OUT bandwidth '50Mbit'
+ set traffic-policy shaper WAN-OUT default bandwidth '50%'
+ set traffic-policy shaper WAN-OUT default ceiling '100%'
+ set traffic-policy shaper WAN-OUT default queue-type 'fair-queue'
+
+ set traffic-policy shaper LAN-OUT bandwidth '200Mbit'
+ set traffic-policy shaper LAN-OUT default bandwidth '50%'
+ set traffic-policy shaper LAN-OUT default ceiling '100%'
+ set traffic-policy shaper LAN-OUT default queue-type 'fair-queue'
+
+Resulting in the following configuration:
+
+.. code-block:: sh
+
+ traffic-policy {
+ shaper WAN-OUT {
+ bandwidth 50Mbit
+ default {
+ bandwidth 50%
+ ceiling 100%
+ queue-type fair-queue
+ }
+ }
+ shaper LAN-OUT {
+ bandwidth 200Mbit
+ default {
+ bandwidth 50%
+ ceiling 100%
+ queue-type fair-queue
+ }
+ }
+ }
+
+Once defined, a traffic policy can be applied to each interface using the
+interface-level `traffic-policy` directive:
+
+.. code-block:: sh
+
+ set interfaces ethernet eth0 traffic-policy out 'WAN-OUT'
+ set interfaces ethernet eth1 traffic-policy out 'LAN-OUT'
+
+Note that a traffic policy can also be defined to match specific traffic flows
+using class statements.
+
+VyOS 1.2 (Crux) also supports HFSC_:
+
+.. code-block:: sh
+
+ set traffic-policy shaper-hfsc
+
+See further information on the QoS_ page.
+
+.. _HFSC: https://en.wikipedia.org/wiki/Hierarchical_fair-service_curve
+.. _QoS: https://wiki.vyos.net/wiki/QoS