[Cake] [PATCH iproute2] q_cake: Add description of the tc filter override mechanism to man page

Toke Høiland-Jørgensen toke at toke.dk
Thu Aug 23 06:05:05 EDT 2018


Since CAKE now has three different settings that can be overridden by tc
filters (priority and host and flow hashes), documenting how they work is
probably a good idea.

Signed-off-by: Toke Høiland-Jørgensen <toke at toke.dk>
---
 man/man8/tc-cake.8 | 55 ++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 55 insertions(+)

diff --git a/man/man8/tc-cake.8 b/man/man8/tc-cake.8
index c1e751d6..c62e5547 100644
--- a/man/man8/tc-cake.8
+++ b/man/man8/tc-cake.8
@@ -569,6 +569,61 @@ possible latency. At link speeds higher than 10 Gbps, setting the
 no-split-gso parameter can increase the maximum achievable throughput by
 retaining the full GSO packets.
 
+.SH OVERRIDING CLASSIFICATION WITH TC FILTERS
+
+CAKE supports overriding of its internal classification of packets through the
+tc filter mechanism. Packets can be assigned to different priority tins by
+setting the
+.B priority
+field on the skb, and the flow hashing can be overridden by setting the
+.B classid
+parameter.
+
+.PP
+.B Tin override
+
+.br
+        To assign a priority tin, the major number of the priority field needs
+to match the qdisc handle of the cake instance; if it does, the minor number
+will be interpreted as the tin index. For example, to classify all ICMP packets
+as 'bulk', the following filter can be used:
+
+.br
+        # tc qdisc replace dev eth0 handle 1: root cake diffserv3
+        # tc filter add dev eth0 parent 1: protocol ip prio 1 \\
+          u32 match icmp type 0 0 action skbedit priority 1:1
+
+.PP
+.B Flow hash override
+
+.br
+        To override flow hashing, the classid can be set. CAKE will interpret
+the major number of the classid as the host hash used in host isolation mode,
+and the minor number as the flow hash used for flow-based queueing. One or both
+of those can be set, and will be used if the relevant flow isolation parameter
+is set (i.e., the major number will be ignored if CAKE is not configured in
+hosts mode, and the minor number will be ignored if CAKE is not configured in
+flows mode).
+
+.br
+This example will assign all ICMP packets to the first queue:
+
+.br
+        # tc qdisc replace dev eth0 handle 1: root cake
+        # tc filter add dev eth0 parent 1: protocol ip prio 1 \\
+          u32 match icmp type 0 0 classid 0:1
+
+.br
+If only one of the host and flow overrides is set, CAKE will compute the other
+hash from the packet as normal. Note, however, that the host isolation mode
+works by assigning a host ID to the flow queue; so if overriding both host and
+flow, the same flow cannot have more than one host assigned. In addition, it is
+not possible to assign different source and destination host IDs through the
+override mechanism; if a host ID is assigned, it will be used as both source and
+destination host.
+
+
+
 .SH EXAMPLES
 # tc qdisc delete root dev eth0
 .br
-- 
2.18.0



More information about the Cake mailing list