High Scale QoS IOM: QoS, Service, and Network Configuration

This chapter provides information about High Scale QoS IOM: QoS, Service, and Network Configuration.

Topics in this chapter include:

Applicability

This chapter is applicable to the 7750 SR-7/12/12e platforms and describes the High Scale QoS (HSQ) IOM. The configuration was tested on Release 15.0.R5.

Overview

This chapter describes the QoS operation and configuration of the HSQ IOM, with a focus on services and network interfaces. For the subscriber management configuration, see chapters High Scale QoS IOM in ESM Context: Single SLA Mode and High Scale QoS IOM in ESM Context: Expanded SLA Mode in the Triple Play Service Delivery Architecture volume of 7450 ESS, 7750 SR, and 7950 XRS Advanced Configuration Guide — Book III.

The HSQ IOM is an FP3-based IOM that has a multicore CPU and accepts up to two MDA-e cards. The HSQ IOM supports an enhanced egress QoS architecture to provide scalable network, service, and subscriber QoS. At ingress, the HSQ IOM supports regular FP3 QoS with a high ingress policer scaling. This chapter focuses on the HSQ IOM egress QoS.

The HSQ IOM supports six scheduling classes across multiple hierarchical levels of hardware egress shaping with very stringent egress burst control. The scheduling allows a mix of strict priority and weighted round-robin (WRR). A flexible buffer pool structure permits both buffer isolation and buffer oversubscription for the queue buffer allocation.

The HSQ IOM supports 768k queues, which are grouped into 96k queue groups; each comprises eight queues (referred to as HSQ queue groups). HSQ queue groups are used for SAP egress queues, network egress queues, and both access and network egress queue group instance queues.

The SAP egress, network egress, and access and network egress queue group related commands that are not supported with an HSQ IOM are provided in the associated configuration chapters following. In addition, the following are not applicable to the HSQ:

  • QoS related

    • Egress access and network MDA and port pools

    • All HSMDA commands

    • All VPORT related commands

    • PBB egress B-SAP per ISID shaping

    • Port hybrid-buffer-allocation egr-weight

  • MPLS related

    • Generalized Multiprotocol Label Switching (GMPLS) UNI

  • Service related

    • G.8031 protected Ethernet tunnels

  • System related

    • Port cross-connects (PXC)

    • Ethernet satellite host ports

    • Soft reset

The operation of the HSQ IOM is described in the following sections:

  • Shaping

  • Scheduling

  • Buffer Management

  • LAGs

Shaping

The HSQ egress shaping uses the following objects:

  • HSQ queue groups

    An HSQ queue group comprises eight egress queues with two WRR groups. One HS queue group is allocated to each of the following:

    • An egress SAP

    • An egress network port

    • An egress access queue group instance

    • An egress network queue group instance

    • A subscriber egress (single SLA profile instance in single HS SLA mode). Enhanced Subscriber Management (ESM) is beyond the scope of this chapter.

  • Primary shapers

    In the context of this chapter, a primary shaper is allocated for each secondary shaper because it is required in the hierarchy, but it does not perform any QoS control. Primary shapers are also allocated for each subscriber egress configured with multiple SLA profile instances in extended HS SLA mode, however, ESM is beyond the scope of this chapter.

  • Secondary shapers

    Secondary shapers provide an abstraction to be used for QoS control of traffic to a downstream device such as an access node. Shaping can be performed on the entire traffic or on each scheduling class within the secondary shaper.

  • Ports

    The traffic forwarded to each port can be shaped. In addition, traffic in each scheduling class within a port can be shaped individually or within a single WRR group.

Six scheduling classes are supported across all the preceding objects.

The egress QoS scheduling hierarchy is shown in Egress HSQ IOM Scheduling Hierarchy.

Figure 1. Egress HSQ IOM Scheduling Hierarchy

The available egress shaping is described in detail, as follows:

  • Per-queue or per-WRR group of queues

  • Per-HSQ queue group aggregate

  • Per-primary shaper aggregate

  • Per-secondary shaper aggregate

  • Per-secondary shaper per scheduling class

  • Per-port aggregate

  • Per-port per scheduling class

Per-Queue or Per-WRR Group of Queues

Each queue can be independently shaped by configuring its PIR and attaching it to a primary shaper scheduling class. Alternatively, it can be shaped together with other queues in the same HSQ queue group as part of a WRR group. The WRR group can have a configured rate, and also needs to be attached to a primary shaper scheduling class.

There are eight queues and two WRR groups available within an HSQ queue group, which attach to the six primary shaper scheduling classes. Only one object (queue or WRR group) per HSQ queue group can attach to a scheduling class at any time, so to make use of all queues in an HSQ queue group, at least three queues must be attached to a WRR group. Queues and WRR groups can remain unattached from a scheduling class, in which case the related queues discard all received packets.

The queue PIR is configured under the queue within a SAP egress QoS policy for services, in a network queue policy for network interfaces, or in an egress queue group template for both access and network egress queue group instances. The queue CIR is ignored when the policy is applied to an HSQ IOM. The per-WRR group PIR is configured within the same policies under the hs-wrr-group context. Queue and WRR group PIR use packet-based accounting (L2 rate), which can be adjusted using the queue packet-byte-offset parameter for SAP egress and egress queue group instances.

The attachment of a queue or WRR group to a scheduling class is configured within an hs-attachment-policy. A default hs-attachment-policy (which is not configurable) is created by the system and is applied to all SAP egress QoS policies, network queue policies, and egress queue group templates. The default policy has queues 1 to 3 attached to WRR group 1, which is attached to scheduling class 1, and queues 4 to 8 attached directly to scheduling classes 2 to 6.

When creating a new hs-attachment-policy, the following rules apply to the queue and WRR attachment:

  • A queue must be attached to a scheduling class, or a WRR group, which is also attached to a scheduling class, so as to forward packets.

  • Only one queue or WRR group can be attached to a scheduling class per HSQ queue group.

  • Queues can only be attached to scheduling classes in an ascending order; for example, if queue 2 is attached to scheduling class 2, then queue 1 cannot attach to scheduling classes 3 to 6.

  • The queue identifiers must be contiguous when attaching queues to a WRR group.

  • Queues attached to WRR group 1 must have lower queue identifiers than those attached to WRR group 2.

  • The maximum number of queues attached to a WRR group is six: six to group 1 or six to group 2, or six to a combination of groups 1 and 2.

  • WRR group 2 can only be attached to a scheduling class after WRR group 1 has at least one attached queue and has been attached to a scheduling class.

  • WRR group 2 must be attached to a higher scheduling class than WRR group 1.

Per-HSQ Queue Group Aggregate

A per-HSQ queue group aggregate shapes traffic forwarded by all the queues in its associated HSQ queue group to an aggregate rate. This is applicable to SAP egress queues, and to both access and network egress queue group instances. It is not applicable to network egress queues.

The per-HSQ queue group aggregate PIR is configurable as an egress aggregate rate limit applied under a SAP or a port access or network egress queue group instance. The HSQ queue group PIR uses packet-based accounting (L2 rate), which can be adjusted using the queue packet-byte-offset parameter for SAP egress and egress queue group instances.

When using HSQ queue groups with access or network egress queue group instances on 100G ports, the hs-turbo parameter can be configured under the port queue group instance to allow the corresponding HSQ queue group queues to achieve a higher throughput. The hs-turbo parameter is not applicable to 10G ports and so is ignored when configured under a queue group instance on a 10G port.

Per-Primary Shaper Aggregate

A primary shaper aggregate shapes the traffic forwarded by all of the HSQ queue groups connected to the primary shaper to an aggregate rate.

User-configured primary shapers are not applicable to SAP egress HSQ queue groups, network egress HSQ queue groups, or both access and network egress queue group instance HSQ queue groups. However, the hierarchy shown in Egress HSQ IOM Scheduling Hierarchy is always conformed to, so by default these HSQ queue groups always connect to a system-created per-port default primary shaper that has its aggregate PIR rate set to the maximum rate, so as not to constrain the traffic rate at this level.

The system also instantiates a primary shaper, again with its aggregate PIR set to the maximum rate, when the first egress SAP or pseudowire SAP (PW-SAP) is associated with a secondary shaper. This primary shaper is then used by all HSQ queue groups associated with that secondary shaper. User-configured primary shaper aggregates are applicable to ESM, which is beyond the scope of this chapter.

Per-Secondary Shaper Aggregate

Secondary shapers are aimed at providing QoS control for traffic forwarded to a specific downstream device, such as an access node.

A secondary shaper aggregate shapes the traffic forwarded by all of its connected primary shapers (and HSQ queue groups). Secondary shapers are applicable to SAP egress queues, but not to network egress or to both access and network egress queue group instance HSQ queue groups. The hierarchy shown in Egress HSQ IOM Scheduling Hierarchy is always conformed to, so by default all primary shapers (and their HSQ queue groups) always connect to a system-created per-port default secondary shaper that has its aggregate PIR rate set to the maximum rate, so as not to constrain the traffic rate at this level. Secondary shaper aggregates are also applicable to ESM, which is beyond the scope of this chapter.

Multiple HS secondary shapers can be created under the config>port>ethernet>egress context using the hs-secondary-shaper statement. The HS secondary shaper aggregate PIR is configured under the associated secondary shaper. A default hs-secondary-shaper is applied under each HSQ egress port with an aggregate PIR rate max, which can be configured if required. The secondary shaper PIR uses frame-based accounting (L1 rate) and is not affected by a queue packet-byte-offset parameter.

SAP egress HSQ queue groups are connected to an HS secondary shaper using the hs-secondary-shaper parameter under a queue override, which is configured under the SAP egress context. When the first egress SAP or PW-SAP is associated with a user-configured HS secondary shaper, the system instantiates a default primary shaper for that secondary shaper.

Per-Secondary Shaper per Scheduling Class

Each of the six scheduling classes can be individually shaped within an HS secondary shaper. The HS secondary shaper scheduling class PIR is configured under the associated secondary shaper. The default HS secondary shaper scheduling class PIRs are set to max and can also be modified. The secondary shaper scheduling class PIR uses frame-based accounting (L1 rate) and is not affected by a queue packet-byte-offset parameter.

Per-Port Aggregate

A per-port aggregate shapes the traffic forwarded by its connected secondary shapers, that is, all the traffic egressing out of the physical port. It is applicable to SAP egress, network egress, and both access and network egress queue group instance traffic. A default HS scheduler policy (which is not configurable) is applied to all ports.

A user-defined HS scheduler policy can be created in which the port aggregate PIR (max-rate) can be configured and the policy then applied under the config>port>ethernet>egress context. Only a single HS scheduler policy is supported on each port. The port aggregate PIR uses frame-based accounting (L1 rate) and is not affected by a queue packet-byte-offset parameter.

An alternative to configuring a per-port aggregate is to configure an egress-rate on the port. This provides more granular control as it is configured in kb/s (whereas the per-port aggregate is in Mb/s). The HSQ egress-rate is based on the Ethernet size of the packet including the IFG (Inter-Frame-Gap) and preamble.

Per-Port per Scheduling Class

Each of the six scheduling classes can also be individually shaped per port by configuring a scheduling class PIR within an HS scheduler policy. The scheduling classes can also be grouped in a single WRR group at each egress port with each class being assigned a weight within the group.

The scheduling class identifiers must be contiguous within the WRR group and the group is scheduled at the scheduling class of its highest member scheduling class. Both the scheduling class PIR and the WRR group PIR are set to max in the default HS scheduler policy, with the WRR group being unused. The port scheduling class PIR uses frame-based accounting (L1 rate) and is not affected by a queue packet-byte-offset parameter.

Scheduling

The scheduling allows a mix of strict priority and WRR. There are six scheduling classes, which are implemented from the HSQ queue group queues through the primary shaper, secondary shaper, and port. The scheduling classes are serviced in a strict priority order (scheduling class 6 having the highest priority and scheduling class 1 having the lowest priority), with WRR groups at the HSQ queue group and port levels, and a dynamic weight at the primary and secondary shaper levels.

Packet forwarding is achieved using service lists; the objects at each level are on a service list at that level if they are in a state ready to send packets, or are off the service list if they have exceeded their configured PIR together with its related burst. When a port has a scheduling opportunity, it selects the secondary shaper to be serviced next, which selects the primary shaper to be serviced next, which selects the HSQ queue group to be serviced next, which selects a queue to be serviced next, resulting in a packet from that queue being forwarded.

At the HSQ queue group level, queues can be attached to one of two WRR groups, each of which is scheduled at a single scheduling class with packets being taken from the constituent queues based on a configured queue weighting. The weight is configured using the hs-wrr-weight under the queue statement within a SAP egress QoS policy, a network queue policy, or in an egress queue group template.

Weighting is also supported between queues and WRR groups in different HSQ queue groups per-primary shaper scheduling class. This allows the capacity available at the primary shaper scheduling class to be shared in a WRR manner between the HSQ queue group queues and WRR groups attached to that scheduling class. This is configured within a SAP egress QoS policy, network queue policy, and egress queue group template, using the hs-class-weight parameter under the respective queue or hs-wrr-group statement.

This weighting should not be confused with the hs-wrr-weight parameter, which specifies the relative weights of different queues within the same HSQ queue group WRR group. This hs-class-weight parameter could be used to give unequal shares of the available capacity to different types of service offerings.

There is a single WRR group at the port level that allows multiple scheduling classes to be collapsed to a single class per port with each class in the group being assigned a weight. The weight of each scheduling class in the group is configured within the applied HS scheduler policy.

The dynamic weights at the primary and secondary shapers are managed by the system, based on the number of pending packets for each of the shapers, not on the number of attached objects in each. The more pending packets a shaper has, the higher the weight it gets. The goal is to ensure a balanced distribution of capacity between each of the primary shapers and each of the secondary shapers. For example, this allows a secondary shaper with 10 000 active HSQ queue groups to receive proportionately more scheduling opportunities than another secondary shaper with only 100 active HSQ queue groups.

The HSQ queue group and secondary shaper aggregate rates are implemented as a set of token buckets to control the aggregate rates. As packets are transmitted from each, the scheduler updates its bucket states based on the number of bytes forwarded. Two thresholds are used within each bucket to provide more granular control over this scheduling behavior: a low burst limit threshold and a high burst limit threshold.

These thresholds control when their respective queues are removed from the scheduler list, thereby allowing the queues using the high threshold to continue to forward packets even after the queues using the low threshold are no longer being serviced. This is shown in HSQ Queue Group and Secondary Shaper Aggregate Scheduler Bucket. The low-burst-max-class parameter defines which queues use each of the thresholds, and is described following.

Figure 2. HSQ Queue Group and Secondary Shaper Aggregate Scheduler Bucket

Tokens representing the bytes in the packets are added to the bucket as packets are forwarded. Tokens are drained from the scheduler bucket at the configured aggregate PIR rate. If the rate at which packets are forwarded (tokens are added) exceeds the shaping rate (tokens drained), a depth of tokens builds up in the bucket. If the depth reaches the low burst limit threshold, the queues using the low threshold are removed from the scheduling list. If the depth continues to increase and reaches the high threshold, the remaining queues are removed from the scheduler list.

The low burst threshold depth is determined by the system. It is equivalent to the burst control group visitation time used by the FP egress queue scheduler. The shaping rate tokens are periodically removed from the bucket by the system by decrementing the current burst size. This period must be small enough to ensure that the resulting decrement does not cause the bucket depth to be negative, which is not permitted. Because the bucket depth cannot be negative, any potential negative decrement is lost, which equates to a loss of scheduling opportunities and the queue would underrun.

The high burst limit threshold uses a fixed increment on top of the low burst limit threshold. This fixed increment is configured under card>fp>egress using the hs-fixed-high-thresh-delta parameter and has a default value of 4000 bytes. It is recommended to set this parameter to a value at least two times the maximum packet size to prevent the classes using the low burst threshold from affecting those using the high burst threshold when forwarding larger packets. An insufficient burst threshold delta defeats the intended purpose of mapping classes to the high burst threshold.

The low-burst-max-class parameter in the HS attachment policy (for the HSQ queue group aggregate rate) or under the secondary shaper configuration (for the secondary shaper aggregate rate) configures which queues use the low burst limit threshold and which use the high burst limit threshold. This parameter has a default max class of 6 in both contexts. As the name of the parameter implies, the specified class is the highest class that uses the low burst threshold; classes above the specified class use the high burst threshold.

Buffer Management

The HSQ supports a flexible buffer management configuration that allows both buffer isolation and buffer oversubscription for the queue buffer allocation. There are four levels to the buffer hierarchy, which are shown in HSQ Buffer Pool Hierarchy:

  • Root pools

  • Mid pools

  • Port class pools

  • Queue group queues

Figure 3. HSQ Buffer Pool Hierarchy

The total buffer allocation is divided into a system-reserved portion and a user-provisioned portion. The system buffers are allocated 5% of the total buffers in the default hs-pool-policy, which is applied to all HSQ IOMs under card>fp>egress. This value can be modified by creating a new hs-pool-policy, setting its system-reserve parameter, and applying the policy on an HSQ IOM. The user-provisioned portion is allocated the remainder of the available buffers, which can be configured as follows.

