Enable DPDK for Tungsten Fabric

TechPreview

This section describes how to enable DPDK mode for the Tungsten Fabric (TF) vRouter.

To enable DPDK for TF, follow one of the procedures below depending on the API version used:

  1. Install the vfio-pci (recommended) or uio_pci_generic driver on the host operating system. For more information about drivers, see Linux Drivers.

    An example of the DPDK_UIO_DRIVER configuration:

    spec:
      tf-vrouter:
        agent-dpdk:
          enabled: true
          containers:
          - name: dpdk
            env:
            - name: DPDK_UIO_DRIVER
              value: vfio-pci
    
  2. Verify that DPDK NICs are not used on the host operating system.

    Note

    For use in the Linux user space, DPDK NICs will be bound to specific Linux drivers, required by PMDs. In such a way, bounded NICs are not available for usage by standard Linux network utilities. Therefore, allocate a dedicated NIC(s) for the vRouter deployment in DPDK mode.

  3. Enable huge pages on the host as described in Enable huge pages in a host profile.

  4. Mark the hosts for deployment with DPDK with the tfvrouter-dpdk=enabled label.

  5. Open the TF Operator custom resource for editing:

    kubectl -n tf edit tfoperators.operator.tf.mirantis.com openstack-tf
    
  6. Enable DPDK:

    spec:
      controllers:
        tf-vrouter:
          agent-dpdk:
            enabled: true
    
  1. Install the vfio-pci (recommended) or uio_pci_generic driver on the host operating system. For more information about drivers, see Linux Drivers.

    An example of the DPDK_UIO_DRIVER configuration:

    spec:
      services:
        vRouter:
          agentDPDK:
            enabled: true
            envSettings:
              dpdk:
              - name: DPDK_UIO_DRIVER
                value: vfio-pci
    
  2. Open the TF Operator custom resource for editing:

    kubectl -n tf edit tfoperators.tf.mirantis.com openstack-tf
    
  3. Enable DPDK:

    spec:
      services:
        vRouter:
          agentDPDK:
            enabled: true