OcNOS DC : Layer 2 Guide : Data Center Bridging Configuration : PFC with QOS Configuration
PFC with QOS Configuration
Priority-based Flow Control (PFC) is a way which provides a link-level flow control mechanism that can be controlled independently for each frame priority. The goal of this mechanism is to ensure zero loss (lossless) under congestion in DCB networks.
Quality of Serive (QoS) works by default with lossy behaviour, which is required for proper functioning of minimum bandwidth, shaping and scheduling.
The requirement is to support PFC when QoS is enabled, ability to control lossy/lossless setting of port queues.
Note: The PFC with QoS works only for known unicast traffic.
Note: To manage peer congestion effectively, the shaper rate should only be applied to the egress interface of the peer node. Applying congestion control to all interfaces would inhibit PFC generation in response to peer congestion.
Topology
PFC with QoS
PFC with QoS Configuration
PFC + QoS functionality: On setting lossless on queue, traffic should be not be dropped at egress queue and on setting PFC on ingress, pause frames will be generated in order to reduce excess ingress traffic.
Note: The pause frame queue follows the VLAN priority of the source traffic. If it's necessary to adjust the VLAN priority on the switch, you can use the command set cos to make this change.
Note: When a pause frame is received in Device-1, congestion should be enforced on the egress interface of Device-2.
Configuration on Device-1
 
OcNOS#conf ter
Enter configure mode
OcNOS(config)#hostname Device-1
Configure host name
OcNOS(config)#commit
Commit
Device-1(config)#qos enable
Enable QoS
Device-1(config)#qos statistics
Enable QoS Statistics
Device-1(config)#bridge 1 protocol rstp vlan-bridge
Configure bridge group
Device-1(config)#data-center-bridging enable bridge 1
Enable data-center-bridging
Device-1(config)#priority-flow-control enable bridge 1
Enable priority-flow-control
Device-1(config)#commit
Commit
Device-1(config)#class-map type qos match-all CLASS1
Configure QoS Class-map
Device-1(config-cmap-qos)#match layer4 udp source-port 4791
Define a classification criteria
Device-1(config-cmap-qos)#exit
Exit
Device-1(config)#commit
Commit
Device-1(config)#policy-map type qos POLICY1
Configure QoS Policy-map
Device-1(config-pmap-qos)#class type qos CLASS1
Configure class type and specify the class-map type
Device-1(config-pmap-c-qos)#set queue 4
Setting a new value in the packet
Egress queue for matched traffic
Device-1(config-pmap-c-qos)#exit
Exit
Device-1(config-pmap-qos)#exit
Exit
Device-1(config)#commit
Commit
Device-1(config)#policy-map type queuing default DEFAULTPOLICY
Configure QoS Policy-map
Device-1(config-pmap-que-def)# class type queuing default q0
Configure class type and specify the class-map type
Device-1(config-pmap-c-que-def)# priority
Priority value of class-map attached to this policy-map
Device-1(config-pmap-c-que-def)# exit
Exit
Device-1(config-pmap-que-def)# class type queuing default q4
Configure class type and specify the class-map type
Device-1(config-pmap-c-que-def)# priority
Priority value of class-map attached to this policy-map
Device-1(config-pmap-c-que-def)# lossless
enable lossless settings on egress queue
Device-1(config-pmap-c-que-def)# exit
Exit
Device-1(config-pmap-que-def)#commit
Commit
Device-1(config-pmap-que-def)#exit
Exit
Device-1(config)#interface xe3
Configure Interface
Device-1(config-if)# switchport
Set the switching characteristics of interface
Device-1(config-if)# bridge-group 1
Bridge-group
Device-1(config-if)# switchport mode trunk
Set the mode of L2 interface as trunk
Device-1(config-if)# switchport trunk allowed vlan all
Set the VLAN’s to be allowed
Device-1(config-if)# shape rate 100 mbps burst 1000
Configure QoS egress traffic shape
Device-1(config-if)# service-policy type queuing output DEFAULTPOLICY
Configure a service-policy of type queuing to the egress interface.
Device-1(config-if)#exit
Exit
Device-1(config)#commit
Commit
Device-1(config)#interface xe8
Configure Interface
Device-1(config-if)# switchport
Set the switching characteristics of interface
Device-1(config-if)# bridge-group 1
Bridge-group
Device-1(config-if)# switchport mode trunk
Set the mode of L2 interface as trunk
Device-1(config-if)# switchport trunk allowed vlan all
Set the VLAN’s to be allowed
Device-1(config-if)# priority-flow-control mode on
Set priority-flow-control mode as ON
Device-1(config-if)# priority-flow-control enable priority 0 4
Set priority-flow-control mode’s priority
Device-1(config-if)#service-policy type qos input POLICY1
Configure QoS service policy
Device-1(config-if)#exit
Exit
Device-1(config)bridge 1 address 0000.0000.0101 forward xe3
Configure a static MAC forwarding for the bridge with Client’s destination mac address / Ingress interface MAC of Device-1 to consider the traffic as known Unicast.“
Device-1(config)#commit
Commit
 
