Blame examples/diffserv/Edge1

Packit d3f73b
#! /bin/sh -x
Packit d3f73b
#
Packit d3f73b
# sample script on using the ingress capabilities
Packit d3f73b
# This script just tags on the ingress interfac using Ipchains
Packit d3f73b
# the result is used for fast classification and re-marking
Packit d3f73b
# on the egress interface
Packit d3f73b
#
Packit d3f73b
#path to various utilities;
Packit d3f73b
#change to reflect yours.
Packit d3f73b
#
Packit d3f73b
IPROUTE=/root/DS-6-beta/iproute2-990530-dsing
Packit d3f73b
TC=$IPROUTE/tc/tc
Packit d3f73b
IP=$IPROUTE/ip/ip
Packit d3f73b
IPCHAINS=/root/DS-6-beta/ipchains-1.3.9/ipchains
Packit d3f73b
INDEV=eth2
Packit d3f73b
EGDEV="dev eth1"
Packit d3f73b
#
Packit d3f73b
# tag all incoming packets from host 10.2.0.24 to value 1
Packit d3f73b
# tag all incoming packets from host 10.2.0.3 to value 2
Packit d3f73b
# tag the rest of incoming packets from subnet 10.2.0.0/24 to value 3
Packit d3f73b
#These values are used in the egress
Packit d3f73b
#
Packit d3f73b
############################################################ 
Packit d3f73b
$IPCHAINS -A input -s 10.2.0.4/24 -m 3
Packit d3f73b
$IPCHAINS -A input -i $INDEV -s 10.2.0.24 -m 1
Packit d3f73b
$IPCHAINS -A input -i $INDEV -s 10.2.0.3 -m 2
Packit d3f73b
Packit d3f73b
######################## Egress side ########################
Packit d3f73b
Packit d3f73b
Packit d3f73b
# attach a dsmarker
Packit d3f73b
#
Packit d3f73b
$TC qdisc add $EGDEV handle 1:0 root dsmark indices 64 set_tc_index
Packit d3f73b
#
Packit d3f73b
# values of the DSCP to change depending on the class
Packit d3f73b
#
Packit d3f73b
#becomes EF
Packit d3f73b
$TC class change $EGDEV classid 1:1 dsmark mask 0x3 \
Packit d3f73b
       value 0xb8
Packit d3f73b
#becomes AF11
Packit d3f73b
$TC class change $EGDEV classid 1:2 dsmark mask 0x3 \
Packit d3f73b
       value 0x28
Packit d3f73b
#becomes AF21
Packit d3f73b
$TC class change $EGDEV classid 1:3 dsmark mask 0x3 \
Packit d3f73b
       value 0x48
Packit d3f73b
#
Packit d3f73b
#
Packit d3f73b
# The class mapping
Packit d3f73b
#
Packit d3f73b
$TC filter add $EGDEV parent 1:0 protocol ip prio 4 handle 1 fw classid 1:1
Packit d3f73b
$TC filter add $EGDEV parent 1:0 protocol ip prio 4 handle 2 fw classid 1:2
Packit d3f73b
$TC filter add $EGDEV parent 1:0 protocol ip prio 4 handle 3 fw classid 1:3
Packit d3f73b
#
Packit d3f73b
Packit d3f73b
#
Packit d3f73b
echo "---- qdisc parameters Ingress  ----------"
Packit d3f73b
$TC qdisc ls dev $INDEV
Packit d3f73b
echo "---- Class parameters Ingress  ----------"
Packit d3f73b
$TC class ls dev $INDEV
Packit d3f73b
echo "---- filter parameters Ingress ----------"
Packit d3f73b
$TC filter ls dev $INDEV parent 1:0
Packit d3f73b
Packit d3f73b
echo "---- qdisc parameters Egress  ----------"
Packit d3f73b
$TC qdisc ls $EGDEV
Packit d3f73b
echo "---- Class parameters Egress  ----------"
Packit d3f73b
$TC class ls $EGDEV
Packit d3f73b
echo "---- filter parameters Egress ----------"
Packit d3f73b
$TC filter ls $EGDEV parent 1:0