Configuring iSCSI TLV

This chapter contains the following sections:

Information about iSCSI TLV

NICs and converged network adapters connected to a Cisco Nexus 5000 or a Cisco Nexus 6000 Series switch by utilizing iSCSI as a storage protocol can be programmed to accept the configuration values sent by the switch leveraging DCBX or data center bridging exchange protocol. DCBX negtioates configuration and settings between the switch and the adapter through a variety of type-length-value (TLV) and sub-TLVs. This allows the switch to distribute configuration values to all attached adapters from a centralized location instead of having to manually program CoS markings on each individual server and adapter. For flexibility, Enhanced Transmission Selection (ETS) and Priority Flow Control (PFC) parameters are coded in TLV format. However, the use of PFC or ETS for lossy and lossless protocol behavior is not a requirement for iSCSI TLV operations - the TLV can be leveraged for both traditional TCP or drop behavior iSCSI networks as well as for a complete end-to-end lossless iSCSI fabric. Enabling ETS and PFC will separate storage traffic from other IP traffic and allow for accurate and error-free configuration information to be transmitted from the switch to the adapter.

Note

The adapter management application must ensure that the Willing mode is set to enable to accept the CoS values from the switch.


iSCSI TLV Configuration

Identifying iSCSI Traffic

You can define a class map for each class of traffic to be used in QoS policies.

If the packet matches any of the criteria configured for this class map with the match command, then this class map is applied to the packet. If no execution strategy is specified (match-any or match-all), then the default value of match-any is applied to the traffic class.

Procedure

  Command or Action Purpose
Step 1

switch# configure terminal

Enters global configuration mode.

Step 2

switch(config)# class-map [type qos] [match-all | match-any] class-map-name

Creates a named object that represents a class of traffic, and enters class-map mode. Class-map names can contain alphabetic, hyphen, or underscore characters, are case sensitive, and can be up to 40 characters.

Step 3

switch(config-cmap-qos)# match protocol [fcoe | iscsi | tcp]

Specifies the CoS value to match and specifies which protocol has to be mapped to a given CoS value.
Important 

You are enabling the TLV by typing match protocol iscsi.

Step 4

switch(config-cmap-qos)# match cos cos value

Specifies the CoS value to match. The range is from 0 to 7.

Example

This example shows how to identify iSCSI traffic.

switch# configure terminal
switch(config)# class-map type qos match-all c1
switch(config-cmap-qos)# match protocol iscsi
switch(config-cmap-qos)# match cos 5

Configuring Type QoS Policies

Type qos policies are used for classifying the traffic of a specific system class identified by a unique qos-group value. A type qos policy can be attached to the system or to individual interfaces (including Fabric Extender host interfaces) for input traffic only.

Procedure

  Command or Action Purpose
Step 1

switch# configure terminal

Enters global configuration mode.

Step 2

switch(config)# policy-map [type qos] policy-name

Creates a named object that represents a set of policies that are to be applied to a set of traffic classes. Policy-map names can contain alphabetic, hyphen, or underscore characters, are case sensitive, and can be up to 40 characters.

Step 3

switch(config-pmap-qos)# class class-name

To add a reference to the system class that matches a traffic class, use this command.

Step 4

switch(config-pmap-c-qos)# set qos-group qos-group-value

Configures one or more qos-group values to match for classification of traffic into this class map. The range of qos-group-values is from 2 to 5. There is no default value.
Note 

The Cisco Nexus 5000 Series switch can only support a maximum of five qos-groups within this range.

Step 5

switch(config-pmap-c-qos)# exit

Exits qos configuration mode and enters policy-map mode.

Step 6

switch(config-pmap-qos)# class class-default

To add a reference to the system default class that does not match any traffic class, use the class class-default command.

Example

This example shows how to define a QOS policy map.

switch# configure terminal
switch(config)# policy-map type qos c1
switch(config-pmap-qos)# class c1
switch(config-pmap-c-qos)# set qos-group 2
switch(config-pmap-c-qos)# exit
switch(config-pmap-qos)# class class-default

Configuring No-Drop Policy Maps

Procedure

  Command or Action Purpose
Step 1

switch# configure terminal

Enters global configuration mode.

Step 2

switch(config)# class-map type {network-qos | queuing} class-name

Creates a named object that represents a class of traffic. Class-map names can contain alphabetic, hyphen, or underscore characters, are case sensitive, and can be up to 40 characters.

