#! /bin/sh

TC=/home/root/tc
IP=/home/root/ip
DEVICE=eth1
BANDWIDTH="bandwidth 10Mbit"

# Attach CBQ on $DEVICE. It will have handle 1:.
#   $BANDWIDTH is real $DEVICE bandwidth (10Mbit).
#   avpkt is average packet size.
#   mpu is minimal packet size.

$TC qdisc add dev $DEVICE  root  handle 1:  cbq \
$BANDWIDTH avpkt 1000 mpu 64

# Create root class with classid 1:1. This step is not necessary.
#   bandwidth is the same as on CBQ itself.
#   rate == all the bandwidth
#   allot is MTU + MAC header
#   maxburst measure allowed class burstiness (please,read S.Floyd and VJ papers)
#   est 1sec 8sec means, that kernel will evaluate average rate
#                 on this class with period 1sec and time constant 8sec.
#                 This rate is viewed with "tc -s class ls dev $DEVICE"

$TC class add dev $DEVICE parent 1:0 classid :1 est 1sec 8sec cbq \
$BANDWIDTH rate 10Mbit allot 1514 maxburst 50 avpkt 1000

# Bulk.
#    New parameters are: 
#    weight, which is set to be proportional to
#            "rate". It is not necessary, weight=1 will work as well.
#    defmap and split say that best effort ttraffic, not classfied
#            by another means will fall to this class.

$TC class add dev $DEVICE parent 1:1 classid :2 est 1sec 8sec cbq \
$BANDWIDTH rate 4Mbit allot 1514 weight 500Kbit \
prio 6 maxburst 50 avpkt 1000 split 1:0 defmap ff3d

# OPTIONAL.
# Attach "sfq" qdisc to this class, quantum is MTU, perturb
# gives period of hash function perturbation in seconds.
#
$TC qdisc add dev $DEVICE parent 1:2 sfq quantum 1514b perturb 15

# Interactive-burst class

$TC class add dev $DEVICE parent 1:1 classid :3 est 2sec 16sec cbq \
$BANDWIDTH rate 1Mbit allot 1514 weight 100Kbit \
prio 2 maxburst 100 avpkt 1000 split 1:0 defmap c0

$TC qdisc add dev $DEVICE parent 1:3 sfq quantum 1514b perturb 15

# Background.

$TC class add dev $DEVICE parent 1:1 classid :4 est 1sec 8sec cbq \
  $BANDWIDTH rate 100Kbit allot 1514 weight 10Mbit \
  prio 7 maxburst 10 avpkt 1000 split 1:0 defmap 2

$TC qdisc add dev $DEVICE parent 1:4 sfq quantum 1514b perturb 15

# Realtime class for RSVP

$TC class add dev $DEVICE parent 1:1 classid 1:7FFE cbq \
rate 5Mbit $BANDWIDTH allot 1514b avpkt 1000 \
maxburst 20

# Reclassified realtime traffic
#
# New element: split is not 1:0, but 1:7FFE. It means,
#     that only real-time packets, which violated policing filters
#     or exceeded reshaping buffers will fall to it.

$TC class add dev $DEVICE parent 1:7FFE classid 1:7FFF  est 4sec 32sec cbq \
rate 1Mbit $BANDWIDTH allot 1514b avpkt 1000 weight 10Kbit \
prio 6 maxburst 10 split 1:7FFE defmap ffff

