QoS Deep Dive for CCNP ENCOR v1.2: Components, Policy, Wired and Wireless

Quality of Service (QoS) is the set of tools a network uses to decide which packets matter most when there is not enough bandwidth, buffer space, or serialization time for all of them. On the CCNP ENCOR 350-401 v1.2 blueprint, QoS appears in the Architecture domain under “Describe concepts of wired and wireless QoS”, split into QoS components and QoS policy. The verb is “describe”, so the exam tests understanding of the mechanisms and where they belong rather than raw configuration syntax. The configuration in this article goes past that bar deliberately: the fastest way to understand a token bucket or a low-latency queue is to build one and watch the counters move.

Table of Contents

Why QoS Exists: The Four Impairments

Every QoS discussion reduces to four measurable impairments. Each tool in the toolbox exists to attack one or more of them.

Impairment Definition Primary cause QoS tool that helps
Bandwidth (lack of) Offered load exceeds link capacity Oversubscription, speed mismatch Queuing, shaping, policing, compression
Delay / latency Time from sender to receiver Propagation, serialization, queuing, processing Priority queuing (LLQ), fragmentation
Jitter Variation in inter-packet delay Variable queue depth LLQ, de-jitter buffers, shaping
Loss Packets discarded before delivery Full buffers (tail drop), policers, errors Congestion avoidance (WRED/ECN), buffer tuning

Delay Is Four Things, Not One

  • Propagation delay — physics. Roughly 5 microseconds per kilometre of fibre. Nothing in a QoS policy changes it.
  • Serialization delay — time to clock the bits onto the wire. A 1500-byte frame on a 1 Mbps link takes 12 ms; on 1 Gbps it takes 12 microseconds. This is why link fragmentation mattered on slow WAN links and is irrelevant at Ethernet speeds.
  • Processing delay — lookup and rewrite time, negligible on hardware-forwarding platforms.
  • Queuing delay — the only component QoS directly controls, and typically the dominant one during congestion.

Service-Level Targets Worth Memorizing

Traffic type One-way latency Jitter Loss
Voice (VoIP) ≤ 150 ms (ITU-T G.114) ≤ 30 ms ≤ 1%
Interactive / conferencing video ≤ 150–200 ms ≤ 30 ms ≤ 0.1–1%
Streaming video ≤ 4–5 s (buffered) Not critical ≤ 5%
Transactional data ≤ 400 ms N/A Low; TCP retransmits

How Congestion Actually Happens

Congestion is not simply “the link is full on average.” Three patterns produce drops on links that look lightly loaded in a five-minute SNMP graph:

  • Speed mismatch — a 10 Gbps server transmitting to a 1 Gbps WAN handoff. The egress buffer absorbs the difference until it cannot.
  • Aggregation / many-to-one — twenty access ports feeding a single uplink, or an incast pattern where many servers answer one request simultaneously.
  • Microbursts — sub-millisecond bursts that overrun buffers while the interface averages 20% utilization. Interface counters show output drops that no utilization graph explains.

When a tail-drop queue fills, every TCP flow in it loses packets at nearly the same instant, every flow halves its window at the same instant, and the link goes idle before all flows ramp back up together. This is TCP global synchronization, and it is the reason congestion-avoidance mechanisms such as WRED exist. The opposite failure — buffers so deep that packets sit for hundreds of milliseconds instead of being dropped — is bufferbloat, which destroys interactive traffic while TCP throughput looks fine.

The Three QoS Models

Best Effort

No classification, no differentiation, FIFO everywhere. Simple and infinitely scalable, with zero guarantees. This remains the correct answer for links that are never congested.

Integrated Services (IntServ)

IntServ provides hard, per-flow guarantees using RSVP (Resource Reservation Protocol) to signal a reservation end to end. Each device along the path performs admission control and either accepts the flow or rejects it. The model is often called the “hard QoS” or “telephone” model: a call either gets its resources or is refused.

  • Strengths: explicit admission control, per-flow guarantees, prevents oversubscription of the priority queue.
  • Weaknesses: every hop must keep per-flow state, which does not scale to core links carrying millions of flows. Requires RSVP support everywhere.
  • Where it survives: RSVP-based Call Admission Control in collaboration deployments, and RSVP-TE in MPLS traffic engineering.

Differentiated Services (DiffServ)

DiffServ is the model deployed in virtually every modern enterprise. Traffic is classified into a small number of aggregate classes at the network edge and marked in the packet header. Every subsequent hop simply reads the mark and applies a Per-Hop Behavior (PHB) — a locally defined forwarding treatment. There is no signalling and no per-flow state in the core.

Two consequences follow, and both appear regularly in exam questions and in real outages:

  • DiffServ is per-hop. A marking means nothing unless a device is configured to act on it. A network where every access switch marks EF but no uplink has a queuing policy has no QoS at all.
  • DiffServ provides no admission control. Nothing stops a hundred voice calls from entering a priority queue sized for thirty. Admission control must come from somewhere else (CUCM locations, RSVP, or a policer).

Marking: Where the Bits Live

Layer 2 Markings

  • 802.1p CoS — three bits (the Priority Code Point) inside the 802.1Q VLAN tag, giving values 0–7. Critical limitation: an untagged frame has no CoS field. CoS survives only on trunks and on the voice VLAN of an access port, and is destroyed the moment the frame crosses a router.
  • MPLS EXP / Traffic Class — three bits in the MPLS shim header, used by service providers to carry a compressed version of the customer’s DSCP across the core.
  • 802.11 User Priority (UP) — three bits in the 802.11 QoS Control field, used by WMM. Covered in the wireless section below.

Layer 3 Markings: The DiffServ Field

The second byte of the IPv4 header (the legacy Type of Service byte) and the IPv6 Traffic Class byte are both interpreted as the DiffServ field:

IPv4 ToS byte / IPv6 Traffic Class byte — 8 bitsIP Precedence (legacy, 3 bits)bit 01bit 10bit 21bit 31bit 41bit 50bit 60bit 70DSCP — 6 bits, values 0–63ECN — 2 bitsShown above: 101110 00DSCP 101110 = 46 = EF • ECN 00 = Non-ECT • whole byte = 0xB8
Figure 1 — The DiffServ field. The first three DSCP bits are the same bits that used to be IP Precedence, which is why the Class Selector values are backward compatible.

IP Precedence is the legacy three-bit interpretation (values 0–7). DSCP is the modern six-bit interpretation (values 0–63). The first three DSCP bits are the same bits as IP Precedence, which is what makes the Class Selector values backward compatible.

The remaining two bits are ECN (Explicit Congestion Notification):

ECN bits Meaning
00 Non-ECT — endpoint does not support ECN
01 / 10 ECT(1) / ECT(0) — ECN-capable transport
11 CE — Congestion Experienced, set by a router instead of dropping

The Standard PHBs

Default (DF) — DSCP 0, best effort, FIFO.

Class Selector (CSx) — DSCP values whose last three bits are zero, mapping one-to-one onto IP Precedence. CSx = x × 8.

Assured Forwarding (AFxy) — four classes (x = 1–4) each with three drop precedences (y = 1–3). Higher y means more likely to be dropped. All three drop precedences of one class share a queue; the drop precedence only influences which packets WRED discards first. The conversion formula is worth memorizing:

DSCP(AFxy) = 8x + 2y

AF31 = (8 × 3) + (2 × 1) = 26
AF43 = (8 × 4) + (2 × 3) = 38

Expedited Forwarding (EF) — DSCP 46 (101110), the low-loss, low-latency, low-jitter PHB reserved for voice. RFC 5865 adds Voice-Admit (DSCP 44, 101100) for admitted voice flows.

DSCP Reference Table

Name Decimal Binary IP Prec
DF / CS0 0 000000 0
CS1 8 001000 1
AF11 / AF12 / AF13 10 / 12 / 14 001010 / 001100 / 001110 1
CS2 16 010000 2
AF21 / AF22 / AF23 18 / 20 / 22 010010 / 010100 / 010110 2
CS3 24 011000 3
AF31 / AF32 / AF33 26 / 28 / 30 011010 / 011100 / 011110 3
CS4 32 100000 4
AF41 / AF42 / AF43 34 / 36 / 38 100010 / 100100 / 100110 4
CS5 40 101000 5
Voice-Admit 44 101100 5
EF 46 101110 5
CS6 48 110000 6
CS7 56 111000 7

RFC 4594 / Cisco 12-Class Model

RFC 4594 provides the marking recommendations that Cisco’s designs follow. Memorizing this table answers a large share of QoS design questions.

Application class Marking Queuing treatment
VoIP telephony EF Priority queue
Broadcast video CS5 Priority (or dedicated BW)
Real-time interactive CS4 Priority (or dedicated BW)
Multimedia conferencing AF41 / AF42 / AF43 Bandwidth + DSCP-based WRED
Multimedia streaming AF31 / AF32 / AF33 Bandwidth + DSCP-based WRED
Network control CS6 Small dedicated bandwidth
Signaling (SIP, SCCP, H.323) CS3 Small dedicated bandwidth
Ops / Admin / Management (OAM) CS2 Small dedicated bandwidth
Transactional data AF21 / AF22 / AF23 Bandwidth + DSCP-based WRED
Bulk data AF11 / AF12 / AF13 Bandwidth + DSCP-based WRED
Scavenger CS1 Minimal bandwidth (1%)
Best effort DF Remaining bandwidth (~25%)

Networks rarely deploy all twelve classes. The common reductions are 4-class (voice, signalling/control, transactional, best effort), 8-class, and 12-class, and the model chosen must match end to end — including whatever the service provider offers, which is frequently only 4 to 6 classes.

Trust Boundaries

A trust boundary is the point where the network begins believing the markings arriving in packets. The design rule: mark as close to the source as possible, and trust as close to the source as is safe.

TRUST BOUNDARYPCuntrustedIP phonetrustedAccess switchconditional trustDistributiontrust DSCPWAN routershape + LLQWANany markingEF / CoS 5PC traffic re-marked to DSCP 0phone traffic trusted only while CDP still sees a Cisco phonePast the boundary every hop simply reads the DSCP and applies its per-hop behaviour — no reclassification.
Figure 2 — Trust boundary. Mark as close to the source as possible; trust only what can be verified. Everything downstream acts on the mark alone.

An unmanaged PC can set any DSCP it likes. A user who discovers that marking their game traffic EF gets it into the priority queue has effectively taken over the voice queue. Consequently:

  • Trusted — IP phones, access points, managed servers, controlled uplinks. Accept incoming DSCP/CoS.
  • Untrusted — user PCs, printers, guest devices, anything on a port a visitor can reach. Rewrite the marking at ingress, or force it to 0.
  • Conditional trust — the port trusts markings only while a Cisco IP phone (or an AP) is detected via CDP/LLDP. If the phone is unplugged and a laptop is connected in its place, trust collapses automatically.

Where an endpoint cannot be trusted but its traffic still needs classification, the access edge marks it using an ingress MQC policy that matches by protocol, port, ACL, or NBAR2 application.

QoS Components: The Toolbox

These are the “QoS components” the blueprint refers to. Every one of them is a per-hop behaviour applied in a specific direction, and direction matters more than anything else in troubleshooting.

service-policy input (ingress)ClassifyMarkPolicepacketinForwarding / lookupservice-policy output (egress)ClassifyMarkQueueLLQ / CBWFQCongestion avoidWRED / ECNShapewireforwarded packet enters the egress pathPolicing works in either direction — shaping is egress only.Queuing and congestion avoidance take effect only while the interface is congested.
Figure 3 — Where each component runs. Classification and marking belong at the edge; queuing, congestion avoidance and shaping act on the way out.

1. Classification

Deciding which class a packet belongs to. Methods, roughly from cheapest to most expensive:

  • Marking-basedmatch dscp ef, match cos 5, match precedence 5, match mpls experimental topmost. Fastest; used at every hop past the edge.
  • ACL-basedmatch access-group name VOICE-SIGNALING, matching addresses, protocols, and port ranges.
  • Interface / VLAN basedmatch input-interface, match vlan.
  • NBAR2 — deep packet inspection identifying over 1,400 applications, including encrypted traffic via SD-AVC and heuristics. match protocol webex-meeting. Expensive in CPU, used at the edge only.
  • Internal labelsqos-group and discard-class, which carry a classification decision between policies inside one device without touching packet headers.

Inside a class-map, match-all requires every condition (logical AND) and match-any requires one (logical OR). Within a policy-map, classes are evaluated top down, first match wins, and everything unmatched falls into class-default.

2. Marking

Writing the classification decision into the packet or frame so downstream hops do not need to reclassify: set dscp, set cos, set precedence, set qos-group. Related tools include table maps, which translate one field to another wholesale (for example CoS-to-DSCP or DSCP-to-DSCP mutation at an administrative boundary) instead of writing dozens of class-maps.

3. Policing

Enforcing a rate by dropping or re-marking excess traffic. Policing does not buffer, so it does not add delay — it adds loss, and TCP reacts badly to it. Policers may be applied inbound or outbound; inbound is the usual choice.

The mechanism is a token bucket. Tokens accumulate at the Committed Information Rate (CIR); a packet may be forwarded only if the bucket holds enough tokens for its size. The bucket depth is the committed burst, Bc, expressed in bytes on IOS policers.

Policer type RFC Colours Parameters
Single-rate two-colour conform, exceed CIR, Bc
Single-rate three-colour (srTCM) 2697 conform, exceed, violate CIR, Bc, Be
Two-rate three-colour (trTCM) 2698 conform, exceed, violate CIR, PIR, Bc, Be

Actions per colour: transmit, drop, set-dscp-transmit, set-prec-transmit, set-clp-transmit. The most useful pattern is not “drop the excess” but “re-mark the excess to a scavenger value and let it through if there is room” — a soft policer.

4. Shaping

Enforcing a rate by buffering and delaying excess traffic. Shaping smooths bursts into a steady stream, so TCP tolerates it far better than policing. Shaping is egress only, and it introduces delay and requires memory.

Tc (interval)  = Bc / CIR
Bc (bits)      = CIR × Tc

Example: CIR = 20 Mbps, target Tc = 10 ms
Bc = 20,000,000 × 0.010 = 200,000 bits per interval

The shaper releases Bc bits every Tc interval. A long interval means large, bursty releases and poor jitter behaviour for voice; a short interval means smoother output. Platform defaults vary, and a Tc of about 10 ms is the usual recommendation when voice rides the shaped link.

The classic use case is a sub-rate handoff: a physical GigabitEthernet interface to a carrier who only sells 20 Mbps. Without a shaper the router transmits at 1 Gbps, the carrier polices at 20 Mbps, and the drops happen in the provider’s equipment where no local queuing policy can protect voice. Shaping to the contracted rate moves the congestion point back inside the router, where the queuing policy can act on it.

PolicingratetimeCIRshaded traffic is dropped or re-marked — no delay addedShapingratetimeCIRshaded traffic is buffered and sent later — no loss, but delaydrainsDashed line = offered traffic. Solid line = what leaves the interface.
Figure 4 — Policing versus shaping against the same bursty input. The policer clips; the shaper delays. TCP recovers far better from the second.

5. Congestion Management (Queuing)

Queuing decides the order of departure once a queue has formed. It only takes effect during congestion — a fact that surprises people watching an empty policy on an uncongested link.

  • FIFO — single queue, default on high-speed interfaces.
  • WFQ (Weighted Fair Queuing) — flow-based, automatically favours low-volume flows, weighted by IP Precedence. Historically the default on serial links at or below 2.048 Mbps. No explicit class control.
  • CBWFQ (Class-Based WFQ) — a queue per user-defined class with a guaranteed minimum bandwidth. A class may exceed its guarantee when other classes are idle.
  • LLQ (Low-Latency Queuing) — CBWFQ plus a strict-priority queue serviced ahead of everything else. The priority queue is implicitly policed at its configured rate during congestion, which prevents a flood of EF traffic from starving every other class. LLQ is the tool for voice.
Classifyclass-mapmixed trafficPRIORITY — EF voicestrict priority, served firstVIDEO — AF41bandwidth remaining 25%TRANSACTIONAL — AF21bandwidth remaining 25%SCAVENGER — CS1bandwidth remaining 1%class-defaultremaining 29% + fair-queueScheduleregress linkThe priority queue is served ahead of everything else, but is implicitly policed at its configured rateduring congestion — so a flood of EF traffic cannot starve the other classes.
Figure 5 — LLQ = CBWFQ plus one strict-priority queue. Weights divide what remains after the priority queue has been served.

Bandwidth can be expressed three ways, and mixing them inside one policy is rejected:

  • bandwidth 512 — absolute kbps.
  • bandwidth percent 20 — percentage of the interface bandwidth (or of the parent shaper’s rate in a hierarchical policy).
  • bandwidth remaining percent 30 — percentage of what is left after the priority queues take their share. This is the form to use in hierarchical policies, because it scales automatically when the parent shaper’s rate changes.

By default, only 75% of interface bandwidth may be reserved by CBWFQ classes; the remainder is held back for control-plane and Layer 2 overhead. max-reserved-bandwidth changes this, and should be changed knowingly rather than reflexively.

6. Congestion Avoidance

Managing the queue before it overflows.

  • Tail drop — the default: once the queue is full, discard everything else. Causes global synchronization.
  • WRED (Weighted Random Early Detection) — begins dropping randomly once average queue depth passes a minimum threshold, dropping more aggressively as depth rises toward the maximum threshold, above which everything is dropped. The drop probability at the maximum threshold is the Mark Probability Denominator (MPD, default 1/10).
  • DSCP-based WRED — different thresholds per DSCP, which is precisely how AF drop precedence becomes meaningful: AF13 starts being dropped well before AF11.
  • ECN — instead of dropping an ECN-capable packet, set the CE bits and let the receiver signal the sender to slow down. Congestion feedback without loss.
average queue depth (packets)drop probability16243256606401/101.0AF13AF12AF11Mark Probability Denominator (1/10)is reached at the maximum thresholdall droppedBelow the minimum threshold: no drops.Between the thresholds: random drops, rising.Above the maximum: tail drop, everything.AF13 starts being discarded long before AF11 — that is the whole meaning of AF drop precedence.Vertical axis compressed above 1/10 for legibility.
Figure 6 — DSCP-based WRED. Three drop profiles inside one queue, so the same class can shed its least important traffic first.

WRED is for TCP. Applying it to voice or to a priority queue is a configuration error — UDP does not back off, so the drops are pure damage.

7. Link Efficiency (Legacy)

Relevant mainly to slow WAN links and to exam history: LFI (Link Fragmentation and Interleaving) and MLPPP with interleaving chop large frames so voice can be interleaved between fragments; cRTP compresses the 40-byte IP/UDP/RTP header down to 2–4 bytes. At Ethernet speeds serialization delay is negligible and these tools are obsolete.

QoS Policy: The MQC Framework

Modular QoS CLI is the configuration model on IOS, IOS-XE, and (with platform differences) on the Catalyst 9000 and Catalyst 9800 series. Three steps, always in the same order:

! 1. class-map — WHAT is the traffic?
class-map match-any VOICE
 match dscp ef

