Courseiva
QoSPrivileged EXEC

show policy-map interface

Displays the current QoS policy applied to an interface, including per-class statistics such as packets matched, bytes, and actions taken, used to verify and troubleshoot QoS configurations.

Definition: show policy-map interface is a Cisco IOS privileged exec command. Displays the current QoS policy applied to an interface, including per-class statistics such as packets matched, bytes, and actions taken, used to verify and troubleshoot QoS configurations.

Overview

The 'show policy-map interface' command is a cornerstone for any network engineer working with Quality of Service (QoS) on Cisco IOS devices. It displays the current QoS policy applied to a specific interface, along with per-class statistics such as packets matched, bytes, and actions taken (e.g., marking, policing, shaping, queuing). This command is essential for verifying that QoS policies are correctly applied and for troubleshooting performance issues related to bandwidth management, latency, or packet loss. Without it, engineers would be blind to whether their traffic classification and treatment policies are actually being enforced.

QoS is a fundamental networking concept that allows you to prioritize certain types of traffic over others, ensuring that critical applications (like voice or video) receive the bandwidth and low latency they require, while less important traffic (like bulk file transfers) can be deprioritized. The 'show policy-map interface' command provides a real-time view into how the device is handling traffic on a per-interface, per-class basis. It reveals the number of packets that matched each class, the number of bytes, and the actions applied (e.g., 'set dscp', 'police', 'shape', 'queue'). This is invaluable for verifying that classification is working as intended (e.g., marking VoIP traffic with EF) and that policing or shaping is not inadvertently dropping legitimate traffic.

When would you reach for this command versus alternatives? If you need to see the overall QoS configuration on a device, you might use 'show policy-map' (to see the policy-map definition) or 'show class-map' (to see class-map definitions). But to see what is actually happening on an interface—how many packets are being matched, whether policing is dropping traffic, or if shaping is delaying packets—you need 'show policy-map interface'. It is the go-to command for verifying that a policy is applied and for troubleshooting issues like unexpected drops or high latency on a specific interface. It fits into the broader network troubleshooting workflow: after configuring QoS, you use this command to confirm the policy is active; when users report poor application performance, you check this command to see if traffic is being dropped or delayed by QoS; and when analyzing network congestion, you correlate this output with 'show interfaces' (for interface errors/drops) and 'show queueing' (for queue depths).

Important IOS behaviour: The output can be lengthy if many classes are defined, so you may want to use the '|' pipe to filter (e.g., 'show policy-map interface GigabitEthernet0/1 | begin Class-default'). The command requires privileged EXEC mode (enable). It does not modify the running configuration. The statistics shown are cumulative since the last counter reset (or since the policy was applied). You can reset counters with 'clear counters' or 'clear policy-map interface'. In some IOS versions, the output includes 'packets matched' and 'bytes' but not 'rate' information unless you also use 'show policy-map interface <int> rate'. The command works on physical interfaces, subinterfaces, and VLAN interfaces (SVI). For EtherChannel, you must specify the port-channel interface. Note that if a policy is applied in the output direction, the statistics reflect outbound traffic; if applied inbound, they reflect inbound traffic. Also, if the policy uses a 'shape' or 'police' action, the output will show 'offered rate' and 'drop rate' which are critical for capacity planning.

In summary, 'show policy-map interface' is an indispensable tool for any network professional working with QoS. It provides the visibility needed to ensure that traffic is being treated according to policy, and it is the first command to use when QoS-related problems arise.

Syntax·Privileged EXEC
show policy-map interface

When to Use This Command

  • Verify that a QoS service policy is correctly applied to an interface and matching traffic as expected.
  • Troubleshoot why certain traffic is not being prioritized or shaped correctly.
  • Monitor bandwidth usage per class to ensure fairness and compliance with policy.
  • Check if policing or shaping actions are dropping or queuing packets excessively.

Parameters

ParameterSyntaxDescription
interface-type interface-numbere.g., GigabitEthernet0/1, Serial0/0/0, Port-channel1Specifies the interface to display QoS policy statistics. If omitted, the command shows policy maps for all interfaces that have a service policy applied. Common mistake: using an interface that does not have a policy-map applied, which results in no output.
class class-namee.g., class VOICE, class-defaultFilters output to show statistics for a specific class within the policy-map. Useful for focusing on a particular traffic class. If omitted, all classes are shown. Common mistake: misspelling the class name, which yields no output.
outputoutputDisplays only the output policy statistics. This is the default direction if no direction is specified. Use when you want to confirm the outbound policy is applied and see its statistics.
inputinputDisplays only the input policy statistics. Use when the policy is applied inbound. If the policy is applied in both directions, you must specify input or output to see the respective statistics.

Command Examples

Basic show policy-map interface for a serial link

