ON THIS PAGE
Example: Configuring CoS Hierarchical Port Scheduling (ETS)
Hierarchical port scheduling defines the class-of-service (CoS) properties of output queues, which are mapped to forwarding classes. Traffic is classified into forwarding classes based on code point (priority), so mapping queues to forwarding classes also maps queues to priorities). Hierarchical port scheduling enables you to group priorities that require similar CoS treatment into priority groups. You define the port bandwidth resources for a priority group, and you define the amount of the priority group’s resources that each priority in the group can use.
Hierarchical port scheduling is the Junos OS implementation of enhanced transmission selection (ETS), as described in IEEE 802.1Qaz. One major benefit of hierarchical port scheduling is greater port bandwidth utilization. If a priority group on a port does not use all of its allocated bandwidth, other priority groups on that port can use that bandwidth. Also, if a priority within a priority group does not use its allocated bandwidth, other priorities within that priority group can use that bandwidth.
Configuring hierarchical scheduling is a multistep procedure that includes:
-
Mapping forwarding classes to queues
-
Defining forwarding class sets (priority groups)
-
Defining behavior aggregate classifiers
-
Configuring priority-based flow control (PFC) for lossless priorities (queues)
-
Applying classifiers and PFC configuration to ingress interfaces
-
Defining drop profiles
-
Defining schedulers
-
Mapping forwarding classes to schedulers
-
Defining traffic control profiles
-
Assigning priority groups and traffic control profiles to egress ports
This example describes how to configure hierarchical scheduling:
Requirements
This example uses the following hardware and software components:
-
One switch (this example was tested on a Juniper Networks QFX3500 Switch)
-
Junos OS Release 11.1
Use Feature Explorer to confirm platform and release support for ETS.
Overview
Keep the following considerations in mind when you plan the port bandwidth allocation for priority groups and for individual priorities:
How much traffic and what types of traffic you expect to traverse the system.
How you want to divide different types of traffic into priorities (forwarding classes) to apply different CoS treatment to different types of traffic. Dividing traffic into priorities includes:
Mapping the code points of ingress traffic to forwarding classes using behavior aggregate (BA) classifiers. This classifies incoming traffic into the appropriate forwarding class based on code point.
Mapping forwarding classes to output queues. This defines the output queue for each type of traffic.
Attaching the BA classifier to the desired ingress interfaces so that incoming traffic maps to the desired forwarding classes and queues.
How you want to organize priorities into priority groups (forwarding class sets).
Traffic that requires similar treatment usually belongs in the same priority group. To do this, place forwarding classes that require similar bandwidth, loss, and other characteristics in the same forwarding class set. For example, you can map all types of best-effort traffic forwarding classes into one forwarding class set.
How much of the port bandwidth you want to allocate to each priority group and to each of the priorities in each priority group. The following considerations apply to bandwidth allocation:
Estimate how much traffic you expect in each forwarding class, and how much traffic you expect in each forwarding class set (the amount of traffic you expect in a forwarding class set is the aggregate amount of traffic in the forwarding classes that belong to the forwarding class set).
The combined minimum guaranteed bandwidth of the priorities (forwarding classes) in a priority group should not exceed the minimum guaranteed bandwidth of the priority group (forwarding class set). The transmit rate scheduler parameter defines the minimum guaranteed bandwidth for forwarding classes. Scheduler maps associate schedulers with forwarding classes.
The combined minimum guaranteed bandwidth of the priority groups (forwarding class sets) on a port should not exceed the port’s total bandwidth. The guaranteed rate parameter in the traffic control profile defines the minimum bandwidth for a forwarding class set. Associating a scheduler map with a traffic control profile sets the scheduling for the individual forwarding classes in the forwarding class set.
This example creates hierarchical port scheduling by defining priority groups for best effort, guaranteed delivery, and high-performance computing (HPC) traffic. Each priority group includes priorities that need to receive similar CoS treatment. Each priority group and each priority within each priority group receive the CoS resources needed to service their flows. Lossless priorities use PFC to prevent packet loss when the network experiences congestion.
Topology
Table 1 shows the configuration components for this example.
Property |
Settings |
---|---|
Hardware |
QFX3500 switch |
Mapping of forwarding classes (priorities) to queues |
|
Forwarding class sets (priority groups) |
|
Behavior aggregate classifier (maps forwarding classes and loss priorities to incoming packets by IEEE 802.1 code point) |
Name— Code point mapping:
|
PFC |
Congestion notification profile
name— PFC enabled on code points: |
Drop profiles Note:
The |
|
Queue schedulers |
|
Forwarding class-to-scheduler mapping |
Scheduler map Scheduler map Scheduler map |
Traffic control profiles |
|
Interfaces |
This example configures hierarchical port scheduling on
interfaces
|
Figure 1 shows a block diagram of the configuration components and the configuration flow of the CLI statements used in the example. You can perform the configuration steps in a different sequence if you want.
Figure 2 shows a block diagram of the hierarchical scheduling packet flow from ingress to egress.
Configuration
CLI Quick Configuration
To quickly configure hierarchical port scheduling on systems that support lossless transport, copy the following commands, paste them in a text file, remove line breaks, change variables and details to match your network configuration, and then copy and paste the commands into the CLI at the [edit class-of-service] hierarchy level:
[edit class-of-service] set forwarding-classes class best-effort queue-num 0 set forwarding-classes class be2 queue-num 1 set forwarding-classes class hpc queue-num 5 set forwarding-classes class network-control queue-num 7 set forwarding-class-sets best-effort-pg class best-effort set forwarding-class-sets best-effort-pg class be2 set forwarding-class-sets best-effort-pg class network-control set forwarding-class-sets guar-delivery-pg class fcoe set forwarding-class-sets guar-delivery-pg class no-loss set forwarding-class-sets hpc-pg class hpc set classifiers ieee-802.1 hsclassifier1 forwarding-class best-effort loss-priority low code-points 000 set classifiers ieee-802.1 hsclassifier1 forwarding-class be2 loss-priority high code-points 001 set classifiers ieee-802.1 hsclassifier1 forwarding-class fcoe loss-priority low code-points 011 set classifiers ieee-802.1 hsclassifier1 forwarding-class no-loss loss-priority low code-points 100 set classifiers ieee-802.1 hsclassifier1 forwarding-class hpc loss-priority low code-points 101 set classifiers ieee-802.1 hsclassifier1 forwarding-class network-control loss-priority low code-points 110 set congestion-notification-profile gd-cnp input ieee-802.1 code-point 011 pfc set congestion-notification-profile gd-cnp input ieee-802.1 code-point 100 pfc set interfaces xe-0/0/20 unit 0 classifiers ieee-802.1 hsclassifier1 set interfaces xe-0/0/21 unit 0 classifiers ieee-802.1 hsclassifier1 set interfaces xe-0/0/20 congestion-notification-profile gd-cnp set interfaces xe-0/0/21 congestion-notification-profile gd-cnp set drop-profiles dp-be-low interpolate fill-level 25 fill-level 50 drop-probability 0 drop-probability 80 set drop-profiles dp-be-high interpolate fill-level 10 fill-level 40 drop-probability 0 drop-probability 100 set drop-profiles dp-nc interpolate fill-level 80 fill-level 100 drop-probability 0 drop-probability 100 set drop-profiles dp-hpc interpolate fill-level 75 fill-level 90 drop-probability 0 drop-probability 75 set schedulers be-sched priority low transmit-rate 3g set schedulers be-sched shaping-rate percent 100 set schedulers be-sched drop-profile-map loss-priority low protocol any drop-profile dp-be-low set schedulers be-sched drop-profile-map loss-priority high protocol any drop-profile dp-be-high set schedulers fcoe-sched priority low transmit-rate 2500m set schedulers fcoe-sched shaping-rate percent 100 set schedulers hpc-sched priority low transmit-rate 2g set schedulers hpc-sched shaping-rate percent 100 set schedulers hpc-sched drop-profile-map loss-priority low protocol any drop-profile dp-hpc set schedulers nc-sched priority low transmit-rate 500m set schedulers nc-sched shaping-rate percent 100 set schedulers nc-sched drop-profile-map loss-priority low protocol any drop-profile dp-nc set schedulers nl-sched priority low transmit-rate 2g set schedulers nl-sched shaping-rate percent 100 set scheduler-maps be-map forwarding-class best-effort scheduler be-sched set scheduler-maps be-map forwarding-class be2 scheduler be-sched set scheduler-maps be-map forwarding-class network-control scheduler nc-sched set scheduler-maps gd-map forwarding-class fcoe scheduler fcoe-sched set scheduler-maps gd-map forwarding-class no-loss scheduler nl-sched set scheduler-maps hpc-map forwarding-class hpc scheduler hpc-sched set traffic-control-profiles be-tcp scheduler-map be-map guaranteed-rate 3500m set traffic-control-profiles be-tcp shaping-rate percent 100 set traffic-control-profiles gd-tcp scheduler-map gd-map guaranteed-rate 4500m set traffic-control-profiles gd-tcp shaping-rate percent 100 set traffic-control-profiles hpc-tcp scheduler-map hpc-map guaranteed-rate 2g set traffic-control-profiles hpc-tcp shaping-rate percent 100 set interfaces xe-0/0/20 forwarding-class-set best-effort-pg output-traffic-control-profile be-tcp set interfaces xe-0/0/20 forwarding-class-set guar-delivery-pg output-traffic-control-profile gd-tcp set interfaces xe-0/0/20 forwarding-class-set hpc-pg output-traffic-control-profile hpc-tcp set interfaces xe-0/0/21 forwarding-class-set best-effort-pg output-traffic-control-profile be-tcp set interfaces xe-0/0/21 forwarding-class-set guar-delivery-pg output-traffic-control-profile gd-tcp set interfaces xe-0/0/21 forwarding-class-set hpc-pg output-traffic-control-profile hpc-tcp
Procedure
Step-by-Step Procedure
To perform a step-by-step configuration of the forwarding classes (priorities), forwarding class sets (priority groups), classifiers, queue schedulers, PFC, traffic control profiles, and interfaces to set up hierarchical port scheduling (ETS):
Configure the forwarding classes (priorities) and map them to unicast output queues (do not explicitly map the
fcoe
andno-loss
forwarding classes to output queues; use the default configuration):[edit class-of-service] user@switch# set forwarding-classes class best-effort queue-num 0 user@switch# set forwarding-classes class be2 queue-num 1 user@switch# set forwarding-classes class hpc queue-num 5 user@switch# set forwarding-classes class network-control queue-num 7
Configure forwarding class sets (priority groups) to group forwarding classes (priorities) that require similar CoS treatment:
[edit class-of-service] user@switch# set forwarding-class-sets best-effort-pg class best-effort user@switch# set forwarding-class-sets best-effort-pg class be2 user@switch# set forwarding-class-sets best-effort-pg class network-control user@switch# set forwarding-class-sets guar-delivery-pg class fcoe user@switch# set forwarding-class-sets guar-delivery-pg class no-loss user@switch# set forwarding-class-sets hpc-pg class hpc
Configure a classifier to set the loss priority and IEEE 802.1 code points assigned to each forwarding class at the ingress:
[edit class-of-service] user@switch# set classifiers ieee-802.1 hsclassifier1 forwarding-class best-effort loss-priority low code-points 000 user@switch# set classifiers ieee-802.1 hsclassifier1 forwarding-class be2 loss-priority high code-points 001 user@switch# set classifiers ieee-802.1 hsclassifier1 forwarding-class fcoe loss-priority low code-points 011 user@switch# set classifiers ieee-802.1 hsclassifier1 forwarding-class no-loss loss-priority low code-points 100 user@switch# set classifiers ieee-802.1 hsclassifier1 forwarding-class hpc loss-priority low code-points 101 user@switch# set classifiers ieee-802.1 hsclassifier1 forwarding-class network-control loss-priority low code-points 110
Configure a congestion notification profile to enable PFC on the FCoE and no-loss queue IEEE 802.1 code points:
[edit class-of-service] user@switch# set congestion-notification-profile gd-cnp input ieee-802.1 code-point 011 pfc user@switch# set congestion-notification-profile gd-cnp input ieee-802.1 code-point 100 pfc
Assign the classifier to the interfaces:
[edit class-of-service] user@switch# set interfaces xe-0/0/20 unit 0 classifiers ieee-802.1 hsclassifier1 user@switch# set interfaces xe-0/0/21 unit 0 classifiers ieee-802.1 hsclassifier1
Apply the PFC configuration to the interfaces:
[edit class-of-service] user@switch# set interfaces xe-0/0/20 congestion-notification-profile gd-cnp user@switch# set interfaces xe-0/0/21 congestion-notification-profile gd-cnp
Configure the drop profile for the best-effort low loss-priority queue:
[edit class-of-service] user@switch# set drop-profiles dp-be-low interpolate fill-level 25 fill-level 50 drop-probability 0 drop-probability 80
Configure the drop profile for the best-effort high loss-priority queue:
[edit class-of-service] user@switch# set drop-profiles dp-be-high interpolate fill-level 10 fill-level 40 drop-probability 0 drop-probability 100
Configure the drop profile for the network-control queue:
[edit class-of-service] user@switch# set drop-profiles dp-nc interpolate fill-level 80 fill-level 100 drop-probability 0 drop-probability 100
Configure the drop profile for the high-performance computing queue:
[edit class-of-service] user@switch# set drop-profiles dp-hpc interpolate fill-level 75 fill-level 90 drop-probability 0 drop-probability 75
Define the minimum guaranteed bandwidth, priority, maximum bandwidth, and drop profiles for the best-effort queue:
[edit class-of-service] user@switch# set schedulers be-sched priority low transmit-rate 3g user@switch# set schedulers be-sched shaping-rate percent 100 user@switch# set schedulers be-sched drop-profile-map loss-priority low protocol any drop-profile dp-be-low user@switch# set schedulers be-sched drop-profile-map loss-priority high protocol any drop-profile dp-be-high
Define the minimum guaranteed bandwidth, priority, and maximum bandwidth for the FCoE queue:
[edit class-of-service] user@switch# set schedulers fcoe-sched priority low transmit-rate 2500m user@switch# set schedulers fcoe-sched shaping-rate percent 100
Define the minimum guaranteed bandwidth, priority, maximum bandwidth, and drop profile for the high-performance computing queue:
[edit class-of-service] user@switch# set schedulers hpc-sched priority low transmit-rate 2g user@switch# set schedulers hpc-sched shaping-rate percent 100 user@switch# set schedulers hpc-sched drop-profile-map loss-priority low protocol any drop-profile dp-hpc
Define the minimum guaranteed bandwidth, priority, maximum bandwidth, and drop profile for the network-control queue:
[edit class-of-service] user@switch# set schedulers nc-sched priority low transmit-rate 500m user@switch# set schedulers nc-sched shaping-rate percent 100 user@switch# set schedulers nc-sched drop-profile-map loss-priority low protocol any drop-profile dp-nc
Define the minimum guaranteed bandwidth, priority, and maximum bandwidth for the no-loss queue:
[edit class-of-service] user@switch# set schedulers nl-sched priority low transmit-rate 2g user@switch# set schedulers nl-sched shaping-rate percent 100
Map the schedulers to the appropriate forwarding classes (queues):
[edit class-of-service] user@switch# set scheduler-maps be-map forwarding-class best-effort scheduler be-sched user@switch# set scheduler-maps be-map forwarding-class be2 scheduler be-sched user@switch# set scheduler-maps be-map forwarding-class network-control scheduler nc-sched user@switch# set scheduler-maps gd-map forwarding-class fcoe scheduler fcoe-sched user@switch# set scheduler-maps gd-map forwarding-class no-loss scheduler nl-sched user@switch# set scheduler-maps hpc-map forwarding-class hpc scheduler hpc-sched
Define the traffic control profile for the best-effort priority group (queue scheduler to mapping, minimum guaranteed bandwidth, and maximum bandwidth):
[edit class-of-service] user@switch# set traffic-control-profiles be-tcp scheduler-map be-map guaranteed-rate 3500m user@switch# set traffic-control-profiles be-tcp shaping-rate percent 100
Define the traffic control profile for the guaranteed delivery priority group (queue to scheduler mapping, minimum guaranteed bandwidth, and maximum bandwidth):
[edit class-of-service] user@switch# set traffic-control-profiles gd-tcp scheduler-map gd-map guaranteed-rate 4500m user@switch# set traffic-control-profiles gd-tcp shaping-rate percent 100
Define the traffic control profile for the high-performance computing priority group (queue to scheduler mapping, minimum guaranteed bandwidth, and maximum bandwidth):
[edit class-of-service] user@switch# set traffic-control-profiles hpc-tcp scheduler-map hpc-map guaranteed-rate 2g user@switch# set traffic-control-profiles hpc-tcp shaping-rate percent 100
Apply the three priority groups (forwarding class sets) and the appropriate traffic control profiles to the egress ports:
[edit class-of-service] user@switch# set interfaces xe-0/0/20 forwarding-class-set best-effort-pg output-traffic-control-profile be-tcp user@switch# set interfaces xe-0/0/20 forwarding-class-set guar-delivery-pg output-traffic-control-profile gd-tcp user@switch# set interfaces xe-0/0/20 forwarding-class-set hpc-pg output-traffic-control-profile hpc-tcp user@switch# set interfaces xe-0/0/21 forwarding-class-set best-effort-pg output-traffic-control-profile be-tcp user@switch# set interfaces xe-0/0/21 forwarding-class-set guar-delivery-pg output-traffic-control-profile gd-tcp user@switch# set interfaces xe-0/0/21 forwarding-class-set hpc-pg output-traffic-control-profile hpc-tcp
Results
Display the results of the configuration (the system shows only the explicitly configured
parameters; it does not show default parameters such as the
fcoe
and no-loss
lossless forwarding
classes).
user@switch> show configuration class-of-service classifiers { ieee-802.1 hsclassifier1 { forwarding-class best-effort { loss-priority low code-points 000; } forwarding-class be2 { loss-priority high code-points 001; } forwarding-class fcoe { loss-priority low code-points 011; } forwarding-class no-loss { loss-priority low code-points 100; } forwarding-class hpc { loss-priority low code-points 101; } forwarding-class network-control { loss-priority low code-points 110; } } drop-profiles { dp-be-low { interpolate { fill-level [ 25 50 ]; drop-probability [ 0 80 ]; } } dp-be-high { interpolate { fill-level [ 10 40 ]; drop-probability [ 0 100 ]; } } dp-hpc { interpolate { fill-level [ 75 90 ]; drop-probability [ 0 75 ]; } } dp-nc { interpolate { fill-level [ 80 100 ]; drop-probability [ 0 100 ]; } } } forwarding-classes { class best-effort queue-num 0; class be2 queue-num 1; class hpc queue-num 5; class network-control queue-num 7; } traffic-control-profiles { be-tcp { scheduler-map be-map; shaping-rate percent 100; guaranteed-rate 3500000000; } gd-tcp { scheduler-map gd-map; shaping-rate percent 100; guaranteed-rate 4500000000; } hpc-tcp { scheduler-map hpc-map; shaping-rate percent 100; guaranteed-rate 2g; } } forwarding-class-sets { guar-delivery-pg { class fcoe; class no-loss; } best-effort-pg { class best-effort; class be2; class network-control; } hpc-pg { class hpc; } } congestion-notification-profile { gd-cnp { input { ieee-802.1 { code-point 011 { pfc; } code-point 100 { pfc; } } } } } interfaces { xe-0/0/20 { forwarding-class-set { best-effort-pg { output-traffic-control-profile be-tcp; } guar-delivery-pg { output-traffic-control-profile gd-tcp; } hpc-pg { output-traffic-control-profile hpc-tcp; } } congestion-notification-profile gd-cnp; unit 0 { classifiers { ieee-802.1 hsclassifier1; } } } xe-0/0/21 { forwarding-class-set { best-effort-pg { output-traffic-control-profile be-tcp; } guar-delivery-pg { output-traffic-control-profile gd-tcp; } hpc-pg { output-traffic-control-profile hpc-tcp; } } congestion-notification-profile gd-cnp; unit 0 { classifiers { ieee-802.1 hsclassifier1; } } } } scheduler-maps { be-map { forwarding-class best-effort scheduler be-sched; forwarding-class network-control scheduler nc-sched; forwarding-class be2 scheduler be-sched; } gd-map { forwarding-class fcoe scheduler fcoe-sched; forwarding-class no-loss scheduler nl-sched; } hpc-map { forwarding-class hpc scheduler hpc-sched; } } schedulers { be-sched { transmit-rate 3g; shaping-rate percent 100; priority low; drop-profile-map loss-priority low protocol any drop-profile dp-be-low; drop-profile-map loss-priority high protocol any drop-profile dp-be-high; } fcoe-sched { transmit-rate 2500000000; shaping-rate percent 100; priority low; } hpc-sched { transmit-rate 2g; shaping-rate percent 100; priority low; drop-profile-map loss-priority low protocol any drop-profile dp-hpc; } nc-sched { transmit-rate 500m; shaping-rate percent 100; priority low; drop-profile-map loss-priority low protocol any drop-profile dp-nc; } nl-sched { transmit-rate 2g; shaping-rate percent 100; priority low; } }
To quickly configure the interfaces, issue the load
merge terminal
command, and then copy the hierarchy and paste
it into the switch terminal window.
Verification
To verify that you created the hierarchical port scheduling components and they are operating properly, perform these tasks:
- Verifying the Forwarding Classes (Priorities)
- Verifying the Forwarding Class Sets (Priority Groups)
- Verifying the Classifier
- Verifying Priority-Based Flow Control
- Verifying the Output Queue Schedulers
- Verifying the Drop Profiles
- Verifying the Priority Group Output Schedulers (Traffic Control Profiles)
- Verifying the Interface Configuration
Verifying the Forwarding Classes (Priorities)
Purpose
Verify that you created the forwarding classes and mapped them to the correct
queues. (The system shows only the explicitly configured forwarding classes.
It does not show default forwarding classes such as fcoe
and no-loss
.)
Action
List the forwarding classes using the operational mode command show
class-of-service forwarding-class
:
user@switch> show class-of-service forwarding-class Forwarding class ID Queue Policing priority No-Loss best-effort 0 0 normal Disabled be2 1 3 normal Disabled hpc 2 4 normal Disabled network-control 3 7 normal Disabled mcast 8 8 normal Disabled
Meaning
The show class-of-service forwarding-class
command lists all
of the configured forwarding classes, the internal identification number of
each forwarding class, the queues that are mapped to the forwarding classes,
the policing priority, and whether the forwarding class is lossless (no-loss
packet drop attribute enabled) or lossy forwarding class (no-loss packet
drop attribute disabled). The command output shows that:
-
Forwarding class
best-effort
maps to queue0
and is lossy -
Forwarding class
be2
maps to queue1
and is lossy -
Forwarding class
hpc
maps to queue5
and is lossy -
Forwarding class
network-control
maps to queue7
and is lossy
In addition, the command lists the default multicast (multidestination) forwarding class and the default queue to which it is mapped.
Verifying the Forwarding Class Sets (Priority Groups)
Purpose
Verify that you created the priority groups and that the correct priorities (forwarding classes) belong to the appropriate priority group.
Action
List the forwarding class sets using the operational mode command
show class-of-service forwarding-class-set
:
user@switch> show class-of-service forwarding-class-set Forwarding class set: best-effort-pg, Type: normal-type, Forwarding class set index: 19907 Forwarding class Index best-effort 0 be2 1 network-control 5 Forwarding class set: guar-delivery-pg, Type: normal-type, Forwarding class set index: 43700 Forwarding class Index fcoe 2 no-loss 3 Forwarding class set: hpc-pg, Type: normal-type, Forwarding class set index: 60758 Forwarding class Index hpc 4
Meaning
The show class-of-service forwarding-class-set
command lists
all of the configured forwarding class sets (priority groups), the
forwarding classes (priorities) that belong to each priority group, and the
internal index number of each priority group. The command output shows
that:
-
The forwarding class set
best-effort-pg
includes the forwarding classesbest-effort
,be2
, andnetwork-control
. -
The forwarding class set
guar-delivery-pg
includes the forwarding classesfcoe
andno-loss
. -
The forwarding class set
hpc-pg
includes the forwarding classhpc
.
Verifying the Classifier
Purpose
Verify that the classifier maps forwarding classes to the correct IEEE 802.1p code points and packet loss priorities.
Action
List the classifier configured for hierarchical port scheduling using the
operational mode command show class-of-service classifier name
hsclassifier1
:
user@switch> show class-of-service classifier name hsclassifier1 Classifier: hsclassifier1, Code point type: ieee-802.1, Index: 43607 Code point Forwarding class Loss priority 000 best-effort low 001 be2 high 011 fcoe low 100 no-loss low 101 hpc low 110 network-control low
Meaning
The show class-of-service classifier name hsclassifier1
command lists all of the IEEE 802.1p code points and the loss priorities
mapped to all of the forwarding classes in the classifier. The command
output shows that the forwarding classes best-effort
,
be2
, no-loss
, fcoe
,
hpc
, and network-control
have been
created and mapped to IEEE 802.1p code points and loss priorities.
Verifying Priority-Based Flow Control
Purpose
Verify that PFC is enabled on the correct priorities for lossless transport.
Action
List the congestion notification profiles using the operational mode command
show class-of-service congestion-notification
:
user@switch> show class-of-service congestion-notification Type: Input, Name: gd-cnp, Index: 51687 Cable Length: 100 m Priority PFC MRU 000 Disabled 001 Disabled 010 Disabled 011 Enabled 2500 100 Enabled 2500 101 Disabled 110 Disabled 111 Disabled Type: Output Priority Flow-Control-Queues 000 0 001 1 010 2 011 3 100 4 101 5 110 6 111 7
Meaning
The show class-of-service congestion-notification
command
lists all of the congestion notification profiles and the IEEE 802.1p code
points with PFC enabled. The command output shows that PFC is enabled for
code points 011
(fcoe
priority and queue)
and 100
(no-loss
priority and queue) for
the gd-cnp
congestion notification profile.
The command also shows the default cable length (100 meters), the default maximum receive unit (2500 bytes), and the default mapping of priorities to output queues because this example does not include configuring these options.
Verifying the Output Queue Schedulers
Purpose
Verify that you created the output queue schedulers with the correct bandwidth parameters and priorities, mapped to the correct queues, and mapped to the correct drop profiles.
Action
List the scheduler maps using the operational mode command show
class-of-service scheduler-map
:
user@switch> show class-of-service scheduler-map Scheduler map: be-map, Index: 64023 Scheduler: be-sched, Forwarding class: best-effort, Index: 13005 Transmit rate: 3000000000 bps, Rate Limit: none, Buffer size: remainder, Buffer Limit: none, Priority: low Excess Priority: unspecified Shaping rate: 100 percent, drop-profile-map-set-type: mark Drop profiles: Loss priority Protocol Index Name Low any 55387 dp-be-low Medium high any 1 <default-drop-profile> High any 4369 dp-be-high Scheduler: be-sched, Forwarding class: be2, Index: 13005 Transmit rate: 3000000000 bps, Rate Limit: none, Buffer size: remainder, Buffer Limit: none, Priority: low Excess Priority: unspecified Shaping rate: 100 percent, drop-profile-map-set-type: mark Drop profiles: Loss priority Protocol Index Name Low any 55387 dp-be-low Medium high any 1 <default-drop-profile> High any 4369 dp-be-high Scheduler: nc-sched, Forwarding class: network-control, Index: 45740 Transmit rate: 500000000 bps, Rate Limit: none, Buffer size: remainder, Buffer Limit: none, Priority: low Excess Priority: unspecified Shaping rate: 100 percent, drop-profile-map-set-type: mark Drop profiles: Loss priority Protocol Index Name Low any 44207 dp-nc Medium high any 1 <default-drop-profile> High any 1 <default-drop-profile> Scheduler map: gd-map, Index: 61447 Scheduler: fcoe-sched, Forwarding class: fcoe, Index: 37289 Transmit rate: 2500000000 bps, Rate Limit: none, Buffer size: remainder, Buffer Limit: none, Priority: low Excess Priority: unspecified Shaping rate: 100 percent, drop-profile-map-set-type: mark Drop profiles: Loss priority Protocol Index Name Low any 44207 <default-drop-profile> Medium high any 1 <default-drop-profile> High any 1 <default-drop-profile> Scheduler: nl-sched, Forwarding class: no-loss, Index: 29359 Transmit rate: 2000000000 bps, Rate Limit: none, Buffer size: remainder, Buffer Limit: none, Priority: low Excess Priority: unspecified Shaping rate: 100 percent, drop-profile-map-set-type: mark Drop profiles: Loss priority Protocol Index Name Low any 44207 <default-drop-profile> Medium high any 1 <default-drop-profile> High any 1 <default-drop-profile> Scheduler map: hpc-map, Index: 56941 Scheduler: hpc-sched, Forwarding class: hpc, Index: 55900 Transmit rate: 2000000000 bps, Rate Limit: none, Buffer size: remainder, Buffer Limit: none, Priority: low Excess Priority: unspecified Shaping rate: 100 percent, drop-profile-map-set-type: mark Drop profiles: Loss priority Protocol Index Name Low any 57716 dp-hpc Medium high any 1 <default-drop-profile> High any 1 <default-drop-profile>
Meaning
The show class-of-service scheduler-map
command lists all of
the configured scheduler maps. For each scheduler map, the command output
includes:
-
The name of the scheduler map (
scheduler-map
field) -
The name of the scheduler (
scheduler
field) -
The forwarding classes mapped to the scheduler (
forwarding-class
field) -
The minimum guaranteed queue bandwidth (
transmit-rate
field) -
The scheduling priority (
priority
field) -
The maximum bandwidth in the priority group the queue can consume (
shaping-rate
field) -
The drop profile loss priority (
loss priority
field) for each drop profile name (name
field)
The command output shows that:
-
The scheduler map
be-map
was created and has these properties:-
There are two schedulers,
be-sched
andnc-sched
. -
The scheduler
be-sched
has two forwarding classes,best-effort
andbe2
. -
Scheduler
be-sched
forwarding classesbest-effort
andbe2
share a minimum guaranteed bandwidth of3,000,000,000 bps
, can consume a maximum of100 percent
of the priority group bandwidth, and use the drop profiledp-be-low
for low loss-priority traffic, the default drop profile for medium-high loss-priority traffic, and the drop profiledp-be-high
for high loss-priority traffic. -
The scheduler
nc-sched
has one forwarding class,network-control
. -
The
network-control
forwarding class has a minimum guaranteed bandwidth of500,000,000 bps
, can consume a maximum of100 percent
of the priority group bandwidth, and uses the drop profiledp-nc
for low loss-priority traffic and the default drop profile for medium-high and high loss priority traffic.
-
-
The scheduler map
gd-map
was created and has these properties:-
There are two schedulers,
fcoe-sched
andnl-sched
. -
The scheduler
fcoe-sched
has one forwarding class,fcoe
. -
The
fcoe
forwarding class has a minimum guaranteed bandwidth of2,500,000,000 bps
, and can consume a maximum of100 percent
of the priority group bandwidth. -
The scheduler
nl-sched
has one forwarding class,no-loss
. -
The
no-loss
forwarding class has a minimum guaranteed bandwidth of2,000,000,000 bps
, and can consume a maximum of100 percent
of the priority group bandwidth.
-
-
The scheduler map
hpc-map
was created and has these properties:-
There is one scheduler,
hpc-sched
. -
The scheduler
hpc-sched
has one forwarding class,hpc
. -
The
hpc
forwarding class has a minimum guaranteed bandwidth of2,000,000,000 bps
, can consume a maximum of100 percent
of the priority group bandwidth, and uses the drop profiledp-hpc
for low loss-priority traffic and the default drop profile for medium-high and high loss-priority traffic.
-
Verifying the Drop Profiles
Purpose
Verify that you created the drop profiles dp-be-high
,
dp-be-low
, dp-hpc
, and
dp-nc
with the correct fill levels and drop
probabilities.
Action
List the drop profiles using the operational mode command show
configuration class-of-service drop-profiles
:
user@switch> show configuration class-of-service drop-profiles dp-be-low { interpolate { fill-level [ 25 50 ]; drop-probability [ 0 80 ]; } } dp-be-high { interpolate { fill-level [ 10 40 ]; drop-probability [ 0 100 ]; } } dp-hpc { interpolate { fill-level [ 75 90 ]; drop-probability [ 0 75 ]; } } dp-nc { interpolate { fill-level [ 80 100 ]; drop-probability [ 0 100 ]; }
Meaning
The show configuration class-of-service drop-profiles
command lists the drop profiles and their properties. The command output
shows that there are four drop profiles configured,
dp-be-high
, dp-be-low
,
dp-hpc
, and dp-nc
. The output also
shows that:
-
For
dp-be-low
, the drop start point (the first fill level) is when the queue is 25 percent filled, the drop end point (the second fill level) occurs when the queue is 50 percent filled, and the drop probability at the drop end point is 80 percent. -
For
dp-be-high
, the drop start point (the first fill level) is when the queue is 10 percent filled, the drop end point (the second fill level) occurs when the queue is 40 percent filled, and the drop probability at the drop end point is 100 percent. -
For
dp-hpc
, the drop start point (the first fill level) is when the queue is 75 percent filled, the drop end point (the second fill level) occurs when the queue is 90 percent filled, and the drop probability at the drop end point is 75 percent. -
For
dp-nc
, the drop start point (the first fill level) is when the queue is 80 percent filled, the drop end point (the second fill level) occurs when the queue is 100 percent filled, and the drop probability at the drop end point is 100 percent.
Verifying the Priority Group Output Schedulers (Traffic Control Profiles)
Purpose
Verify that you created the traffic control profiles be-tcp
,
gd-tcp
, and hpc-tcp
with the correct
bandwidth parameters and scheduler mapping.
Action
List the traffic control profiles using the operational mode command
show class-of-service traffic-control-profile
:
user@switch> show class-of-service traffic-control-profile Traffic control profile: be-tcp, Index: 40535 Shaping rate: 100 percent Scheduler map: be-map Guaranteed rate: 3500000000 Traffic control profile: gd-tcp, Index: 37959 Shaping rate: 100 percent Scheduler map: gd-map Guaranteed rate: 4500000000 Traffic control profile: hpc-tcp, Index: 47661 Shaping rate: 100 percent Scheduler map: hpc-map Guaranteed rate: 2000000000
Meaning
The show class-of-service traffic-control-profile
command
lists all of the configured traffic control profiles. For each traffic
control profile, the command output includes:
-
The name of the traffic control profile (
traffic-control-profile
) -
The maximum port bandwidth the priority group can consume (
shaping-rate
) -
The scheduler map associated with the traffic control profile (
scheduler-map
) -
The minimum guaranteed priority group port bandwidth (
guaranteed-rate
)
The command output shows that:
-
The traffic control profile
be-tcp
can consume a maximum of100 percent
of the port bandwidth, is associated with the scheduler mapbe-map
, and has a minimum guaranteed bandwidth of3,500,000,000 bps
. -
The traffic control profile
gd-tcp
can consume a maximum of100 percent
of the port bandwidth, is associated with the scheduler mapgd-map
, and has a minimum guaranteed bandwidth of4,500,000,000 bps
. -
The traffic control profile
hpc-tcp
can consume a maximum of100 percent
of the port bandwidth, is associated with the scheduler maphpc-map
, and has a minimum guaranteed bandwidth of2,000,000,000 bps
.
Verifying the Interface Configuration
Purpose
Verify that the classifier, the congestion notification profile, and the
forwarding class sets are configured on interfaces
xe-0/0/20
and xe-0/0/21
.
Action
List the interfaces using the operational mode commands show
configuration class-of-service interfaces xe-0/0/20
and
show configuration class-of-service interfaces
xe-0/0/21
:
user@switch> show configuration class-of-service interfaces xe-0/0/20 forwarding-class-set { best-effort-gp { output-traffic-control-profile be-tcp; } guar-delivery-pg { output-traffic-control-profile gd-tcp; } hpc-pg { output-traffic-control-profile hpc-tcp; } } congestion-notification-profile gd_cnp; unit 0 { classifiers { ieee-802.1 hsclassifier1; } }
user@switch> show configuration class-of-service interfaces xe-0/0/21 forwarding-class-set { best-effort-gp { output-traffic-control-profile be-tcp; } guar-delivery-pg { output-traffic-control-profile gd-tcp; } hpc-pg { output-traffic-control-profile hpc-tcp; } } congestion-notification-profile gd_cnp; unit 0 { classifiers { ieee-802.1 hsclassifier1; } }
Meaning
The show configuration class-of-service interfaces
interface-name
command shows that each
interface includes the forwarding class sets
best-effort-pg
, guar-delivery-pg
, and
hpc-pg
, congestion notification profile
gd-cnp
, and the IEEE 802.1p classifier
hsclassifier1
.