Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 

Defining CoS Queue Schedulers

 

Schedulers define the CoS properties of output queues (output queues are mapped to forwarding classes, and classifiers map traffic into forwarding classes based on IEEE 802.1p, DSCP, or MPLS EXP code points). Queue scheduling works with priority group scheduling to create a two-tier hierarchical scheduler. CoS scheduling properties include the amount of interface bandwidth assigned to the queue, the priority of the queue, whether explicit congestion notification (ECN) is enabled on the queue, and the WRED packet drop profiles associated with the queue.

The parameters you configure in a scheduler define the following characteristics for the queues mapped to the scheduler:

  • transmit-rate—Minimum bandwidth, also known as the committed information rate (CIR), set as a percentage rate or as an absolute value in bits per second. The transmit rate also determines the amount of excess (extra) priority group bandwidth that the queue can share. Extra priority group bandwidth is allocated among the queues in the priority group in proportion to the transmit rate of each queue.

    Note

    Include the preamble bytes and interframe gap (IFG) bytes as well as the data bytes in your bandwidth calculations.

    Note

    You cannot configure a transmit rate for strict-high priority queues. Queues (forwarding classes) with a configured transmit rate cannot be included in a forwarding class set that has strict-high priority queues.

  • shaping-rate—Maximum bandwidth, also known as the peak information rate (PIR), set as a percentage rate or as an absolute value in bits per second.

    Note

    Include the preamble bytes and interframe gap (IFG) bytes as well as the data bytes in your bandwidth calculations.

  • priority—One of two bandwidth priorities that queues associated with a scheduler can receive:

    • low—The scheduler has low priority.

    • strict-high—The scheduler has strict-high priority. You can configure only one queue as a strict-high priority queue. Strict-high priority allocates the scheduled bandwidth to the queue before any other queue receives bandwidth. Other queues receive the bandwidth that remains after the strict-high queue has been serviced.

      We recommend that you always apply a shaping rate to strict-high priority queues to prevent them from starving other queues. If you do not apply a shaping rate to limit the amount of bandwidth a strict-high priority queue can use, then the strict-high priority queue can use all of the available port bandwidth and starve other queues on the port.

  • drop-profile-map—Drop profile mapping to a loss priority and protocol, to apply WRED to the scheduler and control packet drop for different packet loss priorities during periods of congestion.

  • buffer-size—Size of the queue buffer as a percentage of the dedicated buffer space on the port, or as a proportional share of the dedicated buffer space on the port that remains after the explicitly configured queues are served.

  • explicit-congestion-notification—Enables ECN on a best-effort queue. ECN enables end-to-end congestion notification between two ECN-enabled endpoints on TCP/IP based networks. ECN must be enabled on both endpoints and on all of the intermediate devices between the endpoints for ECN to work properly. ECN is disabled by default.

Note

Ingress port congestion can occur during periods of egress port congestion if an ingress port forwards traffic to more than one egress port, and at least one of those egress ports experiences congestion. If this occurs, the congested egress port can cause the ingress port to exceed its fair allocation of ingress buffer resources. When the ingress port exceeds its buffer resource allocation, frames are dropped at the ingress. Ingress port frame drop affects not only the congested egress ports, but also all of the egress ports to which the congested ingress port forwards traffic.

If a congested ingress port drops traffic that is destined for one or more uncongested egress ports, configure a weighted random early detection (WRED) drop profile and apply it to the egress queue that is causing the congestion. The drop profile prevents the congested egress queue from affecting egress queues on other ports by dropping frames at the egress instead of causing congestion at the ingress port.

Note

Do not configure drop profiles for the fcoe and no-loss forwarding classes. FCoE and other lossless traffic queues require lossless behavior. Use priority-based flow control (PFC) to prevent frame drop on lossless priorities.

OCX Series switches do not support lossless transport or PFC. On OCX Series switches, do not map traffic to the default lossless fcoe and no-loss forwarding classes.

To apply scheduling properties to traffic, map schedulers to forwarding classes using a scheduler map, and then associate the scheduler map with interfaces. (You associate a scheduler map with an interface using a traffic control profile; see Example: Configuring CoS Hierarchical Port Scheduling (ETS) for an example of the complete hierarchical scheduling process.) Using different scheduler maps, you can map different schedulers to the same traffic (the same forwarding class) on different interfaces, to apply different scheduling to that traffic on different interfaces.

To configure a scheduler using the CLI:

  1. Name the scheduler and set the minimum guaranteed bandwidth for the queue:
    [edit class-of-service]

    user@switch# set schedulers scheduler-name transmit-rate (rate | percent percentage)



  2. Set the maximum bandwidth for the queue:
    [edit class-of-service schedulers scheduler-name]

    user@switch# set shaping-rate (rate | percent percentage)



  3. Set the queue priority:
    [edit class-of-service schedulers scheduler-name]

    user@switch# set priority level



  4. Specify drop profiles for packet loss priorities using a drop profile map:
    [edit class-of-service schedulers scheduler-name]

    user@switch# set drop-profile-map loss-priority (low | medium-high | high) protocol protocol drop-profile drop-profile-name



  5. Configure the size of the port dedicated buffer space for the queue:
    [edit class-of-service schedulers scheduler-name]

    user@switch# set buffer-size (percent percent | remainder)



  6. Enable ECN, if desired (on best-effort traffic only):
    [edit class-of-service schedulers scheduler-name]

    user@switch# set explicit-congestion-notification



  7. Configure a scheduler map to map the scheduler to a forwarding class, which applies the scheduler’s properties to the traffic in that forwarding class:
    [edit class-of-service]

    user@switch# set scheduler-maps scheduler-map-name forwarding-class forwarding-class-name scheduler scheduler-name



  8. Assign the scheduler map and its associated schedulers to one or more interfaces using hierarchical scheduling. See Example: Configuring CoS Hierarchical Port Scheduling (ETS) for a detailed example of hierarchical scheduling.
    [edit class-of-service]

    user@switch# set traffic-control-profiles tcp-name scheduler-map scheduler-map-name

    user@switch# set interfaces interface-name forwarding-class-set fc-set-name output-traffic-control-profile tcp-name