cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
577
Views
0
Helpful
4
Replies

Is this traffic shaping scenario possible (ISP) ?

weardfear
Level 1
Level 1

Hey Guys.

 

I really need your help on this one.
I have a rather advanced traffic shaping scenarie that i would like to know if it's possible, and feel free to do a POC of the policy map if it sounds fun ; ).
So, the hardware is ASR1001-X with ofc IOS-XE for starters.

 

The scenario is as followed.
The max bandwidth that can pass  is 500mbit through a 1gbit link.

All source IP's or subnets will have prioritised VoIP, including Skype/Teams.
Each source IP or subnet will have a variable max bandwdth available, symetric upload and download. eg. 100/100, 30/30, 4/4 mbits.
Each source IP or subnet will sort of "have their own queue" so it'll only be from their queue the packages will be dropped if memory is exceeded.
If the 500mbit max bandwidth available between all the queues is exceeded, then reduce the bandwidth equally over all queues.

 

What is possible, and what is not ?
Is there a better way to handle queing for customers as an ISP ?

 

Thanks guys ^^.

4 Replies 4

Joseph W. Doherty
Hall of Fame
Hall of Fame

Firstly, shaping is only available upon egress, so if you also have a need to regulate ingress bandwidth, it's generally often less than "ideal".  (NB: although policing can be used for ingress or egress, it too is often less than "ideal" for regulating ingress bandwidth.)

Some platforms do support multi-level shaping, where you can use the highest level to shape for overall link CIR and a sub level to shape for particular traffic.  I've used such policies for shaping the sublevels for different branch bandwidths.

e.g.:

policy-map parent
class class-default
shape average 500000000

service-policy child
policy-map child
class A
bandwidth percent 1
shape average 100000000
class B
bandwidth percent 1
shape average 30000000
class C
bandwidth percent 1
shape average 4000000

The above bandwidth statements, if the parent policy's shaper engages, should, I believe, treat all the child class equally as to obtaining their share of the 500 Mbps.

Apply the parent policy, out, on your gig link.

Hi Jospeh : ).

 

Thanks a lot ^^. And yes it does support a parrent map : ).

I'll create the scenario and come back to you with the result and behavior.

Hi Joseph.

This is the baseline i came up with, and it is working as intended. Ofc, it's not finished and needs to be polished.
Do you have any input maybe ?

 

class-map match-any CM_Customer_XXX
 match access-group name ACL_Shape_Customer_XXX
class-map match-any CM_Match_VoIP
 match protocol rtp 
 match protocol sip
 match protocol skype
 match protocol rtp-video
 match protocol rtp-audio
!
policy-map PM_Match_Protocols
 class CM_Match_VoIP
  priority 1
 class class-default
  fair-queue
policy-map PM_AllCustomers
 class CM_Customer_XXX
  shape average 200000
   service-policy PM_Match_Protocols
policy-map PM_AllBandwidth_DW
 class class-default
  shape average 700000
   service-policy PM_AllCustomers

Looks like a good start.

If possible, I suggest adding bandwidth limits or allocations to your LLQ and non-LLQ classes, respectively.

You might also consider, if you find you're hitting the shaper limits, moving LLQ to that level.  Otherwise it too will be shaped (i.e. delayed).  Unfortunately, doing so, you'll need to reduce your same level shaper limits to insure you don't bust your bandwidth cap for that level.