Cisco Nexus 5500 Series NX-OS SAN Switching Configuration Guide, Release 7.x
Configuring iSCSI TLV

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 ActionPurpose
    Step 1switch# 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 3switch(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 4switch(config-cmap-qos)# match cos cos value 

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

     

    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 ActionPurpose
      Step 1switch# configure terminal 

      Enters global configuration mode.

       
      Step 2switch(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 3switch(config-pmap-qos)# class class-name 

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

       
      Step 4switch(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 5switch(config-pmap-c-qos)# exit 

      Exits qos configuration mode and enters policy-map mode.

       
      Step 6switch(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.

       

      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 ActionPurpose
        Step 1switch# configure terminal 

        Enters global configuration mode.

         
        Step 2switch(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 3switch(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 4switch(config-cmap-nq)# exit 

        Exits class-map mode and enters global configuration mode.

         
        Step 5switch(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 6switch(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 7switch(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 8switch(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 9switch(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).

         

        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 ActionPurpose
          Step 1switch# configure terminal 

          Enters global configuration mode.

           
          Step 2switch(config)# system qos 

          Enters system class configuration mode.

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

          Attaches a policy map of type qos to an interface.

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

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

           

          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 ActionPurpose
            Step 1switch# 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 3switch(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 5switch(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 6switch(config-cmap-qos)# match cos cos value 

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

             
            Step 7switch(config-cmap-qos)# exit 

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

             
            Step 8switch(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 9switch(config-cmap-que)# match qos-group qos-group-list 

            Configures a traffic class that matches the QoS group values.

             

            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 ActionPurpose
              Step 1switch# configure terminal 

              Enters global configuration mode.

               
              Step 2switch(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 3switch(config-pmap-qos)# class class-name 

              Specifies a class map for a policy map.

               
              Step 4switch(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 5switch(config-pmap-c-qos)# exit 

              Exits qos configuration mode and enters policy-map mode.

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

              Specifies a class map for a policy map.

               
              Step 7switch(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 8switch(config-pmap-c-qos)# exit 

              Exits qos configuration mode and enters policy-map mode.

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

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

               

              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 ActionPurpose
                Step 1switch# configure terminal 

                Enters global configuration mode.

                 
                Step 2switch(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 3switch(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 4switch(config-cmap-nq)# exit 

                Exits class-map mode and enters global configuration mode.

                 
                Step 5switch(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 6switch(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 7switch(config-cmap-nq)# exit 

                Exits class-map mode and enters global configuration mode.

                 
                Step 8switch(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 9switch(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 10switch(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 11switch(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 12switch(config-pmap-c-nq)# mtu 2158 

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

                 
                Step 13switch(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 14switch(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 15switch(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).

                 

                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 ActionPurpose
                  Step 1switch# configure terminal 

                  Enters global configuration mode.

                   
                  Step 2switch(config)# system qos 

                  Enters system class configuration mode.

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

                  Applies the input queuing FCoE policy map to an interface.

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

                  Applies the output queuing FCoE policy map to an interface.

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

                  Attaches a policy map of type qos to an interface.

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

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

                   

                  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