You can configure one queue per interface to have strict high priority, which causes delay-sensitive traffic, such as voice traffic, to be removed and forwarded with minimum delay. Packets that are queued in a strict-priority queue are removed before packets in other queues, including high-priority queues.
The strict high-priority queuing feature allows you to configure traffic policing that prevents lower-priority queues from being starved. The strict-priority queue does not cause starvation of other queues because the configured policer allows the queue to exceed the configured bandwidth only when other queues are not congested. If the interface is congested, the software polices strict-priority queues to the configured bandwidth.
To prevent queue starvation of other queues, you must configure an output (egress) policer that defines a limit for the amount of traffic that the queue can service. The software services all traffic in the strict-priority queue that is under the defined limit. When strict-priority traffic exceeds the limit, the policer marks the traffic in excess of the limit as out-of-profile. If the output port is congested, the software drops out-of-profile traffic.
You can also configure a second policer with an upper limit. When strict-priority traffic exceeds the upper limit, the software drops the traffic in excess of the upper limit, regardless of whether the output port is congested. This upper-limit policer is not a requirement for preventing starvation of the lower-priority queues. The policer for the lower limit, which marks the packets as out-of-profile, is sufficient to prevent starvation of other queues.
The sample strict-high priority queuing configuration does the following:
To configure strict-priority queuing and prevent starvation of other queues:
Table 210: Configuring Strict-High Priority Queuing and Starvation Prevention
|
Task |
J-Web Configuration Editor |
CLI Configuration Editor |
|---|---|---|
| Configuring a BA Classifier | ||
|
Use a BA classifier to classify traffic based on the IP precedence of the packet. The classifier defines IP precedence value 101 as voice traffic and 000 as data traffic. |
|
From the [edit] hierarchy level, enter edit Class of service classifiers inet-precedence corp-traffic forwarding-class voice-class loss-priority low Enter set code-points 101 From the [edit] hierarchy level, enter edit class-of-service classifiers inet-precedence corp-traffic forwarding-class data-class loss-priority high Enter set code-points 000 |
| Configuring the Forwarding Classes | ||
|
Assign priority queuing to voice and data traffic. |
|
From the [edit] hierarchy level, enter edit class-of-service forwarding-classes queue 0 voice-class enter edit class-of-service forwarding-classes queue 1 data-class |
| Configuring the Scheduler Map and Schedulers | ||
|
Configure the scheduler map and voice scheduler. |
|
From the [edit] hierarchy level, enter edit class-of-service scheduler-maps corp-map forwarding-class voice-class Enter set scheduler voice-sched |
|
Define the voice and data traffic schedulers, and set the priority. |
|
From the [edit] hierarchy level, enter edit class-of-service schedulers voice-sched Enter set priority strict-high From the [edit] hierarchy level, enter edit class-of-service schedulers data-sched Enter set priority low |
| Applying the BA Classifier to an Input Interface and Scheduler Map to an Output Interface | ||
|
Apply the BA classifier to an input interface—for example, ge-0/0/0. Apply the scheduler map to and output interface—for example, e1-1/0/0. (See the interface naming conventions in Network Interface Naming.) |
|
From the [edit] hierarchy level, enter edit interfaces ge-0/0/0 unit 0 From the [edit] hierarchy level, enter edit class of service classifiers inet-precedence corp-traffic From the [edit] hierarchy level, enter edit interfaces e1-1/0/0 unit 0 From the [edit] hierarchy level, enter edit class-of-service scheduler-maps corp-map |
| Configuring Two Policers | ||
|
Configure two policers: one as voice-drop and second as voice-excess. |
|
From the [edit] hierarchy level, enter edit firewall policer voice-drop if-exceeding Enter set burst-size-limit 200000 bandwidth-limit 2000000 Enter set then discard From the [edit] hierarchy level, enter edit firewall policer voice-excess if-exceeding Enter set burst-size-limit 200000 bandwidth-limit 1000000 Enter set then out-of-profile |
|
Create a firewall filter voice-term that includes the new policers. First, add the policer voice-drop to the term. |
|
From the [edit] hierarchy level, enter edit firewall filter voice-term term 01 from forwarding-class voice-class then policer voice-drop next term |
|
Then add the policer voice-excess to the term. |
|
Enter edit firewall filter voice-term term 02 from forwarding-class voice-class then policer voice-excess accept |
| Applying the Filter to the Output Interface | ||
|
Apply filter voice-term to e1-1/0/0 using the CLI. |
From the [edit] hierarchy level, enter edit interfaces e1-1/0/1 unit 0 family inet filter output voice-term Enter set family inet address 11.1.1.1/24 |
|