Browse Source

Add diagram and text explaining how qdiscs are set up

@taggart contributed a diagram showing how sqm-scripts sets up qdiscs and
the IFB interface. Add this to the README along with a description.

Fixes #125.

Signed-off-by: Toke Høiland-Jørgensen <toke@toke.dk>
Toke Høiland-Jørgensen 3 years ago
parent
commit
741af09fbd
3 changed files with 18 additions and 0 deletions
  1. 18 0
      README.md
  2. BIN
      qdisc-diagram.dia
  3. BIN
      qdisc-diagram.png

+ 18 - 0
README.md

@@ -6,6 +6,24 @@ This repository contains the sqm-scripts traffic shaper from the CeroWrt
 project. See:
 http://www.bufferbloat.net/projects/cerowrt/wiki/Smart_Queue_Management
 
+## How does sqm-scripts set up traffic shaping?
+
+sqm-scripts uses the Linux qdisc mechanism to configure traffic shaping and
+scheduling. Either by a combination of the HTB qdisc (for shaping) and fq_codel
+(for packet scheduling), or using the CAKE integrated scheduler to do both at
+once.
+
+Because qdiscs only see traffic as it is *leaving* an interface, for ingress
+shaping sqm-scripts sets up an IFB device. Incoming packets are redirected to
+this device where a regular qdisc can handle them. The IFB device is named for
+the egress interface it is paired with, so the IFB for 'eth0' will be called
+'ifb4eth0'.
+
+This is all illustrated on the following diagram:
+
+![qdisc diagram](qdisc-diagram.png)
+Diagram contributed by Matt Taggart (@taggart). Source in [qdisc-diagram.dia](qdisc-diagram.dia).
+
 ## Requirements
 
 To run sqm-scripts you just need a Linux machine with a kernel from the last

BIN
qdisc-diagram.dia


BIN
qdisc-diagram.png