show policy-map interface serial 0/0/0
Serial0/0/0 

  Service-policy output: QOS_POLICY

    Class-map: VOICE (match-all)
      0 packets, 0 bytes
      5 minute offered rate 0 bps, drop rate 0 bps
      Match: ip dscp ef (46)
      Priority:
        Queueing
        queue limit 64 packets
        (queue depth/total drops/no-buffer drops) 0/0/0
        (pkts output/bytes output) 0/0

    Class-map: VIDEO (match-all)
      0 packets, 0 bytes
      5 minute offered rate 0 bps, drop rate 0 bps
      Match: ip dscp af41 (34)
      Bandwidth 30% (450 kbps)
        Queueing
        queue limit 64 packets
        (queue depth/total drops/no-buffer drops) 0/0/0
        (pkts output/bytes output) 0/0

    Class-map: class-default (match-any)
      0 packets, 0 bytes
      5 minute offered rate 0 bps, drop rate 0 bps
      Match: any 
      queue limit 64 packets
      (queue depth/total drops/no-buffer drops) 0/0/0
      (pkts output/bytes output) 0/0

Line 1: Interface name. Line 2: Direction (output) and policy name. For each class: class name and match type; packet/byte counters; 5-minute average offered and drop rates; match criteria; QoS action (priority, bandwidth, etc.); queueing statistics: queue limit, current queue depth, total drops, no-buffer drops; output packet/byte counters.

Show policy-map interface with policing statistics

show policy-map interface gigabitethernet 0/1
GigabitEthernet0/1 

  Service-policy input: POLICE_POLICY

    Class-map: BULK_DATA (match-all)
      1500 packets, 960000 bytes
      5 minute offered rate 64000 bps, drop rate 1000 bps
      Match: ip dscp af11 (10)
      police:
          cir 128000 bps, bc 8000 bytes, be 8000 bytes
        conformed 1400 packets, 896000 bytes; actions: transmit
        exceeded 100 packets, 64000 bytes; actions: drop
        violated 0 packets, 0 bytes; actions: drop
        conformed 5 minute rate 60000 bps, exceed rate 4000 bps, violate rate 0 bps

    Class-map: class-default (match-any)
      5000 packets, 3200000 bytes
      5 minute offered rate 256000 bps, drop rate 0 bps
      Match: any

Shows input policy with policing. For each class: packet/byte counters, rates. Under 'police': CIR, Bc, Be; conformed/exceeded/violated packet/byte counts and actions; 5-minute rates for each category. Helps identify if traffic is being dropped due to policing.

Understanding the Output

The output is organized by interface and direction (input/output). Each class-map is listed with its match criteria and counters. Key fields: 'offered rate' shows traffic volume; 'drop rate' indicates packets dropped by QoS; 'queue depth' shows current queue occupancy (should be low); 'total drops' indicates packets dropped due to queue full; 'conformed/exceeded/violated' for policing shows how traffic is handled relative to CIR.

High drop rates or queue depths suggest congestion or misconfiguration. For priority classes, ensure no drops. For bandwidth classes, verify bandwidth allocation matches policy.

Configuration Scenarios

Verify QoS Policy on a WAN Interface

A branch router has a QoS policy applied to its WAN interface to prioritize voice traffic and limit best-effort traffic. The network engineer needs to confirm that the policy is correctly classifying and treating traffic.

Topology

R1(Gi0/0)---10.0.12.0/30---(Gi0/0)R2 R1 Gi0/1: 192.168.1.0/24 (LAN)

Steps

  1. 1.Step 1: Enter privileged EXEC mode: enable
  2. 2.Step 2: View the QoS policy applied to the WAN interface: show policy-map interface GigabitEthernet0/0
  3. 3.Step 3: Observe the output for each class (e.g., VOICE, VIDEO, BEST-EFFORT). Check 'packets matched' and 'bytes' to see if traffic is being classified.
  4. 4.Step 4: For policing classes, check 'drop' counters to see if any traffic is being dropped due to exceeding the policed rate.
  5. 5.Step 5: For shaping classes, check 'queue depth' and 'packets enqueued' to see if shaping is delaying traffic.
Configuration
! QoS policy-map on R1
policy-map WAN-POLICY
 class VOICE
  priority 128
 class VIDEO
  bandwidth 256
 class BEST-EFFORT
  shape average 512000
!
interface GigabitEthernet0/0
 service-policy output WAN-POLICY

