lh | 9ed821d | 2023-04-07 01:36:19 -0700 | [diff] [blame^] | 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 |