1*c185d44fSEric JoynerOS Default Dynamic Device Personalization (DDP) Package 2*c185d44fSEric Joyner====================================================================== 31bd641afSEric JoynerJuly 7, 2020 471d10453SEric Joyner 571d10453SEric Joyner 671d10453SEric JoynerContents 771d10453SEric Joyner======== 871d10453SEric Joyner- Overview 971d10453SEric Joyner- Safe Mode 1071d10453SEric Joyner- Notes 11*c185d44fSEric Joyner- Installation & Troubleshooting 1271d10453SEric Joyner- Legal 1371d10453SEric Joyner 1471d10453SEric Joyner 1571d10453SEric JoynerOverview 1671d10453SEric Joyner======== 17*c185d44fSEric JoynerDevices based on the Intel(R) Ethernet 800 Series require a Dynamic Device 18*c185d44fSEric JoynerPersonalization (DDP) package file to enable advanced features (such as dynamic 19*c185d44fSEric Joynertunneling, Intel(R) Ethernet Flow Director, RSS, and ADQ). 2071d10453SEric Joyner 2171d10453SEric JoynerDDP allows you to change the packet processing pipeline of a device by applying 2271d10453SEric Joynera profile package to the device at runtime. Profiles can be used to, for 2371d10453SEric Joynerexample, add support for new protocols, change existing protocols, or change 2471d10453SEric Joynerdefault settings. DDP profiles can also be rolled back without rebooting the 2571d10453SEric Joynersystem. 2671d10453SEric Joyner 2771d10453SEric JoynerThe DDP package loads during device initialization. The driver checks to see if 2871d10453SEric Joynerthe DDP package is present and compatible. If this file exists, the driver will 2971d10453SEric Joynerload it into the device. If the DDP package file is missing or incompatible 3071d10453SEric Joynerwith the driver, the driver will go into Safe Mode where it will use the 31*c185d44fSEric Joynerconfiguration contained in the device's NVM. Refer to the Intel(R) Ethernet 32*c185d44fSEric JoynerAdapters and Devices User Guide for more information on Safe Mode. 3371d10453SEric Joyner 34*c185d44fSEric JoynerA general-purpose, default DDP package is automatically installed with all 35*c185d44fSEric Joynersupported Intel Ethernet 800 Series drivers on supported operating systems. 36*c185d44fSEric JoynerAdditional DDP packages are available to address needs for specific market 37*c185d44fSEric Joynersegments or targeted solutions. 3871d10453SEric Joyner 39*c185d44fSEric JoynerThe default DDP package supports the following: 4071d10453SEric Joyner- MAC 4171d10453SEric Joyner- EtherType 4271d10453SEric Joyner- VLAN 4371d10453SEric Joyner- IPv4 4471d10453SEric Joyner- IPv6 4571d10453SEric Joyner- TCP 4671d10453SEric Joyner- ARP 4771d10453SEric Joyner- UDP 4871d10453SEric Joyner- SCTP 4971d10453SEric Joyner- ICMP 5071d10453SEric Joyner- ICMPv6 5171d10453SEric Joyner- CTRL 5271d10453SEric Joyner- LLDP 5371d10453SEric Joyner- VXLAN-GPE 5471d10453SEric Joyner- VXLAN (non-GPE) 5571d10453SEric Joyner- Geneve 5671d10453SEric Joyner- GRE 5771d10453SEric Joyner- NVGRE 5871d10453SEric Joyner- RoCEv2 591bd641afSEric Joyner- MPLS (up to 5 consecutive MPLS labels in the outermost Layer 2 header group) 6071d10453SEric Joyner 6171d10453SEric Joyner 6271d10453SEric JoynerSafe Mode 6371d10453SEric Joyner========= 6471d10453SEric JoynerSafe Mode disables advanced and performance features, and supports only basic 6571d10453SEric Joynertraffic and minimal functionality, such as updating the NVM or downloading a 6671d10453SEric Joynernew driver or DDP package. 6771d10453SEric Joyner 68*c185d44fSEric JoynerRefer to the Intel(R) Ethernet Adapters and Devices User Guide for more details 69*c185d44fSEric Joyneron DDP and Safe Mode. 7071d10453SEric Joyner 7171d10453SEric Joyner 7271d10453SEric JoynerNotes 7371d10453SEric Joyner===== 7471d10453SEric Joyner- You cannot update the DDP package if any PF drivers are already loaded. To 7571d10453SEric Joyneroverwrite a package, unload all PFs and then reload the driver with the new 7671d10453SEric Joynerpackage. 7771d10453SEric Joyner 7871d10453SEric Joyner- Except for Linux, you can only use one DDP package per driver, even if you 7971d10453SEric Joynerhave more than one device installed that uses the driver. 8071d10453SEric Joyner 8171d10453SEric Joyner- Only the first loaded PF per device can download a package for that device. 8271d10453SEric Joyner 8371d10453SEric Joyner- If you are using DPDK, see the DPDK documentation at https://www.dpdk.org/ 8471d10453SEric Joynerfor installation instructions and more information. 8571d10453SEric Joyner 8671d10453SEric Joyner 8771d10453SEric JoynerInstallation and Troubleshooting 8871d10453SEric Joyner================================ 8971d10453SEric Joyner 9071d10453SEric JoynerMicrosoft* Windows* 9171d10453SEric Joyner------------------- 9271d10453SEric JoynerThe DDP package is installed as part of the driver binary. You don't need to 9371d10453SEric Joynertake additional steps to install the DDP package file. 9471d10453SEric Joyner 9571d10453SEric JoynerIf you encounter issues with the DDP package file, download the latest driver. 9671d10453SEric Joyner 9771d10453SEric Joyner 9871d10453SEric JoynerESX 9971d10453SEric Joyner--- 10071d10453SEric JoynerThe DDP package is installed as part of the driver binary. You don't need to 10171d10453SEric Joynertake additional steps to install the DDP package file. 10271d10453SEric Joyner 10371d10453SEric JoynerIf you encounter issues with the DDP package file, download the latest driver. 10471d10453SEric Joyner 10571d10453SEric Joyner 10671d10453SEric JoynerFreeBSD 10771d10453SEric Joyner------- 10871d10453SEric JoynerThe FreeBSD driver automatically installs the default DDP package file during 109*c185d44fSEric Joynerdriver installation. See the base driver README for general installation and 11071d10453SEric Joynerbuilding instructions. 11171d10453SEric Joyner 11271d10453SEric JoynerThe DDP package loads during device initialization. The driver looks for the 11371d10453SEric Joynerice_ddp module and checks that it contains a valid DDP package file. 11471d10453SEric Joyner 11571d10453SEric JoynerIf you encounter issues with the DDP package file, you may need to download an 11671d10453SEric Joynerupdated driver or ice_ddp module. See the log messages for more information. 11771d10453SEric Joyner 11871d10453SEric JoynerNOTE: It's important to do 'make install' during initial ice driver 11971d10453SEric Joynerinstallation so that the driver loads the DDP package automatically. 12071d10453SEric Joyner 12171d10453SEric Joyner 12271d10453SEric JoynerLinux 12371d10453SEric Joyner----- 12471d10453SEric JoynerThe Linux driver automatically installs the default DDP package file during 125*c185d44fSEric Joynerdriver installation. Read the base driver README for general installation and 12671d10453SEric Joynerbuilding instructions. 12771d10453SEric Joyner 12871d10453SEric JoynerThe DDP package loads during device initialization. The driver looks for 12971d10453SEric Joynerintel/ice/ddp/ice.pkg in your firmware root (typically /lib/firmware/ or 13071d10453SEric Joyner/lib/firmware/updates/) and checks that it contains a valid DDP package file. 13171d10453SEric JoynerThe ice.pkg file is a symbolic link to the default DDP package file installed 132*c185d44fSEric Joynerby the linux-firmware software package or the out-of-tree driver installation. 13371d10453SEric Joyner 13471d10453SEric JoynerIf you encounter issues with the DDP package file, you may need to download an 135*c185d44fSEric Joynerupdated driver or DDP package file. Refer to the log messages for more 136*c185d44fSEric Joynerinformation. 13771d10453SEric Joyner 13871d10453SEric JoynerYou can install specific DDP package files for different physical devices in 13971d10453SEric Joynerthe same system. To install a specific DDP package: 14071d10453SEric Joyner 14171d10453SEric Joyner1. Download the DDP package file (ice-x.x.x.x.zip) you want for your device. In 14271d10453SEric Joyneraddition to licensing information and this README, this zip file contains the 14371d10453SEric Joynerfollowing files: 14471d10453SEric Joyner ice-x.x.x.x.pkg 14571d10453SEric Joyner ice.pkg 14671d10453SEric Joyner 14771d10453SEric JoynerNOTE: The ice.pkg file is a Linux symbolic link file pointing to 14871d10453SEric Joynerice-x.x.x.x.pkg (in the same path). 14971d10453SEric Joyner 15071d10453SEric Joyner2. Rename the ice-x.x.x.x.pkg file as ice-xxxxxxxxxxxxxxxx.pkg, where 15171d10453SEric Joyner'xxxxxxxxxxxxxxxx' is the unique 64-bit PCI Express device serial number (in 15271d10453SEric Joynerhex) of the device you want the package downloaded on. The filename must 15371d10453SEric Joynerinclude the complete serial number (including leading zeros) and be all 15471d10453SEric Joynerlowercase. For example, if the 64-bit serial number is b887a3ffffca0568, then 15571d10453SEric Joynerthe file name would be ice-b887a3ffffca0568.pkg. 15671d10453SEric Joyner 15771d10453SEric JoynerTo find the serial number from the PCI bus address, you can use the following 15871d10453SEric Joynercommand: 15971d10453SEric Joyner 16071d10453SEric Joyner# lspci -vv -s af:00.0 | grep -i Serial 16171d10453SEric JoynerCapabilities: [150 v1] Device Serial Number b8-87-a3-ff-ff-ca-05-68 16271d10453SEric Joyner 16371d10453SEric JoynerYou can use the following command to format the serial number without the 16471d10453SEric Joynerdashes: 16571d10453SEric Joyner 16671d10453SEric Joyner# lspci -vv -s af:00.0 | grep -i Serial | awk '{print $7}' | sed s/-//g 16771d10453SEric Joynerb887a3ffffca0568 16871d10453SEric Joyner 16971d10453SEric Joyner3. Copy the renamed DDP package file to /lib/firmware/updates/intel/ice/ddp/. 17071d10453SEric JoynerIf the directory does not yet exist, create it before copying the file. 17171d10453SEric Joyner 17271d10453SEric Joyner4. Unload all of the PFs on the device. 17371d10453SEric Joyner 17471d10453SEric Joyner5. Reload the driver with the new package. 17571d10453SEric Joyner 17671d10453SEric JoynerNOTE: The presence of a device-specific DDP package file overrides the loading 177*c185d44fSEric Joynerof the default DDP package file. 17871d10453SEric Joyner 17971d10453SEric Joyner 18071d10453SEric JoynerLegal / Disclaimers 18171d10453SEric Joyner=================== 18271d10453SEric JoynerCopyright (c) 2019 - 2020, Intel Corporation. 18371d10453SEric Joyner 18471d10453SEric JoynerIntel and the Intel logo are trademarks of Intel Corporation or its 18571d10453SEric Joynersubsidiaries in the U.S. and/or other countries. 18671d10453SEric Joyner 18771d10453SEric Joyner*Other names and brands may be claimed as the property of others. 18871d10453SEric Joyner 18971d10453SEric JoynerThis software and the related documents are Intel copyrighted materials, and 19071d10453SEric Joyneryour use of them is governed by the express license under which they were 19171d10453SEric Joynerprovided to you ("License"). Unless the License provides otherwise, you may not 19271d10453SEric Joyneruse, modify, copy, publish, distribute, disclose or transmit this software or 19371d10453SEric Joynerthe related documents without Intel's prior written permission. 19471d10453SEric JoynerThis software and the related documents are provided as is, with no express or 19571d10453SEric Joynerimplied warranties, other than those that are expressly stated in the License. 196