1*de1e4e89SAndroid Build Coastguard Worker#! /bin/sh -x 2*de1e4e89SAndroid Build Coastguard Worker# 3*de1e4e89SAndroid Build Coastguard Worker# sample script on using the ingress capabilities 4*de1e4e89SAndroid Build Coastguard Worker# This script just tags on the ingress interfac using Ipchains 5*de1e4e89SAndroid Build Coastguard Worker# the result is used for fast classification and re-marking 6*de1e4e89SAndroid Build Coastguard Worker# on the egress interface 7*de1e4e89SAndroid Build Coastguard Worker# 8*de1e4e89SAndroid Build Coastguard Worker#path to various utilities; 9*de1e4e89SAndroid Build Coastguard Worker#change to reflect yours. 10*de1e4e89SAndroid Build Coastguard Worker# 11*de1e4e89SAndroid Build Coastguard WorkerIPROUTE=/root/DS-6-beta/iproute2-990530-dsing 12*de1e4e89SAndroid Build Coastguard WorkerTC=$IPROUTE/tc/tc 13*de1e4e89SAndroid Build Coastguard WorkerIP=$IPROUTE/ip/ip 14*de1e4e89SAndroid Build Coastguard WorkerIPCHAINS=/root/DS-6-beta/ipchains-1.3.9/ipchains 15*de1e4e89SAndroid Build Coastguard WorkerINDEV=eth2 16*de1e4e89SAndroid Build Coastguard WorkerEGDEV="dev eth1" 17*de1e4e89SAndroid Build Coastguard Worker# 18*de1e4e89SAndroid Build Coastguard Worker# tag all incoming packets from host 10.2.0.24 to value 1 19*de1e4e89SAndroid Build Coastguard Worker# tag all incoming packets from host 10.2.0.3 to value 2 20*de1e4e89SAndroid Build Coastguard Worker# tag the rest of incoming packets from subnet 10.2.0.0/24 to value 3 21*de1e4e89SAndroid Build Coastguard Worker#These values are used in the egress 22*de1e4e89SAndroid Build Coastguard Worker# 23*de1e4e89SAndroid Build Coastguard Worker############################################################ 24*de1e4e89SAndroid Build Coastguard Worker$IPCHAINS -A input -s 10.2.0.4/24 -m 3 25*de1e4e89SAndroid Build Coastguard Worker$IPCHAINS -A input -i $INDEV -s 10.2.0.24 -m 1 26*de1e4e89SAndroid Build Coastguard Worker$IPCHAINS -A input -i $INDEV -s 10.2.0.3 -m 2 27*de1e4e89SAndroid Build Coastguard Worker 28*de1e4e89SAndroid Build Coastguard Worker######################## Egress side ######################## 29*de1e4e89SAndroid Build Coastguard Worker 30*de1e4e89SAndroid Build Coastguard Worker 31*de1e4e89SAndroid Build Coastguard Worker# attach a dsmarker 32*de1e4e89SAndroid Build Coastguard Worker# 33*de1e4e89SAndroid Build Coastguard Worker$TC qdisc add $EGDEV handle 1:0 root dsmark indices 64 set_tc_index 34*de1e4e89SAndroid Build Coastguard Worker# 35*de1e4e89SAndroid Build Coastguard Worker# values of the DSCP to change depending on the class 36*de1e4e89SAndroid Build Coastguard Worker# 37*de1e4e89SAndroid Build Coastguard Worker#becomes EF 38*de1e4e89SAndroid Build Coastguard Worker$TC class change $EGDEV classid 1:1 dsmark mask 0x3 \ 39*de1e4e89SAndroid Build Coastguard Worker value 0xb8 40*de1e4e89SAndroid Build Coastguard Worker#becomes AF11 41*de1e4e89SAndroid Build Coastguard Worker$TC class change $EGDEV classid 1:2 dsmark mask 0x3 \ 42*de1e4e89SAndroid Build Coastguard Worker value 0x28 43*de1e4e89SAndroid Build Coastguard Worker#becomes AF21 44*de1e4e89SAndroid Build Coastguard Worker$TC class change $EGDEV classid 1:3 dsmark mask 0x3 \ 45*de1e4e89SAndroid Build Coastguard Worker value 0x48 46*de1e4e89SAndroid Build Coastguard Worker# 47*de1e4e89SAndroid Build Coastguard Worker# 48*de1e4e89SAndroid Build Coastguard Worker# The class mapping 49*de1e4e89SAndroid Build Coastguard Worker# 50*de1e4e89SAndroid Build Coastguard Worker$TC filter add $EGDEV parent 1:0 protocol ip prio 4 handle 1 fw classid 1:1 51*de1e4e89SAndroid Build Coastguard Worker$TC filter add $EGDEV parent 1:0 protocol ip prio 4 handle 2 fw classid 1:2 52*de1e4e89SAndroid Build Coastguard Worker$TC filter add $EGDEV parent 1:0 protocol ip prio 4 handle 3 fw classid 1:3 53*de1e4e89SAndroid Build Coastguard Worker# 54*de1e4e89SAndroid Build Coastguard Worker 55*de1e4e89SAndroid Build Coastguard Worker# 56*de1e4e89SAndroid Build Coastguard Workerecho "---- qdisc parameters Ingress ----------" 57*de1e4e89SAndroid Build Coastguard Worker$TC qdisc ls dev $INDEV 58*de1e4e89SAndroid Build Coastguard Workerecho "---- Class parameters Ingress ----------" 59*de1e4e89SAndroid Build Coastguard Worker$TC class ls dev $INDEV 60*de1e4e89SAndroid Build Coastguard Workerecho "---- filter parameters Ingress ----------" 61*de1e4e89SAndroid Build Coastguard Worker$TC filter ls dev $INDEV parent 1:0 62*de1e4e89SAndroid Build Coastguard Worker 63*de1e4e89SAndroid Build Coastguard Workerecho "---- qdisc parameters Egress ----------" 64*de1e4e89SAndroid Build Coastguard Worker$TC qdisc ls $EGDEV 65*de1e4e89SAndroid Build Coastguard Workerecho "---- Class parameters Egress ----------" 66*de1e4e89SAndroid Build Coastguard Worker$TC class ls $EGDEV 67*de1e4e89SAndroid Build Coastguard Workerecho "---- filter parameters Egress ----------" 68*de1e4e89SAndroid Build Coastguard Worker$TC filter ls $EGDEV parent 1:0 69