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 99