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
Port scheduler policy configuration commands
config
- qos
- [no] port-scheduler-policy port-scheduler-name [create]
- description description-string
- no description
- mode {strict | rr | wrr | wdrr}
- no mode
- queue queue-id [strict | weight weight]
- no queue queue-id
Operational commands
config
- qos
- copy port-scheduler-policy src-name dst-name [overwrite]
Show commands
show
- qos
- port-scheduler-policy [port-scheduler-policy-name] [association]
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).
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.
- strict
Specifies strict access.
- weight weight
Specifies the number of packets in case of WRR and ratio of traffic out in WDRR.
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), Output fields: port scheduler policy for 7210 SAS-T
Sample output (7210 SAS-Sx 1/10GE), Output fields: port scheduler policy for 7210 SAS-Sx 1/10GE
*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#
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 |
*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
===============================================================================
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 |
*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#
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 |