xref: /freebsd/sys/contrib/dev/ice/README (revision 2508da22cd6f0904fe55d2d5f6cab7c6011f918c)
1*2508da22SEric JoynerOS Default Dynamic Device Personalization (DDP) Package
2e438f0a9SEric Joyner======================================================================
3*2508da22SEric JoynerMay 12, 2022
471d10453SEric Joyner
571d10453SEric Joyner
671d10453SEric JoynerContents
771d10453SEric Joyner========
871d10453SEric Joyner- Overview
9*2508da22SEric Joyner- Supported Operating Systems
1071d10453SEric Joyner- Safe Mode
1171d10453SEric Joyner- Notes
12*2508da22SEric Joyner- Installation
13*2508da22SEric Joyner- Troubleshooting
1471d10453SEric Joyner- Legal
1571d10453SEric Joyner
1671d10453SEric Joyner
1771d10453SEric JoynerOverview
1871d10453SEric Joyner========
19e438f0a9SEric JoynerDevices based on the Intel(R) Ethernet 800 Series require a Dynamic Device
20e438f0a9SEric JoynerPersonalization (DDP) package file to enable advanced features (such as dynamic
21*2508da22SEric Joynertunneling, Intel(R) Ethernet Flow Director, RSS, and ADQ).
2271d10453SEric Joyner
2371d10453SEric JoynerDDP allows you to change the packet processing pipeline of a device by applying
2471d10453SEric Joynera profile package to the device at runtime. Profiles can be used to, for
2571d10453SEric Joynerexample, add support for new protocols, change existing protocols, or change
2671d10453SEric Joynerdefault settings. DDP profiles can also be rolled back without rebooting the
2771d10453SEric Joynersystem.
2871d10453SEric Joyner
29*2508da22SEric JoynerThe DDP package loads during device initialization or driver runtime, depending
30*2508da22SEric Joyneron the operating system. The driver checks to see if the DDP package is present
31*2508da22SEric Joynerand compatible. If this file exists, the driver will load it into the device.
32*2508da22SEric JoynerIf the DDP package file is missing or incompatible with the driver, the driver
33*2508da22SEric Joynerwill go into Safe Mode where it will use the configuration contained in the
34*2508da22SEric Joynerdevice's NVM. Refer to the Intel(R) Ethernet Adapters and Devices User Guide
35*2508da22SEric Joynerfor more information on Safe Mode.
3671d10453SEric Joyner
37e438f0a9SEric JoynerA general-purpose, default DDP package is automatically installed with all
38e438f0a9SEric Joynersupported Intel Ethernet 800 Series drivers on supported operating systems.
39e438f0a9SEric JoynerAdditional DDP packages are available to address needs for specific market
40e438f0a9SEric Joynersegments or targeted solutions.
4171d10453SEric Joyner
42e438f0a9SEric JoynerThe default DDP package supports the following:
4371d10453SEric Joyner- MAC
4471d10453SEric Joyner- EtherType
4571d10453SEric Joyner- VLAN
4671d10453SEric Joyner- IPv4
4771d10453SEric Joyner- IPv6
4871d10453SEric Joyner- TCP
4971d10453SEric Joyner- ARP
5071d10453SEric Joyner- UDP
5171d10453SEric Joyner- SCTP
5271d10453SEric Joyner- ICMP
5371d10453SEric Joyner- ICMPv6
5471d10453SEric Joyner- CTRL
5571d10453SEric Joyner- LLDP
5671d10453SEric Joyner- VXLAN-GPE
5771d10453SEric Joyner- VXLAN (non-GPE)
5871d10453SEric Joyner- Geneve
5971d10453SEric Joyner- GRE
6071d10453SEric Joyner- NVGRE
6171d10453SEric Joyner- RoCEv2
621bd641afSEric Joyner- MPLS (up to 5 consecutive MPLS labels in the outermost Layer 2 header group)
6371d10453SEric Joyner
6471d10453SEric Joyner
65*2508da22SEric JoynerSupported Operating Systems
66*2508da22SEric Joyner===========================
67*2508da22SEric JoynerThis DDP package is supported on the following operating systems:
68*2508da22SEric Joyner- Microsoft* Windows Server*
69*2508da22SEric Joyner- Linux*
70*2508da22SEric Joyner- FreeBSD*
71*2508da22SEric Joyner- VMware* ESXi*
72*2508da22SEric Joyner
73*2508da22SEric JoynerRefer to the Intel(R) Ethernet Adapters and Devices User Guide for currently
74*2508da22SEric Joynersupported versions of these operating systems.
75*2508da22SEric Joyner
76*2508da22SEric Joyner
7771d10453SEric JoynerSafe Mode
7871d10453SEric Joyner=========
7971d10453SEric JoynerSafe Mode disables advanced and performance features, and supports only basic
8071d10453SEric Joynertraffic and minimal functionality, such as updating the NVM or downloading a
8171d10453SEric Joynernew driver or DDP package.
8271d10453SEric Joyner
83e438f0a9SEric JoynerRefer to the Intel(R) Ethernet Adapters and Devices User Guide for more details
84*2508da22SEric Joyneron DDP and Safe Mode.
8571d10453SEric Joyner
8671d10453SEric Joyner
8771d10453SEric JoynerNotes
8871d10453SEric Joyner=====
89*2508da22SEric Joyner- In Linux, FreeBSD, and Windows, you cannot update the DDP package if any PF
90*2508da22SEric Joynerdrivers are already loaded. To overwrite a package, unload all PFs and then
91*2508da22SEric Joynerreload the driver with the new package.
9271d10453SEric Joyner
93*2508da22SEric Joyner- In ESXi, use esxcli to load and unload DDP packages for specific market
94*2508da22SEric Joynersegments during driver runtime.
9571d10453SEric Joyner
96*2508da22SEric Joyner- In FreeBSD and Windows, you can only use one DDP package per driver, even if
97*2508da22SEric Joyneryou have more than one device installed that uses the driver.
98*2508da22SEric Joyner
99*2508da22SEric Joyner- In Linux, FreeBSD, and Windows, only the first loaded PF per device can
100*2508da22SEric Joynerdownload a package for that device. In ESXi, you can load different DDP
101*2508da22SEric Joynerpackages for different PFs associated with a device.
10271d10453SEric Joyner
10371d10453SEric Joyner- If you are using DPDK, see the DPDK documentation at https://www.dpdk.org/
10471d10453SEric Joynerfor installation instructions and more information.
10571d10453SEric Joyner
10671d10453SEric Joyner
107*2508da22SEric JoynerInstallation
108*2508da22SEric Joyner============
10971d10453SEric Joyner
110*2508da22SEric JoynerMicrosoft Windows
111*2508da22SEric Joyner-----------------
112*2508da22SEric JoynerTO INSTALL THE OS DEFAULT DDP PACKAGE:
11371d10453SEric Joyner
114*2508da22SEric JoynerThe default DDP package is installed as part of the driver binary. You don't
115*2508da22SEric Joynerneed to take additional steps to install the DDP package file.
11671d10453SEric Joyner
11771d10453SEric Joyner
11871d10453SEric JoynerFreeBSD
11971d10453SEric Joyner-------
120*2508da22SEric JoynerTO INSTALL THE OS DEFAULT DDP PACKAGE:
121*2508da22SEric Joyner
12271d10453SEric JoynerThe FreeBSD driver automatically installs the default DDP package file during
123e438f0a9SEric Joynerdriver installation. See the base driver README for general installation and
12471d10453SEric Joynerbuilding instructions.
12571d10453SEric Joyner
12671d10453SEric JoynerThe DDP package loads during device initialization. The driver looks for the
12771d10453SEric Joynerice_ddp module and checks that it contains a valid DDP package file.
12871d10453SEric Joyner
12971d10453SEric JoynerNOTE: It's important to do 'make install' during initial ice driver
13071d10453SEric Joynerinstallation so that the driver loads the DDP package automatically.
13171d10453SEric Joyner
13271d10453SEric Joyner
13371d10453SEric JoynerLinux
13471d10453SEric Joyner-----
135*2508da22SEric JoynerTO INSTALL THE OS DEFAULT DDP PACKAGE:
136*2508da22SEric Joyner
13771d10453SEric JoynerThe Linux driver automatically installs the default DDP package file during
138e438f0a9SEric Joynerdriver installation. Read the base driver README for general installation and
13971d10453SEric Joynerbuilding instructions.
14071d10453SEric Joyner
14171d10453SEric JoynerThe DDP package loads during device initialization. The driver looks for
14271d10453SEric Joynerintel/ice/ddp/ice.pkg in your firmware root (typically /lib/firmware/ or
14371d10453SEric Joyner/lib/firmware/updates/) and checks that it contains a valid DDP package file.
14471d10453SEric JoynerThe ice.pkg file is a symbolic link to the default DDP package file installed
145e438f0a9SEric Joynerby the linux-firmware software package or the out-of-tree driver installation.
14671d10453SEric Joyner
147*2508da22SEric Joyner
148*2508da22SEric JoynerTO INSTALL A DDP PACKAGE FOR SPECIFIC MARKET SEGMENTS:
14971d10453SEric Joyner
15071d10453SEric JoynerYou can install specific DDP package files for different physical devices in
15171d10453SEric Joynerthe same system. To install a specific DDP package:
15271d10453SEric Joyner
15371d10453SEric Joyner1. Download the DDP package file (ice-x.x.x.x.zip) you want for your device. In
15471d10453SEric Joyneraddition to licensing information and this README, this zip file contains the
15571d10453SEric Joynerfollowing files:
15671d10453SEric Joyner    ice-x.x.x.x.pkg
15771d10453SEric Joyner    ice.pkg
15871d10453SEric Joyner
15971d10453SEric JoynerNOTE: The ice.pkg file is a Linux symbolic link file pointing to
16071d10453SEric Joynerice-x.x.x.x.pkg (in the same path).
16171d10453SEric Joyner
16271d10453SEric Joyner2. Rename the ice-x.x.x.x.pkg file as ice-xxxxxxxxxxxxxxxx.pkg, where
16371d10453SEric Joyner'xxxxxxxxxxxxxxxx' is the unique 64-bit PCI Express device serial number (in
16471d10453SEric Joynerhex) of the device you want the package downloaded on. The filename must
16571d10453SEric Joynerinclude the complete serial number (including leading zeros) and be all
16671d10453SEric Joynerlowercase. For example, if the 64-bit serial number is b887a3ffffca0568, then
16771d10453SEric Joynerthe file name would be ice-b887a3ffffca0568.pkg.
16871d10453SEric Joyner
16971d10453SEric JoynerTo find the serial number from the PCI bus address, you can use the following
17071d10453SEric Joynercommand:
17171d10453SEric Joyner
17271d10453SEric Joyner# lspci -vv -s af:00.0 | grep -i Serial
17371d10453SEric JoynerCapabilities: [150 v1] Device Serial Number b8-87-a3-ff-ff-ca-05-68
17471d10453SEric Joyner
17571d10453SEric JoynerYou can use the following command to format the serial number without the
17671d10453SEric Joynerdashes:
17771d10453SEric Joyner
17871d10453SEric Joyner# lspci -vv -s af:00.0 | grep -i Serial | awk '{print $7}' | sed s/-//g
17971d10453SEric Joynerb887a3ffffca0568
18071d10453SEric Joyner
18171d10453SEric Joyner3. Copy the renamed DDP package file to /lib/firmware/updates/intel/ice/ddp/.
18271d10453SEric JoynerIf the directory does not yet exist, create it before copying the file.
18371d10453SEric Joyner
18471d10453SEric Joyner4. Unload all of the PFs on the device.
18571d10453SEric Joyner
18671d10453SEric Joyner5. Reload the driver with the new package.
18771d10453SEric Joyner
18871d10453SEric JoynerNOTE: The presence of a device-specific DDP package file overrides the loading
189e438f0a9SEric Joynerof the default DDP package file.
19071d10453SEric Joyner
19171d10453SEric Joyner
192*2508da22SEric JoynerESX
193*2508da22SEric Joyner---
194*2508da22SEric JoynerTO INSTALL THE OS DEFAULT DDP PACKAGE:
195*2508da22SEric Joyner
196*2508da22SEric JoynerThe default DDP package is installed as part of the driver binary. You don't
197*2508da22SEric Joynerneed to take additional steps to install the DDP package file.
198*2508da22SEric Joyner
199*2508da22SEric JoynerTO INSTALL A DDP PACKAGE FOR SPECIFIC MARKET SEGMENTS:
200*2508da22SEric Joyner
201*2508da22SEric JoynerYou must first install the Intel(R) ESXCLI Plug-In for Managing Intel(R)
202*2508da22SEric JoynerEthernet Network Adapters to be able to install and load market-specific DDP
203*2508da22SEric Joynerpackages. Download it from:
204*2508da22SEric Joynerhttps://www.intel.com/content/www/us/en/download/19380/intel-esxcli-plug-in-for-
205*2508da22SEric Joynermanaging-intel-ethernet-network-adapters.html
206*2508da22SEric Joyner
207*2508da22SEric JoynerNOTE: ESXi support for DDP packages for specific market segments requires the
208*2508da22SEric Joynerfollowing:
209*2508da22SEric Joyner- OS: ESXi 6.7 or higher
210*2508da22SEric Joyner- Driver: icen 1.9.1.x or higher
211*2508da22SEric Joyner- Tool: intnet 1.8.3.x or higher
212*2508da22SEric Joyner
213*2508da22SEric JoynerTo install and load this DDP package:
214*2508da22SEric Joyner
215*2508da22SEric Joyner1. Download and install the esxcli plug-in from the URL above.
216*2508da22SEric Joyner
217*2508da22SEric Joyner2. Download the DDP package.
218*2508da22SEric Joyner
219*2508da22SEric Joyner3. Copy the DDP package file to the following location: /store/intel/icen/ddp/.
220*2508da22SEric Joyner   If the directory does not yet exist, create it before copying the file.
221*2508da22SEric Joyner
222*2508da22SEric Joyner4. From the command prompt, run the following command to load the DDP package:
223*2508da22SEric Joyner
224*2508da22SEric Joyner   # esxcli intnet ddp load -n <vmnicX> -p <ddp_file_name> -f
225*2508da22SEric Joyner
226*2508da22SEric Joyner   Where:
227*2508da22SEric Joyner    <vmnicX> = the name of the NIC
228*2508da22SEric Joyner    <ddp_file_name> = the name of the DDP package to load
229*2508da22SEric Joyner    -f = forces the package to load
230*2508da22SEric Joyner
231*2508da22SEric Joyner    NOTE: This operation will cause the driver to reset.
232*2508da22SEric Joyner
233*2508da22SEric Joyner5. Wait for the load result status.
234*2508da22SEric Joyner
235*2508da22SEric Joyner
236*2508da22SEric JoynerTo list all active DDP packages for all virtual NICs, run the following:
237*2508da22SEric Joyner
238*2508da22SEric Joyner# esxcli intnet ddp list
239*2508da22SEric Joyner
240*2508da22SEric JoynerTo unload (roll back) a DDP package, run the following:
241*2508da22SEric Joyner
242*2508da22SEric Joyner# esxcli intnet ddp rollback -n <vmnicX> -f
243*2508da22SEric Joyner
244*2508da22SEric JoynerNOTE: This operation will cause the driver to reset.
245*2508da22SEric Joyner
246*2508da22SEric Joyner
247*2508da22SEric JoynerTroubleshooting
248*2508da22SEric Joyner===============
249*2508da22SEric Joyner
250*2508da22SEric JoynerMicrosoft Windows
251*2508da22SEric Joyner-----------------
252*2508da22SEric JoynerIf you encounter issues with the DDP package file, download the latest driver.
253*2508da22SEric Joyner
254*2508da22SEric JoynerFreeBSD
255*2508da22SEric Joyner-------
256*2508da22SEric JoynerIf you encounter issues with the DDP package file, you may need to download an
257*2508da22SEric Joynerupdated driver or ice_ddp module. See the log messages for more information.
258*2508da22SEric Joyner
259*2508da22SEric JoynerLinux
260*2508da22SEric Joyner-----
261*2508da22SEric JoynerIf you encounter issues with the DDP package file, you may need to download an
262*2508da22SEric Joynerupdated driver or DDP package file. Refer to the log messages for more
263*2508da22SEric Joynerinformation.
264*2508da22SEric Joyner
265*2508da22SEric JoynerESX
266*2508da22SEric Joyner---
267*2508da22SEric JoynerIf you encounter issues with the DDP package file, download the latest driver.
268*2508da22SEric Joyner
269*2508da22SEric Joyner
27071d10453SEric JoynerLegal / Disclaimers
27171d10453SEric Joyner===================
272*2508da22SEric JoynerCopyright (c) 2019 - 2022, Intel Corporation.
27371d10453SEric Joyner
27471d10453SEric JoynerIntel and the Intel logo are trademarks of Intel Corporation or its
27571d10453SEric Joynersubsidiaries in the U.S. and/or other countries.
27671d10453SEric Joyner
27771d10453SEric Joyner*Other names and brands may be claimed as the property of others.
27871d10453SEric Joyner
27971d10453SEric JoynerThis software and the related documents are Intel copyrighted materials, and
28071d10453SEric Joyneryour use of them is governed by the express license under which they were
28171d10453SEric Joynerprovided to you ("License"). Unless the License provides otherwise, you may not
28271d10453SEric Joyneruse, modify, copy, publish, distribute, disclose or transmit this software or
28371d10453SEric Joynerthe related documents without Intel's prior written permission.
28471d10453SEric JoynerThis software and the related documents are provided as is, with no express or
28571d10453SEric Joynerimplied warranties, other than those that are expressly stated in the License.
286