# QoS

The `nv unset` commands remove the configuration you set with the equivalent `nv set` commands. This guide only describes an `nv unset` command if it differs from the `nv set` command.

## nv set interface <interface-id> qos

Configures QoS on the specified interface.

## nv set interface <interface-id> qos congestion-control

Configures QoS congestion control on the specified interface.

### Command Syntax

Syntax | Description
--- | ---
`<interface-id>` | The interface you want to configure.

### Version History

Introduced in Cumulus Linux 5.4.0

### Example

    cumulus@switch:~$ nv set interface swp1 qos congestion-control

## nv set interface <interface-id> qos congestion-control profile <profile-name>

Configures the QoS congestion control profile on the specified interface.

### Command Syntax

Syntax | Description
--- | ---
`<interface-id>` | The interface you want to configure.
`<profile-name>` | The profile name.

### Version History

Introduced in Cumulus Linux 5.4.0

### Example

    cumulus@switch:~$ nv set interface swp1 qos congestion-control profile MYPROFILE

## nv set interface <interface-id> qos egress-scheduler

Configures QoS egress scheduling on the specified interface.

### Command Syntax

Syntax | Description
--- | ---
`<interface-id>` | The interface you want to configure.
`<profile-name>` | The profile name.

### Version History

Introduced in Cumulus Linux 5.4.0

### Example

    cumulus@switch:~$ nv set interface swp1 qos egress-scheduler

## nv set interface <interface-id> qos egress-scheduler profile <profile-name>

Configures the QoS egress scheduler profile on the specified interface.

### Command Syntax

Syntax | Description
--- | ---
`<interface-id>` | The interface you want to configure.
`<profile-name>` | The profile name.

### Version History

Introduced in Cumulus Linux 5.4.0

### Example

    cumulus@switch:~$ nv set interface swp1 qos egress-scheduler profile MYPROFILE

## nv set interface <interface-id> qos egress-shaper

Configures QoS egress shaping on the specified interface.

### Command Syntax

Syntax | Description
--- | ---
`<interface-id>` | The interface you want to configure.
`<profile-name>` | The profile name.

### Version History

Introduced in Cumulus Linux 5.4.0

### Example

    cumulus@switch:~$ nv set interface swp1 qos egress-shaper

## nv set interface <interface-id> qos egress-shaper profile <profile-name>

Configures the QoS egress scheduler profile on the specified interface.

### Command Syntax

Syntax | Description
--- | ---
`<interface-id>` | The interface you want to configure.
`<profile-name>` | The profile name.

### Version History

Introduced in Cumulus Linux 5.4.0

### Example

    cumulus@switch:~$ nv set interface swp1 qos egress-shaper profile MYPROFILE

## nv set interface <interface-id> qos headroom lossy extra-threshold

Configures additional headroom for lossy priority groups before the switch drops packets. You can specify a value between 192 and 1236480 bytes.

In certain cases, higher forwarding latency and a high probability of small packets increase the risk of headroom buffer exhaustion on lossy traffic and the current default maximum headroom of 150 KB per port might be insufficient.

### Command Syntax

Syntax | Description
--- | ---
`<interface-id>` | The interface you want to configure.

### Version History

Introduced in Cumulus Linux 5.16.0

### Example

    cumulus@switch:~$ nv set interface swp1 qos headroom lossy extra-threshold 50000

## nv set interface <interface-id> qos link-pause

Configures QoS link pause on the specified interface.

### Command Syntax

Syntax | Description
--- | ---
`<interface-id>` | The interface you want to configure.

### Version History

Introduced in Cumulus Linux 5.4.0

### Example

    cumulus@switch:~$ nv set interface swp1 qos link-pause

## nv set interface <interface-id> qos link-pause profile <profile-name>

Configures the QoS link pause profile on the specified interface.

### Command Syntax

Syntax | Description
--- | ---
`<interface-id>` | The interface you want to configure.
`<profile-name>` | The profile name.

### Version History

Introduced in Cumulus Linux 5.4.0

### Example

    cumulus@switch:~$ nv set interface swp1 qos link-pause profile

## nv set interface <interface-id> qos mapping

Configures QoS mapping on the specified interface.

### Command Syntax

Syntax | Description
--- | ---
`<interface-id>` | The interface you want to configure.

### Version History

Introduced in Cumulus Linux 5.3.0

### Example

    cumulus@switch:~$ nv set interface swp1 qos mapping

## nv set interface <interface-id> qos mapping profile <profile-name>

Configures the QoS mapping profile on the specified interface.

### Command Syntax

Syntax | Description
--- | ---
`<interface-id>` | The interface you want to configure.
`<profile-name>` | The profile name.

### Version History

Introduced in Cumulus Linux 5.3.0

### Example

    cumulus@switch:~$ nv set interface swp1 qos mapping profile MYPROFILE

## nv set interface <interface-id> qos pfc

Configures QoS PFC on the specifies interface.

## nv set interface <interface-id> qos pfc profile <profile-name>

Configures the QoS PFC profile on the specified interface.

### Command Syntax

Syntax | Description
--- | ---
`<interface-id>` | The interface you want to configure.
`<profile-name>` | The profile name.

### Version History

Introduced in Cumulus Linux 5.3.0

### Example

    cumulus@switch:~$ nv set interface swp1 qos pfc profile MYPROFILE

## nv set interface <interface-id> qos remark

Configures QoS remarking on the specified interface.

### Command Syntax

Syntax | Description
--- | ---
`<interface-id>` | The interface you want to configure.

### Version History

Introduced in Cumulus Linux 5.4.0

### Example

    cumulus@switch:~$ nv set interface swp1 qos remark

## nv set interface <interface-id> qos remark profile <profile-name>

Configures the QoS mapping profile on the specified interface.

### Command Syntax

Syntax | Description
--- | ---
`<interface-id>` | The interface you want to configure.
`<profile-name>` | The profile name.

### Version History

Introduced in Cumulus Linux 5.4.0

### Example

    cumulus@switch:~$ nv set interface swp1 qos remark profile MYPROFILE

## nv set interface <interface-id> qos pfc-watchdog state

Enables or disables PFC watchdog on the interface. PFC watchdog detects and mitigates pause storms on ports where PFC or link pause is ON. The default setting is `disable`.

- PFC watchdog only works for lossless traffic queues.
- You can only configure PFC watchdog on a port with PFC (or link pause) configuration.
- You can only enable PFC watchdog on a physical interface (swp).
- You cannot enable the watchdog on a bond (for example, bond0) but you can enable the watchdog on a port that is a member of a bond (for example, swp1).

### Command Syntax

Syntax | Description
--- | ---
`<interface-id>` | The interface you want to configure.

### Version History

Introduced in Cumulus Linux 5.6.0

### Example

    cumulus@switch:~$ nv set interface swp1 qos qos pfc-watchdog state enable

## nv set qos

Configures global Quality of Service (QOS) settings.

## nv set qos advance-buffer-config <profile-id>

Configures the QoS advanced buffer profile settings. Advanced buffer configuration can override the base traffic-pool profiles configured on the system.

## nv set qos advance-buffer-config <profile-id> egress-lossless-buffer

Configures egress lossless buffer settings.

## nv set qos advance-buffer-config <profile-id> egress-lossless-buffer reserved

Configures the reserved buffer allocation in bytes for the egress lossless buffer. You can set a value between 0 and 4294967295.

### Command Syntax

Syntax | Description
--- | ---
`<profile-id>` | The profile name.

### Version History

Introduced in Cumulus Linux 5.4.0

### Example

    cumulus@switch:~$ nv set qos advance-buffer-config default-global egress-lossless-buffer reserved 10000

## nv set qos advance-buffer-config <profile-id> egress-lossless-buffer service-pool <integer>

Configures the service pool for the egress lossless buffer.

### Command Syntax

Syntax | Description
--- | ---
`<profile-id>` | The profile name.

### Version History

Introduced in Cumulus Linux 5.4.0

### Example

    cumulus@switch:~$ nv set qos advance-buffer-config default-global egress-lossless-buffer service-pool 3

## nv set qos advance-buffer-config <profile-id> egress-lossless-buffer shared-alpha

Configures the dynamic shared buffer alpha allocation in bytes for the egress lossless buffer. You can set a value between 0 and 4294967295.

### Command Syntax

Syntax | Description
--- | ---
`<profile-id>` | The profile name.

### Version History

Introduced in Cumulus Linux 5.4.0

### Example

    cumulus@switch:~$ nv set qos advance-buffer-config default-global egress-lossless-buffer shared-alpha 10000

## nv set qos advance-buffer-config <profile-id> egress-lossless-buffer shared-bytes

Configures the static shared buffer allocation in bytes for the egress lossless buffer. You can set a value between 0 and 4294967295.

### Command Syntax

Syntax | Description
--- | ---
`<profile-id>` | The profile name.

### Version History

Introduced in Cumulus Linux 5.4.0

### Example

    cumulus@switch:~$ nv set qos advance-buffer-config default-global egress-lossless-buffer shared-bytes 10000

## nv set qos advance-buffer-config <profile-id> egress-lossy-buffer

Configures the egress lossy buffer.

## nv set qos advance-buffer-config <profile-id> egress-lossy-buffer multicast-port

Configures the multicast port for the egress lossy buffer.

### Command Syntax

Syntax | Description
--- | ---
`<profile-id>` | The profile name.

### Version History

Introduced in Cumulus Linux 5.4.0

### Example

    cumulus@switch:~$ nv set qos advance-buffer-config default-global egress-lossy-buffer multicast-port

## nv set qos advance-buffer-config <profile-id> egress-lossy-buffer multicast-port reserved

Configures the reserved multicast port buffer allocation in bytes for the egress lossy buffer. You can set a value between 0 and 4294967295.

### Command Syntax

Syntax | Description
--- | ---
`<profile-id>` | The profile name.

### Version History

Introduced in Cumulus Linux 5.4.0

### Example

    cumulus@switch:~$ nv set qos advance-buffer-config default-global egress-lossless-buffer reserved 10000

## nv set qos advance-buffer-config <profile-id> egress-lossy-buffer multicast-port shared-bytes

Configures the multicast port static buffer allocation in bytes for the egress lossy buffer. You can set a value between 0 and 4294967295.

### Command Syntax

Syntax | Description
--- | ---
`<profile-id>` | The profile name.

### Version History

Introduced in Cumulus Linux 5.4.0

### Example

    cumulus@switch:~$ nv set qos advance-buffer-config default-global egress-lossless-buffer shared-bytes 10000

## nv set qos advance-buffer-config <profile-id> egress-lossy-buffer multicast-switch-priority <qos-sp-id>

Configures the multicast switch priority for the egress lossy buffer.

### Command Syntax

Syntax | Description
--- | ---
`<profile-id>` | The profile name.
`<qos-sp-id>` | The multicast switch priority.

### Version History

Introduced in Cumulus Linux 5.4.0

### Example

    cumulus@switch:~$ nv set qos advance-buffer-config default-global egress-lossy-buffer multicast-switch-priority 5,7

## nv set qos advance-buffer-config <profile-id> egress-lossy-buffer multicast-switch-priority <qos-sp-id> reserved

Configures the reserved buffer allocation in bytes for the egress lossy buffer multicast switch priority. You can set a value between 0 and 4294967295.

### Command Syntax

Syntax | Description
--- | ---
`<profile-id>` | The profile name.
`<qos-sp-id>` | The multicast switch priority.

### Version History

Introduced in Cumulus Linux 5.4.0

### Example

    cumulus@switch:~$ nv set qos advance-buffer-config default-global egress-lossy-buffer multicast-switch-priority 5,7

## nv set qos advance-buffer-config <profile-id> egress-lossy-buffer multicast-switch-priority <qos-sp-id> service-pool <integer>

Configures the service pool ID for the egress lossy buffer multicast switch priority.

### Command Syntax

Syntax | Description
--- | ---
`<profile-id>` | The profile name.
`<qos-sp-id>` | The multicast switch priority.

### Version History

Introduced in Cumulus Linux 5.4.0

### Example

    cumulus@switch:~$ nv set qos advance-buffer-config default-global egress-lossy-buffer multicast-switch-priority 5,7 service-pool 3

## nv set qos advance-buffer-config <profile-id> egress-lossy-buffer multicast-switch-priority <qos-sp-id> shared-alpha

Configures the dynamic shared buffer alpha allocation for the egress lossy buffer multicast switch priority.

### Command Syntax

Syntax | Description
--- | ---
`<profile-id>` | The profile name.
`<qos-sp-id>` | The multicast switch priority.

### Version History

Introduced in Cumulus Linux 5.4.0

### Example

    cumulus@switch:~$ nv set qos advance-buffer-config default-global egress-lossy-buffer multicast-switch-priority 5,7 shared-alpha alpha_2

## nv set qos advance-buffer-config <profile-id> egress-lossy-buffer multicast-switch-priority <qos-sp-id> shared-bytes

Configures the static shared buffer allocation in bytes for the egress lossy buffer multicast switch priority. You can set a value between 0 and 4294967295.

### Command Syntax

Syntax | Description
--- | ---
`<profile-id>` | The profile name.
`<qos-sp-id>` | The multicast switch priority.

### Version History

Introduced in Cumulus Linux 5.4.0

### Example

    cumulus@switch:~$ nv set qos advance-buffer-config default-global egress-lossy-buffer multicast-switch-priority 5,7 shared-bytes 10000

## nv set qos advance-buffer-config <profile-id> egress-lossy-buffer traffic-class <traffic-class-id>

Configures the traffic classes for the egress lossy buffer.

### Command Syntax

Syntax | Description
--- | ---
`<profile-id>` | The profile name.
`<traffic-class-id>` | The traffic class ID.

### Version History

Introduced in Cumulus Linux 5.4.0

### Example

    cumulus@switch:~$ nv set qos advance-buffer-config default-global egress-lossy-buffer traffic-class 3

## nv set qos advance-buffer-config <profile-id> egress-lossy-buffer traffic-class <traffic-class-id> reserved

Configures the reserved buffer allocation in bytes for the egress lossy buffer traffic class. You can set a value between 0 and 4294967295.

### Command Syntax

Syntax | Description
--- | ---
`<profile-id>` | The profile name.
`<traffic-class-id>` | The traffic class ID.

### Version History

Introduced in Cumulus Linux 5.4.0

### Example

    cumulus@switch:~$ nv set qos advance-buffer-config default-global egress-lossy-buffer traffic-class 3 reserved 10000

## nv set qos advance-buffer-config <profile-id> egress-lossy-buffer traffic-class <traffic-class-id> service-pool <integer>

Configures the service pool ID for the egress lossy buffer traffic class.

### Command Syntax

Syntax | Description
--- | ---
`<profile-id>` | The profile name.
`<traffic-class-id>` | The traffic class ID.

### Version History

Introduced in Cumulus Linux 5.4.0

### Example

    cumulus@switch:~$ nv set qos advance-buffer-config default-global egress-lossy-buffer traffic-class 3 service-pool 3

## nv set qos advance-buffer-config <profile-id> egress-lossy-buffer traffic-class <traffic-class-id> shared-alpha

Configures the dynamic shared buffer alpha allocation for the egress lossy buffer traffic class.

### Command Syntax

Syntax | Description
--- | ---
`<profile-id>` | The profile name.
`<traffic-class-id>` | The traffic class ID.

### Version History

Introduced in Cumulus Linux 5.4.0

### Example

    cumulus@switch:~$ nv set qos advance-buffer-config default-global egress-lossy-buffer traffic-class 3 shared-alpha alpha_2

## nv set qos advance-buffer-config <profile-id> egress-lossy-buffer traffic-class <traffic-class-id> shared-bytes

Configures the static shared buffer allocation in bytes for the egress lossy buffer traffic class. You can set a value between 0 and 4294967295.

### Command Syntax

Syntax | Description
--- | ---
`<profile-id>` | The profile name.
`<traffic-class-id>` | The traffic class ID.

### Version History

Introduced in Cumulus Linux 5.4.0

### Example

    cumulus@switch:~$ nv set qos advance-buffer-config default-global egress-lossy-buffer traffic-class 3 shared-bytes 10000

## nv set qos advance-buffer-config <profile-id> egress-service-pool <pool-id>

Configures the QoS egress service pool ID.

In Cumulus Linux 5.10 and earlier, `egress-service-pool` is `egress-pool`.

### Command Syntax

Syntax | Description
--- | ---
`<profile-id>` | The profile name.
`<pool-id>` | The pool ID.

### Version History

Introduced in Cumulus Linux 5.4.0

### Example

    cumulus@switch:~$ nv set qos advance-buffer-config default-global egress-service-pool 3

## nv set qos advance-buffer-config <profile-id> egress-service-pool <pool-id> infinite

Configures the egress service pool flag to infinite. You can specify `true` or `false`. The default setting is `false`.

In Cumulus Linux 5.10 and earlier, `egress-service-pool` is `egress-pool`.

### Command Syntax

Syntax | Description
--- | ---
`<profile-id>` | The profile name.
`<pool-id>` | The pool name.

### Version History

Introduced in Cumulus Linux 5.4.0

### Example

    cumulus@switch:~$ nv set qos advance-buffer-config default-global egress-service-pool 3 infinite true

## nv set qos advance-buffer-config <profile-id> egress-service-pool <pool-id> memory-percent

Configures the egress service pool memory percent allocation. You can specify a value between 0 and 100. The sum of `memory-percent` values across all egress pools must be less than or equal to 100 percent.

In Cumulus Linux 5.10 and earlier, `egress-service-pool` is `egress-pool`.

### Command Syntax

Syntax | Description
--- | ---
`<profile-id>` | The profile name.
`<pool-id>` | The pool name.

### Version History

Introduced in Cumulus Linux 5.4.0

### Example

    cumulus@switch:~$ nv set qos advance-buffer-config default-global egress-service-pool 3 memory-percent 20

## nv set qos advance-buffer-config <profile-id> egress-service-pool <pool-id> mode

Configures the egress service pool mode. You can specify `static` or `dynamic`.

In Cumulus Linux 5.10 and earlier, `egress-service-pool` is `egress-pool`.

### Command Syntax

Syntax | Description
--- | ---
`<profile-id>` | The profile name.
`<pool-id>` | The pool name.

### Version History

Introduced in Cumulus Linux 5.4.0

### Example

    cumulus@switch:~$ nv set qos advance-buffer-config default-global egress-service-pool 3 mode dynamic

## nv set qos advance-buffer-config <profile-id> egress-service-pool <pool-id> reserved

Configures the egress service pool reserved buffer allocation in bytes. You can specify a value between 0 and 4294967295.

In Cumulus Linux 5.10 and earlier, `egress-service-pool` is `egress-pool`.

### Command Syntax

Syntax | Description
--- | ---
`<profile-id>` | The profile name.
`<pool-id>` | The pool name.

### Version History

Introduced in Cumulus Linux 5.4.0

### Example

    cumulus@switch:~$ nv set qos advance-buffer-config default-global egress-service-pool 3 reserved 10000

## nv set qos advance-buffer-config <profile-id> egress-service-pool <pool-id> shared-alpha

Configures the egress service pool dynamic shared buffer alpha allocation.

In Cumulus Linux 5.10 and earlier, `egress-service-pool` is `egress-pool`.

### Command Syntax

Syntax | Description
--- | ---
`<profile-id>` | The profile name.
`<pool-id>` | The pool name.

### Version History

Introduced in Cumulus Linux 5.4.0

### Example

    cumulus@switch:~$ nv set qos advance-buffer-config default-global egress-service-pool 3 shared-alpha alpha_1_4

## nv set qos advance-buffer-config <profile-id> egress-service-pool <pool-id> shared-bytes

Configures the egress service pool static shared buffer allocation in bytes. You can specify a value between 0 and 4294967295.

In Cumulus Linux 5.10 and earlier, `egress-service-pool` is `egress-pool`.

### Command Syntax

Syntax | Description
--- | ---
`<profile-id>` | The profile name.
`<pool-id>` | The pool name.

### Version History

Introduced in Cumulus Linux 5.4.0

### Example

    cumulus@switch:~$ nv set qos advance-buffer-config default-global egress-service-pool 3 shared-bytes 10000

## nv set qos advance-buffer-config <profile-id> ingress-lossless-buffer

Configures the ingress lossless buffer settings.

## nv set qos advance-buffer-config <profile-id> ingress-lossless-buffer service-pool <integer>

Configures the service pool for the ingress lossless buffer.

### Command Syntax

Syntax | Description
--- | ---
`<profile-id>` | The profile name.

### Version History

Introduced in Cumulus Linux 5.4.0

### Example

    cumulus@switch:~$ nv set qos advance-buffer-config default-global ingress-lossless-buffer service-pool 3

## nv set qos advance-buffer-config <profile-id> ingress-lossless-buffer shared-alpha

Configures the dynamic shared buffer alpha allocation for the ingress lossless buffer.

### Command Syntax

Syntax | Description
--- | ---
`<profile-id>` | The profile name.

### Version History

Introduced in Cumulus Linux 5.4.0

### Example

    cumulus@switch:~$ nv set qos advance-buffer-config default-global ingress-lossless-buffer shared-alpha alpha_1_8

## nv set qos advance-buffer-config <profile-id> ingress-lossless-buffer shared-bytes

Configures the static shared buffer allocation in bytes for the ingress lossless buffer. You can set a value between 0 and 4294967295.

### Command Syntax

