blob: ec91d632e0c95ec5283b43318d7db86db6ab07e6 [file] [log] [blame]
Note all these are mere examples which can be customized to your needs
AF PHB built using CBQ, DSMARK,GRED (default in GRIO mode) ,RED for BE
and the tcindex classifier with some algorithmic mapping
EF PHB built using CBQ (for rate control and prioritization),
DSMARK( to remark DSCPs), tcindex classifier and RED for the BE
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
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:
**case: subnet X
if !exceed meter1 tag as AF41
if !exceed meter2 tag as AF42
if !exceed meter 3 tag as AF43
default case: Any other subnet
if !exceed meter 5 tag as AF43
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;
case AF43: /* tos&0xfc == 0x98 */
if (!exceed meter3) {
tag as AF43;
} else
if (!exceed meter4) tag as BE;
else drop;
On the Egress side mark the proper AF tags