Showing results for 
Search instead for 
Did you mean: 
Join Customer Connection to register!

IOS XE Nested Policy Traffic Shaping Config

I am running into an issue nesting policy-maps on the IOS XE. I have tested the configuration on IOS and it works fine, but XE gives me errors, stating it can't apply a default policy type inside of a default policy type:

An overview of what I am trying to accomplish, I have an MPLS connection at my datacenter, and for simplicity sake, we will say 3 remote locations.

The datacenter side has a 100 meg connection, and each site has different bandwidth amounts, site 1 = 50, site 2 = 40, site 3 = 10 mbps.

To keep packets from being dropped by the carrier policier when traffic is going from the datacenter to any individual site, I want to traffic shape based on destination.

Here is the configuration I am trying to build, it works on IOS, but not XE (ASR and CSR's, multiple code revisions)

ip access-list extended Site1_Subnets

permit ip

ip access-list extended Site2_Subnets

permit ip

ip access-list extended Site3_Subnets

permit ip

class-map match-any Site1_Class

match access-group name Site1_Subnets

class-map match-any Site2_Class

match access-group name Site2_Subnets

class-map match-any Site3_Class

match access-group name Site3_Subnets

policy-map Site1_Policy

class Site1_Class

shape average 50000000

set cos 3

policy-map Site2_Policy

class Site2_Class

shape average 40000000

set cos 3

policy-map Site3_Policy

class Site3_Class

shape average 10000000

set cos 3

policy-map Datacenter_100Mbps

class class-default

  shape average 100000000

  queue-limit 512 packets

  set cos 5

  service-policy Site1_Policy

  service-policy Site2_Policy

  service-policy Site3_Policy

This is the error I get when I try to nest the policies (this is done on a CSR in a lab, same error on an ASR in production):

ASR-MPLS-1(config-pmap-c)#policy-map Datacenter_100Mbps

ASR-MPLS-1(config-pmap)#class class-default

ASR-MPLS-1(config-pmap-c)#  shape average 100000000

ASR-MPLS-1(config-pmap-c)#  queue-limit 512 packets

ASR-MPLS-1(config-pmap-c)#  set cos 5

ASR-MPLS-1(config-pmap-c)#  service-policy Site1_Policy

Queueing policy Site1_Policy attached to class with random-detect or queue-limit configured is not supported

% service-policy Site1_Policy of type default is not allowed in policy-map Datacenter_100Mbps of type default


Found the problem, queue limit is not supported in hierchical policy-maps in IOS XE


We had encountered this problem on the below IOS XE code, while trying to add a nested service-policy with random-detects and queue limits.


Cisco IOS Software [Fuji], ASR1000 Software (X86_64_LINUX_IOSD-UNIVERSALK9-M), Version 16.8.1, RELEASE SOFTWARE (fc3)



Queueing policy WAN_Service_Policy attached to class with random-detect or queue-limit configured is not supported

% service-policy WAN_Service_Policy of type default is not allowed in policy-map WAN_Interface_Service_Policy of type default


> However, a similar configuration worked on an earlier IOS XE code.


Cisco IOS XE Software, Version 03.16.02.S - Extended Support Release

Cisco IOS Software, ASR1000 Software (X86_64_LINUX_IOSD-UNIVERSAL-M), Version 15.5(3)S2, RELEASE SOFTWARE (fc2)



policy-map WAN_Interface_Service_Policy
 class class-default
  shape average 195136000 780544 0 account user-defined 28
   service-policy WAN_Service_Policy


We would love to know if someone has a fix to this.