Syntax | Description
--- | ---
`<profile-id>` | The profile name.

### Version History

Introduced in Cumulus Linux 5.4.0

### Example

    cumulus@switch:~$ nv set qos advance-buffer-config default-global ingress-lossless-buffer shared-bytes 10000

## nv set qos advance-buffer-config <profile-id> ingress-lossy-buffer

Configures the ingress lossy buffer.

## nv set qos advance-buffer-config <profile-id> ingress-lossy-buffer priority-group <priority-group-id>

Configures the priority group alias name for the ingress lossy buffer.

### Command Syntax

Syntax | Description
--- | ---
`<profile-id>` | The profile name.
`<priority-group-id>` | The priority group alias name. In Cumulus Linux 5.10 and later, you can specify `bulk`, and `service1` through `service7`. In Cumulus Linux 5.9 and earlier, you can specify `bulk`, `control`, and `service1` through `service6`.

### Version History

Introduced in Cumulus Linux 5.4.0

### Example

    cumulus@switch:~$ nv set qos advance-buffer-config default-global ingress-lossy-buffer priority-group service1

## nv set qos advance-buffer-config <profile-id> ingress-lossy-buffer priority-group <priority-group-id> name <value>

Configures an alias name for the ingress lossy buffer priority group.

### Command Syntax

Syntax | Description
--- | ---
`<profile-id>` | The profile name.
`<priority-group-id>` | The priority group alias name. In Cumulus Linux 5.10 and later, you can specify `bulk` and `service1` through `service7`. In Cumulus Linux 5.9 and earlier, you can specify `bulk`, `control`, and `service1` through `service6`.

### Version History

Introduced in Cumulus Linux 5.4.0

### Example

    cumulus@switch:~$ nv set qos advance-buffer-config default-global ingress-lossy-buffer priority-group service1 name SERVERS

## nv set qos advance-buffer-config <profile-id> ingress-lossy-buffer priority-group <priority-group-id> reserved

Configures the reserved buffer allocation in bytes for the ingress lossy buffer priority group. You can set a value between 0 and 4294967295.

### Command Syntax

Syntax | Description
--- | ---
`<profile-id>` | The profile name.
`<priority-group-id>` | The priority group alias name. In Cumulus Linux 5.10 and later, you can specify `bulk`, and `service1` through `service7`. In Cumulus Linux 5.9 and earlier, you can specify `bulk`, `control`, and `service1` through `service6`.

### Version History

Introduced in Cumulus Linux 5.4.0

### Example

    cumulus@switch:~$ nv set qos advance-buffer-config default-global ingress-lossy-buffer priority-group service1 reserved 10000

## nv set qos advance-buffer-config <profile-id> ingress-lossy-buffer priority-group <priority-group-id> service-pool <integer>

Configures the service pool for the ingress lossy buffer priority group.

### Command Syntax

Syntax | Description
--- | ---
`<profile-id>` | The profile name.
`<priority-group-id>` | The priority group alias name. In Cumulus Linux 5.10 and later, you can specify `bulk`, and `service1` through `service7`. In Cumulus Linux 5.9 and earlier, you can specify `bulk`, `control`, and `service1` through `service6`.

### Version History

Introduced in Cumulus Linux 5.4.0

### Example

    cumulus@switch:~$ nv set qos advance-buffer-config default-global ingress-lossy-buffer priority-group service1 service-pool 2

## nv set qos advance-buffer-config <profile-id> ingress-lossy-buffer priority-group <priority-group-id> shared-alpha

Configures dynamic shared buffer alpha allocation in bytes for the ingress lossy buffer priority group. You can set a value between 0 and 4294967295.

### Command Syntax

Syntax | Description
--- | ---
`<profile-id>` | The profile name.
`<priority-group-id>` | The priority group alias name. In Cumulus Linux 5.10 and later, you can specify `bulk`, and `service1` through `service7`. In Cumulus Linux 5.9 and earlier, you can specify `bulk`, `control`, and `service1` through `service6`.

### Version History

Introduced in Cumulus Linux 5.4.0

### Example

    cumulus@switch:~$ nv set qos advance-buffer-config default-global ingress-lossy-buffer priority-group service1 shared-alpha  10000

## nv set qos advance-buffer-config <profile-id> ingress-lossy-buffer priority-group <priority-group-id> shared-bytes

Configures the static shared buffer allocation in bytes for the ingress lossy buffer priority group. You can set a value between 0 and 4294967295.

### Command Syntax

Syntax | Description
--- | ---
`<profile-id>` | The profile name.
`<priority-group-id>` | The priority group alias name. In Cumulus Linux 5.10 and later, you can specify `bulk`, and `service1` through `service7`. In Cumulus Linux 5.9 and earlier, you can specify `bulk`, `control`, and `service1` through `service6`.

### Version History

Introduced in Cumulus Linux 5.4.0

### Example

    cumulus@switch:~$ nv set qos advance-buffer-config default-global ingress-lossy-buffer priority-group service1 shared-bytes  10000

## nv set qos advance-buffer-config <profile-id> ingress-lossy-buffer priority-group <priority-group-id> switch-priority <qos-sp-id>

Configures the switch priority for the ingress lossy buffer priority group.

### Command Syntax

Syntax | Description
--- | ---
`<profile-id>` | The profile name.
`<priority-group-id>` | The priority group alias name. In Cumulus Linux 5.10 and later, you can specify `bulk`, and `service1` through `service7`. In Cumulus Linux 5.9 and earlier, you can specify `bulk`, `control`, and `service1` through `service6`.
`<qos-sp-id>` | The switch priority.

### Version History

Introduced in Cumulus Linux 5.4.0

### Example

    cumulus@switch:~$ nv set qos advance-buffer-config default-global ingress-lossy-buffer priority-group service1 switch-priority 0,1,3,4,5,6,7

## nv set qos advance-buffer-config <profile-id> ingress-service-pool <pool-id>

Configures the QoS ingress service pool name.

In Cumulus Linux 5.10 and earlier, `ingress-service-pool` is `ingress-pool`.

### Command Syntax

Syntax | Description
--- | ---
`<profile-id>` | The profile name.
`<pool-id>` | The pool name.

### Version History

Introduced in Cumulus Linux 5.4.0

### Example

    cumulus@switch:~$ nv set qos advance-buffer-config default-global ingress-service-pool 3

## nv set qos advance-buffer-config <profile-id> ingress-service-pool <pool-id> infinite

Configures the ingress service pool flag to infinite. You can specify `true` or `false`. The default setting is `false`.

In Cumulus Linux 5.10 and earlier, `ingress-service-pool` is `ingress-pool`.

### Command Syntax

Syntax | Description
--- | ---
`<profile-id>` | The profile name.
`<pool-id>` | The pool name.

### Version History

Introduced in Cumulus Linux 5.4.0

### Example

    cumulus@switch:~$ nv set qos advance-buffer-config default-global ingress-service-pool 3 infinite true

## nv set qos advance-buffer-config <profile-id> ingress-service-pool <pool-id> memory-percent

Configures the ingress service pool memory percent allocation. You can specify a value between 0 and 100. The sum of `memory-percent` values across all ingress pools must be less than or equal to 100 percent.

In Cumulus Linux 5.10 and earlier, `ingress-service-pool` is `ingress-pool`.

