Blame examples/cbqinit.eth1

Packit d3f73b
#! /bin/sh
Packit d3f73b
Packit d3f73b
TC=/home/root/tc
Packit d3f73b
IP=/home/root/ip
Packit d3f73b
DEVICE=eth1
Packit d3f73b
BANDWIDTH="bandwidth 10Mbit"
Packit d3f73b
Packit d3f73b
# Attach CBQ on $DEVICE. It will have handle 1:.
Packit d3f73b
#   $BANDWIDTH is real $DEVICE bandwidth (10Mbit).
Packit d3f73b
#   avpkt is average packet size.
Packit d3f73b
#   mpu is minimal packet size.
Packit d3f73b
Packit d3f73b
$TC qdisc add dev $DEVICE  root  handle 1:  cbq \
Packit d3f73b
$BANDWIDTH avpkt 1000 mpu 64
Packit d3f73b
Packit d3f73b
# Create root class with classid 1:1. This step is not necessary.
Packit d3f73b
#   bandwidth is the same as on CBQ itself.
Packit d3f73b
#   rate == all the bandwidth
Packit d3f73b
#   allot is MTU + MAC header
Packit d3f73b
#   maxburst measure allowed class burstiness (please,read S.Floyd and VJ papers)
Packit d3f73b
#   est 1sec 8sec means, that kernel will evaluate average rate
Packit d3f73b
#                 on this class with period 1sec and time constant 8sec.
Packit d3f73b
#                 This rate is viewed with "tc -s class ls dev $DEVICE"
Packit d3f73b
Packit d3f73b
$TC class add dev $DEVICE parent 1:0 classid :1 est 1sec 8sec cbq \
Packit d3f73b
$BANDWIDTH rate 10Mbit allot 1514 maxburst 50 avpkt 1000
Packit d3f73b
Packit d3f73b
# Bulk.
Packit d3f73b
#    New parameters are: 
Packit d3f73b
#    weight, which is set to be proportional to
Packit d3f73b
#            "rate". It is not necessary, weight=1 will work as well.
Packit d3f73b
#    defmap and split say that best effort ttraffic, not classfied
Packit d3f73b
#            by another means will fall to this class.
Packit d3f73b
Packit d3f73b
$TC class add dev $DEVICE parent 1:1 classid :2 est 1sec 8sec cbq \
Packit d3f73b
$BANDWIDTH rate 4Mbit allot 1514 weight 500Kbit \
Packit d3f73b
prio 6 maxburst 50 avpkt 1000 split 1:0 defmap ff3d
Packit d3f73b
Packit d3f73b
# OPTIONAL.
Packit d3f73b
# Attach "sfq" qdisc to this class, quantum is MTU, perturb
Packit d3f73b
# gives period of hash function perturbation in seconds.
Packit d3f73b
#
Packit d3f73b
$TC qdisc add dev $DEVICE parent 1:2 sfq quantum 1514b perturb 15
Packit d3f73b
Packit d3f73b
# Interactive-burst class
Packit d3f73b
Packit d3f73b
$TC class add dev $DEVICE parent 1:1 classid :3 est 2sec 16sec cbq \
Packit d3f73b
$BANDWIDTH rate 1Mbit allot 1514 weight 100Kbit \
Packit d3f73b
prio 2 maxburst 100 avpkt 1000 split 1:0 defmap c0
Packit d3f73b
Packit d3f73b
$TC qdisc add dev $DEVICE parent 1:3 sfq quantum 1514b perturb 15
Packit d3f73b
Packit d3f73b
# Background.
Packit d3f73b
Packit d3f73b
$TC class add dev $DEVICE parent 1:1 classid :4 est 1sec 8sec cbq \
Packit d3f73b
  $BANDWIDTH rate 100Kbit allot 1514 weight 10Mbit \
Packit d3f73b
  prio 7 maxburst 10 avpkt 1000 split 1:0 defmap 2
Packit d3f73b
Packit d3f73b
$TC qdisc add dev $DEVICE parent 1:4 sfq quantum 1514b perturb 15
Packit d3f73b
Packit d3f73b
# Realtime class for RSVP
Packit d3f73b
Packit d3f73b
$TC class add dev $DEVICE parent 1:1 classid 1:7FFE cbq \
Packit d3f73b
rate 5Mbit $BANDWIDTH allot 1514b avpkt 1000 \
Packit d3f73b
maxburst 20
Packit d3f73b
Packit d3f73b
# Reclassified realtime traffic
Packit d3f73b
#
Packit d3f73b
# New element: split is not 1:0, but 1:7FFE. It means,
Packit d3f73b
#     that only real-time packets, which violated policing filters
Packit d3f73b
#     or exceeded reshaping buffers will fall to it.
Packit d3f73b
Packit d3f73b
$TC class add dev $DEVICE parent 1:7FFE classid 1:7FFF  est 4sec 32sec cbq \
Packit d3f73b
rate 1Mbit $BANDWIDTH allot 1514b avpkt 1000 weight 10Kbit \
Packit d3f73b
prio 6 maxburst 10 split 1:7FFE defmap ffff
Packit d3f73b