Configuration on Device-2
 
OcNOS#conf ter
Enter configure mode
OcNOS(config)#hostname Device-2
Configure host name
OcNOS(config)#commit
Commit
Device-2(config)#qos enable
Enable QOS
Device-2(config)#qos statistics
Enable QOS Statistics
Device-2(config)#bridge 1 protocol rstp vlan-bridge
Configure bridge group
Device-2(config)#data-center-bridging enable bridge 1
Enable data-center-bridging
Device-2(config)#priority-flow-control enable bridge 1
Enable priority-flow-control
Device-2(config)#commit
Commit
Device-2(config)#class-map type qos match-all CLASS1
Configure QOS Class-map
Device-2(config-cmap-qos)#match layer4 udp source-port 4791
Define a classification criteria
Device-2(config-cmap-qos)#exit
Exit
Device-2(config)#commit
Commit
Device-2(config)#policy-map type qos POLICY1
Configure QOS Policy-map
Device-2(config-pmap-qos)#class type qos CLASS1
Configure class type and specify the class-map type
Device-2(config-pmap-c-qos)#set queue 4
Setting a new value in the packet
Egress queue for matched traffic
Device-2(config-pmap-c-qos)#exit
Exit
Device-2(config-pmap-qos)#commit
Commit
Device-2(config-pmap-qos)#policy-map type queuing default DEFAULTPOLICY
Configure QOS Policy-map
Device-2(config-pmap-que-def)# class type queuing default q0
Configure class type and specify the class-map type
Device-2(config-pmap-c-que-def)# priority
Priority value of class-map attached to this policy-map
Device-2(config-pmap-c-que-def)# exit
Exit
Device-2(config-pmap-que-def)# class type queuing default q4
Configure class type and specify the class-map type
Device-2(config-pmap-c-que-def)# priority
Priority value of class-map attached to this policy-map
Device-2(config-pmap-c-que-def)# lossless
enable lossless settings on egress queue
Device-2(config-pmap-c-que-def)# exit
Exit
Device-2(config-pmap-que-def)#commit
Commit
Device-2(config)#interface xe3
Configure Interface
Device-2(config-if)# switchport
Set the switching characteristics of interface
Device-2(config-if)# bridge-group 1
Bridge-group
Device-2(config-if)# switchport mode trunk
Set the mode of L2 interface as trunk
Device-2(config-if)# switchport trunk allowed vlan all
Set the VLAN’s to be allowed
Device-2(config-if)#exit
Exit
Device-2(config)#commit
Commit
Device-2(config)#interface xe7
Configure Interface
Device-2(config-if)# switchport
Set the switching characteristics of interface
Device-2(config-if)# bridge-group 1
Bridge-group
Device-2(config-if)# switchport mode trunk
Set the mode of L2 interface as trunk
Device-2(config-if)# switchport trunk allowed vlan all
Set the VLAN’s to be allowed
Device-2(config-if)# priority-flow-control mode on
Set priority-flow-control mode as ON
Device-2(config-if)# priority-flow-control enable priority 0 4
Set priority-flow-control mode’s priority
Device-2(config-if)#service-policy type qos input POLICY1
Configure QoS service policy
Device-2(config-if)# shape rate 100 mbps burst 1000
Configure QoS egress traffic shape
Device-2(config-if)#exit
Exit
Device-2(config)#commit
Commit
Validation
Verify Pause frames Sent from Device-1
 
Device-1#show priority-flow-control statistics bridge 1
bridge : 1
interface pri pause sent pause received
===========================================
xe7 0 0 0
xe7 1 0 0
xe7 2 0 0
xe7 3 0 0
xe7 4 100265 0
xe7 5 0 0
xe7 6 0 0
xe7 7 0 0
 
Verify Pause frames Sent from peer node (Device-2)
 
Device-1#show priority-flow-control statistics bridge 1
bridge : 1
interface pri pause sent pause received
===========================================
xe3 0 0 94731
xe3 1 0 0
xe3 2 0 0
xe3 3 0 0
xe3 4 0 0
xe3 5 0 0
xe3 6 0 0
xe3 7 0 0
xe8 0 181682 0
xe8 1 0 0
xe8 2 0 0
xe8 3 0 0
xe8 4 0 0
xe8 5 0 0
xe8 6 0 0
xe8 7 0 0