### Command Syntax

Syntax | Description
--- | ---
`<profile-id>` | The profile name.
`<pool-id>` | The pool name.

### Version History

Introduced in Cumulus Linux 5.4.0

### Example

    cumulus@switch:~$ nv set qos advance-buffer-config default-global ingress-service-pool 3 memory-percent 20

## nv set qos advance-buffer-config <profile-id> ingress-service-pool <pool-id> mode

Configures the ingress service pool mode. You can specify `static` or `dynamic`.

In Cumulus Linux 5.10 and earlier, `ingress-service-pool` is `ingress-pool`.

### Command Syntax

Syntax | Description
--- | ---
`<profile-id>` | The profile name.
`<pool-id>` | The pool name.

### Version History

Introduced in Cumulus Linux 5.4.0

### Example

    cumulus@switch:~$ nv set qos advance-buffer-config default-global ingress-service-pool 3 mode dynamic

## nv set qos advance-buffer-config <profile-id> ingress-service-pool <pool-id> reserved

Configures the ingress service pool reserved buffer allocation in bytes. You can specify a value between 0 and 4294967295.

In Cumulus Linux 5.10 and earlier, `ingress-service-pool` is `ingress-pool`.

### Command Syntax

Syntax | Description
--- | ---
`<profile-id>` | The profile name.
`<pool-id>` | The pool name.

### Version History

Introduced in Cumulus Linux 5.4.0

### Example

    cumulus@switch:~$ nv set qos advance-buffer-config default-global ingress-service-pool 3 reserved 10000

## nv set qos advance-buffer-config <profile-id> ingress-service-pool <pool-id> shared-alpha

Configures the ingress service pool dynamic shared buffer alpha allocation.

In Cumulus Linux 5.10 and earlier, `ingress-service-pool` is `ingress-pool`.

### Command Syntax

Syntax | Description
--- | ---
`<profile-id>` | The profile name.
`<pool-id>` | The pool name.

### Version History

Introduced in Cumulus Linux 5.4.0

### Example

    cumulus@switch:~$ nv set qos advance-buffer-config default-global ingress-service-pool 3 shared-alpha alpha_1_4

## nv set qos advance-buffer-config <profile-id> ingress-service-pool <pool-id> shared-bytes

Configures the ingress service pool static shared buffer allocation in bytes. You can specify a value between 0 and 4294967295.

In Cumulus Linux 5.10 and earlier, `ingress-service-pool` is `ingress-pool`.

### Command Syntax

Syntax | Description
--- | ---
`<profile-id>` | The profile name.
`<pool-id>` | The pool name.

### Version History

Introduced in Cumulus Linux 5.4.0

### Example

    cumulus@switch:~$ nv set qos advance-buffer-config default-global ingress-service-pool 3 shared-bytes 10000

## nv set qos advance-buffer-config default-global ingress-lossy-buffer priority-group <priority-group> headroom

Configures the lossy headroom for a specified priority group. Lossy headroom is the buffer on top of the reserved buffer that stores packets that ingress the switch. You can configure the lossy headroom to help analyze performance for a specific priority group.

The switch calculates the default value internally based on the MTU and internal latency.

### Command Syntax

Syntax | Description
--- | ---
`<priority-group-id>` | The priority group alias name. In Cumulus Linux 5.10 and later, you can specify `bulk`, and `service1` through `service7`. In Cumulus Linux 5.9 and earlier, you can specify `bulk`, `control`, and `service1` through `service6`.

### Version History

Introduced in Cumulus Linux 5.10.0

### Example

    cumulus@switch:~$ nv set qos advance-buffer-config default-global ingress-lossy-buffer priority-group service1 headroom 50000

## nv set qos advance-buffer-config <profile-id> egress-mgmt-buffer reserved

Configures the egress management reserved buffer allocation in bytes.

### Version History

Introduced in Cumulus Linux 5.10.0

### Example

    cumulus@switch:~$ nv set qos advance-buffer-config default-global egress-mgmt-buffer reserved 30000

## nv set qos advance-buffer-config <profile-id> egress-mgmt-buffer service-pool

Configures the QoS egress management buffer service pool mapping. You can specify a value between 0 and 7.

### Version History

Introduced in Cumulus Linux 5.10.0

### Example

    cumulus@switch:~$ nv set qos advance-buffer-config default-global egress-mgmt-buffer service-pool 0

## nv set qos advance-buffer-config <profile-id> egress-mgmt-buffer shared-alpha

Configures the dynamic egress management shared buffer alpha allocation. You can specify one of these values: `alpha_0`, `alpha_1_128`, `alpha_1_64`, `alpha_1_32`, `alpha_1_16`, `alpha_1_8`, `alpha_1_4`, `alpha_1_2`, `alpha_1`, `alpha_2`, `alpha_4`, `alpha_8`, `alpha_16`, `alpha_32`, `alpha_64`, or `alpha_infinity`.

### Version History

Introduced in Cumulus Linux 5.10.0

### Example

    cumulus@switch:~$ nv set qos advance-buffer-config default-global egress-mgmt-buffer shared-alpha alpha_2

## nv set qos advance-buffer-config <profile-id> egress-mgmt-buffer shared-bytes

Configures the QoS static egress management shared buffer allocation in bytes.

### Version History

Introduced in Cumulus Linux 5.10.0

### Example

    cumulus@switch:~$ nv set qos advance-buffer-config default-global egress-mgmt-buffer shared-bytes 14000

## nv set qos advance-buffer-config <profile-id> ingress-mgmt-buffer headroom

Configures the QoS ingress management buffer headroom in bytes.

### Version History

Introduced in Cumulus Linux 5.10.0

### Example

    cumulus@switch:~$ nv set qos advance-buffer-config default-global ingress-mgmt-buffer headroom 10000

## nv set qos advance-buffer-config <profile-id> ingress-mgmt-buffer service-pool

Configures the QoS ingress management buffer service pool mapping. You can specify a value between 0 and 7.

### Version History

Introduced in Cumulus Linux 5.10.0

### Example

    cumulus@switch:~$ nv set qos advance-buffer-config default-global ingress-mgmt-buffer service-pool 0

## nv set qos advance-buffer-config <profile-id> ingress-mgmt-buffer shared-alpha

Configures the QoS dynamic ingress management shared buffer alpha allocation. You can specify one of these values: `alpha_0`, `alpha_1_128`, `alpha_1_64`, `alpha_1_32`, `alpha_1_16`, `alpha_1_8`, `alpha_1_4`, `alpha_1_2`, `alpha_1`, `alpha_2`, `alpha_4`, `alpha_8`, `alpha_16`, `alpha_32`, `alpha_64`, or `alpha_infinity`.

### Version History

Introduced in Cumulus Linux 5.10.0

### Example

    cumulus@switch:~$ nv set qos advance-buffer-config default-global ingress-mgmt-buffer shared-alpha alpha_2

## nv set qos advance-buffer-config <profile-id> ingress-mgmt-buffer shared-bytes

Configures the static ingress management shared buffer allocation in bytes.

### Version History

Introduced in Cumulus Linux 5.10.0

### Example

    cumulus@switch:~$ nv set qos advance-buffer-config default-global ingress-mgmt-buffer shared-bytes 14000

