X-Git-Url: http://git.onelab.eu/?p=iproute2.git;a=blobdiff_plain;f=examples%2Fdiffserv%2Fafcbq;fp=examples%2Fdiffserv%2Fafcbq;h=0000000000000000000000000000000000000000;hp=10d6d934486f19d357f2976b46b112d4c48ed9d7;hb=3331a68859fd71047bb1f309048960b48eab2d83;hpb=2bd4a72f2100be7ad7d9518cb1d49bb2a5b71994 diff --git a/examples/diffserv/afcbq b/examples/diffserv/afcbq deleted file mode 100644 index 10d6d93..0000000 --- a/examples/diffserv/afcbq +++ /dev/null @@ -1,105 +0,0 @@ -#!/usr/bin/perl -# -# -# AF using CBQ for a single interface eth0 -# 4 AF classes using GRED and one BE using RED -# Things you might want to change: -# - the device bandwidth (set at 10Mbits) -# - the bandwidth allocated for each AF class and the BE class -# - the drop probability associated with each AF virtual queue -# -# AF DSCP values used (based on AF draft 04) -# ----------------------------------------- -# AF DSCP values -# AF1 1. 0x0a 2. 0x0c 3. 0x0e -# AF2 1. 0x12 2. 0x14 3. 0x16 -# AF3 1. 0x1a 2. 0x1c 3. 0x1e -# AF4 1. 0x22 2. 0x24 3. 0x26 - -# -# -# A simple DSCP-class relationship formula used to generate -# values in the for loop of this script; $drop stands for the -# DP -# $dscp = ($class*8+$drop*2) -# -# if you use GRIO buffer sharing, then GRED priority is set as follows: -# $gprio=$drop+1; -# - -$TC = "/usr/src/iproute2-current/tc/tc"; -$DEV = "dev lo"; -$DEV = "dev eth1"; -$DEV = "dev eth0"; -# the BE-class number -$beclass = "5"; - -#GRIO buffer sharing on or off? -$GRIO = ""; -$GRIO = "grio"; -# The bandwidth of your device -$linerate="10Mbit"; -# The BE and AF rates -%rate_table=(); -$berate="1500Kbit"; -$rate_table{"AF1rate"}="1500Kbit"; -$rate_table{"AF2rate"}="1500Kbit"; -$rate_table{"AF3rate"}="1500Kbit"; -$rate_table{"AF4rate"}="1500Kbit"; -# -# -# -print "\n# --- General setup ---\n"; -print "$TC qdisc add $DEV handle 1:0 root dsmark indices 64 set_tc_index\n"; -print "$TC filter add $DEV parent 1:0 protocol ip prio 1 tcindex mask 0xfc " . - "shift 2 pass_on\n"; - #"shift 2\n"; -print "$TC qdisc add $DEV parent 1:0 handle 2:0 cbq bandwidth $linerate ". - "cell 8 avpkt 1000 mpu 64\n"; -print "$TC filter add $DEV parent 2:0 protocol ip prio 1 tcindex ". - "mask 0xf0 shift 4 pass_on\n"; -for $class (1..4) { - print "\n# --- AF Class $class specific setup---\n"; - $AFrate=sprintf("AF%drate",$class); - print "$TC class add $DEV parent 2:0 classid 2:$class cbq ". - "bandwidth $linerate rate $rate_table{$AFrate} avpkt 1000 prio ". - (6-$class)." bounded allot 1514 weight 1 maxburst 21\n"; - print "$TC filter add $DEV parent 2:0 protocol ip prio 1 handle $class ". - "tcindex classid 2:$class\n"; - print "$TC qdisc add $DEV parent 2:$class gred setup DPs 3 default 2 ". - "$GRIO\n"; -# -# per DP setup -# - for $drop (1..3) { - print "\n# --- AF Class $class DP $drop---\n"; - $dscp = $class*8+$drop*2; - $tcindex = sprintf("1%x%x",$class,$drop); - print "$TC filter add $DEV parent 1:0 protocol ip prio 1 ". - "handle $dscp tcindex classid 1:$tcindex\n"; - $prob = $drop*0.02; - if ($GRIO) { - $gprio = $drop+1; - print "$TC qdisc change $DEV parent 2:$class gred limit 60KB min 15KB ". - "max 45KB burst 20 avpkt 1000 bandwidth $linerate DP $drop ". - "probability $prob ". - "prio $gprio\n"; - } else { - print "$TC qdisc change $DEV parent 2:$class gred limit 60KB min 15KB ". - "max 45KB burst 20 avpkt 1000 bandwidth $linerate DP $drop ". - "probability $prob \n"; - } - } -} -# -# -print "\n#------BE Queue setup------\n"; -print "$TC filter add $DEV parent 1:0 protocol ip prio 2 ". - "handle 0 tcindex mask 0 classid 1:1\n"; -print "$TC class add $DEV parent 2:0 classid 2:$beclass cbq ". - "bandwidth $linerate rate $berate avpkt 1000 prio 6 " . - "bounded allot 1514 weight 1 maxburst 21 \n"; -print "$TC filter add $DEV parent 2:0 protocol ip prio 1 handle 0 tcindex ". - "classid 2:5\n"; -print "$TC qdisc add $DEV parent 2:5 red limit 60KB min 15KB max 45KB ". - "burst 20 avpkt 1000 bandwidth $linerate probability 0.4\n";