Configuring Class Based Weighted Fair Queueing

This chapter describes how to configure Class Based Weighted Fair Queueing policies on the Cisco Nexus 1000V to prioritize network traffic.

Information About Class Based Weighted Fair Queueing

With this feature the following goals have been addressed:

Queueing can ensure that any traffic class does not starve other traffic types.

Respect the bandwidth guarantees for each traffic class.

Optimize the utilization of the uplink bandwidth.

Class-based weighted fair queueing (CBWFQ) extends the standard weighted fair queueing (WFQ) functionality to provide support for user-defined traffic classes. For CBWFQ, you define traffic classes based on match criteria including protocols, and cos values. Packets satisfying the match criteria for a class constitute the traffic for that class. A queue is reserved for each class, and traffic belonging to a class is directed to the queue for that class.

Once a class has been defined according to its match criteria, you can assign its characteristics. To characterize a class, you assign it bandwidth, and maximum queue limit. The bandwidth assigned to a class is the guaranteed bandwidth delivered to the class during congestion.

To characterize a class, you also specify the queue limit for that class, which is the maximum number of packets allowed to accumulate in the queue for the class. Packets belonging to a class are subject to the bandwidth and queue limits that characterize the class.

After a queue has reached its configured queue limit, enqueueing of additional packets to the class causes tail drop.

The traffic that does not match any of the configured classes is given best-effort treatment. Once a packet is classified, all of the standard mechanisms that can also be used to differentiate service among the classes apply.

For CBWFQ, the weight specified for the class becomes the weight of each packet that meets the match criteria of the class. Packets that arrive at the egress interface are classified according to the match criteria filters you define, then each one is assigned the appropriate weight. The weight for a packet belonging to a specific class is derived from the bandwidth you assigned to the class when you configured it; in this sense the weight for a class is user-configurable.

After the weight for a packet is assigned, the packet is enqueued in the appropriate class queue. CBWFQ uses the weights assigned to the queued packets to ensure that the class queue is serviced fairly.

Configuring a class policy—thus, configuring CBWFQ—entails these three processes:

This process entails configuration of policies to be applied to packets belonging to one of the classes previously defined through a class map. For this process, you configure a policy map that specifies the policy for each traffic class.

Attaching policies to interfaces (service policies).

Note A queueing policy map can only be applied on an uplink in the egress (outbound) direction.

This process requires that you associate an existing policy map, or service policy, with an interface to apply the particular set of policies for the map to that interface.

Policy maps prioritize network traffic by class. You create policy maps to define how to treat each class of traffic so that it is prioritized for the best quality of service.

Information About Class Maps for Queuing

This matches traffic based on the class of service (CoS) in the IEEE 802.1Q header, defined in IEEE 802.1p. CoS is encoded in the high order 3 bits of the VLAN ID Tag field and is referred to as user_priority.

The following are pre-defined protocol matches:

– n1k_control

– n1k_mgmt

– n1k_packet

– vmw_ft

– vmw_iscsi

– vmw_mgmt

– vmw_nfs

– vmw_vmotion

The following are the default COS values associated with the protocols:

– n1k_control: 6

– n1k_mgmt: No default value

– n1k_packet: 6

For VMware protocols such as vmw_ft, vmw_iscsi, vmw_mgmt, vmw_nfs, and vmw_vmotion, Cisco Nexus 1000V does not set any default COS value. See the VMware documentation for more information.

Licensing Requirements for Class Based Weighted Fair Queueing

There are no licensing requirements for this feature.

Prerequisites for Class Based Weighted Fair Queueing

Class Based Weighted Fair Queueing has the following prerequisites:

You are already logged in to the CLI in EXEC mode.

Guidelines and Limitations

Use the following guidelines and limitations when configuring Class Based Weighted Fair Queueing (CBWFQ).

A queueing policy can only be applied on an uplink interface in the egress (outbound) direction.

Queueing is supported on ESX/ESXi 4.1.0 and later hosts.

For port-channel interfaces, queueing bandwidth applies on the member ports. The overall performance will depend on how the vethernets are pinned to member ports and the traffic pattern on the individual ports.

We recommend that you reserve 10% bandwidth of the uplink for the control traffic.

Default Settings

Class Based Weighted Fair Queueing is disabled by default.

Configuring Class Based Weighted Fair Queueing Policies

This section describes how to create QoS queueing class policies for the Cisco Nexus 1000V:

match-any: Use this option to apply this class map to a packet if it matches any of the matching criteria.

match-all: Use this option to apply this class map to a packet if it matches all of the matching criteria.

map-name: up to 40 alphanumeric characters in length and can include the hyphen and underscore characters.

Step 3

match {cos id} | {protocol name}

Example:

n1000v(config-cmap-que)# match protocol vmw_vmotion

n1000v(config-cmap-que)#

Defines whether you want packets for this class map to match protocol, class of service, or both.

CoS is specified as a number from 0 to 7.

This matches traffic based on the class of service (CoS) in the IEEE 802.1Q header, defined in IEEE 802.1p. CoS is encoded in the high order 3 bits of the VLAN ID Tag field and is referred to as user_priority.

The following are pre-defined protocol matches:

– n1k_control

– n1k_mgmt

– n1k_packet

– vmw_ft

– vmw_iscsi

– vmw_mgmt

– vmw_nfs

– vmw_vmotion

The following are the default COS values associated with the protocols:

– n1k_control: 6

– n1k_mgmt: No default value

– n1k_packet: 6

– For VMware protocols such as vmw_ft, vmw_iscsi, vmw_mgmt, vmw_nfs, and vmw_vmotion, Cisco Nexus 1000V does not set any default COS value. See the VMware documentation for more information.