Root Pools

The root pools represent the total number of available buffers that can be provisioned. Up to 16 root pools can be configured, each having an allocation weight to determine its allocation of the available buffers. A root pool with an allocation weight of zero is not allocated any buffers. Root pools cannot oversubscribe the real buffers on the IOM. The use of multiple root pools provides buffer isolation between the queues using each root pool. At least one root pool (root pool 1) must be assigned buffers by having a non-zero allocation weight.

A high watermark is maintained for the buffer usage in each root pool. A slope policy is applied to each root pool to handle congestion control, the default being the _tmnx_hs_default slope policy. Root pools are configured per FP in an hs-pool-policy applied under card>fp>egress. Root pools 1 and 2 have an allocation weight of 75 and 25, respectively, in the default hs-pool-policy, with the remaining pools having a weight of 0.

Mid Pools

The mid pools are an abstract pool mapping mechanism. Each mid pool can be parented to a single parent root pool using its parent-root-pool parameter. Mid pools cannot be parented to a root pool without buffers and mid pools are unused if not parented to a root pool. Up to 16 mid pools are available and at least one mid pool must be parented to a root pool for its queues to buffer packets. The number of buffers in a mid pool is configured as a percentage of its parent root pool size using the allocation-percent parameter.

Mid pools can facilitate buffer isolation by being mapped to different root pools. Mapping multiple mid pools to the same root pool allows the buffers of that root pool to be shared by those child mid pools, and if the sum of the child mid pool allocation percent is greater than 100, then the root pool will be oversubscribed accordingly.

An oversubscription factor can also be applied to each mid pool (using the port-bw-oversub-factor parameter) to permit its child class pools to oversubscribe it. This does not change the size of the mid pool, but allows the mid pool size to be increased in the calculation of each of its child port class pools.

A high watermark is maintained for the buffer usage in each mid pool. A slope policy is applied to each mid pool to handle congestion control, the default being the _tmnx_hs_default slope policy. Mid pools are configured per FP egress in an hs-pool-policy applied under card>fp>egress. In the default hs-pool-policy, mid pools 1 to 4 are parented to root pool 1 with allocation percentages of 40, 35, 30, and 25; mid pools 5 and 6 are parented to root pool 2 with allocation percentages of 80 and 20; and mid pools 7 to 16 are not parented to any root pool. All mid pools have a port-bw-oversub-factor of 1.

Port Class Pools

Port class pools, as the name implies, are per-class pools that exist at the port level. There are two sets of port class pools per port: six standard port class pools and six alternative port class pools. The alternative set of port class pools enables additional flexibility for both buffer isolation and oversubscription by providing a simple mechanism to parent queues to different port class pools and, therefore, to different mid and root pools.

HSQ queue group queues are statically assigned to the port class pool associated with the scheduling class that they have been attached to (via a WRR group, if used): scheduling class 1 to port class pool 1, up to scheduling class 6 to port class pool 6. Port class pools are configured in an hs-port-pool-policy, which is applied under config>port>ethernet>egress. A default hs-port-pool-policy in which only the standard port class pools are used is applied to all HSQ ports.

Queues can be assigned to an alternative class pool (again based on the associated scheduling class) using the hs-alt-port-class-pool parameter under the queue in the SAP egress QoS policy, network queue policy, or egress queue group template.

Each port class pool parents to a single mid pool using its parent-mid-pool parameter. Port class pools are unused if not parented to a mid pool. Each port class pool must be parented to a mid pool that is parented to a root pool for queues to buffer packets. Port class pools can facilitate buffer isolation by being parented to different mid pools that are parented to different root pools. The standard port class pools are parented to their respective mid pool (port class pool 1 to mid pool 1, up to port class pool 6 to mid pool 6) in the default hs-port-pool-policy, with the alternative port class pools not parented to any mid pool.

The oversubscription of port class pools in a mid pool can be achieved by configuring the port-bw-oversub-factor under the parent mid pool (in the hs-pool-policy), which is multiplied by the size of the mid pool when calculating the size of each child class pool.

A weight is configurable per port to handle the allocation of buffers to different class pools parented to the same mid pool. This is configured using the allocation port-bw-weight under the class pool statement, where the weight configured for a port class pool is divided by the sum of the weights of the port class pools parented to the same mid pool, to determine the proportion of the allocated buffers for that port class pool. It is also possible to configure an explicit-percent for a port class pool, in which case that port class pool will be allocated the configured explicit percentage of the mid pool (without any mid pool port-bw-oversub-factor being applied).

If there are multiple port class pools parented to the same mid pool, their buffer allocation is determined using the weighting mechanism based on the port class pool allocation port-bw-weight parameter. Port class pools configured with an explicit-percent have a weight of zero (that is, they do not participate in the weighting buffer allocation). The port class pools in the default hs-port-pool-policy are configured with an allocation port-bw-weight of 1.

The port class pools are sized dynamically to provide a fair share of a mid pool size to each of its child port class pools, based on the potential bandwidth represented by each port on which the port class pools exist. The first step is to determine the usable bandwidth of each port. The mid pool buffers are then shared between its child port class pools, based on their related port usable bandwidth. An oversubscription factor is then applied to allow the port class pools to oversubscribe their mid pool. Finally, each port mid pool buffer allocation is shared between the child port class pools on that port.

No buffers are allocated to port class pools if there are no SAPs or network interfaces configured on that port and the port is shutdown. The details of the port class pool sizing calculation are as follows (examples of each are shown in the Buffer Pools configuration section):

  1. Determine each port bandwidth value.

    1. This is the minimum of the port current line rate, the port egress-rate limit, and the hs-scheduler-policy max-rate configured on the port.

    2. The port bandwidth may be further modified by the port modify-buffer-allocation-rate egr-percentage-of-rate command, which can increase or decrease the port bandwidth by the specified percent. This allows the port to have a higher or lower bandwidth derived weight, based on how the port is being used, instead of bandwidth alone.

  2. Determine each port portion of each mid pool.

    The port class pools are configured to map to the mid pools, so it is possible that not every port will have a port class pool associated with a mid pool. This requires that the system perform the relative bandwidth calculations separately per mid pool. A port without any port class pools associated with a mid pool will have a port portion of zero for that mid pool.

    Per mid pool, each port portion of the mid pool size is calculated based on:

    Port_Portion = (Port_Adj_Bw / Sigma_Mid_Pool_Ports_Adj_Bw) * Mid_Pool_Size

    Where:

    • Port_Adj_Bw is calculated in (1).

    • Sigma_Mid_Pool_Ports_Adj_Bw is the sum of the adjusted bandwidths for all ports, with port class pools mapped to the mid pool that are not sized configured with explicit-percent (see (4)).

    • Mid_Pool_Size is the mid pool parent root pool size multiplied by the mid pool allocation weight.

  3. Modify the mid pool sizes by their port-bw-oversub-factor.

    The port bandwidth weighting mechanism allocates 100% of the mid pool size to the associated port class pools. To allow the port class pools to oversubscribe their parent mid pool, the mid pool port-bw-oversub-factor parameter can be used to increase the apparent size of the mid pool (this does not change the mid pool size) in the calculation in (2). This potentially provides a more efficient use of the mid pool available buffers since it is not expected that all port class pools will be using their allotted size simultaneously.

  4. Determine each port class pool share of the mid pool port share.

    Multiple port class pools on the same port may be mapped to the same mid pool. This requires a mechanism to distribute the portion of the mid pool allocated to each port class pool on that port.

    Each port class pool allocation port-bw-weight parameter is used to determine how much of the port mid pool is given to each port class pool associated with the mid pool. A port class pool is allocated the portion of its mid pool size multiplied by its port class pool port-bw-weight divided by the sum of the port-bw-weight for all port class pools associated with that mid pool on that port.

    Alternatively, port class pools can be sized using an explicit-percent of the actual mid pool size (without applying the port-bw-oversub-factor). These class pools are assigned a port-bw-weight equal to zero, causing them to be excluded from the port portion distribution. It is expected (but not required) that either port bandwidth-based sizing or explicit percent-based sizing will be used, with concurrent use of both mechanisms being transitory in nature.

Whenever one of the inputs to the preceding calculations changes, the bandwidth weighted sizes for the corresponding pool class pools are recalculated.

A high watermark is maintained for the buffer usage in each port class pool. A slope policy is applied to each port class pool to handle congestion control, the default being the _tmnx_hs_default slope policy.

Queue Group Queues

HSQ queue group queues always operate in WRED per queue mode, supporting three WRED slopes. The total number of buffers usable by the queue is limited by the queue MBS configuration, and each packet profile type (exceed, out, in) is limited by the respective slope configuration (exceed, low, high) in the applied slope policy, if the slope is not shutdown. For a buffer to be allocated, the applicable WRED slope processing (if enabled) must accept the packet, the MBS must not be exceeded, and there must be available buffers in its parent port class pool, mid pool, and root pool.

The regular mbs queue parameter configuration is used within SAP egress QoS policies and egress queue group templates, using the regular defaults. In the network queue policy, the MBS is configured using the hs-mbs parameter, which allows a different default to be used, with its value calculated based on a percentage of one second of the queue PIR converted to bytes (the regular mbs parameter is ignored in the network queue policy). The queue CBS and drop tail configuration is ignored on an HSQ queue group queue.

A default slope (named _tmnx_hs_default) is applied to each HSQ queue, using the policy parameter on the hs-wred-queue statement within a SAP egress QoS policy, network queue policy, and egress queue group template. A user-configured regular slope policy can be applied using the same parameter and statement. The highplus-slope and time-average-factor in the applied slope policy are ignored on HSQ queue group queues.

LAGs

LAGs are supported on HSQ ports. The LAG port-type must be set to hs to add an HSQ port to a LAG, at which point only HSQ ports can be added to that LAG. When an HSQ queue group is created on a LAG, an HSQ queue group is allocated on each LAG port.

LAG access adapt-qos modes link and port-fair are supported; distribute mode is not supported.

LAG access per-fp-egr-queuing is supported and, when configured, either per-link-hash or per-service-hashing (supported service types only) must be enabled under the LAG access. LAG access per-fp-sap-instance is supported (this requires per-fp-egr-queuing to be enabled).

The full configured queue MBS is applied to all the related HSQ queue group queues on the individual LAG ports.

Configuration

This section describes simple configurations using an HSQ IOM for SAP egress, network egress, and access and network egress queue group instances.

Each configuration uses the same four queues:

  • Queue 7 at scheduling class 5

  • Queue 6 at scheduling class 4

  • Queues 1 and 2 in WRR group 1 using scheduling class 1, with queue 1 having a weight of 2 and queue 2 having a weight of 1

Scheduling class 6 has been reserved for queue 8 to be used for network protocol traffic. Queue 3 is unattached, but could at some point be added to WRR group 1. The configuration provides the future flexibility to either add queues 4 and 5 to WRR group 1, to WRR group 2, or attach them to scheduling classes 2 and 3. Although eight queues are always allocated in an HSQ queue group, only the queues to be used need to be configured.

The QoS path for the configured SAP, network interface, and access and network queue group instances with respect to their HSQ queue group, primary shaper, secondary shaper, and port scheduler, is shown in Configured QoS Paths.

Figure 4. Configured QoS Paths

The configurations start with the generic aspects:

  • Card configuration

  • Buffer pools

  • Shaping and scheduling

    • HSQ queue groups

    • HS secondary shapers

      • These are specific to SAP egress in the context of this chapter; however, as secondary shapers can also be used by subscribers, they are included with the generic aspects.

    • Ports

This is followed by the specific configuration related to:

  • SAP egress

  • Network egress

  • Access and network egress queue groups

Card Configuration

An HSQ IOM is configured with the card type iom4-e-hs and the associated supported MDAs:

A:PE-1# configure card 3
A:PE-1>config>card# info
----------------------------------------------
        card-type iom4-e-hs
        mda 1
            mda-type me10-10gb-sfp+
            no shutdown
        exit
        no shutdown
----------------------------------------------
A:PE-1>config>card# exit all
A:PE-1# show card

===============================================================================
Card Summary
===============================================================================
Slot      Provisioned Type                         Admin Operational   Comments
              Equipped Type (if different)         State State
-------------------------------------------------------------------------------
2         imm-2pac-fp3                             up    up
3         iom4-e-hs                                up    up
A         cpm5                                     up    up/active
B         cpm5                                     up    up/standby
===============================================================================
A:PE-1# 

The supported MDA types are displayed by entering a "?" after the mda-type parameter:

A:PE-1# configure card 3 mda 1 mda-type
  - mda-type <mda-type>
  - no mda-type

 <mda-type>           : me1-100gb-cfp2|me10-10gb-sfp+|me12-10/1gb-sfp+|me2-100gb-cfp4|me2-100gb-qsfp28|me40-1gb-csfp|me6-10gb-sfp+

The hs-fixed-high-thresh-delta on card 3 fp 1 is default, resulting in the high burst limit threshold (which is used by queues and WRR groups attached to scheduling classes above the low-burst-max-class) being 4000 bytes larger than the low burst limit threshold:

*A:PE-1# show card 3 detail | match "HS Fixed High Threshold Delta"
    HS Fixed High Threshold Delta : default
*A:PE-1#

The HSQ-specific resource usage is displayed as follows:

*A:PE-1# tools dump resource-usage card 3 fp 1

===============================================================================
Resource Usage Information for Card Slot #3 FP #1
===============================================================================
                                                    Total  Allocated       Free
-------------------------------------------------------------------------------
   
                               Egress Queues |     786432        123     786309
                            Ingress Policers |     511999          1     511998
                       Ingress Policer Stats |     511967          0     511967
   
                 Egress HS Turbo Queue Group |         64         10         54
                       Egress HS Queue Group |      98240         36      98204
                          HS Primary Shapers +      16384         22      16362
                 HS Explicit Primary Shapers -                     0
                  HS Managed Primary Shapers -                    22
                        HS Secondary Shapers |       4096         22       4074
===============================================================================
*A:PE-1#

The preceding output displays the usage information of the egress queues, the ingress policers and their statistics, the HS turbo queue groups, HS queue groups, HS primary shapers (the managed primary shapers are system-created, whereas the explicit primary shapers are used for ESM), and the HS secondary shapers.

The following card commands are ignored on HSQ IOMs:

  • All regular pool commands

  • ingress-buffer-allocation

  • reset-on-recoverable-error

  • virtual-scheduler-adjustment (egress only)

The following card commands are not configurable on HSQ IOMs:

  • named-pool-mode

  • stable-pool-sizing

  • egress wred-queue-control

Buffer Pools

The buffer pool configuration used in this example provides buffer isolation between traffic in queue 7, queue 6, and WRR group 1, by assigning each to a different root and mid pool. The combined queue 1 and 2 traffic share a root and mid pool.

Root and Mid Pools

The HSQ root and mid pools for an IOM are configured in an HS pool policy, which is applied under card>fp>egress.

An HS pool policy is configured as follows:

configure
    qos
        hs-pool-policy <policy-name> [create]
            description <description-string>
            mid-tier
                mid-pool <mid-pool-id>
                    allocation-percent <percent-of-parent-pool>
                    parent-root-pool <root-pool-id>
                    port-bw-oversub-factor <oversubscription-factor>
                    slope-policy <policy-name>
            root-tier
                root-pool <root-pool-id>
                    allocation-weight <pool-weight>
                    slope-policy <policy-name>
            system-reserve <percent-of-buffers>

Where (in order):

<policy-name>        : [32 chars max]
<description-string> : [80 chars max]
<mid-pool-id>        : [1..16]
<percent-of-parent*> : [0.01..100.00]
<root-pool-id>       : [1..16]
<oversubscription-*> : [1..10]
<policy-name>        : [32 chars max]
<root-pool-id>       : [1..16 | none]
<pool-weight>        : [0..100]
<policy-name>        : [32 chars max]
<percent-of-buffers> : [1.00..30.00]

A default HS pool policy is created by the system with the following configuration:

hs-pool-policy default

System reserve: 5%

Root pools

Mid pools

Root Pool ID

Allocation weight

Slope policy

Mid Pool ID

Parent mid pool

Allocation %

Port BW oversub factor

Slope policy

1

75

_tmnx_hs_default

1

1

40%

1

_tmnx_hs_default

2

25

_tmnx_hs_default

2

1

35%

1

_tmnx_hs_default

3-16

0

3

1

30%

1

_tmnx_hs_default

4

1

25%

1

_tmnx_hs_default

5

2

80%

1

_tmnx_hs_default

6

2

20%

1

_tmnx_hs_default

7-16

None

If a new HS pool policy is created, its initial configuration is as follows:

hs-pool-policy <new>

System reserve: 5%

Root pools

Mid pools

Root Pool ID

Allocation weight

Slope policy

Mid Pool ID

Parent mid pool

Allocation %

Port BW oversub factor

Slope policy

1

100

_tmnx_hs_default

1-16

1

1%

1

_tmnx_hs_default

2-16

