docs/doc/source/node_management/kubernetes/node_interfaces/configuring-vf-interfaces-r...

3.4 KiB

Configure VF Interfaces Rate Limiting Using the CLI

You can apply rate-limiting on VFs used for Data networks.

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 VF's 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 unit is Mbps, and value of 0 means turn off the rate limiting.
  • VFs with different limited rate are supposed to be attached 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.

You must create an SR-IOV interface before you can provision VF interface. For more information, see Provisioning SR-IOV Interfaces using the CLI <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

  1. Lock the host.

    ~(keystone_admin)$ system host-lock controller-0
  2. Create a sub-interface with rate limiting configuration.

    The parameters are all same as shown in the procedure for : Provisioning SR-IOV VF Interfaces using the CLI <provisioning-sr-iov-vf-interfaces-using-the-cli>, plus one newly added rate limiting related parameter: --max-tx-rate

    Note

    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
  3. The rate limit configuration can be modified by specifying other values.

    ~(keystone_admin)$ system host-if-modify controller-0 sriov00 --max-tx-rate=200
  4. The rate limit configuration can be modified by specifying a value of zero.

    ~(keystone_admin)$ system host-if-modify controller-0 sriov00 --max-tx-rate=0
  5. 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
  6. Unlock the host.

    ~(keystone_admin)$ system host-unlock controller-0