! 2. policy-map — WHAT should happen to it?
policy-map WAN-EDGE
 class VOICE
  priority percent 10

! 3. service-policy — WHERE and in which direction?
interface GigabitEthernet0/0/0
 service-policy output WAN-EDGE

A Complete WAN Edge Policy

An eight-class egress policy for a 20 Mbps sub-rate Ethernet handoff on a physical GigabitEthernet interface. Note the hierarchical structure: the parent shapes to the contracted rate, the child queues within it.

! ---------- Classification ----------
class-map match-any VOICE
 match dscp ef
class-map match-any SIGNALING
 match dscp cs3
 match dscp af31
class-map match-any VIDEO
 match dscp af41 af42 af43
 match dscp cs4
class-map match-any NET-CTRL
 match dscp cs6
 match dscp cs2
class-map match-any TRANSACTIONAL
 match dscp af21 af22 af23
class-map match-any BULK
 match dscp af11 af12 af13
class-map match-any SCAVENGER
 match dscp cs1

! ---------- Child policy: queuing ----------
policy-map WAN-QUEUING
 class VOICE
  priority percent 10
 class VIDEO
  bandwidth remaining percent 25
  random-detect dscp-based
 class SIGNALING
  bandwidth remaining percent 5
 class NET-CTRL
  bandwidth remaining percent 5
 class TRANSACTIONAL
  bandwidth remaining percent 25
  random-detect dscp-based
 class BULK
  bandwidth remaining percent 10
  random-detect dscp-based
 class SCAVENGER
  bandwidth remaining percent 1
 class class-default
  bandwidth remaining percent 29
  fair-queue
  random-detect

! ---------- Parent policy: shaping ----------
policy-map WAN-SHAPE-20M
 class class-default
  shape average 20000000 200000
  service-policy WAN-QUEUING

interface GigabitEthernet0/0/0
 description WAN handoff - 20 Mbps CIR
 service-policy output WAN-SHAPE-20M
interface GigabitEthernet0/0/0 — 1 Gbps physicalparent: policy-map WAN-SHAPE-20M → shape average 20 MbpsVOICEpriority 10%VIDEO25%TRANSACTIONAL25%BULK10%class-default29%child: policy-map WAN-QUEUINGpriority percent 10bandwidth remaining percent — divides the 90% left after the LLQnarrow bands: SIGNALING 5% · NET-CTRL 5% · SCAVENGER 1%10% of the parent shaper = 2 Mbps, NOT 10% of the 1 Gbps interface.That inheritance is the entire reason for nesting the policies.
Figure 7 — Hierarchical QoS on a sub-rate handoff. Percentages in the child policy are measured against the parent shaper, not the physical interface.

Three details in that configuration are worth calling out:

  • priority percent 10 is measured against the parent shaper’s 20 Mbps, not the 1 Gbps interface — that is the entire point of the hierarchy.
  • bandwidth remaining percent values apply to the 90% left after the priority queue and total 100 across the non-priority classes.
  • random-detect appears only on TCP-dominant classes, never on VOICE.

Marking at the Access Edge

ip access-list extended VOICE-SIGNALING
 permit tcp any any range 2000 2002        ! SCCP
 permit tcp any any eq 5060
 permit udp any any eq 5060                ! SIP
ip access-list extended TRANSACTIONAL-APPS
 permit tcp any host 10.20.30.40 eq 1521   ! database

class-map match-any MARK-SIGNALING
 match access-group name VOICE-SIGNALING
class-map match-any MARK-TRANSACTIONAL
 match access-group name TRANSACTIONAL-APPS

policy-map ACCESS-EDGE-IN
 class MARK-SIGNALING
  set dscp cs3
 class MARK-TRANSACTIONAL
  set dscp af21
 class class-default
  set dscp default

interface GigabitEthernet1/0/12
 service-policy input ACCESS-EDGE-IN

The class-default action of set dscp default is what makes this an untrusted port: anything not explicitly recognized is re-marked to zero, so a user’s hand-set EF marking is erased.

Policing a Guest Network

policy-map GUEST-POLICER
 class class-default
  police cir 10000000 bc 12500 pir 20000000 be 25000
   conform-action transmit
   exceed-action set-dscp-transmit af11
   violate-action drop

interface Vlan50
 description Guest
 service-policy input GUEST-POLICER

The burst values come straight from the token-bucket formula, sized for a 10 ms interval:

Bc (bytes) = CIR × Tc / 8 = 10,000,000 × 0.010 / 8 = 12,500 bytes
Be (bytes) = PIR × Tc / 8 = 20,000,000 × 0.010 / 8 = 25,000 bytes

QoS Across Tunnels

When traffic is encapsulated in GRE or IPsec, the original IP header — and its DSCP — becomes payload. Two mechanisms matter:

  • ToS copy — by default, IOS copies the inner DSCP into the outer tunnel header, so downstream routers can classify on the outer header without decrypting. tunnel tos overrides this with a fixed value.
  • qos pre-classify — allows a service policy on the physical or tunnel interface to classify based on the inner header fields (source/destination addresses, ports) that would otherwise be hidden by encapsulation. Required whenever classification uses ACLs rather than DSCP on an encrypted path.
interface Tunnel10
 qos pre-classify

Wired QoS on Catalyst Switches

Switch QoS differs from router QoS in one fundamental way: it is implemented in hardware ASICs with a fixed number of queues and thresholds per port, not in software with arbitrary queue counts.

Platform Differences That Trip People Up

  • Legacy Catalyst (3560/3750-class) — QoS is globally disabled until mls qos is entered, and while it is disabled all markings pass through untouched. Trust is set with mls qos trust dscp / mls qos trust cos. Once QoS is enabled, the default is to trust nothing, so enabling mls qos without a matching interface configuration silently zeroes out every marking.
  • Catalyst 9000 (IOS-XE) — there is no mls qos command. QoS is always on, markings are trusted by default, and everything is configured with MQC. Trust is removed by applying a policy that re-marks.

Conditional Trust and Access-Port Configuration

! Catalyst 9000 / IOS-XE
interface GigabitEthernet1/0/10
 description IP phone + PC
 switchport mode access
 switchport access vlan 100
 switchport voice vlan 110
 trust device cisco-phone
 service-policy input ACCESS-EDGE-IN

! Legacy IOS equivalent
interface GigabitEthernet0/10
 mls qos trust device cisco-phone
 mls qos trust dscp

