Configuring link-pause/pfc/dcbx on Cumulus using NVUE CLI

Hello, I’m trying to enable/disable link-pause/pfc/dcbx on an interface on the MSN4700 ethernet switch. I was expecting the commands to be something simple, e.g:
nv set interface swp1 qos link-pause enable/disable
But the command expects a “profile”. What’s the correct way to configure link-pause/pfc/dcbx on interfaces and also apply it so that it’s operational? Looks like you have to create a profile first? If you can show the the CLI commands that would be great. Thanks.

Hello,

Please see the below links with an example for link-pause and PFC NVUE configurations

Link-Pause:
https://docs.nvidia.com/networking-ethernet-software/cumulus-linux-512/Layer-1-and-Switch-Ports/Quality-of-Service/#link-pause

PFC:
https://docs.nvidia.com/networking-ethernet-software/cumulus-linux-512/Layer-1-and-Switch-Ports/Quality-of-Service/#priority-flow-control-pfc

Before configuring link pause, you must first modify the switch buffer allocation
https://docs.nvidia.com/networking-ethernet-software/cumulus-linux-512/Layer-1-and-Switch-Ports/Quality-of-Service/#flow-control-buffers

Pleas see the below link for an example of enabling DCBX TLVs
https://docs.nvidia.com/networking-ethernet-software/cumulus-linux-512/Layer-2/Link-Layer-Discovery-Protocol/#ieee-8021-tlvs

Regards
Joe

Thanks Joe. I’ll check them out. If I have follow-up questions I’ll post them here.

Regards,
Hari

Hi Joe,

I tried the following for link-pause. As you pointed out, you need to “first modify the switch buffer allocation”. Tried to apply the changes anyway & got the first error below. Of the alternatives suggested, enabling roce seemed to be the easiest. Tried that and got a second error.

Instead of creating a new profile (called profile_link_pause_on below), should I set the qos link-pause parameters in the default-global profile?

admin@iscsi548-d-2:mgmt:~/info$ nv config diff
- set:
    interface:
      swp1:
        qos:
          link-pause:
            profile: profile_link_pause_on
    qos:
      link-pause:
        profile_link_pause_on:
          rx: enable
          tx: enable
admin@iscsi548-d-2:mgmt:~/info$ nv config apply
Invalid config [rev_id: 81]
  Config invalid at qos: link-pause profile requires traffic pool default-lossless/roce-lossless, or advance-lossless buffers, or roce mode lossless to be configured

To fix, tried this & got a different error.
Note that "nv set qos roce" sets roce mode to "lossless".
admin@iscsi548-d-2:mgmt:~$ nv set qos roce
admin@iscsi548-d-2:mgmt:~$ nv config apply
Invalid config [rev_id: 81]
  Cannot allow PFC global-default config along with link-pause profiles configured on following interface: swp1.

Tried to set link-pause parameters in the default-global profile. That did not work either. Got the error below.

admin@iscsi548-d-2:mgmt:~$ nv config diff
- set:
    interface:
      swp1:
        qos:
          link-pause:
            profile: default-global
    qos:
      link-pause:
        default-global:
          rx: enable
          tx: enable
admin@iscsi548-d-2:mgmt:~$
admin@iscsi548-d-2:mgmt:~$ nv config  apply
Invalid config [rev_id: 81]
  Config invalid at interface.swp1.qos: cannot assign default-global link-pause profile on interface

Got a bit further. Undid this command that I had used before:
nv set interface swp1 qos link-pause profile default-global
with:
nv unset interface swp1 qos link-pause profile

Then enabled roce with:
nv set qos roce

When applying the changes, got a warning about /etc/network/interfaces being overwritten. This file is supposed to be generated by NVUE, so not sure how it was modified after the last config save (as the warning says). May be someone edited it manually. Backed out of the apply, but looks like it would have gone through.

admin@iscsi548-d-2:mgmt:~$ nv config diff --rev 81
- set:
    interface:
      swp1:
        qos:
          link-pause: {}
    qos:
      link-pause:
        default-global:
          rx: enable
          tx: enable
      roce:
        enable: on
admin@iscsi548-d-2:mgmt:~$ nv config apply --rev 81
This config change requires switchd reload and lldpd restart
Warning: The following files have been changed since the last save, and they WILL be overwritten.
	- /etc/network/interfaces

Are you sure? [y/N] N
Declined apply after warnings [rev_id: 81]