summaryrefslogtreecommitdiff
path: root/docs/configuration/trafficpolicy/index.rst
diff options
context:
space:
mode:
Diffstat (limited to 'docs/configuration/trafficpolicy/index.rst')
-rw-r--r--docs/configuration/trafficpolicy/index.rst69
1 files changed, 69 insertions, 0 deletions
diff --git a/docs/configuration/trafficpolicy/index.rst b/docs/configuration/trafficpolicy/index.rst
index 93f69f80..d435267d 100644
--- a/docs/configuration/trafficpolicy/index.rst
+++ b/docs/configuration/trafficpolicy/index.rst
@@ -1145,6 +1145,74 @@ A simple example of Shaper using priorities.
set qos policy shaper MY-HTB default priority '7'
set qos policy shaper MY-HTB default queue-type 'fair-queue'
+.. _CAKE:
+
+CAKE
+------
+
+| **Queueing discipline:** Deficit mode.
+| **Applies to:** Outbound traffic.
+
+`Common Applications Kept Enhanced`_ (CAKE) is a comprehensive queue management
+system, implemented as a queue discipline (qdisc) for the Linux kernel. It is
+designed to replace and improve upon the complex hierarchy of simple qdiscs
+presently required to effectively tackle the bufferbloat problem at the network
+edge.
+
+.. cfgcmd:: set qos policy cake <text> bandwidth <value>
+
+ Set the shaper bandwidth, either as an explicit bitrate or a percentage
+ of the interface bandwidth.
+
+.. cfgcmd:: set qos policy cake <text> description
+
+ Set a description for the shaper.
+
+.. cfgcmd:: set qos policy cake <text> flow-isolation blind
+
+ Disables flow isolation, all traffic passes through a single queue.
+
+.. cfgcmd:: set qos policy cake <text> flow-isolation dst-host
+
+ Flows are defined only by destination address.
+
+.. cfgcmd:: set qos policy cake <text> flow-isolation dual-dst-host
+
+ Flows are defined by the 5-tuple. Fairness is applied first over destination
+ addresses, then over individual flows.
+
+.. cfgcmd:: set qos policy cake <text> flow-isolation dual-src-host
+
+ Flows are defined by the 5-tuple. Fairness is applied first over source
+ addresses, then over individual flows.
+
+.. cfgcmd:: set qos policy cake <text> flow-isolation flow
+
+ Flows are defined by the entire 5-tuple (source IP address, source port,
+ destination IP address, destination port, transport protocol).
+
+.. cfgcmd:: set qos policy cake <text> flow-isolation host
+
+ Flows are defined by source-destination host pairs.
+
+.. cfgcmd:: set qos policy cake <text> flow-isolation nat
+
+ Perform NAT lookup before applying flow-isolation rules.
+
+.. cfgcmd:: set qos policy cake <text> flow-isolation src-host
+
+ Flows are defined only by source address.
+
+.. cfgcmd:: set qos policy cake <text> flow-isolation triple-isolate
+
+ **(Default)** Flows are defined by the 5-tuple, fairness is applied over source and
+ destination addresses and also over individual flows.
+
+.. cfgcmd:: set qos policy cake <text> rtt
+
+ Defines the round-trip time used for active queue management (AQM) in
+ milliseconds. The default value is 100.
+
Applying a traffic policy
=========================
@@ -1218,5 +1286,6 @@ That is how it is possible to do the so-called "ingress shaping".
.. _tocken bucket: https://en.wikipedia.org/wiki/Token_bucket
.. _HFSC: https://en.wikipedia.org/wiki/Hierarchical_fair-service_curve
.. _Intermediate Functional Block: https://www.linuxfoundation.org/collaborate/workgroups/networking/ifb
+.. _Common Applications Kept Enhanced: https://www.bufferbloat.net/projects/codel/wiki/Cake/
.. start_vyoslinter