cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
4758
Views
0
Helpful
11
Replies

How to configure QoS Traffic Shaping on Nexus9000?

mhiyoshi
Level 3
Level 3

Dear all,

 

I would just like to configure 1Gbps Output Shaping on Neuxs93180-YC-FX.

 

Before I have confirmed the QoS Traffic Shaping on Neuxs9372TX-E like the following configuration however

if I configures on Nexus93180YC-FX it shows the following output. I would like to find out any reason not to configure it.

 

NXOS: version 9.3(1)

 

 

Nexus93180YC-FX(config)# policy-map type queuing SHAPE
Nexus93180YC-FX(config-pmap-que)#   class type queuing c-out-q1
Nexus93180YC-FX(config-pmap-c-que)#     bandwidth remaining percent 0
Nexus93180YC-FX(config-pmap-c-que)#   class type queuing c-out-q2
Nexus93180YC-FX(config-pmap-c-que)#     bandwidth remaining percent 0
Nexus93180YC-FX(config-pmap-c-que)#   class type queuing c-out-q3
Nexus93180YC-FX(config-pmap-c-que)#     bandwidth remaining percent 0
Nexus93180YC-FX(config-pmap-c-que)#   class type queuing c-out-q-default
Nexus93180YC-FX(config-pmap-c-que)#     bandwidth remaining percent 100
Nexus93180YC-FX(config-pmap-c-que)#     shape min 0 gbps max 1 gbps
Nexus93180YC-FX(config-pmap-c-que)#

Nexus93180YC-FX(config-pmap-c-que)# interface Ethernet1/50
-policy type queuing output SHAPE
Nexus93180YC-FX(config-if)#   service-policy type queuing output SHAPE
Unable to perform the action due to incompatibility:  Module 1 returned status "The template types for system and interface level policies do not match. Please reconfigure"

The following is CCO manual however I can not find this out.

 

 

[Cisco Nexus 9000 Series NX-OS Quality of Service Configuration Guide, Release 9.3(x)]
https://www.cisco.com/c/en/us/td/docs/switches/datacenter/nexus9000/sw/93x/qos/configuration/guide/b-cisco-nexus-9000-nx-os-quality-of-service-configuration-guide-93x/b-cisco-nexus-9000-nx-os-quality-of-service-configuration-guide-93x_chapter_01000.h...

 

Best Regards,

 

Masanobu Hiyoshi

 

11 Replies 11

Sergiu.Daniluk
VIP Alumni
VIP Alumni

Hi @mhiyoshi 

You should verify what network-qos is configured on your system:

N9K# show policy-map system type network-qos 

  Type network-qos policy-maps
  ============================
  policy-map type network-qos default-8q-nq-policy
(....)

if is the "default-8q-nq-policy" template, then you might want to change it to "default-nq-policy"

Command to verify available default network-qos policy maps:

N9K# show policy-map type network-qos

To change the systm network-qos template:

N9K(config)# system qos 
N9K(config-sys-qos)# service-policy type network-qos default-nq-policy 
N9K(config-sys-qos)# show policy-map system type network-qos 

  Type network-qos policy-maps
  ============================
  policy-map type network-qos default-nq-policy
    class type network-qos c-nq3
      match qos-group 3
      mtu 1500
    class type network-qos c-nq2
      match qos-group 2
      mtu 1500
    class type network-qos c-nq1
      match qos-group 1
      mtu 1500
    class type network-qos c-nq-default
      match qos-group 0
      mtu 1500

Let us know what is the result.

 

Stay safe,

Sergiu

Hi msdaniluk,

 

Thank you for your reply! Based on your sample configuration, I have verified with the following, is it possible to configure on interface level output Shaping?

 

Nexus93180YC-FX(config)# system qos
Nexus93180YC-FX(config-sys-qos)# service-policy type network-qos de
default-8q-nq-policy   default-nq-policy
Nexus93180YC-FX(config-sys-qos)# service-policy type network-qos default-nq-policy
Nexus93180YC-FX(config-sys-qos)# exit
Nexus93180YC-FX(config)#
Nexus93180YC-FX(config)# policy-map type network-qos SHAPE
Nexus93180YC-FX(config-pmap-nqos)# class type network-qos ?
  c-8q-nq-default            Default class on qos-group 0
  c-8q-nq1                   Default class on qos-group 1
  c-8q-nq2                   Default class on qos-group 2
  c-8q-nq3                   Default class on qos-group 3
  c-8q-nq4                   Default class on qos-group 4
  c-8q-nq5                   Default class on qos-group 5
  c-8q-nq6                   Default class on qos-group 6
  c-8q-nq7                   Default class on qos-group 7
  c-nq-default               Default class on qos-group 0
  c-nq1                      Default class on qos-group 1
  c-nq2                      Default class on qos-group 2
  c-nq3                      Default class on qos-group 3
  class-default (no abbrev)  System default class matching otherwise not
                             classified cos values

Nexus93180YC-FX(config-pmap-nqos)# class type network-qos c-nq-default
Nexus93180YC-FX(config-pmap-nqos-c)# ?
  congestion-control  Congestion Control Protocol
  dpp                 Dynamic Packet Prioritization
  mtu                 MTU for the CoS
  no                  Negate a command or set its defaults
  pause               PAUSE charecteristics (CBFC)
  show                Show running system information
  end                 Go to exec mode
  exit                Exit from command interpreter
  pop                 Pop mode from stack or restore from name
  push                Push current mode to stack or save it under name
  where               Shows the cli context you are in

Best Regards,

 

Masanobu Hiyoshi

 

Hello!

The default system-wide queueing policy on the Nexus 93180YC-FX is an eight-queue policy. The queuing policy you are attempting to apply to interfaces only has four queues configured. As a result, the device throws an error message, because theoretically, you could classify traffic into a queue that is not configured for any QoS actions (shaping, policing, marking, etc.) on the interface where your policy is applied.

To fix this, we have one of two options:

  1. Modify the existing queueing policy to include QoS actions (shaping, policing, marking, etc.) for the remaining four queues
  2. Modify the system-wide queuing policy to the default four-queue policy instead of the default eight-queue policy.

If you only need four queues, the simplest solution is the second one, which involves applying the following configuration:

N9K# configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
N9K(config)# system qos
N9K(config-sys-qos)# service-policy type queuing output default-out-policy
N9K(config-sys-qos)# end
N9K#

To be clear, the default-out-policy should already exist on the device. There is no need to create this policy-map on the device.

After this configuration is applied, you should be able to apply your queuing policy-map to the interface successfully.

I hope this helps!

-Christopher

 

Ok, so I see you've changed the network-qos policy (great explanation covered by @Christopher Hart why you need to do that).

Now all it's left to do is retry the interface service-policy configuration.

 

Stay safe,

Sergiu

Hi Christopher, msdaniluk,

 

Thank you for your advice, it was too much HTH!! (Hope This Helps)

So promptly I have configured the following but it seems not to be configurable under the default-out-policy...

(is that right? if there is other option I appreciate..) 

 

Nexus93180YC-FX(config)# system qos
Nexus93180YC-FX(config-sys-qos)#   service-policy type queuing output default-out-policy

Nexus93180YC-FX(config-sys-qos)# policy-map type queuing default-out-policy
Cannot modify system defined queuing policy-maps

Finally I have configured the following it seems configurable for 1Gbps Traffic Shaping output direction on interface level.

 

Nexus93180YC-FX(config)# policy-map type queuing SHAPE
Nexus93180YC-FX(config-pmap-que)#   class type queuing c-out-q1
Nexus93180YC-FX(config-pmap-c-que)#     bandwidth remaining percent 0
Nexus93180YC-FX(config-pmap-c-que)#   class type queuing c-out-q2
Nexus93180YC-FX(config-pmap-c-que)#     bandwidth remaining percent 0
Nexus93180YC-FX(config-pmap-c-que)#   class type queuing c-out-q3
Nexus93180YC-FX(config-pmap-c-que)#     bandwidth remaining percent 0
Nexus93180YC-FX(config-pmap-c-que)#   class type queuing c-out-q-default
Nexus93180YC-FX(config-pmap-c-que)#     bandwidth remaining percent 100
Nexus93180YC-FX(config-pmap-c-que)#     shape min 0 gbps max 1 gbps
Nexus93180YC-FX(config-pmap-c-que)#