## nv set qos congestion-control <profile-id>

Configures ECN; an end-to-end flow control technology. Instead of telling adjacent devices to stop transmitting during times of buffer congestion, ECN sets the ECN bits of the transit IPv4 or IPv6 header to indicate to end hosts that congestion might occur. As a result, the sending hosts reduce their sending rate until the transit switch no longer sets ECN bits.

ECN operates by having a transit switch that marks packets between two end hosts. You use ECN with RDMA over Converged Ethernet (RoCE).

## nv set qos congestion-control <profile-id> traffic-class <qos-tc-id>

Configures traffic class settings for the specified ECN profile.

## nv set qos congestion-control <profile-id> traffic-class <qos-tc-id> ecn

Enables and disables ECN bit marking for the traffic class in the specified ECN profile.

### Command Syntax

Syntax | Description
--- | ---
`<profile-id>` | The profile name.
`<qos-tc-id>` | The traffic class (egress queue).

### Version History

Introduced in Cumulus Linux 5.3.0

### Example

    cumulus@switch:~$ nv set qos congestion-control default-global traffic-class 4,5,7 ecn enabled

## nv set qos congestion-control <profile-id> traffic-class <qos-tc-id> max-threshold <value>

Configures the maximum buffer threshold in bytes. Cumulus Linux marks all ECN-capable packets when buffer congestion crosses this threshold.

### Command Syntax

Syntax | Description
--- | ---
`<profile-id>` | The profile name.
`<qos-tc-id>` | The traffic class (egress queue).

### Version History

Introduced in Cumulus Linux 5.3.0

### Example

    cumulus@switch:~$ nv set qos congestion-control default-global traffic-class 4,5,7 max-threshold 200000

## nv set qos congestion-control <profile-id> traffic-class <qos-tc-id> min-threshold <value>

Configures the minimum buffer threshold in bytes. Random ECN marking starts when buffer congestion crosses this threshold. The probability determines if ECN marking occurs.

### Command Syntax

Syntax | Description
--- | ---
`<profile-id>` | The profile name.
`<qos-tc-id>` | The traffic class (egress queue).

### Version History

Introduced in Cumulus Linux 5.3.0

### Example

    cumulus@switch:~$ nv set qos congestion-control default-global traffic-class 4,5,7 min-threshold 40000

## nv set qos congestion-control <profile-id> traffic-class <qos-tc-id> probability

Configures the probability that Cumulus Linux marks an ECN-capable packet when buffer congestion is between the minimum threshold and the maximum threshold. You can set a value between 1 and 100.

### Command Syntax

Syntax | Description
--- | ---
`<profile-id>` | The profile name.
`<qos-tc-id>` | The traffic class (egress queue).

### Version History

Introduced in Cumulus Linux 5.3.0

### Example

    cumulus@switch:~$ nv set qos congestion-control default-global traffic-class 4,5,7 probability 80

## nv set qos congestion-control <profile-id> traffic-class <qos-tc-id> red

Enables and disables RED.

ECN prevents packet drops in the network due to congestion by signaling hosts to transmit less. However, if congestion continues after ECN marking, packets drop after the switch buffer is full. By default, Cumulus Linux tail-drops packets when the buffer is full. You can enable RED to drop packets that are in the queue randomly instead of always dropping the last arriving packet. This might improve overall performance of TCP based flows.

### Command Syntax

Syntax | Description
--- | ---
`<profile-id>` | The profile name.
`<qos-tc-id>` | The traffic class (egress queue).

### Version History

Introduced in Cumulus Linux 5.3.0

### Example

    cumulus@switch:~$ nv set qos congestion-control default-global traffic-class 4,5,7 red enabled

## nv set qos egress-queue-mapping <profile-id>

Configures egress queues. Cumulus Linux supports eight egress queues to provide different classes of service. By default switch priority values map directly to the matching egress queue. For example, switch priority value 0 maps to egress queue 0.

You can remap queues by changing the switch priority value to the corresponding queue value. You can map multiple switch priority values to a single egress queue.

## nv set qos egress-queue-mapping <profile-id> switch-priority <qos-sp-id>

Configures the switch priority for the egress queue profile.

## nv set qos egress-queue-mapping <profile-id> switch-priority <qos-sp-id> traffic-class

Configures the switch priority to egress queue mapping.

### Command Syntax

Syntax | Description
--- | ---
`<profile-id>` | The profile name.
`<qos-sp-id>` | The switch priority.

### Version History

Introduced in Cumulus Linux 5.3.0

### Example

    cumulus@switch:~$ nv set qos egress-queue-mapping default-global switch-priority 2 traffic-class 7

## nv set qos egress-scheduler <profile-id>

Configures the egress scheduler. Cumulus Linux supports 802.1Qaz, Enhanced Transmission Selection, which allows the switch to assign bandwidth to egress queues and then schedule the transmission of traffic from each queue. 802.1Qaz supports Priority Queuing.

Cumulus Linux provides a default egress scheduler that applies to all ports, where the bandwidth allocated to egress queues 0,2,4,6 is 12 percent and the bandwidth allocated to egress queues 1,3,5,7 is 13 percent.

## nv set qos egress-scheduler <profile-id> traffic-class <qos-tc-id>

Configures the traffic class for the specified egress scheduler profile. The traffic class defines the egress queue where you want to assign bandwidth. For example, traffic-class 2 defines the bandwidth allocation for egress queue 2.

## nv set qos egress-scheduler <profile-id> traffic-class <qos-tc-id> bw-percent

Configures the bandwidth percent value between 1 and 100 for the specified egress queue. If you do not specify a value for an egress queue, Cumulus Linux uses a DWRR value of 0 (no egress scheduling). The combined total of values you assign must be less than or equal to 100.

### Command Syntax

Syntax | Description
--- | ---
`<profile-id>` | The profile name.
`<qos-tc-id>` | The traffic class (egress queue).

### Version History

Introduced in Cumulus Linux 5.3.0

### Example

    cumulus@switch:~$ nv set qos egress-scheduler default-global traffic-class 2,6 bw-percent 30

## nv set qos egress-scheduler <profile-id> traffic-class <qos-tc-id> mode

Configures the traffic class mode (`dwrr` or `strict`) for the specified egress scheduler profile.

### Command Syntax

Syntax | Description
--- | ---
`<profile-id>` | The profile name.
`<qos-tc-id>` | The traffic class (egress queue).

### Version History

Introduced in Cumulus Linux 5.3.0

### Example

    cumulus@switch:~$ nv set qos egress-scheduler default-global traffic-class 2,6 mode dwrr

## nv set qos egress-shaper <profile-id>

Configures traffic shaping, which allows a switch to send traffic at an average bitrate lower than the physical interface. Traffic shaping prevents a receiving device from dropping bursty traffic if the device is either not capable of that rate of traffic or has a policer that limits what it accepts.

Traffic shaping works by holding packets in the buffer and releasing them at specific time intervals.

## nv set qos egress-shaper <profile-id> mode

Configures the packet shaper mode. You can set this option to either packets per second (`pps`) or kilobits per second (`kbps`). The default setting is kilobits per second.

### Command Syntax

Syntax | Description
--- | ---
`<profile-id>` | The profile name.

### Version History

Introduced in Cumulus Linux 5.16.0

