Configuring expedited forwarding for VoIP traffic

Voice over IP (VoIP) traffic is delay and jitter sensitive. For optimum transmission of VoIP traffic, dwell time in network devices must be kept to a minimum and all network devices in the data path must have identical per-hop behaviors. To configure a dedicated queue on the switch to handle VoIP traffic with priority service before all other queues, follow these steps.

Prerequisites

This scenario assumes that VoIP packets are uniquely identified using DiffServ code point 46, Expedited Forwarding (EF).

Procedure

  1. Map DSCP EF packets exclusively to local priority 5. The default DSCP map has eight code points (40 through 47), that are mapped to local priority 5. To reserve local priority 5 for VoIP traffic, the other code points must be reassigned. In this scenario, local priority 6 is used for all reassignments, including for code point 40, Call Signaling protocol (CS5).
  2. switch(config)# qos dscp-map 40 local-priority 6 name CS5 switch(config)# qos dscp-map 41 local-priority 6 switch(config)# qos dscp-map 42 local-priority 6 switch(config)# qos dscp-map 43 local-priority 6 switch(config)# qos dscp-map 44 local-priority 6 switch(config)# qos dscp-map 45 local-priority 6 switch(config)# qos dscp-map 47 local-priority 6
  3. Queue 7 is the highest priority queue, so for best throughput, create a queue profile that maps local priority to queue 7.
  4. switch(config)# qos queue-profile ef_priority switch(config-queue)# name queue 7 Voice_Priority_Queue switch(config-queue)# map queue 7 local-priority 5 switch(config-queue)# map queue 6 local-priority 7 switch(config-queue)# map queue 5 local-priority 6 switch(config-queue)# map queue 4 local-priority 4 switch(config-queue)# map queue 3 local-priority 3 switch(config-queue)# map queue 2 local-priority 2 switch(config-queue)# map queue 1 local-priority 1 switch(config-queue)# map queue 0 local-priority 0
  5. Create a schedule profile that services queue 7 using strict priority (SP), and the remaining queues with DWRR. This scenario gives all DWRR queues equal weight.
  6. switch(config)# qos schedule-profile voip switch(config-schedule)# strict queue 7 switch(config-schedule)# dwrr queue 6 weight 1 switch(config-schedule)# dwrr queue 5 weight 1 switch(config-schedule)# dwrr queue 4 weight 1 switch(config-schedule)# dwrr queue 3 weight 1 switch(config-schedule)# dwrr queue 2 weight 1 switch(config-schedule)# dwrr queue 1 weight 1 switch(config-schedule)# dwrr queue 0 weight 1 switch(config-schedule)# exit switch(config)#
  7. Apply the profiles to all interfaces.
    switch(config)# apply qos queue-profile ef_priority schedule-profile voip
  8. Configure DSCP trust mode on all ports
    switch(config)# qos trust dscp