Verify: Command: show policy-map interface GigabitEthernet0/0 Expected output snippet: GigabitEthernet0/0 Service-policy output: WAN-POLICY Class-map: VOICE (match-all) 0 packets, 0 bytes 5 minute offered rate 0 bps, drop rate 0 bps Match: ip dscp ef (46) Priority: 128 kbps, burst bytes 3200, b/w exceed drops: 0 Class-map: VIDEO (match-all) 0 packets, 0 bytes 5 minute offered rate 0 bps, drop rate 0 bps Match: ip dscp af41 (34) Queueing queue limit 64 packets (queue depth/total drops/no-buffer drops) 0/0/0 (pkts output/bytes output) 0/0 bandwidth 256 kbps Class-map: BEST-EFFORT (match-any) 0 packets, 0 bytes 5 minute offered rate 0 bps, drop rate 0 bps Match: any Queueing shape (average) cir 512000, bc 2048, be 2048 target shape rate 512000 queue limit 64 packets (queue depth/total drops/no-buffer drops) 0/0/0 (pkts output/bytes output) 0/0

Watch out: If the policy is applied in the wrong direction (e.g., input instead of output), the statistics will show no traffic matching because the traffic is flowing in the opposite direction. Always verify the direction using 'show running-config interface'.

Troubleshoot Policing Drops on an Access Switch Port

An access switch port is configured with a policer to limit inbound traffic from a user. The user reports slow speeds, and the engineer suspects the policer is dropping legitimate traffic.

Topology

PC1---Gi0/1---SW1---Gi0/2---R1 SW1 Gi0/1: 192.168.1.0/24

Steps

  1. 1.Step 1: Enter privileged EXEC mode: enable
  2. 2.Step 2: Check the inbound policy on the access port: show policy-map interface GigabitEthernet0/1 input
  3. 3.Step 3: Look at the 'police' section for the class. Note the 'offered rate' and 'drop rate'.
  4. 4.Step 4: Compare the offered rate to the policed rate. If the offered rate exceeds the policed rate, drops will occur.
  5. 5.Step 5: Check the 'pkts dropped' counter to see how many packets have been dropped. If it is incrementing rapidly, the policer is too restrictive.
Configuration
! Policer on SW1
policy-map LIMIT-USER
 class USER-TRAFFIC
  police 1000000 200000 200000 conform-action transmit exceed-action drop
!
interface GigabitEthernet0/1
 service-policy input LIMIT-USER

Verify: Command: show policy-map interface GigabitEthernet0/1 input Expected output snippet: GigabitEthernet0/1 Service-policy input: LIMIT-USER Class-map: USER-TRAFFIC (match-all) 1000 packets, 1500000 bytes 5 minute offered rate 800000 bps, drop rate 200000 bps Match: access-group 101 police: cir 1000000 bps, bc 200000 bytes conformed 800 packets, 1200000 bytes; actions: transmit exceeded 200 packets, 300000 bytes; actions: drop conformed 800000 bps, exceed 200000 bps Class-map: class-default (match-any) 0 packets, 0 bytes 5 minute offered rate 0 bps, drop rate 0 bps Match: any

Watch out: The policer uses a token bucket; short bursts may be allowed even if the average rate is below the CIR. If the 'exceed' counter is high but the 'conform' counter is also high, the policer may be too tight. Also, ensure the access-list in the class-map matches the intended traffic.

Troubleshooting with This Command

When using 'show policy-map interface' for troubleshooting, the first step is to understand what healthy output looks like. For a class with a 'priority' command (low-latency queue), you expect to see 'priority queueing' and counters for 'packets matched' and 'bytes'. The 'drop rate' should be zero or very low if the priority traffic is within the allocated bandwidth. For classes with 'bandwidth' or 'shape', you expect to see queue depths that are not consistently high, and 'total drops' should be minimal. For policing, the 'conform' and 'exceed' counters indicate how much traffic is within or above the policed rate; a high 'exceed' count with drops indicates that traffic is being dropped.

Key fields to focus on: - 'packets matched' and 'bytes': Shows how much traffic has been classified into each class. If this is zero for a class that should have traffic, the classification (match criteria) may be incorrect. - 'offered rate' and 'drop rate': The offered rate is the actual traffic rate; the drop rate is the rate at which packets are being dropped (by policing or shaping). A high drop rate relative to offered rate indicates congestion or overly restrictive policies. - 'queue depth' and 'total drops': For queuing actions, queue depth shows how many packets are waiting; if it is consistently near the queue limit, the queue is congested and drops may occur. - 'conformed' and 'exceeded' (policing): These show how many packets met the policed rate (conformed) and how many exceeded it. If exceeded packets are dropped, that explains packet loss.

Common symptoms this command helps diagnose: - Voice quality issues: Check the priority class for drops. If the priority class is dropping packets, the voice traffic may be exceeding the allocated bandwidth, or there may be a misconfiguration (e.g., priority not set correctly). - Slow data transfers: Check the best-effort class for shaping or policing drops. If the shaping rate is too low, traffic will be delayed or dropped. - Unexpected packet loss: Look at all classes for 'drop' counters. If a class has drops but the interface itself (show interfaces) has no errors, the drops are likely due to QoS policing or queue limits.

Step-by-step diagnostic flow: 1. Identify the interface experiencing issues (e.g., slow throughput, high latency). 2. Run 'show policy-map interface <interface>' to see the applied policy and statistics. 3. Check if the policy is applied in the correct direction (input/output). 4. Look at each class: verify that traffic is being matched (packets matched > 0). 5. For classes with policing, compare offered rate to CIR. If offered rate > CIR and exceed drops are high, the policer is too restrictive. 6. For classes with shaping, check queue depth. If queue depth is consistently high, consider increasing the shaping rate or queue limit. 7. For priority classes, ensure the priority bandwidth is not oversubscribed. If drops occur, either increase the priority bandwidth or reduce the amount of priority traffic. 8. Correlate with 'show interfaces' to see if there are any interface errors (CRC, collisions) that could also cause drops. 9. Use 'show queueing <interface>' to see detailed queue statistics (e.g., weighted fair queueing). 10. If the problem persists, consider using 'debug policy-map' (with caution) to see real-time packet matching and actions.

Correlating with other commands: 'show interfaces' gives overall interface statistics including output drops, which may be due to QoS. 'show queueing' provides per-queue details. 'show class-map' and 'show policy-map' show the configuration. 'show access-lists' verifies the match criteria. By combining these, you can pinpoint whether the issue is classification, policing, shaping, or queuing.

CCNA Exam Tips

1.

Remember that 'show policy-map interface' is used to verify QoS policies; the exam may ask you to interpret output to identify which class is dropping packets.

2.

Know the difference between 'show policy-map' (displays policy definition) and 'show policy-map interface' (displays per-interface statistics).

3.

Be able to identify if a class is using 'priority' or 'bandwidth' and what the queue limit indicates.

4.

The exam may present output with high drop rates and ask you to troubleshoot (e.g., increase bandwidth or adjust queue limit).

Common Mistakes

Confusing 'show policy-map' with 'show policy-map interface' — the former shows configuration, the latter shows operational stats.

Forgetting to specify the interface direction (input/output) when applying policy; the command shows both directions if not specified.

Misinterpreting 'drop rate' as total drops instead of average rate; it's a 5-minute average in bps.

show policy-map interface vs show policy-map

The commands 'show policy-map interface' and 'show policy-map' are both used to display QoS policy information, but they operate at different scopes and levels of detail, often causing confusion among engineers. While the former provides per-interface statistics and actions, the latter shows the configuration and counters of all policy maps globally.

Aspectshow policy-map interfaceshow policy-map
ScopePer-interfaceGlobal (all policy maps)
Level of DetailDetailed per-class counters, bytes, packets, drop/action stats for a specific interfacePolicy map configuration and aggregated class counters across all interfaces
Typical UseTroubleshooting QoS on a specific interfaceVerifying overall QoS policy configuration and statistics
Output StructureOrganized by interface, then class, with service-policy directionOrganized by policy-map name, then class, showing match criteria and actions
Data SourceRunning state of applied policy on interfaceConfigured policy maps (may show counters if any are applied)

Use show policy-map interface when you need to investigate traffic behavior or verify QoS actions on a particular interface.

Use show policy-map when you want to review the entire QoS policy configuration and see cumulative statistics across all interfaces.

Platform Notes

In IOS-XE (e.g., Catalyst 9000 switches, ISR 4000 routers), the 'show policy-map interface' command syntax and output are very similar to classic IOS. However, IOS-XE may include additional fields such as 'queue depth' in bytes or packets, and 'drop statistics' may be more granular. On NX-OS (Cisco Nexus switches), the equivalent command is 'show policy-map interface <interface>' but the output format differs; it uses 'type qos' for QoS policies.

For example: 'show policy-map interface ethernet 1/1' will display the QoS policy. NX-OS also has 'show policy-map interface <interface> type qos' to show only QoS policies. On ASA firewalls, QoS is configured differently using 'priority-queue' and 'police' commands; the equivalent command is 'show service-policy' which displays interface QoS statistics.

For example: 'show service-policy interface inside' shows the policy applied to the inside interface. In IOS-XR (Cisco ASR 9000, CRS), the command is 'show policy-map interface <interface>' but the output is quite different, focusing on 'policy-map' and 'class' hierarchies. IOS-XR also uses 'show qos interface <interface>' for QoS statistics.

Between IOS versions (12.x, 15.x, 16.x), the output has remained largely consistent, but newer versions may include additional counters like 'no buffer drops' or 'queue limit' in bytes. Always check the specific platform documentation for exact syntax and field descriptions.

Related Commands

Practice for the CCNA 200-301

Test your knowledge with practice questions covering all CCNA 200-301 exam domains.

Practice CCNA 200-301 Questions