[Contents] [Prev] [Next] [Index] [Report an Error]


Configuring the Scheduler Buffer Size

To control congestion at the output stage, you can configure the delay-buffer bandwidth. The delay-buffer bandwidth provides packet buffer space to absorb burst traffic up to the specified duration of delay. Once the specified delay buffer becomes full, packets with 100 percent drop probability are dropped from the head of the buffer.

By default, the buffer sizes for queues 0 through 7 are 95, 0, 0, 5, 0, 0, 0, and 0 percent of the total available buffer space.

To configure the buffer size, include the buffer-size statement at the [edit class-of-service schedulers scheduler-name] hierarchy level:

[edit class-of-service schedulers scheduler-name]
buffer-size (percent percentage | remainder | temporal microseconds);

For each scheduler, you can configure the buffer size as one of the following:

For information about configuring large buffer sizes on IQ PICs, see Configuring Large Delay Buffers for Slower Interfaces.


Table 13: Buffer Size Temporal Value Ranges by Platform Type
Platforms
Temporal Value Ranges

T-series and M320

1 through 50,000 microseconds

Other M-series

1 through 200,000 microseconds

IQ PICs on all platforms

1 through 100,000 microseconds

With Large Buffer Sizes Enabled

IQ PICs on all platforms

1 through 500,000 microseconds

Gigabit Ethernet IQ VLANs

With shaping rate up to 10 mbps

1 through 400,000 microseconds

With shaping rate up to 20 mbps

1 through 300,000 microseconds

With shaping rate up to 30 mbps

1 through 200,000 microseconds

With shaping rate up to 40 mbps

1 through 150,000 microseconds


Configuring Large Delay Buffers for Slower Interfaces

By default, T1, E1, and NxDS0 interfaces and DLCIs configured on channelized IQ PICs and Gigabit Ethernet VLANs configured on Gigabit Ethernet IQ PICs are limited to 100,000 microseconds of delay buffer. For these interfaces, it might be necessary to configure a larger buffer size to prevent congestion and packet dropping. You can do so on the following PICs:

Congestion and packet dropping occur when large bursts of traffic are received by slower interfaces. This happens when faster interfaces pass traffic to slower interfaces, which is often the case when edge devices receive traffic from the core of the network. For example, a 100,000-microsecond T1 delay buffer can absorb only 20 percent of a 5000-microsecond burst of traffic from an upstream OC3 interface. In this case, 80 percent of the burst traffic is dropped.

Table 14 shows some recommended buffer sizes needed to absorb typical burst sizes from various upstream interface types.


Table 14: Recommended Delay Buffer Sizes
Length of Burst
Upstream Interface
Downstream Interface
Recommended Buffer on Downstream Interface

5000 microseconds

OC3

E1 or T1

500,000 microseconds

5000 microseconds

E1, T1

E1 or T1

100,000 microseconds

1000 microseconds

T3

E1 or T1

100,000 microseconds


To ensure that traffic is queued and transmitted properly on Gigabit Ethernet VLANs, and E1, T1, and NxDS0 interfaces and DLCIs, you can configure a buffer size larger than the default maximum. To enable larger buffer sizes to be configured, include the q-pic-large-buffer statement at the [edit chassis fpc slot-number pic pic-number] hierarchy level:

[edit chassis fpc slot-number pic pic-number]
q-pic-large-buffer;

When you include the q-pic-large-buffer statement in the configuration, the larger buffer is transparently available for allocation to scheduler queues. The larger buffer maximum varies by interface type, as shown in Table 15.


Table 15: Maximum Delay Buffer with 'q-pic-large-buffer' Enabled by Interface Type
Interface Types
Maximum Delay Buffer with 'q-pic-large-buffer'

E1 and T1

500,000 microseconds

NxDSO:

1xDSO through 3xDS0

4,000,000 microseconds

4xDSO through 7xDS0

2,000,000 microseconds