With conditional trust, the switch instructs the phone over CDP to re-mark PC traffic to CoS 0 as it passes through the phone’s internal switch, while the phone’s own voice traffic keeps EF/CoS 5. Remove the phone and trust disappears with it.

Egress Queuing on the Catalyst 9000

Catalyst 9000 ports support up to eight egress queues with three drop thresholds each, commonly deployed as 1P7Q3T (one priority queue) or 2P6Q3T (two priority queues). Queue structure is created by applying an output policy; without one, the port uses a minimal default queue set. Two platform-specific requirements catch people out: a priority class generally requires an explicit priority level, and congestion avoidance uses Weighted Tail Drop thresholds rather than WRED.

policy-map EGRESS-QUEUING
 class VOICE
  priority level 1
  police rate percent 10
 class VIDEO
  bandwidth remaining percent 30
  queue-buffers ratio 15
 class TRANSACTIONAL
  bandwidth remaining percent 25
  queue-limit dscp af23 percent 60
  queue-limit dscp af22 percent 70
  queue-limit dscp af21 percent 80
 class SCAVENGER
  bandwidth remaining percent 1
 class class-default
  bandwidth remaining percent 44

interface range GigabitEthernet1/0/1-48
 service-policy output EGRESS-QUEUING

Buffer tuning matters more on switches than on routers because the shared buffer pool is small relative to the port count. queue-buffers ratio distributes the port’s dedicated buffers between queues, and qos queue-softmax-multiplier increases how much of the shared pool a single queue may borrow — the standard first response to microburst-induced output drops.

AutoQoS

AutoQoS generates a full class-map / policy-map / interface configuration from one command, based on Cisco’s validated designs. It is a legitimate starting point and a well-known exam topic:

interface GigabitEthernet1/0/10
 auto qos trust dscp          ! trust an uplink or trusted device
 auto qos voip cisco-phone    ! conditional trust for a phone
 auto qos voip cisco-softphone

The generated configuration is ordinary MQC and can be inspected and edited afterwards with show run.

Wireless QoS

Wireless QoS is a separate problem because the medium is half-duplex and shared. There is no queue on a wire to manage; instead, stations contend for airtime, and QoS means influencing who wins that contention.

From DCF to EDCA

Under the original DCF, every station waited the same interframe space and drew a random backoff from the same contention window — all frames equal. 802.11e, certified by the Wi-Fi Alliance as WMM (Wi-Fi Multimedia), replaced this with EDCA (Enhanced Distributed Channel Access), which gives four access categories different contention parameters:

Access Category 802.11 User Priority Typical traffic Contention behaviour
AC_VO (Voice) 6, 7 VoIP Shortest AIFS, smallest CW — wins most often
AC_VI (Video) 4, 5 Video Short AIFS, small CW
AC_BE (Best Effort) 0, 3 Data Default
AC_BK (Background) 1, 2 Bulk, scavenger Longest AIFS, largest CW — defers to everything

The three EDCA knobs:

  • AIFSN — how many slot times a category waits before contending. Lower means faster access.
  • CWmin / CWmax — the random backoff range. Smaller windows mean shorter average waits and more frequent wins.
  • TXOP — how long a station may keep the medium once it wins, allowing frame bursting for video.
medium busyAC_VO (UP 6, 7)voiceTXAC_VI (UP 4, 5)videoTXAC_BE (UP 0, 3)best effortTXAC_BK (UP 1, 2)backgroundTXvoice reaches zero first and takes the mediumtimeAIFS — fixed wait (lower = faster access)CWmin/CWmax — random backoff rangeEDCA is statistical, not deterministic: voice is more likely to win the medium, never guaranteed to.
Figure 8 — EDCA access categories. Voice waits less and draws from a smaller backoff window, so it wins contention more often.

Note the consequence: WMM is statistical, not deterministic. Voice is more likely to win the medium, not guaranteed to.

The DSCP ↔ UP Mapping Problem

Traffic crosses between a six-bit wired marking and a three-bit wireless one twice on every round trip, and the mapping is where wireless voice quality is most often lost.

The naive mapping is “take the top three bits of DSCP” (that is, DSCP ÷ 8). Applied to EF, that produces UP 5 — AC_VI, the video category, not voice. Cisco’s implementations therefore map EF explicitly to UP 6. RFC 8325 standardizes a complete, sensible mapping for exactly this reason, including mapping network-control markings (CS6/CS7) down rather than into the highest wireless categories, since a client should never be able to claim the top category by marking CS7.

Directionally:

  • Downstream (AP to client) — the AP reads the DSCP of the inner packet, maps it to a UP, and places the frame in the corresponding EDCA queue.
  • Upstream (client to AP) — the client sets UP; the AP maps that to a DSCP and writes it into both the inner packet and the outer CAPWAP header, so the wired path between AP and WLC honours it.
Wireless phonemarks UP 6Access pointUP → DSCPAccess switchmust trust DSCPWLCdecapsulatesWired networkEF honoured802.11 UP 6 (AC_VO)CAPWAP outer DSCP = EFwired hops read the outer DSCPinner DSCP EF restored12345Where a wireless voice marking gets lost:1 client marks incorrectly, or not at all2 the AP’s UP-to-DSCP map demotes it (naive maps send EF to the video category)3 the WLAN QoS profile ceiling caps it — Silver instead of Platinum is the classic cause4 the AP’s switch port does not trust DSCP, so the CAPWAP outer header is zeroed5 no downstream queuing policy acts on EF, so the mark survives but changes nothing
Figure 9 — A wireless voice packet crosses two marking translations and one tunnel. Any of five points can silently demote it.

Because the CAPWAP tunnel carries its own outer DSCP, the wired infrastructure between the AP and a centrally-switched WLC classifies on that outer value. If the switches between them do not trust DSCP, wireless voice loses its treatment on the wired path even though everything is configured correctly on both ends.

WLC QoS Profiles

AireOS controllers define four “metal” profiles, each acting as a ceiling applied per WLAN:

Profile Intended use Effective maximum
Platinum Voice Up to EF / AC_VO
Gold Video Up to AF41 / AC_VI
Silver Best effort (default) Up to DF / AC_BE
Bronze Background / guest AC_BK

A profile never promotes traffic — it caps it. A WLAN left on Silver will demote EF voice to best effort no matter how correctly the phone marks its packets. This single fact explains a large proportion of “wireless voice is bad” tickets.

On the Catalyst 9800 (IOS-XE), the equivalent is MQC applied through the policy profile, which also provides per-client and per-SSID rate limiting:

policy-map GUEST-RATE-LIMIT
 class class-default
  police 5000000

wireless profile policy GUEST-POLICY
 service-policy input GUEST-RATE-LIMIT
 service-policy output GUEST-RATE-LIMIT
 no shutdown

Call Admission Control and Fastlane

  • WMM Admission Control (ACM) — when the ACM bit is set for an access category, clients must request airtime with a TSPEC before using it. The AP admits or refuses based on configured airtime limits. This is genuine admission control for the RF medium, and it is what prevents call 21 from ruining calls 1 through 20.
  • Cisco Fastlane / Fastlane+ — a joint Cisco/Apple capability that applies the RFC 8325-based marking maps, enables the appropriate profiles and AVC, and lets capable clients receive optimized treatment automatically instead of relying on hand-built mappings.
! Enable CAC for voice on the 5 GHz band (IOS-XE WLC)
ap dot11 5ghz cac voice acm
ap dot11 5ghz cac voice max-bandwidth 75
ap dot11 5ghz cac voice roam-bandwidth 6

Worked Examples

Example 1 — DSCP Conversion Both Ways

Q: What is AF32 in decimal and binary?
   8x + 2y  =  (8 × 3) + (2 × 2)  =  28
   28 in 6 bits = 011100
   First three bits 011 = IP Precedence 3

Q: A capture shows the ToS byte as 0xB8. What is the DSCP?
   0xB8 = 1011 1000
   DSCP = first 6 bits = 101110 = 46 = EF
   ECN  = last 2 bits  = 00 = Non-ECT

Q: DSCP 24 — which PHB?
   24 = 011000. Last three bits are 000, so it is a Class Selector.
   24 / 8 = 3  ->  CS3 (signalling)

Example 2 — Sizing the Priority Queue for Voice

Bandwidth per call must be computed at the layer the policy operates on. For G.711 with 20 ms sample sizes:

Payload per packet : 64,000 bps × 0.020 s / 8 = 160 bytes
RTP + UDP + IP     : 12 + 8 + 20              =  40 bytes
                                                ---------
IP-layer packet                                = 200 bytes
Packet rate        : 1 / 0.020                 =  50 pps

IP-layer bandwidth : 200 × 8 × 50   = 80,000 bps  = 80.0 kbps
+ Ethernet overhead (18 bytes)      : 218 × 8 × 50 = 87.2 kbps

G.729 (8 kbps codec, 20-byte payload):
IP-layer : 60 × 8 × 50  = 24.0 kbps
Ethernet : 78 × 8 × 50  = 31.2 kbps

Sizing a 20 Mbps WAN link for 30 concurrent G.711 calls plus signalling:

30 calls × 87.2 kbps  = 2,616 kbps  ≈ 2.62 Mbps
2.62 / 20             = 13.1%  ->  priority percent 14

Signalling budget: roughly 2% -> bandwidth remaining percent 2

The design guideline is that the priority queue should not exceed roughly 33% of link capacity. Beyond that, the priority traffic starves everything else so consistently that the network behaves as if it had no QoS at all — only inverted.

Example 3 — Reading show policy-map interface

Router# show policy-map interface GigabitEthernet0/0/0

 GigabitEthernet0/0/0

  Service-policy output: WAN-SHAPE-20M

    Class-map: class-default (match-any)
      48293841 packets, 39482930481 bytes
      Match: any
      Queueing
      queue limit 416 packets
      (queue depth/total drops/no-buffer drops) 0/1043/0
      shape (average) cir 20000000, bc 200000, be 200000
      target shape rate 20000000

      Service-policy : WAN-QUEUING

        Class-map: VOICE (match-any)
          8402913 packets, 1204981234 bytes
          Match: dscp ef (46)
          Priority: 10% (2000 kbps), burst bytes 50000,
          Priority Rate Limited: 0 packets

        Class-map: BULK (match-any)
          1204812 packets, 984012933 bytes
          Match: dscp af11 (10) af12 (12) af13 (14)
          Queueing
          queue limit 64 packets
          (queue depth/total drops/no-buffer drops) 12/8402/0
          bandwidth remaining 10%
            Exp-weight-constant: 9 (1/512)
            Mean queue depth: 11 packets
            class  Transmitted    Random drop    Tail drop   Minimum Maximum Mark
                   pkts/bytes     pkts/bytes     pkts/bytes  thresh  thresh  prob
            af11   904812/7.1M    102/84K        0/0         32      64      1/10
            af13   210421/1.8M    8300/6.9M      0/0         16      64      1/10

What this output establishes:

  • The shaper is active at 20 Mbps and has queued (not dropped) traffic — 1,043 drops across billions of packets is healthy.
  • Priority Rate Limited: 0 packets means the implicit LLQ policer has never fired, so the voice queue is correctly sized.
  • DSCP-based WRED is doing exactly what it should: AF13 is being randomly dropped roughly 80× more often than AF11, and no class is tail-dropping.
  • Zero counters would not mean the policy is broken — queuing statistics only increment during congestion.

Lab Exercises

These labs run on CML, EVE-NG, GNS3, or physical gear. Routers can be IOSv/CSR/Catalyst 8000v; the switch labs assume a Catalyst 9000 running IOS-XE (the 3560/3750 syntax is noted where it differs). Attempt each task before opening the answer.

Lab 1 — Classification and Marking at the Access Edge

Topology: a Catalyst switch with an IP phone and PC on Gi1/0/10 (data VLAN 100, voice VLAN 110), uplink Gi1/0/48 to a router.

Tasks:

  1. Configure the access port for the phone-plus-PC pattern with conditional trust.
  2. Build an ingress policy that marks SIP signalling (TCP/UDP 5060) as CS3, traffic to the application server 10.20.30.40 on TCP 1521 as AF21, and forces everything else to DSCP 0.
  3. Apply the policy and verify the marks with a packet capture or by inspecting the policy counters.
  4. Explain what changes if the phone is unplugged and a laptop is connected directly.
Show answer
ip access-list extended SIP-SIGNALING
 permit tcp any any eq 5060
 permit udp any any eq 5060
ip access-list extended DB-APP
 permit tcp any host 10.20.30.40 eq 1521

class-map match-any SIGNALING
 match access-group name SIP-SIGNALING
class-map match-any TRANSACTIONAL
 match access-group name DB-APP

policy-map ACCESS-EDGE-IN
 class SIGNALING
  set dscp cs3
 class TRANSACTIONAL
  set dscp af21
 class class-default
  set dscp default

interface GigabitEthernet1/0/10
 switchport mode access
 switchport access vlan 100
 switchport voice vlan 110
 trust device cisco-phone
 service-policy input ACCESS-EDGE-IN

! Verify
show policy-map interface GigabitEthernet1/0/10
show run interface GigabitEthernet1/0/10

Task 4: Conditional trust is driven by CDP/LLDP discovery of a Cisco phone. With the phone gone, the switch stops trusting the port, so incoming CoS/DSCP is treated as untrusted and overwritten. The laptop cannot claim EF. The ingress policy still runs and still re-marks non-matching traffic to 0, so the port fails closed — which is the desired behaviour.

Lab 2 — Hierarchical Shaping with LLQ on a Sub-Rate WAN Link

Topology: R1 Gi0/0/0 is a physical 1 Gbps interface, but the carrier contract is 50 Mbps. Voice load is up to 40 concurrent G.711 calls.

Tasks:

  1. Calculate the required priority bandwidth as a percentage of the contracted rate.
  2. Build a child queuing policy with classes for voice, signalling, video, transactional, scavenger, and best effort.
  3. Build a parent policy that shapes to 50 Mbps with a 10 ms Tc, and nest the child inside it.
  4. Apply it and confirm from the running counters that the shaper — not the physical interface — is the limiting point.
  5. Explain why bandwidth percent would be the wrong choice here.
Show answer
! Task 1
40 calls × 87.2 kbps = 3,488 kbps ≈ 3.49 Mbps
3.49 / 50 = 7.0%  ->  priority percent 8 (rounded up for headroom)

! Task 3 burst calculation
Bc = CIR × Tc = 50,000,000 × 0.010 = 500,000 bits

! Tasks 2 and 3
class-map match-any VOICE
 match dscp ef
class-map match-any SIGNALING
 match dscp cs3
class-map match-any VIDEO
 match dscp af41 af42 af43
class-map match-any TRANSACTIONAL
 match dscp af21 af22 af23
class-map match-any SCAVENGER
 match dscp cs1

policy-map WAN-QUEUING
 class VOICE
  priority percent 8
 class SIGNALING
  bandwidth remaining percent 4
 class VIDEO
  bandwidth remaining percent 30
  random-detect dscp-based
 class TRANSACTIONAL
  bandwidth remaining percent 30
  random-detect dscp-based
 class SCAVENGER
  bandwidth remaining percent 1
 class class-default
  bandwidth remaining percent 35
  fair-queue
  random-detect

policy-map WAN-SHAPE-50M
 class class-default
  shape average 50000000 500000
  service-policy WAN-QUEUING

interface GigabitEthernet0/0/0
 service-policy output WAN-SHAPE-50M

! Task 4
show policy-map interface GigabitEthernet0/0/0
! Look for "shape (average) cir 50000000" with a non-zero queue depth
! under load, and Priority Rate Limited: 0 packets.

Task 5: bandwidth percent in the child policy is evaluated against the parent’s shaped rate, so it would work here — but it is brittle. Any priority queue takes its share first, and absolute or interface-relative percentages do not re-scale cleanly when the shaper rate changes at contract renewal. bandwidth remaining percent divides only what is actually left after the LLQ, so raising the shaper from 50 Mbps to 100 Mbps keeps every proportion correct with a single-line change.

Lab 3 — Two-Rate Three-Colour Policing

Topology: R1 Vlan50 is a guest subnet. The policy is 20 Mbps committed, 40 Mbps peak.

Tasks:

  1. Calculate Bc and Be for a 10 ms interval.
  2. Configure a trTCM policer that transmits conforming traffic, re-marks exceeding traffic to CS1, and drops violating traffic.
  3. Apply it inbound and generate traffic above 40 Mbps to confirm all three actions fire.
  4. State what would change if this were a shaper instead, and which choice suits TCP better.
Show answer
! Task 1
Bc = 20,000,000 × 0.010 / 8 = 25,000 bytes
Be = 40,000,000 × 0.010 / 8 = 50,000 bytes

! Task 2
policy-map GUEST-TRTCM
 class class-default
  police cir 20000000 bc 25000 pir 40000000 be 50000
   conform-action transmit
   exceed-action set-dscp-transmit cs1
   violate-action drop

interface Vlan50
 service-policy input GUEST-TRTCM

! Task 3
show policy-map interface Vlan50
! conformed / exceeded / violated counters should all be incrementing

Task 4: A shaper would buffer the excess and release it at the configured rate instead of dropping or re-marking it, adding delay but no loss. Because TCP interprets loss as congestion and halves its window, shaping produces substantially better goodput for TCP traffic. Policing remains the right tool when excess must be discarded or demoted rather than delayed, when the action is needed at ingress (shaping is egress-only), or when buffering is not affordable.

Lab 4 — Congestion Avoidance with DSCP-Based WRED and ECN

Topology: the WAN edge router from Lab 2.

Tasks:

  1. Add DSCP-based WRED to the transactional and bulk classes.
  2. Set explicit minimum/maximum thresholds so AF23 begins dropping earlier than AF21.
  3. Enable ECN marking on the bulk class.
  4. Explain why WRED must never be applied to the voice class.
  5. Read the WRED section of show policy-map interface and identify which counter proves WRED is working rather than the queue simply overflowing.
Show answer
policy-map WAN-QUEUING
 class TRANSACTIONAL
  bandwidth remaining percent 30
  random-detect dscp-based
  random-detect dscp 18 32 64 10     ! AF21 min 32 max 64
  random-detect dscp 20 24 64 10     ! AF22 min 24 max 64
  random-detect dscp 22 16 64 10     ! AF23 min 16 max 64
 class BULK
  bandwidth remaining percent 10
  random-detect dscp-based
  random-detect ecn

Task 4: WRED deliberately drops packets early to signal TCP senders to slow down. Voice is UDP and does not respond to loss with rate reduction, so early drops produce audible degradation and no benefit. The priority queue should also never be deep enough for WRED to be relevant — if it is, the queue is mis-sized.

Task 5: The Random drop column. Non-zero random drops with zero tail drops means WRED is managing depth before the queue fills. Rising tail drops mean WRED thresholds are too high or the class is simply starved of bandwidth.

Lab 5 — Switch Egress Queuing and Microburst Drops

Topology: a Catalyst 9000 access switch, uplink Gi1/0/48 showing output drops while averaging 15% utilization.

Tasks:

  1. Explain how a link averaging 15% can drop packets.
  2. Identify the commands that confirm the drops are on the egress queue and identify which queue.
  3. Build an egress policy with a priority queue for voice, weighted classes for video and transactional, and 1% for scavenger.
  4. Apply buffer tuning to reduce microburst drops.
