Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

Example: Recommended Configuration of the Shared Buffer Pool for Networks with Mostly Best-Effort Traffic on Links with Ethernet PAUSE Enabled

 

Although the switch reserves some buffer space to ensure a minimum memory allocation for ports and queues, you can configure how the system uses the rest of the buffer space to optimize the buffer allocation for your particular mix of network traffic.

This example shows you the recommended configuration of the global shared buffer pool to support a network that carries mostly best-effort (lossy) traffic on links with Ethernet PAUSE (IEEE 802.3X) enabled.

Note

OCX Series switches support symmetric Ethernet PAUSE flow control, but do not support asymmetric Ethernet PAUSE flow control.

The global shared buffer pool is memory space that all of the ports on the switch share dynamically as they need buffers. You can allocate global shared memory space to different types of buffers to better support different mixes of network traffic.

Caution

Changing the buffer configuration is a disruptive event. Traffic stops on all ports until buffer reprogramming is complete.

Use the default shared buffer settings (for a network with a balanced mix of lossless, best effort, and multicast traffic) or one of the recommended shared buffer configurations for your mix of network traffic (mostly best-effort unicast traffic, mostly best-effort traffic on links enabled for Ethernet PAUSE, mostly multicast traffic, or mostly lossless traffic). Either the default configuration or one of the recommended configurations provides a buffer allocation that satisfies the needs of most networks.

After starting from the recommended configuration, you can fine-tune the shared buffer settings, but do so with caution to prevent traffic loss due to buffer misconfiguration.

Requirements

This example uses the following hardware and software components:

  • One switch (this example was tested on a Juniper Networks QFX3500 Switch)

  • Junos OS Release 12.3 or later for the QFX Series or Junos OS Release 14.1X53-D20 or later for the OCX Series

Overview

You can configure the percentage of available (user-configurable) buffer space allocated to the global shared buffers. Any space that you do not allocate to the global shared buffer pool is added to the dedicated buffer pool. The default configuration allocates 100 percent of the available buffer space to the global shared buffers.

You can partition the ingress and egress shared buffer pools to allocate more buffers to the types of traffic your network predominantly carries, and fewer buffers to other traffic. From the buffer space allocated to the ingress shared buffer pool, you can allocate space to:

  • Lossless buffers—Percentage of shared buffer pool for all lossless ingress traffic. The minimum value for the lossless buffers is 5 percent.

  • Lossless headroom buffers—Percentage of shared buffer pool for packets received while a pause is asserted. If Ethernet PAUSE is configured on a port or if priority-based flow control (PFC) is configured on priorities on a port, when the port sends a pause message to the connected peer, the port uses the headroom buffers to store the packets that arrive between the time the port sends the pause message and the time the last packet arrives after the peer pauses traffic. The minimum value for the lossless headroom buffers is 0 (zero) percent. (Lossless headroom buffers are the only buffers that can have a minimum value of less than 5 percent.)

    Note

    OCX Series switches do not support PFC.

  • Lossy buffers—Percentage of shared buffer pool for all best-effort ingress traffic (best-effort unicast, multidestination, and strict-high priority traffic). The minimum value for the lossy buffers is 5 percent.

The combined percentage values of the ingress lossless, lossless headroom, and lossy buffer partitions must total exactly 100 percent. If the buffer percentages total more than 100 percent or less than 100 percent, the switch returns a commit error. All ingress buffer partitions must be explicitly configured, even when the lossless headroom buffer partition has a value of 0 (zero) percent.

From the buffer space allocated to the egress shared buffer pool, you can allocate space to:

  • Lossless buffers—Percentage of shared buffer pool for all lossless egress queues. The minimum value for the lossless buffers is 5 percent.

  • Lossy buffers—Percentage of shared buffer pool for all best-effort egress queues (best-effort unicast and strict-high priority queues). The minimum value for the lossy buffers is 5 percent.

  • Multicast buffers—Percentage of shared buffer pool for all multidestination (multicast, broadcast, and destination lookup fail) egress queues. The minimum value for the multicast buffers is 5 percent.

The combined percentage values of the egress lossless, lossy, and multicast buffer partitions must total exactly 100 percent. If the buffer percentages total more than 100 percent or less than 100 percent, the switch returns a commit error. All egress buffer partitions must be explicitly configured and must have a value of at least 5 percent.

To configure the shared buffers to support a network that carries mostly best-effort traffic on links enabled for Ethernet PAUSE, more buffer space needs to be allocated to ingress dedicated port buffers, and less buffer space should be allocated to ingress shared buffers. Also, more buffer space needs to be allocated to lossless-headroom buffers, and less space to ingress lossy buffers. This example shows you how to configure the global shared buffer pool allocation that we recommend to support a network that carries mostly best-effort traffic on links enabled for Ethernet PAUSE.

Topology

Table 1 shows the configuration components for this example.

Component

Settings

Hardware

QFX3500 switch

Ingress shared buffer

Percentage of available ingress buffer space allocated to the ingress shared buffer: 70%

