Schedulers on 7210 SAS-Sx/S 1/10GE and 7210 SAS-Sx 10/100GE

This section describes the port scheduler and its behavior for 7210 SAS-Sx/S 1/10GE and 7210 SAS-Sx 10/100GE. The port scheduler on 7210 SAS-Sx/S 1/10GE and 7210 SAS-Sx 10/100GE is configured using the port scheduler policies.

Configuring scheduler policies

On 7210 SAS-Sx/S 1/10GE and 7210 SAS-Sx 10/100GE, there are 2 levels of egress schedulers – a port egress scheduler operating at line-rate or the configured port egress rate and a per FC egress scheduler which provides an option to the user to configure CIR and PIR rate. The FC egress scheduler is parented by the port egress scheduler. A port has a single port egress scheduler with a scheduling node for each FC, for a total of eight (8), as its children. Each FC egress scheduling node has 2 queues as it children, one for unicast traffic and one for multicast traffic (all BUM traffic):

  • The rate parameter configured under a queue in the access-egress policy and network queue policy limits the amount of bandwidth that the FC will get. The queue ID in the policy maps one-to-one to an FC (with queue #8 mapping to FC nc, queue #7 to FC h2, and so on to queue #1 to FC be). The amount of bandwidth given to a FC is equally distributed among the unicast queue and multicast queue in a WDRR fashion (with equal weights assigned to the queues).

The port scheduler policy mode parameter determines the scheduling order of the FCs as follows:

  • Mode = Strict (aka strict priority scheduling)

    The port egress scheduler operates in two loops – CIR loop and PIR loop. If configured in strict priority, FC nc is scheduled before FC ‛be’ in both CIR loop and PIR loop. Lower priority FC, will be allocated bandwidth only if the higher priority FC has no traffic to send in the given loop. In other words, in the CIR loop only after meeting the CIR rate of the higher priority FC, the scheduler schedules the lower priority FC, only if port bandwidth remains. After completing the CIR loop and satisfying the CIR rates configured for all the FCs, the scheduler starts the PIR loop (only if more port bandwidth remains). In the PIR loop too, bandwidth is first allocated to higher priority FC followed by lower priority FCs. It is recommended to configure the rates correctly for higher priority FC when using strict priority mode to avoid starvation of lower priority FC.

  • Mode – weighted (WRR or WDRR)

    If configured for weighted mode (either WDRR or WRR), the weight configured determines the amount of bandwidth a FC gets when contending for traffic with other FCs in the PIR loop. The port scheduler operates in two loop – CIR loop and PIR loop. In CIR loop, the available bandwidth is distributed in round-robin order to all the FCs whose CIR rate is not met. Weight is not considered in the CIR loop. In the PIR loop, the port scheduler distributes the available bandwidth to all the FCs in proportion to the configured weight until their PIR is met. The accounting for amount of bandwidth distributed is in terms of packets which results in unfair advantage to FCs that receive more number of bigger packets.

  • Mode – Round-Robin (RR)

    If configured for round-robin mode, the port scheduler operates in two loop – CIR loop and PIR loop. In CIR loop, the available bandwidth is distributed in round-robin fashion to all the FCs whose CIR rate is not met. Once the CIR is met for all FCs, in the PIR loop, the port scheduler distributes the available bandwidth to all the FCs until their PIR is met. The accounting for amount of bandwidth distributed is in terms of packets which results in unfair advantage to FCs that receive only larger size packets.

  • Mode – Hybrid (Strict + WDRR or WRR)

    If the WRR/WDRR weight associated with a particular FC is set to strict, the FC is considered to be operating in a strict priority mode. The set of strict priority queues is serviced first in the order of their priority, with higher priority FC nc scheduled before FC be. In this mode, the scheduler services the strict FCs, followed by the FCs configured with weights in both the CIR and PIR loop. The scheduler ensures that it meets the CIR of all the FCs (both FCs configured as strict and FCs configured as weighted), before scheduling the FCs in the PIR loop (assuming sufficient port bandwidth is available). If multiple FCs are configured as strict, the higher-priority strict queues are serviced first before the lower priority strict queues in both the CIR and the PIR loop. The weights configured for the FCs are only considered during the PIR loop to distribute the available bandwidth in proportion to the weights. Care must be taken when configuring strict priority queues to avoid starvation of lower priority strict queues or weighted queues.

QoS port scheduler policy command reference

Command hierarchies

Operational commands

config
    - qos
        - copy port-scheduler-policy src-name dst-name [overwrite]

Command descriptions

Configuration commands

Generic commands
description
Syntax

description description-string

no description

Context

config>qos>port-scheduler-policy

Platforms

7210 SAS-T (in access-uplink mode and network mode), 7210 SAS-Sx 1/10GE: standalone and standalone-VC, and 7210 SAS-Sx 10/100GE

Description

This command creates a text description stored in the configuration file for a configuration context.

The description command associates a text string with a configuration context to help identify the context in the configuration file.

The no form of this command removes any description string from the context.

Parameters
description-string

Specifies a text string describing the entity. Allowed values are any string up to 80 characters composed of printable, 7-bit ASCII characters. If the string contains special characters (#, $, spaces, and so on), the entire string must be enclosed within double quotes.

Port scheduler policy commands

port-scheduler-policy
Syntax

[no] port-scheduler-policy port-scheduler-name [create]

Context

config>qos

Platforms

7210 SAS-T (in access-uplink mode and Network), 7210 SAS-Sx 1/10GE: standalone and standalone-VC, and 7210 SAS-Sx 10/100GE

Description

The default scheduling done for a port is strict scheduling. When a port-scheduler policy is applied to a port, it overrides the default scheduling and determines the type of scheduling (Strict, RR, WRR, WDRR, WRR/WDRR + Strict) to be done between the 8 CoS queues of that particular port. When a port scheduler policy is detached from a port, the port reverts back to the default scheduling (strict).

The no form of this command removes the policy from the system.

Parameters
port-scheduler-name

Specifies an existing policy name. Each port-scheduler policy name should be unique and can go up to 32 ASCII characters in length.

create

Keyword to create a port scheduler policy.

mode
Syntax

mode {strict | rr | wrr | wdrr}

no mode

Context

config>qos>port-sched-plcy

Platforms

7210 SAS-T (in access-uplink mode and Network), 7210 SAS-Sx 1/10GE: standalone and standalone-VC, and 7210 SAS-Sx 10/100GE

Description

This command configures a particular mode of scheduling for the policy. For example, this implies that when a policy with a mode RR is applied to a port then that port will follow the round robin type of scheduling between its queues.

Parameters
mode

Specifies the port scheduler policy mode.

strict — Strict scheduler mode

rr — Round Robin

wrr — Weighted Round Robin

wdrr — Weighted Deficit Round Robin

queue
Syntax

queue queue-id [strict | weight weight]

no queue queue-id

Context

config>qos>port-sched-plcy

Platforms

7210 SAS-T (in access-uplink mode and Network), 7210 SAS-Sx 1/10GE: standalone and standalone-VC, and 7210 SAS-Sx 10/100GE

Description

This command configures a port scheduler queue. The queue and its weights can be configured only for WRR/WDRR modes. The weight specified in case of WRR corresponds to the number of packets that needs to be sent out in a cycle for that particular queue.

For WDRR, the weight specified is the ratio of traffic that will be sent out for that particular queue. For example, in WDRR, if a weight value for queue 1 is 1 and a weight value for queue 2 is 5, then traffic out of the port is in the ratio of 1:5 between the queues (1 and 2) provided no traffic is flowing in the other queues. If the keyword strict is specified in any of the queues, then that particular queue will be treated as strict. This set of strict priority queues is serviced first in the order of their CoS numbering (the higher numbered CoS queue receives service before smaller numbered queues).

Note:

On the 7210 SAS-Sx 1/10GE: standalone and standalone-VC, the queue ID represents the FC. The FC is determined by the FC-to-queue ID map. For more information, see Schedulers on 7210 SAS-Sx/S 1/10GE and 7210 SAS-Sx 10/100GE.

The no form of this command under a WRR/WDRR mode will set the queue weights to default; for example, 1.

Parameters
queue-id

Specifies the queue ID.

Values

1 to 8

strict

Specifies strict access.

weight weight

Specifies the number of packets in case of WRR and ratio of traffic out in WDRR.

Values

1 to 15

Operational commands

copy
Syntax

copy port-scheduler-policy src-name dst-name [overwrite]

Context

config>qos

Platforms

7210 SAS-T (in access-uplink mode and Network), 7210 SAS-Sx 1/10GE: standalone and standalone-VC, and 7210 SAS-Sx 10/100GE

Description

This command copies existing port scheduler QoS policy entries for a port scheduler QoS policy to another port scheduler QoS policy.

The copy command is a configuration level maintenance tool used to create new policies using existing policies. It also allows bulk modifications to an existing policy with the use of the overwrite keyword.

If overwrite is not specified, an error will occur if the destination policy exists.

Parameters
port-scheduler-policy src-name dst-name

Specifies the source policy that the copy command will attempt to copy from and specifies the destination policy name to which the command will copy a duplicate of the policy. This parameter indicates that the source policy and the destination policy are port scheduler policy IDs.

overwrite

Keyword to replace the destination policy name. When the overwrite keyword is specifies, everything in the existing destination policy will be completely overwritten with the contents of the source policy.

Show commands

port-scheduler-policy
Syntax

port-scheduler-policy [port-scheduler-policy-name] [association]

Context

show>qos

Platforms

7210 SAS-T (in access-uplink mode and Network), 7210 SAS-Sx 1/10GE: standalone and standalone-VC, and 7210 SAS-Sx 10/100GE

Description

This command displays port-scheduler policy information

Parameters
port-scheduler-policy-name

Displays information for the specified existing port scheduler policy.

association

Displays associations related to the specified port scheduler policy.

Output

The following outputs are examples of QoS port scheduler policy information, and the associated tables describe the output fields:

Sample output (7210 SAS-T)
*A:Dut-1>config# show qos port-scheduler-policy          
===============================================================================
Port Scheduler Policies
===============================================================================
Policy-Id                     Description                             Mode     
-------------------------------------------------------------------------------
default                       Default Port Scheduler policy.          STRICT   
psp                                                                   WDRR     
psp1                                                                  WDRR     
===============================================================================
*A:Dut-1>config#


*A:Dut-1>config# show qos port-scheduler-policy psp association 
===============================================================================
QoS Port Scheduler Policy
===============================================================================
Policy-Name       : psp
Accounting        : packet-based                                               
Mode              : WDRR                                                       
 
-------------------------------------------------------------------------------
Associations
-------------------------------------------------------------------------------
 - Port : 1/1/1
 
===============================================================================
*A:Dut-1>config# 


*A:Dut-1>config# show qos port-scheduler-policy psp 
===============================================================================
QoS Port Scheduler Policy
===============================================================================
Policy-Name       : psp
Accounting        : packet-based                                               
Mode              : WDRR                                                       
Last changed      : 04/12/2001 02:04:16                                        
Queue 1 Weight:   : 1                                                          
Queue 2 Weight:   : 2                                                          
Queue 3 Weight:   : 5                                                          
Queue 4 Weight:   : 1                                                          
Queue 5 Weight:   : 1                                                          
Queue 6 Weight:   : 1                                                          
Queue 7 Weight:   : 1                                                          
Queue 8 Weight:   : 1                                                          
===============================================================================
*A:Dut-1>config# 
Table 1. Output fields: port scheduler policy for 7210 SAS-T
Label Description

Policy-Id

The ID of the policy

Description

Description of the policy

Mode

Displays the port scheduler policy mode (STRICT, RR, WRR, WDRR)

Associations

Displays associations related to the specified port scheduler policy

Policy-Name

Displays the port scheduler policy name

Accounting

Displays whether the accounting mode is frame-based or packet-based

Last Changed

Displays the last time the configuration changed

Queue #

Displays the weight of the queue, if configured

Sample output (7210 SAS-Sx 1/10GE)
*A:K-SAS-Sx>config>qos# show qos port-scheduler-policy 
===============================================================================
Port Scheduler Policies
===============================================================================
Policy-Id                     Description                             Mode
-------------------------------------------------------------------------------
1                                                                     STRICT
default                       Default Port Scheduler policy.          STRICT
===============================================================================
*A:K-SAS-Sx>config>qos# show qos port-scheduler-policy "default" association 
===============================================================================
QoS Port Scheduler Policy
===============================================================================
Policy-Name       : default
Description       : Default Port Scheduler policy.
Accounting        : packet-based        
Mode              : STRICT              
 
-------------------------------------------------------------------------------
Associations
-------------------------------------------------------------------------------
- Port : 1/1/1
- Port : 1/1/2
- Port : 1/1/3
- Port : 1/1/4
- Port : 1/1/5
- Port : 1/1/6
- Port : 1/1/7
........
===============================================================================
*A:K-SAS-Sx>config>qos# show qos port-scheduler-policy "default" 
===============================================================================
QoS Port Scheduler Policy
===============================================================================
Policy-Name       : default
Description       : Default Port Scheduler policy.
Accounting        : packet-based        
Mode              : STRICT              
Last changed      : 01/03/2000 07:34:35 
Number Of Queues  : 8                   
===============================================================================
Table 2. Output fields: port scheduler policy for 7210 SAS-Sx 1/10GE
Label Description

Policy-Id

The ID of the policy

Description

Description of the policy

Mode

Displays the port scheduler policy mode (STRICT, RR, WRR, WDRR)

Associations

Displays associations related to the specified port scheduler policy

Policy-Name

Displays the port scheduler policy name

Accounting

Displays whether the accounting mode is frame-based or packet-based

Last Changed

Displays the last time the configuration changed

Number of Queues

Displays the number of queues, if configured

Sample output (association)
*A:card-1# show qos port-scheduler-policy default association 
===============================================================================
QoS Port Scheduler Policy
===============================================================================
Policy-Name       : default
Description       : Default Port Scheduler policy.
Accounting        : packet-based                                               
Mode              : STRICT                                                     
 
-------------------------------------------------------------------------------
Associations
-------------------------------------------------------------------------------
 - Port : 1/1/3
 - Port : 1/1/6
 - Port : 1/1/7
 - Port : 1/1/8
 - Port : 1/1/9
 - Port : 1/1/10
 - Port : 1/1/11
 - Port : 1/1/12
 - Port : 1/1/13
 - Port : 1/1/14
 - Port : 1/1/16                      
 - Port : 1/1/17
 - Port : 1/1/18
 - Port : 1/1/19
 - Port : 1/1/21
 - Port : 1/1/22
 - Port : 1/1/23
 - Port : 1/1/24
...
===============================================================================
*A:card-1#

*A:Dut-1>config# show qos port-scheduler-policy default 
===============================================================================
QoS Port Scheduler Policy
===============================================================================
Policy-Name       : default
Description       : Default Port Scheduler policy.
Accounting        : packet-based                                               
Mode              : STRICT                                                     
Last changed      : 04/11/2001 19:59:21                                        
Number Of Queues  : 8                                                          
===============================================================================
*A:Dut-1>config# 
Table 3. Output fields: association
Label Description

Policy-Name

Displays the port scheduler policy name

Description

Description of the policy

Accounting

Displays whether the accounting mode is frame-based or packet-based

Mode

Displays the port scheduler policy mode (STRICT, RR, WRR, WDRR)

Associations

Displays associations related to the specified port scheduler policy

Last Changed

Displays the last time the configuration changed

Number of Queues

Displays the number of queues, if configured