xref: /aosp_15_r20/external/iproute2/examples/diffserv/Edge1 (revision de1e4e894b0c224df933550f0afdecc354b238c4)
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