Modified and Unmodified i40e Driver
Read this topic to understand modified and unmodified i40e driver support for vMX instances.
Understanding the Differences between Modified and Unmodified i40e 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 i40e driver the physical function sets the port
to the MAC promiscuous and VLAN promiscuous mode. In this case, all
the frames associated with the port is passed to the single VF which
is associated with the vMX. A single VF instance might be supported
on a PF and the total number of VLANs per IFD is limited to 64 if
the vlan-offload
option is configured.
In the unmodified i40e driver, the vMX configures the device through the PF driver with the VLAN ID that the PF driver receive. When an Ethernet frame is received, the outer VLAN is compared with configured VLAN ID and frame, and then forwarded to the VF associated with the vMX. In another vMX instance, using a different VF on the same physical port, you must 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. The IFL configuration determines the VLAN ID of the Ethernet frame that needs to be sent to the vMX through the VF.
When using the modified driver, you can only create a single VF per PF. Unmodified driver supports multiple VFs per PF.
By default LLDP is consumed by i40e physical function (PF) driver. To disable the LLDP packet consumption at PF level, use following command:
#echo lldp stop > /sys/kernel/debug/i40e/PCI-bus-info/
You can retrieve PCI bus information from the output of ethtool -i interface-name| grep bus-info
command.
If you notice that i40e driver link is not stable, you can renegotiate the link speed by using the following command:
# ethtool -r ethX/interface-name
Deploying vMX with Unmodified i40e Driver
Before installing a vMX instance, you must choose to load the unmodified i40e driver. To load the unmodified i40e driver:
Starting in Junos OS Release 18.4R1, vMX instances can be deployed with an unmodified i40e driver on Ubuntu version 16.04. XL710 NIC recommended if unmodified i40e driver version is 2.4.10 and firmware version 6.01. Unmodified 2.4.10 driver is qualified for XL710.
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 i40e Driver to Unmodified i40e Driver
When you try to move an existing deployment from modified i40e driver to unmodified i40e driver, perform the following steps:
Use the set interface <interface-name> vlan-offload
command to offload the VLAN filtering to unmodified PF driver.
Support for modified drivers for i40e is not available starting in Junos OS Release 19.1 and later releases.
Moving from Unmodified i40e Driver to Modified i40e Driver
When you try to move an existing deployment to from unmodified i40e driver to modified i40e driver, perform the following steps: