traffic-policy: Add CAKE documentation

This commit is contained in:
Matthew Kobayashi 2024-04-18 20:50:03 +10:00
parent a5fcebd11b
commit 99a3b2a3ac
No known key found for this signature in database

View File

@ -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 priority '7'
set qos policy shaper MY-HTB default queue-type 'fair-queue' 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 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 .. _tocken bucket: https://en.wikipedia.org/wiki/Token_bucket
.. _HFSC: https://en.wikipedia.org/wiki/Hierarchical_fair-service_curve .. _HFSC: https://en.wikipedia.org/wiki/Hierarchical_fair-service_curve
.. _Intermediate Functional Block: https://www.linuxfoundation.org/collaborate/workgroups/networking/ifb .. _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 .. start_vyoslinter