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.
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:
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.
To use the unmodified driver, you must set the value of
the use_native_drivers
command to true
in the
vMX configuration file.
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.
Enter the CLI configuration mode after logging in to the vMX and set the per interface configuration knob for the respective interface.
set interfaces <interface-name> vlan-offload
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:
Use the set interface <interface-name> new-vlan-offload-knob
command to offload the VLAN filtering to unmodified PF driver.
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: