mirror of
https://git.kernel.org/pub/scm/network/iproute2/iproute2.git
synced 2024-11-16 14:35:34 +08:00
.. | ||
afcbq | ||
Edge1 | ||
Edge2 | ||
Edge31-ca-u32 | ||
Edge31-cb-chains | ||
Edge32-ca-u32 | ||
Edge32-cb-chains | ||
Edge32-cb-u32 | ||
ef-prio | ||
efcbq | ||
README | ||
regression-testing |
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