99 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			99 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| 
 | |
| 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
 |