Contents

Introduction

Prerequisites

Requirements

Components Used

Class-maps

% Empty classes are not supported

% Range command terminated because it failed on GigabitEthernet1/0/1

Queueing

% Queuing actions supported only with dscp/cos/qos-group/precedence based classification!!!

% queue-limit is only supported in percent on this platform

% Order of classes in policy name queueing is not consistent with installed policy

% Only one queue-limit type is allowed in a class.

Shaping

% shape average command is not supported for this interface

Table-maps

% Cannot be deleted. Tablemap being used in policy maps.

% Multiple table-maps not supported per target per direction

% Priority feature is not allowed in police action with table-map

% Table-map action not allowed in police used with priority feature

% Only markdown with a table-map is supported

Policing

%1rate-3color policer not supported

Introduction

The objective of this post is to collect the common error messages that we get when configuring QoS features on Catalyst 3850 series switches. The examples were done using IOS XE version 03.03.05SE.

Prerequisites

Understanding of Modular Quality of Service (QoS) Command-Line Interface (CLI) (MQC) configuration on Catalyst 3850 switches.

Requirements

There are no specific requirements for this document.

Components Used

The information in this document is based on Cisco Catalyst 3850 Series Switches.

The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with default configuration. If your network is live, make sure that you understand the potential impact of any command.

Class-maps

% Empty classes are not supported

Example:

class-map match-any realtime

class-map match-any priority

class-map match-any missioncritical

class-map match-any transactional

class-map match-any scavenger

OR

policy-map Edge-QoS

class realtime

class priority

class missioncritical

class transactional

class scavenger

class class-default

3850(config-pmap-c)#interface Gi 1/0/1

3850(config-if)#service-policy input Edge-QoS

3850(config-if)#

*Mar 11 09:12:59.897:  Empty class unsupported

Restriction(s):

- Class maps with no match statements are not supported

- Class maps with empty actions are not supported

Workaround:

- Use of table-maps under the class-default and remove the empty class

- CSCun54503 removed empty class check in IOS and FED. Fixed in IOS XE verison 3.6.1 and newer.

% Range command terminated because it failed on GigabitEthernet1/0/1

Example:

int range Gi1/0/1 - 24

service-policy input queueing

% Range command terminated because it failed on GigabitEthernet1/0/1

Restriction(s): None

Workaround:

- There is an error while configuring QoS, try on a single interface and see what error is seen.

- No input queueing permitted on ingress

Queueing

% Queuing actions supported only with dscp/cos/qos-group/precedence based classification!!!

Example:

access-list 150 permit ip 172.16.2.0 0.0.0.255 172.16.1.0 0.0.0.255

class-map match-any san_traffic

match access-group 150

class-map match-any non-client-nrt-class

match non-client-nrt

!

policy-map port_child_policy

class non-client-nrt-class

bandwidth remaining ratio 10

class class-default

shape average percent 10

service-policy port_child_policy

Restriction(s): The same as the error message

Workaround:

- Two options were given, either to create an input policy to set DSCP marking to ingress traffic matching the ACL or,

- Use policy rate feature instead of queueing.

% queue-limit is only supported in percent on this platform

Example:

class-map queue

queue-limit cos 1 2 3 4

Restriction(s):

- There is only one COS value valid per queue-limit statement, the parameter after the first value should be a percent value.

Workaround:

- Distribute the cos values on several queue-limit statements.

class-map queue5

queue-limit cos 1 percent 10

queue-limit cos 2 percent 20

queue-limit cos 3 percent 30

queue-limit cos 4 percent 40

% Order of classes in policy name queueing is not consistent with installed policy

Example:

!Creating class-maps queue1 and queue2

class-map queue1

match cos 5

match dscp 46

class-map queue2

match cos 2 4 3 6

match dscp 16 18 20 22 26 32 34 36

!Assigning queueing features to queue1 and queue2

policy-map queueing

class queue1

shape average percent 70

class queue2

bandwidth remaining percent 10

!Applying the policy-map queueing to interface Gi1/0/1

interface gi1/0/1

service policy output queueing

!Creating class-maps queue5 and queue6

class-map queue5

match cos 1

match dscp 8 10 12 14

class-map queue6

match cos 5

match dscp 46

!Assigning queueing features to queue5 and queue6

policy-map queueing2

class queue5

shape average percent 70

class queue2

bandwidth remaining percent 10

!Applying the policy-map queueing to interface Gi1/0/2

interface gi1/0/2

service policy output queueing2

% Order of classes in policy name queueing2 is not consistent with installed policy

Restriction(s):