### Example

    cumulus@switch:~$ nv set qos egress-shaper shaper1 mode pps

## nv set qos egress-shaper <profile-id> port-max-rate

Configures the maximum packet shaper rate for the specified profile. You can set a value between 0 and 2147483647.

### Command Syntax

Syntax | Description
--- | ---
`<profile-id>` | The profile name.

### Version History

Introduced in Cumulus Linux 5.4.0

### Example

    cumulus@switch:~$ nv set qos egress-shaper shaper1 port-max-rate 2000

## nv set qos egress-shaper <profile-id> traffic-class <qos-tc-id>

Configures the traffic class (egress queue) for the specified traffic shaper profile.

## nv set qos egress-shaper <profile-id> traffic-class <qos-tc-id> max-rate

Configures the maximum bandwidth for the specified egress queue for a traffic shaper profile. You can set a value between 0 and 2147483647.

### Command Syntax

Syntax | Description
--- | ---
`<profile-id>` | The profile name.
`<qos-tc-id>` | The traffic class (egress queue).

### Version History

Introduced in Cumulus Linux 5.4.0

### Example

    cumulus@switch:~$ nv set qos egress-shaper shaper1 traffic-class 2 max-rate 500

## nv set qos egress-shaper <profile-id> traffic-class <qos-tc-id> min-rate

Configures the minimum bandwidth for the specified egress queue for a traffic shaper profile. You can set a value between 0 and 2147483647.

### Command Syntax

Syntax | Description
--- | ---
`<profile-id>` | The profile name.
`<qos-tc-id>` | The traffic class (egress queue).

### Version History

Introduced in Cumulus Linux 5.4.0

### Example

    cumulus@switch:~$ nv set qos egress-shaper shaper1 traffic-class 2 min-rate 100

## nv set qos link-pause <profile-id>

Configures QoS link pause; an older congestion control mechanism that causes all traffic on a link between two switches, or between a host and switch, to stop transmitting during times of congestion. Pause frames start and stop depending on buffer congestion. You configure pause frames on a per-direction, per-interface basis. You can receive pause frames to stop the switch from transmitting when requested, send pause frames to request neighboring devices to stop transmitting, or both.

Before configuring pause frames, you must first modify the switch buffer allocation.

## nv set qos link-pause <profile-id> cable-length

Configures the cable length in meters for the specified link pause profile. You can specify a value between 1 and 100000.

### Command Syntax

Syntax | Description
--- | ---
`<profile-id>` | The profile name.

### Version History

Introduced in Cumulus Linux 5.4.0

### Example

    cumulus@switch:~$ nv set qos link-pause my_pause_ports cable-length 50

## nv set qos link-pause <profile-id> port-buffer <value>

Configures the port buffer allocation in bytes for the specified link pause profile.

### Command Syntax

Syntax | Description
--- | ---
`<profile-id>` | The profile name.

### Version History

Introduced in Cumulus Linux 5.4.0

### Example

    cumulus@switch:~$ nv set qos link-pause my_pause_ports port-buffer 20000

## nv set qos link-pause <profile-id> rx

Turns receiving pause frames on and off.

### Command Syntax

Syntax | Description
--- | ---
`<profile-id>` | The profile name.

### Version History

Introduced in Cumulus Linux 5.4.0

### Example

    cumulus@switch:~$ nv set qos link-pause my_pause_ports rx disable

## nv set qos link-pause <profile-id> tx

Turns sending pause frames on and off.

### Command Syntax

Syntax | Description
--- | ---
`<profile-id>` | The profile name.

### Version History

Introduced in Cumulus Linux 5.4.0

### Example

    cumulus@switch:~$ nv set qos link-pause my_pause_ports tx enable

## nv set qos link-pause <profile-id> xoff-threshold <value>

Configures the frame transmission stop threshold in bytes for the specified link pause profile.

NVIDIA recommends that you do not change this setting but, instead, let Cumulus Linux configure the settings dynamically. Only change the threshold setting if you are an advanced user who understands the buffer configuration requirements for lossless traffic to work seamlessly.

### Command Syntax

Syntax | Description
--- | ---
`<profile-id>` | The profile name.

### Version History

Introduced in Cumulus Linux 5.4.0

### Example

    cumulus@switch:~$ nv set qos link-pause my_pause_ports xoff-threshold 1000

## nv set qos link-pause <profile-id> xon-threshold <value>

Configures the frame transmission start threshold in bytes for the specified link pause profile.

NVIDIA recommends that you do not change these settings but, instead, let Cumulus Linux configure the settings dynamically. Only change the threshold this setting if you are an advanced user who understands the buffer configuration requirements for lossless traffic to work seamlessly.

### Command Syntax

Syntax | Description
--- | ---
`<profile-id>` | The profile name.

### Version History

Introduced in Cumulus Linux 5.4.0

### Example

    cumulus@switch:~$ nv set qos link-pause my_pause_ports xon-threshold 1000

## nv set qos mapping <profile-id>

Configures trust 802.1p and DSCP marking.

When a frame or packet arrives on the switch, Cumulus Linux maps it to an internal COS (switch priority) value. This value never writes to the frame or packet but classifies and schedules traffic internally through the switch.

You can define the trusted values: 802.1p, DSCP, or both.

## nv set qos mapping <profile-id> dscp <qos-dscp-id>

Configures trust DSCP marking.

## nv set qos mapping <profile-id> dscp <qos-dscp-id> switch-priority

Configures the DSCP to switch priority mapping.

### Command Syntax

Syntax | Description
--- | ---
`<profile-id>` | The profile name.
`<qos-dscp-id>` | The DSCP value.

### Version History

Introduced in Cumulus Linux 5.3.0

### Example

    cumulus@switch:~$ nv set qos mapping default-global dscp 10,21,36 switch-priority 0

## nv set qos mapping <profile-id> pcp <qos-pcp-id>

Configures trust 802.1p marking.

## nv set qos mapping <profile-id> pcp <qos-pcp-id> switch-priority

Configures the 802.1p to switch priority mapping.

### Command Syntax

Syntax | Description
--- | ---
`<profile-id>` | The profile name.
`<qos-pcp-id>` | The 802.1p value.

### Version History

Introduced in Cumulus Linux 5.3.0

### Example

    cumulus@switch:~$ nv set qos mapping default-global pcp 0 switch-priority 4

## nv set qos mapping <profile-id> port-default-sp

Assigns all traffic to a specific switch priority regardless of the ingress marking.

### Command Syntax

Syntax | Description
--- | ---
`<profile-id>` | The profile name.

### Version History

Introduced in Cumulus Linux 5.3.0

### Example

    cumulus@switch:~$ nv set qos mapping default-global port-default-sp 3

## nv set qos mapping <profile-id> trust

Configures the port trust. You can specify `l2`, `l3`, `port`, or `both`.

### Command Syntax

Syntax | Description
--- | ---
`<profile-id>` | The profile name.

### Version History

Introduced in Cumulus Linux 5.3.0

### Example

    cumulus@switch:~$ nv set qos mapping default-global trust l3

## nv set qos pfc <profile-id>

Configures Priority flow control (PFC) settings. PFC extends the capabilities of pause frames by the frames for a specific 802.1p value instead of stopping all traffic on a link. If a switch supports PFC and receives a PFC pause frame for a given 802.1p value, the switch stops transmitting frames from that queue, but continues transmitting frames for other queues.

