Skip to content

Commit

Permalink
traffic-policy: Add CAKE documentation
Browse files Browse the repository at this point in the history
  • Loading branch information
MattKobayashi committed Apr 18, 2024
1 parent a5fcebd commit 99a3b2a
Showing 1 changed file with 69 additions and 0 deletions.
69 changes: 69 additions & 0 deletions docs/configuration/trafficpolicy/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -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

Check warning on line 1208 in docs/configuration/trafficpolicy/index.rst

View workflow job for this annotation

GitHub Actions / lint

Line too long: len=86
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
=========================
Expand Down Expand Up @@ -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

0 comments on commit 99a3b2a

Please sign in to comment.