Nexus93180YC-FX(config-pmap-c-que)# system qos
Nexus93180YC-FX(config-sys-qos)#   service-policy type queuing output SHAPE

Nexus93180YC-FX(config-sys-qos)# int e1/50
Nexus93180YC-FX(config-if)# service-policy type queuing output SHAPE
Nexus93180YC-FX(config-if)# end

I think the verification in my opinion I can expect what to do.

 

Nexus93180YC-FX# sh policy-map interface ethernet 1/50 output
Global statistics status :   enabled
Ethernet1/50
  Service-policy (queuing) output:   SHAPE
    SNMP Policy Index:  301993525

    Class-map (queuing):   c-out-q-default (match-any)
      bandwidth remaining percent 100
      shape min 0 gbps max 1 gbps
      queue dropped pkts : 0
      queue depth in bytes : 0

    Class-map (queuing):   c-out-q1 (match-any)
      bandwidth remaining percent 0
      queue dropped pkts : 0
      queue depth in bytes : 0

    Class-map (queuing):   c-out-q2 (match-any)
      bandwidth remaining percent 0
      queue dropped pkts : 0
      queue depth in bytes : 0

    Class-map (queuing):   c-out-q3 (match-any)
      bandwidth remaining percent 0
      queue dropped pkts : 0
      queue depth in bytes : 0

Best Regards,

 

Masanobu Hiyoshi

Hello!

According to the provided session logs and your verification show command, it looks like your shaping policy on Ethernet1/50 was successfully applied after we changed the default output queuing policy to a four-queue model - I am glad to see this!

I can confirm that it is expected behavior for the Nexus to return an error message when running the policy-map type queuing default-out-policy command. This command implies you want to re-configure this policy-map, which is not allowed as it is a default policy-map (meaning, it comes pre-configured on the system and cannot be changed.)

If you wanted to define your own system-wide output queuing policy, you would need to do the following:

  1. Create a new queuing policy-map with the policy-map type queuing {customer-queing-policy-map-name-here}.
  2. Apply the new queuing policy-map to the system with the service-policy type queuing output {custom-queuing-policy-map-name-here} command under the system qos command.