Show answer

Task 1: Utilization counters average over the polling interval (typically 30 s to 5 min). A burst of many senders transmitting simultaneously for a few hundred microseconds can exceed the egress buffer while contributing almost nothing to the average. Incast — many servers replying to one request at once — is the classic generator.

! Task 2
show interfaces GigabitEthernet1/0/48 | include output drops
show platform hardware fed switch active qos queue stats interface Gi1/0/48
! The per-queue drop counters identify which class is losing packets.

! Task 3
policy-map EGRESS-QUEUING
 class VOICE
  priority level 1
  police rate percent 10
 class VIDEO
  bandwidth remaining percent 30
  queue-buffers ratio 15
 class TRANSACTIONAL
  bandwidth remaining percent 30
 class SCAVENGER
  bandwidth remaining percent 1
 class class-default
  bandwidth remaining percent 39

interface GigabitEthernet1/0/48
 service-policy output EGRESS-QUEUING

! Task 4
qos queue-softmax-multiplier 1200

Task 4 rationale: increasing the softmax multiplier lets a single queue borrow more of the shared buffer pool during a burst, and queue-buffers ratio allocates a larger dedicated share to the classes that need it. Both trade latency for loss, so they should be applied to the burst-affected class rather than globally to every queue.

Lab 6 — Wireless QoS End to End

Topology: a Catalyst 9800 WLC, a centrally-switched voice WLAN, and the access switch the AP connects to.

Tasks:

  1. Identify every place a voice packet’s marking can be lost between a wireless phone and a wired phone.
  2. Confirm WMM is required (not merely allowed) on the voice WLAN, and explain the difference.
  3. Configure a policy profile with a 5 Mbps per-client rate limit on the guest WLAN.
  4. Enable voice CAC on 5 GHz with a 75% airtime budget and 6% roaming reserve.
  5. Explain why the AP’s switch port must trust DSCP.
Show answer

Task 1: Five places, in order along the path — (a) the client marks incorrectly or not at all; (b) the AP’s UP-to-DSCP map demotes it; (c) the WLAN’s QoS profile ceiling caps it below EF (Silver instead of Platinum is the classic cause); (d) the AP’s switch port or an intermediate wired hop does not trust DSCP and zeroes the CAPWAP outer header; (e) the WAN or campus uplink has no queuing policy acting on EF, so the marking survives but changes nothing.

Task 2: WMM allowed permits both WMM and legacy non-WMM clients to associate; non-WMM clients transmit without access categories and contend equally with voice, degrading it for everyone. WMM required refuses association to non-WMM clients, guaranteeing that every station on the WLAN participates in EDCA. Voice SSIDs should require it.

! Task 3
policy-map GUEST-RATE-LIMIT
 class class-default
  police 5000000

wireless profile policy GUEST-POLICY
 service-policy input GUEST-RATE-LIMIT
 service-policy output GUEST-RATE-LIMIT
 no shutdown

! Task 4
ap dot11 5ghz cac voice acm
ap dot11 5ghz cac voice max-bandwidth 75
ap dot11 5ghz cac voice roam-bandwidth 6

! Verification
show wireless profile policy detailed GUEST-POLICY
show ap dot11 5ghz network
show wireless client mac-address <mac> detail

Task 5: With central switching, client traffic is tunnelled from the AP to the WLC inside CAPWAP. Wired switches along that path see only the outer header, and the AP copies the derived DSCP into it precisely so those switches can classify without inspecting the payload. A port that does not trust DSCP rewrites that outer value to 0, and every wired hop between the AP and the WLC then treats voice as best effort.

Verification and Troubleshooting Command Set

! Routers / IOS-XE
show policy-map                                  ! configured policies
show policy-map interface GigabitEthernet0/0/0   ! live counters (the key command)
show class-map
show interfaces GigabitEthernet0/0/0 | include drops|queue

! Catalyst switches
show mls qos                                     ! legacy: is QoS enabled?
show mls qos interface Gi0/10                    ! legacy: trust state
show mls qos maps                                ! legacy: CoS/DSCP maps
show platform hardware fed switch active qos queue stats interface Gi1/0/48
show platform software fed switch active qos policy summary

! Wireless (Catalyst 9800)
show wireless profile policy detailed <name>
show wlan id <id>
show ap dot11 5ghz network
show wireless client mac-address <mac> detail   ! per-client QoS state

! Path measurement
show ip sla statistics
show ip sla configuration

Common Mistakes and Exam Traps

  • Zero counters do not mean a broken policy. Queuing acts only during congestion.
  • Shaping is egress only. Policing works in both directions. This distinction is a reliable exam question.
  • Policing drops; shaping delays. TCP prefers shaping; policing is for enforcement and demotion.
  • CoS does not survive a router or an untagged link. Long-haul markings must be DSCP.
  • Enabling mls qos on a legacy switch without setting trust erases every marking. On the Catalyst 9000 there is no such command and trust is the default.
  • AF drop precedence is inverted relative to intuition. AF13 is dropped before AF11.
  • The LLQ priority queue is implicitly policed. Excess EF traffic is dropped during congestion rather than allowed to starve other classes.
  • Never apply WRED to a UDP or priority class.
  • DiffServ has no admission control. Call 21 into a 20-call queue degrades all 21.
  • A wireless QoS profile is a ceiling, never a promotion. Silver caps voice at best effort.
  • The naive DSCP-to-UP mapping puts EF in the video category. RFC 8325 exists to fix this.
  • QoS cannot create bandwidth. It only decides who suffers when there is not enough. A permanently saturated link needs an upgrade, not a policy.

Summary

QoS on the ENCOR blueprint reduces to a short chain of ideas. Congestion produces four measurable impairments. DiffServ addresses them by classifying traffic into a handful of aggregate classes at the edge, marking them in the DSCP field, and having every hop apply a per-hop behaviour built from six components — classification, marking, policing, shaping, queuing, and congestion avoidance — expressed through MQC’s class-map / policy-map / service-policy structure. Wired switches implement the same model with fixed hardware queues and platform-specific trust defaults; wireless implements it through EDCA access categories, DSCP-to-UP mapping, and per-WLAN profile ceilings, with CAPWAP carrying the marking across the wired path in between.

The single most valuable habit when studying this topic is to build a policy, congest the link deliberately, and read show policy-map interface until every counter in it is accounted for. Every concept above becomes concrete in that output.

Leave a Reply