Tagging module iproute2 - iproute2-2.6.16-2
[iproute2.git] / examples / diffserv / README
1
2 Note all these are mere examples which can be customized to your needs
3
4 AFCBQ
5 -----
6 AF PHB built using CBQ, DSMARK,GRED (default in GRIO mode) ,RED for BE 
7 and the tcindex classifier with some algorithmic mapping
8
9 EFCBQ
10 -----
11 EF PHB built using CBQ (for rate control and prioritization), 
12 DSMARK( to remark DSCPs), tcindex  classifier and  RED for the BE
13 traffic.
14
15 EFPRIO
16 ------
17 EF PHB using the PRIO scheduler, Token Bucket to rate control EF,
18 tcindex classifier, DSMARK to remark, and RED for the BE traffic
19
20 EDGE scripts
21 ==============
22
23 CB-3(1|2)-(u32/chains)
24 ======================
25
26
27 The major differences are that the classifier is u32 on -u32 extension
28 and IPchains on the chains extension. CB stands for color Blind
29 and 31 is for the mode where only a CIR and CBS are defined whereas
30 32 stands for a mode where a CIR/CBS + PIR/EBS are defined.
31
32 Color Blind (CB)
33 ==========-----=
34 We look at one special subnet that we are interested in for simplicty
35 reasons to demonstrate the capability. We send the packets from that
36 subnet to AF4*, BE or end up dropping depending on the metering results. 
37
38
39 The algorithm overview is as follows:
40
41 *classify:
42
43 **case: subnet X
44 ----------------
45   if !exceed meter1 tag as AF41
46         else
47             if !exceed meter2  tag as AF42
48                 else
49                   if !exceed meter 3 tag as AF43
50                       else 
51                          drop 
52
53 default case: Any other subnet
54 -------------------------------
55   if !exceed meter 5 tag as AF43
56       else
57          drop 
58
59
60 One Egress side change the DSCPs of the packets to reflect AF4* and BE
61 based on the tags from the ingress.
62
63 -------------------------------------------------------------
64
65 Color Aware
66 ===========
67
68 Define some meters with + policing and give them IDs eg
69
70 meter1=police index 1 rate $CIR1 burst $CBS1  
71 meter2=police index 2 rate $CIR2 burst $CBS2   etc 
72
73 General overview:
74 classify based on the DSCPs and use the policer ids to decide tagging
75
76
77 *classify on ingress:
78
79 switch (dscp) {
80     case AF41: /* tos&0xfc == 0x88 */
81         if (!exceed meter1) break;
82     case AF42: /* tos&0xfc == 0x90 */
83         if (!exceed meter2) {
84             tag as AF42;
85             break;
86         }
87     case AF43: /* tos&0xfc == 0x98 */
88         if (!exceed meter3) {
89             tag as AF43;
90             break;
91         } else
92           drop;
93     default:
94         if (!exceed meter4) tag as BE;
95         else drop;
96 }
97
98 On the Egress side mark the proper AF tags