-
Story
-
Resolution: Unresolved
-
Normal
-
None
-
rhel-9.3.0.z
What were you trying to do that didn't work?
Scripts attached here
1) qos
2) netlink.py
Specific to port/interface DCB based qos settings can be applied per interface using NETLINK messages. To just verify the working of the NETLINK messages currently we have a script which does this (See attached file qos). But a generic/standard solution would be to be able to set it using NetworkManager common to different NICs.
1) DSCP to Priority mapping setting
2) Set DCBX Mode to Firmware-controlled or OS controlled
3) Set the trust state to DSCP or PCP
Currently usage of each of the above case using the script is as below
1) DSCP to Priority mapping
./qos -i <ethX> --dscp2prio=set,44,2
Tried with Mellanox connect-x5
root@rhos-nfv-09:~# ./qos -i enp4s0f0np0 --dscp2prio=set,44,2
DCBX mode: OS controlled
Priority trust state: dscp
dscp2prio mapping:
prio:0 dscp:00,
prio:2 dscp:44,
default priority:
Cable len: 7
PFC configuration:
priority 0 1 2 3 4 5 6 7
enabled 0 1 1 0 0 0 0 0
tc: 0 , tsa: ets, bw: 20%
priority: 3
priority: 7
tc: 1 , tsa: ets, bw: 20%
priority: 0
priority: 4
tc: 2 , tsa: ets, bw: 60%
priority: 1
priority: 2
priority: 5
priority: 6
root@rhos-nfv-09:~#
root@rhos-nfv-09:~#
root@rhos-nfv-09:~# ethtool -i enp4s0f0np0
driver: mlx5_core
version: 5.14.0-284.39.1.el9_2.x86_64
firmware-version: 16.31.1014 (DEL0000000015)
expansion-rom-version:
bus-info: 0000:04:00.0
supports-statistics: yes
supports-test: yes
supports-eeprom-access: no
supports-register-dump: no
supports-priv-flags: yes
root@rhos-nfv-09:~#
Tried with Intel x710
root@rhos-nfv-09:~# ./qos -i eno2 --dscp2prio=set,44,2
DCBX mode: OS controlled
Priority trust state: dscp
dscp2prio mapping:
prio:2 dscp:44,
prio:3 dscp:24,
default priority:
prio:1
Cable len: 1949
PFC configuration:
priority 0 1 2 3 4 5 6 7
enabled 0 1 1 0 0 0 0 0
tc: 0 , tsa: ets, bw: 20%
priority: 3
priority: 7
tc: 1 , tsa: ets, bw: 20%
priority: 0
priority: 4
tc: 2 , tsa: ets, bw: 60%
priority: 1
priority: 2
priority: 5
priority: 6
root@rhos-nfv-09:~#
root@rhos-nfv-09:~# ethtool -i eno2
driver: i40e
version: 5.14.0-284.39.1.el9_2.x86_64
firmware-version: 9.20 0x8000d969 22.0.9
expansion-rom-version:
bus-info: 0000:01:00.1
supports-statistics: yes
supports-test: yes
supports-eeprom-access: yes
supports-register-dump: yes
supports-priv-flags: yes
root@rhos-nfv-09:~#
2) Set DCBX Mode to Firmware controlled or OS controlled
root@rhos-nfv-09:~# ./qos -i enp4s0f0np0 -d fw
DCBX mode: Firmware controlled
root@rhos-nfv-09:~# ./qos -i enp4s0f0np0 -d os
DCBX mode: OS controlled
But here for the Intel case it varies slightly as there is another ethtool command as below to set the firmware or non firmware mode
ethtool --set-priv-flags <ethX> disable-fw-lldp off
ethtool --set-priv-flags <ethX> disable-fw-lldp on
3) Set the trust state to DSCP or PCP
root@rhos-nfv-09:~# ./qos -i eno2 --trust pcp
DCBX mode: Firmware controlled
Priority trust state: pcp
root@rhos-nfv-09:~# ./qos -i enp4s0f0np0 --trust dscp
DCBX mode: OS controlled
Priority trust state: dscp