| |
| Note all these are mere examples which can be customized to your needs |
| |
| AFCBQ |
| ----- |
| AF PHB built using CBQ, DSMARK,GRED (default in GRIO mode) ,RED for BE |
| and the tcindex classifier with some algorithmic mapping |
| |
| EFCBQ |
| ----- |
| EF PHB built using CBQ (for rate control and prioritization), |
| DSMARK( to remark DSCPs), tcindex classifier and RED for the BE |
| traffic. |
| |
| EFPRIO |
| ------ |
| EF PHB using the PRIO scheduler, Token Bucket to rate control EF, |
| tcindex classifier, DSMARK to remark, and RED for the BE traffic |
| |
| EDGE scripts |
| ============== |
| |
| CB-3(1|2)-(u32/chains) |
| ====================== |
| |
| |
| The major differences are that the classifier is u32 on -u32 extension |
| and IPchains on the chains extension. CB stands for color Blind |
| and 31 is for the mode where only a CIR and CBS are defined whereas |
| 32 stands for a mode where a CIR/CBS + PIR/EBS are defined. |
| |
| Color Blind (CB) |
| ==========-----= |
| We look at one special subnet that we are interested in for simplicty |
| reasons to demonstrate the capability. We send the packets from that |
| subnet to AF4*, BE or end up dropping depending on the metering results. |
| |
| |
| The algorithm overview is as follows: |
| |
| *classify: |
| |
| **case: subnet X |
| ---------------- |
| if !exceed meter1 tag as AF41 |
| else |
| if !exceed meter2 tag as AF42 |
| else |
| if !exceed meter 3 tag as AF43 |
| else |
| drop |
| |
| default case: Any other subnet |
| ------------------------------- |
| if !exceed meter 5 tag as AF43 |
| else |
| drop |
| |
| |
| One Egress side change the DSCPs of the packets to reflect AF4* and BE |
| based on the tags from the ingress. |
| |
| ------------------------------------------------------------- |
| |
| Color Aware |
| =========== |
| |
| Define some meters with + policing and give them IDs eg |
| |
| meter1=police index 1 rate $CIR1 burst $CBS1 |
| meter2=police index 2 rate $CIR2 burst $CBS2 etc |
| |
| General overview: |
| classify based on the DSCPs and use the policer ids to decide tagging |
| |
| |
| *classify on ingress: |
| |
| switch (dscp) { |
| case AF41: /* tos&0xfc == 0x88 */ |
| if (!exceed meter1) break; |
| case AF42: /* tos&0xfc == 0x90 */ |
| if (!exceed meter2) { |
| tag as AF42; |
| break; |
| } |
| case AF43: /* tos&0xfc == 0x98 */ |
| if (!exceed meter3) { |
| tag as AF43; |
| break; |
| } else |
| drop; |
| default: |
| if (!exceed meter4) tag as BE; |
| else drop; |
| } |
| |
| On the Egress side mark the proper AF tags |