Merge pull request #1393 from MattKobayashi/traffic-policy_cake

traffic-policy: Add CAKE documentation
This commit is contained in:
Robert Göhler 2024-04-18 14:44:57 +02:00 committed by GitHub
commit 978a0aa4ab
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

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 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