8xDSO through 15xDS0

1,000,000 microseconds

16xDSO through 32xDS0

500,000 microseconds

Gigabit Ethernet IQ VLANs:

With shaping rate up to 10 mbps

400,000 microseconds

With shaping rate up to 20 mbps

300,000 microseconds

With shaping rate up to 30 mbps

200,000 microseconds

With shaping rate up to 40 mbps

150,000 microseconds


If you configure a delay buffer larger than the new maximum, the candidate configuration can be committed successfully. However, the setting is rejected by the packet forwarding component, the default setting is used instead, and a system log warning message is generated.

For interfaces that support DLCI queuing, the large buffer is supported for DLCIs on which the configured shaping rate is less than or equal to the physical interface bandwidth. For instance, when you configure a Frame Relay DLCI on a Channelized T3 IQ PIC, and you configure the shaping rate to be 1.5 Mbps, the amount of delay buffer that can be allocated to the DLCI is 500,000 microseconds, which is equivalent to a T1 delay buffer. For more information about DLCI queuing, see Associating a Scheduler Map with a DLCI or VLAN.

The larger buffer sizes are enabled for Gigabit Ethernet IQ VLANs but not for physical Gigabit Ethernet interfaces. Therefore, the limitations for physical Gigabit Ethernet IQ interfaces remain as shown in Table 13 (50,000 microseconds on T-series and M320 platforms and 200,000 microseconds on other M-series platforms).

For NxDS0 interfaces, the larger buffer sizes can be up to 4,000,000 microseconds, depending on the number of DS0 channels in the NxDS0 interface. For slower NxDS0 interfaces with fewer channels, the delay buffer can be relatively larger than for faster NxDS0 interfaces with more channels. This is shown in Table 15. To calculate specific buffer sizes for various NxDS0 interfaces, see Maximum Delay Buffer for NxDS0 Interfaces.

You can allocate the delay buffer as either a percentage or a temporal value. The resulting delay buffer is calculated differently depending how you configure the delay buffer, as shown in Table 16.


Table 16: Delay Buffer Calculations
Delay Buffer Configuration
Formula
Example

Percentage

available interface bandwidth * configured percentage buffer-size * maximum buffer = queue buffer

If you configure a queue on a T1 interface to use 30 percent of the available delay buffer, the queue receives 28,125 bytes of delay buffer:

sched-expedited {
     transmit-rate percent 30;
     buffer-size percent 30;
}

1.5 Mbps * 0.3 * 500,000 microseconds = 225,000 bits = 28,125 bytes

Temporal

available interface bandwidth * configured percentage transmit-rate * configured temporal buffer-size = queue buffer

If you configure a queue on a T1 interface to use 500,000 microseconds of delay buffer, and you configure the transmission rate to be 20 percent, the queue receives 18,750 bytes of delay buffer:

sched-best {
     transmit-rate percent 20;
     buffer-size temporal 500000;
}

1.5 Mbps * 0.2 * 500,000 microseconds = 150,000 bits = 18,750 bytes

Percentage, with buffer size larger than transmit rate


In this example, the delay buffer is allocated twice the transmit rate. Maximum delay buffer latency can be up to twice the 500,000-microsecond delay buffer if the queue's transmit rate cannot exceed the allocated transmit rate.

sched-extra-buffer {
     transmit-rate percent 10;
     buffer-size percent 20;
}


Maximum Delay Buffer for NxDS0 Interfaces

Because NxDS0 interfaces carry less bandwidth than a T1 or E1 interface, the buffer size on an NxDS0 interface can be relatively larger, depending on the number of DS0 channels combined. The maximum delay buffer size is calculated with the following formula:

Interface Speed * Maximum Delay Buffer Time = Delay Buffer Size

For example, a 1xDS0 interface has a speed of 64 kilobits (Kb) per second. At this rate, the maximum delay buffer time is 4,000,000 microseconds. Therefore, the delay buffer size is 32 KB:

64 Kb per second * 4,000,000 microseconds = 32 kilobytes (KB)

Table 17 shows the delay buffer calculations for NxDS0 interfaces from 1xDS0 through 32xDS0.


Table 17: NxDSO Transmission Rates and Delay Buffers
Interface Speed
Delay Buffer Size
1xDS0 Through 4xDS0: Maximum Delay Buffer Time Is 4,000,000 Microseconds

1xDS0: 64 Kb per second

32 KB

2xDS0: 128 Kb per second

64 KB

3xDS0: 192 Kb per second

96 KB

4xDS0 Through 7xDS0: Maximum Delay Buffer Time Is 2,000,000 Microseconds

4xDS0: 256 Kb per second

64 KB

5xDS0: 320 Kb per second

80 KB

6xDS0: 384 Kb per second

96 KB

7xDS0: 448 Kb per second

112 KB

8xDS0 Through 15xDS0: Maximum Delay Buffer Time Is 1,000,000 Microseconds

8xDS0: 512 Kb per second

64 KB

9xDS0: 576 Kb per second

72 KB

10xDS0: 640 Kb per second

80 KB

11xDS0: 704 Kb per second

88 KB

12xDS0: 768 Kb per second

96 KB

13xDS0: 832 Kb per second

104 KB

14xDS0: 896 Kb per second

112 KB

15xDS0: 960 Kb per second

120 KB

16xDS0 Through 32xDS0: Maximum Delay Buffer Time Is 500,000 Microseconds

16xDS0: 1024 Kb per second

64 KB

17xDS0: 1088 Kb per second

68 KB

18xDS0: 1152 Kb per second

72 KB

19xDS0: 1216 Kb per second

76 KB

20xDS0: 1280 Kb per second

80 KB

21xDS0: 1344 Kb per second

84 KB

22xDS0: 1408 Kb per second

88 KB

23xDS0: 1472 Kb per second

92 KB

24xDS0: 1536 Kb per second

96 KB

25xDS0: 1600 Kb per second

100 KB

26xDS0: 1664 Kb per second

104 KB

27xDS0: 1728 Kb per second

108 KB

28xDS0: 1792 Kb per second

112 KB

29xDS0: 1856 Kb per second

116 KB

30xDS0: 1920 Kb per second

120 KB

31xDS0: 1984 Kb per second

124 KB

32xDS0: 2048 Kb per second

128 KB


Example: Configuring Large Delay Buffers for Slower Interfaces

Set large delay buffers on interfaces configured on a Channelized DS3 IQ PIC. The CoS configuration binds a scheduler map to the interface specified in the chassis configuration. For information about the delay buffer calculations in this example, see Table 16.

chassis {
    fpc 3 {
        pic 0 {
            q-pic-large-buffer;     # ChDS3-IQ in FPC slot 3, PIC slot 0 
        }
    }
}

class-of-service {
    interfaces {
        t1-3/0/0:1 {
            scheduler-map large-buf-sched-map;
        }
    }
    scheduler-maps {
        large-buf-sched-map {
            forwarding-class best-effort scheduler sched-best;
            forwarding-class expedited-forwarding scheduler sched-expedited;
            forwarding-class assured-forwarding scheduler sched-assured;
            forwarding-class network-control scheduler sched-network;
        }
    }
    schedulers {
        sched-best {
            transmit-rate percent 20;
            buffer-size temporal 500000;
        }
        sched-expedited {
            transmit-rate percent 30;
            buffer-size percent 30;
        }
        sched-assured {
            transmit-rate percent 40;
            buffer-size percent 40;
        }
        sched-network {
            transmit-rate percent 10;
            buffer-size percent 10;
        }
        sched-extra-buffer {
            transmit-rate percent 10;
            buffer-size percent 20;
        }
    }
}

[Contents] [Prev] [Next] [Index] [Report an Error]