From: Stephen Hemminger Date: Wed, 23 Oct 2019 17:19:45 +0000 (-0700) Subject: remove out of date README X-Git-Tag: v5.4.0~20 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e15011b5e5c06d52a89aa8624b352c0666db31b6;p=thirdparty%2Fiproute2.git remove out of date README The original old README refers to stuff from the pre 2.6 era including cbz. Just kill it. Signed-off-by: Stephen Hemminger --- diff --git a/README.iproute2+tc b/README.iproute2+tc deleted file mode 100644 index e7bb48ce2..000000000 --- a/README.iproute2+tc +++ /dev/null @@ -1,123 +0,0 @@ -iproute2+tc* - -It's the first release of Linux traffic control engine. - - -NOTES. -* csz scheduler is inoperational at the moment, and probably - never will be repaired but replaced with h-pfq scheduler. -* To use "fw" classifier you will need ipfwchains patch. -* No manual available. Ask me, if you have problems (only try to guess - answer yourself at first 8)). - - -Micro-manual how to start it the first time -------------------------------------------- - -A. Attach CBQ to eth1: - -tc qdisc add dev eth1 root handle 1: cbq bandwidth 10Mbit allot 1514 cell 8 \ -avpkt 1000 mpu 64 - -B. Add root class: - -tc class add dev eth1 parent 1:0 classid 1:1 cbq bandwidth 10Mbit rate 10Mbit \ -allot 1514 cell 8 weight 1Mbit prio 8 maxburst 20 avpkt 1000 - -C. Add default interactive class: - -tc class add dev eth1 parent 1:1 classid 1:2 cbq bandwidth 10Mbit rate 1Mbit \ -allot 1514 cell 8 weight 100Kbit prio 3 maxburst 20 avpkt 1000 split 1:0 \ -defmap c0 - -D. Add default class: - -tc class add dev eth1 parent 1:1 classid 1:3 cbq bandwidth 10Mbit rate 8Mbit \ -allot 1514 cell 8 weight 800Kbit prio 7 maxburst 20 avpkt 1000 split 1:0 \ -defmap 3f - -etc. etc. etc. Well, it is enough to start 8) The rest can be guessed 8) -Look also at more elaborated example, ready to start rsvpd, -in rsvp/cbqinit.eth1. - - -Terminology and advices about setting CBQ parameters may be found in Sally Floyd -papers. - - -Pairs X:Y are class handles, X:0 are qdisc handles. -weight should be proportional to rate for leaf classes -(I repeated it ten times less, but it is not necessary) - -defmap is bitmap of logical priorities served by this class. - -E. Another qdiscs are simpler. F.e. let's join TBF on class 1:2 - -tc qdisc add dev eth1 parent 1:2 tbf rate 64Kbit buffer 5Kb/8 limit 10Kb - -F. Look at all that we created: - -tc qdisc ls dev eth1 -tc class ls dev eth1 - -G. Install "route" classifier on root of cbq and map destination from realm -1 to class 1:2 - -tc filter add dev eth1 parent 1:0 protocol ip prio 100 route to 1 classid 1:2 - -H. Assign routes to 10.11.12.0/24 to realm 1 - -ip route add 10.11.12.0/24 dev eth1 via whatever realm 1 - -etc. The same thing can be made with rules. -I still did not test ipchains, but they should work too. - - -Setup and code example of BPF classifier and action can be found under -examples/bpf/, which should explain everything for getting started. - - -Setup of rsvp and u32 classifiers is more hairy. -If you read RSVP specs, you will understand how rsvp classifier -works easily. What's about u32... That's example: - - -#! /bin/sh - -TC=/home/root/tc - -# Setup classifier root on eth1 root (it is cbq) -$TC filter add dev eth1 parent 1:0 prio 5 protocol ip u32 - -# Create hash table of 256 slots with ID 1: -$TC filter add dev eth1 parent 1:0 prio 5 handle 1: u32 divisor 256 - -# Add to 6th slot of hash table rule to select tcp/telnet to 193.233.7.75 -# direct it to class 1:4 and prescribe to fall to best effort, -# if traffic violate TBF (32kbit,5K) -$TC filter add dev eth1 parent 1:0 prio 5 u32 ht 1:6: \ - match ip dst 193.233.7.75 \ - match tcp dst 0x17 0xffff \ - flowid 1:4 \ - police rate 32kbit buffer 5kb/8 mpu 64 mtu 1514 index 1 - -# Add to 1th slot of hash table rule to select icmp to 193.233.7.75 -# direct it to class 1:4 and prescribe to fall to best effort, -# if traffic violate TBF (10kbit,5K) -$TC filter add dev eth1 parent 1:0 prio 5 u32 ht 1:: \ - sample ip protocol 1 0xff \ - match ip dst 193.233.7.75 \ - flowid 1:4 \ - police rate 10kbit buffer 5kb/8 mpu 64 mtu 1514 index 2 - -# Lookup hash table, if it is not fragmented frame -# Use protocol as hash key -$TC filter add dev eth1 parent 1:0 prio 5 handle ::1 u32 ht 800:: \ - match ip nofrag \ - offset mask 0x0F00 shift 6 \ - hashkey mask 0x00ff0000 at 8 \ - link 1: - - -Alexey Kuznetsov -kuznet@ms2.inr.ac.ru