All actionable parameters from the "ip link set vf X [...]" should be user configurable. 2 missing parameters are min_tx_rate and max_tx_rate to configure hardware QOS for VF.
Tested with intel an mellanox nics. Using this configuration: type: sriov_pf name: nic9 mtu: 9000 numvfs: 10 use_dhcp: false defroute: false nm_controlled: true hotplug: true promisc: false type: sriov_pf name: nic11 mtu: 9000I numvfs: 10 use_dhcp: false defroute: false nm_controlled: true hotplug: true promisc: false type: sriov_vf device: nic9 vfid: 5 addresses: - ip_netmask: 192.0.2.1/24 vlan_id: 128 min_tx_rate: 0 max_tx_rate: 100 type: sriov_vf device: nic11 vfid: 5 addresses: - ip_netmask: 192.0.3.1/24 vlan_id: 129 min_tx_rate: 10 max_tx_rate: 100 nic9 (enp6s0f2) is intel and nic11(enp4s0f0) is mellanox. We can see that it is configured properly. For intel, we select min_tx_rate=0 because it is not supported. [root@computeovsdpdksriov-0 heat-admin]# ip link show enp6s0f2 8: enp6s0f2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc mq state UP mode DEFAULT group default qlen 1000 link/ether f8:f2:1e:03:9b:e4 brd ff:ff:ff:ff:ff:ff vf 0 link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff, spoof checking on, link-state auto, trust off vf 1 link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff, spoof checking on, link-state auto, trust off vf 2 link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff, spoof checking on, link-state auto, trust off vf 3 link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff, spoof checking on, link-state auto, trust off vf 4 link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff, spoof checking on, link-state auto, trust off vf 5 link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff, vlan 128, tx rate 100 (Mbps), max_tx_rate 100Mbps, spoof checking on, link-state auto, trust off vf 6 link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff, spoof checking on, link-state auto, trust off vf 7 link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff, spoof checking on, link-state auto, trust off vf 8 link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff, spoof checking on, link-state auto, trust off vf 9 link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff, spoof checking on, link-state auto, trust off [root@computeovsdpdksriov-0 heat-admin]# ip link show enp4s0f0 10: enp4s0f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc mq state UP mode DEFAULT group default qlen 1000 link/ether 98:03:9b:9c:50:58 brd ff:ff:ff:ff:ff:ff vf 0 link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff, spoof checking off, link-state auto, trust off, query_rss off vf 1 link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff, spoof checking off, link-state auto, trust off, query_rss off vf 2 link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff, spoof checking off, link-state auto, trust off, query_rss off vf 3 link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff, spoof checking off, link-state auto, trust off, query_rss off vf 4 link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff, spoof checking off, link-state auto, trust off, query_rss off vf 5 link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff, vlan 129, tx rate 100 (Mbps), max_tx_rate 100Mbps, min_tx_rate 10Mbps, spoof checking off, link-state auto, trust off, query_rss off vf 6 link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff, spoof checking off, link-state auto, trust off, query_rss off vf 7 link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff, spoof checking off, link-state auto, trust off, query_rss off vf 8 link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff, spoof checking off, link-state auto, trust off, query_rss off vf 9 link/ether 00:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff, spoof checking off, link-state auto, trust off, query_rss off [root@computeovsdpdksriov-0 heat-admin]# ip a show enp6s0f2v5 18: enp6s0f2v5: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 link/ether 42:fb:62:96:c0:9b brd ff:ff:ff:ff:ff:ff inet 192.0.2.1/24 brd 192.0.2.255 scope global enp6s0f2v5 valid_lft forever preferred_lft forever inet6 fe80::40fb:62ff:fe96:c09b/64 scope link valid_lft forever preferred_lft forever [root@computeovsdpdksriov-0 heat-admin]# ip a show enp4s0f0v5 41: enp4s0f0v5: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000 link/ether 5e:fc:15:7c:84:72 brd ff:ff:ff:ff:ff:ff inet 192.0.3.1/24 brd 192.0.3.255 scope global enp4s0f0v5 valid_lft forever preferred_lft forever inet6 fe80::5cfc:15ff:fe7c:8472/64 scope link valid_lft forever preferred_lft forever Used puddle RHOS-16.1-RHEL-8-20200623.n.0
Closing EOL, OSP 16.0 has been retired as of Oct 27, 2020
I don't know how many bugs declared against 16.0 still present in 16.1 I will have to reopen.... Please check with the bug reporter if the bug is still present or not before closing it, thanks!