- The classification sequence for all wired queuing-based policies should be the same across all wired upstream ports (TenGigabit Ethernet), and the same for all downstream wired ports (Gigabit Ethernet).

Workaround:

- Use the same order of the classes as the first configured queueing-based policy-map. This message is not shown if you apply the policy map on any interface of 10GE Module

% Only one queue-limit type is allowed in a class.

Example:

policy-map port-queue

class dscp-1-2-3

bandwidth percent 20

queue-limit dscp 1 percent 80

queue-limit dscp 2 percent 90

queue-limit cos 3 percent 100 <<<

Workaround:

- Configure two different classes, one for queue-limit using DSCP and a second one for queue-limit using COS

Shaping

% shape average command is not supported for this interface

Example:

class-map queue5

match cos 1

match dscp 8 10 12 14

class-map queue6

match cos 5

match dscp 46

policy-map queueing2

class queue5

shape average percent 70

class queue2

bandwidth remaining percent 10

interface gi1/0/1

service policy input queueing2

Restriction(s):

- No queueing actions allowed on ingress.

Workaround:

- None, just marking and policing actions are permitted on ingress. Only one input queue per port.

Table-maps

% Cannot be deleted. Tablemap being used in policy maps.

Example:

3850(config-if)#auto qos voip trust

% Cannot be deleted. Tablemap being used in policy maps.

AutoQoS Error while generating commands on Gi1/0/3.

sh run

-- Output ommited

policy-map WAN-QoS

class class-default

shape average percent 20

service-policy VoIP-QoS

-- Output ommited

interface GigabitEthernet1/0/1

service-policy out WAN-QoS <- Queueing-based policy already attach to other interface in the same stream

Restriction(s):

- The classification sequence for all wired queuing-based policies should be the same across all wired upstream ports (10-Gigabit Ethernet), and the same for all downstream wired ports (1-Gigabit Ethernet).

- Only one table map is supported per wired port, per direction.

- Since there is already a queueing-based policy map on another interface, when trying to remove or add a different queuing-based, it will fail.

- Expected behavior per bug CSCtz51125 .

Workaround:

- Remove the old queueing-based policy map on all the interfaces in the same stream (10GE or 1GE interfaces).

- Applying the new queueing-based policy should not cause further issues.

% Multiple table-maps not supported per target per direction

Example:

policy map bw-with-table

class class-default

bandwidth percent 10

set cos dscp table default

set dscp dscp table default

int gig2/0/1

service-policy output bw-with-table

Restriction(s):

- The CLI is block for the flat policy-map when the policy-map attach to the interface, but not for the child policy on images prior to 03.03.00SE per CSCuc91333 .

Workaround:

- one table-map per policy is supported for the wired ports.

% Priority feature is not allowed in police action with table-map

% Table-map action not allowed in police used with priority feature

Example:

policy-map priority-rate

class priority-one

priority level 1

police cir 256000 conform-action transmit exceed-action set-dscp-transmit dscp table test

Restriction(s):

- The combination of the priority queue and a policing action of setting the DSCP/COS/IPP value by means of a table-map is unsupported on this platform.

Workaround:

- Try removing the "exceed-action set-dscp-transmit" line and instead set it as a drop action and then re-apply the policy-map.

% Only markdown with a table-map is supported

Example:

Policy-map my-policy

class voip_signal

set dscp cs2

police cir 32000 bc 8000

conform-action transmit

exceed-action set-dscp-transmit cs3

Restriction(s):

- A table map is needed when trying to change the DSCP/COS/IPP value dynamically by means of a policer whenever the rate is exceeded.

Workaround:

- Create a table map with the markdown values desired and apply it to the policy-map when the rate is exceeded.

table-map CS2toCS3

map from 24 to 16

default copy

policy-map my-policy

class voip_signal

set dscp cs2

police cir 32000 bc 8000

conform-action transmit

exceed-action set-dscp-transmit default dscp table CS2toCS3

Policing

%1rate-3color policer not supported

Example:

policy-map CiscoPhone-Input-Policy

Class Voip-Data-Class

set ip dscp ef

police cir 256000 bc 16000 be 16000

conform-action transmit

exceed-action set-dscp-transmit dscp table policed-dscp

violate-action drop

Restriction:

- Only 1 rate 2 color and 2 rate 3 color policers are supported on this platform.

Workaround:

- Configure a PIR value to use a 2-rate 3-color policer or remove the 'be' value and the violate action to configure an 1-rate 2-color policer.

policy-map CiscoPhone-Input-Policy

Class Voip-Data-Class

set ip dscp ef

police cir 256000 bc 16000 pir 512000 be 16000

conform-action transmit

exceed-action set-dscp-transmit dscp table policed-dscp

violate-action drop