Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Modified and Unmodified IXGBE Driver

Read this topic to understand the modified and unmodified IXGBE driver support for vMX instances.

Understanding the Differences between Modified and Unmodified IXGBE Driver

The single root I/O virtualization (SR-IOV) functionality consists of a physical function (PF) driver and a virtual function (VF) driver. The PF driver of an SR-IOV device is used to manage the physical function of an SR-IOV capable device. A VF driver of an SR-IOV device shares one or more physical resources with the physical function and other virtual functions that are associated with the same physical function.

In the modified IXGBE driver, the PF driver is in VLAN promiscuous mode and the modified driver accepts and transfers all the packets to the virtual Forwarding Plane (vFP) irrespective of the VLAN tag. The vFP does the filtering of packets based on the VLAN and rejects the packets if the VLAN is not programmed. The knowledge of VLAN stays within the vFP.

In the unmodified IXGBE driver, the vMX configures the device using the PF driver with the VLAN ID the driver receives. When an Ethernet frame is received, the outer VLAN is compared with the configured VLAN ID and frame, and then forwarded to the appropriate VF associated with the vMX instance. When another vMX instance is using a different VF on the same physical port, you can configure a different set of VLAN IDs to the device to receive the Ethernet frames. As a result, multiple vMX instances can share the same physical port only if the VLAN ID is unique (multiple VFs are supported on a port).

The IFL configuration determines the VLAN ID of the Ethernet frames that can be sent to the vMX through the VF. In the case of unmodified IXGBE driver, the MAC cannot be set to promiscuous mode resulting in the layer 2 forwarding functionality not being supported on the vMX with the unmodified driver.

Note:

On a vMX instance, you can create multiple VFs on the same PF, but only one VF from the PF must be assigned to one vMX instance. You can assign other VFs from the same PF to other vMX instances.

Deploying vMX with Unmodified IXGBE Driver

Before installing a vMX instance, you must choose to load the unmodified IXGBE driver. To load the unmodified IXGBE driver:

Note:

Starting in Junos OS Release 18.4R1, vMX instances can be deployed with an unmodified IXGBE driver on Ubuntu version 16.04. IXGBE based NIC recommended if IXGBE driver version is 5.3.6 and compatible firmware version is 0x61bd0001.

Note:

To use the unmodified driver, you must set the value of the use_native_drivers command to true in the vMX configuration file.

  1. Upgrade the host OS to Ubuntu 16.04 version or later, and ensure that the IP route package value is iproute2-4.9.0.
  2. Remove the existing driver module.
  3. Install the required version of the unmodified driver on the host. If host is running an older version of the driver, upgrade the host to the required version. For example:
  4. Use the ethtool -i interface-name utility to determine the driver information.
    Note:

    The firmware version must be compatible with the driver version that you are installing.

  5. Create a virtual function (VF) using either of the following commands.

    For example, if you want to create two VFs, use the following command:

    If you want to modify the number of VFs, use the following command:

    Note:

    On some PCI devices, when you change the number of VFs, you might receive the error message : Device or resource busy. In such cases, you first set sriov_numvfs to 0, and then set it to your new value.

    If the value of sriov_numvfs > 0, then you have to set it to 0 first and then change it to numeric value.

  6. Configure the vMX configuration file (vmx.conf) to skip the installation of the modified driver. For example:
  7. Install vMX.

The vMX programs the PF driver with VLAN information. The PF driver compares the outer VLAN of the VLAN tag information of the packets against the programmed VLAN and forwards to corresponding VF.

  1. Enter the CLI configuration mode after logging in to the vMX and set the per interface configuration knob for the respective interface.

Moving from Modified IXGBE Driver to Unmodified IXGBE Driver

When you try to move an existing deployment from modified IXGBE driver to unmodified IXGBE driver, perform the following steps:

Note:

Use the set interface <interface-name> new-vlan-offload-knob command to offload the VLAN filtering to unmodified PF driver.

  1. Install the required version of the unmodified driver on the host. If host is running an older version of the driver, upgrade the host to the required version. For example:
    Note:

    The vMX with the modified driver is the default choice at the time of spawning vMX. You can choose the unmodified PF driver through the configuration. This selection must be made before installing vMX and cannot be modified during run time.

  2. Configure the vMX configuration file (vmx.conf) to skip the installation of the modified driver. For example:
  3. Install vMX.
  4. Login to vMX and set the VLAN offload option.

    A single VF instance might be supported on a PF and the total number of VLANs per interface is limited to 64 if the vlan-offload option is configured.

Moving from Unmodified IXGBE Driver to Modified IXGBE Driver

When you try to move an existing deployment from unmodified IXGBE driver to modified IXGBE driver, perform the following steps:

  1. Clear the relevant knob from vMX configuration file.
  2. Cleanup the vMX, delete existing configuration and VLAN IDs.
  3. Reinstall vMX on your device.