QoS Queuing Methods

Queuing in Cisco routers has been around for quite some time. Back then the command’s were not standardised and using some of the older methods requires that you memorise some really arcane commands. The new Modular Quality of service (MQC) makes life much easier. This is also sometimes referred to as Class Based Queuing.

FIFO – First in First Out

  • the most simplest
  • to configure
    • Just unconfigure all other methods
  • use “show int x/y | i que” to check method
  • change que length: hold-queue x out

PQ – Priority Queuing

  • not MQC enabled
  • good for low latency requirements
  • 4 queues – High, Medium, Normal, Low
  • always serve the high first, if empty then medium and so on
  • to configure
    • 1) create a priority list: (config)# priority-list x ….
    • 2) apply to interface: (config-if)# priority-group x

CQ – Custom Queuing

  • not MQC enabled
  • good for reserving bandwidth. There are some corner cases where this does not work. (See ODOM)
  • 16 queues – labelled 1 to 16
  • set to bytes to transmit per queue
  • service all queues in round robin fashion
  • this guarantees minimum bandwidth per queue
  • to configure
    • 1) create que list: (config)# queue-list x que y (where x is list number and y is que number)
    • 2) apply to interface: (config-if)# custom-que-list x

 MDRR – Modified Deficit Round Robin

  •  8 queues – labelled 0 -7
  • exactly like CQ but provides better bandwidth control
  • only available on GSRs (ie 12000 routers)

WFQ – Weighted Fair Queuing

  • default option
  • good for low volume flows
  • not MQC enabled
  • 4096 queues (unconfigurable)
  • based on classifying flows automatically
  • provides all flows with equal bandwidth
  • uses modified tail drop
  • to configure:
    • 1) no need to create anything
    • 2) apply to interface: (config-if)# fair-queue

CBWFQ – Class Based Weighted Fair Queuing

  • MQC enabled
  • 64 queues – each one is reference with a class statement in MQC speak
  • does not have the bandwidth issues like CQ
  • like CQ in that you can reserve bandwidth but in % not in bytes
  • only within the default queue you can use WFQ but all the rest use FIFO
  • the default queue can use tail drop or WRED. All other queues use tail drop. If you end up using WFQ then you will use modified tail drop.
  • to configure
    • create policy
      • (config)# class-map match-all x
      • (config)# policy-map xxx 
          • class x
            • bw percent 50 (% of the number configured on the interface using the bw command)
          • class default
            • fair-que
    • apply to interface: (config-if)# service-policy out xxxx

LLQ – Low Latency Queuing

  • MQC enabled
  • this is just CBWFQ with the priority command turn on in one class
  • to configure
    • create policy
      • (config)# class-map match-all x
      • (config)# policy-map xxx 
          • class x
            • priority bw (maximum bandwidth in kbps)
            • or priority percent 50 (% of the interface BW or based on the interfaces bw command)
          • class default
            • fair-que
    • apply to interface: (config-if)# service-policy out xxxx

Further details about bandwidth vs priority command can be found here.

    Advertisements

    Leave a Reply

    Fill in your details below or click an icon to log in:

    WordPress.com Logo

    You are commenting using your WordPress.com account. Log Out / Change )

    Twitter picture

    You are commenting using your Twitter account. Log Out / Change )

    Facebook photo

    You are commenting using your Facebook account. Log Out / Change )

    Google+ photo

    You are commenting using your Google+ account. Log Out / Change )

    Connecting to %s