Configure VF Interfaces Rate Limiting Using the CLIΒΆ
You can apply rate-limiting on VFs used for Data networks.
About this task
This feature is available on the Intel X710/XL710 (Fortville) 10G and Intel E810-CQDA2 (Columbiaville). It can be used on sub-interfaces of vf type interfaces.
Be aware of the following guidance when using this feature:
- Rate limiting is applicable to the maximum transmission rate. 
- Rate limiting is disabled by default. 
- If all VFs are in contention then each will get an equal share of the bandwidth. 
- The total sum of the maximum transmission rates of all rate limited VFs cannot exceed 90% of the port link speed. 
- The units are Mbps, and value of 0 means turn off the rate limiting. 
- VFs with different limited rate are supposed to be attached to separate data networks and managed by Kubernetes SR-IOV device plugin as different ResourcePools. You can then use the VFs by specifying the corresponding <resourceName>. 
This task must be performed from the CLI.
Prerequisites
You must create an SR-IOV interface before you can provision VF interface. For more information, see Provisioning SR-IOV Interfaces using the CLI.
Data networks should be created for VF sub-interfaces attachment.
PHYSNET1='physnet_kernel_400m'
PHYSNET2='physnet_dpdk_600m'
system datanetwork-add ${PHYSNET1} vlan
system datanetwork-add ${PHYSNET2} vlan
Procedure
- Lock the host. - Note - AIO-SX hosts do not need to be locked to provision an SR-IOV interface and assign it to a data network. - ~(keystone_admin)$ system host-lock controller-0 
- Create a sub-interface with rate limiting configuration. - The parameters are all the same as shown in the procedure for StarlingX Node Configuration and Management: Provisioning SR-IOV VF Interfaces using the CLI, plus one newly added rate limiting related parameter: - --max-tx-rate.- Note - The units for - max-tx-rateare Mbps. The configured sriov_numvfs with max_tx_rate(max_tx_rate*sriov_numvfs) should not exceed 90% of the link bandwidth.- For example: - ~(keystone_admin)$ system host-if-add -c pci-sriov controller-0 sriov00 vf sriov0 -N 2 --vf-driver=netdevice --max-tx-rate=400 ~(keystone_admin)$ system host-if-add -c pci-sriov controller-0 sriov01 vf sriov0 -N 2 --vf-driver=vfio --max-tx-rate=600 
- The rate limit configuration can be modified by specifying other values. - Note - The units for - max-tx-rateare Mbps.- ~(keystone_admin)$ system host-if-modify controller-0 sriov00 --max-tx-rate=200 
- The rate limit configuration can be modified by specifying a value of zero. - Note - Setting - max-tx-rateto 0 disables any rate limiting.- ~(keystone_admin)$ system host-if-modify controller-0 sriov00 --max-tx-rate=0 
- Attach the vf interfaces to the data. - ~(keystone_admin)$ system interface-datanetwork-assign controller-0 sriov00 $PHYSNET1 ~(keystone_admin)$ system interface-datanetwork-assign controller-0 sriov01 $PHYSNET2 
- Unlock the host. - Note - AIO-SX hosts do not need to be locked to provision an SR-IOV interface and assign it to a data network. - ~(keystone_admin)$ system host-unlock controller-0 