Step 3

switch(config-cmap-nq)# match qos-group qos-group-value

Configures the traffic class by matching packets based on a list of QoS group values. Values can range from 0 to 5. QoS group 0 is equivalent to class-default and QoS group 1 is equivalent to class-fcoe.
Note 

qos-groups 0 and 1 are reserved for default classes and cannot be configured.

Step 4

switch(config-cmap-nq)# exit

Exits class-map mode and enters global configuration mode.

Step 5

switch(config)# policy-map type network-qos policy-name

Creates a named object that represents a set of policies that are to be applied to a set of traffic classes. Policy-map names can contain alphabetic, hyphen, or underscore characters, are case sensitive, and can be up to 40 characters.

Step 6

switch(config-pmap-nq)# class type network-qos class-name

Associates a class map with the policy map, and enters configuration mode for the specified system class.
Note 

The associated class map must be the same type as the policy map type.

Step 7

switch(config-pmap-c-nq)# pause no-drop [pfc-cos pfc-cos-value]

Configures a no-drop class. If you do not specify this command, the default policy is drop.
Note 

The operation for the drop policy is a simple tail drop, where arriving packets will be dropped if the queue increases to its allocated size.

The pfc-cos-value range is from 0 to 7. This option is supported only for a ACL-based system class (which filters traffic using criteria other than cos-based matches).
Caution 

The list of CoS values can potentially include the CoS value that is used for FCoE traffic in class-fcoe. You must determine if this is desired behavior for your topology.

Step 8

switch(config-pmap-nq)# class type network-qos class-name

Associates a class map with the policy map, and enters configuration mode for the specified system class.
Note 

The associated class map must be the same type as the policy map type.

Step 9

switch(config-pmap-c-nq)# mtu 9216

Enables the jumbo MTU for the whole switch by setting the MTU to its maximum size (9216 bytes) in the policy map for the default system class (class-default).

Example

This example shows how to configure a no-drop policy map.

switch# configure terminal
switch(config)# class-map type network-qos c1
switch(config-cmap-nq)# match qos-group 2
switch(config-cmap-nq)# exit
switch(config)# policy-map type network-qos p1
switch(config-pmap-nq)# class type network-qos c1
switch(config-pmap-c-nq)# pause no-drop
switch(config-pmap-nq)# class type network-qos class-default
switch(config-pmap-c-nq)# mtu 9216

Applying System Service Policies

Procedure

  Command or Action Purpose
Step 1

switch# configure terminal

Enters global configuration mode.

Step 2

switch(config)# system qos

Enters system class configuration mode.

Step 3

switch(config-sys-qos)# service-policy {type {qos input}} policy-map-name

Attaches a policy map of type qos to an interface.

Step 4

switch(config-sys-qos)# service-policy {type {network-qos}} policy-map-name

Attaches a policy map of type network-qos to an interface.

Example

This example shows how to apply system service policies.

switch# configure terminal
switch(config)# system qos
switch(config-sys-qos)# service-policy type qos input c1
switch(config-sys-qos)# service-policy type network-qos p1

iSCSI TLV and FCoE Configuration

Identifying iSCSI and FCoE Traffic

You can define a class map for each class of traffic to be used in QoS policies.

If the packet matches any of the criteria configured for this class map with the match command, then this class map is applied to the packet. If no execution strategy is specified (match-any or match-all), then the default value of match-any is applied to the traffic class.

Procedure

  Command or Action Purpose
Step 1

switch# configure terminal

Enters global configuration mode.

Step 2

switch(config)# class-map type qos class-map-name

Creates a named object that represents a class of traffic, and enters class-map mode. Class-map names can contain alphabetic, hyphen, or underscore characters, are case sensitive, and can be up to 40 characters.

Step 3

switch(config-cmap-qos)# exit

Exits class-map configuration mode and enters global configuration mode.

Step 4

switch(config)# class-map type qos [match-all | match-any] class-map-name

Creates a class map, provides conditions for applying this class map to a packet, and enters the class-map configuration mode.

Step 5

switch(config-cmap-qos)# match protocol [fcoe | iscsi | tcp]

Specifies the CoS value to match and specifies which protocol has to be mapped to a given CoS value.
Important 

You are enabling the TLV by typing match protocol iscsi.

Step 6

switch(config-cmap-qos)# match cos cos value

Specifies the CoS value to match. The range is from 0 to 7.

Step 7

switch(config-cmap-qos)# exit

Exits class-map configuration mode and enters global configuration mode.

Step 8

switch(config)# class-map type queuing class-map-name

Creates a class map that defines a queuing class of traffic and enters the class-map configuration mode.

Step 9

switch(config-cmap-que)# match qos-group qos-group-list

Configures a traffic class that matches the QoS group values.

Example

This example shows how to identify iSCSI and FCoE traffic.

switch# configure terminal
switch(config)# class-map type qos class-fcoe
switch(config-cmap-qos)# exit
switch(config)# class-map type qos match-all c1
switch(config-cmap-qos)# match protocol iscsi
switch(config-cmap-qos)# match cos 6
switch(config-cmap-qos)# exit  
switch(config)# class-map type queuing class-fcoe
switch(config-cmap-que)# match qos-group 1

Configuring Type QoS Policies

Type qos policies are used for classifying the traffic of a specific system class identified by a unique qos-group value. A type qos policy can be attached to the system or to individual interfaces (including Fabric Extender host interfaces) for input traffic only.

Procedure

  Command or Action Purpose
Step 1

switch# configure terminal

Enters global configuration mode.

Step 2

switch(config)# policy-map [type qos] policy-name

Creates a named object that represents a set of policies that are to be applied to a set of traffic classes. Policy-map names can contain alphabetic, hyphen, or underscore characters, are case sensitive, and can be up to 40 characters.

Step 3

switch(config-pmap-qos)# class class-name

Specifies a class map for a policy map.

Step 4

switch(config-pmap-c-qos)# set qos-group qos-group-value

Configures one or more qos-group values to match for classification of traffic into this class map. The range of qos-group-values is from 2 to 5. There is no default value.
Note 

The Cisco Nexus 5000 Series switch can only support a maximum of five qos-groups within this range.

Step 5

switch(config-pmap-c-qos)# exit

Exits qos configuration mode and enters policy-map mode.

Step 6

switch(config-pmap-qos)# class class-name

Specifies a class map for a policy map.

Step 7

switch(config-pmap-c-qos)# set qos-group qos-group-value

Configures one or more qos-group values to match for classification of traffic into this class map. The range of qos-group-values is from 2 to 5. There is no default value.
Note 

The Cisco Nexus 5000 Series switch can only support a maximum of five qos-groups within this range.

Step 8

switch(config-pmap-c-qos)# exit

Exits qos configuration mode and enters policy-map mode.

Step 9

switch(config-pmap-qos)# class class-default

Adds a reference to the system default class that does not match any traffic class.

Example

This example shows how to define a QOS policy map.

switch# configure terminal
switch(config)# policy-map type qos c1
switch(config-pmap-qos)# class c1
switch(config-pmap-c-qos)# set qos-group 2
switch(config-pmap-c-qos)# exit
switch(config-pmap-qos)# class class-fcoe
switch(config-pmap-c-qos)# set qos-group 1
switch(config-pmap-c-qos)# exit
switch(config-pmap-qos)# class class-default

Configuring No-Drop Policy Maps

Procedure

  Command or Action Purpose
Step 1

switch# configure terminal

Enters global configuration mode.

Step 2

switch(config)# class-map type {network-qos} class-name

Creates a named object that represents a class of traffic. Class-map names can contain alphabetic, hyphen, or underscore characters, are case sensitive, and can be up to 40 characters.

Step 3

switch(config-cmap-nq)# match qos-group qos-group-value

Configures the traffic class by matching packets based on a list of QoS group values. Values can range from 0 to 5. QoS group 0 is equivalent to class-default and QoS group 1 is equivalent to class-fcoe.
Note 

qos-groups 0 and 1 are reserved for default classes and cannot be configured.

Step 4

switch(config-cmap-nq)# exit

Exits class-map mode and enters global configuration mode.

Step 5

switch(config)# class-map type {network-qos} class-name

Creates a named object that represents a class of traffic. Class-map names can contain alphabetic, hyphen, or underscore characters, are case sensitive, and can be up to 40 characters.

Step 6

switch(config-cmap-nq)# match qos-group qos-group-value

Configures the traffic class by matching packets based on a list of QoS group values. Values can range from 0 to 5. QoS group 0 is equivalent to class-default and QoS group 1 is equivalent to class-fcoe.
Note 

qos-groups 0 and 1 are reserved for default classes and cannot be configured.

Step 7

switch(config-cmap-nq)# exit

Exits class-map mode and enters global configuration mode.

Step 8

switch(config)# policy-map type network-qos policy-name

Creates a named object that represents a set of policies that are to be applied to a set of traffic classes. Policy-map names can contain alphabetic, hyphen, or underscore characters, are case sensitive, and can be up to 40 characters.

Step 9

switch(config-pmap-nq)# class type network-qos class-name

Associates a class map with the policy map, and enters configuration mode for the specified system class.
Note 

The associated class map must be the same type as the policy map type.

Step 10

switch(config-pmap-c-nq)# pause no-drop [pfc-cos pfc-cos-value]

Configures a no-drop class. If you do not specify this command, the default policy is drop.
Note 

The operation for the drop policy is a simple tail drop, where arriving packets will be dropped if the queue increases to its allocated size.

The pfc-cos-value range is from 0 to 7. This option is supported only for a ACL-based system class (which filters traffic using criteria other than cos-based matches).
Caution 

The list of CoS values can potentially include the CoS value that is used for FCoE traffic in class-fcoe. You must determine if this is desired behavior for your topology.

Step 11

switch(config-pmap-nq)# class type network-qos class-name

Associates a class map with the policy map, and enters configuration mode for the specified system class.
Note 

The associated class map must be the same type as the policy map type.

Step 12

switch(config-pmap-c-nq)# mtu 2158

Sets the MTU to 2158 bytes in the policy map for class-fcoe.

Step 13

switch(config-pmap-c-nq)# pause no-drop [pfc-cos pfc-cos-value]

Configures a no-drop class. If you do not specify this command, the default policy is drop.
Note 

The operation for the drop policy is a simple tail drop, where arriving packets will be dropped if the queue increases to its allocated size.

The pfc-cos-value range is from 0 to 7. This option is supported only for a ACL-based system class (which filters traffic using criteria other than cos-based matches).
Caution 

The list of CoS values can potentially include the CoS value that is used for FCoE traffic in class-fcoe. You must determine if this is desired behavior for your topology.

Step 14

switch(config-pmap-nq)# class type network-qos class-name

Associates the default system class (class-default) with the policy map, and enters configuration mode for the specified system class.
Note 

The associated class map must be the same type as the policy map type.

Step 15

switch(config-pmap-c-nq)# mtu 9216

Enables the jumbo MTU for the whole switch by setting the MTU to its maximum size (9216 bytes) in the policy map for the default system class (class-default).

Example

This example shows how to configure a no-drop policy map.

switch# configure terminal
switch(config)# class-map type network-qos c1
switch(config-cmap-nq)# match qos-group 2
switch(config-cmap-nq)# exit
switch(config)# class-map type network-qos class-fcoe
switch(config-cmap-nq)# match qos-group 1
switch(config-cmap-nq)# exit
switch(config)# policy-map type network-qos p1
switch(config-pmap-nq)# class type network-qos c1
switch(config-pmap-c-nq)# pause no-drop
switch(config-pmap-nq)# class type network-qos class-fcoe
switch(config-pmap-c-nq)# mtu 2158
switch(config-pmap-c-nq)# pause no-drop
switch(config-pmap-nq)# class type network-qos class-default
switch(config-pmap-c-nq)# mtu 9216

Applying System Service Policies

Procedure

  Command or Action Purpose
Step 1

switch# configure terminal

Enters global configuration mode.

Step 2

switch(config)# system qos

Enters system class configuration mode.

Step 3

switch(config-sys-qos)# service-policy type queuing input fcoe-default-in-policy

Applies the input queuing FCoE policy map to an interface.

Step 4

switch(config-sys-qos)# service-policy type queuing output fcoe-default-out-policy

Applies the output queuing FCoE policy map to an interface.

Step 5

switch(config-sys-qos)# service-policy {type {qos input}} policy-map-name

Attaches a policy map of type qos to an interface.

Step 6

switch(config-sys-qos)# service-policy {type {network-qos}} policy-map-name

Attaches a policy map of type network-qos to an interface.

Example

This example shows how to apply system service policies.

switch# configure terminal
switch(config)# system qos
switch(config-sys-qos)# service-policy type queuing input fcoe-default-in-policy
switch(config-sys-qos)# service-policy type queuing output fcoe-default-out-policy
switch(config-sys-qos)# service-policy type qos input c1
switch(config-sys-qos)# service-policy type network-qos p1