The HS pool policy (hs-pool-pol-1) used for this example is shown following. Root pool 1 and mid pool 1 have been reserved for network protocol traffic and are not used. Root pool 2 and mid pool 2 are used for queue 7 traffic, root pool 3 and mid pool 3 are used for queue 6 traffic, and root pool 4 and mid pool 4 are used for queue 1 and queue 2 (WRR group 1) traffic. The buffer allocation for each pool is based on the expected traffic volumes.

Root pool 4 and mid pool 4 have a more aggressive slope policy (hs-slope-1) than the default HSQ slope policy (_tmnx_hs_default). The default HSQ slope policy is as follows (the HSQ slopes use the instantaneous queue depth so the time-average-factor is ignored and the highplus-slope is also ignored):

*A:PE-1>config>qos# slope-policy "_tmnx_hs_default"
*A:PE-1>config>qos>slope-policy# info detail
----------------------------------------------
            description "Default HS slope policy."
            highplus-slope
                shutdown
                start-avg 100
                max-avg 100
                max-prob 100
            exit
            high-slope
                start-avg 100
                max-avg 100
                max-prob 100
                no shutdown
            exit
            low-slope
                start-avg 90
                max-avg 90
                max-prob 100
                no shutdown
            exit
            exceed-slope
                start-avg 80
                max-avg 80
                max-prob 100
                no shutdown
            exit
            time-average-factor 7

The slope policy hs-slope-1 is configured as follows:

A:PE-1>config>qos# slope-policy "hs-slope-1"
A:PE-1>config>qos>slope-policy# info
----------------------------------------------
            highplus-slope
                shutdown
            exit
            high-slope
                start-avg 85
                max-avg 100
                no shutdown
            exit
            low-slope
                no shutdown
            exit
            exceed-slope
                shutdown
            exit

Mid pool 4 has been configured to allow a 4 times oversubscription by its child class pools.

Root pools 5 to 16 and mid pools 5 to 16 are unused.

HS pool policy hs-pool-pol-1 is summarized as follows:

hs-pool-policy hs-pool-pol-1

System reserve: 5%

Root pools

Mid pools

Root Pool ID

Allocation weight

Slope policy

Mid Pool ID

Parent mid pool

Allocation %

Port BW oversub factor

Slope policy

1

5

_tmnx_hs_default

1

1

100%

1

_tmnx_hs_default

2

10

_tmnx_hs_default

2

2

100%

1

_tmnx_hs_default

3

20

_tmnx_hs_default

3

3

100%

1

_tmnx_hs_default

4

65

hs-slope-1

4

4

100%

4

hs-slope-1

5-16

0

_

5-16

None

The HS pool policy hs-pool-pol-1 is configured as follows:

A:PE-1>config>qos>hs-pool-policy# info
----------------------------------------------
            root-tier
                root-pool 1
                    allocation-weight 5
                exit
                root-pool 2
                    allocation-weight 10
                exit
                root-pool 3
                    allocation-weight 20
                exit
                root-pool 4
                    allocation-weight 65
                    slope-policy "hs-slope-1"
                exit
            exit
            mid-tier
                mid-pool 1
                    allocation-percent 100.00
                exit
                mid-pool 2
                    parent-root-pool 2
                    allocation-percent 100.00
                exit
                mid-pool 3
                    parent-root-pool 3
                    allocation-percent 100.00
                exit
                mid-pool 4
                    parent-root-pool 4
                    allocation-percent 100.00
                    port-bw-oversub-factor 4
                    slope-policy "hs-slope-1"
                exit
                mid-pool 5
                    parent-root-pool none
                exit
                mid-pool 6
                    parent-root-pool none
                exit
                mid-pool 7
                    parent-root-pool none
                exit
                mid-pool 8
                    parent-root-pool none
                exit
                mid-pool 9
                    parent-root-pool none
                exit
                mid-pool 10
                    parent-root-pool none
                exit
                mid-pool 11
                    parent-root-pool none
                exit
                mid-pool 12
                    parent-root-pool none
                exit
                mid-pool 13
                    parent-root-pool none
                exit
                mid-pool 14
                    parent-root-pool none
                exit
                mid-pool 15
                    parent-root-pool none
                exit
                mid-pool 16
                    parent-root-pool none
                exit
            exit

The HS pool policy is shown as follows:

*A:PE-1# show qos hs-pool-policy "hs-pool-pol-1"

===============================================================================
HS Pool Policy Information
===============================================================================
Policy Name             : hs-pool-pol-1
Description             : (Not Specified)
System Reserve          : 5.00

-------------------------------------------------------------------------------
Root Pool Information
-------------------------------------------------------------------------------
Pool Id                 : 1             Allocation Weight   : 5
Slope Policy            : _tmnx_hs_default

Pool Id                 : 2             Allocation Weight   : 10
Slope Policy            : _tmnx_hs_default

Pool Id                 : 3             Allocation Weight   : 20
Slope Policy            : _tmnx_hs_default

Pool Id                 : 4             Allocation Weight   : 65
Slope Policy            : hs-slope-1

Pool Id                 : 5             Allocation Weight   : 0
Slope Policy            : _tmnx_hs_default

Pool Id                 : 6             Allocation Weight   : 0
Slope Policy            : _tmnx_hs_default

Pool Id                 : 7             Allocation Weight   : 0
Slope Policy            : _tmnx_hs_default

Pool Id                 : 8             Allocation Weight   : 0
Slope Policy            : _tmnx_hs_default

Pool Id                 : 9             Allocation Weight   : 0
Slope Policy            : _tmnx_hs_default

Pool Id                 : 10            Allocation Weight   : 0
Slope Policy            : _tmnx_hs_default

Pool Id                 : 11            Allocation Weight   : 0
Slope Policy            : _tmnx_hs_default

Pool Id                 : 12            Allocation Weight   : 0
Slope Policy            : _tmnx_hs_default

Pool Id                 : 13            Allocation Weight   : 0
Slope Policy            : _tmnx_hs_default
Pool Id                 : 14            Alloc
ation Weight   : 0
Slope Policy            : _tmnx_hs_default
Pool Id                 : 15            Allocation Weight   : 0
Slope Policy            : _tmnx_hs_default

Pool Id                 : 16            Allocation Weight   : 0
Slope Policy            : _tmnx_hs_default

-------------------------------------------------------------------------------

-------------------------------------------------------------------------------
Mid Pool Information
-------------------------------------------------------------------------------
Pool Id                 : 1             Allocation Percent  : 100.00
Port BW Oversub Factor  : 1             Parent Root Pool    : 1
Slope Policy            : _tmnx_hs_default

Pool Id                 : 2             Allocation Percent  : 100.00
Port BW Oversub Factor  : 1             Parent Root Pool    : 2
Slope Policy            : _tmnx_hs_default

Pool Id                 : 3             Allocation Percent  : 100.00
Port BW Oversub Factor  : 1             Parent Root Pool    : 3
Slope Policy            : _tmnx_hs_default

Pool Id                 : 4             Allocation Percent  : 100.00
Port BW Oversub Factor  : 4             Parent Root Pool    : 4
Slope Policy            : hs-slope-1

Pool Id                 : 5             Allocation Percent  : 1.00
Port BW Oversub Factor  : 1             Parent Root Pool    : 0
Slope Policy            : _tmnx_hs_default

Pool Id                 : 6             Allocation Percent  : 1.00
Port BW Oversub Factor  : 1             Parent Root Pool    : 0
Slope Policy            : _tmnx_hs_default

Pool Id                 : 7             Allocation Percent  : 1.00
Port BW Oversub Factor  : 1             Parent Root Pool    : 0
Slope Policy            : _tmnx_hs_default

Pool Id                 : 8             Allocation Percent  : 1.00
Port BW Oversub Factor  : 1             Parent Root Pool    : 0
Slope Policy            : _tmnx_hs_default

Pool Id                 : 9             Allocation Percent  : 1.00
Port BW Oversub Factor  : 1             Parent Root Pool    : 0
Slope Policy            : _tmnx_hs_default

Pool Id                 : 10            Allocation Percent  : 1.00
Port BW Oversub Factor  : 1             Parent Root Pool    : 0
Slope Policy            : _tmnx_hs_default

Pool Id                 : 11            Allocation Percent  : 1.00
Port BW Oversub Factor  : 1             Parent Root Pool    : 0
Slope Policy            : _tmnx_hs_default

Pool Id                 : 12            Allocation Percent  : 1.00
Port BW Oversub Factor  : 1             Parent Root Pool    : 0
Slope Policy            : _tmnx_hs_default

Pool Id                 : 13            Allocation Percent  : 1.00
Port BW Oversub Factor  : 1             Parent Root Pool    : 0
Slope Policy            : _tmnx_hs_default

Pool Id                 : 14            Allocation Percent  : 1.00
Port BW Oversub Factor  : 1             Parent Root Pool    : 0
Slope Policy            : _tmnx_hs_default

Pool Id                 : 15            Allocation Percent  : 1.00
Port BW Oversub Factor  : 1             Parent Root Pool    : 0
Slope Policy            : _tmnx_hs_default

Pool Id                 : 16            Allocation Percent  : 1.00
Port BW Oversub Factor  : 1             Parent Root Pool    : 0
Slope Policy            : _tmnx_hs_default

-------------------------------------------------------------------------------
===============================================================================
*A:PE-1#

This HS pool policy is configured for the HSQ IOM as follows:

A:PE-1# configure card 3
A:PE-1>config>card# info
----------------------------------------------
        card-type iom4-e-hs
        fp 1
            egress
                hs-pool-policy "hs-pool-pol-1"
            exit
        exit
        no shutdown
----------------------------------------------
A:PE-1>config>card#

The association of this HS pool policy is shown as follows:

*A:PE-1# show qos hs-pool-policy "hs-pool-pol-1" association

===============================================================================
HS Pool Policy Information
===============================================================================
Policy Name             : hs-pool-pol-1
Description             : (Not Specified)
System Reserve          : 5.00

-------------------------------------------------------------------------------
Card Forwarding Plane (FP) Associations
-------------------------------------------------------------------------------
Card                FP
-------------------------------------------------------------------------------
3                   1
-------------------------------------------------------------------------------
===============================================================================
*A:PE-1#

The resulting system and user-provisioned pool information is shown following. This output shows the total buffer allocation, number of allocated buffers, available buffer allocation, and buffer high watermarks for the system pools and user-provisioned pools. The output shows the hierarchy of the root and mid pools, with their applied slope policy and the related instantaneous slope drop probabilities (as a percentage):

*A:PE-1# show hs-pools 3 fp 1 egress

===============================================================================
HS Pools Card Forwarding Plane Information
===============================================================================
Card               : 3                  FP                 : 1

-------------------------------------------------------------------------------
System Pool Information
-------------------------------------------------------------------------------

Total Buffers      : 209412 KB          Allocated          : 0 KB
Available          : 209412 KB          High Water Mark    : 0 KB

-------------------------------------------------------------------------------
Buffer Pool Hierarchy Information
-------------------------------------------------------------------------------

Root Pool : 1
|  Total               : 198942 KB   Allocated         : 0 KB
|  Available           : 198942 KB   High Water Mark   : 0 KB
|  Hi-Slope Drop Prob  : 0           Lo-Slope Drop Prob: 0
|  Excd-Slope Drop Prob: 0
|  Hs Slope Policy     : _tmnx_hs_default
|
|--- Mid Pool : 1
|     | Total               : 198942 KB   Allocated         : 0 KB
|     | Available           : 198942 KB   High Water Mark   : 0 KB
|     | Hi-Slope Drop Prob  : 0           Lo-Slope Drop Prob: 0
|     | Excd-Slope Drop Prob: 0
|     | Hs Slope Policy     : _tmnx_hs_default
|     |
Root Pool : 2
|  Total               : 397886 KB   Allocated         : 0 KB
|  Available           : 397886 KB   High Water Mark   : 0 KB
|  Hi-Slope Drop Prob  : 0           Lo-Slope Drop Prob: 0
|  Excd-Slope Drop Prob: 0
|  Hs Slope Policy     : _tmnx_hs_default
|
|--- Mid Pool : 2
|     | Total               : 397886 KB   Allocated         : 0 KB
|     | Available           : 397886 KB   High Water Mark   : 0 KB
|     | Hi-Slope Drop Prob  : 0           Lo-Slope Drop Prob: 0
|     | Excd-Slope Drop Prob: 0
|     | Hs Slope Policy     : _tmnx_hs_default
|     |
Root Pool : 3
|  Total               : 795772 KB   Allocated         : 0 KB
|  Available           : 795772 KB   High Water Mark   : 0 KB
|  Hi-Slope Drop Prob  : 0           Lo-Slope Drop Prob: 0
|  Excd-Slope Drop Prob: 0
|  Hs Slope Policy     : _tmnx_hs_default
|
|--- Mid Pool : 3
|     | Total               : 795772 KB   Allocated         : 0 KB
|     | Available           : 795772 KB   High Water Mark   : 0 KB
|     | Hi-Slope Drop Prob  : 0           Lo-Slope Drop Prob: 0
|     | Excd-Slope Drop Prob: 0
|     | Hs Slope Policy     : _tmnx_hs_default
|     |
Root Pool : 4
|  Total               : 2586262 KB  Allocated         : 0 KB
|  Available           : 2586262 KB  High Water Mark   : 0 KB
|  Hi-Slope Drop Prob  : 0           Lo-Slope Drop Prob: 0
|  Excd-Slope Drop Prob: 0
|  Hs Slope Policy     : hs-slope-1
|
|--- Mid Pool : 4
|     | Total               : 2586262 KB  Allocated         : 0 KB
|     | Available           : 2586262 KB  High Water Mark   : 0 KB
|     | Hi-Slope Drop Prob  : 0           Lo-Slope Drop Prob: 0
|     | Excd-Slope Drop Prob: 0
|     | Hs Slope Policy     : hs-slope-1
|     |

Port Class Pools

The HSQ port class pools for a port are configured in an HS port pool policy, which is applied under config>port>ethernet>egress.

An HS port pool policy is configured as follows:

configure
    qos
        hs-port-pool-policy <policy-name> [create]
            description <description-string>
            std-port-class-pools
                class-pool <std-class-pool-id>
                    allocation explicit-percent <percent-of-parent-pool>
                    allocation port-bw-weight <pool-weight>
                    parent-mid-pool <mid-pool-id>
                    slope-policy <policy-name>
            alt-port-class-pools
                class-pool <alt-class-pool-id>
                    allocation explicit-percent <percent-of-parent-pool>
                    allocation port-bw-weight <pool-weight>
                    parent-mid-pool <mid-pool-id>
                    slope-policy <policy-name>

Where (in order):

<policy-name>        : [32 chars max]
<description-string> : [80 chars max]
<std-class-pool-id>  : [1..6]
<percent-of-parent*> : [0.01..100.00]
<pool-weight>        : [1..100]
<mid-pool-id>        : [1..16 | none]
<policy-name>        : [32 chars max]
<alt-class-pool-id>  : [1..6]
<percent-of-parent*> : [0.01..100.00]
<pool-weight>        : [1..100]
<mid-pool-id>        : [1..16 | none]
<policy-name>        : [32 chars max]

A default HS pool policy is created by the system with the following configuration:

hs-port-pool-policy default

Standard port class pools

Alternative port class pools

Class Pool ID

Parent mid pool

Allocation port bw weight

Slope policy

Class Pool ID

Parent mid pool

Allocation port bw weight

Slope policy

1

1

1

_tmnx_hs_default

1-6

None

2

2

1

_tmnx_hs_default

3

3

1

_tmnx_hs_default

4

4

1

_tmnx_hs_default

5

5

1

_tmnx_hs_default

6

6

1

_tmnx_hs_default

Newly created HS port pool policies have the following parameters:

hs-port-pool-policy <new>

Standard port class pools

Alternative port class pools

Class Pool ID

Parent mid pool

Allocation port bw weight

Slope policy

Class Pool ID

Parent mid pool

Allocation port bw weight

Slope policy

1-6

1

1

_tmnx_hs_default

1-6

None

The HS port pool policy used for traffic in this example is shown following. Only port class pools 1, 4, 5, and 6 are used, which are parented to mid pools 4, 3, 2, and 1, respectively. As scheduling classes 2 and 3 are unused, their associated standard port class pools are not parented to a mid pool. The alternative port class pools are also unused, so are not parented to a mid pool. Standard port class pools 4 to 6 use the default HSQ slope policy with standard port class pool 1 using slope policy hs-slope-1.

hs-port-pool-policy hs-port-pool-pol-1

Standard port class pools

Alternative port class pools

Class Pool ID

Parent mid pool

Allocation port bw weight

Slope policy

Class Pool ID

Parent mid pool

Allocation port bw weight

Slope policy

1

4

1

hs-slope-1

1-6

None

2-3

None

4

3

1

_tmnx_hs_default

5

2

1

_tmnx_hs_default

6

1

1

_tmnx_hs_default

The HS port pool policy is configured as follows:

*A:PE-1>config>qos# hs-port-pool-policy "hs-port-pool-pol-1"
*A:PE-1>config>qos>hs-port-pool-policy# info
----------------------------------------------
            std-port-class-pools
                class-pool 1
                    parent-mid-pool 4
                    slope-policy "hs-slope-1"
                exit
                class-pool 2
                    parent-mid-pool none
                exit
                class-pool 3
                    parent-mid-pool none
                exit
                class-pool 4
                    parent-mid-pool 3
                exit
                class-pool 5
                    parent-mid-pool 2
                exit
            exit

The HS port pool policy is shown as follows:

*A:PE-1# show qos hs-port-pool-policy "hs-port-pool-pol-1"

===============================================================================
HS Port Pool Policy Information
===============================================================================
Policy Name             : hs-port-pool-pol-1
Description             : (Not Specified)

-------------------------------------------------------------------------------
Standard Port Class Pool Information
-------------------------------------------------------------------------------
Class Id                : 1             Parent Mid Pool     : 4
Alloc Port BW Weight    : 1             Alloc Explicit Prcnt: 0.00
Slope Policy            : hs-slope-1

Class Id                : 2             Parent Mid Pool     : 0
Alloc Port BW Weight    : 1             Alloc Explicit Prcnt: 0.00
Slope Policy            : _tmnx_hs_default

Class Id                : 3             Parent Mid Pool     : 0
Alloc Port BW Weight    : 1             Alloc Explicit Prcnt: 0.00
Slope Policy            : _tmnx_hs_default

Class Id                : 4             Parent Mid Pool     : 3
Alloc Port BW Weight    : 1             Alloc Explicit Prcnt: 0.00
Slope Policy            : _tmnx_hs_default

Class Id                : 5             Parent Mid Pool     : 2
Alloc Port BW Weight    : 1             Alloc Explicit Prcnt: 0.00
Slope Policy            : _tmnx_hs_default

Class Id                : 6             Parent Mid Pool     : 1
Alloc Port BW Weight    : 1             Alloc Explicit Prcnt: 0.00
Slope Policy            : _tmnx_hs_default

-------------------------------------------------------------------------------

-------------------------------------------------------------------------------
Alternate Port Class Pool Information
-------------------------------------------------------------------------------
Class Id                : 1             Parent Mid Pool     : 0
Alloc Port BW Weight    : 1             Alloc Explicit Prcnt: 0.00
Slope Policy            : _tmnx_hs_default

Class Id                : 2             Parent Mid Pool     : 0
Alloc Port BW Weight    : 1             Alloc Explicit Prcnt: 0.00
Slope Policy            : _tmnx_hs_default

Class Id                : 3             Parent Mid Pool     : 0
Alloc Port BW Weight    : 1             Alloc Explicit Prcnt: 0.00
Slope Policy            : _tmnx_hs_default

Class Id                : 4             Parent Mid Pool     : 0
Alloc Port BW Weight    : 1             Alloc Explicit Prcnt: 0.00
Slope Policy            : _tmnx_hs_default

Class Id                : 5             Parent Mid Pool     : 0
Alloc Port BW Weight    : 1             Alloc Explicit Prcnt: 0.00
Slope Policy            : _tmnx_hs_default

Class Id                : 6             Parent Mid Pool     : 0
Alloc Port BW Weight    : 1             Alloc Explicit Prcnt: 0.00
Slope Policy            : _tmnx_hs_default

-------------------------------------------------------------------------------
===============================================================================
*A:PE-1#

The preceding HS port pool policy applied to ports 3/1/1 and 3/1/2 is shown as follows:

*A:PE-1# show qos hs-port-pool-policy "hs-port-pool-pol-1" association

===============================================================================
HS Port Pool Policy Information
===============================================================================
Policy Name             : hs-port-pool-pol-1
Description             : (Not Specified)

-------------------------------------------------------------------------------
Port Ethernet Egress Associations
-------------------------------------------------------------------------------
3/1/1
3/1/2
-------------------------------------------------------------------------------
===============================================================================
*A:PE-1#

The remaining ports (3/1/[3..10]) are unused in this example, so their port class pools are not parented, by applying the following HS port pool policy to each:

hs-port-pool-policy no-class-pools

Standard port class pools

Alternative port class pools

Class Pool ID

Parent mid pool

Allocation port bw weight

Slope policy

Class Pool ID

Parent mid pool

Allocation port bw weight

Slope policy

1-6

None

1-6

None

*A:PE-1>config>qos# hs-port-pool-policy "no-class-pools"
*A:PE-1>config>qos>hs-port-pool-policy# info
----------------------------------------------
            std-port-class-pools
                class-pool 1
                    parent-mid-pool none
                exit
                class-pool 2
                    parent-mid-pool none
                exit
                class-pool 3
                    parent-mid-pool none
                exit
                class-pool 4
                    parent-mid-pool none
                exit
                class-pool 5
                    parent-mid-pool none
                exit
                class-pool 6
                    parent-mid-pool none
                exit
            exit

The HS port pool policies applied to the ports on card 3 are configured as follows:

configure
    port 3/1/1
        ethernet
            egress
                hs-port-pool-policy "hs-port-pool-pol-1"
    port 3/1/2
        ethernet
            egress
                hs-port-pool-policy "hs-port-pool-pol-1"
    port 3/1/[3..10]
        ethernet
            egress
                hs-port-pool-policy "no-class-pools"

The pools created on port 3/1/1, after applying the preceding HS pool policy and HS port pool policies, are shown following. The root and mid pools in this output are the same as in the show hs-pools 3 fp 1 egress output; these pools are configured per FP so are the same for all ports. The additional information shows the details of the port class pools on this port and to which mid pools they are parented:

*A:PE-1# show hs-pools port 3/1/1 egress

===============================================================================
HS Pools Port Information
===============================================================================
Port               : 3/1/1

-------------------------------------------------------------------------------
System Pool Information
-------------------------------------------------------------------------------

Total Buffers      : 209412 KB          Allocated          : 0 KB
Available          : 209412 KB          High Water Mark    : 0 KB

-------------------------------------------------------------------------------
Buffer Pool Hierarchy Information
-------------------------------------------------------------------------------

Root Pool : 1
|  Total               : 198942 KB   Allocated         : 0 KB
|  Available           : 198942 KB   High Water Mark   : 0 KB
|  Hi-Slope Drop Prob  : 0           Lo-Slope Drop Prob: 0
|  Excd-Slope Drop Prob: 0
|  Hs Slope Policy     : _tmnx_hs_default
|
|--- Mid Pool : 1
|     | Total               : 198942 KB   Allocated         : 0 KB
|     | Available           : 198942 KB   High Water Mark   : 0 KB
|     | Hi-Slope Drop Prob  : 0           Lo-Slope Drop Prob: 0
|     | Excd-Slope Drop Prob: 0
|     | Hs Slope Policy     : _tmnx_hs_default
|     |
|     |--- Std Port Class Pool : 6
|     |      Total               : 99470 KB    Allocated         : 0 KB
|     |      Available           : 99470 KB    High Water Mark   : 0 KB
|     |      Hi-Slope Drop Prob  : 0           Lo-Slope Drop Prob: 0
|     |      Excd-Slope Drop Prob: 0
|     |      Hs Slope Policy     : _tmnx_hs_default
|     |
Root Pool : 2
|  Total               : 397886 KB   Allocated         : 0 KB
|  Available           : 397886 KB   High Water Mark   : 0 KB
|  Hi-Slope Drop Prob  : 0           Lo-Slope Drop Prob: 0
|  Excd-Slope Drop Prob: 0
|  Hs Slope Policy     : _tmnx_hs_default
|
|--- Mid Pool : 2
|     | Total               : 397886 KB   Allocated         : 0 KB
|     | Available           : 397886 KB   High Water Mark   : 0 KB
|     | Hi-Slope Drop Prob  : 0           Lo-Slope Drop Prob: 0
|     | Excd-Slope Drop Prob: 0
|     | Hs Slope Policy     : _tmnx_hs_default
|     |
|     |--- Std Port Class Pool : 5
|     |      Total               : 198942 KB   Allocated         : 0 KB
|     |      Available           : 198942 KB   High Water Mark   : 0 KB
|     |      Hi-Slope Drop Prob  : 0           Lo-Slope Drop Prob: 0
|     |      Excd-Slope Drop Prob: 0
|     |      Hs Slope Policy     : _tmnx_hs_default
|     |
Root Pool : 3
|  Total               : 795772 KB   Allocated         : 0 KB
|  Available           : 795772 KB   High Water Mark   : 0 KB
|  Hi-Slope Drop Prob  : 0           Lo-Slope Drop Prob: 0
|  Excd-Slope Drop Prob: 0
|  Hs Slope Policy     : _tmnx_hs_default
|
|--- Mid Pool : 3
|     | Total               : 795772 KB   Allocated         : 0 KB
|     | Available           : 795772 KB   High Water Mark   : 0 KB
|     | Hi-Slope Drop Prob  : 0           Lo-Slope Drop Prob: 0
|     | Excd-Slope Drop Prob: 0
|     | Hs Slope Policy     : _tmnx_hs_default
|     |
|     |--- Std Port Class Pool : 4
|     |      Total               : 397886 KB   Allocated         : 0 KB
|     |      Available           : 397886 KB   High Water Mark   : 0 KB
|     |      Hi-Slope Drop Prob  : 0           Lo-Slope Drop Prob: 0
|     |      Excd-Slope Drop Prob: 0
|     |      Hs Slope Policy     : _tmnx_hs_default
|     |
Root Pool : 4
|  Total               : 2586262 KB  Allocated         : 0 KB
|  Available           : 2586262 KB  High Water Mark   : 0 KB
|  Hi-Slope Drop Prob  : 0           Lo-Slope Drop Prob: 0
|  Excd-Slope Drop Prob: 0
|  Hs Slope Policy     : hs-slope-1
|
|--- Mid Pool : 4
|     | Total               : 2586262 KB  Allocated         : 0 KB
|     | Available           : 2586262 KB  High Water Mark   : 0 KB
|     | Hi-Slope Drop Prob  : 0           Lo-Slope Drop Prob: 0
|     | Excd-Slope Drop Prob: 0
|     | Hs Slope Policy     : hs-slope-1
|     |
|     |--- Std Port Class Pool : 1
|     |      Total               : 4194302 KB  Allocated         : 0 KB
|     |      Available           : 4194302 KB  High Water Mark   : 0 KB
|     |      Hi-Slope Drop Prob  : 0           Lo-Slope Drop Prob: 0
|     |      Excd-Slope Drop Prob: 0
|     |      Hs Slope Policy     : hs-slope-1
|     |
Note:

The maximum size of a port class pool is capped here at 4194302 kbytes, as shown for the port class pool parented to mid/root pool 4.

The following show commands are available to display the pool configuration and queue details:

show hs-pools port <port-id> egress
show hs-pools port <port-id> egress network-queues
show hs-pools port <port-id> egress queue-group <queue-group-name> 
                             [instance <instance-id>]
show hs-pools port <port-id> egress sap <sap-id>
show hs-pools port <port-id> egress subscriber <sub-ident-string>

The root and mid pool information in each command is the same as in the command show hs-pools <card-slot-number> fp <forwarding-plane> egress but the commands also show the port class pool information on the specified port, together with the queue information for that port.

Pool Sizing and Oversubscription

The logic to size the root, mid, and port class pools is described in the Buffer Management section.

Root pools are sized using their allocation-weight parameter, which is divided by the sum of all root pool allocation-weight to give the portion of the total user-provisioned buffers allocated to the root pool.

The mid pools are sized using their allocation-percent parameter, which is a percentage of their parent root pool size.

The port class pools size calculation has more factors. The following output shows the effect of the different sizing parameters on the port class pools size. The steps are:

  • An HS pool policy and HS port pool policies are applied to an HSQ IOM and its ports to configure one root pool with one child mid pool that has one child standard port class pool on port 3/1/1. Each pool has the same size matching the total available buffers:

    *A:PE-1# show hs-pools port 3/1/1 egress | 
                  match "Root Pool : 1" post-lines 26 | match "Pool" post-lines 1
    Root Pool : 1
    |  Total               : 3978866 KB  Allocated         : 0 KB
    |--- Mid Pool : 1
    |     | Total               : 3978866 KB  Allocated         : 0 KB
    |     |--- Std Port Class Pool : 1
    |     |      Total               : 3978866 KB  Allocated         : 0 KB
    
  • A standard port class pool is added to port 3/1/2, causing the mid pool size to be shared between port class pool 1 on port 3/1/1 and 3/1/2:

    *A:PE-1# configure port 3/1/2 ethernet egress 
                                   hs-port-pool-policy "hs-port-pool-policy-test"
    *A:PE-1# show hs-pools port 3/1/1 egress | 
                  match "Root Pool : 1" post-lines 26 | match "Pool" post-lines 1
    Root Pool : 1
    |  Total               : 3978866 KB  Allocated         : 0 KB
    |--- Mid Pool : 1
    |     | Total               : 3978866 KB  Allocated         : 0 KB
    |     |--- Std Port Class Pool : 1
    |     |      Total               : 1989432 KB  Allocated         : 0 KB
    *A:PE-1# show hs-pools port 3/1/2 egress | match "Root Pool : 1" post-lines 26 | match "Pool" post-lines 1
    Root Pool : 1
    |  Total               : 3978866 KB  Allocated         : 0 KB
    |--- Mid Pool : 1
    |     | Total               : 3978866 KB  Allocated         : 0 KB
    |     |--- Std Port Class Pool : 1
    |     |      Total               : 1989432 KB  Allocated         : 0 KB
    
  • The egress rate is set on port 3/1/1 (which is a 10 Gb/s port) to 5 Gb/s. This reduces the size of the port class pools on port 3/1/1 to one-third of the mid pool size and increases the size of the port class pools on port 3/1/2 to two-thirds of the mid pool size, after which the egress rate is removed:

    *A:PE-1# configure port 3/1/1 ethernet egress-rate 5000000
    *A:PE-1# show hs-pools port 3/1/1 egress | 
                  match "Root Pool : 1" post-lines 26 | match "Pool" post-lines 1
    Root Pool : 1
    |  Total               : 3978866 KB  Allocated         : 0 KB
    |--- Mid Pool : 1
    |     | Total               : 3978866 KB  Allocated         : 0 KB
    |     |--- Std Port Class Pool : 1
    |     |      Total               : 1326288 KB  Allocated         : 0 KB
    *A:PE-1# show hs-pools port 3/1/2 egress | 
                  match "Root Pool : 1" post-lines 26 | match "Pool" post-lines 1
    Root Pool : 1
    |  Total               : 3978866 KB  Allocated         : 0 KB
    |--- Mid Pool : 1
    |     | Total               : 3978866 KB  Allocated         : 0 KB
    |     |--- Std Port Class Pool : 1
    |     |      Total               : 2652576 KB  Allocated         : 0 KB
    *A:PE-1# configure port 3/1/1 ethernet no egress-rate
    
  • The egr-percentage-of-rate is set to 200% on port 3/1/1 to increase its port class pool to two-thirds of the mid pools size and reduce the port class pool on port 3/1/2 to one-third of the mid pools size, after which the egr-percentage-of-rate is removed:

    *A:PE-1# configure port 3/1/1 modify-buffer-allocation-rate egr-percentage-of-rate 200
    *A:PE-1# show hs-pools port 3/1/1 egress | 
                  match "Root Pool : 1" post-lines 26 | match "Pool" post-lines 1
    Root Pool : 1
    |  Total               : 3978866 KB  Allocated         : 0 KB
    |--- Mid Pool : 1
    |     | Total               : 3978866 KB  Allocated         : 0 KB
    |     |--- Std Port Class Pool : 1
    |     |      Total               : 2652576 KB  Allocated         : 0 KB
    *A:PE-1# show hs-pools port 3/1/2 egress | 
                  match "Root Pool : 1" post-lines 26 | match "Pool" post-lines 1
    Root Pool : 1
    |  Total               : 3978866 KB  Allocated         : 0 KB
    |--- Mid Pool : 1
    |     | Total               : 3978866 KB  Allocated         : 0 KB
    |     |--- Std Port Class Pool : 1
    |     |      Total               : 1326288 KB  Allocated         : 0 KB
    *A:PE-1# configure port 3/1/1 modify-buffer-allocation-rate 
                                  no egr-percentage-of-rate
    
  • Standard port class pool 2 is parented to the mid pool with a port-bw-weight set to 2. The port-bw-weight of port class pool 1 is the default of 1. This causes this port mid pool size to be shared in a 1:2 ratio between port class pool 1 and 2 on both ports 3/1/1 and 3/1/2 (only port 3/1/1 is shown). The total port class pool size is shown in the second step preceding, that is, 1989432 kbytes.

    *A:PE-1# configure qos hs-port-pool-policy "hs-port-pool-policy-test"
    *A:PE-1>config>qos>hs-port-pool-policy# std-port-class-pools 
                                                  class-pool 2 parent-mid-pool 1
    *A:PE-1>config>qos>hs-port-pool-policy# std-port-class-pools 
                                        class-pool 2 allocation port-bw-weight 2
    *A:PE-1>config>qos>hs-port-pool-policy# exit all
    *A:PE-1# show hs-pools port 3/1/1 egress | 
                  match "Root Pool : 1" post-lines 47 | match "Pool" post-lines 1
    Root Pool : 1
    |  Total               : 3978866 KB  Allocated         : 0 KB
    |--- Mid Pool : 1
    |     | Total               : 3978866 KB  Allocated         : 0 KB
    |     |--- Std Port Class Pool : 1
    |     |      Total               : 663144 KB   Allocated         : 0 KB
    |     |--- Std Port Class Pool : 2
    |     |      Total               : 1326288 KB  Allocated         : 0 KB
    
  • "The two port class pools 1 and 2 on port 3/1/1 are modified to use an explicit-percent of 40% and 60%, respectively:

    *A:PE-1# configure qos hs-port-pool-policy "hs-port-pool-policy-test"
    *A:PE-1>config>qos>hs-port-pool-policy# std-port-class-pools 
                                      class-pool 1 allocation explicit-percent 40
    *A:PE-1>config>qos>hs-port-pool-policy# std-port-class-pools 
                                      class-pool 2 allocation explicit-percent 60
    *A:PE-1>config>qos>hs-port-pool-policy# exit all
    *A:PE-1# show hs-pools port 3/1/1 egress | 
                  match "Root Pool : 1" post-lines 47 | match "Pool" post-lines 1
    Root Pool : 1
    |  Total               : 3978866 KB  Allocated         : 0 KB
    |--- Mid Pool : 1
    |     | Total               : 3978866 KB  Allocated         : 0 KB
    |     |--- Std Port Class Pool : 1
    |     |      Total               : 1591546 KB  Allocated         : 0 KB
    |     |--- Std Port Class Pool : 2
    |     |      Total               : 2387318 KB  Allocated         : 0 KB 
    

To assist with sizing the buffer pools, each pool has a high watermark, which can be displayed using the show hs-pools command and cleared using the following commands:

clear card <slot-number> fp <[1..2]> hs-pool high-water-mark
clear card <slot-number> fp <[1..2]> hs-pool high-water-mark mid-pool <[1..16]>
clear card <slot-number> fp <[1..2]> hs-pool high-water-mark root-pool <[1..16]>
clear card <slot-number> fp <[1..2]> hs-pool high-water-mark system
clear port <port-id> hs-pool high-water-mark 
                                      { [standard <1..6>] | [alternate <1..6>] }

The HSQ ingress and non-HSQ egress line cards support a stable-pool-sizing command under card>fp, which avoids pool sizes changing when MDAs and ports are configured.

An equivalent effect can be achieved at the egress of an HSQ by creating two sets of root pools and two sets of mid pools in the hs-pool-policy applied to the IOM under card>fp>egress. The first set of mid pools parent to the first set of root pools and the second set of mid pools parent to the second set of root pools. Then create two hs-port-pool-policies: one applied to the ports on the first MDA with its port class pools parented to the first set of mid pools and the other applied to the ports on the second MDA with its port class pools parented to the second set of mid pools. This provides deterministic pool sizing independent of MDAs being inserted or removed.

Further control at the port class level can be obtained by using port class pool explicit-percent based sizing to eliminate the effect of changing port states, including bandwidth changes.

The root pools cannot oversubscribe the user-provisioned buffers, but the mid pools can oversubscribe their root pool and the port class pools can oversubscribe their mid pool.

The following configuration and output shows the oversubscription possibilities.

The default HS pool policy is applied to the HSQ IOM, so root pools 1 and 2 are allocated 75% and 25% of the user-provisioned buffers:

*A:PE-1>config>qos>hs-pool-policy# info detail |
                      match expression " root-pool 1$| root-pool 2$" post-lines 1
                root-pool 1
                    allocation-weight 75
                root-pool 2
                    allocation-weight 25

*A:PE-1# show hs-pools 3 fp 1 egress | match "Root Pool" post-lines 1
Root Pool : 1
|  Total               : 2984148 KB  Allocated         : 0 KB
Root Pool : 2
|  Total               : 994716 KB   Allocated         : 0 KB

If a new HS pool policy is applied to this IOM, only one root pool is allocated buffers with an allocation weight of 100:

*A:PE-1>config>qos>hs-pool-policy$ info detail | 
                      match expression " root-pool 1$" post-lines 1
                root-pool 1
                    allocation-weight 100

*A:PE-1# show hs-pools port 3/1/1 egress | match "Root Pool : 1" post-lines 1
Root Pool : 1
|  Total               : 3978866 KB  Allocated         : 0 KB

Root pool 16 is configured with the same allocation weight of 100, causing the two root pools to share the available user-provisioned buffers:

*A:PE-1>config>qos>hs-pool-policy# info detail | 
                      match expression " root-pool 1$| root-pool 16$" post-lines 1
                root-pool 1
                    allocation-weight 100
                root-pool 16
                    allocation-weight 100

*A:PE-1# show hs-pools port 3/1/1 egress | match "Root Pool : 1" post-lines 1
Root Pool : 1
|  Total               : 1989432 KB  Allocated         : 0 KB
Root Pool : 16
|  Total               : 1989432 KB  Allocated         : 0 KB

Mid pool 16 is parented to root pool 16 with an allocation percent of 100, so it has the same number of allocated buffers as root pool 16:

*A:PE-1>config>qos>hs-pool-policy# info detail | 
      match expression " root-pool 16$| mid-pool 16$" post-lines 2 | 
      match invert-match slope
                root-pool 16
                    allocation-weight 100
                mid-pool 16
                    parent-root-pool 16
                    allocation-percent 100.00

*A:PE-1# show hs-pools port 3/1/1 egress | 
               match "Root Pool : 16" post-lines 19 | match "Pool" post-lines 1
Root Pool : 16
|  Total               : 1989432 KB  Allocated         : 0 KB
|--- Mid Pool : 16
|     | Total               : 1989432 KB  Allocated         : 0 KB

Mid pool 15 is also parented to root pool 16 with an allocation percent of 100, causing both mid pools 15 and 16 to have the same number of allocated buffers as root pool 16; therefore, the root pool is oversubscribed two times:

*A:PE-1>config>qos>hs-pool-policy# info detail | 
     match expression " root-pool 16$| mid-pool 15$| mid-pool 16$" post lines 2 | 
     match invert-match slope
                root-pool 16
                    allocation-weight 100
                mid-pool 15
                    parent-root-pool 16
                    allocation-percent 100.00
                mid-pool 16
                    parent-root-pool 16
                    allocation-percent 100.00

*A:PE-1# show hs-pools port 3/1/1 egress | 
              match "Root Pool : 16" post-lines 19 | 
              match "Pool" post-lines 1
Root Pool : 16
|  Total               : 1989432 KB  Allocated         : 0 KB
|--- Mid Pool : 15
|     | Total               : 1989432 KB  Allocated         : 0 KB
|--- Mid Pool : 16
|     | Total               : 1989432 KB  Allocated         : 0 KB

An HS port pool policy is applied to port 3/1/1 with standard port class pool 1 parented to mid pool 16 with an allocation port-bw-weight of 1. This port class pool has the same number of allocated buffers as mid pool 16:

*A:PE-1>config>qos>hs-port-pool-policy>std-port-class-pools# info
----------------------------------------------
                class-pool 1
                    parent-mid-pool 16
                exit

*A:PE-1# show hs-pools port 3/1/1 egress | 
                  match "Root Pool : 16" post-lines 26 | match "Pool" post-lines 1
Root Pool : 16
|  Total               : 1989432 KB  Allocated         : 0 KB
|--- Mid Pool : 15
|     | Total               : 1989432 KB  Allocated         : 0 KB
|--- Mid Pool : 16
|     | Total               : 1989432 KB  Allocated         : 0 KB
|     |--- Std Port Class Pool : 1
|     |      Total               : 1989432 KB  Allocated         : 0 KB

The port-bw-oversub-factor is set to 2 for mid pool 16 in the HS pool policy, after which the size of mid pool 16 does not change. However, its apparent size for the calculation of its port class pool doubles, which causes the size of port class pool 1 to be twice that of mid pool 16, thereby oversubscribing it:

*A:PE-1>config>qos>hs-pool-policy# info
----------------------------------------------
            root-tier
                root-pool 16
                    allocation-weight 100
                exit
            exit
            mid-tier
                mid-pool 15
                    parent-root-pool 16
                    allocation-percent 100.00
                exit
                mid-pool 16
                    parent-root-pool 16
                    allocation-percent 100.00
                    port-bw-oversub-factor 2
                exit
            exit

*A:PE-1# show hs-pools port 3/1/1 egress |
              match "Root Pool : 16" post-lines 26 | 
              match "Pool" post-lines 1
Root Pool : 16
|  Total               : 1989432 KB  Allocated         : 0 KB
|--- Mid Pool : 15
|     | Total               : 1989432 KB  Allocated         : 0 KB
|--- Mid Pool : 16
|     | Total               : 1989432 KB  Allocated         : 0 KB
|     |--- Std Port Class Pool : 1
|     |      Total               : 3978864 KB  Allocated         : 0 KB

A second standard port class pool, pool 2, on port 3/1/1 is parented to mid pool 16. The two port class pools share the buffer allocation equivalent to two times that of mid pool 16:

*A:PE-1>config>qos>hs-port-pool-policy>std-port-class-pools# info
----------------------------------------------
                class-pool 1
                    parent-mid-pool 16
                exit
                class-pool 2
                    parent-mid-pool 16
                exit
*A:PE-1# show hs-pools port 3/1/1 egress | 
              match "Root Pool : 16" post-lines 33  | 
              match "Pool" post-lines 1
Root Pool : 16
|  Total               : 1989432 KB  Allocated         : 0 KB
|--- Mid Pool : 15
|     | Total               : 1989432 KB  Allocated         : 0 KB
|--- Mid Pool : 16
|     | Total               : 1989432 KB  Allocated         : 0 KB
|     |--- Std Port Class Pool : 1
|     |      Total               : 1989432 KB  Allocated         : 0 KB
|     |--- Std Port Class Pool : 2
|     |      Total               : 1989432 KB  Allocated         : 0 KB

The proportion of buffers available to the port class pools can be modified by configuring their allocation port-bw-weight. If the allocation port-bw-weight of port class pool 2 is set to 2, the port class pools will be allocated buffers in a 2:1 ratio:

*A:PE-1>config>qos>hs-port-pool-policy>std-port-class-pools# info
----------------------------------------------
                class-pool 1
                    parent-mid-pool 16
                exit
                class-pool 2
                    parent-mid-pool 16
                    allocation port-bw-weight 2
                exit

*A:PE-1# show hs-pools port 3/1/1 egress | 
              match "Root Pool : 16" post-lines 33 | 
              match "Pool" post-lines 1
Root Pool : 16
|  Total               : 1989432 KB  Allocated         : 0 KB
|--- Mid Pool : 15
|     | Total               : 1989432 KB  Allocated         : 0 KB
|--- Mid Pool : 16
|     | Total               : 1989432 KB  Allocated         : 0 KB
|     |--- Std Port Class Pool : 1
|     |      Total               : 1326288 KB  Allocated         : 0 KB
|     |--- Std Port Class Pool : 2
|     |      Total               : 2652576 KB  Allocated         : 0 KB

A third standard port class pool, pool 3, is parented to mid pool 16 with an allocation port-bw-weight of 2. Port class pools 1, 2, and 3 share the oversubscribed mid pool 16 size in a ratio of 1:2:2:

*A:PE-1>config>qos>hs-port-pool-policy>std-port-class-pools# info
----------------------------------------------
                class-pool 1
                    parent-mid-pool 16
                exit
                class-pool 2
                    parent-mid-pool 16
                    allocation port-bw-weight 2
                exit
                class-pool 3
                    parent-mid-pool 16
                    allocation port-bw-weight 2
                exit

*A:PE-1# show hs-pools port 3/1/1 egress | 
              match "Root Pool : 16" post-lines 40 | 
              match "Pool" post-lines 1
Root Pool : 16
|  Total               : 1989432 KB  Allocated         : 0 KB
|--- Mid Pool : 15
|     | Total               : 1989432 KB  Allocated         : 0 KB
|--- Mid Pool : 16
|     | Total               : 1989432 KB  Allocated         : 0 KB
|     |--- Std Port Class Pool : 1
|     |      Total               : 795772 KB   Allocated         : 0 KB
|     |--- Std Port Class Pool : 2
|     |      Total               : 1591544 KB  Allocated         : 0 KB
|     |--- Std Port Class Pool : 3
|     |      Total               : 1591544 KB  Allocated         : 0 KB

Standard port class pool 1, 2, and 3 are now configured with an allocation explicit-percent of 80%, 60%, and 60% respectively. This allocates these percentages of mid pool 16 real size to port class pools 1, 2, and 3, which oversubscribed the mid pool by 100%. The mid pool 16 oversubscription factor is not applied.

*A:PE-1>config>qos>hs-port-pool-policy>std-port-class-pools# info
----------------------------------------------
                class-pool 1
                    parent-mid-pool 16
                    allocation explicit-percent 80.00
                exit
                class-pool 2
                    parent-mid-pool 16
                    allocation explicit-percent 60.00
                exit
                class-pool 3
                    parent-mid-pool 16
                    allocation explicit-percent 60.00
                exit

*A:PE-1# show hs-pools port 3/1/1 egress | 
              match "Root Pool : 16" post-lines 40 |
              match "Pool" post-lines 1
Root Pool : 16
|  Total               : 1989432 KB  Allocated         : 0 KB
|--- Mid Pool : 15
|     | Total               : 1989432 KB  Allocated         : 0 KB
|--- Mid Pool : 16
|     | Total               : 1989432 KB  Allocated         : 0 KB
|     |--- Std Port Class Pool : 1
|     |      Total               : 1591544 KB  Allocated         : 0 KB
|     |--- Std Port Class Pool : 2
|     |      Total               : 1193658 KB  Allocated         : 0 KB
|     |--- Std Port Class Pool : 3
|     |      Total               : 1193658 KB  Allocated         : 0 KB

Shaping and Scheduling

HSQ Queue Groups

Each configuration uses the same four queues:

  • Queue 7 at scheduling class 5

  • Queue 6 at scheduling class 4

  • Queues 1 and 2 in WRR group at scheduling class 1

The low-burst-max-class is configured to be class 1, to match the scheduling class of WRR group 1. This results in queues 1 and 2 being subject to the low burst limit threshold.

HSQ queue group queues can be attached to scheduling classes or to WRR groups, which can then be attached to a scheduling class. The eight queues and two WRR groups in an HSQ queue group can also be unattached (not attached to any scheduling class, or for queues, to any WRR group). This is configured using an hs-attachment-policy:

configure
    qos
        hs-attachment-policy <policy-name> [create]
            description <description-string>
            low-burst-max-class <class>
            queue <queue-id> sched-class <class-id>
            queue <queue-id> unattached
            queue <queue-id> wrr-group <wrr-group-id>
            wrr-group <group-id> sched-class <class-id>

Where (in order):

<policy-name>        : [32 chars max]
<description-string> : [80 chars max]
<class>              : [1..6]
<queue-id>           : [1..8]
<class-id>           : [1..6]
<wrr-group-id>       : [1..2]
<group-id>           : [1..2]
<class-id>           : [1..6]

When a queue or WRR group is unattached, the related queues discard all received packets.

When a queue is attached to a WRR group, the weight of that queue within the group is configured under the queue in the SAP egress QoS policy, network queue policy, and egress queue group template.

When a queue is attached to a WRR group, the following queue parameters are ignored. The corresponding configuration is applied to the entire WRR group in the SAP egress QoS policy for services, network queue policy for network interfaces, and egress queue group templates for both access and network egress queue group instances:

  • adaptation-rule

  • hs-class-weight

  • percent-rate

  • rate

A default hs-attachment-policy is created by the system and applied by default to all SAP egress QoS policy for services, to all network queue policy for network interfaces, and to all egress queue group templates for both access and network egress queue group instances. The default policy is not configurable.

*A:PE-1>config>qos# hs-attachment-policy "default"
*A:PE-1>config>qos>hs-attachment-policy# info detail
----------------------------------------------
            no description
            low-burst-max-class 6
            queue 1 wrr-group 1
            queue 2 wrr-group 1
            queue 3 wrr-group 1
            queue 4 sched-class 2
            queue 5 sched-class 3
            queue 6 sched-class 4
            queue 7 sched-class 5
            queue 8 sched-class 6
            wrr-group 1 sched-class 1
            wrr-group 2 unattached
Note:

Queues 1, 2, and 3 are attached by default to WRR group 1, so their configured rates are ignored.

To use a user-defined policy, a new HS attachment policy must be created and applied to the appropriate SAP egress QoS policy, network queue policy, or egress queue group template. A newly created policy has all queues and WRR groups unattached and the low-burst-max-class set to 6:

*A:PE-1# configure qos hs-attachment-policy hs-att-policy-new create
*A:PE-1>config>qos>hs-attachment-policy$ info detail
----------------------------------------------
            no description
            low-burst-max-class 6
            queue 1 unattached
            queue 2 unattached
            queue 3 unattached
            queue 4 unattached
            queue 5 unattached
            queue 6 unattached
            queue 7 unattached
            queue 8 unattached
            wrr-group 1 unattached
            wrr-group 2 unattached

The hs-attachment-policy used for this example is as follows (queue 8 is reserved to be attached to scheduling class 6 for network protocol traffic, but is not used in this example):

*A:PE-1>config>qos# hs-attachment-policy "hs-att-pol-1"
*A:PE-1>config>qos>hs-attachment-policy# info detail
----------------------------------------------
            no description
            low-burst-max-class 1
            queue 1 wrr-group 1
            queue 2 wrr-group 1
            queue 3 unattached
            queue 4 unattached
            queue 5 unattached
            queue 6 sched-class 4
            queue 7 sched-class 5
            queue 8 sched-class 6
            wrr-group 1 sched-class 1
            wrr-group 2 unattached

An HS attachment policy is shown as follows:

*A:PE-1# show qos hs-attachment-policy "hs-att-pol-1"

===============================================================================
HS Attachment Policy Information
===============================================================================
Policy Name             : hs-att-pol-1
Description             : (Not Specified)
Low Burst Max Class     : 1

-------------------------------------------------------------------------------
Queue               Scheduling Class              WRR Group
-------------------------------------------------------------------------------
1                   (Not-Applicable)              1
2                   (Not-Applicable)              1
3                   unattached                    unattached
4                   unattached                    unattached
5                   unattached                    unattached
6                   4                             (Not-Applicable)
7                   5                             (Not-Applicable)
8                   6                             (Not-Applicable)

-------------------------------------------------------------------------------
WRR Group           Scheduling Class
-------------------------------------------------------------------------------
1                   1
2                   unattached
===============================================================================
*A:PE-1#

It is also possible to show the associations for each policy:

*A:PE-1# show qos hs-attachment-policy "hs-att-pol-1" association

===============================================================================
HS Attachment Policy Information
===============================================================================
Policy Name             : hs-att-pol-1
Description             : (Not Specified)
Low Burst Max Class     : 1

-------------------------------------------------------------------------------
Associations
-------------------------------------------------------------------------------
Network-Queue Policy
-------------------------------------------------------------------------------
10

Sap-Egress Policy
-------------------------------------------------------------------------------
10
20

Egress Queue-Group Templates
-------------------------------------------------------------------------------
queue-group-1

-------------------------------------------------------------------------------
===============================================================================

HS Secondary Shapers

HS secondary shapers are only applicable to SAP egress in the context of this chapter (not to network egress or egress access and network queue group instances). However, because secondary shapers can also be used by subscribers, they are included with the generic configuration aspects.

Secondary shapers are aimed at providing QoS control for traffic forwarded to a specific downstream device, such as an access node. Multiple HS secondary shapers can be configured on an egress port.

An aggregate rate and per-scheduling class rates are configurable for each secondary shaper. A low-burst-max-class parameter is also available to provide granular control over the scheduling behavior of which queues (via a WRR group, if used) use the low burst limit threshold and which use the high burst limit threshold.

Secondary shapers are configured on each port under the config>port>ethernet>egress context:

configure
    port <port-id>
        ethernet
            egress
                hs-secondary-shaper <secondary-shaper-name>
                    description <description-string>
                    aggregate
                        low-burst-max-class <class>
                        rate <rate>
                    class <class-number>
                        rate <rate>

Where (in order):

<port-id>            : slot/mda/port
<secondary-shaper-*> : [32 chars max]
<description-string> : [80 chars max]
<class>              : [1..6]
<class-number>       : [1..6]
<rate>               : [1..100000000|max] Kbps
<rate>               : [1..100000000|max] Kbps

A default HS secondary shaper is applied to all egress HSQ ports with the rates set to max and the low-burst-max-class set to 6. It is possible to modify the configuration of the default HS secondary shaper.

*A:PE-1>config>port>ethernet>egress# hs-secondary-shaper "default"
*A:PE-1>config>port>ethernet>egress>hs-sec-shaper# info detail
----------------------------------------------
                    no description
                    aggregate
                        rate max
                        low-burst-max-class 6
                    exit
                    class 1
                        rate max
                    exit
                    class 2
                        rate max
                    exit
                    class 3
                        rate max
                    exit
                    class 4
                        rate max
                    exit
                    class 5
                        rate max
                    exit
                    class 6
                        rate max
                    exit

An HS secondary shaper is configured on port 3/1/2 with a rate of 100 Mb/s for scheduling class 1 and a low-burst-max-class set to 1:

*A:PE-1>config>port>ethernet>egress# hs-secondary-shaper "hs-sec-shaper-1"
*A:PE-1>config>port>ethernet>egress>hs-sec-shaper# info detail
----------------------------------------------
                    no description
                    aggregate
                        rate max
                        low-burst-max-class 1
                    exit
                    class 1
                        rate 100000
                    exit
                    class 2
                        rate max
                    exit
                    class 3
                        rate max
                    exit
                    class 4
                        rate max
                    exit
                    class 5
                        rate max
                    exit
                    class 6
                        rate max
                    exit

This is shown, in this case with its associations, as follows:

*A:PE-1# show port 3/1/2 hs-secondary-shaper "hs-sec-shaper-1" associations

===============================================================================
Ethernet Port 3/1/2 Egress HS Secondary Shaper Information
===============================================================================
Policy Name        : hs-sec-shaper-1
Description        : (Not Specified)
Rate               : max
Low Burst Max Class: 1

-------------------------------------------------------------------------------
Class                                   Rate
-------------------------------------------------------------------------------
1                                       100000 Kbps
2                                       max
3                                       max
4                                       max
5                                       max
6                                       max
-------------------------------------------------------------------------------

-------------------------------------------------------------------------------
Service Associations
-------------------------------------------------------------------------------
Service ID                Service Type               SAP
-------------------------------------------------------------------------------
1                         IES                        3/1/2:1
-------------------------------------------------------------------------------

-------------------------------------------------------------------------------
Subscriber Associations
-------------------------------------------------------------------------------
Subscriber ID
-------------------------------------------------------------------------------
No Subscriber Associations Found.
-------------------------------------------------------------------------------
===============================================================================
*A:PE-1#

All HS secondary shapers on a port can be shown using the same command, but omitting the shaper name and following parameter.

It is also possible to show the forwarding statistics related to an HS secondary shaper:

*A:PE-1# show port 3/1/2 hs-secondary-shaper "hs-sec-shaper-1" statistics

===============================================================================
Ethernet Port 3/1/2 Egress HS Secondary Shaper Information
===============================================================================
Policy Name        : hs-sec-shaper-1

------------------------------------------------------------------------
Statistics Information
------------------------------------------------------------------------

------------------------------------------------------------------------
                        Packets                 Octets
Class 1
    Forwarded         : 4000                    592000

Class 2
    Forwarded         : 0                       0

Class 3
    Forwarded         : 0                       0

Class 4
    Forwarded         : 1000                    148000

Class 5
    Forwarded         : 1000                    148000

Class 6
    Forwarded         : 0                       0

Aggregate
    Forwarded         : 6000                    888000

------------------------------------------------------------------------
===============================================================================
*A:PE-1#

These statistics are cleared using the following command:

clear port 3/1/2 hs-secondary-shaper "hs-sec-shaper-1" statistics

The SAP egress queues in an HSQ queue group can be associated with a secondary shaper by configuring an egress queue override under the SAP and specifying the name of the secondary shaper. In addition, when using PW-SAPs, an HS secondary shaper can be applied to the egress of a PW port to control the PW-SAP egress traffic over that PW. See the SAP Egress section for configuration details.

If the user configures an HS secondary shaper on a port, the system instantiates a default primary shaper for that secondary shaper (which is used by all HSQ queue groups sending traffic to the secondary shaper) when the first egress SAP or PW-SAP is associated with that HS secondary shaper.

The current traffic rates through the secondary shapers on a port are shown, as follows, where the default interval is 1 second:

show qos hs-scheduler-hierarchy port <port-id> 
              [hs-secondary-shaper <shaper-name>] [interval <time-in-seconds>]
show qos hs-scheduler-hierarchy port <port-id> 
              [interval <time-in-seconds>] hs-secondary-shapers

The output shows the current aggregate traffic rate and the current traffic rate for each scheduling class:

*A:PE-1# show qos hs-scheduler-hierarchy port 3/1/2 
                      hs-secondary-shaper "hs-sec-shaper-1"

===============================================================================
Hs Scheduler Hierarchy Information
===============================================================================
Hs Sched Policy Name         : default

Port Max-Rate : 137 Mbps
Hs-Sec-Shaper:hs-sec-shaper-1 Agg-Rate : 57516 Kbps

Scheduler Priority 6
  Scheduler Class 6  Rate : 0 Mbps
    Hs-Sec-Shaper:hs-sec-shaper-1 Class 6 Rate : 0 Kbps

Scheduler Priority 5
  Scheduler Class 5  Rate : 22 Mbps
    Hs-Sec-Shaper:hs-sec-shaper-1 Class 5 Rate : 11422 Kbps

Scheduler Priority 4
  Scheduler Class 4  Rate : 45 Mbps
    Hs-Sec-Shaper:hs-sec-shaper-1 Class 4 Rate : 22797 Kbps

Scheduler Priority 3
  Scheduler Class 3  Rate : 0 Mbps
    Hs-Sec-Shaper:hs-sec-shaper-1 Class 3 Rate : 0 Kbps

Scheduler Priority 2
  Scheduler Class 2  Rate : 0 Mbps
    Hs-Sec-Shaper:hs-sec-shaper-1 Class 2 Rate : 0 Kbps

Scheduler Priority 1
  Scheduler Class 1  Rate : 69 Mbps
    Hs-Sec-Shaper:hs-sec-shaper-1 Class 1 Rate : 23296 Kbps
===============================================================================
*A:PE-1# 

Ports

A single HS scheduler policy can be applied to an egress HSQ port to configure an aggregate rate (max-rate) and per-scheduling class rates on that port. In addition, contiguous scheduling classes can be configured with weights in a WRR group, which can also be configured with a rate. The WRR group is scheduled at the scheduling class of its highest member scheduling class. The max-rate caps the scheduling class and group rates if its rate is lower.

The rates configured within an HS scheduler policy are applicable to all types of traffic (SAP egress, network egress, and egress queue group instances) exiting that port.

An HS scheduler policy is configured as follows:

configure
    qos
        hs-scheduler-policy <policy-name> [create]
            description <description-string>
            group <group-id> rate <rate>
            max-rate <rate>
            scheduling-class <class-id> group <group-id> [weight <weight-in-group>]
            scheduling-class <class-id> rate <rate>

Where (in order):

<policy-name>        : [32 chars max]
<description-string> : [80 chars max]
<group-id>           : [1]
<rate>               : [1..100000|max] Mbps
<rate>               : [1..100000|max] Mbps
<class-id>           : [1..6]
<group-id>           : [1]
<weight-in-group>    : [1..127]
<rate>               : [1..100000|max] Mbps
Note:

The rates configured in an HS scheduler policy are in Mb/s (not kb/s).

A default HS scheduler policy is applied to all egress HSQ ports and all its rates are set to max. It is not possible to modify the default HS scheduler policy.

*A:PE-1>config>qos# hs-scheduler-policy "default" 
*A:PE-1>config>qos>hs-scheduler-policy# info detail
----------------------------------------------
            description "Default hs scheduler QoS policy"
            max-rate max
            group 1 rate max
            scheduling-class 1 rate max
            scheduling-class 2 rate max
            scheduling-class 3 rate max
            scheduling-class 4 rate max
            scheduling-class 5 rate max
            scheduling-class 6 rate max

A newly created HS scheduler policy has the same configuration as the default policy.

An HS scheduler policy with a rate of 5 Gb/s for scheduling class 1 is applied to port 3/1/1:

*A:PE-1# configure qos
*A:PE-1>config>qos# hs-scheduler-policy "hs-sched-pol-1"
*A:PE-1>config>qos>hs-scheduler-policy# info detail
----------------------------------------------
            no description
            max-rate max
            group 1 rate max
            scheduling-class 1 rate 5000
            scheduling-class 2 rate max
            scheduling-class 3 rate max
            scheduling-class 4 rate max
            scheduling-class 5 rate max
            scheduling-class 6 rate max
----------------------------------------------
*A:PE-1>config>qos>hs-scheduler-policy# exit all
*A:PE-1# configure port 3/1/1 ethernet egress hs-scheduler-policy "hs-sched-pol-1"
*A:PE-1#

The preceding policy is shown as follows:

*A:PE-1# show qos hs-scheduler-policy "hs-sched-pol-1"

===============================================================================
HS Scheduler Policy Information
===============================================================================
Policy Name             : hs-sched-pol-1
Description             : (Not Specified)
Max Rate                : max

-------------------------------------------------------------------------------
Scheduling Class    Rate                Group               Weight in Group
-------------------------------------------------------------------------------
1                   5000 Mbps           0                   1
2                   max                 0                   1
3                   max                 0                   1
4                   max                 0                   1
5                   max                 0                   1
6                   max                 0                   1
-------------------------------------------------------------------------------
Group               Rate
-------------------------------------------------------------------------------
1                   max
===============================================================================
*A:PE-1#

The ports associated with this policy are as follows:

*A:PE-1# show qos hs-scheduler-policy "hs-sched-pol-1" association

===============================================================================
HS Scheduler Policy Information
===============================================================================
Policy Name             : hs-sched-pol-1
Description             : (Not Specified)
Max Rate                : max

-------------------------------------------------------------------------------
Port Ethernet Egress Associations
-------------------------------------------------------------------------------
3/1/1
-------------------------------------------------------------------------------
===============================================================================
*A:PE-1# 

The current traffic rates through the port aggregate, scheduling class, and WRR group shapers are shown, as follows, where the default interval is 1 second:

show qos hs-scheduler-hierarchy port <port-id> [interval <time-in-seconds>] 
          queue-group <queue-group-name> instance <instance-id> {access|network}
show qos hs-scheduler-hierarchy sap <sap-id> egress [interval <time-in-seconds>]
show qos hs-scheduler-hierarchy subscriber <sub-ident> egress 
                                                    [interval <time-in-seconds>]

The output shows the current aggregate traffic rate and the current traffic rates for each scheduling class:

*A:PE-1# show qos hs-scheduler-hierarchy port 3/1/1

===============================================================================
Hs Scheduler Hierarchy Information
===============================================================================
Hs Sched Policy Name         : hs-sched-pol-1

Port Max-Rate : 659 Mbps

Scheduler Priority 6
  Scheduler Class 6  Rate : 0 Mbps

Scheduler Priority 5
  Scheduler Class 5  Rate : 127 Mbps

Scheduler Priority 4
  Scheduler Class 4  Rate : 254 Mbps

Scheduler Priority 3
  Scheduler Class 3  Rate : 0 Mbps

Scheduler Priority 2
  Scheduler Class 2  Rate : 0 Mbps

Scheduler Priority 1
  Scheduler Class 1  Rate : 277 Mbps
===============================================================================
*A:PE-1# 

The HS scheduler policy parameters can be overridden under the port policy configuration:

configure
    port <port-id>
        ethernet
            egress
                hs-scheduler-overrides [create]
                    group <group-id> rate <rate>
                    max-rate <rate>
                    scheduling-class <class> rate <rate>
                    scheduling-class <class> weight <weight-in-group>

Where (in order):

<port-id>            : slot/mda/port
<group-id>           : [1..1]
<rate>               : [1..100000|max] Mbps
<rate>               : [1..100000|max] Mbps
<class>              : [1..6]
<rate>               : [1..100000|max] Mbps
<class>              : [1..6]
<weight-in-group>    : [1..127]

SAP Egress

A SAP configured on an HSQ IOM port uses an HSQ queue group for its egress queues. This occurs automatically and dedicates one HSQ queue group, so eight egress queues, to each SAP egress. Only the queues to be used need to be configured within the SAP egress QoS policy.

The operation of classification, policing, and marking within a SAP egress QoS policy when applied to a SAP on an HSQ port is unchanged. For example, it is possible to use egress policers and direct the post-policer traffic to either a local HSQ queue group queue or to an HSQ queue group queue in an access egress queue group instance.

Most of the commands in a SAP egress QoS policy apply to the HSQ egress SAPs, with the following exceptions (including their SAP egress related overrides) being ignored:

  • HSMDA commands

  • parent-location sla

  • Policer commands

    • policers-hqos-manageable

    • policer scheduler-parent

  • Queue related

    • adaptation-rule cir <adaptation-rule>

    • adv-config-policy

    • avg-frame-overhead

    • burst-limit

    • cbs

    • drop tail

    • parent

    • percent-rate cir

    • percent-rate local-limit

    • pool

    • port-parent

    • rate cir

    • wred-queue

  • Subscriber commands

    • dynamic-policer commands

    • sub-insert-shared-pccrule

The following SAP commands are not configurable on HSQ SAPs:

  • "ingress qos shared-queuing

  • "ingress qos multipoint-shared

  • "egress agg-rate limit-unused-bandwidth

  • "egress agg-rate queue-frame-based-accounting

  • "multi-service-site

As mentioned, an HS attachment policy is applied to the SAP egress QoS policy to define the attachment of the queues to scheduling classes or WRR groups, with the WRR group then being attached to a scheduling class:

configure
    qos
        sap-egress <policy-id>
            hs-attachment-policy <policy-name>

Where:

<policy-id>          : [1..65535]|<name:64 char max>
<policy-name>        : [32 chars max]

When queues are attached to one of the HSQ queue group WRR groups, the relative weight of each queue within the group is configured under the queue, with the default weight being 1:

configure
    qos
        sap-egress <policy-id>
            queue <queue-id>
                hs-wrr-weight <weight>

Where:

<policy-id>          : [1..65535]|<name:64 char max>
<queue-id>           : [1..8]
<weight>             : [1..127]

The rate-related configuration of the two WRR groups in the HSQ queue group is defined within the SAP egress QoS policy, as follows, with the defaults being rate max and adaptation-rule closest:

configure
    qos
        sap-egress <policy-id>
            hs-wrr-group <group-id>
                adaptation-rule [pir <adaptation-rule>]
                percent-rate <percent>
                rate <rate>

Where:

<policy-id>          : [1..65535]|<name:64 char max>
<group-id>           : [1..2]
<adaptation-rule>    : max|min|closest
<percent>            : [0.01..100.00]
<rate>               : [1..2000000000|max] Kbps

The percent-rate configured within the hs-wrr-group and under a queue is relative to the port rate, so is equivalent to the queue port-limit and includes both the egress-rate and HS scheduler policy max-rate, if configured.

The SAP egress queue default slope policy is _tmnx_hs_default. A user-defined slope policy can be configured on a queue, as follows:

configure
    qos
        sap-egress <policy-id>
            queue <queue-id>
                hs-wred-queue [policy <slope-policy-name>]

Where:

<policy-id>          : [1..65535]|<name:64 char max>
<queue-id>           : [1..8]
<slope-policy-name>  : [32 chars max]

The highplus-slope and time-average-factor in the applied slope policy are ignored on HSQ queue group queues.

By default, SAP egress HSQ queue group queues use buffers from the standard port class pools on their associated port. Each queue can be configured to use the port alternative class pools, as follows:

configure
    qos
        sap-egress <policy-id>
            queue <queue-id>
                hs-alt-port-class-pool

Where:

<policy-id>          : [1..65535]|<name:64 char max>
<queue-id>           : [1..8]

WRR group scheduling between queues and WRR groups in different HSQ queue groups is available at a primary shaper scheduling class. This is configured within a SAP egress QoS policy, as follows:

configure
    qos
        sap-egress <policy-id>
            hs-wrr-group <group-id>
                hs-class-weight <weight>
            queue <queue-id>
                hs-class-weight <weight>

Where (in order):

<policy-id>          : [1..65535]|<name:64 char max>
<group-id>           : [1..2]
<weight>             : 1|2|4|8

The hs-class-weight parameter under the queue or hs-wrr-group statement specifies the relative weight of the respective queue or hs-wrr-group for scheduling opportunities when their parent primary shaper scheduling class is serviced. By default, the hs-class-weight is 1.

Note:

This parameter should not be confused with the hs-wrr-weight parameter, which specifies the relative weights of different queues within the same HSQ queue group WRR group.

The HSQ queue group aggregate rate is applied to a SAP egress using the agg-rate rate command:

configure
    service
        {ipipe <service-id>|epipe <service-id>|vpls <service-id>|
         ies <service-id> interface <ip-int-name>|
         vprn <service-id> interface <ip-int-name>}
            sap
                egress
                    agg-rate
                        rate <kilobits-per-second>

Where:

<service-id>         : [1..2147483647]|<svc-name:64 char max>
<ip-int-name>        : [32 chars max]  (must start with a letter)
<kilobits-per-seco*> : [1..3200000000|max] Kbps

The following HSQ-specific overrides are available under a SAP egress corresponding to the preceding commands:

configure
    service
        {ipipe <service-id>|epipe <service-id>|vpls <service-id>|
         ies <service-id> interface <ip-int-name>|
         vprn <service-id> interface <ip-int-name>}
            sap
                egress
                    queue-override
                        hs-secondary-shaper <policy-name>
                        hs-wrr-group <group-id> [create]
                        hs-wrr-group <group-id> class-weight <weight>
                        hs-wrr-group <group-id> percent-rate <percent>
                        hs-wrr-group <group-id> rate <rate>
                        queue <queue-id> hs-class-weight <weight>
                        queue <queue-id> hs-wred-queue policy <slope-policy-name>
                        queue <queue-id> hs-wrr-weight <weight>

Where (in order):

<service-id>         : [1..2147483647]|<svc-name:64 char max>
<ip-int-name>        : [32 chars max]  (must start with a letter)
<policy-name>        : [32 chars max]
<group-id>           : [1..2]
<weight>             : 1|2|4|8
<percent>            : [0.01..100.00]
<rate>               : [1..2000000000|max] Kbps
<queue-id>           : [1..8]
<weight>             : 1|2|4|8
<slope-policy-name>  : [32 chars max]
<weight>             : [1..127]
Note:

Queue depth monitoring is supported for SAP egress HSQ queue group queues. This is enabled by configuring the queue override monitor-depth command under SAP egress with the associated show command output displaying buffer occupancy in ranges of 10% of the queue depth for each configured queue.

An additional SAP egress override is provided to redirect the traffic from an HSQ queue group to a user-configured secondary shaper:

configure
    service
        {ipipe <service-id>|epipe <service-id>|vpls <service-id>|
         ies <service-id> interface <ip-int-name>|
         vprn <service-id> interface <ip-int-name>}
            sap
                egress
                    queue-override
                        hs-secondary-shaper <policy-name>

Where:

<service-id>         : [1..2147483647]|<svc-name:64 char max>
<ip-int-name>        : [32 chars max]  (must start with a letter)
<policy-name>        : [32 chars max]

When using pseudowire SAPs (PW-SAPs), an HS secondary shaper can be configured under the SDP binding to apply QoS control to the PW used by the SAPs, as follows:

configure
    service
        sdp <sdp-id>
            binding
                pw-port <pw-port-id>
                    egress
                        shaper
                        pw-sap-secondary-shaper <pw-sap-sec-shaper-name>

Where:

<sdp-id>             : [1..32767]
<pw-port-id>         : [1..32767]
<pw-sap-sec-shaper*> : [32 chars max]

When the first egress SAP or PW-SAP is associated with a user-configured HS secondary shaper, the system instantiates a default primary shaper for that secondary shaper, which is used by all HSQ queue groups sending traffic to that secondary shaper.

An IES interface SAP is configured with the HSQ queue group having an aggregate rate of 50 Mb/s (using the agg-rate rate command). The SAP egress traffic is directed to an HS secondary shaper, which is applied to port 3/1/2:

*A:PE-1>config>service>ies# info
----------------------------------------------
            description "HSQ egress SAP queues"
            interface "PE-1-IES-1" create
                address 192.168.11.1/30
                sap 3/1/2:1 create
                    egress
                        qos 10
                        queue-override
                            hs-secondary-shaper "hs-sec-shaper-1"
                        exit
                        agg-rate
                            rate 50000
                        exit
                    exit
                exit
            exit
            no shutdown

The SAP egress QoS policy contains the applied HS attachment policy described for the queue attachment. Queue 1 is configured with a WRR weight of 2. Rates of 20 Mb/s and 10 Mb/s are configured on queues 6 and 7, respectively. WRR group 1 is configured with a rate of 40 Mb/s. DSCP values are used to classify the egress traffic to the forwarding classes mapped to the queues:

*A:PE-1>config>qos# sap-egress 10
*A:PE-1>config>qos>sap-egress# info
----------------------------------------------
            hs-attachment-policy "hs-att-pol-1"
            queue 1 create
                hs-wrr-weight 2
            exit
            queue 2 create
            exit
            queue 6 create
                rate 20000
            exit
            queue 7 create
                rate 10000
            exit
            hs-wrr-group 1
                rate 40000
            exit
            fc af create
                queue 2
            exit
            fc ef create
                queue 6
            exit
            fc h1 create
                queue 7
            exit
            dscp cs1 fc "af"
            dscp be fc "be"
            dscp cs2 fc "ef"
            dscp cs3 fc "h1"

The queue information is shown as follows:

*A:PE-1# show hs-pools port 3/1/2 egress sap 3/1/2:1 | 
               match "Queue Information" pre-lines 1 post-lines 40
-------------------------------------------------------------------------------
Queue Information
-------------------------------------------------------------------------------
Queue Name         : 1->3/1/2:1->1
FC Map             : be l2 l1 h2 nc
Admin PIR          : 40000              Oper PIR               : 0
Admin MBS          : 64 KB              Oper MBS               : 64 KB
HS Wrr Group       : 1
HS Wrr Class Weight: 1                  HS Wrr Weight          : 2
Depth              : 0
HS Class           : 1                  HS Alt Port Class Pool : No
HS Slope Policy    : _tmnx_hs_default

Queue Name         : 1->3/1/2:1->2
FC Map             : af
Admin PIR          : 40000              Oper PIR               : 0
Admin MBS          : 64 KB              Oper MBS               : 64 KB
HS Wrr Group       : 1
HS Wrr Class Weight: 1                  HS Wrr Weight          : 1
Depth              : 0
HS Class           : 1                  HS Alt Port Class Pool : No
HS Slope Policy    : _tmnx_hs_default

Queue Name         : 1->3/1/2:1->6
FC Map             : ef
Admin PIR          : 20000              Oper PIR               : 20000
Admin MBS          : 64 KB              Oper MBS               : 64 KB
HS Wrr Group       : (not-applicable)
HS Wrr Class Weight: 1                  HS Wrr Weight          : 0
Depth              : 0
HS Class           : 4                  HS Alt Port Class Pool : No
HS Slope Policy    : _tmnx_hs_default

Queue Name         : 1->3/1/2:1->7
FC Map             : h1
Admin PIR          : 10000              Oper PIR               : 10000
Admin MBS          : 64 KB              Oper MBS               : 64 KB
HS Wrr Group       : (not-applicable)
HS Wrr Class Weight: 1                  HS Wrr Weight          : 0
Depth              : 0
HS Class           : 5                  HS Alt Port Class Pool : No
HS Slope Policy    : _tmnx_hs_default

The current scheduler traffic rates, including the port and secondary shaper current aggregate traffic rate and current traffic rates for each scheduling class, together with queue current traffic rates on the SAP specified, are shown as follows:

*A:PE-1# show qos hs-scheduler-hierarchy sap 3/1/2:1 egress

===============================================================================
Hs Scheduler Hierarchy Information
===============================================================================
Hs Sched Policy Name         : default
PortId                       : 3/1/2

Port Max-Rate : 138 Mbps
Hs-Sec-Shaper:hs-sec-shaper-1 Agg-Rate : 57728 Kbps

Scheduler Priority 6
  Scheduler Class 6  Rate : 0 Mbps
    Hs-Sec-Shaper:hs-sec-shaper-1 Class 6 Rate : 0 Kbps
      sap-3/1/2:1->8            Rate : 0 Kbps

Scheduler Priority 5
  Scheduler Class 5  Rate : 22 Mbps
    Hs-Sec-Shaper:hs-sec-shaper-1 Class 5 Rate : 11454 Kbps
      sap-3/1/2:1->7            Rate : 10040 Kbps

Scheduler Priority 4
  Scheduler Class 4  Rate : 45 Mbps
    Hs-Sec-Shaper:hs-sec-shaper-1 Class 4 Rate : 22898 Kbps
      sap-3/1/2:1->6            Rate : 20080 Kbps

Scheduler Priority 3
  Scheduler Class 3  Rate : 0 Mbps
    Hs-Sec-Shaper:hs-sec-shaper-1 Class 3 Rate : 0 Kbps

Scheduler Priority 2
  Scheduler Class 2  Rate : 0 Mbps
    Hs-Sec-Shaper:hs-sec-shaper-1 Class 2 Rate : 0 Kbps

Scheduler Priority 1
  Scheduler Class 1  Rate : 69 Mbps
    Hs-Sec-Shaper:hs-sec-shaper-1 Class 1 Rate : 23375 Kbps
      sap-3/1/2:1->1  Group: 1 Rate : 13408 Kbps
      sap-3/1/2:1->2  Group: 1 Rate : 6684 Kbps
===============================================================================
===============================================================================
*A:PE-1# 

The regular SAP show commands are supported with SAPs on an HSQ IOM; for example, the SAP statistics:

*A:PE-1# show service id 1 sap 3/1/2:1 stats

===============================================================================
Service Access Points(SAP)
===============================================================================
Service Id         : 1
SAP                : 3/1/2:1                  Encap             : q-tag
Description        : (Not Specified)
Admin State        : Up                       Oper State        : Up
Flags              : None
Multi Svc Site     : None
Last Status Change : 09/28/2017 14:05:52
Last Mgmt Change   : 09/28/2017 14:00:29
-------------------------------------------------------------------------------
Sap per Queue stats
-------------------------------------------------------------------------------
                        Packets                 Octets

Ingress Queue 1 (Unicast) (Priority)
Off. HiPrio           : 0                       0
Off. LowPrio          : 12000                   1536000
Dro. HiPrio           : 0                       0
Dro. LowPrio          : 0                       0
For. InProf           : 0                       0
For. OutProf          : 12000                   1536000

Egress Queue 1
For. In/InplusProf    : 0                       0
For. Out/ExcProf      : 2000                    256000
Dro. In/InplusProf    : 0                       0
Dro. Out/ExcProf      : 0                       0

Egress Queue 2
For. In/InplusProf    : 0                       0
For. Out/ExcProf      : 2000                    256000
Dro. In/InplusProf    : 0                       0
Dro. Out/ExcProf      : 0                       0

Egress Queue 6
For. In/InplusProf    : 0                       0
For. Out/ExcProf      : 1000                    128000
Dro. In/InplusProf    : 0                       0
Dro. Out/ExcProf      : 0                       0

Egress Queue 7
For. In/InplusProf    : 0                       0
For. Out/ExcProf      : 1000                    128000
Dro. In/InplusProf    : 0                       0
Dro. Out/ExcProf      : 0                       0
===============================================================================
*A:PE-1# 

Network Egress

Each network egress port uses one HSQ queue group for its egress queues. This occurs automatically and dedicates one HSQ queue group, so eight egress queues, to each network egress port, which are used by all network interfaces configured on that port.

The HSQ-specific configuration of network egress queues on an HSQ IOM is similar to that for SAP egress.

The operation of classification, policing, and marking within the network QoS and network queue policies when applied to a network interface and egress HSQ port, respectively, is unchanged. Only the queues to be used need to be configured within the network queue policy.

Most of the commands in a network queue policy apply to the HSQ egress network interfaces, with the following exceptions being ignored:

  • Queue commands

    • adaptation-rule cir <adaptation-rule>

    • avg-frame-overhead

    • mbs

    • cbs

    • drop tail

    • port-parent

    • pool

    • rate cir

The network queue policy mbs parameter is ignored, and replaced for HSQ queue group queues with the hs-mbs parameter. This is required to allow a more suitable default value to be assigned for the operation of HSQ queues. Both are configured as fractional percentages, with the default for the mbs parameter being 50% of the network egress pool, which is not used for HSQ queues, whereas the default for hs-mbs is 100% of one second of the queue PIR, converted to bytes. If the queue rate is max, the port rate is used (including the HS scheduler policy max-rate and the egress-rate, if configured on the port).

The network-queue policy has the same HS-specific configuration as in the SAP egress QoS policy, so is not repeated here, but includes:

  • The application of an HS attachment policy to define the attachment of the queues to scheduling classes or WRR groups, with the WRR group then being attached to a scheduling class.

  • The queue hs-wrr-weight to configure the relative weight of each queue within its parented WRR group.

  • The rate-related configuration of the two WRR groups in the HSQ queue group.

  • The slope policy configured on each HS WRED queue, again with the highplus-slope and time-average-factor being ignored.

  • The use of the port alternative class pools by each queue.

  • The HS class weight for WRR group scheduling between queues and WRR groups in different HSQ queue groups at a primary shaper scheduling class.

HS WRR group and queue rates are configured as a percentage of the port rate, which includes both the egress-rate and HS scheduler policy max-rate, if configured.

Secondary shapers and HSQ queue group aggregate rates are not applicable to network egress HSQ queue group queues.

The related network queue policy configuration is as follows:

configure
    qos
        network-queue <policy-name> [create]
            hs-attachment-policy <policy-name>
            hs-wrr-group <group-id>
                adaptation-rule [pir <adaptation-rule>]
                hs-class-weight <weight>
                rate <percent>
            queue <queue-id> [multipoint] [<queue-type>] [create]
                hs-alt-port-class-pool
                hs-class-weight <weight>
                hs-mbs <percent-of-queue-rate>
                hs-wred-queue [policy <slope-policy-name>]
                hs-wrr-weight <weight>

See the SAP Egress section for details of the preceding parameters.

A network interface is configured on port 3/1/1:1:

*A:PE-1>config>router# info | match "IP Configuration" pre-lines 1 post-lines 10
#--------------------------------------------------
echo "IP Configuration"
#--------------------------------------------------
        interface "PE-1-Network-1"
            address 192.168.10.1/30
            description "HSQ network egress queues"
            port 3/1/1:1
            qos 10
            no shutdown
        exit

The network QoS policy 10 applied to the interface only contains the necessary egress dscp statements to classify the egress traffic to the forwarding classes mapped to the queues.

The network queue policy configured on port 3/1/1 contains the applied HS attachment policy described for the queue attachment. Queue 1 is configured with a WRR weight of 2. Rates of 2% and 1% are configured on queues 6 and 7, respectively. WRR group 1 is configured with a rate of 2%:

*A:PE-1>config>qos>network-queue# info
----------------------------------------------
            hs-attachment-policy "hs-att-pol-1"
            queue 1 create
                hs-wrr-weight 2
            exit
            queue 2 create
            exit
            queue 6 create
                rate 2
            exit
            queue 7 create
                rate 1
            exit
            hs-wrr-group 1
                rate 2
            exit

The network queue information is shown as follows:

*A:PE-1# show hs-pools port 3/1/1 egress network-queues |
                            match "Queue Information" pre-lines 1 post-lines 40
-------------------------------------------------------------------------------
Queue Information
-------------------------------------------------------------------------------
Queue Name         : 1 Net=be Port=3/1/1
FC Map             : be l2 l1 h2 nc
Admin PIR          : 200000             Oper PIR               : 0
Admin MBS          : 25000000 B         Oper MBS               : 24416 KB
HS Wrr Group       : 1
HS Wrr Class Weight: 1                  HS Wrr Weight          : 2
Depth              : 0
HS Class           : 1                  HS Alt Port Class Pool : No
HS Slope Policy    : _tmnx_hs_default

Queue Name         : 2 Net=af Port=3/1/1
FC Map             : af
Admin PIR          : 200000             Oper PIR               : 0
Admin MBS          : 25000000 B         Oper MBS               : 24416 KB
HS Wrr Group       : 1
HS Wrr Class Weight: 1                  HS Wrr Weight          : 1
Depth              : 0
HS Class           : 1                  HS Alt Port Class Pool : No
HS Slope Policy    : _tmnx_hs_default

Queue Name         : 6 Net=ef Port=3/1/1
FC Map             : ef
Admin PIR          : 200000             Oper PIR               : 200000
Admin MBS          : 25000000 B         Oper MBS               : 24416 KB
HS Wrr Group       : (not-applicable)
HS Wrr Class Weight: 1                  HS Wrr Weight          : 0
Depth              : 0
HS Class           : 4                  HS Alt Port Class Pool : No
HS Slope Policy    : _tmnx_hs_default

Queue Name         : 7 Net=h1 Port=3/1/1
FC Map             : h1
Admin PIR          : 100000             Oper PIR               : 100000
Admin MBS          : 12500000 B         Oper MBS               : 12208 KB
HS Wrr Group       : (not-applicable)
HS Wrr Class Weight: 1                  HS Wrr Weight          : 0
Depth              : 0
HS Class           : 5                  HS Alt Port Class Pool : No
HS Slope Policy    : _tmnx_hs_default

The current port-based scheduler traffic rates for network egress are shown as follows:

*A:PE-1# show qos hs-scheduler-hierarchy port 3/1/1

===============================================================================
Hs Scheduler Hierarchy Information
===============================================================================
Hs Sched Policy Name         : hs-sched-pol-1

Port Max-Rate : 660 Mbps

Scheduler Priority 6
  Scheduler Class 6  Rate : 0 Mbps

Scheduler Priority 5
  Scheduler Class 5  Rate : 127 Mbps

Scheduler Priority 4
  Scheduler Class 4  Rate : 255 Mbps

Scheduler Priority 3
  Scheduler Class 3  Rate : 0 Mbps

Scheduler Priority 2
  Scheduler Class 2  Rate : 0 Mbps

Scheduler Priority 1
  Scheduler Class 1  Rate : 277 Mbps
===============================================================================
*A:PE-1# 

The regular show commands are supported with network interfaces on an HSQ IOM; for example, the port queue statistics:

*A:PE-1# show port 3/1/1 detail | 
     match expression "Ethernet Interface|Egress Queue" pre-lines 1 post-lines 6
===============================================================================
Ethernet Interface
===============================================================================
Description        : 10-Gig Ethernet
Interface          : 3/1/1                      Oper Speed       : 10 Gbps
Link-level         : Ethernet                   Config Speed     : N/A
Admin State        : up                         Oper Duplex      : full
Oper State         : up                         Config Duplex    : N/A

Egress Queue  1              Packets                 Octets
     In/Inplus Prof fwded  :    0                       0
     In/Inplus Prof dropped:    0                       0
     Out/Exc Prof fwded    :    2000                    256000
     Out/Exc Prof dropped  :    0                       0
Egress Queue  2              Packets                 Octets
     In/Inplus Prof fwded  :    0                       0
     In/Inplus Prof dropped:    0                       0
     Out/Exc Prof fwded    :    2000                    256000
     Out/Exc Prof dropped  :    0                       0
Egress Queue  6              Packets                 Octets
     In/Inplus Prof fwded  :    1000                    128000
     In/Inplus Prof dropped:    0                       0
     Out/Exc Prof fwded    :    0                       0
     Out/Exc Prof dropped  :    0                       0
Egress Queue  7              Packets                 Octets
     In/Inplus Prof fwded  :    1000                    128000
     In/Inplus Prof dropped:    0                       0
     Out/Exc Prof fwded    :    0                       0
     Out/Exc Prof dropped  :    0                       0
===============================================================================
*A:PE-1#

Access and Network Egress Queue Groups

Each access and network egress queue group instance configured on an HSQ IOM uses an HSQ queue group for its queues. This occurs automatically and dedicates one HSQ queue group, so eight egress queues, to each egress queue group instance. Only the queues to be used need to be configured within the egress queue group template.

The operation of classification, policing, and marking related to egress queue group instances on an HSQ port is unchanged.

Most of the commands in an egress queue group template apply to the HSQ egress queue group instances, with the following exceptions (including their related overrides) being ignored:

  • HSMDA commands

  • queues-hqos-manageable

  • Queue related

    • adaptation-rule cir <adaptation-rule>

    • adv-config-policy

    • avg-frame-overhead

    • burst-limit

    • cbs

    • drop tail

    • dynamic-mbs

    • parent

    • percent-rate cir

    • pool

    • port-parent

    • rate cir

    • wred-queue

The following commands are not configurable under port access and network egress queue group instances:

  • egress agg-rate limit-unused-bandwidth

  • egress agg-rate queue-frame-based-accounting

The configuration of egress queue groups using HSQ queue groups is unchanged. The egress queue group template is applied under config>port>ethernet>access>egress or config>port>ethernet>network>egr to create the queue group instances, and traffic is redirected to these instances in either a SAP egress QoS policy or network QoS policy.

The system-created egress queue group instances each use an HSQ queue group; for example, the post-policer access egress policer-output-queues queue groups.

The egress queue group template has the same HS-specific configuration as in the SAP egress QoS policy, so is not repeated here, but includes:

  • The application of an HS attachment policy to define the attachment of the queues to scheduling classes or WRR groups, with the WRR group then being attached to a scheduling class.

  • The queue hs-wrr-weight to configure the relative weight of each queue within its parented WRR group.

  • The rate-related configuration of the two WRR groups in the HSQ queue group.

  • The slope policy configured on each HS WRED queue, again with the highplus-slope and time-average-factor being ignored.

  • The use of the port alternative class pools by each queue.

  • The HS class weight for WRR group scheduling between queues and WRR groups in different HSQ queue groups at a primary shaper scheduling class.

Secondary shapers are not applicable to both access and network egress queue group instance HSQ queue groups.

The related egress queue group template configuration syntax is as follows:

configure
    qos
        queue-group-templates
            egress
                queue-group <queue-group-name> [create]
                    hs-attachment-policy <policy-name>
                    hs-wrr-group <group-id>
                        adaptation-rule [pir <adaptation-rule>]
                        hs-class-weight <weight>
                        percent-rate <percent>
                        rate <rate>
                    queue <queue-id> [queue-type] [create]
                        hs-alt-port-class-pool
                        hs-class-weight <weight>
                        hs-wred-queue [policy <slope-policy-name>]
                        hs-wrr-weight <weight>

See the SAP Egress section for details of the preceding parameters.

The percent-rate configured within the hs-wrr-group and under a queue is relative to the port rate, and includes both the egress-rate and HS scheduler policy max-rate, if configured.

The HSQ queue group aggregate rate is applied to an egress queue group instance using the agg-rate rate command under the application of the queue group template on the port:

configure
    port <port-id>
        ethernet
            access
                egress
                    queue-group <queue-group-name> [instance <instance-id>]
                        agg-rate
                            rate <kilobits-per-second>
            network
                egress
                    queue-group <queue-group-name> [instance <instance-id>]
                        agg-rate
                            rate <kilobits-per-second>

Where:

<port-id>            : slot/mda/port
<queue-group-name>   : [32 chars max]
<instance-id>        : [1..65535]
<kilobits-per-seco*> : [1..3200000000|max] Kbps

When using HSQ queue groups with access or network egress queue group instances on 100G ports, the hs-turbo parameter can be configured under the port queue group instance to allow the corresponding HSQ queue group queues to achieve a higher throughput. The default is no hs-turbo. The hs-turbo parameter is not applicable to 10G ports and is ignored when configured under a queue group instance on a 10G port.

configure
    port <port-id>
        ethernet
            access
                egress
                    queue-group <queue-group-name> [instance <instance-id>]
                        hs-turbo
            network
                egress
                    queue-group <queue-group-name> [instance <instance-id>]
                        hs-turbo

Where:

<port-id>            : slot/mda/port
<queue-group-name>   : [32 chars max]
<instance-id>        : [1..65535]
Note:

Queue depth monitoring is supported for access and network egress queue groups HSQ queues. This is enabled by configuring the queue override monitor-depth command under the queue group instance with the associated output showing buffer occupancy in ranges of 10% of the queue depth for each configured queue.

An egress queue group template is configured containing the applied HS attachment policy described for the queue attachment. Queue 1 is configured with a WRR weight of 2. Rates of 20 Mb/s and 10 Mb/s are configured on queues 6 and 7, respectively. WRR group 1 is configured with a rate of 40 Mb/s:

A:PE-1# configure qos queue-group-templates egress
A:PE-1>cfg>qos>qgrps>egr# info
----------------------------------------------
                queue-group "queue-group-1" create
                    hs-attachment-policy "hs-att-pol-1"
                    queue 1 best-effort create
                        hs-wrr-weight 2
                    exit
                    queue 2 best-effort create
                    exit
                    queue 6 best-effort create
                        rate 20000
                    exit
                    queue 7 best-effort create
                        rate 10000
                    exit
                    hs-wrr-group 1
                        rate 40000
                    exit
                exit

The queue group template is applied to the network port 3/1/1 and access port 3/1/2, each with an aggregate rate of 100 Mb/s:

A:PE-1# configure port 3/1/1
A:PE-1>config>port# info
----------------------------------------------
        ethernet
            network
                egress
                    queue-group "queue-group-1" instance 1 create
                        agg-rate
                            rate 100000
                        exit
                    exit
                exit
            exit
        exit
        no shutdown
----------------------------------------------
A:PE-1>config>port# exit all
A:PE-1# configure port 3/1/2
A:PE-1>config>port# info
----------------------------------------------
        ethernet
            access
                egress
                    queue-group "queue-group-1" instance 1 create
                        agg-rate
                            rate 100000
                        exit
                    exit
                exit
            exit
        exit
        no shutdown

The configured aggregate rates are shown as follows:

*A:PE-1# show port 3/1/[1,2] queue-group queue-group-1 instance 1 | 
                                  match "Ethernet port" pre-lines 1 post-line 7
===============================================================================
Ethernet port 3/1/1 Network Egress queue-group
===============================================================================
Group Name       : queue-group-1      Instance-Id  : 1
Description      : (Not Specified)
Sched Policy     : None               Acct Pol     : None
Collect Stats    : disabled           Agg. Limit   : 100000
Limit Unused BW  : Disabled
HS Turbo Queues  : Disabled
===============================================================================
Ethernet port 3/1/2 Access Egress queue-group
===============================================================================
Group Name       : queue-group-1      Instance-Id  : 1
Description      : (Not Specified)
Sched Policy     : None               Acct Pol     : None
Collect Stats    : disabled           Agg. Limit   : 100000
Limit Unused BW  : Disabled
HS Turbo Queues  : Disabled
*A:PE-1#

An IES interface SAP is configured on port 3/1/2 with a SAP egress QoS policy redirecting the traffic to the access egress queue group instance, and a network interface is configured on port 3/1/1 with a network QoS policy redirecting the traffic to the network egress queue group instance.

The queue information of the access egress queue group HSQ queue group queues is shown as follows:

A:PE-1# show hs-pools port 3/1/2 egress queue-group "queue-group-1" | 
                            match "Queue Information" pre-lines 1 post-lines 40
-------------------------------------------------------------------------------
Queue Information
-------------------------------------------------------------------------------
Queue Name         : accQGrp->queue-group-1:1(3/1/2)->1
FC Map             : not-applicable
Admin PIR          : 40000              Oper PIR               : 0
Admin MBS          : 64 KB              Oper MBS               : 64 KB
HS Wrr Group       : 1
HS Wrr Class Weight: 1                  HS Wrr Weight          : 2
Depth              : 0
HS Class           : 1                  HS Alt Port Class Pool : No
HS Slope Policy    : _tmnx_hs_default

Queue Name         : accQGrp->queue-group-1:1(3/1/2)->2
FC Map             : not-applicable
Admin PIR          : 40000              Oper PIR               : 0
Admin MBS          : 64 KB              Oper MBS               : 64 KB
HS Wrr Group       : 1
HS Wrr Class Weight: 1                  HS Wrr Weight          : 1
Depth              : 0
HS Class           : 1                  HS Alt Port Class Pool : No
HS Slope Policy    : _tmnx_hs_default

Queue Name         : accQGrp->queue-group-1:1(3/1/2)->6
FC Map             : not-applicable
Admin PIR          : 20000              Oper PIR               : 20000
Admin MBS          : 64 KB              Oper MBS               : 64 KB
HS Wrr Group       : (not-applicable)
HS Wrr Class Weight: 1                  HS Wrr Weight          : 0
Depth              : 0
HS Class           : 4                  HS Alt Port Class Pool : No
HS Slope Policy    : _tmnx_hs_default

Queue Name         : accQGrp->queue-group-1:1(3/1/2)->7
FC Map             : not-applicable
Admin PIR          : 10000              Oper PIR               : 10000
Admin MBS          : 64 KB              Oper MBS               : 64 KB
HS Wrr Group       : (not-applicable)
HS Wrr Class Weight: 1                  HS Wrr Weight          : 0
Depth              : 0
HS Class           : 5                  HS Alt Port Class Pool : No
HS Slope Policy    : _tmnx_hs_default

The equivalent information can be displayed for the network egress queue group HSQ queue group queues by replacing 3/1/2 by 3/1/1.

The current port scheduler aggregate traffic rate and the current traffic rates for each scheduling class, together with current queue traffic rates in the specified access or network egress queue group instance, are shown as follows:

*A:PE-1# show qos hs-scheduler-hierarchy port 3/1/2 
                  queue-group "queue-group-1" instance 1 access

===============================================================================
Hs Scheduler Hierarchy Information
===============================================================================
Hs Sched Policy Name         : default

Port Max-Rate : 138 Mbps

Scheduler Priority 6
  Scheduler Class 6  Rate : 0 Mbps
      Queue 8            Rate : 0 Kbps

Scheduler Priority 5
  Scheduler Class 5  Rate : 22 Mbps
      Queue 7            Rate : 10062 Kbps

Scheduler Priority 4
  Scheduler Class 4  Rate : 45 Mbps
      Queue 6            Rate : 20124 Kbps

Scheduler Priority 3
  Scheduler Class 3  Rate : 0 Mbps

Scheduler Priority 2
  Scheduler Class 2  Rate : 0 Mbps

Scheduler Priority 1
  Scheduler Class 1  Rate : 69 Mbps
      Queue 1            Rate : 26837 Kbps
      Queue 2            Rate : 13397 Kbps
===============================================================================
*A:PE-1#

Conclusion

The HSQ IOM provides high scale QoS in terms of the number of ingress policers and egress queues supported. It supports six scheduling classes across multiple hierarchical levels of hardware egress shaping encompassing HSQ queue groups, primary shapers, secondary shapers, and port schedulers. A flexible buffer allocation mechanism permits both buffer isolation and buffer oversubscription for the queue buffer allocation.