summaryrefslogtreecommitdiff
path: root/docs/configuration/trafficpolicy
diff options
context:
space:
mode:
authorMatthew Kobayashi <matthew@kobayashi.au>2024-04-18 20:50:03 +1000
committerMatthew Kobayashi <matthew@kobayashi.au>2024-04-18 20:50:03 +1000
commit99a3b2a3ac2b58615346a5c02811dc40e7247f48 (patch)
treed7bb4e5650c82155775be0a3a5a53471b533ab20 /docs/configuration/trafficpolicy
parenta5fcebd11b19577e082c344fd2532e8689719d9e (diff)
downloadvyos-documentation-99a3b2a3ac2b58615346a5c02811dc40e7247f48.tar.gz
vyos-documentation-99a3b2a3ac2b58615346a5c02811dc40e7247f48.zip
traffic-policy: Add CAKE documentation
Diffstat (limited to 'docs/configuration/trafficpolicy')
-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 3463592f..ed63b21f 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
=========================
@@ -1220,5 +1288,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