### Command Syntax

Syntax | Description
--- | ---
`<profile-id>` | The profile name.

### Version History

Introduced in Cumulus Linux 5.3.0

### Example

    cumulus@switch:~$ nv set qos pfc default-global

## nv set qos pfc <profile-id> cable-length

Configures the cable length in meters for the specified PFC profile. You can specify a value between 1 and 100000.

### Command Syntax

Syntax | Description
--- | ---
`<profile-id>` | The profile name.

### Version History

Introduced in Cumulus Linux 5.3.0

### Example

    cumulus@switch:~$ nv set qos pfc default-global cable-length 50

## nv set qos pfc <profile-id> port-buffer <value>

Configures the port buffer allocation in bytes for the specified PFC profile.

### Command Syntax

Syntax | Description
--- | ---
`<profile-id>` | The profile name.

### Version History

Introduced in Cumulus Linux 5.3.0

### Example

    cumulus@switch:~$ nv set qos pfc default-global port-buffer 20000

## nv set qos pfc <profile-id> rx

Turns receiving PFC frames on and off.

### Command Syntax

Syntax | Description
--- | ---
`<profile-id>` | The profile name.

### Version History

Introduced in Cumulus Linux 5.3.0

### Example

    cumulus@switch:~$ nv set qos pfc default-global rx enable

## nv set qos pfc <profile-id> switch-priority <qos-sp-id>

Configures the switch priority for the specified PFC profile.

### Command Syntax

Syntax | Description
--- | ---
`<profile-id>` | The profile name.

### Version History

Introduced in Cumulus Linux 5.3.0

### Example

    cumulus@switch:~$ nv set qos pfc default-global switch-priority 0

## nv set qos pfc <profile-id> tx

Turns sending PFC frames on and off.

### Command Syntax

Syntax | Description
--- | ---
`<profile-id>` | The profile name.

### Version History

Introduced in Cumulus Linux 5.3.0

### Example

    cumulus@switch:~$ nv set qos pfc default-global tx enable

## nv set qos pfc <profile-id> xoff-threshold <value>

Configures the frame transmission stop threshold in bytes for the specified PFC profile.

### Command Syntax

Syntax | Description
--- | ---
`<profile-id>` | The profile name.

### Version History

Introduced in Cumulus Linux 5.3.0

### Example

    cumulus@switch:~$ nv set qos pfc default-global xoff-threshold 1000

## nv set qos pfc <profile-id> xon-threshold <value>

Configures the frame transmission start threshold in bytes for the specified PFC profile.

### Command Syntax

Syntax | Description
--- | ---
`<profile-id>` | The profile name.

### Version History

Introduced in Cumulus Linux 5.3.0

### Example

    cumulus@switch:~$ nv set qos pfc default-global xon-threshold 10000

## nv set qos remark <profile-id>

Configures 802.1p or DSCP traffic marking.

## nv set qos remark <profile-id> rewrite

You can specify `l2`, `l3`, or `both`.

### Command Syntax

Syntax | Description
--- | ---
`<profile-id>` | The profile name.

### Version History

Introduced in Cumulus Linux 5.4.0

### Example

    cumulus@switch:~$ nv set qos remark default-global rewrite

## nv set qos remark <profile-id> switch-priority <qos-sp-id>

Configures switch priority to 802.1p or DSCP traffic marking.

## nv set qos remark <profile-id> switch-priority <qos-sp-id> dscp

Configures switch priority to egress DSCP mapping for the specified remark profile.

### Command Syntax

Syntax | Description
--- | ---
`<profile-id>` | The profile name.

### Version History

Introduced in Cumulus Linux 5.4.0

### Example

    cumulus@switch:~$ nv set qos remark default-global switch-priority 0 dscp 22

## nv set qos remark <profile-id> switch-priority <qos-sp-id> pcp

Configures switch priority to egress 802.1p (PCP) mapping for the specified remark profile.

### Command Syntax

Syntax | Description
--- | ---
`<profile-id>` | The profile name.

### Version History

Introduced in Cumulus Linux 5.4.0

### Example

    cumulus@switch:~$ nv set qos remark default-global switch-priority 0 pcp 4

## nv set qos roce

Configures RDMA over Converged Ethernet lossless (RoCE).

## nv set qos roce cable-length

Configures the cable length for RoCE lossless. You can specify a value between 1 and 100000. The default setting is 100 meters.

### Version History

Introduced in Cumulus Linux 5.0.0

### Example

    cumulus@switch:~$ nv set qos roce cable-length 1000

## nv set qos roce state

Enables and disables QoS RoCE on the switch. The default setting is `disabled`.

In Cumulus Linux 5.14 and earlier, you specify `enable on` or `enable off` instead of `state enabled` or `state disabled`.

### Version History

Introduced in Cumulus Linux 5.0.0

### Example

    cumulus@switch:~$ nv set qos roce state enabled

## nv set qos roce mode

Configures the RoCE mode. You can specify the following modes:

- `lossy` enables RoCE with ECN.
- `lossless` enables RoCE with PFC and ECN.
- `lossless-single-ipool` enables the single shared buffer pool for RoCE.

The default setting is `lossless`.

Cumulus Linux 5.11 and earlier does not provide `lossless-single-ipool` mode. Cumulus Linux 5.12.0 introduces `lossless-single-ipool` mode.

### Version History

Introduced in Cumulus Linux 5.0.0

### Example

    cumulus@switch:~$ nv set qos roce mode lossy

## nv set qos traffic-pool <traffic-pool-id>

Configures the Q0S traffic pool ID.

### Command Syntax

Syntax | Description
--- | ---
`<traffic-pool-id>` | The traffic pool ID.

### Version History

Introduced in Cumulus Linux 5.3.0

### Example

    cumulus@switch:~$ nv set qos traffic-pool 3

## nv set qos traffic-pool <traffic-pool-id> memory-percent

Configures the percent of memory allocated to the specified traffic pool.

### Command Syntax

Syntax | Description
--- | ---
`<traffic-pool-id>` | The traffic pool ID.

### Version History

Introduced in Cumulus Linux 5.3.0

### Example

    cumulus@switch:~$ nv set qos traffic-pool 3 memory percent 80

## nv set qos traffic-pool <traffic-pool-id> switch-priority <qos-sp-id>

Configures the QoS switch priority for the specified traffic pool.

### Command Syntax

Syntax | Description
--- | ---
`<traffic-pool-id>` | The traffic pool ID.

### Version History

Introduced in Cumulus Linux 5.3.0

### Example

    cumulus@switch:~$ nv set qos traffic-pool 3

## nv set qos pfc-watchdog polling-interval

Configures the PFC watchdog polling interval. The default polling interval is 100 milliseconds.

### Version History

Introduced in Cumulus Linux 5.6.0

### Example

    cumulus@switch:~$ nv set qos pfc-watchdog polling-interval 200

## nv set qos pfc-watchdog robustness

Configures how many polling intervals the PFC watchdog must wait before it mitigates the storm condition. The default number of polling intervals is 3.

### Version History

Introduced in Cumulus Linux 5.6.0

### Example

    cumulus@switch:~$ nv set qos pfc-watchdog robustness 5