@Sergiu.Daniluk - Thank you for the kudos! As a side note, I believe we needed to change both the system-wide network-qos policy and the system-wide default output queuing policy to a four-queue model (although I've not explicitly tested this - it may work with an eight-queue model defined in a network-qos policy, but a four-queue model in the default output queuing policy.)

Thank you!

-Christopher

Hi  Christopher,

 

Thank you very much, Yes 1 & 2 you mentioned are very important now I can memorize them

 

Best Regards,

 

Masanobu Hiyoshi

 

Hi @Christopher Hart 

You are correct. Configuration is allowed with only queuing policy changed to 4q and leaving network-qos in 8q model. Just tested in lab and works. On the other hand, the ingress will continue to use 8 queues, I am just thinking if and how this will affect traffic matching Q4-Q7.

 

Hi thank you for your support and this is one tips.

 

According to the CCO manual below, I think it seems the default system qos queuing template is 4q however,

the real device is booting up as 8q on the device and NX-OS below however I can not understand the reason 

and I have not find out any evidence...

 

Can you think there is any related information such as release note etc?


[Cisco Nexus 9000 Series NX-OS Quality of Service Configuration Guide, Release 9.3(x)]
https://www.cisco.com/c/en/us/td/docs/switches/datacenter/nexus9000/sw/93x/qos/configuration/guide/b-cisco-nexus-9000-nx-os-quality-of-service-configuration-guide-93x/b-cisco-nexus-9000-nx-os-quality-of-service-configuration-guide-93x_chapter_011.htm...

Changing to 8q Mode
The Cisco Nexus 9000 series NX-OS system operates in 4q mode by default.

 

NXOS: version 9.3(1)
N9K-C93180YC-FX

Nexus9K# sh running-config all | be "system qos"
system qos
  service-policy type network-qos default-8q-nq-policy
  service-policy type queuing output default-8q-out-policy

Best Regards,

 

Masanobu Hiyoshi

 

 

 

 

I am having similar issue and unable to fix it, can you help ?

 

N9K-C93180YC-FX(config-if)# int eth1/35

N9K-C93180YC-FX(config-if)# service-policy type queuing output Output-QoS-1Gbps
Unable to perform the action due to incompatibility: Module 1 returned status "The template types for system and interface level policies do not match. Please reconfigure"   >>>>>>>>>>>>> ERROR 

N9K-C93180YC-FX(config-if)#

N9K-C93180YC-FX(config-if)# show policy-map system type network-qos

Type network-qos policy-maps
============================
policy-map type network-qos default-8q-nq-policy
class type network-qos c-8q-nq7
match qos-group 7
mtu 1500
class type network-qos c-8q-nq6
match qos-group 6
mtu 1500
class type network-qos c-8q-nq5
match qos-group 5
mtu 1500
class type network-qos c-8q-nq4
match qos-group 4
mtu 1500
class type network-qos c-8q-nq3
match qos-group 3
mtu 1500
class type network-qos c-8q-nq2
match qos-group 2
mtu 1500
class type network-qos c-8q-nq1
match qos-group 1
mtu 1500
class type network-qos c-8q-nq-default
match qos-group 0
mtu 1500

N9K-C93180YC-FX(config-if)#

N9K-C93180YC-FX(config)# system qos
N9K-C93180YC-FX(config-sys-qos)# service-policy type network-qos default-nq-policy <<<<<<< CHANGED to default-nq-policy
N9K-C93180YC-FX(config-sys-qos)#
N9K-C93180YC-FX(config-sys-qos)# show policy-map system type network-qos   

Type network-qos policy-maps
============================
policy-map type network-qos default-nq-policy
class type network-qos c-nq3
match qos-group 3
mtu 1500
class type network-qos c-nq2
match qos-group 2
mtu 1500
class type network-qos c-nq1
match qos-group 1
mtu 1500
class type network-qos c-nq-default
match qos-group 0
mtu 1500

N9K-C93180YC-FX(config-sys-qos)# exit
N9K-C93180YC-FX(config)#
N9K-C93180YC-FX(config)# int eth1/35
N9K-C93180YC-FX(config-if)#
N9K-C93180YC-FX(config-if)# service-policy type qos input Input-QoS no-stats
N9K-C93180YC-FX(config-if)# service-policy type queuing output Output-QoS-1Gbps
Unable to perform the action due to incompatibility: Module 1 returned status "The template types for system and interface level policies do not match. Please reconfigure"  <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< STILL DOESN'T WORK

N9K-C93180YC-FX(config-if)# exit
N9K-C93180YC-FX(config)#
N9K-C93180YC-FX(config)# system qos
N9K-C93180YC-FX(config-sys-qos)# policy-map type network-qos default-8q-nq-policy
Cannot modify system defined network-qos policy-maps <<<<<<<<<<<<<<<<<<<<<<<<<<<<<< NOW CAN'T EVEN CHANGE BACK TO default-8q-nq-policy

N9K-C93180YC-FX(config)#

 

N9K-C93180YC-FX(config)# sh policy-map int eth1/35 output


Global statistics status : enabled

Ethernet1/35

Service-policy (queuing) output: default-8q-out-policy >>>>>>> BUT here it still shows 8Q-OUT-policy, WHY ????
SNMP Policy Index: 301990364

Class-map (queuing): c-out-8q-q7 (match-any)
priority level 1
queue dropped pkts : 0
queue depth in bytes : 0

Class-map (queuing): c-out-8q-q6 (match-any)
bandwidth remaining percent 0
queue dropped pkts : 0
queue depth in bytes : 0

Class-map (queuing): c-out-8q-q5 (match-any)
bandwidth remaining percent 0
queue dropped pkts : 0
queue depth in bytes : 0

Class-map (queuing): c-out-8q-q4 (match-any)
bandwidth remaining percent 0
queue dropped pkts : 0
queue depth in bytes : 0

 

N9K-C93180YC-FX(config)#

 

N9K-C93180YC-FX# show module
Mod Ports Module-Type Model Status
--- ----- ------------------------------------- --------------------- ---------
1 54 48x10/25G + 6x40/100G Ethernet Module N9K-C93180YC-FX active *

Mod Sw Hw Slot
--- ---------------- ------ ----
1 7.0(3)I7(1) 2.2 NA

Getting Started

Find answers to your questions by entering keywords or phrases in the Search bar above. New here? Use these resources to familiarize yourself with the community: