Schedulers Overview
You use schedulers to define the properties of output queues. These properties include the amount of interface bandwidth assigned to the queue, the size of the memory buffer allocated for storing packets, the priority of the queue, and the random early detection (RED) drop profiles associated with the queue.
You associate the schedulers with forwarding classes by means of scheduler maps. You can then associate each scheduler map with an interface, thereby configuring the hardware queues, packet schedulers, and RED processes that operate according to this mapping.
An individual device interface has multiple queues assigned to store packets temporarily before transmission. To determine the order to service the queues, the device uses a round-robin scheduling method based on priority and the queue's weighted round-robin (WRR) credits. Junos OS schedulers allow you to define the priority, bandwidth, delay buffer size, rate control status, and RED drop profiles to be applied to a particular queue for packet transmission.
You can configure per-unit scheduling (also called logical interface scheduling) to allow multiple output queues on a logical interface and to associate an output scheduler with each queue.
For Juniper Network devices, when configuring the protocol parameter in the drop-profile-map statement, TCP and non-TCP values are not supported; only the value any is supported.
vSRX Virtual Firewall and vSRX Virtual Firewall 3.0 instances support class of service (CoS) configurations for shapers at different Gigabit Ethernet interface speeds of 1-Gbps, 10-Gbps, 40-Gbps, and 100-Gbps.
Transmit Rate
The transmission rate determines the traffic transmission bandwidth for each forwarding class you configure. The rate is specified in bits per second (bps). Each queue is allocated some portion of the bandwidth of the outgoing interface.
This bandwidth amount can be a fixed value, such as 1 megabit per second (Mbps), a percentage of the total available bandwidth, or the rest of the available bandwidth. You can limit the transmission bandwidth to the exact value you configure, or allow it to exceed the configured rate if additional bandwidth is available from other queues (SRX5400, SRX5600, and SRX5800 firewalls do not support an exact value transmit rate). This property helps ensure that each queue receives the amount of bandwidth appropriate to its level of service.
The minimum transmit rate supported on high-speed interfaces is one-ten thousandth of the speed of that interface. For example, on a Gigabit Ethernet interface with a speed of 1000 Mbps, the minimum transmit rate is 100 Kbps (1,000 Mbps x 1/10,000). You can configure transmit rates in the range 3200 bps through 160,000,000,000 bps. When the configured rate is less than the minimum transmit rate, the minimum transmit rate is used instead.
Interfaces with slower interface speeds, like T1, E1, or channelized T1/E1/ISDN PRI, cannot support minimum transmit rates because the minimum transmit rate supported on a device is 3,200 bps.
Transmit rate assigns the weighted round-robin (WRR) priority values within a given priority level and not between priorities.
The transmit rate defines the transmission rate of a scheduler. The transmit rate determines the traffic bandwidth from each forwarding class you configure.
By default, queues 0 through 7 have the following percentage of transmission capacity:
-
Queue 0—95 percent
-
Queue 1—0 percent
-
Queue 2—0 percent
-
Queue 3—0 percent
-
Queue 4—0 percent
-
Queue 6—0 percent
-
Queue 7—5 percent
To define a transmit rate, select the appropriate option:
-
To specify a transmit rate, select
rate
and type an integer from 3200 to 160,000,000,000 bits per second. -
To enforce an exact transmit rate, select
rate
. -
To specify the remaining transmission capacity, select
remainder
. -
To specify a percentage of transmission capacity, select
percent
and type an integer from 1 through 100.
Optionally, you can specify the percentage of the remainder to be used for allocating the transmit rate of the scheduler on a prorated basis. If there are still points left even after allocating the remainder percentage with the transmit rate and there are no queues, then the points are allocated point by point to each queue in a round-robin method. If the remainder percentage is not specified, the remainder value will be shared equally.
Delay Buffer Size
You can configure the delay buffer size to control congestion at the output stage. A delay buffer provides packet buffer space to absorb burst traffic up to a specified duration of delay. When the buffer is full, all packets are dropped.
On Juniper Networks devices, you can configure larger delay buffers on channelized T1/E1 interfaces. Larger delay buffers help these slower interfaces to avoid congestion and packet dropping when they receive large bursts of traffic.
To avoid performance issues with large delay buffers the maximum interface bandwidth, as used to calculate the delay buffer, is capped at 100 Mbps. Interfaces that operate above this rate are scaled down to 100 Mbps for purposes of the delay buffer calculation. The delay buffer is calculated as:
Delay-buffer (in bits) = available interface bandwidth (<= 100Mbs) x configured buffer size percentage x maximum delay buffer time (.1 seconds).
As an example, consider a 10GE interface with a configured buffer size percentage of 50%. The interface rate is scaled down to 100 Mbps, yielding this result: 100M * 0.5 * 0.1 sec} = 5,000,000 bits. This value is divided by 8 to convert bits to Bytes. The result is a buffer depth of 625,000 Bytes (0.625MB).
To define a delay buffer size for a scheduler, select the appropriate option:
-
To enforce exact buffer size, select
Exact
. -
To specify a buffer size as a temporal value (microseconds), select
Temporal
. -
To specify buffer size as a percentage of the total buffer, select
Percent
and type an integer from 1 through 100. -
To specify buffer size as the remaining available buffer, select
Remainder
.
Optionally, you can specify the percentage of the remainder to be used for allocating the buffer size of the scheduler on a prorated basis.
By default, sizes of the delay buffer queues 0 through 7 have the following percentage of the total available buffer space:
-
Queue 0—95 percent
-
Queue 1—0 percent
-
Queue 2—0 percent
-
Queue 3—0 percent
-
Queue 4—0 percent
-
Queue 5—0 percent
-
Queue 6—0 percent
-
Queue 7—5 percent
A large buffer size value correlates with a greater possibility of packet delays. This might not be practical for sensitive traffic such as voice or video. For a Juniper Networks device, if the buffer size percentage is set to zero for T1 interfaces, traffic does not pass.
Packets are dropped from the queue if:
-
The total buffer limit is exceeded.
-
The queue size exceeds the total free buffer size.
-
The packet buffer pool is less then 25 percent free and the queue exceeds the guaranteed minimum buffer size.
-
The packet buffer pool is only 5 percent free (or less).
-
The queue size exceeds the guaranteed buffer size (RED profile condition (RED-dropped)). The queue size will be restricted to be less than or equal to the free shared buffers available.
Scheduling Priority
Scheduling priority determines the order in which an output interface transmits traffic from the queues, thus ensuring that queues containing important traffic are provided better access to the outgoing interface.
The queues for an interface are divided into sets based on their priority. Each set contains queues of the same priority. The device examines the sets in descending order of priority. If at least one queue in a set has a packet to transmit, the device selects that set. If multiple queues in the set have packets to transmit, the device selects a queue from the set according to the weighted round-robin (WRR) algorithm that operates within the set.
The packets in a queue are transmitted based on the configured scheduling priority, the transmit rate, and the available bandwidth.
The scheduling priority of the scheduler determines the order in which an output interface transmits traffic from the queues. You can set scheduling priority at different levels in an order of increasing priority from low to high. A high-priority queue with a high transmission rate might lock out lower-priority traffic.
To specify a scheduling priority, select one of the following levels:
-
high
—Packets in this queue have high priority. -
low
—Packets in this queue are transmitted last. -
medium—low
—Packets in this queue have medium-low priority. -
medium—high
—Packets in this queue have medium-high priority. -
strict—high
—Packets in this queue are transmitted first.
Shaping Rate
Shaping rates control the maximum rate of traffic transmitted on an interface. You can configure the shaping rate so that the interface transmits less traffic than it is physically capable of carrying.
You can configure shaping rates on logical interfaces. By default, output scheduling is not enabled on logical interfaces. Logical interface scheduling (also called per-unit scheduling) allows you to enable multiple output queues on a logical interface and associate an output scheduler and shaping rate with the queues.
By default, the logical interface bandwidth is the average of unused bandwidth for the number of logical interfaces that require default bandwidth treatment. You can specify a peak bandwidth rate in bits per second (bps), either as a complete decimal number or as a decimal number followed by the abbreviation k (1000), m (1,000,000), or g (1,000,000,000). The range is from 1000 through 32,000,000,000 bps.
For low-speed interfaces, the queue-limit values might become lower than the interface MTU so that traffic with large packets can no longer pass through some of the queues. If you want larger-sized packets to flow through, set the buffer-size configuration in the scheduler to a larger value. For more accuracy, the 100-ms queue-limit values are calculated based on shaping rate and not on interface rates.
The shaping rate defines the minimum bandwidth allocated to a queue. The default shaping rate is 100 percent, which is the same as no shaping at all. To define a shaping rate, select the appropriate option:
-
To specify shaping rate as an absolute number of bits per second, select
rate
and type an integer from 3200 to 160,000,000,000 bits per second. -
To specify shaping rate as a percentage, select
percent
and type an integer from 0 through 100.