Percentage of ingress buffer space allocated to lossless traffic (lossless buffer partition): 5%

Percentage of ingress buffer space allocated to lossless headroom traffic (lossless-headroom buffer partition): 80%

Percentage of ingress buffer space allocated to best-effort traffic (lossy buffer partition): 15%

Egress shared buffer

Percentage of available egress buffer space allocated to the egress shared buffer: 100%

Percentage of egress buffer space allocated to lossless queues (lossless buffer partition): 5%

Percentage of egress buffer space allocated to best-effort queues (lossy buffer partition): 75%

Percentage of egress buffer space allocated to multicast traffic (multicast buffer partition): 20%

Configuration

CLI Quick Configuration

To quickly configure the recommended shared buffer settings for networks that carry mostly best-effort unicast traffic, copy the following commands, paste them in a text file, remove line breaks, change variables and details to match your network configuration, and then copy and paste the commands into the CLI at the [edit class-of-service shared-buffer] hierarchy level:

[edit class-of-service shared-buffer]

set ingress percent 70

set ingress buffer-partition lossless percent 5

set ingress buffer-partition lossless-headroom percent 80

set ingress buffer-partition lossy percent 15

set egress percent 100

set egress buffer-partition lossless percent 5

set egress buffer-partition lossy percent 75

set egress buffer-partition multicast percent 20

Configuring the Global Shared Buffer Pool for Networks with Mostly Best-Effort Traffic on Links Enabled for Ethernet PAUSE

Step-by-Step Procedure

To configure the global ingress and egress shared buffer allocations and partitions:

  1. Configure the percentage of available (nonreserved) buffers used for the ingress global shared buffer pool:
    [edit class-of-service shared-buffer]

    user@switch# set ingress percent 70



  2. Configure the global ingress buffer partitions for lossless, lossless-headroom, and lossy traffic:
    [edit class-of-service shared-buffer]

    user@switch# set ingress buffer-partition lossless percent 5

    user@switch# set ingress buffer-partition lossless-headroom percent 80

    user@switch# set ingress buffer-partition lossy percent 15



  3. Configure the percentage of available (nonreserved) buffers used for the egress global shared buffer pool:
    [edit class-of-service shared-buffer]

    user@switch# set egress percent 100



  4. Configure the global egress buffer partitions for lossless, lossy, and multicast queues:
    [edit class-of-service shared-buffer]

    user@switch# set egress buffer-partition lossless percent 5

    user@switch# set egress buffer-partition lossy percent 75

    user@switch# set egress buffer-partition multicast percent 20

Results

Display the results of the configuration:

Verification

Verify that you correctly configured the shared buffer.

Verifying the Shared Buffer Configuration

Purpose

Verify that the ingress and egress global shared buffer pools are correctly configured and partitioned among the shared buffer types.

Action

List the global shared buffer configuration using the operational mode command show class-of-service shared-buffer:

user@switch> show class-of-service shared-buffer

Meaning

The show class-of-service shared-buffer operational command shows all of the ingress and egress global shared buffer settings, including the buffer partitioning.

For the ingress shared buffers, the command output shows:

  • The total switch buffer pool is 9360 KB (9 MB).

  • The dedicated buffer pool is 4318.6 KB. This is the size of the global ingress dedicated buffer pool when you configure the ingress shared buffer pool as 70 percent of the available (user-configurable) buffer space.

  • With the ingress shared buffer pool configured as 70 percent of the available buffers, the total size of the ingress shared buffer pool is 5041.4 KB.

  • The ingress shared buffer pool is partitioned to allocate:

    • 252.07 KB to lossless traffic

    • 4033.12 KB to lossless headroom traffic

    • 756.21 KB to lossy unicast traffic

For the egress shared buffers, the command output shows:

  • The total switch buffer pool is 9360 KB (9 MB).

  • The dedicated buffer pool is 2704 KB. This is the size of the global egress dedicated buffer pool when you configure the egress shared buffer pool as 100 percent of the available (user-configurable) buffer space. This is the minimum size of the reserved, egress dedicated buffer pool (not user-configurable). If you configure the shared buffer as less than 100 percent of the available buffer pool, the remaining buffer space is added to the dedicated buffer pool.

  • With the egress shared buffer pool configured as 100 percent of the available buffers, the total size of the egress shared buffer pool is 6656 KB. This is less than the ingress shared buffer pool because the switch reserves more egress dedicated buffer space than ingress dedicated buffer space. (More dedicated buffer space means less shared buffer space, and more shared buffer space means less dedicated buffer space.)

  • The egress shared buffer pool is partitioned to allocate:

    • 332.80 KB to lossless traffic

    • 1331.20 KB to multicast traffic

    • 4992 KB to lossy unicast traffic

Note

The output values are valid for QFX3500 and QFX3600 switches. QFX5100, EX4600, and OCX Series switches have larger buffers (12 MB instead of 9 MB), so the total buffer size and the sizes of each buffer partition are larger on those switches.